@fundamental-ngx/core 0.46.2-rc.2 → 0.46.2-rc.21

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 (294) hide show
  1. package/calendar/calendar-directives.d.ts +5 -9
  2. package/calendar/calendar-header/calendar-header.component.d.ts +7 -25
  3. package/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.d.ts +1 -20
  4. package/calendar/calendar-views/calendar-day-view/calendar-day-view.component.d.ts +6 -44
  5. package/calendar/calendar-views/calendar-month-view/calendar-month-view.component.d.ts +2 -21
  6. package/calendar/calendar-views/calendar-year-view/calendar-year-view.component.d.ts +3 -22
  7. package/calendar/calendar.component.d.ts +9 -9
  8. package/calendar/i18n/calendar-i18n-labels.d.ts +20 -22
  9. package/calendar/patch-deprecated-i18n-labels.d.ts +6 -0
  10. package/combobox/combobox-item.directive.d.ts +16 -0
  11. package/combobox/combobox.component.d.ts +11 -7
  12. package/combobox/combobox.interface.d.ts +4 -0
  13. package/combobox/combobox.module.d.ts +3 -2
  14. package/combobox/index.d.ts +1 -0
  15. package/dialog/dialog.module.d.ts +5 -4
  16. package/dialog/directives/dialog-template.directive.d.ts +20 -0
  17. package/dialog/index.d.ts +1 -0
  18. package/dialog/utils/dialog-config.class.d.ts +1 -0
  19. package/esm2022/action-bar/action-bar.component.mjs +2 -2
  20. package/esm2022/action-sheet/action-sheet.component.mjs +3 -3
  21. package/esm2022/avatar/avatar.component.mjs +2 -2
  22. package/esm2022/avatar-group/avatar-group.component.mjs +2 -2
  23. package/esm2022/bar/bar.component.mjs +2 -2
  24. package/esm2022/breadcrumb/breadcrumb.component.mjs +3 -3
  25. package/esm2022/busy-indicator/busy-indicator.component.mjs +3 -3
  26. package/esm2022/button/button.component.mjs +2 -2
  27. package/esm2022/calendar/calendar-directives.mjs +10 -18
  28. package/esm2022/calendar/calendar-header/calendar-header.component.mjs +30 -60
  29. package/esm2022/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.mjs +10 -35
  30. package/esm2022/calendar/calendar-views/calendar-day-view/calendar-day-view.component.mjs +13 -65
  31. package/esm2022/calendar/calendar-views/calendar-month-view/calendar-month-view.component.mjs +11 -36
  32. package/esm2022/calendar/calendar-views/calendar-year-view/calendar-year-view.component.mjs +12 -37
  33. package/esm2022/calendar/calendar.component.mjs +22 -12
  34. package/esm2022/calendar/i18n/calendar-i18n-labels.mjs +22 -28
  35. package/esm2022/calendar/patch-deprecated-i18n-labels.mjs +21 -0
  36. package/esm2022/card/card.component.mjs +2 -2
  37. package/esm2022/carousel/carousel.component.mjs +2 -2
  38. package/esm2022/checkbox/checkbox/checkbox.component.mjs +2 -2
  39. package/esm2022/combobox/combobox-item.directive.mjs +24 -0
  40. package/esm2022/combobox/combobox-mobile/combobox-mobile.component.mjs +3 -3
  41. package/esm2022/combobox/combobox.component.mjs +14 -7
  42. package/esm2022/combobox/combobox.interface.mjs +1 -1
  43. package/esm2022/combobox/combobox.module.mjs +5 -4
  44. package/esm2022/combobox/index.mjs +2 -1
  45. package/esm2022/date-picker/date-picker-mobile/date-picker-mobile.component.mjs +3 -3
  46. package/esm2022/datetime-picker/datetime-picker-mobile/datetime-picker-mobile.component.mjs +3 -3
  47. package/esm2022/dialog/dialog-body/dialog-body.component.mjs +1 -2
  48. package/esm2022/dialog/dialog-close-button/dialog-close-button.component.mjs +1 -1
  49. package/esm2022/dialog/dialog-container/dialog-container.component.mjs +1 -1
  50. package/esm2022/dialog/dialog-full-screen-toggler-button/dialog-full-screen-toggler-button.component.mjs +1 -1
  51. package/esm2022/dialog/dialog.component.mjs +3 -3
  52. package/esm2022/dialog/dialog.module.mjs +8 -4
  53. package/esm2022/dialog/directives/dialog-template.directive.mjs +24 -0
  54. package/esm2022/dialog/index.mjs +2 -1
  55. package/esm2022/dialog/utils/dialog-config.class.mjs +1 -1
  56. package/esm2022/dynamic-page/dynamic-page.component.mjs +2 -2
  57. package/esm2022/dynamic-side-content/dynamic-side-content.component.mjs +2 -2
  58. package/esm2022/facets/facet/facet.component.mjs +2 -2
  59. package/esm2022/feed-input/feed-input.component.mjs +2 -2
  60. package/esm2022/feed-list-item/components/list/feed-list.component.mjs +2 -2
  61. package/esm2022/file-uploader/file-uploader.component.mjs +2 -2
  62. package/esm2022/fixed-card-layout/fixed-card-layout.component.mjs +2 -2
  63. package/esm2022/flexible-column-layout/flexible-column-layout.component.mjs +2 -2
  64. package/esm2022/form/fieldset/fieldset.component.mjs +2 -2
  65. package/esm2022/form/form-control/form-control.component.mjs +2 -2
  66. package/esm2022/form/form-group/form-group.component.mjs +2 -2
  67. package/esm2022/form/form-header/form-header.component.mjs +2 -2
  68. package/esm2022/form/form-item/form-item.component.mjs +2 -2
  69. package/esm2022/form/form-label/form-label.component.mjs +3 -3
  70. package/esm2022/form/form-message/form-message.component.mjs +2 -2
  71. package/esm2022/generic-tag/generic-tag.component.mjs +2 -2
  72. package/esm2022/grid-list/components/grid-list/grid-list.component.mjs +2 -2
  73. package/esm2022/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.mjs +2 -2
  74. package/esm2022/grid-list/components/grid-list-item/grid-list-item.component.mjs +2 -2
  75. package/esm2022/icon/icon.component.mjs +78 -29
  76. package/esm2022/illustrated-message/illustrated-message.component.mjs +2 -2
  77. package/esm2022/info-label/info-label.component.mjs +2 -2
  78. package/esm2022/input-group/input-group.component.mjs +2 -2
  79. package/esm2022/layout-grid/layout-grid.component.mjs +2 -2
  80. package/esm2022/layout-panel/layout-panel.component.mjs +2 -2
  81. package/esm2022/link/link.component.mjs +3 -3
  82. package/esm2022/list/list-navigation-item/list-navigation-item.component.mjs +2 -2
  83. package/esm2022/list/list.component.mjs +2 -2
  84. package/esm2022/menu/menu-mobile/menu-mobile.component.mjs +3 -3
  85. package/esm2022/menu/menu.component.mjs +4 -8
  86. package/esm2022/message-box/directives/message-box-template.directive.mjs +24 -0
  87. package/esm2022/message-box/index.mjs +8 -7
  88. package/esm2022/message-box/message-box.component.mjs +2 -2
  89. package/esm2022/message-box/message-box.module.mjs +8 -4
  90. package/esm2022/message-page/message-page.component.mjs +2 -2
  91. package/esm2022/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.mjs +2 -2
  92. package/esm2022/message-strip/message-strip.component.mjs +2 -2
  93. package/esm2022/message-toast/message-toast.component.mjs +2 -2
  94. package/esm2022/micro-process-flow/components/micro-process-flow/micro-process-flow.component.mjs +2 -2
  95. package/esm2022/micro-process-flow/components/micro-process-flow-icon/micro-process-flow-icon.component.mjs +1 -1
  96. package/esm2022/multi-combobox/index.mjs +2 -1
  97. package/esm2022/multi-combobox/mobile/mobile-multi-combobox.component.mjs +3 -3
  98. package/esm2022/multi-combobox/multi-announcer/multi-announcer.directive.mjs +74 -0
  99. package/esm2022/multi-combobox/multi-combobox.component.mjs +6 -4
  100. package/esm2022/multi-combobox/multi-combobox.module.mjs +5 -4
  101. package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +3 -3
  102. package/esm2022/multi-input/multi-input.component.mjs +18 -7
  103. package/esm2022/nested-list/nested-list-directives.mjs +2 -2
  104. package/esm2022/notification/notification/notification.component.mjs +2 -2
  105. package/esm2022/object-identifier/object-identifier.component.mjs +2 -2
  106. package/esm2022/object-marker/object-marker.component.mjs +2 -2
  107. package/esm2022/object-number/object-number.component.mjs +2 -2
  108. package/esm2022/object-status/object-status.component.mjs +3 -3
  109. package/esm2022/pagination/pagination.component.mjs +2 -2
  110. package/esm2022/panel/panel.component.mjs +2 -2
  111. package/esm2022/popover/base/base-popover.class.mjs +2 -6
  112. package/esm2022/popover/popover-body/popover-body.component.mjs +3 -5
  113. package/esm2022/popover/popover-mobile/popover-mobile.component.mjs +3 -3
  114. package/esm2022/popover/popover-service/popover.service.mjs +1 -2
  115. package/esm2022/product-switch/product-switch-body/product-switch-body.component.mjs +2 -2
  116. package/esm2022/progress-indicator/progress-indicator.component.mjs +2 -2
  117. package/esm2022/quick-view/quick-view/quick-view.component.mjs +2 -2
  118. package/esm2022/radio/radio-button/radio-button.component.mjs +2 -2
  119. package/esm2022/rating-indicator/components/rating-indicator.component.mjs +14 -6
  120. package/esm2022/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.mjs +2 -2
  121. package/esm2022/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +2 -2
  122. package/esm2022/scrollbar/scrollbar.directive.mjs +2 -13
  123. package/esm2022/segmented-button/segmented-button.component.mjs +2 -2
  124. package/esm2022/select/select-mobile/select-mobile.component.mjs +3 -3
  125. package/esm2022/select/select.component.mjs +3 -3
  126. package/esm2022/shellbar/product-menu/product-menu.component.mjs +2 -2
  127. package/esm2022/shellbar/shellbar.component.mjs +2 -2
  128. package/esm2022/shellbar/user-menu/shellbar-user-menu.component.mjs +2 -2
  129. package/esm2022/side-navigation/side-navigation.component.mjs +2 -2
  130. package/esm2022/skeleton/components/skeleton.component.mjs +2 -2
  131. package/esm2022/slider/slider.component.mjs +2 -2
  132. package/esm2022/split-button/split-button.component.mjs +2 -2
  133. package/esm2022/splitter/splitter-resizer/splitter-resizer.component.mjs +1 -1
  134. package/esm2022/splitter/splitter.component.mjs +2 -2
  135. package/esm2022/status-indicator/status-indicator.component.mjs +2 -2
  136. package/esm2022/step-input/step-input.component.mjs +2 -2
  137. package/esm2022/switch/switch.component.mjs +2 -2
  138. package/esm2022/table/table-wrapper.component.mjs +2 -2
  139. package/esm2022/table/table.component.mjs +2 -2
  140. package/esm2022/tabs/tab-item-expand/tab-item-expand.component.mjs +2 -2
  141. package/esm2022/tabs/tab-list.component.mjs +3 -3
  142. package/esm2022/tabs/tab-nav/tab-nav.component.mjs +2 -2
  143. package/esm2022/tabs/tab-utils/tab-directives.mjs +1 -1
  144. package/esm2022/text/text.component.mjs +2 -2
  145. package/esm2022/tile/tile.component.mjs +2 -2
  146. package/esm2022/time/time.component.mjs +2 -2
  147. package/esm2022/timeline/components/timeline-node/timeline-node.component.mjs +1 -1
  148. package/esm2022/title/title.component.mjs +2 -2
  149. package/esm2022/token/token.component.mjs +2 -2
  150. package/esm2022/token/tokenizer.component.mjs +2 -2
  151. package/esm2022/toolbar/toolbar.component.mjs +2 -2
  152. package/esm2022/tree/components/tree-item/tree-item.component.mjs +2 -2
  153. package/esm2022/tree/tree.component.mjs +2 -2
  154. package/esm2022/upload-collection/upload-collection.component.mjs +2 -2
  155. package/esm2022/vertical-navigation/vertical-navigation-main-navigation.component.mjs +2 -2
  156. package/esm2022/vertical-navigation/vertical-navigation.component.mjs +2 -2
  157. package/esm2022/wizard/wizard-step-indicator/wizard-step-indicator.component.mjs +1 -1
  158. package/esm2022/wizard/wizard.component.mjs +3 -3
  159. package/fesm2022/fundamental-ngx-core-action-bar.mjs +2 -2
  160. package/fesm2022/fundamental-ngx-core-action-sheet.mjs +2 -2
  161. package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  162. package/fesm2022/fundamental-ngx-core-avatar-group.mjs +2 -2
  163. package/fesm2022/fundamental-ngx-core-avatar.mjs +2 -2
  164. package/fesm2022/fundamental-ngx-core-avatar.mjs.map +1 -1
  165. package/fesm2022/fundamental-ngx-core-bar.mjs +2 -2
  166. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +2 -2
  167. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  168. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +2 -2
  169. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  170. package/fesm2022/fundamental-ngx-core-button.mjs +2 -2
  171. package/fesm2022/fundamental-ngx-core-button.mjs.map +1 -1
  172. package/fesm2022/fundamental-ngx-core-calendar.mjs +152 -290
  173. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  174. package/fesm2022/fundamental-ngx-core-card.mjs +2 -2
  175. package/fesm2022/fundamental-ngx-core-carousel.mjs +2 -2
  176. package/fesm2022/fundamental-ngx-core-checkbox.mjs +2 -2
  177. package/fesm2022/fundamental-ngx-core-combobox.mjs +40 -12
  178. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  179. package/fesm2022/fundamental-ngx-core-date-picker.mjs +2 -2
  180. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  181. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +2 -2
  182. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  183. package/fesm2022/fundamental-ngx-core-dialog.mjs +33 -9
  184. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  185. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +2 -2
  186. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  187. package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs +2 -2
  188. package/fesm2022/fundamental-ngx-core-facets.mjs +2 -2
  189. package/fesm2022/fundamental-ngx-core-feed-input.mjs +2 -2
  190. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +2 -2
  191. package/fesm2022/fundamental-ngx-core-file-uploader.mjs +2 -2
  192. package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +2 -2
  193. package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs +2 -2
  194. package/fesm2022/fundamental-ngx-core-form.mjs +14 -14
  195. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  196. package/fesm2022/fundamental-ngx-core-generic-tag.mjs +2 -2
  197. package/fesm2022/fundamental-ngx-core-grid-list.mjs +4 -4
  198. package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
  199. package/fesm2022/fundamental-ngx-core-icon.mjs +78 -29
  200. package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
  201. package/fesm2022/fundamental-ngx-core-illustrated-message.mjs +2 -2
  202. package/fesm2022/fundamental-ngx-core-info-label.mjs +2 -2
  203. package/fesm2022/fundamental-ngx-core-info-label.mjs.map +1 -1
  204. package/fesm2022/fundamental-ngx-core-input-group.mjs +2 -2
  205. package/fesm2022/fundamental-ngx-core-layout-grid.mjs +2 -2
  206. package/fesm2022/fundamental-ngx-core-layout-panel.mjs +2 -2
  207. package/fesm2022/fundamental-ngx-core-link.mjs +2 -2
  208. package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
  209. package/fesm2022/fundamental-ngx-core-list.mjs +4 -4
  210. package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
  211. package/fesm2022/fundamental-ngx-core-menu.mjs +5 -9
  212. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  213. package/fesm2022/fundamental-ngx-core-message-box.mjs +35 -10
  214. package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
  215. package/fesm2022/fundamental-ngx-core-message-page.mjs +2 -2
  216. package/fesm2022/fundamental-ngx-core-message-strip.mjs +3 -3
  217. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  218. package/fesm2022/fundamental-ngx-core-message-toast.mjs +2 -2
  219. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +3 -3
  220. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
  221. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +84 -13
  222. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  223. package/fesm2022/fundamental-ngx-core-multi-input.mjs +19 -8
  224. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  225. package/fesm2022/fundamental-ngx-core-nested-list.mjs +1 -1
  226. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  227. package/fesm2022/fundamental-ngx-core-notification.mjs +2 -2
  228. package/fesm2022/fundamental-ngx-core-object-identifier.mjs +2 -2
  229. package/fesm2022/fundamental-ngx-core-object-marker.mjs +2 -2
  230. package/fesm2022/fundamental-ngx-core-object-number.mjs +2 -2
  231. package/fesm2022/fundamental-ngx-core-object-status.mjs +2 -2
  232. package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
  233. package/fesm2022/fundamental-ngx-core-pagination.mjs +2 -2
  234. package/fesm2022/fundamental-ngx-core-panel.mjs +2 -2
  235. package/fesm2022/fundamental-ngx-core-popover.mjs +5 -12
  236. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  237. package/fesm2022/fundamental-ngx-core-product-switch.mjs +2 -2
  238. package/fesm2022/fundamental-ngx-core-progress-indicator.mjs +2 -2
  239. package/fesm2022/fundamental-ngx-core-quick-view.mjs +2 -2
  240. package/fesm2022/fundamental-ngx-core-radio.mjs +2 -2
  241. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +13 -5
  242. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  243. package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +4 -4
  244. package/fesm2022/fundamental-ngx-core-scrollbar.mjs +1 -12
  245. package/fesm2022/fundamental-ngx-core-scrollbar.mjs.map +1 -1
  246. package/fesm2022/fundamental-ngx-core-segmented-button.mjs +2 -2
  247. package/fesm2022/fundamental-ngx-core-select.mjs +4 -4
  248. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  249. package/fesm2022/fundamental-ngx-core-shellbar.mjs +4 -4
  250. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  251. package/fesm2022/fundamental-ngx-core-side-navigation.mjs +2 -2
  252. package/fesm2022/fundamental-ngx-core-skeleton.mjs +2 -2
  253. package/fesm2022/fundamental-ngx-core-slider.mjs +2 -2
  254. package/fesm2022/fundamental-ngx-core-split-button.mjs +2 -2
  255. package/fesm2022/fundamental-ngx-core-splitter.mjs +3 -3
  256. package/fesm2022/fundamental-ngx-core-splitter.mjs.map +1 -1
  257. package/fesm2022/fundamental-ngx-core-status-indicator.mjs +2 -2
  258. package/fesm2022/fundamental-ngx-core-step-input.mjs +2 -2
  259. package/fesm2022/fundamental-ngx-core-switch.mjs +2 -2
  260. package/fesm2022/fundamental-ngx-core-table.mjs +4 -4
  261. package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
  262. package/fesm2022/fundamental-ngx-core-tabs.mjs +6 -6
  263. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  264. package/fesm2022/fundamental-ngx-core-text.mjs +2 -2
  265. package/fesm2022/fundamental-ngx-core-tile.mjs +2 -2
  266. package/fesm2022/fundamental-ngx-core-time.mjs +2 -2
  267. package/fesm2022/fundamental-ngx-core-timeline.mjs +1 -1
  268. package/fesm2022/fundamental-ngx-core-timeline.mjs.map +1 -1
  269. package/fesm2022/fundamental-ngx-core-title.mjs +2 -2
  270. package/fesm2022/fundamental-ngx-core-token.mjs +4 -4
  271. package/fesm2022/fundamental-ngx-core-toolbar.mjs +2 -2
  272. package/fesm2022/fundamental-ngx-core-tree.mjs +3 -3
  273. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  274. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +2 -2
  275. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +4 -4
  276. package/fesm2022/fundamental-ngx-core-wizard.mjs +3 -3
  277. package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
  278. package/fundamental-ngx-core-v0.46.2-rc.21.tgz +0 -0
  279. package/icon/icon.component.d.ts +26 -9
  280. package/menu/menu.component.d.ts +1 -3
  281. package/message-box/directives/message-box-template.directive.d.ts +20 -0
  282. package/message-box/index.d.ts +7 -6
  283. package/message-box/message-box.module.d.ts +2 -1
  284. package/multi-combobox/index.d.ts +1 -0
  285. package/multi-combobox/multi-announcer/multi-announcer.directive.d.ts +23 -0
  286. package/multi-combobox/multi-combobox.module.d.ts +2 -1
  287. package/multi-input/multi-input.component.d.ts +3 -1
  288. package/package.json +4 -4
  289. package/popover/base/base-popover.class.d.ts +1 -3
  290. package/popover/popover-body/popover-body.component.d.ts +0 -2
  291. package/rating-indicator/components/rating-indicator.component.d.ts +5 -2
  292. package/schematics/add-dependencies/index.js +6 -6
  293. package/scrollbar/scrollbar.directive.d.ts +1 -5
  294. package/fundamental-ngx-core-v0.46.2-rc.2.tgz +0 -0
@@ -22,6 +22,7 @@ import { CheckboxComponent } from '@fundamental-ngx/core/checkbox';
22
22
  import * as i4$1 from '@fundamental-ngx/core/input-group';
23
23
  import { InputGroupModule } from '@fundamental-ngx/core/input-group';
24
24
  import { LinkComponent } from '@fundamental-ngx/core/link';
25
+ import { MultiAnnouncerDirective } from '@fundamental-ngx/core/multi-combobox';
25
26
  import { FdTranslatePipe } from '@fundamental-ngx/i18n';
26
27
  import get from 'lodash-es/get';
27
28
  import { CdkScrollable } from '@angular/cdk/overlay';
@@ -100,7 +101,7 @@ class MultiInputMobileComponent extends MobileModeBase {
100
101
  });
101
102
  }
102
103
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: MultiInputMobileComponent, deps: [{ token: i0.ElementRef }, { token: i1.DialogService }, { token: MULTI_INPUT_COMPONENT }, { token: MOBILE_MODE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: MultiInputMobileComponent, isStandalone: true, selector: "fd-multi-input-mobile", viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title *ngIf=\"mobileConfig?.title\">{{ mobileConfig.title }}</h1>\n <button\n fd-dialog-close-button\n [mobile]=\"true\"\n *ngIf=\"mobileConfig?.hasCloseButton\"\n (click)=\"handleDismiss()\"\n ></button>\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element class=\"custom-multi-input-mobile-control-element\">\n <ng-container\n *ngTemplateOutlet=\"\n childContent?.controlTemplate || null;\n context: { displayAddonButton: false }\n \"\n ></ng-container>\n </fd-bar-element>\n <fd-bar-element class=\"custom-multi-input-select-all-bar-element\">\n <button\n fd-button\n glyph=\"multiselect-all\"\n [fdType]=\"allItemsSelected ? 'emphasized' : 'transparent'\"\n (click)=\"selectAll(allItemsSelected)\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"childContent?.listTemplate || null\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"handleApprove()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig?.cancelButtonText\"\n [label]=\"mobileConfig.cancelButtonText!\"\n (click)=\"handleDismiss()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [".custom-multi-input-select-all-bar-element{min-width:2.25rem}.custom-multi-input-mobile-control-element{width:calc(100% - 2.25rem)}.custom-multi-input-mobile-control-element .fd-multi-input-input-group-custom{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i1.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "directive", type: i2.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i3.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: BarModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: MultiInputMobileComponent, isStandalone: true, selector: "fd-multi-input-mobile", viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title *ngIf=\"mobileConfig?.title\">{{ mobileConfig.title }}</h1>\n <button\n fd-dialog-close-button\n [mobile]=\"true\"\n *ngIf=\"mobileConfig?.hasCloseButton\"\n (click)=\"handleDismiss()\"\n ></button>\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element class=\"custom-multi-input-mobile-control-element\">\n <ng-container\n *ngTemplateOutlet=\"\n childContent?.controlTemplate || null;\n context: { displayAddonButton: false }\n \"\n ></ng-container>\n </fd-bar-element>\n <fd-bar-element class=\"custom-multi-input-select-all-bar-element\">\n <button\n fd-button\n glyph=\"multiselect-all\"\n [fdType]=\"allItemsSelected ? 'emphasized' : 'transparent'\"\n (click)=\"selectAll(allItemsSelected)\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"childContent?.listTemplate || null\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"handleApprove()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig?.cancelButtonText\"\n [label]=\"mobileConfig.cancelButtonText!\"\n (click)=\"handleDismiss()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [".custom-multi-input-select-all-bar-element{min-width:2.25rem}.custom-multi-input-mobile-control-element{width:calc(100% - 2.25rem)}.custom-multi-input-mobile-control-element .fd-multi-input-input-group-custom{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i1.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "directive", type: i1.DialogTemplateDirective, selector: "[fdDialogTemplate]", inputs: ["fdDialogTemplateConfig"] }, { kind: "directive", type: i2.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i3.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: BarModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
104
105
  }
105
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: MultiInputMobileComponent, decorators: [{
106
107
  type: Component,
@@ -114,7 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
114
115
  ButtonModule,
115
116
  CdkScrollable,
116
117
  ScrollbarDirective
117
- ], template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title *ngIf=\"mobileConfig?.title\">{{ mobileConfig.title }}</h1>\n <button\n fd-dialog-close-button\n [mobile]=\"true\"\n *ngIf=\"mobileConfig?.hasCloseButton\"\n (click)=\"handleDismiss()\"\n ></button>\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element class=\"custom-multi-input-mobile-control-element\">\n <ng-container\n *ngTemplateOutlet=\"\n childContent?.controlTemplate || null;\n context: { displayAddonButton: false }\n \"\n ></ng-container>\n </fd-bar-element>\n <fd-bar-element class=\"custom-multi-input-select-all-bar-element\">\n <button\n fd-button\n glyph=\"multiselect-all\"\n [fdType]=\"allItemsSelected ? 'emphasized' : 'transparent'\"\n (click)=\"selectAll(allItemsSelected)\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"childContent?.listTemplate || null\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"handleApprove()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig?.cancelButtonText\"\n [label]=\"mobileConfig.cancelButtonText!\"\n (click)=\"handleDismiss()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [".custom-multi-input-select-all-bar-element{min-width:2.25rem}.custom-multi-input-mobile-control-element{width:calc(100% - 2.25rem)}.custom-multi-input-mobile-control-element .fd-multi-input-input-group-custom{width:100%}\n"] }]
118
+ ], template: "<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title *ngIf=\"mobileConfig?.title\">{{ mobileConfig.title }}</h1>\n <button\n fd-dialog-close-button\n [mobile]=\"true\"\n *ngIf=\"mobileConfig?.hasCloseButton\"\n (click)=\"handleDismiss()\"\n ></button>\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element class=\"custom-multi-input-mobile-control-element\">\n <ng-container\n *ngTemplateOutlet=\"\n childContent?.controlTemplate || null;\n context: { displayAddonButton: false }\n \"\n ></ng-container>\n </fd-bar-element>\n <fd-bar-element class=\"custom-multi-input-select-all-bar-element\">\n <button\n fd-button\n glyph=\"multiselect-all\"\n [fdType]=\"allItemsSelected ? 'emphasized' : 'transparent'\"\n (click)=\"selectAll(allItemsSelected)\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"childContent?.listTemplate || null\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"handleApprove()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig?.cancelButtonText\"\n [label]=\"mobileConfig.cancelButtonText!\"\n (click)=\"handleDismiss()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [".custom-multi-input-select-all-bar-element{min-width:2.25rem}.custom-multi-input-mobile-control-element{width:calc(100% - 2.25rem)}.custom-multi-input-mobile-control-element .fd-multi-input-input-group-custom{width:100%}\n"] }]
118
119
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DialogService }, { type: undefined, decorators: [{
119
120
  type: Inject,
120
121
  args: [MULTI_INPUT_COMPONENT]
@@ -344,6 +345,8 @@ class MultiInputComponent {
344
345
  /** @hidden */
345
346
  this.optionItems$ = new BehaviorSubject([]);
346
347
  /** @hidden */
348
+ this._onlySelected$ = new BehaviorSubject(false);
349
+ /** @hidden */
347
350
  this._searchTermCtrl = new FormControl('');
348
351
  /** @hidden */
349
352
  this._selectionModel = new PairSelectionModel();
@@ -470,6 +473,7 @@ class MultiInputComponent {
470
473
  if (!this.open) {
471
474
  this._resetSearchTerm();
472
475
  this.enableParentFocusTrap();
476
+ this._onlySelected$.next(false);
473
477
  }
474
478
  else {
475
479
  this.disableParentFocusTrap();
@@ -491,9 +495,9 @@ class MultiInputComponent {
491
495
  this._propagateChange();
492
496
  }
493
497
  /** @hidden */
494
- _onCheckboxKeyup(option, event, index) {
498
+ _onCheckboxKeyup(option, event, index, isListItem = false) {
495
499
  if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {
496
- this._onCheckboxClick(option, event, index);
500
+ this._onCheckboxClick(option, event, index, isListItem);
497
501
  }
498
502
  }
499
503
  /** @hidden */
@@ -623,6 +627,7 @@ class MultiInputComponent {
623
627
  }
624
628
  /** @hidden */
625
629
  _moreClicked() {
630
+ this._onlySelected$.next(true);
626
631
  this.openChangeHandle(true);
627
632
  }
628
633
  /** @hidden */
@@ -776,13 +781,18 @@ class MultiInputComponent {
776
781
  return combineLatest([
777
782
  this._searchTermCtrl.valueChanges.pipe(startWith(this._searchTermCtrl.value)),
778
783
  this._selectionModel.selectionChanged.pipe(startWith(null)),
784
+ this._onlySelected$,
779
785
  this.optionItems$
780
786
  ]).pipe(map(() => {
781
787
  // not using "searchTerm" value from combineLatest as it will be wrong for late subscribers, if any
782
788
  const searchTerm = this._searchTermCtrl.value ?? '';
783
789
  const filtered = this.filterFn(this.dropdownValues, searchTerm);
784
- const displayedOptions = (Array.isArray(filtered) ? filtered : []).map((item) => this._getOptionItem(item));
790
+ const onlySelected = this._onlySelected$.value;
791
+ let displayedOptions = (Array.isArray(filtered) ? filtered : []).map((item) => this._getOptionItem(item));
785
792
  displayedOptions.forEach((c) => (c.isSelected = this._selectionModel.isSelected(c.id)));
793
+ if (onlySelected) {
794
+ displayedOptions = displayedOptions.filter((item) => item.isSelected);
795
+ }
786
796
  return { selectedOptions: this._selectionModel.selected, displayedOptions };
787
797
  }));
788
798
  }
@@ -796,7 +806,7 @@ class MultiInputComponent {
796
806
  MenuKeyboardService,
797
807
  registerFormItemControl(MultiInputComponent),
798
808
  contentDensityObserverProviders()
799
- ], viewQueries: [{ propertyName: "popoverRef", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["control"], descendants: true, read: TemplateRef }, { propertyName: "listTemplate", first: true, predicate: ["list"], descendants: true, read: TemplateRef }, { propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "searchInputElement", first: true, predicate: ["searchInputElement"], descendants: true, read: ElementRef }, { propertyName: "tokenizer", first: true, predicate: TokenizerComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"_viewModel$ | async as viewModel\">\n <div class=\"fd-multi-input fd-multi-input-custom\">\n <div class=\"fd-multi-input-field\">\n <ng-container\n [ngTemplateOutlet]=\"control\"\n [ngTemplateOutletContext]=\"{ displayAddonButton: displayAddonButton }\"\n *ngIf=\"mobile\"\n ></ng-container>\n\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n *ngIf=\"!mobile\"\n [isOpen]=\"open\"\n (isOpenChange)=\"openChangeHandle($event)\"\n (input)=\"!open && openChangeHandle(true)\"\n [triggers]=\"[]\"\n [maxWidth]=\"_popoverMaxWidth\"\n [disabled]=\"disabled\"\n [fillControlMode]=\"fillControlMode\"\n class=\"fd-multi-input-popover-custom\"\n >\n <fd-popover-control>\n <form (submit)=\"_onSubmit()\">\n <ng-container\n *ngTemplateOutlet=\"control; context: { displayAddonButton: displayAddonButton }\"\n ></ng-container>\n </form>\n </fd-popover-control>\n\n <fd-popover-body\n [attr.aria-hidden]=\"!open\"\n [class.fd-popover__body--hidden]=\"!viewModel.displayedOptions.length\"\n >\n <ng-container *ngTemplateOutlet=\"list\"></ng-container>\n\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n </div>\n </div>\n\n <ng-template #control let-showAddonButton=\"displayAddonButton\">\n <fd-input-group\n class=\"fd-multi-input-input-group-custom\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [button]=\"showAddonButton\"\n [disabled]=\"disabled\"\n [isExpanded]=\"open && !mobile && viewModel.displayedOptions.length > 0\"\n [isControl]=\"true\"\n [glyph]=\"showAddonButton ? glyph : ''\"\n [iconTitle]=\"title\"\n (addOnButtonClicked)=\"_addOnButtonClicked($event)\"\n >\n <span [attr.id]=\"tokenHiddenId\" aria-hidden=\"true\" class=\"fd-multi-input__invisible-text\">{{\n 'coreMultiInput.tokensCountText' | fdTranslate : { length: selected.length }\n }}</span>\n <fd-tokenizer\n #tokenizer\n [compactCollapse]=\"compactCollapse\"\n [open]=\"open\"\n [tokenizerFocusable]=\"false\"\n (moreClickedEvent)=\"_moreClicked()\"\n class=\"fd-multi-input-tokenizer-custom\"\n tabindex=\"-1\"\n >\n <fd-token\n *ngFor=\"let option of viewModel.selectedOptions; trackBy: _trackBy\"\n [disabled]=\"disabled\"\n (onCloseClick)=\"_onTokenClick(option, false, $event)\"\n (onRemove)=\"_onTokenClick(option, false)\"\n >\n <span [innerHtml]=\"option.label\"></span>\n </fd-token>\n\n <input\n type=\"text\"\n class=\"fd-input fd-tokenizer__input fd-multi-input-tokenizer-input\"\n autocomplete=\"off\"\n fd-form-control\n fd-input-group-input\n fdkAutoComplete\n (onComplete)=\"_handleComplete($event)\"\n #searchInputElement\n [displayFn]=\"displayFn\"\n [matcher]=\"typeAheadMatcher\"\n [inputText]=\"_searchTermCtrl.value || ''\"\n [options]=\"dropdownValues\"\n [enable]=\"autoComplete && !mobile\"\n [placeholder]=\"placeholder\"\n [formControl]=\"_searchTermCtrl\"\n [attr.aria-required]=\"required\"\n [ariaLabel]=\"ariaLabel || ('coreMultiInput.multiInputAriaLabel' | fdTranslate)\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"tokenHiddenId\"\n (keydown)=\"_handleInputKeydown($event)\"\n [attr.id]=\"inputId\"\n (focus)=\"tokenizer._showAllTokens()\"\n (blur)=\"tokenizer._hideTokens()\"\n />\n </fd-tokenizer>\n </fd-input-group>\n </ng-template>\n\n <ng-template #list>\n <ul\n *ngIf=\"viewModel.displayedOptions.length\"\n fd-list\n class=\"fd-multi-input-menu-overflow\"\n [selection]=\"true\"\n [mobileMode]=\"mobile\"\n [style.max-height]=\"!mobile ? maxHeight : 'auto'\"\n [byline]=\"byline\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n [style.min-width]=\"'100%'\"\n aria-multiselectable=\"true\"\n >\n <li\n *ngFor=\"let option of viewModel.displayedOptions; index as idx; trackBy: _trackBy\"\n fd-list-item\n [attr.aria-label]=\"option.label\"\n (click)=\"_onCheckboxClick(option, $event, idx, true)\"\n (keyup)=\"_onCheckboxKeyup(option, $event, idx)\"\n [selected]=\"!!option.isSelected\"\n >\n <fd-checkbox (click)=\"_onCheckboxClick(option, $event, idx)\" [value]=\"option.isSelected\">\n <!-- TODO -->\n </fd-checkbox>\n\n <ng-container\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ option: option }\"\n ></ng-container>\n </li>\n\n <li\n *ngIf=\"showAllButton && viewModel.displayedOptions.length < dropdownValues.length\"\n fd-list-item\n class=\"fd-multi-input-show-all\"\n (keyDown)=\"_showAllKeyDown($event)\"\n (click)=\"_showAllClicked($event)\"\n >\n <a fd-link role=\"button\" tabindex=\"0\">Show All ({{ dropdownValues.length }})</a>\n </li>\n </ul>\n </ng-template>\n\n <ng-template let-option=\"option\" #itemSource>\n <span\n *ngIf=\"!itemTemplate\"\n fd-list-title\n [innerHtml]=\"option.label | highlight : _searchTermCtrl.value || '' : highlight\"\n ></span>\n\n <ng-container *ngIf=\"itemTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option.item }\"\n ></ng-container>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [".fd-multi-input-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fd-multi-input-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fd-multi-input-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fd-multi-input-tokenizer-custom[class*=--compact],.fd-multi-input-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fd-multi-input__invisible-text{display:none!important}.fd-multi-input-input-group-custom{max-width:100%}.fd-multi-input-custom{display:block}.fd-multi-input-item{cursor:pointer;padding:0}.fd-multi-input-popover-size{overflow:auto;display:block}.fd-multi-input-popover-custom.fd-popover-custom{max-width:100%;display:block}.fd-multi-input-show-all{width:100%;display:flex;justify-content:flex-end;background-color:transparent}.fd-multi-input-show-all .fd-link:active{color:inherit}.fd-multi-input-checkbox{width:100%;cursor:pointer}.fd-multi-input-checkbox .fd-checkbox__label{color:inherit}.fd-multi-input-menu-overflow{max-width:37.5rem}.fd-input.fd-multi-input-tokenizer-input{min-width:4rem;margin-top:0;margin-bottom:0;padding-left:0;background-color:transparent}.fd-list--multi-input{max-width:100%}.fd-popover__body--hidden{display:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i4$1.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i4$1.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "ngmodule", type: TokenModule }, { kind: "component", type: i5$1.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: i5$1.TokenizerComponent, selector: "fd-tokenizer", inputs: ["class", "disableKeyboardDeletion", "compactCollapse", "tokenizerFocusable", "inputValue", "glyph", "moreTerm", "open"], outputs: ["moreClickedEvent"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdkAutoComplete]", inputs: ["options", "inputText", "enable", "matcher", "displayFn"], outputs: ["onComplete"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ListModule }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
809
+ ], viewQueries: [{ propertyName: "popoverRef", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "controlTemplate", first: true, predicate: ["control"], descendants: true, read: TemplateRef }, { propertyName: "listTemplate", first: true, predicate: ["list"], descendants: true, read: TemplateRef }, { propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "searchInputElement", first: true, predicate: ["searchInputElement"], descendants: true, read: ElementRef }, { propertyName: "tokenizer", first: true, predicate: TokenizerComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"_viewModel$ | async as viewModel\">\n <div class=\"fd-multi-input fd-multi-input-custom\">\n <div class=\"fd-multi-input-field\">\n <ng-container\n [ngTemplateOutlet]=\"control\"\n [ngTemplateOutletContext]=\"{ displayAddonButton: displayAddonButton }\"\n *ngIf=\"mobile\"\n ></ng-container>\n\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n *ngIf=\"!mobile\"\n [isOpen]=\"open\"\n (isOpenChange)=\"openChangeHandle($event)\"\n (input)=\"!open && openChangeHandle(true)\"\n [triggers]=\"[]\"\n [maxWidth]=\"_popoverMaxWidth\"\n [disabled]=\"disabled\"\n [fillControlMode]=\"fillControlMode\"\n class=\"fd-multi-input-popover-custom\"\n >\n <fd-popover-control>\n <form (submit)=\"_onSubmit()\">\n <ng-container\n *ngTemplateOutlet=\"control; context: { displayAddonButton: displayAddonButton }\"\n ></ng-container>\n </form>\n </fd-popover-control>\n\n <fd-popover-body\n [attr.aria-hidden]=\"!open\"\n [class.fd-popover__body--hidden]=\"!viewModel.displayedOptions.length\"\n >\n <ng-container *ngTemplateOutlet=\"list\"></ng-container>\n\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n </div>\n </div>\n\n <ng-template #control let-showAddonButton=\"displayAddonButton\">\n <fd-input-group\n class=\"fd-multi-input-input-group-custom\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [button]=\"showAddonButton\"\n [disabled]=\"disabled\"\n [isExpanded]=\"open && !mobile && viewModel.displayedOptions.length > 0\"\n [isControl]=\"true\"\n [glyph]=\"showAddonButton ? glyph : ''\"\n [iconTitle]=\"title\"\n (addOnButtonClicked)=\"_addOnButtonClicked($event)\"\n >\n <span [attr.id]=\"tokenHiddenId\" aria-hidden=\"true\" class=\"fd-multi-input__invisible-text\">{{\n 'coreMultiInput.tokensCountText' | fdTranslate : { length: selected.length }\n }}</span>\n <fd-tokenizer\n #tokenizer\n [compactCollapse]=\"compactCollapse\"\n [open]=\"open\"\n [tokenizerFocusable]=\"false\"\n (moreClickedEvent)=\"_moreClicked()\"\n class=\"fd-multi-input-tokenizer-custom\"\n tabindex=\"-1\"\n >\n <fd-token\n *ngFor=\"let option of viewModel.selectedOptions; trackBy: _trackBy\"\n [disabled]=\"disabled\"\n (onCloseClick)=\"_onTokenClick(option, false, $event)\"\n (onRemove)=\"_onTokenClick(option, false)\"\n >\n <span [innerHtml]=\"option.label\"></span>\n </fd-token>\n\n <input\n type=\"text\"\n class=\"fd-input fd-tokenizer__input fd-multi-input-tokenizer-input\"\n autocomplete=\"off\"\n fd-form-control\n fd-input-group-input\n fdkAutoComplete\n (onComplete)=\"_handleComplete($event)\"\n #searchInputElement\n [displayFn]=\"displayFn\"\n [matcher]=\"typeAheadMatcher\"\n [inputText]=\"_searchTermCtrl.value || ''\"\n [options]=\"dropdownValues\"\n [enable]=\"!includes && autoComplete && !mobile\"\n [placeholder]=\"placeholder\"\n [formControl]=\"_searchTermCtrl\"\n [attr.aria-required]=\"required\"\n [ariaLabel]=\"ariaLabel || ('coreMultiInput.multiInputAriaLabel' | fdTranslate)\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"tokenHiddenId\"\n (keydown)=\"_handleInputKeydown($event)\"\n [attr.id]=\"inputId\"\n (focus)=\"tokenizer._showAllTokens()\"\n (blur)=\"tokenizer._hideTokens()\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"filterFn(dropdownValues, searchTerm)\"\n />\n </fd-tokenizer>\n </fd-input-group>\n </ng-template>\n\n <ng-template #list>\n <ul\n *ngIf=\"viewModel.displayedOptions.length\"\n fd-list\n class=\"fd-multi-input-menu-overflow\"\n [selection]=\"true\"\n [mobileMode]=\"mobile\"\n [style.max-height]=\"!mobile ? maxHeight : 'auto'\"\n [byline]=\"byline\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n [style.min-width]=\"'100%'\"\n aria-multiselectable=\"true\"\n >\n <li\n *ngFor=\"let option of viewModel.displayedOptions; index as idx; trackBy: _trackBy\"\n fd-list-item\n [attr.aria-label]=\"option.label\"\n (click)=\"_onCheckboxClick(option, $event, idx, true)\"\n (keyup)=\"_onCheckboxKeyup(option, $event, idx, true)\"\n [selected]=\"!!option.isSelected\"\n >\n <fd-checkbox (click)=\"_onCheckboxClick(option, $event, idx)\" [value]=\"option.isSelected\">\n <!-- TODO -->\n </fd-checkbox>\n\n <ng-container\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ option: option }\"\n ></ng-container>\n </li>\n\n <li\n *ngIf=\"\n showAllButton &&\n (_onlySelected$ | async) !== true &&\n viewModel.displayedOptions.length < dropdownValues.length\n \"\n fd-list-item\n class=\"fd-multi-input-show-all\"\n (keyDown)=\"_showAllKeyDown($event)\"\n (click)=\"_showAllClicked($event)\"\n >\n <a fd-link role=\"button\" tabindex=\"0\">Show All ({{ dropdownValues.length }})</a>\n </li>\n </ul>\n </ng-template>\n\n <ng-template let-option=\"option\" #itemSource>\n <span\n *ngIf=\"!itemTemplate\"\n fd-list-title\n [innerHtml]=\"option.label | highlight : _searchTermCtrl.value || '' : highlight\"\n ></span>\n\n <ng-container *ngIf=\"itemTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option.item }\"\n ></ng-container>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [".fd-multi-input-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fd-multi-input-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fd-multi-input-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fd-multi-input-tokenizer-custom[class*=--compact],.fd-multi-input-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fd-multi-input__invisible-text{display:none!important}.fd-multi-input-input-group-custom{max-width:100%}.fd-multi-input-custom{display:block}.fd-multi-input-item{cursor:pointer;padding:0}.fd-multi-input-popover-size{overflow:auto;display:block}.fd-multi-input-popover-custom.fd-popover-custom{max-width:100%;display:block}.fd-multi-input-show-all{width:100%;display:flex;justify-content:flex-end;background-color:transparent}.fd-multi-input-show-all .fd-link:active{color:inherit}.fd-multi-input-checkbox{width:100%;cursor:pointer}.fd-multi-input-checkbox .fd-checkbox__label{color:inherit}.fd-multi-input-menu-overflow{max-width:37.5rem}.fd-input.fd-multi-input-tokenizer-input{min-width:4rem;margin-top:0;margin-bottom:0;padding-left:0;background-color:transparent}.fd-list--multi-input{max-width:100%}.fd-popover__body--hidden{display:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i4$1.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i4$1.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "ngmodule", type: TokenModule }, { kind: "component", type: i5$1.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: i5$1.TokenizerComponent, selector: "fd-tokenizer", inputs: ["class", "disableKeyboardDeletion", "compactCollapse", "tokenizerFocusable", "inputValue", "glyph", "moreTerm", "open"], outputs: ["moreClickedEvent"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: AutoCompleteDirective, selector: "[fdkAutoComplete]", inputs: ["options", "inputText", "enable", "matcher", "displayFn"], outputs: ["onComplete"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ListModule }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SearchHighlightPipe, name: "highlight" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "directive", type: MultiAnnouncerDirective, selector: "[fdMultiAnnouncer]", inputs: ["multiAnnouncerOptions"], exportAs: ["fdMultiAnnouncer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
800
810
  }
801
811
  __decorate([
802
812
  applyCssClass,
@@ -833,8 +843,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
833
843
  LinkComponent,
834
844
  AsyncPipe,
835
845
  SearchHighlightPipe,
836
- FdTranslatePipe
837
- ], template: "<ng-container *ngIf=\"_viewModel$ | async as viewModel\">\n <div class=\"fd-multi-input fd-multi-input-custom\">\n <div class=\"fd-multi-input-field\">\n <ng-container\n [ngTemplateOutlet]=\"control\"\n [ngTemplateOutletContext]=\"{ displayAddonButton: displayAddonButton }\"\n *ngIf=\"mobile\"\n ></ng-container>\n\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n *ngIf=\"!mobile\"\n [isOpen]=\"open\"\n (isOpenChange)=\"openChangeHandle($event)\"\n (input)=\"!open && openChangeHandle(true)\"\n [triggers]=\"[]\"\n [maxWidth]=\"_popoverMaxWidth\"\n [disabled]=\"disabled\"\n [fillControlMode]=\"fillControlMode\"\n class=\"fd-multi-input-popover-custom\"\n >\n <fd-popover-control>\n <form (submit)=\"_onSubmit()\">\n <ng-container\n *ngTemplateOutlet=\"control; context: { displayAddonButton: displayAddonButton }\"\n ></ng-container>\n </form>\n </fd-popover-control>\n\n <fd-popover-body\n [attr.aria-hidden]=\"!open\"\n [class.fd-popover__body--hidden]=\"!viewModel.displayedOptions.length\"\n >\n <ng-container *ngTemplateOutlet=\"list\"></ng-container>\n\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n </div>\n </div>\n\n <ng-template #control let-showAddonButton=\"displayAddonButton\">\n <fd-input-group\n class=\"fd-multi-input-input-group-custom\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [button]=\"showAddonButton\"\n [disabled]=\"disabled\"\n [isExpanded]=\"open && !mobile && viewModel.displayedOptions.length > 0\"\n [isControl]=\"true\"\n [glyph]=\"showAddonButton ? glyph : ''\"\n [iconTitle]=\"title\"\n (addOnButtonClicked)=\"_addOnButtonClicked($event)\"\n >\n <span [attr.id]=\"tokenHiddenId\" aria-hidden=\"true\" class=\"fd-multi-input__invisible-text\">{{\n 'coreMultiInput.tokensCountText' | fdTranslate : { length: selected.length }\n }}</span>\n <fd-tokenizer\n #tokenizer\n [compactCollapse]=\"compactCollapse\"\n [open]=\"open\"\n [tokenizerFocusable]=\"false\"\n (moreClickedEvent)=\"_moreClicked()\"\n class=\"fd-multi-input-tokenizer-custom\"\n tabindex=\"-1\"\n >\n <fd-token\n *ngFor=\"let option of viewModel.selectedOptions; trackBy: _trackBy\"\n [disabled]=\"disabled\"\n (onCloseClick)=\"_onTokenClick(option, false, $event)\"\n (onRemove)=\"_onTokenClick(option, false)\"\n >\n <span [innerHtml]=\"option.label\"></span>\n </fd-token>\n\n <input\n type=\"text\"\n class=\"fd-input fd-tokenizer__input fd-multi-input-tokenizer-input\"\n autocomplete=\"off\"\n fd-form-control\n fd-input-group-input\n fdkAutoComplete\n (onComplete)=\"_handleComplete($event)\"\n #searchInputElement\n [displayFn]=\"displayFn\"\n [matcher]=\"typeAheadMatcher\"\n [inputText]=\"_searchTermCtrl.value || ''\"\n [options]=\"dropdownValues\"\n [enable]=\"autoComplete && !mobile\"\n [placeholder]=\"placeholder\"\n [formControl]=\"_searchTermCtrl\"\n [attr.aria-required]=\"required\"\n [ariaLabel]=\"ariaLabel || ('coreMultiInput.multiInputAriaLabel' | fdTranslate)\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"tokenHiddenId\"\n (keydown)=\"_handleInputKeydown($event)\"\n [attr.id]=\"inputId\"\n (focus)=\"tokenizer._showAllTokens()\"\n (blur)=\"tokenizer._hideTokens()\"\n />\n </fd-tokenizer>\n </fd-input-group>\n </ng-template>\n\n <ng-template #list>\n <ul\n *ngIf=\"viewModel.displayedOptions.length\"\n fd-list\n class=\"fd-multi-input-menu-overflow\"\n [selection]=\"true\"\n [mobileMode]=\"mobile\"\n [style.max-height]=\"!mobile ? maxHeight : 'auto'\"\n [byline]=\"byline\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n [style.min-width]=\"'100%'\"\n aria-multiselectable=\"true\"\n >\n <li\n *ngFor=\"let option of viewModel.displayedOptions; index as idx; trackBy: _trackBy\"\n fd-list-item\n [attr.aria-label]=\"option.label\"\n (click)=\"_onCheckboxClick(option, $event, idx, true)\"\n (keyup)=\"_onCheckboxKeyup(option, $event, idx)\"\n [selected]=\"!!option.isSelected\"\n >\n <fd-checkbox (click)=\"_onCheckboxClick(option, $event, idx)\" [value]=\"option.isSelected\">\n <!-- TODO -->\n </fd-checkbox>\n\n <ng-container\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ option: option }\"\n ></ng-container>\n </li>\n\n <li\n *ngIf=\"showAllButton && viewModel.displayedOptions.length < dropdownValues.length\"\n fd-list-item\n class=\"fd-multi-input-show-all\"\n (keyDown)=\"_showAllKeyDown($event)\"\n (click)=\"_showAllClicked($event)\"\n >\n <a fd-link role=\"button\" tabindex=\"0\">Show All ({{ dropdownValues.length }})</a>\n </li>\n </ul>\n </ng-template>\n\n <ng-template let-option=\"option\" #itemSource>\n <span\n *ngIf=\"!itemTemplate\"\n fd-list-title\n [innerHtml]=\"option.label | highlight : _searchTermCtrl.value || '' : highlight\"\n ></span>\n\n <ng-container *ngIf=\"itemTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option.item }\"\n ></ng-container>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [".fd-multi-input-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fd-multi-input-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fd-multi-input-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fd-multi-input-tokenizer-custom[class*=--compact],.fd-multi-input-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fd-multi-input__invisible-text{display:none!important}.fd-multi-input-input-group-custom{max-width:100%}.fd-multi-input-custom{display:block}.fd-multi-input-item{cursor:pointer;padding:0}.fd-multi-input-popover-size{overflow:auto;display:block}.fd-multi-input-popover-custom.fd-popover-custom{max-width:100%;display:block}.fd-multi-input-show-all{width:100%;display:flex;justify-content:flex-end;background-color:transparent}.fd-multi-input-show-all .fd-link:active{color:inherit}.fd-multi-input-checkbox{width:100%;cursor:pointer}.fd-multi-input-checkbox .fd-checkbox__label{color:inherit}.fd-multi-input-menu-overflow{max-width:37.5rem}.fd-input.fd-multi-input-tokenizer-input{min-width:4rem;margin-top:0;margin-bottom:0;padding-left:0;background-color:transparent}.fd-list--multi-input{max-width:100%}.fd-popover__body--hidden{display:none}\n"] }]
846
+ FdTranslatePipe,
847
+ MultiAnnouncerDirective
848
+ ], template: "<ng-container *ngIf=\"_viewModel$ | async as viewModel\">\n <div class=\"fd-multi-input fd-multi-input-custom\">\n <div class=\"fd-multi-input-field\">\n <ng-container\n [ngTemplateOutlet]=\"control\"\n [ngTemplateOutletContext]=\"{ displayAddonButton: displayAddonButton }\"\n *ngIf=\"mobile\"\n ></ng-container>\n\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n *ngIf=\"!mobile\"\n [isOpen]=\"open\"\n (isOpenChange)=\"openChangeHandle($event)\"\n (input)=\"!open && openChangeHandle(true)\"\n [triggers]=\"[]\"\n [maxWidth]=\"_popoverMaxWidth\"\n [disabled]=\"disabled\"\n [fillControlMode]=\"fillControlMode\"\n class=\"fd-multi-input-popover-custom\"\n >\n <fd-popover-control>\n <form (submit)=\"_onSubmit()\">\n <ng-container\n *ngTemplateOutlet=\"control; context: { displayAddonButton: displayAddonButton }\"\n ></ng-container>\n </form>\n </fd-popover-control>\n\n <fd-popover-body\n [attr.aria-hidden]=\"!open\"\n [class.fd-popover__body--hidden]=\"!viewModel.displayedOptions.length\"\n >\n <ng-container *ngTemplateOutlet=\"list\"></ng-container>\n\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n </div>\n </div>\n\n <ng-template #control let-showAddonButton=\"displayAddonButton\">\n <fd-input-group\n class=\"fd-multi-input-input-group-custom\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [button]=\"showAddonButton\"\n [disabled]=\"disabled\"\n [isExpanded]=\"open && !mobile && viewModel.displayedOptions.length > 0\"\n [isControl]=\"true\"\n [glyph]=\"showAddonButton ? glyph : ''\"\n [iconTitle]=\"title\"\n (addOnButtonClicked)=\"_addOnButtonClicked($event)\"\n >\n <span [attr.id]=\"tokenHiddenId\" aria-hidden=\"true\" class=\"fd-multi-input__invisible-text\">{{\n 'coreMultiInput.tokensCountText' | fdTranslate : { length: selected.length }\n }}</span>\n <fd-tokenizer\n #tokenizer\n [compactCollapse]=\"compactCollapse\"\n [open]=\"open\"\n [tokenizerFocusable]=\"false\"\n (moreClickedEvent)=\"_moreClicked()\"\n class=\"fd-multi-input-tokenizer-custom\"\n tabindex=\"-1\"\n >\n <fd-token\n *ngFor=\"let option of viewModel.selectedOptions; trackBy: _trackBy\"\n [disabled]=\"disabled\"\n (onCloseClick)=\"_onTokenClick(option, false, $event)\"\n (onRemove)=\"_onTokenClick(option, false)\"\n >\n <span [innerHtml]=\"option.label\"></span>\n </fd-token>\n\n <input\n type=\"text\"\n class=\"fd-input fd-tokenizer__input fd-multi-input-tokenizer-input\"\n autocomplete=\"off\"\n fd-form-control\n fd-input-group-input\n fdkAutoComplete\n (onComplete)=\"_handleComplete($event)\"\n #searchInputElement\n [displayFn]=\"displayFn\"\n [matcher]=\"typeAheadMatcher\"\n [inputText]=\"_searchTermCtrl.value || ''\"\n [options]=\"dropdownValues\"\n [enable]=\"!includes && autoComplete && !mobile\"\n [placeholder]=\"placeholder\"\n [formControl]=\"_searchTermCtrl\"\n [attr.aria-required]=\"required\"\n [ariaLabel]=\"ariaLabel || ('coreMultiInput.multiInputAriaLabel' | fdTranslate)\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"tokenHiddenId\"\n (keydown)=\"_handleInputKeydown($event)\"\n [attr.id]=\"inputId\"\n (focus)=\"tokenizer._showAllTokens()\"\n (blur)=\"tokenizer._hideTokens()\"\n fdMultiAnnouncer\n [multiAnnouncerOptions]=\"filterFn(dropdownValues, searchTerm)\"\n />\n </fd-tokenizer>\n </fd-input-group>\n </ng-template>\n\n <ng-template #list>\n <ul\n *ngIf=\"viewModel.displayedOptions.length\"\n fd-list\n class=\"fd-multi-input-menu-overflow\"\n [selection]=\"true\"\n [mobileMode]=\"mobile\"\n [style.max-height]=\"!mobile ? maxHeight : 'auto'\"\n [byline]=\"byline\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n [style.min-width]=\"'100%'\"\n aria-multiselectable=\"true\"\n >\n <li\n *ngFor=\"let option of viewModel.displayedOptions; index as idx; trackBy: _trackBy\"\n fd-list-item\n [attr.aria-label]=\"option.label\"\n (click)=\"_onCheckboxClick(option, $event, idx, true)\"\n (keyup)=\"_onCheckboxKeyup(option, $event, idx, true)\"\n [selected]=\"!!option.isSelected\"\n >\n <fd-checkbox (click)=\"_onCheckboxClick(option, $event, idx)\" [value]=\"option.isSelected\">\n <!-- TODO -->\n </fd-checkbox>\n\n <ng-container\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ option: option }\"\n ></ng-container>\n </li>\n\n <li\n *ngIf=\"\n showAllButton &&\n (_onlySelected$ | async) !== true &&\n viewModel.displayedOptions.length < dropdownValues.length\n \"\n fd-list-item\n class=\"fd-multi-input-show-all\"\n (keyDown)=\"_showAllKeyDown($event)\"\n (click)=\"_showAllClicked($event)\"\n >\n <a fd-link role=\"button\" tabindex=\"0\">Show All ({{ dropdownValues.length }})</a>\n </li>\n </ul>\n </ng-template>\n\n <ng-template let-option=\"option\" #itemSource>\n <span\n *ngIf=\"!itemTemplate\"\n fd-list-title\n [innerHtml]=\"option.label | highlight : _searchTermCtrl.value || '' : highlight\"\n ></span>\n\n <ng-container *ngIf=\"itemTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option.item }\"\n ></ng-container>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [".fd-multi-input-tokenizer-custom{width:calc(100% - 2.25rem)}[class*=--compact] .fd-multi-input-tokenizer-custom:not([class*=--cozy]):not([class*=--condensed]),.is-compact .fd-multi-input-tokenizer-custom:not(.is-cozy):not(.is-condensed),.fd-multi-input-tokenizer-custom[class*=--compact],.fd-multi-input-tokenizer-custom.is-compact{width:calc(100% - 2rem)}.fd-multi-input__invisible-text{display:none!important}.fd-multi-input-input-group-custom{max-width:100%}.fd-multi-input-custom{display:block}.fd-multi-input-item{cursor:pointer;padding:0}.fd-multi-input-popover-size{overflow:auto;display:block}.fd-multi-input-popover-custom.fd-popover-custom{max-width:100%;display:block}.fd-multi-input-show-all{width:100%;display:flex;justify-content:flex-end;background-color:transparent}.fd-multi-input-show-all .fd-link:active{color:inherit}.fd-multi-input-checkbox{width:100%;cursor:pointer}.fd-multi-input-checkbox .fd-checkbox__label{color:inherit}.fd-multi-input-menu-overflow{max-width:37.5rem}.fd-input.fd-multi-input-tokenizer-input{min-width:4rem;margin-top:0;margin-bottom:0;padding-left:0;background-color:transparent}.fd-list--multi-input{max-width:100%}.fd-popover__body--hidden{display:none}\n"] }]
838
849
  }], ctorParameters: function () { return [{ type: i1$1.ContentDensityObserver }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.DynamicComponentService }, { type: i0.Injector }, { type: i0.ViewContainerRef }, { type: i2.RtlService, decorators: [{
839
850
  type: Optional
840
851
  }] }, { type: i2.FocusTrapService, decorators: [{