@covalent/core 6.3.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/breadcrumbs/breadcrumbs.component.d.ts +1 -1
  2. package/dialogs/window-dialog/window-dialog.component.d.ts +1 -1
  3. package/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.d.ts +1 -1
  4. package/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.d.ts +1 -1
  5. package/dynamic-menu/dynamic-menu.component.d.ts +1 -1
  6. package/esm2022/breadcrumbs/breadcrumb/breadcrumb.component.mjs +94 -0
  7. package/esm2022/breadcrumbs/breadcrumbs.component.mjs +135 -0
  8. package/{esm2020 → esm2022}/breadcrumbs/breadcrumbs.module.mjs +5 -5
  9. package/esm2022/common/behaviors/control-value-accesor.mixin.mjs +43 -0
  10. package/esm2022/common/behaviors/disable-ripple.mixin.mjs +24 -0
  11. package/{esm2020 → esm2022}/common/behaviors/disabled.mixin.mjs +2 -2
  12. package/{esm2020 → esm2022}/common/common.module.mjs +17 -17
  13. package/esm2022/common/directives/fullscreen/fullscreen.directive.mjs +87 -0
  14. package/esm2022/common/forms/auto-trim/auto-trim.directive.mjs +37 -0
  15. package/esm2022/common/functions/convert.mjs +84 -0
  16. package/esm2022/common/functions/download.mjs +75 -0
  17. package/esm2022/common/pipes/bytes/bytes.pipe.mjs +42 -0
  18. package/esm2022/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +42 -0
  19. package/esm2022/common/pipes/digits/digits.pipe.mjs +41 -0
  20. package/{esm2020 → esm2022}/common/pipes/time-ago/time-ago.pipe.mjs +4 -4
  21. package/{esm2020 → esm2022}/common/pipes/time-difference/time-difference.pipe.mjs +4 -4
  22. package/{esm2020 → esm2022}/common/pipes/time-until/time-until.pipe.mjs +4 -4
  23. package/esm2022/common/pipes/truncate/truncate.pipe.mjs +27 -0
  24. package/esm2022/common/services/icon.service.mjs +1087 -0
  25. package/esm2022/common/services/router-path.service.mjs +30 -0
  26. package/esm2022/dialogs/alert-dialog/alert-dialog.component.mjs +26 -0
  27. package/esm2022/dialogs/confirm-dialog/confirm-dialog.component.mjs +31 -0
  28. package/esm2022/dialogs/dialog.component.mjs +60 -0
  29. package/{esm2020 → esm2022}/dialogs/dialogs.module.mjs +39 -39
  30. package/esm2022/dialogs/prompt-dialog/prompt-dialog.component.mjs +84 -0
  31. package/esm2022/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +220 -0
  32. package/esm2022/dialogs/services/dialog.service.mjs +179 -0
  33. package/esm2022/dialogs/window-dialog/window-dialog.component.mjs +40 -0
  34. package/esm2022/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +30 -0
  35. package/esm2022/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +23 -0
  36. package/esm2022/dynamic-menu/dynamic-menu.component.mjs +28 -0
  37. package/{esm2020 → esm2022}/dynamic-menu/dynamic-menu.module.mjs +19 -19
  38. package/esm2022/file/directives/file-drop.directive.mjs +145 -0
  39. package/esm2022/file/directives/file-select.directive.mjs +78 -0
  40. package/esm2022/file/file-input/file-input.component.mjs +146 -0
  41. package/esm2022/file/file-upload/file-upload.component.mjs +185 -0
  42. package/{esm2020 → esm2022}/file/file.module.mjs +21 -21
  43. package/esm2022/file/services/file.service.mjs +66 -0
  44. package/esm2022/json-formatter/json-formatter.component.mjs +222 -0
  45. package/{esm2020 → esm2022}/json-formatter/json-formatter.module.mjs +5 -5
  46. package/esm2022/layout/layout-card-over/layout-card-over.component.mjs +50 -0
  47. package/esm2022/layout/layout-footer/layout-footer.component.mjs +36 -0
  48. package/esm2022/layout/layout-manage-list/layout-manage-list.component.mjs +92 -0
  49. package/{esm2020 → esm2022}/layout/layout-manage-list/layout-manage-list.directives.mjs +10 -10
  50. package/esm2022/layout/layout-nav/layout-nav.component.mjs +76 -0
  51. package/esm2022/layout/layout-nav-list/layout-nav-list.component.mjs +154 -0
  52. package/{esm2020 → esm2022}/layout/layout-nav-list/layout-nav-list.directives.mjs +10 -10
  53. package/esm2022/layout/layout-toggle.class.mjs +96 -0
  54. package/esm2022/layout/layout.component.mjs +91 -0
  55. package/{esm2020 → esm2022}/layout/layout.directives.mjs +10 -10
  56. package/{esm2020 → esm2022}/layout/layout.module.mjs +55 -55
  57. package/esm2022/layout/navigation-drawer/navigation-drawer.component.mjs +221 -0
  58. package/esm2022/loading/directives/loading.directive.mjs +133 -0
  59. package/esm2022/loading/loading.component.mjs +193 -0
  60. package/{esm2020 → esm2022}/loading/loading.module.mjs +13 -13
  61. package/esm2022/loading/services/loading.factory.mjs +210 -0
  62. package/esm2022/loading/services/loading.service.mjs +219 -0
  63. package/{esm2020 → esm2022}/menu/menu.component.mjs +4 -4
  64. package/{esm2020 → esm2022}/menu/menu.module.mjs +5 -5
  65. package/esm2022/message/message.component.mjs +222 -0
  66. package/{esm2020 → esm2022}/message/message.module.mjs +7 -7
  67. package/esm2022/search/search-box/search-box.component.mjs +198 -0
  68. package/esm2022/search/search-input/search-input.component.mjs +214 -0
  69. package/{esm2020 → esm2022}/search/search.module.mjs +13 -13
  70. package/esm2022/side-sheet/side-sheet-container.mjs +285 -0
  71. package/esm2022/side-sheet/side-sheet-ref.mjs +30 -0
  72. package/{esm2020 → esm2022}/side-sheet/side-sheet.config.mjs +2 -5
  73. package/esm2022/side-sheet/side-sheet.content-directives.mjs +206 -0
  74. package/esm2022/side-sheet/side-sheet.mjs +236 -0
  75. package/{esm2020 → esm2022}/side-sheet/side-sheet.module.mjs +14 -14
  76. package/esm2022/user-profile/user-profile-menu/user-profile-menu.component.mjs +25 -0
  77. package/esm2022/user-profile/user-profile.component.mjs +21 -0
  78. package/{esm2020 → esm2022}/user-profile/user-profile.module.mjs +15 -15
  79. package/{fesm2015 → fesm2022}/covalent-core-breadcrumbs.mjs +28 -22
  80. package/{fesm2015 → fesm2022}/covalent-core-breadcrumbs.mjs.map +1 -1
  81. package/{fesm2020 → fesm2022}/covalent-core-common.mjs +1131 -1125
  82. package/fesm2022/covalent-core-common.mjs.map +1 -0
  83. package/{fesm2020 → fesm2022}/covalent-core-dialogs.mjs +109 -80
  84. package/{fesm2020 → fesm2022}/covalent-core-dialogs.mjs.map +1 -1
  85. package/fesm2022/covalent-core-dynamic-menu.mjs +125 -0
  86. package/{fesm2015 → fesm2022}/covalent-core-dynamic-menu.mjs.map +1 -1
  87. package/{fesm2020 → fesm2022}/covalent-core-file.mjs +148 -110
  88. package/{fesm2020 → fesm2022}/covalent-core-file.mjs.map +1 -1
  89. package/{fesm2020 → fesm2022}/covalent-core-json-formatter.mjs +26 -21
  90. package/{fesm2020 → fesm2022}/covalent-core-json-formatter.mjs.map +1 -1
  91. package/{fesm2020 → fesm2022}/covalent-core-layout.mjs +396 -271
  92. package/{fesm2015 → fesm2022}/covalent-core-layout.mjs.map +1 -1
  93. package/{fesm2020 → fesm2022}/covalent-core-loading.mjs +100 -78
  94. package/{fesm2020 → fesm2022}/covalent-core-loading.mjs.map +1 -1
  95. package/{fesm2015 → fesm2022}/covalent-core-menu.mjs +7 -7
  96. package/{fesm2015 → fesm2022}/covalent-core-menu.mjs.map +1 -1
  97. package/{fesm2020 → fesm2022}/covalent-core-message.mjs +42 -23
  98. package/{fesm2020 → fesm2022}/covalent-core-message.mjs.map +1 -1
  99. package/fesm2022/covalent-core-search.mjs +438 -0
  100. package/fesm2022/covalent-core-search.mjs.map +1 -0
  101. package/{fesm2020 → fesm2022}/covalent-core-side-sheet.mjs +124 -99
  102. package/{fesm2020 → fesm2022}/covalent-core-side-sheet.mjs.map +1 -1
  103. package/fesm2022/covalent-core-user-profile.mjs +87 -0
  104. package/fesm2022/covalent-core-user-profile.mjs.map +1 -0
  105. package/file/directives/file-drop.directive.d.ts +1 -1
  106. package/file/directives/file-select.directive.d.ts +1 -1
  107. package/file/file-input/file-input.component.d.ts +1 -1
  108. package/file/file-upload/file-upload.component.d.ts +1 -1
  109. package/json-formatter/json-formatter.component.d.ts +1 -1
  110. package/layout/layout-card-over/layout-card-over.component.d.ts +1 -1
  111. package/layout/layout-footer/layout-footer.component.d.ts +1 -1
  112. package/layout/layout-manage-list/layout-manage-list.component.d.ts +1 -1
  113. package/layout/layout-manage-list/layout-manage-list.directives.d.ts +3 -3
  114. package/layout/layout-nav/layout-nav.component.d.ts +1 -1
  115. package/layout/layout-nav-list/layout-nav-list.component.d.ts +1 -1
  116. package/layout/layout-nav-list/layout-nav-list.directives.d.ts +3 -3
  117. package/layout/layout-toggle.class.d.ts +1 -1
  118. package/layout/layout.component.d.ts +1 -1
  119. package/layout/layout.directives.d.ts +3 -3
  120. package/layout/navigation-drawer/navigation-drawer.component.d.ts +1 -1
  121. package/loading/directives/loading.directive.d.ts +1 -1
  122. package/message/message.component.d.ts +1 -1
  123. package/package.json +55 -91
  124. package/search/search-box/search-box.component.d.ts +1 -1
  125. package/search/search-input/search-input.component.d.ts +1 -1
  126. package/side-sheet/side-sheet.content-directives.d.ts +2 -2
  127. package/user-profile/user-profile-menu/user-profile-menu.component.d.ts +1 -1
  128. package/user-profile/user-profile.component.d.ts +1 -1
  129. package/common/styles/font/README.md +0 -11
  130. package/dialogs/src/README.md +0 -223
  131. package/esm2020/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -92
  132. package/esm2020/breadcrumbs/breadcrumbs.component.mjs +0 -131
  133. package/esm2020/common/behaviors/control-value-accesor.mixin.mjs +0 -41
  134. package/esm2020/common/behaviors/disable-ripple.mixin.mjs +0 -24
  135. package/esm2020/common/directives/fullscreen/fullscreen.directive.mjs +0 -85
  136. package/esm2020/common/forms/auto-trim/auto-trim.directive.mjs +0 -36
  137. package/esm2020/common/functions/convert.mjs +0 -84
  138. package/esm2020/common/functions/download.mjs +0 -75
  139. package/esm2020/common/pipes/bytes/bytes.pipe.mjs +0 -42
  140. package/esm2020/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +0 -42
  141. package/esm2020/common/pipes/digits/digits.pipe.mjs +0 -39
  142. package/esm2020/common/pipes/truncate/truncate.pipe.mjs +0 -27
  143. package/esm2020/common/services/icon.service.mjs +0 -1089
  144. package/esm2020/common/services/router-path.service.mjs +0 -29
  145. package/esm2020/dialogs/alert-dialog/alert-dialog.component.mjs +0 -23
  146. package/esm2020/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -28
  147. package/esm2020/dialogs/dialog.component.mjs +0 -57
  148. package/esm2020/dialogs/prompt-dialog/prompt-dialog.component.mjs +0 -75
  149. package/esm2020/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +0 -216
  150. package/esm2020/dialogs/services/dialog.service.mjs +0 -174
  151. package/esm2020/dialogs/window-dialog/window-dialog.component.mjs +0 -38
  152. package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +0 -30
  153. package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +0 -24
  154. package/esm2020/dynamic-menu/dynamic-menu.component.mjs +0 -28
  155. package/esm2020/file/directives/file-drop.directive.mjs +0 -139
  156. package/esm2020/file/directives/file-select.directive.mjs +0 -77
  157. package/esm2020/file/file-input/file-input.component.mjs +0 -128
  158. package/esm2020/file/file-upload/file-upload.component.mjs +0 -174
  159. package/esm2020/file/services/file.service.mjs +0 -64
  160. package/esm2020/json-formatter/json-formatter.component.mjs +0 -217
  161. package/esm2020/layout/layout-card-over/layout-card-over.component.mjs +0 -40
  162. package/esm2020/layout/layout-footer/layout-footer.component.mjs +0 -33
  163. package/esm2020/layout/layout-manage-list/layout-manage-list.component.mjs +0 -93
  164. package/esm2020/layout/layout-nav/layout-nav.component.mjs +0 -50
  165. package/esm2020/layout/layout-nav-list/layout-nav-list.component.mjs +0 -128
  166. package/esm2020/layout/layout-toggle.class.mjs +0 -92
  167. package/esm2020/layout/layout.component.mjs +0 -92
  168. package/esm2020/layout/navigation-drawer/navigation-drawer.component.mjs +0 -163
  169. package/esm2020/loading/directives/loading.directive.mjs +0 -126
  170. package/esm2020/loading/loading.component.mjs +0 -187
  171. package/esm2020/loading/services/loading.factory.mjs +0 -207
  172. package/esm2020/loading/services/loading.service.mjs +0 -213
  173. package/esm2020/message/message.component.mjs +0 -203
  174. package/esm2020/search/search-box/search-box.component.mjs +0 -194
  175. package/esm2020/search/search-input/search-input.component.mjs +0 -207
  176. package/esm2020/side-sheet/side-sheet-container.mjs +0 -274
  177. package/esm2020/side-sheet/side-sheet-ref.mjs +0 -26
  178. package/esm2020/side-sheet/side-sheet.content-directives.mjs +0 -201
  179. package/esm2020/side-sheet/side-sheet.mjs +0 -228
  180. package/esm2020/user-profile/user-profile-menu/user-profile-menu.component.mjs +0 -23
  181. package/esm2020/user-profile/user-profile.component.mjs +0 -19
  182. package/fesm2015/covalent-core-common.mjs +0 -2281
  183. package/fesm2015/covalent-core-common.mjs.map +0 -1
  184. package/fesm2015/covalent-core-dialogs.mjs +0 -668
  185. package/fesm2015/covalent-core-dialogs.mjs.map +0 -1
  186. package/fesm2015/covalent-core-dynamic-menu.mjs +0 -126
  187. package/fesm2015/covalent-core-file.mjs +0 -621
  188. package/fesm2015/covalent-core-file.mjs.map +0 -1
  189. package/fesm2015/covalent-core-json-formatter.mjs +0 -298
  190. package/fesm2015/covalent-core-json-formatter.mjs.map +0 -1
  191. package/fesm2015/covalent-core-layout.mjs +0 -1024
  192. package/fesm2015/covalent-core-loading.mjs +0 -766
  193. package/fesm2015/covalent-core-loading.mjs.map +0 -1
  194. package/fesm2015/covalent-core-message.mjs +0 -284
  195. package/fesm2015/covalent-core-message.mjs.map +0 -1
  196. package/fesm2015/covalent-core-search.mjs +0 -430
  197. package/fesm2015/covalent-core-search.mjs.map +0 -1
  198. package/fesm2015/covalent-core-side-sheet.mjs +0 -784
  199. package/fesm2015/covalent-core-side-sheet.mjs.map +0 -1
  200. package/fesm2015/covalent-core-user-profile.mjs +0 -83
  201. package/fesm2015/covalent-core-user-profile.mjs.map +0 -1
  202. package/fesm2020/covalent-core-breadcrumbs.mjs +0 -243
  203. package/fesm2020/covalent-core-breadcrumbs.mjs.map +0 -1
  204. package/fesm2020/covalent-core-common.mjs.map +0 -1
  205. package/fesm2020/covalent-core-dynamic-menu.mjs +0 -126
  206. package/fesm2020/covalent-core-dynamic-menu.mjs.map +0 -1
  207. package/fesm2020/covalent-core-layout.mjs.map +0 -1
  208. package/fesm2020/covalent-core-menu.mjs +0 -37
  209. package/fesm2020/covalent-core-menu.mjs.map +0 -1
  210. package/fesm2020/covalent-core-search.mjs +0 -427
  211. package/fesm2020/covalent-core-search.mjs.map +0 -1
  212. package/fesm2020/covalent-core-user-profile.mjs +0 -83
  213. package/fesm2020/covalent-core-user-profile.mjs.map +0 -1
  214. package/fesm2020/covalent-core.mjs +0 -4
  215. package/fesm2020/covalent-core.mjs.map +0 -1
  216. package/file/src/file-input/README.md +0 -147
  217. package/file/src/file-upload/README.md +0 -136
  218. package/layout/src/layout-card-over/README.md +0 -43
  219. package/layout/src/layout-manage-list/README.md +0 -80
  220. package/layout/src/layout-nav/README.md +0 -50
  221. package/layout/src/layout-nav-list/README.md +0 -105
  222. package/search/src/search-box/README.md +0 -73
  223. package/search/src/search-input/README.md +0 -74
  224. /package/{esm2020 → esm2022}/breadcrumbs/covalent-core-breadcrumbs.mjs +0 -0
  225. /package/{esm2020 → esm2022}/breadcrumbs/public_api.mjs +0 -0
  226. /package/{esm2020 → esm2022}/common/animations/bounce/bounce.animation.mjs +0 -0
  227. /package/{esm2020 → esm2022}/common/animations/collapse/collapse.animation.mjs +0 -0
  228. /package/{esm2020 → esm2022}/common/animations/common/interfaces.mjs +0 -0
  229. /package/{esm2020 → esm2022}/common/animations/fade/fadeInOut.animation.mjs +0 -0
  230. /package/{esm2020 → esm2022}/common/animations/flash/flash.animation.mjs +0 -0
  231. /package/{esm2020 → esm2022}/common/animations/headshake/headshake.animation.mjs +0 -0
  232. /package/{esm2020 → esm2022}/common/animations/jello/jello.animation.mjs +0 -0
  233. /package/{esm2020 → esm2022}/common/animations/pulse/pulse.animation.mjs +0 -0
  234. /package/{esm2020 → esm2022}/common/animations/rotate/rotate.animation.mjs +0 -0
  235. /package/{esm2020 → esm2022}/common/covalent-core-common.mjs +0 -0
  236. /package/{esm2020 → esm2022}/common/forms/validators/validators.mjs +0 -0
  237. /package/{esm2020 → esm2022}/common/functions/clipboard.mjs +0 -0
  238. /package/{esm2020 → esm2022}/common/functions/file.mjs +0 -0
  239. /package/{esm2020 → esm2022}/common/public_api.mjs +0 -0
  240. /package/{esm2020 → esm2022}/covalent-core.mjs +0 -0
  241. /package/{esm2020 → esm2022}/dialogs/covalent-core-dialogs.mjs +0 -0
  242. /package/{esm2020 → esm2022}/dialogs/public_api.mjs +0 -0
  243. /package/{esm2020 → esm2022}/dynamic-menu/covalent-core-dynamic-menu.mjs +0 -0
  244. /package/{esm2020 → esm2022}/dynamic-menu/dynamic-menu.menu.mjs +0 -0
  245. /package/{esm2020 → esm2022}/dynamic-menu/public_api.mjs +0 -0
  246. /package/{esm2020 → esm2022}/file/covalent-core-file.mjs +0 -0
  247. /package/{esm2020 → esm2022}/file/public_api.mjs +0 -0
  248. /package/{esm2020 → esm2022}/json-formatter/collapse.animation.mjs +0 -0
  249. /package/{esm2020 → esm2022}/json-formatter/covalent-core-json-formatter.mjs +0 -0
  250. /package/{esm2020 → esm2022}/json-formatter/public_api.mjs +0 -0
  251. /package/{esm2020 → esm2022}/layout/covalent-core-layout.mjs +0 -0
  252. /package/{esm2020 → esm2022}/layout/public_api.mjs +0 -0
  253. /package/{esm2020 → esm2022}/loading/covalent-core-loading.mjs +0 -0
  254. /package/{esm2020 → esm2022}/loading/public_api.mjs +0 -0
  255. /package/{esm2020 → esm2022}/menu/covalent-core-menu.mjs +0 -0
  256. /package/{esm2020 → esm2022}/menu/public_api.mjs +0 -0
  257. /package/{esm2020 → esm2022}/message/collapse.animation.mjs +0 -0
  258. /package/{esm2020 → esm2022}/message/covalent-core-message.mjs +0 -0
  259. /package/{esm2020 → esm2022}/message/public_api.mjs +0 -0
  260. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  261. /package/{esm2020 → esm2022}/search/covalent-core-search.mjs +0 -0
  262. /package/{esm2020 → esm2022}/search/public_api.mjs +0 -0
  263. /package/{esm2020 → esm2022}/side-sheet/covalent-core-side-sheet.mjs +0 -0
  264. /package/{esm2020 → esm2022}/side-sheet/public_api.mjs +0 -0
  265. /package/{esm2020 → esm2022}/side-sheet/side-sheet.animation.mjs +0 -0
  266. /package/{esm2020 → esm2022}/user-profile/covalent-core-user-profile.mjs +0 -0
  267. /package/{esm2020 → esm2022}/user-profile/public_api.mjs +0 -0
  268. /package/{fesm2015 → fesm2022}/covalent-core.mjs +0 -0
  269. /package/{fesm2015 → fesm2022}/covalent-core.mjs.map +0 -0
@@ -1,274 +0,0 @@
1
- import { ConfigurableFocusTrapFactory, FocusMonitor, } from '@angular/cdk/a11y';
2
- import { BasePortalOutlet, CdkPortalOutlet, } from '@angular/cdk/portal';
3
- import { DOCUMENT } from '@angular/common';
4
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Optional, ViewChild, ViewEncapsulation, } from '@angular/core';
5
- import { tdSideSheetAnimations } from './side-sheet.animation';
6
- import { CovalentSideSheetConfig } from './side-sheet.config';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/cdk/a11y";
9
- import * as i2 from "./side-sheet.config";
10
- import * as i3 from "@angular/cdk/portal";
11
- export function _getFocusedElementPierceShadowDom() {
12
- let activeElement = typeof document !== 'undefined' && document
13
- ? document.activeElement
14
- : null;
15
- while (activeElement && activeElement.shadowRoot) {
16
- const newActiveElement = activeElement.shadowRoot
17
- .activeElement;
18
- if (newActiveElement === activeElement) {
19
- break;
20
- }
21
- else {
22
- activeElement = newActiveElement;
23
- }
24
- }
25
- return activeElement;
26
- }
27
- /**
28
- * Base class for the `CovalentSideSheetContainer`. The base class does not implement
29
- * animations as these are left to implementers of the side-sheet container.
30
- */
31
- export class _CovalentSideSheetContainerBase extends BasePortalOutlet {
32
- constructor(_elementRef, _focusTrapFactory, _changeDetectorRef, _document,
33
- /** The side-sheet configuration. */
34
- _config, _focusMonitor) {
35
- super();
36
- this._elementRef = _elementRef;
37
- this._focusTrapFactory = _focusTrapFactory;
38
- this._changeDetectorRef = _changeDetectorRef;
39
- this._config = _config;
40
- this._focusMonitor = _focusMonitor;
41
- /** Emits when an animation state changes. */
42
- this._animationStateChanged = new EventEmitter();
43
- /** Element that was focused before the side-sheet was opened. Save this to restore upon close. */
44
- this._elementFocusedBeforeSideSheetWasOpened = null;
45
- /**
46
- * Type of interaction that led to the side-sheet being closed. This is used to determine
47
- * whether the focus style will be applied when returning focus to its original location
48
- * after the side-sheet is closed.
49
- */
50
- this._closeInteractionType = null;
51
- /**
52
- * Attaches a DOM portal to the side-sheet container.
53
- * @param portal Portal to be attached.
54
- * @deprecated To be turned into a method.
55
- */
56
- this.attachDomPortal = (portal) => {
57
- return this._portalOutlet.attachDomPortal(portal);
58
- };
59
- this._ariaLabelledBy = _config.ariaLabelledBy || null;
60
- this._document = _document;
61
- }
62
- /** Initializes the side-sheet container with the attached content. */
63
- _initializeWithAttachedContent() {
64
- this._setupFocusTrap();
65
- // Save the previously focused element. This element will be re-focused
66
- // when the side-sheet closes.
67
- this._capturePreviouslyFocusedElement();
68
- }
69
- /**
70
- * Attach a ComponentPortal as content to this side-sheet container.
71
- * @param portal Portal to be attached as the side-sheet content.
72
- */
73
- attachComponentPortal(portal) {
74
- return this._portalOutlet.attachComponentPortal(portal);
75
- }
76
- /**
77
- * Attach a TemplatePortal as content to this side-sheet container.
78
- * @param portal Portal to be attached as the side-sheet content.
79
- */
80
- attachTemplatePortal(portal) {
81
- return this._portalOutlet.attachTemplatePortal(portal);
82
- }
83
- /** Moves focus back into the side-sheet if it was moved out. */
84
- _recaptureFocus() {
85
- if (!this._containsFocus()) {
86
- this._trapFocus();
87
- }
88
- }
89
- /**
90
- * Moves the focus inside the focus trap. When autoFocus is not set to 'side-sheet', if focus
91
- * cannot be moved then focus will go to the side-sheet container.
92
- */
93
- _trapFocus() {
94
- const element = this._elementRef.nativeElement;
95
- if (!this._config.autoFocus) {
96
- if (!this._containsFocus()) {
97
- element.focus();
98
- }
99
- }
100
- else {
101
- this._focusTrap
102
- .focusInitialElementWhenReady()
103
- .then((focusedSuccessfully) => {
104
- // If we weren't able to find a focusable element in the side-sheet, then focus the side-sheet
105
- // container instead.
106
- if (!focusedSuccessfully) {
107
- this._focusSideSheetContainer();
108
- }
109
- });
110
- }
111
- }
112
- /** Restores focus to the element that was focused before the side-sheet opened. */
113
- _restoreFocus() {
114
- const previousElement = this._elementFocusedBeforeSideSheetWasOpened;
115
- // We need the extra check, because IE can set the `activeElement` to null in some cases.
116
- if (this._config.restoreFocus &&
117
- previousElement &&
118
- typeof previousElement.focus === 'function') {
119
- const activeElement = _getFocusedElementPierceShadowDom();
120
- const element = this._elementRef.nativeElement;
121
- // Make sure that focus is still inside the side-sheet or is on the body (usually because a
122
- // non-focusable element like the backdrop was clicked) before moving it. It's possible that
123
- // the consumer moved it themselves before the animation was done, in which case we shouldn't
124
- // do anything.
125
- if (!activeElement ||
126
- activeElement === this._document.body ||
127
- activeElement === element ||
128
- element.contains(activeElement)) {
129
- if (this._focusMonitor) {
130
- this._focusMonitor.focusVia(previousElement, this._closeInteractionType);
131
- this._closeInteractionType = null;
132
- }
133
- else {
134
- previousElement.focus();
135
- }
136
- }
137
- }
138
- if (this._focusTrap) {
139
- this._focusTrap.destroy();
140
- }
141
- }
142
- /** Sets up the focus trap. */
143
- _setupFocusTrap() {
144
- this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);
145
- }
146
- /** Captures the element that was focused before the side-sheet was opened. */
147
- _capturePreviouslyFocusedElement() {
148
- if (this._document) {
149
- this._elementFocusedBeforeSideSheetWasOpened =
150
- _getFocusedElementPierceShadowDom();
151
- }
152
- }
153
- /** Focuses the side-sheet container. */
154
- _focusSideSheetContainer() {
155
- // Note that there is no focus method when rendering on the server.
156
- if (this._elementRef.nativeElement.focus) {
157
- this._elementRef.nativeElement.focus();
158
- }
159
- }
160
- /** Returns whether focus is inside the side-sheet. */
161
- _containsFocus() {
162
- const element = this._elementRef.nativeElement;
163
- const activeElement = _getFocusedElementPierceShadowDom();
164
- return element === activeElement || element.contains(activeElement);
165
- }
166
- }
167
- _CovalentSideSheetContainerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: _CovalentSideSheetContainerBase, deps: [{ token: i0.ElementRef }, { token: i1.ConfigurableFocusTrapFactory }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT, optional: true }, { token: i2.CovalentSideSheetConfig }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });
168
- _CovalentSideSheetContainerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: _CovalentSideSheetContainerBase, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0 });
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: _CovalentSideSheetContainerBase, decorators: [{
170
- type: Directive
171
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ConfigurableFocusTrapFactory }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
172
- type: Optional
173
- }, {
174
- type: Inject,
175
- args: [DOCUMENT]
176
- }] }, { type: i2.CovalentSideSheetConfig }, { type: i1.FocusMonitor }]; }, propDecorators: { _portalOutlet: [{
177
- type: ViewChild,
178
- args: [CdkPortalOutlet, { static: true }]
179
- }] } });
180
- /**
181
- * Internal component that wraps the generated side-sheet content.
182
- * This animation below is the only reason for duplicating most of the Material dialog code
183
- */
184
- export class CovalentSideSheetContainerComponent extends _CovalentSideSheetContainerBase {
185
- constructor() {
186
- super(...arguments);
187
- /** State of the side-sheet animation. */
188
- this._state = 'enter';
189
- this.tdSideSheetContainerClass = true;
190
- this.tabIndex = -1;
191
- this.arialModal = true;
192
- this.idAttr = this._id;
193
- this.roleAttr = this._config.role;
194
- this.arialLabelByAttr = this._config.ariaLabel
195
- ? null
196
- : this._ariaLabelledBy;
197
- this.arialDescribeByAttr = this._config.ariaDescribedBy || null;
198
- this.arialLabelAttr = this._config.ariaLabel;
199
- }
200
- get sideSheetAnimationState() {
201
- return this._state;
202
- }
203
- onAnimateStart($event) {
204
- this._onAnimationStart($event);
205
- }
206
- onAnimateDone($event) {
207
- this._onAnimationDone($event);
208
- }
209
- /** Callback, invoked whenever an animation on the host completes. */
210
- _onAnimationDone({ toState, totalTime }) {
211
- if (toState === 'enter') {
212
- this._trapFocus();
213
- this._animationStateChanged.next({ state: 'opened', totalTime });
214
- }
215
- else if (toState === 'exit') {
216
- this._restoreFocus();
217
- this._animationStateChanged.next({ state: 'closed', totalTime });
218
- }
219
- }
220
- /** Callback, invoked when an animation on the host starts. */
221
- _onAnimationStart({ toState, totalTime }) {
222
- if (toState === 'enter') {
223
- this._animationStateChanged.next({ state: 'opening', totalTime });
224
- }
225
- else if (toState === 'exit' || toState === 'void') {
226
- this._animationStateChanged.next({ state: 'closing', totalTime });
227
- }
228
- }
229
- /** Starts the side-sheet exit animation. */
230
- _startExitAnimation() {
231
- this._state = 'exit';
232
- this._changeDetectorRef.markForCheck();
233
- }
234
- }
235
- CovalentSideSheetContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: CovalentSideSheetContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
236
- CovalentSideSheetContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: CovalentSideSheetContainerComponent, selector: "td-side-sheet-container", host: { listeners: { "@sideSheetContainer.start": "onAnimateStart($event)", "@sideSheetContainer.done": "onAnimateDone($event)" }, properties: { "class.td-side-sheet-container": "this.tdSideSheetContainerClass", "tabindex": "this.tabIndex", "aria-modal": "this.arialModal", "id": "this.idAttr", "attr.role": "this.roleAttr", "attr.aria-labelledby": "this.arialLabelByAttr", "attr.aria-describedby": "this.arialDescribeByAttr", "attr.aria-label": "this.arialLabelAttr", "@sideSheetContainer": "this.sideSheetAnimationState" } }, usesInheritance: true, ngImport: i0, template: ` <ng-template cdkPortalOutlet></ng-template> `, isInline: true, styles: [".td-side-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;display:block;padding:24px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.td-side-sheet-wrapper{display:flex;flex-direction:column;height:100%}.td-side-sheet-content{margin:0 -24px;padding:0 24px;overflow:auto;flex:1;-webkit-overflow-scrolling:touch}.td-side-sheet-title{margin:-16px 0 20px;display:flex;align-items:center}.td-side-sheet-actions{padding:8px 0;margin:0 -16px -24px;display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;box-sizing:content-box}.td-side-sheet-actions[align=end]{justify-content:flex-end}.td-side-sheet-actions[align=center]{justify-content:center}.td-side-sheet-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .td-side-sheet-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\n"], dependencies: [{ kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [tdSideSheetAnimations.sideSheetContainer], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: CovalentSideSheetContainerComponent, decorators: [{
238
- type: Component,
239
- args: [{ selector: 'td-side-sheet-container', template: ` <ng-template cdkPortalOutlet></ng-template> `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, animations: [tdSideSheetAnimations.sideSheetContainer], styles: [".td-side-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;display:block;padding:24px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.td-side-sheet-wrapper{display:flex;flex-direction:column;height:100%}.td-side-sheet-content{margin:0 -24px;padding:0 24px;overflow:auto;flex:1;-webkit-overflow-scrolling:touch}.td-side-sheet-title{margin:-16px 0 20px;display:flex;align-items:center}.td-side-sheet-actions{padding:8px 0;margin:0 -16px -24px;display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;box-sizing:content-box}.td-side-sheet-actions[align=end]{justify-content:flex-end}.td-side-sheet-actions[align=center]{justify-content:center}.td-side-sheet-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .td-side-sheet-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\n"] }]
240
- }], propDecorators: { tdSideSheetContainerClass: [{
241
- type: HostBinding,
242
- args: ['class.td-side-sheet-container']
243
- }], tabIndex: [{
244
- type: HostBinding,
245
- args: ['tabindex']
246
- }], arialModal: [{
247
- type: HostBinding,
248
- args: ['aria-modal']
249
- }], idAttr: [{
250
- type: HostBinding,
251
- args: ['id']
252
- }], roleAttr: [{
253
- type: HostBinding,
254
- args: ['attr.role']
255
- }], arialLabelByAttr: [{
256
- type: HostBinding,
257
- args: ['attr.aria-labelledby']
258
- }], arialDescribeByAttr: [{
259
- type: HostBinding,
260
- args: ['attr.aria-describedby']
261
- }], arialLabelAttr: [{
262
- type: HostBinding,
263
- args: ['attr.aria-label']
264
- }], sideSheetAnimationState: [{
265
- type: HostBinding,
266
- args: ['@sideSheetContainer']
267
- }], onAnimateStart: [{
268
- type: HostListener,
269
- args: ['@sideSheetContainer.start', ['$event']]
270
- }], onAnimateDone: [{
271
- type: HostListener,
272
- args: ['@sideSheetContainer.done', ['$event']]
273
- }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC1jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUVMLDRCQUE0QixFQUM1QixZQUFZLEdBRWIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FJaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULFNBQVMsRUFDVCxVQUFVLEVBRVYsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUU5RCxNQUFNLFVBQVUsaUNBQWlDO0lBQy9DLElBQUksYUFBYSxHQUNmLE9BQU8sUUFBUSxLQUFLLFdBQVcsSUFBSSxRQUFRO1FBQ3pDLENBQUMsQ0FBRSxRQUFRLENBQUMsYUFBb0M7UUFDaEQsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVYLE9BQU8sYUFBYSxJQUFJLGFBQWEsQ0FBQyxVQUFVLEVBQUU7UUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsVUFBVTthQUM5QyxhQUFtQyxDQUFDO1FBQ3ZDLElBQUksZ0JBQWdCLEtBQUssYUFBYSxFQUFFO1lBQ3RDLE1BQU07U0FDUDthQUFNO1lBQ0wsYUFBYSxHQUFHLGdCQUFnQixDQUFDO1NBQ2xDO0tBQ0Y7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBRUQ7OztHQUdHO0FBRUgsTUFBTSxPQUFnQiwrQkFBZ0MsU0FBUSxnQkFBZ0I7SUErQjVFLFlBQ1ksV0FBdUIsRUFDdkIsaUJBQStDLEVBQy9DLGtCQUFxQyxFQUNqQixTQUFjO0lBQzVDLG9DQUFvQztJQUM3QixPQUFnQyxFQUMvQixhQUE0QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQVJFLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBOEI7UUFDL0MsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUd4QyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTdCdEMsNkNBQTZDO1FBQzdDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUdyQyxDQUFDO1FBRUwsa0dBQWtHO1FBQzFGLDRDQUF1QyxHQUF1QixJQUFJLENBQUM7UUFFM0U7Ozs7V0FJRztRQUNILDBCQUFxQixHQUF1QixJQUFJLENBQUM7UUFpRGpEOzs7O1dBSUc7UUFDTSxvQkFBZSxHQUFHLENBQUMsTUFBaUIsRUFBRSxFQUFFO1lBQy9DLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDO1FBdENBLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUtELHNFQUFzRTtJQUN0RSw4QkFBOEI7UUFDNUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLHVFQUF1RTtRQUN2RSw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILHFCQUFxQixDQUFJLE1BQTBCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsb0JBQW9CLENBQUksTUFBeUI7UUFDL0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFXRCxnRUFBZ0U7SUFDaEUsZUFBZTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFVBQVU7UUFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQzFCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNqQjtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVTtpQkFDWiw0QkFBNEIsRUFBRTtpQkFDOUIsSUFBSSxDQUFDLENBQUMsbUJBQW1CLEVBQUUsRUFBRTtnQkFDNUIsOEZBQThGO2dCQUM5RixxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtvQkFDeEIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7aUJBQ2pDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRCxtRkFBbUY7SUFDekUsYUFBYTtRQUNyQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsdUNBQXVDLENBQUM7UUFFckUseUZBQXlGO1FBQ3pGLElBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO1lBQ3pCLGVBQWU7WUFDZixPQUFPLGVBQWUsQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUMzQztZQUNBLE1BQU0sYUFBYSxHQUFHLGlDQUFpQyxFQUFFLENBQUM7WUFDMUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFFL0MsMkZBQTJGO1lBQzNGLDRGQUE0RjtZQUM1Riw2RkFBNkY7WUFDN0YsZUFBZTtZQUNmLElBQ0UsQ0FBQyxhQUFhO2dCQUNkLGFBQWEsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUk7Z0JBQ3JDLGFBQWEsS0FBSyxPQUFPO2dCQUN6QixPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUMvQjtnQkFDQSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUN6QixlQUFlLEVBQ2YsSUFBSSxDQUFDLHFCQUFxQixDQUMzQixDQUFDO29CQUNGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7aUJBQ25DO3FCQUFNO29CQUNMLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDekI7YUFDRjtTQUNGO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsOEJBQThCO0lBQ3RCLGVBQWU7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFRCw4RUFBOEU7SUFDdEUsZ0NBQWdDO1FBQ3RDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsdUNBQXVDO2dCQUMxQyxpQ0FBaUMsRUFBRSxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVELHdDQUF3QztJQUNoQyx3QkFBd0I7UUFDOUIsbUVBQW1FO1FBQ25FLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELHNEQUFzRDtJQUM5QyxjQUFjO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1FBQy9DLE1BQU0sYUFBYSxHQUFHLGlDQUFpQyxFQUFFLENBQUM7UUFDMUQsT0FBTyxPQUFPLEtBQUssYUFBYSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsQ0FBQzs7NEhBbkxtQiwrQkFBK0IseUhBbUM3QixRQUFRO2dIQW5DViwrQkFBK0IseUVBSXhDLGVBQWU7MkZBSk4sK0JBQStCO2tCQURwRCxTQUFTOzswQkFvQ0wsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzZHQS9CZ0IsYUFBYTtzQkFBMUQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztBQWtMOUM7OztHQUdHO0FBU0gsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLCtCQUErQjtJQVJ4Rjs7UUFTRSx5Q0FBeUM7UUFDekMsV0FBTSxHQUE4QixPQUFPLENBQUM7UUFFRSw4QkFBeUIsR0FDckUsSUFBSSxDQUFDO1FBQ2tCLGFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNaLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDMUIsV0FBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDWCxhQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbEIscUJBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQzVFLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDYSx3QkFBbUIsR0FDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDO1FBQ1AsbUJBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztLQXlDekU7SUF4Q0MsSUFBd0MsdUJBQXVCO1FBQzdELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ3NELGNBQWMsQ0FDbkUsTUFBc0I7UUFFdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFcUQsYUFBYSxDQUNqRSxNQUFzQjtRQUV0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELHFFQUFxRTtJQUNyRSxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQWtCO1FBQ3JELElBQUksT0FBTyxLQUFLLE9BQU8sRUFBRTtZQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztTQUNsRTthQUFNLElBQUksT0FBTyxLQUFLLE1BQU0sRUFBRTtZQUM3QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztTQUNsRTtJQUNILENBQUM7SUFFRCw4REFBOEQ7SUFDOUQsaUJBQWlCLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFrQjtRQUN0RCxJQUFJLE9BQU8sS0FBSyxPQUFPLEVBQUU7WUFDdkIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztTQUNuRTthQUFNLElBQUksT0FBTyxLQUFLLE1BQU0sSUFBSSxPQUFPLEtBQUssTUFBTSxFQUFFO1lBQ25ELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLG1CQUFtQjtRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQzs7Z0lBdkRVLG1DQUFtQztvSEFBbkMsbUNBQW1DLHNtQkFOcEMsK0NBQStDLDhwQ0FJN0MsQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQzsyRkFFM0MsbUNBQW1DO2tCQVIvQyxTQUFTOytCQUNFLHlCQUF5QixZQUN6QiwrQ0FBK0MsaUJBRTFDLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE9BQU8sY0FDcEMsQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQzs4QkFNUix5QkFBeUI7c0JBQXRFLFdBQVc7dUJBQUMsK0JBQStCO2dCQUVuQixRQUFRO3NCQUFoQyxXQUFXO3VCQUFDLFVBQVU7Z0JBQ0ksVUFBVTtzQkFBcEMsV0FBVzt1QkFBQyxZQUFZO2dCQUNOLE1BQU07c0JBQXhCLFdBQVc7dUJBQUMsSUFBSTtnQkFDUyxRQUFRO3NCQUFqQyxXQUFXO3VCQUFDLFdBQVc7Z0JBQ2EsZ0JBQWdCO3NCQUFwRCxXQUFXO3VCQUFDLHNCQUFzQjtnQkFHRyxtQkFBbUI7c0JBQXhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQUVKLGNBQWM7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUNVLHVCQUF1QjtzQkFBOUQsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBR3FCLGNBQWM7c0JBQXBFLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTUMsYUFBYTtzQkFBbEUsWUFBWTt1QkFBQywwQkFBMEIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG5pbXBvcnQgeyBBbmltYXRpb25FdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhYmxlRm9jdXNUcmFwLFxuICBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5LFxuICBGb2N1c01vbml0b3IsXG4gIEZvY3VzT3JpZ2luLFxufSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBCYXNlUG9ydGFsT3V0bGV0LFxuICBDZGtQb3J0YWxPdXRsZXQsXG4gIENvbXBvbmVudFBvcnRhbCxcbiAgRG9tUG9ydGFsLFxuICBUZW1wbGF0ZVBvcnRhbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRkU2lkZVNoZWV0QW5pbWF0aW9ucyB9IGZyb20gJy4vc2lkZS1zaGVldC5hbmltYXRpb24nO1xuaW1wb3J0IHsgQ292YWxlbnRTaWRlU2hlZXRDb25maWcgfSBmcm9tICcuL3NpZGUtc2hlZXQuY29uZmlnJztcblxuZXhwb3J0IGZ1bmN0aW9uIF9nZXRGb2N1c2VkRWxlbWVudFBpZXJjZVNoYWRvd0RvbSgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICBsZXQgYWN0aXZlRWxlbWVudCA9XG4gICAgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiBkb2N1bWVudFxuICAgICAgPyAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGwpXG4gICAgICA6IG51bGw7XG5cbiAgd2hpbGUgKGFjdGl2ZUVsZW1lbnQgJiYgYWN0aXZlRWxlbWVudC5zaGFkb3dSb290KSB7XG4gICAgY29uc3QgbmV3QWN0aXZlRWxlbWVudCA9IGFjdGl2ZUVsZW1lbnQuc2hhZG93Um9vdFxuICAgICAgLmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGlmIChuZXdBY3RpdmVFbGVtZW50ID09PSBhY3RpdmVFbGVtZW50KSB7XG4gICAgICBicmVhaztcbiAgICB9IGVsc2Uge1xuICAgICAgYWN0aXZlRWxlbWVudCA9IG5ld0FjdGl2ZUVsZW1lbnQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFjdGl2ZUVsZW1lbnQ7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgdGhlIGBDb3ZhbGVudFNpZGVTaGVldENvbnRhaW5lcmAuIFRoZSBiYXNlIGNsYXNzIGRvZXMgbm90IGltcGxlbWVudFxuICogYW5pbWF0aW9ucyBhcyB0aGVzZSBhcmUgbGVmdCB0byBpbXBsZW1lbnRlcnMgb2YgdGhlIHNpZGUtc2hlZXQgY29udGFpbmVyLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBfQ292YWxlbnRTaWRlU2hlZXRDb250YWluZXJCYXNlIGV4dGVuZHMgQmFzZVBvcnRhbE91dGxldCB7XG4gIHByb3RlY3RlZCBfZG9jdW1lbnQ6IERvY3VtZW50O1xuXG4gIC8qKiBUaGUgcG9ydGFsIG91dGxldCBpbnNpZGUgb2YgdGhpcyBjb250YWluZXIgaW50byB3aGljaCB0aGUgc2lkZS1zaGVldCBjb250ZW50IHdpbGwgYmUgbG9hZGVkLiAqL1xuICBAVmlld0NoaWxkKENka1BvcnRhbE91dGxldCwgeyBzdGF0aWM6IHRydWUgfSkgX3BvcnRhbE91dGxldCE6IENka1BvcnRhbE91dGxldDtcblxuICAvKiogVGhlIGNsYXNzIHRoYXQgdHJhcHMgYW5kIG1hbmFnZXMgZm9jdXMgd2l0aGluIHRoZSBzaWRlLXNoZWV0LiAqL1xuICBwcml2YXRlIF9mb2N1c1RyYXAhOiBDb25maWd1cmFibGVGb2N1c1RyYXA7XG5cbiAgLyoqIEVtaXRzIHdoZW4gYW4gYW5pbWF0aW9uIHN0YXRlIGNoYW5nZXMuICovXG4gIF9hbmltYXRpb25TdGF0ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBzdGF0ZTogJ29wZW5lZCcgfCAnb3BlbmluZycgfCAnY2xvc2luZycgfCAnY2xvc2VkJztcbiAgICB0b3RhbFRpbWU6IG51bWJlcjtcbiAgfT4oKTtcblxuICAvKiogRWxlbWVudCB0aGF0IHdhcyBmb2N1c2VkIGJlZm9yZSB0aGUgc2lkZS1zaGVldCB3YXMgb3BlbmVkLiBTYXZlIHRoaXMgdG8gcmVzdG9yZSB1cG9uIGNsb3NlLiAqL1xuICBwcml2YXRlIF9lbGVtZW50Rm9jdXNlZEJlZm9yZVNpZGVTaGVldFdhc09wZW5lZDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVHlwZSBvZiBpbnRlcmFjdGlvbiB0aGF0IGxlZCB0byB0aGUgc2lkZS1zaGVldCBiZWluZyBjbG9zZWQuIFRoaXMgaXMgdXNlZCB0byBkZXRlcm1pbmVcbiAgICogd2hldGhlciB0aGUgZm9jdXMgc3R5bGUgd2lsbCBiZSBhcHBsaWVkIHdoZW4gcmV0dXJuaW5nIGZvY3VzIHRvIGl0cyBvcmlnaW5hbCBsb2NhdGlvblxuICAgKiBhZnRlciB0aGUgc2lkZS1zaGVldCBpcyBjbG9zZWQuXG4gICAqL1xuICBfY2xvc2VJbnRlcmFjdGlvblR5cGU6IEZvY3VzT3JpZ2luIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIElEIG9mIHRoZSBlbGVtZW50IHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgdGhlIHNpZGUtc2hlZXQncyBsYWJlbC4gKi9cbiAgX2FyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKiBJRCBmb3IgdGhlIGNvbnRhaW5lciBET00gZWxlbWVudC4gKi9cbiAgX2lkITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcm90ZWN0ZWQgX2ZvY3VzVHJhcEZhY3Rvcnk6IENvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3RvcnksXG4gICAgcHJvdGVjdGVkIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgX2RvY3VtZW50OiBhbnksXG4gICAgLyoqIFRoZSBzaWRlLXNoZWV0IGNvbmZpZ3VyYXRpb24uICovXG4gICAgcHVibGljIF9jb25maWc6IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnLFxuICAgIHByaXZhdGUgX2ZvY3VzTW9uaXRvcj86IEZvY3VzTW9uaXRvclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2FyaWFMYWJlbGxlZEJ5ID0gX2NvbmZpZy5hcmlhTGFiZWxsZWRCeSB8fCBudWxsO1xuICAgIHRoaXMuX2RvY3VtZW50ID0gX2RvY3VtZW50O1xuICB9XG5cbiAgLyoqIFN0YXJ0cyB0aGUgc2lkZS1zaGVldCBleGl0IGFuaW1hdGlvbi4gKi9cbiAgYWJzdHJhY3QgX3N0YXJ0RXhpdEFuaW1hdGlvbigpOiB2b2lkO1xuXG4gIC8qKiBJbml0aWFsaXplcyB0aGUgc2lkZS1zaGVldCBjb250YWluZXIgd2l0aCB0aGUgYXR0YWNoZWQgY29udGVudC4gKi9cbiAgX2luaXRpYWxpemVXaXRoQXR0YWNoZWRDb250ZW50KCkge1xuICAgIHRoaXMuX3NldHVwRm9jdXNUcmFwKCk7XG4gICAgLy8gU2F2ZSB0aGUgcHJldmlvdXNseSBmb2N1c2VkIGVsZW1lbnQuIFRoaXMgZWxlbWVudCB3aWxsIGJlIHJlLWZvY3VzZWRcbiAgICAvLyB3aGVuIHRoZSBzaWRlLXNoZWV0IGNsb3Nlcy5cbiAgICB0aGlzLl9jYXB0dXJlUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoIGEgQ29tcG9uZW50UG9ydGFsIGFzIGNvbnRlbnQgdG8gdGhpcyBzaWRlLXNoZWV0IGNvbnRhaW5lci5cbiAgICogQHBhcmFtIHBvcnRhbCBQb3J0YWwgdG8gYmUgYXR0YWNoZWQgYXMgdGhlIHNpZGUtc2hlZXQgY29udGVudC5cbiAgICovXG4gIGF0dGFjaENvbXBvbmVudFBvcnRhbDxUPihwb3J0YWw6IENvbXBvbmVudFBvcnRhbDxUPik6IENvbXBvbmVudFJlZjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcnRhbE91dGxldC5hdHRhY2hDb21wb25lbnRQb3J0YWwocG9ydGFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggYSBUZW1wbGF0ZVBvcnRhbCBhcyBjb250ZW50IHRvIHRoaXMgc2lkZS1zaGVldCBjb250YWluZXIuXG4gICAqIEBwYXJhbSBwb3J0YWwgUG9ydGFsIHRvIGJlIGF0dGFjaGVkIGFzIHRoZSBzaWRlLXNoZWV0IGNvbnRlbnQuXG4gICAqL1xuICBhdHRhY2hUZW1wbGF0ZVBvcnRhbDxDPihwb3J0YWw6IFRlbXBsYXRlUG9ydGFsPEM+KTogRW1iZWRkZWRWaWV3UmVmPEM+IHtcbiAgICByZXR1cm4gdGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaFRlbXBsYXRlUG9ydGFsKHBvcnRhbCk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBET00gcG9ydGFsIHRvIHRoZSBzaWRlLXNoZWV0IGNvbnRhaW5lci5cbiAgICogQHBhcmFtIHBvcnRhbCBQb3J0YWwgdG8gYmUgYXR0YWNoZWQuXG4gICAqIEBkZXByZWNhdGVkIFRvIGJlIHR1cm5lZCBpbnRvIGEgbWV0aG9kLlxuICAgKi9cbiAgb3ZlcnJpZGUgYXR0YWNoRG9tUG9ydGFsID0gKHBvcnRhbDogRG9tUG9ydGFsKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcnRhbE91dGxldC5hdHRhY2hEb21Qb3J0YWwocG9ydGFsKTtcbiAgfTtcblxuICAvKiogTW92ZXMgZm9jdXMgYmFjayBpbnRvIHRoZSBzaWRlLXNoZWV0IGlmIGl0IHdhcyBtb3ZlZCBvdXQuICovXG4gIF9yZWNhcHR1cmVGb2N1cygpIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRhaW5zRm9jdXMoKSkge1xuICAgICAgdGhpcy5fdHJhcEZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vdmVzIHRoZSBmb2N1cyBpbnNpZGUgdGhlIGZvY3VzIHRyYXAuIFdoZW4gYXV0b0ZvY3VzIGlzIG5vdCBzZXQgdG8gJ3NpZGUtc2hlZXQnLCBpZiBmb2N1c1xuICAgKiBjYW5ub3QgYmUgbW92ZWQgdGhlbiBmb2N1cyB3aWxsIGdvIHRvIHRoZSBzaWRlLXNoZWV0IGNvbnRhaW5lci5cbiAgICovXG4gIHByb3RlY3RlZCBfdHJhcEZvY3VzKCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCF0aGlzLl9jb25maWcuYXV0b0ZvY3VzKSB7XG4gICAgICBpZiAoIXRoaXMuX2NvbnRhaW5zRm9jdXMoKSkge1xuICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ZvY3VzVHJhcFxuICAgICAgICAuZm9jdXNJbml0aWFsRWxlbWVudFdoZW5SZWFkeSgpXG4gICAgICAgIC50aGVuKChmb2N1c2VkU3VjY2Vzc2Z1bGx5KSA9PiB7XG4gICAgICAgICAgLy8gSWYgd2Ugd2VyZW4ndCBhYmxlIHRvIGZpbmQgYSBmb2N1c2FibGUgZWxlbWVudCBpbiB0aGUgc2lkZS1zaGVldCwgdGhlbiBmb2N1cyB0aGUgc2lkZS1zaGVldFxuICAgICAgICAgIC8vIGNvbnRhaW5lciBpbnN0ZWFkLlxuICAgICAgICAgIGlmICghZm9jdXNlZFN1Y2Nlc3NmdWxseSkge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNTaWRlU2hlZXRDb250YWluZXIoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXN0b3JlcyBmb2N1cyB0byB0aGUgZWxlbWVudCB0aGF0IHdhcyBmb2N1c2VkIGJlZm9yZSB0aGUgc2lkZS1zaGVldCBvcGVuZWQuICovXG4gIHByb3RlY3RlZCBfcmVzdG9yZUZvY3VzKCkge1xuICAgIGNvbnN0IHByZXZpb3VzRWxlbWVudCA9IHRoaXMuX2VsZW1lbnRGb2N1c2VkQmVmb3JlU2lkZVNoZWV0V2FzT3BlbmVkO1xuXG4gICAgLy8gV2UgbmVlZCB0aGUgZXh0cmEgY2hlY2ssIGJlY2F1c2UgSUUgY2FuIHNldCB0aGUgYGFjdGl2ZUVsZW1lbnRgIHRvIG51bGwgaW4gc29tZSBjYXNlcy5cbiAgICBpZiAoXG4gICAgICB0aGlzLl9jb25maWcucmVzdG9yZUZvY3VzICYmXG4gICAgICBwcmV2aW91c0VsZW1lbnQgJiZcbiAgICAgIHR5cGVvZiBwcmV2aW91c0VsZW1lbnQuZm9jdXMgPT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBfZ2V0Rm9jdXNlZEVsZW1lbnRQaWVyY2VTaGFkb3dEb20oKTtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGZvY3VzIGlzIHN0aWxsIGluc2lkZSB0aGUgc2lkZS1zaGVldCBvciBpcyBvbiB0aGUgYm9keSAodXN1YWxseSBiZWNhdXNlIGFcbiAgICAgIC8vIG5vbi1mb2N1c2FibGUgZWxlbWVudCBsaWtlIHRoZSBiYWNrZHJvcCB3YXMgY2xpY2tlZCkgYmVmb3JlIG1vdmluZyBpdC4gSXQncyBwb3NzaWJsZSB0aGF0XG4gICAgICAvLyB0aGUgY29uc3VtZXIgbW92ZWQgaXQgdGhlbXNlbHZlcyBiZWZvcmUgdGhlIGFuaW1hdGlvbiB3YXMgZG9uZSwgaW4gd2hpY2ggY2FzZSB3ZSBzaG91bGRuJ3RcbiAgICAgIC8vIGRvIGFueXRoaW5nLlxuICAgICAgaWYgKFxuICAgICAgICAhYWN0aXZlRWxlbWVudCB8fFxuICAgICAgICBhY3RpdmVFbGVtZW50ID09PSB0aGlzLl9kb2N1bWVudC5ib2R5IHx8XG4gICAgICAgIGFjdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnQgfHxcbiAgICAgICAgZWxlbWVudC5jb250YWlucyhhY3RpdmVFbGVtZW50KVxuICAgICAgKSB7XG4gICAgICAgIGlmICh0aGlzLl9mb2N1c01vbml0b3IpIHtcbiAgICAgICAgICB0aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEoXG4gICAgICAgICAgICBwcmV2aW91c0VsZW1lbnQsXG4gICAgICAgICAgICB0aGlzLl9jbG9zZUludGVyYWN0aW9uVHlwZVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5fY2xvc2VJbnRlcmFjdGlvblR5cGUgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXZpb3VzRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2ZvY3VzVHJhcCkge1xuICAgICAgdGhpcy5fZm9jdXNUcmFwLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICAvKiogU2V0cyB1cCB0aGUgZm9jdXMgdHJhcC4gKi9cbiAgcHJpdmF0ZSBfc2V0dXBGb2N1c1RyYXAoKSB7XG4gICAgdGhpcy5fZm9jdXNUcmFwID0gdGhpcy5fZm9jdXNUcmFwRmFjdG9yeS5jcmVhdGUoXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuICB9XG5cbiAgLyoqIENhcHR1cmVzIHRoZSBlbGVtZW50IHRoYXQgd2FzIGZvY3VzZWQgYmVmb3JlIHRoZSBzaWRlLXNoZWV0IHdhcyBvcGVuZWQuICovXG4gIHByaXZhdGUgX2NhcHR1cmVQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKSB7XG4gICAgaWYgKHRoaXMuX2RvY3VtZW50KSB7XG4gICAgICB0aGlzLl9lbGVtZW50Rm9jdXNlZEJlZm9yZVNpZGVTaGVldFdhc09wZW5lZCA9XG4gICAgICAgIF9nZXRGb2N1c2VkRWxlbWVudFBpZXJjZVNoYWRvd0RvbSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBGb2N1c2VzIHRoZSBzaWRlLXNoZWV0IGNvbnRhaW5lci4gKi9cbiAgcHJpdmF0ZSBfZm9jdXNTaWRlU2hlZXRDb250YWluZXIoKSB7XG4gICAgLy8gTm90ZSB0aGF0IHRoZXJlIGlzIG5vIGZvY3VzIG1ldGhvZCB3aGVuIHJlbmRlcmluZyBvbiB0aGUgc2VydmVyLlxuICAgIGlmICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHdoZXRoZXIgZm9jdXMgaXMgaW5zaWRlIHRoZSBzaWRlLXNoZWV0LiAqL1xuICBwcml2YXRlIF9jb250YWluc0ZvY3VzKCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IF9nZXRGb2N1c2VkRWxlbWVudFBpZXJjZVNoYWRvd0RvbSgpO1xuICAgIHJldHVybiBlbGVtZW50ID09PSBhY3RpdmVFbGVtZW50IHx8IGVsZW1lbnQuY29udGFpbnMoYWN0aXZlRWxlbWVudCk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBjb21wb25lbnQgdGhhdCB3cmFwcyB0aGUgZ2VuZXJhdGVkIHNpZGUtc2hlZXQgY29udGVudC5cbiAqIFRoaXMgYW5pbWF0aW9uIGJlbG93IGlzIHRoZSBvbmx5IHJlYXNvbiBmb3IgZHVwbGljYXRpbmcgbW9zdCBvZiB0aGUgTWF0ZXJpYWwgZGlhbG9nIGNvZGVcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtc2lkZS1zaGVldC1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYCA8bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+IGAsXG4gIHN0eWxlVXJsczogWydzaWRlLXNoZWV0LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICBhbmltYXRpb25zOiBbdGRTaWRlU2hlZXRBbmltYXRpb25zLnNpZGVTaGVldENvbnRhaW5lcl0sXG59KVxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0Q29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgX0NvdmFsZW50U2lkZVNoZWV0Q29udGFpbmVyQmFzZSB7XG4gIC8qKiBTdGF0ZSBvZiB0aGUgc2lkZS1zaGVldCBhbmltYXRpb24uICovXG4gIF9zdGF0ZTogJ3ZvaWQnIHwgJ2VudGVyJyB8ICdleGl0JyA9ICdlbnRlcic7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50ZC1zaWRlLXNoZWV0LWNvbnRhaW5lcicpIHRkU2lkZVNoZWV0Q29udGFpbmVyQ2xhc3MgPVxuICAgIHRydWU7XG4gIEBIb3N0QmluZGluZygndGFiaW5kZXgnKSB0YWJJbmRleCA9IC0xO1xuICBASG9zdEJpbmRpbmcoJ2FyaWEtbW9kYWwnKSBhcmlhbE1vZGFsID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdpZCcpIGlkQXR0ciA9IHRoaXMuX2lkO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGVBdHRyID0gdGhpcy5fY29uZmlnLnJvbGU7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsbGVkYnknKSBhcmlhbExhYmVsQnlBdHRyID0gdGhpcy5fY29uZmlnLmFyaWFMYWJlbFxuICAgID8gbnVsbFxuICAgIDogdGhpcy5fYXJpYUxhYmVsbGVkQnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgYXJpYWxEZXNjcmliZUJ5QXR0ciA9XG4gICAgdGhpcy5fY29uZmlnLmFyaWFEZXNjcmliZWRCeSB8fCBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpIGFyaWFsTGFiZWxBdHRyID0gdGhpcy5fY29uZmlnLmFyaWFMYWJlbDtcbiAgQEhvc3RCaW5kaW5nKCdAc2lkZVNoZWV0Q29udGFpbmVyJykgZ2V0IHNpZGVTaGVldEFuaW1hdGlvblN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgfVxuICBASG9zdExpc3RlbmVyKCdAc2lkZVNoZWV0Q29udGFpbmVyLnN0YXJ0JywgWyckZXZlbnQnXSkgb25BbmltYXRlU3RhcnQoXG4gICAgJGV2ZW50OiBBbmltYXRpb25FdmVudFxuICApIHtcbiAgICB0aGlzLl9vbkFuaW1hdGlvblN0YXJ0KCRldmVudCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdAc2lkZVNoZWV0Q29udGFpbmVyLmRvbmUnLCBbJyRldmVudCddKSBvbkFuaW1hdGVEb25lKFxuICAgICRldmVudDogQW5pbWF0aW9uRXZlbnRcbiAgKSB7XG4gICAgdGhpcy5fb25BbmltYXRpb25Eb25lKCRldmVudCk7XG4gIH1cblxuICAvKiogQ2FsbGJhY2ssIGludm9rZWQgd2hlbmV2ZXIgYW4gYW5pbWF0aW9uIG9uIHRoZSBob3N0IGNvbXBsZXRlcy4gKi9cbiAgX29uQW5pbWF0aW9uRG9uZSh7IHRvU3RhdGUsIHRvdGFsVGltZSB9OiBBbmltYXRpb25FdmVudCkge1xuICAgIGlmICh0b1N0YXRlID09PSAnZW50ZXInKSB7XG4gICAgICB0aGlzLl90cmFwRm9jdXMoKTtcbiAgICAgIHRoaXMuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5uZXh0KHsgc3RhdGU6ICdvcGVuZWQnLCB0b3RhbFRpbWUgfSk7XG4gICAgfSBlbHNlIGlmICh0b1N0YXRlID09PSAnZXhpdCcpIHtcbiAgICAgIHRoaXMuX3Jlc3RvcmVGb2N1cygpO1xuICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLm5leHQoeyBzdGF0ZTogJ2Nsb3NlZCcsIHRvdGFsVGltZSB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbGJhY2ssIGludm9rZWQgd2hlbiBhbiBhbmltYXRpb24gb24gdGhlIGhvc3Qgc3RhcnRzLiAqL1xuICBfb25BbmltYXRpb25TdGFydCh7IHRvU3RhdGUsIHRvdGFsVGltZSB9OiBBbmltYXRpb25FdmVudCkge1xuICAgIGlmICh0b1N0YXRlID09PSAnZW50ZXInKSB7XG4gICAgICB0aGlzLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQubmV4dCh7IHN0YXRlOiAnb3BlbmluZycsIHRvdGFsVGltZSB9KTtcbiAgICB9IGVsc2UgaWYgKHRvU3RhdGUgPT09ICdleGl0JyB8fCB0b1N0YXRlID09PSAndm9pZCcpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5uZXh0KHsgc3RhdGU6ICdjbG9zaW5nJywgdG90YWxUaW1lIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTdGFydHMgdGhlIHNpZGUtc2hlZXQgZXhpdCBhbmltYXRpb24uICovXG4gIF9zdGFydEV4aXRBbmltYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnZXhpdCc7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,26 +0,0 @@
1
- import { DialogRef } from '@angular/cdk/dialog';
2
- import { MatDialogRef, } from '@angular/material/dialog';
3
- // Counter for unique dialog ids.
4
- let uniqueId = 0;
5
- // Create a new side sheet ref to change the id of the ref
6
- export class CovalentSideSheetRef extends MatDialogRef {
7
- constructor(overlayRef, config, _containerInstance, id = `td-side-sheet-${uniqueId++}`) {
8
- const ref = new DialogRef(overlayRef, config);
9
- super(ref, config, _containerInstance);
10
- this.overlayRef = overlayRef;
11
- this.config = config;
12
- this._containerInstance = _containerInstance;
13
- this.id = id;
14
- ref.containerInstance =
15
- this._containerInstance;
16
- }
17
- }
18
- export function _closeSideSheetVia(ref, interactionType, result) {
19
- // Some mock dialog ref instances in tests do not have the `_containerInstance` property.
20
- // For those, we keep the behavior as is and do not deal with the interaction type.
21
- if (ref._containerInstance !== undefined) {
22
- ref._containerInstance._closeInteractionType = interactionType;
23
- }
24
- return ref.close(result);
25
- }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2hELE9BQU8sRUFDTCxZQUFZLEdBRWIsTUFBTSwwQkFBMEIsQ0FBQztBQUdsQyxpQ0FBaUM7QUFDakMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRWpCLDBEQUEwRDtBQUMxRCxNQUFNLE9BQU8sb0JBQWlDLFNBQVEsWUFBa0I7SUFDdEUsWUFDUyxVQUFzQixFQUN0QixNQUErQixFQUN0QixrQkFBMkMsRUFDekMsS0FBYSxpQkFBaUIsUUFBUSxFQUFFLEVBQUU7UUFFNUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQU8sVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFOaEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXlCO1FBQ3pDLE9BQUUsR0FBRixFQUFFLENBQXdDO1FBSTNELEdBQStDLENBQUMsaUJBQWlCO1lBQ2hFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLEdBQTRCLEVBQzVCLGVBQTRCLEVBQzVCLE1BQVU7SUFFVix5RkFBeUY7SUFDekYsbUZBQW1GO0lBQ25GLElBQUksR0FBRyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsRUFBRTtRQUN4QyxHQUFHLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLEdBQUcsZUFBZSxDQUFDO0tBQ2hFO0lBQ0QsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0IHsgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBCYXNlUG9ydGFsT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBNYXREaWFsb2dSZWYsXG4gIF9NYXREaWFsb2dDb250YWluZXJCYXNlLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ292YWxlbnRTaWRlU2hlZXRDb25maWcgfSBmcm9tICcuL3NpZGUtc2hlZXQuY29uZmlnJztcblxuLy8gQ291bnRlciBmb3IgdW5pcXVlIGRpYWxvZyBpZHMuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG4vLyBDcmVhdGUgYSBuZXcgc2lkZSBzaGVldCByZWYgdG8gY2hhbmdlIHRoZSBpZCBvZiB0aGUgcmVmXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRSZWY8VCwgUiA9IGFueT4gZXh0ZW5kcyBNYXREaWFsb2dSZWY8VCwgUj4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICBwdWJsaWMgY29uZmlnOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgX2NvbnRhaW5lckluc3RhbmNlOiBfTWF0RGlhbG9nQ29udGFpbmVyQmFzZSxcbiAgICBvdmVycmlkZSByZWFkb25seSBpZDogc3RyaW5nID0gYHRkLXNpZGUtc2hlZXQtJHt1bmlxdWVJZCsrfWBcbiAgKSB7XG4gICAgY29uc3QgcmVmID0gbmV3IERpYWxvZ1JlZjxSLCBUPihvdmVybGF5UmVmLCBjb25maWcpO1xuICAgIHN1cGVyKHJlZiwgY29uZmlnLCBfY29udGFpbmVySW5zdGFuY2UpO1xuICAgIChyZWYgYXMgeyBjb250YWluZXJJbnN0YW5jZTogQmFzZVBvcnRhbE91dGxldCB9KS5jb250YWluZXJJbnN0YW5jZSA9XG4gICAgICB0aGlzLl9jb250YWluZXJJbnN0YW5jZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX2Nsb3NlU2lkZVNoZWV0VmlhPFI+KFxuICByZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPFI+LFxuICBpbnRlcmFjdGlvblR5cGU6IEZvY3VzT3JpZ2luLFxuICByZXN1bHQ/OiBSXG4pIHtcbiAgLy8gU29tZSBtb2NrIGRpYWxvZyByZWYgaW5zdGFuY2VzIGluIHRlc3RzIGRvIG5vdCBoYXZlIHRoZSBgX2NvbnRhaW5lckluc3RhbmNlYCBwcm9wZXJ0eS5cbiAgLy8gRm9yIHRob3NlLCB3ZSBrZWVwIHRoZSBiZWhhdmlvciBhcyBpcyBhbmQgZG8gbm90IGRlYWwgd2l0aCB0aGUgaW50ZXJhY3Rpb24gdHlwZS5cbiAgaWYgKHJlZi5fY29udGFpbmVySW5zdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgIHJlZi5fY29udGFpbmVySW5zdGFuY2UuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlID0gaW50ZXJhY3Rpb25UeXBlO1xuICB9XG4gIHJldHVybiByZWYuY2xvc2UocmVzdWx0KTtcbn1cbiJdfQ==
@@ -1,201 +0,0 @@
1
- /* tslint:disable */
2
- import { Directive, Input, Optional, ElementRef, HostBinding, HostListener, } from '@angular/core';
3
- import { CovalentSideSheet } from './side-sheet';
4
- import { _closeSideSheetVia, CovalentSideSheetRef } from './side-sheet-ref';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./side-sheet-ref";
7
- import * as i2 from "./side-sheet";
8
- /** Counter used to generate unique IDs for dialog elements. */
9
- let dialogElementUid = 0;
10
- /**
11
- * Button that will close the current dialog.
12
- */
13
- export class CovalentSideSheetCloseDirective {
14
- onClick($event) {
15
- this._onButtonClick($event);
16
- }
17
- constructor(dialogRef, _elementRef, _dialog) {
18
- this.dialogRef = dialogRef;
19
- this._elementRef = _elementRef;
20
- this._dialog = _dialog;
21
- /** Default to "button" to prevents accidental form submits. */
22
- this.type = 'button';
23
- }
24
- ngOnInit() {
25
- if (!this.dialogRef) {
26
- // When this directive is included in a dialog via TemplateRef (rather than being
27
- // in a Component), the DialogRef isn't available via injection because embedded
28
- // views cannot be given a custom injector. Instead, we look up the DialogRef by
29
- // ID. This must occur in `onInit`, as the ID binding for the dialog container won't
30
- // be resolved at constructor time.
31
- this.dialogRef = getClosestDialog(this._elementRef, this._dialog.openSideSheets);
32
- }
33
- }
34
- ngOnChanges(changes) {
35
- const proxiedChange = changes['_CovalentSideSheetClose'] ||
36
- changes['_CovalentSideSheetCloseResult'];
37
- if (proxiedChange) {
38
- this.dialogResult = proxiedChange.currentValue;
39
- }
40
- }
41
- _onButtonClick(event) {
42
- // Determinate the focus origin using the click event, because using the FocusMonitor will
43
- // result in incorrect origins. Most of the time, close buttons will be auto focused in the
44
- // dialog, and therefore clicking the button won't result in a focus change. This means that
45
- // the FocusMonitor won't detect any origin change, and will always output `program`.
46
- _closeSideSheetVia(this.dialogRef, event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse', this.dialogResult);
47
- }
48
- }
49
- CovalentSideSheetCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", 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: "14.0.0", version: "15.2.5", 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: "15.2.5", 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
- }] } });
80
- /**
81
- * Title of a side sheet element. Stays fixed to the top of the side sheet when scrolling.
82
- */
83
- export class CovalentSideSheetTitleDirective {
84
- constructor(
85
- // The dialog title directive is always used in combination with a `CovalentSideSheetRef`.
86
- // tslint:disable-next-line: lightweight-tokens
87
- _dialogRef, _elementRef, _dialog) {
88
- this._dialogRef = _dialogRef;
89
- this._elementRef = _elementRef;
90
- this._dialog = _dialog;
91
- /** Unique id for the dialog title. If none is supplied, it will be auto-generated. */
92
- this.id = `td-side-sheet-title-${dialogElementUid++}`;
93
- this.tdSideSheetTitle = true;
94
- this.idAttr = this.id;
95
- }
96
- ngOnInit() {
97
- if (this._dialogRef) {
98
- Promise.resolve().then(() => {
99
- const container = this._dialogRef._containerInstance;
100
- if (container && !container._ariaLabelledBy) {
101
- container._ariaLabelledBy = this.id;
102
- }
103
- });
104
- }
105
- else {
106
- this._dialogRef = getClosestDialog(this._elementRef, this._dialog.openSideSheets);
107
- }
108
- }
109
- }
110
- CovalentSideSheetTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", 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: "14.0.0", version: "15.2.5", 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: "15.2.5", 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
- }] } });
129
- /**
130
- * Scrollable content container of a dialog.
131
- */
132
- export class CovalentSideSheetContentDirective {
133
- constructor() {
134
- this.tdSideSheetContent = true;
135
- }
136
- }
137
- CovalentSideSheetContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: CovalentSideSheetContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
138
- CovalentSideSheetContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", 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: "15.2.5", 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
- }] } });
148
- /**
149
- * Container for the bottom action buttons in a dialog.
150
- * Stays fixed to the bottom when scrolling.
151
- */
152
- export class CovalentSideSheetActionsDirective {
153
- constructor() {
154
- this.tdSideSheetActions = true;
155
- }
156
- }
157
- CovalentSideSheetActionsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: CovalentSideSheetActionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
158
- CovalentSideSheetActionsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", 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: "15.2.5", 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
- }] } });
168
- /**
169
- * Container for the wrapper part of the dialog
170
- */
171
- export class CovalentSideSheetWrapperDirective {
172
- constructor() {
173
- this.tdSideSheetWrapper = true;
174
- }
175
- }
176
- CovalentSideSheetWrapperDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: CovalentSideSheetWrapperDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
177
- CovalentSideSheetWrapperDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", 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: "15.2.5", 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
- }] } });
187
- /**
188
- * Finds the closest CovalentSideSheetRef to an element by looking at the DOM.
189
- * @param element Element relative to which to look for a dialog.
190
- * @param openDialogs References to the currently-open dialogs.
191
- */
192
- function getClosestDialog(element, openDialogs) {
193
- let parent = element.nativeElement.parentElement;
194
- while (parent && !parent.classList.contains('td-side-sheet-container')) {
195
- parent = parent.parentElement;
196
- }
197
- return parent
198
- ? openDialogs.find((dialog) => dialog.id === parent?.id) ?? openDialogs[0]
199
- : openDialogs[0];
200
- }
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb250ZW50LWRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC5jb250ZW50LWRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLFFBQVEsRUFFUixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFFNUUsK0RBQStEO0FBQy9ELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBRXpCOztHQUVHO0FBS0gsTUFBTSxPQUFPLCtCQUErQjtJQWdCUCxPQUFPLENBQUMsTUFBa0I7UUFDM0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFDcUIsU0FBb0MsRUFDL0MsV0FBb0MsRUFDcEMsT0FBMEI7UUFGZixjQUFTLEdBQVQsU0FBUyxDQUEyQjtRQUMvQyxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFqQnBDLCtEQUErRDtRQUcvRCxTQUFJLEdBQWtDLFFBQVEsQ0FBQztJQWU1QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLGlGQUFpRjtZQUNqRixnRkFBZ0Y7WUFDaEYsZ0ZBQWdGO1lBQ2hGLG9GQUFvRjtZQUNwRixtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FDL0IsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLE9B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LEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3ZhbGVudFNpZGVTaGVldCB9IGZyb20gJy4vc2lkZS1zaGVldCc7XG5pbXBvcnQgeyBfY2xvc2VTaWRlU2hlZXRWaWEsIENvdmFsZW50U2lkZVNoZWV0UmVmIH0gZnJvbSAnLi9zaWRlLXNoZWV0LXJlZic7XG5cbi8qKiBDb3VudGVyIHVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEcyBmb3IgZGlhbG9nIGVsZW1lbnRzLiAqL1xubGV0IGRpYWxvZ0VsZW1lbnRVaWQgPSAwO1xuXG4vKipcbiAqIEJ1dHRvbiB0aGF0IHdpbGwgY2xvc2UgdGhlIGN1cnJlbnQgZGlhbG9nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGQtc2lkZS1zaGVldC1jbG9zZV0sIFtDb3ZhbGVudFNpZGVTaGVldENsb3NlXScsXG4gIGV4cG9ydEFzOiAnQ292YWxlbnRTaWRlU2hlZXRDbG9zZScsXG59KVxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0Q2xvc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKiBTY3JlZW5yZWFkZXIgbGFiZWwgZm9yIHRoZSBidXR0b24uICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhbC1sYWJlbCcpXG4gIEBJbnB1dCgnYXJpYS1sYWJlbCcpXG4gIGFyaWFMYWJlbD86IHN0cmluZztcblxuICAvKiogRGVmYXVsdCB0byBcImJ1dHRvblwiIHRvIHByZXZlbnRzIGFjY2lkZW50YWwgZm9ybSBzdWJtaXRzLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpXG4gIEBJbnB1dCgpXG4gIHR5cGU6ICdzdWJtaXQnIHwgJ2J1dHRvbicgfCAncmVzZXQnID0gJ2J1dHRvbic7XG5cbiAgLyoqIERpYWxvZyBjbG9zZSBpbnB1dC4gKi9cbiAgQElucHV0KCd0ZC1zaWRlLXNoZWV0LWNsb3NlJykgZGlhbG9nUmVzdWx0OiBhbnk7XG5cbiAgQElucHV0KCdDb3ZhbGVudFNpZGVTaGVldENsb3NlJykgX0NvdmFsZW50U2lkZVNoZWV0Q2xvc2U6IGFueTtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5fb25CdXR0b25DbGljaygkZXZlbnQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PixcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIF9kaWFsb2c6IENvdmFsZW50U2lkZVNoZWV0XG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICAvLyBXaGVuIHRoaXMgZGlyZWN0aXZlIGlzIGluY2x1ZGVkIGluIGEgZGlhbG9nIHZpYSBUZW1wbGF0ZVJlZiAocmF0aGVyIHRoYW4gYmVpbmdcbiAgICAgIC8vIGluIGEgQ29tcG9uZW50KSwgdGhlIERpYWxvZ1JlZiBpc24ndCBhdmFpbGFibGUgdmlhIGluamVjdGlvbiBiZWNhdXNlIGVtYmVkZGVkXG4gICAgICAvLyB2aWV3cyBjYW5ub3QgYmUgZ2l2ZW4gYSBjdXN0b20gaW5qZWN0b3IuIEluc3RlYWQsIHdlIGxvb2sgdXAgdGhlIERpYWxvZ1JlZiBieVxuICAgICAgLy8gSUQuIFRoaXMgbXVzdCBvY2N1ciBpbiBgb25Jbml0YCwgYXMgdGhlIElEIGJpbmRpbmcgZm9yIHRoZSBkaWFsb2cgY29udGFpbmVyIHdvbid0XG4gICAgICAvLyBiZSByZXNvbHZlZCBhdCBjb25zdHJ1Y3RvciB0aW1lLlxuICAgICAgdGhpcy5kaWFsb2dSZWYgPSBnZXRDbG9zZXN0RGlhbG9nKFxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLFxuICAgICAgICB0aGlzLl9kaWFsb2cub3BlblNpZGVTaGVldHNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHByb3hpZWRDaGFuZ2UgPVxuICAgICAgY2hhbmdlc1snX0NvdmFsZW50U2lkZVNoZWV0Q2xvc2UnXSB8fFxuICAgICAgY2hhbmdlc1snX0NvdmFsZW50U2lkZVNoZWV0Q2xvc2VSZXN1bHQnXTtcblxuICAgIGlmIChwcm94aWVkQ2hhbmdlKSB7XG4gICAgICB0aGlzLmRpYWxvZ1Jlc3VsdCA9IHByb3hpZWRDaGFuZ2UuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIF9vbkJ1dHRvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgLy8gRGV0ZXJtaW5hdGUgdGhlIGZvY3VzIG9yaWdpbiB1c2luZyB0aGUgY2xpY2sgZXZlbnQsIGJlY2F1c2UgdXNpbmcgdGhlIEZvY3VzTW9uaXRvciB3aWxsXG4gICAgLy8gcmVzdWx0IGluIGluY29ycmVjdCBvcmlnaW5zLiBNb3N0IG9mIHRoZSB0aW1lLCBjbG9zZSBidXR0b25zIHdpbGwgYmUgYXV0byBmb2N1c2VkIGluIHRoZVxuICAgIC8vIGRpYWxvZywgYW5kIHRoZXJlZm9yZSBjbGlja2luZyB0aGUgYnV0dG9uIHdvbid0IHJlc3VsdCBpbiBhIGZvY3VzIGNoYW5nZS4gVGhpcyBtZWFucyB0aGF0XG4gICAgLy8gdGhlIEZvY3VzTW9uaXRvciB3b24ndCBkZXRlY3QgYW55IG9yaWdpbiBjaGFuZ2UsIGFuZCB3aWxsIGFsd2F5cyBvdXRwdXQgYHByb2dyYW1gLlxuICAgIF9jbG9zZVNpZGVTaGVldFZpYShcbiAgICAgIHRoaXMuZGlhbG9nUmVmLFxuICAgICAgZXZlbnQuc2NyZWVuWCA9PT0gMCAmJiBldmVudC5zY3JlZW5ZID09PSAwID8gJ2tleWJvYXJkJyA6ICdtb3VzZScsXG4gICAgICB0aGlzLmRpYWxvZ1Jlc3VsdFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaXRsZSBvZiBhIHNpZGUgc2hlZXQgZWxlbWVudC4gU3RheXMgZml4ZWQgdG8gdGhlIHRvcCBvZiB0aGUgc2lkZSBzaGVldCB3aGVuIHNjcm9sbGluZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RkLXNpZGUtc2hlZXQtdGl0bGVdLCBbQ292YWxlbnRTaWRlU2hlZXRUaXRsZV0nLFxuICBleHBvcnRBczogJ0NvdmFsZW50U2lkZVNoZWV0VGl0bGUnLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldFRpdGxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIFVuaXF1ZSBpZCBmb3IgdGhlIGRpYWxvZyB0aXRsZS4gSWYgbm9uZSBpcyBzdXBwbGllZCwgaXQgd2lsbCBiZSBhdXRvLWdlbmVyYXRlZC4gKi9cbiAgQElucHV0KCkgaWQgPSBgdGQtc2lkZS1zaGVldC10aXRsZS0ke2RpYWxvZ0VsZW1lbnRVaWQrK31gO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGQtc2lkZS1zaGVldC10aXRsZScpIHRkU2lkZVNoZWV0VGl0bGUgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIGlkQXR0ciA9IHRoaXMuaWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gVGhlIGRpYWxvZyB0aXRsZSBkaXJlY3RpdmUgaXMgYWx3YXlzIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBhIGBDb3ZhbGVudFNpZGVTaGVldFJlZmAuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBsaWdodHdlaWdodC10b2tlbnNcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaWFsb2dSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT4sXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBDb3ZhbGVudFNpZGVTaGVldFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2RpYWxvZ1JlZikge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuX2RpYWxvZ1JlZi5fY29udGFpbmVySW5zdGFuY2U7XG5cbiAgICAgICAgaWYgKGNvbnRhaW5lciAmJiAhY29udGFpbmVyLl9hcmlhTGFiZWxsZWRCeSkge1xuICAgICAgICAgIGNvbnRhaW5lci5fYXJpYUxhYmVsbGVkQnkgPSB0aGlzLmlkO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGlhbG9nUmVmID0gZ2V0Q2xvc2VzdERpYWxvZyhcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZixcbiAgICAgICAgdGhpcy5fZGlhbG9nLm9wZW5TaWRlU2hlZXRzXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFNjcm9sbGFibGUgY29udGVudCBjb250YWluZXIgb2YgYSBkaWFsb2cuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFt0ZC1zaWRlLXNoZWV0LWNvbnRlbnRdLCB0ZC1zaWRlLXNoZWV0LWNvbnRlbnQsIFtDb3ZhbGVudFNpZGVTaGVldENvbnRlbnRdYCxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRDb250ZW50RGlyZWN0aXZlIHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50ZC1zaWRlLXNoZWV0LWNvbnRlbnQnKSB0ZFNpZGVTaGVldENvbnRlbnQgPSB0cnVlO1xufVxuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgdGhlIGJvdHRvbSBhY3Rpb24gYnV0dG9ucyBpbiBhIGRpYWxvZy5cbiAqIFN0YXlzIGZpeGVkIHRvIHRoZSBib3R0b20gd2hlbiBzY3JvbGxpbmcuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFt0ZC1zaWRlLXNoZWV0LWFjdGlvbnNdLCB0ZC1zaWRlLXNoZWV0LWFjdGlvbnMsIFtDb3ZhbGVudFNpZGVTaGVldEFjdGlvbnNdYCxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRBY3Rpb25zRGlyZWN0aXZlIHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50ZC1zaWRlLXNoZWV0LWFjdGlvbnMnKSB0ZFNpZGVTaGVldEFjdGlvbnMgPSB0cnVlO1xufVxuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgdGhlIHdyYXBwZXIgcGFydCBvZiB0aGUgZGlhbG9nXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFt0ZC1zaWRlLXNoZWV0LXdyYXBwZXJdLCB0ZC1zaWRlLXNoZWV0LXdyYXBwZXIsIFtDb3ZhbGVudFNpZGVTaGVldFdyYXBwZXJdYCxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRXcmFwcGVyRGlyZWN0aXZlIHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50ZC1zaWRlLXNoZWV0LXdyYXBwZXInKSB0ZFNpZGVTaGVldFdyYXBwZXIgPSB0cnVlO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBjbG9zZXN0IENvdmFsZW50U2lkZVNoZWV0UmVmIHRvIGFuIGVsZW1lbnQgYnkgbG9va2luZyBhdCB0aGUgRE9NLlxuICogQHBhcmFtIGVsZW1lbnQgRWxlbWVudCByZWxhdGl2ZSB0byB3aGljaCB0byBsb29rIGZvciBhIGRpYWxvZy5cbiAqIEBwYXJhbSBvcGVuRGlhbG9ncyBSZWZlcmVuY2VzIHRvIHRoZSBjdXJyZW50bHktb3BlbiBkaWFsb2dzLlxuICovXG5mdW5jdGlvbiBnZXRDbG9zZXN0RGlhbG9nKFxuICBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgb3BlbkRpYWxvZ3M6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT5bXVxuKTogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PiB7XG4gIGxldCBwYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IGVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXG4gIHdoaWxlIChwYXJlbnQgJiYgIXBhcmVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3RkLXNpZGUtc2hlZXQtY29udGFpbmVyJykpIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDtcbiAgfVxuXG4gIHJldHVybiBwYXJlbnRcbiAgICA/IG9wZW5EaWFsb2dzLmZpbmQoKGRpYWxvZykgPT4gZGlhbG9nLmlkID09PSBwYXJlbnQ/LmlkKSA/PyBvcGVuRGlhbG9nc1swXVxuICAgIDogb3BlbkRpYWxvZ3NbMF07XG59XG4iXX0=