@covalent/core 6.4.0 → 6.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/breadcrumbs/breadcrumbs.component.d.ts +1 -1
  2. package/common/styles/font/_font.scss +1 -35
  3. package/dialogs/src/README.md +223 -0
  4. package/dialogs/window-dialog/window-dialog.component.d.ts +1 -1
  5. package/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.d.ts +1 -1
  6. package/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.d.ts +1 -1
  7. package/dynamic-menu/dynamic-menu.component.d.ts +1 -1
  8. package/esm2020/breadcrumbs/breadcrumb/breadcrumb.component.mjs +92 -0
  9. package/esm2020/breadcrumbs/breadcrumbs.component.mjs +131 -0
  10. package/{esm2022 → esm2020}/breadcrumbs/breadcrumbs.module.mjs +5 -5
  11. package/esm2020/common/behaviors/control-value-accesor.mixin.mjs +41 -0
  12. package/esm2020/common/behaviors/disable-ripple.mixin.mjs +24 -0
  13. package/{esm2022 → esm2020}/common/behaviors/disabled.mixin.mjs +2 -2
  14. package/{esm2022 → esm2020}/common/common.module.mjs +17 -17
  15. package/esm2020/common/directives/fullscreen/fullscreen.directive.mjs +85 -0
  16. package/esm2020/common/forms/auto-trim/auto-trim.directive.mjs +36 -0
  17. package/esm2020/common/functions/convert.mjs +84 -0
  18. package/esm2020/common/functions/download.mjs +75 -0
  19. package/esm2020/common/pipes/bytes/bytes.pipe.mjs +42 -0
  20. package/esm2020/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +42 -0
  21. package/esm2020/common/pipes/digits/digits.pipe.mjs +39 -0
  22. package/{esm2022 → esm2020}/common/pipes/time-ago/time-ago.pipe.mjs +4 -4
  23. package/{esm2022 → esm2020}/common/pipes/time-difference/time-difference.pipe.mjs +4 -4
  24. package/{esm2022 → esm2020}/common/pipes/time-until/time-until.pipe.mjs +4 -4
  25. package/esm2020/common/pipes/truncate/truncate.pipe.mjs +27 -0
  26. package/esm2020/common/services/icon.service.mjs +1089 -0
  27. package/esm2020/common/services/router-path.service.mjs +29 -0
  28. package/esm2020/dialogs/alert-dialog/alert-dialog.component.mjs +23 -0
  29. package/esm2020/dialogs/confirm-dialog/confirm-dialog.component.mjs +28 -0
  30. package/esm2020/dialogs/dialog.component.mjs +57 -0
  31. package/{esm2022 → esm2020}/dialogs/dialogs.module.mjs +39 -39
  32. package/esm2020/dialogs/prompt-dialog/prompt-dialog.component.mjs +75 -0
  33. package/esm2020/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +216 -0
  34. package/esm2020/dialogs/services/dialog.service.mjs +174 -0
  35. package/esm2020/dialogs/window-dialog/window-dialog.component.mjs +38 -0
  36. package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +30 -0
  37. package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +24 -0
  38. package/esm2020/dynamic-menu/dynamic-menu.component.mjs +28 -0
  39. package/{esm2022 → esm2020}/dynamic-menu/dynamic-menu.module.mjs +19 -19
  40. package/esm2020/file/directives/file-drop.directive.mjs +139 -0
  41. package/esm2020/file/directives/file-select.directive.mjs +77 -0
  42. package/esm2020/file/file-input/file-input.component.mjs +128 -0
  43. package/esm2020/file/file-upload/file-upload.component.mjs +174 -0
  44. package/{esm2022 → esm2020}/file/file.module.mjs +21 -21
  45. package/esm2020/file/services/file.service.mjs +64 -0
  46. package/esm2020/json-formatter/json-formatter.component.mjs +217 -0
  47. package/{esm2022 → esm2020}/json-formatter/json-formatter.module.mjs +5 -5
  48. package/esm2020/layout/layout-card-over/layout-card-over.component.mjs +40 -0
  49. package/esm2020/layout/layout-footer/layout-footer.component.mjs +33 -0
  50. package/esm2020/layout/layout-manage-list/layout-manage-list.component.mjs +93 -0
  51. package/{esm2022 → esm2020}/layout/layout-manage-list/layout-manage-list.directives.mjs +10 -10
  52. package/esm2020/layout/layout-nav/layout-nav.component.mjs +50 -0
  53. package/esm2020/layout/layout-nav-list/layout-nav-list.component.mjs +128 -0
  54. package/{esm2022 → esm2020}/layout/layout-nav-list/layout-nav-list.directives.mjs +10 -10
  55. package/esm2020/layout/layout-toggle.class.mjs +92 -0
  56. package/esm2020/layout/layout.component.mjs +92 -0
  57. package/{esm2022 → esm2020}/layout/layout.directives.mjs +10 -10
  58. package/{esm2022 → esm2020}/layout/layout.module.mjs +55 -55
  59. package/esm2020/layout/navigation-drawer/navigation-drawer.component.mjs +163 -0
  60. package/esm2020/loading/directives/loading.directive.mjs +126 -0
  61. package/esm2020/loading/loading.component.mjs +187 -0
  62. package/{esm2022 → esm2020}/loading/loading.module.mjs +13 -13
  63. package/esm2020/loading/services/loading.factory.mjs +207 -0
  64. package/esm2020/loading/services/loading.service.mjs +213 -0
  65. package/{esm2022 → esm2020}/menu/menu.component.mjs +4 -4
  66. package/{esm2022 → esm2020}/menu/menu.module.mjs +5 -5
  67. package/esm2020/message/message.component.mjs +203 -0
  68. package/{esm2022 → esm2020}/message/message.module.mjs +7 -7
  69. package/esm2020/search/search-box/search-box.component.mjs +194 -0
  70. package/esm2020/search/search-input/search-input.component.mjs +207 -0
  71. package/{esm2022 → esm2020}/search/search.module.mjs +13 -13
  72. package/esm2020/side-sheet/side-sheet-container.mjs +274 -0
  73. package/esm2020/side-sheet/side-sheet-ref.mjs +26 -0
  74. package/{esm2022 → esm2020}/side-sheet/side-sheet.config.mjs +5 -2
  75. package/esm2020/side-sheet/side-sheet.content-directives.mjs +201 -0
  76. package/esm2020/side-sheet/side-sheet.mjs +228 -0
  77. package/{esm2022 → esm2020}/side-sheet/side-sheet.module.mjs +14 -14
  78. package/esm2020/user-profile/user-profile-menu/user-profile-menu.component.mjs +23 -0
  79. package/esm2020/user-profile/user-profile.component.mjs +19 -0
  80. package/{esm2022 → esm2020}/user-profile/user-profile.module.mjs +15 -15
  81. package/{fesm2022 → fesm2015}/covalent-core-breadcrumbs.mjs +22 -28
  82. package/{fesm2022 → fesm2015}/covalent-core-breadcrumbs.mjs.map +1 -1
  83. package/fesm2015/covalent-core-common.mjs +2281 -0
  84. package/fesm2015/covalent-core-common.mjs.map +1 -0
  85. package/fesm2015/covalent-core-dialogs.mjs +668 -0
  86. package/fesm2015/covalent-core-dialogs.mjs.map +1 -0
  87. package/fesm2015/covalent-core-dynamic-menu.mjs +126 -0
  88. package/fesm2015/covalent-core-dynamic-menu.mjs.map +1 -0
  89. package/fesm2015/covalent-core-file.mjs +621 -0
  90. package/fesm2015/covalent-core-file.mjs.map +1 -0
  91. package/fesm2015/covalent-core-json-formatter.mjs +298 -0
  92. package/fesm2015/covalent-core-json-formatter.mjs.map +1 -0
  93. package/fesm2015/covalent-core-layout.mjs +1024 -0
  94. package/{fesm2022 → fesm2015}/covalent-core-layout.mjs.map +1 -1
  95. package/fesm2015/covalent-core-loading.mjs +766 -0
  96. package/fesm2015/covalent-core-loading.mjs.map +1 -0
  97. package/{fesm2022 → fesm2015}/covalent-core-menu.mjs +7 -7
  98. package/{fesm2022 → fesm2015}/covalent-core-menu.mjs.map +1 -1
  99. package/fesm2015/covalent-core-message.mjs +284 -0
  100. package/fesm2015/covalent-core-message.mjs.map +1 -0
  101. package/fesm2015/covalent-core-search.mjs +430 -0
  102. package/fesm2015/covalent-core-search.mjs.map +1 -0
  103. package/fesm2015/covalent-core-side-sheet.mjs +784 -0
  104. package/fesm2015/covalent-core-side-sheet.mjs.map +1 -0
  105. package/fesm2015/covalent-core-user-profile.mjs +83 -0
  106. package/fesm2015/covalent-core-user-profile.mjs.map +1 -0
  107. package/fesm2020/covalent-core-breadcrumbs.mjs +243 -0
  108. package/fesm2020/covalent-core-breadcrumbs.mjs.map +1 -0
  109. package/{fesm2022 → fesm2020}/covalent-core-common.mjs +1125 -1131
  110. package/fesm2020/covalent-core-common.mjs.map +1 -0
  111. package/{fesm2022 → fesm2020}/covalent-core-dialogs.mjs +82 -111
  112. package/fesm2020/covalent-core-dialogs.mjs.map +1 -0
  113. package/fesm2020/covalent-core-dynamic-menu.mjs +126 -0
  114. package/{fesm2022 → fesm2020}/covalent-core-dynamic-menu.mjs.map +1 -1
  115. package/{fesm2022 → fesm2020}/covalent-core-file.mjs +110 -148
  116. package/{fesm2022 → fesm2020}/covalent-core-file.mjs.map +1 -1
  117. package/{fesm2022 → fesm2020}/covalent-core-json-formatter.mjs +21 -26
  118. package/{fesm2022 → fesm2020}/covalent-core-json-formatter.mjs.map +1 -1
  119. package/{fesm2022 → fesm2020}/covalent-core-layout.mjs +271 -396
  120. package/fesm2020/covalent-core-layout.mjs.map +1 -0
  121. package/{fesm2022 → fesm2020}/covalent-core-loading.mjs +78 -100
  122. package/{fesm2022 → fesm2020}/covalent-core-loading.mjs.map +1 -1
  123. package/fesm2020/covalent-core-menu.mjs +37 -0
  124. package/fesm2020/covalent-core-menu.mjs.map +1 -0
  125. package/{fesm2022 → fesm2020}/covalent-core-message.mjs +23 -42
  126. package/{fesm2022 → fesm2020}/covalent-core-message.mjs.map +1 -1
  127. package/fesm2020/covalent-core-search.mjs +427 -0
  128. package/fesm2020/covalent-core-search.mjs.map +1 -0
  129. package/{fesm2022 → fesm2020}/covalent-core-side-sheet.mjs +99 -124
  130. package/{fesm2022 → fesm2020}/covalent-core-side-sheet.mjs.map +1 -1
  131. package/fesm2020/covalent-core-user-profile.mjs +83 -0
  132. package/fesm2020/covalent-core-user-profile.mjs.map +1 -0
  133. package/fesm2020/covalent-core.mjs +4 -0
  134. package/fesm2020/covalent-core.mjs.map +1 -0
  135. package/file/directives/file-drop.directive.d.ts +1 -1
  136. package/file/directives/file-select.directive.d.ts +1 -1
  137. package/file/file-input/file-input.component.d.ts +1 -1
  138. package/file/file-upload/file-upload.component.d.ts +1 -1
  139. package/file/src/file-input/README.md +147 -0
  140. package/file/src/file-upload/README.md +136 -0
  141. package/json-formatter/json-formatter.component.d.ts +1 -1
  142. package/layout/layout-card-over/layout-card-over.component.d.ts +1 -1
  143. package/layout/layout-footer/layout-footer.component.d.ts +1 -1
  144. package/layout/layout-manage-list/layout-manage-list.component.d.ts +1 -1
  145. package/layout/layout-manage-list/layout-manage-list.directives.d.ts +3 -3
  146. package/layout/layout-nav/layout-nav.component.d.ts +1 -1
  147. package/layout/layout-nav-list/layout-nav-list.component.d.ts +1 -1
  148. package/layout/layout-nav-list/layout-nav-list.directives.d.ts +3 -3
  149. package/layout/layout-toggle.class.d.ts +1 -1
  150. package/layout/layout.component.d.ts +1 -1
  151. package/layout/layout.directives.d.ts +3 -3
  152. package/layout/navigation-drawer/navigation-drawer.component.d.ts +1 -1
  153. package/layout/src/layout-card-over/README.md +43 -0
  154. package/layout/src/layout-manage-list/README.md +80 -0
  155. package/layout/src/layout-nav/README.md +50 -0
  156. package/layout/src/layout-nav-list/README.md +105 -0
  157. package/loading/directives/loading.directive.d.ts +1 -1
  158. package/message/message.component.d.ts +1 -1
  159. package/package.json +91 -55
  160. package/search/search-box/search-box.component.d.ts +1 -1
  161. package/search/search-input/search-input.component.d.ts +1 -1
  162. package/search/src/search-box/README.md +73 -0
  163. package/search/src/search-input/README.md +74 -0
  164. package/side-sheet/side-sheet.content-directives.d.ts +2 -2
  165. package/user-profile/user-profile-menu/user-profile-menu.component.d.ts +1 -1
  166. package/user-profile/user-profile.component.d.ts +1 -1
  167. package/common/styles/font/MaterialIcons-Regular-v48.woff2 +0 -0
  168. package/esm2022/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -94
  169. package/esm2022/breadcrumbs/breadcrumbs.component.mjs +0 -135
  170. package/esm2022/common/behaviors/control-value-accesor.mixin.mjs +0 -43
  171. package/esm2022/common/behaviors/disable-ripple.mixin.mjs +0 -24
  172. package/esm2022/common/directives/fullscreen/fullscreen.directive.mjs +0 -87
  173. package/esm2022/common/forms/auto-trim/auto-trim.directive.mjs +0 -37
  174. package/esm2022/common/functions/convert.mjs +0 -84
  175. package/esm2022/common/functions/download.mjs +0 -75
  176. package/esm2022/common/pipes/bytes/bytes.pipe.mjs +0 -42
  177. package/esm2022/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +0 -42
  178. package/esm2022/common/pipes/digits/digits.pipe.mjs +0 -41
  179. package/esm2022/common/pipes/truncate/truncate.pipe.mjs +0 -27
  180. package/esm2022/common/services/icon.service.mjs +0 -1087
  181. package/esm2022/common/services/router-path.service.mjs +0 -30
  182. package/esm2022/dialogs/alert-dialog/alert-dialog.component.mjs +0 -26
  183. package/esm2022/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -31
  184. package/esm2022/dialogs/dialog.component.mjs +0 -60
  185. package/esm2022/dialogs/prompt-dialog/prompt-dialog.component.mjs +0 -84
  186. package/esm2022/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +0 -220
  187. package/esm2022/dialogs/services/dialog.service.mjs +0 -179
  188. package/esm2022/dialogs/window-dialog/window-dialog.component.mjs +0 -40
  189. package/esm2022/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +0 -30
  190. package/esm2022/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +0 -23
  191. package/esm2022/dynamic-menu/dynamic-menu.component.mjs +0 -28
  192. package/esm2022/file/directives/file-drop.directive.mjs +0 -145
  193. package/esm2022/file/directives/file-select.directive.mjs +0 -78
  194. package/esm2022/file/file-input/file-input.component.mjs +0 -146
  195. package/esm2022/file/file-upload/file-upload.component.mjs +0 -185
  196. package/esm2022/file/services/file.service.mjs +0 -66
  197. package/esm2022/json-formatter/json-formatter.component.mjs +0 -222
  198. package/esm2022/layout/layout-card-over/layout-card-over.component.mjs +0 -50
  199. package/esm2022/layout/layout-footer/layout-footer.component.mjs +0 -36
  200. package/esm2022/layout/layout-manage-list/layout-manage-list.component.mjs +0 -92
  201. package/esm2022/layout/layout-nav/layout-nav.component.mjs +0 -76
  202. package/esm2022/layout/layout-nav-list/layout-nav-list.component.mjs +0 -154
  203. package/esm2022/layout/layout-toggle.class.mjs +0 -96
  204. package/esm2022/layout/layout.component.mjs +0 -91
  205. package/esm2022/layout/navigation-drawer/navigation-drawer.component.mjs +0 -221
  206. package/esm2022/loading/directives/loading.directive.mjs +0 -133
  207. package/esm2022/loading/loading.component.mjs +0 -193
  208. package/esm2022/loading/services/loading.factory.mjs +0 -210
  209. package/esm2022/loading/services/loading.service.mjs +0 -219
  210. package/esm2022/message/message.component.mjs +0 -222
  211. package/esm2022/search/search-box/search-box.component.mjs +0 -198
  212. package/esm2022/search/search-input/search-input.component.mjs +0 -214
  213. package/esm2022/side-sheet/side-sheet-container.mjs +0 -285
  214. package/esm2022/side-sheet/side-sheet-ref.mjs +0 -30
  215. package/esm2022/side-sheet/side-sheet.content-directives.mjs +0 -206
  216. package/esm2022/side-sheet/side-sheet.mjs +0 -236
  217. package/esm2022/user-profile/user-profile-menu/user-profile-menu.component.mjs +0 -25
  218. package/esm2022/user-profile/user-profile.component.mjs +0 -21
  219. package/fesm2022/covalent-core-common.mjs.map +0 -1
  220. package/fesm2022/covalent-core-dialogs.mjs.map +0 -1
  221. package/fesm2022/covalent-core-dynamic-menu.mjs +0 -125
  222. package/fesm2022/covalent-core-search.mjs +0 -438
  223. package/fesm2022/covalent-core-search.mjs.map +0 -1
  224. package/fesm2022/covalent-core-user-profile.mjs +0 -87
  225. package/fesm2022/covalent-core-user-profile.mjs.map +0 -1
  226. /package/{esm2022 → esm2020}/breadcrumbs/covalent-core-breadcrumbs.mjs +0 -0
  227. /package/{esm2022 → esm2020}/breadcrumbs/public_api.mjs +0 -0
  228. /package/{esm2022 → esm2020}/common/animations/bounce/bounce.animation.mjs +0 -0
  229. /package/{esm2022 → esm2020}/common/animations/collapse/collapse.animation.mjs +0 -0
  230. /package/{esm2022 → esm2020}/common/animations/common/interfaces.mjs +0 -0
  231. /package/{esm2022 → esm2020}/common/animations/fade/fadeInOut.animation.mjs +0 -0
  232. /package/{esm2022 → esm2020}/common/animations/flash/flash.animation.mjs +0 -0
  233. /package/{esm2022 → esm2020}/common/animations/headshake/headshake.animation.mjs +0 -0
  234. /package/{esm2022 → esm2020}/common/animations/jello/jello.animation.mjs +0 -0
  235. /package/{esm2022 → esm2020}/common/animations/pulse/pulse.animation.mjs +0 -0
  236. /package/{esm2022 → esm2020}/common/animations/rotate/rotate.animation.mjs +0 -0
  237. /package/{esm2022 → esm2020}/common/covalent-core-common.mjs +0 -0
  238. /package/{esm2022 → esm2020}/common/forms/validators/validators.mjs +0 -0
  239. /package/{esm2022 → esm2020}/common/functions/clipboard.mjs +0 -0
  240. /package/{esm2022 → esm2020}/common/functions/file.mjs +0 -0
  241. /package/{esm2022 → esm2020}/common/public_api.mjs +0 -0
  242. /package/{esm2022 → esm2020}/covalent-core.mjs +0 -0
  243. /package/{esm2022 → esm2020}/dialogs/covalent-core-dialogs.mjs +0 -0
  244. /package/{esm2022 → esm2020}/dialogs/public_api.mjs +0 -0
  245. /package/{esm2022 → esm2020}/dynamic-menu/covalent-core-dynamic-menu.mjs +0 -0
  246. /package/{esm2022 → esm2020}/dynamic-menu/dynamic-menu.menu.mjs +0 -0
  247. /package/{esm2022 → esm2020}/dynamic-menu/public_api.mjs +0 -0
  248. /package/{esm2022 → esm2020}/file/covalent-core-file.mjs +0 -0
  249. /package/{esm2022 → esm2020}/file/public_api.mjs +0 -0
  250. /package/{esm2022 → esm2020}/json-formatter/collapse.animation.mjs +0 -0
  251. /package/{esm2022 → esm2020}/json-formatter/covalent-core-json-formatter.mjs +0 -0
  252. /package/{esm2022 → esm2020}/json-formatter/public_api.mjs +0 -0
  253. /package/{esm2022 → esm2020}/layout/covalent-core-layout.mjs +0 -0
  254. /package/{esm2022 → esm2020}/layout/public_api.mjs +0 -0
  255. /package/{esm2022 → esm2020}/loading/covalent-core-loading.mjs +0 -0
  256. /package/{esm2022 → esm2020}/loading/public_api.mjs +0 -0
  257. /package/{esm2022 → esm2020}/menu/covalent-core-menu.mjs +0 -0
  258. /package/{esm2022 → esm2020}/menu/public_api.mjs +0 -0
  259. /package/{esm2022 → esm2020}/message/collapse.animation.mjs +0 -0
  260. /package/{esm2022 → esm2020}/message/covalent-core-message.mjs +0 -0
  261. /package/{esm2022 → esm2020}/message/public_api.mjs +0 -0
  262. /package/{esm2022 → esm2020}/public_api.mjs +0 -0
  263. /package/{esm2022 → esm2020}/search/covalent-core-search.mjs +0 -0
  264. /package/{esm2022 → esm2020}/search/public_api.mjs +0 -0
  265. /package/{esm2022 → esm2020}/side-sheet/covalent-core-side-sheet.mjs +0 -0
  266. /package/{esm2022 → esm2020}/side-sheet/public_api.mjs +0 -0
  267. /package/{esm2022 → esm2020}/side-sheet/side-sheet.animation.mjs +0 -0
  268. /package/{esm2022 → esm2020}/user-profile/covalent-core-user-profile.mjs +0 -0
  269. /package/{esm2022 → esm2020}/user-profile/public_api.mjs +0 -0
  270. /package/{fesm2022 → fesm2015}/covalent-core.mjs +0 -0
  271. /package/{fesm2022 → fesm2015}/covalent-core.mjs.map +0 -0
@@ -30,5 +30,5 @@ export declare class TdBreadcrumbsComponent implements OnInit, AfterContentInit,
30
30
  private setCrumbIcons;
31
31
  private _calculateVisibility;
32
32
  static ɵfac: i0.ɵɵFactoryDeclaration<TdBreadcrumbsComponent, never>;
33
- static ɵcmp: i0.ɵɵComponentDeclaration<TdBreadcrumbsComponent, "td-breadcrumbs", never, { "separatorIcon": { "alias": "separatorIcon"; "required": false; }; }, {}, ["_breadcrumbs"], ["*"], false, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<TdBreadcrumbsComponent, "td-breadcrumbs", never, { "separatorIcon": "separatorIcon"; }, {}, ["_breadcrumbs"], ["*"], false, never>;
34
34
  }
@@ -1,41 +1,7 @@
1
1
  $mat-font-url: 'styles/font/' !default;
2
2
 
3
3
  @mixin covalent-material-icons() {
4
- @font-face {
5
- font-family: 'Material Icons';
6
- font-style: normal;
7
- font-weight: 400;
8
- src: url($mat-font-url + 'MaterialIcons-Regular-v48.woff2') format('woff2');
9
- }
10
-
11
- .material-icons {
12
- /* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */
13
- font-family: 'Material Icons';
14
- font-weight: normal;
15
- font-style: normal;
16
- font-size: 24px; /* Preferred icon size */
17
- display: inline-block;
18
- width: 1em;
19
- height: 1em;
20
- line-height: 1;
21
- text-transform: none;
22
- letter-spacing: normal;
23
- word-wrap: normal;
24
- white-space: nowrap;
25
- direction: ltr;
26
-
27
- /* Support for all WebKit browsers. */
28
- -webkit-font-smoothing: antialiased;
29
-
30
- /* Support for Safari and Chrome. */
31
- text-rendering: optimizeLegibility;
32
-
33
- /* Support for Firefox. */
34
- -moz-osx-font-smoothing: grayscale;
35
-
36
- /* Support for IE. */
37
- font-feature-settings: 'liga';
38
- }
4
+ @import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block');
39
5
 
40
6
  // Ensure our size prevails over material
41
7
  mat-icon.material-icons {
@@ -0,0 +1,223 @@
1
+ # TdDialogService
2
+
3
+ Service provided with methods that wrap the @angular/material [MatDialog] service and provide an easier experience for simple dialogs.
4
+
5
+ Note: if no [ViewContainerRef] is provided, [TdDialogService] will throw an error.
6
+
7
+ <br/>
8
+
9
+ ## API Summary
10
+
11
+ #### Methods
12
+
13
+ - openAlert: function(IAlertConfig): MatDialogRef<TdAlertDialogComponent>
14
+ - Opens an alert dialog with the provided config.
15
+ - openConfirm: function(IConfirmConfig): MatDialogRef<TdConfirmDialogComponent>
16
+ - Opens a confirm dialog with the provided config.
17
+ - openPrompt: function(IPromptConfig): MatDialogRef<TdPromptDialogComponent>
18
+ - Opens a prompt dialog with the provided config.
19
+ - open: function<T>(component: ComponentType<T>, config: MatDialogConfig): MatDialogRef<T>
20
+ - Wrapper function over the open() method in MatDialog. Opens a modal dialog containing the given component.
21
+ - openDraggable: function<T>(IDraggableConfig<T>): MatDialogRef<T>
22
+ - Opens a draggable dialog containing the given component
23
+ - closeAll: function()
24
+ - Wrapper function over the closeAll() method in MatDialog. Closes all of the currently-open dialogs.
25
+
26
+ ## Usage
27
+
28
+ TypeScript
29
+
30
+ ```typescript
31
+ import { ViewContainerRef } from '@angular/core';
32
+ import { TdDialogService } from '@covalent/core/dialogs';
33
+ ...
34
+ })
35
+ export class Demo {
36
+ constructor(private _dialogService: TdDialogService,
37
+ private _viewContainerRef: ViewContainerRef) {
38
+ ...
39
+ }
40
+
41
+ openAlert(): void {
42
+ this._dialogService.openAlert({
43
+ message: 'This is how simple it is to create an alert with this wrapper service.',
44
+ disableClose: true | false, // defaults to false
45
+ viewContainerRef: this._viewContainerRef, //OPTIONAL
46
+ title: 'Alert', //OPTIONAL, hides if not provided
47
+ closeButton: 'Close', //OPTIONAL, defaults to 'CLOSE'
48
+ width: '400px', //OPTIONAL, defaults to 400px
49
+ });
50
+ }
51
+
52
+ openConfirm(): void {
53
+ this._dialogService.openConfirm({
54
+ message: 'This is how simple it is to create a confirm with this wrapper service. Do you agree?',
55
+ disableClose: true | false, // defaults to false
56
+ viewContainerRef: this._viewContainerRef, //OPTIONAL
57
+ title: 'Confirm', //OPTIONAL, hides if not provided
58
+ cancelButton: 'Disagree', //OPTIONAL, defaults to 'CANCEL'
59
+ acceptButton: 'Agree', //OPTIONAL, defaults to 'ACCEPT'
60
+ isDestructive: false, //OPTIONAL, defaults to false
61
+ width: '500px', //OPTIONAL, defaults to 400px
62
+ }).afterClosed().subscribe((accept: boolean) => {
63
+ if (accept) {
64
+ // DO SOMETHING
65
+ } else {
66
+ // DO SOMETHING ELSE
67
+ }
68
+ });
69
+ }
70
+
71
+ openPrompt(): void {
72
+ this._dialogService.openPrompt({
73
+ message: 'This is how simple it is to create a prompt with this wrapper service. Prompt something.',
74
+ disableClose: true | false, // defaults to false
75
+ viewContainerRef: this._viewContainerRef, //OPTIONAL
76
+ title: 'Prompt', //OPTIONAL, hides if not provided
77
+ value: 'Prepopulated value', //OPTIONAL
78
+ cancelButton: 'Cancel', //OPTIONAL, defaults to 'CANCEL'
79
+ acceptButton: 'Ok', //OPTIONAL, defaults to 'ACCEPT'
80
+ width: '400px', //OPTIONAL, defaults to 400px
81
+ }).afterClosed().subscribe((newValue: string) => {
82
+ if (newValue) {
83
+ // DO SOMETHING
84
+ } else {
85
+ // DO SOMETHING ELSE
86
+ }
87
+ });
88
+ }
89
+
90
+ openDraggable(): void {
91
+ this._dialogService.openDraggable({
92
+ component: DraggableDemoComponent,
93
+ config: { height: '300px' },
94
+ // CSS selectors of element(s) inside the component meant to be drag handle(s)
95
+ dragHandleSelectors: ['.drag-handle'],
96
+ // Class that will be added to the component signifying drag-ability
97
+ draggableClass: 'custom-class',
98
+ });
99
+ }
100
+ }
101
+ ```
102
+
103
+ ```typescript
104
+ import { Component } from '@angular/core';
105
+
106
+ @Component({
107
+ selector: 'app-draggable-demo',
108
+ template: `
109
+ <h2>Draggable dialog</h2>
110
+ <p>Draggable via the drag handle</p>
111
+ <button mat-icon-button class="drag-handle">
112
+ <mat-icon>drag_handle</mat-icon>
113
+ </button>
114
+ `,
115
+ })
116
+ export class DraggableDemoComponent {}
117
+ ```
118
+
119
+ ## Setup
120
+
121
+ Import the [CovalentDialogsModule] in your NgModule:
122
+
123
+ ```typescript
124
+ import { CovalentDialogsModule } from '@covalent/core/dialogs';
125
+
126
+ @NgModule({
127
+ imports: [
128
+ CovalentDialogsModule,
129
+ ...
130
+ ],
131
+ ...
132
+ })
133
+ export class MyModule {}
134
+ ```
135
+
136
+ After that, just inject [TdDialogService] and use it for your dialogs.
137
+
138
+ # ResizableDraggableDialog
139
+
140
+ A utility to make a draggable dialog resizable.
141
+
142
+ ## Usage
143
+
144
+ ```ts
145
+ constructor(
146
+ private _dialogService: TdDialogService,
147
+ @Inject(DOCUMENT) private _document: any,
148
+ private _renderer2: Renderer2,
149
+ ) {}
150
+ ```
151
+
152
+ ```ts
153
+ const {
154
+ matDialogRef,
155
+ dragRefSubject,
156
+ }: IDraggableRefs<DraggableResizableDialogComponent> = this._dialogService.openDraggable(
157
+ {
158
+ component: DraggableResizableDialogComponent,
159
+ // CSS selectors of element(s) inside the component meant to be drag handle(s)
160
+ dragHandleSelectors: ['.drag-handle'],
161
+ }
162
+ );
163
+
164
+ let resizableDraggableDialog: ResizableDraggableDialog;
165
+ dragRefSubject.subscribe((dragRf: DragRef) => {
166
+ resizableDraggableDialog = new ResizableDraggableDialog(
167
+ this._document,
168
+ this._renderer2,
169
+ matDialogRef,
170
+ dragRf
171
+ );
172
+ });
173
+
174
+ // Detach resize-ability event listeners after dialog closes
175
+ matDialogRef.afterClosed().subscribe(() => resizableDraggableDialog.detach());
176
+ ```
177
+
178
+ # TdWindowDialogComponent
179
+
180
+ A component that can be utilized to create a dialog with a toolbar
181
+
182
+ ## API Summary
183
+
184
+ #### Inputs
185
+
186
+ - title: string
187
+ - Title that appears in toolbar
188
+ - closeLabel: string
189
+ - Label to be used on close button
190
+ - toolbarColor: ThemePalette
191
+ - Toolbar color
192
+
193
+ #### Outputs
194
+
195
+ - closed: string
196
+ - Emitted when close button is clicked
197
+
198
+ ## Usage
199
+
200
+ ```ts
201
+ @Component({
202
+ template: `
203
+ <td-window-dialog
204
+ [title]="'Title'"
205
+ [toolbarColor]="'accent'"
206
+ [closeLabel]="'Close'"
207
+ (closed)="closed.emit()"
208
+ >
209
+ <p>Comes with a handy toolbar</p>
210
+ </td-window-dialog>
211
+ `,
212
+ })
213
+ export class DraggableResizableWindowDialogComponent {
214
+ @Output() closed: EventEmitter<void> = new EventEmitter();
215
+ }
216
+ ```
217
+
218
+ ```ts
219
+ const matDialogRef: MatDialogRef<DraggableResizableWindowDialogComponent> =
220
+ this._dialogService.open(DraggableResizableWindowDialogComponent);
221
+ // listen to close event
222
+ matDialogRef.componentInstance.closed.subscribe(() => matDialogRef.close());
223
+ ```
@@ -12,5 +12,5 @@ export declare class TdWindowDialogComponent {
12
12
  toolbarHeight: number;
13
13
  toggleDockedState(): void;
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<TdWindowDialogComponent, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<TdWindowDialogComponent, "td-window-dialog", never, { "toolbarColor": { "alias": "toolbarColor"; "required": false; }; "docked": { "alias": "docked"; "required": false; }; "title": { "alias": "title"; "required": false; }; "toggleDockedStateLabel": { "alias": "toggleDockedStateLabel"; "required": false; }; "closeLabel": { "alias": "closeLabel"; "required": false; }; }, { "dockToggled": "dockToggled"; "closed": "closed"; }, never, ["*"], false, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<TdWindowDialogComponent, "td-window-dialog", never, { "toolbarColor": "toolbarColor"; "docked": "docked"; "title": "title"; "toggleDockedStateLabel": "toggleDockedStateLabel"; "closeLabel": "closeLabel"; }, { "dockToggled": "dockToggled"; "closed": "closed"; }, never, ["*"], false, never>;
16
16
  }
@@ -8,5 +8,5 @@ export declare class TdDynamicMenuItemComponent {
8
8
  childMenu: MatMenu;
9
9
  emitClicked(event: ITdDynamicMenuLinkClickEvent): void;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicMenuItemComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicMenuItemComponent, "td-dynamic-menu-item", never, { "items": { "alias": "items"; "required": false; }; }, { "itemClicked": "itemClicked"; }, never, never, false, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicMenuItemComponent, "td-dynamic-menu-item", never, { "items": "items"; }, { "itemClicked": "itemClicked"; }, never, never, false, never>;
12
12
  }
@@ -6,5 +6,5 @@ export declare class TdDynamicMenuLinkComponent {
6
6
  itemClicked: EventEmitter<ITdDynamicMenuLinkClickEvent>;
7
7
  emitClicked(): void;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicMenuLinkComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicMenuLinkComponent, "td-dynamic-menu-link", never, { "item": { "alias": "item"; "required": false; }; }, { "itemClicked": "itemClicked"; }, never, never, false, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicMenuLinkComponent, "td-dynamic-menu-link", never, { "item": "item"; }, { "itemClicked": "itemClicked"; }, never, never, false, never>;
10
10
  }
@@ -7,5 +7,5 @@ export declare class TdDynamicMenuComponent {
7
7
  itemClicked: EventEmitter<ITdDynamicMenuLinkClickEvent>;
8
8
  emitClicked(event: ITdDynamicMenuLinkClickEvent): void;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicMenuComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicMenuComponent, "td-dynamic-menu", never, { "trigger": { "alias": "trigger"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "itemClicked": "itemClicked"; }, never, never, false, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicMenuComponent, "td-dynamic-menu", never, { "trigger": "trigger"; "items": "items"; }, { "itemClicked": "itemClicked"; }, never, never, false, never>;
11
11
  }
@@ -0,0 +1,92 @@
1
+ import { Component, ElementRef, HostBinding, ChangeDetectionStrategy, ChangeDetectorRef, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/material/icon";
5
+ export class TdBreadcrumbComponent {
6
+ // Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'
7
+ get separatorIcon() {
8
+ return this._separatorIcon;
9
+ }
10
+ set separatorIcon(separatorIcon) {
11
+ this._separatorIcon = separatorIcon;
12
+ setTimeout(() => {
13
+ this._changeDetectorRef.markForCheck();
14
+ });
15
+ }
16
+ // Should show the right chevron or not before the label
17
+ get displayIcon() {
18
+ return this._displayIcon;
19
+ }
20
+ set displayIcon(displayIcon) {
21
+ this._displayIcon = displayIcon;
22
+ setTimeout(() => {
23
+ this._changeDetectorRef.markForCheck();
24
+ });
25
+ }
26
+ get displayCrumb() {
27
+ return this._displayCrumb;
28
+ }
29
+ /**
30
+ * Whether to display the crumb or not
31
+ */
32
+ set displayCrumb(shouldDisplay) {
33
+ this._displayCrumb = shouldDisplay;
34
+ setTimeout(() => {
35
+ this._changeDetectorRef.markForCheck();
36
+ });
37
+ }
38
+ /**
39
+ * Width of the DOM element of the crumb
40
+ */
41
+ get width() {
42
+ return this._width;
43
+ }
44
+ /**
45
+ * Gets the display style of the crumb
46
+ */
47
+ get displayBinding() {
48
+ // Set the display to none on the component, just in case the end user is hiding
49
+ // and showing them instead of the component doing itself for reasons like responsive
50
+ return this._displayCrumb ? undefined : 'none';
51
+ }
52
+ constructor(_elementRef, _changeDetectorRef) {
53
+ this._elementRef = _elementRef;
54
+ this._changeDetectorRef = _changeDetectorRef;
55
+ this._displayCrumb = true;
56
+ this._width = 0;
57
+ this._displayIcon = true;
58
+ this._separatorIcon = 'chevron_right';
59
+ this.matButtonClass = true;
60
+ this.tdBreadCrumbClass = true;
61
+ }
62
+ ngAfterViewInit() {
63
+ // set the width from the actual rendered DOM element
64
+ setTimeout(() => {
65
+ this._width = (this._elementRef.nativeElement).getBoundingClientRect().width;
66
+ this._changeDetectorRef.markForCheck();
67
+ });
68
+ }
69
+ /**
70
+ * Stop click propagation when clicking on icon
71
+ */
72
+ _handleIconClick(event) {
73
+ event.stopPropagation();
74
+ event.preventDefault();
75
+ }
76
+ }
77
+ TdBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdBreadcrumbComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
78
+ TdBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TdBreadcrumbComponent, selector: "td-breadcrumb, a[td-breadcrumb]", host: { properties: { "class.mdc-button": "this.matButtonClass", "class.td-breadcrumb": "this.tdBreadCrumbClass", "style.display": "this.displayBinding" } }, ngImport: i0, template: "<ng-content></ng-content>\n<mat-icon\n *ngIf=\"displayIcon\"\n class=\"td-breadcrumb-separator-icon\"\n [style.cursor]=\"'default'\"\n (click)=\"_handleIconClick($event)\"\n >{{ separatorIcon }}</mat-icon\n>\n", styles: [":host.td-breadcrumb{display:inline-block;box-sizing:border-box;flex-direction:row;align-items:center;align-content:center;max-width:100%;justify-content:flex-end}:host.td-breadcrumb ::ng-deep>*{margin:0 10px}:host .td-breadcrumb-separator-icon{display:inline-flex;vertical-align:middle}:host.mat-button{min-width:0;padding:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdBreadcrumbComponent, decorators: [{
80
+ type: Component,
81
+ args: [{ selector: 'td-breadcrumb, a[td-breadcrumb]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n<mat-icon\n *ngIf=\"displayIcon\"\n class=\"td-breadcrumb-separator-icon\"\n [style.cursor]=\"'default'\"\n (click)=\"_handleIconClick($event)\"\n >{{ separatorIcon }}</mat-icon\n>\n", styles: [":host.td-breadcrumb{display:inline-block;box-sizing:border-box;flex-direction:row;align-items:center;align-content:center;max-width:100%;justify-content:flex-end}:host.td-breadcrumb ::ng-deep>*{margin:0 10px}:host .td-breadcrumb-separator-icon{display:inline-flex;vertical-align:middle}:host.mat-button{min-width:0;padding:0}\n"] }]
82
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { matButtonClass: [{
83
+ type: HostBinding,
84
+ args: ['class.mdc-button']
85
+ }], tdBreadCrumbClass: [{
86
+ type: HostBinding,
87
+ args: ['class.td-breadcrumb']
88
+ }], displayBinding: [{
89
+ type: HostBinding,
90
+ args: ['style.display']
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvYnJlYWRjcnVtYnMvc3JjL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvYnJlYWRjcnVtYnMvc3JjL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBRVgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQzs7OztBQVF2QixNQUFNLE9BQU8scUJBQXFCO0lBU2hDLDJFQUEyRTtJQUMzRSxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFXLGFBQWEsQ0FBQyxhQUFxQjtRQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztRQUNwQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFXLFdBQVcsQ0FBQyxXQUFvQjtRQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztRQUNoQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFlBQVksQ0FBQyxhQUFzQjtRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksY0FBYztRQUNoQixnRkFBZ0Y7UUFDaEYscUZBQXFGO1FBQ3JGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDakQsQ0FBQztJQUVELFlBQ1UsV0FBdUIsRUFDdkIsa0JBQXFDO1FBRHJDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUEvRHZDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixtQkFBYyxHQUFHLGVBQWUsQ0FBQztRQUVSLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ25CLHNCQUFpQixHQUFHLElBQUksQ0FBQztJQTBEMUQsQ0FBQztJQUVKLGVBQWU7UUFDYixxREFBcUQ7UUFDckQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLEdBQWlCLENBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUM5QixDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLEtBQVk7UUFDM0IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDOzttSEFuRlUscUJBQXFCO3VHQUFyQixxQkFBcUIscU9DZmxDLHdOQVFBOzRGRE9hLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxpQ0FBaUMsbUJBRzFCLHVCQUF1QixDQUFDLE1BQU07aUlBUWQsY0FBYztzQkFBOUMsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBQ0ssaUJBQWlCO3NCQUFwRCxXQUFXO3VCQUFDLHFCQUFxQjtnQkFpRDlCLGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLWJyZWFkY3J1bWIsIGFbdGQtYnJlYWRjcnVtYl0nLFxuICBzdHlsZVVybHM6IFsnLi9icmVhZGNydW1iLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRkQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIF9kaXNwbGF5Q3J1bWIgPSB0cnVlO1xuICBwcml2YXRlIF93aWR0aCA9IDA7XG4gIHByaXZhdGUgX2Rpc3BsYXlJY29uID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfc2VwYXJhdG9ySWNvbiA9ICdjaGV2cm9uX3JpZ2h0JztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1kYy1idXR0b24nKSBtYXRCdXR0b25DbGFzcyA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MudGQtYnJlYWRjcnVtYicpIHRkQnJlYWRDcnVtYkNsYXNzID0gdHJ1ZTtcblxuICAvLyBTZXRzIHRoZSBpY29uIHVybCBzaG93biBiZXR3ZWVuIGJyZWFkY3J1bWJzLiBEZWZhdWx0cyB0byAnY2hldnJvbl9yaWdodCdcbiAgcHVibGljIGdldCBzZXBhcmF0b3JJY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcGFyYXRvckljb247XG4gIH1cbiAgcHVibGljIHNldCBzZXBhcmF0b3JJY29uKHNlcGFyYXRvckljb246IHN0cmluZykge1xuICAgIHRoaXMuX3NlcGFyYXRvckljb24gPSBzZXBhcmF0b3JJY29uO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBTaG91bGQgc2hvdyB0aGUgcmlnaHQgY2hldnJvbiBvciBub3QgYmVmb3JlIHRoZSBsYWJlbFxuICBwdWJsaWMgZ2V0IGRpc3BsYXlJY29uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5SWNvbjtcbiAgfVxuICBwdWJsaWMgc2V0IGRpc3BsYXlJY29uKGRpc3BsYXlJY29uOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzcGxheUljb24gPSBkaXNwbGF5SWNvbjtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlDcnVtYigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheUNydW1iO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgY3J1bWIgb3Igbm90XG4gICAqL1xuICBzZXQgZGlzcGxheUNydW1iKHNob3VsZERpc3BsYXk6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNwbGF5Q3J1bWIgPSBzaG91bGREaXNwbGF5O1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogV2lkdGggb2YgdGhlIERPTSBlbGVtZW50IG9mIHRoZSBjcnVtYlxuICAgKi9cbiAgZ2V0IHdpZHRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZHRoO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRpc3BsYXkgc3R5bGUgb2YgdGhlIGNydW1iXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKVxuICBnZXQgZGlzcGxheUJpbmRpbmcoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBTZXQgdGhlIGRpc3BsYXkgdG8gbm9uZSBvbiB0aGUgY29tcG9uZW50LCBqdXN0IGluIGNhc2UgdGhlIGVuZCB1c2VyIGlzIGhpZGluZ1xuICAgIC8vIGFuZCBzaG93aW5nIHRoZW0gaW5zdGVhZCBvZiB0aGUgY29tcG9uZW50IGRvaW5nIGl0c2VsZiBmb3IgcmVhc29ucyBsaWtlIHJlc3BvbnNpdmVcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheUNydW1iID8gdW5kZWZpbmVkIDogJ25vbmUnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBzZXQgdGhlIHdpZHRoIGZyb20gdGhlIGFjdHVhbCByZW5kZXJlZCBET00gZWxlbWVudFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fd2lkdGggPSAoPEhUTUxFbGVtZW50PihcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICApKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgY2xpY2sgcHJvcGFnYXRpb24gd2hlbiBjbGlja2luZyBvbiBpY29uXG4gICAqL1xuICBfaGFuZGxlSWNvbkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxtYXQtaWNvblxuICAqbmdJZj1cImRpc3BsYXlJY29uXCJcbiAgY2xhc3M9XCJ0ZC1icmVhZGNydW1iLXNlcGFyYXRvci1pY29uXCJcbiAgW3N0eWxlLmN1cnNvcl09XCInZGVmYXVsdCdcIlxuICAoY2xpY2spPVwiX2hhbmRsZUljb25DbGljaygkZXZlbnQpXCJcbiAgPnt7IHNlcGFyYXRvckljb24gfX08L21hdC1pY29uXG4+XG4iXX0=
@@ -0,0 +1,131 @@
1
+ import { Component, ContentChildren, QueryList, ChangeDetectionStrategy, ChangeDetectorRef, ElementRef, Input, HostBinding, } from '@angular/core';
2
+ import { fromEvent, Subject } from 'rxjs';
3
+ import { debounceTime, startWith, takeUntil } from 'rxjs/operators';
4
+ import { TdBreadcrumbComponent } from './breadcrumb/breadcrumb.component';
5
+ import * as i0 from "@angular/core";
6
+ export class TdBreadcrumbsComponent {
7
+ /**
8
+ * Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'.
9
+ */
10
+ set separatorIcon(separatorIcon) {
11
+ this._separatorIcon = separatorIcon;
12
+ this.setCrumbIcons();
13
+ }
14
+ get separatorIcon() {
15
+ return this._separatorIcon;
16
+ }
17
+ constructor(_elementRef, _changeDetectorRef) {
18
+ this._elementRef = _elementRef;
19
+ this._changeDetectorRef = _changeDetectorRef;
20
+ this._resizing = false;
21
+ this._separatorIcon = 'chevron_right';
22
+ this._destroy$ = new Subject();
23
+ this.tdBreadCrumbsClass = true;
24
+ // the list of hidden breadcrumbs not shown right now (responsive)
25
+ this.hiddenBreadcrumbs = [];
26
+ }
27
+ ngOnInit() {
28
+ fromEvent(window, 'resize')
29
+ .pipe(debounceTime(10), takeUntil(this._destroy$))
30
+ .subscribe(() => {
31
+ if (!this._resizing) {
32
+ this._resizing = true;
33
+ setTimeout(() => {
34
+ this._calculateVisibility();
35
+ this._resizing = false;
36
+ this._changeDetectorRef.markForCheck();
37
+ }, 100);
38
+ }
39
+ });
40
+ }
41
+ ngAfterContentInit() {
42
+ // Note: doesn't need to unsubscribe since `QueryList.changes`
43
+ // gets completed by Angular when the view is destroyed.
44
+ this._breadcrumbs.changes
45
+ .pipe(startWith(this._breadcrumbs))
46
+ .subscribe(() => {
47
+ this.setCrumbIcons();
48
+ this._changeDetectorRef.markForCheck();
49
+ });
50
+ }
51
+ ngOnDestroy() {
52
+ this._destroy$.next();
53
+ }
54
+ /*
55
+ * Current width of the element container
56
+ */
57
+ get nativeElementWidth() {
58
+ const element = this._elementRef.nativeElement;
59
+ // Need to take into account border, margin and padding that might be around all the crumbs
60
+ const style = window.getComputedStyle(element);
61
+ const borderLeft = parseInt(style.borderLeft, 10);
62
+ const borderRight = parseInt(style.borderRight, 10);
63
+ const marginLeft = parseInt(style.marginLeft, 10);
64
+ const marginRight = parseInt(style.marginRight, 10);
65
+ const paddingLeft = parseInt(style.paddingLeft, 10);
66
+ const paddingRight = parseInt(style.paddingRight, 10);
67
+ return (element.getBoundingClientRect().width -
68
+ borderLeft -
69
+ borderRight -
70
+ marginLeft -
71
+ marginRight -
72
+ paddingLeft -
73
+ paddingRight);
74
+ }
75
+ /**
76
+ * The total count of individual breadcrumbs
77
+ */
78
+ get count() {
79
+ return this._breadcrumbs ? this._breadcrumbs.length : 0;
80
+ }
81
+ /**
82
+ * Set the crumb icon separators
83
+ */
84
+ setCrumbIcons() {
85
+ if (this._breadcrumbs) {
86
+ const breadcrumbArray = this._breadcrumbs.toArray();
87
+ breadcrumbArray.forEach((breadcrumb, index) => {
88
+ breadcrumb.separatorIcon = this.separatorIcon;
89
+ // don't show the icon on the last breadcrumb
90
+ breadcrumb.displayIcon = index < breadcrumbArray.length - 1;
91
+ });
92
+ }
93
+ }
94
+ _calculateVisibility() {
95
+ const crumbsArray = this._breadcrumbs.toArray();
96
+ let crumbWidthSum = 0;
97
+ const hiddenCrumbs = [];
98
+ // loop through crumbs in reverse order to calculate which ones should be removed
99
+ for (let i = crumbsArray.length - 1; i >= 0; i--) {
100
+ const breadcrumb = crumbsArray[i];
101
+ // if crumb exceeds width, then we skip it from the sum and add it into the hiddencrumbs array
102
+ // and hide it
103
+ if (crumbWidthSum + breadcrumb.width > this.nativeElementWidth) {
104
+ breadcrumb.displayCrumb = false;
105
+ hiddenCrumbs.push(breadcrumb);
106
+ }
107
+ else {
108
+ // else we show it
109
+ breadcrumb.displayCrumb = true;
110
+ }
111
+ crumbWidthSum += breadcrumb.width;
112
+ }
113
+ this.hiddenBreadcrumbs = hiddenCrumbs;
114
+ this._changeDetectorRef.markForCheck();
115
+ }
116
+ }
117
+ TdBreadcrumbsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdBreadcrumbsComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
118
+ TdBreadcrumbsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TdBreadcrumbsComponent, selector: "td-breadcrumbs", inputs: { separatorIcon: "separatorIcon" }, host: { properties: { "class.td-breadcrumbs": "this.tdBreadCrumbsClass" } }, queries: [{ propertyName: "_breadcrumbs", predicate: TdBreadcrumbComponent, descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;align-items:center}:host.td-breadcrumbs{white-space:nowrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdBreadcrumbsComponent, decorators: [{
120
+ type: Component,
121
+ args: [{ selector: 'td-breadcrumbs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;align-items:center}:host.td-breadcrumbs{white-space:nowrap}\n"] }]
122
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { tdBreadCrumbsClass: [{
123
+ type: HostBinding,
124
+ args: ['class.td-breadcrumbs']
125
+ }], _breadcrumbs: [{
126
+ type: ContentChildren,
127
+ args: [TdBreadcrumbComponent, { descendants: true }]
128
+ }], separatorIcon: [{
129
+ type: Input
130
+ }] } });
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2JyZWFkY3J1bWJzL3NyYy9icmVhZGNydW1icy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvYnJlYWRjcnVtYnMvc3JjL2JyZWFkY3J1bWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFNBQVMsRUFHVCx1QkFBdUIsRUFFdkIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixLQUFLLEVBQ0wsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQVExRSxNQUFNLE9BQU8sc0JBQXNCO0lBZWpDOztPQUVHO0lBQ0gsSUFBb0IsYUFBYSxDQUFDLGFBQXFCO1FBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsWUFDVSxXQUF1QixFQUN2QixrQkFBcUM7UUFEckMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQXpCdkMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixtQkFBYyxHQUFHLGVBQWUsQ0FBQztRQUNqQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVILHVC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QXVCLENBQUMsTUFBTTtpSUFTVixrQkFBa0I7c0JBQXRELFdBQVc7dUJBQUMsc0JBQXNCO2dCQUluQyxZQUFZO3NCQURYLGVBQWU7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQVF6QyxhQUFhO3NCQUFoQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIEhvc3RCaW5kaW5nLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBUZEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1icmVhZGNydW1icycsXG4gIHN0eWxlVXJsczogWycuL2JyZWFkY3J1bWJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1icy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUZEJyZWFkY3J1bWJzQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBfcmVzaXppbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2VwYXJhdG9ySWNvbiA9ICdjaGV2cm9uX3JpZ2h0JztcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGQtYnJlYWRjcnVtYnMnKSB0ZEJyZWFkQ3J1bWJzQ2xhc3MgPSB0cnVlO1xuXG4gIC8vIGFsbCB0aGUgc3ViIGNvbXBvbmVudHMsIHdoaWNoIGFyZSB0aGUgaW5kaXZpZHVhbCBicmVhZGNydW1ic1xuICBAQ29udGVudENoaWxkcmVuKFRkQnJlYWRjcnVtYkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBfYnJlYWRjcnVtYnMhOiBRdWVyeUxpc3Q8VGRCcmVhZGNydW1iQ29tcG9uZW50PjtcbiAgLy8gdGhlIGxpc3Qgb2YgaGlkZGVuIGJyZWFkY3J1bWJzIG5vdCBzaG93biByaWdodCBub3cgKHJlc3BvbnNpdmUpXG4gIGhpZGRlbkJyZWFkY3J1bWJzOiBUZEJyZWFkY3J1bWJDb21wb25lbnRbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpY29uIHVybCBzaG93biBiZXR3ZWVuIGJyZWFkY3J1bWJzLiBEZWZhdWx0cyB0byAnY2hldnJvbl9yaWdodCcuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHNlcGFyYXRvckljb24oc2VwYXJhdG9ySWNvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2VwYXJhdG9ySWNvbiA9IHNlcGFyYXRvckljb247XG4gICAgdGhpcy5zZXRDcnVtYkljb25zKCk7XG4gIH1cbiAgcHVibGljIGdldCBzZXBhcmF0b3JJY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcGFyYXRvckljb247XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTApLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5fcmVzaXppbmcpIHtcbiAgICAgICAgICB0aGlzLl9yZXNpemluZyA9IHRydWU7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jYWxjdWxhdGVWaXNpYmlsaXR5KCk7XG4gICAgICAgICAgICB0aGlzLl9yZXNpemluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gTm90ZTogZG9lc24ndCBuZWVkIHRvIHVuc3Vic2NyaWJlIHNpbmNlIGBRdWVyeUxpc3QuY2hhbmdlc2BcbiAgICAvLyBnZXRzIGNvbXBsZXRlZCBieSBBbmd1bGFyIHdoZW4gdGhlIHZpZXcgaXMgZGVzdHJveWVkLlxuICAgIHRoaXMuX2JyZWFkY3J1bWJzLmNoYW5nZXNcbiAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLl9icmVhZGNydW1icykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRDcnVtYkljb25zKCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICAvKlxuICAgKiBDdXJyZW50IHdpZHRoIG9mIHRoZSBlbGVtZW50IGNvbnRhaW5lclxuICAgKi9cbiAgZ2V0IG5hdGl2ZUVsZW1lbnRXaWR0aCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAvLyBOZWVkIHRvIHRha2UgaW50byBhY2NvdW50IGJvcmRlciwgbWFyZ2luIGFuZCBwYWRkaW5nIHRoYXQgbWlnaHQgYmUgYXJvdW5kIGFsbCB0aGUgY3J1bWJzXG4gICAgY29uc3Qgc3R5bGU6IENTU1N0eWxlRGVjbGFyYXRpb24gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICBjb25zdCBib3JkZXJMZWZ0OiBudW1iZXIgPSBwYXJzZUludChzdHlsZS5ib3JkZXJMZWZ0LCAxMCk7XG4gICAgY29uc3QgYm9yZGVyUmlnaHQ6IG51bWJlciA9IHBhcnNlSW50KHN0eWxlLmJvcmRlclJpZ2h0LCAxMCk7XG4gICAgY29uc3QgbWFyZ2luTGVmdDogbnVtYmVyID0gcGFyc2VJbnQoc3R5bGUubWFyZ2luTGVmdCwgMTApO1xuICAgIGNvbnN0IG1hcmdpblJpZ2h0OiBudW1iZXIgPSBwYXJzZUludChzdHlsZS5tYXJnaW5SaWdodCwgMTApO1xuICAgIGNvbnN0IHBhZGRpbmdMZWZ0OiBudW1iZXIgPSBwYXJzZUludChzdHlsZS5wYWRkaW5nTGVmdCwgMTApO1xuICAgIGNvbnN0IHBhZGRpbmdSaWdodDogbnVtYmVyID0gcGFyc2VJbnQoc3R5bGUucGFkZGluZ1JpZ2h0LCAxMCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAtXG4gICAgICBib3JkZXJMZWZ0IC1cbiAgICAgIGJvcmRlclJpZ2h0IC1cbiAgICAgIG1hcmdpbkxlZnQgLVxuICAgICAgbWFyZ2luUmlnaHQgLVxuICAgICAgcGFkZGluZ0xlZnQgLVxuICAgICAgcGFkZGluZ1JpZ2h0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgY291bnQgb2YgaW5kaXZpZHVhbCBicmVhZGNydW1ic1xuICAgKi9cbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJzID8gdGhpcy5fYnJlYWRjcnVtYnMubGVuZ3RoIDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNydW1iIGljb24gc2VwYXJhdG9yc1xuICAgKi9cbiAgcHJpdmF0ZSBzZXRDcnVtYkljb25zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9icmVhZGNydW1icykge1xuICAgICAgY29uc3QgYnJlYWRjcnVtYkFycmF5OiBUZEJyZWFkY3J1bWJDb21wb25lbnRbXSA9XG4gICAgICAgIHRoaXMuX2JyZWFkY3J1bWJzLnRvQXJyYXkoKTtcbiAgICAgIGJyZWFkY3J1bWJBcnJheS5mb3JFYWNoKFxuICAgICAgICAoYnJlYWRjcnVtYjogVGRCcmVhZGNydW1iQ29tcG9uZW50LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgYnJlYWRjcnVtYi5zZXBhcmF0b3JJY29uID0gdGhpcy5zZXBhcmF0b3JJY29uO1xuICAgICAgICAgIC8vIGRvbid0IHNob3cgdGhlIGljb24gb24gdGhlIGxhc3QgYnJlYWRjcnVtYlxuICAgICAgICAgIGJyZWFkY3J1bWIuZGlzcGxheUljb24gPSBpbmRleCA8IGJyZWFkY3J1bWJBcnJheS5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZVZpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgY29uc3QgY3J1bWJzQXJyYXk6IFRkQnJlYWRjcnVtYkNvbXBvbmVudFtdID0gdGhpcy5fYnJlYWRjcnVtYnMudG9BcnJheSgpO1xuICAgIGxldCBjcnVtYldpZHRoU3VtID0gMDtcbiAgICBjb25zdCBoaWRkZW5DcnVtYnM6IFRkQnJlYWRjcnVtYkNvbXBvbmVudFtdID0gW107XG4gICAgLy8gbG9vcCB0aHJvdWdoIGNydW1icyBpbiByZXZlcnNlIG9yZGVyIHRvIGNhbGN1bGF0ZSB3aGljaCBvbmVzIHNob3VsZCBiZSByZW1vdmVkXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gY3J1bWJzQXJyYXkubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGJyZWFkY3J1bWI6IFRkQnJlYWRjcnVtYkNvbXBvbmVudCA9IGNydW1ic0FycmF5W2ldO1xuXG4gICAgICAvLyBpZiBjcnVtYiBleGNlZWRzIHdpZHRoLCB0aGVuIHdlIHNraXAgaXQgZnJvbSB0aGUgc3VtIGFuZCBhZGQgaXQgaW50byB0aGUgaGlkZGVuY3J1bWJzIGFycmF5XG4gICAgICAvLyBhbmQgaGlkZSBpdFxuICAgICAgaWYgKGNydW1iV2lkdGhTdW0gKyBicmVhZGNydW1iLndpZHRoID4gdGhpcy5uYXRpdmVFbGVtZW50V2lkdGgpIHtcbiAgICAgICAgYnJlYWRjcnVtYi5kaXNwbGF5Q3J1bWIgPSBmYWxzZTtcbiAgICAgICAgaGlkZGVuQ3J1bWJzLnB1c2goYnJlYWRjcnVtYik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlbHNlIHdlIHNob3cgaXRcbiAgICAgICAgYnJlYWRjcnVtYi5kaXNwbGF5Q3J1bWIgPSB0cnVlO1xuICAgICAgfVxuICAgICAgY3J1bWJXaWR0aFN1bSArPSBicmVhZGNydW1iLndpZHRoO1xuICAgIH1cblxuICAgIHRoaXMuaGlkZGVuQnJlYWRjcnVtYnMgPSBoaWRkZW5DcnVtYnM7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
@@ -5,11 +5,11 @@ import { TdBreadcrumbsComponent } from './breadcrumbs.component';
5
5
  import { TdBreadcrumbComponent } from './breadcrumb/breadcrumb.component';
6
6
  import * as i0 from "@angular/core";
7
7
  export class CovalentBreadcrumbsModule {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CovalentBreadcrumbsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: CovalentBreadcrumbsModule, declarations: [TdBreadcrumbsComponent, TdBreadcrumbComponent], imports: [CommonModule, MatIconModule], exports: [TdBreadcrumbsComponent, TdBreadcrumbComponent] });
10
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CovalentBreadcrumbsModule, imports: [CommonModule, MatIconModule] });
11
8
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CovalentBreadcrumbsModule, decorators: [{
9
+ CovalentBreadcrumbsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentBreadcrumbsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ CovalentBreadcrumbsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CovalentBreadcrumbsModule, declarations: [TdBreadcrumbsComponent, TdBreadcrumbComponent], imports: [CommonModule, MatIconModule], exports: [TdBreadcrumbsComponent, TdBreadcrumbComponent] });
11
+ CovalentBreadcrumbsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentBreadcrumbsModule, imports: [CommonModule, MatIconModule] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentBreadcrumbsModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  imports: [CommonModule, MatIconModule],
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
17
17
  exports: [TdBreadcrumbsComponent, TdBreadcrumbComponent],
18
18
  }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2JyZWFkY3J1bWJzL3NyYy9icmVhZGNydW1icy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQU8xRSxNQUFNLE9BQU8seUJBQXlCO3VHQUF6Qix5QkFBeUI7d0dBQXpCLHlCQUF5QixpQkFIckIsc0JBQXNCLEVBQUUscUJBQXFCLGFBRGxELFlBQVksRUFBRSxhQUFhLGFBRTNCLHNCQUFzQixFQUFFLHFCQUFxQjt3R0FFNUMseUJBQXlCLFlBSjFCLFlBQVksRUFBRSxhQUFhOzsyRkFJMUIseUJBQXlCO2tCQUxyQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7b0JBQ3RDLFlBQVksRUFBRSxDQUFDLHNCQUFzQixFQUFFLHFCQUFxQixDQUFDO29CQUM3RCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxxQkFBcUIsQ0FBQztpQkFDekQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuaW1wb3J0IHsgVGRCcmVhZGNydW1ic0NvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRkQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtUZEJyZWFkY3J1bWJzQ29tcG9uZW50LCBUZEJyZWFkY3J1bWJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbVGRCcmVhZGNydW1ic0NvbXBvbmVudCwgVGRCcmVhZGNydW1iQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRCcmVhZGNydW1ic01vZHVsZSB7fVxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2JyZWFkY3J1bWJzL3NyYy9icmVhZGNydW1icy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQU8xRSxNQUFNLE9BQU8seUJBQXlCOzt1SEFBekIseUJBQXlCO3dIQUF6Qix5QkFBeUIsaUJBSHJCLHNCQUFzQixFQUFFLHFCQUFxQixhQURsRCxZQUFZLEVBQUUsYUFBYSxhQUUzQixzQkFBc0IsRUFBRSxxQkFBcUI7d0hBRTVDLHlCQUF5QixZQUoxQixZQUFZLEVBQUUsYUFBYTs0RkFJMUIseUJBQXlCO2tCQUxyQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7b0JBQ3RDLFlBQVksRUFBRSxDQUFDLHNCQUFzQixFQUFFLHFCQUFxQixDQUFDO29CQUM3RCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxxQkFBcUIsQ0FBQztpQkFDekQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuaW1wb3J0IHsgVGRCcmVhZGNydW1ic0NvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRkQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtUZEJyZWFkY3J1bWJzQ29tcG9uZW50LCBUZEJyZWFkY3J1bWJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbVGRCcmVhZGNydW1ic0NvbXBvbmVudCwgVGRCcmVhZGNydW1iQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRCcmVhZGNydW1ic01vZHVsZSB7fVxuIl19
@@ -0,0 +1,41 @@
1
+ import { Subject } from 'rxjs';
2
+ const noop = () => {
3
+ // empty method
4
+ };
5
+ /** Mixin to augment a component with ngModel support. */
6
+ export function mixinControlValueAccessor(base, initialValue) {
7
+ return class extends base {
8
+ constructor(...args) {
9
+ super(...args);
10
+ this._value = initialValue instanceof Array
11
+ ? Object.assign([], initialValue)
12
+ : initialValue;
13
+ this.onChange = (_) => noop;
14
+ this.onTouched = () => noop;
15
+ this._subjectValueChanges = new Subject();
16
+ this.valueChanges = this._subjectValueChanges.asObservable();
17
+ }
18
+ set value(v) {
19
+ if (v !== this._value) {
20
+ this._value = v;
21
+ this.onChange(v);
22
+ this._changeDetectorRef.markForCheck();
23
+ this._subjectValueChanges.next(v);
24
+ }
25
+ }
26
+ get value() {
27
+ return this._value;
28
+ }
29
+ writeValue(value) {
30
+ this.value = value;
31
+ this._changeDetectorRef.markForCheck();
32
+ }
33
+ registerOnChange(fn) {
34
+ this.onChange = fn;
35
+ }
36
+ registerOnTouched(fn) {
37
+ this.onTouched = fn;
38
+ }
39
+ };
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC12YWx1ZS1hY2Nlc29yLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbW1vbi9zcmMvYmVoYXZpb3JzL2NvbnRyb2wtdmFsdWUtYWNjZXNvci5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTNDLE1BQU0sSUFBSSxHQUFRLEdBQUcsRUFBRTtJQUNyQixlQUFlO0FBQ2pCLENBQUMsQ0FBQztBQWFGLHlEQUF5RDtBQUN6RCxNQUFNLFVBQVUseUJBQXlCLENBRXZDLElBQU8sRUFBRSxZQUFrQjtJQUMzQixPQUFPLEtBQU0sU0FBUSxJQUFJO1FBUXZCLFlBQVksR0FBRyxJQUFXO1lBQ3hCLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBUlQsV0FBTSxHQUNaLFlBQVksWUFBWSxLQUFLO2dCQUMzQixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDO2dCQUNqQyxDQUFDLENBQUMsWUFBWSxDQUFDO1lBbUNuQixhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQztZQUM1QixjQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBOUJyQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMvRCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsQ0FBTTtZQUNkLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxLQUFLO1lBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUM7UUFFRCxVQUFVLENBQUMsS0FBVTtZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsQ0FBQztRQUVELGdCQUFnQixDQUFDLEVBQU87WUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUVELGlCQUFpQixDQUFDLEVBQU87WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDdEIsQ0FBQztLQUlGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbnR5cGUgQ29uc3RydWN0b3I8VD4gPSBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuXG5jb25zdCBub29wOiBhbnkgPSAoKSA9PiB7XG4gIC8vIGVtcHR5IG1ldGhvZFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29udHJvbFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHZhbHVlOiBhbnk7XG4gIHZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxhbnk+O1xuICBvbkNoYW5nZTogKF86IGFueSkgPT4gYW55O1xuICBvblRvdWNoZWQ6ICgpID0+IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSGFzQ2hhbmdlRGV0ZWN0b3JSZWYge1xuICBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmO1xufVxuXG4vKiogTWl4aW4gdG8gYXVnbWVudCBhIGNvbXBvbmVudCB3aXRoIG5nTW9kZWwgc3VwcG9ydC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaXhpbkNvbnRyb2xWYWx1ZUFjY2Vzc29yPFxuICBUIGV4dGVuZHMgQ29uc3RydWN0b3I8SUhhc0NoYW5nZURldGVjdG9yUmVmPlxuPihiYXNlOiBULCBpbml0aWFsVmFsdWU/OiBhbnkpOiBDb25zdHJ1Y3RvcjxJQ29udHJvbFZhbHVlQWNjZXNzb3I+ICYgVCB7XG4gIHJldHVybiBjbGFzcyBleHRlbmRzIGJhc2Uge1xuICAgIHByaXZhdGUgX3ZhbHVlOiBhbnkgPVxuICAgICAgaW5pdGlhbFZhbHVlIGluc3RhbmNlb2YgQXJyYXlcbiAgICAgICAgPyBPYmplY3QuYXNzaWduKFtdLCBpbml0aWFsVmFsdWUpXG4gICAgICAgIDogaW5pdGlhbFZhbHVlO1xuICAgIHByaXZhdGUgX3N1YmplY3RWYWx1ZUNoYW5nZXM6IFN1YmplY3Q8YW55PjtcbiAgICB2YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgIHRoaXMuX3N1YmplY3RWYWx1ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlcyA9IHRoaXMuX3N1YmplY3RWYWx1ZUNoYW5nZXMuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgICAgaWYgKHYgIT09IHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2KTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMuX3N1YmplY3RWYWx1ZUNoYW5nZXMubmV4dCh2KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIG9uQ2hhbmdlID0gKF86IGFueSkgPT4gbm9vcDtcbiAgICBvblRvdWNoZWQgPSAoKSA9PiBub29wO1xuICB9O1xufVxuIl19