@covalent/core 4.0.0-beta.2 → 4.1.0-develop.2

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 (371) hide show
  1. package/README.md +5 -4
  2. package/breadcrumbs/README.md +21 -17
  3. package/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +3 -1
  4. package/breadcrumbs/breadcrumbs.component.d.ts +1 -0
  5. package/breadcrumbs/covalent-core-breadcrumbs.d.ts +1 -1
  6. package/breadcrumbs/{public-api.d.ts → public_api.d.ts} +0 -0
  7. package/common/README.md +3 -0
  8. package/common/_common-theme.scss +1 -1
  9. package/common/behaviors/disable-ripple.mixin.d.ts +1 -1
  10. package/common/behaviors/disabled.mixin.d.ts +1 -1
  11. package/common/covalent-core-common.d.ts +1 -1
  12. package/common/pipes/truncate/truncate.pipe.d.ts +1 -1
  13. package/common/{public-api.d.ts → public_api.d.ts} +0 -0
  14. package/common/styles/font/README.md +4 -2
  15. package/covalent-core.d.ts +1 -1
  16. package/dialogs/README.md +38 -30
  17. package/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -3
  18. package/dialogs/confirm-dialog/confirm-dialog.component.d.ts +2 -2
  19. package/dialogs/covalent-core-dialogs.d.ts +1 -1
  20. package/dialogs/dialog.component.d.ts +4 -4
  21. package/dialogs/dialogs.module.d.ts +1 -1
  22. package/dialogs/prompt-dialog/prompt-dialog.component.d.ts +3 -3
  23. package/dialogs/{public-api.d.ts → public_api.d.ts} +0 -0
  24. package/dialogs/src/README.md +223 -0
  25. package/dialogs/window-dialog/window-dialog.component.d.ts +5 -5
  26. package/dynamic-menu/README.md +6 -6
  27. package/dynamic-menu/covalent-core-dynamic-menu.d.ts +1 -1
  28. package/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.d.ts +1 -1
  29. package/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.d.ts +1 -1
  30. package/dynamic-menu/dynamic-menu.component.d.ts +1 -22
  31. package/dynamic-menu/dynamic-menu.menu.d.ts +22 -0
  32. package/dynamic-menu/public_api.d.ts +1 -0
  33. package/esm2020/breadcrumbs/breadcrumb/breadcrumb.component.mjs +21 -37
  34. package/esm2020/breadcrumbs/breadcrumbs.component.mjs +20 -25
  35. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +12 -13
  36. package/esm2020/breadcrumbs/covalent-core-breadcrumbs.mjs +2 -2
  37. package/esm2020/breadcrumbs/public_api.mjs +4 -0
  38. package/esm2020/common/animations/bounce/bounce.animation.mjs +1 -1
  39. package/esm2020/common/animations/collapse/collapse.animation.mjs +1 -1
  40. package/esm2020/common/animations/common/interfaces.mjs +1 -1
  41. package/esm2020/common/animations/fade/fadeInOut.animation.mjs +1 -1
  42. package/esm2020/common/animations/flash/flash.animation.mjs +1 -1
  43. package/esm2020/common/animations/headshake/headshake.animation.mjs +17 -5
  44. package/esm2020/common/animations/jello/jello.animation.mjs +29 -8
  45. package/esm2020/common/animations/pulse/pulse.animation.mjs +1 -1
  46. package/esm2020/common/animations/rotate/rotate.animation.mjs +7 -2
  47. package/esm2020/common/behaviors/control-value-accesor.mixin.mjs +4 -2
  48. package/esm2020/common/behaviors/disable-ripple.mixin.mjs +1 -1
  49. package/esm2020/common/behaviors/disabled.mixin.mjs +1 -1
  50. package/esm2020/common/common.module.mjs +14 -15
  51. package/esm2020/common/covalent-core-common.mjs +2 -2
  52. package/esm2020/common/directives/fullscreen/fullscreen.directive.mjs +41 -41
  53. package/esm2020/common/forms/auto-trim/auto-trim.directive.mjs +19 -19
  54. package/esm2020/common/forms/validators/validators.mjs +6 -6
  55. package/esm2020/common/functions/clipboard.mjs +1 -1
  56. package/esm2020/common/functions/convert.mjs +1 -1
  57. package/esm2020/common/functions/download.mjs +1 -1
  58. package/esm2020/common/functions/file.mjs +1 -1
  59. package/esm2020/common/pipes/bytes/bytes.pipe.mjs +21 -11
  60. package/esm2020/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +21 -11
  61. package/esm2020/common/pipes/digits/digits.pipe.mjs +13 -13
  62. package/esm2020/common/pipes/time-ago/time-ago.pipe.mjs +9 -9
  63. package/esm2020/common/pipes/time-difference/time-difference.pipe.mjs +9 -9
  64. package/esm2020/common/pipes/time-until/time-until.pipe.mjs +9 -9
  65. package/esm2020/common/pipes/truncate/truncate.pipe.mjs +10 -10
  66. package/esm2020/common/public_api.mjs +39 -0
  67. package/esm2020/common/services/icon.service.mjs +6 -6
  68. package/esm2020/common/services/router-path.service.mjs +6 -6
  69. package/esm2020/covalent-core.mjs +2 -2
  70. package/esm2020/dialogs/alert-dialog/alert-dialog.component.mjs +9 -40
  71. package/esm2020/dialogs/confirm-dialog/confirm-dialog.component.mjs +9 -49
  72. package/esm2020/dialogs/covalent-core-dialogs.mjs +2 -2
  73. package/esm2020/dialogs/dialog.component.mjs +35 -76
  74. package/esm2020/dialogs/dialogs.module.mjs +39 -36
  75. package/esm2020/dialogs/prompt-dialog/prompt-dialog.component.mjs +15 -73
  76. package/esm2020/dialogs/public_api.mjs +9 -0
  77. package/esm2020/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +27 -10
  78. package/esm2020/dialogs/services/dialog.service.mjs +16 -13
  79. package/esm2020/dialogs/window-dialog/window-dialog.component.mjs +24 -55
  80. package/esm2020/dynamic-menu/covalent-core-dynamic-menu.mjs +2 -2
  81. package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +19 -136
  82. package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +14 -103
  83. package/esm2020/dynamic-menu/dynamic-menu.component.mjs +18 -101
  84. package/esm2020/dynamic-menu/dynamic-menu.menu.mjs +2 -0
  85. package/esm2020/dynamic-menu/dynamic-menu.module.mjs +44 -19
  86. package/esm2020/dynamic-menu/public_api.mjs +2 -1
  87. package/esm2020/file/covalent-core-file.mjs +2 -2
  88. package/esm2020/file/directives/file-drop.directive.mjs +46 -47
  89. package/esm2020/file/directives/file-select.directive.mjs +32 -31
  90. package/esm2020/file/file-input/file-input.component.mjs +41 -68
  91. package/esm2020/file/file-upload/file-upload.component.mjs +76 -112
  92. package/esm2020/file/file.module.mjs +32 -17
  93. package/esm2020/file/public_api.mjs +7 -0
  94. package/esm2020/file/services/file.service.mjs +13 -11
  95. package/esm2020/json-formatter/collapse.animation.mjs +51 -0
  96. package/esm2020/json-formatter/covalent-core-json-formatter.mjs +2 -2
  97. package/esm2020/json-formatter/json-formatter.component.mjs +38 -123
  98. package/esm2020/json-formatter/json-formatter.module.mjs +12 -13
  99. package/esm2020/json-formatter/public_api.mjs +3 -0
  100. package/esm2020/layout/covalent-core-layout.mjs +2 -2
  101. package/esm2020/layout/layout-card-over/layout-card-over.component.mjs +17 -64
  102. package/esm2020/layout/layout-footer/layout-footer.component.mjs +9 -14
  103. package/esm2020/layout/layout-manage-list/layout-manage-list.component.mjs +22 -51
  104. package/esm2020/layout/layout-manage-list/layout-manage-list.directives.mjs +47 -53
  105. package/esm2020/layout/layout-nav/layout-nav.component.mjs +22 -84
  106. package/esm2020/layout/layout-nav-list/layout-nav-list.component.mjs +37 -124
  107. package/esm2020/layout/layout-nav-list/layout-nav-list.directives.mjs +47 -53
  108. package/esm2020/layout/layout-toggle.class.mjs +12 -15
  109. package/esm2020/layout/layout.component.mjs +22 -43
  110. package/esm2020/layout/layout.directives.mjs +48 -50
  111. package/esm2020/layout/layout.module.mjs +34 -35
  112. package/esm2020/layout/navigation-drawer/navigation-drawer.component.mjs +56 -201
  113. package/esm2020/layout/public_api.mjs +13 -0
  114. package/esm2020/menu/covalent-core-menu.mjs +2 -2
  115. package/esm2020/menu/menu.component.mjs +7 -18
  116. package/esm2020/menu/menu.module.mjs +12 -13
  117. package/esm2020/menu/public_api.mjs +3 -0
  118. package/esm2020/message/collapse.animation.mjs +51 -0
  119. package/esm2020/message/covalent-core-message.mjs +2 -2
  120. package/esm2020/message/message.component.mjs +44 -102
  121. package/esm2020/message/message.module.mjs +19 -15
  122. package/esm2020/message/public_api.mjs +3 -0
  123. package/esm2020/public_api.mjs +2 -0
  124. package/esm2020/search/covalent-core-search.mjs +2 -2
  125. package/esm2020/search/public_api.mjs +4 -0
  126. package/esm2020/search/search-box/search-box.component.mjs +97 -123
  127. package/esm2020/search/search-input/search-input.component.mjs +116 -153
  128. package/esm2020/search/search.module.mjs +28 -13
  129. package/esm2020/side-sheet/covalent-core-side-sheet.mjs +2 -2
  130. package/esm2020/side-sheet/public_api.mjs +6 -0
  131. package/esm2020/side-sheet/side-sheet-container.mjs +89 -57
  132. package/esm2020/side-sheet/side-sheet-ref.mjs +2 -2
  133. package/esm2020/side-sheet/side-sheet.animation.mjs +2 -2
  134. package/esm2020/side-sheet/side-sheet.config.mjs +1 -1
  135. package/esm2020/side-sheet/side-sheet.content-directives.mjs +109 -86
  136. package/esm2020/side-sheet/side-sheet.mjs +44 -31
  137. package/esm2020/side-sheet/side-sheet.module.mjs +37 -38
  138. package/esm2020/user-profile/covalent-core-user-profile.mjs +2 -2
  139. package/esm2020/user-profile/public_api.mjs +1 -1
  140. package/esm2020/user-profile/user-profile-menu/user-profile-menu.component.mjs +13 -64
  141. package/esm2020/user-profile/user-profile.component.mjs +13 -35
  142. package/esm2020/user-profile/user-profile.module.mjs +32 -14
  143. package/fesm2015/covalent-core-breadcrumbs.mjs +35 -76
  144. package/fesm2015/covalent-core-breadcrumbs.mjs.map +1 -1
  145. package/fesm2015/covalent-core-common.mjs +170 -140
  146. package/fesm2015/covalent-core-common.mjs.map +1 -1
  147. package/fesm2015/covalent-core-dialogs.mjs +125 -358
  148. package/fesm2015/covalent-core-dialogs.mjs.map +1 -1
  149. package/fesm2015/covalent-core-dynamic-menu.mjs +73 -425
  150. package/fesm2015/covalent-core-dynamic-menu.mjs.map +1 -1
  151. package/fesm2015/covalent-core-file.mjs +148 -233
  152. package/fesm2015/covalent-core-file.mjs.map +1 -1
  153. package/fesm2015/covalent-core-json-formatter.mjs +93 -148
  154. package/fesm2015/covalent-core-json-formatter.mjs.map +1 -1
  155. package/fesm2015/covalent-core-layout.mjs +194 -747
  156. package/fesm2015/covalent-core-layout.mjs.map +1 -1
  157. package/fesm2015/covalent-core-menu.mjs +10 -28
  158. package/fesm2015/covalent-core-menu.mjs.map +1 -1
  159. package/fesm2015/covalent-core-message.mjs +79 -104
  160. package/fesm2015/covalent-core-message.mjs.map +1 -1
  161. package/fesm2015/covalent-core-search.mjs +147 -227
  162. package/fesm2015/covalent-core-search.mjs.map +1 -1
  163. package/fesm2015/covalent-core-side-sheet.mjs +202 -173
  164. package/fesm2015/covalent-core-side-sheet.mjs.map +1 -1
  165. package/fesm2015/covalent-core-user-profile.mjs +38 -114
  166. package/fesm2015/covalent-core-user-profile.mjs.map +1 -1
  167. package/fesm2015/covalent-core.mjs.map +1 -1
  168. package/fesm2020/covalent-core-breadcrumbs.mjs +49 -71
  169. package/fesm2020/covalent-core-breadcrumbs.mjs.map +1 -1
  170. package/fesm2020/covalent-core-common.mjs +224 -165
  171. package/fesm2020/covalent-core-common.mjs.map +1 -1
  172. package/fesm2020/covalent-core-dialogs.mjs +160 -338
  173. package/fesm2020/covalent-core-dialogs.mjs.map +1 -1
  174. package/fesm2020/covalent-core-dynamic-menu.mjs +89 -354
  175. package/fesm2020/covalent-core-dynamic-menu.mjs.map +1 -1
  176. package/fesm2020/covalent-core-file.mjs +229 -273
  177. package/fesm2020/covalent-core-file.mjs.map +1 -1
  178. package/fesm2020/covalent-core-json-formatter.mjs +97 -133
  179. package/fesm2020/covalent-core-json-formatter.mjs.map +1 -1
  180. package/fesm2020/covalent-core-layout.mjs +353 -767
  181. package/fesm2020/covalent-core-layout.mjs.map +1 -1
  182. package/fesm2020/covalent-core-menu.mjs +17 -29
  183. package/fesm2020/covalent-core-menu.mjs.map +1 -1
  184. package/fesm2020/covalent-core-message.mjs +110 -114
  185. package/fesm2020/covalent-core-message.mjs.map +1 -1
  186. package/fesm2020/covalent-core-search.mjs +233 -281
  187. package/fesm2020/covalent-core-search.mjs.map +1 -1
  188. package/fesm2020/covalent-core-side-sheet.mjs +267 -200
  189. package/fesm2020/covalent-core-side-sheet.mjs.map +1 -1
  190. package/fesm2020/covalent-core-user-profile.mjs +54 -109
  191. package/fesm2020/covalent-core-user-profile.mjs.map +1 -1
  192. package/fesm2020/covalent-core.mjs.map +1 -1
  193. package/file/_file-theme.scss +2 -1
  194. package/file/covalent-core-file.d.ts +1 -1
  195. package/file/directives/file-drop.directive.d.ts +6 -7
  196. package/file/directives/file-select.directive.d.ts +2 -2
  197. package/file/file-input/file-input.component.d.ts +7 -7
  198. package/file/file-upload/file-upload.component.d.ts +16 -9
  199. package/file/{public-api.d.ts → public_api.d.ts} +0 -0
  200. package/file/{file-input → src/file-input}/README.md +46 -37
  201. package/file/{file-upload → src/file-upload}/README.md +36 -27
  202. package/json-formatter/README.md +8 -8
  203. package/json-formatter/collapse.animation.d.ts +24 -0
  204. package/json-formatter/covalent-core-json-formatter.d.ts +1 -1
  205. package/json-formatter/json-formatter.component.d.ts +4 -4
  206. package/json-formatter/{public-api.d.ts → public_api.d.ts} +0 -0
  207. package/layout/README.md +48 -50
  208. package/layout/covalent-core-layout.d.ts +1 -1
  209. package/layout/layout-card-over/layout-card-over.component.d.ts +3 -3
  210. package/layout/layout-footer/layout-footer.component.d.ts +3 -3
  211. package/layout/layout-manage-list/layout-manage-list.component.d.ts +4 -4
  212. package/layout/layout-manage-list/layout-manage-list.directives.d.ts +5 -5
  213. package/layout/layout-nav/layout-nav.component.d.ts +5 -5
  214. package/layout/layout-nav-list/layout-nav-list.component.d.ts +9 -9
  215. package/layout/layout-nav-list/layout-nav-list.directives.d.ts +5 -5
  216. package/layout/layout-toggle.class.d.ts +1 -1
  217. package/layout/layout.component.d.ts +4 -4
  218. package/layout/layout.directives.d.ts +2 -2
  219. package/layout/navigation-drawer/navigation-drawer.component.d.ts +12 -12
  220. package/layout/{public-api.d.ts → public_api.d.ts} +0 -0
  221. package/layout/{layout-card-over → src/layout-card-over}/README.md +19 -17
  222. package/layout/{layout-manage-list → src/layout-manage-list}/README.md +24 -28
  223. package/layout/src/layout-nav/README.md +50 -0
  224. package/layout/{layout-nav-list → src/layout-nav-list}/README.md +44 -40
  225. package/menu/covalent-core-menu.d.ts +1 -1
  226. package/menu/{public-api.d.ts → public_api.d.ts} +0 -0
  227. package/message/README.md +26 -18
  228. package/message/collapse.animation.d.ts +24 -0
  229. package/message/covalent-core-message.d.ts +1 -1
  230. package/message/message.component.d.ts +4 -4
  231. package/message/{public-api.d.ts → public_api.d.ts} +0 -0
  232. package/package.json +36 -55
  233. package/{index.d.ts → public_api.d.ts} +0 -0
  234. package/search/README.md +74 -73
  235. package/search/covalent-core-search.d.ts +1 -1
  236. package/search/{public-api.d.ts → public_api.d.ts} +0 -0
  237. package/search/search-box/search-box.component.d.ts +10 -6
  238. package/search/search-input/search-input.component.d.ts +10 -6
  239. package/search/src/search-box/README.md +73 -0
  240. package/search/src/search-input/README.md +74 -0
  241. package/side-sheet/README.md +3 -5
  242. package/side-sheet/{side-sheet.theme.scss → _side-sheet.theme.scss} +0 -0
  243. package/side-sheet/covalent-core-side-sheet.d.ts +1 -1
  244. package/side-sheet/{public-api.d.ts → public_api.d.ts} +0 -0
  245. package/side-sheet/side-sheet-container.d.ts +18 -7
  246. package/side-sheet/side-sheet.content-directives.d.ts +22 -16
  247. package/side-sheet/side-sheet.d.ts +2 -2
  248. package/side-sheet/side-sheet.module.d.ts +1 -1
  249. package/user-profile/README.md +5 -5
  250. package/user-profile/covalent-core-user-profile.d.ts +1 -1
  251. package/user-profile/user-profile-menu/user-profile-menu.component.d.ts +2 -2
  252. package/user-profile/user-profile.component.d.ts +2 -2
  253. package/breadcrumbs/breadcrumb/breadcrumb.component.scss +0 -25
  254. package/breadcrumbs/breadcrumbs.component.scss +0 -8
  255. package/breadcrumbs/index.d.ts +0 -1
  256. package/common/index.d.ts +0 -1
  257. package/common/material-icons.css +0 -111
  258. package/common/material-icons.css.map +0 -1
  259. package/common/material-icons.scss +0 -3
  260. package/common/platform.css +0 -16819
  261. package/common/platform.css.map +0 -1
  262. package/common/platform.scss +0 -7
  263. package/common/styles/_elevation.scss +0 -280
  264. package/common/styles/_layout.scss +0 -605
  265. package/common/styles/_palette-dark.scss +0 -326
  266. package/common/styles/_palette-light.scss +0 -637
  267. package/common/styles/_rtl.scss +0 -31
  268. package/common/styles/_styles.scss +0 -10
  269. package/common/styles/_theme-functions.scss +0 -25
  270. package/common/styles/_typography-functions.scss +0 -35
  271. package/common/styles/_variables.scss +0 -98
  272. package/common/styles/colors/_colors-dark.scss +0 -1399
  273. package/common/styles/colors/_colors-light.scss +0 -3235
  274. package/common/styles/colors/_colors.scss +0 -7
  275. package/common/styles/core/_button.scss +0 -60
  276. package/common/styles/core/_card.scss +0 -184
  277. package/common/styles/core/_content.scss +0 -43
  278. package/common/styles/core/_core.scss +0 -23
  279. package/common/styles/core/_divider.scss +0 -16
  280. package/common/styles/core/_icons.scss +0 -22
  281. package/common/styles/core/_list.scss +0 -8
  282. package/common/styles/core/_sidenav.scss +0 -22
  283. package/common/styles/core/_structure.scss +0 -127
  284. package/common/styles/core/_toolbar.scss +0 -53
  285. package/common/styles/core/_whiteframe.scss +0 -130
  286. package/common/styles/font/MaterialIcons-Regular-v48.woff2 +0 -0
  287. package/common/styles/font/_font.scss +0 -99
  288. package/common/styles/utilities/_general.scss +0 -65
  289. package/common/styles/utilities/_pad.scss +0 -36
  290. package/common/styles/utilities/_pull.scss +0 -36
  291. package/common/styles/utilities/_push.scss +0 -36
  292. package/common/styles/utilities/_size.scss +0 -24
  293. package/common/styles/utilities/_text.scss +0 -105
  294. package/common/styles/utilities/_utilities.scss +0 -15
  295. package/dialogs/alert-dialog/alert-dialog.component.scss +0 -3
  296. package/dialogs/confirm-dialog/confirm-dialog.component.scss +0 -3
  297. package/dialogs/dialog.component.scss +0 -49
  298. package/dialogs/index.d.ts +0 -1
  299. package/dialogs/prompt-dialog/prompt-dialog.component.scss +0 -16
  300. package/dialogs/window-dialog/window-dialog.component.scss +0 -31
  301. package/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.scss +0 -7
  302. package/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.scss +0 -13
  303. package/dynamic-menu/dynamic-menu.component.scss +0 -0
  304. package/dynamic-menu/index.d.ts +0 -1
  305. package/esm2020/breadcrumbs/index.mjs +0 -2
  306. package/esm2020/breadcrumbs/public-api.mjs +0 -4
  307. package/esm2020/common/index.mjs +0 -2
  308. package/esm2020/common/public-api.mjs +0 -39
  309. package/esm2020/dialogs/index.mjs +0 -2
  310. package/esm2020/dialogs/public-api.mjs +0 -9
  311. package/esm2020/dynamic-menu/index.mjs +0 -2
  312. package/esm2020/file/index.mjs +0 -2
  313. package/esm2020/file/public-api.mjs +0 -7
  314. package/esm2020/index.mjs +0 -2
  315. package/esm2020/json-formatter/index.mjs +0 -2
  316. package/esm2020/json-formatter/public-api.mjs +0 -3
  317. package/esm2020/layout/index.mjs +0 -2
  318. package/esm2020/layout/public-api.mjs +0 -13
  319. package/esm2020/menu/index.mjs +0 -2
  320. package/esm2020/menu/public-api.mjs +0 -3
  321. package/esm2020/message/index.mjs +0 -2
  322. package/esm2020/message/public-api.mjs +0 -3
  323. package/esm2020/search/index.mjs +0 -2
  324. package/esm2020/search/public-api.mjs +0 -4
  325. package/esm2020/side-sheet/index.mjs +0 -2
  326. package/esm2020/side-sheet/public-api.mjs +0 -6
  327. package/esm2020/user-profile/index.mjs +0 -2
  328. package/file/file-input/file-input.component.scss +0 -22
  329. package/file/file-upload/file-upload.component.scss +0 -34
  330. package/file/index.d.ts +0 -1
  331. package/json-formatter/index.d.ts +0 -1
  332. package/json-formatter/json-formatter.component.scss +0 -74
  333. package/layout/index.d.ts +0 -1
  334. package/layout/layout-card-over/layout-card-over.component.scss +0 -45
  335. package/layout/layout-footer/layout-footer.component.scss +0 -4
  336. package/layout/layout-manage-list/layout-manage-list.component.scss +0 -82
  337. package/layout/layout-nav/README.md +0 -46
  338. package/layout/layout-nav/layout-nav.component.scss +0 -54
  339. package/layout/layout-nav-list/layout-nav-list.component.scss +0 -115
  340. package/layout/layout.component.scss +0 -16
  341. package/layout/navigation-drawer/navigation-drawer.component.scss +0 -81
  342. package/menu/index.d.ts +0 -1
  343. package/menu/menu.component.scss +0 -51
  344. package/message/index.d.ts +0 -1
  345. package/message/message.component.scss +0 -32
  346. package/schematics/README.md +0 -66
  347. package/schematics/ng-add/files/theme.scss +0 -64
  348. package/search/index.d.ts +0 -1
  349. package/search/search-box/README.md +0 -62
  350. package/search/search-box/search-box.component.scss +0 -37
  351. package/search/search-input/README.md +0 -65
  352. package/search/search-input/search-input.component.scss +0 -75
  353. package/side-sheet/index.d.ts +0 -1
  354. package/side-sheet/side-sheet.scss +0 -68
  355. package/theming/prebuilt/blue-grey-deep-orange.css +0 -2815
  356. package/theming/prebuilt/blue-grey-deep-orange.css.map +0 -1
  357. package/theming/prebuilt/blue-grey-deep-orange.scss +0 -20
  358. package/theming/prebuilt/blue-orange.css +0 -2815
  359. package/theming/prebuilt/blue-orange.css.map +0 -1
  360. package/theming/prebuilt/blue-orange.scss +0 -20
  361. package/theming/prebuilt/indigo-pink.css +0 -2815
  362. package/theming/prebuilt/indigo-pink.css.map +0 -1
  363. package/theming/prebuilt/indigo-pink.scss +0 -20
  364. package/theming/prebuilt/orange-light-blue.css +0 -2815
  365. package/theming/prebuilt/orange-light-blue.css.map +0 -1
  366. package/theming/prebuilt/orange-light-blue.scss +0 -20
  367. package/theming/prebuilt/teal-orange.css +0 -2815
  368. package/theming/prebuilt/teal-orange.css.map +0 -1
  369. package/theming/prebuilt/teal-orange.scss +0 -20
  370. package/user-profile/index.d.ts +0 -1
  371. package/user-profile/user-profile-menu/user-profile-menu.component.scss +0 -41
@@ -1,5 +1,5 @@
1
1
  /* tslint:disable */
2
- import { Directive, Input, Optional, ElementRef } from '@angular/core';
2
+ import { Directive, Input, Optional, ElementRef, HostBinding, HostListener, } from '@angular/core';
3
3
  import { CovalentSideSheet } from './side-sheet';
4
4
  import { _closeSideSheetVia, CovalentSideSheetRef } from './side-sheet-ref';
5
5
  import * as i0 from "@angular/core";
@@ -10,7 +10,7 @@ let dialogElementUid = 0;
10
10
  /**
11
11
  * Button that will close the current dialog.
12
12
  */
13
- export class CovalentSideSheetClose {
13
+ export class CovalentSideSheetCloseDirective {
14
14
  constructor(dialogRef, _elementRef, _dialog) {
15
15
  this.dialogRef = dialogRef;
16
16
  this._elementRef = _elementRef;
@@ -18,6 +18,9 @@ export class CovalentSideSheetClose {
18
18
  /** Default to "button" to prevents accidental form submits. */
19
19
  this.type = 'button';
20
20
  }
21
+ onClick($event) {
22
+ this._onButtonClick($event);
23
+ }
21
24
  ngOnInit() {
22
25
  if (!this.dialogRef) {
23
26
  // When this directive is included in a dialog via TemplateRef (rather than being
@@ -29,7 +32,8 @@ export class CovalentSideSheetClose {
29
32
  }
30
33
  }
31
34
  ngOnChanges(changes) {
32
- const proxiedChange = changes['_CovalentSideSheetClose'] || changes['_CovalentSideSheetCloseResult'];
35
+ const proxiedChange = changes['_CovalentSideSheetClose'] ||
36
+ changes['_CovalentSideSheetCloseResult'];
33
37
  if (proxiedChange) {
34
38
  this.dialogResult = proxiedChange.currentValue;
35
39
  }
@@ -42,41 +46,41 @@ export class CovalentSideSheetClose {
42
46
  _closeSideSheetVia(this.dialogRef, event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse', this.dialogResult);
43
47
  }
44
48
  }
45
- /** @nocollapse */ /** @nocollapse */ CovalentSideSheetClose.ɵfac = function CovalentSideSheetClose_Factory(t) { return new (t || CovalentSideSheetClose)(i0.ɵɵdirectiveInject(i1.CovalentSideSheetRef, 8), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.CovalentSideSheet)); };
46
- /** @nocollapse */ /** @nocollapse */ CovalentSideSheetClose.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: CovalentSideSheetClose, selectors: [["", "td-side-sheet-close", ""], ["", "CovalentSideSheetClose", ""]], hostVars: 2, hostBindings: function CovalentSideSheetClose_HostBindings(rf, ctx) { if (rf & 1) {
47
- i0.ɵɵlistener("click", function CovalentSideSheetClose_click_HostBindingHandler($event) { return ctx._onButtonClick($event); });
48
- } if (rf & 2) {
49
- i0.ɵɵattribute("aria-label", ctx.ariaLabel || null)("type", ctx.type);
50
- } }, inputs: { ariaLabel: ["aria-label", "ariaLabel"], type: "type", dialogResult: ["td-side-sheet-close", "dialogResult"], _CovalentSideSheetClose: ["CovalentSideSheetClose", "_CovalentSideSheetClose"] }, exportAs: ["CovalentSideSheetClose"], features: [i0.ɵɵNgOnChangesFeature] });
51
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CovalentSideSheetClose, [{
52
- type: Directive,
53
- args: [{
54
- selector: '[td-side-sheet-close], [CovalentSideSheetClose]',
55
- exportAs: 'CovalentSideSheetClose',
56
- host: {
57
- '(click)': '_onButtonClick($event)',
58
- '[attr.aria-label]': 'ariaLabel || null',
59
- '[attr.type]': 'type',
60
- },
61
- }]
62
- }], function () { return [{ type: i1.CovalentSideSheetRef, decorators: [{
63
- type: Optional
64
- }] }, { type: i0.ElementRef }, { type: i2.CovalentSideSheet }]; }, { ariaLabel: [{
65
- type: Input,
66
- args: ['aria-label']
67
- }], type: [{
68
- type: Input
69
- }], dialogResult: [{
70
- type: Input,
71
- args: ['td-side-sheet-close']
72
- }], _CovalentSideSheetClose: [{
73
- type: Input,
74
- args: ['CovalentSideSheetClose']
75
- }] }); })();
49
+ CovalentSideSheetCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheetCloseDirective, deps: [{ token: i1.CovalentSideSheetRef, optional: true }, { token: i0.ElementRef }, { token: i2.CovalentSideSheet }], target: i0.ɵɵFactoryTarget.Directive });
50
+ CovalentSideSheetCloseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: CovalentSideSheetCloseDirective, selector: "[td-side-sheet-close], [CovalentSideSheetClose]", inputs: { ariaLabel: ["aria-label", "ariaLabel"], type: "type", dialogResult: ["td-side-sheet-close", "dialogResult"], _CovalentSideSheetClose: ["CovalentSideSheetClose", "_CovalentSideSheetClose"] }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.arial-label": "this.ariaLabel", "attr.type": "this.type" } }, exportAs: ["CovalentSideSheetClose"], usesOnChanges: true, ngImport: i0 });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheetCloseDirective, decorators: [{
52
+ type: Directive,
53
+ args: [{
54
+ selector: '[td-side-sheet-close], [CovalentSideSheetClose]',
55
+ exportAs: 'CovalentSideSheetClose',
56
+ }]
57
+ }], ctorParameters: function () { return [{ type: i1.CovalentSideSheetRef, decorators: [{
58
+ type: Optional
59
+ }] }, { type: i0.ElementRef }, { type: i2.CovalentSideSheet }]; }, propDecorators: { ariaLabel: [{
60
+ type: HostBinding,
61
+ args: ['attr.arial-label']
62
+ }, {
63
+ type: Input,
64
+ args: ['aria-label']
65
+ }], type: [{
66
+ type: HostBinding,
67
+ args: ['attr.type']
68
+ }, {
69
+ type: Input
70
+ }], dialogResult: [{
71
+ type: Input,
72
+ args: ['td-side-sheet-close']
73
+ }], _CovalentSideSheetClose: [{
74
+ type: Input,
75
+ args: ['CovalentSideSheetClose']
76
+ }], onClick: [{
77
+ type: HostListener,
78
+ args: ['click', ['$event']]
79
+ }] } });
76
80
  /**
77
81
  * Title of a side sheet element. Stays fixed to the top of the side sheet when scrolling.
78
82
  */
79
- export class CovalentSideSheetTitle {
83
+ export class CovalentSideSheetTitleDirective {
80
84
  constructor(
81
85
  // The dialog title directive is always used in combination with a `CovalentSideSheetRef`.
82
86
  // tslint:disable-next-line: lightweight-tokens
@@ -86,6 +90,8 @@ export class CovalentSideSheetTitle {
86
90
  this._dialog = _dialog;
87
91
  /** Unique id for the dialog title. If none is supplied, it will be auto-generated. */
88
92
  this.id = `td-side-sheet-title-${dialogElementUid++}`;
93
+ this.tdSideSheetTitle = true;
94
+ this.idAttr = this.id;
89
95
  }
90
96
  ngOnInit() {
91
97
  if (this._dialogRef) {
@@ -101,68 +107,83 @@ export class CovalentSideSheetTitle {
101
107
  }
102
108
  }
103
109
  }
104
- /** @nocollapse */ /** @nocollapse */ CovalentSideSheetTitle.ɵfac = function CovalentSideSheetTitle_Factory(t) { return new (t || CovalentSideSheetTitle)(i0.ɵɵdirectiveInject(i1.CovalentSideSheetRef, 8), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.CovalentSideSheet)); };
105
- /** @nocollapse */ /** @nocollapse */ CovalentSideSheetTitle.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: CovalentSideSheetTitle, selectors: [["", "td-side-sheet-title", ""], ["", "CovalentSideSheetTitle", ""]], hostAttrs: [1, "td-side-sheet-title"], hostVars: 1, hostBindings: function CovalentSideSheetTitle_HostBindings(rf, ctx) { if (rf & 2) {
106
- i0.ɵɵhostProperty("id", ctx.id);
107
- } }, inputs: { id: "id" }, exportAs: ["CovalentSideSheetTitle"] });
108
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CovalentSideSheetTitle, [{
109
- type: Directive,
110
- args: [{
111
- selector: '[td-side-sheet-title], [CovalentSideSheetTitle]',
112
- exportAs: 'CovalentSideSheetTitle',
113
- host: {
114
- 'class': 'td-side-sheet-title',
115
- '[id]': 'id',
116
- },
117
- }]
118
- }], function () { return [{ type: i1.CovalentSideSheetRef, decorators: [{
119
- type: Optional
120
- }] }, { type: i0.ElementRef }, { type: i2.CovalentSideSheet }]; }, { id: [{
121
- type: Input
122
- }] }); })();
110
+ CovalentSideSheetTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheetTitleDirective, deps: [{ token: i1.CovalentSideSheetRef, optional: true }, { token: i0.ElementRef }, { token: i2.CovalentSideSheet }], target: i0.ɵɵFactoryTarget.Directive });
111
+ CovalentSideSheetTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: CovalentSideSheetTitleDirective, selector: "[td-side-sheet-title], [CovalentSideSheetTitle]", inputs: { id: "id" }, host: { properties: { "class.td-side-sheet-title": "this.tdSideSheetTitle", "attr.id": "this.idAttr" } }, exportAs: ["CovalentSideSheetTitle"], ngImport: i0 });
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheetTitleDirective, decorators: [{
113
+ type: Directive,
114
+ args: [{
115
+ selector: '[td-side-sheet-title], [CovalentSideSheetTitle]',
116
+ exportAs: 'CovalentSideSheetTitle',
117
+ }]
118
+ }], ctorParameters: function () { return [{ type: i1.CovalentSideSheetRef, decorators: [{
119
+ type: Optional
120
+ }] }, { type: i0.ElementRef }, { type: i2.CovalentSideSheet }]; }, propDecorators: { id: [{
121
+ type: Input
122
+ }], tdSideSheetTitle: [{
123
+ type: HostBinding,
124
+ args: ['class.td-side-sheet-title']
125
+ }], idAttr: [{
126
+ type: HostBinding,
127
+ args: ['attr.id']
128
+ }] } });
123
129
  /**
124
130
  * Scrollable content container of a dialog.
125
131
  */
126
- export class CovalentSideSheetContent {
132
+ export class CovalentSideSheetContentDirective {
133
+ constructor() {
134
+ this.tdSideSheetContent = true;
135
+ }
127
136
  }
128
- /** @nocollapse */ /** @nocollapse */ CovalentSideSheetContent.ɵfac = function CovalentSideSheetContent_Factory(t) { return new (t || CovalentSideSheetContent)(); };
129
- /** @nocollapse */ /** @nocollapse */ CovalentSideSheetContent.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: CovalentSideSheetContent, selectors: [["", "td-side-sheet-content", ""], ["td-side-sheet-content"], ["", "CovalentSideSheetContent", ""]], hostAttrs: [1, "td-side-sheet-content"] });
130
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CovalentSideSheetContent, [{
131
- type: Directive,
132
- args: [{
133
- selector: `[td-side-sheet-content], td-side-sheet-content, [CovalentSideSheetContent]`,
134
- host: { class: 'td-side-sheet-content' },
135
- }]
136
- }], null, null); })();
137
+ CovalentSideSheetContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheetContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
138
+ CovalentSideSheetContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: CovalentSideSheetContentDirective, selector: "[td-side-sheet-content], td-side-sheet-content, [CovalentSideSheetContent]", host: { properties: { "class.td-side-sheet-content": "this.tdSideSheetContent" } }, ngImport: i0 });
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheetContentDirective, decorators: [{
140
+ type: Directive,
141
+ args: [{
142
+ selector: `[td-side-sheet-content], td-side-sheet-content, [CovalentSideSheetContent]`,
143
+ }]
144
+ }], propDecorators: { tdSideSheetContent: [{
145
+ type: HostBinding,
146
+ args: ['class.td-side-sheet-content']
147
+ }] } });
137
148
  /**
138
149
  * Container for the bottom action buttons in a dialog.
139
150
  * Stays fixed to the bottom when scrolling.
140
151
  */
141
- export class CovalentSideSheetActions {
152
+ export class CovalentSideSheetActionsDirective {
153
+ constructor() {
154
+ this.tdSideSheetActions = true;
155
+ }
142
156
  }
143
- /** @nocollapse */ /** @nocollapse */ CovalentSideSheetActions.ɵfac = function CovalentSideSheetActions_Factory(t) { return new (t || CovalentSideSheetActions)(); };
144
- /** @nocollapse */ /** @nocollapse */ CovalentSideSheetActions.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: CovalentSideSheetActions, selectors: [["", "td-side-sheet-actions", ""], ["td-side-sheet-actions"], ["", "CovalentSideSheetActions", ""]], hostAttrs: [1, "td-side-sheet-actions"] });
145
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CovalentSideSheetActions, [{
146
- type: Directive,
147
- args: [{
148
- selector: `[td-side-sheet-actions], td-side-sheet-actions, [CovalentSideSheetActions]`,
149
- host: { class: 'td-side-sheet-actions' },
150
- }]
151
- }], null, null); })();
157
+ CovalentSideSheetActionsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheetActionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
158
+ CovalentSideSheetActionsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: CovalentSideSheetActionsDirective, selector: "[td-side-sheet-actions], td-side-sheet-actions, [CovalentSideSheetActions]", host: { properties: { "class.td-side-sheet-actions": "this.tdSideSheetActions" } }, ngImport: i0 });
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheetActionsDirective, decorators: [{
160
+ type: Directive,
161
+ args: [{
162
+ selector: `[td-side-sheet-actions], td-side-sheet-actions, [CovalentSideSheetActions]`,
163
+ }]
164
+ }], propDecorators: { tdSideSheetActions: [{
165
+ type: HostBinding,
166
+ args: ['class.td-side-sheet-actions']
167
+ }] } });
152
168
  /**
153
169
  * Container for the wrapper part of the dialog
154
170
  */
155
- export class CovalentSideSheetWrapper {
171
+ export class CovalentSideSheetWrapperDirective {
172
+ constructor() {
173
+ this.tdSideSheetWrapper = true;
174
+ }
156
175
  }
157
- /** @nocollapse */ /** @nocollapse */ CovalentSideSheetWrapper.ɵfac = function CovalentSideSheetWrapper_Factory(t) { return new (t || CovalentSideSheetWrapper)(); };
158
- /** @nocollapse */ /** @nocollapse */ CovalentSideSheetWrapper.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: CovalentSideSheetWrapper, selectors: [["", "td-side-sheet-wrapper", ""], ["td-side-sheet-wrapper"], ["", "CovalentSideSheetWrapper", ""]], hostAttrs: [1, "td-side-sheet-wrapper"] });
159
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CovalentSideSheetWrapper, [{
160
- type: Directive,
161
- args: [{
162
- selector: `[td-side-sheet-wrapper], td-side-sheet-wrapper, [CovalentSideSheetWrapper]`,
163
- host: { class: 'td-side-sheet-wrapper' },
164
- }]
165
- }], null, null); })();
176
+ CovalentSideSheetWrapperDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheetWrapperDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
177
+ CovalentSideSheetWrapperDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: CovalentSideSheetWrapperDirective, selector: "[td-side-sheet-wrapper], td-side-sheet-wrapper, [CovalentSideSheetWrapper]", host: { properties: { "class.td-side-sheet-wrapper": "this.tdSideSheetWrapper" } }, ngImport: i0 });
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheetWrapperDirective, decorators: [{
179
+ type: Directive,
180
+ args: [{
181
+ selector: `[td-side-sheet-wrapper], td-side-sheet-wrapper, [CovalentSideSheetWrapper]`,
182
+ }]
183
+ }], propDecorators: { tdSideSheetWrapper: [{
184
+ type: HostBinding,
185
+ args: ['class.td-side-sheet-wrapper']
186
+ }] } });
166
187
  /**
167
188
  * Finds the closest CovalentSideSheetRef to an element by looking at the DOM.
168
189
  * @param element Element relative to which to look for a dialog.
@@ -173,6 +194,8 @@ function getClosestDialog(element, openDialogs) {
173
194
  while (parent && !parent.classList.contains('td-side-sheet-container')) {
174
195
  parent = parent.parentElement;
175
196
  }
176
- return parent ? openDialogs.find((dialog) => dialog.id === parent.id) : null;
197
+ return parent
198
+ ? openDialogs.find((dialog) => dialog.id === parent?.id) ?? openDialogs[0]
199
+ : openDialogs[0];
177
200
  }
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb250ZW50LWRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vY29yZS9zaWRlLXNoZWV0L3NpZGUtc2hlZXQuY29udGVudC1kaXJlY3RpdmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFpQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBRTVFLCtEQUErRDtBQUMvRCxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUV6Qjs7R0FFRztBQVVILE1BQU0sT0FBTyxzQkFBc0I7SUFZakMsWUFDcUIsU0FBb0MsRUFDL0MsV0FBb0MsRUFDcEMsT0FBMEI7UUFGZixjQUFTLEdBQVQsU0FBUyxDQUEyQjtRQUMvQyxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFYcEMsK0RBQStEO1FBQ3RELFNBQUksR0FBa0MsUUFBUSxDQUFDO0lBV3JELENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsaUZBQWlGO1lBQ2pGLGdGQUFnRjtZQUNoRixnRkFBZ0Y7WUFDaEYsb0ZBQW9GO1lBQ3BGLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUUsQ0FBQztTQUNuRjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLHlC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QkFBd0I7NkhBQXhCLHdCQUF3Qjt1RkFBeEIsd0JBQXdCO2NBSnBDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsNEVBQTRFO2dCQUN0RixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7YUFDekM7O0FBR0Q7O0dBRUc7QUFLSCxNQUFNLE9BQU8sd0JBQXdCOztzSUFBeEIsd0JBQXdCOzZIQUF4Qix3QkFBd0I7dUZBQXhCLHdCQUF3QjtjQUpwQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDRFQUE0RTtnQkFDdEYsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFO2FBQ3pDOztBQUdEOzs7O0dBSUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLE9BQWdDLEVBQUUsV0FBd0M7SUFDbEcsSUFBSSxNQUFNLEdBQXVCLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO0lBRXJFLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsRUFBRTtRQUN0RSxNQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztLQUMvQjtJQUVELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLE1BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE9wdGlvbmFsLCBTaW1wbGVDaGFuZ2VzLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3ZhbGVudFNpZGVTaGVldCB9IGZyb20gJy4vc2lkZS1zaGVldCc7XG5pbXBvcnQgeyBfY2xvc2VTaWRlU2hlZXRWaWEsIENvdmFsZW50U2lkZVNoZWV0UmVmIH0gZnJvbSAnLi9zaWRlLXNoZWV0LXJlZic7XG5cbi8qKiBDb3VudGVyIHVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEcyBmb3IgZGlhbG9nIGVsZW1lbnRzLiAqL1xubGV0IGRpYWxvZ0VsZW1lbnRVaWQgPSAwO1xuXG4vKipcbiAqIEJ1dHRvbiB0aGF0IHdpbGwgY2xvc2UgdGhlIGN1cnJlbnQgZGlhbG9nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGQtc2lkZS1zaGVldC1jbG9zZV0sIFtDb3ZhbGVudFNpZGVTaGVldENsb3NlXScsXG4gIGV4cG9ydEFzOiAnQ292YWxlbnRTaWRlU2hlZXRDbG9zZScsXG4gIGhvc3Q6IHtcbiAgICAnKGNsaWNrKSc6ICdfb25CdXR0b25DbGljaygkZXZlbnQpJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnYXJpYUxhYmVsIHx8IG51bGwnLFxuICAgICdbYXR0ci50eXBlXSc6ICd0eXBlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRDbG9zZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqIFNjcmVlbnJlYWRlciBsYWJlbCBmb3IgdGhlIGJ1dHRvbi4gKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsJykgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqIERlZmF1bHQgdG8gXCJidXR0b25cIiB0byBwcmV2ZW50cyBhY2NpZGVudGFsIGZvcm0gc3VibWl0cy4gKi9cbiAgQElucHV0KCkgdHlwZTogJ3N1Ym1pdCcgfCAnYnV0dG9uJyB8ICdyZXNldCcgPSAnYnV0dG9uJztcblxuICAvKiogRGlhbG9nIGNsb3NlIGlucHV0LiAqL1xuICBASW5wdXQoJ3RkLXNpZGUtc2hlZXQtY2xvc2UnKSBkaWFsb2dSZXN1bHQ6IGFueTtcblxuICBASW5wdXQoJ0NvdmFsZW50U2lkZVNoZWV0Q2xvc2UnKSBfQ292YWxlbnRTaWRlU2hlZXRDbG9zZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT4sXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBDb3ZhbGVudFNpZGVTaGVldCxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgIC8vIFdoZW4gdGhpcyBkaXJlY3RpdmUgaXMgaW5jbHVkZWQgaW4gYSBkaWFsb2cgdmlhIFRlbXBsYXRlUmVmIChyYXRoZXIgdGhhbiBiZWluZ1xuICAgICAgLy8gaW4gYSBDb21wb25lbnQpLCB0aGUgRGlhbG9nUmVmIGlzbid0IGF2YWlsYWJsZSB2aWEgaW5qZWN0aW9uIGJlY2F1c2UgZW1iZWRkZWRcbiAgICAgIC8vIHZpZXdzIGNhbm5vdCBiZSBnaXZlbiBhIGN1c3RvbSBpbmplY3Rvci4gSW5zdGVhZCwgd2UgbG9vayB1cCB0aGUgRGlhbG9nUmVmIGJ5XG4gICAgICAvLyBJRC4gVGhpcyBtdXN0IG9jY3VyIGluIGBvbkluaXRgLCBhcyB0aGUgSUQgYmluZGluZyBmb3IgdGhlIGRpYWxvZyBjb250YWluZXIgd29uJ3RcbiAgICAgIC8vIGJlIHJlc29sdmVkIGF0IGNvbnN0cnVjdG9yIHRpbWUuXG4gICAgICB0aGlzLmRpYWxvZ1JlZiA9IGdldENsb3Nlc3REaWFsb2codGhpcy5fZWxlbWVudFJlZiwgdGhpcy5fZGlhbG9nLm9wZW5TaWRlU2hlZXRzKSE7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHByb3hpZWRDaGFuZ2UgPSBjaGFuZ2VzWydfQ292YWxlbnRTaWRlU2hlZXRDbG9zZSddIHx8IGNoYW5nZXNbJ19Db3ZhbGVudFNpZGVTaGVldENsb3NlUmVzdWx0J107XG5cbiAgICBpZiAocHJveGllZENoYW5nZSkge1xuICAgICAgdGhpcy5kaWFsb2dSZXN1bHQgPSBwcm94aWVkQ2hhbmdlLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBfb25CdXR0b25DbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIC8vIERldGVybWluYXRlIHRoZSBmb2N1cyBvcmlnaW4gdXNpbmcgdGhlIGNsaWNrIGV2ZW50LCBiZWNhdXNlIHVzaW5nIHRoZSBGb2N1c01vbml0b3Igd2lsbFxuICAgIC8vIHJlc3VsdCBpbiBpbmNvcnJlY3Qgb3JpZ2lucy4gTW9zdCBvZiB0aGUgdGltZSwgY2xvc2UgYnV0dG9ucyB3aWxsIGJlIGF1dG8gZm9jdXNlZCBpbiB0aGVcbiAgICAvLyBkaWFsb2csIGFuZCB0aGVyZWZvcmUgY2xpY2tpbmcgdGhlIGJ1dHRvbiB3b24ndCByZXN1bHQgaW4gYSBmb2N1cyBjaGFuZ2UuIFRoaXMgbWVhbnMgdGhhdFxuICAgIC8vIHRoZSBGb2N1c01vbml0b3Igd29uJ3QgZGV0ZWN0IGFueSBvcmlnaW4gY2hhbmdlLCBhbmQgd2lsbCBhbHdheXMgb3V0cHV0IGBwcm9ncmFtYC5cbiAgICBfY2xvc2VTaWRlU2hlZXRWaWEoXG4gICAgICB0aGlzLmRpYWxvZ1JlZixcbiAgICAgIGV2ZW50LnNjcmVlblggPT09IDAgJiYgZXZlbnQuc2NyZWVuWSA9PT0gMCA/ICdrZXlib2FyZCcgOiAnbW91c2UnLFxuICAgICAgdGhpcy5kaWFsb2dSZXN1bHQsXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFRpdGxlIG9mIGEgc2lkZSBzaGVldCBlbGVtZW50LiBTdGF5cyBmaXhlZCB0byB0aGUgdG9wIG9mIHRoZSBzaWRlIHNoZWV0IHdoZW4gc2Nyb2xsaW5nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGQtc2lkZS1zaGVldC10aXRsZV0sIFtDb3ZhbGVudFNpZGVTaGVldFRpdGxlXScsXG4gIGV4cG9ydEFzOiAnQ292YWxlbnRTaWRlU2hlZXRUaXRsZScsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAndGQtc2lkZS1zaGVldC10aXRsZScsXG4gICAgJ1tpZF0nOiAnaWQnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldFRpdGxlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIFVuaXF1ZSBpZCBmb3IgdGhlIGRpYWxvZyB0aXRsZS4gSWYgbm9uZSBpcyBzdXBwbGllZCwgaXQgd2lsbCBiZSBhdXRvLWdlbmVyYXRlZC4gKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9IGB0ZC1zaWRlLXNoZWV0LXRpdGxlLSR7ZGlhbG9nRWxlbWVudFVpZCsrfWA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gVGhlIGRpYWxvZyB0aXRsZSBkaXJlY3RpdmUgaXMgYWx3YXlzIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBhIGBDb3ZhbGVudFNpZGVTaGVldFJlZmAuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBsaWdodHdlaWdodC10b2tlbnNcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaWFsb2dSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT4sXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBDb3ZhbGVudFNpZGVTaGVldCxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kaWFsb2dSZWYpIHtcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9kaWFsb2dSZWYuX2NvbnRhaW5lckluc3RhbmNlO1xuXG4gICAgICAgIGlmIChjb250YWluZXIgJiYgIWNvbnRhaW5lci5fYXJpYUxhYmVsbGVkQnkpIHtcbiAgICAgICAgICBjb250YWluZXIuX2FyaWFMYWJlbGxlZEJ5ID0gdGhpcy5pZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RpYWxvZ1JlZiA9IGdldENsb3Nlc3REaWFsb2codGhpcy5fZWxlbWVudFJlZiwgdGhpcy5fZGlhbG9nLm9wZW5TaWRlU2hlZXRzKSE7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU2Nyb2xsYWJsZSBjb250ZW50IGNvbnRhaW5lciBvZiBhIGRpYWxvZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgW3RkLXNpZGUtc2hlZXQtY29udGVudF0sIHRkLXNpZGUtc2hlZXQtY29udGVudCwgW0NvdmFsZW50U2lkZVNoZWV0Q29udGVudF1gLFxuICBob3N0OiB7IGNsYXNzOiAndGQtc2lkZS1zaGVldC1jb250ZW50JyB9LFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldENvbnRlbnQge31cblxuLyoqXG4gKiBDb250YWluZXIgZm9yIHRoZSBib3R0b20gYWN0aW9uIGJ1dHRvbnMgaW4gYSBkaWFsb2cuXG4gKiBTdGF5cyBmaXhlZCB0byB0aGUgYm90dG9tIHdoZW4gc2Nyb2xsaW5nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IGBbdGQtc2lkZS1zaGVldC1hY3Rpb25zXSwgdGQtc2lkZS1zaGVldC1hY3Rpb25zLCBbQ292YWxlbnRTaWRlU2hlZXRBY3Rpb25zXWAsXG4gIGhvc3Q6IHsgY2xhc3M6ICd0ZC1zaWRlLXNoZWV0LWFjdGlvbnMnIH0sXG59KVxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0QWN0aW9ucyB7fVxuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgdGhlIHdyYXBwZXIgcGFydCBvZiB0aGUgZGlhbG9nXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFt0ZC1zaWRlLXNoZWV0LXdyYXBwZXJdLCB0ZC1zaWRlLXNoZWV0LXdyYXBwZXIsIFtDb3ZhbGVudFNpZGVTaGVldFdyYXBwZXJdYCxcbiAgaG9zdDogeyBjbGFzczogJ3RkLXNpZGUtc2hlZXQtd3JhcHBlcicgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRXcmFwcGVyIHt9XG5cbi8qKlxuICogRmluZHMgdGhlIGNsb3Nlc3QgQ292YWxlbnRTaWRlU2hlZXRSZWYgdG8gYW4gZWxlbWVudCBieSBsb29raW5nIGF0IHRoZSBET00uXG4gKiBAcGFyYW0gZWxlbWVudCBFbGVtZW50IHJlbGF0aXZlIHRvIHdoaWNoIHRvIGxvb2sgZm9yIGEgZGlhbG9nLlxuICogQHBhcmFtIG9wZW5EaWFsb2dzIFJlZmVyZW5jZXMgdG8gdGhlIGN1cnJlbnRseS1vcGVuIGRpYWxvZ3MuXG4gKi9cbmZ1bmN0aW9uIGdldENsb3Nlc3REaWFsb2coZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIG9wZW5EaWFsb2dzOiBDb3ZhbGVudFNpZGVTaGVldFJlZjxhbnk+W10pIHtcbiAgbGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgd2hpbGUgKHBhcmVudCAmJiAhcGFyZW50LmNsYXNzTGlzdC5jb250YWlucygndGQtc2lkZS1zaGVldC1jb250YWluZXInKSkge1xuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50O1xuICB9XG5cbiAgcmV0dXJuIHBhcmVudCA/IG9wZW5EaWFsb2dzLmZpbmQoKGRpYWxvZykgPT4gZGlhbG9nLmlkID09PSBwYXJlbnQhLmlkKSA6IG51bGw7XG59XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb250ZW50LWRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC5jb250ZW50LWRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLFFBQVEsRUFFUixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFFNUUsK0RBQStEO0FBQy9ELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBRXpCOztHQUVHO0FBS0gsTUFBTSxPQUFPLCtCQUErQjtJQW9CMUMsWUFDcUIsU0FBb0MsRUFDL0MsV0FBb0MsRUFDcEMsT0FBMEI7UUFGZixjQUFTLEdBQVQsU0FBUyxDQUEyQjtRQUMvQyxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFqQnBDLCtEQUErRDtRQUcvRCxTQUFJLEdBQWtDLFFBQVEsQ0FBQztJQWU1QyxDQUFDO0lBUitCLE9BQU8sQ0FBQyxNQUFrQjtRQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFRRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsaUZBQWlGO1lBQ2pGLGdGQUFnRjtZQUNoRixnRkFBZ0Y7WUFDaEYsb0ZBQW9GO1lBQ3BGLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUMvQixJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMs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QUUsRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvdmFsZW50U2lkZVNoZWV0IH0gZnJvbSAnLi9zaWRlLXNoZWV0JztcbmltcG9ydCB7IF9jbG9zZVNpZGVTaGVldFZpYSwgQ292YWxlbnRTaWRlU2hlZXRSZWYgfSBmcm9tICcuL3NpZGUtc2hlZXQtcmVmJztcblxuLyoqIENvdW50ZXIgdXNlZCB0byBnZW5lcmF0ZSB1bmlxdWUgSURzIGZvciBkaWFsb2cgZWxlbWVudHMuICovXG5sZXQgZGlhbG9nRWxlbWVudFVpZCA9IDA7XG5cbi8qKlxuICogQnV0dG9uIHRoYXQgd2lsbCBjbG9zZSB0aGUgY3VycmVudCBkaWFsb2cuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZC1zaWRlLXNoZWV0LWNsb3NlXSwgW0NvdmFsZW50U2lkZVNoZWV0Q2xvc2VdJyxcbiAgZXhwb3J0QXM6ICdDb3ZhbGVudFNpZGVTaGVldENsb3NlJyxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRDbG9zZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqIFNjcmVlbnJlYWRlciBsYWJlbCBmb3IgdGhlIGJ1dHRvbi4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWFsLWxhYmVsJylcbiAgQElucHV0KCdhcmlhLWxhYmVsJylcbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBEZWZhdWx0IHRvIFwiYnV0dG9uXCIgdG8gcHJldmVudHMgYWNjaWRlbnRhbCBmb3JtIHN1Ym1pdHMuICovXG4gIEBIb3N0QmluZGluZygnYXR0ci50eXBlJylcbiAgQElucHV0KClcbiAgdHlwZTogJ3N1Ym1pdCcgfCAnYnV0dG9uJyB8ICdyZXNldCcgPSAnYnV0dG9uJztcblxuICAvKiogRGlhbG9nIGNsb3NlIGlucHV0LiAqL1xuICBASW5wdXQoJ3RkLXNpZGUtc2hlZXQtY2xvc2UnKSBkaWFsb2dSZXN1bHQ6IGFueTtcblxuICBASW5wdXQoJ0NvdmFsZW50U2lkZVNoZWV0Q2xvc2UnKSBfQ292YWxlbnRTaWRlU2hlZXRDbG9zZTogYW55O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgb25DbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLl9vbkJ1dHRvbkNsaWNrKCRldmVudCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZGlhbG9nUmVmOiBDb3ZhbGVudFNpZGVTaGVldFJlZjxhbnk+LFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgX2RpYWxvZzogQ292YWxlbnRTaWRlU2hlZXRcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgIC8vIFdoZW4gdGhpcyBkaXJlY3RpdmUgaXMgaW5jbHVkZWQgaW4gYSBkaWFsb2cgdmlhIFRlbXBsYXRlUmVmIChyYXRoZXIgdGhhbiBiZWluZ1xuICAgICAgLy8gaW4gYSBDb21wb25lbnQpLCB0aGUgRGlhbG9nUmVmIGlzbid0IGF2YWlsYWJsZSB2aWEgaW5qZWN0aW9uIGJlY2F1c2UgZW1iZWRkZWRcbiAgICAgIC8vIHZpZXdzIGNhbm5vdCBiZSBnaXZlbiBhIGN1c3RvbSBpbmplY3Rvci4gSW5zdGVhZCwgd2UgbG9vayB1cCB0aGUgRGlhbG9nUmVmIGJ5XG4gICAgICAvLyBJRC4gVGhpcyBtdXN0IG9jY3VyIGluIGBvbkluaXRgLCBhcyB0aGUgSUQgYmluZGluZyBmb3IgdGhlIGRpYWxvZyBjb250YWluZXIgd29uJ3RcbiAgICAgIC8vIGJlIHJlc29sdmVkIGF0IGNvbnN0cnVjdG9yIHRpbWUuXG4gICAgICB0aGlzLmRpYWxvZ1JlZiA9IGdldENsb3Nlc3REaWFsb2coXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYsXG4gICAgICAgIHRoaXMuX2RpYWxvZy5vcGVuU2lkZVNoZWV0c1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgcHJveGllZENoYW5nZSA9XG4gICAgICBjaGFuZ2VzWydfQ292YWxlbnRTaWRlU2hlZXRDbG9zZSddIHx8XG4gICAgICBjaGFuZ2VzWydfQ292YWxlbnRTaWRlU2hlZXRDbG9zZVJlc3VsdCddO1xuXG4gICAgaWYgKHByb3hpZWRDaGFuZ2UpIHtcbiAgICAgIHRoaXMuZGlhbG9nUmVzdWx0ID0gcHJveGllZENoYW5nZS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgX29uQnV0dG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAvLyBEZXRlcm1pbmF0ZSB0aGUgZm9jdXMgb3JpZ2luIHVzaW5nIHRoZSBjbGljayBldmVudCwgYmVjYXVzZSB1c2luZyB0aGUgRm9jdXNNb25pdG9yIHdpbGxcbiAgICAvLyByZXN1bHQgaW4gaW5jb3JyZWN0IG9yaWdpbnMuIE1vc3Qgb2YgdGhlIHRpbWUsIGNsb3NlIGJ1dHRvbnMgd2lsbCBiZSBhdXRvIGZvY3VzZWQgaW4gdGhlXG4gICAgLy8gZGlhbG9nLCBhbmQgdGhlcmVmb3JlIGNsaWNraW5nIHRoZSBidXR0b24gd29uJ3QgcmVzdWx0IGluIGEgZm9jdXMgY2hhbmdlLiBUaGlzIG1lYW5zIHRoYXRcbiAgICAvLyB0aGUgRm9jdXNNb25pdG9yIHdvbid0IGRldGVjdCBhbnkgb3JpZ2luIGNoYW5nZSwgYW5kIHdpbGwgYWx3YXlzIG91dHB1dCBgcHJvZ3JhbWAuXG4gICAgX2Nsb3NlU2lkZVNoZWV0VmlhKFxuICAgICAgdGhpcy5kaWFsb2dSZWYsXG4gICAgICBldmVudC5zY3JlZW5YID09PSAwICYmIGV2ZW50LnNjcmVlblkgPT09IDAgPyAna2V5Ym9hcmQnIDogJ21vdXNlJyxcbiAgICAgIHRoaXMuZGlhbG9nUmVzdWx0XG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFRpdGxlIG9mIGEgc2lkZSBzaGVldCBlbGVtZW50LiBTdGF5cyBmaXhlZCB0byB0aGUgdG9wIG9mIHRoZSBzaWRlIHNoZWV0IHdoZW4gc2Nyb2xsaW5nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGQtc2lkZS1zaGVldC10aXRsZV0sIFtDb3ZhbGVudFNpZGVTaGVldFRpdGxlXScsXG4gIGV4cG9ydEFzOiAnQ292YWxlbnRTaWRlU2hlZXRUaXRsZScsXG59KVxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0VGl0bGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiogVW5pcXVlIGlkIGZvciB0aGUgZGlhbG9nIHRpdGxlLiBJZiBub25lIGlzIHN1cHBsaWVkLCBpdCB3aWxsIGJlIGF1dG8tZ2VuZXJhdGVkLiAqL1xuICBASW5wdXQoKSBpZCA9IGB0ZC1zaWRlLXNoZWV0LXRpdGxlLSR7ZGlhbG9nRWxlbWVudFVpZCsrfWA7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50ZC1zaWRlLXNoZWV0LXRpdGxlJykgdGRTaWRlU2hlZXRUaXRsZSA9IHRydWU7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgaWRBdHRyID0gdGhpcy5pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvLyBUaGUgZGlhbG9nIHRpdGxlIGRpcmVjdGl2ZSBpcyBhbHdheXMgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGEgYENvdmFsZW50U2lkZVNoZWV0UmVmYC5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGxpZ2h0d2VpZ2h0LXRva2Vuc1xuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RpYWxvZ1JlZjogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PixcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIF9kaWFsb2c6IENvdmFsZW50U2lkZVNoZWV0XG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZGlhbG9nUmVmKSB7XG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5fZGlhbG9nUmVmLl9jb250YWluZXJJbnN0YW5jZTtcblxuICAgICAgICBpZiAoY29udGFpbmVyICYmICFjb250YWluZXIuX2FyaWFMYWJlbGxlZEJ5KSB7XG4gICAgICAgICAgY29udGFpbmVyLl9hcmlhTGFiZWxsZWRCeSA9IHRoaXMuaWQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kaWFsb2dSZWYgPSBnZXRDbG9zZXN0RGlhbG9nKFxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLFxuICAgICAgICB0aGlzLl9kaWFsb2cub3BlblNpZGVTaGVldHNcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU2Nyb2xsYWJsZSBjb250ZW50IGNvbnRhaW5lciBvZiBhIGRpYWxvZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgW3RkLXNpZGUtc2hlZXQtY29udGVudF0sIHRkLXNpZGUtc2hlZXQtY29udGVudCwgW0NvdmFsZW50U2lkZVNoZWV0Q29udGVudF1gLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldENvbnRlbnREaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRkLXNpZGUtc2hlZXQtY29udGVudCcpIHRkU2lkZVNoZWV0Q29udGVudCA9IHRydWU7XG59XG5cbi8qKlxuICogQ29udGFpbmVyIGZvciB0aGUgYm90dG9tIGFjdGlvbiBidXR0b25zIGluIGEgZGlhbG9nLlxuICogU3RheXMgZml4ZWQgdG8gdGhlIGJvdHRvbSB3aGVuIHNjcm9sbGluZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgW3RkLXNpZGUtc2hlZXQtYWN0aW9uc10sIHRkLXNpZGUtc2hlZXQtYWN0aW9ucywgW0NvdmFsZW50U2lkZVNoZWV0QWN0aW9uc11gLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldEFjdGlvbnNEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRkLXNpZGUtc2hlZXQtYWN0aW9ucycpIHRkU2lkZVNoZWV0QWN0aW9ucyA9IHRydWU7XG59XG5cbi8qKlxuICogQ29udGFpbmVyIGZvciB0aGUgd3JhcHBlciBwYXJ0IG9mIHRoZSBkaWFsb2dcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgW3RkLXNpZGUtc2hlZXQtd3JhcHBlcl0sIHRkLXNpZGUtc2hlZXQtd3JhcHBlciwgW0NvdmFsZW50U2lkZVNoZWV0V3JhcHBlcl1gLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldFdyYXBwZXJEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRkLXNpZGUtc2hlZXQtd3JhcHBlcicpIHRkU2lkZVNoZWV0V3JhcHBlciA9IHRydWU7XG59XG5cbi8qKlxuICogRmluZHMgdGhlIGNsb3Nlc3QgQ292YWxlbnRTaWRlU2hlZXRSZWYgdG8gYW4gZWxlbWVudCBieSBsb29raW5nIGF0IHRoZSBET00uXG4gKiBAcGFyYW0gZWxlbWVudCBFbGVtZW50IHJlbGF0aXZlIHRvIHdoaWNoIHRvIGxvb2sgZm9yIGEgZGlhbG9nLlxuICogQHBhcmFtIG9wZW5EaWFsb2dzIFJlZmVyZW5jZXMgdG8gdGhlIGN1cnJlbnRseS1vcGVuIGRpYWxvZ3MuXG4gKi9cbmZ1bmN0aW9uIGdldENsb3Nlc3REaWFsb2coXG4gIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICBvcGVuRGlhbG9nczogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PltdXG4pOiBDb3ZhbGVudFNpZGVTaGVldFJlZjxhbnk+IHtcbiAgbGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgd2hpbGUgKHBhcmVudCAmJiAhcGFyZW50LmNsYXNzTGlzdC5jb250YWlucygndGQtc2lkZS1zaGVldC1jb250YWluZXInKSkge1xuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50O1xuICB9XG5cbiAgcmV0dXJuIHBhcmVudFxuICAgID8gb3BlbkRpYWxvZ3MuZmluZCgoZGlhbG9nKSA9PiBkaWFsb2cuaWQgPT09IHBhcmVudD8uaWQpID8/IG9wZW5EaWFsb2dzWzBdXG4gICAgOiBvcGVuRGlhbG9nc1swXTtcbn1cbiJdfQ==
@@ -1,10 +1,10 @@
1
1
  /* tslint:disable */
2
2
  import { Directive, Inject, Injectable, InjectFlags, InjectionToken, Injector, Optional, SkipSelf, TemplateRef, Type, } from '@angular/core';
3
- import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
4
- import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
5
- import { MAT_DIALOG_DATA, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
3
+ import { Overlay, OverlayConfig, } from '@angular/cdk/overlay';
4
+ import { ComponentPortal, TemplatePortal, } from '@angular/cdk/portal';
5
+ import { MAT_DIALOG_DATA, MAT_DIALOG_DEFAULT_OPTIONS, } from '@angular/material/dialog';
6
6
  import { AnimationCurves, AnimationDurations } from '@angular/material/core';
7
- import { CovalentSideSheetContainer } from './side-sheet-container';
7
+ import { CovalentSideSheetContainerComponent, } from './side-sheet-container';
8
8
  import { Subject, of } from 'rxjs';
9
9
  import { filter, take } from 'rxjs/operators';
10
10
  import { Directionality } from '@angular/cdk/bidi';
@@ -32,10 +32,16 @@ export class _CovalentSideSheetBase {
32
32
  }
33
33
  /** Keeps track of the currently-open side-sheets. */
34
34
  get openSideSheets() {
35
- return this._parentSideSheet ? this._parentSideSheet.openSideSheets : this._openSideSheetsAtThisLevel;
35
+ return this._parentSideSheet
36
+ ? this._parentSideSheet.openSideSheets
37
+ : this._openSideSheetsAtThisLevel;
36
38
  }
37
39
  open(componentOrTemplateRef, config) {
38
- config = { ...(this._defaultOptions || new CovalentSideSheetConfig()), ...this.defaultSidebarConfig, ...config };
40
+ config = {
41
+ ...(this._defaultOptions || new CovalentSideSheetConfig()),
42
+ ...this.defaultSidebarConfig,
43
+ ...config,
44
+ };
39
45
  const overlayRef = this._createOverlay(config);
40
46
  const sideSheetContainer = this._attachSideSheetContainer(overlayRef, config);
41
47
  const sideSheetRef = this._attachSideSheetContent(componentOrTemplateRef, sideSheetContainer, overlayRef, config);
@@ -93,7 +99,8 @@ export class _CovalentSideSheetBase {
93
99
  maxWidth: config.maxWidth,
94
100
  });
95
101
  const overlayRef = this._overlay.create(overlayConfig);
96
- const positionStrategy = overlayRef.getConfig().positionStrategy;
102
+ const positionStrategy = overlayRef.getConfig()
103
+ .positionStrategy;
97
104
  positionStrategy.right('0px');
98
105
  return overlayRef;
99
106
  }
@@ -127,7 +134,9 @@ export class _CovalentSideSheetBase {
127
134
  // to modify and close it.
128
135
  const sideSheetRef = new this._sideSheetRefConstructor(overlayRef, sideSheetContainer, config.id);
129
136
  if (componentOrTemplateRef instanceof TemplateRef) {
130
- sideSheetContainer.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, null, {
137
+ sideSheetContainer.attachTemplatePortal(
138
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
139
+ new TemplatePortal(componentOrTemplateRef, null, {
131
140
  $implicit: config.data,
132
141
  sideSheetRef,
133
142
  }));
@@ -152,13 +161,17 @@ export class _CovalentSideSheetBase {
152
161
  { provide: this._sideSheetRefConstructor, useValue: sideSheetRef },
153
162
  ];
154
163
  if (config.direction &&
155
- (!userInjector || !userInjector.get(Directionality, null, InjectFlags.Optional))) {
164
+ (!userInjector ||
165
+ !userInjector.get(Directionality, null, InjectFlags.Optional))) {
156
166
  providers.push({
157
167
  provide: Directionality,
158
168
  useValue: { value: config.direction, change: of() },
159
169
  });
160
170
  }
161
- return Injector.create({ parent: userInjector || this._injector, providers });
171
+ return Injector.create({
172
+ parent: userInjector || this._injector,
173
+ providers,
174
+ });
162
175
  }
163
176
  /**
164
177
  * Removes a side sheet from the array of open side sheets.
@@ -178,31 +191,31 @@ export class _CovalentSideSheetBase {
178
191
  }
179
192
  }
180
193
  }
181
- /** @nocollapse */ /** @nocollapse */ _CovalentSideSheetBase.ɵfac = function _CovalentSideSheetBase_Factory(t) { i0.ɵɵinvalidFactory(); };
182
- /** @nocollapse */ /** @nocollapse */ _CovalentSideSheetBase.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: _CovalentSideSheetBase });
183
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(_CovalentSideSheetBase, [{
184
- type: Directive
185
- }], function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: undefined }, { type: undefined }, { type: i0.Type }, { type: i0.Type }, { type: i0.InjectionToken }]; }, null); })();
194
+ _CovalentSideSheetBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: _CovalentSideSheetBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
195
+ _CovalentSideSheetBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: _CovalentSideSheetBase, ngImport: i0 });
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: _CovalentSideSheetBase, decorators: [{
197
+ type: Directive
198
+ }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: undefined }, { type: undefined }, { type: i0.Type }, { type: i0.Type }, { type: i0.InjectionToken }]; } });
186
199
  /**
187
200
  * Service to open Covalent Design side-sheet.
188
201
  */
189
202
  export class CovalentSideSheet extends _CovalentSideSheetBase {
190
203
  constructor(overlay, injector, defaultOptions, parentSideSheet) {
191
- super(overlay, injector, defaultOptions, parentSideSheet, CovalentSideSheetRef, CovalentSideSheetContainer, MAT_DIALOG_DATA);
204
+ super(overlay, injector, defaultOptions, parentSideSheet, CovalentSideSheetRef, CovalentSideSheetContainerComponent, MAT_DIALOG_DATA);
192
205
  }
193
206
  }
194
- /** @nocollapse */ /** @nocollapse */ CovalentSideSheet.ɵfac = function CovalentSideSheet_Factory(t) { return new (t || CovalentSideSheet)(i0.ɵɵinject(i1.Overlay), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(MAT_DIALOG_DEFAULT_OPTIONS, 8), i0.ɵɵinject(CovalentSideSheet, 12)); };
195
- /** @nocollapse */ /** @nocollapse */ CovalentSideSheet.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: CovalentSideSheet, factory: CovalentSideSheet.ɵfac });
196
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CovalentSideSheet, [{
197
- type: Injectable
198
- }], function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: i2.CovalentSideSheetConfig, decorators: [{
199
- type: Optional
200
- }, {
201
- type: Inject,
202
- args: [MAT_DIALOG_DEFAULT_OPTIONS]
203
- }] }, { type: CovalentSideSheet, decorators: [{
204
- type: Optional
205
- }, {
206
- type: SkipSelf
207
- }] }]; }, null); })();
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9jb3JlL3NpZGUtc2hlZXQvc2lkZS1zaGVldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLFdBQVcsRUFDWCxjQUFjLEVBQ2QsUUFBUSxFQUVSLFFBQVEsRUFDUixRQUFRLEVBRVIsV0FBVyxFQUNYLElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBc0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFpQixjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUEyQixNQUFNLDBCQUEwQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMEJBQTBCLEVBQW1DLE1BQU0sd0JBQXdCLENBQUM7QUFDckcsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRzlELE1BQU0sT0FBTyxzQkFBc0I7SUFXakMsWUFDVSxRQUFpQixFQUNqQixTQUFtQixFQUNuQixlQUFvRCxFQUNwRCxnQkFBdUQsRUFDdkQsd0JBQXlELEVBQ3pELHVCQUFnQyxF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QVEsc0JBQWtEO0lBQ3ZGLFlBQ0UsT0FBZ0IsRUFDaEIsUUFBa0IsRUFDOEIsY0FBdUMsRUFDL0QsZUFBa0M7UUFFMUQsS0FBSyxDQUNILE9BQU8sRUFDUCxRQUFRLEVBQ1IsY0FBYyxFQUNkLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLGVBQWUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7O3dIQWhCVSxpQkFBaUIsaUVBSU4sMEJBQTBCLGtCQUNMLGlCQUFpQjt5SEFMakQsaUJBQWlCLFdBQWpCLGlCQUFpQjt1RkFBakIsaUJBQWlCO2NBRDdCLFVBQVU7O3NCQUtOLFFBQVE7O3NCQUFJLE1BQU07dUJBQUMsMEJBQTBCOzBCQUNMLGlCQUFpQjtzQkFBekQsUUFBUTs7c0JBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0RmxhZ3MsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgU2tpcFNlbGYsXG4gIFN0YXRpY1Byb3ZpZGVyLFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmLCBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNQVRfRElBTE9HX0RFRkFVTFRfT1BUSU9OUywgX01hdERpYWxvZ0NvbnRhaW5lckJhc2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQW5pbWF0aW9uQ3VydmVzLCBBbmltYXRpb25EdXJhdGlvbnMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IENvdmFsZW50U2lkZVNoZWV0Q29udGFpbmVyLCBfQ292YWxlbnRTaWRlU2hlZXRDb250YWluZXJCYXNlIH0gZnJvbSAnLi9zaWRlLXNoZWV0LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcblxuaW1wb3J0IHsgQ292YWxlbnRTaWRlU2hlZXRSZWYgfSBmcm9tICcuL3NpZGUtc2hlZXQtcmVmJztcbmltcG9ydCB7IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnIH0gZnJvbSAnLi9zaWRlLXNoZWV0LmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIF9Db3ZhbGVudFNpZGVTaGVldEJhc2U8QyBleHRlbmRzIF9Db3ZhbGVudFNpZGVTaGVldENvbnRhaW5lckJhc2U+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfb3BlblNpZGVTaGVldHNBdFRoaXNMZXZlbDogQ292YWxlbnRTaWRlU2hlZXRSZWY8dW5rbm93bj5bXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PENvdmFsZW50U2lkZVNoZWV0UmVmPHVua25vd24+PigpO1xuICBwcml2YXRlIF9hbmltYXRpb25TdGF0ZVN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGRlZmF1bHRTaWRlYmFyQ29uZmlnID0ge1xuICAgIG1pbldpZHRoOiAnNDAwcHgnLFxuICAgIG1heFdpZHRoOiAnMTAwdncnLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2RlZmF1bHRPcHRpb25zOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyB8IHVuZGVmaW5lZCxcbiAgICBwcml2YXRlIF9wYXJlbnRTaWRlU2hlZXQ6IF9Db3ZhbGVudFNpZGVTaGVldEJhc2U8Qz4gfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSBfc2lkZVNoZWV0UmVmQ29uc3RydWN0b3I6IFR5cGU8Q292YWxlbnRTaWRlU2hlZXRSZWY8YW55Pj4sXG4gICAgcHJpdmF0ZSBfc2lkZVNoZWV0Q29udGFpbmVyVHlwZTogVHlwZTxDPixcbiAgICBwcml2YXRlIF9zaWRlU2hlZXREYXRhVG9rZW46IEluamVjdGlvblRva2VuPHVua25vd24+LFxuICApIHt9XG5cbiAgLyoqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50bHktb3BlbiBzaWRlLXNoZWV0cy4gKi9cbiAgZ2V0IG9wZW5TaWRlU2hlZXRzKCk6IENvdmFsZW50U2lkZVNoZWV0UmVmPHVua25vd24+W10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRTaWRlU2hlZXQgPyB0aGlzLl9wYXJlbnRTaWRlU2hlZXQub3BlblNpZGVTaGVldHMgOiB0aGlzLl9vcGVuU2lkZVNoZWV0c0F0VGhpc0xldmVsO1xuICB9XG5cbiAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KFxuICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc/OiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZzxEPixcbiAgKTogQ292YWxlbnRTaWRlU2hlZXRSZWY8VCwgUj4ge1xuICAgIGNvbmZpZyA9IHsgLi4uKHRoaXMuX2RlZmF1bHRPcHRpb25zIHx8IG5ldyBDb3ZhbGVudFNpZGVTaGVldENvbmZpZygpKSwgLi4udGhpcy5kZWZhdWx0U2lkZWJhckNvbmZpZywgLi4uY29uZmlnIH07XG5cbiAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5fY3JlYXRlT3ZlcmxheShjb25maWcpO1xuICAgIGNvbnN0IHNpZGVTaGVldENvbnRhaW5lciA9IHRoaXMuX2F0dGFjaFNpZGVTaGVldENvbnRhaW5lcihvdmVybGF5UmVmLCBjb25maWcpO1xuICAgIGNvbnN0IHNpZGVTaGVldFJlZiA9IHRoaXMuX2F0dGFjaFNpZGVTaGVldENvbnRlbnQ8VCwgUj4oXG4gICAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmLFxuICAgICAgc2lkZVNoZWV0Q29udGFpbmVyLFxuICAgICAgb3ZlcmxheVJlZixcbiAgICAgIGNvbmZpZyxcbiAgICApO1xuICAgIGNvbnN0IHByZXZTaWRlU2hlZXRSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPHVua25vd24+ID0gdGhpcy5vcGVuU2lkZVNoZWV0cy5zbGljZSgtMSlbMF07XG4gICAgY29uc3QgcHJldk92ZXJsYXlSZWYgPSBwcmV2U2lkZVNoZWV0UmVmPy5vdmVybGF5UmVmO1xuXG4gICAgLy8gQW5pbWF0ZSBwcmV2aW91cyBzaWRlIHNoZWV0IHRvIGZ1bGwgd2lkdGhcbiAgICBpZiAocHJldk92ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50KSB7XG4gICAgICBwcmV2T3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5zdHlsZS50cmFuc2l0aW9uID0gYCR7QW5pbWF0aW9uRHVyYXRpb25zLkNPTVBMRVh9ICR7QW5pbWF0aW9uQ3VydmVzLkRFQ0VMRVJBVElPTl9DVVJWRX1gO1xuICAgICAgcHJldk92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuc3R5bGUubWluV2lkdGggPSBgJHsod2luZG93IGFzIGFueSkuaW5uZXJXaWR0aH1weGA7XG4gICAgfVxuXG4gICAgLy8gUmV2ZXJ0IHRoZSBwcmV2aW91cyBzaWRlIHNoZWV0IGNvbmZpZyAmIHNpemVcbiAgICBzaWRlU2hlZXRSZWYuX2NvbnRhaW5lckluc3RhbmNlLl9hbmltYXRpb25TdGF0ZUNoYW5nZWRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudC5zdGF0ZSA9PT0gJ2Nsb3NpbmcnICYmICEhKHByZXZTaWRlU2hlZXRSZWYgJiYgcHJldk92ZXJsYXlSZWYpKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBwcmV2T3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5zdHlsZS50cmFuc2l0aW9uID0gYCR7QW5pbWF0aW9uRHVyYXRpb25zLkVYSVRJTkd9ICR7QW5pbWF0aW9uQ3VydmVzLkRFQ0VMRVJBVElPTl9DVVJWRX1gO1xuICAgICAgICBwcmV2U2lkZVNoZWV0UmVmLnVwZGF0ZVNpemUoKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gQWRkIG5ldyBzaWRlIHNoZWV0IHRvIG9wZW4gbGlzdFxuICAgIHRoaXMub3BlblNpZGVTaGVldHMucHVzaChzaWRlU2hlZXRSZWYpO1xuXG4gICAgLy8gUmVtb3ZlIHNpZGUgc2hlZXQgcmVmIGFmdGVyIGNsb3NlZFxuICAgIHNpZGVTaGVldFJlZlxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3JlbW92ZU9wZW5TaWRlU2hlZXQoc2lkZVNoZWV0UmVmKSk7XG5cbiAgICAvLyBOb3RpZnkgdGhlIHNpZGUtc2hlZXQgY29udGFpbmVyIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGJlZW4gYXR0YWNoZWQuXG4gICAgc2lkZVNoZWV0Q29udGFpbmVyLl9pbml0aWFsaXplV2l0aEF0dGFjaGVkQ29udGVudCgpO1xuXG4gICAgcmV0dXJuIHNpZGVTaGVldFJlZjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIE9ubHkgY2xvc2UgdGhlIHNpZGUtc2hlZXRzIGF0IHRoaXMgbGV2ZWwgb24gZGVzdHJveVxuICAgIC8vIHNpbmNlIHRoZSBwYXJlbnQgc2VydmljZSBtYXkgc3RpbGwgYmUgYWN0aXZlLlxuICAgIHRoaXMuX2Nsb3NlU2lkZVNoZWV0cyh0aGlzLl9vcGVuU2lkZVNoZWV0c0F0VGhpc0xldmVsKTtcbiAgICB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpO1xuICAgIC8vIENsZWFuIHVwIGFueSBzdWJzY3JpcHRpb25zIHRvIHNpZGUtc2hlZXQgdGhhdCBuZXZlciBmaW5pc2hlZCBvcGVuaW5nLlxuICAgIGlmICh0aGlzLl9hbmltYXRpb25TdGF0ZVN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGlvblN0YXRlU3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYWxsIG9mIHRoZSBjdXJyZW50bHktb3BlbiBzaWRlLXNoZWV0cy5cbiAgICovXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlU2lkZVNoZWV0cyh0aGlzLm9wZW5TaWRlU2hlZXRzKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXk8VD4oY29uZmlnKTogT3ZlcmxheVJlZiB7XG4gICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICAgIHBhbmVsQ2xhc3M6IGNvbmZpZy5wYW5lbENsYXNzLFxuICAgICAgaGFzQmFja2Ryb3A6IGNvbmZpZy5oYXNCYWNrZHJvcCxcbiAgICAgIGRpcmVjdGlvbjogY29uZmlnLmRpcmVjdGlvbixcbiAgICAgIG1pbldpZHRoOiBjb25maWcubWluV2lkdGgsXG4gICAgICBtaW5IZWlnaHQ6IGNvbmZpZy5taW5IZWlnaHQsXG4gICAgICBtYXhXaWR0aDogY29uZmlnLm1heFdpZHRoLFxuICAgIH0pO1xuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gb3ZlcmxheVJlZi5nZXRDb25maWcoKS5wb3NpdGlvblN0cmF0ZWd5IGFzIEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3k7XG4gICAgcG9zaXRpb25TdHJhdGVneS5yaWdodCgnMHB4Jyk7XG5cbiAgICByZXR1cm4gb3ZlcmxheVJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIGNvbnRhaW5lciB0byBhIHNpZGUtc2hlZXRzJ3MgYWxyZWFkeS1jcmVhdGVkIG92ZXJsYXkuXG4gICAqIEBwYXJhbSBvdmVybGF5IFJlZmVyZW5jZSB0byB0aGUgc2lkZS1zaGVldCdzIHVuZGVybHlpbmcgb3ZlcmxheS5cbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgc2lkZS1zaGVldCBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIGEgQ29tcG9uZW50UmVmIGZvciB0aGUgYXR0YWNoZWQgY29udGFpbmVyLlxuICAgKi9cbiAgcHJpdmF0ZSBfYXR0YWNoU2lkZVNoZWV0Q29udGFpbmVyKG92ZXJsYXk6IE92ZXJsYXlSZWYsIGNvbmZpZzogQ292YWxlbnRTaWRlU2hlZXRDb25maWcpOiBDIHtcbiAgICBjb25zdCB1c2VySW5qZWN0b3IgPSBjb25maWcgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3I7XG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcGFyZW50OiB1c2VySW5qZWN0b3IgfHwgdGhpcy5faW5qZWN0b3IsXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnLCB1c2VWYWx1ZTogY29uZmlnIH1dLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGFpbmVyUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChcbiAgICAgIHRoaXMuX3NpZGVTaGVldENvbnRhaW5lclR5cGUsXG4gICAgICBjb25maWcudmlld0NvbnRhaW5lclJlZixcbiAgICAgIGluamVjdG9yLFxuICAgICAgY29uZmlnLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICApO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IG92ZXJsYXkuYXR0YWNoPEM+KGNvbnRhaW5lclBvcnRhbCk7XG5cbiAgICByZXR1cm4gY29udGFpbmVyUmVmLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIHRoZSB1c2VyLXByb3ZpZGVkIGNvbXBvbmVudCB0byB0aGUgYWxyZWFkeS1jcmVhdGVkIHNpZGUgc2hlZXQgY29udGFpbmVyLlxuICAgKiBAcGFyYW0gY29tcG9uZW50T3JUZW1wbGF0ZVJlZiBUaGUgdHlwZSBvZiBjb21wb25lbnQgYmVpbmcgbG9hZGVkIGludG8gdGhlIHNpZGUtc2hlZXQsXG4gICAqICAgICBvciBhIFRlbXBsYXRlUmVmIHRvIGluc3RhbnRpYXRlIGFzIHRoZSBjb250ZW50LlxuICAgKiBAcGFyYW0gZGlhbG9nQ29udGFpbmVyIFJlZmVyZW5jZSB0byB0aGUgd3JhcHBpbmcgc2lkZS1zaGVldCBjb250YWluZXIuXG4gICAqIEBwYXJhbSBvdmVybGF5UmVmIFJlZmVyZW5jZSB0byB0aGUgb3ZlcmxheSBpbiB3aGljaCB0aGUgc2lkZS1zaGVldCByZXNpZGVzLlxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBzaWRlLXNoZWV0IGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIENvdmFsZW50U2lkZVNoZWV0UmVmIHRoYXQgc2hvdWxkIGJlIHJldHVybmVkIHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgcHJpdmF0ZSBfYXR0YWNoU2lkZVNoZWV0Q29udGVudDxULCBSPihcbiAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgc2lkZVNoZWV0Q29udGFpbmVyOiBDLFxuICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgY29uZmlnOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyxcbiAgKTogQ292YWxlbnRTaWRlU2hlZXRSZWY8VCwgUj4ge1xuICAgIC8vIENyZWF0ZSBhIHJlZmVyZW5jZSB0byB0aGUgc2lkZS1zaGVldCB3ZSdyZSBjcmVhdGluZyBpbiBvcmRlciB0byBnaXZlIHRoZSB1c2VyIGEgaGFuZGxlXG4gICAgLy8gdG8gbW9kaWZ5IGFuZCBjbG9zZSBpdC5cbiAgICBjb25zdCBzaWRlU2hlZXRSZWYgPSBuZXcgdGhpcy5fc2lkZVNoZWV0UmVmQ29uc3RydWN0b3Iob3ZlcmxheVJlZiwgc2lkZVNoZWV0Q29udGFpbmVyLCBjb25maWcuaWQpO1xuXG4gICAgaWYgKGNvbXBvbmVudE9yVGVtcGxhdGVSZWYgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgc2lkZVNoZWV0Q29udGFpbmVyLmF0dGFjaFRlbXBsYXRlUG9ydGFsKFxuICAgICAgICBuZXcgVGVtcGxhdGVQb3J0YWw8VD4oY29tcG9uZW50T3JUZW1wbGF0ZVJlZiwgbnVsbCEsIDxhbnk+e1xuICAgICAgICAgICRpbXBsaWNpdDogY29uZmlnLmRhdGEsXG4gICAgICAgICAgc2lkZVNoZWV0UmVmLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5fY3JlYXRlSW5qZWN0b3I8VD4oY29uZmlnLCBzaWRlU2hlZXRSZWYsIHNpZGVTaGVldENvbnRhaW5lcik7XG4gICAgICBjb25zdCBjb250ZW50UmVmID0gc2lkZVNoZWV0Q29udGFpbmVyLmF0dGFjaDxUPihcbiAgICAgICAgbmV3IENvbXBvbmVudFBvcnRhbChjb21wb25lbnRPclRlbXBsYXRlUmVmLCBjb25maWcudmlld0NvbnRhaW5lclJlZiwgaW5qZWN0b3IpLFxuICAgICAgKTtcbiAgICAgIHNpZGVTaGVldFJlZi5jb21wb25lbnRJbnN0YW5jZSA9IGNvbnRlbnRSZWYuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgc2lkZVNoZWV0UmVmLnVwZGF0ZVNpemUoY29uZmlnLndpZHRoLCBjb25maWcuaGVpZ2h0KTtcblxuICAgIHJldHVybiBzaWRlU2hlZXRSZWY7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVJbmplY3RvcjxUPihcbiAgICBjb25maWc6IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnLFxuICAgIHNpZGVTaGVldFJlZjogQ292YWxlbnRTaWRlU2hlZXRSZWY8VD4sXG4gICAgc2lkZVNoZWV0Q29udGFpbmVyOiBDLFxuICApOiBJbmplY3RvciB7XG4gICAgY29uc3QgdXNlckluamVjdG9yID0gY29uZmlnICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yO1xuXG4gICAgLy8gVGhlIHNpZGUtc2hlZXQgY29udGFpbmVyIHNob3VsZCBiZSBwcm92aWRlZCBhcyB0aGUgc2lkZS1zaGVldCBjb250YWluZXIgYW5kIHRoZSBzaWRlLXNoZWV0J3NcbiAgICAvLyBjb250ZW50IGFyZSBjcmVhdGVkIG91dCBvZiB0aGUgc2FtZSBgVmlld0NvbnRhaW5lclJlZmAgYW5kIGFzIHN1Y2gsIGFyZSBzaWJsaW5nc1xuICAgIC8vIGZvciBpbmplY3RvciBwdXJwb3Nlcy4gVG8gYWxsb3cgdGhlIGhpZXJhcmNoeSB0aGF0IGlzIGV4cGVjdGVkLCB0aGUgc2lkZS1zaGVldFxuICAgIC8vIGNvbnRhaW5lciBpcyBleHBsaWNpdGx5IHByb3ZpZGVkIGluIHRoZSBpbmplY3Rvci5cbiAgICBjb25zdCBwcm92aWRlcnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXG4gICAgICB7IHByb3ZpZGU6IHRoaXMuX3NpZGVTaGVldENvbnRhaW5lclR5cGUsIHVzZVZhbHVlOiBzaWRlU2hlZXRDb250YWluZXIgfSxcbiAgICAgIHsgcHJvdmlkZTogdGhpcy5fc2lkZVNoZWV0RGF0YVRva2VuLCB1c2VWYWx1ZTogY29uZmlnLmRhdGEgfSxcbiAgICAgIHsgcHJvdmlkZTogdGhpcy5fc2lkZVNoZWV0UmVmQ29uc3RydWN0b3IsIHVzZVZhbHVlOiBzaWRlU2hlZXRSZWYgfSxcbiAgICBdO1xuXG4gICAgaWYgKFxuICAgICAgY29uZmlnLmRpcmVjdGlvbiAmJlxuICAgICAgKCF1c2VySW5qZWN0b3IgfHwgIXVzZXJJbmplY3Rvci5nZXQ8RGlyZWN0aW9uYWxpdHkgfCBudWxsPihEaXJlY3Rpb25hbGl0eSwgbnVsbCwgSW5qZWN0RmxhZ3MuT3B0aW9uYWwpKVxuICAgICkge1xuICAgICAgcHJvdmlkZXJzLnB1c2goe1xuICAgICAgICBwcm92aWRlOiBEaXJlY3Rpb25hbGl0eSxcbiAgICAgICAgdXNlVmFsdWU6IHsgdmFsdWU6IGNvbmZpZy5kaXJlY3Rpb24sIGNoYW5nZTogb2YoKSB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7IHBhcmVudDogdXNlckluamVjdG9yIHx8IHRoaXMuX2luamVjdG9yLCBwcm92aWRlcnMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIHNpZGUgc2hlZXQgZnJvbSB0aGUgYXJyYXkgb2Ygb3BlbiBzaWRlIHNoZWV0cy5cbiAgICogQHBhcmFtIHNpZGVTaGVldFJlZiBTaWRlIFNoZWV0IHRvIGJlIHJlbW92ZWQuXG4gICAqL1xuICBwcml2YXRlIF9yZW1vdmVPcGVuU2lkZVNoZWV0KHNpZGVTaGVldFJlZjogQ292YWxlbnRTaWRlU2hlZXRSZWY8dW5rbm93bj4pIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMub3BlblNpZGVTaGVldHMuaW5kZXhPZihzaWRlU2hlZXRSZWYpO1xuXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMub3BlblNpZGVTaGVldHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2xvc2VzIGFsbCBvZiB0aGUgc2lkZS1zaGVldCBpbiBhbiBhcnJheS4gKi9cbiAgcHJpdmF0ZSBfY2xvc2VTaWRlU2hlZXRzKHNpZGVTaGVldHM6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT5bXSkge1xuICAgIGxldCBpID0gc2lkZVNoZWV0cy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBzaWRlU2hlZXRzW2ldLmNsb3NlKCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU2VydmljZSB0byBvcGVuIENvdmFsZW50IERlc2lnbiBzaWRlLXNoZWV0LlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXQgZXh0ZW5kcyBfQ292YWxlbnRTaWRlU2hlZXRCYXNlPENvdmFsZW50U2lkZVNoZWV0Q29udGFpbmVyPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19ERUZBVUxUX09QVElPTlMpIGRlZmF1bHRPcHRpb25zOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRTaWRlU2hlZXQ6IENvdmFsZW50U2lkZVNoZWV0LFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIG92ZXJsYXksXG4gICAgICBpbmplY3RvcixcbiAgICAgIGRlZmF1bHRPcHRpb25zLFxuICAgICAgcGFyZW50U2lkZVNoZWV0LFxuICAgICAgQ292YWxlbnRTaWRlU2hlZXRSZWYsXG4gICAgICBDb3ZhbGVudFNpZGVTaGVldENvbnRhaW5lcixcbiAgICAgIE1BVF9ESUFMT0dfREFUQSxcbiAgICApO1xuICB9XG59XG4iXX0=
207
+ CovalentSideSheet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheet, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: MAT_DIALOG_DEFAULT_OPTIONS, optional: true }, { token: CovalentSideSheet, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable });
208
+ CovalentSideSheet.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheet });
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentSideSheet, decorators: [{
210
+ type: Injectable
211
+ }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: i2.CovalentSideSheetConfig, decorators: [{
212
+ type: Optional
213
+ }, {
214
+ type: Inject,
215
+ args: [MAT_DIALOG_DEFAULT_OPTIONS]
216
+ }] }, { type: CovalentSideSheet, decorators: [{
217
+ type: Optional
218
+ }, {
219
+ type: SkipSelf
220
+ }] }]; } });
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zaWRlLXNoZWV0L3NyYy9zaWRlLXNoZWV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsV0FBVyxFQUNYLGNBQWMsRUFDZCxRQUFRLEVBRVIsUUFBUSxFQUNSLFFBQVEsRUFFUixXQUFXLEVBQ1gsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxPQUFPLEVBQ1AsYUFBYSxHQUdkLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLGVBQWUsRUFFZixjQUFjLEdBQ2YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsZUFBZSxFQUNmLDBCQUEwQixHQUMzQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsbUNBQW1DLEdBRXBDLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRzlELE1BQU0sT0FBTyxzQkFBc0I7SUFlakMsWUFDVSxRQUFpQixFQUNqQixTQUFtQixFQUNuQixlQUFvRCxFQUNwRCxnQkFBdUQsRUFDdkQsd0JBQXlELEVBQ3pELHVCQUFnQyxFQUNo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OztBQWtSVjs7R0FFRztBQUVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxzQkFBMkQ7SUFDaEcsWUFDRSxPQUFnQixFQUNoQixRQUFrQixFQUdsQixjQUF1QyxFQUNmLGVBQWtDO1FBRTFELEtBQUssQ0FDSCxPQUFPLEVBQ1AsUUFBUSxFQUNSLGNBQWMsRUFDZCxlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLG1DQUFtQyxFQUNuQyxlQUFlLENBQ2hCLENBQUM7SUFDSixDQUFDOzs4R0FsQlUsaUJBQWlCLGlFQUtsQiwwQkFBMEIsNkJBRU8saUJBQWlCO2tIQVBqRCxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVTs7MEJBS04sUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQywwQkFBMEI7OEJBRU8saUJBQWlCOzBCQUF6RCxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBJbmplY3RGbGFncyxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIEluamVjdG9yLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZixcbiAgU3RhdGljUHJvdmlkZXIsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE92ZXJsYXksXG4gIE92ZXJsYXlDb25maWcsXG4gIE92ZXJsYXlSZWYsXG4gIEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3ksXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIENvbXBvbmVudFBvcnRhbCxcbiAgQ29tcG9uZW50VHlwZSxcbiAgVGVtcGxhdGVQb3J0YWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgTUFUX0RJQUxPR19EQVRBLFxuICBNQVRfRElBTE9HX0RFRkFVTFRfT1BUSU9OUyxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEFuaW1hdGlvbkN1cnZlcywgQW5pbWF0aW9uRHVyYXRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge1xuICBDb3ZhbGVudFNpZGVTaGVldENvbnRhaW5lckNvbXBvbmVudCxcbiAgX0NvdmFsZW50U2lkZVNoZWV0Q29udGFpbmVyQmFzZSxcbn0gZnJvbSAnLi9zaWRlLXNoZWV0LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcblxuaW1wb3J0IHsgQ292YWxlbnRTaWRlU2hlZXRSZWYgfSBmcm9tICcuL3NpZGUtc2hlZXQtcmVmJztcbmltcG9ydCB7IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnIH0gZnJvbSAnLi9zaWRlLXNoZWV0LmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIF9Db3ZhbGVudFNpZGVTaGVldEJhc2U8QyBleHRlbmRzIF9Db3ZhbGVudFNpZGVTaGVldENvbnRhaW5lckJhc2U+XG4gIGltcGxlbWVudHMgT25EZXN0cm95XG57XG4gIHByaXZhdGUgX29wZW5TaWRlU2hlZXRzQXRUaGlzTGV2ZWw6IENvdmFsZW50U2lkZVNoZWV0UmVmPHVua25vd24+W10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDxcbiAgICBDb3ZhbGVudFNpZGVTaGVldFJlZjx1bmtub3duPlxuICA+KCk7XG4gIHByaXZhdGUgX2FuaW1hdGlvblN0YXRlU3Vic2NyaXB0aW9ucyE6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGRlZmF1bHRTaWRlYmFyQ29uZmlnID0ge1xuICAgIG1pbldpZHRoOiAnNDAwcHgnLFxuICAgIG1heFdpZHRoOiAnMTAwdncnLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2RlZmF1bHRPcHRpb25zOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyB8IHVuZGVmaW5lZCxcbiAgICBwcml2YXRlIF9wYXJlbnRTaWRlU2hlZXQ6IF9Db3ZhbGVudFNpZGVTaGVldEJhc2U8Qz4gfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSBfc2lkZVNoZWV0UmVmQ29uc3RydWN0b3I6IFR5cGU8Q292YWxlbnRTaWRlU2hlZXRSZWY8YW55Pj4sXG4gICAgcHJpdmF0ZSBfc2lkZVNoZWV0Q29udGFpbmVyVHlwZTogVHlwZTxDPixcbiAgICBwcml2YXRlIF9zaWRlU2hlZXREYXRhVG9rZW46IEluamVjdGlvblRva2VuPHVua25vd24+XG4gICkge31cblxuICAvKiogS2VlcHMgdHJhY2sgb2YgdGhlIGN1cnJlbnRseS1vcGVuIHNpZGUtc2hlZXRzLiAqL1xuICBnZXQgb3BlblNpZGVTaGVldHMoKTogQ292YWxlbnRTaWRlU2hlZXRSZWY8dW5rbm93bj5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudFNpZGVTaGVldFxuICAgICAgPyB0aGlzLl9wYXJlbnRTaWRlU2hlZXQub3BlblNpZGVTaGVldHNcbiAgICAgIDogdGhpcy5fb3BlblNpZGVTaGVldHNBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihcbiAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgY29uZmlnPzogQ292YWxlbnRTaWRlU2hlZXRDb25maWc8RD5cbiAgKTogQ292YWxlbnRTaWRlU2hlZXRSZWY8VCwgUj4ge1xuICAgIGNvbmZpZyA9IHtcbiAgICAgIC4uLih0aGlzLl9kZWZhdWx0T3B0aW9ucyB8fCBuZXcgQ292YWxlbnRTaWRlU2hlZXRDb25maWcoKSksXG4gICAgICAuLi50aGlzLmRlZmF1bHRTaWRlYmFyQ29uZmlnLFxuICAgICAgLi4uY29uZmlnLFxuICAgIH07XG5cbiAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5fY3JlYXRlT3ZlcmxheShjb25maWcpO1xuICAgIGNvbnN0IHNpZGVTaGVldENvbnRhaW5lciA9IHRoaXMuX2F0dGFjaFNpZGVTaGVldENvbnRhaW5lcihcbiAgICAgIG92ZXJsYXlSZWYsXG4gICAgICBjb25maWdcbiAgICApO1xuICAgIGNvbnN0IHNpZGVTaGVldFJlZiA9IHRoaXMuX2F0dGFjaFNpZGVTaGVldENvbnRlbnQ8VCwgUj4oXG4gICAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmLFxuICAgICAgc2lkZVNoZWV0Q29udGFpbmVyLFxuICAgICAgb3ZlcmxheVJlZixcbiAgICAgIGNvbmZpZ1xuICAgICk7XG4gICAgY29uc3QgcHJldlNpZGVTaGVldFJlZjogQ292YWxlbnRTaWRlU2hlZXRSZWY8dW5rbm93bj4gPVxuICAgICAgdGhpcy5vcGVuU2lkZVNoZWV0cy5zbGljZSgtMSlbMF07XG4gICAgY29uc3QgcHJldk92ZXJsYXlSZWYgPSBwcmV2U2lkZVNoZWV0UmVmPy5vdmVybGF5UmVmO1xuXG4gICAgLy8gQW5pbWF0ZSBwcmV2aW91cyBzaWRlIHNoZWV0IHRvIGZ1bGwgd2lkdGhcbiAgICBpZiAocHJldk92ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50KSB7XG4gICAgICBwcmV2T3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5zdHlsZS50cmFuc2l0aW9uID0gYCR7QW5pbWF0aW9uRHVyYXRpb25zLkNPTVBMRVh9ICR7QW5pbWF0aW9uQ3VydmVzLkRFQ0VMRVJBVElPTl9DVVJWRX1gO1xuICAgICAgcHJldk92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuc3R5bGUubWluV2lkdGggPSBgJHtcbiAgICAgICAgKHdpbmRvdyBhcyBhbnkpLmlubmVyV2lkdGhcbiAgICAgIH1weGA7XG4gICAgfVxuXG4gICAgLy8gUmV2ZXJ0IHRoZSBwcmV2aW91cyBzaWRlIHNoZWV0IGNvbmZpZyAmIHNpemVcbiAgICBzaWRlU2hlZXRSZWYuX2NvbnRhaW5lckluc3RhbmNlLl9hbmltYXRpb25TdGF0ZUNoYW5nZWRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgKGV2ZW50KSA9PlxuICAgICAgICAgICAgZXZlbnQuc3RhdGUgPT09ICdjbG9zaW5nJyAmJiAhIShwcmV2U2lkZVNoZWV0UmVmICYmIHByZXZPdmVybGF5UmVmKVxuICAgICAgICApLFxuICAgICAgICB0YWtlKDEpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgcHJldk92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuc3R5bGUudHJhbnNpdGlvbiA9IGAke0FuaW1hdGlvbkR1cmF0aW9ucy5FWElUSU5HfSAke0FuaW1hdGlvbkN1cnZlcy5ERUNFTEVSQVRJT05fQ1VSVkV9YDtcbiAgICAgICAgcHJldlNpZGVTaGVldFJlZi51cGRhdGVTaXplKCk7XG4gICAgICB9KTtcblxuICAgIC8vIEFkZCBuZXcgc2lkZSBzaGVldCB0byBvcGVuIGxpc3RcbiAgICB0aGlzLm9wZW5TaWRlU2hlZXRzLnB1c2goc2lkZVNoZWV0UmVmKTtcblxuICAgIC8vIFJlbW92ZSBzaWRlIHNoZWV0IHJlZiBhZnRlciBjbG9zZWRcbiAgICBzaWRlU2hlZXRSZWZcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZW1vdmVPcGVuU2lkZVNoZWV0KHNpZGVTaGVldFJlZikpO1xuXG4gICAgLy8gTm90aWZ5IHRoZSBzaWRlLXNoZWV0IGNvbnRhaW5lciB0aGF0IHRoZSBjb250ZW50IGhhcyBiZWVuIGF0dGFjaGVkLlxuICAgIHNpZGVTaGVldENvbnRhaW5lci5faW5pdGlhbGl6ZVdpdGhBdHRhY2hlZENvbnRlbnQoKTtcblxuICAgIHJldHVybiBzaWRlU2hlZXRSZWY7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBPbmx5IGNsb3NlIHRoZSBzaWRlLXNoZWV0cyBhdCB0aGlzIGxldmVsIG9uIGRlc3Ryb3lcbiAgICAvLyBzaW5jZSB0aGUgcGFyZW50IHNlcnZpY2UgbWF5IHN0aWxsIGJlIGFjdGl2ZS5cbiAgICB0aGlzLl9jbG9zZVNpZGVTaGVldHModGhpcy5fb3BlblNpZGVTaGVldHNBdFRoaXNMZXZlbCk7XG4gICAgdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwuY29tcGxldGUoKTtcbiAgICAvLyBDbGVhbiB1cCBhbnkgc3Vic2NyaXB0aW9ucyB0byBzaWRlLXNoZWV0IHRoYXQgbmV2ZXIgZmluaXNoZWQgb3BlbmluZy5cbiAgICBpZiAodGhpcy5fYW5pbWF0aW9uU3RhdGVTdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLl9hbmltYXRpb25TdGF0ZVN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIGFsbCBvZiB0aGUgY3VycmVudGx5LW9wZW4gc2lkZS1zaGVldHMuXG4gICAqL1xuICBjbG9zZUFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZVNpZGVTaGVldHModGhpcy5vcGVuU2lkZVNoZWV0cyk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVPdmVybGF5PFQ+KGNvbmZpZzogQ292YWxlbnRTaWRlU2hlZXRDb25maWcpOiBPdmVybGF5UmVmIHtcbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgcGFuZWxDbGFzczogY29uZmlnLnBhbmVsQ2xhc3MsXG4gICAgICBoYXNCYWNrZHJvcDogY29uZmlnLmhhc0JhY2tkcm9wLFxuICAgICAgZGlyZWN0aW9uOiBjb25maWcuZGlyZWN0aW9uLFxuICAgICAgbWluV2lkdGg6IGNvbmZpZy5taW5XaWR0aCxcbiAgICAgIG1pbkhlaWdodDogY29uZmlnLm1pbkhlaWdodCxcbiAgICAgIG1heFdpZHRoOiBjb25maWcubWF4V2lkdGgsXG4gICAgfSk7XG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpO1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSBvdmVybGF5UmVmLmdldENvbmZpZygpXG4gICAgICAucG9zaXRpb25TdHJhdGVneSBhcyBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5O1xuICAgIHBvc2l0aW9uU3RyYXRlZ3kucmlnaHQoJzBweCcpO1xuXG4gICAgcmV0dXJuIG92ZXJsYXlSZWY7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBjb250YWluZXIgdG8gYSBzaWRlLXNoZWV0cydzIGFscmVhZHktY3JlYXRlZCBvdmVybGF5LlxuICAgKiBAcGFyYW0gb3ZlcmxheSBSZWZlcmVuY2UgdG8gdGhlIHNpZGUtc2hlZXQncyB1bmRlcmx5aW5nIG92ZXJsYXkuXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIHNpZGUtc2hlZXQgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0byBhIENvbXBvbmVudFJlZiBmb3IgdGhlIGF0dGFjaGVkIGNvbnRhaW5lci5cbiAgICovXG4gIHByaXZhdGUgX2F0dGFjaFNpZGVTaGVldENvbnRhaW5lcihcbiAgICBvdmVybGF5OiBPdmVybGF5UmVmLFxuICAgIGNvbmZpZzogQ292YWxlbnRTaWRlU2hlZXRDb25maWdcbiAgKTogQyB7XG4gICAgY29uc3QgdXNlckluamVjdG9yID1cbiAgICAgIGNvbmZpZyAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZiAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZi5pbmplY3RvcjtcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHVzZXJJbmplY3RvciB8fCB0aGlzLl9pbmplY3RvcixcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ292YWxlbnRTaWRlU2hlZXRDb25maWcsIHVzZVZhbHVlOiBjb25maWcgfV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgdGhpcy5fc2lkZVNoZWV0Q29udGFpbmVyVHlwZSxcbiAgICAgIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgaW5qZWN0b3IsXG4gICAgICBjb25maWcuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgKTtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSBvdmVybGF5LmF0dGFjaDxDPihjb250YWluZXJQb3J0YWwpO1xuXG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyB0aGUgdXNlci1wcm92aWRlZCBjb21wb25lbnQgdG8gdGhlIGFscmVhZHktY3JlYXRlZCBzaWRlIHNoZWV0IGNvbnRhaW5lci5cbiAgICogQHBhcmFtIGNvbXBvbmVudE9yVGVtcGxhdGVSZWYgVGhlIHR5cGUgb2YgY29tcG9uZW50IGJlaW5nIGxvYWRlZCBpbnRvIHRoZSBzaWRlLXNoZWV0LFxuICAgKiAgICAgb3IgYSBUZW1wbGF0ZVJlZiB0byBpbnN0YW50aWF0ZSBhcyB0aGUgY29udGVudC5cbiAgICogQHBhcmFtIGRpYWxvZ0NvbnRhaW5lciBSZWZlcmVuY2UgdG8gdGhlIHdyYXBwaW5nIHNpZGUtc2hlZXQgY29udGFpbmVyLlxuICAgKiBAcGFyYW0gb3ZlcmxheVJlZiBSZWZlcmVuY2UgdG8gdGhlIG92ZXJsYXkgaW4gd2hpY2ggdGhlIHNpZGUtc2hlZXQgcmVzaWRlcy5cbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgc2lkZS1zaGVldCBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBDb3ZhbGVudFNpZGVTaGVldFJlZiB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCB0byB0aGUgdXNlci5cbiAgICovXG4gIHByaXZhdGUgX2F0dGFjaFNpZGVTaGVldENvbnRlbnQ8VCwgUj4oXG4gICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgIHNpZGVTaGVldENvbnRhaW5lcjogQyxcbiAgICBvdmVybGF5UmVmOiBPdmVybGF5UmVmLFxuICAgIGNvbmZpZzogQ292YWxlbnRTaWRlU2hlZXRDb25maWdcbiAgKTogQ292YWxlbnRTaWRlU2hlZXRSZWY8VCwgUj4ge1xuICAgIC8vIENyZWF0ZSBhIHJlZmVyZW5jZSB0byB0aGUgc2lkZS1zaGVldCB3ZSdyZSBjcmVhdGluZyBpbiBvcmRlciB0byBnaXZlIHRoZSB1c2VyIGEgaGFuZGxlXG4gICAgLy8gdG8gbW9kaWZ5IGFuZCBjbG9zZSBpdC5cbiAgICBjb25zdCBzaWRlU2hlZXRSZWYgPSBuZXcgdGhpcy5fc2lkZVNoZWV0UmVmQ29uc3RydWN0b3IoXG4gICAgICBvdmVybGF5UmVmLFxuICAgICAgc2lkZVNoZWV0Q29udGFpbmVyLFxuICAgICAgY29uZmlnLmlkXG4gICAgKTtcblxuICAgIGlmIChjb21wb25lbnRPclRlbXBsYXRlUmVmIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgIHNpZGVTaGVldENvbnRhaW5lci5hdHRhY2hUZW1wbGF0ZVBvcnRhbChcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgbmV3IFRlbXBsYXRlUG9ydGFsPFQ+KGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIG51bGwhLCA8YW55PntcbiAgICAgICAgICAkaW1wbGljaXQ6IGNvbmZpZy5kYXRhLFxuICAgICAgICAgIHNpZGVTaGVldFJlZixcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5fY3JlYXRlSW5qZWN0b3I8VD4oXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgc2lkZVNoZWV0UmVmLFxuICAgICAgICBzaWRlU2hlZXRDb250YWluZXJcbiAgICAgICk7XG4gICAgICBjb25zdCBjb250ZW50UmVmID0gc2lkZVNoZWV0Q29udGFpbmVyLmF0dGFjaDxUPihcbiAgICAgICAgbmV3IENvbXBvbmVudFBvcnRhbChcbiAgICAgICAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmLFxuICAgICAgICAgIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgIGluamVjdG9yXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICBzaWRlU2hlZXRSZWYuY29tcG9uZW50SW5zdGFuY2UgPSBjb250ZW50UmVmLmluc3RhbmNlO1xuICAgIH1cblxuICAgIHNpZGVTaGVldFJlZi51cGRhdGVTaXplKGNvbmZpZy53aWR0aCwgY29uZmlnLmhlaWdodCk7XG5cbiAgICByZXR1cm4gc2lkZVNoZWV0UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlSW5qZWN0b3I8VD4oXG4gICAgY29uZmlnOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyxcbiAgICBzaWRlU2hlZXRSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPFQ+LFxuICAgIHNpZGVTaGVldENvbnRhaW5lcjogQ1xuICApOiBJbmplY3RvciB7XG4gICAgY29uc3QgdXNlckluamVjdG9yID1cbiAgICAgIGNvbmZpZyAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZiAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZi5pbmplY3RvcjtcblxuICAgIC8vIFRoZSBzaWRlLXNoZWV0IGNvbnRhaW5lciBzaG91bGQgYmUgcHJvdmlkZWQgYXMgdGhlIHNpZGUtc2hlZXQgY29udGFpbmVyIGFuZCB0aGUgc2lkZS1zaGVldCdzXG4gICAgLy8gY29udGVudCBhcmUgY3JlYXRlZCBvdXQgb2YgdGhlIHNhbWUgYFZpZXdDb250YWluZXJSZWZgIGFuZCBhcyBzdWNoLCBhcmUgc2libGluZ3NcbiAgICAvLyBmb3IgaW5qZWN0b3IgcHVycG9zZXMuIFRvIGFsbG93IHRoZSBoaWVyYXJjaHkgdGhhdCBpcyBleHBlY3RlZCwgdGhlIHNpZGUtc2hlZXRcbiAgICAvLyBjb250YWluZXIgaXMgZXhwbGljaXRseSBwcm92aWRlZCBpbiB0aGUgaW5qZWN0b3IuXG4gICAgY29uc3QgcHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdID0gW1xuICAgICAgeyBwcm92aWRlOiB0aGlzLl9zaWRlU2hlZXRDb250YWluZXJUeXBlLCB1c2VWYWx1ZTogc2lkZVNoZWV0Q29udGFpbmVyIH0sXG4gICAgICB7IHByb3ZpZGU6IHRoaXMuX3NpZGVTaGVldERhdGFUb2tlbiwgdXNlVmFsdWU6IGNvbmZpZy5kYXRhIH0sXG4gICAgICB7IHByb3ZpZGU6IHRoaXMuX3NpZGVTaGVldFJlZkNvbnN0cnVjdG9yLCB1c2VWYWx1ZTogc2lkZVNoZWV0UmVmIH0sXG4gICAgXTtcblxuICAgIGlmIChcbiAgICAgIGNvbmZpZy5kaXJlY3Rpb24gJiZcbiAgICAgICghdXNlckluamVjdG9yIHx8XG4gICAgICAgICF1c2VySW5qZWN0b3IuZ2V0PERpcmVjdGlvbmFsaXR5IHwgbnVsbD4oXG4gICAgICAgICAgRGlyZWN0aW9uYWxpdHksXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBJbmplY3RGbGFncy5PcHRpb25hbFxuICAgICAgICApKVxuICAgICkge1xuICAgICAgcHJvdmlkZXJzLnB1c2goe1xuICAgICAgICBwcm92aWRlOiBEaXJlY3Rpb25hbGl0eSxcbiAgICAgICAgdXNlVmFsdWU6IHsgdmFsdWU6IGNvbmZpZy5kaXJlY3Rpb24sIGNoYW5nZTogb2YoKSB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHVzZXJJbmplY3RvciB8fCB0aGlzLl9pbmplY3RvcixcbiAgICAgIHByb3ZpZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgc2lkZSBzaGVldCBmcm9tIHRoZSBhcnJheSBvZiBvcGVuIHNpZGUgc2hlZXRzLlxuICAgKiBAcGFyYW0gc2lkZVNoZWV0UmVmIFNpZGUgU2hlZXQgdG8gYmUgcmVtb3ZlZC5cbiAgICovXG4gIHByaXZhdGUgX3JlbW92ZU9wZW5TaWRlU2hlZXQoc2lkZVNoZWV0UmVmOiBDb3ZhbGVudFNpZGVTaGVldFJlZjx1bmtub3duPikge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVuU2lkZVNoZWV0cy5pbmRleE9mKHNpZGVTaGVldFJlZik7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5vcGVuU2lkZVNoZWV0cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDbG9zZXMgYWxsIG9mIHRoZSBzaWRlLXNoZWV0IGluIGFuIGFycmF5LiAqL1xuICBwcml2YXRlIF9jbG9zZVNpZGVTaGVldHMoc2lkZVNoZWV0czogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PltdKSB7XG4gICAgbGV0IGkgPSBzaWRlU2hlZXRzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIHNpZGVTaGVldHNbaV0uY2xvc2UoKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTZXJ2aWNlIHRvIG9wZW4gQ292YWxlbnQgRGVzaWduIHNpZGUtc2hlZXQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldCBleHRlbmRzIF9Db3ZhbGVudFNpZGVTaGVldEJhc2U8Q292YWxlbnRTaWRlU2hlZXRDb250YWluZXJDb21wb25lbnQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREVGQVVMVF9PUFRJT05TKVxuICAgIGRlZmF1bHRPcHRpb25zOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRTaWRlU2hlZXQ6IENvdmFsZW50U2lkZVNoZWV0XG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgb3ZlcmxheSxcbiAgICAgIGluamVjdG9yLFxuICAgICAgZGVmYXVsdE9wdGlvbnMsXG4gICAgICBwYXJlbnRTaWRlU2hlZXQsXG4gICAgICBDb3ZhbGVudFNpZGVTaGVldFJlZixcbiAgICAgIENvdmFsZW50U2lkZVNoZWV0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgTUFUX0RJQUxPR19EQVRBXG4gICAgKTtcbiAgfVxufVxuIl19