@onemrvapublic/design-system 18.3.0-develop.1 → 18.3.0-develop.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/_index.scss +0 -1
  2. package/_utils.scss +3 -3
  3. package/fesm2022/onemrvapublic-design-system-core.mjs +7 -7
  4. package/fesm2022/onemrvapublic-design-system-core.mjs.map +1 -1
  5. package/fesm2022/onemrvapublic-design-system-flag-icon.mjs +3 -3
  6. package/fesm2022/onemrvapublic-design-system-flag-icon.mjs.map +1 -1
  7. package/fesm2022/onemrvapublic-design-system-layout.mjs +188 -97
  8. package/fesm2022/onemrvapublic-design-system-layout.mjs.map +1 -1
  9. package/fesm2022/onemrvapublic-design-system-mat-avatar.mjs +11 -11
  10. package/fesm2022/onemrvapublic-design-system-mat-avatar.mjs.map +1 -1
  11. package/fesm2022/onemrvapublic-design-system-mat-breadcrumb.mjs +27 -18
  12. package/fesm2022/onemrvapublic-design-system-mat-breadcrumb.mjs.map +1 -1
  13. package/fesm2022/onemrvapublic-design-system-mat-carousel.mjs +6 -6
  14. package/fesm2022/onemrvapublic-design-system-mat-carousel.mjs.map +1 -1
  15. package/fesm2022/onemrvapublic-design-system-mat-copy-to-clipboard.mjs +3 -3
  16. package/fesm2022/onemrvapublic-design-system-mat-copy-to-clipboard.mjs.map +1 -1
  17. package/fesm2022/onemrvapublic-design-system-mat-datepicker-header.mjs +3 -3
  18. package/fesm2022/onemrvapublic-design-system-mat-datepicker-header.mjs.map +1 -1
  19. package/fesm2022/onemrvapublic-design-system-mat-empty-row.mjs +3 -3
  20. package/fesm2022/onemrvapublic-design-system-mat-empty-row.mjs.map +1 -1
  21. package/fesm2022/onemrvapublic-design-system-mat-file-upload.mjs +107 -86
  22. package/fesm2022/onemrvapublic-design-system-mat-file-upload.mjs.map +1 -1
  23. package/fesm2022/onemrvapublic-design-system-mat-input-birthplace.mjs +6 -6
  24. package/fesm2022/onemrvapublic-design-system-mat-input-birthplace.mjs.map +1 -1
  25. package/fesm2022/onemrvapublic-design-system-mat-input-country.mjs +3 -3
  26. package/fesm2022/onemrvapublic-design-system-mat-input-country.mjs.map +1 -1
  27. package/fesm2022/onemrvapublic-design-system-mat-input-enterprise-number.mjs +3 -3
  28. package/fesm2022/onemrvapublic-design-system-mat-input-enterprise-number.mjs.map +1 -1
  29. package/fesm2022/onemrvapublic-design-system-mat-input-iban.mjs +4 -4
  30. package/fesm2022/onemrvapublic-design-system-mat-input-iban.mjs.map +1 -1
  31. package/fesm2022/onemrvapublic-design-system-mat-input-phone.mjs +6 -6
  32. package/fesm2022/onemrvapublic-design-system-mat-input-phone.mjs.map +1 -1
  33. package/fesm2022/onemrvapublic-design-system-mat-message-box.mjs +10 -13
  34. package/fesm2022/onemrvapublic-design-system-mat-message-box.mjs.map +1 -1
  35. package/fesm2022/onemrvapublic-design-system-mat-multi-select.mjs +31 -51
  36. package/fesm2022/onemrvapublic-design-system-mat-multi-select.mjs.map +1 -1
  37. package/fesm2022/onemrvapublic-design-system-mat-notification.mjs +3 -3
  38. package/fesm2022/onemrvapublic-design-system-mat-notification.mjs.map +1 -1
  39. package/fesm2022/onemrvapublic-design-system-mat-paginator.mjs +24 -35
  40. package/fesm2022/onemrvapublic-design-system-mat-paginator.mjs.map +1 -1
  41. package/fesm2022/onemrvapublic-design-system-mat-panel.mjs +28 -29
  42. package/fesm2022/onemrvapublic-design-system-mat-panel.mjs.map +1 -1
  43. package/fesm2022/onemrvapublic-design-system-mat-pop-over.mjs +20 -20
  44. package/fesm2022/onemrvapublic-design-system-mat-pop-over.mjs.map +1 -1
  45. package/fesm2022/onemrvapublic-design-system-mat-progress-bar.mjs +3 -3
  46. package/fesm2022/onemrvapublic-design-system-mat-progress-bar.mjs.map +1 -1
  47. package/fesm2022/onemrvapublic-design-system-mat-select-search.mjs +48 -149
  48. package/fesm2022/onemrvapublic-design-system-mat-select-search.mjs.map +1 -1
  49. package/fesm2022/onemrvapublic-design-system-mat-selectable-box.mjs +21 -53
  50. package/fesm2022/onemrvapublic-design-system-mat-selectable-box.mjs.map +1 -1
  51. package/fesm2022/onemrvapublic-design-system-mat-side-menu.mjs +14 -17
  52. package/fesm2022/onemrvapublic-design-system-mat-side-menu.mjs.map +1 -1
  53. package/fesm2022/onemrvapublic-design-system-mat-skeleton.mjs +11 -12
  54. package/fesm2022/onemrvapublic-design-system-mat-skeleton.mjs.map +1 -1
  55. package/fesm2022/onemrvapublic-design-system-mat-spinner.mjs +12 -13
  56. package/fesm2022/onemrvapublic-design-system-mat-spinner.mjs.map +1 -1
  57. package/fesm2022/onemrvapublic-design-system-mat-stepper.mjs +16 -41
  58. package/fesm2022/onemrvapublic-design-system-mat-stepper.mjs.map +1 -1
  59. package/fesm2022/onemrvapublic-design-system-mat-sticker.mjs +11 -11
  60. package/fesm2022/onemrvapublic-design-system-mat-sticker.mjs.map +1 -1
  61. package/fesm2022/onemrvapublic-design-system-mat-table-of-content.mjs +9 -9
  62. package/fesm2022/onemrvapublic-design-system-mat-table-of-content.mjs.map +1 -1
  63. package/fesm2022/onemrvapublic-design-system-mat-task-list.mjs +26 -41
  64. package/fesm2022/onemrvapublic-design-system-mat-task-list.mjs.map +1 -1
  65. package/fesm2022/onemrvapublic-design-system-mat-timepicker.mjs +51 -64
  66. package/fesm2022/onemrvapublic-design-system-mat-timepicker.mjs.map +1 -1
  67. package/fesm2022/onemrvapublic-design-system-mat-toast.mjs +12 -12
  68. package/fesm2022/onemrvapublic-design-system-mat-toast.mjs.map +1 -1
  69. package/fesm2022/onemrvapublic-design-system-mat-tooltip.mjs +18 -18
  70. package/fesm2022/onemrvapublic-design-system-mat-tooltip.mjs.map +1 -1
  71. package/fesm2022/onemrvapublic-design-system-page-error.mjs +6 -6
  72. package/fesm2022/onemrvapublic-design-system-page-error.mjs.map +1 -1
  73. package/fesm2022/onemrvapublic-design-system-page-not-found.mjs +32 -26
  74. package/fesm2022/onemrvapublic-design-system-page-not-found.mjs.map +1 -1
  75. package/fesm2022/onemrvapublic-design-system-shared.mjs +70 -62
  76. package/fesm2022/onemrvapublic-design-system-shared.mjs.map +1 -1
  77. package/layout/index.d.ts +5 -5
  78. package/layout/src/components/layout/_layout-mixin.component.scss +5 -5
  79. package/layout/src/components/layout/layout.component.d.ts +1 -1
  80. package/layout/src/components/layout/layout.component.scss +7 -0
  81. package/layout/src/components/layout-after-nav/layout-after-nav.component.d.ts +1 -1
  82. package/layout/src/components/layout-content/layout-content.component.d.ts +1 -1
  83. package/layout/src/components/layout-footer/layout-footer.component.d.ts +1 -1
  84. package/layout/src/components/layout-login-menu/layout-login-menu.component.d.ts +1 -1
  85. package/layout/src/components/layout-route/layout-route.component.d.ts +1 -1
  86. package/layout/src/components/layout-sidenav/layout-sidenav.component.d.ts +1 -1
  87. package/layout/src/components/layout-sidenav-title/layout-sidenav-title.component.d.ts +1 -1
  88. package/layout/src/components/layout-subroute/layout-subroute.component.d.ts +1 -1
  89. package/layout/src/components/layout-title/layout-title.component.d.ts +1 -1
  90. package/layout/src/decorators/coerce-boolean-input.decorator.d.ts +1 -0
  91. package/layout/src/decorators/index.d.ts +2 -0
  92. package/layout/src/decorators/observable-content.decorator.d.ts +1 -0
  93. package/layout/src/directives/drawer-host.directive.d.ts +1 -1
  94. package/layout/src/directives/index.d.ts +2 -0
  95. package/layout/src/{striphtml.pipe.d.ts → directives/striphtml.pipe.d.ts} +1 -1
  96. package/layout/src/enums/index.d.ts +1 -0
  97. package/layout/src/layout.module.d.ts +3 -3
  98. package/layout/src/models/index.d.ts +2 -0
  99. package/layout/src/services/index.d.ts +1 -0
  100. package/mat-avatar/src/onemrva-mat-avatar.component.d.ts +1 -1
  101. package/mat-avatar/src/onemrva-mat-avatar.module.d.ts +1 -3
  102. package/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.d.ts +1 -1
  103. package/mat-breadcrumb/src/onemrva-mat-breadcrumb.module.d.ts +5 -5
  104. package/mat-datepicker-header/src/_onemrva-mat-datepicker-header.component.scss +1 -1
  105. package/mat-file-upload/index.d.ts +1 -0
  106. package/mat-file-upload/src/components/onemrva-mat-file-panel/onemrva-file-panel.component.d.ts +1 -1
  107. package/mat-file-upload/src/components/onemrva-mat-file-panel/onemrva-file-panel.component.scss +3 -3
  108. package/mat-file-upload/src/components/onemrva-mat-file-upload/onemrva-mat-file-upload.component.d.ts +1 -1
  109. package/mat-file-upload/src/components/onemrva-mat-file-upload/onemrva-mat-file-upload.component.scss +2 -1
  110. package/mat-file-upload/src/directives/dnd.directive.d.ts +1 -1
  111. package/mat-file-upload/src/onemrva-mat-file-upload.module.d.ts +1 -1
  112. package/mat-message-box/src/onemrva-mat-message-box.component.d.ts +1 -1
  113. package/mat-message-box/src/onemrva-mat-message-box.module.d.ts +1 -4
  114. package/mat-multi-select/src/onemrva-mat-multi-select.component.d.ts +1 -1
  115. package/mat-multi-select/src/onemrva-mat-multi-select.module.d.ts +1 -9
  116. package/mat-paginator/src/onemrva-mat-paginator.component.d.ts +1 -1
  117. package/mat-paginator/src/onemrva-mat-paginator.module.d.ts +1 -6
  118. package/mat-panel/src/onemrva-mat-panel-content.component.d.ts +1 -1
  119. package/mat-panel/src/onemrva-mat-panel-icon.component.d.ts +1 -1
  120. package/mat-panel/src/onemrva-mat-panel-title-action.component.d.ts +1 -1
  121. package/mat-panel/src/onemrva-mat-panel-title.component.d.ts +1 -1
  122. package/mat-panel/src/onemrva-mat-panel.component.d.ts +1 -1
  123. package/mat-panel/src/onemrva-mat-panel.module.d.ts +1 -2
  124. package/mat-pop-over/src/onemrva-mat-pop-over-content.component.d.ts +1 -1
  125. package/mat-pop-over/src/onemrva-mat-pop-over-trigger.component.d.ts +1 -1
  126. package/mat-pop-over/src/onemrva-mat-pop-over.component.d.ts +1 -1
  127. package/mat-pop-over/src/onemrva-mat-pop-over.module.d.ts +1 -3
  128. package/mat-select-search/src/mat-select-no-entries-found.directive.d.ts +1 -1
  129. package/mat-select-search/src/mat-select-search-clear.directive.d.ts +1 -1
  130. package/mat-select-search/src/mat-select-search.component.d.ts +1 -79
  131. package/mat-select-search/src/mat-select-search.module.d.ts +1 -12
  132. package/mat-selectable-box/src/onemrva-mat-selectable-box.component.d.ts +1 -1
  133. package/mat-selectable-box/src/onemrva-mat-selectable-box.module.d.ts +1 -11
  134. package/mat-side-menu/src/onemrva-mat-side-menu.component.d.ts +1 -1
  135. package/mat-side-menu/src/onemrva-mat-side-menu.module.d.ts +1 -5
  136. package/mat-skeleton/src/onemrva-mat-skeleton.component.d.ts +1 -1
  137. package/mat-skeleton/src/onemrva-mat-skeleton.module.d.ts +1 -2
  138. package/mat-spinner/src/onemrva-mat-spinner.component.d.ts +1 -1
  139. package/mat-spinner/src/onemrva-mat-spinner.module.d.ts +1 -1
  140. package/mat-stepper/src/onemrva-mat-stepper.component.d.ts +1 -1
  141. package/mat-stepper/src/onemrva-mat-stepper.module.d.ts +2 -7
  142. package/mat-stepper/src/onemrva-mat-stepper.scss +1 -1
  143. package/mat-sticker/src/onemrva-mat-sticker.component.d.ts +1 -1
  144. package/mat-sticker/src/onemrva-mat-sticker.module.d.ts +1 -2
  145. package/mat-task-list/src/onemrva-mat-task-content.component.d.ts +1 -1
  146. package/mat-task-list/src/onemrva-mat-task-list.component.d.ts +1 -1
  147. package/mat-task-list/src/onemrva-mat-task-list.module.d.ts +1 -5
  148. package/mat-task-list/src/onemrva-mat-task-title.component.d.ts +1 -1
  149. package/mat-task-list/src/onemrva-mat-task.component.d.ts +1 -1
  150. package/mat-timepicker/src/clock/clock.component.d.ts +1 -1
  151. package/mat-timepicker/src/onemrva-mat-timepicker.component.d.ts +1 -1
  152. package/mat-timepicker/src/onemrva-mat-timepicker.module.d.ts +1 -7
  153. package/mat-timepicker/src/timepicker-dialog/timepicker-dialog.component.d.ts +1 -1
  154. package/mat-timepicker/src/timepicker-toggle/timepicker-toggle.component.d.ts +2 -2
  155. package/mat-timepicker/src/timepicker.directive.d.ts +1 -1
  156. package/mat-toast/src/onemrva-mat-toast.component.d.ts +1 -1
  157. package/mat-toast/src/onemrva-mat-toast.module.d.ts +2 -3
  158. package/mat-tooltip/src/onemrva-mat-tooltip.component.d.ts +1 -1
  159. package/mat-tooltip/src/onemrva-mat-tooltip.directive.d.ts +1 -1
  160. package/mat-tooltip/src/onemrva-mat-tooltip.module.d.ts +1 -2
  161. package/package.json +1 -85
  162. package/page-not-found/src/page-not-found-action.component.d.ts +1 -1
  163. package/page-not-found/src/page-not-found-extra.component.d.ts +1 -1
  164. package/page-not-found/src/page-not-found-invader.component.d.ts +1 -1
  165. package/page-not-found/src/page-not-found-mixin.component.scss +1 -1
  166. package/page-not-found/src/page-not-found.component.d.ts +1 -1
  167. package/page-not-found/src/page-not-found.module.d.ts +1 -3
  168. package/shared/src/lib/directives/clipboard.directive.d.ts +1 -1
  169. package/shared/src/lib/directives/color.directive.d.ts +1 -1
  170. package/shared/src/lib/directives/digit-only.directive.d.ts +1 -1
  171. package/shared/src/lib/directives/iconRight.directive.d.ts +1 -1
  172. package/shared/src/lib/directives/if-width-is.directive.d.ts +1 -1
  173. package/shared/src/lib/directives/mask.directive.d.ts +1 -1
  174. package/shared/src/lib/directives/mat-row-clickable.directive.d.ts +1 -1
  175. package/shared/src/lib/shared.module.d.ts +1 -2
  176. package/esm2022/core/index.mjs +0 -4
  177. package/esm2022/core/onemrvapublic-design-system-core.mjs +0 -5
  178. package/esm2022/core/src/lib/core.module.mjs +0 -39
  179. package/esm2022/core/src/lib/services/index.mjs +0 -3
  180. package/esm2022/core/src/lib/services/onemrva-error-handler.service.mjs +0 -26
  181. package/esm2022/core/src/lib/services/onemrva-missing-translation.service.mjs +0 -6
  182. package/esm2022/flag-icon/index.mjs +0 -2
  183. package/esm2022/flag-icon/onemrvapublic-design-system-flag-icon.mjs +0 -5
  184. package/esm2022/flag-icon/src/flag-icon.component.mjs +0 -41
  185. package/esm2022/layout/index.mjs +0 -8
  186. package/esm2022/layout/onemrvapublic-design-system-layout.mjs +0 -5
  187. package/esm2022/layout/src/components/index.mjs +0 -36
  188. package/esm2022/layout/src/components/layout/layout.component.mjs +0 -177
  189. package/esm2022/layout/src/components/layout-after-nav/layout-after-nav.component.mjs +0 -25
  190. package/esm2022/layout/src/components/layout-content/layout-content.component.mjs +0 -25
  191. package/esm2022/layout/src/components/layout-drawer-actions/layout-drawer-actions.component.mjs +0 -16
  192. package/esm2022/layout/src/components/layout-drawer-content/layout-drawer-content.component.mjs +0 -16
  193. package/esm2022/layout/src/components/layout-drawer-title/layout-drawer-title.component.mjs +0 -20
  194. package/esm2022/layout/src/components/layout-footer/layout-footer.component.mjs +0 -17
  195. package/esm2022/layout/src/components/layout-login-menu/layout-login-menu.component.mjs +0 -25
  196. package/esm2022/layout/src/components/layout-route/layout-route.component.mjs +0 -65
  197. package/esm2022/layout/src/components/layout-sidenav/layout-sidenav.component.mjs +0 -83
  198. package/esm2022/layout/src/components/layout-sidenav-title/layout-sidenav-title.component.mjs +0 -17
  199. package/esm2022/layout/src/components/layout-subroute/layout-subroute.component.mjs +0 -55
  200. package/esm2022/layout/src/components/layout-title/layout-title.component.mjs +0 -25
  201. package/esm2022/layout/src/directives/drawer-host.directive.mjs +0 -41
  202. package/esm2022/layout/src/enums/environment.enum.mjs +0 -8
  203. package/esm2022/layout/src/layout.module.mjs +0 -95
  204. package/esm2022/layout/src/models/onem-language.model.mjs +0 -2
  205. package/esm2022/layout/src/models/onemrva-profile.model.mjs +0 -46
  206. package/esm2022/layout/src/services/drawer.service.mjs +0 -31
  207. package/esm2022/layout/src/striphtml.pipe.mjs +0 -16
  208. package/esm2022/mat-avatar/index.mjs +0 -3
  209. package/esm2022/mat-avatar/onemrvapublic-design-system-mat-avatar.mjs +0 -5
  210. package/esm2022/mat-avatar/src/onemrva-mat-avatar.component.mjs +0 -440
  211. package/esm2022/mat-avatar/src/onemrva-mat-avatar.module.mjs +0 -19
  212. package/esm2022/mat-badge/index.mjs +0 -6
  213. package/esm2022/mat-badge/onemrvapublic-design-system-mat-badge.mjs +0 -5
  214. package/esm2022/mat-badge/src/onemrva-mat-badge.component.mjs +0 -250
  215. package/esm2022/mat-badge/src/onemrva-mat-badge.module.mjs +0 -16
  216. package/esm2022/mat-breadcrumb/index.mjs +0 -7
  217. package/esm2022/mat-breadcrumb/onemrvapublic-design-system-mat-breadcrumb.mjs +0 -5
  218. package/esm2022/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.mjs +0 -19
  219. package/esm2022/mat-breadcrumb/src/onemrva-mat-breadcrumb.model.mjs +0 -2
  220. package/esm2022/mat-breadcrumb/src/onemrva-mat-breadcrumb.module.mjs +0 -20
  221. package/esm2022/mat-breadcrumb/src/onemrva-mat-breadcrumb.service.mjs +0 -59
  222. package/esm2022/mat-carousel/index.mjs +0 -3
  223. package/esm2022/mat-carousel/onemrvapublic-design-system-mat-carousel.mjs +0 -5
  224. package/esm2022/mat-carousel/src/mat-carousel-item/onemrva-mat-carousel-item.component.mjs +0 -23
  225. package/esm2022/mat-carousel/src/onemrva-mat-carousel.component.mjs +0 -175
  226. package/esm2022/mat-copy-to-clipboard/index.mjs +0 -2
  227. package/esm2022/mat-copy-to-clipboard/onemrvapublic-design-system-mat-copy-to-clipboard.mjs +0 -5
  228. package/esm2022/mat-copy-to-clipboard/src/components/copy-to-clipboard.component.mjs +0 -85
  229. package/esm2022/mat-datepicker-header/index.mjs +0 -5
  230. package/esm2022/mat-datepicker-header/onemrvapublic-design-system-mat-datepicker-header.mjs +0 -5
  231. package/esm2022/mat-datepicker-header/src/onemrva-mat-datepicker-header.component.mjs +0 -203
  232. package/esm2022/mat-empty-row/index.mjs +0 -2
  233. package/esm2022/mat-empty-row/onemrvapublic-design-system-mat-empty-row.mjs +0 -5
  234. package/esm2022/mat-empty-row/src/onemrva-mat-empty-row.component.mjs +0 -35
  235. package/esm2022/mat-file-upload/index.mjs +0 -11
  236. package/esm2022/mat-file-upload/onemrvapublic-design-system-mat-file-upload.mjs +0 -5
  237. package/esm2022/mat-file-upload/src/components/index.mjs +0 -9
  238. package/esm2022/mat-file-upload/src/components/onemrva-mat-file-panel/onemrva-file-panel.component.mjs +0 -88
  239. package/esm2022/mat-file-upload/src/components/onemrva-mat-file-upload/onemrva-mat-file-upload.component.mjs +0 -195
  240. package/esm2022/mat-file-upload/src/directives/dnd.directive.mjs +0 -53
  241. package/esm2022/mat-file-upload/src/models/action-config.model.mjs +0 -2
  242. package/esm2022/mat-file-upload/src/models/progress-file.model.mjs +0 -49
  243. package/esm2022/mat-file-upload/src/onemrva-mat-file-upload-itf.store.mjs +0 -2
  244. package/esm2022/mat-file-upload/src/onemrva-mat-file-upload.module.mjs +0 -51
  245. package/esm2022/mat-file-upload/src/onemrva-mat-file-upload.service.mjs +0 -49
  246. package/esm2022/mat-file-upload/src/onemrva-mat-file-upload.store.mjs +0 -320
  247. package/esm2022/mat-input-birthplace/index.mjs +0 -5
  248. package/esm2022/mat-input-birthplace/onemrvapublic-design-system-mat-input-birthplace.mjs +0 -5
  249. package/esm2022/mat-input-birthplace/src/country-item.component.mjs +0 -31
  250. package/esm2022/mat-input-birthplace/src/onemrva-mat-input-birthplace.component.mjs +0 -120
  251. package/esm2022/mat-input-country/index.mjs +0 -5
  252. package/esm2022/mat-input-country/onemrvapublic-design-system-mat-input-country.mjs +0 -5
  253. package/esm2022/mat-input-country/src/onemrva-mat-input-country.component.mjs +0 -90
  254. package/esm2022/mat-input-enterprise-number/index.mjs +0 -5
  255. package/esm2022/mat-input-enterprise-number/onemrvapublic-design-system-mat-input-enterprise-number.mjs +0 -5
  256. package/esm2022/mat-input-enterprise-number/src/onemrva-mat-input-enterprise-number.component.mjs +0 -180
  257. package/esm2022/mat-input-iban/index.mjs +0 -5
  258. package/esm2022/mat-input-iban/onemrvapublic-design-system-mat-input-iban.mjs +0 -5
  259. package/esm2022/mat-input-iban/src/onemrva-mat-input-iban.component.mjs +0 -295
  260. package/esm2022/mat-input-phone/index.mjs +0 -6
  261. package/esm2022/mat-input-phone/onemrvapublic-design-system-mat-input-phone.mjs +0 -5
  262. package/esm2022/mat-input-phone/src/onemrva-mat-input-phone.component.mjs +0 -234
  263. package/esm2022/mat-input-phone/src/phone-number.directive.mjs +0 -51
  264. package/esm2022/mat-message-box/index.mjs +0 -3
  265. package/esm2022/mat-message-box/onemrvapublic-design-system-mat-message-box.mjs +0 -5
  266. package/esm2022/mat-message-box/src/onemrva-mat-message-box.component.mjs +0 -175
  267. package/esm2022/mat-message-box/src/onemrva-mat-message-box.module.mjs +0 -20
  268. package/esm2022/mat-multi-select/index.mjs +0 -3
  269. package/esm2022/mat-multi-select/onemrvapublic-design-system-mat-multi-select.mjs +0 -5
  270. package/esm2022/mat-multi-select/src/onemrva-mat-multi-select.component.mjs +0 -200
  271. package/esm2022/mat-multi-select/src/onemrva-mat-multi-select.module.mjs +0 -51
  272. package/esm2022/mat-notification/index.mjs +0 -2
  273. package/esm2022/mat-notification/onemrvapublic-design-system-mat-notification.mjs +0 -5
  274. package/esm2022/mat-notification/src/onemrva-mat-notification.component.mjs +0 -165
  275. package/esm2022/mat-paginator/index.mjs +0 -6
  276. package/esm2022/mat-paginator/onemrvapublic-design-system-mat-paginator.mjs +0 -5
  277. package/esm2022/mat-paginator/src/onemrva-mat-paginator.component.mjs +0 -217
  278. package/esm2022/mat-paginator/src/onemrva-mat-paginator.module.mjs +0 -36
  279. package/esm2022/mat-panel/index.mjs +0 -7
  280. package/esm2022/mat-panel/onemrvapublic-design-system-mat-panel.mjs +0 -5
  281. package/esm2022/mat-panel/src/onemrva-mat-panel-content.component.mjs +0 -17
  282. package/esm2022/mat-panel/src/onemrva-mat-panel-icon.component.mjs +0 -17
  283. package/esm2022/mat-panel/src/onemrva-mat-panel-title-action.component.mjs +0 -17
  284. package/esm2022/mat-panel/src/onemrva-mat-panel-title.component.mjs +0 -27
  285. package/esm2022/mat-panel/src/onemrva-mat-panel.component.mjs +0 -132
  286. package/esm2022/mat-panel/src/onemrva-mat-panel.module.mjs +0 -42
  287. package/esm2022/mat-pop-over/index.mjs +0 -5
  288. package/esm2022/mat-pop-over/onemrvapublic-design-system-mat-pop-over.mjs +0 -5
  289. package/esm2022/mat-pop-over/src/onemrva-mat-pop-over-content.component.mjs +0 -23
  290. package/esm2022/mat-pop-over/src/onemrva-mat-pop-over-trigger.component.mjs +0 -23
  291. package/esm2022/mat-pop-over/src/onemrva-mat-pop-over.component.mjs +0 -46
  292. package/esm2022/mat-pop-over/src/onemrva-mat-pop-over.module.mjs +0 -30
  293. package/esm2022/mat-progress-bar/index.mjs +0 -2
  294. package/esm2022/mat-progress-bar/onemrvapublic-design-system-mat-progress-bar.mjs +0 -5
  295. package/esm2022/mat-progress-bar/src/onemrva-mat-progress-bar.component.mjs +0 -29
  296. package/esm2022/mat-select-search/index.mjs +0 -4
  297. package/esm2022/mat-select-search/onemrvapublic-design-system-mat-select-search.mjs +0 -5
  298. package/esm2022/mat-select-search/src/default-options.mjs +0 -35
  299. package/esm2022/mat-select-search/src/mat-select-no-entries-found.directive.mjs +0 -22
  300. package/esm2022/mat-select-search/src/mat-select-search-clear.directive.mjs +0 -20
  301. package/esm2022/mat-select-search/src/mat-select-search.component.mjs +0 -589
  302. package/esm2022/mat-select-search/src/mat-select-search.module.mjs +0 -79
  303. package/esm2022/mat-selectable-box/index.mjs +0 -6
  304. package/esm2022/mat-selectable-box/onemrvapublic-design-system-mat-selectable-box.mjs +0 -5
  305. package/esm2022/mat-selectable-box/src/onemrva-mat-selectable-box.component.mjs +0 -56
  306. package/esm2022/mat-selectable-box/src/onemrva-mat-selectable-box.module.mjs +0 -56
  307. package/esm2022/mat-side-menu/index.mjs +0 -6
  308. package/esm2022/mat-side-menu/onemrvapublic-design-system-mat-side-menu.mjs +0 -5
  309. package/esm2022/mat-side-menu/src/onemrva-mat-side-menu.component.mjs +0 -48
  310. package/esm2022/mat-side-menu/src/onemrva-mat-side-menu.module.mjs +0 -21
  311. package/esm2022/mat-skeleton/index.mjs +0 -4
  312. package/esm2022/mat-skeleton/onemrvapublic-design-system-mat-skeleton.mjs +0 -5
  313. package/esm2022/mat-skeleton/src/onemrva-mat-skeleton-enums.mjs +0 -20
  314. package/esm2022/mat-skeleton/src/onemrva-mat-skeleton.component.mjs +0 -202
  315. package/esm2022/mat-skeleton/src/onemrva-mat-skeleton.module.mjs +0 -18
  316. package/esm2022/mat-spinner/index.mjs +0 -7
  317. package/esm2022/mat-spinner/onemrvapublic-design-system-mat-spinner.mjs +0 -5
  318. package/esm2022/mat-spinner/src/onemrva-mat-loading.directive.mjs +0 -33
  319. package/esm2022/mat-spinner/src/onemrva-mat-spinner.component.mjs +0 -73
  320. package/esm2022/mat-spinner/src/onemrva-mat-spinner.module.mjs +0 -18
  321. package/esm2022/mat-stepper/index.mjs +0 -6
  322. package/esm2022/mat-stepper/onemrvapublic-design-system-mat-stepper.mjs +0 -5
  323. package/esm2022/mat-stepper/src/onemrva-mat-stepper.component.mjs +0 -74
  324. package/esm2022/mat-stepper/src/onemrva-mat-stepper.module.mjs +0 -44
  325. package/esm2022/mat-stepper/src/onemrva-stepper-animations.mjs +0 -28
  326. package/esm2022/mat-sticker/index.mjs +0 -6
  327. package/esm2022/mat-sticker/onemrvapublic-design-system-mat-sticker.mjs +0 -5
  328. package/esm2022/mat-sticker/src/onemrva-mat-sticker.component.mjs +0 -69
  329. package/esm2022/mat-sticker/src/onemrva-mat-sticker.module.mjs +0 -18
  330. package/esm2022/mat-table-of-content/index.mjs +0 -8
  331. package/esm2022/mat-table-of-content/onemrvapublic-design-system-mat-table-of-content.mjs +0 -5
  332. package/esm2022/mat-table-of-content/src/onemrva-mat-table-of-content.component.mjs +0 -104
  333. package/esm2022/mat-table-of-content/src/onemrva-mat-table-of-content.directive.mjs +0 -60
  334. package/esm2022/mat-table-of-content/src/onemrva-mat-table-of-content.service.mjs +0 -46
  335. package/esm2022/mat-table-of-content/src/onemrva-mat-toc-anchor.model.mjs +0 -11
  336. package/esm2022/mat-task-list/index.mjs +0 -6
  337. package/esm2022/mat-task-list/onemrvapublic-design-system-mat-task-list.mjs +0 -5
  338. package/esm2022/mat-task-list/src/onemrva-mat-task-content.component.mjs +0 -17
  339. package/esm2022/mat-task-list/src/onemrva-mat-task-list.component.mjs +0 -36
  340. package/esm2022/mat-task-list/src/onemrva-mat-task-list.module.mjs +0 -51
  341. package/esm2022/mat-task-list/src/onemrva-mat-task-title.component.mjs +0 -23
  342. package/esm2022/mat-task-list/src/onemrva-mat-task.component.mjs +0 -140
  343. package/esm2022/mat-timepicker/index.mjs +0 -7
  344. package/esm2022/mat-timepicker/onemrvapublic-design-system-mat-timepicker.mjs +0 -5
  345. package/esm2022/mat-timepicker/src/clock/clock.component.mjs +0 -232
  346. package/esm2022/mat-timepicker/src/interfaces-and-types.mjs +0 -2
  347. package/esm2022/mat-timepicker/src/onemrva-mat-timepicker.component.mjs +0 -279
  348. package/esm2022/mat-timepicker/src/onemrva-mat-timepicker.module.mjs +0 -62
  349. package/esm2022/mat-timepicker/src/timepicker-dialog/timepicker-dialog.component.mjs +0 -129
  350. package/esm2022/mat-timepicker/src/timepicker-toggle/timepicker-toggle.component.mjs +0 -115
  351. package/esm2022/mat-timepicker/src/timepicker.directive.mjs +0 -512
  352. package/esm2022/mat-timepicker/src/util.mjs +0 -83
  353. package/esm2022/mat-toast/index.mjs +0 -6
  354. package/esm2022/mat-toast/onemrvapublic-design-system-mat-toast.mjs +0 -5
  355. package/esm2022/mat-toast/src/onemrva-mat-toast.component.mjs +0 -52
  356. package/esm2022/mat-toast/src/onemrva-mat-toast.module.mjs +0 -19
  357. package/esm2022/mat-tooltip/index.mjs +0 -5
  358. package/esm2022/mat-tooltip/onemrvapublic-design-system-mat-tooltip.mjs +0 -5
  359. package/esm2022/mat-tooltip/src/onemrva-mat-tooltip.component.mjs +0 -36
  360. package/esm2022/mat-tooltip/src/onemrva-mat-tooltip.directive.mjs +0 -111
  361. package/esm2022/mat-tooltip/src/onemrva-mat-tooltip.module.mjs +0 -19
  362. package/esm2022/onemrvapublic-design-system.mjs +0 -5
  363. package/esm2022/page-error/index.mjs +0 -3
  364. package/esm2022/page-error/onemrvapublic-design-system-page-error.mjs +0 -5
  365. package/esm2022/page-error/src/page-error-action.component.mjs +0 -18
  366. package/esm2022/page-error/src/page-error.component.mjs +0 -61
  367. package/esm2022/page-not-found/index.mjs +0 -6
  368. package/esm2022/page-not-found/onemrvapublic-design-system-page-not-found.mjs +0 -5
  369. package/esm2022/page-not-found/src/page-not-found-action.component.mjs +0 -17
  370. package/esm2022/page-not-found/src/page-not-found-extra.component.mjs +0 -17
  371. package/esm2022/page-not-found/src/page-not-found-invader.component.mjs +0 -94
  372. package/esm2022/page-not-found/src/page-not-found.component.mjs +0 -54
  373. package/esm2022/page-not-found/src/page-not-found.module.mjs +0 -38
  374. package/esm2022/public-api.mjs +0 -5
  375. package/esm2022/shared/index.mjs +0 -19
  376. package/esm2022/shared/onemrvapublic-design-system-shared.mjs +0 -5
  377. package/esm2022/shared/src/lib/adapters/index.mjs +0 -3
  378. package/esm2022/shared/src/lib/adapters/luxon.date.adapter.mjs +0 -251
  379. package/esm2022/shared/src/lib/adapters/luxon.utils.mjs +0 -23
  380. package/esm2022/shared/src/lib/adapters/native.date.adapter.mjs +0 -66
  381. package/esm2022/shared/src/lib/components/clipboard-icon/clipboard-icon.component.mjs +0 -20
  382. package/esm2022/shared/src/lib/components/index.mjs +0 -2
  383. package/esm2022/shared/src/lib/constants/CDNUrlModeOptions.mjs +0 -6
  384. package/esm2022/shared/src/lib/constants/cdn.mjs +0 -3
  385. package/esm2022/shared/src/lib/constants/constants.mjs +0 -7
  386. package/esm2022/shared/src/lib/constants/date.format.mjs +0 -95
  387. package/esm2022/shared/src/lib/constants/index.mjs +0 -5
  388. package/esm2022/shared/src/lib/containers/WebComponentOverlayContainer.mjs +0 -84
  389. package/esm2022/shared/src/lib/containers/index.mjs +0 -2
  390. package/esm2022/shared/src/lib/decorators/HttpCacheDecorator.mjs +0 -123
  391. package/esm2022/shared/src/lib/decorators/index.mjs +0 -2
  392. package/esm2022/shared/src/lib/directives/clipboard.directive.mjs +0 -39
  393. package/esm2022/shared/src/lib/directives/color.directive.mjs +0 -64
  394. package/esm2022/shared/src/lib/directives/digit-only.directive.mjs +0 -52
  395. package/esm2022/shared/src/lib/directives/iconRight.directive.mjs +0 -22
  396. package/esm2022/shared/src/lib/directives/if-width-is.directive.mjs +0 -34
  397. package/esm2022/shared/src/lib/directives/index.mjs +0 -24
  398. package/esm2022/shared/src/lib/directives/mask.directive.mjs +0 -198
  399. package/esm2022/shared/src/lib/directives/mat-row-clickable.directive.mjs +0 -74
  400. package/esm2022/shared/src/lib/helpers/index.mjs +0 -2
  401. package/esm2022/shared/src/lib/helpers/translation-helper.mjs +0 -58
  402. package/esm2022/shared/src/lib/interfaces/OnemRvaCommonCountry.interface.mjs +0 -2
  403. package/esm2022/shared/src/lib/interfaces/index.mjs +0 -2
  404. package/esm2022/shared/src/lib/loaders/index.mjs +0 -3
  405. package/esm2022/shared/src/lib/loaders/onemrva-translate-cdn-loader.mjs +0 -15
  406. package/esm2022/shared/src/lib/loaders/onemrva-translate-http-loader.mjs +0 -30
  407. package/esm2022/shared/src/lib/pipes/index.mjs +0 -3
  408. package/esm2022/shared/src/lib/pipes/onemrva-bce.pipe.mjs +0 -20
  409. package/esm2022/shared/src/lib/pipes/onemrva-niss.pipe.mjs +0 -20
  410. package/esm2022/shared/src/lib/providers/index.mjs +0 -5
  411. package/esm2022/shared/src/lib/providers/onemrva.date.luxon.provider.mjs +0 -16
  412. package/esm2022/shared/src/lib/providers/onemrva.date.luxon.year.month.provider.mjs +0 -16
  413. package/esm2022/shared/src/lib/providers/onemrva.date.native.provider.mjs +0 -16
  414. package/esm2022/shared/src/lib/providers/onemrva.date.native.year.month.provider.mjs +0 -16
  415. package/esm2022/shared/src/lib/services/cache.service.mjs +0 -31
  416. package/esm2022/shared/src/lib/services/cdn.service.mjs +0 -105
  417. package/esm2022/shared/src/lib/services/country-cdn.service.mjs +0 -75
  418. package/esm2022/shared/src/lib/services/country-lookup.service.mjs +0 -43
  419. package/esm2022/shared/src/lib/services/index.mjs +0 -5
  420. package/esm2022/shared/src/lib/services/mime-cdn.service.mjs +0 -45
  421. package/esm2022/shared/src/lib/shared.module.mjs +0 -25
  422. package/esm2022/shared/src/lib/tokens/index.mjs +0 -2
  423. package/esm2022/shared/src/lib/tokens/lookup.token.mjs +0 -7
  424. package/esm2022/shared/src/lib/validators/bank-account.validator.utils.mjs +0 -56
  425. package/esm2022/shared/src/lib/validators/index.mjs +0 -3
  426. package/esm2022/shared/src/lib/validators/onemrva-validators.mjs +0 -75
  427. package/esm2022/utils/index.mjs +0 -3
  428. package/esm2022/utils/onemrvapublic-design-system-utils.mjs +0 -5
  429. package/esm2022/utils/src/enum.utils.mjs +0 -7
  430. package/esm2022/utils/src/enums/color.enum.mjs +0 -12
  431. package/esm2022/utils/src/enums/index.mjs +0 -3
  432. package/esm2022/utils/src/enums/size.enum.mjs +0 -9
  433. package/fesm2022/onemrvapublic-design-system-mat-badge.mjs +0 -274
  434. package/fesm2022/onemrvapublic-design-system-mat-badge.mjs.map +0 -1
  435. package/mat-badge/index.d.ts +0 -2
  436. package/mat-badge/src/onemrva-mat-badge.component.d.ts +0 -89
  437. package/mat-badge/src/onemrva-mat-badge.component.scss +0 -157
  438. package/mat-badge/src/onemrva-mat-badge.module.d.ts +0 -7
@@ -1,31 +1,25 @@
1
1
  import { A, Z, ZERO, NINE, SPACE, HOME, END, ENTER, ESCAPE, UP_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';
2
2
  import * as i0 from '@angular/core';
3
3
  import { Directive, InjectionToken, EventEmitter, QueryList, forwardRef, ElementRef, Component, ChangeDetectionStrategy, Inject, Optional, Input, Output, ViewChild, ContentChild, NgModule } from '@angular/core';
4
- import * as i3 from '@angular/forms';
4
+ import * as i2 from '@angular/forms';
5
5
  import { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
6
- import * as i11 from '@angular/material/core';
6
+ import * as i4 from '@angular/material/core';
7
7
  import { MatOption } from '@angular/material/core';
8
- import * as i12 from '@angular/material/form-field';
9
- import { MatFormField, MatFormFieldModule } from '@angular/material/form-field';
10
- import * as i10 from '@angular/material/select';
11
- import { MatSelect, MatSelectModule } from '@angular/material/select';
8
+ import * as i5 from '@angular/material/form-field';
9
+ import { MatFormField } from '@angular/material/form-field';
10
+ import * as i3 from '@angular/material/select';
11
+ import { MatSelect } from '@angular/material/select';
12
12
  import { BehaviorSubject, of, combineLatest, Subject } from 'rxjs';
13
13
  import { switchMap, map, startWith, delay, takeUntil, take, tap, filter } from 'rxjs/operators';
14
+ import { NgClass, NgIf, AsyncPipe } from '@angular/common';
15
+ import { MatCheckbox } from '@angular/material/checkbox';
16
+ import { MatTooltip } from '@angular/material/tooltip';
17
+ import { MatIcon } from '@angular/material/icon';
18
+ import { MatProgressSpinner } from '@angular/material/progress-spinner';
19
+ import { MatIconButton } from '@angular/material/button';
20
+ import { MatInput } from '@angular/material/input';
21
+ import { MatDivider } from '@angular/material/divider';
14
22
  import * as i1 from '@angular/cdk/scrolling';
15
- import * as i2 from '@angular/common';
16
- import { CommonModule } from '@angular/common';
17
- import * as i4 from '@angular/material/button';
18
- import { MatButtonModule } from '@angular/material/button';
19
- import * as i5 from '@angular/material/checkbox';
20
- import { MatCheckboxModule } from '@angular/material/checkbox';
21
- import * as i6 from '@angular/material/icon';
22
- import { MatIconModule } from '@angular/material/icon';
23
- import * as i7 from '@angular/material/progress-spinner';
24
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
25
- import * as i8 from '@angular/material/tooltip';
26
- import { MatTooltipModule } from '@angular/material/tooltip';
27
- import * as i9 from '@angular/material/divider';
28
- import { MatDividerModule } from '@angular/material/divider';
29
23
 
30
24
  /**
31
25
  * Directive for providing a custom clear-icon.
@@ -35,13 +29,14 @@ import { MatDividerModule } from '@angular/material/divider';
35
29
  * </ngx-mat-select-search>
36
30
  */
37
31
  class MatSelectSearchClearDirective {
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatSelectSearchClearDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
39
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: MatSelectSearchClearDirective, selector: "[matSelectSearchClear]", ngImport: i0 }); }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: MatSelectSearchClearDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
33
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.6", type: MatSelectSearchClearDirective, isStandalone: true, selector: "[matSelectSearchClear]", ngImport: i0 }); }
40
34
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatSelectSearchClearDirective, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: MatSelectSearchClearDirective, decorators: [{
42
36
  type: Directive,
43
37
  args: [{
44
38
  selector: '[matSelectSearchClear]',
39
+ standalone: true,
45
40
  }]
46
41
  }] });
47
42
 
@@ -89,13 +84,14 @@ const MAT_SELECTSEARCH_DEFAULT_OPTIONS = new InjectionToken('mat-selectsearch-de
89
84
  * </ngx-mat-select-search>
90
85
  */
91
86
  class MatSelectNoEntriesFoundDirective {
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatSelectNoEntriesFoundDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
93
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: MatSelectNoEntriesFoundDirective, selector: "[matSelectNoEntriesFound]", ngImport: i0 }); }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: MatSelectNoEntriesFoundDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
88
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.6", type: MatSelectNoEntriesFoundDirective, isStandalone: true, selector: "[matSelectNoEntriesFound]", ngImport: i0 }); }
94
89
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatSelectNoEntriesFoundDirective, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: MatSelectNoEntriesFoundDirective, decorators: [{
96
91
  type: Directive,
97
92
  args: [{
98
93
  selector: '[matSelectNoEntriesFound]',
94
+ standalone: true,
99
95
  }]
100
96
  }] });
101
97
 
@@ -105,84 +101,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
105
101
  * Use of this source code is governed by an MIT-style license that can be
106
102
  * found in the LICENSE file at https://angular.io/license
107
103
  */
108
- /**
109
- * Component providing an input field for searching MatSelect options.
110
- *
111
- * Example usage:
112
- *
113
- * interface Bank {
114
- * id: string;
115
- * name: string;
116
- * }
117
- *
118
- * @Component({
119
- * selector: 'my-app-data-selection',
120
- * template: `
121
- * <mat-form-field>
122
- * <mat-select [formControl]="bankCtrl" placeholder="Bank">
123
- * <mat-option>
124
- * <ngx-mat-select-search [formControl]="bankFilterCtrl"></ngx-mat-select-search>
125
- * </mat-option>
126
- * <mat-option *ngFor="let bank of filteredBanks | async" [value]="bank.id">
127
- * {{bank.name}}
128
- * </mat-option>
129
- * </mat-select>
130
- * </mat-form-field>
131
- * `
132
- * })
133
- * export class DataSelectionComponent implements OnInit, OnDestroy {
134
- *
135
- * // control for the selected bank
136
- * public bankCtrl: FormControl = new FormControl();
137
- * // control for the MatSelect filter keyword
138
- * public bankFilterCtrl: FormControl = new FormControl();
139
- *
140
- * // list of banks
141
- * private banks: Bank[] = [{name: 'Bank A', id: 'A'}, {name: 'Bank B', id: 'B'}, {name: 'Bank C', id: 'C'}];
142
- * // list of banks filtered by search keyword
143
- * public filteredBanks: ReplaySubject<Bank[]> = new ReplaySubject<Bank[]>(1);
144
- *
145
- * // Subject that emits when the component has been destroyed.
146
- * private _onDestroy = new Subject<void>();
147
- *
148
- *
149
- * ngOnInit() {
150
- * // load the initial bank list
151
- * this.filteredBanks.next(this.banks.slice());
152
- * // listen for search field value changes
153
- * this.bankFilterCtrl.valueChanges
154
- * .pipe(takeUntil(this._onDestroy))
155
- * .subscribe(() => {
156
- * this.filterBanks();
157
- * });
158
- * }
159
- *
160
- * ngOnDestroy() {
161
- * this._onDestroy.next();
162
- * this._onDestroy.complete();
163
- * }
164
- *
165
- * private filterBanks() {
166
- * if (!this.banks) {
167
- * return;
168
- * }
169
- *
170
- * // get the search keyword
171
- * let search = this.bankFilterCtrl.value;
172
- * if (!search) {
173
- * this.filteredBanks.next(this.banks.slice());
174
- * return;
175
- * } else {
176
- * search = search.toLowerCase();
177
- * }
178
- *
179
- * // filter the banks
180
- * this.filteredBanks.next(
181
- * this.banks.filter(bank => bank.name.toLowerCase().indexOf(search) > -1)
182
- * );
183
- * }
184
- * }
185
- */
186
104
  class MatSelectSearchComponent {
187
105
  /** Current search value */
188
106
  get value() {
@@ -574,16 +492,16 @@ class MatSelectSearchComponent {
574
492
  this.activeDescendant?.removeAttribute('aria-selected');
575
493
  this.searchSelectInput?.nativeElement.removeAttribute('aria-activedescendant');
576
494
  }
577
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatSelectSearchComponent, deps: [{ token: MatSelect }, { token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }, { token: MatOption, optional: true }, { token: MatFormField, optional: true }, { token: MAT_SELECTSEARCH_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
578
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MatSelectSearchComponent, selector: "mat-select-search", inputs: { placeholderLabel: "placeholderLabel", type: "type", closeIcon: "closeIcon", closeSvgIcon: "closeSvgIcon", noEntriesFoundLabel: "noEntriesFoundLabel", clearSearchInput: "clearSearchInput", searching: "searching", disableInitialFocus: "disableInitialFocus", enableClearOnEscapePressed: "enableClearOnEscapePressed", preventHomeEndKeyPropagation: "preventHomeEndKeyPropagation", disableScrollToActiveOnOptionsChanged: "disableScrollToActiveOnOptionsChanged", ariaLabel: "ariaLabel", showToggleAllCheckbox: "showToggleAllCheckbox", toggleAllCheckboxChecked: "toggleAllCheckboxChecked", toggleAllCheckboxIndeterminate: "toggleAllCheckboxIndeterminate", toggleAllCheckboxTooltipMessage: "toggleAllCheckboxTooltipMessage", toggleAllCheckboxTooltipPosition: "toggleAllCheckboxTooltipPosition", hideClearSearchButton: "hideClearSearchButton", alwaysRestoreSelectedOptionsMulti: "alwaysRestoreSelectedOptionsMulti" }, outputs: { toggleAll: "toggleAll" }, providers: [
495
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: MatSelectSearchComponent, deps: [{ token: MatSelect }, { token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }, { token: MatOption, optional: true }, { token: MatFormField, optional: true }, { token: MAT_SELECTSEARCH_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
496
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", type: MatSelectSearchComponent, isStandalone: true, selector: "mat-select-search", inputs: { placeholderLabel: "placeholderLabel", type: "type", closeIcon: "closeIcon", closeSvgIcon: "closeSvgIcon", noEntriesFoundLabel: "noEntriesFoundLabel", clearSearchInput: "clearSearchInput", searching: "searching", disableInitialFocus: "disableInitialFocus", enableClearOnEscapePressed: "enableClearOnEscapePressed", preventHomeEndKeyPropagation: "preventHomeEndKeyPropagation", disableScrollToActiveOnOptionsChanged: "disableScrollToActiveOnOptionsChanged", ariaLabel: "ariaLabel", showToggleAllCheckbox: "showToggleAllCheckbox", toggleAllCheckboxChecked: "toggleAllCheckboxChecked", toggleAllCheckboxIndeterminate: "toggleAllCheckboxIndeterminate", toggleAllCheckboxTooltipMessage: "toggleAllCheckboxTooltipMessage", toggleAllCheckboxTooltipPosition: "toggleAllCheckboxTooltipPosition", hideClearSearchButton: "hideClearSearchButton", alwaysRestoreSelectedOptionsMulti: "alwaysRestoreSelectedOptionsMulti" }, outputs: { toggleAll: "toggleAll" }, providers: [
579
497
  {
580
498
  provide: NG_VALUE_ACCESSOR,
581
499
  useExisting: forwardRef(() => MatSelectSearchComponent),
582
500
  multi: true,
583
501
  },
584
- ], queries: [{ propertyName: "clearIcon", first: true, predicate: MatSelectSearchClearDirective, descendants: true }, { propertyName: "noEntriesFound", first: true, predicate: MatSelectNoEntriesFoundDirective, descendants: true }], viewQueries: [{ propertyName: "searchSelectInput", first: true, predicate: ["searchSelectInput"], descendants: true, read: ElementRef, static: true }, { propertyName: "innerSelectSearch", first: true, predicate: ["innerSelectSearch"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<!--\nCopyright (c) 2018 Bithost GmbH All Rights Reserved.\n\nUse of this source code is governed by an MIT-style license that can be\nfound in the LICENSE file at https://angular.io/license\n-->\n<!-- Placeholder to adjust vertical offset of the mat-option elements -->\n<input matInput class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: the mat-datepicker-content mat-tab-header are needed to inherit the material theme colors, see PR #22 -->\n<div\n #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\"\n [ngClass]=\"{\n 'mat-select-search-inner-multiple': matSelect.multiple,\n 'mat-select-search-inner-toggle-all': _isToggleAllCheckboxVisible(),\n }\"\n>\n <mat-checkbox\n *ngIf=\"_isToggleAllCheckboxVisible()\"\n [color]=\"matFormField.color\"\n class=\"mat-select-search-toggle-all-checkbox\"\n [checked]=\"toggleAllCheckboxChecked\"\n [indeterminate]=\"toggleAllCheckboxIndeterminate\"\n [matTooltip]=\"toggleAllCheckboxTooltipMessage\"\n matTooltipClass=\"ngx-mat-select-search-toggle-all-tooltip\"\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\n (change)=\"_emitSelectAllBooleanToParent($event.checked)\"\n ></mat-checkbox>\n\n <input\n class=\"mat-select-search-input\"\n autocomplete=\"off\"\n [type]=\"type\"\n [formControl]=\"_formControl\"\n #searchSelectInput\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholderLabel\"\n [attr.aria-label]=\"ariaLabel\"\n />\n <mat-icon *ngIf=\"value === '' && !searching\" class=\"suffix\">search</mat-icon>\n <mat-spinner\n *ngIf=\"searching\"\n class=\"mat-select-search-spinner\"\n diameter=\"16\"\n ></mat-spinner>\n\n <button\n *ngIf=\"!hideClearSearchButton && value && !searching\"\n mat-icon-button\n aria-label=\"Clear\"\n (click)=\"_reset(true)\"\n class=\"mat-select-search-clear\"\n >\n <ng-content\n *ngIf=\"clearIcon; else defaultIcon\"\n select=\"[matSelectSearchClear]\"\n ></ng-content>\n <ng-template #defaultIcon>\n <mat-icon [svgIcon]=\"closeSvgIcon\">\n {{ !closeSvgIcon ? closeIcon : null }}\n </mat-icon>\n </ng-template>\n </button>\n\n <ng-content select=\".mat-select-search-custom-header-content\"></ng-content>\n\n <mat-divider></mat-divider>\n</div>\n\n<div\n *ngIf=\"_showNoEntriesFound$ | async\"\n class=\"mat-select-search-no-entries-found\"\n>\n <ng-content\n *ngIf=\"noEntriesFound; else defaultNoEntriesFound\"\n select=\"[matSelectNoEntriesFound]\"\n ></ng-content>\n <ng-template #defaultNoEntriesFound>{{ noEntriesFoundLabel }}</ng-template>\n</div>\n", styles: [".mat-select-search-hidden{visibility:hidden}.mat-select-search-inner{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none}.mat-select-search-inner.mat-select-search-inner-multiple.mat-select-search-inner-toggle-all{display:flex;align-items:center}.suffix{position:absolute;top:12px;right:14px}.mat-select-search-input{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background:#fff;padding:0 44px 0 16px;height:calc(3em - 1px);line-height:calc(3em - 1px)}:host-context([dir=rtl]) .mat-select-search-input{padding-right:16px;padding-left:44px}.mat-select-search-inner-toggle-all .mat-select-search-input{padding-left:5px}.mat-select-search-no-entries-found{padding-top:8px}.mat-select-search-clear{position:absolute;right:4px;top:0}:host-context([dir=rtl]) .mat-select-search-clear{right:auto;left:4px}.mat-select-search-spinner{position:absolute;right:16px;top:calc(50% - 8px)}:host-context([dir=rtl]) .mat-select-search-spinner{right:auto;left:16px}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search{position:sticky;top:0;z-index:1;opacity:1;margin-top:-8px;pointer-events:all}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-icon{margin-right:0;margin-left:0}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search mat-pseudo-checkbox{display:none}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{opacity:1}.mat-select-search-toggle-all-checkbox{padding-left:5px}:host-context([dir=rtl]) .mat-select-search-toggle-all-checkbox{padding-left:0;padding-right:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
502
+ ], queries: [{ propertyName: "clearIcon", first: true, predicate: MatSelectSearchClearDirective, descendants: true }, { propertyName: "noEntriesFound", first: true, predicate: MatSelectNoEntriesFoundDirective, descendants: true }], viewQueries: [{ propertyName: "searchSelectInput", first: true, predicate: ["searchSelectInput"], descendants: true, read: ElementRef, static: true }, { propertyName: "innerSelectSearch", first: true, predicate: ["innerSelectSearch"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<!--\nCopyright (c) 2018 Bithost GmbH All Rights Reserved.\n\nUse of this source code is governed by an MIT-style license that can be\nfound in the LICENSE file at https://angular.io/license\n-->\n<!-- Placeholder to adjust vertical offset of the mat-option elements -->\n<input matInput class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: the mat-datepicker-content mat-tab-header are needed to inherit the material theme colors, see PR #22 -->\n<div\n #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\"\n [ngClass]=\"{\n 'mat-select-search-inner-multiple': matSelect.multiple,\n 'mat-select-search-inner-toggle-all': _isToggleAllCheckboxVisible(),\n }\"\n>\n <mat-checkbox\n *ngIf=\"_isToggleAllCheckboxVisible()\"\n [color]=\"matFormField.color\"\n class=\"mat-select-search-toggle-all-checkbox\"\n [checked]=\"toggleAllCheckboxChecked\"\n [indeterminate]=\"toggleAllCheckboxIndeterminate\"\n [matTooltip]=\"toggleAllCheckboxTooltipMessage\"\n matTooltipClass=\"ngx-mat-select-search-toggle-all-tooltip\"\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\n (change)=\"_emitSelectAllBooleanToParent($event.checked)\"\n ></mat-checkbox>\n\n <input\n class=\"mat-select-search-input\"\n autocomplete=\"off\"\n [type]=\"type\"\n [formControl]=\"_formControl\"\n #searchSelectInput\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholderLabel\"\n [attr.aria-label]=\"ariaLabel\"\n />\n <mat-icon *ngIf=\"value === '' && !searching\" class=\"suffix\">search</mat-icon>\n <mat-spinner\n *ngIf=\"searching\"\n class=\"mat-select-search-spinner\"\n diameter=\"16\"\n ></mat-spinner>\n\n <button\n *ngIf=\"!hideClearSearchButton && value && !searching\"\n mat-icon-button\n aria-label=\"Clear\"\n (click)=\"_reset(true)\"\n class=\"mat-select-search-clear\"\n >\n <ng-content\n *ngIf=\"clearIcon; else defaultIcon\"\n select=\"[matSelectSearchClear]\"\n ></ng-content>\n <ng-template #defaultIcon>\n <mat-icon [svgIcon]=\"closeSvgIcon\">\n {{ !closeSvgIcon ? closeIcon : null }}\n </mat-icon>\n </ng-template>\n </button>\n\n <ng-content select=\".mat-select-search-custom-header-content\"></ng-content>\n\n <mat-divider></mat-divider>\n</div>\n\n<div\n *ngIf=\"_showNoEntriesFound$ | async\"\n class=\"mat-select-search-no-entries-found\"\n>\n <ng-content\n *ngIf=\"noEntriesFound; else defaultNoEntriesFound\"\n select=\"[matSelectNoEntriesFound]\"\n ></ng-content>\n <ng-template #defaultNoEntriesFound>{{ noEntriesFoundLabel }}</ng-template>\n</div>\n", styles: [".mat-select-search-hidden{visibility:hidden}.mat-select-search-inner{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none}.mat-select-search-inner.mat-select-search-inner-multiple.mat-select-search-inner-toggle-all{display:flex;align-items:center}.suffix{position:absolute;top:12px;right:14px}.mat-select-search-input{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background:#fff;padding:0 44px 0 16px;height:calc(3em - 1px);line-height:calc(3em - 1px)}:host-context([dir=rtl]) .mat-select-search-input{padding-right:16px;padding-left:44px}.mat-select-search-inner-toggle-all .mat-select-search-input{padding-left:5px}.mat-select-search-no-entries-found{padding-top:8px}.mat-select-search-clear{position:absolute;right:4px;top:0}:host-context([dir=rtl]) .mat-select-search-clear{right:auto;left:4px}.mat-select-search-spinner{position:absolute;right:16px;top:calc(50% - 8px)}:host-context([dir=rtl]) .mat-select-search-spinner{right:auto;left:16px}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search{position:sticky;top:0;z-index:1;opacity:1;margin-top:-8px;pointer-events:all}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-icon{margin-right:0;margin-left:0}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search mat-pseudo-checkbox{display:none}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{opacity:1}.mat-select-search-toggle-all-checkbox{padding-left:5px}:host-context([dir=rtl]) .mat-select-search-toggle-all-checkbox{padding-left:0;padding-right:5px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
585
503
  }
586
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatSelectSearchComponent, decorators: [{
504
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: MatSelectSearchComponent, decorators: [{
587
505
  type: Component,
588
506
  args: [{ selector: 'mat-select-search', providers: [
589
507
  {
@@ -591,16 +509,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
591
509
  useExisting: forwardRef(() => MatSelectSearchComponent),
592
510
  multi: true,
593
511
  },
594
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\nCopyright (c) 2018 Bithost GmbH All Rights Reserved.\n\nUse of this source code is governed by an MIT-style license that can be\nfound in the LICENSE file at https://angular.io/license\n-->\n<!-- Placeholder to adjust vertical offset of the mat-option elements -->\n<input matInput class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: the mat-datepicker-content mat-tab-header are needed to inherit the material theme colors, see PR #22 -->\n<div\n #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\"\n [ngClass]=\"{\n 'mat-select-search-inner-multiple': matSelect.multiple,\n 'mat-select-search-inner-toggle-all': _isToggleAllCheckboxVisible(),\n }\"\n>\n <mat-checkbox\n *ngIf=\"_isToggleAllCheckboxVisible()\"\n [color]=\"matFormField.color\"\n class=\"mat-select-search-toggle-all-checkbox\"\n [checked]=\"toggleAllCheckboxChecked\"\n [indeterminate]=\"toggleAllCheckboxIndeterminate\"\n [matTooltip]=\"toggleAllCheckboxTooltipMessage\"\n matTooltipClass=\"ngx-mat-select-search-toggle-all-tooltip\"\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\n (change)=\"_emitSelectAllBooleanToParent($event.checked)\"\n ></mat-checkbox>\n\n <input\n class=\"mat-select-search-input\"\n autocomplete=\"off\"\n [type]=\"type\"\n [formControl]=\"_formControl\"\n #searchSelectInput\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholderLabel\"\n [attr.aria-label]=\"ariaLabel\"\n />\n <mat-icon *ngIf=\"value === '' && !searching\" class=\"suffix\">search</mat-icon>\n <mat-spinner\n *ngIf=\"searching\"\n class=\"mat-select-search-spinner\"\n diameter=\"16\"\n ></mat-spinner>\n\n <button\n *ngIf=\"!hideClearSearchButton && value && !searching\"\n mat-icon-button\n aria-label=\"Clear\"\n (click)=\"_reset(true)\"\n class=\"mat-select-search-clear\"\n >\n <ng-content\n *ngIf=\"clearIcon; else defaultIcon\"\n select=\"[matSelectSearchClear]\"\n ></ng-content>\n <ng-template #defaultIcon>\n <mat-icon [svgIcon]=\"closeSvgIcon\">\n {{ !closeSvgIcon ? closeIcon : null }}\n </mat-icon>\n </ng-template>\n </button>\n\n <ng-content select=\".mat-select-search-custom-header-content\"></ng-content>\n\n <mat-divider></mat-divider>\n</div>\n\n<div\n *ngIf=\"_showNoEntriesFound$ | async\"\n class=\"mat-select-search-no-entries-found\"\n>\n <ng-content\n *ngIf=\"noEntriesFound; else defaultNoEntriesFound\"\n select=\"[matSelectNoEntriesFound]\"\n ></ng-content>\n <ng-template #defaultNoEntriesFound>{{ noEntriesFoundLabel }}</ng-template>\n</div>\n", styles: [".mat-select-search-hidden{visibility:hidden}.mat-select-search-inner{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none}.mat-select-search-inner.mat-select-search-inner-multiple.mat-select-search-inner-toggle-all{display:flex;align-items:center}.suffix{position:absolute;top:12px;right:14px}.mat-select-search-input{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background:#fff;padding:0 44px 0 16px;height:calc(3em - 1px);line-height:calc(3em - 1px)}:host-context([dir=rtl]) .mat-select-search-input{padding-right:16px;padding-left:44px}.mat-select-search-inner-toggle-all .mat-select-search-input{padding-left:5px}.mat-select-search-no-entries-found{padding-top:8px}.mat-select-search-clear{position:absolute;right:4px;top:0}:host-context([dir=rtl]) .mat-select-search-clear{right:auto;left:4px}.mat-select-search-spinner{position:absolute;right:16px;top:calc(50% - 8px)}:host-context([dir=rtl]) .mat-select-search-spinner{right:auto;left:16px}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search{position:sticky;top:0;z-index:1;opacity:1;margin-top:-8px;pointer-events:all}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-icon{margin-right:0;margin-left:0}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search mat-pseudo-checkbox{display:none}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{opacity:1}.mat-select-search-toggle-all-checkbox{padding-left:5px}:host-context([dir=rtl]) .mat-select-search-toggle-all-checkbox{padding-left:0;padding-right:5px}\n"] }]
595
- }], ctorParameters: () => [{ type: i10.MatSelect, decorators: [{
512
+ ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
513
+ NgClass,
514
+ MatCheckbox,
515
+ MatTooltip,
516
+ ReactiveFormsModule,
517
+ MatIcon,
518
+ MatProgressSpinner,
519
+ NgIf,
520
+ MatIconButton,
521
+ MatInput,
522
+ MatDivider,
523
+ AsyncPipe,
524
+ ], template: "<!--\nCopyright (c) 2018 Bithost GmbH All Rights Reserved.\n\nUse of this source code is governed by an MIT-style license that can be\nfound in the LICENSE file at https://angular.io/license\n-->\n<!-- Placeholder to adjust vertical offset of the mat-option elements -->\n<input matInput class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: the mat-datepicker-content mat-tab-header are needed to inherit the material theme colors, see PR #22 -->\n<div\n #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\"\n [ngClass]=\"{\n 'mat-select-search-inner-multiple': matSelect.multiple,\n 'mat-select-search-inner-toggle-all': _isToggleAllCheckboxVisible(),\n }\"\n>\n <mat-checkbox\n *ngIf=\"_isToggleAllCheckboxVisible()\"\n [color]=\"matFormField.color\"\n class=\"mat-select-search-toggle-all-checkbox\"\n [checked]=\"toggleAllCheckboxChecked\"\n [indeterminate]=\"toggleAllCheckboxIndeterminate\"\n [matTooltip]=\"toggleAllCheckboxTooltipMessage\"\n matTooltipClass=\"ngx-mat-select-search-toggle-all-tooltip\"\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\n (change)=\"_emitSelectAllBooleanToParent($event.checked)\"\n ></mat-checkbox>\n\n <input\n class=\"mat-select-search-input\"\n autocomplete=\"off\"\n [type]=\"type\"\n [formControl]=\"_formControl\"\n #searchSelectInput\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholderLabel\"\n [attr.aria-label]=\"ariaLabel\"\n />\n <mat-icon *ngIf=\"value === '' && !searching\" class=\"suffix\">search</mat-icon>\n <mat-spinner\n *ngIf=\"searching\"\n class=\"mat-select-search-spinner\"\n diameter=\"16\"\n ></mat-spinner>\n\n <button\n *ngIf=\"!hideClearSearchButton && value && !searching\"\n mat-icon-button\n aria-label=\"Clear\"\n (click)=\"_reset(true)\"\n class=\"mat-select-search-clear\"\n >\n <ng-content\n *ngIf=\"clearIcon; else defaultIcon\"\n select=\"[matSelectSearchClear]\"\n ></ng-content>\n <ng-template #defaultIcon>\n <mat-icon [svgIcon]=\"closeSvgIcon\">\n {{ !closeSvgIcon ? closeIcon : null }}\n </mat-icon>\n </ng-template>\n </button>\n\n <ng-content select=\".mat-select-search-custom-header-content\"></ng-content>\n\n <mat-divider></mat-divider>\n</div>\n\n<div\n *ngIf=\"_showNoEntriesFound$ | async\"\n class=\"mat-select-search-no-entries-found\"\n>\n <ng-content\n *ngIf=\"noEntriesFound; else defaultNoEntriesFound\"\n select=\"[matSelectNoEntriesFound]\"\n ></ng-content>\n <ng-template #defaultNoEntriesFound>{{ noEntriesFoundLabel }}</ng-template>\n</div>\n", styles: [".mat-select-search-hidden{visibility:hidden}.mat-select-search-inner{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none}.mat-select-search-inner.mat-select-search-inner-multiple.mat-select-search-inner-toggle-all{display:flex;align-items:center}.suffix{position:absolute;top:12px;right:14px}.mat-select-search-input{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background:#fff;padding:0 44px 0 16px;height:calc(3em - 1px);line-height:calc(3em - 1px)}:host-context([dir=rtl]) .mat-select-search-input{padding-right:16px;padding-left:44px}.mat-select-search-inner-toggle-all .mat-select-search-input{padding-left:5px}.mat-select-search-no-entries-found{padding-top:8px}.mat-select-search-clear{position:absolute;right:4px;top:0}:host-context([dir=rtl]) .mat-select-search-clear{right:auto;left:4px}.mat-select-search-spinner{position:absolute;right:16px;top:calc(50% - 8px)}:host-context([dir=rtl]) .mat-select-search-spinner{right:auto;left:16px}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search{position:sticky;top:0;z-index:1;opacity:1;margin-top:-8px;pointer-events:all}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-icon{margin-right:0;margin-left:0}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search mat-pseudo-checkbox{display:none}::ng-deep .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{opacity:1}.mat-select-search-toggle-all-checkbox{padding-left:5px}:host-context([dir=rtl]) .mat-select-search-toggle-all-checkbox{padding-left:0;padding-right:5px}\n"] }]
525
+ }], ctorParameters: () => [{ type: i3.MatSelect, decorators: [{
596
526
  type: Inject,
597
527
  args: [MatSelect]
598
- }] }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i11.MatOption, decorators: [{
528
+ }] }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i4.MatOption, decorators: [{
599
529
  type: Optional
600
530
  }, {
601
531
  type: Inject,
602
532
  args: [MatOption]
603
- }] }, { type: i12.MatFormField, decorators: [{
533
+ }] }, { type: i5.MatFormField, decorators: [{
604
534
  type: Optional
605
535
  }, {
606
536
  type: Inject,
@@ -670,50 +600,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
670
600
  * Use of this source code is governed by an MIT-style license that can be
671
601
  * found in the LICENSE file at https://angular.io/license
672
602
  */
673
- const MatSelectSearchVersion = '7.0.2';
674
603
  class MatSelectSearchModule {
675
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatSelectSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
676
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MatSelectSearchModule, declarations: [MatSelectSearchComponent,
604
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: MatSelectSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
605
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: MatSelectSearchModule, imports: [MatSelectSearchComponent,
677
606
  MatSelectSearchClearDirective,
678
- MatSelectNoEntriesFoundDirective], imports: [CommonModule,
679
- ReactiveFormsModule,
680
- MatButtonModule,
681
- MatSelectModule,
682
- MatCheckboxModule,
683
- MatIconModule,
684
- MatProgressSpinnerModule,
685
- MatTooltipModule,
686
- MatDividerModule,
687
- MatFormFieldModule], exports: [MatSelectSearchComponent,
607
+ MatSelectNoEntriesFoundDirective], exports: [MatSelectSearchComponent,
688
608
  MatSelectSearchClearDirective,
689
609
  MatSelectNoEntriesFoundDirective] }); }
690
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatSelectSearchModule, imports: [CommonModule,
691
- ReactiveFormsModule,
692
- MatButtonModule,
693
- MatSelectModule,
694
- MatCheckboxModule,
695
- MatIconModule,
696
- MatProgressSpinnerModule,
697
- MatTooltipModule,
698
- MatDividerModule,
699
- MatFormFieldModule] }); }
610
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: MatSelectSearchModule, imports: [MatSelectSearchComponent] }); }
700
611
  }
701
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatSelectSearchModule, decorators: [{
612
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: MatSelectSearchModule, decorators: [{
702
613
  type: NgModule,
703
614
  args: [{
704
615
  imports: [
705
- CommonModule,
706
- ReactiveFormsModule,
707
- MatButtonModule,
708
- MatSelectModule,
709
- MatCheckboxModule,
710
- MatIconModule,
711
- MatProgressSpinnerModule,
712
- MatTooltipModule,
713
- MatDividerModule,
714
- MatFormFieldModule,
715
- ],
716
- declarations: [
717
616
  MatSelectSearchComponent,
718
617
  MatSelectSearchClearDirective,
719
618
  MatSelectNoEntriesFoundDirective,
@@ -730,5 +629,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
730
629
  * Generated bundle index. Do not edit.
731
630
  */
732
631
 
733
- export { MAT_SELECTSEARCH_DEFAULT_OPTIONS, MatSelectNoEntriesFoundDirective, MatSelectSearchClearDirective, MatSelectSearchComponent, MatSelectSearchModule, MatSelectSearchVersion, configurableDefaultOptions };
632
+ export { MAT_SELECTSEARCH_DEFAULT_OPTIONS, MatSelectNoEntriesFoundDirective, MatSelectSearchClearDirective, MatSelectSearchComponent, MatSelectSearchModule, configurableDefaultOptions };
734
633
  //# sourceMappingURL=onemrvapublic-design-system-mat-select-search.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"onemrvapublic-design-system-mat-select-search.mjs","sources":["../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search-clear.directive.ts","../../../../projects/onemrva/design-system/mat-select-search/src/default-options.ts","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-no-entries-found.directive.ts","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search.component.ts","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search.component.html","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search.module.ts","../../../../projects/onemrva/design-system/mat-select-search/onemrvapublic-design-system-mat-select-search.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * Directive for providing a custom clear-icon.\n * e.g.\n * <ngx-mat-select-search [formControl]=\"bankFilterCtrl\">\n * <mat-icon matSelectSearchClear>delete</mat-icon>\n * </ngx-mat-select-search>\n */\n@Directive({\n selector: '[matSelectSearchClear]',\n})\nexport class MatSelectSearchClearDirective {}\n","import { InjectionToken } from '@angular/core';\nimport { MatSelectSearchComponent } from './mat-select-search.component';\n\n/** List of inputs of NgxMatSelectSearchComponent that can be configured with a global default. */\nexport const configurableDefaultOptions = [\n 'ariaLabel',\n 'clearSearchInput',\n 'closeIcon',\n 'closeSvgIcon',\n 'disableInitialFocus',\n 'disableScrollToActiveOnOptionsChanged',\n 'enableClearOnEscapePressed',\n 'hideClearSearchButton',\n 'noEntriesFoundLabel',\n 'placeholderLabel',\n 'preventHomeEndKeyPropagation',\n 'searching',\n] as const;\n\nexport type ConfigurableDefaultOptions =\n (typeof configurableDefaultOptions)[number];\n\n/**\n * InjectionToken that can be used to specify global options. e.g.\n *\n * ```typescript\n * providers: [\n * {\n * provide: MAT_SELECTSEARCH_DEFAULT_OPTIONS,\n * useValue: <MatSelectSearchOptions>{\n * closeIcon: 'delete',\n * noEntriesFoundLabel: 'No options found'\n * }\n * }\n * ]\n * ```\n *\n * See the corresponding inputs of `MatSelectSearchComponent` for documentation.\n */\nexport const MAT_SELECTSEARCH_DEFAULT_OPTIONS =\n new InjectionToken<MatSelectSearchOptions>(\n 'mat-selectsearch-default-options',\n );\n\n/** Global configurable options for MatSelectSearch. */\nexport type MatSelectSearchOptions = Readonly<\n Partial<Pick<MatSelectSearchComponent, ConfigurableDefaultOptions>>\n>;\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for providing a custom no entries found element.\n * e.g.\n * <ngx-mat-select-search [formControl]=\"bankFilterCtrl\">\n * <span matSelectNoEntriesFound>\n * No entries found <button>Add</button>\n * </span>\n * </ngx-mat-select-search>\n */\n@Directive({\n selector: '[matSelectNoEntriesFound]',\n})\nexport class MatSelectNoEntriesFoundDirective {}\n","/**\n * Copyright (c) 2018 Bithost GmbH All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n A,\n DOWN_ARROW,\n END,\n ENTER,\n ESCAPE,\n HOME,\n NINE,\n SPACE,\n UP_ARROW,\n Z,\n ZERO,\n} from '@angular/cdk/keycodes';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { MatOption } from '@angular/material/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatSelect } from '@angular/material/select';\nimport { BehaviorSubject, combineLatest, Observable, of, Subject } from 'rxjs';\nimport {\n delay,\n filter,\n map,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap,\n} from 'rxjs/operators';\nimport { MatSelectSearchClearDirective } from './mat-select-search-clear.directive';\nimport {\n configurableDefaultOptions,\n MAT_SELECTSEARCH_DEFAULT_OPTIONS,\n MatSelectSearchOptions,\n} from './default-options';\nimport { MatSelectNoEntriesFoundDirective } from './mat-select-no-entries-found.directive';\n\n/**\n * Component providing an input field for searching MatSelect options.\n *\n * Example usage:\n *\n * interface Bank {\n * id: string;\n * name: string;\n * }\n *\n * @Component({\n * selector: 'my-app-data-selection',\n * template: `\n * <mat-form-field>\n * <mat-select [formControl]=\"bankCtrl\" placeholder=\"Bank\">\n * <mat-option>\n * <ngx-mat-select-search [formControl]=\"bankFilterCtrl\"></ngx-mat-select-search>\n * </mat-option>\n * <mat-option *ngFor=\"let bank of filteredBanks | async\" [value]=\"bank.id\">\n * {{bank.name}}\n * </mat-option>\n * </mat-select>\n * </mat-form-field>\n * `\n * })\n * export class DataSelectionComponent implements OnInit, OnDestroy {\n *\n * // control for the selected bank\n * public bankCtrl: FormControl = new FormControl();\n * // control for the MatSelect filter keyword\n * public bankFilterCtrl: FormControl = new FormControl();\n *\n * // list of banks\n * private banks: Bank[] = [{name: 'Bank A', id: 'A'}, {name: 'Bank B', id: 'B'}, {name: 'Bank C', id: 'C'}];\n * // list of banks filtered by search keyword\n * public filteredBanks: ReplaySubject<Bank[]> = new ReplaySubject<Bank[]>(1);\n *\n * // Subject that emits when the component has been destroyed.\n * private _onDestroy = new Subject<void>();\n *\n *\n * ngOnInit() {\n * // load the initial bank list\n * this.filteredBanks.next(this.banks.slice());\n * // listen for search field value changes\n * this.bankFilterCtrl.valueChanges\n * .pipe(takeUntil(this._onDestroy))\n * .subscribe(() => {\n * this.filterBanks();\n * });\n * }\n *\n * ngOnDestroy() {\n * this._onDestroy.next();\n * this._onDestroy.complete();\n * }\n *\n * private filterBanks() {\n * if (!this.banks) {\n * return;\n * }\n *\n * // get the search keyword\n * let search = this.bankFilterCtrl.value;\n * if (!search) {\n * this.filteredBanks.next(this.banks.slice());\n * return;\n * } else {\n * search = search.toLowerCase();\n * }\n *\n * // filter the banks\n * this.filteredBanks.next(\n * this.banks.filter(bank => bank.name.toLowerCase().indexOf(search) > -1)\n * );\n * }\n * }\n */\n@Component({\n selector: 'mat-select-search',\n templateUrl: './mat-select-search.component.html',\n styleUrls: ['./mat-select-search.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatSelectSearchComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatSelectSearchComponent\n implements OnInit, OnDestroy, ControlValueAccessor\n{\n /** Label of the search placeholder */\n @Input() placeholderLabel = 'Search';\n\n /** Type of the search input field */\n @Input() type = 'text';\n\n /** Font-based icon used for displaying Close-Icon */\n @Input() closeIcon = 'close';\n\n /** Svg-based icon used for displaying Close-Icon. If set, closeIcon is overridden */\n @Input() closeSvgIcon = '';\n\n /** Label to be shown when no entries are found. Set to null if no message should be shown. */\n @Input() noEntriesFoundLabel = 'Nothing found';\n\n /**\n * Whether or not the search field should be cleared after the dropdown menu is closed.\n * Useful for server-side filtering. See [#3](https://github.com/bithost-gmbh/ngx-mat-select-search/issues/3)\n */\n @Input() clearSearchInput = true;\n\n /** Whether to show the search-in-progress indicator */\n @Input() searching = false;\n\n /** Disables initial focusing of the input field */\n @Input() disableInitialFocus = false;\n\n /** Enable clear input on escape pressed */\n @Input() enableClearOnEscapePressed = false;\n\n /**\n * Prevents home / end key being propagated to mat-select,\n * allowing to move the cursor within the search input instead of navigating the options\n */\n @Input() preventHomeEndKeyPropagation = false;\n\n /** Disables scrolling to active options when option list changes. Useful for server-side search */\n @Input() disableScrollToActiveOnOptionsChanged = false;\n\n /** Adds 508 screen reader support for search box */\n @Input() ariaLabel = 'dropdown search';\n\n /** Whether to show Select All Checkbox (for mat-select[multi=true]) */\n @Input() showToggleAllCheckbox = false;\n\n /** select all checkbox checked state */\n @Input() toggleAllCheckboxChecked = false;\n\n /** select all checkbox indeterminate state */\n @Input() toggleAllCheckboxIndeterminate = false;\n\n /** Display a message in a tooltip on the toggle-all checkbox */\n @Input() toggleAllCheckboxTooltipMessage = '';\n\n /** Define the position of the tooltip on the toggle-all checkbox. */\n @Input() toggleAllCheckboxTooltipPosition:\n | 'left'\n | 'right'\n | 'above'\n | 'below'\n | 'before'\n | 'after' = 'below';\n\n /** Show/Hide the search clear button of the search input */\n @Input() hideClearSearchButton = false;\n\n /**\n * Always restore selected options on selectionChange for mode multi (e.g. for lazy loading/infinity scrolling).\n * Defaults to false, so selected options are only restored while filtering is active.\n */\n @Input() alwaysRestoreSelectedOptionsMulti = false;\n\n /** Output emitter to send to parent component with the toggle all boolean */\n @Output() toggleAll = new EventEmitter<boolean>();\n\n /** Reference to the search input field */\n @ViewChild('searchSelectInput', { read: ElementRef, static: true })\n searchSelectInput?: ElementRef;\n\n /** Reference to the search input field */\n @ViewChild('innerSelectSearch', { read: ElementRef, static: true })\n innerSelectSearch?: ElementRef;\n\n /** Reference to custom search input clear icon */\n @ContentChild(MatSelectSearchClearDirective)\n clearIcon?: MatSelectSearchClearDirective;\n\n /** Reference to custom no entries found element */\n @ContentChild(MatSelectNoEntriesFoundDirective)\n noEntriesFound?: MatSelectNoEntriesFoundDirective;\n\n /** Current search value */\n get value(): string {\n return (this._formControl as FormControl).value;\n }\n\n private _lastExternalInputValue?: string;\n\n onTouched: (_: any) => void = (_: any) => {\n //\n };\n\n /** Reference to the MatSelect options */\n public set _options(_options: QueryList<MatOption>) {\n this._options$.next(_options);\n }\n\n public get _options(): QueryList<MatOption> {\n return this._options$.getValue();\n }\n\n public _options$: BehaviorSubject<QueryList<MatOption>> = new BehaviorSubject<\n QueryList<MatOption>\n >(new QueryList());\n\n private optionsList$: Observable<MatOption[]> = this._options$.pipe(\n switchMap(_options =>\n _options\n ? _options.changes.pipe(\n map(options => options.toArray()),\n startWith<MatOption[]>(_options.toArray()),\n )\n : of([]),\n ),\n );\n\n private optionsLength$: Observable<number> = this.optionsList$.pipe(\n map(options => (options ? options.length : 0)),\n );\n\n /** Previously selected values when using <mat-select [multiple]=\"true\">*/\n private previousSelectedValues?: any[];\n\n public _formControl: FormControl<string | null> = new FormControl<string>('');\n\n /** whether to show the no entries found message */\n public _showNoEntriesFound$: Observable<boolean> = combineLatest([\n this._formControl.valueChanges,\n this.optionsLength$,\n ]).pipe(\n map(([_, optionsLength]) => {\n return (\n this.noEntriesFoundLabel !== '' &&\n optionsLength === this.getOptionsLengthOffset()\n );\n }),\n );\n\n /** Subject that emits when the component has been destroyed. */\n private _onDestroy = new Subject<void>();\n\n /** Reference to active descendant for ARIA Support. */\n private activeDescendant?: HTMLElement;\n\n constructor(\n @Inject(MatSelect) public matSelect: MatSelect,\n public changeDetectorRef: ChangeDetectorRef,\n private _viewportRuler: ViewportRuler,\n @Optional() @Inject(MatOption) public matOption: MatOption,\n @Optional() @Inject(MatFormField) public matFormField: MatFormField,\n @Optional()\n @Inject(MAT_SELECTSEARCH_DEFAULT_OPTIONS)\n defaultOptions: MatSelectSearchOptions,\n ) {\n this.applyDefaultOptions(defaultOptions);\n }\n\n private applyDefaultOptions(defaultOptions: MatSelectSearchOptions) {\n if (!defaultOptions) {\n return;\n }\n for (const key of configurableDefaultOptions) {\n // eslint-disable-next-line\n if (defaultOptions.hasOwnProperty(key)) {\n (this[key] as any) = defaultOptions[key];\n }\n }\n }\n\n ngOnInit() {\n // set custom mat-option class if the component was placed inside a mat-option\n if (this.matOption) {\n this.matOption.disabled = true;\n this.matOption\n ._getHostElement()\n .classList.add('contains-mat-select-search');\n //this.matOption._getHostElement().setAttribute('aria-hidden', 'true'); // this provoke an error\n } else {\n console.error(\n '<ngx-mat-select-search> must be placed inside a <mat-option> element',\n );\n }\n\n // when the select dropdown panel is opened or closed\n this.matSelect.openedChange\n .pipe(delay(1), takeUntil(this._onDestroy))\n .subscribe(opened => {\n if (opened) {\n this.updateInputWidth();\n // focus the search field when opening\n if (!this.disableInitialFocus) {\n this._focus();\n }\n } else {\n // clear it when closing\n if (this.clearSearchInput) {\n this._reset();\n }\n }\n });\n\n // set the first item active after the options changed\n this.matSelect.openedChange\n .pipe(\n take(1),\n switchMap(_ => {\n this._options = this.matSelect.options;\n\n // Closure variable for tracking the most recent first option.\n // In order to avoid avoid causing the list to\n // scroll to the top when options are added to the bottom of\n // the list (eg: infinite scroll), we compare only\n // the changes to the first options to determine if we\n // should set the first item as active.\n // This prevents unnecessary scrolling to the top of the list\n // when options are appended, but allows the first item\n // in the list to be set as active by default when there\n // is no active selection\n let previousFirstOption =\n this._options.toArray()[this.getOptionsLengthOffset()];\n\n return this._options.changes.pipe(\n tap(() => {\n // avoid \"expression has been changed\" error\n setTimeout(() => {\n // Convert the QueryList to an array\n const options = this._options.toArray();\n\n // The true first item is offset by 1\n const currentFirstOption =\n options[this.getOptionsLengthOffset()];\n\n const keyManager = this.matSelect._keyManager;\n if (keyManager && this.matSelect.panelOpen) {\n // set first item active and input width\n\n // Check to see if the first option in these changes is different from the previous.\n const firstOptionIsChanged = !this.matSelect.compareWith(\n previousFirstOption,\n currentFirstOption,\n );\n\n // CASE: The first option is different now.\n // Indiciates we should set it as active and scroll to the top.\n if (\n firstOptionIsChanged ||\n !keyManager.activeItem ||\n !options.find(option =>\n this.matSelect.compareWith(option, keyManager.activeItem),\n )\n ) {\n keyManager.setFirstItemActive();\n }\n\n // wait for panel width changes\n setTimeout(() => {\n this.updateInputWidth();\n });\n }\n\n // Update our reference\n previousFirstOption = currentFirstOption;\n });\n }),\n );\n }),\n )\n .pipe(takeUntil(this._onDestroy))\n .subscribe();\n\n // add or remove css class depending on whether to show the no entries found message\n // note: this is hacky\n this._showNoEntriesFound$\n .pipe(takeUntil(this._onDestroy))\n .subscribe(showNoEntriesFound => {\n // set no entries found class on mat option\n if (this.matOption) {\n if (showNoEntriesFound) {\n this.matOption\n ._getHostElement()\n .classList.add('mat-select-search-no-entries-found');\n } else {\n this.matOption\n ._getHostElement()\n .classList.remove('mat-select-search-no-entries-found');\n }\n }\n });\n\n // resize the input width when the viewport is resized, i.e. the trigger width could potentially be resized\n this._viewportRuler\n .change()\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n if (this.matSelect.panelOpen) {\n this.updateInputWidth();\n }\n });\n\n this.initMultipleHandling();\n\n this.optionsList$.pipe(takeUntil(this._onDestroy)).subscribe(() => {\n // update view when available options change\n this.changeDetectorRef.markForCheck();\n });\n }\n\n _emitSelectAllBooleanToParent(state: boolean) {\n this.toggleAll.emit(state);\n }\n\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n _isToggleAllCheckboxVisible(): boolean {\n return this.matSelect.multiple && this.showToggleAllCheckbox;\n }\n\n /**\n * Handles the key down event with MatSelect.\n * Allows e.g. selecting with enter key, navigation with arrow keys, etc.\n * @param event\n */\n _handleKeydown(event: KeyboardEvent) {\n // Prevent propagation for all alphanumeric characters in order to avoid selection issues\n if (\n (event.key && event.key.length === 1) ||\n (event.keyCode >= A && event.keyCode <= Z) ||\n (event.keyCode >= ZERO && event.keyCode <= NINE) ||\n event.keyCode === SPACE ||\n (this.preventHomeEndKeyPropagation &&\n (event.keyCode === HOME || event.keyCode === END))\n ) {\n event.stopPropagation();\n }\n\n if (this.matSelect.multiple && event.key && event.keyCode === ENTER) {\n // Regain focus after multiselect, so we can further type\n setTimeout(() => this._focus());\n }\n\n // Special case if click Escape, if input is empty, close the dropdown, if not, empty out the search field\n if (\n this.enableClearOnEscapePressed === true &&\n event.keyCode === ESCAPE &&\n this.value\n ) {\n this._reset(true);\n event.stopPropagation();\n }\n }\n\n /**\n * Handles the key up event with MatSelect.\n * Allows e.g. the announcing of the currently activeDescendant by screen readers.\n */\n _handleKeyup(event: KeyboardEvent) {\n if (event.keyCode === UP_ARROW || event.keyCode === DOWN_ARROW) {\n const ariaActiveDescendantId = this.matSelect._getAriaActiveDescendant();\n const index = this._options\n .toArray()\n .findIndex(item => item.id === ariaActiveDescendantId);\n if (index !== -1) {\n this.unselectActiveDescendant();\n\n const temp = this._options.toArray();\n this.activeDescendant = temp[index]._getHostElement();\n\n this.activeDescendant.setAttribute('aria-selected', 'true');\n\n this.searchSelectInput?.nativeElement.setAttribute(\n 'aria-activedescendant',\n ariaActiveDescendantId,\n );\n }\n }\n }\n\n writeValue(value: string) {\n this._lastExternalInputValue = value;\n this._formControl.setValue(value);\n this.changeDetectorRef.markForCheck();\n }\n\n onBlur() {\n this.unselectActiveDescendant();\n }\n\n registerOnChange(fn: (value: string | null) => void) {\n this._formControl.valueChanges\n .pipe(\n filter(value => value !== this._lastExternalInputValue),\n tap(() => (this._lastExternalInputValue = undefined)),\n takeUntil(this._onDestroy),\n )\n .subscribe(fn);\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n /**\n * Focuses the search input field\n */\n public _focus() {\n if (!this.searchSelectInput || !this.matSelect.panel) {\n return;\n }\n // save and restore scrollTop of panel, since it will be reset by focus()\n // note: this is hacky\n const panel = this.matSelect.panel.nativeElement;\n const scrollTop = panel.scrollTop;\n\n // focus\n this.searchSelectInput.nativeElement.focus();\n\n panel.scrollTop = scrollTop;\n }\n\n /**\n * Resets the current search value\n * @param focus whether to focus after resetting\n */\n public _reset(focus?: boolean) {\n this._formControl.setValue('');\n if (focus) {\n this._focus();\n }\n }\n\n /**\n * Initializes handling <mat-select [multiple]=\"true\">\n * Note: to improve this code, mat-select should be extended to allow disabling resetting the selection while filtering.\n */\n private initMultipleHandling() {\n if (!this.matSelect.ngControl) {\n if (this.matSelect.multiple) {\n // note: the access to matSelect.ngControl (instead of matSelect.value / matSelect.valueChanges)\n // is necessary to properly work in multi-selection mode.\n console.error(\n 'the mat-select containing ngx-mat-select-search must have a ngModel or formControl directive when multiple=true',\n );\n }\n return;\n }\n // if <mat-select [multiple]=\"true\">\n // store previously selected values and restore them when they are deselected\n // because the option is not available while we are currently filtering\n this.previousSelectedValues = this.matSelect.ngControl.value;\n\n this.matSelect.ngControl.valueChanges\n ?.pipe(takeUntil(this._onDestroy))\n .subscribe(values => {\n let restoreSelectedValues = false;\n if (this.matSelect.multiple) {\n if (\n (this.alwaysRestoreSelectedOptionsMulti ||\n (this._formControl.value && this._formControl.value.length)) &&\n this.previousSelectedValues &&\n Array.isArray(this.previousSelectedValues)\n ) {\n if (!values || !Array.isArray(values)) {\n values = [];\n }\n const optionValues = this.matSelect.options.map(\n option => option.value,\n );\n this.previousSelectedValues.forEach(previousValue => {\n if (\n !values.some((v: any) =>\n this.matSelect.compareWith(v, previousValue),\n ) &&\n !optionValues.some(v =>\n this.matSelect.compareWith(v, previousValue),\n )\n ) {\n // if a value that was selected before is deselected and not found in the options, it was deselected\n // due to the filtering, so we restore it.\n values.push(previousValue);\n restoreSelectedValues = true;\n }\n });\n }\n }\n this.previousSelectedValues = values;\n\n if (restoreSelectedValues) {\n this.matSelect._onChange(values);\n }\n });\n }\n\n /**\n * Set the width of the innerSelectSearch to fit even custom scrollbars\n * And support all Operation Systems\n */\n public updateInputWidth() {\n if (!this.innerSelectSearch || !this.innerSelectSearch.nativeElement) {\n return;\n }\n let element: HTMLElement = this.innerSelectSearch.nativeElement;\n if (element.parentElement !== null) {\n let panelElement: HTMLElement | null = null;\n while ((element = element.parentElement)) {\n if (element.classList.contains('mat-select-panel')) {\n panelElement = element;\n break;\n }\n }\n if (panelElement !== null) {\n this.innerSelectSearch.nativeElement.style.width =\n panelElement.clientWidth + 'px';\n }\n }\n }\n\n /**\n * Determine the offset to length that can be caused by the optional matOption used as a search input.\n */\n private getOptionsLengthOffset(): number {\n if (this.matOption) {\n return 1;\n } else {\n return 0;\n }\n }\n\n private unselectActiveDescendant() {\n this.activeDescendant?.removeAttribute('aria-selected');\n this.searchSelectInput?.nativeElement.removeAttribute(\n 'aria-activedescendant',\n );\n }\n}\n","<!--\nCopyright (c) 2018 Bithost GmbH All Rights Reserved.\n\nUse of this source code is governed by an MIT-style license that can be\nfound in the LICENSE file at https://angular.io/license\n-->\n<!-- Placeholder to adjust vertical offset of the mat-option elements -->\n<input matInput class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: the mat-datepicker-content mat-tab-header are needed to inherit the material theme colors, see PR #22 -->\n<div\n #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\"\n [ngClass]=\"{\n 'mat-select-search-inner-multiple': matSelect.multiple,\n 'mat-select-search-inner-toggle-all': _isToggleAllCheckboxVisible(),\n }\"\n>\n <mat-checkbox\n *ngIf=\"_isToggleAllCheckboxVisible()\"\n [color]=\"matFormField.color\"\n class=\"mat-select-search-toggle-all-checkbox\"\n [checked]=\"toggleAllCheckboxChecked\"\n [indeterminate]=\"toggleAllCheckboxIndeterminate\"\n [matTooltip]=\"toggleAllCheckboxTooltipMessage\"\n matTooltipClass=\"ngx-mat-select-search-toggle-all-tooltip\"\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\n (change)=\"_emitSelectAllBooleanToParent($event.checked)\"\n ></mat-checkbox>\n\n <input\n class=\"mat-select-search-input\"\n autocomplete=\"off\"\n [type]=\"type\"\n [formControl]=\"_formControl\"\n #searchSelectInput\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholderLabel\"\n [attr.aria-label]=\"ariaLabel\"\n />\n <mat-icon *ngIf=\"value === '' && !searching\" class=\"suffix\">search</mat-icon>\n <mat-spinner\n *ngIf=\"searching\"\n class=\"mat-select-search-spinner\"\n diameter=\"16\"\n ></mat-spinner>\n\n <button\n *ngIf=\"!hideClearSearchButton && value && !searching\"\n mat-icon-button\n aria-label=\"Clear\"\n (click)=\"_reset(true)\"\n class=\"mat-select-search-clear\"\n >\n <ng-content\n *ngIf=\"clearIcon; else defaultIcon\"\n select=\"[matSelectSearchClear]\"\n ></ng-content>\n <ng-template #defaultIcon>\n <mat-icon [svgIcon]=\"closeSvgIcon\">\n {{ !closeSvgIcon ? closeIcon : null }}\n </mat-icon>\n </ng-template>\n </button>\n\n <ng-content select=\".mat-select-search-custom-header-content\"></ng-content>\n\n <mat-divider></mat-divider>\n</div>\n\n<div\n *ngIf=\"_showNoEntriesFound$ | async\"\n class=\"mat-select-search-no-entries-found\"\n>\n <ng-content\n *ngIf=\"noEntriesFound; else defaultNoEntriesFound\"\n select=\"[matSelectNoEntriesFound]\"\n ></ng-content>\n <ng-template #defaultNoEntriesFound>{{ noEntriesFoundLabel }}</ng-template>\n</div>\n","/**\n * Copyright (c) 2018 Bithost GmbH All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { NgModule } from '@angular/core';\nimport { MatSelectSearchComponent } from './mat-select-search.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { CommonModule } from '@angular/common';\n\nimport { MatSelectSearchClearDirective } from './mat-select-search-clear.directive';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatSelectNoEntriesFoundDirective } from './mat-select-no-entries-found.directive';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nexport const MatSelectSearchVersion = '7.0.2';\nexport { MatSelectSearchClearDirective };\nexport { MatSelectNoEntriesFoundDirective };\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatButtonModule,\n MatSelectModule,\n MatCheckboxModule,\n MatIconModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n MatDividerModule,\n MatFormFieldModule,\n ],\n declarations: [\n MatSelectSearchComponent,\n MatSelectSearchClearDirective,\n MatSelectNoEntriesFoundDirective,\n ],\n exports: [\n MatSelectSearchComponent,\n MatSelectSearchClearDirective,\n MatSelectNoEntriesFoundDirective,\n ],\n})\nexport class MatSelectSearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onemrvapublic-design-system-mat-select-search.mjs","sources":["../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search-clear.directive.ts","../../../../projects/onemrva/design-system/mat-select-search/src/default-options.ts","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-no-entries-found.directive.ts","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search.component.ts","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search.component.html","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search.module.ts","../../../../projects/onemrva/design-system/mat-select-search/onemrvapublic-design-system-mat-select-search.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * Directive for providing a custom clear-icon.\n * e.g.\n * <ngx-mat-select-search [formControl]=\"bankFilterCtrl\">\n * <mat-icon matSelectSearchClear>delete</mat-icon>\n * </ngx-mat-select-search>\n */\n@Directive({\n selector: '[matSelectSearchClear]',\n standalone: true,\n})\nexport class MatSelectSearchClearDirective {}\n","import { InjectionToken } from '@angular/core';\nimport { MatSelectSearchComponent } from './mat-select-search.component';\n\n/** List of inputs of NgxMatSelectSearchComponent that can be configured with a global default. */\nexport const configurableDefaultOptions = [\n 'ariaLabel',\n 'clearSearchInput',\n 'closeIcon',\n 'closeSvgIcon',\n 'disableInitialFocus',\n 'disableScrollToActiveOnOptionsChanged',\n 'enableClearOnEscapePressed',\n 'hideClearSearchButton',\n 'noEntriesFoundLabel',\n 'placeholderLabel',\n 'preventHomeEndKeyPropagation',\n 'searching',\n] as const;\n\nexport type ConfigurableDefaultOptions =\n (typeof configurableDefaultOptions)[number];\n\n/**\n * InjectionToken that can be used to specify global options. e.g.\n *\n * ```typescript\n * providers: [\n * {\n * provide: MAT_SELECTSEARCH_DEFAULT_OPTIONS,\n * useValue: <MatSelectSearchOptions>{\n * closeIcon: 'delete',\n * noEntriesFoundLabel: 'No options found'\n * }\n * }\n * ]\n * ```\n *\n * See the corresponding inputs of `MatSelectSearchComponent` for documentation.\n */\nexport const MAT_SELECTSEARCH_DEFAULT_OPTIONS =\n new InjectionToken<MatSelectSearchOptions>(\n 'mat-selectsearch-default-options',\n );\n\n/** Global configurable options for MatSelectSearch. */\nexport type MatSelectSearchOptions = Readonly<\n Partial<Pick<MatSelectSearchComponent, ConfigurableDefaultOptions>>\n>;\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for providing a custom no entries found element.\n * e.g.\n * <ngx-mat-select-search [formControl]=\"bankFilterCtrl\">\n * <span matSelectNoEntriesFound>\n * No entries found <button>Add</button>\n * </span>\n * </ngx-mat-select-search>\n */\n@Directive({\n selector: '[matSelectNoEntriesFound]',\n standalone: true,\n})\nexport class MatSelectNoEntriesFoundDirective {}\n","/**\n * Copyright (c) 2018 Bithost GmbH All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n A,\n DOWN_ARROW,\n END,\n ENTER,\n ESCAPE,\n HOME,\n NINE,\n SPACE,\n UP_ARROW,\n Z,\n ZERO,\n} from '@angular/cdk/keycodes';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatOption } from '@angular/material/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatSelect } from '@angular/material/select';\nimport { BehaviorSubject, combineLatest, Observable, of, Subject } from 'rxjs';\nimport {\n delay,\n filter,\n map,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap,\n} from 'rxjs/operators';\nimport { MatSelectSearchClearDirective } from './mat-select-search-clear.directive';\nimport {\n configurableDefaultOptions,\n MAT_SELECTSEARCH_DEFAULT_OPTIONS,\n MatSelectSearchOptions,\n} from './default-options';\nimport { MatSelectNoEntriesFoundDirective } from './mat-select-no-entries-found.directive';\nimport { AsyncPipe, NgClass, NgIf } from '@angular/common';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatInput } from '@angular/material/input';\nimport { MatDivider } from '@angular/material/divider';\n\n@Component({\n selector: 'mat-select-search',\n templateUrl: './mat-select-search.component.html',\n styleUrls: ['./mat-select-search.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatSelectSearchComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n NgClass,\n MatCheckbox,\n MatTooltip,\n ReactiveFormsModule,\n MatIcon,\n MatProgressSpinner,\n NgIf,\n MatIconButton,\n MatInput,\n MatDivider,\n AsyncPipe,\n ],\n})\nexport class MatSelectSearchComponent\n implements OnInit, OnDestroy, ControlValueAccessor\n{\n /** Label of the search placeholder */\n @Input() placeholderLabel = 'Search';\n\n /** Type of the search input field */\n @Input() type = 'text';\n\n /** Font-based icon used for displaying Close-Icon */\n @Input() closeIcon = 'close';\n\n /** Svg-based icon used for displaying Close-Icon. If set, closeIcon is overridden */\n @Input() closeSvgIcon = '';\n\n /** Label to be shown when no entries are found. Set to null if no message should be shown. */\n @Input() noEntriesFoundLabel = 'Nothing found';\n\n /**\n * Whether or not the search field should be cleared after the dropdown menu is closed.\n * Useful for server-side filtering. See [#3](https://github.com/bithost-gmbh/ngx-mat-select-search/issues/3)\n */\n @Input() clearSearchInput = true;\n\n /** Whether to show the search-in-progress indicator */\n @Input() searching = false;\n\n /** Disables initial focusing of the input field */\n @Input() disableInitialFocus = false;\n\n /** Enable clear input on escape pressed */\n @Input() enableClearOnEscapePressed = false;\n\n /**\n * Prevents home / end key being propagated to mat-select,\n * allowing to move the cursor within the search input instead of navigating the options\n */\n @Input() preventHomeEndKeyPropagation = false;\n\n /** Disables scrolling to active options when option list changes. Useful for server-side search */\n @Input() disableScrollToActiveOnOptionsChanged = false;\n\n /** Adds 508 screen reader support for search box */\n @Input() ariaLabel = 'dropdown search';\n\n /** Whether to show Select All Checkbox (for mat-select[multi=true]) */\n @Input() showToggleAllCheckbox = false;\n\n /** select all checkbox checked state */\n @Input() toggleAllCheckboxChecked = false;\n\n /** select all checkbox indeterminate state */\n @Input() toggleAllCheckboxIndeterminate = false;\n\n /** Display a message in a tooltip on the toggle-all checkbox */\n @Input() toggleAllCheckboxTooltipMessage = '';\n\n /** Define the position of the tooltip on the toggle-all checkbox. */\n @Input() toggleAllCheckboxTooltipPosition:\n | 'left'\n | 'right'\n | 'above'\n | 'below'\n | 'before'\n | 'after' = 'below';\n\n /** Show/Hide the search clear button of the search input */\n @Input() hideClearSearchButton = false;\n\n /**\n * Always restore selected options on selectionChange for mode multi (e.g. for lazy loading/infinity scrolling).\n * Defaults to false, so selected options are only restored while filtering is active.\n */\n @Input() alwaysRestoreSelectedOptionsMulti = false;\n\n /** Output emitter to send to parent component with the toggle all boolean */\n @Output() toggleAll = new EventEmitter<boolean>();\n\n /** Reference to the search input field */\n @ViewChild('searchSelectInput', { read: ElementRef, static: true })\n searchSelectInput?: ElementRef;\n\n /** Reference to the search input field */\n @ViewChild('innerSelectSearch', { read: ElementRef, static: true })\n innerSelectSearch?: ElementRef;\n\n /** Reference to custom search input clear icon */\n @ContentChild(MatSelectSearchClearDirective)\n clearIcon?: MatSelectSearchClearDirective;\n\n /** Reference to custom no entries found element */\n @ContentChild(MatSelectNoEntriesFoundDirective)\n noEntriesFound?: MatSelectNoEntriesFoundDirective;\n\n /** Current search value */\n get value(): string {\n return (this._formControl as FormControl).value;\n }\n\n private _lastExternalInputValue?: string;\n\n onTouched: (_: any) => void = (_: any) => {\n //\n };\n\n /** Reference to the MatSelect options */\n public set _options(_options: QueryList<MatOption>) {\n this._options$.next(_options);\n }\n\n public get _options(): QueryList<MatOption> {\n return this._options$.getValue();\n }\n\n public _options$: BehaviorSubject<QueryList<MatOption>> = new BehaviorSubject<\n QueryList<MatOption>\n >(new QueryList());\n\n private optionsList$: Observable<MatOption[]> = this._options$.pipe(\n switchMap(_options =>\n _options\n ? _options.changes.pipe(\n map(options => options.toArray()),\n startWith<MatOption[]>(_options.toArray()),\n )\n : of([]),\n ),\n );\n\n private optionsLength$: Observable<number> = this.optionsList$.pipe(\n map(options => (options ? options.length : 0)),\n );\n\n /** Previously selected values when using <mat-select [multiple]=\"true\">*/\n private previousSelectedValues?: any[];\n\n public _formControl: FormControl<string | null> = new FormControl<string>('');\n\n /** whether to show the no entries found message */\n public _showNoEntriesFound$: Observable<boolean> = combineLatest([\n this._formControl.valueChanges,\n this.optionsLength$,\n ]).pipe(\n map(([_, optionsLength]) => {\n return (\n this.noEntriesFoundLabel !== '' &&\n optionsLength === this.getOptionsLengthOffset()\n );\n }),\n );\n\n /** Subject that emits when the component has been destroyed. */\n private _onDestroy = new Subject<void>();\n\n /** Reference to active descendant for ARIA Support. */\n private activeDescendant?: HTMLElement;\n\n constructor(\n @Inject(MatSelect) public matSelect: MatSelect,\n public changeDetectorRef: ChangeDetectorRef,\n private _viewportRuler: ViewportRuler,\n @Optional() @Inject(MatOption) public matOption: MatOption,\n @Optional() @Inject(MatFormField) public matFormField: MatFormField,\n @Optional()\n @Inject(MAT_SELECTSEARCH_DEFAULT_OPTIONS)\n defaultOptions: MatSelectSearchOptions,\n ) {\n this.applyDefaultOptions(defaultOptions);\n }\n\n private applyDefaultOptions(defaultOptions: MatSelectSearchOptions) {\n if (!defaultOptions) {\n return;\n }\n for (const key of configurableDefaultOptions) {\n // eslint-disable-next-line\n if (defaultOptions.hasOwnProperty(key)) {\n (this[key] as any) = defaultOptions[key];\n }\n }\n }\n\n ngOnInit() {\n // set custom mat-option class if the component was placed inside a mat-option\n if (this.matOption) {\n this.matOption.disabled = true;\n this.matOption\n ._getHostElement()\n .classList.add('contains-mat-select-search');\n //this.matOption._getHostElement().setAttribute('aria-hidden', 'true'); // this provoke an error\n } else {\n console.error(\n '<ngx-mat-select-search> must be placed inside a <mat-option> element',\n );\n }\n\n // when the select dropdown panel is opened or closed\n this.matSelect.openedChange\n .pipe(delay(1), takeUntil(this._onDestroy))\n .subscribe(opened => {\n if (opened) {\n this.updateInputWidth();\n // focus the search field when opening\n if (!this.disableInitialFocus) {\n this._focus();\n }\n } else {\n // clear it when closing\n if (this.clearSearchInput) {\n this._reset();\n }\n }\n });\n\n // set the first item active after the options changed\n this.matSelect.openedChange\n .pipe(\n take(1),\n switchMap(_ => {\n this._options = this.matSelect.options;\n\n // Closure variable for tracking the most recent first option.\n // In order to avoid avoid causing the list to\n // scroll to the top when options are added to the bottom of\n // the list (eg: infinite scroll), we compare only\n // the changes to the first options to determine if we\n // should set the first item as active.\n // This prevents unnecessary scrolling to the top of the list\n // when options are appended, but allows the first item\n // in the list to be set as active by default when there\n // is no active selection\n let previousFirstOption =\n this._options.toArray()[this.getOptionsLengthOffset()];\n\n return this._options.changes.pipe(\n tap(() => {\n // avoid \"expression has been changed\" error\n setTimeout(() => {\n // Convert the QueryList to an array\n const options = this._options.toArray();\n\n // The true first item is offset by 1\n const currentFirstOption =\n options[this.getOptionsLengthOffset()];\n\n const keyManager = this.matSelect._keyManager;\n if (keyManager && this.matSelect.panelOpen) {\n // set first item active and input width\n\n // Check to see if the first option in these changes is different from the previous.\n const firstOptionIsChanged = !this.matSelect.compareWith(\n previousFirstOption,\n currentFirstOption,\n );\n\n // CASE: The first option is different now.\n // Indiciates we should set it as active and scroll to the top.\n if (\n firstOptionIsChanged ||\n !keyManager.activeItem ||\n !options.find(option =>\n this.matSelect.compareWith(option, keyManager.activeItem),\n )\n ) {\n keyManager.setFirstItemActive();\n }\n\n // wait for panel width changes\n setTimeout(() => {\n this.updateInputWidth();\n });\n }\n\n // Update our reference\n previousFirstOption = currentFirstOption;\n });\n }),\n );\n }),\n )\n .pipe(takeUntil(this._onDestroy))\n .subscribe();\n\n // add or remove css class depending on whether to show the no entries found message\n // note: this is hacky\n this._showNoEntriesFound$\n .pipe(takeUntil(this._onDestroy))\n .subscribe(showNoEntriesFound => {\n // set no entries found class on mat option\n if (this.matOption) {\n if (showNoEntriesFound) {\n this.matOption\n ._getHostElement()\n .classList.add('mat-select-search-no-entries-found');\n } else {\n this.matOption\n ._getHostElement()\n .classList.remove('mat-select-search-no-entries-found');\n }\n }\n });\n\n // resize the input width when the viewport is resized, i.e. the trigger width could potentially be resized\n this._viewportRuler\n .change()\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n if (this.matSelect.panelOpen) {\n this.updateInputWidth();\n }\n });\n\n this.initMultipleHandling();\n\n this.optionsList$.pipe(takeUntil(this._onDestroy)).subscribe(() => {\n // update view when available options change\n this.changeDetectorRef.markForCheck();\n });\n }\n\n _emitSelectAllBooleanToParent(state: boolean) {\n this.toggleAll.emit(state);\n }\n\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n _isToggleAllCheckboxVisible(): boolean {\n return this.matSelect.multiple && this.showToggleAllCheckbox;\n }\n\n /**\n * Handles the key down event with MatSelect.\n * Allows e.g. selecting with enter key, navigation with arrow keys, etc.\n * @param event\n */\n _handleKeydown(event: KeyboardEvent) {\n // Prevent propagation for all alphanumeric characters in order to avoid selection issues\n if (\n (event.key && event.key.length === 1) ||\n (event.keyCode >= A && event.keyCode <= Z) ||\n (event.keyCode >= ZERO && event.keyCode <= NINE) ||\n event.keyCode === SPACE ||\n (this.preventHomeEndKeyPropagation &&\n (event.keyCode === HOME || event.keyCode === END))\n ) {\n event.stopPropagation();\n }\n\n if (this.matSelect.multiple && event.key && event.keyCode === ENTER) {\n // Regain focus after multiselect, so we can further type\n setTimeout(() => this._focus());\n }\n\n // Special case if click Escape, if input is empty, close the dropdown, if not, empty out the search field\n if (\n this.enableClearOnEscapePressed === true &&\n event.keyCode === ESCAPE &&\n this.value\n ) {\n this._reset(true);\n event.stopPropagation();\n }\n }\n\n /**\n * Handles the key up event with MatSelect.\n * Allows e.g. the announcing of the currently activeDescendant by screen readers.\n */\n _handleKeyup(event: KeyboardEvent) {\n if (event.keyCode === UP_ARROW || event.keyCode === DOWN_ARROW) {\n const ariaActiveDescendantId = this.matSelect._getAriaActiveDescendant();\n const index = this._options\n .toArray()\n .findIndex(item => item.id === ariaActiveDescendantId);\n if (index !== -1) {\n this.unselectActiveDescendant();\n\n const temp = this._options.toArray();\n this.activeDescendant = temp[index]._getHostElement();\n\n this.activeDescendant.setAttribute('aria-selected', 'true');\n\n this.searchSelectInput?.nativeElement.setAttribute(\n 'aria-activedescendant',\n ariaActiveDescendantId,\n );\n }\n }\n }\n\n writeValue(value: string) {\n this._lastExternalInputValue = value;\n this._formControl.setValue(value);\n this.changeDetectorRef.markForCheck();\n }\n\n onBlur() {\n this.unselectActiveDescendant();\n }\n\n registerOnChange(fn: (value: string | null) => void) {\n this._formControl.valueChanges\n .pipe(\n filter(value => value !== this._lastExternalInputValue),\n tap(() => (this._lastExternalInputValue = undefined)),\n takeUntil(this._onDestroy),\n )\n .subscribe(fn);\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n /**\n * Focuses the search input field\n */\n public _focus() {\n if (!this.searchSelectInput || !this.matSelect.panel) {\n return;\n }\n // save and restore scrollTop of panel, since it will be reset by focus()\n // note: this is hacky\n const panel = this.matSelect.panel.nativeElement;\n const scrollTop = panel.scrollTop;\n\n // focus\n this.searchSelectInput.nativeElement.focus();\n\n panel.scrollTop = scrollTop;\n }\n\n /**\n * Resets the current search value\n * @param focus whether to focus after resetting\n */\n public _reset(focus?: boolean) {\n this._formControl.setValue('');\n if (focus) {\n this._focus();\n }\n }\n\n /**\n * Initializes handling <mat-select [multiple]=\"true\">\n * Note: to improve this code, mat-select should be extended to allow disabling resetting the selection while filtering.\n */\n private initMultipleHandling() {\n if (!this.matSelect.ngControl) {\n if (this.matSelect.multiple) {\n // note: the access to matSelect.ngControl (instead of matSelect.value / matSelect.valueChanges)\n // is necessary to properly work in multi-selection mode.\n console.error(\n 'the mat-select containing ngx-mat-select-search must have a ngModel or formControl directive when multiple=true',\n );\n }\n return;\n }\n // if <mat-select [multiple]=\"true\">\n // store previously selected values and restore them when they are deselected\n // because the option is not available while we are currently filtering\n this.previousSelectedValues = this.matSelect.ngControl.value;\n\n this.matSelect.ngControl.valueChanges\n ?.pipe(takeUntil(this._onDestroy))\n .subscribe(values => {\n let restoreSelectedValues = false;\n if (this.matSelect.multiple) {\n if (\n (this.alwaysRestoreSelectedOptionsMulti ||\n (this._formControl.value && this._formControl.value.length)) &&\n this.previousSelectedValues &&\n Array.isArray(this.previousSelectedValues)\n ) {\n if (!values || !Array.isArray(values)) {\n values = [];\n }\n const optionValues = this.matSelect.options.map(\n option => option.value,\n );\n this.previousSelectedValues.forEach(previousValue => {\n if (\n !values.some((v: any) =>\n this.matSelect.compareWith(v, previousValue),\n ) &&\n !optionValues.some(v =>\n this.matSelect.compareWith(v, previousValue),\n )\n ) {\n // if a value that was selected before is deselected and not found in the options, it was deselected\n // due to the filtering, so we restore it.\n values.push(previousValue);\n restoreSelectedValues = true;\n }\n });\n }\n }\n this.previousSelectedValues = values;\n\n if (restoreSelectedValues) {\n this.matSelect._onChange(values);\n }\n });\n }\n\n /**\n * Set the width of the innerSelectSearch to fit even custom scrollbars\n * And support all Operation Systems\n */\n public updateInputWidth() {\n if (!this.innerSelectSearch || !this.innerSelectSearch.nativeElement) {\n return;\n }\n let element: HTMLElement = this.innerSelectSearch.nativeElement;\n if (element.parentElement !== null) {\n let panelElement: HTMLElement | null = null;\n while ((element = element.parentElement)) {\n if (element.classList.contains('mat-select-panel')) {\n panelElement = element;\n break;\n }\n }\n if (panelElement !== null) {\n this.innerSelectSearch.nativeElement.style.width =\n panelElement.clientWidth + 'px';\n }\n }\n }\n\n /**\n * Determine the offset to length that can be caused by the optional matOption used as a search input.\n */\n private getOptionsLengthOffset(): number {\n if (this.matOption) {\n return 1;\n } else {\n return 0;\n }\n }\n\n private unselectActiveDescendant() {\n this.activeDescendant?.removeAttribute('aria-selected');\n this.searchSelectInput?.nativeElement.removeAttribute(\n 'aria-activedescendant',\n );\n }\n}\n","<!--\nCopyright (c) 2018 Bithost GmbH All Rights Reserved.\n\nUse of this source code is governed by an MIT-style license that can be\nfound in the LICENSE file at https://angular.io/license\n-->\n<!-- Placeholder to adjust vertical offset of the mat-option elements -->\n<input matInput class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: the mat-datepicker-content mat-tab-header are needed to inherit the material theme colors, see PR #22 -->\n<div\n #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\"\n [ngClass]=\"{\n 'mat-select-search-inner-multiple': matSelect.multiple,\n 'mat-select-search-inner-toggle-all': _isToggleAllCheckboxVisible(),\n }\"\n>\n <mat-checkbox\n *ngIf=\"_isToggleAllCheckboxVisible()\"\n [color]=\"matFormField.color\"\n class=\"mat-select-search-toggle-all-checkbox\"\n [checked]=\"toggleAllCheckboxChecked\"\n [indeterminate]=\"toggleAllCheckboxIndeterminate\"\n [matTooltip]=\"toggleAllCheckboxTooltipMessage\"\n matTooltipClass=\"ngx-mat-select-search-toggle-all-tooltip\"\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\n (change)=\"_emitSelectAllBooleanToParent($event.checked)\"\n ></mat-checkbox>\n\n <input\n class=\"mat-select-search-input\"\n autocomplete=\"off\"\n [type]=\"type\"\n [formControl]=\"_formControl\"\n #searchSelectInput\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholderLabel\"\n [attr.aria-label]=\"ariaLabel\"\n />\n <mat-icon *ngIf=\"value === '' && !searching\" class=\"suffix\">search</mat-icon>\n <mat-spinner\n *ngIf=\"searching\"\n class=\"mat-select-search-spinner\"\n diameter=\"16\"\n ></mat-spinner>\n\n <button\n *ngIf=\"!hideClearSearchButton && value && !searching\"\n mat-icon-button\n aria-label=\"Clear\"\n (click)=\"_reset(true)\"\n class=\"mat-select-search-clear\"\n >\n <ng-content\n *ngIf=\"clearIcon; else defaultIcon\"\n select=\"[matSelectSearchClear]\"\n ></ng-content>\n <ng-template #defaultIcon>\n <mat-icon [svgIcon]=\"closeSvgIcon\">\n {{ !closeSvgIcon ? closeIcon : null }}\n </mat-icon>\n </ng-template>\n </button>\n\n <ng-content select=\".mat-select-search-custom-header-content\"></ng-content>\n\n <mat-divider></mat-divider>\n</div>\n\n<div\n *ngIf=\"_showNoEntriesFound$ | async\"\n class=\"mat-select-search-no-entries-found\"\n>\n <ng-content\n *ngIf=\"noEntriesFound; else defaultNoEntriesFound\"\n select=\"[matSelectNoEntriesFound]\"\n ></ng-content>\n <ng-template #defaultNoEntriesFound>{{ noEntriesFoundLabel }}</ng-template>\n</div>\n","/**\n * Copyright (c) 2018 Bithost GmbH All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { NgModule } from '@angular/core';\nimport { MatSelectSearchComponent } from './mat-select-search.component';\n\nimport { MatSelectSearchClearDirective } from './mat-select-search-clear.directive';\nimport { MatSelectNoEntriesFoundDirective } from './mat-select-no-entries-found.directive';\n\nexport { MatSelectSearchClearDirective };\nexport { MatSelectNoEntriesFoundDirective };\n\n@NgModule({\n imports: [\n MatSelectSearchComponent,\n MatSelectSearchClearDirective,\n MatSelectNoEntriesFoundDirective,\n ],\n exports: [\n MatSelectSearchComponent,\n MatSelectSearchClearDirective,\n MatSelectNoEntriesFoundDirective,\n ],\n})\nexport class MatSelectSearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}