@covalent/core 2.0.0-rc.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/breadcrumbs/_breadcrumbs-theme.scss +1 -2
  2. package/breadcrumbs/breadcrumb/breadcrumb.component.scss +22 -0
  3. package/breadcrumbs/breadcrumbs.component.scss +7 -0
  4. package/breadcrumbs/covalent-core-breadcrumbs.metadata.json +1 -1
  5. package/bundles/covalent-core-breadcrumbs.umd.js +1 -1
  6. package/bundles/covalent-core-breadcrumbs.umd.min.js +1 -1
  7. package/bundles/covalent-core-breadcrumbs.umd.min.js.map +1 -1
  8. package/bundles/covalent-core-chips.umd.js +6 -6
  9. package/bundles/covalent-core-chips.umd.js.map +1 -1
  10. package/bundles/covalent-core-chips.umd.min.js +1 -1
  11. package/bundles/covalent-core-chips.umd.min.js.map +1 -1
  12. package/bundles/covalent-core-common.umd.js +251 -84
  13. package/bundles/covalent-core-common.umd.js.map +1 -1
  14. package/bundles/covalent-core-common.umd.min.js +1 -1
  15. package/bundles/covalent-core-common.umd.min.js.map +1 -1
  16. package/bundles/covalent-core-data-table.umd.js +9 -9
  17. package/bundles/covalent-core-data-table.umd.js.map +1 -1
  18. package/bundles/covalent-core-data-table.umd.min.js +1 -1
  19. package/bundles/covalent-core-data-table.umd.min.js.map +1 -1
  20. package/bundles/covalent-core-dialogs.umd.js +3 -20
  21. package/bundles/covalent-core-dialogs.umd.js.map +1 -1
  22. package/bundles/covalent-core-dialogs.umd.min.js +1 -1
  23. package/bundles/covalent-core-dialogs.umd.min.js.map +1 -1
  24. package/bundles/covalent-core-expansion-panel.umd.js +1 -1
  25. package/bundles/covalent-core-expansion-panel.umd.min.js +1 -1
  26. package/bundles/covalent-core-expansion-panel.umd.min.js.map +1 -1
  27. package/bundles/covalent-core-file.umd.min.js +1 -1
  28. package/bundles/covalent-core-file.umd.min.js.map +1 -1
  29. package/bundles/covalent-core-json-formatter.umd.js +1 -1
  30. package/bundles/covalent-core-json-formatter.umd.min.js +1 -1
  31. package/bundles/covalent-core-json-formatter.umd.min.js.map +1 -1
  32. package/bundles/covalent-core-layout.umd.js +8 -7
  33. package/bundles/covalent-core-layout.umd.js.map +1 -1
  34. package/bundles/covalent-core-layout.umd.min.js +1 -1
  35. package/bundles/covalent-core-layout.umd.min.js.map +1 -1
  36. package/bundles/covalent-core-loading.umd.js +1 -1
  37. package/bundles/covalent-core-loading.umd.min.js +1 -1
  38. package/bundles/covalent-core-loading.umd.min.js.map +1 -1
  39. package/bundles/covalent-core-media.umd.min.js +1 -1
  40. package/bundles/covalent-core-media.umd.min.js.map +1 -1
  41. package/bundles/covalent-core-menu.umd.js +1 -1
  42. package/bundles/covalent-core-menu.umd.min.js +1 -1
  43. package/bundles/covalent-core-menu.umd.min.js.map +1 -1
  44. package/bundles/covalent-core-message.umd.js +1 -1
  45. package/bundles/covalent-core-message.umd.min.js +1 -1
  46. package/bundles/covalent-core-message.umd.min.js.map +1 -1
  47. package/bundles/covalent-core-notifications.umd.min.js +1 -1
  48. package/bundles/covalent-core-notifications.umd.min.js.map +1 -1
  49. package/bundles/covalent-core-paging.umd.js +1 -1
  50. package/bundles/covalent-core-paging.umd.min.js +1 -1
  51. package/bundles/covalent-core-paging.umd.min.js.map +1 -1
  52. package/bundles/covalent-core-search.umd.js +5 -4
  53. package/bundles/covalent-core-search.umd.js.map +1 -1
  54. package/bundles/covalent-core-search.umd.min.js +1 -1
  55. package/bundles/covalent-core-search.umd.min.js.map +1 -1
  56. package/bundles/covalent-core-sidesheet.umd.js +137 -0
  57. package/bundles/covalent-core-sidesheet.umd.js.map +1 -0
  58. package/bundles/covalent-core-sidesheet.umd.min.js +2 -0
  59. package/bundles/covalent-core-sidesheet.umd.min.js.map +1 -0
  60. package/bundles/covalent-core-steps.umd.js +5 -5
  61. package/bundles/covalent-core-steps.umd.min.js +1 -1
  62. package/bundles/covalent-core-steps.umd.min.js.map +1 -1
  63. package/bundles/covalent-core-tab-select.umd.js +3 -2
  64. package/bundles/covalent-core-tab-select.umd.js.map +1 -1
  65. package/bundles/covalent-core-tab-select.umd.min.js +1 -1
  66. package/bundles/covalent-core-tab-select.umd.min.js.map +1 -1
  67. package/bundles/covalent-core-virtual-scroll.umd.min.js +1 -1
  68. package/bundles/covalent-core-virtual-scroll.umd.min.js.map +1 -1
  69. package/bundles/covalent-core.umd.js +223 -82
  70. package/bundles/covalent-core.umd.js.map +1 -1
  71. package/bundles/covalent-core.umd.min.js +1 -1
  72. package/bundles/covalent-core.umd.min.js.map +1 -1
  73. package/chips/chips.component.scss +143 -0
  74. package/chips/covalent-core-chips.metadata.json +1 -1
  75. package/common/covalent-core-common.d.ts +4 -3
  76. package/common/covalent-core-common.metadata.json +1 -1
  77. package/common/directives/fullscreen/fullscreen.directive.d.ts +22 -0
  78. package/common/material-icons.css.map +1 -1
  79. package/common/platform.css +10 -10
  80. package/common/platform.css.map +1 -1
  81. package/common/styles/_layout.scss +1 -1
  82. package/covalent-core.d.ts +8 -7
  83. package/covalent-core.metadata.json +1 -1
  84. package/data-table/README.md +2 -2
  85. package/data-table/covalent-core-data-table.metadata.json +1 -1
  86. package/data-table/data-table-cell/data-table-cell.component.scss +57 -0
  87. package/data-table/data-table-column/data-table-column.component.scss +78 -0
  88. package/data-table/data-table-row/data-table-row.component.scss +12 -0
  89. package/data-table/data-table-table/data-table-table.component.scss +7 -0
  90. package/data-table/data-table.component.scss +77 -0
  91. package/dialogs/alert-dialog/alert-dialog.component.scss +3 -0
  92. package/dialogs/confirm-dialog/confirm-dialog.component.scss +3 -0
  93. package/dialogs/covalent-core-dialogs.metadata.json +1 -1
  94. package/dialogs/dialog.component.scss +43 -0
  95. package/dialogs/prompt-dialog/prompt-dialog.component.scss +15 -0
  96. package/dialogs/services/dialog.service.d.ts +0 -3
  97. package/esm2015/breadcrumbs/breadcrumb/breadcrumb.component.js +1 -1
  98. package/esm2015/chips/chips.component.js +3 -3
  99. package/esm2015/common/common.module.js +8 -26
  100. package/esm2015/common/covalent-core-common.js +5 -4
  101. package/esm2015/common/directives/fullscreen/fullscreen.directive.js +136 -0
  102. package/esm2015/covalent-core.js +10 -9
  103. package/esm2015/data-table/data-table-cell/data-table-cell.component.js +1 -1
  104. package/esm2015/data-table/data-table-column/data-table-column.component.js +1 -1
  105. package/esm2015/data-table/data-table.component.js +5 -4
  106. package/esm2015/dialogs/covalent-core-dialogs.js +2 -2
  107. package/esm2015/dialogs/dialog.component.js +1 -1
  108. package/esm2015/dialogs/dialogs.module.js +3 -3
  109. package/esm2015/dialogs/index.js +2 -2
  110. package/esm2015/dialogs/prompt-dialog/prompt-dialog.component.js +1 -1
  111. package/esm2015/dialogs/public-api.js +2 -2
  112. package/esm2015/dialogs/services/dialog.service.js +2 -17
  113. package/esm2015/expansion-panel/expansion-panel.component.js +1 -1
  114. package/esm2015/index.js +2 -2
  115. package/esm2015/json-formatter/json-formatter.component.js +1 -1
  116. package/esm2015/layout/layout-card-over/layout-card-over.component.js +1 -1
  117. package/esm2015/layout/layout-manage-list/layout-manage-list.component.js +1 -1
  118. package/esm2015/layout/layout-nav/layout-nav.component.js +1 -1
  119. package/esm2015/layout/layout-nav-list/layout-nav-list.component.js +1 -1
  120. package/esm2015/layout/layout.component.js +1 -1
  121. package/esm2015/layout/navigation-drawer/navigation-drawer.component.js +12 -3
  122. package/esm2015/loading/loading.component.js +1 -1
  123. package/esm2015/menu/menu.component.js +1 -1
  124. package/esm2015/message/message.component.js +1 -1
  125. package/esm2015/paging/paging-bar.component.js +1 -1
  126. package/esm2015/public_api.js +2 -2
  127. package/esm2015/search/search-box/search-box.component.js +3 -3
  128. package/esm2015/search/search-input/search-input.component.js +10 -3
  129. package/esm2015/sidesheet/covalent-core-sidesheet.js +9 -0
  130. package/esm2015/sidesheet/index.js +6 -0
  131. package/esm2015/sidesheet/public-api.js +7 -0
  132. package/esm2015/sidesheet/sidesheet.component.js +70 -0
  133. package/esm2015/sidesheet/sidesheet.module.js +33 -0
  134. package/esm2015/steps/nav/nav-step-link/nav-step-link.component.js +1 -1
  135. package/esm2015/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.js +1 -1
  136. package/esm2015/steps/step-body/step-body.component.js +1 -1
  137. package/esm2015/steps/step-header/step-header.component.js +1 -1
  138. package/esm2015/steps/steps.component.js +1 -1
  139. package/esm2015/tab-select/tab-select.component.js +4 -3
  140. package/esm5/breadcrumbs/breadcrumb/breadcrumb.component.js +1 -1
  141. package/esm5/chips/chips.component.js +3 -3
  142. package/esm5/common/common.module.js +8 -26
  143. package/esm5/common/covalent-core-common.js +5 -4
  144. package/esm5/common/directives/fullscreen/fullscreen.directive.js +184 -0
  145. package/esm5/covalent-core.js +10 -9
  146. package/esm5/data-table/data-table-cell/data-table-cell.component.js +1 -1
  147. package/esm5/data-table/data-table-column/data-table-column.component.js +1 -1
  148. package/esm5/data-table/data-table.component.js +5 -4
  149. package/esm5/dialogs/covalent-core-dialogs.js +2 -2
  150. package/esm5/dialogs/dialog.component.js +1 -1
  151. package/esm5/dialogs/dialogs.module.js +3 -3
  152. package/esm5/dialogs/index.js +2 -2
  153. package/esm5/dialogs/prompt-dialog/prompt-dialog.component.js +1 -1
  154. package/esm5/dialogs/public-api.js +2 -2
  155. package/esm5/dialogs/services/dialog.service.js +2 -17
  156. package/esm5/expansion-panel/expansion-panel.component.js +1 -1
  157. package/esm5/index.js +2 -2
  158. package/esm5/json-formatter/json-formatter.component.js +1 -1
  159. package/esm5/layout/layout-card-over/layout-card-over.component.js +1 -1
  160. package/esm5/layout/layout-manage-list/layout-manage-list.component.js +1 -1
  161. package/esm5/layout/layout-nav/layout-nav.component.js +1 -1
  162. package/esm5/layout/layout-nav-list/layout-nav-list.component.js +1 -1
  163. package/esm5/layout/layout.component.js +1 -1
  164. package/esm5/layout/navigation-drawer/navigation-drawer.component.js +12 -3
  165. package/esm5/loading/loading.component.js +1 -1
  166. package/esm5/menu/menu.component.js +1 -1
  167. package/esm5/message/message.component.js +1 -1
  168. package/esm5/paging/paging-bar.component.js +1 -1
  169. package/esm5/public_api.js +2 -2
  170. package/esm5/search/search-box/search-box.component.js +3 -3
  171. package/esm5/search/search-input/search-input.component.js +10 -3
  172. package/esm5/sidesheet/covalent-core-sidesheet.js +9 -0
  173. package/esm5/sidesheet/index.js +6 -0
  174. package/esm5/sidesheet/public-api.js +7 -0
  175. package/esm5/sidesheet/sidesheet.component.js +88 -0
  176. package/esm5/sidesheet/sidesheet.module.js +37 -0
  177. package/esm5/steps/nav/nav-step-link/nav-step-link.component.js +1 -1
  178. package/esm5/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.js +1 -1
  179. package/esm5/steps/step-body/step-body.component.js +1 -1
  180. package/esm5/steps/step-header/step-header.component.js +1 -1
  181. package/esm5/steps/steps.component.js +1 -1
  182. package/esm5/tab-select/tab-select.component.js +4 -3
  183. package/expansion-panel/covalent-core-expansion-panel.metadata.json +1 -1
  184. package/expansion-panel/expansion-panel-group.component.scss +0 -0
  185. package/expansion-panel/expansion-panel.component.scss +50 -0
  186. package/fesm2015/covalent-core-breadcrumbs.js +1 -1
  187. package/fesm2015/covalent-core-chips.js +2 -3
  188. package/fesm2015/covalent-core-chips.js.map +1 -1
  189. package/fesm2015/covalent-core-common.js +114 -26
  190. package/fesm2015/covalent-core-common.js.map +1 -1
  191. package/fesm2015/covalent-core-data-table.js +6 -6
  192. package/fesm2015/covalent-core-data-table.js.map +1 -1
  193. package/fesm2015/covalent-core-dialogs.js +5 -20
  194. package/fesm2015/covalent-core-dialogs.js.map +1 -1
  195. package/fesm2015/covalent-core-expansion-panel.js +1 -1
  196. package/fesm2015/covalent-core-json-formatter.js +1 -1
  197. package/fesm2015/covalent-core-layout.js +8 -7
  198. package/fesm2015/covalent-core-layout.js.map +1 -1
  199. package/fesm2015/covalent-core-loading.js +1 -1
  200. package/fesm2015/covalent-core-menu.js +1 -1
  201. package/fesm2015/covalent-core-message.js +1 -1
  202. package/fesm2015/covalent-core-paging.js +1 -1
  203. package/fesm2015/covalent-core-search.js +5 -4
  204. package/fesm2015/covalent-core-search.js.map +1 -1
  205. package/fesm2015/covalent-core-sidesheet.js +110 -0
  206. package/fesm2015/covalent-core-sidesheet.js.map +1 -0
  207. package/fesm2015/covalent-core-steps.js +5 -5
  208. package/fesm2015/covalent-core-tab-select.js +3 -2
  209. package/fesm2015/covalent-core-tab-select.js.map +1 -1
  210. package/fesm2015/covalent-core.js +151 -75
  211. package/fesm2015/covalent-core.js.map +1 -1
  212. package/fesm5/covalent-core-breadcrumbs.js +1 -1
  213. package/fesm5/covalent-core-chips.js +2 -3
  214. package/fesm5/covalent-core-chips.js.map +1 -1
  215. package/fesm5/covalent-core-common.js +161 -27
  216. package/fesm5/covalent-core-common.js.map +1 -1
  217. package/fesm5/covalent-core-data-table.js +6 -6
  218. package/fesm5/covalent-core-data-table.js.map +1 -1
  219. package/fesm5/covalent-core-dialogs.js +5 -20
  220. package/fesm5/covalent-core-dialogs.js.map +1 -1
  221. package/fesm5/covalent-core-expansion-panel.js +1 -1
  222. package/fesm5/covalent-core-json-formatter.js +1 -1
  223. package/fesm5/covalent-core-layout.js +8 -7
  224. package/fesm5/covalent-core-layout.js.map +1 -1
  225. package/fesm5/covalent-core-loading.js +1 -1
  226. package/fesm5/covalent-core-menu.js +1 -1
  227. package/fesm5/covalent-core-message.js +1 -1
  228. package/fesm5/covalent-core-paging.js +1 -1
  229. package/fesm5/covalent-core-search.js +5 -4
  230. package/fesm5/covalent-core-search.js.map +1 -1
  231. package/fesm5/covalent-core-sidesheet.js +126 -0
  232. package/fesm5/covalent-core-sidesheet.js.map +1 -0
  233. package/fesm5/covalent-core-steps.js +5 -5
  234. package/fesm5/covalent-core-tab-select.js +3 -2
  235. package/fesm5/covalent-core-tab-select.js.map +1 -1
  236. package/fesm5/covalent-core.js +198 -76
  237. package/fesm5/covalent-core.js.map +1 -1
  238. package/file/file-input/file-input.component.scss +19 -0
  239. package/file/file-upload/file-upload.component.scss +29 -0
  240. package/json-formatter/covalent-core-json-formatter.metadata.json +1 -1
  241. package/json-formatter/json-formatter.component.scss +61 -0
  242. package/layout/README.md +5 -2
  243. package/layout/covalent-core-layout.metadata.json +1 -1
  244. package/layout/layout-card-over/layout-card-over.component.scss +42 -0
  245. package/layout/layout-footer/layout-footer.component.scss +4 -0
  246. package/layout/layout-manage-list/layout-manage-list.component.scss +77 -0
  247. package/layout/layout-nav/layout-nav.component.scss +50 -0
  248. package/layout/layout-nav-list/layout-nav-list.component.scss +109 -0
  249. package/layout/layout.component.scss +20 -0
  250. package/layout/navigation-drawer/navigation-drawer.component.d.ts +7 -0
  251. package/layout/navigation-drawer/navigation-drawer.component.scss +57 -0
  252. package/loading/covalent-core-loading.metadata.json +1 -1
  253. package/loading/loading.component.scss +42 -0
  254. package/menu/covalent-core-menu.metadata.json +1 -1
  255. package/menu/menu.component.scss +43 -0
  256. package/message/covalent-core-message.metadata.json +1 -1
  257. package/message/message.component.scss +29 -0
  258. package/notifications/notification-count.component.scss +89 -0
  259. package/package.json +1 -1
  260. package/paging/covalent-core-paging.metadata.json +1 -1
  261. package/paging/paging-bar.component.scss +23 -0
  262. package/search/covalent-core-search.metadata.json +1 -1
  263. package/search/search-box/search-box.component.scss +32 -0
  264. package/search/search-input/README.md +5 -2
  265. package/search/search-input/search-input.component.d.ts +6 -0
  266. package/search/search-input/search-input.component.scss +63 -0
  267. package/sidesheet/README.md +68 -0
  268. package/sidesheet/covalent-core-sidesheet.d.ts +4 -0
  269. package/sidesheet/covalent-core-sidesheet.metadata.json +1 -0
  270. package/sidesheet/index.d.ts +1 -0
  271. package/sidesheet/package.json +13 -0
  272. package/sidesheet/public-api.d.ts +2 -0
  273. package/sidesheet/sidesheet.component.d.ts +13 -0
  274. package/sidesheet/sidesheet.component.scss +96 -0
  275. package/sidesheet/sidesheet.module.d.ts +2 -0
  276. package/steps/covalent-core-steps.metadata.json +1 -1
  277. package/steps/nav/nav-step-link/nav-step-link.component.scss +17 -0
  278. package/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.scss +81 -0
  279. package/steps/nav/nav-steps-vertical/nav-steps-vertical.component.scss +18 -0
  280. package/steps/step-body/step-body.component.scss +29 -0
  281. package/steps/step-header/step-header.component.scss +90 -0
  282. package/steps/steps.component.scss +53 -0
  283. package/tab-select/covalent-core-tab-select.metadata.json +1 -1
  284. package/tab-select/tab-option.component.scss +0 -0
  285. package/tab-select/tab-select.component.scss +3 -0
  286. package/theming/prebuilt/blue-grey-deep-orange.css +92 -87
  287. package/theming/prebuilt/blue-grey-deep-orange.css.map +1 -1
  288. package/theming/prebuilt/blue-orange.css +92 -87
  289. package/theming/prebuilt/blue-orange.css.map +1 -1
  290. package/theming/prebuilt/indigo-pink.css +92 -87
  291. package/theming/prebuilt/indigo-pink.css.map +1 -1
  292. package/theming/prebuilt/orange-light-blue.css +92 -87
  293. package/theming/prebuilt/orange-light-blue.css.map +1 -1
  294. package/theming/prebuilt/teal-orange.css +92 -87
  295. package/theming/prebuilt/teal-orange.css.map +1 -1
  296. package/virtual-scroll/virtual-scroll-container.component.scss +7 -0
@@ -1,10 +1,9 @@
1
-
2
1
  @mixin td-breadcrumbs-theme($theme) {
3
2
  $foreground: map-get($theme, foreground);
4
3
 
5
4
  td-breadcrumb {
6
5
  &:last-of-type {
7
- color: mat-color($foreground, disabled);
6
+ font-weight: bold;
8
7
  cursor: default;
9
8
  }
10
9
  }
@@ -0,0 +1,22 @@
1
+ :host {
2
+ &.td-breadcrumb {
3
+ display: inline-block;
4
+ box-sizing: border-box;
5
+ flex-direction: row;
6
+ align-items: center;
7
+ align-content: center;
8
+ max-width: 100%;
9
+ justify-content: flex-end;
10
+ ::ng-deep > * {
11
+ margin: 0 10px;
12
+ }
13
+ }
14
+ .td-breadcrumb-separator-icon {
15
+ display: inline-flex;
16
+ vertical-align: middle;
17
+ }
18
+ &.mat-button {
19
+ min-width: 0;
20
+ padding: 0;
21
+ }
22
+ }
@@ -0,0 +1,7 @@
1
+ :host {
2
+ display: block;
3
+ width: 100%;
4
+ &.td-breadcrumbs {
5
+ white-space: nowrap;
6
+ }
7
+ }
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"CovalentBreadcrumbsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":10,"character":4}],"declarations":[{"__symbolic":"reference","name":"TdBreadcrumbsComponent"},{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"TdBreadcrumbsComponent"},{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"TdBreadcrumbsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":27,"character":1},"arguments":[{"selector":"td-breadcrumbs","host":{"class":"td-breadcrumbs"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":35,"character":19},"member":"OnPush"},"template":"<ng-content></ng-content>\n","styles":[":host{display:block;width:100%}:host.td-breadcrumbs{white-space:nowrap}"]}]}],"members":{"_breadcrumbs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":44,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵa"}]}]}],"separatorIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3},"arguments":["separatorIcon"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":53,"character":35},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":54,"character":42}]}],"ngOnInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"setCrumbIcons":[{"__symbolic":"method"}],"_calculateVisibility":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"td-breadcrumb, a[td-breadcrumb]","host":{"class":"mat-button td-breadcrumb"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":19},"member":"OnPush"},"template":"<ng-content></ng-content>\n<mat-icon *ngIf=\"_displayIcon\"\n class=\"td-breadcrumb-separator-icon\"\n [style.cursor]=\"'default'\"\n (click)=\"_handleIconClick($event)\">\n {{separatorIcon}}\n</mat-icon>\n","styles":[":host.td-breadcrumb{display:inline-block;box-sizing:border-box;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%;-ms-flex-pack:end;justify-content:flex-end}:host.td-breadcrumb ::ng-deep>*{margin:0 10px}:host .td-breadcrumb-separator-icon{display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}:host.mat-button{min-width:0;padding:0}"]}]}],"members":{"displayBinding":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":50,"character":3},"arguments":["style.display"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":57,"character":35},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":58,"character":42}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"_handleIconClick":[{"__symbolic":"method"}]}}},"origins":{"CovalentBreadcrumbsModule":"./breadcrumbs.module","TdBreadcrumbsComponent":"./breadcrumbs.component","ɵa":"./breadcrumb/breadcrumb.component"},"importAs":"@covalent/core/breadcrumbs"}
1
+ {"__symbolic":"module","version":4,"metadata":{"CovalentBreadcrumbsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":10,"character":4}],"declarations":[{"__symbolic":"reference","name":"TdBreadcrumbsComponent"},{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"TdBreadcrumbsComponent"},{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"TdBreadcrumbsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":27,"character":1},"arguments":[{"selector":"td-breadcrumbs","host":{"class":"td-breadcrumbs"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":35,"character":19},"member":"OnPush"},"template":"<ng-content></ng-content>\n","styles":[":host{display:block;width:100%}:host.td-breadcrumbs{white-space:nowrap}"]}]}],"members":{"_breadcrumbs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":44,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵa"}]}]}],"separatorIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3},"arguments":["separatorIcon"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":53,"character":35},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":54,"character":42}]}],"ngOnInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"setCrumbIcons":[{"__symbolic":"method"}],"_calculateVisibility":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"td-breadcrumb, a[td-breadcrumb]","host":{"class":"mat-button td-breadcrumb"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":19},"member":"OnPush"},"template":"<ng-content></ng-content>\n<mat-icon *ngIf=\"_displayIcon\"\n class=\"td-breadcrumb-separator-icon\"\n [style.cursor]=\"'default'\"\n (click)=\"_handleIconClick($event)\">\n {{separatorIcon}}\n</mat-icon>\n","styles":[":host.td-breadcrumb{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}:host.td-breadcrumb ::ng-deep>*{margin:0 10px}:host .td-breadcrumb-separator-icon{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}:host.mat-button{min-width:0;padding:0}"]}]}],"members":{"displayBinding":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":50,"character":3},"arguments":["style.display"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":57,"character":35},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":58,"character":42}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"_handleIconClick":[{"__symbolic":"method"}]}}},"origins":{"CovalentBreadcrumbsModule":"./breadcrumbs.module","TdBreadcrumbsComponent":"./breadcrumbs.component","ɵa":"./breadcrumb/breadcrumb.component"},"importAs":"@covalent/core/breadcrumbs"}
@@ -107,7 +107,7 @@
107
107
  class: 'mat-button td-breadcrumb',
108
108
  },
109
109
  changeDetection: core.ChangeDetectionStrategy.OnPush,
110
- styles: [":host.td-breadcrumb{display:inline-block;box-sizing:border-box;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%;-ms-flex-pack:end;justify-content:flex-end}:host.td-breadcrumb ::ng-deep>*{margin:0 10px}:host .td-breadcrumb-separator-icon{display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}:host.mat-button{min-width:0;padding:0}"]
110
+ styles: [":host.td-breadcrumb{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}:host.td-breadcrumb ::ng-deep>*{margin:0 10px}:host .td-breadcrumb-separator-icon{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}:host.mat-button{min-width:0;padding:0}"]
111
111
  }] }
112
112
  ];
113
113
  /** @nocollapse */
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/material/icon"),require("rxjs"),require("rxjs/operators"),require("@angular/core")):"function"==typeof define&&define.amd?define("@covalent/core/breadcrumbs",["exports","@angular/common","@angular/material/icon","rxjs","rxjs/operators","@angular/core"],t):t((e.covalent=e.covalent||{},e.covalent.core=e.covalent.core||{},e.covalent.core.breadcrumbs={}),e.ng.common,e.ng.material.icon,e.rxjs,e.rxjs.operators,e.ng.core)}(this,function(e,t,n,r,i,o){"use strict";var a=function(){function e(e,t){this._elementRef=e,this._changeDetectorRef=t,this._displayCrumb=!0,this._width=0,this.separatorIcon="chevron_right",this._displayIcon=!0}return Object.defineProperty(e.prototype,"displayCrumb",{get:function(){return this._displayCrumb},set:function(e){this._displayCrumb=e,this._changeDetectorRef.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this._width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"displayBinding",{get:function(){return this._displayCrumb?undefined:"none"},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;setTimeout(function(){e._width=e._elementRef.nativeElement.getBoundingClientRect().width,e._changeDetectorRef.markForCheck()})},e.prototype._handleIconClick=function(e){e.stopPropagation(),e.preventDefault()},e.decorators=[{type:o.Component,args:[{selector:"td-breadcrumb, a[td-breadcrumb]",template:'<ng-content></ng-content>\n<mat-icon *ngIf="_displayIcon"\n class="td-breadcrumb-separator-icon"\n [style.cursor]="\'default\'"\n (click)="_handleIconClick($event)">\n {{separatorIcon}}\n</mat-icon>\n',host:{"class":"mat-button td-breadcrumb"},changeDetection:o.ChangeDetectionStrategy.OnPush,styles:[":host.td-breadcrumb{display:inline-block;box-sizing:border-box;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%;-ms-flex-pack:end;justify-content:flex-end}:host.td-breadcrumb ::ng-deep>*{margin:0 10px}:host .td-breadcrumb-separator-icon{display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}:host.mat-button{min-width:0;padding:0}"]}]}],e.ctorParameters=function(){return[{type:o.ElementRef},{type:o.ChangeDetectorRef}]},e.propDecorators={displayBinding:[{type:o.HostBinding,args:["style.display"]}]},e}(),c=function(){function e(e,t){this._elementRef=e,this._changeDetectorRef=t,this._resizeSubscription=r.Subscription.EMPTY,this._widthSubject=new r.Subject,this._resizing=!1,this.hiddenBreadcrumbs=[],this.separatorIcon="chevron_right"}return e.prototype.ngOnInit=function(){var e=this;this._resizeSubscription=r.merge(r.fromEvent(window,"resize").pipe(i.debounceTime(10)),this._widthSubject.asObservable().pipe(i.distinctUntilChanged())).subscribe(function(){e._resizing||(e._resizing=!0,setTimeout(function(){e._calculateVisibility(),e._resizing=!1,e._changeDetectorRef.markForCheck()},100))})},e.prototype.ngDoCheck=function(){this._elementRef&&this._elementRef.nativeElement&&this._widthSubject.next(this.nativeElementWidth)},e.prototype.ngAfterContentInit=function(){this.setCrumbIcons(),this._changeDetectorRef.markForCheck()},e.prototype.ngOnDestroy=function(){this._resizeSubscription.unsubscribe()},Object.defineProperty(e.prototype,"nativeElementWidth",{get:function(){var e=this._elementRef.nativeElement,t=window.getComputedStyle(e),n=parseInt(t.borderLeft,10),r=parseInt(t.borderRight,10),i=parseInt(t.marginLeft,10),o=parseInt(t.marginRight,10),a=parseInt(t.paddingLeft,10),c=parseInt(t.paddingRight,10);return e.getBoundingClientRect().width-n-r-i-o-a-c},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this._breadcrumbs?this._breadcrumbs.length:0},enumerable:!0,configurable:!0}),e.prototype.setCrumbIcons=function(){var t=this,e=this._breadcrumbs.toArray();0<e.length&&(e[e.length-1]._displayIcon=!1),e.forEach(function(e){e.separatorIcon=t.separatorIcon})},e.prototype._calculateVisibility=function(){for(var e=this._breadcrumbs.toArray(),t=0,n=[],r=e.length-1;0<=r;r--){var i=e[r];t+i.width>this.nativeElementWidth?(i.displayCrumb=!1,n.push(i)):i.displayCrumb=!0,t+=i.width}this.hiddenBreadcrumbs=n,this._changeDetectorRef.markForCheck()},e.decorators=[{type:o.Component,args:[{selector:"td-breadcrumbs",template:"<ng-content></ng-content>\n",host:{"class":"td-breadcrumbs"},changeDetection:o.ChangeDetectionStrategy.OnPush,styles:[":host{display:block;width:100%}:host.td-breadcrumbs{white-space:nowrap}"]}]}],e.ctorParameters=function(){return[{type:o.ElementRef},{type:o.ChangeDetectorRef}]},e.propDecorators={_breadcrumbs:[{type:o.ContentChildren,args:[a]}],separatorIcon:[{type:o.Input,args:["separatorIcon"]}]},e}(),s=function(){function e(){}return e.decorators=[{type:o.NgModule,args:[{imports:[t.CommonModule,n.MatIconModule],declarations:[c,a],exports:[c,a]}]}],e}();e.CovalentBreadcrumbsModule=s,e.TdBreadcrumbsComponent=c,e.ɵa=a,Object.defineProperty(e,"__esModule",{value:!0})});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/material/icon"),require("rxjs"),require("rxjs/operators"),require("@angular/core")):"function"==typeof define&&define.amd?define("@covalent/core/breadcrumbs",["exports","@angular/common","@angular/material/icon","rxjs","rxjs/operators","@angular/core"],t):t((e.covalent=e.covalent||{},e.covalent.core=e.covalent.core||{},e.covalent.core.breadcrumbs={}),e.ng.common,e.ng.material.icon,e.rxjs,e.rxjs.operators,e.ng.core)}(this,function(e,t,n,r,i,o){"use strict";var a=(Object.defineProperty(c.prototype,"displayCrumb",{get:function(){return this._displayCrumb},set:function(e){this._displayCrumb=e,this._changeDetectorRef.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(c.prototype,"width",{get:function(){return this._width},enumerable:!0,configurable:!0}),Object.defineProperty(c.prototype,"displayBinding",{get:function(){return this._displayCrumb?undefined:"none"},enumerable:!0,configurable:!0}),c.prototype.ngAfterViewInit=function(){var e=this;setTimeout(function(){e._width=e._elementRef.nativeElement.getBoundingClientRect().width,e._changeDetectorRef.markForCheck()})},c.prototype._handleIconClick=function(e){e.stopPropagation(),e.preventDefault()},c.decorators=[{type:o.Component,args:[{selector:"td-breadcrumb, a[td-breadcrumb]",template:'<ng-content></ng-content>\n<mat-icon *ngIf="_displayIcon"\n class="td-breadcrumb-separator-icon"\n [style.cursor]="\'default\'"\n (click)="_handleIconClick($event)">\n {{separatorIcon}}\n</mat-icon>\n',host:{"class":"mat-button td-breadcrumb"},changeDetection:o.ChangeDetectionStrategy.OnPush,styles:[":host.td-breadcrumb{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}:host.td-breadcrumb ::ng-deep>*{margin:0 10px}:host .td-breadcrumb-separator-icon{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}:host.mat-button{min-width:0;padding:0}"]}]}],c.ctorParameters=function(){return[{type:o.ElementRef},{type:o.ChangeDetectorRef}]},c.propDecorators={displayBinding:[{type:o.HostBinding,args:["style.display"]}]},c);function c(e,t){this._elementRef=e,this._changeDetectorRef=t,this._displayCrumb=!0,this._width=0,this.separatorIcon="chevron_right",this._displayIcon=!0}var s=(d.prototype.ngOnInit=function(){var e=this;this._resizeSubscription=r.merge(r.fromEvent(window,"resize").pipe(i.debounceTime(10)),this._widthSubject.asObservable().pipe(i.distinctUntilChanged())).subscribe(function(){e._resizing||(e._resizing=!0,setTimeout(function(){e._calculateVisibility(),e._resizing=!1,e._changeDetectorRef.markForCheck()},100))})},d.prototype.ngDoCheck=function(){this._elementRef&&this._elementRef.nativeElement&&this._widthSubject.next(this.nativeElementWidth)},d.prototype.ngAfterContentInit=function(){this.setCrumbIcons(),this._changeDetectorRef.markForCheck()},d.prototype.ngOnDestroy=function(){this._resizeSubscription.unsubscribe()},Object.defineProperty(d.prototype,"nativeElementWidth",{get:function(){var e=this._elementRef.nativeElement,t=window.getComputedStyle(e),n=parseInt(t.borderLeft,10),r=parseInt(t.borderRight,10),i=parseInt(t.marginLeft,10),o=parseInt(t.marginRight,10),a=parseInt(t.paddingLeft,10),c=parseInt(t.paddingRight,10);return e.getBoundingClientRect().width-n-r-i-o-a-c},enumerable:!0,configurable:!0}),Object.defineProperty(d.prototype,"count",{get:function(){return this._breadcrumbs?this._breadcrumbs.length:0},enumerable:!0,configurable:!0}),d.prototype.setCrumbIcons=function(){var t=this,e=this._breadcrumbs.toArray();0<e.length&&(e[e.length-1]._displayIcon=!1),e.forEach(function(e){e.separatorIcon=t.separatorIcon})},d.prototype._calculateVisibility=function(){for(var e=this._breadcrumbs.toArray(),t=0,n=[],r=e.length-1;0<=r;r--){var i=e[r];t+i.width>this.nativeElementWidth?(i.displayCrumb=!1,n.push(i)):i.displayCrumb=!0,t+=i.width}this.hiddenBreadcrumbs=n,this._changeDetectorRef.markForCheck()},d.decorators=[{type:o.Component,args:[{selector:"td-breadcrumbs",template:"<ng-content></ng-content>\n",host:{"class":"td-breadcrumbs"},changeDetection:o.ChangeDetectionStrategy.OnPush,styles:[":host{display:block;width:100%}:host.td-breadcrumbs{white-space:nowrap}"]}]}],d.ctorParameters=function(){return[{type:o.ElementRef},{type:o.ChangeDetectorRef}]},d.propDecorators={_breadcrumbs:[{type:o.ContentChildren,args:[a]}],separatorIcon:[{type:o.Input,args:["separatorIcon"]}]},d);function d(e,t){this._elementRef=e,this._changeDetectorRef=t,this._resizeSubscription=r.Subscription.EMPTY,this._widthSubject=new r.Subject,this._resizing=!1,this.hiddenBreadcrumbs=[],this.separatorIcon="chevron_right"}var l=(u.decorators=[{type:o.NgModule,args:[{imports:[t.CommonModule,n.MatIconModule],declarations:[s,a],exports:[s,a]}]}],u);function u(){}e.CovalentBreadcrumbsModule=l,e.TdBreadcrumbsComponent=s,e.ɵa=a,Object.defineProperty(e,"__esModule",{value:!0})});
2
2
  //# sourceMappingURL=covalent-core-breadcrumbs.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://@covalent/core/breadcrumbs/breadcrumb/breadcrumb.component.ts","ng://@covalent/core/breadcrumbs/breadcrumbs.component.ts","ng://@covalent/core/breadcrumbs/breadcrumbs.module.ts"],"names":["TdBreadcrumbComponent","_elementRef","_changeDetectorRef","this","_displayCrumb","_width","separatorIcon","_displayIcon","Object","defineProperty","prototype","shouldDisplay","markForCheck","undefined","ngAfterViewInit","_this","setTimeout","getBoundingClientRect","width","_handleIconClick","event","stopPropagation","preventDefault","Component","args","selector","template","host","class","changeDetection","ChangeDetectionStrategy","OnPush","ElementRef","ChangeDetectorRef","HostBinding","TdBreadcrumbsComponent","_resizeSubscription","Subscription","EMPTY","_widthSubject","Subject","_resizing","hiddenBreadcrumbs","ngOnInit","merge","fromEvent","window","pipe","debounceTime","asObservable","distinctUntilChanged","subscribe","_calculateVisibility","ngDoCheck","nativeElement","next","nativeElementWidth","ngAfterContentInit","setCrumbIcons","ngOnDestroy","unsubscribe","element","style","getComputedStyle","borderLeft","parseInt","borderRight","marginLeft","marginRight","paddingLeft","paddingRight","_breadcrumbs","length","breadcrumbArray","toArray","forEach","breadcrumb","crumbsArray","crumbWidthSum","hiddenCrumbs","i","displayCrumb","push","ContentChildren","Input","CovalentBreadcrumbsModule","NgModule","imports","CommonModule","MatIconModule","declarations","exports"],"mappings":"ukBAAA,IAAAA,EAAA,WAyDE,SAAAA,EAAoBC,EACAC,GADAC,KAAAF,YAAAA,EACAE,KAAAD,mBAAAA,EArCZC,KAAAC,eAAyB,EACzBD,KAAAE,OAAiB,EAEzBF,KAAAG,cAAwB,gBAExBH,KAAAI,cAAwB,EAmD1B,OAjDEC,OAAAC,eAAIT,EAAAU,UAAA,eAAY,KAAhB,WACE,OAAOP,KAAKC,mBAMd,SAAiBO,GACfR,KAAKC,cAAgBO,EACrBR,KAAKD,mBAAmBU,gDAM1BJ,OAAAC,eAAIT,EAAAU,UAAA,QAAK,KAAT,WACE,OAAOP,KAAKE,wCAMdG,OAAAC,eACIT,EAAAU,UAAA,iBAAc,KADlB,WAIE,OAAOP,KAAKC,cAAgBS,UAAY,wCAO1Cb,EAAAU,UAAAI,gBAAA,WAAA,IAAAC,EAAAZ,KAEEa,WAAW,WACTD,EAAKV,OAAuBU,EAAKd,YAAyB,cAAEgB,wBAAwBC,MACpFH,EAAKb,mBAAmBU,kBAO5BZ,EAAAU,UAAAS,iBAAA,SAAiBC,GACfA,EAAMC,kBACND,EAAME,sCAjETC,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,kCAEVC,SAAA,uOAEAC,KAAM,CACJC,QAAO,4BAETC,gBAAiBC,EAAAA,wBAAwBC,yfAfzCC,EAAAA,kBAIAC,EAAAA,6DA4CCC,EAAAA,YAAWV,KAAA,CAAC,oBA2BfxB,EA7EA,GCAAmC,EAAA,WAqDE,SAAAA,EAAoBlC,EACAC,GADAC,KAAAF,YAAAA,EACAE,KAAAD,mBAAAA,EAfZC,KAAAiC,oBAAoCC,EAAAA,aAAaC,MACjDnC,KAAAoC,cAAiC,IAAIC,EAAAA,QACrCrC,KAAAsC,WAAqB,EAK7BtC,KAAAuC,kBAA6C,GAKrBvC,KAAAG,cAAwB,gBAqGlD,OA/FE6B,EAAAzB,UAAAiC,SAAA,WAAA,IAAA5B,EAAAZ,KACEA,KAAKiC,oBAAsBQ,EAAAA,MACzBC,EAAAA,UAAUC,OAAQ,UAAUC,KAC1BC,EAAAA,aAAa,KAEf7C,KAAKoC,cAAcU,eAAeF,KAChCG,EAAAA,yBAEFC,UAAU,WACLpC,EAAK0B,YACR1B,EAAK0B,WAAY,EACjBzB,WAAW,WACTD,EAAKqC,uBACLrC,EAAK0B,WAAY,EACjB1B,EAAKb,mBAAmBU,gBACvB,SAKTuB,EAAAzB,UAAA2C,UAAA,WACMlD,KAAKF,aAAeE,KAAKF,YAAYqD,eACvCnD,KAAKoC,cAAcgB,KAAKpD,KAAKqD,qBAIjCrB,EAAAzB,UAAA+C,mBAAA,WACEtD,KAAKuD,gBACLvD,KAAKD,mBAAmBU,gBAG1BuB,EAAAzB,UAAAiD,YAAA,WACExD,KAAKiC,oBAAoBwB,eAM3BpD,OAAAC,eAAI0B,EAAAzB,UAAA,qBAAkB,KAAtB,eACMmD,EAAqC1D,KAAKF,YAAyB,cAEnE6D,EAA6BhB,OAAOiB,iBAAiBF,GACrDG,EAAqBC,SAASH,EAAME,WAAY,IAChDE,EAAsBD,SAASH,EAAMI,YAAa,IAClDC,EAAqBF,SAASH,EAAMK,WAAY,IAChDC,EAAsBH,SAASH,EAAMM,YAAa,IAClDC,EAAsBJ,SAASH,EAAMO,YAAa,IAClDC,EAAuBL,SAASH,EAAMQ,aAAc,IAExD,OAAOT,EAAQ5C,wBAAwBC,MAAQ8C,EAAaE,EAAcC,EAAaC,EAAcC,EAAcC,mCAMrH9D,OAAAC,eAAI0B,EAAAzB,UAAA,QAAK,KAAT,WACE,OAAOP,KAAKoE,aAAepE,KAAKoE,aAAaC,OAAS,mCAMhDrC,EAAAzB,UAAAgD,cAAR,WAAA,IAAA3C,EAAAZ,KACMsE,EAA2CtE,KAAKoE,aAAaG,UACpC,EAAzBD,EAAgBD,SAElBC,EAAgBA,EAAgBD,OAAS,GAAGjE,cAAe,GAE7DkE,EAAgBE,QAAQ,SAACC,GACvBA,EAAWtE,cAAgBS,EAAKT,iBAI5B6B,EAAAzB,UAAA0C,qBAAR,WAKE,QAJIyB,EAAuC1E,KAAKoE,aAAaG,UACzDI,EAAwB,EACxBC,EAAwC,GAEnCC,EAAYH,EAAYL,OAAS,EAAQ,GAALQ,EAAQA,IAAK,KACpDJ,EAAoCC,EAAYG,GAG/CF,EAAgBF,EAAW1D,MAASf,KAAKqD,oBAC5CoB,EAAWK,cAAe,EAC1BF,EAAaG,KAAKN,IAGlBA,EAAWK,cAAe,EAE5BH,GAAiBF,EAAW1D,MAE9Bf,KAAKuC,kBAAoBqC,EACzB5E,KAAKD,mBAAmBU,oCA1H3BW,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,iBAEVC,SAAA,8BAEAC,KAAM,CACJC,QAAO,kBAETC,gBAAiBC,EAAAA,wBAAwBC,uIAzBzCC,EAAAA,kBADAC,EAAAA,2DAmCCkD,EAAAA,gBAAe3D,KAAA,CAACxB,0BAOhBoF,EAAAA,MAAK5D,KAAA,CAAC,oBAqGTW,EAxJA,GCAAkD,EAAA,WAOA,SAAAA,KAgBA,2BAhBCC,EAAAA,SAAQ9D,KAAA,CAAC,CACR+D,QAAS,CACPC,EAAAA,aACAC,EAAAA,eAEFC,aAAc,CACZvD,EACAnC,GAEF2F,QAAS,CACPxD,EACAnC,OAKJqF,EAvBA","sourcesContent":["import {\n Component,\n ElementRef,\n HostBinding,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\n\n@Component({\n selector: 'td-breadcrumb, a[td-breadcrumb]',\n styleUrls: ['./breadcrumb.component.scss'],\n templateUrl: './breadcrumb.component.html',\n /* tslint:disable-next-line */\n host: {\n class: 'mat-button td-breadcrumb',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdBreadcrumbComponent implements AfterViewInit {\n\n private _displayCrumb: boolean = true;\n private _width: number = 0;\n // Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'\n separatorIcon: string = 'chevron_right';\n // Should show the right chevron or not before the label\n _displayIcon: boolean = true;\n\n get displayCrumb(): boolean {\n return this._displayCrumb;\n }\n\n /**\n * Whether to display the crumb or not\n */\n set displayCrumb(shouldDisplay: boolean) {\n this._displayCrumb = shouldDisplay;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Width of the DOM element of the crumb\n */\n get width(): number {\n return this._width;\n }\n\n /**\n * Gets the display style of the crumb\n */\n @HostBinding('style.display')\n get displayBinding(): string {\n // Set the display to none on the component, just in case the end user is hiding\n // and showing them instead of the component doing itself for reasons like responsive\n return this._displayCrumb ? undefined : 'none';\n }\n\n constructor(private _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n // set the width from the actual rendered DOM element\n setTimeout(() => {\n this._width = (<HTMLElement>this._elementRef.nativeElement).getBoundingClientRect().width;\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Stop click propagation when clicking on icon\n */\n _handleIconClick(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n}\n","import {\n Component,\n ContentChildren,\n QueryList,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy,\n AfterContentInit,\n DoCheck,\n ChangeDetectorRef,\n ElementRef,\n Input,\n} from '@angular/core';\n\nimport {\n Subscription,\n Subject,\n fromEvent,\n merge,\n} from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n} from 'rxjs/operators';\n\nimport { TdBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\n\n@Component({\n selector: 'td-breadcrumbs',\n styleUrls: ['./breadcrumbs.component.scss'],\n templateUrl: './breadcrumbs.component.html',\n /* tslint:disable-next-line */\n host: {\n class: 'td-breadcrumbs',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdBreadcrumbsComponent implements OnInit, DoCheck, AfterContentInit, OnDestroy {\n\n private _resizeSubscription: Subscription = Subscription.EMPTY;\n private _widthSubject: Subject<number> = new Subject<number>();\n private _resizing: boolean = false;\n\n // all the sub components, which are the individual breadcrumbs\n @ContentChildren(TdBreadcrumbComponent) _breadcrumbs: QueryList<TdBreadcrumbComponent>;\n // the list of hidden breadcrumbs not shown right now (responsive)\n hiddenBreadcrumbs: TdBreadcrumbComponent[] = [];\n\n /**\n * Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'.\n */\n @Input('separatorIcon') separatorIcon: string = 'chevron_right';\n\n constructor(private _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n this._resizeSubscription = merge(\n fromEvent(window, 'resize').pipe(\n debounceTime(10),\n ),\n this._widthSubject.asObservable().pipe(\n distinctUntilChanged(),\n ),\n ).subscribe(() => {\n if (!this._resizing) {\n this._resizing = true;\n setTimeout(() => {\n this._calculateVisibility();\n this._resizing = false;\n this._changeDetectorRef.markForCheck();\n }, 100);\n }\n });\n }\n\n ngDoCheck(): void {\n if (this._elementRef && this._elementRef.nativeElement) {\n this._widthSubject.next(this.nativeElementWidth);\n }\n }\n\n ngAfterContentInit(): void {\n this.setCrumbIcons();\n this._changeDetectorRef.markForCheck();\n }\n\n ngOnDestroy(): void {\n this._resizeSubscription.unsubscribe();\n }\n\n /*\n * Current width of the element container\n */\n get nativeElementWidth(): number {\n let element: HTMLElement = (<HTMLElement>this._elementRef.nativeElement);\n // Need to take into account border, margin and padding that might be around all the crumbs\n let style: CSSStyleDeclaration = window.getComputedStyle(element);\n let borderLeft: number = parseInt(style.borderLeft, 10);\n let borderRight: number = parseInt(style.borderRight, 10);\n let marginLeft: number = parseInt(style.marginLeft, 10);\n let marginRight: number = parseInt(style.marginRight, 10);\n let paddingLeft: number = parseInt(style.paddingLeft, 10);\n let paddingRight: number = parseInt(style.paddingRight, 10);\n\n return element.getBoundingClientRect().width - borderLeft - borderRight - marginLeft - marginRight - paddingLeft - paddingRight;\n }\n\n /**\n * The total count of individual breadcrumbs\n */\n get count(): number {\n return this._breadcrumbs ? this._breadcrumbs.length : 0;\n }\n\n /**\n * Set the crumb icon separators\n */\n private setCrumbIcons(): void {\n let breadcrumbArray: TdBreadcrumbComponent[] = this._breadcrumbs.toArray();\n if (breadcrumbArray.length > 0) {\n // don't show the icon on the last breadcrumb\n breadcrumbArray[breadcrumbArray.length - 1]._displayIcon = false;\n }\n breadcrumbArray.forEach((breadcrumb: TdBreadcrumbComponent) => {\n breadcrumb.separatorIcon = this.separatorIcon;\n });\n }\n\n private _calculateVisibility(): void {\n let crumbsArray: TdBreadcrumbComponent[] = this._breadcrumbs.toArray();\n let crumbWidthSum: number = 0;\n let hiddenCrumbs: TdBreadcrumbComponent[] = [];\n // loop through crumbs in reverse order to calculate which ones should be removed\n for (let i: number = crumbsArray.length - 1; i >= 0; i--) {\n let breadcrumb: TdBreadcrumbComponent = crumbsArray[i];\n // if crumb exceeds width, then we skip it from the sum and add it into the hiddencrumbs array\n // and hide it\n if ((crumbWidthSum + breadcrumb.width) > this.nativeElementWidth) {\n breadcrumb.displayCrumb = false;\n hiddenCrumbs.push(breadcrumb);\n } else {\n // else we show it\n breadcrumb.displayCrumb = true;\n }\n crumbWidthSum += breadcrumb.width;\n }\n this.hiddenBreadcrumbs = hiddenCrumbs;\n this._changeDetectorRef.markForCheck();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { TdBreadcrumbsComponent } from './breadcrumbs.component';\nimport { TdBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n ],\n declarations: [\n TdBreadcrumbsComponent,\n TdBreadcrumbComponent,\n ],\n exports: [\n TdBreadcrumbsComponent,\n TdBreadcrumbComponent,\n ],\n})\nexport class CovalentBreadcrumbsModule {\n\n}\n"]}
1
+ {"version":3,"sources":["ng://@covalent/core/breadcrumbs/breadcrumb/breadcrumb.component.ts","ng://@covalent/core/breadcrumbs/breadcrumbs.component.ts","ng://@covalent/core/breadcrumbs/breadcrumbs.module.ts"],"names":["TdBreadcrumbComponent","Object","defineProperty","prototype","this","_displayCrumb","shouldDisplay","_changeDetectorRef","markForCheck","_width","undefined","ngAfterViewInit","_this","setTimeout","_elementRef","getBoundingClientRect","width","_handleIconClick","event","stopPropagation","preventDefault","Component","args","selector","template","host","class","changeDetection","ChangeDetectionStrategy","OnPush","ElementRef","ChangeDetectorRef","HostBinding","separatorIcon","_displayIcon","TdBreadcrumbsComponent","ngOnInit","_resizeSubscription","merge","fromEvent","window","pipe","debounceTime","_widthSubject","asObservable","distinctUntilChanged","subscribe","_resizing","_calculateVisibility","ngDoCheck","nativeElement","next","nativeElementWidth","ngAfterContentInit","setCrumbIcons","ngOnDestroy","unsubscribe","element","style","getComputedStyle","borderLeft","parseInt","borderRight","marginLeft","marginRight","paddingLeft","paddingRight","_breadcrumbs","length","breadcrumbArray","toArray","forEach","breadcrumb","crumbsArray","crumbWidthSum","hiddenCrumbs","i","displayCrumb","push","hiddenBreadcrumbs","ContentChildren","Input","Subscription","EMPTY","Subject","CovalentBreadcrumbsModule","NgModule","imports","CommonModule","MatIconModule","declarations","exports"],"mappings":"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","sourcesContent":["import {\n Component,\n ElementRef,\n HostBinding,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\n\n@Component({\n selector: 'td-breadcrumb, a[td-breadcrumb]',\n styleUrls: ['./breadcrumb.component.scss'],\n templateUrl: './breadcrumb.component.html',\n /* tslint:disable-next-line */\n host: {\n class: 'mat-button td-breadcrumb',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdBreadcrumbComponent implements AfterViewInit {\n\n private _displayCrumb: boolean = true;\n private _width: number = 0;\n // Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'\n separatorIcon: string = 'chevron_right';\n // Should show the right chevron or not before the label\n _displayIcon: boolean = true;\n\n get displayCrumb(): boolean {\n return this._displayCrumb;\n }\n\n /**\n * Whether to display the crumb or not\n */\n set displayCrumb(shouldDisplay: boolean) {\n this._displayCrumb = shouldDisplay;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Width of the DOM element of the crumb\n */\n get width(): number {\n return this._width;\n }\n\n /**\n * Gets the display style of the crumb\n */\n @HostBinding('style.display')\n get displayBinding(): string {\n // Set the display to none on the component, just in case the end user is hiding\n // and showing them instead of the component doing itself for reasons like responsive\n return this._displayCrumb ? undefined : 'none';\n }\n\n constructor(private _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n // set the width from the actual rendered DOM element\n setTimeout(() => {\n this._width = (<HTMLElement>this._elementRef.nativeElement).getBoundingClientRect().width;\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Stop click propagation when clicking on icon\n */\n _handleIconClick(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n}\n","import {\n Component,\n ContentChildren,\n QueryList,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy,\n AfterContentInit,\n DoCheck,\n ChangeDetectorRef,\n ElementRef,\n Input,\n} from '@angular/core';\n\nimport {\n Subscription,\n Subject,\n fromEvent,\n merge,\n} from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n} from 'rxjs/operators';\n\nimport { TdBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\n\n@Component({\n selector: 'td-breadcrumbs',\n styleUrls: ['./breadcrumbs.component.scss'],\n templateUrl: './breadcrumbs.component.html',\n /* tslint:disable-next-line */\n host: {\n class: 'td-breadcrumbs',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdBreadcrumbsComponent implements OnInit, DoCheck, AfterContentInit, OnDestroy {\n\n private _resizeSubscription: Subscription = Subscription.EMPTY;\n private _widthSubject: Subject<number> = new Subject<number>();\n private _resizing: boolean = false;\n\n // all the sub components, which are the individual breadcrumbs\n @ContentChildren(TdBreadcrumbComponent) _breadcrumbs: QueryList<TdBreadcrumbComponent>;\n // the list of hidden breadcrumbs not shown right now (responsive)\n hiddenBreadcrumbs: TdBreadcrumbComponent[] = [];\n\n /**\n * Sets the icon url shown between breadcrumbs. Defaults to 'chevron_right'.\n */\n @Input('separatorIcon') separatorIcon: string = 'chevron_right';\n\n constructor(private _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n this._resizeSubscription = merge(\n fromEvent(window, 'resize').pipe(\n debounceTime(10),\n ),\n this._widthSubject.asObservable().pipe(\n distinctUntilChanged(),\n ),\n ).subscribe(() => {\n if (!this._resizing) {\n this._resizing = true;\n setTimeout(() => {\n this._calculateVisibility();\n this._resizing = false;\n this._changeDetectorRef.markForCheck();\n }, 100);\n }\n });\n }\n\n ngDoCheck(): void {\n if (this._elementRef && this._elementRef.nativeElement) {\n this._widthSubject.next(this.nativeElementWidth);\n }\n }\n\n ngAfterContentInit(): void {\n this.setCrumbIcons();\n this._changeDetectorRef.markForCheck();\n }\n\n ngOnDestroy(): void {\n this._resizeSubscription.unsubscribe();\n }\n\n /*\n * Current width of the element container\n */\n get nativeElementWidth(): number {\n let element: HTMLElement = (<HTMLElement>this._elementRef.nativeElement);\n // Need to take into account border, margin and padding that might be around all the crumbs\n let style: CSSStyleDeclaration = window.getComputedStyle(element);\n let borderLeft: number = parseInt(style.borderLeft, 10);\n let borderRight: number = parseInt(style.borderRight, 10);\n let marginLeft: number = parseInt(style.marginLeft, 10);\n let marginRight: number = parseInt(style.marginRight, 10);\n let paddingLeft: number = parseInt(style.paddingLeft, 10);\n let paddingRight: number = parseInt(style.paddingRight, 10);\n\n return element.getBoundingClientRect().width - borderLeft - borderRight - marginLeft - marginRight - paddingLeft - paddingRight;\n }\n\n /**\n * The total count of individual breadcrumbs\n */\n get count(): number {\n return this._breadcrumbs ? this._breadcrumbs.length : 0;\n }\n\n /**\n * Set the crumb icon separators\n */\n private setCrumbIcons(): void {\n let breadcrumbArray: TdBreadcrumbComponent[] = this._breadcrumbs.toArray();\n if (breadcrumbArray.length > 0) {\n // don't show the icon on the last breadcrumb\n breadcrumbArray[breadcrumbArray.length - 1]._displayIcon = false;\n }\n breadcrumbArray.forEach((breadcrumb: TdBreadcrumbComponent) => {\n breadcrumb.separatorIcon = this.separatorIcon;\n });\n }\n\n private _calculateVisibility(): void {\n let crumbsArray: TdBreadcrumbComponent[] = this._breadcrumbs.toArray();\n let crumbWidthSum: number = 0;\n let hiddenCrumbs: TdBreadcrumbComponent[] = [];\n // loop through crumbs in reverse order to calculate which ones should be removed\n for (let i: number = crumbsArray.length - 1; i >= 0; i--) {\n let breadcrumb: TdBreadcrumbComponent = crumbsArray[i];\n // if crumb exceeds width, then we skip it from the sum and add it into the hiddencrumbs array\n // and hide it\n if ((crumbWidthSum + breadcrumb.width) > this.nativeElementWidth) {\n breadcrumb.displayCrumb = false;\n hiddenCrumbs.push(breadcrumb);\n } else {\n // else we show it\n breadcrumb.displayCrumb = true;\n }\n crumbWidthSum += breadcrumb.width;\n }\n this.hiddenBreadcrumbs = hiddenCrumbs;\n this._changeDetectorRef.markForCheck();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { TdBreadcrumbsComponent } from './breadcrumbs.component';\nimport { TdBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n ],\n declarations: [\n TdBreadcrumbsComponent,\n TdBreadcrumbComponent,\n ],\n exports: [\n TdBreadcrumbsComponent,\n TdBreadcrumbComponent,\n ],\n})\nexport class CovalentBreadcrumbsModule {\n\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/material/icon'), require('@angular/core'), require('@angular/platform-browser'), require('@angular/forms'), require('@angular/cdk/portal'), require('@angular/cdk/coercion'), require('@angular/cdk/keycodes'), require('@angular/material/chips'), require('@angular/material/input'), require('@angular/material/core'), require('@angular/material/autocomplete'), require('rxjs'), require('rxjs/operators'), require('@covalent/core/common')) :
3
- typeof define === 'function' && define.amd ? define('@covalent/core/chips', ['exports', '@angular/common', '@angular/material/icon', '@angular/core', '@angular/platform-browser', '@angular/forms', '@angular/cdk/portal', '@angular/cdk/coercion', '@angular/cdk/keycodes', '@angular/material/chips', '@angular/material/input', '@angular/material/core', '@angular/material/autocomplete', 'rxjs', 'rxjs/operators', '@covalent/core/common'], factory) :
4
- (factory((global.covalent = global.covalent || {}, global.covalent.core = global.covalent.core || {}, global.covalent.core.chips = {}),global.ng.common,global.ng.material.icon,global.ng.core,global.ng.platformBrowser,global.ng.forms,global.ng.cdk.portal,global.ng.cdk.coercion,global.ng.cdk.keycodes,global.ng.material.chips,global.ng.material.input,global.ng.material.core,global.ng.material.autocomplete,global.rxjs,global.rxjs.operators,global.covalent.core.common));
5
- }(this, (function (exports,common,icon,core,platformBrowser,forms,portal,coercion,keycodes,chips,input,core$1,autocomplete,rxjs,operators,common$1) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/material/icon'), require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('@angular/cdk/portal'), require('@angular/cdk/coercion'), require('@angular/cdk/keycodes'), require('@angular/material/chips'), require('@angular/material/input'), require('@angular/material/core'), require('@angular/material/autocomplete'), require('rxjs'), require('rxjs/operators'), require('@covalent/core/common')) :
3
+ typeof define === 'function' && define.amd ? define('@covalent/core/chips', ['exports', '@angular/material/icon', '@angular/core', '@angular/common', '@angular/forms', '@angular/cdk/portal', '@angular/cdk/coercion', '@angular/cdk/keycodes', '@angular/material/chips', '@angular/material/input', '@angular/material/core', '@angular/material/autocomplete', 'rxjs', 'rxjs/operators', '@covalent/core/common'], factory) :
4
+ (factory((global.covalent = global.covalent || {}, global.covalent.core = global.covalent.core || {}, global.covalent.core.chips = {}),global.ng.material.icon,global.ng.core,global.ng.common,global.ng.forms,global.ng.cdk.portal,global.ng.cdk.coercion,global.ng.cdk.keycodes,global.ng.material.chips,global.ng.material.input,global.ng.material.core,global.ng.material.autocomplete,global.rxjs,global.rxjs.operators,global.covalent.core.common));
5
+ }(this, (function (exports,icon,core,common,forms,portal,coercion,keycodes,chips,input,core$1,autocomplete,rxjs,operators,common$1) { 'use strict';
6
6
 
7
7
  /*! *****************************************************************************
8
8
  Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1161,7 +1161,7 @@
1161
1161
  inputs: ['disabled', 'value'],
1162
1162
  template: "<div class=\"td-chips-wrapper\"\n [class.td-chips-stacked]=\"stacked\"\n [class.td-chips-input-before-position]=\"inputPosition === 'before'\">\n <ng-template let-chip let-first=\"first\" let-index=\"index\" ngFor [ngForOf]=\"value\">\n <mat-basic-chip [class.td-chip-disabled]=\"disabled\"\n [class.td-chip-after-pad]=\"!canRemoveChip\"\n [disableRipple]=\"true\"\n [color]=\"color\"\n (keydown)=\"_chipKeydown($event, index)\"\n (blur)=\"_handleChipBlur($event, chip)\"\n (focus)=\"_handleChipFocus($event, chip)\">\n <div class=\"td-chip\" [class.td-chip-stacked]=\"stacked\">\n <span class=\"td-chip-content\">\n <span *ngIf=\"!_chipTemplate?.templateRef\">{{chip}}</span>\n <ng-template\n *ngIf=\"_chipTemplate?.templateRef\"\n [ngTemplateOutlet]=\"_chipTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"{ chip: chip }\">\n </ng-template>\n </span>\n <mat-icon *ngIf=\"canRemoveChip\" class=\"td-chip-removal\" (click)=\"_internalClick = removeChip(index)\">\n cancel\n </mat-icon>\n </div>\n </mat-basic-chip>\n </ng-template>\n <mat-form-field floatLabel=\"never\"\n class=\"td-chips-form-field\"\n [style.width.px]=\"canAddChip ? null : 0\"\n [style.height.px]=\"canAddChip ? null : 0\"\n [color]=\"color\">\n <input matInput\n #input\n [tabIndex]=\"-1\"\n [matAutocomplete]=\"autocomplete\"\n [formControl]=\"inputControl\"\n [placeholder]=\"displayPlaceHolder\"\n (keydown)=\"_inputKeydown($event)\"\n (keyup.enter)=\"_handleAddChip()\"\n (focus)=\"_handleFocus()\">\n </mat-form-field>\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n [displayWith]=\"_removeInputDisplay\"\n (optionSelected)=\"addChip($event.option.value)\">\n <ng-template let-item let-first=\"first\" ngFor [ngForOf]=\"items\">\n <mat-option (click)=\"_setInternalClick()\" [value]=\"item\">\n <span *ngIf=\"!_autocompleteOptionTemplate?.templateRef\">{{item}}</span>\n <ng-template\n *ngIf=\"_autocompleteOptionTemplate?.templateRef\"\n [ngTemplateOutlet]=\"_autocompleteOptionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"{ option: item }\">\n </ng-template>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n</div>\n<div *ngIf=\"chipAddition\" class=\"mat-form-field-underline\"\n [class.mat-disabled]=\"disabled\">\n <span class=\"mat-form-field-ripple\"\n [class.mat-focused]=\"focused\"></span>\n</div>\n<ng-content></ng-content>",
1163
1163
  changeDetection: core.ChangeDetectionStrategy.OnPush,
1164
- styles: [":host{display:block;padding:0 5px;min-height:48px}:host .td-chips-wrapper{min-height:42px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host .td-chips-wrapper.td-chips-stacked .mat-basic-chip,:host .td-chips-wrapper.td-chips-stacked .td-chips-form-field{width:100%}:host .td-chips-wrapper.td-chips-input-before-position .td-chips-form-field{-ms-flex-order:-1;order:-1}:host .td-chip,:host .td-chip>.td-chip-content{box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;max-width:100%;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:start;justify-content:start;min-width:0}:host .td-chip.td-chip-stacked,:host .td-chip>.td-chip-content.td-chip-stacked{-ms-flex-pack:justify;justify-content:space-between}:host ::ng-deep .mat-form-field-wrapper{padding-bottom:2px}:host ::ng-deep .mat-basic-chip{display:inline-block;cursor:default;border-radius:16px;margin:8px 8px 0 0;box-sizing:border-box;max-width:100%;position:relative}html[dir=rtl] :host ::ng-deep .mat-basic-chip{margin:8px 0 0 8px;unicode-bidi:embed}body[dir=rtl] :host ::ng-deep .mat-basic-chip{margin:8px 0 0 8px;unicode-bidi:embed}[dir=rtl] :host ::ng-deep .mat-basic-chip{margin:8px 0 0 8px;unicode-bidi:embed}:host ::ng-deep .mat-basic-chip bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip .td-chip{min-height:32px;line-height:32px;font-size:13px;padding:0 0 0 12px}html[dir=rtl] :host ::ng-deep .mat-basic-chip .td-chip{padding:0 12px 0 0;unicode-bidi:embed}body[dir=rtl] :host ::ng-deep .mat-basic-chip .td-chip{padding:0 12px 0 0;unicode-bidi:embed}[dir=rtl] :host ::ng-deep .mat-basic-chip .td-chip{padding:0 12px 0 0;unicode-bidi:embed}:host ::ng-deep .mat-basic-chip .td-chip bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip .td-chip bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip .td-chip [td-chip-avatar]{display:inline-block;-ms-flex-order:-20;order:-20;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;text-align:center;height:32px;width:32px;margin:0 8px 0 -12px;border-radius:50%;-ms-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}html[dir=rtl] :host ::ng-deep .mat-basic-chip .td-chip [td-chip-avatar]{margin:0 -12px 0 8px;unicode-bidi:embed}body[dir=rtl] :host ::ng-deep .mat-basic-chip .td-chip [td-chip-avatar]{margin:0 -12px 0 8px;unicode-bidi:embed}[dir=rtl] :host ::ng-deep .mat-basic-chip .td-chip [td-chip-avatar]{margin:0 -12px 0 8px;unicode-bidi:embed}:host ::ng-deep .mat-basic-chip .td-chip [td-chip-avatar] bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip .td-chip [td-chip-avatar] bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip.td-chip-after-pad{padding:0 12px 0 0}html[dir=rtl] :host ::ng-deep .mat-basic-chip.td-chip-after-pad{padding:0 0 0 12px;unicode-bidi:embed}body[dir=rtl] :host ::ng-deep .mat-basic-chip.td-chip-after-pad{padding:0 0 0 12px;unicode-bidi:embed}[dir=rtl] :host ::ng-deep .mat-basic-chip.td-chip-after-pad{padding:0 0 0 12px;unicode-bidi:embed}:host ::ng-deep .mat-basic-chip.td-chip-after-pad bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip.td-chip-after-pad bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip mat-icon.td-chip-removal{margin:0 4px;font-size:21px;line-height:22px}:host ::ng-deep .mat-basic-chip mat-icon.td-chip-removal:hover{cursor:pointer}:host ::ng-deep .td-chips-stacked .mat-basic-chip{margin:4px 0}:host ::ng-deep .td-chips-stacked .mat-basic-chip:first-of-type{margin:8px 0 4px}:host ::ng-deep .td-chips-stacked .mat-basic-chip:last-of-type{margin:4px 0 8px}:host .mat-form-field-underline{position:relative;height:1px;width:100%;bottom:0}:host .mat-form-field-underline.mat-disabled{background-position:0;bottom:-4px;background-color:transparent}:host .mat-form-field-underline .mat-form-field-ripple{position:absolute;height:2px;top:0;width:100%;-webkit-transform-origin:50%;-ms-transform-origin:50%;transform-origin:50%;-webkit-transform:scaleX(.5);-ms-transform:scaleX(.5);transform:scaleX(.5);visibility:hidden;opacity:0;transition:background-color .3s cubic-bezier(.55,0,.55,.2)}:host .mat-form-field-underline .mat-form-field-ripple.mat-focused{visibility:visible;opacity:1;-webkit-transform:scaleX(1);-ms-transform:scaleX(1);transform:scaleX(1);transition:transform 150ms linear,background-color .3s cubic-bezier(.55,0,.55,.2),-webkit-transform 150ms linear}:host.ng-invalid .mat-form-field-underline .mat-form-field-ripple{visibility:visible;opacity:1;-webkit-transform:scaleX(1);-ms-transform:scaleX(1);transform:scaleX(1);transition:transform 150ms linear,background-color .3s cubic-bezier(.55,0,.55,.2),-webkit-transform 150ms linear}:host ::ng-deep mat-form-field .mat-form-field-underline{display:none}"]
1164
+ styles: [":host{display:block;padding:0 5px;min-height:48px}:host .td-chips-wrapper{min-height:42px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}:host .td-chips-wrapper.td-chips-stacked .mat-basic-chip,:host .td-chips-wrapper.td-chips-stacked .td-chips-form-field{width:100%}:host .td-chips-wrapper.td-chips-input-before-position .td-chips-form-field{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}:host .td-chip,:host .td-chip>.td-chip-content{-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;max-width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;min-width:0}:host .td-chip.td-chip-stacked,:host .td-chip>.td-chip-content.td-chip-stacked{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}:host ::ng-deep .mat-form-field-wrapper{padding-bottom:2px}:host ::ng-deep .mat-basic-chip{display:inline-block;cursor:default;border-radius:16px;margin:8px 8px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box;max-width:100%;position:relative}html[dir=rtl] :host ::ng-deep .mat-basic-chip{margin:8px 0 0 8px;unicode-bidi:embed}body[dir=rtl] :host ::ng-deep .mat-basic-chip{margin:8px 0 0 8px;unicode-bidi:embed}[dir=rtl] :host ::ng-deep .mat-basic-chip{margin:8px 0 0 8px;unicode-bidi:embed}:host ::ng-deep .mat-basic-chip bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip .td-chip{min-height:32px;line-height:32px;font-size:13px;padding:0 0 0 12px}html[dir=rtl] :host ::ng-deep .mat-basic-chip .td-chip{padding:0 12px 0 0;unicode-bidi:embed}body[dir=rtl] :host ::ng-deep .mat-basic-chip .td-chip{padding:0 12px 0 0;unicode-bidi:embed}[dir=rtl] :host ::ng-deep .mat-basic-chip .td-chip{padding:0 12px 0 0;unicode-bidi:embed}:host ::ng-deep .mat-basic-chip .td-chip bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip .td-chip bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip .td-chip [td-chip-avatar]{display:inline-block;-webkit-box-ordinal-group:-19;-ms-flex-order:-20;order:-20;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center;height:32px;width:32px;margin:0 8px 0 -12px;border-radius:50%;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-sizing:border-box;box-sizing:border-box}html[dir=rtl] :host ::ng-deep .mat-basic-chip .td-chip [td-chip-avatar]{margin:0 -12px 0 8px;unicode-bidi:embed}body[dir=rtl] :host ::ng-deep .mat-basic-chip .td-chip [td-chip-avatar]{margin:0 -12px 0 8px;unicode-bidi:embed}[dir=rtl] :host ::ng-deep .mat-basic-chip .td-chip [td-chip-avatar]{margin:0 -12px 0 8px;unicode-bidi:embed}:host ::ng-deep .mat-basic-chip .td-chip [td-chip-avatar] bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip .td-chip [td-chip-avatar] bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip.td-chip-after-pad{padding:0 12px 0 0}html[dir=rtl] :host ::ng-deep .mat-basic-chip.td-chip-after-pad{padding:0 0 0 12px;unicode-bidi:embed}body[dir=rtl] :host ::ng-deep .mat-basic-chip.td-chip-after-pad{padding:0 0 0 12px;unicode-bidi:embed}[dir=rtl] :host ::ng-deep .mat-basic-chip.td-chip-after-pad{padding:0 0 0 12px;unicode-bidi:embed}:host ::ng-deep .mat-basic-chip.td-chip-after-pad bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip.td-chip-after-pad bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}:host ::ng-deep .mat-basic-chip mat-icon.td-chip-removal{margin:0 4px;font-size:21px;line-height:22px}:host ::ng-deep .mat-basic-chip mat-icon.td-chip-removal:hover{cursor:pointer}:host ::ng-deep .td-chips-stacked .mat-basic-chip{margin:4px 0}:host ::ng-deep .td-chips-stacked .mat-basic-chip:first-of-type{margin:8px 0 4px}:host ::ng-deep .td-chips-stacked .mat-basic-chip:last-of-type{margin:4px 0 8px}:host .mat-form-field-underline{position:relative;height:1px;width:100%;bottom:0}:host .mat-form-field-underline.mat-disabled{background-position:0;bottom:-4px;background-color:transparent}:host .mat-form-field-underline .mat-form-field-ripple{position:absolute;height:2px;top:0;width:100%;-webkit-transform-origin:50%;-ms-transform-origin:50%;transform-origin:50%;-webkit-transform:scaleX(.5);-ms-transform:scaleX(.5);transform:scaleX(.5);visibility:hidden;opacity:0;-webkit-transition:background-color .3s cubic-bezier(.55,0,.55,.2);transition:background-color .3s cubic-bezier(.55,0,.55,.2)}:host .mat-form-field-underline .mat-form-field-ripple.mat-focused{visibility:visible;opacity:1;-webkit-transform:scaleX(1);-ms-transform:scaleX(1);transform:scaleX(1);-webkit-transition:background-color .3s cubic-bezier(.55,0,.55,.2),-webkit-transform 150ms linear;transition:transform 150ms linear,background-color .3s cubic-bezier(.55,0,.55,.2),-webkit-transform 150ms linear}:host.ng-invalid .mat-form-field-underline .mat-form-field-ripple{visibility:visible;opacity:1;-webkit-transform:scaleX(1);-ms-transform:scaleX(1);transform:scaleX(1);-webkit-transition:background-color .3s cubic-bezier(.55,0,.55,.2),-webkit-transform 150ms linear;transition:transform 150ms linear,background-color .3s cubic-bezier(.55,0,.55,.2),-webkit-transform 150ms linear}:host ::ng-deep mat-form-field .mat-form-field-underline{display:none}"]
1165
1165
  }] }
1166
1166
  ];
1167
1167
  /** @nocollapse */
@@ -1169,7 +1169,7 @@
1169
1169
  return [
1170
1170
  { type: core.ElementRef },
1171
1171
  { type: core.Renderer2 },
1172
- { type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: [platformBrowser.DOCUMENT,] }] },
1172
+ { type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: [common.DOCUMENT,] }] },
1173
1173
  { type: core.ChangeDetectorRef }
1174
1174
  ];
1175
1175
  };
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-core-chips.umd.js.map","sources":["node_modules/tslib/tslib.es6.js","ng://@covalent/core/chips/chips.component.ts","ng://@covalent/core/chips/chips.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Component, Input, Output, forwardRef, DoCheck, ViewChild, ViewChildren, QueryList, OnInit, HostListener,\n ElementRef, Optional, Inject, Directive, TemplateRef, ViewContainerRef, ContentChild, ChangeDetectionStrategy,\n ChangeDetectorRef, AfterViewInit, OnDestroy, HostBinding, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/platform-browser';\nimport { EventEmitter } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, FormControl } from '@angular/forms';\n\nimport { TemplatePortalDirective } from '@angular/cdk/portal';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { UP_ARROW, DOWN_ARROW, ESCAPE, LEFT_ARROW, RIGHT_ARROW, DELETE, BACKSPACE, ENTER, SPACE, TAB, HOME } from '@angular/cdk/keycodes';\nimport { MatChip } from '@angular/material/chips';\nimport { MatInput } from '@angular/material/input';\nimport { MatOption } from '@angular/material/core';\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\n\nimport { Observable, Subscription, timer, merge, fromEvent } from 'rxjs';\nimport { filter, debounceTime } from 'rxjs/operators';\n\nimport { ICanDisable, mixinDisabled, IControlValueAccessor, mixinControlValueAccessor } from '@covalent/core/common';\n\n@Directive({\n selector: '[td-chip]ng-template',\n})\nexport class TdChipDirective extends TemplatePortalDirective {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n@Directive({\n selector: '[td-autocomplete-option]ng-template',\n})\nexport class TdAutocompleteOptionDirective extends TemplatePortalDirective {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\nexport class TdChipsBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n/* tslint:disable-next-line */\nexport const _TdChipsMixinBase = mixinControlValueAccessor(mixinDisabled(TdChipsBase), []);\n\n@Component({\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdChipsComponent),\n multi: true,\n }],\n selector: 'td-chips',\n inputs: ['disabled', 'value'],\n styleUrls: ['./chips.component.scss' ],\n templateUrl: './chips.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdChipsComponent extends _TdChipsMixinBase implements IControlValueAccessor, DoCheck, OnInit, AfterViewInit, OnDestroy, ICanDisable {\n\n private _outsideClickSubs: Subscription = Subscription.EMPTY;\n private _inputValueChangesSubs: Subscription = Subscription.EMPTY;\n private _isMousedown: boolean = false;\n\n private _items: any[];\n private _length: number = 0;\n private _stacked: boolean = false;\n private _requireMatch: boolean = false;\n private _color: 'primary' | 'accent' | 'warn' = 'primary';\n private _inputPosition: 'before' | 'after' = 'after';\n private _chipAddition: boolean = true;\n private _chipRemoval: boolean = true;\n private _focused: boolean = false;\n private _required: boolean = false;\n private _tabIndex: number = 0;\n private _touchendDebounce: number = 100;\n\n _internalClick: boolean = false;\n _internalActivateOption: boolean = false;\n\n @ViewChild('input') _nativeInput: ElementRef;\n @ViewChild(MatInput) _inputChild: MatInput;\n @ViewChild(MatAutocompleteTrigger) _autocompleteTrigger: MatAutocompleteTrigger;\n @ViewChildren(MatChip) _chipsChildren: QueryList<MatChip>;\n\n @ContentChild(TdChipDirective) _chipTemplate: TdChipDirective;\n @ContentChild(TdAutocompleteOptionDirective) _autocompleteOptionTemplate: TdAutocompleteOptionDirective;\n\n @ViewChildren(MatOption) _options: QueryList<MatOption>;\n\n /**\n * Flag that is true when autocomplete is focused.\n */\n get focused(): boolean {\n return this._focused;\n }\n\n /**\n * FormControl for the matInput element.\n */\n inputControl: FormControl = new FormControl();\n\n /**\n * items?: any[]\n * Renders the `mat-autocomplete` with the provided list to display as options.\n */\n @Input('items')\n set items(items: any[]) {\n this._items = items;\n this._setFirstOptionActive();\n this._changeDetectorRef.markForCheck();\n }\n get items(): any[] {\n return this._items;\n }\n\n /**\n * stacked?: boolean\n * Set stacked or horizontal chips depending on value.\n * Defaults to false.\n */\n @Input('stacked')\n set stacked(stacked: boolean) {\n this._stacked = coerceBooleanProperty(stacked);\n }\n get stacked(): boolean {\n return this._stacked;\n }\n\n /**\n * inputPosition?: 'before' | 'after'\n * Set input position before or after the chips.\n * Defaults to 'after'.\n */\n @Input('inputPosition')\n set inputPosition(inputPosition: 'before' | 'after') {\n this._inputPosition = inputPosition;\n }\n get inputPosition(): 'before' | 'after' {\n return this._inputPosition;\n }\n\n /**\n * requireMatch?: boolean\n * Blocks custom inputs and only allows selections from the autocomplete list.\n */\n @Input('requireMatch')\n set requireMatch(requireMatch: boolean) {\n this._requireMatch = coerceBooleanProperty(requireMatch);\n }\n get requireMatch(): boolean {\n return this._requireMatch;\n }\n\n /**\n * required?: boolean\n * Value is set to true if at least one chip is needed\n * Defaults to false\n */\n @Input('required')\n set required(required: boolean) {\n this._required = coerceBooleanProperty(required);\n }\n get required(): boolean {\n return this._required;\n }\n\n /**\n * chipAddition?: boolean\n * Disables the ability to add chips. When setting disabled as true, this will be overriden.\n * Defaults to true.\n */\n @Input('chipAddition')\n set chipAddition(chipAddition: boolean) {\n this._chipAddition = chipAddition;\n this._toggleInput();\n }\n get chipAddition(): boolean {\n return this._chipAddition;\n }\n\n /**\n * Checks if not in disabled state and if chipAddition is set to 'true'\n * States if a chip can be added and if the input is available\n */\n get canAddChip(): boolean {\n return this.chipAddition && !this.disabled;\n }\n\n /**\n * chipRemoval?: boolean\n * Disables the ability to remove chips. If it doesn't exist chip remmoval defaults to true.\n * When setting disabled as true, this will be overriden to false.\n */\n @Input('chipRemoval')\n set chipRemoval(chipRemoval: boolean) {\n this._chipRemoval = chipRemoval;\n }\n get chipRemoval(): boolean {\n return this._chipRemoval;\n }\n\n /**\n * Checks if not in disabled state and if chipRemoval is set to 'true'\n * States if a chip can be removed\n */\n get canRemoveChip(): boolean {\n return this.chipRemoval && !this.disabled;\n }\n\n /**\n * returns the display placeholder\n */\n get displayPlaceHolder(): string {\n if (!this.canAddChip) {\n return '';\n }\n return (this._required) ? `${this.placeholder} *` : this.placeholder;\n }\n\n /**\n * placeholder?: string\n * Placeholder for the autocomplete input.\n */\n @Input('placeholder') placeholder: string;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 200.\n */\n @Input('debounce') debounce: number = 200;\n\n /**\n * color?: 'primary' | 'accent' | 'warn'\n * Sets the color for the input and focus/selected state of the chips.\n * Defaults to 'primary'\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 /**\n * add?: function\n * Method to be executed when a chip is added.\n * Sends chip value as event.\n */\n @Output('add') onAdd: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * remove?: function\n * Method to be executed when a chip is removed.\n * Sends chip value as event.\n */\n @Output('remove') onRemove: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * inputChange?: function\n * Method to be executed when the value in the autocomplete input changes.\n * Sends string value as event.\n */\n @Output('inputChange') onInputChange: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * chipFocus?: function\n * Method to be executed when a chip is focused.\n * Sends chip value as event.\n */\n @Output('chipFocus') onChipFocus: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * blur?: function\n * Method to be executed when a chip is blurred.\n * Sends chip value as event.\n */\n @Output('chipBlur') onChipBlur: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * Hostbinding to set the a11y of the TdChipsComponent depending on its state\n */\n @HostBinding('attr.tabindex')\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n constructor(private _elementRef: ElementRef,\n private _renderer: Renderer2,\n @Optional() @Inject(DOCUMENT) private _document: any,\n _changeDetectorRef: ChangeDetectorRef) {\n super(_changeDetectorRef);\n this._renderer.addClass(this._elementRef.nativeElement, 'mat-' + this._color);\n }\n\n /**\n * compareWith? function\n * Function used to check whether a chip value already exists.\n * Defaults to strict equality comparison ===\n */\n @Input('compareWith') compareWith: (o1: any, o2: any) => boolean = (o1: any, o2: any) => {\n return o1 === o2;\n }\n\n /**\n * Listens to host focus event to act on it\n */\n @HostListener('focus', ['$event'])\n focusListener(event: FocusEvent): void {\n // should only focus if its not via mousedown to prevent clashing with autocomplete\n if (!this._isMousedown) {\n this.focus();\n }\n event.preventDefault();\n }\n\n /**\n * Listens to host mousedown event to act on it\n */\n @HostListener('mousedown', ['$event'])\n mousedownListener(event: FocusEvent): void {\n // sets a flag to know if there was a mousedown and then it returns it back to false\n this._isMousedown = true;\n timer().toPromise().then(() => {\n this._isMousedown = false;\n });\n }\n\n /**\n * If clicking on :host or `td-chips-wrapper`, then we stop the click propagation so the autocomplete\n * doesnt close automatically.\n */\n @HostListener('click', ['$event'])\n clickListener(event: Event): void {\n const clickTarget: HTMLElement = <HTMLElement>event.target;\n if (clickTarget === this._elementRef.nativeElement ||\n clickTarget.className.indexOf('td-chips-wrapper') > -1) {\n this.focus();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /**\n * Listens to host keydown event to act on it depending on the keypress\n */\n @HostListener('keydown', ['$event'])\n keydownListener(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case TAB:\n // if tabing out, then unfocus the component\n timer().toPromise().then(() => {\n this.removeFocusedState();\n });\n break;\n case ESCAPE:\n if (this._inputChild.focused) {\n this._nativeInput.nativeElement.blur();\n this.removeFocusedState();\n this._closeAutocomplete();\n } else {\n this.focus();\n }\n break;\n default:\n // default\n }\n }\n\n ngOnInit(): void {\n this._inputValueChangesSubs = this.inputControl.valueChanges.pipe(\n debounceTime(this.debounce),\n ).subscribe((value: string) => {\n this.onInputChange.emit(value ? value : '');\n });\n this._changeDetectorRef.markForCheck();\n }\n\n ngAfterViewInit(): void {\n this._watchOutsideClick();\n this._changeDetectorRef.markForCheck();\n }\n\n ngDoCheck(): void {\n // Throw onChange event only if array changes size.\n if (this.value && this.value.length !== this._length) {\n this._length = this.value.length;\n this.onChange(this.value);\n }\n }\n\n ngOnDestroy(): void {\n this._outsideClickSubs.unsubscribe();\n this._inputValueChangesSubs.unsubscribe();\n }\n\n _setInternalClick(): void {\n this._internalClick = true;\n }\n\n /** Method executed when the disabled value changes */\n onDisabledChange(v: boolean): void {\n this._toggleInput();\n }\n\n /**\n * Method that is executed when trying to create a new chip from the autocomplete.\n * It check if [requireMatch] is enabled, and tries to add the first active option\n * else if just adds the value thats on the input\n * returns 'true' if successful, 'false' if it fails.\n */\n _handleAddChip(): boolean {\n let value: any;\n if (this.requireMatch) {\n let selectedOptions: MatOption[] = this._options.toArray().filter((option: MatOption) => {\n return option.active;\n });\n if (selectedOptions.length > 0) {\n value = selectedOptions[0].value;\n selectedOptions[0].setInactiveStyles();\n }\n if (!value) {\n return false;\n }\n } else {\n // if there is a selection, then use that\n // else use the input value as chip\n if (this._autocompleteTrigger.activeOption) {\n value = this._autocompleteTrigger.activeOption.value;\n this._autocompleteTrigger.activeOption.setInactiveStyles();\n } else {\n value = this._inputChild.value;\n if (value.trim() === '') {\n return false;\n }\n }\n }\n return this.addChip(value);\n }\n\n /**\n * Method thats exectuted when trying to add a value as chip\n * returns 'true' if successful, 'false' if it fails.\n */\n addChip(value: any): boolean {\n /**\n * add a debounce ms delay when reopening the autocomplete to give it time\n * to rerender the next list and at the correct spot\n */\n\n this._closeAutocomplete();\n timer(this.debounce).toPromise().then(() => {\n this.setFocusedState();\n this._setFirstOptionActive();\n this._openAutocomplete();\n });\n\n this.inputControl.setValue('');\n // check if value is already part of the model\n if (this.value.findIndex((item: any) => this.compareWith(item, value)) > -1) {\n return false;\n }\n\n this.value.push(value);\n this.onAdd.emit(value);\n this.onChange(this.value);\n this._changeDetectorRef.markForCheck();\n return true;\n }\n\n /**\n * Method that is executed when trying to remove a chip.\n * returns 'true' if successful, 'false' if it fails.\n */\n removeChip(index: number): boolean {\n let removedValues: any[] = this.value.splice(index, 1);\n if (removedValues.length === 0) {\n return false;\n }\n\n /**\n * Checks if deleting last single chip, to focus input afterwards\n * Else check if its not the last chip of the list to focus the next one.\n */\n if (index === (this._totalChips - 1) && index === 0) {\n this._inputChild.focus();\n } else if (index < (this._totalChips - 1)) {\n this._focusChip(index + 1);\n } else if (index > 0) {\n this._focusChip(index - 1);\n }\n\n this.onRemove.emit(removedValues[0]);\n this.onChange(this.value);\n this.inputControl.setValue('');\n this._changeDetectorRef.markForCheck();\n return true;\n }\n\n /**\n * Sets blur of chip and sends out event\n */\n _handleChipBlur(event: FocusEvent, value: any): void {\n this.onChipBlur.emit(value);\n }\n\n /**\n * Sets focus of chip and sends out event\n */\n _handleChipFocus(event: FocusEvent, value: any): void {\n this.setFocusedState();\n this.onChipFocus.emit(value);\n }\n\n _handleFocus(): boolean {\n this.setFocusedState();\n this._setFirstOptionActive();\n return true;\n }\n\n /**\n * Sets focus state of the component\n */\n setFocusedState(): void {\n if (!this.disabled) {\n this._focused = true;\n this._tabIndex = -1;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Removes focus state of the component\n */\n removeFocusedState(): void {\n this._focused = false;\n this._tabIndex = 0;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Programmatically focus the input or first chip. Since its the component entry point\n * depending if a user can add or remove chips\n */\n focus(): void {\n if (this.canAddChip) {\n this._inputChild.focus();\n } else if (!this.disabled) {\n this._focusFirstChip();\n }\n }\n\n /**\n * Passes relevant input key presses.\n */\n _inputKeydown(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case UP_ARROW:\n /**\n * Since the first item is highlighted on [requireMatch], we need to inactivate it\n * when pressing the up key\n */\n if (this.requireMatch) {\n let length: number = this._options.length;\n if (length > 1 && this._options.toArray()[0].active && this._internalActivateOption) {\n this._options.toArray()[0].setInactiveStyles();\n this._internalActivateOption = false;\n // prevent default window scrolling\n event.preventDefault();\n }\n }\n break;\n case LEFT_ARROW:\n case DELETE:\n case BACKSPACE:\n this._closeAutocomplete();\n /** Check to see if input is empty when pressing left arrow to move to the last chip */\n if (!this._inputChild.value) {\n this._focusLastChip();\n // prevent default window scrolling\n event.preventDefault();\n }\n break;\n case RIGHT_ARROW:\n this._closeAutocomplete();\n /** Check to see if input is empty when pressing right arrow to move to the first chip */\n if (!this._inputChild.value) {\n this._focusFirstChip();\n // prevent default window scrolling\n event.preventDefault();\n }\n break;\n default:\n // default\n }\n }\n\n /**\n * Passes relevant chip key presses.\n */\n _chipKeydown(event: KeyboardEvent, index: number): void {\n switch (event.keyCode) {\n case DELETE:\n case BACKSPACE:\n /** Check to see if we can delete a chip */\n if (this.canRemoveChip) {\n this.removeChip(index);\n }\n break;\n case UP_ARROW:\n case LEFT_ARROW:\n /**\n * Check to see if left/down arrow was pressed while focusing the first chip to focus input next\n * Also check if input should be focused\n */\n if (index === 0) {\n // only try to target input if pressing left\n if (this.canAddChip && event.keyCode === LEFT_ARROW) {\n this._inputChild.focus();\n } else {\n this._focusLastChip();\n }\n } else if (index > 0) {\n this._focusChip(index - 1);\n }\n // prevent default window scrolling\n event.preventDefault();\n break;\n case DOWN_ARROW:\n case RIGHT_ARROW:\n /**\n * Check to see if right/up arrow was pressed while focusing the last chip to focus input next\n * Also check if input should be focused\n */\n if (index === (this._totalChips - 1)) {\n // only try to target input if pressing right\n if (this.canAddChip && event.keyCode === RIGHT_ARROW) {\n this._inputChild.focus();\n } else {\n this._focusFirstChip();\n }\n } else if (index < (this._totalChips - 1)) {\n this._focusChip(index + 1);\n }\n // prevent default window scrolling\n event.preventDefault();\n break;\n default:\n // default\n }\n }\n\n /**\n * Method to remove from display the value added from the autocomplete since it goes directly as chip.\n */\n _removeInputDisplay(): string {\n return '';\n }\n\n /**\n * Method to open the autocomplete manually if its not already opened\n */\n _openAutocomplete(): void {\n if (!this._autocompleteTrigger.panelOpen) {\n this._autocompleteTrigger.openPanel();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Method to close the autocomplete manually if its not already closed\n */\n _closeAutocomplete(): void {\n if (this._autocompleteTrigger.panelOpen) {\n this._autocompleteTrigger.closePanel();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Get total of chips\n */\n get _totalChips(): number {\n let chips: MatChip[] = this._chipsChildren.toArray();\n return chips.length;\n }\n\n /**\n * Method to focus a desired chip by index\n */\n private _focusChip(index: number): void {\n /** check to see if index exists in the array before focusing */\n if (index > -1 && this._totalChips > index) {\n this._chipsChildren.toArray()[index].focus();\n }\n }\n\n /** Method to focus first chip */\n private _focusFirstChip(): void {\n this._focusChip(0);\n }\n\n /** Method to focus last chip */\n private _focusLastChip(): void {\n this._focusChip(this._totalChips - 1);\n }\n\n /**\n * Method to toggle the disable state of input\n * Checks if not in disabled state and if chipAddition is set to 'true'\n */\n private _toggleInput(): void {\n if (this.canAddChip) {\n this.inputControl.enable();\n } else {\n this.inputControl.disable();\n }\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Sets first option as active to let the user know which one will be added when pressing enter\n * Only if [requireMatch] has been set\n */\n private _setFirstOptionActive(): void {\n if (this.requireMatch) {\n // need to use a timer here to wait until the autocomplete has been opened (end of queue)\n timer().toPromise().then(() => {\n if (this.focused && this._options && this._options.length > 0) {\n // clean up of previously active options\n this._options.toArray().forEach((option: MatOption) => {\n option.setInactiveStyles();\n });\n // set the first one as active\n this._options.toArray()[0].setActiveStyles();\n this._internalActivateOption = true;\n this._changeDetectorRef.markForCheck();\n }\n });\n }\n }\n\n /**\n * Watches clicks outside of the component to remove the focus\n * The autocomplete panel is considered inside the component so we\n * need to use a flag to find out when its clicked.\n */\n private _watchOutsideClick(): void {\n if (this._document) {\n this._outsideClickSubs = merge(\n fromEvent(this._document, 'click'),\n fromEvent(this._document, 'touchend'),\n ).pipe(\n debounceTime(this._touchendDebounce),\n filter(\n (event: MouseEvent) => {\n const clickTarget: HTMLElement = <HTMLElement>event.target;\n setTimeout(() => {\n this._internalClick = false;\n });\n return this.focused &&\n (clickTarget !== this._elementRef.nativeElement) &&\n !this._elementRef.nativeElement.contains(clickTarget) && !this._internalClick;\n },\n ),\n ).subscribe(() => {\n if (this.focused) {\n this._autocompleteTrigger.closePanel();\n this.removeFocusedState();\n this.onTouched();\n this._changeDetectorRef.markForCheck();\n }\n });\n }\n return undefined;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatChipsModule } from '@angular/material/chips';\n\nimport { TdChipsComponent, TdChipDirective, TdAutocompleteOptionDirective } from './chips.component';\n\n@NgModule({\n imports: [\n ReactiveFormsModule,\n CommonModule,\n MatInputModule,\n MatIconModule,\n MatChipsModule,\n MatAutocompleteModule,\n ],\n declarations: [\n TdChipsComponent,\n TdChipDirective,\n TdAutocompleteOptionDirective,\n ],\n exports: [\n TdChipsComponent,\n TdChipDirective,\n TdAutocompleteOptionDirective,\n ],\n})\nexport class CovalentChipsModule {\n\n}\n"],"names":["tslib_1.__extends","Directive","TemplateRef","ViewContainerRef","TemplatePortalDirective","mixinControlValueAccessor","mixinDisabled","Subscription","FormControl","EventEmitter","coerceBooleanProperty","timer","TAB","ESCAPE","debounceTime","UP_ARROW","LEFT_ARROW","DELETE","BACKSPACE","RIGHT_ARROW","DOWN_ARROW","chips","merge","fromEvent","filter","Component","NG_VALUE_ACCESSOR","forwardRef","ChangeDetectionStrategy","ElementRef","Renderer2","Optional","Inject","DOCUMENT","ChangeDetectorRef","ViewChild","MatInput","MatAutocompleteTrigger","ViewChildren","MatChip","ContentChild","MatOption","Input","Output","HostBinding","HostListener","NgModule","ReactiveFormsModule","CommonModule","MatInputModule","MatIconModule","MatChipsModule","MatAutocompleteModule"],"mappings":"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"}
1
+ {"version":3,"file":"covalent-core-chips.umd.js.map","sources":["node_modules/tslib/tslib.es6.js","ng://@covalent/core/chips/chips.component.ts","ng://@covalent/core/chips/chips.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Component, Input, Output, forwardRef, DoCheck, ViewChild, ViewChildren, QueryList, OnInit, HostListener,\n ElementRef, Optional, Inject, Directive, TemplateRef, ViewContainerRef, ContentChild, ChangeDetectionStrategy,\n ChangeDetectorRef, AfterViewInit, OnDestroy, HostBinding, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { EventEmitter } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, FormControl } from '@angular/forms';\n\nimport { TemplatePortalDirective } from '@angular/cdk/portal';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { UP_ARROW, DOWN_ARROW, ESCAPE, LEFT_ARROW, RIGHT_ARROW, DELETE, BACKSPACE, ENTER, SPACE, TAB, HOME } from '@angular/cdk/keycodes';\nimport { MatChip } from '@angular/material/chips';\nimport { MatInput } from '@angular/material/input';\nimport { MatOption } from '@angular/material/core';\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\n\nimport { Observable, Subscription, timer, merge, fromEvent } from 'rxjs';\nimport { filter, debounceTime } from 'rxjs/operators';\n\nimport { ICanDisable, mixinDisabled, IControlValueAccessor, mixinControlValueAccessor } from '@covalent/core/common';\n\n@Directive({\n selector: '[td-chip]ng-template',\n})\nexport class TdChipDirective extends TemplatePortalDirective {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n@Directive({\n selector: '[td-autocomplete-option]ng-template',\n})\nexport class TdAutocompleteOptionDirective extends TemplatePortalDirective {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\nexport class TdChipsBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n/* tslint:disable-next-line */\nexport const _TdChipsMixinBase = mixinControlValueAccessor(mixinDisabled(TdChipsBase), []);\n\n@Component({\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdChipsComponent),\n multi: true,\n }],\n selector: 'td-chips',\n inputs: ['disabled', 'value'],\n styleUrls: ['./chips.component.scss' ],\n templateUrl: './chips.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdChipsComponent extends _TdChipsMixinBase implements IControlValueAccessor, DoCheck, OnInit, AfterViewInit, OnDestroy, ICanDisable {\n\n private _outsideClickSubs: Subscription = Subscription.EMPTY;\n private _inputValueChangesSubs: Subscription = Subscription.EMPTY;\n private _isMousedown: boolean = false;\n\n private _items: any[];\n private _length: number = 0;\n private _stacked: boolean = false;\n private _requireMatch: boolean = false;\n private _color: 'primary' | 'accent' | 'warn' = 'primary';\n private _inputPosition: 'before' | 'after' = 'after';\n private _chipAddition: boolean = true;\n private _chipRemoval: boolean = true;\n private _focused: boolean = false;\n private _required: boolean = false;\n private _tabIndex: number = 0;\n private _touchendDebounce: number = 100;\n\n _internalClick: boolean = false;\n _internalActivateOption: boolean = false;\n\n @ViewChild('input') _nativeInput: ElementRef;\n @ViewChild(MatInput) _inputChild: MatInput;\n @ViewChild(MatAutocompleteTrigger) _autocompleteTrigger: MatAutocompleteTrigger;\n @ViewChildren(MatChip) _chipsChildren: QueryList<MatChip>;\n\n @ContentChild(TdChipDirective) _chipTemplate: TdChipDirective;\n @ContentChild(TdAutocompleteOptionDirective) _autocompleteOptionTemplate: TdAutocompleteOptionDirective;\n\n @ViewChildren(MatOption) _options: QueryList<MatOption>;\n\n /**\n * Flag that is true when autocomplete is focused.\n */\n get focused(): boolean {\n return this._focused;\n }\n\n /**\n * FormControl for the matInput element.\n */\n inputControl: FormControl = new FormControl();\n\n /**\n * items?: any[]\n * Renders the `mat-autocomplete` with the provided list to display as options.\n */\n @Input('items')\n set items(items: any[]) {\n this._items = items;\n this._setFirstOptionActive();\n this._changeDetectorRef.markForCheck();\n }\n get items(): any[] {\n return this._items;\n }\n\n /**\n * stacked?: boolean\n * Set stacked or horizontal chips depending on value.\n * Defaults to false.\n */\n @Input('stacked')\n set stacked(stacked: boolean) {\n this._stacked = coerceBooleanProperty(stacked);\n }\n get stacked(): boolean {\n return this._stacked;\n }\n\n /**\n * inputPosition?: 'before' | 'after'\n * Set input position before or after the chips.\n * Defaults to 'after'.\n */\n @Input('inputPosition')\n set inputPosition(inputPosition: 'before' | 'after') {\n this._inputPosition = inputPosition;\n }\n get inputPosition(): 'before' | 'after' {\n return this._inputPosition;\n }\n\n /**\n * requireMatch?: boolean\n * Blocks custom inputs and only allows selections from the autocomplete list.\n */\n @Input('requireMatch')\n set requireMatch(requireMatch: boolean) {\n this._requireMatch = coerceBooleanProperty(requireMatch);\n }\n get requireMatch(): boolean {\n return this._requireMatch;\n }\n\n /**\n * required?: boolean\n * Value is set to true if at least one chip is needed\n * Defaults to false\n */\n @Input('required')\n set required(required: boolean) {\n this._required = coerceBooleanProperty(required);\n }\n get required(): boolean {\n return this._required;\n }\n\n /**\n * chipAddition?: boolean\n * Disables the ability to add chips. When setting disabled as true, this will be overriden.\n * Defaults to true.\n */\n @Input('chipAddition')\n set chipAddition(chipAddition: boolean) {\n this._chipAddition = chipAddition;\n this._toggleInput();\n }\n get chipAddition(): boolean {\n return this._chipAddition;\n }\n\n /**\n * Checks if not in disabled state and if chipAddition is set to 'true'\n * States if a chip can be added and if the input is available\n */\n get canAddChip(): boolean {\n return this.chipAddition && !this.disabled;\n }\n\n /**\n * chipRemoval?: boolean\n * Disables the ability to remove chips. If it doesn't exist chip remmoval defaults to true.\n * When setting disabled as true, this will be overriden to false.\n */\n @Input('chipRemoval')\n set chipRemoval(chipRemoval: boolean) {\n this._chipRemoval = chipRemoval;\n }\n get chipRemoval(): boolean {\n return this._chipRemoval;\n }\n\n /**\n * Checks if not in disabled state and if chipRemoval is set to 'true'\n * States if a chip can be removed\n */\n get canRemoveChip(): boolean {\n return this.chipRemoval && !this.disabled;\n }\n\n /**\n * returns the display placeholder\n */\n get displayPlaceHolder(): string {\n if (!this.canAddChip) {\n return '';\n }\n return (this._required) ? `${this.placeholder} *` : this.placeholder;\n }\n\n /**\n * placeholder?: string\n * Placeholder for the autocomplete input.\n */\n @Input('placeholder') placeholder: string;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 200.\n */\n @Input('debounce') debounce: number = 200;\n\n /**\n * color?: 'primary' | 'accent' | 'warn'\n * Sets the color for the input and focus/selected state of the chips.\n * Defaults to 'primary'\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 /**\n * add?: function\n * Method to be executed when a chip is added.\n * Sends chip value as event.\n */\n @Output('add') onAdd: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * remove?: function\n * Method to be executed when a chip is removed.\n * Sends chip value as event.\n */\n @Output('remove') onRemove: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * inputChange?: function\n * Method to be executed when the value in the autocomplete input changes.\n * Sends string value as event.\n */\n @Output('inputChange') onInputChange: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * chipFocus?: function\n * Method to be executed when a chip is focused.\n * Sends chip value as event.\n */\n @Output('chipFocus') onChipFocus: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * blur?: function\n * Method to be executed when a chip is blurred.\n * Sends chip value as event.\n */\n @Output('chipBlur') onChipBlur: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * Hostbinding to set the a11y of the TdChipsComponent depending on its state\n */\n @HostBinding('attr.tabindex')\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n constructor(private _elementRef: ElementRef,\n private _renderer: Renderer2,\n @Optional() @Inject(DOCUMENT) private _document: any,\n _changeDetectorRef: ChangeDetectorRef) {\n super(_changeDetectorRef);\n this._renderer.addClass(this._elementRef.nativeElement, 'mat-' + this._color);\n }\n\n /**\n * compareWith? function\n * Function used to check whether a chip value already exists.\n * Defaults to strict equality comparison ===\n */\n @Input('compareWith') compareWith: (o1: any, o2: any) => boolean = (o1: any, o2: any) => {\n return o1 === o2;\n }\n\n /**\n * Listens to host focus event to act on it\n */\n @HostListener('focus', ['$event'])\n focusListener(event: FocusEvent): void {\n // should only focus if its not via mousedown to prevent clashing with autocomplete\n if (!this._isMousedown) {\n this.focus();\n }\n event.preventDefault();\n }\n\n /**\n * Listens to host mousedown event to act on it\n */\n @HostListener('mousedown', ['$event'])\n mousedownListener(event: FocusEvent): void {\n // sets a flag to know if there was a mousedown and then it returns it back to false\n this._isMousedown = true;\n timer().toPromise().then(() => {\n this._isMousedown = false;\n });\n }\n\n /**\n * If clicking on :host or `td-chips-wrapper`, then we stop the click propagation so the autocomplete\n * doesnt close automatically.\n */\n @HostListener('click', ['$event'])\n clickListener(event: Event): void {\n const clickTarget: HTMLElement = <HTMLElement>event.target;\n if (clickTarget === this._elementRef.nativeElement ||\n clickTarget.className.indexOf('td-chips-wrapper') > -1) {\n this.focus();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /**\n * Listens to host keydown event to act on it depending on the keypress\n */\n @HostListener('keydown', ['$event'])\n keydownListener(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case TAB:\n // if tabing out, then unfocus the component\n timer().toPromise().then(() => {\n this.removeFocusedState();\n });\n break;\n case ESCAPE:\n if (this._inputChild.focused) {\n this._nativeInput.nativeElement.blur();\n this.removeFocusedState();\n this._closeAutocomplete();\n } else {\n this.focus();\n }\n break;\n default:\n // default\n }\n }\n\n ngOnInit(): void {\n this._inputValueChangesSubs = this.inputControl.valueChanges.pipe(\n debounceTime(this.debounce),\n ).subscribe((value: string) => {\n this.onInputChange.emit(value ? value : '');\n });\n this._changeDetectorRef.markForCheck();\n }\n\n ngAfterViewInit(): void {\n this._watchOutsideClick();\n this._changeDetectorRef.markForCheck();\n }\n\n ngDoCheck(): void {\n // Throw onChange event only if array changes size.\n if (this.value && this.value.length !== this._length) {\n this._length = this.value.length;\n this.onChange(this.value);\n }\n }\n\n ngOnDestroy(): void {\n this._outsideClickSubs.unsubscribe();\n this._inputValueChangesSubs.unsubscribe();\n }\n\n _setInternalClick(): void {\n this._internalClick = true;\n }\n\n /** Method executed when the disabled value changes */\n onDisabledChange(v: boolean): void {\n this._toggleInput();\n }\n\n /**\n * Method that is executed when trying to create a new chip from the autocomplete.\n * It check if [requireMatch] is enabled, and tries to add the first active option\n * else if just adds the value thats on the input\n * returns 'true' if successful, 'false' if it fails.\n */\n _handleAddChip(): boolean {\n let value: any;\n if (this.requireMatch) {\n let selectedOptions: MatOption[] = this._options.toArray().filter((option: MatOption) => {\n return option.active;\n });\n if (selectedOptions.length > 0) {\n value = selectedOptions[0].value;\n selectedOptions[0].setInactiveStyles();\n }\n if (!value) {\n return false;\n }\n } else {\n // if there is a selection, then use that\n // else use the input value as chip\n if (this._autocompleteTrigger.activeOption) {\n value = this._autocompleteTrigger.activeOption.value;\n this._autocompleteTrigger.activeOption.setInactiveStyles();\n } else {\n value = this._inputChild.value;\n if (value.trim() === '') {\n return false;\n }\n }\n }\n return this.addChip(value);\n }\n\n /**\n * Method thats exectuted when trying to add a value as chip\n * returns 'true' if successful, 'false' if it fails.\n */\n addChip(value: any): boolean {\n /**\n * add a debounce ms delay when reopening the autocomplete to give it time\n * to rerender the next list and at the correct spot\n */\n\n this._closeAutocomplete();\n timer(this.debounce).toPromise().then(() => {\n this.setFocusedState();\n this._setFirstOptionActive();\n this._openAutocomplete();\n });\n\n this.inputControl.setValue('');\n // check if value is already part of the model\n if (this.value.findIndex((item: any) => this.compareWith(item, value)) > -1) {\n return false;\n }\n\n this.value.push(value);\n this.onAdd.emit(value);\n this.onChange(this.value);\n this._changeDetectorRef.markForCheck();\n return true;\n }\n\n /**\n * Method that is executed when trying to remove a chip.\n * returns 'true' if successful, 'false' if it fails.\n */\n removeChip(index: number): boolean {\n let removedValues: any[] = this.value.splice(index, 1);\n if (removedValues.length === 0) {\n return false;\n }\n\n /**\n * Checks if deleting last single chip, to focus input afterwards\n * Else check if its not the last chip of the list to focus the next one.\n */\n if (index === (this._totalChips - 1) && index === 0) {\n this._inputChild.focus();\n } else if (index < (this._totalChips - 1)) {\n this._focusChip(index + 1);\n } else if (index > 0) {\n this._focusChip(index - 1);\n }\n\n this.onRemove.emit(removedValues[0]);\n this.onChange(this.value);\n this.inputControl.setValue('');\n this._changeDetectorRef.markForCheck();\n return true;\n }\n\n /**\n * Sets blur of chip and sends out event\n */\n _handleChipBlur(event: FocusEvent, value: any): void {\n this.onChipBlur.emit(value);\n }\n\n /**\n * Sets focus of chip and sends out event\n */\n _handleChipFocus(event: FocusEvent, value: any): void {\n this.setFocusedState();\n this.onChipFocus.emit(value);\n }\n\n _handleFocus(): boolean {\n this.setFocusedState();\n this._setFirstOptionActive();\n return true;\n }\n\n /**\n * Sets focus state of the component\n */\n setFocusedState(): void {\n if (!this.disabled) {\n this._focused = true;\n this._tabIndex = -1;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Removes focus state of the component\n */\n removeFocusedState(): void {\n this._focused = false;\n this._tabIndex = 0;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Programmatically focus the input or first chip. Since its the component entry point\n * depending if a user can add or remove chips\n */\n focus(): void {\n if (this.canAddChip) {\n this._inputChild.focus();\n } else if (!this.disabled) {\n this._focusFirstChip();\n }\n }\n\n /**\n * Passes relevant input key presses.\n */\n _inputKeydown(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case UP_ARROW:\n /**\n * Since the first item is highlighted on [requireMatch], we need to inactivate it\n * when pressing the up key\n */\n if (this.requireMatch) {\n let length: number = this._options.length;\n if (length > 1 && this._options.toArray()[0].active && this._internalActivateOption) {\n this._options.toArray()[0].setInactiveStyles();\n this._internalActivateOption = false;\n // prevent default window scrolling\n event.preventDefault();\n }\n }\n break;\n case LEFT_ARROW:\n case DELETE:\n case BACKSPACE:\n this._closeAutocomplete();\n /** Check to see if input is empty when pressing left arrow to move to the last chip */\n if (!this._inputChild.value) {\n this._focusLastChip();\n // prevent default window scrolling\n event.preventDefault();\n }\n break;\n case RIGHT_ARROW:\n this._closeAutocomplete();\n /** Check to see if input is empty when pressing right arrow to move to the first chip */\n if (!this._inputChild.value) {\n this._focusFirstChip();\n // prevent default window scrolling\n event.preventDefault();\n }\n break;\n default:\n // default\n }\n }\n\n /**\n * Passes relevant chip key presses.\n */\n _chipKeydown(event: KeyboardEvent, index: number): void {\n switch (event.keyCode) {\n case DELETE:\n case BACKSPACE:\n /** Check to see if we can delete a chip */\n if (this.canRemoveChip) {\n this.removeChip(index);\n }\n break;\n case UP_ARROW:\n case LEFT_ARROW:\n /**\n * Check to see if left/down arrow was pressed while focusing the first chip to focus input next\n * Also check if input should be focused\n */\n if (index === 0) {\n // only try to target input if pressing left\n if (this.canAddChip && event.keyCode === LEFT_ARROW) {\n this._inputChild.focus();\n } else {\n this._focusLastChip();\n }\n } else if (index > 0) {\n this._focusChip(index - 1);\n }\n // prevent default window scrolling\n event.preventDefault();\n break;\n case DOWN_ARROW:\n case RIGHT_ARROW:\n /**\n * Check to see if right/up arrow was pressed while focusing the last chip to focus input next\n * Also check if input should be focused\n */\n if (index === (this._totalChips - 1)) {\n // only try to target input if pressing right\n if (this.canAddChip && event.keyCode === RIGHT_ARROW) {\n this._inputChild.focus();\n } else {\n this._focusFirstChip();\n }\n } else if (index < (this._totalChips - 1)) {\n this._focusChip(index + 1);\n }\n // prevent default window scrolling\n event.preventDefault();\n break;\n default:\n // default\n }\n }\n\n /**\n * Method to remove from display the value added from the autocomplete since it goes directly as chip.\n */\n _removeInputDisplay(): string {\n return '';\n }\n\n /**\n * Method to open the autocomplete manually if its not already opened\n */\n _openAutocomplete(): void {\n if (!this._autocompleteTrigger.panelOpen) {\n this._autocompleteTrigger.openPanel();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Method to close the autocomplete manually if its not already closed\n */\n _closeAutocomplete(): void {\n if (this._autocompleteTrigger.panelOpen) {\n this._autocompleteTrigger.closePanel();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Get total of chips\n */\n get _totalChips(): number {\n let chips: MatChip[] = this._chipsChildren.toArray();\n return chips.length;\n }\n\n /**\n * Method to focus a desired chip by index\n */\n private _focusChip(index: number): void {\n /** check to see if index exists in the array before focusing */\n if (index > -1 && this._totalChips > index) {\n this._chipsChildren.toArray()[index].focus();\n }\n }\n\n /** Method to focus first chip */\n private _focusFirstChip(): void {\n this._focusChip(0);\n }\n\n /** Method to focus last chip */\n private _focusLastChip(): void {\n this._focusChip(this._totalChips - 1);\n }\n\n /**\n * Method to toggle the disable state of input\n * Checks if not in disabled state and if chipAddition is set to 'true'\n */\n private _toggleInput(): void {\n if (this.canAddChip) {\n this.inputControl.enable();\n } else {\n this.inputControl.disable();\n }\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Sets first option as active to let the user know which one will be added when pressing enter\n * Only if [requireMatch] has been set\n */\n private _setFirstOptionActive(): void {\n if (this.requireMatch) {\n // need to use a timer here to wait until the autocomplete has been opened (end of queue)\n timer().toPromise().then(() => {\n if (this.focused && this._options && this._options.length > 0) {\n // clean up of previously active options\n this._options.toArray().forEach((option: MatOption) => {\n option.setInactiveStyles();\n });\n // set the first one as active\n this._options.toArray()[0].setActiveStyles();\n this._internalActivateOption = true;\n this._changeDetectorRef.markForCheck();\n }\n });\n }\n }\n\n /**\n * Watches clicks outside of the component to remove the focus\n * The autocomplete panel is considered inside the component so we\n * need to use a flag to find out when its clicked.\n */\n private _watchOutsideClick(): void {\n if (this._document) {\n this._outsideClickSubs = merge(\n fromEvent(this._document, 'click'),\n fromEvent(this._document, 'touchend'),\n ).pipe(\n debounceTime(this._touchendDebounce),\n filter(\n (event: MouseEvent) => {\n const clickTarget: HTMLElement = <HTMLElement>event.target;\n setTimeout(() => {\n this._internalClick = false;\n });\n return this.focused &&\n (clickTarget !== this._elementRef.nativeElement) &&\n !this._elementRef.nativeElement.contains(clickTarget) && !this._internalClick;\n },\n ),\n ).subscribe(() => {\n if (this.focused) {\n this._autocompleteTrigger.closePanel();\n this.removeFocusedState();\n this.onTouched();\n this._changeDetectorRef.markForCheck();\n }\n });\n }\n return undefined;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatChipsModule } from '@angular/material/chips';\n\nimport { TdChipsComponent, TdChipDirective, TdAutocompleteOptionDirective } from './chips.component';\n\n@NgModule({\n imports: [\n ReactiveFormsModule,\n CommonModule,\n MatInputModule,\n MatIconModule,\n MatChipsModule,\n MatAutocompleteModule,\n ],\n declarations: [\n TdChipsComponent,\n TdChipDirective,\n TdAutocompleteOptionDirective,\n ],\n exports: [\n TdChipsComponent,\n TdChipDirective,\n TdAutocompleteOptionDirective,\n ],\n})\nexport class CovalentChipsModule {\n\n}\n"],"names":["tslib_1.__extends","Directive","TemplateRef","ViewContainerRef","TemplatePortalDirective","mixinControlValueAccessor","mixinDisabled","Subscription","FormControl","EventEmitter","coerceBooleanProperty","timer","TAB","ESCAPE","debounceTime","UP_ARROW","LEFT_ARROW","DELETE","BACKSPACE","RIGHT_ARROW","DOWN_ARROW","chips","merge","fromEvent","filter","Component","NG_VALUE_ACCESSOR","forwardRef","ChangeDetectionStrategy","ElementRef","Renderer2","Optional","Inject","DOCUMENT","ChangeDetectorRef","ViewChild","MatInput","MatAutocompleteTrigger","ViewChildren","MatChip","ContentChild","MatOption","Input","Output","HostBinding","HostListener","NgModule","ReactiveFormsModule","CommonModule","MatInputModule","MatIconModule","MatChipsModule","MatAutocompleteModule"],"mappings":"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"}