@covalent/core 3.1.1-beta.1 → 3.1.2-beta.7

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 (305) hide show
  1. package/bundles/covalent-core-breadcrumbs.umd.js.map +1 -1
  2. package/bundles/covalent-core-breadcrumbs.umd.min.js.map +1 -1
  3. package/bundles/covalent-core-chips.umd.js +1 -1
  4. package/bundles/covalent-core-chips.umd.js.map +1 -1
  5. package/bundles/covalent-core-chips.umd.min.js +2 -2
  6. package/bundles/covalent-core-chips.umd.min.js.map +1 -1
  7. package/bundles/covalent-core-common.umd.js.map +1 -1
  8. package/bundles/covalent-core-common.umd.min.js.map +1 -1
  9. package/bundles/covalent-core-data-table.umd.js +2 -2
  10. package/bundles/covalent-core-data-table.umd.js.map +1 -1
  11. package/bundles/covalent-core-data-table.umd.min.js +2 -2
  12. package/bundles/covalent-core-data-table.umd.min.js.map +1 -1
  13. package/bundles/covalent-core-dialogs.umd.js +1 -1
  14. package/bundles/covalent-core-dialogs.umd.js.map +1 -1
  15. package/bundles/covalent-core-dialogs.umd.min.js +1 -1
  16. package/bundles/covalent-core-dialogs.umd.min.js.map +1 -1
  17. package/bundles/covalent-core-dynamic-menu.umd.js.map +1 -1
  18. package/bundles/covalent-core-dynamic-menu.umd.min.js.map +1 -1
  19. package/bundles/covalent-core-expansion-panel.umd.js.map +1 -1
  20. package/bundles/covalent-core-file.umd.js.map +1 -1
  21. package/bundles/covalent-core-file.umd.min.js.map +1 -1
  22. package/bundles/covalent-core-json-formatter.umd.js.map +1 -1
  23. package/bundles/covalent-core-layout.umd.js +1 -1
  24. package/bundles/covalent-core-layout.umd.js.map +1 -1
  25. package/bundles/covalent-core-layout.umd.min.js +1 -1
  26. package/bundles/covalent-core-layout.umd.min.js.map +1 -1
  27. package/bundles/covalent-core-loading.umd.js.map +1 -1
  28. package/bundles/covalent-core-loading.umd.min.js.map +1 -1
  29. package/bundles/covalent-core-media.umd.js.map +1 -1
  30. package/bundles/covalent-core-media.umd.min.js.map +1 -1
  31. package/bundles/covalent-core-menu.umd.js.map +1 -1
  32. package/bundles/covalent-core-message.umd.js.map +1 -1
  33. package/bundles/covalent-core-nav-links.umd.js.map +1 -1
  34. package/bundles/covalent-core-notifications.umd.js.map +1 -1
  35. package/bundles/covalent-core-paging.umd.js.map +1 -1
  36. package/bundles/covalent-core-search.umd.js.map +1 -1
  37. package/bundles/covalent-core-search.umd.min.js.map +1 -1
  38. package/bundles/covalent-core-side-sheet.umd.js +1396 -0
  39. package/bundles/covalent-core-side-sheet.umd.js.map +1 -0
  40. package/bundles/covalent-core-side-sheet.umd.min.js +16 -0
  41. package/bundles/covalent-core-side-sheet.umd.min.js.map +1 -0
  42. package/bundles/covalent-core-sidesheet.umd.js.map +1 -1
  43. package/bundles/covalent-core-steps.umd.js.map +1 -1
  44. package/bundles/covalent-core-steps.umd.min.js.map +1 -1
  45. package/bundles/covalent-core-tab-select.umd.js.map +1 -1
  46. package/bundles/covalent-core-tab-select.umd.min.js.map +1 -1
  47. package/bundles/covalent-core-user-profile.umd.js.map +1 -1
  48. package/bundles/covalent-core-user-profile.umd.min.js.map +1 -1
  49. package/bundles/covalent-core-virtual-scroll.umd.js.map +1 -1
  50. package/bundles/covalent-core.umd.js.map +1 -1
  51. package/chips/covalent-core-chips.metadata.json +1 -1
  52. package/common/_common-theme.scss +11 -0
  53. package/data-table/covalent-core-data-table.metadata.json +1 -1
  54. package/dialogs/_dialog-theme.scss +7 -0
  55. package/dialogs/covalent-core-dialogs.metadata.json +1 -1
  56. package/dialogs/window-dialog/window-dialog.component.scss +4 -0
  57. package/esm2015/breadcrumbs/breadcrumb/breadcrumb.component.js +1 -1
  58. package/esm2015/breadcrumbs/breadcrumbs.component.js +1 -1
  59. package/esm2015/breadcrumbs/breadcrumbs.module.js +1 -1
  60. package/esm2015/breadcrumbs/covalent-core-breadcrumbs.js +1 -1
  61. package/esm2015/breadcrumbs/index.js +1 -1
  62. package/esm2015/breadcrumbs/public-api.js +1 -1
  63. package/esm2015/chips/chips.component.js +2 -2
  64. package/esm2015/chips/chips.module.js +1 -1
  65. package/esm2015/chips/covalent-core-chips.js +1 -1
  66. package/esm2015/chips/index.js +1 -1
  67. package/esm2015/chips/public-api.js +1 -1
  68. package/esm2015/common/animations/bounce/bounce.animation.js +1 -1
  69. package/esm2015/common/animations/collapse/collapse.animation.js +1 -1
  70. package/esm2015/common/animations/common/interfaces.js +1 -1
  71. package/esm2015/common/animations/fade/fadeInOut.animation.js +1 -1
  72. package/esm2015/common/animations/flash/flash.animation.js +1 -1
  73. package/esm2015/common/animations/headshake/headshake.animation.js +1 -1
  74. package/esm2015/common/animations/jello/jello.animation.js +1 -1
  75. package/esm2015/common/animations/pulse/pulse.animation.js +1 -1
  76. package/esm2015/common/animations/rotate/rotate.animation.js +1 -1
  77. package/esm2015/common/behaviors/control-value-accesor.mixin.js +1 -1
  78. package/esm2015/common/behaviors/disable-ripple.mixin.js +1 -1
  79. package/esm2015/common/behaviors/disabled.mixin.js +1 -1
  80. package/esm2015/common/common.module.js +1 -1
  81. package/esm2015/common/covalent-core-common.js +1 -1
  82. package/esm2015/common/directives/fullscreen/fullscreen.directive.js +1 -1
  83. package/esm2015/common/forms/auto-trim/auto-trim.directive.js +1 -1
  84. package/esm2015/common/forms/validators/validators.js +1 -1
  85. package/esm2015/common/functions/clipboard.js +1 -1
  86. package/esm2015/common/functions/convert.js +1 -1
  87. package/esm2015/common/functions/download.js +1 -1
  88. package/esm2015/common/functions/file.js +1 -1
  89. package/esm2015/common/index.js +1 -1
  90. package/esm2015/common/pipes/bytes/bytes.pipe.js +1 -1
  91. package/esm2015/common/pipes/decimal-bytes/decimal-bytes.pipe.js +1 -1
  92. package/esm2015/common/pipes/digits/digits.pipe.js +1 -1
  93. package/esm2015/common/pipes/time-ago/time-ago.pipe.js +1 -1
  94. package/esm2015/common/pipes/time-difference/time-difference.pipe.js +1 -1
  95. package/esm2015/common/pipes/time-until/time-until.pipe.js +1 -1
  96. package/esm2015/common/pipes/truncate/truncate.pipe.js +1 -1
  97. package/esm2015/common/public-api.js +1 -1
  98. package/esm2015/common/services/icon.service.js +1 -1
  99. package/esm2015/common/services/router-path.service.js +1 -1
  100. package/esm2015/covalent-core.js +1 -1
  101. package/esm2015/data-table/covalent-core-data-table.js +1 -1
  102. package/esm2015/data-table/data-table-cell/data-table-cell.component.js +2 -2
  103. package/esm2015/data-table/data-table-column/data-table-column.component.js +2 -2
  104. package/esm2015/data-table/data-table-row/data-table-row.component.js +1 -1
  105. package/esm2015/data-table/data-table-table/data-table-table.component.js +1 -1
  106. package/esm2015/data-table/data-table.component.js +1 -1
  107. package/esm2015/data-table/data-table.module.js +1 -1
  108. package/esm2015/data-table/directives/data-table-template.directive.js +1 -1
  109. package/esm2015/data-table/index.js +1 -1
  110. package/esm2015/data-table/public-api.js +1 -1
  111. package/esm2015/data-table/services/data-table.service.js +1 -1
  112. package/esm2015/dialogs/alert-dialog/alert-dialog.component.js +1 -1
  113. package/esm2015/dialogs/confirm-dialog/confirm-dialog.component.js +1 -1
  114. package/esm2015/dialogs/covalent-core-dialogs.js +1 -1
  115. package/esm2015/dialogs/dialog.component.js +1 -1
  116. package/esm2015/dialogs/dialogs.module.js +1 -1
  117. package/esm2015/dialogs/index.js +1 -1
  118. package/esm2015/dialogs/prompt-dialog/prompt-dialog.component.js +1 -1
  119. package/esm2015/dialogs/public-api.js +1 -1
  120. package/esm2015/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.js +2 -2
  121. package/esm2015/dialogs/services/dialog.service.js +1 -1
  122. package/esm2015/dialogs/window-dialog/window-dialog.component.js +2 -2
  123. package/esm2015/dynamic-menu/covalent-core-dynamic-menu.js +1 -1
  124. package/esm2015/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.js +1 -1
  125. package/esm2015/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.js +1 -1
  126. package/esm2015/dynamic-menu/dynamic-menu.component.js +1 -1
  127. package/esm2015/dynamic-menu/dynamic-menu.module.js +1 -1
  128. package/esm2015/dynamic-menu/index.js +1 -1
  129. package/esm2015/dynamic-menu/public_api.js +1 -1
  130. package/esm2015/expansion-panel/covalent-core-expansion-panel.js +1 -1
  131. package/esm2015/expansion-panel/expansion-panel-group.component.js +1 -1
  132. package/esm2015/expansion-panel/expansion-panel.component.js +1 -1
  133. package/esm2015/expansion-panel/expansion-panel.module.js +1 -1
  134. package/esm2015/expansion-panel/index.js +1 -1
  135. package/esm2015/expansion-panel/public-api.js +1 -1
  136. package/esm2015/file/covalent-core-file.js +1 -1
  137. package/esm2015/file/directives/file-drop.directive.js +1 -1
  138. package/esm2015/file/directives/file-select.directive.js +1 -1
  139. package/esm2015/file/file-input/file-input.component.js +1 -1
  140. package/esm2015/file/file-upload/file-upload.component.js +1 -1
  141. package/esm2015/file/file.module.js +1 -1
  142. package/esm2015/file/index.js +1 -1
  143. package/esm2015/file/public-api.js +1 -1
  144. package/esm2015/file/services/file.service.js +1 -1
  145. package/esm2015/index.js +1 -1
  146. package/esm2015/json-formatter/covalent-core-json-formatter.js +1 -1
  147. package/esm2015/json-formatter/index.js +1 -1
  148. package/esm2015/json-formatter/json-formatter.component.js +1 -1
  149. package/esm2015/json-formatter/json-formatter.module.js +1 -1
  150. package/esm2015/json-formatter/public-api.js +1 -1
  151. package/esm2015/layout/covalent-core-layout.js +1 -1
  152. package/esm2015/layout/index.js +1 -1
  153. package/esm2015/layout/layout-card-over/layout-card-over.component.js +2 -2
  154. package/esm2015/layout/layout-footer/layout-footer.component.js +1 -1
  155. package/esm2015/layout/layout-manage-list/layout-manage-list.component.js +1 -1
  156. package/esm2015/layout/layout-manage-list/layout-manage-list.directives.js +1 -1
  157. package/esm2015/layout/layout-nav/layout-nav.component.js +1 -1
  158. package/esm2015/layout/layout-nav-list/layout-nav-list.component.js +1 -1
  159. package/esm2015/layout/layout-nav-list/layout-nav-list.directives.js +1 -1
  160. package/esm2015/layout/layout-toggle.class.js +1 -1
  161. package/esm2015/layout/layout.component.js +1 -1
  162. package/esm2015/layout/layout.directives.js +1 -1
  163. package/esm2015/layout/layout.module.js +1 -1
  164. package/esm2015/layout/navigation-drawer/navigation-drawer.component.js +1 -1
  165. package/esm2015/layout/public-api.js +1 -1
  166. package/esm2015/loading/covalent-core-loading.js +1 -1
  167. package/esm2015/loading/directives/loading.directive.js +1 -1
  168. package/esm2015/loading/index.js +1 -1
  169. package/esm2015/loading/loading.component.js +1 -1
  170. package/esm2015/loading/loading.module.js +1 -1
  171. package/esm2015/loading/public-api.js +1 -1
  172. package/esm2015/loading/services/loading.factory.js +1 -1
  173. package/esm2015/loading/services/loading.service.js +1 -1
  174. package/esm2015/media/covalent-core-media.js +1 -1
  175. package/esm2015/media/directives/media-toggle.directive.js +1 -1
  176. package/esm2015/media/index.js +1 -1
  177. package/esm2015/media/media.module.js +1 -1
  178. package/esm2015/media/public-api.js +1 -1
  179. package/esm2015/media/services/media.service.js +1 -1
  180. package/esm2015/menu/covalent-core-menu.js +1 -1
  181. package/esm2015/menu/index.js +1 -1
  182. package/esm2015/menu/menu.component.js +1 -1
  183. package/esm2015/menu/menu.module.js +1 -1
  184. package/esm2015/menu/public-api.js +1 -1
  185. package/esm2015/message/covalent-core-message.js +1 -1
  186. package/esm2015/message/index.js +1 -1
  187. package/esm2015/message/message.component.js +1 -1
  188. package/esm2015/message/message.module.js +1 -1
  189. package/esm2015/message/public-api.js +1 -1
  190. package/esm2015/nav-links/covalent-core-nav-links.js +1 -1
  191. package/esm2015/nav-links/index.js +1 -1
  192. package/esm2015/nav-links/nav-links.component.js +1 -1
  193. package/esm2015/nav-links/nav-links.module.js +1 -1
  194. package/esm2015/nav-links/public-api.js +1 -1
  195. package/esm2015/notifications/covalent-core-notifications.js +1 -1
  196. package/esm2015/notifications/index.js +1 -1
  197. package/esm2015/notifications/notification-count.component.js +1 -1
  198. package/esm2015/notifications/notifications.module.js +1 -1
  199. package/esm2015/notifications/public-api.js +1 -1
  200. package/esm2015/paging/covalent-core-paging.js +1 -1
  201. package/esm2015/paging/index.js +1 -1
  202. package/esm2015/paging/paging-bar.component.js +1 -1
  203. package/esm2015/paging/paging.module.js +1 -1
  204. package/esm2015/paging/public-api.js +1 -1
  205. package/esm2015/search/covalent-core-search.js +1 -1
  206. package/esm2015/search/index.js +1 -1
  207. package/esm2015/search/public-api.js +1 -1
  208. package/esm2015/search/search-box/search-box.component.js +1 -1
  209. package/esm2015/search/search-input/search-input.component.js +1 -1
  210. package/esm2015/search/search.module.js +1 -1
  211. package/esm2015/side-sheet/covalent-core-side-sheet.js +12 -0
  212. package/esm2015/side-sheet/index.js +7 -0
  213. package/esm2015/side-sheet/public-api.js +11 -0
  214. package/esm2015/side-sheet/side-sheet-container.js +388 -0
  215. package/esm2015/side-sheet/side-sheet-ref.js +47 -0
  216. package/esm2015/side-sheet/side-sheet.animation.js +20 -0
  217. package/esm2015/side-sheet/side-sheet.config.js +12 -0
  218. package/esm2015/side-sheet/side-sheet.content-directives.js +255 -0
  219. package/esm2015/side-sheet/side-sheet.js +312 -0
  220. package/esm2015/side-sheet/side-sheet.module.js +36 -0
  221. package/esm2015/sidesheet/covalent-core-sidesheet.js +1 -1
  222. package/esm2015/sidesheet/index.js +1 -1
  223. package/esm2015/sidesheet/public-api.js +1 -1
  224. package/esm2015/sidesheet/sidesheet.component.js +1 -1
  225. package/esm2015/sidesheet/sidesheet.module.js +1 -1
  226. package/esm2015/steps/covalent-core-steps.js +1 -1
  227. package/esm2015/steps/index.js +1 -1
  228. package/esm2015/steps/nav/nav-step-link/nav-step-link.component.js +1 -1
  229. package/esm2015/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.js +1 -1
  230. package/esm2015/steps/nav/nav-steps-vertical/nav-steps-vertical.component.js +1 -1
  231. package/esm2015/steps/public-api.js +1 -1
  232. package/esm2015/steps/step-body/step-body.component.js +1 -1
  233. package/esm2015/steps/step-header/step-header.component.js +1 -1
  234. package/esm2015/steps/step.component.js +1 -1
  235. package/esm2015/steps/steps.component.js +1 -1
  236. package/esm2015/steps/steps.module.js +1 -1
  237. package/esm2015/tab-select/covalent-core-tab-select.js +1 -1
  238. package/esm2015/tab-select/index.js +1 -1
  239. package/esm2015/tab-select/public-api.js +1 -1
  240. package/esm2015/tab-select/tab-option.component.js +1 -1
  241. package/esm2015/tab-select/tab-select.component.js +1 -1
  242. package/esm2015/tab-select/tab-select.module.js +1 -1
  243. package/esm2015/user-profile/covalent-core-user-profile.js +1 -1
  244. package/esm2015/user-profile/index.js +1 -1
  245. package/esm2015/user-profile/public_api.js +1 -1
  246. package/esm2015/user-profile/user-profile-menu/user-profile-menu.component.js +1 -1
  247. package/esm2015/user-profile/user-profile.component.js +1 -1
  248. package/esm2015/user-profile/user-profile.module.js +1 -1
  249. package/esm2015/virtual-scroll/covalent-core-virtual-scroll.js +1 -1
  250. package/esm2015/virtual-scroll/index.js +1 -1
  251. package/esm2015/virtual-scroll/public-api.js +1 -1
  252. package/esm2015/virtual-scroll/virtual-scroll-container.component.js +1 -1
  253. package/esm2015/virtual-scroll/virtual-scroll-row.directive.js +1 -1
  254. package/esm2015/virtual-scroll/virtual-scroll.module.js +1 -1
  255. package/fesm2015/covalent-core-breadcrumbs.js.map +1 -1
  256. package/fesm2015/covalent-core-chips.js +1 -1
  257. package/fesm2015/covalent-core-chips.js.map +1 -1
  258. package/fesm2015/covalent-core-common.js.map +1 -1
  259. package/fesm2015/covalent-core-data-table.js +2 -2
  260. package/fesm2015/covalent-core-data-table.js.map +1 -1
  261. package/fesm2015/covalent-core-dialogs.js +2 -2
  262. package/fesm2015/covalent-core-dialogs.js.map +1 -1
  263. package/fesm2015/covalent-core-dynamic-menu.js.map +1 -1
  264. package/fesm2015/covalent-core-file.js.map +1 -1
  265. package/fesm2015/covalent-core-layout.js +1 -1
  266. package/fesm2015/covalent-core-layout.js.map +1 -1
  267. package/fesm2015/covalent-core-loading.js.map +1 -1
  268. package/fesm2015/covalent-core-media.js.map +1 -1
  269. package/fesm2015/covalent-core-search.js.map +1 -1
  270. package/fesm2015/covalent-core-side-sheet.js +1070 -0
  271. package/fesm2015/covalent-core-side-sheet.js.map +1 -0
  272. package/fesm2015/covalent-core-steps.js.map +1 -1
  273. package/fesm2015/covalent-core-tab-select.js.map +1 -1
  274. package/fesm2015/covalent-core-user-profile.js.map +1 -1
  275. package/layout/covalent-core-layout.metadata.json +1 -1
  276. package/package.json +7 -7
  277. package/schematics/ng-add/index.js +3 -6
  278. package/schematics/ng-add/index.js.map +1 -1
  279. package/side-sheet/README.md +66 -0
  280. package/side-sheet/covalent-core-side-sheet.d.ts +6 -0
  281. package/side-sheet/covalent-core-side-sheet.metadata.json +1 -0
  282. package/side-sheet/index.d.ts +1 -0
  283. package/side-sheet/package.json +11 -0
  284. package/side-sheet/public-api.d.ts +5 -0
  285. package/side-sheet/side-sheet-container.d.ts +92 -0
  286. package/side-sheet/side-sheet-ref.d.ts +9 -0
  287. package/side-sheet/side-sheet.animation.d.ts +4 -0
  288. package/side-sheet/side-sheet.config.d.ts +3 -0
  289. package/side-sheet/side-sheet.content-directives.d.ts +50 -0
  290. package/side-sheet/side-sheet.d.ts +56 -0
  291. package/side-sheet/side-sheet.module.d.ts +2 -0
  292. package/side-sheet/side-sheet.scss +69 -0
  293. package/side-sheet/side-sheet.theme.scss +8 -0
  294. package/tab-select/covalent-core-tab-select.metadata.json +1 -1
  295. package/theming/_all-theme.scss +2 -0
  296. package/theming/prebuilt/blue-grey-deep-orange.css +34 -1
  297. package/theming/prebuilt/blue-grey-deep-orange.css.map +1 -1
  298. package/theming/prebuilt/blue-orange.css +34 -1
  299. package/theming/prebuilt/blue-orange.css.map +1 -1
  300. package/theming/prebuilt/indigo-pink.css +34 -1
  301. package/theming/prebuilt/indigo-pink.css.map +1 -1
  302. package/theming/prebuilt/orange-light-blue.css +34 -1
  303. package/theming/prebuilt/orange-light-blue.css.map +1 -1
  304. package/theming/prebuilt/teal-orange.css +34 -1
  305. package/theming/prebuilt/teal-orange.css.map +1 -1
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: side-sheet.animation.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { animate, state, style, transition, trigger } from '@angular/animations';
7
+ import { AnimationCurves, AnimationDurations } from '@angular/material/core';
8
+ /** @type {?} */
9
+ export const tdSideSheetAnimations = {
10
+ /**
11
+ * Animation that is applied on the side-sheet container by default.
12
+ */
13
+ sideSheetContainer: trigger('sideSheetContainer', [
14
+ state('void, exit', style({ transform: 'translateX(100%)' })),
15
+ state('enter', style({ transform: 'translateX(0%)', opacity: 1 })),
16
+ transition('* => enter', animate(`${AnimationDurations.ENTERING} ${AnimationCurves.ACCELERATION_CURVE}`, style({ transform: 'translateX(0)', opacity: 1 }))),
17
+ transition('* => void, * => exit', animate(`${AnimationDurations.EXITING} ${AnimationCurves.ACCELERATION_CURVE}`, style({ transform: 'translateX(100%)' }))),
18
+ ]),
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2NvcmUvc2lkZS1zaGVldC8iLCJzb3VyY2VzIjpbInNpZGUtc2hlZXQuYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQTRCLE1BQU0scUJBQXFCLENBQUM7QUFDM0csT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUU3RSxNQUFNLE9BQU8scUJBQXFCLEdBRTlCOzs7O0lBRUYsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixFQUFFO1FBQ2hELEtBQUssQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUM3RCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRSxVQUFVLENBQ1IsWUFBWSxFQUNaLE9BQU8sQ0FDTCxHQUFHLGtCQUFrQixDQUFDLFFBQVEsSUFBSSxlQUFlLENBQUMsa0JBQWtCLEVBQUUsRUFDdEUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FDbEQsQ0FDRjtRQUNELFVBQVUsQ0FDUixzQkFBc0IsRUFDdEIsT0FBTyxDQUNMLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxFQUNyRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUN6QyxDQUNGO0tBQ0YsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyLCBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEFuaW1hdGlvbkN1cnZlcywgQW5pbWF0aW9uRHVyYXRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbmV4cG9ydCBjb25zdCB0ZFNpZGVTaGVldEFuaW1hdGlvbnM6IHtcbiAgcmVhZG9ubHkgc2lkZVNoZWV0Q29udGFpbmVyOiBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGE7XG59ID0ge1xuICAvKiogQW5pbWF0aW9uIHRoYXQgaXMgYXBwbGllZCBvbiB0aGUgc2lkZS1zaGVldCBjb250YWluZXIgYnkgZGVmYXVsdC4gKi9cbiAgc2lkZVNoZWV0Q29udGFpbmVyOiB0cmlnZ2VyKCdzaWRlU2hlZXRDb250YWluZXInLCBbXG4gICAgc3RhdGUoJ3ZvaWQsIGV4aXQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pKSxcbiAgICBzdGF0ZSgnZW50ZXInLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCUpJywgb3BhY2l0eTogMSB9KSksXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICcqID0+IGVudGVyJyxcbiAgICAgIGFuaW1hdGUoXG4gICAgICAgIGAke0FuaW1hdGlvbkR1cmF0aW9ucy5FTlRFUklOR30gJHtBbmltYXRpb25DdXJ2ZXMuQUNDRUxFUkFUSU9OX0NVUlZFfWAsXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKScsIG9wYWNpdHk6IDEgfSksXG4gICAgICApLFxuICAgICksXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICcqID0+IHZvaWQsICogPT4gZXhpdCcsXG4gICAgICBhbmltYXRlKFxuICAgICAgICBgJHtBbmltYXRpb25EdXJhdGlvbnMuRVhJVElOR30gJHtBbmltYXRpb25DdXJ2ZXMuQUNDRUxFUkFUSU9OX0NVUlZFfWAsXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKScgfSksXG4gICAgICApLFxuICAgICksXG4gIF0pLFxufTtcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: side-sheet.config.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { MatDialogConfig } from '@angular/material/dialog';
7
+ /**
8
+ * @template D
9
+ */
10
+ export class CovalentSideSheetConfig extends MatDialogConfig {
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2NvcmUvc2lkZS1zaGVldC8iLCJzb3VyY2VzIjpbInNpZGUtc2hlZXQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBRTNELE1BQU0sT0FBTyx1QkFBaUMsU0FBUSxlQUFrQjtDQUFHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0Q29uZmlnPEQgPSBhbnk+IGV4dGVuZHMgTWF0RGlhbG9nQ29uZmlnPEQ+IHt9XG4iXX0=
@@ -0,0 +1,255 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: side-sheet.content-directives.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ /* tslint:disable */
7
+ import { Directive, Input, Optional, ElementRef } from '@angular/core';
8
+ import { CovalentSideSheet } from './side-sheet';
9
+ import { _closeSideSheetVia, CovalentSideSheetRef } from './side-sheet-ref';
10
+ /**
11
+ * Counter used to generate unique IDs for dialog elements.
12
+ * @type {?}
13
+ */
14
+ let dialogElementUid = 0;
15
+ /**
16
+ * Button that will close the current dialog.
17
+ */
18
+ export class CovalentSideSheetClose {
19
+ /**
20
+ * @param {?} dialogRef
21
+ * @param {?} _elementRef
22
+ * @param {?} _dialog
23
+ */
24
+ constructor(dialogRef, _elementRef, _dialog) {
25
+ this.dialogRef = dialogRef;
26
+ this._elementRef = _elementRef;
27
+ this._dialog = _dialog;
28
+ /**
29
+ * Default to "button" to prevents accidental form submits.
30
+ */
31
+ this.type = 'button';
32
+ }
33
+ /**
34
+ * @return {?}
35
+ */
36
+ ngOnInit() {
37
+ if (!this.dialogRef) {
38
+ // When this directive is included in a dialog via TemplateRef (rather than being
39
+ // in a Component), the DialogRef isn't available via injection because embedded
40
+ // views cannot be given a custom injector. Instead, we look up the DialogRef by
41
+ // ID. This must occur in `onInit`, as the ID binding for the dialog container won't
42
+ // be resolved at constructor time.
43
+ this.dialogRef = (/** @type {?} */ (getClosestDialog(this._elementRef, this._dialog.openSideSheets)));
44
+ }
45
+ }
46
+ /**
47
+ * @param {?} changes
48
+ * @return {?}
49
+ */
50
+ ngOnChanges(changes) {
51
+ /** @type {?} */
52
+ const proxiedChange = changes['_CovalentSideSheetClose'] || changes['_CovalentSideSheetCloseResult'];
53
+ if (proxiedChange) {
54
+ this.dialogResult = proxiedChange.currentValue;
55
+ }
56
+ }
57
+ /**
58
+ * @param {?} event
59
+ * @return {?}
60
+ */
61
+ _onButtonClick(event) {
62
+ // Determinate the focus origin using the click event, because using the FocusMonitor will
63
+ // result in incorrect origins. Most of the time, close buttons will be auto focused in the
64
+ // dialog, and therefore clicking the button won't result in a focus change. This means that
65
+ // the FocusMonitor won't detect any origin change, and will always output `program`.
66
+ _closeSideSheetVia(this.dialogRef, event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse', this.dialogResult);
67
+ }
68
+ }
69
+ CovalentSideSheetClose.decorators = [
70
+ { type: Directive, args: [{
71
+ selector: '[td-side-sheet-close], [CovalentSideSheetClose]',
72
+ exportAs: 'CovalentSideSheetClose',
73
+ host: {
74
+ '(click)': '_onButtonClick($event)',
75
+ '[attr.aria-label]': 'ariaLabel || null',
76
+ '[attr.type]': 'type',
77
+ },
78
+ },] }
79
+ ];
80
+ /** @nocollapse */
81
+ CovalentSideSheetClose.ctorParameters = () => [
82
+ { type: CovalentSideSheetRef, decorators: [{ type: Optional }] },
83
+ { type: ElementRef },
84
+ { type: CovalentSideSheet }
85
+ ];
86
+ CovalentSideSheetClose.propDecorators = {
87
+ ariaLabel: [{ type: Input, args: ['aria-label',] }],
88
+ type: [{ type: Input }],
89
+ dialogResult: [{ type: Input, args: ['td-side-sheet-close',] }],
90
+ _CovalentSideSheetClose: [{ type: Input, args: ['CovalentSideSheetClose',] }]
91
+ };
92
+ if (false) {
93
+ /**
94
+ * Screenreader label for the button.
95
+ * @type {?}
96
+ */
97
+ CovalentSideSheetClose.prototype.ariaLabel;
98
+ /**
99
+ * Default to "button" to prevents accidental form submits.
100
+ * @type {?}
101
+ */
102
+ CovalentSideSheetClose.prototype.type;
103
+ /**
104
+ * Dialog close input.
105
+ * @type {?}
106
+ */
107
+ CovalentSideSheetClose.prototype.dialogResult;
108
+ /** @type {?} */
109
+ CovalentSideSheetClose.prototype._CovalentSideSheetClose;
110
+ /** @type {?} */
111
+ CovalentSideSheetClose.prototype.dialogRef;
112
+ /**
113
+ * @type {?}
114
+ * @private
115
+ */
116
+ CovalentSideSheetClose.prototype._elementRef;
117
+ /**
118
+ * @type {?}
119
+ * @private
120
+ */
121
+ CovalentSideSheetClose.prototype._dialog;
122
+ }
123
+ /**
124
+ * Title of a side sheet element. Stays fixed to the top of the side sheet when scrolling.
125
+ */
126
+ export class CovalentSideSheetTitle {
127
+ /**
128
+ * @param {?} _dialogRef
129
+ * @param {?} _elementRef
130
+ * @param {?} _dialog
131
+ */
132
+ constructor(_dialogRef, _elementRef, _dialog) {
133
+ this._dialogRef = _dialogRef;
134
+ this._elementRef = _elementRef;
135
+ this._dialog = _dialog;
136
+ /**
137
+ * Unique id for the dialog title. If none is supplied, it will be auto-generated.
138
+ */
139
+ this.id = `td-side-sheet-title-${dialogElementUid++}`;
140
+ }
141
+ /**
142
+ * @return {?}
143
+ */
144
+ ngOnInit() {
145
+ if (this._dialogRef) {
146
+ Promise.resolve().then((/**
147
+ * @return {?}
148
+ */
149
+ () => {
150
+ /** @type {?} */
151
+ const container = this._dialogRef._containerInstance;
152
+ if (container && !container._ariaLabelledBy) {
153
+ container._ariaLabelledBy = this.id;
154
+ }
155
+ }));
156
+ }
157
+ else {
158
+ this._dialogRef = (/** @type {?} */ (getClosestDialog(this._elementRef, this._dialog.openSideSheets)));
159
+ }
160
+ }
161
+ }
162
+ CovalentSideSheetTitle.decorators = [
163
+ { type: Directive, args: [{
164
+ selector: '[td-side-sheet-title], [CovalentSideSheetTitle]',
165
+ exportAs: 'CovalentSideSheetTitle',
166
+ host: {
167
+ 'class': 'td-side-sheet-title',
168
+ '[id]': 'id',
169
+ },
170
+ },] }
171
+ ];
172
+ /** @nocollapse */
173
+ CovalentSideSheetTitle.ctorParameters = () => [
174
+ { type: CovalentSideSheetRef, decorators: [{ type: Optional }] },
175
+ { type: ElementRef },
176
+ { type: CovalentSideSheet }
177
+ ];
178
+ CovalentSideSheetTitle.propDecorators = {
179
+ id: [{ type: Input }]
180
+ };
181
+ if (false) {
182
+ /**
183
+ * Unique id for the dialog title. If none is supplied, it will be auto-generated.
184
+ * @type {?}
185
+ */
186
+ CovalentSideSheetTitle.prototype.id;
187
+ /**
188
+ * @type {?}
189
+ * @private
190
+ */
191
+ CovalentSideSheetTitle.prototype._dialogRef;
192
+ /**
193
+ * @type {?}
194
+ * @private
195
+ */
196
+ CovalentSideSheetTitle.prototype._elementRef;
197
+ /**
198
+ * @type {?}
199
+ * @private
200
+ */
201
+ CovalentSideSheetTitle.prototype._dialog;
202
+ }
203
+ /**
204
+ * Scrollable content container of a dialog.
205
+ */
206
+ export class CovalentSideSheetContent {
207
+ }
208
+ CovalentSideSheetContent.decorators = [
209
+ { type: Directive, args: [{
210
+ selector: `[td-side-sheet-content], td-side-sheet-content, [CovalentSideSheetContent]`,
211
+ host: { class: 'td-side-sheet-content' },
212
+ },] }
213
+ ];
214
+ /**
215
+ * Container for the bottom action buttons in a dialog.
216
+ * Stays fixed to the bottom when scrolling.
217
+ */
218
+ export class CovalentSideSheetActions {
219
+ }
220
+ CovalentSideSheetActions.decorators = [
221
+ { type: Directive, args: [{
222
+ selector: `[td-side-sheet-actions], td-side-sheet-actions, [CovalentSideSheetActions]`,
223
+ host: { class: 'td-side-sheet-actions' },
224
+ },] }
225
+ ];
226
+ /**
227
+ * Container for the wrapper part of the dialog
228
+ */
229
+ export class CovalentSideSheetWrapper {
230
+ }
231
+ CovalentSideSheetWrapper.decorators = [
232
+ { type: Directive, args: [{
233
+ selector: `[td-side-sheet-wrapper], td-side-sheet-wrapper, [CovalentSideSheetWrapper]`,
234
+ host: { class: 'td-side-sheet-wrapper' },
235
+ },] }
236
+ ];
237
+ /**
238
+ * Finds the closest CovalentSideSheetRef to an element by looking at the DOM.
239
+ * @param {?} element Element relative to which to look for a dialog.
240
+ * @param {?} openDialogs References to the currently-open dialogs.
241
+ * @return {?}
242
+ */
243
+ function getClosestDialog(element, openDialogs) {
244
+ /** @type {?} */
245
+ let parent = element.nativeElement.parentElement;
246
+ while (parent && !parent.classList.contains('td-side-sheet-container')) {
247
+ parent = parent.parentElement;
248
+ }
249
+ return parent ? openDialogs.find((/**
250
+ * @param {?} dialog
251
+ * @return {?}
252
+ */
253
+ (dialog) => dialog.id === (/** @type {?} */ (parent)).id)) : null;
254
+ }
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb250ZW50LWRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2NvcmUvc2lkZS1zaGVldC8iLCJzb3VyY2VzIjpbInNpZGUtc2hlZXQuY29udGVudC1kaXJlY3RpdmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQWlCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0lBR3hFLGdCQUFnQixHQUFHLENBQUM7Ozs7QUFjeEIsTUFBTSxPQUFPLHNCQUFzQjs7Ozs7O0lBWWpDLFlBQ3FCLFNBQW9DLEVBQy9DLFdBQW9DLEVBQ3BDLE9BQTBCO1FBRmYsY0FBUyxHQUFULFNBQVMsQ0FBMkI7UUFDL0MsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLFlBQU8sR0FBUCxPQUFPLENBQW1COzs7O1FBVjNCLFNBQUksR0FBa0MsUUFBUSxDQUFDO0lBV3JELENBQUM7Ozs7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsaUZBQWlGO1lBQ2pGLGdGQUFnRjtZQUNoRixnRkFBZ0Y7WUFDaEYsb0ZBQW9GO1lBQ3BGLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLG1CQUFBLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBQyxDQUFDO1NBQ25GO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7O2NBQzFCLGFBQWEsR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUMsSUFBSSxPQUFPLENBQUMsK0JB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LFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNEVBQTRFO2dCQUN0RixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7YUFDekM7Ozs7O0FBVUQsTUFBTSxPQUFPLHdCQUF3Qjs7O1lBSnBDLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNEVBQTRFO2dCQUN0RixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7YUFDekM7Ozs7Ozs7O0FBUUQsU0FBUyxnQkFBZ0IsQ0FBQyxPQUFnQyxFQUFFLFdBQXdDOztRQUM5RixNQUFNLEdBQXVCLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYTtJQUVwRSxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEVBQUU7UUFDdEUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7S0FDL0I7SUFFRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUk7Ozs7SUFBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxtQkFBQSxNQUFNLEVBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE9wdGlvbmFsLCBTaW1wbGVDaGFuZ2VzLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3ZhbGVudFNpZGVTaGVldCB9IGZyb20gJy4vc2lkZS1zaGVldCc7XG5pbXBvcnQgeyBfY2xvc2VTaWRlU2hlZXRWaWEsIENvdmFsZW50U2lkZVNoZWV0UmVmIH0gZnJvbSAnLi9zaWRlLXNoZWV0LXJlZic7XG5cbi8qKiBDb3VudGVyIHVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEcyBmb3IgZGlhbG9nIGVsZW1lbnRzLiAqL1xubGV0IGRpYWxvZ0VsZW1lbnRVaWQgPSAwO1xuXG4vKipcbiAqIEJ1dHRvbiB0aGF0IHdpbGwgY2xvc2UgdGhlIGN1cnJlbnQgZGlhbG9nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGQtc2lkZS1zaGVldC1jbG9zZV0sIFtDb3ZhbGVudFNpZGVTaGVldENsb3NlXScsXG4gIGV4cG9ydEFzOiAnQ292YWxlbnRTaWRlU2hlZXRDbG9zZScsXG4gIGhvc3Q6IHtcbiAgICAnKGNsaWNrKSc6ICdfb25CdXR0b25DbGljaygkZXZlbnQpJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnYXJpYUxhYmVsIHx8IG51bGwnLFxuICAgICdbYXR0ci50eXBlXSc6ICd0eXBlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRDbG9zZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqIFNjcmVlbnJlYWRlciBsYWJlbCBmb3IgdGhlIGJ1dHRvbi4gKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsJykgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqIERlZmF1bHQgdG8gXCJidXR0b25cIiB0byBwcmV2ZW50cyBhY2NpZGVudGFsIGZvcm0gc3VibWl0cy4gKi9cbiAgQElucHV0KCkgdHlwZTogJ3N1Ym1pdCcgfCAnYnV0dG9uJyB8ICdyZXNldCcgPSAnYnV0dG9uJztcblxuICAvKiogRGlhbG9nIGNsb3NlIGlucHV0LiAqL1xuICBASW5wdXQoJ3RkLXNpZGUtc2hlZXQtY2xvc2UnKSBkaWFsb2dSZXN1bHQ6IGFueTtcblxuICBASW5wdXQoJ0NvdmFsZW50U2lkZVNoZWV0Q2xvc2UnKSBfQ292YWxlbnRTaWRlU2hlZXRDbG9zZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT4sXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBDb3ZhbGVudFNpZGVTaGVldCxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgIC8vIFdoZW4gdGhpcyBkaXJlY3RpdmUgaXMgaW5jbHVkZWQgaW4gYSBkaWFsb2cgdmlhIFRlbXBsYXRlUmVmIChyYXRoZXIgdGhhbiBiZWluZ1xuICAgICAgLy8gaW4gYSBDb21wb25lbnQpLCB0aGUgRGlhbG9nUmVmIGlzbid0IGF2YWlsYWJsZSB2aWEgaW5qZWN0aW9uIGJlY2F1c2UgZW1iZWRkZWRcbiAgICAgIC8vIHZpZXdzIGNhbm5vdCBiZSBnaXZlbiBhIGN1c3RvbSBpbmplY3Rvci4gSW5zdGVhZCwgd2UgbG9vayB1cCB0aGUgRGlhbG9nUmVmIGJ5XG4gICAgICAvLyBJRC4gVGhpcyBtdXN0IG9jY3VyIGluIGBvbkluaXRgLCBhcyB0aGUgSUQgYmluZGluZyBmb3IgdGhlIGRpYWxvZyBjb250YWluZXIgd29uJ3RcbiAgICAgIC8vIGJlIHJlc29sdmVkIGF0IGNvbnN0cnVjdG9yIHRpbWUuXG4gICAgICB0aGlzLmRpYWxvZ1JlZiA9IGdldENsb3Nlc3REaWFsb2codGhpcy5fZWxlbWVudFJlZiwgdGhpcy5fZGlhbG9nLm9wZW5TaWRlU2hlZXRzKSE7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHByb3hpZWRDaGFuZ2UgPSBjaGFuZ2VzWydfQ292YWxlbnRTaWRlU2hlZXRDbG9zZSddIHx8IGNoYW5nZXNbJ19Db3ZhbGVudFNpZGVTaGVldENsb3NlUmVzdWx0J107XG5cbiAgICBpZiAocHJveGllZENoYW5nZSkge1xuICAgICAgdGhpcy5kaWFsb2dSZXN1bHQgPSBwcm94aWVkQ2hhbmdlLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBfb25CdXR0b25DbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIC8vIERldGVybWluYXRlIHRoZSBmb2N1cyBvcmlnaW4gdXNpbmcgdGhlIGNsaWNrIGV2ZW50LCBiZWNhdXNlIHVzaW5nIHRoZSBGb2N1c01vbml0b3Igd2lsbFxuICAgIC8vIHJlc3VsdCBpbiBpbmNvcnJlY3Qgb3JpZ2lucy4gTW9zdCBvZiB0aGUgdGltZSwgY2xvc2UgYnV0dG9ucyB3aWxsIGJlIGF1dG8gZm9jdXNlZCBpbiB0aGVcbiAgICAvLyBkaWFsb2csIGFuZCB0aGVyZWZvcmUgY2xpY2tpbmcgdGhlIGJ1dHRvbiB3b24ndCByZXN1bHQgaW4gYSBmb2N1cyBjaGFuZ2UuIFRoaXMgbWVhbnMgdGhhdFxuICAgIC8vIHRoZSBGb2N1c01vbml0b3Igd29uJ3QgZGV0ZWN0IGFueSBvcmlnaW4gY2hhbmdlLCBhbmQgd2lsbCBhbHdheXMgb3V0cHV0IGBwcm9ncmFtYC5cbiAgICBfY2xvc2VTaWRlU2hlZXRWaWEoXG4gICAgICB0aGlzLmRpYWxvZ1JlZixcbiAgICAgIGV2ZW50LnNjcmVlblggPT09IDAgJiYgZXZlbnQuc2NyZWVuWSA9PT0gMCA/ICdrZXlib2FyZCcgOiAnbW91c2UnLFxuICAgICAgdGhpcy5kaWFsb2dSZXN1bHQsXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFRpdGxlIG9mIGEgc2lkZSBzaGVldCBlbGVtZW50LiBTdGF5cyBmaXhlZCB0byB0aGUgdG9wIG9mIHRoZSBzaWRlIHNoZWV0IHdoZW4gc2Nyb2xsaW5nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGQtc2lkZS1zaGVldC10aXRsZV0sIFtDb3ZhbGVudFNpZGVTaGVldFRpdGxlXScsXG4gIGV4cG9ydEFzOiAnQ292YWxlbnRTaWRlU2hlZXRUaXRsZScsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAndGQtc2lkZS1zaGVldC10aXRsZScsXG4gICAgJ1tpZF0nOiAnaWQnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldFRpdGxlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIFVuaXF1ZSBpZCBmb3IgdGhlIGRpYWxvZyB0aXRsZS4gSWYgbm9uZSBpcyBzdXBwbGllZCwgaXQgd2lsbCBiZSBhdXRvLWdlbmVyYXRlZC4gKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9IGB0ZC1zaWRlLXNoZWV0LXRpdGxlLSR7ZGlhbG9nRWxlbWVudFVpZCsrfWA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gVGhlIGRpYWxvZyB0aXRsZSBkaXJlY3RpdmUgaXMgYWx3YXlzIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBhIGBDb3ZhbGVudFNpZGVTaGVldFJlZmAuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBsaWdodHdlaWdodC10b2tlbnNcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaWFsb2dSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT4sXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBDb3ZhbGVudFNpZGVTaGVldCxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kaWFsb2dSZWYpIHtcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9kaWFsb2dSZWYuX2NvbnRhaW5lckluc3RhbmNlO1xuXG4gICAgICAgIGlmIChjb250YWluZXIgJiYgIWNvbnRhaW5lci5fYXJpYUxhYmVsbGVkQnkpIHtcbiAgICAgICAgICBjb250YWluZXIuX2FyaWFMYWJlbGxlZEJ5ID0gdGhpcy5pZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RpYWxvZ1JlZiA9IGdldENsb3Nlc3REaWFsb2codGhpcy5fZWxlbWVudFJlZiwgdGhpcy5fZGlhbG9nLm9wZW5TaWRlU2hlZXRzKSE7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU2Nyb2xsYWJsZSBjb250ZW50IGNvbnRhaW5lciBvZiBhIGRpYWxvZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgW3RkLXNpZGUtc2hlZXQtY29udGVudF0sIHRkLXNpZGUtc2hlZXQtY29udGVudCwgW0NvdmFsZW50U2lkZVNoZWV0Q29udGVudF1gLFxuICBob3N0OiB7IGNsYXNzOiAndGQtc2lkZS1zaGVldC1jb250ZW50JyB9LFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldENvbnRlbnQge31cblxuLyoqXG4gKiBDb250YWluZXIgZm9yIHRoZSBib3R0b20gYWN0aW9uIGJ1dHRvbnMgaW4gYSBkaWFsb2cuXG4gKiBTdGF5cyBmaXhlZCB0byB0aGUgYm90dG9tIHdoZW4gc2Nyb2xsaW5nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IGBbdGQtc2lkZS1zaGVldC1hY3Rpb25zXSwgdGQtc2lkZS1zaGVldC1hY3Rpb25zLCBbQ292YWxlbnRTaWRlU2hlZXRBY3Rpb25zXWAsXG4gIGhvc3Q6IHsgY2xhc3M6ICd0ZC1zaWRlLXNoZWV0LWFjdGlvbnMnIH0sXG59KVxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0QWN0aW9ucyB7fVxuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgdGhlIHdyYXBwZXIgcGFydCBvZiB0aGUgZGlhbG9nXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFt0ZC1zaWRlLXNoZWV0LXdyYXBwZXJdLCB0ZC1zaWRlLXNoZWV0LXdyYXBwZXIsIFtDb3ZhbGVudFNpZGVTaGVldFdyYXBwZXJdYCxcbiAgaG9zdDogeyBjbGFzczogJ3RkLXNpZGUtc2hlZXQtd3JhcHBlcicgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRXcmFwcGVyIHt9XG5cbi8qKlxuICogRmluZHMgdGhlIGNsb3Nlc3QgQ292YWxlbnRTaWRlU2hlZXRSZWYgdG8gYW4gZWxlbWVudCBieSBsb29raW5nIGF0IHRoZSBET00uXG4gKiBAcGFyYW0gZWxlbWVudCBFbGVtZW50IHJlbGF0aXZlIHRvIHdoaWNoIHRvIGxvb2sgZm9yIGEgZGlhbG9nLlxuICogQHBhcmFtIG9wZW5EaWFsb2dzIFJlZmVyZW5jZXMgdG8gdGhlIGN1cnJlbnRseS1vcGVuIGRpYWxvZ3MuXG4gKi9cbmZ1bmN0aW9uIGdldENsb3Nlc3REaWFsb2coZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIG9wZW5EaWFsb2dzOiBDb3ZhbGVudFNpZGVTaGVldFJlZjxhbnk+W10pIHtcbiAgbGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgd2hpbGUgKHBhcmVudCAmJiAhcGFyZW50LmNsYXNzTGlzdC5jb250YWlucygndGQtc2lkZS1zaGVldC1jb250YWluZXInKSkge1xuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50O1xuICB9XG5cbiAgcmV0dXJuIHBhcmVudCA/IG9wZW5EaWFsb2dzLmZpbmQoKGRpYWxvZykgPT4gZGlhbG9nLmlkID09PSBwYXJlbnQhLmlkKSA6IG51bGw7XG59XG4iXX0=
@@ -0,0 +1,312 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: side-sheet.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ /* tslint:disable */
7
+ import { Directive, Inject, Injectable, InjectFlags, InjectionToken, Injector, Optional, SkipSelf, TemplateRef, Type, } from '@angular/core';
8
+ import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
9
+ import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
10
+ import { MAT_DIALOG_DATA, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
11
+ import { CovalentSideSheetContainer } from './side-sheet-container';
12
+ import { Subject, of } from 'rxjs';
13
+ import { Directionality } from '@angular/cdk/bidi';
14
+ import { CovalentSideSheetRef } from './side-sheet-ref';
15
+ import { CovalentSideSheetConfig } from './side-sheet.config';
16
+ /**
17
+ * @template C
18
+ */
19
+ export class _CovalentSideSheetBase {
20
+ /**
21
+ * @param {?} _overlay
22
+ * @param {?} _injector
23
+ * @param {?} _defaultOptions
24
+ * @param {?} _parentSideSheet
25
+ * @param {?} _sideSheetRefConstructor
26
+ * @param {?} _sideSheetContainerType
27
+ * @param {?} _sideSheetDataToken
28
+ */
29
+ constructor(_overlay, _injector, _defaultOptions, _parentSideSheet, _sideSheetRefConstructor, _sideSheetContainerType, _sideSheetDataToken) {
30
+ this._overlay = _overlay;
31
+ this._injector = _injector;
32
+ this._defaultOptions = _defaultOptions;
33
+ this._parentSideSheet = _parentSideSheet;
34
+ this._sideSheetRefConstructor = _sideSheetRefConstructor;
35
+ this._sideSheetContainerType = _sideSheetContainerType;
36
+ this._sideSheetDataToken = _sideSheetDataToken;
37
+ this._openSideSheetsAtThisLevel = [];
38
+ this._afterAllClosedAtThisLevel = new Subject();
39
+ this._afterOpenedAtThisLevel = new Subject();
40
+ this.defaultSidebarConfig = {
41
+ minWidth: '400px',
42
+ };
43
+ }
44
+ /**
45
+ * Keeps track of the currently-open side-sheets.
46
+ * @return {?}
47
+ */
48
+ get openSideSheets() {
49
+ return this._parentSideSheet ? this._parentSideSheet.openSideSheets : this._openSideSheetsAtThisLevel;
50
+ }
51
+ /**
52
+ * @template T, D, R
53
+ * @param {?} componentOrTemplateRef
54
+ * @param {?=} config
55
+ * @return {?}
56
+ */
57
+ open(componentOrTemplateRef, config) {
58
+ config = Object.assign(Object.assign(Object.assign({}, this.defaultSidebarConfig), config), (this._defaultOptions || new CovalentSideSheetConfig()));
59
+ /** @type {?} */
60
+ const overlayRef = this._createOverlay(config);
61
+ /** @type {?} */
62
+ const sideSheetContainer = this._attachSideSheetContainer(overlayRef, config);
63
+ /** @type {?} */
64
+ const sideSheetRef = this._attachSideSheetContent(componentOrTemplateRef, sideSheetContainer, overlayRef, config);
65
+ this.openSideSheets.push(sideSheetRef);
66
+ // Notify the side-sheet container that the content has been attached.
67
+ sideSheetContainer._initializeWithAttachedContent();
68
+ return sideSheetRef;
69
+ }
70
+ /**
71
+ * @return {?}
72
+ */
73
+ ngOnDestroy() {
74
+ // Only close the side-sheets at this level on destroy
75
+ // since the parent service may still be active.
76
+ this._closeSideSheets(this._openSideSheetsAtThisLevel);
77
+ this._afterAllClosedAtThisLevel.complete();
78
+ this._afterOpenedAtThisLevel.complete();
79
+ // Clean up any subscriptions to side-sheet that never finished opening.
80
+ if (this._animationStateSubscriptions) {
81
+ this._animationStateSubscriptions.unsubscribe();
82
+ }
83
+ }
84
+ /**
85
+ * Closes all of the currently-open side-sheets.
86
+ * @return {?}
87
+ */
88
+ closeAll() {
89
+ this._closeSideSheets(this.openSideSheets);
90
+ }
91
+ /**
92
+ * @private
93
+ * @template T
94
+ * @param {?} config
95
+ * @return {?}
96
+ */
97
+ _createOverlay(config) {
98
+ /** @type {?} */
99
+ const overlayConfig = new OverlayConfig({
100
+ positionStrategy: this._overlay.position().global(),
101
+ scrollStrategy: this._overlay.scrollStrategies.block(),
102
+ panelClass: config.panelClass,
103
+ hasBackdrop: config.hasBackdrop,
104
+ direction: config.direction,
105
+ minWidth: config.minWidth,
106
+ minHeight: config.minHeight,
107
+ maxWidth: config.maxWidth,
108
+ });
109
+ /** @type {?} */
110
+ const overlayRef = this._overlay.create(overlayConfig);
111
+ /** @type {?} */
112
+ const positionStrategy = (/** @type {?} */ (overlayRef.getConfig().positionStrategy));
113
+ positionStrategy.right('0px');
114
+ return overlayRef;
115
+ }
116
+ /**
117
+ * Attaches a container to a side-sheets's already-created overlay.
118
+ * @private
119
+ * @param {?} overlay Reference to the side-sheet's underlying overlay.
120
+ * @param {?} config The side-sheet configuration.
121
+ * @return {?} A promise resolving to a ComponentRef for the attached container.
122
+ */
123
+ _attachSideSheetContainer(overlay, config) {
124
+ /** @type {?} */
125
+ const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
126
+ /** @type {?} */
127
+ const injector = Injector.create({
128
+ parent: userInjector || this._injector,
129
+ providers: [{ provide: CovalentSideSheetConfig, useValue: config }],
130
+ });
131
+ /** @type {?} */
132
+ const containerPortal = new ComponentPortal(this._sideSheetContainerType, config.viewContainerRef, injector, config.componentFactoryResolver);
133
+ /** @type {?} */
134
+ const containerRef = overlay.attach(containerPortal);
135
+ return containerRef.instance;
136
+ }
137
+ /**
138
+ * Attaches the user-provided component to the already-created side sheet container.
139
+ * @private
140
+ * @template T, R
141
+ * @param {?} componentOrTemplateRef The type of component being loaded into the side-sheet,
142
+ * or a TemplateRef to instantiate as the content.
143
+ * @param {?} sideSheetContainer
144
+ * @param {?} overlayRef Reference to the overlay in which the side-sheet resides.
145
+ * @param {?} config The side-sheet configuration.
146
+ * @return {?} A promise resolving to the CovalentSideSheetRef that should be returned to the user.
147
+ */
148
+ _attachSideSheetContent(componentOrTemplateRef, sideSheetContainer, overlayRef, config) {
149
+ // Create a reference to the side-sheet we're creating in order to give the user a handle
150
+ // to modify and close it.
151
+ /** @type {?} */
152
+ const sideSheetRef = new this._sideSheetRefConstructor(overlayRef, sideSheetContainer, config.id);
153
+ if (componentOrTemplateRef instanceof TemplateRef) {
154
+ sideSheetContainer.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, (/** @type {?} */ (null)), (/** @type {?} */ ({
155
+ $implicit: config.data,
156
+ sideSheetRef,
157
+ }))));
158
+ }
159
+ else {
160
+ /** @type {?} */
161
+ const injector = this._createInjector(config, sideSheetRef, sideSheetContainer);
162
+ /** @type {?} */
163
+ const contentRef = sideSheetContainer.attach(new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector));
164
+ sideSheetRef.componentInstance = contentRef.instance;
165
+ }
166
+ sideSheetRef.updateSize(config.width, config.height);
167
+ return sideSheetRef;
168
+ }
169
+ /**
170
+ * @private
171
+ * @template T
172
+ * @param {?} config
173
+ * @param {?} sideSheetRef
174
+ * @param {?} sideSheetContainer
175
+ * @return {?}
176
+ */
177
+ _createInjector(config, sideSheetRef, sideSheetContainer) {
178
+ /** @type {?} */
179
+ const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
180
+ // The side-sheet container should be provided as the side-sheet container and the side-sheet's
181
+ // content are created out of the same `ViewContainerRef` and as such, are siblings
182
+ // for injector purposes. To allow the hierarchy that is expected, the side-sheet
183
+ // container is explicitly provided in the injector.
184
+ /** @type {?} */
185
+ const providers = [
186
+ { provide: this._sideSheetContainerType, useValue: sideSheetContainer },
187
+ { provide: this._sideSheetDataToken, useValue: config.data },
188
+ { provide: this._sideSheetRefConstructor, useValue: sideSheetRef },
189
+ ];
190
+ if (config.direction &&
191
+ (!userInjector || !userInjector.get(Directionality, null, InjectFlags.Optional))) {
192
+ providers.push({
193
+ provide: Directionality,
194
+ useValue: { value: config.direction, change: of() },
195
+ });
196
+ }
197
+ return Injector.create({ parent: userInjector || this._injector, providers });
198
+ }
199
+ /**
200
+ * Closes all of the side-sheet in an array.
201
+ * @private
202
+ * @param {?} sideSheets
203
+ * @return {?}
204
+ */
205
+ _closeSideSheets(sideSheets) {
206
+ /** @type {?} */
207
+ let i = sideSheets.length;
208
+ while (i--) {
209
+ sideSheets[i].close();
210
+ }
211
+ }
212
+ }
213
+ _CovalentSideSheetBase.decorators = [
214
+ { type: Directive }
215
+ ];
216
+ /** @nocollapse */
217
+ _CovalentSideSheetBase.ctorParameters = () => [
218
+ { type: Overlay },
219
+ { type: Injector },
220
+ { type: undefined },
221
+ { type: undefined },
222
+ { type: Type },
223
+ { type: Type },
224
+ { type: InjectionToken }
225
+ ];
226
+ if (false) {
227
+ /**
228
+ * @type {?}
229
+ * @private
230
+ */
231
+ _CovalentSideSheetBase.prototype._openSideSheetsAtThisLevel;
232
+ /**
233
+ * @type {?}
234
+ * @private
235
+ */
236
+ _CovalentSideSheetBase.prototype._afterAllClosedAtThisLevel;
237
+ /**
238
+ * @type {?}
239
+ * @private
240
+ */
241
+ _CovalentSideSheetBase.prototype._afterOpenedAtThisLevel;
242
+ /**
243
+ * @type {?}
244
+ * @private
245
+ */
246
+ _CovalentSideSheetBase.prototype._animationStateSubscriptions;
247
+ /**
248
+ * @type {?}
249
+ * @private
250
+ */
251
+ _CovalentSideSheetBase.prototype.defaultSidebarConfig;
252
+ /**
253
+ * @type {?}
254
+ * @private
255
+ */
256
+ _CovalentSideSheetBase.prototype._overlay;
257
+ /**
258
+ * @type {?}
259
+ * @private
260
+ */
261
+ _CovalentSideSheetBase.prototype._injector;
262
+ /**
263
+ * @type {?}
264
+ * @private
265
+ */
266
+ _CovalentSideSheetBase.prototype._defaultOptions;
267
+ /**
268
+ * @type {?}
269
+ * @private
270
+ */
271
+ _CovalentSideSheetBase.prototype._parentSideSheet;
272
+ /**
273
+ * @type {?}
274
+ * @private
275
+ */
276
+ _CovalentSideSheetBase.prototype._sideSheetRefConstructor;
277
+ /**
278
+ * @type {?}
279
+ * @private
280
+ */
281
+ _CovalentSideSheetBase.prototype._sideSheetContainerType;
282
+ /**
283
+ * @type {?}
284
+ * @private
285
+ */
286
+ _CovalentSideSheetBase.prototype._sideSheetDataToken;
287
+ }
288
+ /**
289
+ * Service to open Covalent Design side-sheet.
290
+ */
291
+ export class CovalentSideSheet extends _CovalentSideSheetBase {
292
+ /**
293
+ * @param {?} overlay
294
+ * @param {?} injector
295
+ * @param {?} defaultOptions
296
+ * @param {?} parentSideSheet
297
+ */
298
+ constructor(overlay, injector, defaultOptions, parentSideSheet) {
299
+ super(overlay, injector, defaultOptions, parentSideSheet, CovalentSideSheetRef, CovalentSideSheetContainer, MAT_DIALOG_DATA);
300
+ }
301
+ }
302
+ CovalentSideSheet.decorators = [
303
+ { type: Injectable }
304
+ ];
305
+ /** @nocollapse */
306
+ CovalentSideSheet.ctorParameters = () => [
307
+ { type: Overlay },
308
+ { type: Injector },
309
+ { type: CovalentSideSheetConfig, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DIALOG_DEFAULT_OPTIONS,] }] },
310
+ { type: CovalentSideSheet, decorators: [{ type: Optional }, { type: SkipSelf }] }
311
+ ];
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vY29yZS9zaWRlLXNoZWV0LyIsInNvdXJjZXMiOlsic2lkZS1zaGVldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsV0FBVyxFQUNYLGNBQWMsRUFDZCxRQUFRLEVBRVIsUUFBUSxFQUNSLFFBQVEsRUFFUixXQUFXLEVBQ1gsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFzQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxlQUFlLEVBQWlCLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQTJCLE1BQU0sMEJBQTBCLENBQUM7QUFDaEgsT0FBTyxFQUFFLDBCQUEwQixFQUFtQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxPQUFPLEVBQWdCLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFHOUQsTUFBTSxPQUFPLHNCQUFzQjs7Ozs7Ozs7OztJQVVqQyxZQUNVLFFBQWlCLEVBQ2pCLFNBQW1CLEVBQ25CLGVBQW9ELEVBQ3BELGdCQUF1RCxFQUN2RCx3QkFBeUQsRUFDekQsdUJBQWdDLEVBQ2hDLG1CQUF3QztRQU54QyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsb0JBQWUsR0FBZixlQUFlLENBQXFDO1FBQ3BELHFCQUFnQixH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YWJsZSAqL1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdEZsYWdzLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNraXBTZWxmLFxuICBTdGF0aWNQcm92aWRlcixcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiwgR2xvYmFsUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZSwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTUFUX0RJQUxPR19ERUZBVUxUX09QVElPTlMsIF9NYXREaWFsb2dDb250YWluZXJCYXNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IENvdmFsZW50U2lkZVNoZWV0Q29udGFpbmVyLCBfQ292YWxlbnRTaWRlU2hlZXRDb250YWluZXJCYXNlIH0gZnJvbSAnLi9zaWRlLXNoZWV0LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcblxuaW1wb3J0IHsgQ292YWxlbnRTaWRlU2hlZXRSZWYgfSBmcm9tICcuL3NpZGUtc2hlZXQtcmVmJztcbmltcG9ydCB7IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnIH0gZnJvbSAnLi9zaWRlLXNoZWV0LmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIF9Db3ZhbGVudFNpZGVTaGVldEJhc2U8QyBleHRlbmRzIF9Db3ZhbGVudFNpZGVTaGVldENvbnRhaW5lckJhc2U+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfb3BlblNpZGVTaGVldHNBdFRoaXNMZXZlbDogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlck9wZW5lZEF0VGhpc0xldmVsID0gbmV3IFN1YmplY3Q8Q292YWxlbnRTaWRlU2hlZXRSZWY8YW55Pj4oKTtcbiAgcHJpdmF0ZSBfYW5pbWF0aW9uU3RhdGVTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBkZWZhdWx0U2lkZWJhckNvbmZpZyA9IHtcbiAgICBtaW5XaWR0aDogJzQwMHB4JyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9kZWZhdWx0T3B0aW9uczogQ292YWxlbnRTaWRlU2hlZXRDb25maWcgfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSBfcGFyZW50U2lkZVNoZWV0OiBfQ292YWxlbnRTaWRlU2hlZXRCYXNlPEM+IHwgdW5kZWZpbmVkLFxuICAgIHByaXZhdGUgX3NpZGVTaGVldFJlZkNvbnN0cnVjdG9yOiBUeXBlPENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT4+LFxuICAgIHByaXZhdGUgX3NpZGVTaGVldENvbnRhaW5lclR5cGU6IFR5cGU8Qz4sXG4gICAgcHJpdmF0ZSBfc2lkZVNoZWV0RGF0YVRva2VuOiBJbmplY3Rpb25Ub2tlbjxhbnk+LFxuICApIHt9XG5cbiAgLyoqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50bHktb3BlbiBzaWRlLXNoZWV0cy4gKi9cbiAgZ2V0IG9wZW5TaWRlU2hlZXRzKCk6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudFNpZGVTaGVldCA/IHRoaXMuX3BhcmVudFNpZGVTaGVldC5vcGVuU2lkZVNoZWV0cyA6IHRoaXMuX29wZW5TaWRlU2hlZXRzQXRUaGlzTGV2ZWw7XG4gIH1cblxuICBvcGVuPFQsIEQgPSBhbnksIFIgPSBhbnk+KFxuICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc/OiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZzxEPixcbiAgKTogQ292YWxlbnRTaWRlU2hlZXRSZWY8VCwgUj4ge1xuICAgIGNvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0U2lkZWJhckNvbmZpZywgLi4uY29uZmlnLCAuLi4odGhpcy5fZGVmYXVsdE9wdGlvbnMgfHwgbmV3IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnKCkpIH07XG5cbiAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5fY3JlYXRlT3ZlcmxheShjb25maWcpO1xuICAgIGNvbnN0IHNpZGVTaGVldENvbnRhaW5lciA9IHRoaXMuX2F0dGFjaFNpZGVTaGVldENvbnRhaW5lcihvdmVybGF5UmVmLCBjb25maWcpO1xuXG4gICAgY29uc3Qgc2lkZVNoZWV0UmVmID0gdGhpcy5fYXR0YWNoU2lkZVNoZWV0Q29udGVudDxULCBSPihcbiAgICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsXG4gICAgICBzaWRlU2hlZXRDb250YWluZXIsXG4gICAgICBvdmVybGF5UmVmLFxuICAgICAgY29uZmlnLFxuICAgICk7XG5cbiAgICB0aGlzLm9wZW5TaWRlU2hlZXRzLnB1c2goc2lkZVNoZWV0UmVmKTtcblxuICAgIC8vIE5vdGlmeSB0aGUgc2lkZS1zaGVldCBjb250YWluZXIgdGhhdCB0aGUgY29udGVudCBoYXMgYmVlbiBhdHRhY2hlZC5cbiAgICBzaWRlU2hlZXRDb250YWluZXIuX2luaXRpYWxpemVXaXRoQXR0YWNoZWRDb250ZW50KCk7XG5cbiAgICByZXR1cm4gc2lkZVNoZWV0UmVmO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gT25seSBjbG9zZSB0aGUgc2lkZS1zaGVldHMgYXQgdGhpcyBsZXZlbCBvbiBkZXN0cm95XG4gICAgLy8gc2luY2UgdGhlIHBhcmVudCBzZXJ2aWNlIG1heSBzdGlsbCBiZSBhY3RpdmUuXG4gICAgdGhpcy5fY2xvc2VTaWRlU2hlZXRzKHRoaXMuX29wZW5TaWRlU2hlZXRzQXRUaGlzTGV2ZWwpO1xuICAgIHRoaXMuX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwuY29tcGxldGUoKTtcbiAgICB0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gICAgLy8gQ2xlYW4gdXAgYW55IHN1YnNjcmlwdGlvbnMgdG8gc2lkZS1zaGVldCB0aGF0IG5ldmVyIGZpbmlzaGVkIG9wZW5pbmcuXG4gICAgaWYgKHRoaXMuX2FuaW1hdGlvblN0YXRlU3Vic2NyaXB0aW9ucykge1xuICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhdGVTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyBhbGwgb2YgdGhlIGN1cnJlbnRseS1vcGVuIHNpZGUtc2hlZXRzLlxuICAgKi9cbiAgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2VTaWRlU2hlZXRzKHRoaXMub3BlblNpZGVTaGVldHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlT3ZlcmxheTxUPihjb25maWcpOiBPdmVybGF5UmVmIHtcbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgcGFuZWxDbGFzczogY29uZmlnLnBhbmVsQ2xhc3MsXG4gICAgICBoYXNCYWNrZHJvcDogY29uZmlnLmhhc0JhY2tkcm9wLFxuICAgICAgZGlyZWN0aW9uOiBjb25maWcuZGlyZWN0aW9uLFxuICAgICAgbWluV2lkdGg6IGNvbmZpZy5taW5XaWR0aCxcbiAgICAgIG1pbkhlaWdodDogY29uZmlnLm1pbkhlaWdodCxcbiAgICAgIG1heFdpZHRoOiBjb25maWcubWF4V2lkdGgsXG4gICAgfSk7XG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpO1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSBvdmVybGF5UmVmLmdldENvbmZpZygpLnBvc2l0aW9uU3RyYXRlZ3kgYXMgR2xvYmFsUG9zaXRpb25TdHJhdGVneTtcbiAgICBwb3NpdGlvblN0cmF0ZWd5LnJpZ2h0KCcwcHgnKTtcblxuICAgIHJldHVybiBvdmVybGF5UmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIGEgY29udGFpbmVyIHRvIGEgc2lkZS1zaGVldHMncyBhbHJlYWR5LWNyZWF0ZWQgb3ZlcmxheS5cbiAgICogQHBhcmFtIG92ZXJsYXkgUmVmZXJlbmNlIHRvIHRoZSBzaWRlLXNoZWV0J3MgdW5kZXJseWluZyBvdmVybGF5LlxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBzaWRlLXNoZWV0IGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gYSBDb21wb25lbnRSZWYgZm9yIHRoZSBhdHRhY2hlZCBjb250YWluZXIuXG4gICAqL1xuICBwcml2YXRlIF9hdHRhY2hTaWRlU2hlZXRDb250YWluZXIob3ZlcmxheTogT3ZlcmxheVJlZiwgY29uZmlnOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyk6IEMge1xuICAgIGNvbnN0IHVzZXJJbmplY3RvciA9IGNvbmZpZyAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZiAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZi5pbmplY3RvcjtcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHVzZXJJbmplY3RvciB8fCB0aGlzLl9pbmplY3RvcixcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ292YWxlbnRTaWRlU2hlZXRDb25maWcsIHVzZVZhbHVlOiBjb25maWcgfV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgdGhpcy5fc2lkZVNoZWV0Q29udGFpbmVyVHlwZSxcbiAgICAgIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgaW5qZWN0b3IsXG4gICAgICBjb25maWcuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICk7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gb3ZlcmxheS5hdHRhY2g8Qz4oY29udGFpbmVyUG9ydGFsKTtcblxuICAgIHJldHVybiBjb250YWluZXJSZWYuaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgdGhlIHVzZXItcHJvdmlkZWQgY29tcG9uZW50IHRvIHRoZSBhbHJlYWR5LWNyZWF0ZWQgc2lkZSBzaGVldCBjb250YWluZXIuXG4gICAqIEBwYXJhbSBjb21wb25lbnRPclRlbXBsYXRlUmVmIFRoZSB0eXBlIG9mIGNvbXBvbmVudCBiZWluZyBsb2FkZWQgaW50byB0aGUgc2lkZS1zaGVldCxcbiAgICogICAgIG9yIGEgVGVtcGxhdGVSZWYgdG8gaW5zdGFudGlhdGUgYXMgdGhlIGNvbnRlbnQuXG4gICAqIEBwYXJhbSBkaWFsb2dDb250YWluZXIgUmVmZXJlbmNlIHRvIHRoZSB3cmFwcGluZyBzaWRlLXNoZWV0IGNvbnRhaW5lci5cbiAgICogQHBhcmFtIG92ZXJsYXlSZWYgUmVmZXJlbmNlIHRvIHRoZSBvdmVybGF5IGluIHdoaWNoIHRoZSBzaWRlLXNoZWV0IHJlc2lkZXMuXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIHNpZGUtc2hlZXQgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgQ292YWxlbnRTaWRlU2hlZXRSZWYgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBwcml2YXRlIF9hdHRhY2hTaWRlU2hlZXRDb250ZW50PFQsIFI+KFxuICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBzaWRlU2hlZXRDb250YWluZXI6IEMsXG4gICAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICBjb25maWc6IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnLFxuICApOiBDb3ZhbGVudFNpZGVTaGVldFJlZjxULCBSPiB7XG4gICAgLy8gQ3JlYXRlIGEgcmVmZXJlbmNlIHRvIHRoZSBzaWRlLXNoZWV0IHdlJ3JlIGNyZWF0aW5nIGluIG9yZGVyIHRvIGdpdmUgdGhlIHVzZXIgYSBoYW5kbGVcbiAgICAvLyB0byBtb2RpZnkgYW5kIGNsb3NlIGl0LlxuICAgIGNvbnN0IHNpZGVTaGVldFJlZiA9IG5ldyB0aGlzLl9zaWRlU2hlZXRSZWZDb25zdHJ1Y3RvcihvdmVybGF5UmVmLCBzaWRlU2hlZXRDb250YWluZXIsIGNvbmZpZy5pZCk7XG5cbiAgICBpZiAoY29tcG9uZW50T3JUZW1wbGF0ZVJlZiBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICBzaWRlU2hlZXRDb250YWluZXIuYXR0YWNoVGVtcGxhdGVQb3J0YWwoXG4gICAgICAgIG5ldyBUZW1wbGF0ZVBvcnRhbDxUPihjb21wb25lbnRPclRlbXBsYXRlUmVmLCBudWxsISwgPGFueT57XG4gICAgICAgICAgJGltcGxpY2l0OiBjb25maWcuZGF0YSxcbiAgICAgICAgICBzaWRlU2hlZXRSZWYsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLl9jcmVhdGVJbmplY3RvcjxUPihjb25maWcsIHNpZGVTaGVldFJlZiwgc2lkZVNoZWV0Q29udGFpbmVyKTtcbiAgICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBzaWRlU2hlZXRDb250YWluZXIuYXR0YWNoPFQ+KFxuICAgICAgICBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLCBpbmplY3RvciksXG4gICAgICApO1xuICAgICAgc2lkZVNoZWV0UmVmLmNvbXBvbmVudEluc3RhbmNlID0gY29udGVudFJlZi5pbnN0YW5jZTtcbiAgICB9XG5cbiAgICBzaWRlU2hlZXRSZWYudXBkYXRlU2l6ZShjb25maWcud2lkdGgsIGNvbmZpZy5oZWlnaHQpO1xuXG4gICAgcmV0dXJuIHNpZGVTaGVldFJlZjtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUluamVjdG9yPFQ+KFxuICAgIGNvbmZpZzogQ292YWxlbnRTaWRlU2hlZXRDb25maWcsXG4gICAgc2lkZVNoZWV0UmVmOiBDb3ZhbGVudFNpZGVTaGVldFJlZjxUPixcbiAgICBzaWRlU2hlZXRDb250YWluZXI6IEMsXG4gICk6IEluamVjdG9yIHtcbiAgICBjb25zdCB1c2VySW5qZWN0b3IgPSBjb25maWcgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3I7XG5cbiAgICAvLyBUaGUgc2lkZS1zaGVldCBjb250YWluZXIgc2hvdWxkIGJlIHByb3ZpZGVkIGFzIHRoZSBzaWRlLXNoZWV0IGNvbnRhaW5lciBhbmQgdGhlIHNpZGUtc2hlZXQnc1xuICAgIC8vIGNvbnRlbnQgYXJlIGNyZWF0ZWQgb3V0IG9mIHRoZSBzYW1lIGBWaWV3Q29udGFpbmVyUmVmYCBhbmQgYXMgc3VjaCwgYXJlIHNpYmxpbmdzXG4gICAgLy8gZm9yIGluamVjdG9yIHB1cnBvc2VzLiBUbyBhbGxvdyB0aGUgaGllcmFyY2h5IHRoYXQgaXMgZXhwZWN0ZWQsIHRoZSBzaWRlLXNoZWV0XG4gICAgLy8gY29udGFpbmVyIGlzIGV4cGxpY2l0bHkgcHJvdmlkZWQgaW4gdGhlIGluamVjdG9yLlxuICAgIGNvbnN0IHByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSA9IFtcbiAgICAgIHsgcHJvdmlkZTogdGhpcy5fc2lkZVNoZWV0Q29udGFpbmVyVHlwZSwgdXNlVmFsdWU6IHNpZGVTaGVldENvbnRhaW5lciB9LFxuICAgICAgeyBwcm92aWRlOiB0aGlzLl9zaWRlU2hlZXREYXRhVG9rZW4sIHVzZVZhbHVlOiBjb25maWcuZGF0YSB9LFxuICAgICAgeyBwcm92aWRlOiB0aGlzLl9zaWRlU2hlZXRSZWZDb25zdHJ1Y3RvciwgdXNlVmFsdWU6IHNpZGVTaGVldFJlZiB9LFxuICAgIF07XG5cbiAgICBpZiAoXG4gICAgICBjb25maWcuZGlyZWN0aW9uICYmXG4gICAgICAoIXVzZXJJbmplY3RvciB8fCAhdXNlckluamVjdG9yLmdldDxEaXJlY3Rpb25hbGl0eSB8IG51bGw+KERpcmVjdGlvbmFsaXR5LCBudWxsLCBJbmplY3RGbGFncy5PcHRpb25hbCkpXG4gICAgKSB7XG4gICAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IERpcmVjdGlvbmFsaXR5LFxuICAgICAgICB1c2VWYWx1ZTogeyB2YWx1ZTogY29uZmlnLmRpcmVjdGlvbiwgY2hhbmdlOiBvZigpIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHsgcGFyZW50OiB1c2VySW5qZWN0b3IgfHwgdGhpcy5faW5qZWN0b3IsIHByb3ZpZGVycyB9KTtcbiAgfVxuXG4gIC8qKiBDbG9zZXMgYWxsIG9mIHRoZSBzaWRlLXNoZWV0IGluIGFuIGFycmF5LiAqL1xuICBwcml2YXRlIF9jbG9zZVNpZGVTaGVldHMoc2lkZVNoZWV0czogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PltdKSB7XG4gICAgbGV0IGkgPSBzaWRlU2hlZXRzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIHNpZGVTaGVldHNbaV0uY2xvc2UoKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTZXJ2aWNlIHRvIG9wZW4gQ292YWxlbnQgRGVzaWduIHNpZGUtc2hlZXQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldCBleHRlbmRzIF9Db3ZhbGVudFNpZGVTaGVldEJhc2U8Q292YWxlbnRTaWRlU2hlZXRDb250YWluZXI+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RFRkFVTFRfT1BUSU9OUykgZGVmYXVsdE9wdGlvbnM6IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnLFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHBhcmVudFNpZGVTaGVldDogQ292YWxlbnRTaWRlU2hlZXQsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgb3ZlcmxheSxcbiAgICAgIGluamVjdG9yLFxuICAgICAgZGVmYXVsdE9wdGlvbnMsXG4gICAgICBwYXJlbnRTaWRlU2hlZXQsXG4gICAgICBDb3ZhbGVudFNpZGVTaGVldFJlZixcbiAgICAgIENvdmFsZW50U2lkZVNoZWV0Q29udGFpbmVyLFxuICAgICAgTUFUX0RJQUxPR19EQVRBLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==