@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
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-core-layout.js","sources":["../../../../src/platform/core/layout/layout.component.ts","../../../../src/platform/core/layout/layout-toggle.class.ts","../../../../src/platform/core/layout/layout.directives.ts","../../../../src/platform/core/layout/layout-nav/layout-nav.component.ts","../../../../src/platform/core/layout/layout-nav-list/layout-nav-list.component.ts","../../../../src/platform/core/layout/layout-nav-list/layout-nav-list.directives.ts","../../../../src/platform/core/layout/layout-card-over/layout-card-over.component.ts","../../../../src/platform/core/layout/layout-manage-list/layout-manage-list.component.ts","../../../../src/platform/core/layout/layout-manage-list/layout-manage-list.directives.ts","../../../../src/platform/core/layout/layout-footer/layout-footer.component.ts","../../../../src/platform/core/layout/navigation-drawer/navigation-drawer.component.ts","../../../../src/platform/core/layout/layout.module.ts"],"sourcesContent":["import { Component, Input, ViewChild } from '@angular/core';\n\nimport { MatSidenav, MatDrawerToggleResult } from '@angular/material/sidenav';\n\nimport { ILayoutTogglable } from './layout-toggle.class';\n\n@Component({\n selector: 'td-layout',\n styleUrls: ['./layout.component.scss'],\n templateUrl: './layout.component.html',\n})\nexport class TdLayoutComponent implements ILayoutTogglable {\n @ViewChild(MatSidenav, { static: true }) sidenav: MatSidenav;\n\n /**\n * mode?: 'side', 'push' or 'over'\n *\n * The mode or styling of the sidenav.\n * Defaults to \"over\".\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() mode: 'side' | 'push' | 'over' = 'over';\n\n /**\n * opened?: boolean\n *\n * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.\n * Defaults to \"false\".\n *\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() opened: boolean = false;\n\n /**\n * sidenavWidth?: string\n *\n * Sets the \"width\" of the sidenav in either \"px\" or \"%\"\n * Defaults to \"320px\".\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() sidenavWidth: string = '320px';\n\n /**\n * containerAutosize?: boolean\n *\n * Sets \"autosize\" of the sidenav-container.\n * Defaults to \"false\".\n *\n * See documentation for more info and potential performance risks.\n *\n * https://github.com/angular/material2/blob/master/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav\n */\n @Input() containerAutosize: boolean = false;\n\n /**\n * Checks if `ESC` should close the sidenav\n * Should only close it for `push` and `over` modes\n */\n get disableClose(): boolean {\n return this.mode === 'side';\n }\n\n /**\n * Proxy toggle method to access sidenav from outside (from td-layout template).\n */\n public toggle(): Promise<MatDrawerToggleResult> {\n return this.sidenav.toggle(!this.sidenav.opened);\n }\n\n /**\n * Proxy open method to access sidenav from outside (from td-layout template).\n */\n public open(): Promise<MatDrawerToggleResult> {\n return this.sidenav.open();\n }\n\n /**\n * Proxy close method to access sidenav from outside (from td-layout template).\n */\n public close(): Promise<MatDrawerToggleResult> {\n return this.sidenav.close();\n }\n}\n","import {\n Input,\n HostBinding,\n HostListener,\n Renderer2,\n ElementRef,\n AfterViewInit,\n OnDestroy,\n Directive,\n} from '@angular/core';\n\nimport { MatSidenav, MatDrawerToggleResult } from '@angular/material/sidenav';\n\nimport { ICanDisable, mixinDisabled } from '@covalent/core/common';\n\nimport { Subscription } from 'rxjs';\n\nexport interface ILayoutTogglable {\n opened: boolean;\n sidenav: MatSidenav;\n toggle(): Promise<MatDrawerToggleResult>;\n open(): Promise<MatDrawerToggleResult>;\n close(): Promise<MatDrawerToggleResult>;\n}\n\nexport class LayoutToggleBase {}\n\n/* tslint:disable-next-line */\nexport const _TdLayoutToggleMixinBase = mixinDisabled(LayoutToggleBase);\n\n@Directive()\nexport abstract class BaseLayoutToggleDirective\n extends _TdLayoutToggleMixinBase\n implements AfterViewInit, OnDestroy, ICanDisable {\n private _toggleSubs: Subscription;\n\n private _initialized: boolean = false;\n private _hideWhenOpened: boolean = false;\n\n /**\n * hideWhenOpened?: boolean\n * When this is set to true, the host will be hidden when\n * the sidenav is opened.\n */\n @Input('hideWhenOpened')\n set hideWhenOpened(hideWhenOpened: boolean) {\n this._hideWhenOpened = hideWhenOpened;\n if (this._initialized) {\n this._toggleVisibility();\n }\n }\n\n constructor(protected _layout: ILayoutTogglable, private _renderer: Renderer2, private _elementRef: ElementRef) {\n super();\n // if layout has not been provided\n // show warn message\n if (!this._layout) {\n this._noLayoutMessage();\n }\n this._renderer.addClass(this._elementRef.nativeElement, 'td-layout-menu-button');\n }\n\n ngAfterViewInit(): void {\n this._initialized = true;\n if (this._layout && this._layout.sidenav) {\n this._toggleSubs = this._layout.sidenav._animationStarted.subscribe(() => {\n this._toggleVisibility();\n });\n }\n // execute toggleVisibility since the onOpenStart and onCloseStart\n // methods might not be executed always when the element is rendered\n this._toggleVisibility();\n }\n\n ngOnDestroy(): void {\n if (this._toggleSubs) {\n this._toggleSubs.unsubscribe();\n this._toggleSubs = undefined;\n }\n }\n\n /**\n * Listens to host click event to trigger the layout toggle\n */\n @HostListener('click', ['$event'])\n clickListener(event: Event): void {\n event.preventDefault();\n if (!this.disabled) {\n // if layout has been provided, try triggering the click on it\n // else show warn message\n if (this._layout && this._layout.open) {\n this.onClick();\n } else {\n this._noLayoutMessage();\n }\n }\n }\n\n abstract onClick(): void;\n\n private _toggleVisibility(): void {\n if (this._layout) {\n if (this._layout.sidenav.opened && this._hideWhenOpened) {\n this._renderer.setStyle(this._elementRef.nativeElement, 'display', 'none');\n } else {\n this._renderer.setStyle(this._elementRef.nativeElement, 'display', '');\n }\n }\n }\n\n private _noLayoutMessage(): void {\n /* tslint:disable-next-line */\n console.warn('Covalent: Parent layout not found for layout toggle directive');\n }\n}\n","import { Optional, Directive, Input, Renderer2, ElementRef, Inject, forwardRef } from '@angular/core';\nimport { TdLayoutComponent } from './layout.component';\nimport { BaseLayoutToggleDirective } from './layout-toggle.class';\n\n@Directive({\n selector: '[tdLayoutToggle]',\n})\nexport class TdLayoutToggleDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutToggle')\n set tdLayoutToggle(tdLayoutToggle: boolean) {\n this.disabled = !(<any>tdLayoutToggle === '' || tdLayoutToggle);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutComponent)) layout: TdLayoutComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.toggle();\n }\n}\n\n@Directive({\n selector: '[tdLayoutClose]',\n})\nexport class TdLayoutCloseDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutClose')\n set tdLayoutClose(tdLayoutClose: boolean) {\n this.disabled = !(<any>tdLayoutClose === '' || tdLayoutClose);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutComponent)) layout: TdLayoutComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.close();\n }\n}\n\n@Directive({\n selector: '[tdLayoutOpen]',\n})\nexport class TdLayoutOpenDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutOpen')\n set tdLayoutClose(tdLayoutOpen: boolean) {\n this.disabled = !(<any>tdLayoutOpen === '' || tdLayoutOpen);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutComponent)) layout: TdLayoutComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.open();\n }\n}\n","import { Component, Input, forwardRef, Optional, Inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TdLayoutComponent } from '../layout.component';\n\n@Component({\n selector: 'td-layout-nav',\n styleUrls: ['./layout-nav.component.scss'],\n templateUrl: './layout-nav.component.html',\n})\nexport class TdLayoutNavComponent {\n /**\n * toolbarTitle?: string\n *\n * Title set in toolbar.\n */\n @Input() toolbarTitle: string;\n\n /**\n * icon?: string\n *\n * icon name to be displayed before the title\n */\n @Input() icon: string;\n\n /**\n * logo?: string\n *\n * logo icon name to be displayed before the title.\n * If [icon] is set, then this will not be shown.\n */\n @Input() logo: string;\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * toolbar color option: primary | accent | warn.\n * If [color] is not set, primary is used.\n */\n @Input() color: 'accent' | 'primary' | 'warn' = 'primary';\n\n /**\n * navigationRoute?: string\n *\n * option to set the combined route for the icon, logo, and toolbarTitle.\n */\n @Input() navigationRoute: string;\n\n /**\n * Checks if router was injected.\n */\n get routerEnabled(): boolean {\n return !!this._router && !!this.navigationRoute;\n }\n\n constructor(@Optional() private _router: Router) {}\n\n handleNavigationClick(): void {\n if (this.routerEnabled) {\n this._router.navigateByUrl(this.navigationRoute);\n }\n }\n}\n","import { Component, Input, ViewChild, Optional } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { MatSidenav, MatDrawerToggleResult } from '@angular/material/sidenav';\n\nimport { ILayoutTogglable } from '../layout-toggle.class';\n\n@Component({\n selector: 'td-layout-nav-list',\n styleUrls: ['./layout-nav-list.component.scss'],\n templateUrl: './layout-nav-list.component.html',\n})\nexport class TdLayoutNavListComponent implements ILayoutTogglable {\n @ViewChild(MatSidenav, { static: true }) sidenav: MatSidenav;\n\n /**\n * toolbarTitle?: string\n *\n * Title set in toolbar.\n */\n @Input() toolbarTitle: string;\n\n /**\n * icon?: string\n * icon name to be displayed before the title\n */\n @Input() icon: string;\n\n /**\n * logo?: string\n *\n * logo icon name to be displayed before the title.\n * If [icon] is set, then this will not be shown.\n */\n @Input() logo: string;\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * toolbar color option: primary | accent | warn.\n * If [color] is not set, primary is used.\n */\n @Input() color: 'accent' | 'primary' | 'warn' = 'primary';\n\n /**\n * mode?: 'side', 'push' or 'over'\n *\n * The mode or styling of the sidenav.\n * Defaults to \"side\".\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() mode: 'side' | 'push' | 'over' = 'side';\n\n /**\n * opened?: boolean\n * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.\n * Defaults to \"true\".\n *\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() opened: boolean = true;\n\n /**\n * sidenavWidth?: string\n *\n * Sets the \"width\" of the sidenav in either \"px\" or \"%\"\n * Defaults to \"350px\".\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() sidenavWidth: string = '350px';\n\n /**\n * containerAutosize?: boolean\n *\n * Sets \"autosize\" of the sidenav-container.\n * Defaults to \"false\".\n *\n * See documentation for more info and potential performance risks.\n *\n * https://github.com/angular/material2/blob/master/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav\n */\n @Input() containerAutosize: boolean = false;\n\n /**\n * navigationRoute?: string\n *\n * option to set the combined route for the icon, logo, and toolbarTitle.\n */\n @Input() navigationRoute: string;\n\n /**\n * Checks if `ESC` should close the sidenav\n * Should only close it for `push` and `over` modes\n */\n get disableClose(): boolean {\n return this.mode === 'side';\n }\n\n /**\n * Checks if router was injected.\n */\n get routerEnabled(): boolean {\n return !!this._router && !!this.navigationRoute;\n }\n\n constructor(@Optional() private _router: Router) {}\n\n handleNavigationClick(): void {\n if (this.routerEnabled) {\n this._router.navigateByUrl(this.navigationRoute);\n }\n }\n\n /**\n * Proxy toggle method to access sidenav from outside (from td-layout template).\n */\n public toggle(): Promise<MatDrawerToggleResult> {\n return this.sidenav.toggle(!this.sidenav.opened);\n }\n\n /**\n * Proxy open method to access sidenav from outside (from td-layout template).\n */\n public open(): Promise<MatDrawerToggleResult> {\n return this.sidenav.open();\n }\n\n /**\n * Proxy close method to access sidenav from outside (from td-layout template).\n */\n public close(): Promise<MatDrawerToggleResult> {\n return this.sidenav.close();\n }\n}\n","import { Optional, Directive, Input, Renderer2, ElementRef, Inject, forwardRef } from '@angular/core';\nimport { TdLayoutNavListComponent } from './layout-nav-list.component';\nimport { BaseLayoutToggleDirective } from '../layout-toggle.class';\n\n@Directive({\n selector: '[tdLayoutNavListToggle]',\n inputs: ['hideWhenOpened'],\n})\nexport class TdLayoutNavListToggleDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutNavListToggle')\n set tdLayoutNavListToggle(tdLayoutNavListToggle: boolean) {\n this.disabled = !(<any>tdLayoutNavListToggle === '' || tdLayoutNavListToggle);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutNavListComponent)) layout: TdLayoutNavListComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.toggle();\n }\n}\n\n@Directive({\n selector: '[tdLayoutNavListClose]',\n inputs: ['hideWhenOpened'],\n})\nexport class TdLayoutNavListCloseDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutNavListClose')\n set tdLayoutNavListClose(tdLayoutNavListClose: boolean) {\n this.disabled = !(<any>tdLayoutNavListClose === '' || tdLayoutNavListClose);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutNavListComponent)) layout: TdLayoutNavListComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.close();\n }\n}\n\n@Directive({\n selector: '[tdLayoutNavListOpen]',\n inputs: ['hideWhenOpened'],\n})\nexport class TdLayoutNavListOpenDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutNavListOpen')\n set tdLayoutNavListOpen(tdLayoutNavListOpen: boolean) {\n this.disabled = !(<any>tdLayoutNavListOpen === '' || tdLayoutNavListOpen);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutNavListComponent)) layout: TdLayoutNavListComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.open();\n }\n}\n","import { Component } from '@angular/core';\nimport { Input } from '@angular/core';\n\n@Component({\n selector: 'td-layout-card-over',\n styleUrls: ['./layout-card-over.component.scss'],\n templateUrl: './layout-card-over.component.html',\n})\nexport class TdLayoutCardOverComponent {\n /**\n * cardTitle?: string\n *\n * Title set in card.\n */\n @Input() cardTitle: string;\n\n /**\n * cardSubtitle?: string\n *\n * Subtitle set in card.\n */\n @Input() cardSubtitle: string;\n\n /**\n * cardWidth?: string\n *\n * Card flex width in %.\n * Defaults to 70%.\n */\n @Input() cardWidth: number = 70;\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * toolbar color option: primary | accent | warn.\n * If [color] is not set, primary is used.\n */\n @Input() color: 'accent' | 'primary' | 'warn' = 'primary';\n}\n","import { Component, Directive, Input, ViewChild } from '@angular/core';\n\nimport { MatSidenav, MatDrawerToggleResult } from '@angular/material/sidenav';\n\nimport { ILayoutTogglable } from '../layout-toggle.class';\n\n@Component({\n selector: 'td-layout-manage-list',\n styleUrls: ['./layout-manage-list.component.scss'],\n templateUrl: './layout-manage-list.component.html',\n})\nexport class TdLayoutManageListComponent implements ILayoutTogglable {\n @ViewChild(MatSidenav, { static: true }) sidenav: MatSidenav;\n\n /**\n * mode?: 'side', 'push' or 'over'\n *\n * The mode or styling of the sidenav.\n * Defaults to \"side\".\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() mode: 'side' | 'push' | 'over' = 'side';\n\n /**\n * opened?: boolean\n *\n * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.\n * Defaults to \"true\".\n *\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() opened: boolean = true;\n\n /**\n * sidenavWidth?: string\n *\n * Sets the \"width\" of the sidenav in either \"px\" or \"%\"\n * Defaults to \"257px\".\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() sidenavWidth: string = '257px';\n\n /**\n * containerAutosize?: boolean\n *\n * Sets \"autosize\" of the sidenav-container.\n * Defaults to \"false\".\n *\n * See documentation for more info and potential performance risks.\n *\n * https://github.com/angular/material2/blob/master/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav\n */\n @Input() containerAutosize: boolean = false;\n\n /**\n * Checks if `ESC` should close the sidenav\n * Should only close it for `push` and `over` modes\n */\n get disableClose(): boolean {\n return this.mode === 'side';\n }\n\n /**\n * Proxy toggle method to access sidenav from outside (from td-layout template).\n */\n public toggle(): Promise<MatDrawerToggleResult> {\n return this.sidenav.toggle(!this.sidenav.opened);\n }\n\n /**\n * Proxy open method to access sidenav from outside (from td-layout template).\n */\n public open(): Promise<MatDrawerToggleResult> {\n return this.sidenav.open();\n }\n\n /**\n * Proxy close method to access sidenav from outside (from td-layout template).\n */\n public close(): Promise<MatDrawerToggleResult> {\n return this.sidenav.close();\n }\n}\n","import { Optional, Directive, Input, Renderer2, ElementRef, Inject, forwardRef } from '@angular/core';\nimport { TdLayoutManageListComponent } from './layout-manage-list.component';\nimport { BaseLayoutToggleDirective } from '../layout-toggle.class';\n\n@Directive({\n selector: '[tdLayoutManageListToggle]',\n inputs: ['hideWhenOpened'],\n})\nexport class TdLayoutManageListToggleDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutManageListToggle')\n set tdLayoutManageListToggle(tdLayoutManageListToggle: boolean) {\n this.disabled = !(<any>tdLayoutManageListToggle === '' || tdLayoutManageListToggle);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutManageListComponent)) layout: TdLayoutManageListComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.toggle();\n }\n}\n\n@Directive({\n selector: '[tdLayoutManageListClose]',\n inputs: ['hideWhenOpened'],\n})\nexport class TdLayoutManageListCloseDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutManageListClose')\n set tdLayoutManageListClose(tdLayoutManageListClose: boolean) {\n this.disabled = !(<any>tdLayoutManageListClose === '' || tdLayoutManageListClose);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutManageListComponent)) layout: TdLayoutManageListComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.close();\n }\n}\n\n@Directive({\n selector: '[tdLayoutManageListOpen]',\n inputs: ['hideWhenOpened'],\n})\nexport class TdLayoutManageListOpenDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutManageListOpen')\n set tdLayoutManageListOpen(tdLayoutManageListOpen: boolean) {\n this.disabled = !(<any>tdLayoutManageListOpen === '' || tdLayoutManageListOpen);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutManageListComponent)) layout: TdLayoutManageListComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.open();\n }\n}\n","import { Component, Input, Renderer2, ElementRef } from '@angular/core';\n\n@Component({\n /* tslint:disable-next-line */\n selector: 'td-layout-footer,td-layout-footer-inner',\n styleUrls: ['./layout-footer.component.scss'],\n templateUrl: './layout-footer.component.html',\n})\nexport class TdLayoutFooterComponent {\n private _color: 'primary' | 'accent' | 'warn';\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * Optional color option: primary | accent | warn.\n */\n @Input('color')\n set color(color: 'primary' | 'accent' | 'warn') {\n if (color) {\n this._renderer.removeClass(this._elementRef.nativeElement, 'mat-' + this._color);\n this._color = color;\n this._renderer.addClass(this._elementRef.nativeElement, 'mat-' + this._color);\n }\n }\n get color(): 'primary' | 'accent' | 'warn' {\n return this._color;\n }\n\n constructor(private _renderer: Renderer2, private _elementRef: ElementRef) {\n this._renderer.addClass(this._elementRef.nativeElement, 'td-layout-footer');\n }\n}\n","import {\n Component,\n Directive,\n Input,\n ContentChildren,\n OnInit,\n OnDestroy,\n forwardRef,\n Inject,\n QueryList,\n SecurityContext,\n Optional,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { SafeResourceUrl, SafeStyle, DomSanitizer } from '@angular/platform-browser';\nimport { MatDrawerToggleResult } from '@angular/material/sidenav';\n\nimport { Subscription } from 'rxjs';\n\nimport { TdLayoutComponent } from '../layout.component';\n\nimport { tdCollapseAnimation } from '@covalent/core/common';\n\n@Directive({\n selector: '[td-navigation-drawer-menu]',\n})\nexport class TdNavigationDrawerMenuDirective {}\n\n@Directive({\n selector: '[td-navigation-drawer-toolbar]',\n})\nexport class TdNavigationDrawerToolbarDirective {}\n\n@Component({\n selector: 'td-navigation-drawer',\n styleUrls: ['./navigation-drawer.component.scss'],\n templateUrl: './navigation-drawer.component.html',\n animations: [tdCollapseAnimation],\n})\nexport class TdNavigationDrawerComponent implements OnInit, OnDestroy {\n private _closeSubscription: Subscription;\n private _menuToggled: boolean = false;\n private _backgroundImage: SafeStyle;\n\n get menuToggled(): boolean {\n return this._menuToggled;\n }\n\n @ContentChildren(TdNavigationDrawerMenuDirective, { descendants: true })\n _drawerMenu: QueryList<TdNavigationDrawerMenuDirective>;\n\n @ContentChildren(TdNavigationDrawerToolbarDirective, { descendants: true })\n _toolbar: QueryList<TdNavigationDrawerToolbarDirective>;\n\n /**\n * Checks if there is a [TdNavigationDrawerMenuDirective] has content.\n */\n get isMenuAvailable(): boolean {\n return this._drawerMenu ? this._drawerMenu.length > 0 : false;\n }\n\n /**\n * Checks if there is a [TdNavigationDrawerToolbarDirective] has content.\n */\n get isCustomToolbar(): boolean {\n return this._toolbar ? this._toolbar.length > 0 : false;\n }\n\n /**\n * Checks if there is a background image for the toolbar.\n */\n get isBackgroundAvailable(): boolean {\n return !!this._backgroundImage;\n }\n\n /**\n * sidenavTitle?: string\n * Title set in sideNav.\n */\n @Input() sidenavTitle: string;\n\n /**\n * icon?: string\n *\n * icon name to be displayed before the title\n */\n @Input() icon: string;\n\n /**\n * logo?: string\n *\n * logo icon name to be displayed before the title.\n * If [icon] is set, then this will not be shown.\n */\n @Input() logo: string;\n\n /**\n * avatar?: string\n *\n * avatar url to be displayed before the title\n * If [icon] or [logo] are set, then this will not be shown.\n */\n @Input() avatar: string;\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * toolbar color option: primary | accent | warn.\n * If [color] is not set, default is used.\n */\n @Input() color: 'accent' | 'primary' | 'warn';\n\n /**\n * navigationRoute?: string\n *\n * option to set the combined route for the icon, logo, and sidenavTitle.\n */\n @Input() navigationRoute: string;\n\n /**\n * backgroundUrl?: SafeResourceUrl\n *\n * image to be displayed as the background of the toolbar.\n * URL used will be sanitized, but it should be always from a trusted source to avoid XSS.\n */\n @Input('backgroundUrl')\n // TODO Angular complains with warnings if this is type [SafeResourceUrl].. so we will make it <any> until its fixed.\n // https://github.com/webpack/webpack/issues/2977\n set backgroundUrl(backgroundUrl: any) {\n if (backgroundUrl) {\n const sanitizedUrl: string = this._sanitize.sanitize(SecurityContext.RESOURCE_URL, backgroundUrl);\n this._backgroundImage = this._sanitize.sanitize(SecurityContext.STYLE, 'url(' + sanitizedUrl + ')');\n }\n }\n get backgroundImage(): SafeStyle {\n return this._backgroundImage;\n }\n\n /**\n * name?: string\n *\n * string to be displayed as part of the navigation drawer sublabel.\n * if [email] is not set, then [name] will be the toggle menu text.\n */\n @Input() name: string;\n\n /**\n * email?: string\n *\n * string to be displayed as part of the navigation drawer sublabel in the [toggle] menu text.\n * if [email] and [name] are not set, then the toggle menu is not rendered.\n */\n @Input() email: string;\n\n /**\n * Checks if router was injected.\n */\n get routerEnabled(): boolean {\n return !!this._router && !!this.navigationRoute;\n }\n\n constructor(\n @Inject(forwardRef(() => TdLayoutComponent)) private _layout: TdLayoutComponent,\n @Optional() private _router: Router,\n private _sanitize: DomSanitizer,\n ) {}\n\n ngOnInit(): void {\n this._closeSubscription = this._layout.sidenav.openedChange.subscribe((opened: boolean) => {\n if (!opened) {\n this._menuToggled = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this._closeSubscription) {\n this._closeSubscription.unsubscribe();\n this._closeSubscription = undefined;\n }\n }\n\n toggleMenu(): void {\n if (this.isMenuAvailable) {\n this._menuToggled = !this._menuToggled;\n }\n }\n\n handleNavigationClick(): void {\n if (this.routerEnabled) {\n this._router.navigateByUrl(this.navigationRoute);\n this.close();\n }\n }\n\n /**\n * Proxy toggle method to access sidenav from outside (from td-layout template).\n */\n public toggle(): Promise<MatDrawerToggleResult> {\n return this._layout.toggle();\n }\n\n /**\n * Proxy open method to access sidenav from outside (from td-layout template).\n */\n public open(): Promise<MatDrawerToggleResult> {\n return this._layout.open();\n }\n\n /**\n * Proxy close method to access sidenav from outside (from td-layout template).\n */\n public close(): Promise<MatDrawerToggleResult> {\n return this._layout.close();\n }\n}\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDividerModule } from '@angular/material/divider';\n\nimport { TdLayoutComponent } from './layout.component';\nimport { TdLayoutToggleDirective, TdLayoutCloseDirective, TdLayoutOpenDirective } from './layout.directives';\nimport { TdLayoutNavComponent } from './layout-nav/layout-nav.component';\nimport { TdLayoutNavListComponent } from './layout-nav-list/layout-nav-list.component';\nimport {\n TdLayoutNavListToggleDirective,\n TdLayoutNavListCloseDirective,\n TdLayoutNavListOpenDirective,\n} from './layout-nav-list/layout-nav-list.directives';\nimport { TdLayoutCardOverComponent } from './layout-card-over/layout-card-over.component';\nimport { TdLayoutManageListComponent } from './layout-manage-list/layout-manage-list.component';\nimport {\n TdLayoutManageListToggleDirective,\n TdLayoutManageListCloseDirective,\n TdLayoutManageListOpenDirective,\n} from './layout-manage-list/layout-manage-list.directives';\nimport { TdLayoutFooterComponent } from './layout-footer/layout-footer.component';\n\nimport {\n TdNavigationDrawerComponent,\n TdNavigationDrawerMenuDirective,\n TdNavigationDrawerToolbarDirective,\n} from './navigation-drawer/navigation-drawer.component';\n\nconst TD_LAYOUTS: Type<any>[] = [\n TdLayoutComponent,\n TdLayoutToggleDirective,\n TdLayoutCloseDirective,\n TdLayoutOpenDirective,\n\n TdLayoutNavComponent,\n\n TdLayoutNavListComponent,\n TdLayoutNavListToggleDirective,\n TdLayoutNavListCloseDirective,\n TdLayoutNavListOpenDirective,\n\n TdLayoutCardOverComponent,\n\n TdLayoutManageListComponent,\n TdLayoutManageListToggleDirective,\n TdLayoutManageListCloseDirective,\n TdLayoutManageListOpenDirective,\n\n TdLayoutFooterComponent,\n\n TdNavigationDrawerComponent,\n TdNavigationDrawerMenuDirective,\n TdNavigationDrawerToolbarDirective,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ScrollingModule,\n MatSidenavModule,\n MatToolbarModule,\n MatButtonModule,\n MatIconModule,\n MatCardModule,\n MatDividerModule,\n ],\n declarations: [TD_LAYOUTS],\n exports: [TD_LAYOUTS],\n})\nexport class CovalentLayoutModule {}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"covalent-core-layout.js","sources":["../../../../src/platform/core/layout/layout.component.ts","../../../../src/platform/core/layout/layout-toggle.class.ts","../../../../src/platform/core/layout/layout.directives.ts","../../../src/platform/core/layout/layout-nav/layout-nav.component.ts","../../../src/platform/core/layout/layout-nav-list/layout-nav-list.component.ts","../../../src/platform/core/layout/layout-nav-list/layout-nav-list.directives.ts","../../../src/platform/core/layout/layout-card-over/layout-card-over.component.ts","../../../src/platform/core/layout/layout-manage-list/layout-manage-list.component.ts","../../../src/platform/core/layout/layout-manage-list/layout-manage-list.directives.ts","../../../src/platform/core/layout/layout-footer/layout-footer.component.ts","../../../src/platform/core/layout/navigation-drawer/navigation-drawer.component.ts","../../../../src/platform/core/layout/layout.module.ts"],"sourcesContent":["import { Component, Input, ViewChild } from '@angular/core';\n\nimport { MatSidenav, MatDrawerToggleResult } from '@angular/material/sidenav';\n\nimport { ILayoutTogglable } from './layout-toggle.class';\n\n@Component({\n selector: 'td-layout',\n styleUrls: ['./layout.component.scss'],\n templateUrl: './layout.component.html',\n})\nexport class TdLayoutComponent implements ILayoutTogglable {\n @ViewChild(MatSidenav, { static: true }) sidenav: MatSidenav;\n\n /**\n * mode?: 'side', 'push' or 'over'\n *\n * The mode or styling of the sidenav.\n * Defaults to \"over\".\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() mode: 'side' | 'push' | 'over' = 'over';\n\n /**\n * opened?: boolean\n *\n * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.\n * Defaults to \"false\".\n *\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() opened: boolean = false;\n\n /**\n * sidenavWidth?: string\n *\n * Sets the \"width\" of the sidenav in either \"px\" or \"%\"\n * Defaults to \"320px\".\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() sidenavWidth: string = '320px';\n\n /**\n * containerAutosize?: boolean\n *\n * Sets \"autosize\" of the sidenav-container.\n * Defaults to \"false\".\n *\n * See documentation for more info and potential performance risks.\n *\n * https://github.com/angular/material2/blob/master/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav\n */\n @Input() containerAutosize: boolean = false;\n\n /**\n * Checks if `ESC` should close the sidenav\n * Should only close it for `push` and `over` modes\n */\n get disableClose(): boolean {\n return this.mode === 'side';\n }\n\n /**\n * Proxy toggle method to access sidenav from outside (from td-layout template).\n */\n public toggle(): Promise<MatDrawerToggleResult> {\n return this.sidenav.toggle(!this.sidenav.opened);\n }\n\n /**\n * Proxy open method to access sidenav from outside (from td-layout template).\n */\n public open(): Promise<MatDrawerToggleResult> {\n return this.sidenav.open();\n }\n\n /**\n * Proxy close method to access sidenav from outside (from td-layout template).\n */\n public close(): Promise<MatDrawerToggleResult> {\n return this.sidenav.close();\n }\n}\n","import {\n Input,\n HostBinding,\n HostListener,\n Renderer2,\n ElementRef,\n AfterViewInit,\n OnDestroy,\n Directive,\n} from '@angular/core';\n\nimport { MatSidenav, MatDrawerToggleResult } from '@angular/material/sidenav';\n\nimport { ICanDisable, mixinDisabled } from '@covalent/core/common';\n\nimport { Subscription } from 'rxjs';\n\nexport interface ILayoutTogglable {\n opened: boolean;\n sidenav: MatSidenav;\n toggle(): Promise<MatDrawerToggleResult>;\n open(): Promise<MatDrawerToggleResult>;\n close(): Promise<MatDrawerToggleResult>;\n}\n\nexport class LayoutToggleBase {}\n\n/* tslint:disable-next-line */\nexport const _TdLayoutToggleMixinBase = mixinDisabled(LayoutToggleBase);\n\n@Directive()\nexport abstract class BaseLayoutToggleDirective\n extends _TdLayoutToggleMixinBase\n implements AfterViewInit, OnDestroy, ICanDisable\n{\n private _toggleSubs: Subscription;\n\n private _initialized: boolean = false;\n private _hideWhenOpened: boolean = false;\n\n /**\n * hideWhenOpened?: boolean\n * When this is set to true, the host will be hidden when\n * the sidenav is opened.\n */\n @Input('hideWhenOpened')\n set hideWhenOpened(hideWhenOpened: boolean) {\n this._hideWhenOpened = hideWhenOpened;\n if (this._initialized) {\n this._toggleVisibility();\n }\n }\n\n constructor(protected _layout: ILayoutTogglable, private _renderer: Renderer2, private _elementRef: ElementRef) {\n super();\n // if layout has not been provided\n // show warn message\n if (!this._layout) {\n this._noLayoutMessage();\n }\n this._renderer.addClass(this._elementRef.nativeElement, 'td-layout-menu-button');\n }\n\n ngAfterViewInit(): void {\n this._initialized = true;\n if (this._layout && this._layout.sidenav) {\n this._toggleSubs = this._layout.sidenav._animationStarted.subscribe(() => {\n this._toggleVisibility();\n });\n }\n // execute toggleVisibility since the onOpenStart and onCloseStart\n // methods might not be executed always when the element is rendered\n this._toggleVisibility();\n }\n\n ngOnDestroy(): void {\n if (this._toggleSubs) {\n this._toggleSubs.unsubscribe();\n this._toggleSubs = undefined;\n }\n }\n\n /**\n * Listens to host click event to trigger the layout toggle\n */\n @HostListener('click', ['$event'])\n clickListener(event: Event): void {\n event.preventDefault();\n if (!this.disabled) {\n // if layout has been provided, try triggering the click on it\n // else show warn message\n if (this._layout && this._layout.open) {\n this.onClick();\n } else {\n this._noLayoutMessage();\n }\n }\n }\n\n abstract onClick(): void;\n\n private _toggleVisibility(): void {\n if (this._layout) {\n if (this._layout.sidenav.opened && this._hideWhenOpened) {\n this._renderer.setStyle(this._elementRef.nativeElement, 'display', 'none');\n } else {\n this._renderer.setStyle(this._elementRef.nativeElement, 'display', '');\n }\n }\n }\n\n private _noLayoutMessage(): void {\n /* tslint:disable-next-line */\n console.warn('Covalent: Parent layout not found for layout toggle directive');\n }\n}\n","import { Optional, Directive, Input, Renderer2, ElementRef, Inject, forwardRef } from '@angular/core';\nimport { TdLayoutComponent } from './layout.component';\nimport { BaseLayoutToggleDirective } from './layout-toggle.class';\n\n@Directive({\n selector: '[tdLayoutToggle]',\n})\nexport class TdLayoutToggleDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutToggle')\n set tdLayoutToggle(tdLayoutToggle: boolean) {\n this.disabled = !(<any>tdLayoutToggle === '' || tdLayoutToggle);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutComponent)) layout: TdLayoutComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.toggle();\n }\n}\n\n@Directive({\n selector: '[tdLayoutClose]',\n})\nexport class TdLayoutCloseDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutClose')\n set tdLayoutClose(tdLayoutClose: boolean) {\n this.disabled = !(<any>tdLayoutClose === '' || tdLayoutClose);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutComponent)) layout: TdLayoutComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.close();\n }\n}\n\n@Directive({\n selector: '[tdLayoutOpen]',\n})\nexport class TdLayoutOpenDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutOpen')\n set tdLayoutClose(tdLayoutOpen: boolean) {\n this.disabled = !(<any>tdLayoutOpen === '' || tdLayoutOpen);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutComponent)) layout: TdLayoutComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.open();\n }\n}\n","import { Component, Input, forwardRef, Optional, Inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TdLayoutComponent } from '../layout.component';\n\n@Component({\n selector: 'td-layout-nav',\n styleUrls: ['./layout-nav.component.scss'],\n templateUrl: './layout-nav.component.html',\n})\nexport class TdLayoutNavComponent {\n /**\n * toolbarTitle?: string\n *\n * Title set in toolbar.\n */\n @Input() toolbarTitle: string;\n\n /**\n * icon?: string\n *\n * icon name to be displayed before the title\n */\n @Input() icon: string;\n\n /**\n * logo?: string\n *\n * logo icon name to be displayed before the title.\n * If [icon] is set, then this will not be shown.\n */\n @Input() logo: string;\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * toolbar color option: primary | accent | warn.\n * If [color] is not set, primary is used.\n */\n @Input() color: 'accent' | 'primary' | 'warn' = 'primary';\n\n /**\n * navigationRoute?: string\n *\n * option to set the combined route for the icon, logo, and toolbarTitle.\n */\n @Input() navigationRoute: string;\n\n /**\n * Checks if router was injected.\n */\n get routerEnabled(): boolean {\n return !!this._router && !!this.navigationRoute;\n }\n\n constructor(@Optional() private _router: Router) {}\n\n handleNavigationClick(): void {\n if (this.routerEnabled) {\n this._router.navigateByUrl(this.navigationRoute);\n }\n }\n}\n","import { Component, Input, ViewChild, Optional } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { MatSidenav, MatDrawerToggleResult } from '@angular/material/sidenav';\n\nimport { ILayoutTogglable } from '../layout-toggle.class';\n\n@Component({\n selector: 'td-layout-nav-list',\n styleUrls: ['./layout-nav-list.component.scss'],\n templateUrl: './layout-nav-list.component.html',\n})\nexport class TdLayoutNavListComponent implements ILayoutTogglable {\n @ViewChild(MatSidenav, { static: true }) sidenav: MatSidenav;\n\n /**\n * toolbarTitle?: string\n *\n * Title set in toolbar.\n */\n @Input() toolbarTitle: string;\n\n /**\n * icon?: string\n * icon name to be displayed before the title\n */\n @Input() icon: string;\n\n /**\n * logo?: string\n *\n * logo icon name to be displayed before the title.\n * If [icon] is set, then this will not be shown.\n */\n @Input() logo: string;\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * toolbar color option: primary | accent | warn.\n * If [color] is not set, primary is used.\n */\n @Input() color: 'accent' | 'primary' | 'warn' = 'primary';\n\n /**\n * mode?: 'side', 'push' or 'over'\n *\n * The mode or styling of the sidenav.\n * Defaults to \"side\".\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() mode: 'side' | 'push' | 'over' = 'side';\n\n /**\n * opened?: boolean\n * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.\n * Defaults to \"true\".\n *\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() opened: boolean = true;\n\n /**\n * sidenavWidth?: string\n *\n * Sets the \"width\" of the sidenav in either \"px\" or \"%\"\n * Defaults to \"350px\".\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() sidenavWidth: string = '350px';\n\n /**\n * containerAutosize?: boolean\n *\n * Sets \"autosize\" of the sidenav-container.\n * Defaults to \"false\".\n *\n * See documentation for more info and potential performance risks.\n *\n * https://github.com/angular/material2/blob/master/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav\n */\n @Input() containerAutosize: boolean = false;\n\n /**\n * navigationRoute?: string\n *\n * option to set the combined route for the icon, logo, and toolbarTitle.\n */\n @Input() navigationRoute: string;\n\n /**\n * Checks if `ESC` should close the sidenav\n * Should only close it for `push` and `over` modes\n */\n get disableClose(): boolean {\n return this.mode === 'side';\n }\n\n /**\n * Checks if router was injected.\n */\n get routerEnabled(): boolean {\n return !!this._router && !!this.navigationRoute;\n }\n\n constructor(@Optional() private _router: Router) {}\n\n handleNavigationClick(): void {\n if (this.routerEnabled) {\n this._router.navigateByUrl(this.navigationRoute);\n }\n }\n\n /**\n * Proxy toggle method to access sidenav from outside (from td-layout template).\n */\n public toggle(): Promise<MatDrawerToggleResult> {\n return this.sidenav.toggle(!this.sidenav.opened);\n }\n\n /**\n * Proxy open method to access sidenav from outside (from td-layout template).\n */\n public open(): Promise<MatDrawerToggleResult> {\n return this.sidenav.open();\n }\n\n /**\n * Proxy close method to access sidenav from outside (from td-layout template).\n */\n public close(): Promise<MatDrawerToggleResult> {\n return this.sidenav.close();\n }\n}\n","import { Optional, Directive, Input, Renderer2, ElementRef, Inject, forwardRef } from '@angular/core';\nimport { TdLayoutNavListComponent } from './layout-nav-list.component';\nimport { BaseLayoutToggleDirective } from '../layout-toggle.class';\n\n@Directive({\n selector: '[tdLayoutNavListToggle]',\n inputs: ['hideWhenOpened'],\n})\nexport class TdLayoutNavListToggleDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutNavListToggle')\n set tdLayoutNavListToggle(tdLayoutNavListToggle: boolean) {\n this.disabled = !(<any>tdLayoutNavListToggle === '' || tdLayoutNavListToggle);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutNavListComponent)) layout: TdLayoutNavListComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.toggle();\n }\n}\n\n@Directive({\n selector: '[tdLayoutNavListClose]',\n inputs: ['hideWhenOpened'],\n})\nexport class TdLayoutNavListCloseDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutNavListClose')\n set tdLayoutNavListClose(tdLayoutNavListClose: boolean) {\n this.disabled = !(<any>tdLayoutNavListClose === '' || tdLayoutNavListClose);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutNavListComponent)) layout: TdLayoutNavListComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.close();\n }\n}\n\n@Directive({\n selector: '[tdLayoutNavListOpen]',\n inputs: ['hideWhenOpened'],\n})\nexport class TdLayoutNavListOpenDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutNavListOpen')\n set tdLayoutNavListOpen(tdLayoutNavListOpen: boolean) {\n this.disabled = !(<any>tdLayoutNavListOpen === '' || tdLayoutNavListOpen);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutNavListComponent)) layout: TdLayoutNavListComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.open();\n }\n}\n","import { Component } from '@angular/core';\nimport { Input } from '@angular/core';\n\n@Component({\n selector: 'td-layout-card-over',\n styleUrls: ['./layout-card-over.component.scss'],\n templateUrl: './layout-card-over.component.html',\n})\nexport class TdLayoutCardOverComponent {\n /**\n * cardTitle?: string\n *\n * Title set in card.\n */\n @Input() cardTitle: string;\n\n /**\n * cardSubtitle?: string\n *\n * Subtitle set in card.\n */\n @Input() cardSubtitle: string;\n\n /**\n * cardWidth?: string\n *\n * Card flex width in %.\n * Defaults to 70%.\n */\n @Input() cardWidth: number = 70;\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * toolbar color option: primary | accent | warn.\n * If [color] is not set, primary is used.\n */\n @Input() color: 'accent' | 'primary' | 'warn' = 'primary';\n}\n","import { Component, Directive, Input, ViewChild } from '@angular/core';\n\nimport { MatSidenav, MatDrawerToggleResult } from '@angular/material/sidenav';\n\nimport { ILayoutTogglable } from '../layout-toggle.class';\n\n@Component({\n selector: 'td-layout-manage-list',\n styleUrls: ['./layout-manage-list.component.scss'],\n templateUrl: './layout-manage-list.component.html',\n})\nexport class TdLayoutManageListComponent implements ILayoutTogglable {\n @ViewChild(MatSidenav, { static: true }) sidenav: MatSidenav;\n\n /**\n * mode?: 'side', 'push' or 'over'\n *\n * The mode or styling of the sidenav.\n * Defaults to \"side\".\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() mode: 'side' | 'push' | 'over' = 'side';\n\n /**\n * opened?: boolean\n *\n * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.\n * Defaults to \"true\".\n *\n * See \"MatSidenav\" documentation for more info.\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() opened: boolean = true;\n\n /**\n * sidenavWidth?: string\n *\n * Sets the \"width\" of the sidenav in either \"px\" or \"%\"\n * Defaults to \"257px\".\n *\n * https://github.com/angular/material2/tree/master/src/lib/sidenav\n */\n @Input() sidenavWidth: string = '257px';\n\n /**\n * containerAutosize?: boolean\n *\n * Sets \"autosize\" of the sidenav-container.\n * Defaults to \"false\".\n *\n * See documentation for more info and potential performance risks.\n *\n * https://github.com/angular/material2/blob/master/src/lib/sidenav/sidenav.md#resizing-an-open-sidenav\n */\n @Input() containerAutosize: boolean = false;\n\n /**\n * Checks if `ESC` should close the sidenav\n * Should only close it for `push` and `over` modes\n */\n get disableClose(): boolean {\n return this.mode === 'side';\n }\n\n /**\n * Proxy toggle method to access sidenav from outside (from td-layout template).\n */\n public toggle(): Promise<MatDrawerToggleResult> {\n return this.sidenav.toggle(!this.sidenav.opened);\n }\n\n /**\n * Proxy open method to access sidenav from outside (from td-layout template).\n */\n public open(): Promise<MatDrawerToggleResult> {\n return this.sidenav.open();\n }\n\n /**\n * Proxy close method to access sidenav from outside (from td-layout template).\n */\n public close(): Promise<MatDrawerToggleResult> {\n return this.sidenav.close();\n }\n}\n","import { Optional, Directive, Input, Renderer2, ElementRef, Inject, forwardRef } from '@angular/core';\nimport { TdLayoutManageListComponent } from './layout-manage-list.component';\nimport { BaseLayoutToggleDirective } from '../layout-toggle.class';\n\n@Directive({\n selector: '[tdLayoutManageListToggle]',\n inputs: ['hideWhenOpened'],\n})\nexport class TdLayoutManageListToggleDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutManageListToggle')\n set tdLayoutManageListToggle(tdLayoutManageListToggle: boolean) {\n this.disabled = !(<any>tdLayoutManageListToggle === '' || tdLayoutManageListToggle);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutManageListComponent)) layout: TdLayoutManageListComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.toggle();\n }\n}\n\n@Directive({\n selector: '[tdLayoutManageListClose]',\n inputs: ['hideWhenOpened'],\n})\nexport class TdLayoutManageListCloseDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutManageListClose')\n set tdLayoutManageListClose(tdLayoutManageListClose: boolean) {\n this.disabled = !(<any>tdLayoutManageListClose === '' || tdLayoutManageListClose);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutManageListComponent)) layout: TdLayoutManageListComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.close();\n }\n}\n\n@Directive({\n selector: '[tdLayoutManageListOpen]',\n inputs: ['hideWhenOpened'],\n})\nexport class TdLayoutManageListOpenDirective extends BaseLayoutToggleDirective {\n @Input('tdLayoutManageListOpen')\n set tdLayoutManageListOpen(tdLayoutManageListOpen: boolean) {\n this.disabled = !(<any>tdLayoutManageListOpen === '' || tdLayoutManageListOpen);\n }\n\n constructor(\n @Optional() @Inject(forwardRef(() => TdLayoutManageListComponent)) layout: TdLayoutManageListComponent,\n renderer: Renderer2,\n elementRef: ElementRef,\n ) {\n super(layout, renderer, elementRef);\n }\n\n onClick(): void {\n this._layout.open();\n }\n}\n","import { Component, Input, Renderer2, ElementRef } from '@angular/core';\n\n@Component({\n /* tslint:disable-next-line */\n selector: 'td-layout-footer,td-layout-footer-inner',\n styleUrls: ['./layout-footer.component.scss'],\n templateUrl: './layout-footer.component.html',\n})\nexport class TdLayoutFooterComponent {\n private _color: 'primary' | 'accent' | 'warn';\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * Optional color option: primary | accent | warn.\n */\n @Input('color')\n set color(color: 'primary' | 'accent' | 'warn') {\n if (color) {\n this._renderer.removeClass(this._elementRef.nativeElement, 'mat-' + this._color);\n this._color = color;\n this._renderer.addClass(this._elementRef.nativeElement, 'mat-' + this._color);\n }\n }\n get color(): 'primary' | 'accent' | 'warn' {\n return this._color;\n }\n\n constructor(private _renderer: Renderer2, private _elementRef: ElementRef) {\n this._renderer.addClass(this._elementRef.nativeElement, 'td-layout-footer');\n }\n}\n","import {\n Component,\n Directive,\n Input,\n ContentChildren,\n OnInit,\n OnDestroy,\n forwardRef,\n Inject,\n QueryList,\n SecurityContext,\n Optional,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { SafeResourceUrl, SafeStyle, DomSanitizer } from '@angular/platform-browser';\nimport { MatDrawerToggleResult } from '@angular/material/sidenav';\n\nimport { Subscription } from 'rxjs';\n\nimport { TdLayoutComponent } from '../layout.component';\n\nimport { tdCollapseAnimation } from '@covalent/core/common';\n\n@Directive({\n selector: '[td-navigation-drawer-menu]',\n})\nexport class TdNavigationDrawerMenuDirective {}\n\n@Directive({\n selector: '[td-navigation-drawer-toolbar]',\n})\nexport class TdNavigationDrawerToolbarDirective {}\n\n@Component({\n selector: 'td-navigation-drawer',\n styleUrls: ['./navigation-drawer.component.scss'],\n templateUrl: './navigation-drawer.component.html',\n animations: [tdCollapseAnimation],\n})\nexport class TdNavigationDrawerComponent implements OnInit, OnDestroy {\n private _closeSubscription: Subscription;\n private _menuToggled: boolean = false;\n private _backgroundImage: SafeStyle;\n\n get menuToggled(): boolean {\n return this._menuToggled;\n }\n\n @ContentChildren(TdNavigationDrawerMenuDirective, { descendants: true })\n _drawerMenu: QueryList<TdNavigationDrawerMenuDirective>;\n\n @ContentChildren(TdNavigationDrawerToolbarDirective, { descendants: true })\n _toolbar: QueryList<TdNavigationDrawerToolbarDirective>;\n\n /**\n * Checks if there is a [TdNavigationDrawerMenuDirective] has content.\n */\n get isMenuAvailable(): boolean {\n return this._drawerMenu ? this._drawerMenu.length > 0 : false;\n }\n\n /**\n * Checks if there is a [TdNavigationDrawerToolbarDirective] has content.\n */\n get isCustomToolbar(): boolean {\n return this._toolbar ? this._toolbar.length > 0 : false;\n }\n\n /**\n * Checks if there is a background image for the toolbar.\n */\n get isBackgroundAvailable(): boolean {\n return !!this._backgroundImage;\n }\n\n /**\n * sidenavTitle?: string\n * Title set in sideNav.\n */\n @Input() sidenavTitle: string;\n\n /**\n * icon?: string\n *\n * icon name to be displayed before the title\n */\n @Input() icon: string;\n\n /**\n * logo?: string\n *\n * logo icon name to be displayed before the title.\n * If [icon] is set, then this will not be shown.\n */\n @Input() logo: string;\n\n /**\n * avatar?: string\n *\n * avatar url to be displayed before the title\n * If [icon] or [logo] are set, then this will not be shown.\n */\n @Input() avatar: string;\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n *\n * toolbar color option: primary | accent | warn.\n * If [color] is not set, default is used.\n */\n @Input() color: 'accent' | 'primary' | 'warn';\n\n /**\n * navigationRoute?: string\n *\n * option to set the combined route for the icon, logo, and sidenavTitle.\n */\n @Input() navigationRoute: string;\n\n /**\n * backgroundUrl?: SafeResourceUrl\n *\n * image to be displayed as the background of the toolbar.\n * URL used will be sanitized, but it should be always from a trusted source to avoid XSS.\n */\n @Input('backgroundUrl')\n // TODO Angular complains with warnings if this is type [SafeResourceUrl].. so we will make it <any> until its fixed.\n // https://github.com/webpack/webpack/issues/2977\n set backgroundUrl(backgroundUrl: any) {\n if (backgroundUrl) {\n const sanitizedUrl: string = this._sanitize.sanitize(SecurityContext.RESOURCE_URL, backgroundUrl);\n this._backgroundImage = this._sanitize.sanitize(SecurityContext.STYLE, 'url(' + sanitizedUrl + ')');\n }\n }\n get backgroundImage(): SafeStyle {\n return this._backgroundImage;\n }\n\n /**\n * name?: string\n *\n * string to be displayed as part of the navigation drawer sublabel.\n * if [email] is not set, then [name] will be the toggle menu text.\n */\n @Input() name: string;\n\n /**\n * email?: string\n *\n * string to be displayed as part of the navigation drawer sublabel in the [toggle] menu text.\n * if [email] and [name] are not set, then the toggle menu is not rendered.\n */\n @Input() email: string;\n\n /**\n * Checks if router was injected.\n */\n get routerEnabled(): boolean {\n return !!this._router && !!this.navigationRoute;\n }\n\n constructor(\n @Inject(forwardRef(() => TdLayoutComponent)) private _layout: TdLayoutComponent,\n @Optional() private _router: Router,\n private _sanitize: DomSanitizer,\n ) {}\n\n ngOnInit(): void {\n this._closeSubscription = this._layout.sidenav.openedChange.subscribe((opened: boolean) => {\n if (!opened) {\n this._menuToggled = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this._closeSubscription) {\n this._closeSubscription.unsubscribe();\n this._closeSubscription = undefined;\n }\n }\n\n toggleMenu(): void {\n if (this.isMenuAvailable) {\n this._menuToggled = !this._menuToggled;\n }\n }\n\n handleNavigationClick(): void {\n if (this.routerEnabled) {\n this._router.navigateByUrl(this.navigationRoute);\n this.close();\n }\n }\n\n /**\n * Proxy toggle method to access sidenav from outside (from td-layout template).\n */\n public toggle(): Promise<MatDrawerToggleResult> {\n return this._layout.toggle();\n }\n\n /**\n * Proxy open method to access sidenav from outside (from td-layout template).\n */\n public open(): Promise<MatDrawerToggleResult> {\n return this._layout.open();\n }\n\n /**\n * Proxy close method to access sidenav from outside (from td-layout template).\n */\n public close(): Promise<MatDrawerToggleResult> {\n return this._layout.close();\n }\n}\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDividerModule } from '@angular/material/divider';\n\nimport { TdLayoutComponent } from './layout.component';\nimport { TdLayoutToggleDirective, TdLayoutCloseDirective, TdLayoutOpenDirective } from './layout.directives';\nimport { TdLayoutNavComponent } from './layout-nav/layout-nav.component';\nimport { TdLayoutNavListComponent } from './layout-nav-list/layout-nav-list.component';\nimport {\n TdLayoutNavListToggleDirective,\n TdLayoutNavListCloseDirective,\n TdLayoutNavListOpenDirective,\n} from './layout-nav-list/layout-nav-list.directives';\nimport { TdLayoutCardOverComponent } from './layout-card-over/layout-card-over.component';\nimport { TdLayoutManageListComponent } from './layout-manage-list/layout-manage-list.component';\nimport {\n TdLayoutManageListToggleDirective,\n TdLayoutManageListCloseDirective,\n TdLayoutManageListOpenDirective,\n} from './layout-manage-list/layout-manage-list.directives';\nimport { TdLayoutFooterComponent } from './layout-footer/layout-footer.component';\n\nimport {\n TdNavigationDrawerComponent,\n TdNavigationDrawerMenuDirective,\n TdNavigationDrawerToolbarDirective,\n} from './navigation-drawer/navigation-drawer.component';\n\nconst TD_LAYOUTS: Type<any>[] = [\n TdLayoutComponent,\n TdLayoutToggleDirective,\n TdLayoutCloseDirective,\n TdLayoutOpenDirective,\n\n TdLayoutNavComponent,\n\n TdLayoutNavListComponent,\n TdLayoutNavListToggleDirective,\n TdLayoutNavListCloseDirective,\n TdLayoutNavListOpenDirective,\n\n TdLayoutCardOverComponent,\n\n TdLayoutManageListComponent,\n TdLayoutManageListToggleDirective,\n TdLayoutManageListCloseDirective,\n TdLayoutManageListOpenDirective,\n\n TdLayoutFooterComponent,\n\n TdNavigationDrawerComponent,\n TdNavigationDrawerMenuDirective,\n TdNavigationDrawerToolbarDirective,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ScrollingModule,\n MatSidenavModule,\n MatToolbarModule,\n MatButtonModule,\n MatIconModule,\n MatCardModule,\n MatDividerModule,\n ],\n declarations: [TD_LAYOUTS],\n exports: [TD_LAYOUTS],\n})\nexport class CovalentLayoutModule {}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-core-loading.js","sources":["../../../../src/platform/core/loading/loading.component.ts","../../../../src/platform/core/loading/services/loading.factory.ts","../../../../src/platform/core/loading/services/loading.service.ts","../../../../src/platform/core/loading/directives/loading.directive.ts","../../../../src/platform/core/loading/loading.module.ts"],"sourcesContent":["import { Component, ChangeDetectorRef, ElementRef, DoCheck } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nexport enum LoadingType {\n Circular = 'circular',\n Linear = 'linear',\n}\n\nexport enum LoadingMode {\n Determinate = 'determinate',\n Indeterminate = 'indeterminate',\n}\n\nexport enum LoadingStrategy {\n Overlay = 'overlay',\n Replace = 'replace',\n}\n\nexport enum LoadingStyle {\n FullScreen = 'fullscreen',\n Overlay = 'overlay',\n None = 'none',\n}\n\nimport { tdFadeInOutAnimation } from '@covalent/core/common';\n\nexport const TD_CIRCLE_DIAMETER: number = 100;\n\n@Component({\n selector: 'td-loading',\n styleUrls: ['./loading.component.scss'],\n templateUrl: './loading.component.html',\n animations: [tdFadeInOutAnimation],\n})\nexport class TdLoadingComponent implements DoCheck {\n private _mode: LoadingMode = LoadingMode.Indeterminate;\n private _defaultMode: LoadingMode = LoadingMode.Indeterminate;\n private _value: number = 0;\n private _circleDiameter: number = TD_CIRCLE_DIAMETER;\n\n /**\n * Flag for animation\n */\n animation: boolean = false;\n\n /**\n * Content injected into loading component.\n */\n content: TemplatePortal<any>;\n\n /**\n * Sets mode of [TdLoadingComponent] to LoadingMode.Determinate or LoadingMode.Indeterminate\n */\n set mode(mode: LoadingMode) {\n this._defaultMode = mode;\n }\n get mode(): LoadingMode {\n return this._mode;\n }\n\n /**\n * Sets value of [TdLoadingComponent] if mode is 'LoadingMode.Determinate'\n */\n set value(value: number) {\n this._value = value;\n // Check for changes for `OnPush` change detection\n this._changeDetectorRef.markForCheck();\n }\n get value(): number {\n return this._value;\n }\n\n style: LoadingStyle = LoadingStyle.None;\n\n /**\n * height: number\n * Sets height of [TdLoadingComponent].\n */\n height: number;\n\n /**\n * type: LoadingType\n * Sets type of [TdLoadingComponent] rendered.\n */\n type: LoadingType = LoadingType.Circular;\n\n /**\n * color: primary' | 'accent' | 'warn'\n * Sets theme color of [TdLoadingComponent] rendered.\n */\n color: 'primary' | 'accent' | 'warn' = 'primary';\n\n constructor(private _elementRef: ElementRef, private _changeDetectorRef: ChangeDetectorRef) {}\n\n ngDoCheck(): void {\n // When overlay is used and the host width has a value greater than 1px\n // set the circle diameter when possible incase the loading component was rendered in a hidden state\n if (this.isOverlay() && this._hostHeight() > 1 && this.animation) {\n this._setCircleDiameter();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n getHeight(): string {\n // Ignore height if style is `overlay` or `fullscreen`.\n // Add height if child elements have a height and style is `none`, else return default height.\n if (this.isOverlay() || this.isFullScreen()) {\n return undefined;\n } else {\n return this.height ? `${this.height}px` : '150px';\n }\n }\n\n getCircleDiameter(): number {\n return this._circleDiameter;\n }\n\n getCircleStrokeWidth(): number {\n // we calculate the stroke width by setting it as 10% of its diameter\n const strokeWidth: number = this.getCircleDiameter() / 10;\n return Math.abs(strokeWidth);\n }\n\n isCircular(): boolean {\n return this.type === LoadingType.Circular;\n }\n\n isLinear(): boolean {\n return this.type === LoadingType.Linear;\n }\n\n isFullScreen(): boolean {\n return this.style === LoadingStyle.FullScreen;\n }\n\n isOverlay(): boolean {\n return this.style === LoadingStyle.Overlay;\n }\n\n /**\n * Starts in animation and returns an observable for completition event.\n */\n show(): void {\n /* need to switch back to the selected mode, so we have saved it in another variable\n * and then recover it. (issue with protractor)\n */\n this._mode = this._defaultMode;\n // Set values before the animations starts\n this._setCircleDiameter();\n // Check for changes for `OnPush` change detection\n this.animation = true;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Starts out animation and returns an observable for completition event.\n */\n hide(): void {\n this.animation = false;\n /* need to switch back and forth from determinate/indeterminate so the setInterval()\n * inside mat-progress-spinner stops and protractor doesnt timeout waiting to sync.\n */\n this._mode = LoadingMode.Determinate;\n // Check for changes for `OnPush` change detection\n /* little hack to reset the loader value and animation before removing it from DOM\n * else, the loader will appear with prev value when its registered again\n * and will do an animation going prev value to 0.\n */\n this.value = 0;\n // Check for changes for `OnPush` change detection\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Calculate the proper diameter for the circle and set it\n */\n private _setCircleDiameter(): void {\n // we set a default diameter of 100 since this is the default in material\n let diameter: number = TD_CIRCLE_DIAMETER;\n // if height is provided, then we take that as diameter\n if (this.height) {\n diameter = this.height;\n // else if its not provided, then we take the host height\n } else if (this.height === undefined) {\n diameter = this._hostHeight();\n }\n // if the diameter is over TD_CIRCLE_DIAMETER, we set TD_CIRCLE_DIAMETER\n if (!!diameter && diameter <= TD_CIRCLE_DIAMETER) {\n this._circleDiameter = Math.floor(diameter);\n } else {\n this._circleDiameter = TD_CIRCLE_DIAMETER;\n }\n }\n\n /**\n * Returns the host height of the loading component\n */\n private _hostHeight(): number {\n if (<HTMLElement>this._elementRef.nativeElement) {\n return (<HTMLElement>this._elementRef.nativeElement).getBoundingClientRect().height;\n }\n return 0;\n }\n}\n","import {\n Injectable,\n ComponentFactoryResolver,\n ChangeDetectorRef,\n Provider,\n SkipSelf,\n Optional,\n EmbeddedViewRef,\n} from '@angular/core';\nimport { Injector, ComponentRef, ViewContainerRef, TemplateRef } from '@angular/core';\nimport { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\n\nimport { Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nimport { TdLoadingContext } from '../directives/loading.directive';\nimport { TdLoadingComponent, LoadingStyle } from '../loading.component';\nimport { ITdLoadingConfig } from './loading.service';\n\nexport interface IInternalLoadingOptions extends ITdLoadingConfig {\n height?: number;\n style?: LoadingStyle;\n}\n\nexport interface ILoadingRef {\n observable: Observable<any>;\n componentRef: ComponentRef<any>;\n subject?: Subject<any>;\n times?: number;\n}\n\n/**\n * NOTE: @internal usage only.\n */\n@Injectable()\nexport class TdLoadingFactory {\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _overlay: Overlay,\n private _injector: Injector,\n ) {}\n\n /**\n * Uses material `Overlay` services to create a DOM element and attach the loading component\n * into it. Leveraging the state and configuration from it.\n *\n * Saves a reference in context to be called when registering/resolving the loading element.\n */\n public createFullScreenComponent(options: ITdLoadingConfig): ILoadingRef {\n (<IInternalLoadingOptions>options).height = undefined;\n (<IInternalLoadingOptions>options).style = LoadingStyle.FullScreen;\n const loadingRef: ILoadingRef = this._initializeContext();\n let loading: boolean = false;\n let overlayRef: OverlayRef;\n loadingRef.observable.pipe(distinctUntilChanged()).subscribe((registered: number) => {\n if (registered > 0 && !loading) {\n loading = true;\n overlayRef = this._createOverlay();\n loadingRef.componentRef = overlayRef.attach(new ComponentPortal(TdLoadingComponent));\n this._mapOptions(options, loadingRef.componentRef.instance);\n loadingRef.componentRef.instance.show();\n loadingRef.componentRef.changeDetectorRef.detectChanges();\n } else if (registered <= 0 && loading) {\n loading = false;\n loadingRef.componentRef.instance.hide();\n loadingRef.componentRef.destroy();\n overlayRef.detach();\n overlayRef.dispose();\n }\n });\n return loadingRef;\n }\n\n /**\n * Creates a loading component dynamically and attaches it into the given viewContainerRef.\n * Leverages TemplatePortals from material to inject the template inside of it so it fits\n * perfectly when overlaying it.\n *\n * Saves a reference in context to be called when registering/resolving the loading element.\n */\n public createOverlayComponent(\n options: ITdLoadingConfig,\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef<object>,\n ): ILoadingRef {\n (<IInternalLoadingOptions>options).height = undefined;\n (<IInternalLoadingOptions>options).style = LoadingStyle.Overlay;\n const loadingRef: ILoadingRef = this._createComponent(options);\n let loading: boolean = false;\n loadingRef.componentRef.instance.content = new TemplatePortal(templateRef, viewContainerRef);\n viewContainerRef.clear();\n viewContainerRef.insert(loadingRef.componentRef.hostView, 0);\n loadingRef.observable.pipe(distinctUntilChanged()).subscribe((registered: number) => {\n if (registered > 0 && !loading) {\n loading = true;\n loadingRef.componentRef.instance.show();\n } else if (registered <= 0 && loading) {\n loading = false;\n loadingRef.componentRef.instance.hide();\n }\n });\n return loadingRef;\n }\n\n /**\n * Creates a loading component dynamically and attaches it into the given viewContainerRef.\n * Replaces the template with the loading component depending if it was registered or resolved.\n *\n * Saves a reference in context to be called when registering/resolving the loading element.\n */\n public createReplaceComponent(\n options: ITdLoadingConfig,\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef<object>,\n context: TdLoadingContext,\n ): ILoadingRef {\n const nativeElement: HTMLElement = <HTMLElement>templateRef.elementRef.nativeElement;\n (<IInternalLoadingOptions>options).height = nativeElement.nextElementSibling\n ? nativeElement.nextElementSibling.scrollHeight\n : undefined;\n (<IInternalLoadingOptions>options).style = LoadingStyle.None;\n const loadingRef: ILoadingRef = this._createComponent(options);\n let loading: boolean = false;\n // passing context so when the template is attached, we can keep the reference of the variables\n const contentRef: EmbeddedViewRef<object> = viewContainerRef.createEmbeddedView(templateRef, context);\n loadingRef.observable.pipe(distinctUntilChanged()).subscribe((registered: number) => {\n if (registered > 0 && !loading) {\n loading = true;\n // detach the content and attach the loader if loader is there\n const index: number = viewContainerRef.indexOf(loadingRef.componentRef.hostView);\n if (index < 0) {\n viewContainerRef.detach(viewContainerRef.indexOf(contentRef));\n viewContainerRef.insert(loadingRef.componentRef.hostView, 0);\n }\n loadingRef.componentRef.instance.show();\n } else if (registered <= 0 && loading) {\n loading = false;\n loadingRef.componentRef.instance.hide();\n // detach loader and attach the content if content is there\n const index: number = viewContainerRef.indexOf(contentRef);\n if (index < 0) {\n viewContainerRef.detach(viewContainerRef.indexOf(loadingRef.componentRef.hostView));\n viewContainerRef.insert(contentRef, 0);\n }\n /**\n * Need to call \"markForCheck\" and \"detectChanges\" on attached template, so its detected by parent component when attached\n * with \"OnPush\" change detection\n */\n contentRef.detectChanges();\n contentRef.markForCheck();\n }\n });\n return loadingRef;\n }\n\n /**\n * Creates a fullscreen overlay for the loading usage.\n */\n private _createOverlay(): OverlayRef {\n const state: OverlayConfig = new OverlayConfig();\n state.hasBackdrop = false;\n state.positionStrategy = this._overlay.position().global().centerHorizontally().centerVertically();\n return this._overlay.create(state);\n }\n\n /**\n * Creates a generic component dynamically waiting to be attached to a viewContainerRef.\n */\n private _createComponent(options: IInternalLoadingOptions): ILoadingRef {\n const compRef: ILoadingRef = this._initializeContext();\n compRef.componentRef = this._componentFactoryResolver\n .resolveComponentFactory(TdLoadingComponent)\n .create(this._injector);\n this._mapOptions(options, compRef.componentRef.instance);\n return compRef;\n }\n\n /**\n * Initialize context for loading component.\n */\n private _initializeContext(): ILoadingRef {\n const subject: Subject<any> = new Subject<any>();\n return {\n observable: subject.asObservable(),\n subject,\n componentRef: undefined,\n times: 0,\n };\n }\n\n /**\n * Maps configuration to the loading component instance.\n */\n private _mapOptions(options: IInternalLoadingOptions, instance: TdLoadingComponent): void {\n instance.style = options.style;\n if (options.type !== undefined) {\n instance.type = options.type;\n }\n if (options.height !== undefined) {\n instance.height = options.height;\n }\n if (options.mode !== undefined) {\n instance.mode = options.mode;\n }\n if (options.color !== undefined) {\n instance.color = options.color;\n }\n }\n}\n\nexport function LOADING_FACTORY_PROVIDER_FACTORY(\n parent: TdLoadingFactory,\n componentFactoryResolver: ComponentFactoryResolver,\n overlay: Overlay,\n injector: Injector,\n): TdLoadingFactory {\n return parent || new TdLoadingFactory(componentFactoryResolver, overlay, injector);\n}\n\nexport const LOADING_FACTORY_PROVIDER: Provider = {\n // If there is already a service available, use that. Otherwise, provide a new one.\n provide: TdLoadingFactory,\n deps: [[new Optional(), new SkipSelf(), TdLoadingFactory], ComponentFactoryResolver, Overlay, Injector],\n useFactory: LOADING_FACTORY_PROVIDER_FACTORY,\n};\n","import { Injectable, Provider, SkipSelf, Optional } from '@angular/core';\nimport { ViewContainerRef, TemplateRef } from '@angular/core';\nimport { Observable, Subject, Subscription } from 'rxjs';\n\nimport { TdLoadingContext } from '../directives/loading.directive';\nimport { TdLoadingComponent, LoadingMode, LoadingStrategy, LoadingType } from '../loading.component';\nimport { TdLoadingFactory, ILoadingRef } from './loading.factory';\n\nexport interface ITdLoadingConfig {\n name: string;\n type?: LoadingType;\n mode?: LoadingMode;\n color?: 'primary' | 'accent' | 'warn';\n}\n\nexport class TdLoadingConfig implements ITdLoadingConfig {\n name: string;\n type?: LoadingType;\n mode?: LoadingMode;\n color?: 'primary' | 'accent' | 'warn';\n\n constructor(config: ITdLoadingConfig) {\n this.name = config.name;\n if (!this.name) {\n throw Error('Name is required for [TdLoading] configuration.');\n }\n this.mode = config.mode ? config.mode : LoadingMode.Indeterminate;\n this.type = config.type ? config.type : LoadingType.Circular;\n this.color = config.color ? config.color : 'primary';\n }\n}\n\nexport interface ITdLoadingDirectiveConfig extends ITdLoadingConfig {\n strategy?: LoadingStrategy;\n}\n\nexport class TdLoadingDirectiveConfig extends TdLoadingConfig implements ITdLoadingDirectiveConfig {\n name: string;\n type: LoadingType;\n mode: LoadingMode;\n strategy: LoadingStrategy;\n\n constructor(config: ITdLoadingDirectiveConfig) {\n super(config);\n this.strategy = config.strategy ? config.strategy : LoadingStrategy.Replace;\n }\n}\n\n@Injectable()\nexport class TdLoadingService {\n private _context: { [key: string]: ILoadingRef } = {};\n private _timeouts: { [key: string]: any } = {};\n\n constructor(private _loadingFactory: TdLoadingFactory) {\n this.create({\n name: 'td-loading-main',\n });\n }\n\n /**\n * params:\n * - config: ILoadingDirectiveConfig\n * - viewContainerRef: ViewContainerRef\n * - templateRef: TemplateRef<Object>\n *\n * Creates an replace loading mask and attaches it to the viewContainerRef.\n * Replaces the templateRef with the mask when a request is registered on it.\n *\n * NOTE: @internal usage only.\n */\n createComponent(\n config: ITdLoadingDirectiveConfig,\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef<object>,\n context: TdLoadingContext,\n ): ILoadingRef {\n const directiveConfig: TdLoadingDirectiveConfig = new TdLoadingDirectiveConfig(config);\n if (this._context[directiveConfig.name]) {\n throw Error(`Name duplication: [TdLoading] directive has a name conflict with ${directiveConfig.name}.`);\n }\n if (directiveConfig.strategy === LoadingStrategy.Overlay) {\n this._context[directiveConfig.name] = this._loadingFactory.createOverlayComponent(\n directiveConfig,\n viewContainerRef,\n templateRef,\n );\n } else {\n this._context[directiveConfig.name] = this._loadingFactory.createReplaceComponent(\n directiveConfig,\n viewContainerRef,\n templateRef,\n context,\n );\n }\n return this._context[directiveConfig.name];\n }\n\n /**\n * params:\n * - config: ITdLoadingConfig\n *\n * Creates a fullscreen loading mask and attaches it to the DOM with the given configuration.\n * Only displayed when the mask has a request registered on it.\n */\n public create(config: ITdLoadingConfig): void {\n const fullscreenConfig: TdLoadingConfig = new TdLoadingConfig(config);\n this.removeComponent(fullscreenConfig.name);\n this._context[fullscreenConfig.name] = this._loadingFactory.createFullScreenComponent(fullscreenConfig);\n }\n\n /**\n * params:\n * - name: string\n *\n * Removes `loading` component from service context.\n */\n public removeComponent(name: string): void {\n if (this._context[name]) {\n this._context[name].subject.unsubscribe();\n if (this._context[name].componentRef) {\n this._context[name].componentRef.destroy();\n }\n this._context[name] = undefined;\n delete this._context[name];\n }\n }\n\n /**\n * params:\n * - name: string\n * - registers?: number\n * returns: true if successful\n *\n * Resolves a request for the loading mask referenced by the name parameter.\n * Can optionally pass registers argument to set a number of register calls.\n *\n * If no paramemeters are used, then default main mask will be used.\n *\n * e.g. loadingService.register()\n */\n public register(name: string = 'td-loading-main', registers: number = 1): boolean {\n // try registering into the service if the loading component has been instanciated or if it exists.\n if (this._context[name]) {\n registers = registers < 1 ? 1 : registers;\n this._context[name].times += registers;\n this._context[name].subject.next(this._context[name].times);\n return true;\n } else {\n // if it doesnt exist, set a timeout so its registered after change detection happens\n // this in case \"register\" occured on the `ngOnInit` lifehook cycle.\n if (!this._timeouts[name]) {\n this._timeouts[name] = setTimeout(() => {\n this.register(name, registers);\n });\n } else {\n // if it timeout occured and still doesnt exist, it means the tiemout wasnt needed so we clear it.\n this._clearTimeout(name);\n }\n }\n return false;\n }\n\n /**\n * params:\n * - name: string\n * - resolves?: number\n * returns: true if successful\n *\n * Resolves a request for the loading mask referenced by the name parameter.\n * Can optionally pass resolves argument to set a number of resolve calls.\n *\n * If no paramemeters are used, then default main mask will be used.\n *\n * e.g. loadingService.resolve()\n */\n public resolve(name: string = 'td-loading-main', resolves: number = 1): boolean {\n // clear timeout if the loading component is \"resolved\" before its \"registered\"\n this._clearTimeout(name);\n if (this._context[name]) {\n resolves = resolves < 1 ? 1 : resolves;\n if (this._context[name].times > 0) {\n let times: number = this._context[name].times;\n times -= resolves;\n this._context[name].times = times < 0 ? 0 : times;\n }\n this._context[name].subject.next(this._context[name].times);\n return true;\n }\n return false;\n }\n\n /**\n * params:\n * - name: string\n * returns: true if successful\n *\n * Resolves all request for the loading mask referenced by the name parameter.\n *\n * If no paramemeters are used, then default main mask will be used.\n *\n * e.g. loadingService.resolveAll()\n */\n public resolveAll(name: string = 'td-loading-main'): boolean {\n // clear timeout if the loading component is \"resolved\" before its \"registered\"\n this._clearTimeout(name);\n if (this._context[name]) {\n this._context[name].times = 0;\n this._context[name].subject.next(this._context[name].times);\n return true;\n }\n return false;\n }\n\n /**\n * params:\n * - name: string\n * - value: number\n * returns: true if successful\n *\n * Set value on a loading mask referenced by the name parameter.\n * Usage only available if its mode is 'determinate' and if loading is showing.\n */\n public setValue(name: string, value: number): boolean {\n if (this._context[name]) {\n const instance: TdLoadingComponent = this._context[name].componentRef.instance;\n if (instance.mode === LoadingMode.Determinate && instance.animation) {\n instance.value = value;\n return true;\n }\n }\n return false;\n }\n\n /**\n * Clears timeout linked to the name.\n * @param name Name of the loading component to be cleared\n */\n private _clearTimeout(name: string): void {\n clearTimeout(this._timeouts[name]);\n delete this._timeouts[name];\n }\n}\n\nexport function LOADING_PROVIDER_FACTORY(parent: TdLoadingService, loadingFactory: TdLoadingFactory): TdLoadingService {\n return parent || new TdLoadingService(loadingFactory);\n}\n\nexport const LOADING_PROVIDER: Provider = {\n // If there is already a service available, use that. Otherwise, provide a new one.\n provide: TdLoadingService,\n deps: [[new Optional(), new SkipSelf(), TdLoadingService], TdLoadingFactory],\n useFactory: LOADING_PROVIDER_FACTORY,\n};\n","import { Directive, Input, OnInit, OnDestroy } from '@angular/core';\nimport { ViewContainerRef, TemplateRef } from '@angular/core';\n\nimport { LoadingType, LoadingMode, LoadingStrategy, TdLoadingComponent } from '../loading.component';\nimport { TdLoadingService } from '../services/loading.service';\nimport { ILoadingRef } from '../services/loading.factory';\n\n/**\n * Context class for variable reference\n */\nexport class TdLoadingContext {\n public $implicit: any = undefined;\n public tdLoading: any = undefined;\n}\n\n// Constant for generation of the id for the next component\nlet TD_LOADING_NEXT_ID: number = 0;\n\n@Directive({\n selector: '[tdLoading]',\n})\nexport class TdLoadingDirective implements OnInit, OnDestroy {\n private _context: TdLoadingContext = new TdLoadingContext();\n private _type: LoadingType;\n private _mode: LoadingMode;\n private _strategy: LoadingStrategy;\n private _name: string;\n private _loadingRef: ILoadingRef;\n\n /**\n * tdLoading: string\n * Name reference of the loading mask, used to register/resolve requests to the mask.\n */\n @Input('tdLoading')\n set name(name: string) {\n if (!this._name && name) {\n this._name = name;\n }\n }\n\n /**\n * tdLoadingUntil?: any\n * If its null, undefined or false it will be used to register requests to the mask.\n * Else if its any value that can be resolved as true, it will resolve the mask.\n * [name] is optional when using [until], but can still be used to register/resolve it manually.\n */\n @Input('tdLoadingUntil')\n set until(until: any) {\n if (!this._name) {\n this._name = 'td-loading-until-' + TD_LOADING_NEXT_ID++;\n }\n this._context.$implicit = this._context.tdLoading = until;\n if (!until) {\n this._loadingService.register(this._name);\n } else {\n this._loadingService.resolveAll(this._name);\n }\n }\n\n /**\n * tdLoadingType?: LoadingType or ['linear' | 'circular']\n * Sets the type of loading mask depending on value.\n * Defaults to [LoadingType.Circular | 'circular'].\n */\n @Input('tdLoadingType')\n set type(type: LoadingType) {\n if (type === LoadingType.Linear) {\n this._type = LoadingType.Linear;\n } else {\n this._type = LoadingType.Circular;\n }\n }\n\n /**\n * tdLoadingMode?: LoadingMode or ['determinate' | 'indeterminate']\n * Sets the mode of loading mask depending on value.\n * Defaults to [LoadingMode.Indeterminate | 'indeterminate'].\n */\n @Input('tdLoadingMode')\n set mode(mode: LoadingMode) {\n if (mode === LoadingMode.Determinate) {\n this._mode = LoadingMode.Determinate;\n } else {\n this._mode = LoadingMode.Indeterminate;\n }\n }\n\n /**\n * tdLoadingStrategy?: LoadingStrategy or ['replace' | 'overlay']\n * Sets the strategy of loading mask depending on value.\n * Defaults to [LoadingMode.Replace | 'replace'].\n */\n @Input('tdLoadingStrategy')\n set strategy(strategy: LoadingStrategy) {\n if (strategy === LoadingStrategy.Overlay) {\n this._strategy = LoadingStrategy.Overlay;\n } else {\n this._strategy = LoadingStrategy.Replace;\n }\n }\n\n /**\n * tdLoadingColor?: \"primary\" | \"accent\" | \"warn\"\n * Sets the theme color of the loading component. Defaults to \"primary\"\n */\n @Input('tdLoadingColor') color: 'primary' | 'accent' | 'warn' = 'primary';\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private _templateRef: TemplateRef<TdLoadingContext>,\n private _loadingService: TdLoadingService,\n ) {}\n\n /**\n * Registers component in the DOM, so it will be available when calling resolve/register.\n */\n ngOnInit(): void {\n this._registerComponent();\n }\n\n /**\n * Remove component when directive is destroyed.\n */\n ngOnDestroy(): void {\n this._loadingService.removeComponent(this._name);\n this._loadingRef = undefined;\n }\n\n /**\n * Creates [TdLoadingComponent] and attaches it to this directive's [ViewContainerRef].\n * Passes this directive's [TemplateRef] to modify DOM depending on loading `strategy`.\n */\n private _registerComponent(): void {\n if (!this._name) {\n throw new Error('Name is needed to register loading directive');\n }\n // Check if `TdLoadingComponent` has been created before trying to add one again.\n // There is a weird edge case when using `[routerLinkActive]` that calls the `ngOnInit` twice in a row\n if (!this._loadingRef) {\n this._loadingRef = this._loadingService.createComponent(\n {\n name: this._name,\n type: this._type,\n mode: this._mode,\n color: this.color,\n strategy: this._strategy,\n },\n this._viewContainerRef,\n this._templateRef,\n this._context,\n );\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { TdLoadingService, LOADING_PROVIDER } from './services/loading.service';\nimport { TdLoadingFactory, LOADING_FACTORY_PROVIDER } from './services/loading.factory';\nimport { TdLoadingDirective } from './directives/loading.directive';\nimport { TdLoadingComponent } from './loading.component';\n\nconst TD_LOADING: Type<any>[] = [TdLoadingComponent, TdLoadingDirective];\n\nconst TD_LOADING_ENTRY_COMPONENTS: Type<any>[] = [TdLoadingComponent];\n\n@NgModule({\n imports: [CommonModule, MatProgressBarModule, MatProgressSpinnerModule, OverlayModule, PortalModule],\n declarations: [TD_LOADING],\n exports: [TD_LOADING],\n providers: [LOADING_FACTORY_PROVIDER, LOADING_PROVIDER],\n})\nexport class CovalentLoadingModule {}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"covalent-core-loading.js","sources":["../../../../src/platform/core/loading/loading.component.ts","../../../src/platform/core/loading/services/loading.factory.ts","../../../src/platform/core/loading/services/loading.service.ts","../../../src/platform/core/loading/directives/loading.directive.ts","../../../../src/platform/core/loading/loading.module.ts"],"sourcesContent":["import { Component, ChangeDetectorRef, ElementRef, DoCheck } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nexport enum LoadingType {\n Circular = 'circular',\n Linear = 'linear',\n}\n\nexport enum LoadingMode {\n Determinate = 'determinate',\n Indeterminate = 'indeterminate',\n}\n\nexport enum LoadingStrategy {\n Overlay = 'overlay',\n Replace = 'replace',\n}\n\nexport enum LoadingStyle {\n FullScreen = 'fullscreen',\n Overlay = 'overlay',\n None = 'none',\n}\n\nimport { tdFadeInOutAnimation } from '@covalent/core/common';\n\nexport const TD_CIRCLE_DIAMETER: number = 100;\n\n@Component({\n selector: 'td-loading',\n styleUrls: ['./loading.component.scss'],\n templateUrl: './loading.component.html',\n animations: [tdFadeInOutAnimation],\n})\nexport class TdLoadingComponent implements DoCheck {\n private _mode: LoadingMode = LoadingMode.Indeterminate;\n private _defaultMode: LoadingMode = LoadingMode.Indeterminate;\n private _value: number = 0;\n private _circleDiameter: number = TD_CIRCLE_DIAMETER;\n\n /**\n * Flag for animation\n */\n animation: boolean = false;\n\n /**\n * Content injected into loading component.\n */\n content: TemplatePortal<any>;\n\n /**\n * Sets mode of [TdLoadingComponent] to LoadingMode.Determinate or LoadingMode.Indeterminate\n */\n set mode(mode: LoadingMode) {\n this._defaultMode = mode;\n }\n get mode(): LoadingMode {\n return this._mode;\n }\n\n /**\n * Sets value of [TdLoadingComponent] if mode is 'LoadingMode.Determinate'\n */\n set value(value: number) {\n this._value = value;\n // Check for changes for `OnPush` change detection\n this._changeDetectorRef.markForCheck();\n }\n get value(): number {\n return this._value;\n }\n\n style: LoadingStyle = LoadingStyle.None;\n\n /**\n * height: number\n * Sets height of [TdLoadingComponent].\n */\n height: number;\n\n /**\n * type: LoadingType\n * Sets type of [TdLoadingComponent] rendered.\n */\n type: LoadingType = LoadingType.Circular;\n\n /**\n * color: primary' | 'accent' | 'warn'\n * Sets theme color of [TdLoadingComponent] rendered.\n */\n color: 'primary' | 'accent' | 'warn' = 'primary';\n\n constructor(private _elementRef: ElementRef, private _changeDetectorRef: ChangeDetectorRef) {}\n\n ngDoCheck(): void {\n // When overlay is used and the host width has a value greater than 1px\n // set the circle diameter when possible incase the loading component was rendered in a hidden state\n if (this.isOverlay() && this._hostHeight() > 1 && this.animation) {\n this._setCircleDiameter();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n getHeight(): string {\n // Ignore height if style is `overlay` or `fullscreen`.\n // Add height if child elements have a height and style is `none`, else return default height.\n if (this.isOverlay() || this.isFullScreen()) {\n return undefined;\n } else {\n return this.height ? `${this.height}px` : '150px';\n }\n }\n\n getCircleDiameter(): number {\n return this._circleDiameter;\n }\n\n getCircleStrokeWidth(): number {\n // we calculate the stroke width by setting it as 10% of its diameter\n const strokeWidth: number = this.getCircleDiameter() / 10;\n return Math.abs(strokeWidth);\n }\n\n isCircular(): boolean {\n return this.type === LoadingType.Circular;\n }\n\n isLinear(): boolean {\n return this.type === LoadingType.Linear;\n }\n\n isFullScreen(): boolean {\n return this.style === LoadingStyle.FullScreen;\n }\n\n isOverlay(): boolean {\n return this.style === LoadingStyle.Overlay;\n }\n\n /**\n * Starts in animation and returns an observable for completition event.\n */\n show(): void {\n /* need to switch back to the selected mode, so we have saved it in another variable\n * and then recover it. (issue with protractor)\n */\n this._mode = this._defaultMode;\n // Set values before the animations starts\n this._setCircleDiameter();\n // Check for changes for `OnPush` change detection\n this.animation = true;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Starts out animation and returns an observable for completition event.\n */\n hide(): void {\n this.animation = false;\n /* need to switch back and forth from determinate/indeterminate so the setInterval()\n * inside mat-progress-spinner stops and protractor doesnt timeout waiting to sync.\n */\n this._mode = LoadingMode.Determinate;\n // Check for changes for `OnPush` change detection\n /* little hack to reset the loader value and animation before removing it from DOM\n * else, the loader will appear with prev value when its registered again\n * and will do an animation going prev value to 0.\n */\n this.value = 0;\n // Check for changes for `OnPush` change detection\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Calculate the proper diameter for the circle and set it\n */\n private _setCircleDiameter(): void {\n // we set a default diameter of 100 since this is the default in material\n let diameter: number = TD_CIRCLE_DIAMETER;\n // if height is provided, then we take that as diameter\n if (this.height) {\n diameter = this.height;\n // else if its not provided, then we take the host height\n } else if (this.height === undefined) {\n diameter = this._hostHeight();\n }\n // if the diameter is over TD_CIRCLE_DIAMETER, we set TD_CIRCLE_DIAMETER\n if (!!diameter && diameter <= TD_CIRCLE_DIAMETER) {\n this._circleDiameter = Math.floor(diameter);\n } else {\n this._circleDiameter = TD_CIRCLE_DIAMETER;\n }\n }\n\n /**\n * Returns the host height of the loading component\n */\n private _hostHeight(): number {\n if (<HTMLElement>this._elementRef.nativeElement) {\n return (<HTMLElement>this._elementRef.nativeElement).getBoundingClientRect().height;\n }\n return 0;\n }\n}\n","import {\n Injectable,\n ComponentFactoryResolver,\n ChangeDetectorRef,\n Provider,\n SkipSelf,\n Optional,\n EmbeddedViewRef,\n} from '@angular/core';\nimport { Injector, ComponentRef, ViewContainerRef, TemplateRef } from '@angular/core';\nimport { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\n\nimport { Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nimport { TdLoadingContext } from '../directives/loading.directive';\nimport { TdLoadingComponent, LoadingStyle } from '../loading.component';\nimport { ITdLoadingConfig } from './loading.service';\n\nexport interface IInternalLoadingOptions extends ITdLoadingConfig {\n height?: number;\n style?: LoadingStyle;\n}\n\nexport interface ILoadingRef {\n observable: Observable<any>;\n componentRef: ComponentRef<any>;\n subject?: Subject<any>;\n times?: number;\n}\n\n/**\n * NOTE: @internal usage only.\n */\n@Injectable()\nexport class TdLoadingFactory {\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _overlay: Overlay,\n private _injector: Injector,\n ) {}\n\n /**\n * Uses material `Overlay` services to create a DOM element and attach the loading component\n * into it. Leveraging the state and configuration from it.\n *\n * Saves a reference in context to be called when registering/resolving the loading element.\n */\n public createFullScreenComponent(options: ITdLoadingConfig): ILoadingRef {\n (<IInternalLoadingOptions>options).height = undefined;\n (<IInternalLoadingOptions>options).style = LoadingStyle.FullScreen;\n const loadingRef: ILoadingRef = this._initializeContext();\n let loading: boolean = false;\n let overlayRef: OverlayRef;\n loadingRef.observable.pipe(distinctUntilChanged()).subscribe((registered: number) => {\n if (registered > 0 && !loading) {\n loading = true;\n overlayRef = this._createOverlay();\n loadingRef.componentRef = overlayRef.attach(new ComponentPortal(TdLoadingComponent));\n this._mapOptions(options, loadingRef.componentRef.instance);\n loadingRef.componentRef.instance.show();\n loadingRef.componentRef.changeDetectorRef.detectChanges();\n } else if (registered <= 0 && loading) {\n loading = false;\n loadingRef.componentRef.instance.hide();\n loadingRef.componentRef.destroy();\n overlayRef.detach();\n overlayRef.dispose();\n }\n });\n return loadingRef;\n }\n\n /**\n * Creates a loading component dynamically and attaches it into the given viewContainerRef.\n * Leverages TemplatePortals from material to inject the template inside of it so it fits\n * perfectly when overlaying it.\n *\n * Saves a reference in context to be called when registering/resolving the loading element.\n */\n public createOverlayComponent(\n options: ITdLoadingConfig,\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef<object>,\n ): ILoadingRef {\n (<IInternalLoadingOptions>options).height = undefined;\n (<IInternalLoadingOptions>options).style = LoadingStyle.Overlay;\n const loadingRef: ILoadingRef = this._createComponent(options);\n let loading: boolean = false;\n loadingRef.componentRef.instance.content = new TemplatePortal(templateRef, viewContainerRef);\n viewContainerRef.clear();\n viewContainerRef.insert(loadingRef.componentRef.hostView, 0);\n loadingRef.observable.pipe(distinctUntilChanged()).subscribe((registered: number) => {\n if (registered > 0 && !loading) {\n loading = true;\n loadingRef.componentRef.instance.show();\n } else if (registered <= 0 && loading) {\n loading = false;\n loadingRef.componentRef.instance.hide();\n }\n });\n return loadingRef;\n }\n\n /**\n * Creates a loading component dynamically and attaches it into the given viewContainerRef.\n * Replaces the template with the loading component depending if it was registered or resolved.\n *\n * Saves a reference in context to be called when registering/resolving the loading element.\n */\n public createReplaceComponent(\n options: ITdLoadingConfig,\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef<object>,\n context: TdLoadingContext,\n ): ILoadingRef {\n const nativeElement: HTMLElement = <HTMLElement>templateRef.elementRef.nativeElement;\n (<IInternalLoadingOptions>options).height = nativeElement.nextElementSibling\n ? nativeElement.nextElementSibling.scrollHeight\n : undefined;\n (<IInternalLoadingOptions>options).style = LoadingStyle.None;\n const loadingRef: ILoadingRef = this._createComponent(options);\n let loading: boolean = false;\n // passing context so when the template is attached, we can keep the reference of the variables\n const contentRef: EmbeddedViewRef<object> = viewContainerRef.createEmbeddedView(templateRef, context);\n loadingRef.observable.pipe(distinctUntilChanged()).subscribe((registered: number) => {\n if (registered > 0 && !loading) {\n loading = true;\n // detach the content and attach the loader if loader is there\n const index: number = viewContainerRef.indexOf(loadingRef.componentRef.hostView);\n if (index < 0) {\n viewContainerRef.detach(viewContainerRef.indexOf(contentRef));\n viewContainerRef.insert(loadingRef.componentRef.hostView, 0);\n }\n loadingRef.componentRef.instance.show();\n } else if (registered <= 0 && loading) {\n loading = false;\n loadingRef.componentRef.instance.hide();\n // detach loader and attach the content if content is there\n const index: number = viewContainerRef.indexOf(contentRef);\n if (index < 0) {\n viewContainerRef.detach(viewContainerRef.indexOf(loadingRef.componentRef.hostView));\n viewContainerRef.insert(contentRef, 0);\n }\n /**\n * Need to call \"markForCheck\" and \"detectChanges\" on attached template, so its detected by parent component when attached\n * with \"OnPush\" change detection\n */\n contentRef.detectChanges();\n contentRef.markForCheck();\n }\n });\n return loadingRef;\n }\n\n /**\n * Creates a fullscreen overlay for the loading usage.\n */\n private _createOverlay(): OverlayRef {\n const state: OverlayConfig = new OverlayConfig();\n state.hasBackdrop = false;\n state.positionStrategy = this._overlay.position().global().centerHorizontally().centerVertically();\n return this._overlay.create(state);\n }\n\n /**\n * Creates a generic component dynamically waiting to be attached to a viewContainerRef.\n */\n private _createComponent(options: IInternalLoadingOptions): ILoadingRef {\n const compRef: ILoadingRef = this._initializeContext();\n compRef.componentRef = this._componentFactoryResolver\n .resolveComponentFactory(TdLoadingComponent)\n .create(this._injector);\n this._mapOptions(options, compRef.componentRef.instance);\n return compRef;\n }\n\n /**\n * Initialize context for loading component.\n */\n private _initializeContext(): ILoadingRef {\n const subject: Subject<any> = new Subject<any>();\n return {\n observable: subject.asObservable(),\n subject,\n componentRef: undefined,\n times: 0,\n };\n }\n\n /**\n * Maps configuration to the loading component instance.\n */\n private _mapOptions(options: IInternalLoadingOptions, instance: TdLoadingComponent): void {\n instance.style = options.style;\n if (options.type !== undefined) {\n instance.type = options.type;\n }\n if (options.height !== undefined) {\n instance.height = options.height;\n }\n if (options.mode !== undefined) {\n instance.mode = options.mode;\n }\n if (options.color !== undefined) {\n instance.color = options.color;\n }\n }\n}\n\nexport function LOADING_FACTORY_PROVIDER_FACTORY(\n parent: TdLoadingFactory,\n componentFactoryResolver: ComponentFactoryResolver,\n overlay: Overlay,\n injector: Injector,\n): TdLoadingFactory {\n return parent || new TdLoadingFactory(componentFactoryResolver, overlay, injector);\n}\n\nexport const LOADING_FACTORY_PROVIDER: Provider = {\n // If there is already a service available, use that. Otherwise, provide a new one.\n provide: TdLoadingFactory,\n deps: [[new Optional(), new SkipSelf(), TdLoadingFactory], ComponentFactoryResolver, Overlay, Injector],\n useFactory: LOADING_FACTORY_PROVIDER_FACTORY,\n};\n","import { Injectable, Provider, SkipSelf, Optional } from '@angular/core';\nimport { ViewContainerRef, TemplateRef } from '@angular/core';\nimport { Observable, Subject, Subscription } from 'rxjs';\n\nimport { TdLoadingContext } from '../directives/loading.directive';\nimport { TdLoadingComponent, LoadingMode, LoadingStrategy, LoadingType } from '../loading.component';\nimport { TdLoadingFactory, ILoadingRef } from './loading.factory';\n\nexport interface ITdLoadingConfig {\n name: string;\n type?: LoadingType;\n mode?: LoadingMode;\n color?: 'primary' | 'accent' | 'warn';\n}\n\nexport class TdLoadingConfig implements ITdLoadingConfig {\n name: string;\n type?: LoadingType;\n mode?: LoadingMode;\n color?: 'primary' | 'accent' | 'warn';\n\n constructor(config: ITdLoadingConfig) {\n this.name = config.name;\n if (!this.name) {\n throw Error('Name is required for [TdLoading] configuration.');\n }\n this.mode = config.mode ? config.mode : LoadingMode.Indeterminate;\n this.type = config.type ? config.type : LoadingType.Circular;\n this.color = config.color ? config.color : 'primary';\n }\n}\n\nexport interface ITdLoadingDirectiveConfig extends ITdLoadingConfig {\n strategy?: LoadingStrategy;\n}\n\nexport class TdLoadingDirectiveConfig extends TdLoadingConfig implements ITdLoadingDirectiveConfig {\n name: string;\n type: LoadingType;\n mode: LoadingMode;\n strategy: LoadingStrategy;\n\n constructor(config: ITdLoadingDirectiveConfig) {\n super(config);\n this.strategy = config.strategy ? config.strategy : LoadingStrategy.Replace;\n }\n}\n\n@Injectable()\nexport class TdLoadingService {\n private _context: { [key: string]: ILoadingRef } = {};\n private _timeouts: { [key: string]: any } = {};\n\n constructor(private _loadingFactory: TdLoadingFactory) {\n this.create({\n name: 'td-loading-main',\n });\n }\n\n /**\n * params:\n * - config: ILoadingDirectiveConfig\n * - viewContainerRef: ViewContainerRef\n * - templateRef: TemplateRef<Object>\n *\n * Creates an replace loading mask and attaches it to the viewContainerRef.\n * Replaces the templateRef with the mask when a request is registered on it.\n *\n * NOTE: @internal usage only.\n */\n createComponent(\n config: ITdLoadingDirectiveConfig,\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef<object>,\n context: TdLoadingContext,\n ): ILoadingRef {\n const directiveConfig: TdLoadingDirectiveConfig = new TdLoadingDirectiveConfig(config);\n if (this._context[directiveConfig.name]) {\n throw Error(`Name duplication: [TdLoading] directive has a name conflict with ${directiveConfig.name}.`);\n }\n if (directiveConfig.strategy === LoadingStrategy.Overlay) {\n this._context[directiveConfig.name] = this._loadingFactory.createOverlayComponent(\n directiveConfig,\n viewContainerRef,\n templateRef,\n );\n } else {\n this._context[directiveConfig.name] = this._loadingFactory.createReplaceComponent(\n directiveConfig,\n viewContainerRef,\n templateRef,\n context,\n );\n }\n return this._context[directiveConfig.name];\n }\n\n /**\n * params:\n * - config: ITdLoadingConfig\n *\n * Creates a fullscreen loading mask and attaches it to the DOM with the given configuration.\n * Only displayed when the mask has a request registered on it.\n */\n public create(config: ITdLoadingConfig): void {\n const fullscreenConfig: TdLoadingConfig = new TdLoadingConfig(config);\n this.removeComponent(fullscreenConfig.name);\n this._context[fullscreenConfig.name] = this._loadingFactory.createFullScreenComponent(fullscreenConfig);\n }\n\n /**\n * params:\n * - name: string\n *\n * Removes `loading` component from service context.\n */\n public removeComponent(name: string): void {\n if (this._context[name]) {\n this._context[name].subject.unsubscribe();\n if (this._context[name].componentRef) {\n this._context[name].componentRef.destroy();\n }\n this._context[name] = undefined;\n delete this._context[name];\n }\n }\n\n /**\n * params:\n * - name: string\n * - registers?: number\n * returns: true if successful\n *\n * Resolves a request for the loading mask referenced by the name parameter.\n * Can optionally pass registers argument to set a number of register calls.\n *\n * If no paramemeters are used, then default main mask will be used.\n *\n * e.g. loadingService.register()\n */\n public register(name: string = 'td-loading-main', registers: number = 1): boolean {\n // try registering into the service if the loading component has been instanciated or if it exists.\n if (this._context[name]) {\n registers = registers < 1 ? 1 : registers;\n this._context[name].times += registers;\n this._context[name].subject.next(this._context[name].times);\n return true;\n } else {\n // if it doesnt exist, set a timeout so its registered after change detection happens\n // this in case \"register\" occured on the `ngOnInit` lifehook cycle.\n if (!this._timeouts[name]) {\n this._timeouts[name] = setTimeout(() => {\n this.register(name, registers);\n });\n } else {\n // if it timeout occured and still doesnt exist, it means the tiemout wasnt needed so we clear it.\n this._clearTimeout(name);\n }\n }\n return false;\n }\n\n /**\n * params:\n * - name: string\n * - resolves?: number\n * returns: true if successful\n *\n * Resolves a request for the loading mask referenced by the name parameter.\n * Can optionally pass resolves argument to set a number of resolve calls.\n *\n * If no paramemeters are used, then default main mask will be used.\n *\n * e.g. loadingService.resolve()\n */\n public resolve(name: string = 'td-loading-main', resolves: number = 1): boolean {\n // clear timeout if the loading component is \"resolved\" before its \"registered\"\n this._clearTimeout(name);\n if (this._context[name]) {\n resolves = resolves < 1 ? 1 : resolves;\n if (this._context[name].times > 0) {\n let times: number = this._context[name].times;\n times -= resolves;\n this._context[name].times = times < 0 ? 0 : times;\n }\n this._context[name].subject.next(this._context[name].times);\n return true;\n }\n return false;\n }\n\n /**\n * params:\n * - name: string\n * returns: true if successful\n *\n * Resolves all request for the loading mask referenced by the name parameter.\n *\n * If no paramemeters are used, then default main mask will be used.\n *\n * e.g. loadingService.resolveAll()\n */\n public resolveAll(name: string = 'td-loading-main'): boolean {\n // clear timeout if the loading component is \"resolved\" before its \"registered\"\n this._clearTimeout(name);\n if (this._context[name]) {\n this._context[name].times = 0;\n this._context[name].subject.next(this._context[name].times);\n return true;\n }\n return false;\n }\n\n /**\n * params:\n * - name: string\n * - value: number\n * returns: true if successful\n *\n * Set value on a loading mask referenced by the name parameter.\n * Usage only available if its mode is 'determinate' and if loading is showing.\n */\n public setValue(name: string, value: number): boolean {\n if (this._context[name]) {\n const instance: TdLoadingComponent = this._context[name].componentRef.instance;\n if (instance.mode === LoadingMode.Determinate && instance.animation) {\n instance.value = value;\n return true;\n }\n }\n return false;\n }\n\n /**\n * Clears timeout linked to the name.\n * @param name Name of the loading component to be cleared\n */\n private _clearTimeout(name: string): void {\n clearTimeout(this._timeouts[name]);\n delete this._timeouts[name];\n }\n}\n\nexport function LOADING_PROVIDER_FACTORY(parent: TdLoadingService, loadingFactory: TdLoadingFactory): TdLoadingService {\n return parent || new TdLoadingService(loadingFactory);\n}\n\nexport const LOADING_PROVIDER: Provider = {\n // If there is already a service available, use that. Otherwise, provide a new one.\n provide: TdLoadingService,\n deps: [[new Optional(), new SkipSelf(), TdLoadingService], TdLoadingFactory],\n useFactory: LOADING_PROVIDER_FACTORY,\n};\n","import { Directive, Input, OnInit, OnDestroy } from '@angular/core';\nimport { ViewContainerRef, TemplateRef } from '@angular/core';\n\nimport { LoadingType, LoadingMode, LoadingStrategy, TdLoadingComponent } from '../loading.component';\nimport { TdLoadingService } from '../services/loading.service';\nimport { ILoadingRef } from '../services/loading.factory';\n\n/**\n * Context class for variable reference\n */\nexport class TdLoadingContext {\n public $implicit: any = undefined;\n public tdLoading: any = undefined;\n}\n\n// Constant for generation of the id for the next component\nlet TD_LOADING_NEXT_ID: number = 0;\n\n@Directive({\n selector: '[tdLoading]',\n})\nexport class TdLoadingDirective implements OnInit, OnDestroy {\n private _context: TdLoadingContext = new TdLoadingContext();\n private _type: LoadingType;\n private _mode: LoadingMode;\n private _strategy: LoadingStrategy;\n private _name: string;\n private _loadingRef: ILoadingRef;\n\n /**\n * tdLoading: string\n * Name reference of the loading mask, used to register/resolve requests to the mask.\n */\n @Input('tdLoading')\n set name(name: string) {\n if (!this._name && name) {\n this._name = name;\n }\n }\n\n /**\n * tdLoadingUntil?: any\n * If its null, undefined or false it will be used to register requests to the mask.\n * Else if its any value that can be resolved as true, it will resolve the mask.\n * [name] is optional when using [until], but can still be used to register/resolve it manually.\n */\n @Input('tdLoadingUntil')\n set until(until: any) {\n if (!this._name) {\n this._name = 'td-loading-until-' + TD_LOADING_NEXT_ID++;\n }\n this._context.$implicit = this._context.tdLoading = until;\n if (!until) {\n this._loadingService.register(this._name);\n } else {\n this._loadingService.resolveAll(this._name);\n }\n }\n\n /**\n * tdLoadingType?: LoadingType or ['linear' | 'circular']\n * Sets the type of loading mask depending on value.\n * Defaults to [LoadingType.Circular | 'circular'].\n */\n @Input('tdLoadingType')\n set type(type: LoadingType) {\n if (type === LoadingType.Linear) {\n this._type = LoadingType.Linear;\n } else {\n this._type = LoadingType.Circular;\n }\n }\n\n /**\n * tdLoadingMode?: LoadingMode or ['determinate' | 'indeterminate']\n * Sets the mode of loading mask depending on value.\n * Defaults to [LoadingMode.Indeterminate | 'indeterminate'].\n */\n @Input('tdLoadingMode')\n set mode(mode: LoadingMode) {\n if (mode === LoadingMode.Determinate) {\n this._mode = LoadingMode.Determinate;\n } else {\n this._mode = LoadingMode.Indeterminate;\n }\n }\n\n /**\n * tdLoadingStrategy?: LoadingStrategy or ['replace' | 'overlay']\n * Sets the strategy of loading mask depending on value.\n * Defaults to [LoadingMode.Replace | 'replace'].\n */\n @Input('tdLoadingStrategy')\n set strategy(strategy: LoadingStrategy) {\n if (strategy === LoadingStrategy.Overlay) {\n this._strategy = LoadingStrategy.Overlay;\n } else {\n this._strategy = LoadingStrategy.Replace;\n }\n }\n\n /**\n * tdLoadingColor?: \"primary\" | \"accent\" | \"warn\"\n * Sets the theme color of the loading component. Defaults to \"primary\"\n */\n @Input('tdLoadingColor') color: 'primary' | 'accent' | 'warn' = 'primary';\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private _templateRef: TemplateRef<TdLoadingContext>,\n private _loadingService: TdLoadingService,\n ) {}\n\n /**\n * Registers component in the DOM, so it will be available when calling resolve/register.\n */\n ngOnInit(): void {\n this._registerComponent();\n }\n\n /**\n * Remove component when directive is destroyed.\n */\n ngOnDestroy(): void {\n this._loadingService.removeComponent(this._name);\n this._loadingRef = undefined;\n }\n\n /**\n * Creates [TdLoadingComponent] and attaches it to this directive's [ViewContainerRef].\n * Passes this directive's [TemplateRef] to modify DOM depending on loading `strategy`.\n */\n private _registerComponent(): void {\n if (!this._name) {\n throw new Error('Name is needed to register loading directive');\n }\n // Check if `TdLoadingComponent` has been created before trying to add one again.\n // There is a weird edge case when using `[routerLinkActive]` that calls the `ngOnInit` twice in a row\n if (!this._loadingRef) {\n this._loadingRef = this._loadingService.createComponent(\n {\n name: this._name,\n type: this._type,\n mode: this._mode,\n color: this.color,\n strategy: this._strategy,\n },\n this._viewContainerRef,\n this._templateRef,\n this._context,\n );\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { TdLoadingService, LOADING_PROVIDER } from './services/loading.service';\nimport { TdLoadingFactory, LOADING_FACTORY_PROVIDER } from './services/loading.factory';\nimport { TdLoadingDirective } from './directives/loading.directive';\nimport { TdLoadingComponent } from './loading.component';\n\nconst TD_LOADING: Type<any>[] = [TdLoadingComponent, TdLoadingDirective];\n\nconst TD_LOADING_ENTRY_COMPONENTS: Type<any>[] = [TdLoadingComponent];\n\n@NgModule({\n imports: [CommonModule, MatProgressBarModule, MatProgressSpinnerModule, OverlayModule, PortalModule],\n declarations: [TD_LOADING],\n exports: [TD_LOADING],\n providers: [LOADING_FACTORY_PROVIDER, LOADING_PROVIDER],\n})\nexport class CovalentLoadingModule {}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-core-media.js","sources":["../../../../src/platform/core/media/services/media.service.ts","../../../../src/platform/core/media/directives/media-toggle.directive.ts","../../../../src/platform/core/media/media.module.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\nimport { Observable, BehaviorSubject, Subscription, fromEvent } from 'rxjs';\n\n@Injectable()\nexport class TdMediaService {\n private _resizing: boolean = false;\n private _globalSubscription: Subscription;\n private _queryMap: Map<string, string> = new Map<string, string>();\n private _querySources: { [key: string]: BehaviorSubject<boolean> } = {};\n private _queryObservables: { [key: string]: Observable<boolean> } = {};\n\n constructor(private _ngZone: NgZone) {\n this._queryMap.set('xs', '(max-width: 599px)');\n this._queryMap.set('gt-xs', '(min-width: 600px)');\n this._queryMap.set('sm', '(min-width: 600px) and (max-width: 959px)');\n this._queryMap.set('gt-sm', '(min-width: 960px)');\n this._queryMap.set('md', '(min-width: 960px) and (max-width: 1279px)');\n this._queryMap.set('gt-md', '(min-width: 1280px)');\n this._queryMap.set('lg', '(min-width: 1280px) and (max-width: 1919px)');\n this._queryMap.set('gt-lg', '(min-width: 1920px)');\n this._queryMap.set('xl', '(min-width: 1920px)');\n this._queryMap.set('landscape', '(orientation: landscape)');\n this._queryMap.set('portrait', '(orientation: portrait)');\n this._queryMap.set('print', 'print');\n\n this._resizing = false;\n // we make sure that the resize checking happend outside of Angular since it happens often\n this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n return fromEvent(window, 'resize').subscribe(() => {\n // way to prevent the resize event from triggering the match media if there is already one event running already.\n if (!this._resizing) {\n this._resizing = true;\n setTimeout(() => {\n this._onResize();\n this._resizing = false;\n }, 100);\n }\n });\n });\n }\n\n /**\n * Deregisters a query so its stops being notified or used.\n */\n deregisterQuery(query: string): void {\n if (this._queryMap.get(query.toLowerCase())) {\n query = this._queryMap.get(query.toLowerCase());\n }\n this._querySources[query].unsubscribe();\n delete this._querySources[query];\n delete this._queryObservables[query];\n }\n\n /**\n * Used to evaluate whether a given media query is true or false given the current device's screen / window size.\n */\n public query(query: string): boolean {\n if (this._queryMap.get(query.toLowerCase())) {\n query = this._queryMap.get(query.toLowerCase());\n }\n return this._ngZone.run(() => {\n return matchMedia(query).matches;\n });\n }\n\n /**\n * Registers a media query and returns an [Observable] that will re-evaluate and\n * return if the given media query matches on window resize.\n * Note: don't forget to unsubscribe from [Observable] when finished watching.\n */\n public registerQuery(query: string): Observable<boolean> {\n if (this._queryMap.get(query.toLowerCase())) {\n query = this._queryMap.get(query.toLowerCase());\n }\n if (!this._querySources[query]) {\n this._querySources[query] = new BehaviorSubject<boolean>(matchMedia(query).matches);\n this._queryObservables[query] = this._querySources[query].asObservable();\n }\n return this._queryObservables[query];\n }\n\n /**\n * Trigger a match media event on all subscribed observables.\n */\n public broadcast(): void {\n this._onResize();\n }\n\n private _onResize(): void {\n for (const query of Object.keys(this._querySources)) {\n this._ngZone.run(() => {\n this._matchMediaTrigger(query);\n });\n }\n }\n\n private _matchMediaTrigger(query: string): void {\n this._querySources[query].next(matchMedia(query).matches);\n }\n}\n","import { Directive, ElementRef, Input, OnInit, OnDestroy } from '@angular/core';\nimport { Renderer2 } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { TdMediaService } from '../services/media.service';\n\n@Directive({\n selector: '[tdMediaToggle]',\n})\nexport class TdMediaToggleDirective implements OnInit, OnDestroy {\n private _subscription: Subscription;\n\n private _query: string;\n private _matches: boolean = false;\n private _attributes: { [key: string]: string } = {};\n private _styles: { [key: string]: string } = {};\n private _classes: string[] = [];\n\n /**\n * tdMediaToggle: string\n * Media query used to evaluate screen/window size.\n * Toggles attributes, classes and styles if media query is matched.\n */\n @Input('tdMediaToggle')\n set query(query: string) {\n if (!query) {\n throw new Error('Query needed for [tdMediaToggle] directive.');\n }\n this._query = query;\n }\n\n /**\n * mediaAttributes: {[key: string]: string}\n * Attributes to be toggled when media query matches.\n */\n @Input('mediaAttributes')\n set attributes(attributes: any) {\n this._attributes = attributes;\n }\n\n /**\n * mediaClasses: string[]\n * CSS Classes to be toggled when media query matches.\n */\n @Input('mediaClasses')\n set classes(classes: string[]) {\n this._classes = classes;\n }\n\n /**\n * mediaStyles: {[key: string]: string}\n * CSS Styles to be toggled when media query matches.\n */\n @Input('mediaStyles')\n set styles(styles: any) {\n this._styles = styles;\n }\n\n constructor(private _renderer: Renderer2, private _elementRef: ElementRef, private _mediaService: TdMediaService) {}\n\n ngOnInit(): void {\n this._mediaChange(this._mediaService.query(this._query));\n this._subscription = this._mediaService.registerQuery(this._query).subscribe((matches: boolean) => {\n this._mediaChange(matches);\n });\n }\n\n ngOnDestroy(): void {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n }\n\n private _mediaChange(matches: boolean): void {\n this._matches = matches;\n this._changeAttributes();\n this._changeClasses();\n this._changeStyles();\n }\n\n private _changeAttributes(): void {\n for (const attr in this._attributes) {\n if (this._matches) {\n this._renderer.setAttribute(this._elementRef.nativeElement, attr, this._attributes[attr]);\n } else {\n this._renderer.removeAttribute(this._elementRef.nativeElement, attr);\n }\n }\n }\n\n private _changeClasses(): void {\n this._classes.forEach((className: string) => {\n if (this._matches) {\n this._renderer.addClass(this._elementRef.nativeElement, className);\n } else {\n this._renderer.removeClass(this._elementRef.nativeElement, className);\n }\n });\n }\n\n private _changeStyles(): void {\n for (const style in this._styles) {\n if (this._matches) {\n this._renderer.setStyle(this._elementRef.nativeElement, style, this._styles[style]);\n } else {\n this._renderer.removeStyle(this._elementRef.nativeElement, style);\n }\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { TdMediaToggleDirective } from './directives/media-toggle.directive';\nimport { TdMediaService } from './services/media.service';\n\nconst TD_MEDIA: Type<any>[] = [TdMediaToggleDirective];\n\n@NgModule({\n declarations: [TD_MEDIA],\n exports: [TD_MEDIA],\n providers: [TdMediaService],\n})\nexport class CovalentMediaModule {}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"covalent-core-media.js","sources":["../../../src/platform/core/media/services/media.service.ts","../../../src/platform/core/media/directives/media-toggle.directive.ts","../../../../src/platform/core/media/media.module.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\nimport { Observable, BehaviorSubject, Subscription, fromEvent } from 'rxjs';\n\n@Injectable()\nexport class TdMediaService {\n private _resizing: boolean = false;\n private _globalSubscription: Subscription;\n private _queryMap: Map<string, string> = new Map<string, string>();\n private _querySources: { [key: string]: BehaviorSubject<boolean> } = {};\n private _queryObservables: { [key: string]: Observable<boolean> } = {};\n\n constructor(private _ngZone: NgZone) {\n this._queryMap.set('xs', '(max-width: 599px)');\n this._queryMap.set('gt-xs', '(min-width: 600px)');\n this._queryMap.set('sm', '(min-width: 600px) and (max-width: 959px)');\n this._queryMap.set('gt-sm', '(min-width: 960px)');\n this._queryMap.set('md', '(min-width: 960px) and (max-width: 1279px)');\n this._queryMap.set('gt-md', '(min-width: 1280px)');\n this._queryMap.set('lg', '(min-width: 1280px) and (max-width: 1919px)');\n this._queryMap.set('gt-lg', '(min-width: 1920px)');\n this._queryMap.set('xl', '(min-width: 1920px)');\n this._queryMap.set('landscape', '(orientation: landscape)');\n this._queryMap.set('portrait', '(orientation: portrait)');\n this._queryMap.set('print', 'print');\n\n this._resizing = false;\n // we make sure that the resize checking happend outside of Angular since it happens often\n this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n return fromEvent(window, 'resize').subscribe(() => {\n // way to prevent the resize event from triggering the match media if there is already one event running already.\n if (!this._resizing) {\n this._resizing = true;\n setTimeout(() => {\n this._onResize();\n this._resizing = false;\n }, 100);\n }\n });\n });\n }\n\n /**\n * Deregisters a query so its stops being notified or used.\n */\n deregisterQuery(query: string): void {\n if (this._queryMap.get(query.toLowerCase())) {\n query = this._queryMap.get(query.toLowerCase());\n }\n this._querySources[query].unsubscribe();\n delete this._querySources[query];\n delete this._queryObservables[query];\n }\n\n /**\n * Used to evaluate whether a given media query is true or false given the current device's screen / window size.\n */\n public query(query: string): boolean {\n if (this._queryMap.get(query.toLowerCase())) {\n query = this._queryMap.get(query.toLowerCase());\n }\n return this._ngZone.run(() => {\n return matchMedia(query).matches;\n });\n }\n\n /**\n * Registers a media query and returns an [Observable] that will re-evaluate and\n * return if the given media query matches on window resize.\n * Note: don't forget to unsubscribe from [Observable] when finished watching.\n */\n public registerQuery(query: string): Observable<boolean> {\n if (this._queryMap.get(query.toLowerCase())) {\n query = this._queryMap.get(query.toLowerCase());\n }\n if (!this._querySources[query]) {\n this._querySources[query] = new BehaviorSubject<boolean>(matchMedia(query).matches);\n this._queryObservables[query] = this._querySources[query].asObservable();\n }\n return this._queryObservables[query];\n }\n\n /**\n * Trigger a match media event on all subscribed observables.\n */\n public broadcast(): void {\n this._onResize();\n }\n\n private _onResize(): void {\n for (const query of Object.keys(this._querySources)) {\n this._ngZone.run(() => {\n this._matchMediaTrigger(query);\n });\n }\n }\n\n private _matchMediaTrigger(query: string): void {\n this._querySources[query].next(matchMedia(query).matches);\n }\n}\n","import { Directive, ElementRef, Input, OnInit, OnDestroy } from '@angular/core';\nimport { Renderer2 } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { TdMediaService } from '../services/media.service';\n\n@Directive({\n selector: '[tdMediaToggle]',\n})\nexport class TdMediaToggleDirective implements OnInit, OnDestroy {\n private _subscription: Subscription;\n\n private _query: string;\n private _matches: boolean = false;\n private _attributes: { [key: string]: string } = {};\n private _styles: { [key: string]: string } = {};\n private _classes: string[] = [];\n\n /**\n * tdMediaToggle: string\n * Media query used to evaluate screen/window size.\n * Toggles attributes, classes and styles if media query is matched.\n */\n @Input('tdMediaToggle')\n set query(query: string) {\n if (!query) {\n throw new Error('Query needed for [tdMediaToggle] directive.');\n }\n this._query = query;\n }\n\n /**\n * mediaAttributes: {[key: string]: string}\n * Attributes to be toggled when media query matches.\n */\n @Input('mediaAttributes')\n set attributes(attributes: any) {\n this._attributes = attributes;\n }\n\n /**\n * mediaClasses: string[]\n * CSS Classes to be toggled when media query matches.\n */\n @Input('mediaClasses')\n set classes(classes: string[]) {\n this._classes = classes;\n }\n\n /**\n * mediaStyles: {[key: string]: string}\n * CSS Styles to be toggled when media query matches.\n */\n @Input('mediaStyles')\n set styles(styles: any) {\n this._styles = styles;\n }\n\n constructor(private _renderer: Renderer2, private _elementRef: ElementRef, private _mediaService: TdMediaService) {}\n\n ngOnInit(): void {\n this._mediaChange(this._mediaService.query(this._query));\n this._subscription = this._mediaService.registerQuery(this._query).subscribe((matches: boolean) => {\n this._mediaChange(matches);\n });\n }\n\n ngOnDestroy(): void {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n }\n\n private _mediaChange(matches: boolean): void {\n this._matches = matches;\n this._changeAttributes();\n this._changeClasses();\n this._changeStyles();\n }\n\n private _changeAttributes(): void {\n for (const attr in this._attributes) {\n if (this._matches) {\n this._renderer.setAttribute(this._elementRef.nativeElement, attr, this._attributes[attr]);\n } else {\n this._renderer.removeAttribute(this._elementRef.nativeElement, attr);\n }\n }\n }\n\n private _changeClasses(): void {\n this._classes.forEach((className: string) => {\n if (this._matches) {\n this._renderer.addClass(this._elementRef.nativeElement, className);\n } else {\n this._renderer.removeClass(this._elementRef.nativeElement, className);\n }\n });\n }\n\n private _changeStyles(): void {\n for (const style in this._styles) {\n if (this._matches) {\n this._renderer.setStyle(this._elementRef.nativeElement, style, this._styles[style]);\n } else {\n this._renderer.removeStyle(this._elementRef.nativeElement, style);\n }\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { TdMediaToggleDirective } from './directives/media-toggle.directive';\nimport { TdMediaService } from './services/media.service';\n\nconst TD_MEDIA: Type<any>[] = [TdMediaToggleDirective];\n\n@NgModule({\n declarations: [TD_MEDIA],\n exports: [TD_MEDIA],\n providers: [TdMediaService],\n})\nexport class CovalentMediaModule {}\n"],"names":[],"mappings":"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"}