@coreui/angular 5.2.0-next.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/README.md +3 -1
  2. package/esm2022/lib/accordion/accordion/accordion.component.mjs +3 -3
  3. package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +3 -3
  4. package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +3 -3
  5. package/esm2022/lib/accordion/accordion.module.mjs +4 -4
  6. package/esm2022/lib/accordion/accordion.service.mjs +3 -3
  7. package/esm2022/lib/alert/alert-heading.directive.mjs +3 -3
  8. package/esm2022/lib/alert/alert-link.directive.mjs +3 -3
  9. package/esm2022/lib/alert/alert.component.mjs +3 -3
  10. package/esm2022/lib/alert/alert.module.mjs +4 -4
  11. package/esm2022/lib/avatar/avatar.component.mjs +3 -3
  12. package/esm2022/lib/avatar/avatar.module.mjs +4 -4
  13. package/esm2022/lib/backdrop/backdrop.service.mjs +3 -3
  14. package/esm2022/lib/badge/badge.component.mjs +3 -3
  15. package/esm2022/lib/badge/badge.module.mjs +4 -4
  16. package/esm2022/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +3 -3
  17. package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
  18. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +3 -3
  19. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +3 -3
  20. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +4 -4
  21. package/esm2022/lib/button/button-close.directive.mjs +3 -3
  22. package/esm2022/lib/button/button.directive.mjs +3 -3
  23. package/esm2022/lib/button/button.module.mjs +4 -4
  24. package/esm2022/lib/button-group/button-group/button-group.component.mjs +3 -3
  25. package/esm2022/lib/button-group/button-group.module.mjs +4 -4
  26. package/esm2022/lib/button-group/button-toolbar/button-toolbar.component.mjs +3 -3
  27. package/esm2022/lib/callout/callout.component.mjs +3 -3
  28. package/esm2022/lib/callout/callout.module.mjs +4 -4
  29. package/esm2022/lib/card/card-body.component.mjs +3 -3
  30. package/esm2022/lib/card/card-footer.component.mjs +3 -3
  31. package/esm2022/lib/card/card-group.component.mjs +3 -3
  32. package/esm2022/lib/card/card-header-actions.component.mjs +3 -3
  33. package/esm2022/lib/card/card-header.component.mjs +3 -3
  34. package/esm2022/lib/card/card-img-overlay/card-img-overlay.component.mjs +3 -3
  35. package/esm2022/lib/card/card-img.directive.mjs +3 -3
  36. package/esm2022/lib/card/card-link.directive.mjs +3 -3
  37. package/esm2022/lib/card/card-subtitle.directive.mjs +3 -3
  38. package/esm2022/lib/card/card-text.directive.mjs +3 -3
  39. package/esm2022/lib/card/card-title.directive.mjs +3 -3
  40. package/esm2022/lib/card/card.component.mjs +3 -3
  41. package/esm2022/lib/card/card.module.mjs +4 -4
  42. package/esm2022/lib/carousel/carousel/carousel.component.mjs +3 -3
  43. package/esm2022/lib/carousel/carousel-caption/carousel-caption.component.mjs +3 -3
  44. package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +3 -3
  45. package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +3 -3
  46. package/esm2022/lib/carousel/carousel-inner/carousel-inner.component.mjs +3 -3
  47. package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +3 -3
  48. package/esm2022/lib/carousel/carousel-state.mjs +3 -3
  49. package/esm2022/lib/carousel/carousel.config.mjs +3 -3
  50. package/esm2022/lib/carousel/carousel.module.mjs +4 -4
  51. package/esm2022/lib/carousel/carousel.service.mjs +3 -3
  52. package/esm2022/lib/collapse/collapse.directive.mjs +3 -3
  53. package/esm2022/lib/collapse/collapse.module.mjs +4 -4
  54. package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +6 -6
  55. package/esm2022/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +3 -3
  56. package/esm2022/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +3 -3
  57. package/esm2022/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +3 -3
  58. package/esm2022/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +3 -3
  59. package/esm2022/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +3 -3
  60. package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +3 -3
  61. package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
  62. package/esm2022/lib/dropdown/dropdown.service.mjs +3 -3
  63. package/esm2022/lib/footer/footer.component.mjs +3 -3
  64. package/esm2022/lib/footer/footer.module.mjs +4 -4
  65. package/esm2022/lib/form/form/form.directive.mjs +3 -3
  66. package/esm2022/lib/form/form-check/form-check-input.directive.mjs +3 -3
  67. package/esm2022/lib/form/form-check/form-check-label.directive.mjs +3 -3
  68. package/esm2022/lib/form/form-check/form-check.component.mjs +3 -3
  69. package/esm2022/lib/form/form-control/form-control.directive.mjs +3 -3
  70. package/esm2022/lib/form/form-feedback/form-feedback.component.mjs +3 -3
  71. package/esm2022/lib/form/form-floating/form-floating.directive.mjs +3 -3
  72. package/esm2022/lib/form/form-label/form-label.directive.mjs +3 -3
  73. package/esm2022/lib/form/form-select/form-select.directive.mjs +3 -3
  74. package/esm2022/lib/form/form-text/form-text.directive.mjs +3 -3
  75. package/esm2022/lib/form/form.module.mjs +4 -4
  76. package/esm2022/lib/form/input-group/input-group.component.mjs +3 -3
  77. package/esm2022/lib/form/input-group-text/input-group-text.directive.mjs +3 -3
  78. package/esm2022/lib/grid/col.component.mjs +3 -3
  79. package/esm2022/lib/grid/col.directive.mjs +3 -3
  80. package/esm2022/lib/grid/container.component.mjs +3 -3
  81. package/esm2022/lib/grid/grid.module.mjs +4 -4
  82. package/esm2022/lib/grid/gutter.directive.mjs +3 -3
  83. package/esm2022/lib/grid/row.component.mjs +3 -3
  84. package/esm2022/lib/grid/row.directive.mjs +3 -3
  85. package/esm2022/lib/header/header/header.component.mjs +3 -3
  86. package/esm2022/lib/header/header-brand/header-brand.component.mjs +3 -3
  87. package/esm2022/lib/header/header-divider/header-divider.component.mjs +3 -3
  88. package/esm2022/lib/header/header-nav/header-nav.component.mjs +3 -3
  89. package/esm2022/lib/header/header-text/header-text.component.mjs +3 -3
  90. package/esm2022/lib/header/header-toggler/header-toggler.directive.mjs +3 -3
  91. package/esm2022/lib/header/header.module.mjs +4 -4
  92. package/esm2022/lib/image/img.directive.mjs +3 -3
  93. package/esm2022/lib/image/img.module.mjs +4 -4
  94. package/esm2022/lib/list-group/list-group-item.directive.mjs +3 -3
  95. package/esm2022/lib/list-group/list-group.directive.mjs +3 -3
  96. package/esm2022/lib/list-group/list-group.module.mjs +4 -4
  97. package/esm2022/lib/modal/modal/modal.component.mjs +3 -3
  98. package/esm2022/lib/modal/modal-body/modal-body.component.mjs +3 -3
  99. package/esm2022/lib/modal/modal-content/modal-content.component.mjs +3 -3
  100. package/esm2022/lib/modal/modal-dialog/modal-dialog.component.mjs +3 -3
  101. package/esm2022/lib/modal/modal-dismiss/modal-toggle.directive.mjs +3 -3
  102. package/esm2022/lib/modal/modal-footer/modal-footer.component.mjs +3 -3
  103. package/esm2022/lib/modal/modal-header/modal-header.component.mjs +3 -3
  104. package/esm2022/lib/modal/modal-title/modal-title.directive.mjs +3 -3
  105. package/esm2022/lib/modal/modal.module.mjs +4 -4
  106. package/esm2022/lib/modal/modal.service.mjs +3 -3
  107. package/esm2022/lib/nav/nav-item.component.mjs +3 -3
  108. package/esm2022/lib/nav/nav-link.directive.mjs +3 -3
  109. package/esm2022/lib/nav/nav.component.mjs +3 -3
  110. package/esm2022/lib/nav/nav.module.mjs +4 -4
  111. package/esm2022/lib/navbar/navbar-brand/navbar-brand.directive.mjs +3 -3
  112. package/esm2022/lib/navbar/navbar-nav/navbar-nav.component.mjs +3 -3
  113. package/esm2022/lib/navbar/navbar-text/navbar-text.component.mjs +3 -3
  114. package/esm2022/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +3 -3
  115. package/esm2022/lib/navbar/navbar.component.mjs +3 -3
  116. package/esm2022/lib/navbar/navbar.module.mjs +4 -4
  117. package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +3 -3
  118. package/esm2022/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +3 -3
  119. package/esm2022/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +3 -3
  120. package/esm2022/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +3 -3
  121. package/esm2022/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +3 -3
  122. package/esm2022/lib/offcanvas/offcanvas.module.mjs +4 -4
  123. package/esm2022/lib/offcanvas/offcanvas.service.mjs +3 -3
  124. package/esm2022/lib/pagination/page-item/page-item.component.mjs +3 -3
  125. package/esm2022/lib/pagination/page-item/page-item.directive.mjs +3 -3
  126. package/esm2022/lib/pagination/page-link/page-link.directive.mjs +3 -3
  127. package/esm2022/lib/pagination/pagination/pagination.component.mjs +3 -3
  128. package/esm2022/lib/pagination/pagination.module.mjs +4 -4
  129. package/esm2022/lib/placeholder/placeholder-animation.directive.mjs +3 -3
  130. package/esm2022/lib/placeholder/placeholder.directive.mjs +3 -3
  131. package/esm2022/lib/placeholder/placeholder.module.mjs +4 -4
  132. package/esm2022/lib/popover/popover/popover.component.mjs +3 -3
  133. package/esm2022/lib/popover/popover.directive.mjs +3 -3
  134. package/esm2022/lib/popover/popover.module.mjs +4 -4
  135. package/esm2022/lib/progress/progress-bar.component.mjs +3 -3
  136. package/esm2022/lib/progress/progress-bar.directive.mjs +3 -3
  137. package/esm2022/lib/progress/progress-stacked.component.mjs +3 -3
  138. package/esm2022/lib/progress/progress.component.mjs +3 -3
  139. package/esm2022/lib/progress/progress.module.mjs +4 -4
  140. package/esm2022/lib/services/class-toggle.service.mjs +3 -3
  141. package/esm2022/lib/services/color-mode.service.mjs +3 -3
  142. package/esm2022/lib/services/in-memory-storage.service.mjs +3 -3
  143. package/esm2022/lib/services/intersection.service.mjs +3 -3
  144. package/esm2022/lib/services/listeners.service.mjs +3 -3
  145. package/esm2022/lib/services/local-storage.service.mjs +3 -3
  146. package/esm2022/lib/shared/element-ref.directive.mjs +3 -3
  147. package/esm2022/lib/shared/html-attr.directive.mjs +3 -3
  148. package/esm2022/lib/shared/shared.module.mjs +4 -4
  149. package/esm2022/lib/shared/template-id.directive.mjs +3 -3
  150. package/esm2022/lib/shared/theme.directive.mjs +3 -3
  151. package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +3 -3
  152. package/esm2022/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +3 -3
  153. package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +3 -3
  154. package/esm2022/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
  155. package/esm2022/lib/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
  156. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +3 -3
  157. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +3 -3
  158. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +3 -3
  159. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +3 -3
  160. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +3 -3
  161. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +3 -3
  162. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +6 -6
  163. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +3 -3
  164. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +3 -3
  165. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +6 -6
  166. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +6 -6
  167. package/esm2022/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +3 -3
  168. package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.mjs +3 -3
  169. package/esm2022/lib/sidebar/sidebar.module.mjs +4 -4
  170. package/esm2022/lib/sidebar/sidebar.service.mjs +3 -3
  171. package/esm2022/lib/spinner/spinner.component.mjs +3 -3
  172. package/esm2022/lib/spinner/spinner.module.mjs +4 -4
  173. package/esm2022/lib/table/table-active.directive.mjs +3 -3
  174. package/esm2022/lib/table/table-color.directive.mjs +3 -3
  175. package/esm2022/lib/table/table.directive.mjs +3 -3
  176. package/esm2022/lib/table/table.module.mjs +4 -4
  177. package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +3 -3
  178. package/esm2022/lib/tabs/tab-content-ref.directive.mjs +3 -3
  179. package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +3 -3
  180. package/esm2022/lib/tabs/tab.service.mjs +3 -3
  181. package/esm2022/lib/tabs/tabs.module.mjs +4 -4
  182. package/esm2022/lib/tabs-2/index.mjs +2 -0
  183. package/esm2022/lib/tabs-2/public_api.mjs +8 -0
  184. package/esm2022/lib/tabs-2/tab/tab.directive.mjs +92 -0
  185. package/esm2022/lib/tabs-2/tab-panel/tab-panel.component.mjs +112 -0
  186. package/esm2022/lib/tabs-2/tabs-content/tabs-content.component.mjs +18 -0
  187. package/esm2022/lib/tabs-2/tabs-list/tabs-list.component.mjs +92 -0
  188. package/esm2022/lib/tabs-2/tabs.component.mjs +37 -0
  189. package/esm2022/lib/tabs-2/tabs.service.mjs +15 -0
  190. package/esm2022/lib/tabs-2/tabs2.module.mjs +22 -0
  191. package/esm2022/lib/toast/toast/toast.component.mjs +3 -3
  192. package/esm2022/lib/toast/toast-body/toast-body.component.mjs +3 -3
  193. package/esm2022/lib/toast/toast-close.directive.mjs +3 -3
  194. package/esm2022/lib/toast/toast-header/toast-header.component.mjs +3 -3
  195. package/esm2022/lib/toast/toast.module.mjs +4 -4
  196. package/esm2022/lib/toast/toaster/toaster-host.directive.mjs +3 -3
  197. package/esm2022/lib/toast/toaster/toaster.component.mjs +3 -3
  198. package/esm2022/lib/toast/toaster/toaster.service.mjs +3 -3
  199. package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +3 -3
  200. package/esm2022/lib/tooltip/tooltip.directive.mjs +3 -3
  201. package/esm2022/lib/tooltip/tooltip.module.mjs +4 -4
  202. package/esm2022/lib/utilities/align.directive.mjs +3 -3
  203. package/esm2022/lib/utilities/bg-color.directive.mjs +3 -3
  204. package/esm2022/lib/utilities/border.directive.mjs +3 -3
  205. package/esm2022/lib/utilities/rounded.directive.mjs +3 -3
  206. package/esm2022/lib/utilities/shadow-on-scroll.directive.mjs +3 -3
  207. package/esm2022/lib/utilities/text-bg-color.directive.mjs +3 -3
  208. package/esm2022/lib/utilities/text-color.directive.mjs +3 -3
  209. package/esm2022/lib/utilities/utilities.module.mjs +4 -4
  210. package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +3 -3
  211. package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +3 -3
  212. package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +3 -3
  213. package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +3 -3
  214. package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +3 -3
  215. package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +3 -3
  216. package/esm2022/lib/widget/widget.module.mjs +4 -4
  217. package/esm2022/public-api.mjs +2 -1
  218. package/fesm2022/coreui-angular.mjs +1028 -672
  219. package/fesm2022/coreui-angular.mjs.map +1 -1
  220. package/lib/tabs-2/index.d.ts +1 -0
  221. package/lib/tabs-2/public_api.d.ts +7 -0
  222. package/lib/tabs-2/tab/tab.directive.d.ts +43 -0
  223. package/lib/tabs-2/tab-panel/tab-panel.component.d.ts +64 -0
  224. package/lib/tabs-2/tabs-content/tabs-content.component.d.ts +5 -0
  225. package/lib/tabs-2/tabs-list/tabs-list.component.d.ts +35 -0
  226. package/lib/tabs-2/tabs.component.d.ts +21 -0
  227. package/lib/tabs-2/tabs.service.d.ts +8 -0
  228. package/lib/tabs-2/tabs2.module.d.ts +11 -0
  229. package/package.json +3 -3
  230. package/public-api.d.ts +1 -0
@@ -9,10 +9,10 @@ export class TabService {
9
9
  setActiveTabIdx(tabContentState) {
10
10
  this.activeTabPaneIdx.next(tabContentState);
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TabService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TabService, providedIn: 'root' }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabService, providedIn: 'root' }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TabService, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabService, decorators: [{
16
16
  type: Injectable,
17
17
  args: [{
18
18
  providedIn: 'root'
@@ -5,17 +5,17 @@ import { TabService } from './tab.service';
5
5
  import { TabContentRefDirective } from './tab-content-ref.directive';
6
6
  import * as i0 from "@angular/core";
7
7
  export class TabsModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: TabsModule, imports: [TabContentComponent,
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: TabsModule, imports: [TabContentComponent,
10
10
  TabContentRefDirective,
11
11
  TabPaneComponent], exports: [TabContentComponent,
12
12
  TabPaneComponent,
13
13
  TabContentRefDirective] }); }
14
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TabsModule, providers: [
14
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsModule, providers: [
15
15
  TabService
16
16
  ] }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TabsModule, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  imports: [
@@ -0,0 +1,2 @@
1
+ export * from './public_api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3RhYnMtMi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export { Tabs2Module } from './tabs2.module';
2
+ export { TabsComponent } from './tabs.component';
3
+ export { TabsContentComponent } from './tabs-content/tabs-content.component';
4
+ export { TabsListComponent } from './tabs-list/tabs-list.component';
5
+ export { TabsService } from './tabs.service';
6
+ export { TabDirective } from './tab/tab.directive';
7
+ export { TabPanelComponent } from './tab-panel/tab-panel.component';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy0yL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVGFiczJNb2R1bGUgfSBmcm9tICcuL3RhYnMyLm1vZHVsZSc7XG5leHBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi90YWJzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBUYWJzQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdGFicy1jb250ZW50L3RhYnMtY29udGVudC5jb21wb25lbnQnO1xuZXhwb3J0IHsgVGFic0xpc3RDb21wb25lbnQgfSBmcm9tICcuL3RhYnMtbGlzdC90YWJzLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCB7IFRhYnNTZXJ2aWNlIH0gZnJvbSAnLi90YWJzLnNlcnZpY2UnO1xuZXhwb3J0IHsgVGFiRGlyZWN0aXZlIH0gZnJvbSAnLi90YWIvdGFiLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBUYWJQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vdGFiLXBhbmVsL3RhYi1wYW5lbC5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,92 @@
1
+ import { booleanAttribute, computed, DestroyRef, Directive, effect, ElementRef, inject, Input, input, signal, untracked } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { fromEvent, merge, takeWhile } from 'rxjs';
4
+ import { filter, tap } from 'rxjs/operators';
5
+ import { TabsService } from '../tabs.service';
6
+ import * as i0 from "@angular/core";
7
+ export class TabDirective {
8
+ constructor() {
9
+ this.#destroyRef = inject(DestroyRef);
10
+ this.#elementRef = inject(ElementRef);
11
+ this.#tabsService = inject(TabsService);
12
+ this.#disabled = signal(false);
13
+ /**
14
+ * Item key.
15
+ * @type string | number
16
+ * @required
17
+ */
18
+ this.itemKey = input.required();
19
+ /**
20
+ * Element id attribute
21
+ * @type string
22
+ * @default undefined
23
+ */
24
+ this.id = input();
25
+ /**
26
+ * aria-controls attribute
27
+ * @type string
28
+ * @default undefined
29
+ */
30
+ this.ariaControls = input(undefined, {
31
+ alias: 'aria-controls'
32
+ });
33
+ this.isActive = computed(() => !this.#disabled() && this.#tabsService.activeItemKey() === this.itemKey());
34
+ this.hostClasses = computed(() => ({
35
+ 'nav-link': true,
36
+ active: this.isActive()
37
+ }));
38
+ this.propId = computed(() => this.id() ?? `${this.#tabsService.id()}-tab-${this.itemKey()}`);
39
+ this.attrAriaControls = computed(() => this.ariaControls() ?? `${this.#tabsService.id()}-panel-${this.itemKey()}`);
40
+ this.disabledEffect = effect(() => {
41
+ if (!this.#disabled()) {
42
+ const click$ = fromEvent(this.#elementRef.nativeElement, 'click');
43
+ const focusIn$ = fromEvent(this.#elementRef.nativeElement, 'focusin');
44
+ merge(focusIn$, click$)
45
+ .pipe(filter(($event) => !this.#disabled()), tap(($event) => {
46
+ this.#tabsService.activeItemKey.set(untracked(this.itemKey));
47
+ }), takeWhile(() => !this.#disabled()), takeUntilDestroyed(this.#destroyRef))
48
+ .subscribe();
49
+ }
50
+ }, { allowSignalWrites: true });
51
+ }
52
+ #destroyRef;
53
+ #elementRef;
54
+ #tabsService;
55
+ /**
56
+ * Disabled attribute
57
+ * @type boolean
58
+ * @default false
59
+ */
60
+ set disabled(value) {
61
+ this.#disabled.set(value);
62
+ }
63
+ get disabled() {
64
+ return this.#disabled();
65
+ }
66
+ #disabled;
67
+ focus(origin) {
68
+ this.#elementRef.nativeElement.focus();
69
+ }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
71
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.3", type: TabDirective, isStandalone: true, selector: "button[cTab]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaControls: { classPropertyName: "ariaControls", publicName: "aria-controls", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button", "role": "tab" }, properties: { "class": "hostClasses()", "attr.aria-selected": "isActive()", "attr.aria-controls": "attrAriaControls()", "id": "propId()", "tabindex": "isActive() ? 0 : -1" } }, ngImport: i0 }); }
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabDirective, decorators: [{
74
+ type: Directive,
75
+ args: [{
76
+ selector: 'button[cTab]',
77
+ standalone: true,
78
+ host: {
79
+ '[class]': 'hostClasses()',
80
+ type: 'button',
81
+ role: 'tab',
82
+ '[attr.aria-selected]': 'isActive()',
83
+ '[attr.aria-controls]': 'attrAriaControls()',
84
+ '[id]': 'propId()',
85
+ '[tabindex]': 'isActive() ? 0 : -1'
86
+ }
87
+ }]
88
+ }], propDecorators: { disabled: [{
89
+ type: Input,
90
+ args: [{ transform: booleanAttribute }]
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy0yL3RhYi90YWIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFlOUMsTUFBTSxPQUFPLFlBQVk7SUFiekI7UUFjVyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQWdCbkMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuQzs7OztXQUlHO1FBQ00sWUFBTyxHQUFpQyxLQUFLLENBQUMsUUFBUSxFQUFtQixDQUFDO1FBRW5GOzs7O1dBSUc7UUFDTSxPQUFFLEdBQW9DLEtBQUssRUFBVSxDQUFDO1FBRS9EOzs7O1dBSUc7UUFDTSxpQkFBWSxHQUFvQyxLQUFLLENBQXFCLFNBQVMsRUFBRTtZQUM1RixLQUFLLEVBQUUsZUFBZTtTQUN2QixDQUFDLENBQUM7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RUFBRSxVQUFVO3dCQUNsQixZQUFZLEVBQUUscUJBQXFCO3FCQUNwQztpQkFDRjs4QkFZSyxRQUFRO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c2FibGVPcHRpb24sIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgY29tcHV0ZWQsXG4gIERlc3Ryb3lSZWYsXG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBpbnB1dCxcbiAgSW5wdXRTaWduYWwsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhYnNTZXJ2aWNlIH0gZnJvbSAnLi4vdGFicy5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYnV0dG9uW2NUYWJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3NdJzogJ2hvc3RDbGFzc2VzKCknLFxuICAgIHR5cGU6ICdidXR0b24nLFxuICAgIHJvbGU6ICd0YWInLFxuICAgICdbYXR0ci5hcmlhLXNlbGVjdGVkXSc6ICdpc0FjdGl2ZSgpJyxcbiAgICAnW2F0dHIuYXJpYS1jb250cm9sc10nOiAnYXR0ckFyaWFDb250cm9scygpJyxcbiAgICAnW2lkXSc6ICdwcm9wSWQoKScsXG4gICAgJ1t0YWJpbmRleF0nOiAnaXNBY3RpdmUoKSA/IDAgOiAtMSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJEaXJlY3RpdmUgaW1wbGVtZW50cyBGb2N1c2FibGVPcHRpb24ge1xuICByZWFkb25seSAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcmVhZG9ubHkgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHJlYWRvbmx5ICN0YWJzU2VydmljZSA9IGluamVjdChUYWJzU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIERpc2FibGVkIGF0dHJpYnV0ZVxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jZGlzYWJsZWQuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy4jZGlzYWJsZWQoKTtcbiAgfVxuXG4gIHJlYWRvbmx5ICNkaXNhYmxlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIEl0ZW0ga2V5LlxuICAgKiBAdHlwZSBzdHJpbmcgfCBudW1iZXJcbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICByZWFkb25seSBpdGVtS2V5OiBJbnB1dFNpZ25hbDxzdHJpbmcgfCBudW1iZXI+ID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nIHwgbnVtYmVyPigpO1xuXG4gIC8qKlxuICAgKiBFbGVtZW50IGlkIGF0dHJpYnV0ZVxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBpZDogSW5wdXRTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiA9IGlucHV0PHN0cmluZz4oKTtcblxuICAvKipcbiAgICogYXJpYS1jb250cm9scyBhdHRyaWJ1dGVcbiAgICogQHR5cGUgc3RyaW5nXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgYXJpYUNvbnRyb2xzOiBJbnB1dFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHtcbiAgICBhbGlhczogJ2FyaWEtY29udHJvbHMnXG4gIH0pO1xuXG4gIHJlYWRvbmx5IGlzQWN0aXZlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oXG4gICAgKCkgPT4gIXRoaXMuI2Rpc2FibGVkKCkgJiYgdGhpcy4jdGFic1NlcnZpY2UuYWN0aXZlSXRlbUtleSgpID09PSB0aGlzLml0ZW1LZXkoKVxuICApO1xuXG4gIHJlYWRvbmx5IGhvc3RDbGFzc2VzID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICAnbmF2LWxpbmsnOiB0cnVlLFxuICAgIGFjdGl2ZTogdGhpcy5pc0FjdGl2ZSgpXG4gIH0pKTtcblxuICByZWFkb25seSBwcm9wSWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlkKCkgPz8gYCR7dGhpcy4jdGFic1NlcnZpY2UuaWQoKX0tdGFiLSR7dGhpcy5pdGVtS2V5KCl9YCk7XG5cbiAgcmVhZG9ubHkgYXR0ckFyaWFDb250cm9scyA9IGNvbXB1dGVkKFxuICAgICgpID0+IHRoaXMuYXJpYUNvbnRyb2xzKCkgPz8gYCR7dGhpcy4jdGFic1NlcnZpY2UuaWQoKX0tcGFuZWwtJHt0aGlzLml0ZW1LZXkoKX1gXG4gICk7XG5cbiAgZGlzYWJsZWRFZmZlY3QgPSBlZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLiNkaXNhYmxlZCgpKSB7XG4gICAgICAgIGNvbnN0IGNsaWNrJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpO1xuICAgICAgICBjb25zdCBmb2N1c0luJCA9IGZyb21FdmVudDxGb2N1c0V2ZW50Pih0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdmb2N1c2luJyk7XG5cbiAgICAgICAgbWVyZ2UoZm9jdXNJbiQsIGNsaWNrJClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoJGV2ZW50KSA9PiAhdGhpcy4jZGlzYWJsZWQoKSksXG4gICAgICAgICAgICB0YXAoKCRldmVudCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLiN0YWJzU2VydmljZS5hY3RpdmVJdGVtS2V5LnNldCh1bnRyYWNrZWQodGhpcy5pdGVtS2V5KSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRha2VXaGlsZSgoKSA9PiAhdGhpcy4jZGlzYWJsZWQoKSksXG4gICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0sXG4gICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICk7XG5cbiAgZm9jdXMob3JpZ2luPzogRm9jdXNPcmlnaW4pOiB2b2lkIHtcbiAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,112 @@
1
+ import { animate, state, style, transition, trigger } from '@angular/animations';
2
+ import { Component, computed, HostBinding, HostListener, inject, input, numberAttribute, output, signal } from '@angular/core';
3
+ import { TabsService } from '../tabs.service';
4
+ import * as i0 from "@angular/core";
5
+ export class TabPanelComponent {
6
+ constructor() {
7
+ this.tabsService = inject(TabsService);
8
+ /**
9
+ * aria-labelledby attribute
10
+ * @type string
11
+ * @default undefined
12
+ */
13
+ this.ariaLabelledBy = input(undefined, {
14
+ alias: 'aria-labelledby'
15
+ });
16
+ /**
17
+ * Element id attribute
18
+ * @type string
19
+ * @default undefined
20
+ */
21
+ this.id = input();
22
+ /**
23
+ * Item key.
24
+ * @type string | number
25
+ * @required
26
+ */
27
+ this.itemKey = input.required();
28
+ /**
29
+ * tabindex attribute.
30
+ * @type number
31
+ * @default 0
32
+ */
33
+ this.tabindex = input(0, { transform: numberAttribute });
34
+ /**
35
+ * Enable fade in transition.
36
+ * @type boolean
37
+ * @default true
38
+ */
39
+ this.transition = input(true);
40
+ /**
41
+ * visible change output
42
+ * @type OutputEmitterRef<VisibleChangeEvent>
43
+ */
44
+ this.visibleChange = output();
45
+ this.show = signal(false);
46
+ this.visible = computed(() => {
47
+ const visible = this.tabsService.activeItemKey() === this.itemKey() && !this.tabsService.activeItem()?.disabled;
48
+ this.visibleChange.emit({ itemKey: this.itemKey(), visible });
49
+ return visible;
50
+ });
51
+ this.propId = computed(() => this.id() ?? `${this.tabsService.id()}-panel-${this.itemKey()}`);
52
+ this.attrAriaLabelledBy = computed(() => this.ariaLabelledBy() ?? `${this.tabsService.id()}-tab-${this.itemKey()}`);
53
+ this.hostClasses = computed(() => ({
54
+ 'tab-pane': true,
55
+ active: this.show(),
56
+ fade: this.transition(),
57
+ show: this.show(),
58
+ invisible: this.tabsService.activeItem()?.disabled
59
+ }));
60
+ }
61
+ get animationDisabled() {
62
+ return !this.transition();
63
+ }
64
+ get animateType() {
65
+ return this.visible() ? 'show' : 'hide';
66
+ }
67
+ onAnimationDone($event) {
68
+ this.show.set(this.visible());
69
+ }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: TabPanelComponent, isStandalone: true, selector: "c-tab-panel", inputs: { ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: true, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, transition: { classPropertyName: "transition", publicName: "transition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { attributes: { "role": "tabpanel" }, listeners: { "@fadeInOut.done": "onAnimationDone($event)" }, properties: { "class": "hostClasses()", "tabindex": "visible() ? tabindex(): -1", "attr.aria-labelledby": "attrAriaLabelledBy()", "id": "propId()", "@.disabled": "this.animationDisabled", "@fadeInOut": "this.animateType" } }, ngImport: i0, template: '<ng-content />', isInline: true, animations: [
72
+ trigger('fadeInOut', [
73
+ state('show', style({ opacity: 1 })),
74
+ state('hide', style({ opacity: 0 })),
75
+ state('void', style({ opacity: 0 })),
76
+ transition('* => *', [animate('150ms linear')])
77
+ ])
78
+ ] }); }
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabPanelComponent, decorators: [{
81
+ type: Component,
82
+ args: [{
83
+ selector: 'c-tab-panel',
84
+ standalone: true,
85
+ template: '<ng-content />',
86
+ host: {
87
+ '[class]': 'hostClasses()',
88
+ '[tabindex]': 'visible() ? tabindex(): -1',
89
+ '[attr.aria-labelledby]': 'attrAriaLabelledBy()',
90
+ '[id]': 'propId()',
91
+ role: 'tabpanel'
92
+ },
93
+ animations: [
94
+ trigger('fadeInOut', [
95
+ state('show', style({ opacity: 1 })),
96
+ state('hide', style({ opacity: 0 })),
97
+ state('void', style({ opacity: 0 })),
98
+ transition('* => *', [animate('150ms linear')])
99
+ ])
100
+ ]
101
+ }]
102
+ }], propDecorators: { animationDisabled: [{
103
+ type: HostBinding,
104
+ args: ['@.disabled']
105
+ }], animateType: [{
106
+ type: HostBinding,
107
+ args: ['@fadeInOut']
108
+ }], onAnimationDone: [{
109
+ type: HostListener,
110
+ args: ['@fadeInOut.done', ['$event']]
111
+ }] } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy0yL3RhYi1wYW5lbC90YWItcGFuZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWtCLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pHLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxlQUFlLEVBQ2YsTUFBTSxFQUVOLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBeUI5QyxNQUFNLE9BQU8saUJBQWlCO0lBcEI5QjtRQXFCVyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzQzs7OztXQUlHO1FBQ00sbUJBQWMsR0FBb0MsS0FBSyxDQUFxQixTQUFTLEVBQUU7WUFDOUYsS0FBSyxFQUFFLGlCQUFpQjtTQUN6QixDQUFDLENBQUM7UUFFSDs7OztXQUlHO1FBQ00sT0FBRSxHQUFvQyxLQUFLLEVBQVUsQ0FBQztRQUUvRDs7OztXQUlHO1FBQ00sWUFBTyxHQUFpQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFbEU7Ozs7V0FJRztRQUNNLGFBQVEsR0FBOEMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRXhHOzs7O1dBSUc7UUFDTSxlQUFVLEdBQXlCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4RDs7O1dBR0c7UUFDTSxrQkFBYSxHQUF5QyxNQUFNLEVBQXNCLENBQUM7UUFFbkYsU0FBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyQixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEVBQUUsUUFBUSxDQUFDO1lBQ2hILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzlELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBRU0sV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxVQUFVLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFekYsdUJBQWtCLEdBQUcsUUFBUSxDQUNwQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNoRixDQUFDO1FBRU8sZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNyQyxVQUFVLEVBQUUsSUFBSTtZQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRO1NBQ25ELENBQUMsQ0FBQyxDQUFDO0tBZ0JMO0lBZEMsSUFDSSxpQkFBaUI7UUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFDLENBQUM7SUFHRCxlQUFlLENBQUMsTUFBc0I7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs4R0FqRlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsbWxDQWpCbEIsZ0JBQWdCLDhCQVFkO1lBQ1YsT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDbkIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO2FBQ2hELENBQUM7U0FDSDs7MkZBRVUsaUJBQWlCO2tCQXBCN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLElBQUksRUFBRTt3QkFDSixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsWUFBWSxFQUFFLDRCQUE0Qjt3QkFDMUMsd0JBQXdCLEVBQUUsc0JBQXNCO3dCQUNoRCxNQUFNLEVBQUUsVUFBVTt3QkFDbEIsSUFBSSxFQUFFLFVBQVU7cUJBQ2pCO29CQUNELFVBQVUsRUFBRTt3QkFDVixPQUFPLENBQUMsV0FBVyxFQUFFOzRCQUNuQixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUNwQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUNwQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUNwQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7eUJBQ2hELENBQUM7cUJBQ0g7aUJBQ0Y7OEJBc0VLLGlCQUFpQjtzQkFEcEIsV0FBVzt1QkFBQyxZQUFZO2dCQU1yQixXQUFXO3NCQURkLFdBQVc7dUJBQUMsWUFBWTtnQkFNekIsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgQW5pbWF0aW9uRXZlbnQsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgSW5wdXRTaWduYWwsXG4gIElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybSxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBvdXRwdXQsXG4gIE91dHB1dEVtaXR0ZXJSZWYsXG4gIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYnNTZXJ2aWNlIH0gZnJvbSAnLi4vdGFicy5zZXJ2aWNlJztcblxudHlwZSBBbmltYXRlVHlwZSA9ICdoaWRlJyB8ICdzaG93JztcbnR5cGUgVmlzaWJsZUNoYW5nZUV2ZW50ID0geyBpdGVtS2V5OiBzdHJpbmcgfCBudW1iZXI7IHZpc2libGU6IGJvb2xlYW4gfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy10YWItcGFuZWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50IC8+JyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3NdJzogJ2hvc3RDbGFzc2VzKCknLFxuICAgICdbdGFiaW5kZXhdJzogJ3Zpc2libGUoKSA/IHRhYmluZGV4KCk6IC0xJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdhdHRyQXJpYUxhYmVsbGVkQnkoKScsXG4gICAgJ1tpZF0nOiAncHJvcElkKCknLFxuICAgIHJvbGU6ICd0YWJwYW5lbCdcbiAgfSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2ZhZGVJbk91dCcsIFtcbiAgICAgIHN0YXRlKCdzaG93Jywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgICAgIHN0YXRlKCdoaWRlJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJyogPT4gKicsIFthbmltYXRlKCcxNTBtcyBsaW5lYXInKV0pXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJQYW5lbENvbXBvbmVudCB7XG4gIHJlYWRvbmx5IHRhYnNTZXJ2aWNlID0gaW5qZWN0KFRhYnNTZXJ2aWNlKTtcblxuICAvKipcbiAgICogYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZVxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBhcmlhTGFiZWxsZWRCeTogSW5wdXRTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7XG4gICAgYWxpYXM6ICdhcmlhLWxhYmVsbGVkYnknXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbGVtZW50IGlkIGF0dHJpYnV0ZVxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBpZDogSW5wdXRTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiA9IGlucHV0PHN0cmluZz4oKTtcblxuICAvKipcbiAgICogSXRlbSBrZXkuXG4gICAqIEB0eXBlIHN0cmluZyB8IG51bWJlclxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IGl0ZW1LZXk6IElucHV0U2lnbmFsPHN0cmluZyB8IG51bWJlcj4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuXG4gIC8qKlxuICAgKiB0YWJpbmRleCBhdHRyaWJ1dGUuXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSB0YWJpbmRleDogSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtPG51bWJlciwgdW5rbm93bj4gPSBpbnB1dCgwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZmFkZSBpbiB0cmFuc2l0aW9uLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zaXRpb246IElucHV0U2lnbmFsPGJvb2xlYW4+ID0gaW5wdXQodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIHZpc2libGUgY2hhbmdlIG91dHB1dFxuICAgKiBAdHlwZSBPdXRwdXRFbWl0dGVyUmVmPFZpc2libGVDaGFuZ2VFdmVudD5cbiAgICovXG4gIHJlYWRvbmx5IHZpc2libGVDaGFuZ2U6IE91dHB1dEVtaXR0ZXJSZWY8VmlzaWJsZUNoYW5nZUV2ZW50PiA9IG91dHB1dDxWaXNpYmxlQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgcmVhZG9ubHkgc2hvdyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgdmlzaWJsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB2aXNpYmxlID0gdGhpcy50YWJzU2VydmljZS5hY3RpdmVJdGVtS2V5KCkgPT09IHRoaXMuaXRlbUtleSgpICYmICF0aGlzLnRhYnNTZXJ2aWNlLmFjdGl2ZUl0ZW0oKT8uZGlzYWJsZWQ7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoeyBpdGVtS2V5OiB0aGlzLml0ZW1LZXkoKSwgdmlzaWJsZSB9KTtcbiAgICByZXR1cm4gdmlzaWJsZTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcHJvcElkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pZCgpID8/IGAke3RoaXMudGFic1NlcnZpY2UuaWQoKX0tcGFuZWwtJHt0aGlzLml0ZW1LZXkoKX1gKTtcblxuICByZWFkb25seSBhdHRyQXJpYUxhYmVsbGVkQnkgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLmFyaWFMYWJlbGxlZEJ5KCkgPz8gYCR7dGhpcy50YWJzU2VydmljZS5pZCgpfS10YWItJHt0aGlzLml0ZW1LZXkoKX1gXG4gICk7XG5cbiAgcmVhZG9ubHkgaG9zdENsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgICd0YWItcGFuZSc6IHRydWUsXG4gICAgYWN0aXZlOiB0aGlzLnNob3coKSxcbiAgICBmYWRlOiB0aGlzLnRyYW5zaXRpb24oKSxcbiAgICBzaG93OiB0aGlzLnNob3coKSxcbiAgICBpbnZpc2libGU6IHRoaXMudGFic1NlcnZpY2UuYWN0aXZlSXRlbSgpPy5kaXNhYmxlZFxuICB9KSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdALmRpc2FibGVkJylcbiAgZ2V0IGFuaW1hdGlvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy50cmFuc2l0aW9uKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ0BmYWRlSW5PdXQnKVxuICBnZXQgYW5pbWF0ZVR5cGUoKTogQW5pbWF0ZVR5cGUge1xuICAgIHJldHVybiB0aGlzLnZpc2libGUoKSA/ICdzaG93JyA6ICdoaWRlJztcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ0BmYWRlSW5PdXQuZG9uZScsIFsnJGV2ZW50J10pXG4gIG9uQW5pbWF0aW9uRG9uZSgkZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zaG93LnNldCh0aGlzLnZpc2libGUoKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TabsContentComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: TabsContentComponent, isStandalone: true, selector: "c-tabs-content", host: { classAttribute: "tab-content" }, ngImport: i0, template: '<ng-content />', isInline: true }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsContentComponent, decorators: [{
8
+ type: Component,
9
+ args: [{
10
+ selector: 'c-tabs-content',
11
+ standalone: true,
12
+ template: '<ng-content />',
13
+ host: {
14
+ class: 'tab-content'
15
+ }
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy0yL3RhYnMtY29udGVudC90YWJzLWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVTFDLE1BQU0sT0FBTyxvQkFBb0I7OEdBQXBCLG9CQUFvQjtrR0FBcEIsb0JBQW9CLG1IQUxyQixnQkFBZ0I7OzJGQUtmLG9CQUFvQjtrQkFSaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxhQUFhO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLXRhYnMtY29udGVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQgLz4nLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICd0YWItY29udGVudCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJzQ29udGVudENvbXBvbmVudCB7fVxuIl19
@@ -0,0 +1,92 @@
1
+ import { FocusKeyManager } from '@angular/cdk/a11y';
2
+ import { Component, computed, contentChildren, DestroyRef, effect, HostListener, inject, input, untracked } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { tap } from 'rxjs/operators';
5
+ import { TabDirective } from '../tab/tab.directive';
6
+ import { TabsService } from '../tabs.service';
7
+ import * as i0 from "@angular/core";
8
+ export class TabsListComponent {
9
+ constructor() {
10
+ this.#destroyRef = inject(DestroyRef);
11
+ this.tabsService = inject(TabsService);
12
+ /**
13
+ * Specify a layout type for component.
14
+ * @type 'fill' | 'justified' | undefined
15
+ * @default undefined
16
+ */
17
+ this.layout = input();
18
+ /**
19
+ * Set the variant to tabs, pills or underline.
20
+ * @type 'pills' | 'tabs' | 'underline' | 'underline-border' | undefined
21
+ * @default undefined
22
+ */
23
+ this.variant = input();
24
+ /**
25
+ * Set the role to tab list.
26
+ * @default 'tablist'
27
+ */
28
+ this.role = input('tablist');
29
+ this.hostClasses = computed(() => ({
30
+ nav: true,
31
+ [`nav-${this.layout()}`]: this.layout(),
32
+ [`nav-${this.variant()}`]: this.variant()
33
+ }));
34
+ this.tabs = contentChildren(TabDirective);
35
+ this.tabsEffect = effect(() => {
36
+ if (this.tabs().length === 0) {
37
+ return;
38
+ }
39
+ this.#focusKeyManager = new FocusKeyManager(this.tabs())
40
+ .skipPredicate((tab) => tab.disabled === true)
41
+ .withHorizontalOrientation('ltr')
42
+ .withHomeAndEnd()
43
+ .withWrap();
44
+ this.#focusKeyManager.change
45
+ .pipe(tap((value) => {
46
+ this.tabsService.activeItemKey.set(this.#focusKeyManager.activeItem?.itemKey());
47
+ this.tabsService.activeItem.set(this.#focusKeyManager.activeItem);
48
+ }), takeUntilDestroyed(this.#destroyRef))
49
+ .subscribe();
50
+ const activeItem = this.tabs().find((tab) => untracked(tab.isActive)) ?? this.tabs().find((tab) => !tab.disabled);
51
+ const activeItemIndex = this.tabs().findIndex((tab) => tab === activeItem);
52
+ this.#focusKeyManager?.updateActiveItem(activeItemIndex < 0 ? 0 : activeItemIndex);
53
+ this.tabsService.activeItemKey.set(this.#focusKeyManager.activeItem?.itemKey());
54
+ this.tabsService.activeItem.set(this.#focusKeyManager.activeItem);
55
+ }, { allowSignalWrites: true });
56
+ this.tabsServiceEffect = effect(() => {
57
+ const activeItemIndex = this.tabs().findIndex((tab) => untracked(tab.isActive) && untracked(tab.itemKey) === this.tabsService.activeItemKey());
58
+ this.#focusKeyManager?.updateActiveItem(activeItemIndex < 0 ? 0 : activeItemIndex);
59
+ });
60
+ }
61
+ #destroyRef;
62
+ #focusKeyManager;
63
+ onKeydown($event) {
64
+ if (['ArrowLeft', 'ArrowRight'].includes($event.key)) {
65
+ this.#focusKeyManager.onKeydown($event);
66
+ return;
67
+ }
68
+ if (['Tab'].includes($event.key)) {
69
+ this.#focusKeyManager?.tabOut.next();
70
+ }
71
+ return;
72
+ }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
74
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.3", type: TabsListComponent, isStandalone: true, selector: "c-tabs-list", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.role": "role()", "class": "hostClasses()" } }, queries: [{ propertyName: "tabs", predicate: TabDirective, isSignal: true }], ngImport: i0, template: '<ng-content />', isInline: true }); }
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsListComponent, decorators: [{
77
+ type: Component,
78
+ args: [{
79
+ selector: 'c-tabs-list',
80
+ standalone: true,
81
+ imports: [TabDirective],
82
+ template: '<ng-content />',
83
+ host: {
84
+ '[attr.role]': 'role()',
85
+ '[class]': 'hostClasses()'
86
+ }
87
+ }]
88
+ }], propDecorators: { onKeydown: [{
89
+ type: HostListener,
90
+ args: ['keydown', ['$event']]
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy0yL3RhYnMtbGlzdC90YWJzLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixlQUFlLEVBQ2YsVUFBVSxFQUNWLE1BQU0sRUFDTixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBWTlDLE1BQU0sT0FBTyxpQkFBaUI7SUFWOUI7UUFXVyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzQzs7OztXQUlHO1FBQ00sV0FBTSxHQUFrRCxLQUFLLEVBQUUsQ0FBQztRQUV6RTs7OztXQUlHO1FBQ00sWUFBTyxHQUFpRixLQUFLLEVBQUUsQ0FBQztRQUV6Rzs7O1dBR0c7UUFDTSxTQUFJLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckMsR0FBRyxFQUFFLElBQUk7WUFDVCxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxJ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QUMsQ0FBQztRQUNyRixDQUFDLENBQUMsQ0FBQztLQWFKO0lBaEZVLFdBQVcsQ0FBc0I7SUE4QjFDLGdCQUFnQixDQUFpQztJQXdDakQsU0FBUyxDQUFDLE1BQVc7UUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsT0FBTztJQUNULENBQUM7OEdBaEZVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGdsQkE4QkksWUFBWSw2Q0FwQ2xDLGdCQUFnQjs7MkZBTWYsaUJBQWlCO2tCQVY3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixJQUFJLEVBQUU7d0JBQ0osYUFBYSxFQUFFLFFBQVE7d0JBQ3ZCLFNBQVMsRUFBRSxlQUFlO3FCQUMzQjtpQkFDRjs4QkF3RUMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZHJlbixcbiAgRGVzdHJveVJlZixcbiAgZWZmZWN0LFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIElucHV0U2lnbmFsLFxuICB1bnRyYWNrZWRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUYWJEaXJlY3RpdmUgfSBmcm9tICcuLi90YWIvdGFiLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJzU2VydmljZSB9IGZyb20gJy4uL3RhYnMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtdGFicy1saXN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RhYkRpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQgLz4nLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnJvbGVdJzogJ3JvbGUoKScsXG4gICAgJ1tjbGFzc10nOiAnaG9zdENsYXNzZXMoKSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJzTGlzdENvbXBvbmVudCB7XG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSB0YWJzU2VydmljZSA9IGluamVjdChUYWJzU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBsYXlvdXQgdHlwZSBmb3IgY29tcG9uZW50LlxuICAgKiBAdHlwZSAnZmlsbCcgfCAnanVzdGlmaWVkJyB8IHVuZGVmaW5lZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGxheW91dDogSW5wdXRTaWduYWw8J2ZpbGwnIHwgJ2p1c3RpZmllZCcgfCB1bmRlZmluZWQ+ID0gaW5wdXQoKTtcblxuICAvKipcbiAgICogU2V0IHRoZSB2YXJpYW50IHRvIHRhYnMsIHBpbGxzIG9yIHVuZGVybGluZS5cbiAgICogQHR5cGUgJ3BpbGxzJyB8ICd0YWJzJyB8ICd1bmRlcmxpbmUnIHwgJ3VuZGVybGluZS1ib3JkZXInIHwgdW5kZWZpbmVkXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgdmFyaWFudDogSW5wdXRTaWduYWw8J3BpbGxzJyB8ICd0YWJzJyB8ICd1bmRlcmxpbmUnIHwgJ3VuZGVybGluZS1ib3JkZXInIHwgdW5kZWZpbmVkPiA9IGlucHV0KCk7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcm9sZSB0byB0YWIgbGlzdC5cbiAgICogQGRlZmF1bHQgJ3RhYmxpc3QnXG4gICAqL1xuICByZWFkb25seSByb2xlID0gaW5wdXQoJ3RhYmxpc3QnKTtcblxuICByZWFkb25seSBob3N0Q2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgbmF2OiB0cnVlLFxuICAgIFtgbmF2LSR7dGhpcy5sYXlvdXQoKX1gXTogdGhpcy5sYXlvdXQoKSxcbiAgICBbYG5hdi0ke3RoaXMudmFyaWFudCgpfWBdOiB0aGlzLnZhcmlhbnQoKVxuICB9KSk7XG5cbiAgcmVhZG9ubHkgdGFicyA9IGNvbnRlbnRDaGlsZHJlbihUYWJEaXJlY3RpdmUpO1xuICAjZm9jdXNLZXlNYW5hZ2VyITogRm9jdXNLZXlNYW5hZ2VyPFRhYkRpcmVjdGl2ZT47XG5cbiAgcmVhZG9ubHkgdGFic0VmZmVjdCA9IGVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBpZiAodGhpcy50YWJzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuI2ZvY3VzS2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy50YWJzKCkpXG4gICAgICAgIC5za2lwUHJlZGljYXRlKCh0YWIpID0+IHRhYi5kaXNhYmxlZCA9PT0gdHJ1ZSlcbiAgICAgICAgLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24oJ2x0cicpXG4gICAgICAgIC53aXRoSG9tZUFuZEVuZCgpXG4gICAgICAgIC53aXRoV3JhcCgpO1xuXG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXIuY2hhbmdlXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGFic1NlcnZpY2UuYWN0aXZlSXRlbUtleS5zZXQodGhpcy4jZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW1LZXkoKSk7XG4gICAgICAgICAgICB0aGlzLnRhYnNTZXJ2aWNlLmFjdGl2ZUl0ZW0uc2V0KHRoaXMuI2ZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLnRhYnMoKS5maW5kKCh0YWIpID0+IHVudHJhY2tlZCh0YWIuaXNBY3RpdmUpKSA/PyB0aGlzLnRhYnMoKS5maW5kKCh0YWIpID0+ICF0YWIuZGlzYWJsZWQpO1xuICAgICAgY29uc3QgYWN0aXZlSXRlbUluZGV4ID0gdGhpcy50YWJzKCkuZmluZEluZGV4KCh0YWIpID0+IHRhYiA9PT0gYWN0aXZlSXRlbSk7XG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LnVwZGF0ZUFjdGl2ZUl0ZW0oYWN0aXZlSXRlbUluZGV4IDwgMCA/IDAgOiBhY3RpdmVJdGVtSW5kZXgpO1xuICAgICAgdGhpcy50YWJzU2VydmljZS5hY3RpdmVJdGVtS2V5LnNldCh0aGlzLiNmb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbUtleSgpKTtcbiAgICAgIHRoaXMudGFic1NlcnZpY2UuYWN0aXZlSXRlbS5zZXQodGhpcy4jZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pO1xuICAgIH0sXG4gICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICk7XG5cbiAgdGFic1NlcnZpY2VFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHRoaXMudGFicygpLmZpbmRJbmRleChcbiAgICAgICh0YWIpID0+IHVudHJhY2tlZCh0YWIuaXNBY3RpdmUpICYmIHVudHJhY2tlZCh0YWIuaXRlbUtleSkgPT09IHRoaXMudGFic1NlcnZpY2UuYWN0aXZlSXRlbUtleSgpXG4gICAgKTtcbiAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LnVwZGF0ZUFjdGl2ZUl0ZW0oYWN0aXZlSXRlbUluZGV4IDwgMCA/IDAgOiBhY3RpdmVJdGVtSW5kZXgpO1xuICB9KTtcblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlkb3duKCRldmVudDogYW55KSB7XG4gICAgaWYgKFsnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnXS5pbmNsdWRlcygkZXZlbnQua2V5KSkge1xuICAgICAgdGhpcy4jZm9jdXNLZXlNYW5hZ2VyLm9uS2V5ZG93bigkZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoWydUYWInXS5pbmNsdWRlcygkZXZlbnQua2V5KSkge1xuICAgICAgdGhpcy4jZm9jdXNLZXlNYW5hZ2VyPy50YWJPdXQubmV4dCgpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { Component, effect, inject, input, model } from '@angular/core';
2
+ import { TabsService } from './tabs.service';
3
+ import * as i0 from "@angular/core";
4
+ let nextId = 0;
5
+ export class TabsComponent {
6
+ constructor() {
7
+ this.tabsService = inject(TabsService);
8
+ /**
9
+ * The active item key.
10
+ * @type <string | number | undefined>
11
+ */
12
+ this.activeItemKey = model();
13
+ /**
14
+ * The id attribute
15
+ * @type string
16
+ */
17
+ this.tabsId = `tabs-${nextId++}`;
18
+ this.id = input(this.tabsId);
19
+ this.activeItemEffect = effect(() => {
20
+ this.tabsService.id.set(this.id());
21
+ this.tabsService.activeItemKey.set(this.activeItemKey());
22
+ }, { allowSignalWrites: true });
23
+ this.tabsServiceEffect = effect(() => {
24
+ this.activeItemKey.set(this.tabsService.activeItemKey());
25
+ }, { allowSignalWrites: true });
26
+ }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: TabsComponent, isStandalone: true, selector: "c-tabs", inputs: { activeItemKey: { classPropertyName: "activeItemKey", publicName: "activeItemKey", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItemKey: "activeItemKeyChange" }, host: { properties: { "id": "id()" }, classAttribute: "tabs" }, providers: [TabsService], ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block}\n"] }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'c-tabs', standalone: true, imports: [], template: '<ng-content />', providers: [TabsService], host: {
33
+ '[id]': 'id()',
34
+ class: 'tabs'
35
+ }, styles: [":host{display:block}\n"] }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3RhYnMtMi90YWJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTdDLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQWNmLE1BQU0sT0FBTyxhQUFhO0lBWjFCO1FBYVcsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFM0M7OztXQUdHO1FBQ00sa0JBQWEsR0FBNkMsS0FBSyxFQUFtQixDQUFDO1FBRTVGOzs7V0FHRztRQUNILFdBQU0sR0FBRyxRQUFRLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDbkIsT0FBRSxHQUFHLEtBQUssQ0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFaEMscUJBQWdCLEdBQUcsTUFBTSxDQUNoQyxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFDO1FBRU8sc0JBQWlCLEdBQUcsTUFBTSxDQUNqQyxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7S0FDSDs4R0E5QlksYUFBYTtrR0FBYixhQUFhLG1iQU5iLENBQUMsV0FBVyxDQUFDLDBCQUZkLGdCQUFnQjs7MkZBUWYsYUFBYTtrQkFaekIsU0FBUzsrQkFDRSxRQUFRLGNBQ04sSUFBSSxXQUNQLEVBQUUsWUFDRCxnQkFBZ0IsYUFFZixDQUFDLFdBQVcsQ0FBQyxRQUNsQjt3QkFDSixNQUFNLEVBQUUsTUFBTTt3QkFDZCxLQUFLLEVBQUUsTUFBTTtxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBtb2RlbCwgTW9kZWxTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYnNTZXJ2aWNlIH0gZnJvbSAnLi90YWJzLnNlcnZpY2UnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy10YWJzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQgLz4nLFxuICBzdHlsZVVybDogJy4vdGFicy5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1RhYnNTZXJ2aWNlXSxcbiAgaG9zdDoge1xuICAgICdbaWRdJzogJ2lkKCknLFxuICAgIGNsYXNzOiAndGFicydcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJzQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgdGFic1NlcnZpY2UgPSBpbmplY3QoVGFic1NlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBUaGUgYWN0aXZlIGl0ZW0ga2V5LlxuICAgKiBAdHlwZSA8c3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkPlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aXZlSXRlbUtleTogTW9kZWxTaWduYWw8c3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkPiA9IG1vZGVsPG51bWJlciB8IHN0cmluZz4oKTtcblxuICAvKipcbiAgICogVGhlIGlkIGF0dHJpYnV0ZVxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICovXG4gIHRhYnNJZCA9IGB0YWJzLSR7bmV4dElkKyt9YDtcbiAgcmVhZG9ubHkgaWQgPSBpbnB1dDxzdHJpbmc+KHRoaXMudGFic0lkKTtcblxuICByZWFkb25seSBhY3RpdmVJdGVtRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIHRoaXMudGFic1NlcnZpY2UuaWQuc2V0KHRoaXMuaWQoKSk7XG4gICAgICB0aGlzLnRhYnNTZXJ2aWNlLmFjdGl2ZUl0ZW1LZXkuc2V0KHRoaXMuYWN0aXZlSXRlbUtleSgpKTtcbiAgICB9LFxuICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICApO1xuXG4gIHJlYWRvbmx5IHRhYnNTZXJ2aWNlRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlSXRlbUtleS5zZXQodGhpcy50YWJzU2VydmljZS5hY3RpdmVJdGVtS2V5KCkpO1xuICAgIH0sXG4gICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICk7XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { Injectable, signal } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TabsService {
4
+ constructor() {
5
+ this.activeItem = signal(undefined);
6
+ this.activeItemKey = signal(undefined);
7
+ this.id = signal(undefined);
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
10
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsService }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsService, decorators: [{
13
+ type: Injectable
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90YWJzLTIvdGFicy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUduRCxNQUFNLE9BQU8sV0FBVztJQUR4QjtRQUVXLGVBQVUsR0FBRyxNQUFNLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxNQUFNLENBQThCLFNBQVMsQ0FBQyxDQUFDO1FBQy9ELE9BQUUsR0FBRyxNQUFNLENBQThCLFNBQVMsQ0FBQyxDQUFDO0tBQzlEOzhHQUpZLFdBQVc7a0hBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGFic1NlcnZpY2Uge1xuICByZWFkb25seSBhY3RpdmVJdGVtID0gc2lnbmFsPGFueT4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgYWN0aXZlSXRlbUtleSA9IHNpZ25hbDxzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGlkID0gc2lnbmFsPHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbn1cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { TabsService } from './tabs.service';
3
+ import { TabsComponent } from './tabs.component';
4
+ import { TabDirective } from './tab/tab.directive';
5
+ import { TabsListComponent } from './tabs-list/tabs-list.component';
6
+ import { TabsContentComponent } from './tabs-content/tabs-content.component';
7
+ import { TabPanelComponent } from './tab-panel/tab-panel.component';
8
+ import * as i0 from "@angular/core";
9
+ export class Tabs2Module {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: Tabs2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: Tabs2Module, imports: [TabsComponent, TabsListComponent, TabDirective, TabsContentComponent, TabPanelComponent], exports: [TabsComponent, TabsListComponent, TabDirective, TabsContentComponent, TabPanelComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: Tabs2Module, providers: [TabsService] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: Tabs2Module, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ imports: [TabsComponent, TabsListComponent, TabDirective, TabsContentComponent, TabPanelComponent],
18
+ exports: [TabsComponent, TabsListComponent, TabDirective, TabsContentComponent, TabPanelComponent],
19
+ providers: [TabsService]
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiczIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90YWJzLTIvdGFiczIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBT3BFLE1BQU0sT0FBTyxXQUFXOzhHQUFYLFdBQVc7K0dBQVgsV0FBVyxZQUpaLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLGFBQ3ZGLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCOytHQUd0RixXQUFXLGFBRlgsQ0FBQyxXQUFXLENBQUM7OzJGQUViLFdBQVc7a0JBTHZCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQztvQkFDbEcsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQztvQkFDbEcsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJzU2VydmljZSB9IGZyb20gJy4vdGFicy5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYnNDb21wb25lbnQgfSBmcm9tICcuL3RhYnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYkRpcmVjdGl2ZSB9IGZyb20gJy4vdGFiL3RhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFic0xpc3RDb21wb25lbnQgfSBmcm9tICcuL3RhYnMtbGlzdC90YWJzLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYnNDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi90YWJzLWNvbnRlbnQvdGFicy1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vdGFiLXBhbmVsL3RhYi1wYW5lbC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbVGFic0NvbXBvbmVudCwgVGFic0xpc3RDb21wb25lbnQsIFRhYkRpcmVjdGl2ZSwgVGFic0NvbnRlbnRDb21wb25lbnQsIFRhYlBhbmVsQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1RhYnNDb21wb25lbnQsIFRhYnNMaXN0Q29tcG9uZW50LCBUYWJEaXJlY3RpdmUsIFRhYnNDb250ZW50Q29tcG9uZW50LCBUYWJQYW5lbENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1RhYnNTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJzMk1vZHVsZSB7fVxuIl19
@@ -134,8 +134,8 @@ export class ToastComponent {
134
134
  clearInterval(this.clockId);
135
135
  this.clockId = undefined;
136
136
  }
137
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ToastComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.ToasterService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.2", type: ToastComponent, isStandalone: true, selector: "c-toast", inputs: { autohide: "autohide", color: "color", delay: ["delay", "delay", numberAttribute], fade: "fade", visible: ["visible", "visible", booleanAttribute], index: ["index", "index", numberAttribute] }, outputs: { visibleChange: "visibleChange", timer: "timer" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseout": "onMouseOut()" }, properties: { "@.disabled": "this.animationDisabled", "@fadeInOut": "this.animateType", "class": "this.hostClasses" } }, exportAs: ["cToast"], ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block;overflow:hidden}\n"], animations: [
137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ToastComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.ToasterService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.3", type: ToastComponent, isStandalone: true, selector: "c-toast", inputs: { autohide: "autohide", color: "color", delay: ["delay", "delay", numberAttribute], fade: "fade", visible: ["visible", "visible", booleanAttribute], index: ["index", "index", numberAttribute] }, outputs: { visibleChange: "visibleChange", timer: "timer" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseout": "onMouseOut()" }, properties: { "@.disabled": "this.animationDisabled", "@fadeInOut": "this.animateType", "class": "this.hostClasses" } }, exportAs: ["cToast"], ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block;overflow:hidden}\n"], animations: [
139
139
  trigger('fadeInOut', [
140
140
  state('show', style({ opacity: 1, height: '*', padding: '*', border: '*', margin: '*' })),
141
141
  state('hide', style({ opacity: 0, height: 0, padding: 0, border: 0, margin: 0 })),
@@ -157,7 +157,7 @@ export class ToastComponent {
157
157
  ])
158
158
  ] }); }
159
159
  }
160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ToastComponent, decorators: [{
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ToastComponent, decorators: [{
161
161
  type: Component,
162
162
  args: [{ selector: 'c-toast', template: '<ng-content />', exportAs: 'cToast', standalone: true, animations: [
163
163
  trigger('fadeInOut', [
@@ -6,10 +6,10 @@ export class ToastBodyComponent {
6
6
  this.toast = toast;
7
7
  this.toastBodyClass = true;
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ToastBodyComponent, deps: [{ token: i1.ToastComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ToastBodyComponent, isStandalone: true, selector: "c-toast-body", host: { properties: { "class.toast-body": "this.toastBodyClass" } }, exportAs: ["cToastBody"], ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block}\n"] }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ToastBodyComponent, deps: [{ token: i1.ToastComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: ToastBodyComponent, isStandalone: true, selector: "c-toast-body", host: { properties: { "class.toast-body": "this.toastBodyClass" } }, exportAs: ["cToastBody"], ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block}\n"] }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ToastBodyComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ToastBodyComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{ selector: 'c-toast-body', template: '<ng-content />', exportAs: 'cToastBody', standalone: true, styles: [":host{display:block}\n"] }]
15
15
  }], ctorParameters: () => [{ type: i1.ToastComponent, decorators: [{
@@ -9,10 +9,10 @@ export class ToastCloseDirective {
9
9
  $event.preventDefault();
10
10
  this.toasterService.setState({ show: false, toast: this.toast });
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ToastCloseDirective, deps: [{ token: i1.ToasterService }], target: i0.ɵɵFactoryTarget.Directive }); }
13
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: ToastCloseDirective, isStandalone: true, selector: "[cToastClose]", inputs: { toast: ["cToastClose", "toast"] }, host: { listeners: { "click": "toggleOpen($event)" } }, exportAs: ["cToastClose"], ngImport: i0 }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ToastCloseDirective, deps: [{ token: i1.ToasterService }], target: i0.ɵɵFactoryTarget.Directive }); }
13
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: ToastCloseDirective, isStandalone: true, selector: "[cToastClose]", inputs: { toast: ["cToastClose", "toast"] }, host: { listeners: { "click": "toggleOpen($event)" } }, exportAs: ["cToastClose"], ngImport: i0 }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ToastCloseDirective, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ToastCloseDirective, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
18
18
  selector: '[cToastClose]',
@@ -13,10 +13,10 @@ export class ToastHeaderComponent {
13
13
  this.closeButton = true;
14
14
  this.toastHeaderClass = true;
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ToastHeaderComponent, deps: [{ token: i1.ToastComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: ToastHeaderComponent, isStandalone: true, selector: "c-toast-header", inputs: { closeButton: "closeButton" }, host: { properties: { "class.toast-header": "this.toastHeaderClass" } }, exportAs: ["cToastHeader"], ngImport: i0, template: "<ng-container>\n <ng-content />\n @if (closeButton) {\n <button [cToastClose]=\"toast\" [style]=\"{outline: 0}\" aria-label=\"close\" cButtonClose class=\"ms-auto\"></button>\n }\n</ng-container>\n", dependencies: [{ kind: "directive", type: ToastCloseDirective, selector: "[cToastClose]", inputs: ["cToastClose"], exportAs: ["cToastClose"] }, { kind: "directive", type: ButtonCloseDirective, selector: "[cButtonClose]", inputs: ["white"] }] }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ToastHeaderComponent, deps: [{ token: i1.ToastComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: ToastHeaderComponent, isStandalone: true, selector: "c-toast-header", inputs: { closeButton: "closeButton" }, host: { properties: { "class.toast-header": "this.toastHeaderClass" } }, exportAs: ["cToastHeader"], ngImport: i0, template: "<ng-container>\n <ng-content />\n @if (closeButton) {\n <button [cToastClose]=\"toast\" [style]=\"{outline: 0}\" aria-label=\"close\" cButtonClose class=\"ms-auto\"></button>\n }\n</ng-container>\n", dependencies: [{ kind: "directive", type: ToastCloseDirective, selector: "[cToastClose]", inputs: ["cToastClose"], exportAs: ["cToastClose"] }, { kind: "directive", type: ButtonCloseDirective, selector: "[cButtonClose]", inputs: ["white"] }] }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ToastHeaderComponent, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ToastHeaderComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'c-toast-header', exportAs: 'cToastHeader', standalone: true, imports: [ToastCloseDirective, ButtonCloseDirective], template: "<ng-container>\n <ng-content />\n @if (closeButton) {\n <button [cToastClose]=\"toast\" [style]=\"{outline: 0}\" aria-label=\"close\" cButtonClose class=\"ms-auto\"></button>\n }\n</ng-container>\n" }]
22
22
  }], ctorParameters: () => [{ type: i1.ToastComponent, decorators: [{