@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,7 +1,6 @@
1
- import { CommonModule } from '@angular/common';
2
1
  import { MatIconModule } from '@angular/material/icon';
3
2
  import { Component, Input, Output, forwardRef, ViewChild, ViewChildren, HostListener, ElementRef, Optional, Inject, Directive, TemplateRef, ViewContainerRef, ContentChild, ChangeDetectionStrategy, ChangeDetectorRef, HostBinding, Renderer2, EventEmitter, NgModule } from '@angular/core';
4
- import { DOCUMENT } from '@angular/platform-browser';
3
+ import { DOCUMENT, CommonModule } from '@angular/common';
5
4
  import { NG_VALUE_ACCESSOR, FormControl, ReactiveFormsModule } from '@angular/forms';
6
5
  import { TemplatePortalDirective } from '@angular/cdk/portal';
7
6
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
@@ -834,7 +833,7 @@ TdChipsComponent.decorators = [
834
833
  inputs: ['disabled', 'value'],
835
834
  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>",
836
835
  changeDetection: ChangeDetectionStrategy.OnPush,
837
- 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}"]
836
+ 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}"]
838
837
  }] }
839
838
  ];
840
839
  /** @nocollapse */
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-core-chips.js.map","sources":["ng://@covalent/core/chips/chips.component.ts","ng://@covalent/core/chips/chips.module.ts"],"sourcesContent":["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":[],"mappings":"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"}
1
+ {"version":3,"file":"covalent-core-chips.js.map","sources":["ng://@covalent/core/chips/chips.component.ts","ng://@covalent/core/chips/chips.module.ts"],"sourcesContent":["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":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { DecimalPipe, CommonModule } from '@angular/common';
1
+ import { DOCUMENT, DecimalPipe, CommonModule } from '@angular/common';
2
2
  import { Router, RoutesRecognized } from '@angular/router';
3
3
  import { filter, pairwise } from 'rxjs/operators';
4
- import { Directive, HostListener, Host, Optional, Pipe, Inject, LOCALE_ID, Injectable, NgModule } from '@angular/core';
4
+ import { Directive, HostListener, Host, Optional, ElementRef, Inject, Pipe, LOCALE_ID, Injectable, NgModule } from '@angular/core';
5
5
  import { trigger, state, style, transition, animate, query, animateChild, group, AUTO_STYLE, keyframes } from '@angular/animations';
6
6
  import { Subject } from 'rxjs';
7
7
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
@@ -42,6 +42,112 @@ TdAutoTrimDirective.propDecorators = {
42
42
  onBlur: [{ type: HostListener, args: ['blur', ['$event'],] }]
43
43
  };
44
44
 
45
+ /**
46
+ * @fileoverview added by tsickle
47
+ * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
48
+ */
49
+ class TdFullscreenDirective {
50
+ /**
51
+ * @param {?} _document
52
+ * @param {?} _el
53
+ */
54
+ constructor(_document, _el) {
55
+ this._document = _document;
56
+ this._el = _el;
57
+ this.fullScreenIsActive = false;
58
+ }
59
+ /**
60
+ * @param {?} event
61
+ * @return {?}
62
+ */
63
+ fsChangeHandler(event) {
64
+ this.fullScreenIsActive = event.srcElement === this._getFullScreenElement();
65
+ }
66
+ /**
67
+ * @return {?}
68
+ */
69
+ toggleFullScreen() {
70
+ this._getFullScreenElement() === this._el.nativeElement ? this.exitFullScreen() : this.enterFullScreen();
71
+ }
72
+ /**
73
+ * @return {?}
74
+ */
75
+ enterFullScreen() {
76
+ const { _el: { nativeElement } } = this;
77
+ /** @type {?} */
78
+ const enterFullScreenMap = {
79
+ requestFullscreen: () => nativeElement.requestFullscreen(),
80
+ // Chrome
81
+ webkitRequestFullscreen: () => nativeElement.webkitRequestFullscreen(),
82
+ // Safari
83
+ mozRequestFullScreen: () => nativeElement.mozRequestFullScreen(),
84
+ // Firefox
85
+ msRequestFullscreen: () => nativeElement.msRequestFullscreen(),
86
+ };
87
+ for (const handler of Object.keys(enterFullScreenMap)) {
88
+ if (nativeElement[handler]) {
89
+ enterFullScreenMap[handler]();
90
+ }
91
+ }
92
+ }
93
+ /**
94
+ * @return {?}
95
+ */
96
+ exitFullScreen() {
97
+ const { _document, _el: { nativeElement } } = this;
98
+ /** @type {?} */
99
+ const exitFullScreenMap = {
100
+ exitFullscreen: () => _document.exitFullscreen(),
101
+ // Chrome
102
+ webkitExitFullscreen: () => _document.webkitExitFullscreen(),
103
+ // Safari
104
+ mozCancelFullScreen: () => _document.mozCancelFullScreen(),
105
+ // Firefox
106
+ msExitFullscreen: () => _document.msExitFullscreen(),
107
+ };
108
+ for (const handler of Object.keys(exitFullScreenMap)) {
109
+ if (_document[handler] && this._getFullScreenElement() === nativeElement) {
110
+ exitFullScreenMap[handler]();
111
+ }
112
+ }
113
+ }
114
+ /**
115
+ * @return {?}
116
+ */
117
+ _getFullScreenElement() {
118
+ const { _document } = this;
119
+ /** @type {?} */
120
+ const tdFullScreenElementMap = {
121
+ fullscreenElement: () => _document.fullscreenElement,
122
+ // Chrome, Opera
123
+ webkitFullscreenElement: () => _document.webkitFullscreenElement,
124
+ // Safari
125
+ mozFullscreenElement: () => _document.mozFullscreenElement,
126
+ // Firefox
127
+ msFullscreenElement: () => _document.msFullscreenElement,
128
+ };
129
+ for (const props of Object.keys(tdFullScreenElementMap)) {
130
+ if (_document[props]) {
131
+ return _document[props];
132
+ }
133
+ }
134
+ }
135
+ }
136
+ TdFullscreenDirective.decorators = [
137
+ { type: Directive, args: [{
138
+ selector: '[tdFullScreen]',
139
+ exportAs: 'tdFullScreen',
140
+ },] }
141
+ ];
142
+ /** @nocollapse */
143
+ TdFullscreenDirective.ctorParameters = () => [
144
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
145
+ { type: ElementRef }
146
+ ];
147
+ TdFullscreenDirective.propDecorators = {
148
+ fsChangeHandler: [{ type: HostListener, args: ['document:fullscreenchange', ['$event'],] }, { type: HostListener, args: ['document:webkitfullscreenchange', ['$event'],] }, { type: HostListener, args: ['document:mozfullscreenchange', ['$event'],] }, { type: HostListener, args: ['document:msfullscreenchange', ['$event'],] }]
149
+ };
150
+
45
151
  /**
46
152
  * @fileoverview added by tsickle
47
153
  * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
@@ -1262,9 +1368,7 @@ IconService.decorators = [
1262
1368
  * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
1263
1369
  */
1264
1370
  /** @type {?} */
1265
- const TD_FORMS = [
1266
- TdAutoTrimDirective,
1267
- ];
1371
+ const TD_DIRECTIVES = [TdAutoTrimDirective, TdFullscreenDirective];
1268
1372
  // Validators
1269
1373
  /** @type {?} */
1270
1374
  const TD_VALIDATORS = [];
@@ -1282,26 +1386,10 @@ class CovalentCommonModule {
1282
1386
  }
1283
1387
  CovalentCommonModule.decorators = [
1284
1388
  { type: NgModule, args: [{
1285
- imports: [
1286
- FormsModule,
1287
- CommonModule,
1288
- ],
1289
- declarations: [
1290
- TD_FORMS,
1291
- TD_PIPES,
1292
- TD_VALIDATORS,
1293
- ],
1294
- exports: [
1295
- FormsModule,
1296
- CommonModule,
1297
- TD_FORMS,
1298
- TD_PIPES,
1299
- TD_VALIDATORS,
1300
- ],
1301
- providers: [
1302
- RouterPathService,
1303
- IconService,
1304
- ],
1389
+ imports: [FormsModule, CommonModule],
1390
+ declarations: [TD_DIRECTIVES, TD_PIPES, TD_VALIDATORS],
1391
+ exports: [FormsModule, CommonModule, TD_DIRECTIVES, TD_PIPES, TD_VALIDATORS],
1392
+ providers: [RouterPathService, IconService],
1305
1393
  },] }
1306
1394
  ];
1307
1395
 
@@ -1864,6 +1952,6 @@ class CovalentValidators {
1864
1952
  * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
1865
1953
  */
1866
1954
 
1867
- export { CovalentCommonModule, tdRotateAnimation, tdCollapseAnimation, tdFadeInOutAnimation, tdBounceAnimation, tdFlashAnimation, tdHeadshakeAnimation, tdJelloAnimation, tdPulseAnimation, mixinControlValueAccessor, mixinDisabled, mixinDisableRipple, TdAutoTrimDirective, CovalentValidators, TdTimeAgoPipe, TdTimeDifferencePipe, TdBytesPipe, TdDigitsPipe, TdTruncatePipe, TdDecimalBytesPipe, TdTimeUntilPipe as ɵa, IconService as ɵc, RouterPathService as ɵb };
1955
+ export { CovalentCommonModule, tdRotateAnimation, tdCollapseAnimation, tdFadeInOutAnimation, tdBounceAnimation, tdFlashAnimation, tdHeadshakeAnimation, tdJelloAnimation, tdPulseAnimation, mixinControlValueAccessor, mixinDisabled, mixinDisableRipple, TdAutoTrimDirective, CovalentValidators, TdTimeAgoPipe, TdTimeDifferencePipe, TdBytesPipe, TdDigitsPipe, TdTruncatePipe, TdDecimalBytesPipe, TdFullscreenDirective as ɵa, TdTimeUntilPipe as ɵb, IconService as ɵd, RouterPathService as ɵc };
1868
1956
 
1869
1957
  //# sourceMappingURL=covalent-core-common.js.map