@ngstarter-ui/components 1.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/README.md +0 -0
  2. package/fesm2022/ngstarter-ui-components-action-required.mjs +42 -0
  3. package/fesm2022/ngstarter-ui-components-action-required.mjs.map +1 -0
  4. package/fesm2022/ngstarter-ui-components-alert.mjs +132 -0
  5. package/fesm2022/ngstarter-ui-components-alert.mjs.map +1 -0
  6. package/fesm2022/ngstarter-ui-components-announcement.mjs +86 -0
  7. package/fesm2022/ngstarter-ui-components-announcement.mjs.map +1 -0
  8. package/fesm2022/ngstarter-ui-components-autocomplete.mjs +360 -0
  9. package/fesm2022/ngstarter-ui-components-autocomplete.mjs.map +1 -0
  10. package/fesm2022/ngstarter-ui-components-avatar.mjs +235 -0
  11. package/fesm2022/ngstarter-ui-components-avatar.mjs.map +1 -0
  12. package/fesm2022/ngstarter-ui-components-badge.mjs +97 -0
  13. package/fesm2022/ngstarter-ui-components-badge.mjs.map +1 -0
  14. package/fesm2022/ngstarter-ui-components-block-loader.mjs +48 -0
  15. package/fesm2022/ngstarter-ui-components-block-loader.mjs.map +1 -0
  16. package/fesm2022/ngstarter-ui-components-bottom-sheet.mjs +327 -0
  17. package/fesm2022/ngstarter-ui-components-bottom-sheet.mjs.map +1 -0
  18. package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs +209 -0
  19. package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs.map +1 -0
  20. package/fesm2022/ngstarter-ui-components-button-toggle.mjs +175 -0
  21. package/fesm2022/ngstarter-ui-components-button-toggle.mjs.map +1 -0
  22. package/fesm2022/ngstarter-ui-components-button.mjs +70 -0
  23. package/fesm2022/ngstarter-ui-components-button.mjs.map +1 -0
  24. package/fesm2022/ngstarter-ui-components-card-overlay.mjs +49 -0
  25. package/fesm2022/ngstarter-ui-components-card-overlay.mjs.map +1 -0
  26. package/fesm2022/ngstarter-ui-components-card.mjs +199 -0
  27. package/fesm2022/ngstarter-ui-components-card.mjs.map +1 -0
  28. package/fesm2022/ngstarter-ui-components-carousel.mjs +614 -0
  29. package/fesm2022/ngstarter-ui-components-carousel.mjs.map +1 -0
  30. package/fesm2022/ngstarter-ui-components-checkbox.mjs +300 -0
  31. package/fesm2022/ngstarter-ui-components-checkbox.mjs.map +1 -0
  32. package/fesm2022/ngstarter-ui-components-chips.mjs +589 -0
  33. package/fesm2022/ngstarter-ui-components-chips.mjs.map +1 -0
  34. package/fesm2022/ngstarter-ui-components-code-highlighter.mjs +347 -0
  35. package/fesm2022/ngstarter-ui-components-code-highlighter.mjs.map +1 -0
  36. package/fesm2022/ngstarter-ui-components-color-picker.mjs +713 -0
  37. package/fesm2022/ngstarter-ui-components-color-picker.mjs.map +1 -0
  38. package/fesm2022/ngstarter-ui-components-color-scheme.mjs +106 -0
  39. package/fesm2022/ngstarter-ui-components-color-scheme.mjs.map +1 -0
  40. package/fesm2022/ngstarter-ui-components-color-switcher.mjs +72 -0
  41. package/fesm2022/ngstarter-ui-components-color-switcher.mjs.map +1 -0
  42. package/fesm2022/ngstarter-ui-components-command-bar.mjs +57 -0
  43. package/fesm2022/ngstarter-ui-components-command-bar.mjs.map +1 -0
  44. package/fesm2022/ngstarter-ui-components-comment-editor.mjs +1024 -0
  45. package/fesm2022/ngstarter-ui-components-comment-editor.mjs.map +1 -0
  46. package/fesm2022/ngstarter-ui-components-comparison-slider.mjs +177 -0
  47. package/fesm2022/ngstarter-ui-components-comparison-slider.mjs.map +1 -0
  48. package/fesm2022/ngstarter-ui-components-confirm.mjs +85 -0
  49. package/fesm2022/ngstarter-ui-components-confirm.mjs.map +1 -0
  50. package/fesm2022/ngstarter-ui-components-content-editor-code-block.component-Bk6QTli8.mjs +173 -0
  51. package/fesm2022/ngstarter-ui-components-content-editor-code-block.component-Bk6QTli8.mjs.map +1 -0
  52. package/fesm2022/ngstarter-ui-components-content-editor-content-editor-content-editable.directive-Bvfa2dqh.mjs +124 -0
  53. package/fesm2022/ngstarter-ui-components-content-editor-content-editor-content-editable.directive-Bvfa2dqh.mjs.map +1 -0
  54. package/fesm2022/ngstarter-ui-components-content-editor-cursor-controller-4Ak8VqGX.mjs +99 -0
  55. package/fesm2022/ngstarter-ui-components-content-editor-cursor-controller-4Ak8VqGX.mjs.map +1 -0
  56. package/fesm2022/ngstarter-ui-components-content-editor-divider-block.component-C_iRTCPH.mjs +33 -0
  57. package/fesm2022/ngstarter-ui-components-content-editor-divider-block.component-C_iRTCPH.mjs.map +1 -0
  58. package/fesm2022/ngstarter-ui-components-content-editor-embed-block-BbkC_t86.mjs +354 -0
  59. package/fesm2022/ngstarter-ui-components-content-editor-embed-block-BbkC_t86.mjs.map +1 -0
  60. package/fesm2022/ngstarter-ui-components-content-editor-heading-block.component-D9_CxTY1.mjs +114 -0
  61. package/fesm2022/ngstarter-ui-components-content-editor-heading-block.component-D9_CxTY1.mjs.map +1 -0
  62. package/fesm2022/ngstarter-ui-components-content-editor-image-block.component-B4zJyUg1.mjs +146 -0
  63. package/fesm2022/ngstarter-ui-components-content-editor-image-block.component-B4zJyUg1.mjs.map +1 -0
  64. package/fesm2022/ngstarter-ui-components-content-editor-list-block.component-Cv6wx5Xe.mjs +215 -0
  65. package/fesm2022/ngstarter-ui-components-content-editor-list-block.component-Cv6wx5Xe.mjs.map +1 -0
  66. package/fesm2022/ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs +2548 -0
  67. package/fesm2022/ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs.map +1 -0
  68. package/fesm2022/ngstarter-ui-components-content-editor-paragraph-block.component-C9bQvDYU.mjs +110 -0
  69. package/fesm2022/ngstarter-ui-components-content-editor-paragraph-block.component-C9bQvDYU.mjs.map +1 -0
  70. package/fesm2022/ngstarter-ui-components-content-editor-quote-block.component-BbHds2r2.mjs +141 -0
  71. package/fesm2022/ngstarter-ui-components-content-editor-quote-block.component-BbHds2r2.mjs.map +1 -0
  72. package/fesm2022/ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs +1604 -0
  73. package/fesm2022/ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs.map +1 -0
  74. package/fesm2022/ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs +175 -0
  75. package/fesm2022/ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs.map +1 -0
  76. package/fesm2022/ngstarter-ui-components-content-editor.mjs +2 -0
  77. package/fesm2022/ngstarter-ui-components-content-editor.mjs.map +1 -0
  78. package/fesm2022/ngstarter-ui-components-content-fade.mjs +35 -0
  79. package/fesm2022/ngstarter-ui-components-content-fade.mjs.map +1 -0
  80. package/fesm2022/ngstarter-ui-components-cookie-popup.mjs +107 -0
  81. package/fesm2022/ngstarter-ui-components-cookie-popup.mjs.map +1 -0
  82. package/fesm2022/ngstarter-ui-components-core.mjs +1330 -0
  83. package/fesm2022/ngstarter-ui-components-core.mjs.map +1 -0
  84. package/fesm2022/ngstarter-ui-components-country-select.mjs +489 -0
  85. package/fesm2022/ngstarter-ui-components-country-select.mjs.map +1 -0
  86. package/fesm2022/ngstarter-ui-components-crop.mjs +183 -0
  87. package/fesm2022/ngstarter-ui-components-crop.mjs.map +1 -0
  88. package/fesm2022/ngstarter-ui-components-currency-select.mjs +397 -0
  89. package/fesm2022/ngstarter-ui-components-currency-select.mjs.map +1 -0
  90. package/fesm2022/ngstarter-ui-components-data-view.mjs +1494 -0
  91. package/fesm2022/ngstarter-ui-components-data-view.mjs.map +1 -0
  92. package/fesm2022/ngstarter-ui-components-date-format-select.mjs +154 -0
  93. package/fesm2022/ngstarter-ui-components-date-format-select.mjs.map +1 -0
  94. package/fesm2022/ngstarter-ui-components-datepicker.mjs +1159 -0
  95. package/fesm2022/ngstarter-ui-components-datepicker.mjs.map +1 -0
  96. package/fesm2022/ngstarter-ui-components-dialog.mjs +357 -0
  97. package/fesm2022/ngstarter-ui-components-dialog.mjs.map +1 -0
  98. package/fesm2022/ngstarter-ui-components-divider.mjs +42 -0
  99. package/fesm2022/ngstarter-ui-components-divider.mjs.map +1 -0
  100. package/fesm2022/ngstarter-ui-components-drawer.mjs +132 -0
  101. package/fesm2022/ngstarter-ui-components-drawer.mjs.map +1 -0
  102. package/fesm2022/ngstarter-ui-components-emoji-picker.mjs +245 -0
  103. package/fesm2022/ngstarter-ui-components-emoji-picker.mjs.map +1 -0
  104. package/fesm2022/ngstarter-ui-components-empty-state.mjs +75 -0
  105. package/fesm2022/ngstarter-ui-components-empty-state.mjs.map +1 -0
  106. package/fesm2022/ngstarter-ui-components-expand.mjs +56 -0
  107. package/fesm2022/ngstarter-ui-components-expand.mjs.map +1 -0
  108. package/fesm2022/ngstarter-ui-components-expansion.mjs +193 -0
  109. package/fesm2022/ngstarter-ui-components-expansion.mjs.map +1 -0
  110. package/fesm2022/ngstarter-ui-components-filter-builder.mjs +333 -0
  111. package/fesm2022/ngstarter-ui-components-filter-builder.mjs.map +1 -0
  112. package/fesm2022/ngstarter-ui-components-form-field.mjs +230 -0
  113. package/fesm2022/ngstarter-ui-components-form-field.mjs.map +1 -0
  114. package/fesm2022/ngstarter-ui-components-form-renderer-autocomplete-many-field-BKQVlZHV.mjs +124 -0
  115. package/fesm2022/ngstarter-ui-components-form-renderer-autocomplete-many-field-BKQVlZHV.mjs.map +1 -0
  116. package/fesm2022/ngstarter-ui-components-form-renderer-checkbox-field-CoyKdvhV.mjs +22 -0
  117. package/fesm2022/ngstarter-ui-components-form-renderer-checkbox-field-CoyKdvhV.mjs.map +1 -0
  118. package/fesm2022/ngstarter-ui-components-form-renderer-datepicker-field-Bzc0TPO9.mjs +44 -0
  119. package/fesm2022/ngstarter-ui-components-form-renderer-datepicker-field-Bzc0TPO9.mjs.map +1 -0
  120. package/fesm2022/ngstarter-ui-components-form-renderer-divider-content-CwGzDCZv.mjs +17 -0
  121. package/fesm2022/ngstarter-ui-components-form-renderer-divider-content-CwGzDCZv.mjs.map +1 -0
  122. package/fesm2022/ngstarter-ui-components-form-renderer-image-content-ICTwkZPa.mjs +17 -0
  123. package/fesm2022/ngstarter-ui-components-form-renderer-image-content-ICTwkZPa.mjs.map +1 -0
  124. package/fesm2022/ngstarter-ui-components-form-renderer-input-field-RYxi-Mpw.mjs +35 -0
  125. package/fesm2022/ngstarter-ui-components-form-renderer-input-field-RYxi-Mpw.mjs.map +1 -0
  126. package/fesm2022/ngstarter-ui-components-form-renderer-radio-group-field-Cv3AGpoq.mjs +38 -0
  127. package/fesm2022/ngstarter-ui-components-form-renderer-radio-group-field-Cv3AGpoq.mjs.map +1 -0
  128. package/fesm2022/ngstarter-ui-components-form-renderer-select-field-eLcwI-BY.mjs +39 -0
  129. package/fesm2022/ngstarter-ui-components-form-renderer-select-field-eLcwI-BY.mjs.map +1 -0
  130. package/fesm2022/ngstarter-ui-components-form-renderer-text-content-BjzH_M3-.mjs +24 -0
  131. package/fesm2022/ngstarter-ui-components-form-renderer-text-content-BjzH_M3-.mjs.map +1 -0
  132. package/fesm2022/ngstarter-ui-components-form-renderer-textarea-field-4zH7FTQ1.mjs +37 -0
  133. package/fesm2022/ngstarter-ui-components-form-renderer-textarea-field-4zH7FTQ1.mjs.map +1 -0
  134. package/fesm2022/ngstarter-ui-components-form-renderer-timezone-field-BpH65Hd-.mjs +35 -0
  135. package/fesm2022/ngstarter-ui-components-form-renderer-timezone-field-BpH65Hd-.mjs.map +1 -0
  136. package/fesm2022/ngstarter-ui-components-form-renderer-toggle-field-iyqUrWxt.mjs +22 -0
  137. package/fesm2022/ngstarter-ui-components-form-renderer-toggle-field-iyqUrWxt.mjs.map +1 -0
  138. package/fesm2022/ngstarter-ui-components-form-renderer.mjs +317 -0
  139. package/fesm2022/ngstarter-ui-components-form-renderer.mjs.map +1 -0
  140. package/fesm2022/ngstarter-ui-components-gauge.mjs +44 -0
  141. package/fesm2022/ngstarter-ui-components-gauge.mjs.map +1 -0
  142. package/fesm2022/ngstarter-ui-components-grid.mjs +78 -0
  143. package/fesm2022/ngstarter-ui-components-grid.mjs.map +1 -0
  144. package/fesm2022/ngstarter-ui-components-guided-tour.mjs +736 -0
  145. package/fesm2022/ngstarter-ui-components-guided-tour.mjs.map +1 -0
  146. package/fesm2022/ngstarter-ui-components-headless-stepper.mjs +192 -0
  147. package/fesm2022/ngstarter-ui-components-headless-stepper.mjs.map +1 -0
  148. package/fesm2022/ngstarter-ui-components-icon.mjs +61 -0
  149. package/fesm2022/ngstarter-ui-components-icon.mjs.map +1 -0
  150. package/fesm2022/ngstarter-ui-components-image-designer.mjs +4016 -0
  151. package/fesm2022/ngstarter-ui-components-image-designer.mjs.map +1 -0
  152. package/fesm2022/ngstarter-ui-components-image-placeholder.mjs +20 -0
  153. package/fesm2022/ngstarter-ui-components-image-placeholder.mjs.map +1 -0
  154. package/fesm2022/ngstarter-ui-components-image-resizer.mjs +151 -0
  155. package/fesm2022/ngstarter-ui-components-image-resizer.mjs.map +1 -0
  156. package/fesm2022/ngstarter-ui-components-image-viewer.mjs +349 -0
  157. package/fesm2022/ngstarter-ui-components-image-viewer.mjs.map +1 -0
  158. package/fesm2022/ngstarter-ui-components-image-zoom-viewer.mjs +162 -0
  159. package/fesm2022/ngstarter-ui-components-image-zoom-viewer.mjs.map +1 -0
  160. package/fesm2022/ngstarter-ui-components-incidents.mjs +257 -0
  161. package/fesm2022/ngstarter-ui-components-incidents.mjs.map +1 -0
  162. package/fesm2022/ngstarter-ui-components-inline-text-edit.mjs +179 -0
  163. package/fesm2022/ngstarter-ui-components-inline-text-edit.mjs.map +1 -0
  164. package/fesm2022/ngstarter-ui-components-input-mask.mjs +180 -0
  165. package/fesm2022/ngstarter-ui-components-input-mask.mjs.map +1 -0
  166. package/fesm2022/ngstarter-ui-components-input-validator.mjs +24 -0
  167. package/fesm2022/ngstarter-ui-components-input-validator.mjs.map +1 -0
  168. package/fesm2022/ngstarter-ui-components-input.mjs +152 -0
  169. package/fesm2022/ngstarter-ui-components-input.mjs.map +1 -0
  170. package/fesm2022/ngstarter-ui-components-kanban-board.mjs +156 -0
  171. package/fesm2022/ngstarter-ui-components-kanban-board.mjs.map +1 -0
  172. package/fesm2022/ngstarter-ui-components-kbd.mjs +31 -0
  173. package/fesm2022/ngstarter-ui-components-kbd.mjs.map +1 -0
  174. package/fesm2022/ngstarter-ui-components-layout.mjs +199 -0
  175. package/fesm2022/ngstarter-ui-components-layout.mjs.map +1 -0
  176. package/fesm2022/ngstarter-ui-components-list.mjs +279 -0
  177. package/fesm2022/ngstarter-ui-components-list.mjs.map +1 -0
  178. package/fesm2022/ngstarter-ui-components-logo.mjs +51 -0
  179. package/fesm2022/ngstarter-ui-components-logo.mjs.map +1 -0
  180. package/fesm2022/ngstarter-ui-components-marquee.mjs +76 -0
  181. package/fesm2022/ngstarter-ui-components-marquee.mjs.map +1 -0
  182. package/fesm2022/ngstarter-ui-components-menu.mjs +851 -0
  183. package/fesm2022/ngstarter-ui-components-menu.mjs.map +1 -0
  184. package/fesm2022/ngstarter-ui-components-micro-chart.mjs +928 -0
  185. package/fesm2022/ngstarter-ui-components-micro-chart.mjs.map +1 -0
  186. package/fesm2022/ngstarter-ui-components-navigation.mjs +439 -0
  187. package/fesm2022/ngstarter-ui-components-navigation.mjs.map +1 -0
  188. package/fesm2022/ngstarter-ui-components-notifications.mjs +181 -0
  189. package/fesm2022/ngstarter-ui-components-notifications.mjs.map +1 -0
  190. package/fesm2022/ngstarter-ui-components-number-input.mjs +293 -0
  191. package/fesm2022/ngstarter-ui-components-number-input.mjs.map +1 -0
  192. package/fesm2022/ngstarter-ui-components-option.mjs +157 -0
  193. package/fesm2022/ngstarter-ui-components-option.mjs.map +1 -0
  194. package/fesm2022/ngstarter-ui-components-overlay.mjs +112 -0
  195. package/fesm2022/ngstarter-ui-components-overlay.mjs.map +1 -0
  196. package/fesm2022/ngstarter-ui-components-page-loading-bar.mjs +77 -0
  197. package/fesm2022/ngstarter-ui-components-page-loading-bar.mjs.map +1 -0
  198. package/fesm2022/ngstarter-ui-components-paginator.mjs +297 -0
  199. package/fesm2022/ngstarter-ui-components-paginator.mjs.map +1 -0
  200. package/fesm2022/ngstarter-ui-components-panel.mjs +123 -0
  201. package/fesm2022/ngstarter-ui-components-panel.mjs.map +1 -0
  202. package/fesm2022/ngstarter-ui-components-password-strength.mjs +335 -0
  203. package/fesm2022/ngstarter-ui-components-password-strength.mjs.map +1 -0
  204. package/fesm2022/ngstarter-ui-components-phone-input.mjs +651 -0
  205. package/fesm2022/ngstarter-ui-components-phone-input.mjs.map +1 -0
  206. package/fesm2022/ngstarter-ui-components-pin-input.mjs +193 -0
  207. package/fesm2022/ngstarter-ui-components-pin-input.mjs.map +1 -0
  208. package/fesm2022/ngstarter-ui-components-popover.mjs +302 -0
  209. package/fesm2022/ngstarter-ui-components-popover.mjs.map +1 -0
  210. package/fesm2022/ngstarter-ui-components-progress-bar.mjs +68 -0
  211. package/fesm2022/ngstarter-ui-components-progress-bar.mjs.map +1 -0
  212. package/fesm2022/ngstarter-ui-components-radio-card.mjs +102 -0
  213. package/fesm2022/ngstarter-ui-components-radio-card.mjs.map +1 -0
  214. package/fesm2022/ngstarter-ui-components-radio.mjs +147 -0
  215. package/fesm2022/ngstarter-ui-components-radio.mjs.map +1 -0
  216. package/fesm2022/ngstarter-ui-components-rail-nav.mjs +87 -0
  217. package/fesm2022/ngstarter-ui-components-rail-nav.mjs.map +1 -0
  218. package/fesm2022/ngstarter-ui-components-resizable-container.mjs +74 -0
  219. package/fesm2022/ngstarter-ui-components-resizable-container.mjs.map +1 -0
  220. package/fesm2022/ngstarter-ui-components-screen-loader.mjs +95 -0
  221. package/fesm2022/ngstarter-ui-components-screen-loader.mjs.map +1 -0
  222. package/fesm2022/ngstarter-ui-components-scroll-spy.mjs +219 -0
  223. package/fesm2022/ngstarter-ui-components-scroll-spy.mjs.map +1 -0
  224. package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs +459 -0
  225. package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs.map +1 -0
  226. package/fesm2022/ngstarter-ui-components-segmented.mjs +218 -0
  227. package/fesm2022/ngstarter-ui-components-segmented.mjs.map +1 -0
  228. package/fesm2022/ngstarter-ui-components-select.mjs +496 -0
  229. package/fesm2022/ngstarter-ui-components-select.mjs.map +1 -0
  230. package/fesm2022/ngstarter-ui-components-side-panel.mjs +107 -0
  231. package/fesm2022/ngstarter-ui-components-side-panel.mjs.map +1 -0
  232. package/fesm2022/ngstarter-ui-components-sidebar.mjs +435 -0
  233. package/fesm2022/ngstarter-ui-components-sidebar.mjs.map +1 -0
  234. package/fesm2022/ngstarter-ui-components-sidenav.mjs +354 -0
  235. package/fesm2022/ngstarter-ui-components-sidenav.mjs.map +1 -0
  236. package/fesm2022/ngstarter-ui-components-signature-pad.mjs +452 -0
  237. package/fesm2022/ngstarter-ui-components-signature-pad.mjs.map +1 -0
  238. package/fesm2022/ngstarter-ui-components-skeleton.mjs +22 -0
  239. package/fesm2022/ngstarter-ui-components-skeleton.mjs.map +1 -0
  240. package/fesm2022/ngstarter-ui-components-slide-toggle.mjs +93 -0
  241. package/fesm2022/ngstarter-ui-components-slide-toggle.mjs.map +1 -0
  242. package/fesm2022/ngstarter-ui-components-slider.mjs +481 -0
  243. package/fesm2022/ngstarter-ui-components-slider.mjs.map +1 -0
  244. package/fesm2022/ngstarter-ui-components-snack-bar.mjs +354 -0
  245. package/fesm2022/ngstarter-ui-components-snack-bar.mjs.map +1 -0
  246. package/fesm2022/ngstarter-ui-components-sort.mjs +140 -0
  247. package/fesm2022/ngstarter-ui-components-sort.mjs.map +1 -0
  248. package/fesm2022/ngstarter-ui-components-spinner.mjs +75 -0
  249. package/fesm2022/ngstarter-ui-components-spinner.mjs.map +1 -0
  250. package/fesm2022/ngstarter-ui-components-splash-screen.mjs +93 -0
  251. package/fesm2022/ngstarter-ui-components-splash-screen.mjs.map +1 -0
  252. package/fesm2022/ngstarter-ui-components-split.mjs +948 -0
  253. package/fesm2022/ngstarter-ui-components-split.mjs.map +1 -0
  254. package/fesm2022/ngstarter-ui-components-stepper.mjs +103 -0
  255. package/fesm2022/ngstarter-ui-components-stepper.mjs.map +1 -0
  256. package/fesm2022/ngstarter-ui-components-suggestions.mjs +72 -0
  257. package/fesm2022/ngstarter-ui-components-suggestions.mjs.map +1 -0
  258. package/fesm2022/ngstarter-ui-components-tab-panel.mjs +265 -0
  259. package/fesm2022/ngstarter-ui-components-tab-panel.mjs.map +1 -0
  260. package/fesm2022/ngstarter-ui-components-table.mjs +648 -0
  261. package/fesm2022/ngstarter-ui-components-table.mjs.map +1 -0
  262. package/fesm2022/ngstarter-ui-components-tabs.mjs +591 -0
  263. package/fesm2022/ngstarter-ui-components-tabs.mjs.map +1 -0
  264. package/fesm2022/ngstarter-ui-components-text-editor.mjs +1012 -0
  265. package/fesm2022/ngstarter-ui-components-text-editor.mjs.map +1 -0
  266. package/fesm2022/ngstarter-ui-components-thumbnail-maker.mjs +212 -0
  267. package/fesm2022/ngstarter-ui-components-thumbnail-maker.mjs.map +1 -0
  268. package/fesm2022/ngstarter-ui-components-tiles.mjs +634 -0
  269. package/fesm2022/ngstarter-ui-components-tiles.mjs.map +1 -0
  270. package/fesm2022/ngstarter-ui-components-timeline.mjs +122 -0
  271. package/fesm2022/ngstarter-ui-components-timeline.mjs.map +1 -0
  272. package/fesm2022/ngstarter-ui-components-timepicker.mjs +486 -0
  273. package/fesm2022/ngstarter-ui-components-timepicker.mjs.map +1 -0
  274. package/fesm2022/ngstarter-ui-components-timezone-select.mjs +371 -0
  275. package/fesm2022/ngstarter-ui-components-timezone-select.mjs.map +1 -0
  276. package/fesm2022/ngstarter-ui-components-toolbar.mjs +299 -0
  277. package/fesm2022/ngstarter-ui-components-toolbar.mjs.map +1 -0
  278. package/fesm2022/ngstarter-ui-components-tooltip.mjs +506 -0
  279. package/fesm2022/ngstarter-ui-components-tooltip.mjs.map +1 -0
  280. package/fesm2022/ngstarter-ui-components-tree.mjs +200 -0
  281. package/fesm2022/ngstarter-ui-components-tree.mjs.map +1 -0
  282. package/fesm2022/ngstarter-ui-components-upload.mjs +330 -0
  283. package/fesm2022/ngstarter-ui-components-upload.mjs.map +1 -0
  284. package/fesm2022/ngstarter-ui-components-video-player.mjs +516 -0
  285. package/fesm2022/ngstarter-ui-components-video-player.mjs.map +1 -0
  286. package/fesm2022/ngstarter-ui-components-video-viewer.mjs +218 -0
  287. package/fesm2022/ngstarter-ui-components-video-viewer.mjs.map +1 -0
  288. package/fesm2022/ngstarter-ui-components-visual-builder.mjs +18 -0
  289. package/fesm2022/ngstarter-ui-components-visual-builder.mjs.map +1 -0
  290. package/fesm2022/ngstarter-ui-components.mjs +6 -0
  291. package/fesm2022/ngstarter-ui-components.mjs.map +1 -0
  292. package/package.json +535 -0
  293. package/styles/_common.scss +456 -0
  294. package/styles/_global.scss +91 -0
  295. package/styles/themes/default.scss +2 -0
  296. package/types/ngstarter-ui-components-action-required.d.ts +14 -0
  297. package/types/ngstarter-ui-components-alert.d.ts +50 -0
  298. package/types/ngstarter-ui-components-announcement.d.ts +59 -0
  299. package/types/ngstarter-ui-components-autocomplete.d.ts +83 -0
  300. package/types/ngstarter-ui-components-avatar.d.ts +69 -0
  301. package/types/ngstarter-ui-components-badge.d.ts +38 -0
  302. package/types/ngstarter-ui-components-block-loader.d.ts +21 -0
  303. package/types/ngstarter-ui-components-bottom-sheet.d.ts +149 -0
  304. package/types/ngstarter-ui-components-breadcrumbs.d.ts +104 -0
  305. package/types/ngstarter-ui-components-button-toggle.d.ts +54 -0
  306. package/types/ngstarter-ui-components-button.d.ts +27 -0
  307. package/types/ngstarter-ui-components-card-overlay.d.ts +20 -0
  308. package/types/ngstarter-ui-components-card.d.ts +85 -0
  309. package/types/ngstarter-ui-components-carousel.d.ts +76 -0
  310. package/types/ngstarter-ui-components-checkbox.d.ts +94 -0
  311. package/types/ngstarter-ui-components-chips.d.ts +189 -0
  312. package/types/ngstarter-ui-components-code-highlighter.d.ts +28 -0
  313. package/types/ngstarter-ui-components-color-picker.d.ts +92 -0
  314. package/types/ngstarter-ui-components-color-scheme.d.ts +44 -0
  315. package/types/ngstarter-ui-components-color-switcher.d.ts +26 -0
  316. package/types/ngstarter-ui-components-command-bar.d.ts +28 -0
  317. package/types/ngstarter-ui-components-comment-editor.d.ts +194 -0
  318. package/types/ngstarter-ui-components-comparison-slider.d.ts +42 -0
  319. package/types/ngstarter-ui-components-confirm.d.ts +34 -0
  320. package/types/ngstarter-ui-components-content-editor.d.ts +321 -0
  321. package/types/ngstarter-ui-components-content-fade.d.ts +17 -0
  322. package/types/ngstarter-ui-components-cookie-popup.d.ts +41 -0
  323. package/types/ngstarter-ui-components-core.d.ts +421 -0
  324. package/types/ngstarter-ui-components-country-select.d.ts +78 -0
  325. package/types/ngstarter-ui-components-crop.d.ts +59 -0
  326. package/types/ngstarter-ui-components-currency-select.d.ts +82 -0
  327. package/types/ngstarter-ui-components-data-view.d.ts +391 -0
  328. package/types/ngstarter-ui-components-date-format-select.d.ts +59 -0
  329. package/types/ngstarter-ui-components-datepicker.d.ts +384 -0
  330. package/types/ngstarter-ui-components-dialog.d.ts +115 -0
  331. package/types/ngstarter-ui-components-divider.d.ts +18 -0
  332. package/types/ngstarter-ui-components-drawer.d.ts +32 -0
  333. package/types/ngstarter-ui-components-emoji-picker.d.ts +49 -0
  334. package/types/ngstarter-ui-components-empty-state.d.ts +33 -0
  335. package/types/ngstarter-ui-components-expand.d.ts +26 -0
  336. package/types/ngstarter-ui-components-expansion.d.ts +68 -0
  337. package/types/ngstarter-ui-components-filter-builder.d.ts +106 -0
  338. package/types/ngstarter-ui-components-form-field.d.ts +107 -0
  339. package/types/ngstarter-ui-components-form-renderer.d.ts +121 -0
  340. package/types/ngstarter-ui-components-gauge.d.ts +21 -0
  341. package/types/ngstarter-ui-components-grid.d.ts +45 -0
  342. package/types/ngstarter-ui-components-guided-tour.d.ts +227 -0
  343. package/types/ngstarter-ui-components-headless-stepper.d.ts +65 -0
  344. package/types/ngstarter-ui-components-icon.d.ts +17 -0
  345. package/types/ngstarter-ui-components-image-designer.d.ts +357 -0
  346. package/types/ngstarter-ui-components-image-placeholder.d.ts +8 -0
  347. package/types/ngstarter-ui-components-image-resizer.d.ts +35 -0
  348. package/types/ngstarter-ui-components-image-viewer.d.ts +63 -0
  349. package/types/ngstarter-ui-components-image-zoom-viewer.d.ts +34 -0
  350. package/types/ngstarter-ui-components-incidents.d.ts +119 -0
  351. package/types/ngstarter-ui-components-inline-text-edit.d.ts +39 -0
  352. package/types/ngstarter-ui-components-input-mask.d.ts +36 -0
  353. package/types/ngstarter-ui-components-input-validator.d.ts +5 -0
  354. package/types/ngstarter-ui-components-input.d.ts +53 -0
  355. package/types/ngstarter-ui-components-kanban-board.d.ts +68 -0
  356. package/types/ngstarter-ui-components-kbd.d.ts +13 -0
  357. package/types/ngstarter-ui-components-layout.d.ts +83 -0
  358. package/types/ngstarter-ui-components-list.d.ts +98 -0
  359. package/types/ngstarter-ui-components-logo.d.ts +26 -0
  360. package/types/ngstarter-ui-components-marquee.d.ts +27 -0
  361. package/types/ngstarter-ui-components-menu.d.ts +199 -0
  362. package/types/ngstarter-ui-components-micro-chart.d.ts +195 -0
  363. package/types/ngstarter-ui-components-navigation.d.ts +136 -0
  364. package/types/ngstarter-ui-components-notifications.d.ts +84 -0
  365. package/types/ngstarter-ui-components-number-input.d.ts +99 -0
  366. package/types/ngstarter-ui-components-option.d.ts +61 -0
  367. package/types/ngstarter-ui-components-overlay.d.ts +12 -0
  368. package/types/ngstarter-ui-components-page-loading-bar.d.ts +20 -0
  369. package/types/ngstarter-ui-components-paginator.d.ts +145 -0
  370. package/types/ngstarter-ui-components-panel.d.ts +59 -0
  371. package/types/ngstarter-ui-components-password-strength.d.ts +109 -0
  372. package/types/ngstarter-ui-components-phone-input.d.ts +103 -0
  373. package/types/ngstarter-ui-components-pin-input.d.ts +48 -0
  374. package/types/ngstarter-ui-components-popover.d.ts +94 -0
  375. package/types/ngstarter-ui-components-progress-bar.d.ts +30 -0
  376. package/types/ngstarter-ui-components-radio-card.d.ts +37 -0
  377. package/types/ngstarter-ui-components-radio.d.ts +45 -0
  378. package/types/ngstarter-ui-components-rail-nav.d.ts +36 -0
  379. package/types/ngstarter-ui-components-resizable-container.d.ts +25 -0
  380. package/types/ngstarter-ui-components-screen-loader.d.ts +34 -0
  381. package/types/ngstarter-ui-components-scroll-spy.d.ts +63 -0
  382. package/types/ngstarter-ui-components-scrollbar-area.d.ts +67 -0
  383. package/types/ngstarter-ui-components-segmented.d.ts +65 -0
  384. package/types/ngstarter-ui-components-select.d.ts +126 -0
  385. package/types/ngstarter-ui-components-side-panel.d.ts +42 -0
  386. package/types/ngstarter-ui-components-sidebar.d.ts +143 -0
  387. package/types/ngstarter-ui-components-sidenav.d.ts +86 -0
  388. package/types/ngstarter-ui-components-signature-pad.d.ts +49 -0
  389. package/types/ngstarter-ui-components-skeleton.d.ts +9 -0
  390. package/types/ngstarter-ui-components-slide-toggle.d.ts +41 -0
  391. package/types/ngstarter-ui-components-slider.d.ts +85 -0
  392. package/types/ngstarter-ui-components-snack-bar.d.ts +142 -0
  393. package/types/ngstarter-ui-components-sort.d.ts +66 -0
  394. package/types/ngstarter-ui-components-spinner.d.ts +28 -0
  395. package/types/ngstarter-ui-components-splash-screen.d.ts +31 -0
  396. package/types/ngstarter-ui-components-split.d.ts +210 -0
  397. package/types/ngstarter-ui-components-stepper.d.ts +44 -0
  398. package/types/ngstarter-ui-components-suggestions.d.ts +32 -0
  399. package/types/ngstarter-ui-components-tab-panel.d.ts +96 -0
  400. package/types/ngstarter-ui-components-table.d.ts +277 -0
  401. package/types/ngstarter-ui-components-tabs.d.ts +145 -0
  402. package/types/ngstarter-ui-components-text-editor.d.ts +191 -0
  403. package/types/ngstarter-ui-components-thumbnail-maker.d.ts +35 -0
  404. package/types/ngstarter-ui-components-tiles.d.ts +109 -0
  405. package/types/ngstarter-ui-components-timeline.d.ts +57 -0
  406. package/types/ngstarter-ui-components-timepicker.d.ts +115 -0
  407. package/types/ngstarter-ui-components-timezone-select.d.ts +75 -0
  408. package/types/ngstarter-ui-components-toolbar.d.ts +74 -0
  409. package/types/ngstarter-ui-components-tooltip.d.ts +52 -0
  410. package/types/ngstarter-ui-components-tree.d.ts +60 -0
  411. package/types/ngstarter-ui-components-upload.d.ts +134 -0
  412. package/types/ngstarter-ui-components-video-player.d.ts +67 -0
  413. package/types/ngstarter-ui-components-video-viewer.d.ts +98 -0
  414. package/types/ngstarter-ui-components-visual-builder.d.ts +8 -0
  415. package/types/ngstarter-ui-components.d.ts +2 -0
@@ -0,0 +1,360 @@
1
+ import * as i0 from '@angular/core';
2
+ import { contentChildren, signal, viewChild, TemplateRef, input, booleanAttribute, output, forwardRef, ChangeDetectionStrategy, ViewEncapsulation, Component, inject, ElementRef, ViewContainerRef, Injector, effect, Directive } from '@angular/core';
3
+ import { Option, OPTION_PARENT } from '@ngstarter-ui/components/option';
4
+ export { Option } from '@ngstarter-ui/components/option';
5
+ import { NgClass } from '@angular/common';
6
+ import { toObservable } from '@angular/core/rxjs-interop';
7
+ import { Overlay } from '@angular/cdk/overlay';
8
+ import { TemplatePortal } from '@angular/cdk/portal';
9
+ import { Subscription, merge, fromEvent } from 'rxjs';
10
+ import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
11
+ import { FormField } from '@ngstarter-ui/components/form-field';
12
+ import { ChipInput } from '@ngstarter-ui/components/chips';
13
+
14
+ let nextId = 0;
15
+ class Autocomplete {
16
+ options = contentChildren(Option, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), descendants: true });
17
+ multiple = signal(false, ...(ngDevMode ? [{ debugName: "multiple" }] : /* istanbul ignore next */ []));
18
+ template = viewChild.required(TemplateRef);
19
+ panel = viewChild('panel', ...(ngDevMode ? [{ debugName: "panel" }] : /* istanbul ignore next */ []));
20
+ id = `ngs-autocomplete-${nextId++}`;
21
+ ariaLabel = input(undefined, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
22
+ ariaLabelledby = input(undefined, { ...(ngDevMode ? { debugName: "ariaLabelledby" } : /* istanbul ignore next */ {}), alias: 'aria-labelledby' });
23
+ autoActiveFirstOption = input(false, { ...(ngDevMode ? { debugName: "autoActiveFirstOption" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
24
+ autoSelectActiveOption = input(false, { ...(ngDevMode ? { debugName: "autoSelectActiveOption" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
25
+ classList = input(undefined, { ...(ngDevMode ? { debugName: "classList" } : /* istanbul ignore next */ {}), alias: 'class' });
26
+ disableRipple = input(false, { ...(ngDevMode ? { debugName: "disableRipple" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
27
+ displayWith = input(() => null, ...(ngDevMode ? [{ debugName: "displayWith" }] : /* istanbul ignore next */ []));
28
+ hideSingleSelectionIndicator = input(false, { ...(ngDevMode ? { debugName: "hideSingleSelectionIndicator" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
29
+ panelWidth = input(undefined, ...(ngDevMode ? [{ debugName: "panelWidth" }] : /* istanbul ignore next */ []));
30
+ requireSelection = input(false, { ...(ngDevMode ? { debugName: "requireSelection" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
31
+ closed = output();
32
+ opened = output();
33
+ optionActivated = output();
34
+ optionSelected = output();
35
+ _emitSelectEvent(option) {
36
+ this.optionSelected.emit({ source: this, option });
37
+ }
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Autocomplete, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", type: Autocomplete, isStandalone: true, selector: "ngs-autocomplete", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, autoActiveFirstOption: { classPropertyName: "autoActiveFirstOption", publicName: "autoActiveFirstOption", isSignal: true, isRequired: false, transformFunction: null }, autoSelectActiveOption: { classPropertyName: "autoSelectActiveOption", publicName: "autoSelectActiveOption", isSignal: true, isRequired: false, transformFunction: null }, classList: { classPropertyName: "classList", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, disableRipple: { classPropertyName: "disableRipple", publicName: "disableRipple", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "displayWith", isSignal: true, isRequired: false, transformFunction: null }, hideSingleSelectionIndicator: { classPropertyName: "hideSingleSelectionIndicator", publicName: "hideSingleSelectionIndicator", isSignal: true, isRequired: false, transformFunction: null }, panelWidth: { classPropertyName: "panelWidth", publicName: "panelWidth", isSignal: true, isRequired: false, transformFunction: null }, requireSelection: { classPropertyName: "requireSelection", publicName: "requireSelection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", opened: "opened", optionActivated: "optionActivated", optionSelected: "optionSelected" }, providers: [
40
+ {
41
+ provide: OPTION_PARENT,
42
+ useExisting: forwardRef(() => Autocomplete)
43
+ }
44
+ ], queries: [{ propertyName: "options", predicate: Option, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }], exportAs: ["ngsAutocomplete"], ngImport: i0, template: "<ng-template>\n <div class=\"ngs-autocomplete-panel\"\n role=\"listbox\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [ngClass]=\"classList()\"\n #panel>\n <ng-content />\n </div>\n</ng-template>\n", styles: [".ngs-autocomplete-panel{background:var(--ngs-autocomplete-panel-bg, var(--dropdown-bg));box-shadow:var(--ngs-autocomplete-panel-shadow, var(--dropdown-shadow));border-radius:var(--ngs-autocomplete-panel-border-radius, var(--dropdown-radius));max-height:var(--ngs-autocomplete-panel-max-height, var(--dropdown-max-height, 256px));overflow:auto;min-width:100%;transform-origin:top;animation:ngs-dropdown-panel-showing .15s cubic-bezier(0,0,.2,1);padding-top:8px;padding-bottom:8px;outline:var(--ngs-autocomplete-panel-border, var(--dropdown-border))}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Autocomplete, decorators: [{
47
+ type: Component,
48
+ args: [{ selector: 'ngs-autocomplete', exportAs: 'ngsAutocomplete', imports: [
49
+ NgClass
50
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
51
+ {
52
+ provide: OPTION_PARENT,
53
+ useExisting: forwardRef(() => Autocomplete)
54
+ }
55
+ ], template: "<ng-template>\n <div class=\"ngs-autocomplete-panel\"\n role=\"listbox\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [ngClass]=\"classList()\"\n #panel>\n <ng-content />\n </div>\n</ng-template>\n", styles: [".ngs-autocomplete-panel{background:var(--ngs-autocomplete-panel-bg, var(--dropdown-bg));box-shadow:var(--ngs-autocomplete-panel-shadow, var(--dropdown-shadow));border-radius:var(--ngs-autocomplete-panel-border-radius, var(--dropdown-radius));max-height:var(--ngs-autocomplete-panel-max-height, var(--dropdown-max-height, 256px));overflow:auto;min-width:100%;transform-origin:top;animation:ngs-dropdown-panel-showing .15s cubic-bezier(0,0,.2,1);padding-top:8px;padding-bottom:8px;outline:var(--ngs-autocomplete-panel-border, var(--dropdown-border))}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
56
+ }], propDecorators: { options: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => Option), { ...{ descendants: true }, isSignal: true }] }], template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], panel: [{ type: i0.ViewChild, args: ['panel', { isSignal: true }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], autoActiveFirstOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoActiveFirstOption", required: false }] }], autoSelectActiveOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoSelectActiveOption", required: false }] }], classList: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], disableRipple: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableRipple", required: false }] }], displayWith: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayWith", required: false }] }], hideSingleSelectionIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideSingleSelectionIndicator", required: false }] }], panelWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelWidth", required: false }] }], requireSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "requireSelection", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], opened: [{ type: i0.Output, args: ["opened"] }], optionActivated: [{ type: i0.Output, args: ["optionActivated"] }], optionSelected: [{ type: i0.Output, args: ["optionSelected"] }] } });
57
+
58
+ class AutocompleteTrigger {
59
+ _elementRef = inject((ElementRef));
60
+ _overlay = inject(Overlay);
61
+ _viewContainerRef = inject(ViewContainerRef);
62
+ _formField = inject(FormField, { optional: true });
63
+ _chipInput = inject(ChipInput, { optional: true });
64
+ _injector = inject(Injector);
65
+ autocomplete = input.required({ ...(ngDevMode ? { debugName: "autocomplete" } : /* istanbul ignore next */ {}), alias: 'ngsAutocomplete' });
66
+ _overlayRef = null;
67
+ _portal = null;
68
+ _closingSubscription = Subscription.EMPTY;
69
+ _keyManager;
70
+ _canOpenOnInput = true;
71
+ _resizeObserver = null;
72
+ _optionsSubscription = Subscription.EMPTY;
73
+ constructor() {
74
+ effect(() => {
75
+ const chipsLength = this._chipInput?.chipGrid?.chipsLength;
76
+ if (chipsLength === 0 && this.panelOpen) {
77
+ this._elementRef.nativeElement.focus();
78
+ }
79
+ });
80
+ }
81
+ ngOnDestroy() {
82
+ this._destroyOverlay();
83
+ this._stopResizeObserver();
84
+ this._optionsSubscription.unsubscribe();
85
+ }
86
+ _startResizeObserver() {
87
+ this._resizeObserver = new ResizeObserver(() => {
88
+ this.updatePosition();
89
+ });
90
+ this._resizeObserver.observe(this._getConnectedElement().nativeElement);
91
+ }
92
+ _stopResizeObserver() {
93
+ this._resizeObserver?.disconnect();
94
+ this._resizeObserver = null;
95
+ }
96
+ _handleInput() {
97
+ if (!this.panelOpen && this._canOpenOnInput) {
98
+ this.openPanel();
99
+ }
100
+ this._syncSelectedOption();
101
+ }
102
+ _syncSelectedOption() {
103
+ const value = this._elementRef.nativeElement.value;
104
+ this.autocomplete().options().forEach(option => {
105
+ if (value && option.viewValue.toLowerCase() === value.toLowerCase()) {
106
+ option.select();
107
+ }
108
+ else {
109
+ option.deselect();
110
+ }
111
+ });
112
+ }
113
+ _handleFocus() {
114
+ if (!this.panelOpen && this._canOpenOnInput) {
115
+ this.openPanel();
116
+ }
117
+ this._syncSelectedOption();
118
+ }
119
+ _handleClick() {
120
+ if (!this.panelOpen && this._canOpenOnInput) {
121
+ this.openPanel();
122
+ }
123
+ this._syncSelectedOption();
124
+ }
125
+ _handleKeydown(event) {
126
+ if (event.defaultPrevented) {
127
+ return;
128
+ }
129
+ if (event.key === 'Escape' && this.panelOpen) {
130
+ this.closePanel();
131
+ event.stopPropagation();
132
+ }
133
+ else if (this._keyManager) {
134
+ const activeItemBefore = this._keyManager.activeItem;
135
+ this._keyManager.onKeydown(event);
136
+ if (event.key === 'Enter' && this._keyManager.activeItem && this._keyManager.activeItem === activeItemBefore) {
137
+ this._selectOption(this._keyManager.activeItem);
138
+ event.preventDefault();
139
+ }
140
+ }
141
+ }
142
+ get panelOpen() {
143
+ return !!this._overlayRef && this._overlayRef.hasAttached();
144
+ }
145
+ openPanel() {
146
+ if (this.panelOpen || !this.autocomplete().options().length) {
147
+ return;
148
+ }
149
+ if (!this._overlayRef) {
150
+ this._createOverlay();
151
+ }
152
+ this._updatePanelWidth();
153
+ if (!this._overlayRef.hasAttached()) {
154
+ this._portal = new TemplatePortal(this.autocomplete().template(), this._viewContainerRef);
155
+ this._overlayRef.attach(this._portal);
156
+ this._closingSubscription = this._subscribeToClosingIndices();
157
+ this._setupSelectionListeners();
158
+ this._startResizeObserver();
159
+ this.autocomplete().opened.emit();
160
+ }
161
+ this._initKeyManager();
162
+ this._setActiveItem();
163
+ }
164
+ _setActiveItem() {
165
+ const value = this._elementRef.nativeElement.value;
166
+ if (this.autocomplete().options().length > 0) {
167
+ const activeOption = this.autocomplete().options().find(option => {
168
+ return option.viewValue.toLowerCase() === value.toLowerCase();
169
+ });
170
+ if (activeOption) {
171
+ this._keyManager.setActiveItem(activeOption);
172
+ }
173
+ else {
174
+ if (value && this.autocomplete().autoActiveFirstOption()) {
175
+ this._keyManager.setFirstItemActive();
176
+ }
177
+ else {
178
+ this._keyManager.setActiveItem(-1);
179
+ }
180
+ }
181
+ this._scrollToOption();
182
+ }
183
+ }
184
+ _scrollToOption() {
185
+ const index = this._keyManager.activeItemIndex || 0;
186
+ const option = this.autocomplete().options()[index];
187
+ if (option && this.autocomplete().panel()) {
188
+ const panel = this.autocomplete().panel().nativeElement;
189
+ const optionElement = option.elementRef.nativeElement;
190
+ const panelTop = panel.scrollTop;
191
+ const panelBottom = panelTop + panel.clientHeight;
192
+ const optionTop = optionElement.offsetTop;
193
+ const optionBottom = optionTop + optionElement.clientHeight;
194
+ if (optionTop < panelTop) {
195
+ panel.scrollTop = optionTop;
196
+ }
197
+ else if (optionBottom > panelBottom) {
198
+ panel.scrollTop = optionBottom - panel.clientHeight;
199
+ }
200
+ }
201
+ }
202
+ closePanel() {
203
+ if (this.panelOpen) {
204
+ this._overlayRef.detach();
205
+ this._closingSubscription.unsubscribe();
206
+ this._stopResizeObserver();
207
+ if (this.autocomplete().requireSelection() && !this._elementRef.nativeElement.value) {
208
+ this._elementRef.nativeElement.value = '';
209
+ this._elementRef.nativeElement.dispatchEvent(new Event('input', { bubbles: true }));
210
+ }
211
+ this.autocomplete().closed.emit();
212
+ }
213
+ }
214
+ updatePosition() {
215
+ if (this._overlayRef) {
216
+ this._updatePanelWidth();
217
+ this._overlayRef.updatePosition();
218
+ }
219
+ }
220
+ _getConnectedElement() {
221
+ if (this._formField) {
222
+ return this._formField.wrapper();
223
+ }
224
+ return this._elementRef;
225
+ }
226
+ _getPanelWidth() {
227
+ return this.autocomplete().panelWidth() || this._getConnectedElement().nativeElement.offsetWidth;
228
+ }
229
+ _createOverlay() {
230
+ const strategy = this._overlay
231
+ .position()
232
+ .flexibleConnectedTo(this._getConnectedElement())
233
+ .withPositions([
234
+ { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },
235
+ { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' }
236
+ ]);
237
+ this._overlayRef = this._overlay.create({
238
+ positionStrategy: strategy,
239
+ scrollStrategy: this._overlay.scrollStrategies.reposition(),
240
+ width: this._getPanelWidth(),
241
+ });
242
+ }
243
+ _destroyOverlay() {
244
+ if (this._overlayRef) {
245
+ this.closePanel();
246
+ this._overlayRef.dispose();
247
+ this._overlayRef = null;
248
+ }
249
+ }
250
+ _subscribeToClosingIndices() {
251
+ const backdropClick = this._overlayRef.backdropClick();
252
+ const detachments = this._overlayRef.detachments();
253
+ const outsidePointerEvents = this._overlayRef.outsidePointerEvents();
254
+ return merge(backdropClick, detachments, outsidePointerEvents).subscribe((event) => {
255
+ if (event instanceof MouseEvent) {
256
+ if (this._elementRef.nativeElement.contains(event.target)) {
257
+ return;
258
+ }
259
+ const connectedElement = this._getConnectedElement().nativeElement;
260
+ if (connectedElement.contains(event.target)) {
261
+ return;
262
+ }
263
+ }
264
+ this.closePanel();
265
+ });
266
+ }
267
+ _initKeyManager() {
268
+ if (this._keyManager) {
269
+ return;
270
+ }
271
+ this._keyManager = new ActiveDescendantKeyManager(this.autocomplete().options())
272
+ .withWrap()
273
+ .withTypeAhead();
274
+ this._optionsSubscription = toObservable(this.autocomplete().options, { injector: this._injector }).subscribe(() => {
275
+ this._setupSelectionListeners();
276
+ this._setActiveItem();
277
+ this._syncSelectedOption();
278
+ if (this.autocomplete().options().length === 0 && this.panelOpen) {
279
+ this.closePanel();
280
+ }
281
+ else if (this.autocomplete().options().length > 0 && !this.panelOpen && this._elementRef.nativeElement === document.activeElement && this._canOpenOnInput) {
282
+ this.openPanel();
283
+ }
284
+ });
285
+ this._keyManager.change.subscribe(() => {
286
+ this._scrollToOption();
287
+ if (this.autocomplete().autoSelectActiveOption() && this._keyManager.activeItem) {
288
+ this._selectOption(this._keyManager.activeItem);
289
+ }
290
+ this.autocomplete().optionActivated.emit({
291
+ source: this.autocomplete(),
292
+ option: this._keyManager.activeItem
293
+ });
294
+ });
295
+ }
296
+ _setupSelectionListeners() {
297
+ this.autocomplete().options().forEach(option => {
298
+ // Prevent input from losing focus on mousedown, but do not select yet
299
+ const mousedownSub = fromEvent(option.elementRef.nativeElement, 'mousedown').subscribe((event) => {
300
+ event.preventDefault();
301
+ });
302
+ // Select option on click (after mouseup) to match native/select behavior
303
+ const clickSub = fromEvent(option.elementRef.nativeElement, 'click').subscribe((event) => {
304
+ if (option.disabled) {
305
+ event.preventDefault();
306
+ return;
307
+ }
308
+ this._selectOption(option);
309
+ });
310
+ if (this._closingSubscription && !this._closingSubscription.closed) {
311
+ this._closingSubscription.add(mousedownSub);
312
+ this._closingSubscription.add(clickSub);
313
+ }
314
+ });
315
+ }
316
+ _updatePanelWidth() {
317
+ if (this._overlayRef) {
318
+ this._overlayRef.updateSize({
319
+ width: this._getPanelWidth()
320
+ });
321
+ }
322
+ }
323
+ _selectOption(option) {
324
+ const value = option.viewValue;
325
+ this.autocomplete().options().forEach(o => o.deselect());
326
+ option.select();
327
+ this._canOpenOnInput = false;
328
+ this._elementRef.nativeElement.value = value;
329
+ this._elementRef.nativeElement.dispatchEvent(new Event('input', { bubbles: true }));
330
+ this._elementRef.nativeElement.dispatchEvent(new Event('change', { bubbles: true }));
331
+ this.autocomplete()._emitSelectEvent(option);
332
+ this.closePanel();
333
+ setTimeout(() => this._canOpenOnInput = true);
334
+ }
335
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AutocompleteTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
336
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.4", type: AutocompleteTrigger, isStandalone: true, selector: "[ngsAutocomplete]", inputs: { autocomplete: { classPropertyName: "autocomplete", publicName: "ngsAutocomplete", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "combobox", "aria-autocomplete": "list", "aria-haspopup": "listbox" }, listeners: { "input": "_handleInput()", "focusin": "_handleFocus()", "click": "_handleClick()", "keydown": "_handleKeydown($event)" } }, exportAs: ["ngsAutocompleteTrigger"], ngImport: i0 });
337
+ }
338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AutocompleteTrigger, decorators: [{
339
+ type: Directive,
340
+ args: [{
341
+ selector: '[ngsAutocomplete]',
342
+ exportAs: 'ngsAutocompleteTrigger',
343
+ host: {
344
+ 'role': 'combobox',
345
+ 'aria-autocomplete': 'list',
346
+ 'aria-haspopup': 'listbox',
347
+ '(input)': '_handleInput()',
348
+ '(focusin)': '_handleFocus()',
349
+ '(click)': '_handleClick()',
350
+ '(keydown)': '_handleKeydown($event)',
351
+ }
352
+ }]
353
+ }], ctorParameters: () => [], propDecorators: { autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngsAutocomplete", required: true }] }] } });
354
+
355
+ /**
356
+ * Generated bundle index. Do not edit.
357
+ */
358
+
359
+ export { Autocomplete, AutocompleteTrigger };
360
+ //# sourceMappingURL=ngstarter-ui-components-autocomplete.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngstarter-ui-components-autocomplete.mjs","sources":["../../../projects/components/autocomplete/src/autocomplete/autocomplete.ts","../../../projects/components/autocomplete/src/autocomplete/autocomplete.html","../../../projects/components/autocomplete/src/autocomplete-trigger.ts","../../../projects/components/autocomplete/ngstarter-ui-components-autocomplete.ts"],"sourcesContent":["import {\n Component,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n output,\n ElementRef,\n input,\n booleanAttribute,\n EventEmitter,\n Output,\n Input,\n signal,\n forwardRef,\n contentChildren\n} from '@angular/core';\nimport { Option, OPTION_PARENT, _OptionParent } from '@ngstarter-ui/components/option';\nimport { NgClass } from '@angular/common';\n\nlet nextId = 0;\n\nexport interface AutocompleteActivatedEvent {\n source: Autocomplete;\n option: Option | null;\n}\n\nexport interface AutocompleteSelectedEvent {\n source: Autocomplete;\n option: Option;\n}\n\n@Component({\n selector: 'ngs-autocomplete',\n exportAs: 'ngsAutocomplete',\n imports: [\n NgClass\n ],\n templateUrl: './autocomplete.html',\n styleUrl: './autocomplete.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: OPTION_PARENT,\n useExisting: forwardRef(() => Autocomplete)\n }\n ]\n})\nexport class Autocomplete implements _OptionParent {\n readonly options = contentChildren(Option, { descendants: true });\n\n multiple = signal(false);\n readonly template = viewChild.required(TemplateRef);\n readonly panel = viewChild<ElementRef<HTMLElement>>('panel');\n\n id = `ngs-autocomplete-${nextId++}`;\n\n ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n ariaLabelledby = input<string | undefined>(undefined, { alias: 'aria-labelledby' });\n autoActiveFirstOption = input(false, { transform: booleanAttribute });\n autoSelectActiveOption = input(false, { transform: booleanAttribute });\n classList = input<string | string[] | undefined>(undefined, { alias: 'class' });\n disableRipple = input(false, { transform: booleanAttribute });\n displayWith = input<(value: any) => string | null>(() => null);\n hideSingleSelectionIndicator = input(false, { transform: booleanAttribute });\n panelWidth = input<string | number | undefined>(undefined);\n requireSelection = input(false, { transform: booleanAttribute });\n\n closed = output<void>();\n opened = output<void>();\n optionActivated = output<AutocompleteActivatedEvent>();\n optionSelected = output<AutocompleteSelectedEvent>();\n\n _emitSelectEvent(option: Option): void {\n this.optionSelected.emit({ source: this, option });\n }\n}\n","<ng-template>\n <div class=\"ngs-autocomplete-panel\"\n role=\"listbox\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [ngClass]=\"classList()\"\n #panel>\n <ng-content />\n </div>\n</ng-template>\n","import {\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n ViewContainerRef,\n effect,\n Injector,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Autocomplete } from './autocomplete/autocomplete';\nimport { fromEvent, Subscription, merge } from 'rxjs';\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { Option } from '@ngstarter-ui/components/option';\nimport { FormField } from '@ngstarter-ui/components/form-field';\nimport { ChipInput } from '@ngstarter-ui/components/chips';\n\n@Directive({\n selector: '[ngsAutocomplete]',\n exportAs: 'ngsAutocompleteTrigger',\n host: {\n 'role': 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'listbox',\n '(input)': '_handleInput()',\n '(focusin)': '_handleFocus()',\n '(click)': '_handleClick()',\n '(keydown)': '_handleKeydown($event)',\n }\n})\nexport class AutocompleteTrigger implements OnDestroy {\n private _elementRef = inject(ElementRef<HTMLInputElement>);\n private _overlay = inject(Overlay);\n private _viewContainerRef = inject(ViewContainerRef);\n private _formField = inject(FormField, { optional: true });\n private _chipInput = inject(ChipInput, { optional: true });\n private _injector = inject(Injector);\n\n autocomplete = input.required<Autocomplete>({alias: 'ngsAutocomplete'});\n\n private _overlayRef: OverlayRef | null = null;\n private _portal: TemplatePortal | null = null;\n private _closingSubscription = Subscription.EMPTY;\n private _keyManager!: ActiveDescendantKeyManager<Option>;\n private _canOpenOnInput = true;\n private _resizeObserver: ResizeObserver | null = null;\n private _optionsSubscription = Subscription.EMPTY;\n\n constructor() {\n effect(() => {\n const chipsLength = this._chipInput?.chipGrid?.chipsLength;\n\n if (chipsLength === 0 && this.panelOpen) {\n this._elementRef.nativeElement.focus();\n }\n });\n }\n\n ngOnDestroy() {\n this._destroyOverlay();\n this._stopResizeObserver();\n this._optionsSubscription.unsubscribe();\n }\n\n private _startResizeObserver() {\n this._resizeObserver = new ResizeObserver(() => {\n this.updatePosition();\n });\n this._resizeObserver.observe(this._getConnectedElement().nativeElement);\n }\n\n private _stopResizeObserver() {\n this._resizeObserver?.disconnect();\n this._resizeObserver = null;\n }\n\n _handleInput(): void {\n if (!this.panelOpen && this._canOpenOnInput) {\n this.openPanel();\n }\n this._syncSelectedOption();\n }\n\n private _syncSelectedOption(): void {\n const value = this._elementRef.nativeElement.value;\n this.autocomplete().options().forEach(option => {\n if (value && option.viewValue.toLowerCase() === value.toLowerCase()) {\n option.select();\n } else {\n option.deselect();\n }\n });\n }\n\n _handleFocus(): void {\n if (!this.panelOpen && this._canOpenOnInput) {\n this.openPanel();\n }\n this._syncSelectedOption();\n }\n\n _handleClick(): void {\n if (!this.panelOpen && this._canOpenOnInput) {\n this.openPanel();\n }\n this._syncSelectedOption();\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.key === 'Escape' && this.panelOpen) {\n this.closePanel();\n event.stopPropagation();\n } else if (this._keyManager) {\n const activeItemBefore = this._keyManager.activeItem;\n this._keyManager.onKeydown(event);\n\n if (event.key === 'Enter' && this._keyManager.activeItem && this._keyManager.activeItem === activeItemBefore) {\n this._selectOption(this._keyManager.activeItem);\n event.preventDefault();\n }\n }\n }\n\n get panelOpen(): boolean {\n return !!this._overlayRef && this._overlayRef.hasAttached();\n }\n\n openPanel(): void {\n if (this.panelOpen || !this.autocomplete().options().length) {\n return;\n }\n\n if (!this._overlayRef) {\n this._createOverlay();\n }\n\n this._updatePanelWidth();\n\n if (!this._overlayRef!.hasAttached()) {\n this._portal = new TemplatePortal(this.autocomplete().template(), this._viewContainerRef);\n this._overlayRef!.attach(this._portal);\n this._closingSubscription = this._subscribeToClosingIndices();\n this._setupSelectionListeners();\n this._startResizeObserver();\n this.autocomplete().opened.emit();\n }\n\n this._initKeyManager();\n this._setActiveItem();\n }\n\n private _setActiveItem(): void {\n const value = this._elementRef.nativeElement.value;\n\n if (this.autocomplete().options().length > 0) {\n const activeOption = this.autocomplete().options().find(option => {\n return option.viewValue.toLowerCase() === value.toLowerCase();\n });\n\n if (activeOption) {\n this._keyManager.setActiveItem(activeOption);\n } else {\n if (value && this.autocomplete().autoActiveFirstOption()) {\n this._keyManager.setFirstItemActive();\n } else {\n this._keyManager.setActiveItem(-1);\n }\n }\n\n this._scrollToOption();\n }\n }\n\n private _scrollToOption(): void {\n const index = this._keyManager.activeItemIndex || 0;\n const option = this.autocomplete().options()[index];\n\n if (option && this.autocomplete().panel()) {\n const panel = this.autocomplete().panel()!.nativeElement;\n const optionElement = option.elementRef.nativeElement;\n const panelTop = panel.scrollTop;\n const panelBottom = panelTop + panel.clientHeight;\n const optionTop = optionElement.offsetTop;\n const optionBottom = optionTop + optionElement.clientHeight;\n\n if (optionTop < panelTop) {\n panel.scrollTop = optionTop;\n } else if (optionBottom > panelBottom) {\n panel.scrollTop = optionBottom - panel.clientHeight;\n }\n }\n }\n\n closePanel(): void {\n if (this.panelOpen) {\n this._overlayRef!.detach();\n this._closingSubscription.unsubscribe();\n this._stopResizeObserver();\n\n if (this.autocomplete().requireSelection() && !this._elementRef.nativeElement.value) {\n this._elementRef.nativeElement.value = '';\n this._elementRef.nativeElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n\n this.autocomplete().closed.emit();\n }\n }\n\n updatePosition(): void {\n if (this._overlayRef) {\n this._updatePanelWidth();\n this._overlayRef.updatePosition();\n }\n }\n\n private _getConnectedElement(): ElementRef {\n if (this._formField) {\n return this._formField.wrapper();\n }\n\n return this._elementRef;\n }\n\n private _getPanelWidth(): number | string {\n return this.autocomplete().panelWidth() || this._getConnectedElement().nativeElement.offsetWidth;\n }\n\n private _createOverlay(): void {\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._getConnectedElement())\n .withPositions([\n {originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top'},\n {originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom'}\n ]);\n\n this._overlayRef = this._overlay.create({\n positionStrategy: strategy,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n width: this._getPanelWidth(),\n });\n }\n\n private _destroyOverlay(): void {\n if (this._overlayRef) {\n this.closePanel();\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n\n private _subscribeToClosingIndices(): Subscription {\n const backdropClick = this._overlayRef!.backdropClick();\n const detachments = this._overlayRef!.detachments();\n const outsidePointerEvents = this._overlayRef!.outsidePointerEvents();\n\n return merge(backdropClick, detachments, outsidePointerEvents).subscribe((event) => {\n if (event instanceof MouseEvent) {\n if (this._elementRef.nativeElement.contains(event.target as Node)) {\n return;\n }\n\n const connectedElement = this._getConnectedElement().nativeElement;\n\n if (connectedElement.contains(event.target as Node)) {\n return;\n }\n }\n\n this.closePanel();\n });\n }\n\n private _initKeyManager(): void {\n if (this._keyManager) {\n return;\n }\n\n this._keyManager = new ActiveDescendantKeyManager<Option>(this.autocomplete().options())\n .withWrap()\n .withTypeAhead();\n\n this._optionsSubscription = toObservable(this.autocomplete().options, { injector: this._injector }).subscribe(() => {\n this._setupSelectionListeners();\n this._setActiveItem();\n this._syncSelectedOption();\n\n if (this.autocomplete().options().length === 0 && this.panelOpen) {\n this.closePanel();\n } else if (this.autocomplete().options().length > 0 && !this.panelOpen && this._elementRef.nativeElement === document.activeElement && this._canOpenOnInput) {\n this.openPanel();\n }\n });\n\n this._keyManager.change.subscribe(() => {\n this._scrollToOption();\n\n if (this.autocomplete().autoSelectActiveOption() && this._keyManager.activeItem) {\n this._selectOption(this._keyManager.activeItem);\n }\n\n this.autocomplete().optionActivated.emit({\n source: this.autocomplete(),\n option: this._keyManager.activeItem\n });\n });\n }\n\n private _setupSelectionListeners(): void {\n this.autocomplete().options().forEach(option => {\n // Prevent input from losing focus on mousedown, but do not select yet\n const mousedownSub = fromEvent<MouseEvent>(option.elementRef.nativeElement, 'mousedown').subscribe((event) => {\n event.preventDefault();\n });\n // Select option on click (after mouseup) to match native/select behavior\n const clickSub = fromEvent<MouseEvent>(option.elementRef.nativeElement, 'click').subscribe((event) => {\n if (option.disabled) {\n event.preventDefault();\n return;\n }\n this._selectOption(option);\n });\n if (this._closingSubscription && !this._closingSubscription.closed) {\n this._closingSubscription.add(mousedownSub);\n this._closingSubscription.add(clickSub);\n }\n });\n }\n\n private _updatePanelWidth(): void {\n if (this._overlayRef) {\n this._overlayRef.updateSize({\n width: this._getPanelWidth()\n });\n }\n }\n\n private _selectOption(option: Option): void {\n const value = option.viewValue;\n this.autocomplete().options().forEach(o => o.deselect());\n option.select();\n this._canOpenOnInput = false;\n this._elementRef.nativeElement.value = value;\n this._elementRef.nativeElement.dispatchEvent(new Event('input', { bubbles: true }));\n this._elementRef.nativeElement.dispatchEvent(new Event('change', { bubbles: true }));\n this.autocomplete()._emitSelectEvent(option);\n this.closePanel();\n setTimeout(() => this._canOpenOnInput = true);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}