@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
@@ -111,7 +111,7 @@ var TdBreadcrumbComponent = /** @class */ (function () {
111
111
  class: 'mat-button td-breadcrumb',
112
112
  },
113
113
  changeDetection: ChangeDetectionStrategy.OnPush,
114
- 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}"]
114
+ 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}"]
115
115
  }] }
116
116
  ];
117
117
  /** @nocollapse */
@@ -1,8 +1,7 @@
1
- import { CommonModule } from '@angular/common';
2
1
  import { MatIconModule } from '@angular/material/icon';
3
2
  import { __extends } from 'tslib';
4
3
  import { Component, Input, Output, forwardRef, ViewChild, ViewChildren, HostListener, ElementRef, Optional, Inject, Directive, TemplateRef, ViewContainerRef, ContentChild, ChangeDetectionStrategy, ChangeDetectorRef, HostBinding, Renderer2, EventEmitter, NgModule } from '@angular/core';
5
- import { DOCUMENT } from '@angular/platform-browser';
4
+ import { DOCUMENT, CommonModule } from '@angular/common';
6
5
  import { NG_VALUE_ACCESSOR, FormControl, ReactiveFormsModule } from '@angular/forms';
7
6
  import { TemplatePortalDirective } from '@angular/cdk/portal';
8
7
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
@@ -1161,7 +1160,7 @@ var TdChipsComponent = /** @class */ (function (_super) {
1161
1160
  inputs: ['disabled', 'value'],
1162
1161
  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
1162
  changeDetection: 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}"]
1163
+ 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
1164
  }] }
1166
1165
  ];
1167
1166
  /** @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":["tslib_1.__extends"],"mappings":";;;;;;;;;;;;;;;;;;;;;;IAuBqCA,mCAAuB;IAC1D,yBAAY,WAA6B,EAAE,gBAAkC;eAC3E,kBAAM,WAAW,EAAE,gBAAgB,CAAC;KACrC;;gBANF,SAAS,SAAC;oBACT,QAAQ,EAAE,sBAAsB;iBACjC;;;;gBArB0C,WAAW;gBAAE,gBAAgB;;IA0BxE,sBAAC;CAAA,CAJoC,uBAAuB,GAI3D;;IAKkDA,iDAAuB;IACxE,uCAAY,WAA6B,EAAE,gBAAkC;eAC3E,kBAAM,WAAW,EAAE,gBAAgB,CAAC;KACrC;;gBANF,SAAS,SAAC;oBACT,QAAQ,EAAE,qCAAqC;iBAChD;;;;gBA9B0C,WAAW;gBAAE,gBAAgB;;IAmCxE,oCAAC;CAAA,CAJkD,uBAAuB,GAIzE;;IAGC,qBAAmB,kBAAqC;QAArC,uBAAkB,GAAlB,kBAAkB,CAAmB;KAAI;IAC9D,kBAAC;CAAA,IAAA;;;AAGD,IAAa,iBAAiB,GAAG,yBAAyB,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;AAE1F;IAYsCA,oCAAiB;IA0OrD,0BAAoB,WAAuB,EACvB,SAAoB,EACU,SAAc,EACpD,kBAAqC;QAHjD,YAIE,kBAAM,kBAAkB,CAAC,SAE1B;QANmB,iBAAW,GAAX,WAAW,CAAY;QACvB,eAAS,GAAT,SAAS,CAAW;QACU,eAAS,GAAT,SAAS,CAAK;QA1OxD,uBAAiB,GAAiB,YAAY,CAAC,KAAK,CAAC;QACrD,4BAAsB,GAAiB,YAAY,CAAC,KAAK,CAAC;QAC1D,kBAAY,GAAY,KAAK,CAAC;QAG9B,aAAO,GAAW,CAAC,CAAC;QACpB,cAAQ,GAAY,KAAK,CAAC;QAC1B,mBAAa,GAAY,KAAK,CAAC;QAC/B,YAAM,GAAkC,SAAS,CAAC;QAClD,oBAAc,GAAuB,OAAO,CAAC;QAC7C,mBAAa,GAAY,IAAI,CAAC;QAC9B,kBAAY,GAAY,IAAI,CAAC;QAC7B,cAAQ,GAAY,KAAK,CAAC;QAC1B,eAAS,GAAY,KAAK,CAAC;QAC3B,eAAS,GAAW,CAAC,CAAC;QACtB,uBAAiB,GAAW,GAAG,CAAC;QAExC,oBAAc,GAAY,KAAK,CAAC;QAChC,6BAAuB,GAAY,KAAK,CAAC;;;;QAsBzC,kBAAY,GAAgB,IAAI,WAAW,EAAE,CAAC;;;;;QAkI3B,cAAQ,GAAW,GAAG,CAAC;;;;;;QAwB3B,WAAK,GAAsB,IAAI,YAAY,EAAO,CAAC;;;;;;QAOhD,cAAQ,GAAsB,IAAI,YAAY,EAAO,CAAC;;;;;;QAOjD,mBAAa,GAAyB,IAAI,YAAY,EAAU,CAAC;;;;;;QAOnE,iBAAW,GAAsB,IAAI,YAAY,EAAO,CAAC;;;;;;QAO1D,gBAAU,GAAsB,IAAI,YAAY,EAAO,CAAC;;;;;;QAuBtD,iBAAW,GAAkC,UAAC,EAAO,EAAE,EAAO;YAClF,OAAO,EAAE,KAAK,EAAE,CAAC;SAClB,CAAA;QAVC,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,KAAI,CAAC,MAAM,CAAC,CAAC;;KAC/E;IA7MD,sBAAI,qCAAO;;;;;;;;QAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;;;OAAA;IAWD,sBACI,mCAAK;;;;QAKT;YACE,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;;;;;;;;;;;QARD,UACU,KAAY;YACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC;;;OAAA;IAUD,sBACI,qCAAO;;;;QAGX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;;;;;;;;;;;;;QAND,UACY,OAAgB;YAC1B,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;SAChD;;;OAAA;IAUD,sBACI,2CAAa;;;;QAGjB;YACE,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;;;;;;;;;;;;;QAND,UACkB,aAAiC;YACjD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;SACrC;;;OAAA;IASD,sBACI,0CAAY;;;;QAGhB;YACE,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;;;;;;;;;;;QAND,UACiB,YAAqB;YACpC,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;SAC1D;;;OAAA;IAUD,sBACI,sCAAQ;;;;QAGZ;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;;;;;;;;;;;;;QAND,UACa,QAAiB;YAC5B,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;SAClD;;;OAAA;IAUD,sBACI,0CAAY;;;;QAIhB;YACE,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;;;;;;;;;;;;;QAPD,UACiB,YAAqB;YACpC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YAClC,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;;;OAAA;IASD,sBAAI,wCAAU;;;;;;;;;;QAAd;YACE,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC5C;;;OAAA;IAOD,sBACI,yCAAW;;;;QAGf;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;;;;;;;;;;;;;QAND,UACgB,WAAoB;YAClC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;SACjC;;;OAAA;IASD,sBAAI,2CAAa;;;;;;;;;;QAAjB;YACE,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3C;;;OAAA;IAKD,sBAAI,gDAAkB;;;;;;;;QAAtB;YACE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,OAAO,EAAE,CAAC;aACX;YACD,OAAO,CAAC,IAAI,CAAC,SAAS,IAAO,IAAI,CAAC,WAAW,OAAI,GAAI,IAAI,CAAC,WAAW,CAAC;SACvE;;;OAAA;IAmBD,sBACI,mCAAK;;;;QAOT;YACE,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;;;;;;;;;;;;;QAVD,UACU,KAAoC;YAC5C,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;aAC/E;SACF;;;OAAA;IA2CD,sBACI,sCAAQ;;;;;;;;QADZ;YAEE,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;SAC5C;;;OAAA;;;;;;;;;IAuBD,wCAAa;;;;;IADb,UACc,KAAiB;;QAE7B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;;;;;;;;;IAMD,4CAAiB;;;;;IADjB,UACkB,KAAiB;QADnC,iBAOC;;QAJC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC;YACvB,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B,CAAC,CAAC;KACJ;;;;;;;;;;;IAOD,wCAAa;;;;;;IADb,UACc,KAAY;;YAClB,WAAW,sBAA6B,KAAK,CAAC,MAAM,EAAA;QAC1D,IAAI,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa;YAC9C,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;YAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;KACF;;;;;;;;;IAMD,0CAAe;;;;;IADf,UACgB,KAAoB;QADpC,iBAqBC;QAnBC,QAAQ,KAAK,CAAC,OAAO;YACnB,KAAK,GAAG;;gBAEN,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC;oBACvB,KAAI,CAAC,kBAAkB,EAAE,CAAC;iBAC3B,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;oBAC5B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;oBACvC,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;iBAC3B;qBAAM;oBACL,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;gBACD,MAAM;YACR,QAAQ;;SAET;KACF;;;;IAED,mCAAQ;;;IAAR;QAAA,iBAOC;QANC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAC/D,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC5B,CAAC,SAAS,CAAC,UAAC,KAAa;YACxB,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;;;IAED,0CAAe;;;IAAf;QACE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;;;IAED,oCAAS;;;IAAT;;QAEE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE;YACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;KACF;;;;IAED,sCAAW;;;IAAX;QACI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;KAC7C;;;;IAED,4CAAiB;;;IAAjB;QACE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;;;;;;;IAGD,2CAAgB;;;;;IAAhB,UAAiB,CAAU;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;;;;;;;;;;;;;;IAQD,yCAAc;;;;;;;IAAd;;YACM,KAAU;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;;gBACjB,eAAe,GAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAC,MAAiB;gBAClF,OAAO,MAAM,CAAC,MAAM,CAAC;aACtB,CAAC;YACF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACjC,eAAe,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;aACxC;YACD,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,KAAK,CAAC;aACd;SACF;aAAM;;;YAGL,IAAI,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE;gBAC1C,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,KAAK,CAAC;gBACrD,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;aAC5D;iBAAM;gBACL,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBAC/B,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACvB,OAAO,KAAK,CAAC;iBACd;aACF;SACF;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC5B;;;;;;;;;;;IAMD,kCAAO;;;;;;IAAP,UAAQ,KAAU;;;;;QAAlB,iBAwBC;QAlBC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC;YACpC,KAAI,CAAC,eAAe,EAAE,CAAC;YACvB,KAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,KAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;;QAE/B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAC,IAAS,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,GAAA,CAAC,GAAG,CAAC,CAAC,EAAE;YAC3E,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;KACb;;;;;;;;;;;IAMD,qCAAU;;;;;;IAAV,UAAW,KAAa;;YAClB,aAAa,GAAU,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAC;SACd;;;;;QAMD,IAAI,KAAK,MAAM,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;YACnD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;SAC1B;aAAM,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;YACzC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;SAC5B;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;SAC5B;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;KACb;;;;;;;;;;IAKD,0CAAe;;;;;;IAAf,UAAgB,KAAiB,EAAE,KAAU;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;;;;;;;;;;IAKD,2CAAgB;;;;;;IAAhB,UAAiB,KAAiB,EAAE,KAAU;QAC5C,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;;;;IAED,uCAAY;;;IAAZ;QACE,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;KACb;;;;;;;;IAKD,0CAAe;;;;IAAf;QACE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC;KACF;;;;;;;;IAKD,6CAAkB;;;;IAAlB;QACE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;;;;;;;;;IAMD,gCAAK;;;;;IAAL;QACE,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;SAC1B;aAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;KACF;;;;;;;;;IAKD,wCAAa;;;;;IAAb,UAAc,KAAoB;QAChC,QAAQ,KAAK,CAAC,OAAO;YACnB,KAAK,QAAQ;;;;;gBAKX,IAAI,IAAI,CAAC,YAAY,EAAE;;wBACjB,QAAM,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM;oBACzC,IAAI,QAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,uBAAuB,EAAE;wBACnF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;wBAC/C,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;;wBAErC,KAAK,CAAC,cAAc,EAAE,CAAC;qBACxB;iBACF;gBACD,MAAM;YACR,KAAK,UAAU,CAAC;YAChB,KAAK,MAAM,CAAC;YACZ,KAAK,SAAS;gBACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;;gBAE1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;oBAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;;oBAEtB,KAAK,CAAC,cAAc,EAAE,CAAC;iBACxB;gBACD,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;;gBAE1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;oBAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;;oBAEvB,KAAK,CAAC,cAAc,EAAE,CAAC;iBACxB;gBACD,MAAM;YACR,QAAQ;;SAET;KACF;;;;;;;;;;IAKD,uCAAY;;;;;;IAAZ,UAAa,KAAoB,EAAE,KAAa;QAC9C,QAAQ,KAAK,CAAC,OAAO;YACnB,KAAK,MAAM,CAAC;YACZ,KAAK,SAAS;;gBAEZ,IAAI,IAAI,CAAC,aAAa,EAAE;oBACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;iBACvB;gBACD,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,UAAU;;;;;gBAKb,IAAI,KAAK,KAAK,CAAC,EAAE;;oBAEf,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE;wBACnD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;qBAC1B;yBAAM;wBACL,IAAI,CAAC,cAAc,EAAE,CAAC;qBACvB;iBACF;qBAAM,IAAI,KAAK,GAAG,CAAC,EAAE;oBACpB,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;iBAC5B;;gBAED,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACR,KAAK,UAAU,CAAC;YAChB,KAAK,WAAW;;;;;gBAKd,IAAI,KAAK,MAAM,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;;oBAEpC,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW,EAAE;wBACpD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;qBAC1B;yBAAM;wBACL,IAAI,CAAC,eAAe,EAAE,CAAC;qBACxB;iBACF;qBAAM,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;oBACzC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;iBAC5B;;gBAED,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACR,QAAQ;;SAET;KACF;;;;;;;;IAKD,8CAAmB;;;;IAAnB;QACE,OAAO,EAAE,CAAC;KACX;;;;;;;;IAKD,4CAAiB;;;;IAAjB;QACE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACxC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC;KACF;;;;;;;;IAKD,6CAAkB;;;;IAAlB;QACE,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACvC,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC;KACF;IAKD,sBAAI,yCAAW;;;;;;;;QAAf;;gBACM,KAAK,GAAc,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YACpD,OAAO,KAAK,CAAC,MAAM,CAAC;SACrB;;;OAAA;;;;;;;;;IAKO,qCAAU;;;;;IAAlB,UAAmB,KAAa;;QAE9B,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE;YAC1C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9C;KACF;;;;;;IAGO,0CAAe;;;;IAAvB;QACE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACpB;;;;;;IAGO,yCAAc;;;;IAAtB;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;KACvC;;;;;;;;;;IAMO,uCAAY;;;;;IAApB;QACE,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;;;;;;;;;IAMO,gDAAqB;;;;;IAA7B;QAAA,iBAgBC;QAfC,IAAI,IAAI,CAAC,YAAY,EAAE;;YAErB,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC;gBACvB,IAAI,KAAI,CAAC,OAAO,IAAI,KAAI,CAAC,QAAQ,IAAI,KAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;;oBAE7D,KAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,UAAC,MAAiB;wBAChD,MAAM,CAAC,iBAAiB,EAAE,CAAC;qBAC5B,CAAC,CAAC;;oBAEH,KAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAC7C,KAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;oBACpC,KAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;iBACxC;aACF,CAAC,CAAC;SACJ;KACF;;;;;;;;;;;;IAOO,6CAAkB;;;;;;IAA1B;QAAA,iBA4BC;QA3BC,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAC5B,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAClC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CACtC,CAAC,IAAI,CACJ,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,EACpC,MAAM,CACJ,UAAC,KAAiB;;oBACV,WAAW,sBAA6B,KAAK,CAAC,MAAM,EAAA;gBAC1D,UAAU,CAAC;oBACT,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;iBAC7B,CAAC,CAAC;gBACH,OAAO,KAAI,CAAC,OAAO;qBACZ,WAAW,KAAK,KAAI,CAAC,WAAW,CAAC,aAAa,CAAC;oBAChD,CAAC,KAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,cAAc,CAAC;aACrF,CACF,CACF,CAAC,SAAS,CAAC;gBACV,IAAI,KAAI,CAAC,OAAO,EAAE;oBAChB,KAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC;oBACvC,KAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,KAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,KAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;iBACxC;aACF,CAAC,CAAC;SACJ;QACD,OAAO,SAAS,CAAC;KAClB;;gBA9tBF,SAAS,SAAC;oBACT,SAAS,EAAE,CAAC;4BACV,OAAO,EAAE,iBAAiB;4BAC1B,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,gBAAgB,GAAA,CAAC;4BAC/C,KAAK,EAAE,IAAI;yBACZ,CAAC;oBACF,QAAQ,EAAE,UAAU;oBACpB,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;oBAE7B,2yFAAqC;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;iBAChD;;;;gBAvDC,UAAU;gBACgD,SAAS;gDAmStD,QAAQ,YAAI,MAAM,SAAC,QAAQ;gBAnSxC,iBAAiB;;;+BA6EhB,SAAS,SAAC,OAAO;8BACjB,SAAS,SAAC,QAAQ;uCAClB,SAAS,SAAC,sBAAsB;iCAChC,YAAY,SAAC,OAAO;gCAEpB,YAAY,SAAC,eAAe;8CAC5B,YAAY,SAAC,6BAA6B;2BAE1C,YAAY,SAAC,SAAS;wBAkBtB,KAAK,SAAC,OAAO;0BAeb,KAAK,SAAC,SAAS;gCAaf,KAAK,SAAC,eAAe;+BAYrB,KAAK,SAAC,cAAc;2BAapB,KAAK,SAAC,UAAU;+BAahB,KAAK,SAAC,cAAc;8BAsBpB,KAAK,SAAC,aAAa;8BA8BnB,KAAK,SAAC,aAAa;2BAMnB,KAAK,SAAC,UAAU;wBAOhB,KAAK,SAAC,OAAO;wBAiBb,MAAM,SAAC,KAAK;2BAOZ,MAAM,SAAC,QAAQ;gCAOf,MAAM,SAAC,aAAa;8BAOpB,MAAM,SAAC,WAAW;6BAOlB,MAAM,SAAC,UAAU;2BAKjB,WAAW,SAAC,eAAe;8BAkB3B,KAAK,SAAC,aAAa;gCAOnB,YAAY,SAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;oCAYhC,YAAY,SAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;gCAapC,YAAY,SAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;kCAchC,YAAY,SAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;IA8arC,uBAAC;CAAA,CAntBqC,iBAAiB;;;;;;ACzDvD;IAYA;KAsBC;;gBAtBA,QAAQ,SAAC;oBACR,OAAO,EAAE;wBACP,mBAAmB;wBACnB,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,cAAc;wBACd,qBAAqB;qBACtB;oBACD,YAAY,EAAE;wBACZ,gBAAgB;wBAChB,eAAe;wBACf,6BAA6B;qBAC9B;oBACD,OAAO,EAAE;wBACP,gBAAgB;wBAChB,eAAe;wBACf,6BAA6B;qBAC9B;iBACF;;IAGD,0BAAC;CAtBD;;;;;;;;;;;;;;;;;;;"}
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":["tslib_1.__extends"],"mappings":";;;;;;;;;;;;;;;;;;;;;IAuBqCA,mCAAuB;IAC1D,yBAAY,WAA6B,EAAE,gBAAkC;eAC3E,kBAAM,WAAW,EAAE,gBAAgB,CAAC;KACrC;;gBANF,SAAS,SAAC;oBACT,QAAQ,EAAE,sBAAsB;iBACjC;;;;gBArB0C,WAAW;gBAAE,gBAAgB;;IA0BxE,sBAAC;CAAA,CAJoC,uBAAuB,GAI3D;;IAKkDA,iDAAuB;IACxE,uCAAY,WAA6B,EAAE,gBAAkC;eAC3E,kBAAM,WAAW,EAAE,gBAAgB,CAAC;KACrC;;gBANF,SAAS,SAAC;oBACT,QAAQ,EAAE,qCAAqC;iBAChD;;;;gBA9B0C,WAAW;gBAAE,gBAAgB;;IAmCxE,oCAAC;CAAA,CAJkD,uBAAuB,GAIzE;;IAGC,qBAAmB,kBAAqC;QAArC,uBAAkB,GAAlB,kBAAkB,CAAmB;KAAI;IAC9D,kBAAC;CAAA,IAAA;;;AAGD,IAAa,iBAAiB,GAAG,yBAAyB,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;AAE1F;IAYsCA,oCAAiB;IA0OrD,0BAAoB,WAAuB,EACvB,SAAoB,EACU,SAAc,EACpD,kBAAqC;QAHjD,YAIE,kBAAM,kBAAkB,CAAC,SAE1B;QANmB,iBAAW,GAAX,WAAW,CAAY;QACvB,eAAS,GAAT,SAAS,CAAW;QACU,eAAS,GAAT,SAAS,CAAK;QA1OxD,uBAAiB,GAAiB,YAAY,CAAC,KAAK,CAAC;QACrD,4BAAsB,GAAiB,YAAY,CAAC,KAAK,CAAC;QAC1D,kBAAY,GAAY,KAAK,CAAC;QAG9B,aAAO,GAAW,CAAC,CAAC;QACpB,cAAQ,GAAY,KAAK,CAAC;QAC1B,mBAAa,GAAY,KAAK,CAAC;QAC/B,YAAM,GAAkC,SAAS,CAAC;QAClD,oBAAc,GAAuB,OAAO,CAAC;QAC7C,mBAAa,GAAY,IAAI,CAAC;QAC9B,kBAAY,GAAY,IAAI,CAAC;QAC7B,cAAQ,GAAY,KAAK,CAAC;QAC1B,eAAS,GAAY,KAAK,CAAC;QAC3B,eAAS,GAAW,CAAC,CAAC;QACtB,uBAAiB,GAAW,GAAG,CAAC;QAExC,oBAAc,GAAY,KAAK,CAAC;QAChC,6BAAuB,GAAY,KAAK,CAAC;;;;QAsBzC,kBAAY,GAAgB,IAAI,WAAW,EAAE,CAAC;;;;;QAkI3B,cAAQ,GAAW,GAAG,CAAC;;;;;;QAwB3B,WAAK,GAAsB,IAAI,YAAY,EAAO,CAAC;;;;;;QAOhD,cAAQ,GAAsB,IAAI,YAAY,EAAO,CAAC;;;;;;QAOjD,mBAAa,GAAyB,IAAI,YAAY,EAAU,CAAC;;;;;;QAOnE,iBAAW,GAAsB,IAAI,YAAY,EAAO,CAAC;;;;;;QAO1D,gBAAU,GAAsB,IAAI,YAAY,EAAO,CAAC;;;;;;QAuBtD,iBAAW,GAAkC,UAAC,EAAO,EAAE,EAAO;YAClF,OAAO,EAAE,KAAK,EAAE,CAAC;SAClB,CAAA;QAVC,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,KAAI,CAAC,MAAM,CAAC,CAAC;;KAC/E;IA7MD,sBAAI,qCAAO;;;;;;;;QAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;;;OAAA;IAWD,sBACI,mCAAK;;;;QAKT;YACE,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;;;;;;;;;;;QARD,UACU,KAAY;YACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC;;;OAAA;IAUD,sBACI,qCAAO;;;;QAGX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;;;;;;;;;;;;;QAND,UACY,OAAgB;YAC1B,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;SAChD;;;OAAA;IAUD,sBACI,2CAAa;;;;QAGjB;YACE,OAAO,IAAI,CAAC,cAAc,CAAC;SAC5B;;;;;;;;;;;;;QAND,UACkB,aAAiC;YACjD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;SACrC;;;OAAA;IASD,sBACI,0CAAY;;;;QAGhB;YACE,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;;;;;;;;;;;QAND,UACiB,YAAqB;YACpC,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;SAC1D;;;OAAA;IAUD,sBACI,sCAAQ;;;;QAGZ;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;;;;;;;;;;;;;QAND,UACa,QAAiB;YAC5B,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;SAClD;;;OAAA;IAUD,sBACI,0CAAY;;;;QAIhB;YACE,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;;;;;;;;;;;;;QAPD,UACiB,YAAqB;YACpC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YAClC,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;;;OAAA;IASD,sBAAI,wCAAU;;;;;;;;;;QAAd;YACE,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC5C;;;OAAA;IAOD,sBACI,yCAAW;;;;QAGf;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;;;;;;;;;;;;;QAND,UACgB,WAAoB;YAClC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;SACjC;;;OAAA;IASD,sBAAI,2CAAa;;;;;;;;;;QAAjB;YACE,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3C;;;OAAA;IAKD,sBAAI,gDAAkB;;;;;;;;QAAtB;YACE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,OAAO,EAAE,CAAC;aACX;YACD,OAAO,CAAC,IAAI,CAAC,SAAS,IAAO,IAAI,CAAC,WAAW,OAAI,GAAI,IAAI,CAAC,WAAW,CAAC;SACvE;;;OAAA;IAmBD,sBACI,mCAAK;;;;QAOT;YACE,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;;;;;;;;;;;;;QAVD,UACU,KAAoC;YAC5C,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;aAC/E;SACF;;;OAAA;IA2CD,sBACI,sCAAQ;;;;;;;;QADZ;YAEE,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;SAC5C;;;OAAA;;;;;;;;;IAuBD,wCAAa;;;;;IADb,UACc,KAAiB;;QAE7B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;;;;;;;;;IAMD,4CAAiB;;;;;IADjB,UACkB,KAAiB;QADnC,iBAOC;;QAJC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC;YACvB,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B,CAAC,CAAC;KACJ;;;;;;;;;;;IAOD,wCAAa;;;;;;IADb,UACc,KAAY;;YAClB,WAAW,sBAA6B,KAAK,CAAC,MAAM,EAAA;QAC1D,IAAI,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa;YAC9C,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;YAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;KACF;;;;;;;;;IAMD,0CAAe;;;;;IADf,UACgB,KAAoB;QADpC,iBAqBC;QAnBC,QAAQ,KAAK,CAAC,OAAO;YACnB,KAAK,GAAG;;gBAEN,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC;oBACvB,KAAI,CAAC,kBAAkB,EAAE,CAAC;iBAC3B,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;oBAC5B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;oBACvC,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;iBAC3B;qBAAM;oBACL,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;gBACD,MAAM;YACR,QAAQ;;SAET;KACF;;;;IAED,mCAAQ;;;IAAR;QAAA,iBAOC;QANC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAC/D,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC5B,CAAC,SAAS,CAAC,UAAC,KAAa;YACxB,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;;;IAED,0CAAe;;;IAAf;QACE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;;;IAED,oCAAS;;;IAAT;;QAEE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE;YACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;KACF;;;;IAED,sCAAW;;;IAAX;QACI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;KAC7C;;;;IAED,4CAAiB;;;IAAjB;QACE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;;;;;;;IAGD,2CAAgB;;;;;IAAhB,UAAiB,CAAU;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;;;;;;;;;;;;;;IAQD,yCAAc;;;;;;;IAAd;;YACM,KAAU;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;;gBACjB,eAAe,GAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAC,MAAiB;gBAClF,OAAO,MAAM,CAAC,MAAM,CAAC;aACtB,CAAC;YACF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACjC,eAAe,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;aACxC;YACD,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,KAAK,CAAC;aACd;SACF;aAAM;;;YAGL,IAAI,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE;gBAC1C,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,KAAK,CAAC;gBACrD,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;aAC5D;iBAAM;gBACL,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBAC/B,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACvB,OAAO,KAAK,CAAC;iBACd;aACF;SACF;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC5B;;;;;;;;;;;IAMD,kCAAO;;;;;;IAAP,UAAQ,KAAU;;;;;QAAlB,iBAwBC;QAlBC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC;YACpC,KAAI,CAAC,eAAe,EAAE,CAAC;YACvB,KAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,KAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;;QAE/B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAC,IAAS,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,GAAA,CAAC,GAAG,CAAC,CAAC,EAAE;YAC3E,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;KACb;;;;;;;;;;;IAMD,qCAAU;;;;;;IAAV,UAAW,KAAa;;YAClB,aAAa,GAAU,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAC;SACd;;;;;QAMD,IAAI,KAAK,MAAM,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;YACnD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;SAC1B;aAAM,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;YACzC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;SAC5B;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;SAC5B;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;KACb;;;;;;;;;;IAKD,0CAAe;;;;;;IAAf,UAAgB,KAAiB,EAAE,KAAU;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;;;;;;;;;;IAKD,2CAAgB;;;;;;IAAhB,UAAiB,KAAiB,EAAE,KAAU;QAC5C,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;;;;IAED,uCAAY;;;IAAZ;QACE,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;KACb;;;;;;;;IAKD,0CAAe;;;;IAAf;QACE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC;KACF;;;;;;;;IAKD,6CAAkB;;;;IAAlB;QACE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;;;;;;;;;IAMD,gCAAK;;;;;IAAL;QACE,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;SAC1B;aAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;KACF;;;;;;;;;IAKD,wCAAa;;;;;IAAb,UAAc,KAAoB;QAChC,QAAQ,KAAK,CAAC,OAAO;YACnB,KAAK,QAAQ;;;;;gBAKX,IAAI,IAAI,CAAC,YAAY,EAAE;;wBACjB,QAAM,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM;oBACzC,IAAI,QAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,uBAAuB,EAAE;wBACnF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;wBAC/C,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;;wBAErC,KAAK,CAAC,cAAc,EAAE,CAAC;qBACxB;iBACF;gBACD,MAAM;YACR,KAAK,UAAU,CAAC;YAChB,KAAK,MAAM,CAAC;YACZ,KAAK,SAAS;gBACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;;gBAE1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;oBAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;;oBAEtB,KAAK,CAAC,cAAc,EAAE,CAAC;iBACxB;gBACD,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;;gBAE1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;oBAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;;oBAEvB,KAAK,CAAC,cAAc,EAAE,CAAC;iBACxB;gBACD,MAAM;YACR,QAAQ;;SAET;KACF;;;;;;;;;;IAKD,uCAAY;;;;;;IAAZ,UAAa,KAAoB,EAAE,KAAa;QAC9C,QAAQ,KAAK,CAAC,OAAO;YACnB,KAAK,MAAM,CAAC;YACZ,KAAK,SAAS;;gBAEZ,IAAI,IAAI,CAAC,aAAa,EAAE;oBACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;iBACvB;gBACD,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,UAAU;;;;;gBAKb,IAAI,KAAK,KAAK,CAAC,EAAE;;oBAEf,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE;wBACnD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;qBAC1B;yBAAM;wBACL,IAAI,CAAC,cAAc,EAAE,CAAC;qBACvB;iBACF;qBAAM,IAAI,KAAK,GAAG,CAAC,EAAE;oBACpB,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;iBAC5B;;gBAED,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACR,KAAK,UAAU,CAAC;YAChB,KAAK,WAAW;;;;;gBAKd,IAAI,KAAK,MAAM,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;;oBAEpC,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW,EAAE;wBACpD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;qBAC1B;yBAAM;wBACL,IAAI,CAAC,eAAe,EAAE,CAAC;qBACxB;iBACF;qBAAM,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;oBACzC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;iBAC5B;;gBAED,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACR,QAAQ;;SAET;KACF;;;;;;;;IAKD,8CAAmB;;;;IAAnB;QACE,OAAO,EAAE,CAAC;KACX;;;;;;;;IAKD,4CAAiB;;;;IAAjB;QACE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACxC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC;KACF;;;;;;;;IAKD,6CAAkB;;;;IAAlB;QACE,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACvC,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC;KACF;IAKD,sBAAI,yCAAW;;;;;;;;QAAf;;gBACM,KAAK,GAAc,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YACpD,OAAO,KAAK,CAAC,MAAM,CAAC;SACrB;;;OAAA;;;;;;;;;IAKO,qCAAU;;;;;IAAlB,UAAmB,KAAa;;QAE9B,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,EAAE;YAC1C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9C;KACF;;;;;;IAGO,0CAAe;;;;IAAvB;QACE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACpB;;;;;;IAGO,yCAAc;;;;IAAtB;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;KACvC;;;;;;;;;;IAMO,uCAAY;;;;;IAApB;QACE,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;;;;;;;;;IAMO,gDAAqB;;;;;IAA7B;QAAA,iBAgBC;QAfC,IAAI,IAAI,CAAC,YAAY,EAAE;;YAErB,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC;gBACvB,IAAI,KAAI,CAAC,OAAO,IAAI,KAAI,CAAC,QAAQ,IAAI,KAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;;oBAE7D,KAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,UAAC,MAAiB;wBAChD,MAAM,CAAC,iBAAiB,EAAE,CAAC;qBAC5B,CAAC,CAAC;;oBAEH,KAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAC7C,KAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;oBACpC,KAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;iBACxC;aACF,CAAC,CAAC;SACJ;KACF;;;;;;;;;;;;IAOO,6CAAkB;;;;;;IAA1B;QAAA,iBA4BC;QA3BC,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAC5B,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAClC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CACtC,CAAC,IAAI,CACJ,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,EACpC,MAAM,CACJ,UAAC,KAAiB;;oBACV,WAAW,sBAA6B,KAAK,CAAC,MAAM,EAAA;gBAC1D,UAAU,CAAC;oBACT,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;iBAC7B,CAAC,CAAC;gBACH,OAAO,KAAI,CAAC,OAAO;qBACZ,WAAW,KAAK,KAAI,CAAC,WAAW,CAAC,aAAa,CAAC;oBAChD,CAAC,KAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,cAAc,CAAC;aACrF,CACF,CACF,CAAC,SAAS,CAAC;gBACV,IAAI,KAAI,CAAC,OAAO,EAAE;oBAChB,KAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC;oBACvC,KAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,KAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,KAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;iBACxC;aACF,CAAC,CAAC;SACJ;QACD,OAAO,SAAS,CAAC;KAClB;;gBA9tBF,SAAS,SAAC;oBACT,SAAS,EAAE,CAAC;4BACV,OAAO,EAAE,iBAAiB;4BAC1B,WAAW,EAAE,UAAU,CAAC,cAAM,OAAA,gBAAgB,GAAA,CAAC;4BAC/C,KAAK,EAAE,IAAI;yBACZ,CAAC;oBACF,QAAQ,EAAE,UAAU;oBACpB,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;oBAE7B,2yFAAqC;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;iBAChD;;;;gBAvDC,UAAU;gBACgD,SAAS;gDAmStD,QAAQ,YAAI,MAAM,SAAC,QAAQ;gBAnSxC,iBAAiB;;;+BA6EhB,SAAS,SAAC,OAAO;8BACjB,SAAS,SAAC,QAAQ;uCAClB,SAAS,SAAC,sBAAsB;iCAChC,YAAY,SAAC,OAAO;gCAEpB,YAAY,SAAC,eAAe;8CAC5B,YAAY,SAAC,6BAA6B;2BAE1C,YAAY,SAAC,SAAS;wBAkBtB,KAAK,SAAC,OAAO;0BAeb,KAAK,SAAC,SAAS;gCAaf,KAAK,SAAC,eAAe;+BAYrB,KAAK,SAAC,cAAc;2BAapB,KAAK,SAAC,UAAU;+BAahB,KAAK,SAAC,cAAc;8BAsBpB,KAAK,SAAC,aAAa;8BA8BnB,KAAK,SAAC,aAAa;2BAMnB,KAAK,SAAC,UAAU;wBAOhB,KAAK,SAAC,OAAO;wBAiBb,MAAM,SAAC,KAAK;2BAOZ,MAAM,SAAC,QAAQ;gCAOf,MAAM,SAAC,aAAa;8BAOpB,MAAM,SAAC,WAAW;6BAOlB,MAAM,SAAC,UAAU;2BAKjB,WAAW,SAAC,eAAe;8BAkB3B,KAAK,SAAC,aAAa;gCAOnB,YAAY,SAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;oCAYhC,YAAY,SAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;gCAapC,YAAY,SAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;kCAchC,YAAY,SAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;IA8arC,uBAAC;CAAA,CAntBqC,iBAAiB;;;;;;ACzDvD;IAYA;KAsBC;;gBAtBA,QAAQ,SAAC;oBACR,OAAO,EAAE;wBACP,mBAAmB;wBACnB,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,cAAc;wBACd,qBAAqB;qBACtB;oBACD,YAAY,EAAE;wBACZ,gBAAgB;wBAChB,eAAe;wBACf,6BAA6B;qBAC9B;oBACD,OAAO,EAAE;wBACP,gBAAgB;wBAChB,eAAe;wBACf,6BAA6B;qBAC9B;iBACF;;IAGD,0BAAC;CAtBD;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,10 @@
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
- import { __extends, __spread } from 'tslib';
7
+ import { __values, __extends, __spread } from 'tslib';
8
8
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
9
9
  import { NgModel, FormsModule, Validators } from '@angular/forms';
10
10
 
@@ -49,6 +49,158 @@ var TdAutoTrimDirective = /** @class */ (function () {
49
49
  return TdAutoTrimDirective;
50
50
  }());
51
51
 
52
+ /**
53
+ * @fileoverview added by tsickle
54
+ * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
55
+ */
56
+ var TdFullscreenDirective = /** @class */ (function () {
57
+ function TdFullscreenDirective(_document, _el) {
58
+ this._document = _document;
59
+ this._el = _el;
60
+ this.fullScreenIsActive = false;
61
+ }
62
+ /**
63
+ * @param {?} event
64
+ * @return {?}
65
+ */
66
+ TdFullscreenDirective.prototype.fsChangeHandler = /**
67
+ * @param {?} event
68
+ * @return {?}
69
+ */
70
+ function (event) {
71
+ this.fullScreenIsActive = event.srcElement === this._getFullScreenElement();
72
+ };
73
+ /**
74
+ * @return {?}
75
+ */
76
+ TdFullscreenDirective.prototype.toggleFullScreen = /**
77
+ * @return {?}
78
+ */
79
+ function () {
80
+ this._getFullScreenElement() === this._el.nativeElement ? this.exitFullScreen() : this.enterFullScreen();
81
+ };
82
+ /**
83
+ * @return {?}
84
+ */
85
+ TdFullscreenDirective.prototype.enterFullScreen = /**
86
+ * @return {?}
87
+ */
88
+ function () {
89
+ var e_1, _a;
90
+ var nativeElement = this._el.nativeElement;
91
+ /** @type {?} */
92
+ var enterFullScreenMap = {
93
+ requestFullscreen: function () { return nativeElement.requestFullscreen(); },
94
+ // Chrome
95
+ webkitRequestFullscreen: function () { return nativeElement.webkitRequestFullscreen(); },
96
+ // Safari
97
+ mozRequestFullScreen: function () { return nativeElement.mozRequestFullScreen(); },
98
+ // Firefox
99
+ msRequestFullscreen: function () { return nativeElement.msRequestFullscreen(); },
100
+ };
101
+ try {
102
+ for (var _b = __values(Object.keys(enterFullScreenMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
103
+ var handler = _c.value;
104
+ if (nativeElement[handler]) {
105
+ enterFullScreenMap[handler]();
106
+ }
107
+ }
108
+ }
109
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
110
+ finally {
111
+ try {
112
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
113
+ }
114
+ finally { if (e_1) throw e_1.error; }
115
+ }
116
+ };
117
+ /**
118
+ * @return {?}
119
+ */
120
+ TdFullscreenDirective.prototype.exitFullScreen = /**
121
+ * @return {?}
122
+ */
123
+ function () {
124
+ var e_2, _a;
125
+ var _b = this, _document = _b._document, nativeElement = _b._el.nativeElement;
126
+ /** @type {?} */
127
+ var exitFullScreenMap = {
128
+ exitFullscreen: function () { return _document.exitFullscreen(); },
129
+ // Chrome
130
+ webkitExitFullscreen: function () { return _document.webkitExitFullscreen(); },
131
+ // Safari
132
+ mozCancelFullScreen: function () { return _document.mozCancelFullScreen(); },
133
+ // Firefox
134
+ msExitFullscreen: function () { return _document.msExitFullscreen(); },
135
+ };
136
+ try {
137
+ for (var _c = __values(Object.keys(exitFullScreenMap)), _d = _c.next(); !_d.done; _d = _c.next()) {
138
+ var handler = _d.value;
139
+ if (_document[handler] && this._getFullScreenElement() === nativeElement) {
140
+ exitFullScreenMap[handler]();
141
+ }
142
+ }
143
+ }
144
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
145
+ finally {
146
+ try {
147
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
148
+ }
149
+ finally { if (e_2) throw e_2.error; }
150
+ }
151
+ };
152
+ /**
153
+ * @return {?}
154
+ */
155
+ TdFullscreenDirective.prototype._getFullScreenElement = /**
156
+ * @return {?}
157
+ */
158
+ function () {
159
+ var e_3, _a;
160
+ var _document = this._document;
161
+ /** @type {?} */
162
+ var tdFullScreenElementMap = {
163
+ fullscreenElement: function () { return _document.fullscreenElement; },
164
+ // Chrome, Opera
165
+ webkitFullscreenElement: function () { return _document.webkitFullscreenElement; },
166
+ // Safari
167
+ mozFullscreenElement: function () { return _document.mozFullscreenElement; },
168
+ // Firefox
169
+ msFullscreenElement: function () { return _document.msFullscreenElement; },
170
+ };
171
+ try {
172
+ for (var _b = __values(Object.keys(tdFullScreenElementMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
173
+ var props = _c.value;
174
+ if (_document[props]) {
175
+ return _document[props];
176
+ }
177
+ }
178
+ }
179
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
180
+ finally {
181
+ try {
182
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
183
+ }
184
+ finally { if (e_3) throw e_3.error; }
185
+ }
186
+ };
187
+ TdFullscreenDirective.decorators = [
188
+ { type: Directive, args: [{
189
+ selector: '[tdFullScreen]',
190
+ exportAs: 'tdFullScreen',
191
+ },] }
192
+ ];
193
+ /** @nocollapse */
194
+ TdFullscreenDirective.ctorParameters = function () { return [
195
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
196
+ { type: ElementRef }
197
+ ]; };
198
+ TdFullscreenDirective.propDecorators = {
199
+ 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'],] }]
200
+ };
201
+ return TdFullscreenDirective;
202
+ }());
203
+
52
204
  /**
53
205
  * @fileoverview added by tsickle
54
206
  * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
@@ -1352,9 +1504,7 @@ var IconService = /** @class */ (function () {
1352
1504
  * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
1353
1505
  */
1354
1506
  /** @type {?} */
1355
- var TD_FORMS = [
1356
- TdAutoTrimDirective,
1357
- ];
1507
+ var TD_DIRECTIVES = [TdAutoTrimDirective, TdFullscreenDirective];
1358
1508
  // Validators
1359
1509
  /** @type {?} */
1360
1510
  var TD_VALIDATORS = [];
@@ -1373,26 +1523,10 @@ var CovalentCommonModule = /** @class */ (function () {
1373
1523
  }
1374
1524
  CovalentCommonModule.decorators = [
1375
1525
  { type: NgModule, args: [{
1376
- imports: [
1377
- FormsModule,
1378
- CommonModule,
1379
- ],
1380
- declarations: [
1381
- TD_FORMS,
1382
- TD_PIPES,
1383
- TD_VALIDATORS,
1384
- ],
1385
- exports: [
1386
- FormsModule,
1387
- CommonModule,
1388
- TD_FORMS,
1389
- TD_PIPES,
1390
- TD_VALIDATORS,
1391
- ],
1392
- providers: [
1393
- RouterPathService,
1394
- IconService,
1395
- ],
1526
+ imports: [FormsModule, CommonModule],
1527
+ declarations: [TD_DIRECTIVES, TD_PIPES, TD_VALIDATORS],
1528
+ exports: [FormsModule, CommonModule, TD_DIRECTIVES, TD_PIPES, TD_VALIDATORS],
1529
+ providers: [RouterPathService, IconService],
1396
1530
  },] }
1397
1531
  ];
1398
1532
  return CovalentCommonModule;
@@ -2016,6 +2150,6 @@ var CovalentValidators = /** @class */ (function () {
2016
2150
  * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
2017
2151
  */
2018
2152
 
2019
- 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 };
2153
+ 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 };
2020
2154
 
2021
2155
  //# sourceMappingURL=covalent-core-common.js.map