@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,60 +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 { Directive, ElementRef, Inject } from '@angular/core';
9
- import { DOCUMENT } from '@angular/common';
10
- import * as i0 from "@angular/core";
11
- /**
12
- * A directive that makes a span editable and exposes functions to modify and retrieve the
13
- * element's contents.
14
- */
15
- export class MatChipEditInput {
16
- constructor(_elementRef, _document) {
17
- this._elementRef = _elementRef;
18
- this._document = _document;
19
- }
20
- initialize(initialValue) {
21
- this.getNativeElement().focus();
22
- this.setValue(initialValue);
23
- }
24
- getNativeElement() {
25
- return this._elementRef.nativeElement;
26
- }
27
- setValue(value) {
28
- this.getNativeElement().textContent = value;
29
- this._moveCursorToEndOfInput();
30
- }
31
- getValue() {
32
- return this.getNativeElement().textContent || '';
33
- }
34
- _moveCursorToEndOfInput() {
35
- const range = this._document.createRange();
36
- range.selectNodeContents(this.getNativeElement());
37
- range.collapse(false);
38
- const sel = window.getSelection();
39
- sel.removeAllRanges();
40
- sel.addRange(range);
41
- }
42
- }
43
- MatChipEditInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MatChipEditInput, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
44
- MatChipEditInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: MatChipEditInput, selector: "span[matChipEditInput]", host: { attributes: { "role": "textbox", "tabindex": "-1", "contenteditable": "true" }, classAttribute: "mat-chip-edit-input" }, ngImport: i0 });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MatChipEditInput, decorators: [{
46
- type: Directive,
47
- args: [{
48
- selector: 'span[matChipEditInput]',
49
- host: {
50
- 'class': 'mat-chip-edit-input',
51
- 'role': 'textbox',
52
- 'tabindex': '-1',
53
- 'contenteditable': 'true',
54
- },
55
- }]
56
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
57
- type: Inject,
58
- args: [DOCUMENT]
59
- }] }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1lZGl0LWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsLWV4cGVyaW1lbnRhbC9tZGMtY2hpcHMvY2hpcC1lZGl0LWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBRXpDOzs7R0FHRztBQVVILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFDbUIsV0FBdUIsRUFDTCxTQUFjO1FBRGhDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ0wsY0FBUyxHQUFULFNBQVMsQ0FBSztJQUNoRCxDQUFDO0lBRUosVUFBVSxDQUFDLFlBQW9CO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVPLHVCQUF1QjtRQUM3QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRyxDQUFDO1FBQ25DLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7OzZHQS9CVSxnQkFBZ0IsNENBR2pCLFFBQVE7aUdBSFAsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBVDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsSUFBSSxFQUFFO3dCQUNKLE9BQU8sRUFBRSxxQkFBcUI7d0JBQzlCLE1BQU0sRUFBRSxTQUFTO3dCQUNqQixVQUFVLEVBQUUsSUFBSTt3QkFDaEIsaUJBQWlCLEVBQUUsTUFBTTtxQkFDMUI7aUJBQ0Y7OzBCQUlJLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdGhhdCBtYWtlcyBhIHNwYW4gZWRpdGFibGUgYW5kIGV4cG9zZXMgZnVuY3Rpb25zIHRvIG1vZGlmeSBhbmQgcmV0cmlldmUgdGhlXG4gKiBlbGVtZW50J3MgY29udGVudHMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NwYW5bbWF0Q2hpcEVkaXRJbnB1dF0nLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ21hdC1jaGlwLWVkaXQtaW5wdXQnLFxuICAgICdyb2xlJzogJ3RleHRib3gnLFxuICAgICd0YWJpbmRleCc6ICctMScsXG4gICAgJ2NvbnRlbnRlZGl0YWJsZSc6ICd0cnVlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0Q2hpcEVkaXRJbnB1dCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQ6IGFueSxcbiAgKSB7fVxuXG4gIGluaXRpYWxpemUoaW5pdGlhbFZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmdldE5hdGl2ZUVsZW1lbnQoKS5mb2N1cygpO1xuICAgIHRoaXMuc2V0VmFsdWUoaW5pdGlhbFZhbHVlKTtcbiAgfVxuXG4gIGdldE5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5nZXROYXRpdmVFbGVtZW50KCkudGV4dENvbnRlbnQgPSB2YWx1ZTtcbiAgICB0aGlzLl9tb3ZlQ3Vyc29yVG9FbmRPZklucHV0KCk7XG4gIH1cblxuICBnZXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldE5hdGl2ZUVsZW1lbnQoKS50ZXh0Q29udGVudCB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgX21vdmVDdXJzb3JUb0VuZE9mSW5wdXQoKSB7XG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLl9kb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyh0aGlzLmdldE5hdGl2ZUVsZW1lbnQoKSk7XG4gICAgcmFuZ2UuY29sbGFwc2UoZmFsc2UpO1xuICAgIGNvbnN0IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKSE7XG4gICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIHNlbC5hZGRSYW5nZShyYW5nZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,407 +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 { hasModifierKey, TAB } from '@angular/cdk/keycodes';
10
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, Optional, Output, QueryList, Self, ViewEncapsulation, } from '@angular/core';
11
- import { FormGroupDirective, NgControl, NgForm, Validators, } from '@angular/forms';
12
- import { ErrorStateMatcher, mixinErrorState, } from '@angular/material-experimental/mdc-core';
13
- import { MatFormFieldControl } from '@angular/material-experimental/mdc-form-field';
14
- import { Subject, merge } from 'rxjs';
15
- import { takeUntil } from 'rxjs/operators';
16
- import { MatChipRow } from './chip-row';
17
- import { MatChipSet } from './chip-set';
18
- import { Directionality } from '@angular/cdk/bidi';
19
- import * as i0 from "@angular/core";
20
- import * as i1 from "@angular/cdk/bidi";
21
- import * as i2 from "@angular/forms";
22
- import * as i3 from "@angular/material-experimental/mdc-core";
23
- /** Change event object that is emitted when the chip grid value has changed. */
24
- export class MatChipGridChange {
25
- constructor(
26
- /** Chip grid that emitted the event. */
27
- source,
28
- /** Value of the chip grid when the event was emitted. */
29
- value) {
30
- this.source = source;
31
- this.value = value;
32
- }
33
- }
34
- /**
35
- * Boilerplate for applying mixins to MatChipGrid.
36
- * @docs-private
37
- */
38
- class MatChipGridBase extends MatChipSet {
39
- constructor(elementRef, changeDetectorRef, dir, _defaultErrorStateMatcher, _parentForm, _parentFormGroup,
40
- /**
41
- * Form control bound to the component.
42
- * Implemented as part of `MatFormFieldControl`.
43
- * @docs-private
44
- */
45
- ngControl) {
46
- super(elementRef, changeDetectorRef, dir);
47
- this._defaultErrorStateMatcher = _defaultErrorStateMatcher;
48
- this._parentForm = _parentForm;
49
- this._parentFormGroup = _parentFormGroup;
50
- this.ngControl = ngControl;
51
- /**
52
- * Emits whenever the component state changes and should cause the parent
53
- * form-field to update. Implemented as part of `MatFormFieldControl`.
54
- * @docs-private
55
- */
56
- this.stateChanges = new Subject();
57
- }
58
- }
59
- const _MatChipGridMixinBase = mixinErrorState(MatChipGridBase);
60
- /**
61
- * An extension of the MatChipSet component used with MatChipRow chips and
62
- * the matChipInputFor directive.
63
- */
64
- export class MatChipGrid extends _MatChipGridMixinBase {
65
- constructor(elementRef, changeDetectorRef, dir, parentForm, parentFormGroup, defaultErrorStateMatcher, ngControl) {
66
- super(elementRef, changeDetectorRef, dir, defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);
67
- /**
68
- * Implemented as part of MatFormFieldControl.
69
- * @docs-private
70
- */
71
- this.controlType = 'mat-chip-grid';
72
- this._defaultRole = 'grid';
73
- /**
74
- * List of element ids to propagate to the chipInput's aria-describedby attribute.
75
- */
76
- this._ariaDescribedbyIds = [];
77
- /**
78
- * Function when touched. Set as part of ControlValueAccessor implementation.
79
- * @docs-private
80
- */
81
- this._onTouched = () => { };
82
- /**
83
- * Function when changed. Set as part of ControlValueAccessor implementation.
84
- * @docs-private
85
- */
86
- this._onChange = () => { };
87
- this._value = [];
88
- /** Emits when the chip grid value has been changed by the user. */
89
- this.change = new EventEmitter();
90
- /**
91
- * Emits whenever the raw value of the chip-grid changes. This is here primarily
92
- * to facilitate the two-way binding for the `value` input.
93
- * @docs-private
94
- */
95
- this.valueChange = new EventEmitter();
96
- if (this.ngControl) {
97
- this.ngControl.valueAccessor = this;
98
- }
99
- }
100
- /**
101
- * Implemented as part of MatFormFieldControl.
102
- * @docs-private
103
- */
104
- get disabled() {
105
- return this.ngControl ? !!this.ngControl.disabled : this._disabled;
106
- }
107
- set disabled(value) {
108
- this._disabled = coerceBooleanProperty(value);
109
- this._syncChipsState();
110
- }
111
- /**
112
- * Implemented as part of MatFormFieldControl.
113
- * @docs-private
114
- */
115
- get id() {
116
- return this._chipInput.id;
117
- }
118
- /**
119
- * Implemented as part of MatFormFieldControl.
120
- * @docs-private
121
- */
122
- get empty() {
123
- return ((!this._chipInput || this._chipInput.empty) && (!this._chips || this._chips.length === 0));
124
- }
125
- /**
126
- * Implemented as part of MatFormFieldControl.
127
- * @docs-private
128
- */
129
- get placeholder() {
130
- return this._chipInput ? this._chipInput.placeholder : this._placeholder;
131
- }
132
- set placeholder(value) {
133
- this._placeholder = value;
134
- this.stateChanges.next();
135
- }
136
- /** Whether any chips or the matChipInput inside of this chip-grid has focus. */
137
- get focused() {
138
- return this._chipInput.focused || this._hasFocusedChip();
139
- }
140
- /**
141
- * Implemented as part of MatFormFieldControl.
142
- * @docs-private
143
- */
144
- get required() {
145
- return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;
146
- }
147
- set required(value) {
148
- this._required = coerceBooleanProperty(value);
149
- this.stateChanges.next();
150
- }
151
- /**
152
- * Implemented as part of MatFormFieldControl.
153
- * @docs-private
154
- */
155
- get shouldLabelFloat() {
156
- return !this.empty || this.focused;
157
- }
158
- /**
159
- * Implemented as part of MatFormFieldControl.
160
- * @docs-private
161
- */
162
- get value() {
163
- return this._value;
164
- }
165
- set value(value) {
166
- this._value = value;
167
- }
168
- /** Combined stream of all of the child chips' blur events. */
169
- get chipBlurChanges() {
170
- return this._getChipStream(chip => chip._onBlur);
171
- }
172
- ngAfterContentInit() {
173
- this.chipBlurChanges.pipe(takeUntil(this._destroyed)).subscribe(() => {
174
- this._blur();
175
- this.stateChanges.next();
176
- });
177
- merge(this.chipFocusChanges, this._chips.changes)
178
- .pipe(takeUntil(this._destroyed))
179
- .subscribe(() => this.stateChanges.next());
180
- }
181
- ngAfterViewInit() {
182
- super.ngAfterViewInit();
183
- if (!this._chipInput && (typeof ngDevMode === 'undefined' || ngDevMode)) {
184
- throw Error('mat-chip-grid must be used in combination with matChipInputFor.');
185
- }
186
- }
187
- ngDoCheck() {
188
- if (this.ngControl) {
189
- // We need to re-evaluate this on every change detection cycle, because there are some
190
- // error triggers that we can't subscribe to (e.g. parent form submissions). This means
191
- // that whatever logic is in here has to be super lean or we risk destroying the performance.
192
- this.updateErrorState();
193
- }
194
- }
195
- ngOnDestroy() {
196
- super.ngOnDestroy();
197
- this.stateChanges.complete();
198
- }
199
- /** Associates an HTML input element with this chip grid. */
200
- registerInput(inputElement) {
201
- this._chipInput = inputElement;
202
- this._chipInput.setDescribedByIds(this._ariaDescribedbyIds);
203
- }
204
- /**
205
- * Implemented as part of MatFormFieldControl.
206
- * @docs-private
207
- */
208
- onContainerClick(event) {
209
- if (!this.disabled && !this._originatesFromChip(event)) {
210
- this.focus();
211
- }
212
- }
213
- /**
214
- * Focuses the first chip in this chip grid, or the associated input when there
215
- * are no eligible chips.
216
- */
217
- focus() {
218
- if (this.disabled || this._chipInput.focused) {
219
- return;
220
- }
221
- if (!this._chips.length || this._chips.first.disabled) {
222
- // Delay until the next tick, because this can cause a "changed after checked"
223
- // error if the input does something on focus (e.g. opens an autocomplete).
224
- Promise.resolve().then(() => this._chipInput.focus());
225
- }
226
- else if (this._chips.length) {
227
- this._keyManager.setFirstItemActive();
228
- }
229
- this.stateChanges.next();
230
- }
231
- /**
232
- * Implemented as part of MatFormFieldControl.
233
- * @docs-private
234
- */
235
- setDescribedByIds(ids) {
236
- // We must keep this up to date to handle the case where ids are set
237
- // before the chip input is registered.
238
- this._ariaDescribedbyIds = ids;
239
- if (this._chipInput) {
240
- // Use a setTimeout in case this is being run during change detection
241
- // and the chip input has already determined its host binding for
242
- // aria-describedBy.
243
- setTimeout(() => {
244
- this._chipInput.setDescribedByIds(ids);
245
- }, 0);
246
- }
247
- }
248
- /**
249
- * Implemented as part of ControlValueAccessor.
250
- * @docs-private
251
- */
252
- writeValue(value) {
253
- // The user is responsible for creating the child chips, so we just store the value.
254
- this._value = value;
255
- }
256
- /**
257
- * Implemented as part of ControlValueAccessor.
258
- * @docs-private
259
- */
260
- registerOnChange(fn) {
261
- this._onChange = fn;
262
- }
263
- /**
264
- * Implemented as part of ControlValueAccessor.
265
- * @docs-private
266
- */
267
- registerOnTouched(fn) {
268
- this._onTouched = fn;
269
- }
270
- /**
271
- * Implemented as part of ControlValueAccessor.
272
- * @docs-private
273
- */
274
- setDisabledState(isDisabled) {
275
- this.disabled = isDisabled;
276
- this.stateChanges.next();
277
- }
278
- /** When blurred, mark the field as touched when focus moved outside the chip grid. */
279
- _blur() {
280
- if (!this.disabled) {
281
- // Check whether the focus moved to chip input.
282
- // If the focus is not moved to chip input, mark the field as touched. If the focus moved
283
- // to chip input, do nothing.
284
- // Timeout is needed to wait for the focus() event trigger on chip input.
285
- setTimeout(() => {
286
- if (!this.focused) {
287
- this._propagateChanges();
288
- this._markAsTouched();
289
- }
290
- });
291
- }
292
- }
293
- /**
294
- * Removes the `tabindex` from the chip grid and resets it back afterwards, allowing the
295
- * user to tab out of it. This prevents the grid from capturing focus and redirecting
296
- * it back to the first chip, creating a focus trap, if it user tries to tab away.
297
- */
298
- _allowFocusEscape() {
299
- if (!this._chipInput.focused) {
300
- super._allowFocusEscape();
301
- }
302
- }
303
- /** Handles custom keyboard events. */
304
- _handleKeydown(event) {
305
- if (event.keyCode === TAB) {
306
- if (this._chipInput.focused &&
307
- hasModifierKey(event, 'shiftKey') &&
308
- this._chips.length &&
309
- !this._chips.last.disabled) {
310
- event.preventDefault();
311
- if (this._keyManager.activeItem) {
312
- this._keyManager.setActiveItem(this._keyManager.activeItem);
313
- }
314
- else {
315
- this._focusLastChip();
316
- }
317
- }
318
- else {
319
- // Use the super method here since it doesn't check for the input
320
- // focused state. This allows focus to escape if there's only one
321
- // disabled chip left in the list.
322
- super._allowFocusEscape();
323
- }
324
- }
325
- else if (!this._chipInput.focused) {
326
- super._handleKeydown(event);
327
- }
328
- this.stateChanges.next();
329
- }
330
- _focusLastChip() {
331
- if (this._chips.length) {
332
- this._chips.last.focus();
333
- }
334
- }
335
- /** Emits change event to set the model value. */
336
- _propagateChanges() {
337
- const valueToEmit = this._chips.length ? this._chips.toArray().map(chip => chip.value) : [];
338
- this._value = valueToEmit;
339
- this.change.emit(new MatChipGridChange(this, valueToEmit));
340
- this.valueChange.emit(valueToEmit);
341
- this._onChange(valueToEmit);
342
- this._changeDetectorRef.markForCheck();
343
- }
344
- /** Mark the field as touched */
345
- _markAsTouched() {
346
- this._onTouched();
347
- this._changeDetectorRef.markForCheck();
348
- this.stateChanges.next();
349
- }
350
- }
351
- MatChipGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MatChipGrid, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Directionality, optional: true }, { token: i2.NgForm, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
352
- MatChipGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MatChipGrid, selector: "mat-chip-grid", inputs: { tabIndex: "tabIndex", disabled: "disabled", placeholder: "placeholder", required: "required", value: "value", errorStateMatcher: "errorStateMatcher" }, outputs: { change: "change", valueChange: "valueChange" }, host: { listeners: { "focus": "focus()", "blur": "_blur()" }, properties: { "attr.role": "role", "tabIndex": "_chips && _chips.length === 0 ? -1 : tabIndex", "attr.aria-disabled": "disabled.toString()", "attr.aria-invalid": "errorState", "class.mat-mdc-chip-list-disabled": "disabled", "class.mat-mdc-chip-list-invalid": "errorState", "class.mat-mdc-chip-list-required": "required" }, classAttribute: "mat-mdc-chip-set mat-mdc-chip-grid mdc-evolution-chip-set" }, providers: [{ provide: MatFormFieldControl, useExisting: MatChipGrid }], queries: [{ propertyName: "_chips", predicate: MatChipRow, descendants: true }], usesInheritance: true, ngImport: i0, template: `
353
- <span class="mdc-evolution-chip-set__chips" role="presentation">
354
- <ng-content></ng-content>
355
- </span>
356
- `, 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 });
357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MatChipGrid, decorators: [{
358
- type: Component,
359
- args: [{ selector: 'mat-chip-grid', template: `
360
- <span class="mdc-evolution-chip-set__chips" role="presentation">
361
- <ng-content></ng-content>
362
- </span>
363
- `, inputs: ['tabIndex'], host: {
364
- 'class': 'mat-mdc-chip-set mat-mdc-chip-grid mdc-evolution-chip-set',
365
- '[attr.role]': 'role',
366
- '[tabIndex]': '_chips && _chips.length === 0 ? -1 : tabIndex',
367
- '[attr.aria-disabled]': 'disabled.toString()',
368
- '[attr.aria-invalid]': 'errorState',
369
- '[class.mat-mdc-chip-list-disabled]': 'disabled',
370
- '[class.mat-mdc-chip-list-invalid]': 'errorState',
371
- '[class.mat-mdc-chip-list-required]': 'required',
372
- '(focus)': 'focus()',
373
- '(blur)': '_blur()',
374
- }, providers: [{ provide: MatFormFieldControl, useExisting: MatChipGrid }], 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}"] }]
375
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Directionality, decorators: [{
376
- type: Optional
377
- }] }, { type: i2.NgForm, decorators: [{
378
- type: Optional
379
- }] }, { type: i2.FormGroupDirective, decorators: [{
380
- type: Optional
381
- }] }, { type: i3.ErrorStateMatcher }, { type: i2.NgControl, decorators: [{
382
- type: Optional
383
- }, {
384
- type: Self
385
- }] }]; }, propDecorators: { disabled: [{
386
- type: Input
387
- }], placeholder: [{
388
- type: Input
389
- }], required: [{
390
- type: Input
391
- }], value: [{
392
- type: Input
393
- }], errorStateMatcher: [{
394
- type: Input
395
- }], change: [{
396
- type: Output
397
- }], valueChange: [{
398
- type: Output
399
- }], _chips: [{
400
- type: ContentChildren,
401
- args: [MatChipRow, {
402
- // We need to use `descendants: true`, because Ivy will no longer match
403
- // indirect descendants if it's left as false.
404
- descendants: true,
405
- }]
406
- }] } });
407
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1ncmlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsLWV4cGVyaW1lbnRhbC9tZGMtY2hpcHMvY2hpcC1ncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBZSxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBQyxjQUFjLEVBQUUsR0FBRyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUdMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFFZixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLGVBQWUsR0FDaEIsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUVsRixPQUFPLEVBQWEsT0FBTyxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFFakQsZ0ZBQWdGO0FBQ2hGLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUI7SUFDRSx3Q0FBd0M7SUFDakMsTUFBbUI7SUFDMUIs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QUFFLFdBQVcsYUFBYSxFQUFDLENBQUMsaUJBQ3RELGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQTJKNUMsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBRVIsUUFBUTs7MEJBQUksSUFBSTs0Q0FqSE4sUUFBUTtzQkFEcEIsS0FBSztnQkFnQ0YsV0FBVztzQkFEZCxLQUFLO2dCQW9CRixRQUFRO3NCQURYLEtBQUs7Z0JBdUJGLEtBQUs7c0JBRFIsS0FBSztnQkFVWSxpQkFBaUI7c0JBQWxDLEtBQUs7Z0JBUWEsTUFBTTtzQkFBeEIsTUFBTTtnQkFRWSxXQUFXO3NCQUE3QixNQUFNO2dCQU9FLE1BQU07c0JBTGQsZUFBZTt1QkFBQyxVQUFVLEVBQUU7d0JBQzNCLHVFQUF1RTt3QkFDdkUsOENBQThDO3dCQUM5QyxXQUFXLEVBQUUsSUFBSTtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7aGFzTW9kaWZpZXJLZXksIFRBQn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTZWxmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBOZ0NvbnRyb2wsXG4gIE5nRm9ybSxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQ2FuVXBkYXRlRXJyb3JTdGF0ZSxcbiAgRXJyb3JTdGF0ZU1hdGNoZXIsXG4gIG1peGluRXJyb3JTdGF0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtZXhwZXJpbWVudGFsL21kYy1jb3JlJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtZXhwZXJpbWVudGFsL21kYy1mb3JtLWZpZWxkJztcbmltcG9ydCB7TWF0Q2hpcFRleHRDb250cm9sfSBmcm9tICcuL2NoaXAtdGV4dC1jb250cm9sJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdCwgbWVyZ2V9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TWF0Q2hpcEV2ZW50fSBmcm9tICcuL2NoaXAnO1xuaW1wb3J0IHtNYXRDaGlwUm93fSBmcm9tICcuL2NoaXAtcm93JztcbmltcG9ydCB7TWF0Q2hpcFNldH0gZnJvbSAnLi9jaGlwLXNldCc7XG5pbXBvcnQge0RpcmVjdGlvbmFsaXR5fSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5cbi8qKiBDaGFuZ2UgZXZlbnQgb2JqZWN0IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSBjaGlwIGdyaWQgdmFsdWUgaGFzIGNoYW5nZWQuICovXG5leHBvcnQgY2xhc3MgTWF0Q2hpcEdyaWRDaGFuZ2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogQ2hpcCBncmlkIHRoYXQgZW1pdHRlZCB0aGUgZXZlbnQuICovXG4gICAgcHVibGljIHNvdXJjZTogTWF0Q2hpcEdyaWQsXG4gICAgLyoqIFZhbHVlIG9mIHRoZSBjaGlwIGdyaWQgd2hlbiB0aGUgZXZlbnQgd2FzIGVtaXR0ZWQuICovXG4gICAgcHVibGljIHZhbHVlOiBhbnksXG4gICkge31cbn1cblxuLyoqXG4gKiBCb2lsZXJwbGF0ZSBmb3IgYXBwbHlpbmcgbWl4aW5zIHRvIE1hdENoaXBHcmlkLlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5jbGFzcyBNYXRDaGlwR3JpZEJhc2UgZXh0ZW5kcyBNYXRDaGlwU2V0IHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgc3RhdGUgY2hhbmdlcyBhbmQgc2hvdWxkIGNhdXNlIHRoZSBwYXJlbnRcbiAgICogZm9ybS1maWVsZCB0byB1cGRhdGUuIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgYE1hdEZvcm1GaWVsZENvbnRyb2xgLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGRpcjogRGlyZWN0aW9uYWxpdHksXG4gICAgcHVibGljIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgIHB1YmxpYyBfcGFyZW50Rm9ybTogTmdGb3JtLFxuICAgIHB1YmxpYyBfcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgLyoqXG4gICAgICogRm9ybSBjb250cm9sIGJvdW5kIHRvIHRoZSBjb21wb25lbnQuXG4gICAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBgTWF0Rm9ybUZpZWxkQ29udHJvbGAuXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZiwgY2hhbmdlRGV0ZWN0b3JSZWYsIGRpcik7XG4gIH1cbn1cbmNvbnN0IF9NYXRDaGlwR3JpZE1peGluQmFzZSA9IG1peGluRXJyb3JTdGF0ZShNYXRDaGlwR3JpZEJhc2UpO1xuXG4vKipcbiAqIEFuIGV4dGVuc2lvbiBvZiB0aGUgTWF0Q2hpcFNldCBjb21wb25lbnQgdXNlZCB3aXRoIE1hdENoaXBSb3cgY2hpcHMgYW5kXG4gKiB0aGUgbWF0Q2hpcElucHV0Rm9yIGRpcmVjdGl2ZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0LWNoaXAtZ3JpZCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNwYW4gY2xhc3M9XCJtZGMtZXZvbHV0aW9uLWNoaXAtc2V0X19jaGlwc1wiIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L3NwYW4+XG4gIGAsXG4gIHN0eWxlVXJsczogWydjaGlwLXNldC5jc3MnXSxcbiAgaW5wdXRzOiBbJ3RhYkluZGV4J10sXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnbWF0LW1kYy1jaGlwLXNldCBtYXQtbWRjLWNoaXAtZ3JpZCBtZGMtZXZvbHV0aW9uLWNoaXAtc2V0JyxcbiAgICAnW2F0dHIucm9sZV0nOiAncm9sZScsXG4gICAgJ1t0YWJJbmRleF0nOiAnX2NoaXBzICYmIF9jaGlwcy5sZW5ndGggPT09IDAgPyAtMSA6IHRhYkluZGV4JyxcbiAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQudG9TdHJpbmcoKScsXG4gICAgJ1thdHRyLmFyaWEtaW52YWxpZF0nOiAnZXJyb3JTdGF0ZScsXG4gICAgJ1tjbGFzcy5tYXQtbWRjLWNoaXAtbGlzdC1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICdbY2xhc3MubWF0LW1kYy1jaGlwLWxpc3QtaW52YWxpZF0nOiAnZXJyb3JTdGF0ZScsXG4gICAgJ1tjbGFzcy5tYXQtbWRjLWNoaXAtbGlzdC1yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICcoZm9jdXMpJzogJ2ZvY3VzKCknLFxuICAgICcoYmx1ciknOiAnX2JsdXIoKScsXG4gIH0sXG4gIHByb3ZpZGVyczogW3twcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogTWF0Q2hpcEdyaWR9XSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1hdENoaXBHcmlkXG4gIGV4dGVuZHMgX01hdENoaXBHcmlkTWl4aW5CYXNlXG4gIGltcGxlbWVudHNcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2FuVXBkYXRlRXJyb3JTdGF0ZSxcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBEb0NoZWNrLFxuICAgIE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PixcbiAgICBPbkRlc3Ryb3lcbntcbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgTWF0Rm9ybUZpZWxkQ29udHJvbC5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udHJvbFR5cGU6IHN0cmluZyA9ICdtYXQtY2hpcC1ncmlkJztcblxuICAvKiogVGhlIGNoaXAgaW5wdXQgdG8gYWRkIG1vcmUgY2hpcHMgKi9cbiAgcHJvdGVjdGVkIF9jaGlwSW5wdXQ6IE1hdENoaXBUZXh0Q29udHJvbDtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX2RlZmF1bHRSb2xlID0gJ2dyaWQnO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGVsZW1lbnQgaWRzIHRvIHByb3BhZ2F0ZSB0byB0aGUgY2hpcElucHV0J3MgYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUuXG4gICAqL1xuICBwcml2YXRlIF9hcmlhRGVzY3JpYmVkYnlJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHdoZW4gdG91Y2hlZC4gU2V0IGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb24uXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIF9vblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gd2hlbiBjaGFuZ2VkLiBTZXQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvbi5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgX29uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIG92ZXJyaWRlIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgPyAhIXRoaXMubmdDb250cm9sLmRpc2FibGVkIDogdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgb3ZlcnJpZGUgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5fc3luY0NoaXBzU3RhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jaGlwSW5wdXQuaWQ7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBNYXRGb3JtRmllbGRDb250cm9sLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBvdmVycmlkZSBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICghdGhpcy5fY2hpcElucHV0IHx8IHRoaXMuX2NoaXBJbnB1dC5lbXB0eSkgJiYgKCF0aGlzLl9jaGlwcyB8fCB0aGlzLl9jaGlwcy5sZW5ndGggPT09IDApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jaGlwSW5wdXQgPyB0aGlzLl9jaGlwSW5wdXQucGxhY2Vob2xkZXIgOiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgfVxuICBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsdWU7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG4gIHByb3RlY3RlZCBfcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAvKiogV2hldGhlciBhbnkgY2hpcHMgb3IgdGhlIG1hdENoaXBJbnB1dCBpbnNpZGUgb2YgdGhpcyBjaGlwLWdyaWQgaGFzIGZvY3VzLiAqL1xuICBvdmVycmlkZSBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpcElucHV0LmZvY3VzZWQgfHwgdGhpcy5faGFzRm9jdXNlZENoaXAoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQgPz8gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSA/PyBmYWxzZTtcbiAgfVxuICBzZXQgcmVxdWlyZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJvdGVjdGVkIF9yZXF1aXJlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBNYXRGb3JtRmllbGRDb250cm9sLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZW1wdHkgfHwgdGhpcy5mb2N1c2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgTWF0Rm9ybUZpZWxkQ29udHJvbC5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgX3ZhbHVlOiBhbnlbXSA9IFtdO1xuXG4gIC8qKiBBbiBvYmplY3QgdXNlZCB0byBjb250cm9sIHdoZW4gZXJyb3IgbWVzc2FnZXMgYXJlIHNob3duLiAqL1xuICBASW5wdXQoKSBvdmVycmlkZSBlcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXI7XG5cbiAgLyoqIENvbWJpbmVkIHN0cmVhbSBvZiBhbGwgb2YgdGhlIGNoaWxkIGNoaXBzJyBibHVyIGV2ZW50cy4gKi9cbiAgZ2V0IGNoaXBCbHVyQ2hhbmdlcygpOiBPYnNlcnZhYmxlPE1hdENoaXBFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLl9nZXRDaGlwU3RyZWFtKGNoaXAgPT4gY2hpcC5fb25CbHVyKTtcbiAgfVxuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBjaGlwIGdyaWQgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBieSB0aGUgdXNlci4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZTogRXZlbnRFbWl0dGVyPE1hdENoaXBHcmlkQ2hhbmdlPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxNYXRDaGlwR3JpZENoYW5nZT4oKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIHJhdyB2YWx1ZSBvZiB0aGUgY2hpcC1ncmlkIGNoYW5nZXMuIFRoaXMgaXMgaGVyZSBwcmltYXJpbHlcbiAgICogdG8gZmFjaWxpdGF0ZSB0aGUgdHdvLXdheSBiaW5kaW5nIGZvciB0aGUgYHZhbHVlYCBpbnB1dC5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0Q2hpcFJvdywge1xuICAgIC8vIFdlIG5lZWQgdG8gdXNlIGBkZXNjZW5kYW50czogdHJ1ZWAsIGJlY2F1c2UgSXZ5IHdpbGwgbm8gbG9uZ2VyIG1hdGNoXG4gICAgLy8gaW5kaXJlY3QgZGVzY2VuZGFudHMgaWYgaXQncyBsZWZ0IGFzIGZhbHNlLlxuICAgIGRlc2NlbmRhbnRzOiB0cnVlLFxuICB9KVxuICBvdmVycmlkZSBfY2hpcHM6IFF1ZXJ5TGlzdDxNYXRDaGlwUm93PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBkaXI6IERpcmVjdGlvbmFsaXR5LFxuICAgIEBPcHRpb25hbCgpIHBhcmVudEZvcm06IE5nRm9ybSxcbiAgICBAT3B0aW9uYWwoKSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBkZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgZWxlbWVudFJlZixcbiAgICAgIGNoYW5nZURldGVjdG9yUmVmLFxuICAgICAgZGlyLFxuICAgICAgZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyLFxuICAgICAgcGFyZW50Rm9ybSxcbiAgICAgIHBhcmVudEZvcm1Hcm91cCxcbiAgICAgIG5nQ29udHJvbCxcbiAgICApO1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuY2hpcEJsdXJDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9ibHVyKCk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfSk7XG5cbiAgICBtZXJnZSh0aGlzLmNoaXBGb2N1c0NoYW5nZXMsIHRoaXMuX2NoaXBzLmNoYW5nZXMpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgIGlmICghdGhpcy5fY2hpcElucHV0ICYmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpKSB7XG4gICAgICB0aHJvdyBFcnJvcignbWF0LWNoaXAtZ3JpZCBtdXN0IGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBtYXRDaGlwSW5wdXRGb3IuJyk7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgLy8gV2UgbmVlZCB0byByZS1ldmFsdWF0ZSB0aGlzIG9uIGV2ZXJ5IGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUsIGJlY2F1c2UgdGhlcmUgYXJlIHNvbWVcbiAgICAgIC8vIGVycm9yIHRyaWdnZXJzIHRoYXQgd2UgY2FuJ3Qgc3Vic2NyaWJlIHRvIChlLmcuIHBhcmVudCBmb3JtIHN1Ym1pc3Npb25zKS4gVGhpcyBtZWFuc1xuICAgICAgLy8gdGhhdCB3aGF0ZXZlciBsb2dpYyBpcyBpbiBoZXJlIGhhcyB0byBiZSBzdXBlciBsZWFuIG9yIHdlIHJpc2sgZGVzdHJveWluZyB0aGUgcGVyZm9ybWFuY2UuXG4gICAgICB0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiogQXNzb2NpYXRlcyBhbiBIVE1MIGlucHV0IGVsZW1lbnQgd2l0aCB0aGlzIGNoaXAgZ3JpZC4gKi9cbiAgcmVnaXN0ZXJJbnB1dChpbnB1dEVsZW1lbnQ6IE1hdENoaXBUZXh0Q29udHJvbCk6IHZvaWQge1xuICAgIHRoaXMuX2NoaXBJbnB1dCA9IGlucHV0RWxlbWVudDtcbiAgICB0aGlzLl9jaGlwSW5wdXQuc2V0RGVzY3JpYmVkQnlJZHModGhpcy5fYXJpYURlc2NyaWJlZGJ5SWRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuX29yaWdpbmF0ZXNGcm9tQ2hpcChldmVudCkpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgZmlyc3QgY2hpcCBpbiB0aGlzIGNoaXAgZ3JpZCwgb3IgdGhlIGFzc29jaWF0ZWQgaW5wdXQgd2hlbiB0aGVyZVxuICAgKiBhcmUgbm8gZWxpZ2libGUgY2hpcHMuXG4gICAqL1xuICBvdmVycmlkZSBmb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLl9jaGlwSW5wdXQuZm9jdXNlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fY2hpcHMubGVuZ3RoIHx8IHRoaXMuX2NoaXBzLmZpcnN0LmRpc2FibGVkKSB7XG4gICAgICAvLyBEZWxheSB1bnRpbCB0aGUgbmV4dCB0aWNrLCBiZWNhdXNlIHRoaXMgY2FuIGNhdXNlIGEgXCJjaGFuZ2VkIGFmdGVyIGNoZWNrZWRcIlxuICAgICAgLy8gZXJyb3IgaWYgdGhlIGlucHV0IGRvZXMgc29tZXRoaW5nIG9uIGZvY3VzIChlLmcuIG9wZW5zIGFuIGF1dG9jb21wbGV0ZSkuXG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuX2NoaXBJbnB1dC5mb2N1cygpKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2NoaXBzLmxlbmd0aCkge1xuICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBNYXRGb3JtRmllbGRDb250cm9sLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XG4gICAgLy8gV2UgbXVzdCBrZWVwIHRoaXMgdXAgdG8gZGF0ZSB0byBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgaWRzIGFyZSBzZXRcbiAgICAvLyBiZWZvcmUgdGhlIGNoaXAgaW5wdXQgaXMgcmVnaXN0ZXJlZC5cbiAgICB0aGlzLl9hcmlhRGVzY3JpYmVkYnlJZHMgPSBpZHM7XG5cbiAgICBpZiAodGhpcy5fY2hpcElucHV0KSB7XG4gICAgICAvLyBVc2UgYSBzZXRUaW1lb3V0IGluIGNhc2UgdGhpcyBpcyBiZWluZyBydW4gZHVyaW5nIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAgIC8vIGFuZCB0aGUgY2hpcCBpbnB1dCBoYXMgYWxyZWFkeSBkZXRlcm1pbmVkIGl0cyBob3N0IGJpbmRpbmcgZm9yXG4gICAgICAvLyBhcmlhLWRlc2NyaWJlZEJ5LlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NoaXBJbnB1dC5zZXREZXNjcmliZWRCeUlkcyhpZHMpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIC8vIFRoZSB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGUgY2hpbGQgY2hpcHMsIHNvIHdlIGp1c3Qgc3RvcmUgdGhlIHZhbHVlLlxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgLyoqIFdoZW4gYmx1cnJlZCwgbWFyayB0aGUgZmllbGQgYXMgdG91Y2hlZCB3aGVuIGZvY3VzIG1vdmVkIG91dHNpZGUgdGhlIGNoaXAgZ3JpZC4gKi9cbiAgX2JsdXIoKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSBmb2N1cyBtb3ZlZCB0byBjaGlwIGlucHV0LlxuICAgICAgLy8gSWYgdGhlIGZvY3VzIGlzIG5vdCBtb3ZlZCB0byBjaGlwIGlucHV0LCBtYXJrIHRoZSBmaWVsZCBhcyB0b3VjaGVkLiBJZiB0aGUgZm9jdXMgbW92ZWRcbiAgICAgIC8vIHRvIGNoaXAgaW5wdXQsIGRvIG5vdGhpbmcuXG4gICAgICAvLyBUaW1lb3V0IGlzIG5lZWRlZCB0byB3YWl0IGZvciB0aGUgZm9jdXMoKSBldmVudCB0cmlnZ2VyIG9uIGNoaXAgaW5wdXQuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2VzKCk7XG4gICAgICAgICAgdGhpcy5fbWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgYHRhYmluZGV4YCBmcm9tIHRoZSBjaGlwIGdyaWQgYW5kIHJlc2V0cyBpdCBiYWNrIGFmdGVyd2FyZHMsIGFsbG93aW5nIHRoZVxuICAgKiB1c2VyIHRvIHRhYiBvdXQgb2YgaXQuIFRoaXMgcHJldmVudHMgdGhlIGdyaWQgZnJvbSBjYXB0dXJpbmcgZm9jdXMgYW5kIHJlZGlyZWN0aW5nXG4gICAqIGl0IGJhY2sgdG8gdGhlIGZpcnN0IGNoaXAsIGNyZWF0aW5nIGEgZm9jdXMgdHJhcCwgaWYgaXQgdXNlciB0cmllcyB0byB0YWIgYXdheS5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBfYWxsb3dGb2N1c0VzY2FwZSgpIHtcbiAgICBpZiAoIXRoaXMuX2NoaXBJbnB1dC5mb2N1c2VkKSB7XG4gICAgICBzdXBlci5fYWxsb3dGb2N1c0VzY2FwZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBIYW5kbGVzIGN1c3RvbSBrZXlib2FyZCBldmVudHMuICovXG4gIG92ZXJyaWRlIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IFRBQikge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLl9jaGlwSW5wdXQuZm9jdXNlZCAmJlxuICAgICAgICBoYXNNb2RpZmllcktleShldmVudCwgJ3NoaWZ0S2V5JykgJiZcbiAgICAgICAgdGhpcy5fY2hpcHMubGVuZ3RoICYmXG4gICAgICAgICF0aGlzLl9jaGlwcy5sYXN0LmRpc2FibGVkXG4gICAgICApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBpZiAodGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtKSB7XG4gICAgICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZm9jdXNMYXN0Q2hpcCgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBVc2UgdGhlIHN1cGVyIG1ldGhvZCBoZXJlIHNpbmNlIGl0IGRvZXNuJ3QgY2hlY2sgZm9yIHRoZSBpbnB1dFxuICAgICAgICAvLyBmb2N1c2VkIHN0YXRlLiBUaGlzIGFsbG93cyBmb2N1cyB0byBlc2NhcGUgaWYgdGhlcmUncyBvbmx5IG9uZVxuICAgICAgICAvLyBkaXNhYmxlZCBjaGlwIGxlZnQgaW4gdGhlIGxpc3QuXG4gICAgICAgIHN1cGVyLl9hbGxvd0ZvY3VzRXNjYXBlKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghdGhpcy5fY2hpcElucHV0LmZvY3VzZWQpIHtcbiAgICAgIHN1cGVyLl9oYW5kbGVLZXlkb3duKGV2ZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBfZm9jdXNMYXN0Q2hpcCgpIHtcbiAgICBpZiAodGhpcy5fY2hpcHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9jaGlwcy5sYXN0LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEVtaXRzIGNoYW5nZSBldmVudCB0byBzZXQgdGhlIG1vZGVsIHZhbHVlLiAqL1xuICBwcml2YXRlIF9wcm9wYWdhdGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlVG9FbWl0ID0gdGhpcy5fY2hpcHMubGVuZ3RoID8gdGhpcy5fY2hpcHMudG9BcnJheSgpLm1hcChjaGlwID0+IGNoaXAudmFsdWUpIDogW107XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZVRvRW1pdDtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KG5ldyBNYXRDaGlwR3JpZENoYW5nZSh0aGlzLCB2YWx1ZVRvRW1pdCkpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZVRvRW1pdCk7XG4gICAgdGhpcy5fb25DaGFuZ2UodmFsdWVUb0VtaXQpO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIE1hcmsgdGhlIGZpZWxkIGFzIHRvdWNoZWQgKi9cbiAgcHJpdmF0ZSBfbWFya0FzVG91Y2hlZCgpIHtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==