@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,327 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, EventEmitter, inject, ChangeDetectionStrategy, ViewEncapsulation, Component, Injector, Injectable } from '@angular/core';
3
+ import { CdkDialogContainer, Dialog } from '@angular/cdk/dialog';
4
+ import { Overlay } from '@angular/cdk/overlay';
5
+ import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
6
+ import { CdkPortalOutlet } from '@angular/cdk/portal';
7
+ import { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';
8
+ import { Subject } from 'rxjs';
9
+ import { filter, take } from 'rxjs/operators';
10
+
11
+ /** Injection token that can be used to access the data that was passed in to a bottom sheet. */
12
+ const BOTTOM_SHEET_DATA = new InjectionToken('EmrBottomSheetData');
13
+ /**
14
+ * Configuration used when opening a bottom sheet.
15
+ */
16
+ class BottomSheetConfig {
17
+ /** The view container to place the overlay for the bottom sheet into. */
18
+ viewContainerRef;
19
+ /** Extra CSS classes to be added to the bottom sheet container. */
20
+ panelClass;
21
+ /** Text layout direction for the bottom sheet. */
22
+ direction;
23
+ /** Data being injected into the child component. */
24
+ data = null;
25
+ /** Whether the bottom sheet has a backdrop. */
26
+ hasBackdrop = true;
27
+ /** Custom class for the backdrop. */
28
+ backdropClass;
29
+ /** Whether the user can use escape or clicking outside to close the bottom sheet. */
30
+ disableClose = false;
31
+ /** Aria label to assign to the bottom sheet element. */
32
+ ariaLabel = null;
33
+ /**
34
+ * Whether this is a modal dialog. Used to set the `aria-modal` attribute.
35
+ */
36
+ ariaModal = false;
37
+ /**
38
+ * Whether the bottom sheet should close when the user goes backwards/forwards in history.
39
+ */
40
+ closeOnNavigation = true;
41
+ /**
42
+ * Where the bottom sheet should focus on open.
43
+ */
44
+ autoFocus = 'first-tabbable';
45
+ /**
46
+ * Whether the bottom sheet should restore focus to the
47
+ * previously-focused element, after it's closed.
48
+ */
49
+ restoreFocus = true;
50
+ /** Scroll strategy to be used for the bottom sheet. */
51
+ scrollStrategy;
52
+ /** Height for the bottom sheet. */
53
+ height = '';
54
+ /** Minimum height for the bottom sheet. If a number is provided, assumes pixel units. */
55
+ minHeight;
56
+ /** Maximum height for the bottom sheet. If a number is provided, assumes pixel units. */
57
+ maxHeight;
58
+ }
59
+
60
+ /**
61
+ * Internal component that wraps user-provided bottom sheet content.
62
+ * @docs-private
63
+ */
64
+ class BottomSheetContainer extends CdkDialogContainer {
65
+ _breakpointSubscription;
66
+ /** The state of the bottom sheet animations. */
67
+ _animationState = 'void';
68
+ /** Emits whenever the state of the animation changes. */
69
+ _animationStateChanged = new EventEmitter();
70
+ /** Whether the component has been destroyed. */
71
+ _destroyed = false;
72
+ constructor() {
73
+ super();
74
+ const breakpointObserver = inject(BreakpointObserver);
75
+ this._breakpointSubscription = breakpointObserver
76
+ .observe([Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge])
77
+ .subscribe(() => {
78
+ const classList = this._elementRef.nativeElement.classList;
79
+ classList.toggle('ngs-bottom-sheet-container-medium', breakpointObserver.isMatched(Breakpoints.Medium));
80
+ classList.toggle('ngs-bottom-sheet-container-large', breakpointObserver.isMatched(Breakpoints.Large));
81
+ classList.toggle('ngs-bottom-sheet-container-xlarge', breakpointObserver.isMatched(Breakpoints.XLarge));
82
+ });
83
+ }
84
+ /** Begin animation of bottom sheet entrance into view. */
85
+ enter() {
86
+ if (!this._destroyed) {
87
+ this._animationState = 'visible';
88
+ this._changeDetectorRef.markForCheck();
89
+ }
90
+ }
91
+ /** Begin animation of the bottom sheet exiting from view. */
92
+ exit() {
93
+ if (!this._destroyed) {
94
+ this._animationState = 'hidden';
95
+ this._changeDetectorRef.markForCheck();
96
+ }
97
+ }
98
+ ngOnDestroy() {
99
+ super.ngOnDestroy();
100
+ this._breakpointSubscription.unsubscribe();
101
+ this._destroyed = true;
102
+ }
103
+ _onTransitionEnd(event) {
104
+ if (event.propertyName === 'transform') {
105
+ this._animationStateChanged.emit({
106
+ fromState: this._animationState === 'visible' ? 'void' : 'visible',
107
+ toState: this._animationState,
108
+ totalTime: 300,
109
+ phaseName: 'done',
110
+ });
111
+ }
112
+ }
113
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BottomSheetContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
114
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: BottomSheetContainer, isStandalone: true, selector: "ngs-bottom-sheet-container", host: { attributes: { "tabindex": "-1" }, listeners: { "transitionend": "_onTransitionEnd($event)" }, properties: { "attr.role": "_config.role", "attr.aria-modal": "_config.ariaModal", "attr.aria-label": "_config.ariaLabel", "class.ngs-bottom-sheet-container-visible": "_animationState === \"visible\"", "class.ngs-bottom-sheet-container-hidden": "_animationState === \"hidden\"" }, classAttribute: "ngs-bottom-sheet-container" }, usesInheritance: true, ngImport: i0, template: '<ng-template cdkPortalOutlet />', isInline: true, styles: [".ngs-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;padding:8px 16px;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto;position:relative;background:var(--ngs-bottom-sheet-container-background-color, white);color:var(--ngs-bottom-sheet-container-text-color, black);visibility:hidden;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1),visibility .3s}.ngs-bottom-sheet-container-visible{transform:translateY(0);visibility:visible;transition-timing-function:cubic-bezier(0,0,.2,1)}.ngs-bottom-sheet-container-hidden{transform:translateY(100%);visibility:hidden}@media(forced-colors:active){.ngs-bottom-sheet-container{outline:1px solid}}.ngs-bottom-sheet-container-medium,.ngs-bottom-sheet-container-large,.ngs-bottom-sheet-container-xlarge{border-top-left-radius:var(--ngs-bottom-sheet-container-shape, 28px);border-top-right-radius:var(--ngs-bottom-sheet-container-shape, 28px)}.ngs-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.ngs-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.ngs-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
115
+ }
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BottomSheetContainer, decorators: [{
117
+ type: Component,
118
+ args: [{ selector: 'ngs-bottom-sheet-container', template: '<ng-template cdkPortalOutlet />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, imports: [CdkPortalOutlet], host: {
119
+ 'class': 'ngs-bottom-sheet-container',
120
+ 'tabindex': '-1',
121
+ '[attr.role]': '_config.role',
122
+ '[attr.aria-modal]': '_config.ariaModal',
123
+ '[attr.aria-label]': '_config.ariaLabel',
124
+ '[class.ngs-bottom-sheet-container-visible]': '_animationState === "visible"',
125
+ '[class.ngs-bottom-sheet-container-hidden]': '_animationState === "hidden"',
126
+ '(transitionend)': '_onTransitionEnd($event)',
127
+ }, styles: [".ngs-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;padding:8px 16px;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto;position:relative;background:var(--ngs-bottom-sheet-container-background-color, white);color:var(--ngs-bottom-sheet-container-text-color, black);visibility:hidden;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1),visibility .3s}.ngs-bottom-sheet-container-visible{transform:translateY(0);visibility:visible;transition-timing-function:cubic-bezier(0,0,.2,1)}.ngs-bottom-sheet-container-hidden{transform:translateY(100%);visibility:hidden}@media(forced-colors:active){.ngs-bottom-sheet-container{outline:1px solid}}.ngs-bottom-sheet-container-medium,.ngs-bottom-sheet-container-large,.ngs-bottom-sheet-container-xlarge{border-top-left-radius:var(--ngs-bottom-sheet-container-shape, 28px);border-top-right-radius:var(--ngs-bottom-sheet-container-shape, 28px)}.ngs-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.ngs-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.ngs-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
128
+ }], ctorParameters: () => [] });
129
+
130
+ /**
131
+ * Reference to a bottom sheet dispatched from the BottomSheet service.
132
+ */
133
+ class BottomSheetRef {
134
+ _ref;
135
+ containerInstance;
136
+ /** @internal */
137
+ _refInstance = null;
138
+ /** @internal */
139
+ _refRef = null;
140
+ /** Instance of the component making up the content of the bottom sheet. */
141
+ get instance() {
142
+ return this._refInstance;
143
+ }
144
+ /**
145
+ * `ComponentRef` of the component opened into the bottom sheet. Will be
146
+ * null when the bottom sheet is opened using a `TemplateRef`.
147
+ */
148
+ get componentRef() {
149
+ return this._refRef;
150
+ }
151
+ /** Whether the user is allowed to close the bottom sheet. */
152
+ disableClose;
153
+ /** Subject for notifying the user that the bottom sheet has opened and appeared. */
154
+ _afterOpened = new Subject();
155
+ /** Result to be passed down to the `afterDismissed` stream. */
156
+ _result;
157
+ /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */
158
+ _closeFallbackTimeout;
159
+ constructor(_ref, config, containerInstance) {
160
+ this._ref = _ref;
161
+ this.containerInstance = containerInstance;
162
+ this.disableClose = config.disableClose;
163
+ // Emit when opening animation completes
164
+ containerInstance._animationStateChanged
165
+ .pipe(filter((event) => event.phase === 'done' && event.toState === 'visible'), take(1))
166
+ .subscribe(() => {
167
+ this._afterOpened.next();
168
+ this._afterOpened.complete();
169
+ });
170
+ // Dispose overlay when closing animation is complete
171
+ containerInstance._animationStateChanged
172
+ .pipe(filter((event) => event.phase === 'done' && (event.toState === 'hidden' || event.toState === 'void')), take(1))
173
+ .subscribe(() => {
174
+ if (this._closeFallbackTimeout) {
175
+ clearTimeout(this._closeFallbackTimeout);
176
+ }
177
+ this._ref.close(this._result);
178
+ });
179
+ _ref.overlayRef.detachments().subscribe(() => {
180
+ this._ref.close(this._result);
181
+ });
182
+ _ref.backdropClick.subscribe(() => {
183
+ if (!this.disableClose) {
184
+ this.dismiss();
185
+ }
186
+ });
187
+ _ref.keydownEvents
188
+ .pipe(filter(event => event.keyCode === ESCAPE))
189
+ .subscribe(event => {
190
+ if (!this.disableClose && !hasModifierKey(event)) {
191
+ event.preventDefault();
192
+ this.dismiss();
193
+ }
194
+ });
195
+ }
196
+ /**
197
+ * Dismisses the bottom sheet.
198
+ * @param result Data to be passed back to the bottom sheet opener.
199
+ */
200
+ dismiss(result) {
201
+ if (!this.containerInstance) {
202
+ return;
203
+ }
204
+ // Transition the backdrop in parallel to the bottom sheet.
205
+ this._ref.overlayRef.detachBackdrop();
206
+ this._result = result;
207
+ this.containerInstance.exit();
208
+ this._closeFallbackTimeout = setTimeout(() => {
209
+ this._ref.close(this._result);
210
+ }, 400);
211
+ }
212
+ /** Gets an observable that is notified when the bottom sheet is finished closing. */
213
+ afterDismissed() {
214
+ return this._ref.closed;
215
+ }
216
+ /** Gets an observable that is notified when the bottom sheet has opened and appeared. */
217
+ afterOpened() {
218
+ return this._afterOpened;
219
+ }
220
+ /**
221
+ * Gets an observable that emits when the overlay's backdrop has been clicked.
222
+ */
223
+ backdropClick() {
224
+ return this._ref.backdropClick;
225
+ }
226
+ /**
227
+ * Gets an observable that emits when keydown events are targeted on the overlay.
228
+ */
229
+ keydownEvents() {
230
+ return this._ref.keydownEvents;
231
+ }
232
+ }
233
+
234
+ /** Injection token that can be used to specify default bottom sheet options. */
235
+ const BOTTOM_SHEET_DEFAULT_OPTIONS = new InjectionToken('ngs-bottom-sheet-default-options');
236
+ class BottomSheet {
237
+ _injector = inject(Injector);
238
+ _overlay = inject(Overlay);
239
+ _dialog = inject(Dialog);
240
+ _parentBottomSheet = inject(BottomSheet, { optional: true, skipSelf: true });
241
+ _defaultOptions = inject(BOTTOM_SHEET_DEFAULT_OPTIONS, { optional: true });
242
+ _bottomSheetRefAtThisLevel = null;
243
+ /** Reference to the currently opened bottom sheet. */
244
+ get _openedBottomSheetRef() {
245
+ const parent = this._parentBottomSheet;
246
+ return parent ? parent._openedBottomSheetRef : this._bottomSheetRefAtThisLevel;
247
+ }
248
+ set _openedBottomSheetRef(value) {
249
+ if (this._parentBottomSheet) {
250
+ this._parentBottomSheet._openedBottomSheetRef = value;
251
+ }
252
+ else {
253
+ this._bottomSheetRefAtThisLevel = value;
254
+ }
255
+ }
256
+ open(componentOrTemplateRef, config) {
257
+ const _config = { ...(this._defaultOptions || new BottomSheetConfig()), ...config };
258
+ let ref;
259
+ this._dialog.open(componentOrTemplateRef, {
260
+ ..._config,
261
+ // Disable closing since we need to sync it up to the animation ourselves.
262
+ disableClose: true,
263
+ // Disable closing on detachments so that we can sync up the animation.
264
+ closeOnOverlayDetachments: false,
265
+ maxWidth: '100%',
266
+ container: BottomSheetContainer,
267
+ scrollStrategy: _config.scrollStrategy || this._overlay.scrollStrategies.block(),
268
+ positionStrategy: this._overlay.position()
269
+ .global()
270
+ .centerHorizontally()
271
+ .bottom('0'),
272
+ templateContext: () => ({ bottomSheetRef: ref }),
273
+ providers: (cdkRef, _cdkConfig, container) => {
274
+ ref = new BottomSheetRef(cdkRef, _config, container);
275
+ return [
276
+ { provide: BottomSheetRef, useValue: ref },
277
+ { provide: BOTTOM_SHEET_DATA, useValue: _config.data },
278
+ ];
279
+ },
280
+ });
281
+ ref.afterDismissed().subscribe(() => {
282
+ // Clear the bottom sheet ref if it hasn't already been replaced by a newer one.
283
+ if (this._openedBottomSheetRef === ref) {
284
+ this._openedBottomSheetRef = null;
285
+ }
286
+ });
287
+ if (this._openedBottomSheetRef) {
288
+ // If a bottom sheet is already in view, dismiss it and enter the
289
+ // new bottom sheet after exit animation is complete.
290
+ this._openedBottomSheetRef.afterDismissed().subscribe(() => ref.containerInstance?.enter());
291
+ this._openedBottomSheetRef.dismiss();
292
+ }
293
+ else {
294
+ // If no bottom sheet is in view, enter the new bottom sheet.
295
+ ref.containerInstance.enter();
296
+ }
297
+ this._openedBottomSheetRef = ref;
298
+ return ref;
299
+ }
300
+ /**
301
+ * Dismisses the currently-visible bottom sheet.
302
+ * @param result Data to pass to the bottom sheet instance.
303
+ */
304
+ dismiss(result) {
305
+ if (this._openedBottomSheetRef) {
306
+ this._openedBottomSheetRef.dismiss(result);
307
+ }
308
+ }
309
+ ngOnDestroy() {
310
+ if (this._bottomSheetRefAtThisLevel) {
311
+ this._bottomSheetRefAtThisLevel.dismiss();
312
+ }
313
+ }
314
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BottomSheet, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
315
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BottomSheet, providedIn: 'root' });
316
+ }
317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BottomSheet, decorators: [{
318
+ type: Injectable,
319
+ args: [{ providedIn: 'root' }]
320
+ }] });
321
+
322
+ /**
323
+ * Generated bundle index. Do not edit.
324
+ */
325
+
326
+ export { BOTTOM_SHEET_DATA, BOTTOM_SHEET_DEFAULT_OPTIONS, BottomSheet, BottomSheetConfig, BottomSheetContainer, BottomSheetRef };
327
+ //# sourceMappingURL=ngstarter-ui-components-bottom-sheet.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngstarter-ui-components-bottom-sheet.mjs","sources":["../../../projects/components/bottom-sheet/src/bottom-sheet/bottom-sheet-config.ts","../../../projects/components/bottom-sheet/src/bottom-sheet/bottom-sheet-container.ts","../../../projects/components/bottom-sheet/src/bottom-sheet/bottom-sheet-ref.ts","../../../projects/components/bottom-sheet/src/bottom-sheet/bottom-sheet.ts","../../../projects/components/bottom-sheet/ngstarter-ui-components-bottom-sheet.ts"],"sourcesContent":["import { InjectionToken, ViewContainerRef } from '@angular/core';\nimport { ScrollStrategy } from '@angular/cdk/overlay';\n\n/** Injection token that can be used to access the data that was passed in to a bottom sheet. */\nexport const BOTTOM_SHEET_DATA = new InjectionToken<any>('EmrBottomSheetData');\n\n/**\n * Configuration used when opening a bottom sheet.\n */\nexport class BottomSheetConfig<D = any> {\n /** The view container to place the overlay for the bottom sheet into. */\n viewContainerRef?: ViewContainerRef;\n\n /** Extra CSS classes to be added to the bottom sheet container. */\n panelClass?: string | string[];\n\n /** Text layout direction for the bottom sheet. */\n direction?: 'ltr' | 'rtl';\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** Whether the bottom sheet has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Custom class for the backdrop. */\n backdropClass?: string;\n\n /** Whether the user can use escape or clicking outside to close the bottom sheet. */\n disableClose?: boolean = false;\n\n /** Aria label to assign to the bottom sheet element. */\n ariaLabel?: string | null = null;\n\n /**\n * Whether this is a modal dialog. Used to set the `aria-modal` attribute.\n */\n ariaModal?: boolean = false;\n\n /**\n * Whether the bottom sheet should close when the user goes backwards/forwards in history.\n */\n closeOnNavigation?: boolean = true;\n\n /**\n * Where the bottom sheet should focus on open.\n */\n autoFocus?: string | boolean = 'first-tabbable';\n\n /**\n * Whether the bottom sheet should restore focus to the\n * previously-focused element, after it's closed.\n */\n restoreFocus?: boolean = true;\n\n /** Scroll strategy to be used for the bottom sheet. */\n scrollStrategy?: ScrollStrategy;\n\n /** Height for the bottom sheet. */\n height?: string = '';\n\n /** Minimum height for the bottom sheet. If a number is provided, assumes pixel units. */\n minHeight?: string | number;\n\n /** Maximum height for the bottom sheet. If a number is provided, assumes pixel units. */\n maxHeight?: string | number;\n}\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n OnDestroy,\n inject,\n EventEmitter,\n} from '@angular/core';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { Subscription } from 'rxjs';\nimport { CdkDialogContainer } from '@angular/cdk/dialog';\n\n/**\n * Internal component that wraps user-provided bottom sheet content.\n * @docs-private\n */\n@Component({\n selector: 'ngs-bottom-sheet-container',\n template: '<ng-template cdkPortalOutlet />',\n styleUrl: 'bottom-sheet-container.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n imports: [CdkPortalOutlet],\n host: {\n 'class': 'ngs-bottom-sheet-container',\n 'tabindex': '-1',\n '[attr.role]': '_config.role',\n '[attr.aria-modal]': '_config.ariaModal',\n '[attr.aria-label]': '_config.ariaLabel',\n '[class.ngs-bottom-sheet-container-visible]': '_animationState === \"visible\"',\n '[class.ngs-bottom-sheet-container-hidden]': '_animationState === \"hidden\"',\n '(transitionend)': '_onTransitionEnd($event)',\n },\n})\nexport class BottomSheetContainer extends CdkDialogContainer implements OnDestroy {\n private _breakpointSubscription: Subscription;\n\n /** The state of the bottom sheet animations. */\n _animationState: 'void' | 'visible' | 'hidden' = 'void';\n\n /** Emits whenever the state of the animation changes. */\n _animationStateChanged = new EventEmitter<any>();\n\n /** Whether the component has been destroyed. */\n private _destroyed = false;\n\n constructor() {\n super();\n const breakpointObserver = inject(BreakpointObserver);\n this._breakpointSubscription = breakpointObserver\n .observe([Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge])\n .subscribe(() => {\n const classList = this._elementRef.nativeElement.classList;\n classList.toggle(\n 'ngs-bottom-sheet-container-medium',\n breakpointObserver.isMatched(Breakpoints.Medium)\n );\n classList.toggle(\n 'ngs-bottom-sheet-container-large',\n breakpointObserver.isMatched(Breakpoints.Large)\n );\n classList.toggle(\n 'ngs-bottom-sheet-container-xlarge',\n breakpointObserver.isMatched(Breakpoints.XLarge)\n );\n });\n }\n\n /** Begin animation of bottom sheet entrance into view. */\n enter() {\n if (!this._destroyed) {\n this._animationState = 'visible';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** Begin animation of the bottom sheet exiting from view. */\n exit() {\n if (!this._destroyed) {\n this._animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this._breakpointSubscription.unsubscribe();\n this._destroyed = true;\n }\n\n _onTransitionEnd(event: TransitionEvent) {\n if (event.propertyName === 'transform') {\n this._animationStateChanged.emit({\n fromState: this._animationState === 'visible' ? 'void' : 'visible',\n toState: this._animationState,\n totalTime: 300,\n phaseName: 'done',\n });\n }\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Subject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { BottomSheetConfig } from './bottom-sheet-config';\n\n/**\n * Reference to a bottom sheet dispatched from the BottomSheet service.\n */\nexport class BottomSheetRef<T = any, R = any> {\n /** @internal */\n _refInstance: T | null = null;\n\n /** @internal */\n _refRef: any = null;\n\n /** Instance of the component making up the content of the bottom sheet. */\n get instance(): T {\n return this._refInstance!;\n }\n\n /**\n * `ComponentRef` of the component opened into the bottom sheet. Will be\n * null when the bottom sheet is opened using a `TemplateRef`.\n */\n get componentRef() {\n return this._refRef;\n }\n\n /** Whether the user is allowed to close the bottom sheet. */\n disableClose: boolean | undefined;\n\n /** Subject for notifying the user that the bottom sheet has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Result to be passed down to the `afterDismissed` stream. */\n private _result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */\n private _closeFallbackTimeout: any;\n\n constructor(\n private _ref: DialogRef<R, T>,\n config: BottomSheetConfig,\n public containerInstance: any\n ) {\n this.disableClose = config.disableClose;\n\n // Emit when opening animation completes\n containerInstance._animationStateChanged\n .pipe(\n filter((event: any) => event.phase === 'done' && event.toState === 'visible'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance._animationStateChanged\n .pipe(\n filter((event: any) => event.phase === 'done' && (event.toState === 'hidden' || event.toState === 'void')),\n take(1)\n )\n .subscribe(() => {\n if (this._closeFallbackTimeout) {\n clearTimeout(this._closeFallbackTimeout);\n }\n this._ref.close(this._result);\n });\n\n _ref.overlayRef.detachments().subscribe(() => {\n this._ref.close(this._result);\n });\n\n _ref.backdropClick.subscribe(() => {\n if (!this.disableClose) {\n this.dismiss();\n }\n });\n\n _ref.keydownEvents\n .pipe(filter(event => event.keyCode === ESCAPE))\n .subscribe(event => {\n if (!this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this.dismiss();\n }\n });\n }\n\n /**\n * Dismisses the bottom sheet.\n * @param result Data to be passed back to the bottom sheet opener.\n */\n dismiss(result?: R): void {\n if (!this.containerInstance) {\n return;\n }\n\n // Transition the backdrop in parallel to the bottom sheet.\n this._ref.overlayRef.detachBackdrop();\n\n this._result = result;\n this.containerInstance.exit();\n this._closeFallbackTimeout = setTimeout(() => {\n this._ref.close(this._result);\n }, 400);\n }\n\n /** Gets an observable that is notified when the bottom sheet is finished closing. */\n afterDismissed() {\n return this._ref.closed;\n }\n\n /** Gets an observable that is notified when the bottom sheet has opened and appeared. */\n afterOpened() {\n return this._afterOpened;\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick() {\n return this._ref.backdropClick;\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents() {\n return this._ref.keydownEvents;\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { inject, Injectable, InjectionToken, Injector, OnDestroy, TemplateRef } from '@angular/core';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { BottomSheetConfig, BOTTOM_SHEET_DATA } from './bottom-sheet-config';\nimport { BottomSheetContainer } from './bottom-sheet-container';\nimport { BottomSheetRef } from './bottom-sheet-ref';\n\n/** Injection token that can be used to specify default bottom sheet options. */\nexport const BOTTOM_SHEET_DEFAULT_OPTIONS = new InjectionToken<BottomSheetConfig>(\n 'ngs-bottom-sheet-default-options'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class BottomSheet implements OnDestroy {\n private _injector = inject(Injector);\n private _overlay = inject(Overlay);\n private _dialog = inject(Dialog);\n private _parentBottomSheet = inject(BottomSheet, { optional: true, skipSelf: true });\n private _defaultOptions = inject(BOTTOM_SHEET_DEFAULT_OPTIONS, { optional: true });\n private _bottomSheetRefAtThisLevel: BottomSheetRef<any> | null = null;\n\n /** Reference to the currently opened bottom sheet. */\n get _openedBottomSheetRef(): BottomSheetRef<any> | null {\n const parent = this._parentBottomSheet;\n return parent ? parent._openedBottomSheetRef : this._bottomSheetRefAtThisLevel;\n }\n\n set _openedBottomSheetRef(value: BottomSheetRef<any> | null) {\n if (this._parentBottomSheet) {\n this._parentBottomSheet._openedBottomSheetRef = value;\n } else {\n this._bottomSheetRefAtThisLevel = value;\n }\n }\n\n open<T, D = any, R = any>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: BottomSheetConfig<D>\n ): BottomSheetRef<T, R> {\n const _config = { ...(this._defaultOptions || new BottomSheetConfig()), ...config };\n let ref: BottomSheetRef<T, R>;\n\n this._dialog.open<R, T>(componentOrTemplateRef, {\n ...(_config as any),\n // Disable closing since we need to sync it up to the animation ourselves.\n disableClose: true,\n // Disable closing on detachments so that we can sync up the animation.\n closeOnOverlayDetachments: false,\n maxWidth: '100%',\n container: BottomSheetContainer,\n scrollStrategy: _config.scrollStrategy || this._overlay.scrollStrategies.block(),\n positionStrategy: this._overlay.position()\n .global()\n .centerHorizontally()\n .bottom('0'),\n templateContext: () => ({ bottomSheetRef: ref }),\n providers: (cdkRef: any, _cdkConfig: any, container: any) => {\n ref = new BottomSheetRef<T, R>(cdkRef, _config, container);\n return [\n { provide: BottomSheetRef, useValue: ref },\n { provide: BOTTOM_SHEET_DATA, useValue: _config.data },\n ];\n },\n });\n\n ref!.afterDismissed().subscribe(() => {\n // Clear the bottom sheet ref if it hasn't already been replaced by a newer one.\n if (this._openedBottomSheetRef === ref) {\n this._openedBottomSheetRef = null;\n }\n });\n\n if (this._openedBottomSheetRef) {\n // If a bottom sheet is already in view, dismiss it and enter the\n // new bottom sheet after exit animation is complete.\n this._openedBottomSheetRef.afterDismissed().subscribe(() => ref!.containerInstance?.enter());\n this._openedBottomSheetRef.dismiss();\n } else {\n // If no bottom sheet is in view, enter the new bottom sheet.\n ref!.containerInstance.enter();\n }\n\n this._openedBottomSheetRef = ref!;\n return ref!;\n }\n\n /**\n * Dismisses the currently-visible bottom sheet.\n * @param result Data to pass to the bottom sheet instance.\n */\n dismiss<R = any>(result?: R): void {\n if (this._openedBottomSheetRef) {\n this._openedBottomSheetRef.dismiss(result);\n }\n }\n\n ngOnDestroy() {\n if (this._bottomSheetRefAtThisLevel) {\n this._bottomSheetRefAtThisLevel.dismiss();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,209 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, contentChild, TemplateRef, input, booleanAttribute, Component, inject, computed, ChangeDetectionStrategy } from '@angular/core';
3
+ import { NgTemplateOutlet } from '@angular/common';
4
+ import { RouterLink } from '@angular/router';
5
+ import { signalStore, withState, withMethods, patchState } from '@ngrx/signals';
6
+ import { Icon } from '@ngstarter-ui/components/icon';
7
+
8
+ class BreadcrumbItemDefDirective {
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbItemDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: BreadcrumbItemDefDirective, isStandalone: true, selector: "[ngsBreadcrumbItemDef]", ngImport: i0 });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbItemDefDirective, decorators: [{
13
+ type: Directive,
14
+ args: [{
15
+ selector: '[ngsBreadcrumbItemDef]'
16
+ }]
17
+ }] });
18
+
19
+ class BreadcrumbSeparatorDefDirective {
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbSeparatorDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
21
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: BreadcrumbSeparatorDefDirective, isStandalone: true, selector: "[ngsBreadcrumbSeparatorDef]", ngImport: i0 });
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbSeparatorDefDirective, decorators: [{
24
+ type: Directive,
25
+ args: [{
26
+ selector: '[ngsBreadcrumbSeparatorDef]'
27
+ }]
28
+ }] });
29
+
30
+ class BreadcrumbActiveItemDefDirective {
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbActiveItemDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
32
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: BreadcrumbActiveItemDefDirective, isStandalone: true, selector: "[ngsBreadcrumbActiveItemDef]", ngImport: i0 });
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbActiveItemDefDirective, decorators: [{
35
+ type: Directive,
36
+ args: [{ selector: '[ngsBreadcrumbActiveItemDef]' }]
37
+ }] });
38
+
39
+ class Breadcrumbs {
40
+ itemRef = contentChild.required(BreadcrumbItemDefDirective, {
41
+ read: TemplateRef
42
+ });
43
+ activeItemRef = contentChild.required(BreadcrumbActiveItemDefDirective, {
44
+ read: TemplateRef
45
+ });
46
+ separatorRef = contentChild.required(BreadcrumbSeparatorDefDirective, {
47
+ read: TemplateRef
48
+ });
49
+ dataSource = input([], ...(ngDevMode ? [{ debugName: "dataSource" }] : /* istanbul ignore next */ []));
50
+ lastItemAsLink = input(false, { ...(ngDevMode ? { debugName: "lastItemAsLink" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
51
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Breadcrumbs, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: Breadcrumbs, isStandalone: true, selector: "ngs-breadcrumbs", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, lastItemAsLink: { classPropertyName: "lastItemAsLink", publicName: "lastItemAsLink", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.last-item-as-link": "lastItemAsLink()" }, classAttribute: "ngs-breadcrumbs" }, queries: [{ propertyName: "itemRef", first: true, predicate: BreadcrumbItemDefDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "activeItemRef", first: true, predicate: BreadcrumbActiveItemDefDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "separatorRef", first: true, predicate: BreadcrumbSeparatorDefDirective, descendants: true, read: TemplateRef, isSignal: true }], exportAs: ["ngsBreadcrumbs"], ngImport: i0, template: "@for (breadcrumb of dataSource(); track $index; let last = $last) {\n @if (!last) {\n <ng-container *ngTemplateOutlet=\"itemRef(); context: { $implicit: breadcrumb }\"/>\n <ng-container *ngTemplateOutlet=\"separatorRef()\"/>\n } @else {\n <ng-container *ngTemplateOutlet=\"activeItemRef(); context: { $implicit: breadcrumb }\"/>\n }\n}\n\n<ng-content/>\n", styles: [":host{--ngs-breadcrumbs-gap: calc(var(--spacing, .25rem) * 2.5);--ngs-breadcrumbs-item-font-size: .875rem;--ngs-breadcrumbs-item-color: var(--color-secondary);--ngs-breadcrumbs-item-hover-color: var(--color-primary);--ngs-breadcrumbs-active-item-color: var(--color-primary);--ngs-breadcrumbs-item-font-weight: 400;--ngs-breadcrumbs-separator-color: var(--color-neutral-400);--ngs-breadcrumbs-separator-font-size: .825rem;--ngs-breadcrumbs-separator-position-top: 1px;--ngs-breadcrumbs-title-color: var(--color-neutral-800);--ngs-breadcrumbs-title-font-size: .75rem;display:flex;align-items:center;gap:var(--ngs-breadcrumbs-gap)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Breadcrumbs, decorators: [{
55
+ type: Component,
56
+ args: [{ selector: 'ngs-breadcrumbs', exportAs: 'ngsBreadcrumbs', host: {
57
+ 'class': 'ngs-breadcrumbs',
58
+ '[class.last-item-as-link]': 'lastItemAsLink()'
59
+ }, imports: [NgTemplateOutlet], template: "@for (breadcrumb of dataSource(); track $index; let last = $last) {\n @if (!last) {\n <ng-container *ngTemplateOutlet=\"itemRef(); context: { $implicit: breadcrumb }\"/>\n <ng-container *ngTemplateOutlet=\"separatorRef()\"/>\n } @else {\n <ng-container *ngTemplateOutlet=\"activeItemRef(); context: { $implicit: breadcrumb }\"/>\n }\n}\n\n<ng-content/>\n", styles: [":host{--ngs-breadcrumbs-gap: calc(var(--spacing, .25rem) * 2.5);--ngs-breadcrumbs-item-font-size: .875rem;--ngs-breadcrumbs-item-color: var(--color-secondary);--ngs-breadcrumbs-item-hover-color: var(--color-primary);--ngs-breadcrumbs-active-item-color: var(--color-primary);--ngs-breadcrumbs-item-font-weight: 400;--ngs-breadcrumbs-separator-color: var(--color-neutral-400);--ngs-breadcrumbs-separator-font-size: .825rem;--ngs-breadcrumbs-separator-position-top: 1px;--ngs-breadcrumbs-title-color: var(--color-neutral-800);--ngs-breadcrumbs-title-font-size: .75rem;display:flex;align-items:center;gap:var(--ngs-breadcrumbs-gap)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
60
+ }], propDecorators: { itemRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => BreadcrumbItemDefDirective), { ...{
61
+ read: TemplateRef
62
+ }, isSignal: true }] }], activeItemRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => BreadcrumbActiveItemDefDirective), { ...{
63
+ read: TemplateRef
64
+ }, isSignal: true }] }], separatorRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => BreadcrumbSeparatorDefDirective), { ...{
65
+ read: TemplateRef
66
+ }, isSignal: true }] }], dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: false }] }], lastItemAsLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "lastItemAsLink", required: false }] }] } });
67
+
68
+ class BreadcrumbItem {
69
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
70
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: BreadcrumbItem, isStandalone: true, selector: "ngs-breadcrumb-item,[ngs-breadcrumb-item]", host: { classAttribute: "ngs-breadcrumb-item" }, exportAs: ["ngsBreadcrumbItem"], ngImport: i0, template: "<div class=\"icon\">\n <ng-content select=\"[ngsBreadcrumbItemIcon]\"/>\n</div>\n<div class=\"content\">\n <ng-content select=\"ngs-breadcrumb-title\"/>\n <div class=\"name\">\n <ng-content/>\n </div>\n</div>\n", styles: [":host{font-size:var(--ngs-breadcrumbs-item-font-size);font-weight:var(--ngs-breadcrumbs-item-font-weight);color:var(--ngs-breadcrumbs-item-color);display:flex;gap:calc(var(--spacing, .25rem) * 1.5);cursor:pointer;text-decoration:none;align-items:center}:host .icon{line-height:11px}:host .icon ::ng-deep .ngs-breadcrumb-item-icon{font-size:22px;width:22px;height:22px;flex:none}:host .icon:empty{display:none}:host .content:has(.name:empty){display:none}:host:not(:last-child):hover .icon{color:var(--ngs-breadcrumbs-item-hover-color)}:host:not(:last-child):hover .name{color:var(--ngs-breadcrumbs-item-hover-color);text-decoration:underline;text-underline-offset:var(--underline-offset-1)}:host:last-child{cursor:auto;color:var(--ngs-breadcrumbs-active-item-color)}:host-context(.ngs-breadcrumbs.last-item-as-link):last-child{color:var(--ngs-breadcrumbs-item-color);cursor:pointer}:host-context(.ngs-breadcrumbs.last-item-as-link):last-child:hover .icon{color:var(--ngs-breadcrumbs-item-hover-color)}:host-context(.ngs-breadcrumbs.last-item-as-link):last-child:hover .name{color:var(--ngs-breadcrumbs-item-hover-color);text-decoration:underline;text-underline-offset:var(--underline-offset-1)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
71
+ }
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbItem, decorators: [{
73
+ type: Component,
74
+ args: [{ selector: 'ngs-breadcrumb-item,[ngs-breadcrumb-item]', exportAs: 'ngsBreadcrumbItem', host: {
75
+ class: 'ngs-breadcrumb-item'
76
+ }, template: "<div class=\"icon\">\n <ng-content select=\"[ngsBreadcrumbItemIcon]\"/>\n</div>\n<div class=\"content\">\n <ng-content select=\"ngs-breadcrumb-title\"/>\n <div class=\"name\">\n <ng-content/>\n </div>\n</div>\n", styles: [":host{font-size:var(--ngs-breadcrumbs-item-font-size);font-weight:var(--ngs-breadcrumbs-item-font-weight);color:var(--ngs-breadcrumbs-item-color);display:flex;gap:calc(var(--spacing, .25rem) * 1.5);cursor:pointer;text-decoration:none;align-items:center}:host .icon{line-height:11px}:host .icon ::ng-deep .ngs-breadcrumb-item-icon{font-size:22px;width:22px;height:22px;flex:none}:host .icon:empty{display:none}:host .content:has(.name:empty){display:none}:host:not(:last-child):hover .icon{color:var(--ngs-breadcrumbs-item-hover-color)}:host:not(:last-child):hover .name{color:var(--ngs-breadcrumbs-item-hover-color);text-decoration:underline;text-underline-offset:var(--underline-offset-1)}:host:last-child{cursor:auto;color:var(--ngs-breadcrumbs-active-item-color)}:host-context(.ngs-breadcrumbs.last-item-as-link):last-child{color:var(--ngs-breadcrumbs-item-color);cursor:pointer}:host-context(.ngs-breadcrumbs.last-item-as-link):last-child:hover .icon{color:var(--ngs-breadcrumbs-item-hover-color)}:host-context(.ngs-breadcrumbs.last-item-as-link):last-child:hover .name{color:var(--ngs-breadcrumbs-item-hover-color);text-decoration:underline;text-underline-offset:var(--underline-offset-1)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
77
+ }] });
78
+
79
+ class BreadcrumbSeparator {
80
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
81
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: BreadcrumbSeparator, isStandalone: true, selector: "ngs-breadcrumb-separator", host: { classAttribute: "ngs-breadcrumb-separator" }, exportAs: ["ngsBreadcrumbSeparator"], ngImport: i0, template: "<ng-content/>\n", styles: [":host{position:relative;color:var(--ngs-breadcrumbs-separator-color);font-size:var(--ngs-breadcrumbs-separator-font-size);top:var(--ngs-breadcrumbs-separator-position-top);line-height:0}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbSeparator, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: 'ngs-breadcrumb-separator', exportAs: 'ngsBreadcrumbSeparator', host: {
86
+ class: 'ngs-breadcrumb-separator'
87
+ }, template: "<ng-content/>\n", styles: [":host{position:relative;color:var(--ngs-breadcrumbs-separator-color);font-size:var(--ngs-breadcrumbs-separator-font-size);top:var(--ngs-breadcrumbs-separator-position-top);line-height:0}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
88
+ }] });
89
+
90
+ class BreadcrumbTitle {
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbTitle, deps: [], target: i0.ɵɵFactoryTarget.Component });
92
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: BreadcrumbTitle, isStandalone: true, selector: "ngs-breadcrumb-title", host: { classAttribute: "ngs-breadcrumb-title" }, exportAs: ["ngsBreadcrumbTitle"], ngImport: i0, template: "<ng-content/>\n", styles: [":host{display:block;font-size:var(--ngs-breadcrumbs-title-font-size);color:var(--ngs-breadcrumbs-title-color);line-height:var(--leading-relaxed)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbTitle, decorators: [{
95
+ type: Component,
96
+ args: [{ selector: 'ngs-breadcrumb-title', exportAs: 'ngsBreadcrumbTitle', imports: [], host: {
97
+ class: 'ngs-breadcrumb-title',
98
+ }, template: "<ng-content/>\n", styles: [":host{display:block;font-size:var(--ngs-breadcrumbs-title-font-size);color:var(--ngs-breadcrumbs-title-color);line-height:var(--leading-relaxed)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
99
+ }] });
100
+
101
+ const initialState = {
102
+ breadcrumbs: []
103
+ };
104
+ const BreadcrumbsStore = signalStore({ providedIn: 'root' }, withState(initialState), withMethods((store) => ({
105
+ setBreadcrumbs(breadcrumbs) {
106
+ patchState(store, {
107
+ breadcrumbs
108
+ });
109
+ }
110
+ })));
111
+
112
+ class BreadcrumbItemIconDefDirective {
113
+ templateRef = inject(TemplateRef);
114
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbItemIconDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
115
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: BreadcrumbItemIconDefDirective, isStandalone: true, selector: "[ngsBreadcrumbItemIconDef]", ngImport: i0 });
116
+ }
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbItemIconDefDirective, decorators: [{
118
+ type: Directive,
119
+ args: [{
120
+ selector: '[ngsBreadcrumbItemIconDef]',
121
+ standalone: true
122
+ }]
123
+ }] });
124
+
125
+ class BreadcrumbItemIconDirective {
126
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbItemIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
127
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: BreadcrumbItemIconDirective, isStandalone: true, selector: "[ngsBreadcrumbItemIcon]", host: { classAttribute: "ngs-breadcrumb-item-icon" }, exportAs: ["ngsBreadcrumbItemIcon"], ngImport: i0 });
128
+ }
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbItemIconDirective, decorators: [{
130
+ type: Directive,
131
+ args: [{
132
+ selector: '[ngsBreadcrumbItemIcon]',
133
+ exportAs: 'ngsBreadcrumbItemIcon',
134
+ standalone: true,
135
+ host: {
136
+ 'class': 'ngs-breadcrumb-item-icon'
137
+ }
138
+ }]
139
+ }] });
140
+
141
+ class BreadcrumbItemNameDefDirective {
142
+ templateRef = inject(TemplateRef);
143
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbItemNameDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
144
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: BreadcrumbItemNameDefDirective, isStandalone: true, selector: "[ngsBreadcrumbItemNameDef]", ngImport: i0 });
145
+ }
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbItemNameDefDirective, decorators: [{
147
+ type: Directive,
148
+ args: [{
149
+ selector: '[ngsBreadcrumbItemNameDef]'
150
+ }]
151
+ }] });
152
+
153
+ class BreadcrumbItemTitleDefDirective {
154
+ templateRef = inject(TemplateRef);
155
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbItemTitleDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
156
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: BreadcrumbItemTitleDefDirective, isStandalone: true, selector: "[ngsBreadcrumbItemTitleDef]", ngImport: i0 });
157
+ }
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbItemTitleDefDirective, decorators: [{
159
+ type: Directive,
160
+ args: [{
161
+ selector: '[ngsBreadcrumbItemTitleDef]'
162
+ }]
163
+ }] });
164
+
165
+ class BreadcrumbsGlobal {
166
+ _breadcrumbsStore = inject(BreadcrumbsStore);
167
+ itemIconDef = contentChild(BreadcrumbItemIconDefDirective, ...(ngDevMode ? [{ debugName: "itemIconDef" }] : /* istanbul ignore next */ []));
168
+ itemNameDef = contentChild(BreadcrumbItemNameDefDirective, ...(ngDevMode ? [{ debugName: "itemNameDef" }] : /* istanbul ignore next */ []));
169
+ itemTitleDef = contentChild(BreadcrumbItemTitleDefDirective, ...(ngDevMode ? [{ debugName: "itemTitleDef" }] : /* istanbul ignore next */ []));
170
+ breadcrumbs = computed(() => {
171
+ return this._breadcrumbsStore.breadcrumbs();
172
+ }, ...(ngDevMode ? [{ debugName: "breadcrumbs" }] : /* istanbul ignore next */ []));
173
+ lastItemAsLink = input(false, { ...(ngDevMode ? { debugName: "lastItemAsLink" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
174
+ separator = input('/', ...(ngDevMode ? [{ debugName: "separator" }] : /* istanbul ignore next */ []));
175
+ get iconTemplateRef() {
176
+ return this.itemIconDef()?.templateRef;
177
+ }
178
+ get titleTemplateRef() {
179
+ return this.itemTitleDef()?.templateRef;
180
+ }
181
+ get nameTemplateRef() {
182
+ return this.itemNameDef()?.templateRef;
183
+ }
184
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbsGlobal, deps: [], target: i0.ɵɵFactoryTarget.Component });
185
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: BreadcrumbsGlobal, isStandalone: true, selector: "ngs-breadcrumbs-global", inputs: { lastItemAsLink: { classPropertyName: "lastItemAsLink", publicName: "lastItemAsLink", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "ngSkipHydration": "true" }, classAttribute: "ngs-breadcrumbs-global" }, queries: [{ propertyName: "itemIconDef", first: true, predicate: BreadcrumbItemIconDefDirective, descendants: true, isSignal: true }, { propertyName: "itemNameDef", first: true, predicate: BreadcrumbItemNameDefDirective, descendants: true, isSignal: true }, { propertyName: "itemTitleDef", first: true, predicate: BreadcrumbItemTitleDefDirective, descendants: true, isSignal: true }], exportAs: ["ngsBreadcrumbsGlobal"], ngImport: i0, template: "<ngs-breadcrumbs [lastItemAsLink]=\"lastItemAsLink()\">\n @for (breadcrumb of breadcrumbs(); track $index; let last = $last) {\n @switch (breadcrumb.type) {\n @case ('link') {\n <a ngs-breadcrumb-item [routerLink]=\"breadcrumb.route\">\n <ng-container ngsBreadcrumbItemIcon>\n @if (iconTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"iconTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: breadcrumb }\"/>\n } @else {\n @if (breadcrumb.icon) {\n <ngs-icon name=\"{{ breadcrumb.icon }}\"/>\n }\n }\n </ng-container>\n\n @if (titleTemplateRef) {\n <ngs-breadcrumb-title>\n <ng-container [ngTemplateOutlet]=\"titleTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: breadcrumb }\"/>\n </ngs-breadcrumb-title>\n } @else {\n @if (breadcrumb.title) {\n <ngs-breadcrumb-title>{{ breadcrumb.title }}</ngs-breadcrumb-title>\n }\n }\n\n @if (nameTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"nameTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: breadcrumb }\"/>\n } @else {\n @if (breadcrumb.name) {\n {{ breadcrumb.name }}\n }\n }\n </a>\n }\n @default {\n <ngs-breadcrumb-item>\n <ng-container ngsBreadcrumbItemIcon>\n @if (iconTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"iconTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: breadcrumb }\"/>\n } @else if (breadcrumb.icon) {\n <ngs-icon name=\"{{ breadcrumb.icon }}\"/>\n }\n </ng-container>\n\n @if (titleTemplateRef) {\n <ngs-breadcrumb-title>\n <ng-container [ngTemplateOutlet]=\"titleTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: breadcrumb }\"/>\n </ngs-breadcrumb-title>\n } @else {\n @if (breadcrumb.title) {\n <ngs-breadcrumb-title>{{ breadcrumb.title }}</ngs-breadcrumb-title>\n }\n }\n\n @if (nameTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"nameTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: breadcrumb }\"/>\n } @else {\n @if (breadcrumb.name) {\n {{ breadcrumb.name }}\n }\n }\n </ngs-breadcrumb-item>\n }\n }\n\n @if (!last) {\n <ngs-breadcrumb-separator>{{ separator() }}</ngs-breadcrumb-separator>\n }\n }\n</ngs-breadcrumbs>\n", styles: [":host{display:block}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: BreadcrumbItem, selector: "ngs-breadcrumb-item,[ngs-breadcrumb-item]", exportAs: ["ngsBreadcrumbItem"] }, { kind: "component", type: BreadcrumbSeparator, selector: "ngs-breadcrumb-separator", exportAs: ["ngsBreadcrumbSeparator"] }, { kind: "component", type: BreadcrumbTitle, selector: "ngs-breadcrumb-title", exportAs: ["ngsBreadcrumbTitle"] }, { kind: "component", type: Breadcrumbs, selector: "ngs-breadcrumbs", inputs: ["dataSource", "lastItemAsLink"], exportAs: ["ngsBreadcrumbs"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: BreadcrumbItemIconDirective, selector: "[ngsBreadcrumbItemIcon]", exportAs: ["ngsBreadcrumbItemIcon"] }, { kind: "component", type: Icon, selector: "ngs-icon", inputs: ["name"], exportAs: ["ngsIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
186
+ }
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: BreadcrumbsGlobal, decorators: [{
188
+ type: Component,
189
+ args: [{ selector: 'ngs-breadcrumbs-global', exportAs: 'ngsBreadcrumbsGlobal', imports: [
190
+ BreadcrumbItem,
191
+ BreadcrumbSeparator,
192
+ BreadcrumbTitle,
193
+ Breadcrumbs,
194
+ RouterLink,
195
+ BreadcrumbItemIconDirective,
196
+ Icon,
197
+ NgTemplateOutlet
198
+ ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
199
+ 'class': 'ngs-breadcrumbs-global',
200
+ ngSkipHydration: 'true'
201
+ }, template: "<ngs-breadcrumbs [lastItemAsLink]=\"lastItemAsLink()\">\n @for (breadcrumb of breadcrumbs(); track $index; let last = $last) {\n @switch (breadcrumb.type) {\n @case ('link') {\n <a ngs-breadcrumb-item [routerLink]=\"breadcrumb.route\">\n <ng-container ngsBreadcrumbItemIcon>\n @if (iconTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"iconTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: breadcrumb }\"/>\n } @else {\n @if (breadcrumb.icon) {\n <ngs-icon name=\"{{ breadcrumb.icon }}\"/>\n }\n }\n </ng-container>\n\n @if (titleTemplateRef) {\n <ngs-breadcrumb-title>\n <ng-container [ngTemplateOutlet]=\"titleTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: breadcrumb }\"/>\n </ngs-breadcrumb-title>\n } @else {\n @if (breadcrumb.title) {\n <ngs-breadcrumb-title>{{ breadcrumb.title }}</ngs-breadcrumb-title>\n }\n }\n\n @if (nameTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"nameTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: breadcrumb }\"/>\n } @else {\n @if (breadcrumb.name) {\n {{ breadcrumb.name }}\n }\n }\n </a>\n }\n @default {\n <ngs-breadcrumb-item>\n <ng-container ngsBreadcrumbItemIcon>\n @if (iconTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"iconTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: breadcrumb }\"/>\n } @else if (breadcrumb.icon) {\n <ngs-icon name=\"{{ breadcrumb.icon }}\"/>\n }\n </ng-container>\n\n @if (titleTemplateRef) {\n <ngs-breadcrumb-title>\n <ng-container [ngTemplateOutlet]=\"titleTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: breadcrumb }\"/>\n </ngs-breadcrumb-title>\n } @else {\n @if (breadcrumb.title) {\n <ngs-breadcrumb-title>{{ breadcrumb.title }}</ngs-breadcrumb-title>\n }\n }\n\n @if (nameTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"nameTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: breadcrumb }\"/>\n } @else {\n @if (breadcrumb.name) {\n {{ breadcrumb.name }}\n }\n }\n </ngs-breadcrumb-item>\n }\n }\n\n @if (!last) {\n <ngs-breadcrumb-separator>{{ separator() }}</ngs-breadcrumb-separator>\n }\n }\n</ngs-breadcrumbs>\n", styles: [":host{display:block}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
202
+ }], propDecorators: { itemIconDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => BreadcrumbItemIconDefDirective), { isSignal: true }] }], itemNameDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => BreadcrumbItemNameDefDirective), { isSignal: true }] }], itemTitleDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => BreadcrumbItemTitleDefDirective), { isSignal: true }] }], lastItemAsLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "lastItemAsLink", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }] } });
203
+
204
+ /**
205
+ * Generated bundle index. Do not edit.
206
+ */
207
+
208
+ export { BreadcrumbActiveItemDefDirective, BreadcrumbItem, BreadcrumbItemDefDirective, BreadcrumbItemIconDefDirective, BreadcrumbItemIconDirective, BreadcrumbItemNameDefDirective, BreadcrumbItemTitleDefDirective, BreadcrumbSeparator, BreadcrumbSeparatorDefDirective, BreadcrumbTitle, Breadcrumbs, BreadcrumbsGlobal, BreadcrumbsStore };
209
+ //# sourceMappingURL=ngstarter-ui-components-breadcrumbs.mjs.map