@inera/ids-angular 9.2.1 → 9.3.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 (182) hide show
  1. package/common/directives/click-outside.directive.d.ts +3 -3
  2. package/common/public-api.d.ts +1 -1
  3. package/components/accordion/accordion-header.component.d.ts +1 -1
  4. package/components/accordion/accordion.component.d.ts +5 -4
  5. package/components/alert/alert-header.component.d.ts +1 -1
  6. package/components/alert/alert.component.d.ts +2 -2
  7. package/components/box-link/box-link-button.component.d.ts +2 -2
  8. package/components/box-link/box-link.component.d.ts +1 -1
  9. package/components/breadcrumbs/breadcrumbs.component.d.ts +3 -4
  10. package/components/breadcrumbs/crumb.component.d.ts +1 -1
  11. package/components/carousel/carousel-item/carousel-item.component.d.ts +1 -1
  12. package/components/carousel/carousel.component.d.ts +4 -4
  13. package/components/control-button/control-button.directive.d.ts +5 -0
  14. package/components/control-button/index.d.ts +5 -0
  15. package/components/control-button/public-api.d.ts +1 -0
  16. package/components/dialog/dialog.component.d.ts +4 -4
  17. package/components/dropdown/dropdown.component.d.ts +1 -1
  18. package/components/footer-1177/footer-1177-col.component.d.ts +4 -4
  19. package/components/footer-1177/footer-1177.component.d.ts +6 -4
  20. package/components/footer-1177-admin/footer-1177-admin-col.component.d.ts +4 -4
  21. package/components/footer-1177-admin/footer-1177-admin.component.d.ts +5 -4
  22. package/components/footer-1177-pro/footer-1177-pro-col.component.d.ts +4 -4
  23. package/components/footer-1177-pro/footer-1177-pro.component.d.ts +6 -4
  24. package/components/footer-inera/footer-inera-col.component.d.ts +4 -4
  25. package/components/footer-inera/footer-inera.component.d.ts +5 -4
  26. package/components/footer-inera-admin/footer-inera-admin-col.component.d.ts +4 -4
  27. package/components/footer-inera-admin/footer-inera-admin.component.d.ts +5 -4
  28. package/components/footer-inera-general/footer-inera-general-col.component.d.ts +4 -4
  29. package/components/footer-inera-general/footer-inera-general.component.d.ts +6 -4
  30. package/components/form/checkbox-group/checkbox-group.component.d.ts +4 -4
  31. package/components/form/input/input-clear-button.component.d.ts +5 -0
  32. package/components/form/input/input.component.d.ts +7 -3
  33. package/components/form/input/public-api.d.ts +1 -0
  34. package/components/form/label-subtitle/index.d.ts +5 -0
  35. package/components/form/label-subtitle/label-subtitle.component.d.ts +5 -0
  36. package/components/form/label-subtitle/public-api.d.ts +1 -0
  37. package/components/form/radio/radio-group.component.d.ts +4 -4
  38. package/components/form/radio/radio.component.d.ts +1 -1
  39. package/components/form/radio-button/radio-button-group.component.d.ts +1 -2
  40. package/components/form/range/range.component.d.ts +1 -1
  41. package/components/form/select/select.component.d.ts +1 -1
  42. package/components/form/select-multiple/select-multiple.component.d.ts +3 -3
  43. package/components/form/textarea/textarea.component.d.ts +1 -1
  44. package/components/form/time/time.component.d.ts +1 -1
  45. package/components/global-alert/global-alert-actions.component.d.ts +1 -1
  46. package/components/global-alert/global-alert-header.component.d.ts +1 -1
  47. package/components/global-alert/global-alert.component.d.ts +2 -2
  48. package/components/header-1177/avatar/header-1177-avatar.component.d.ts +1 -1
  49. package/components/header-1177/header-1177.component.d.ts +6 -7
  50. package/components/header-1177/nav/header-1177-nav.component.d.ts +1 -1
  51. package/components/header-1177/nav-item/header-1177-nav-item.component.d.ts +5 -5
  52. package/components/header-1177/region-picker/header-1177-region-picker.component.d.ts +3 -3
  53. package/components/header-1177/region-picker-mobile/header-1177-region-picker-mobile.component.d.ts +3 -3
  54. package/components/header-1177-admin/avatar/header-1177-admin-avatar.component.d.ts +1 -1
  55. package/components/header-1177-admin/avatar-mobile/header-1177-admin-avatar-mobile.component.d.ts +1 -1
  56. package/components/header-1177-admin/header-1177-admin.component.d.ts +3 -3
  57. package/components/header-1177-admin/nav/header-1177-admin-nav.component.d.ts +4 -4
  58. package/components/header-1177-admin/nav-item/header-1177-admin-nav-item.component.d.ts +5 -5
  59. package/components/header-1177-pro/avatar/header-1177-pro-avatar.component.d.ts +1 -1
  60. package/components/header-1177-pro/avatar-mobile/header-1177-pro-avatar-mobile.component.d.ts +1 -1
  61. package/components/header-1177-pro/header-1177-pro.component.d.ts +3 -3
  62. package/components/header-1177-pro/nav/header-1177-pro-nav.component.d.ts +4 -4
  63. package/components/header-1177-pro/nav-item/header-1177-pro-nav-item.component.d.ts +5 -5
  64. package/components/header-1177-pro/region-picker/header-1177-pro-region-picker.component.d.ts +4 -4
  65. package/components/header-1177-pro/region-picker-mobile/header-1177-pro-region-picker-mobile.component.d.ts +1 -1
  66. package/components/header-inera/header-inera.component.d.ts +5 -6
  67. package/components/header-inera/nav/header-inera-nav.component.d.ts +2 -4
  68. package/components/header-inera/nav-item/header-inera-nav-item.component.d.ts +5 -5
  69. package/components/header-inera-admin/avatar/header-inera-admin-avatar.component.d.ts +1 -1
  70. package/components/header-inera-admin/avatar-mobile/header-inera-admin-avatar-mobile.component.d.ts +1 -1
  71. package/components/header-inera-admin/header-inera-admin.component.d.ts +6 -7
  72. package/components/header-inera-admin/nav/header-inera-admin-nav.component.d.ts +4 -4
  73. package/components/header-inera-admin/nav-item/header-inera-admin-nav-item.component.d.ts +4 -4
  74. package/components/header-inera-general/header-inera-general.component.d.ts +5 -6
  75. package/components/header-inera-general/nav/header-inera-general-nav.component.d.ts +1 -1
  76. package/components/header-inera-general/nav-item/header-inera-general-nav-item.component.d.ts +5 -5
  77. package/components/mobile/menu/item/mobile-menu-item.component.d.ts +3 -3
  78. package/components/mobile/menu/mobile-menu.component.d.ts +1 -2
  79. package/components/navigation/content/navigation-content-link.component.d.ts +1 -1
  80. package/components/navigation/content/navigation-content.component.d.ts +1 -2
  81. package/components/navigation/local/navigation-local-link.component.d.ts +1 -1
  82. package/components/navigation/local/navigation-local.component.d.ts +1 -2
  83. package/components/popover/popover.component.d.ts +4 -4
  84. package/components/puff-list/puff-list-item.component.d.ts +1 -1
  85. package/components/puff-list/puff-list.component.d.ts +1 -2
  86. package/components/side-menu/side-menu.component.d.ts +2 -2
  87. package/components/side-panel/side-panel.component.d.ts +7 -6
  88. package/components/stepper/stepper.component.d.ts +2 -2
  89. package/components/tabs/tab-group.component.d.ts +3 -2
  90. package/components/tabs/tab.component.d.ts +2 -2
  91. package/components/tag/tag.component.d.ts +1 -1
  92. package/components/tooltip/tooltip.component.d.ts +2 -2
  93. package/fesm2022/inera-ids-angular-common.mjs +8 -9
  94. package/fesm2022/inera-ids-angular-common.mjs.map +1 -1
  95. package/fesm2022/inera-ids-angular-components-accordion.mjs +19 -28
  96. package/fesm2022/inera-ids-angular-components-accordion.mjs.map +1 -1
  97. package/fesm2022/inera-ids-angular-components-alert.mjs +8 -14
  98. package/fesm2022/inera-ids-angular-components-alert.mjs.map +1 -1
  99. package/fesm2022/inera-ids-angular-components-box-link.mjs +8 -14
  100. package/fesm2022/inera-ids-angular-components-box-link.mjs.map +1 -1
  101. package/fesm2022/inera-ids-angular-components-breadcrumbs.mjs +15 -26
  102. package/fesm2022/inera-ids-angular-components-breadcrumbs.mjs.map +1 -1
  103. package/fesm2022/inera-ids-angular-components-carousel.mjs +16 -23
  104. package/fesm2022/inera-ids-angular-components-carousel.mjs.map +1 -1
  105. package/fesm2022/inera-ids-angular-components-control-button.mjs +24 -0
  106. package/fesm2022/inera-ids-angular-components-control-button.mjs.map +1 -0
  107. package/fesm2022/inera-ids-angular-components-dialog.mjs +10 -17
  108. package/fesm2022/inera-ids-angular-components-dialog.mjs.map +1 -1
  109. package/fesm2022/inera-ids-angular-components-dropdown.mjs +4 -7
  110. package/fesm2022/inera-ids-angular-components-dropdown.mjs.map +1 -1
  111. package/fesm2022/inera-ids-angular-components-footer-1177-admin.mjs +28 -35
  112. package/fesm2022/inera-ids-angular-components-footer-1177-admin.mjs.map +1 -1
  113. package/fesm2022/inera-ids-angular-components-footer-1177-pro.mjs +29 -35
  114. package/fesm2022/inera-ids-angular-components-footer-1177-pro.mjs.map +1 -1
  115. package/fesm2022/inera-ids-angular-components-footer-1177.mjs +29 -35
  116. package/fesm2022/inera-ids-angular-components-footer-1177.mjs.map +1 -1
  117. package/fesm2022/inera-ids-angular-components-footer-inera-admin.mjs +28 -35
  118. package/fesm2022/inera-ids-angular-components-footer-inera-admin.mjs.map +1 -1
  119. package/fesm2022/inera-ids-angular-components-footer-inera-general.mjs +30 -35
  120. package/fesm2022/inera-ids-angular-components-footer-inera-general.mjs.map +1 -1
  121. package/fesm2022/inera-ids-angular-components-footer-inera.mjs +28 -35
  122. package/fesm2022/inera-ids-angular-components-footer-inera.mjs.map +1 -1
  123. package/fesm2022/inera-ids-angular-components-form-checkbox-group.mjs +9 -15
  124. package/fesm2022/inera-ids-angular-components-form-checkbox-group.mjs.map +1 -1
  125. package/fesm2022/inera-ids-angular-components-form-input.mjs +58 -34
  126. package/fesm2022/inera-ids-angular-components-form-input.mjs.map +1 -1
  127. package/fesm2022/inera-ids-angular-components-form-label-subtitle.mjs +25 -0
  128. package/fesm2022/inera-ids-angular-components-form-label-subtitle.mjs.map +1 -0
  129. package/fesm2022/inera-ids-angular-components-form-radio-button.mjs +6 -9
  130. package/fesm2022/inera-ids-angular-components-form-radio-button.mjs.map +1 -1
  131. package/fesm2022/inera-ids-angular-components-form-radio.mjs +11 -17
  132. package/fesm2022/inera-ids-angular-components-form-radio.mjs.map +1 -1
  133. package/fesm2022/inera-ids-angular-components-form-range.mjs +2 -2
  134. package/fesm2022/inera-ids-angular-components-form-range.mjs.map +1 -1
  135. package/fesm2022/inera-ids-angular-components-form-select-multiple.mjs +8 -11
  136. package/fesm2022/inera-ids-angular-components-form-select-multiple.mjs.map +1 -1
  137. package/fesm2022/inera-ids-angular-components-form-select.mjs +2 -2
  138. package/fesm2022/inera-ids-angular-components-form-select.mjs.map +1 -1
  139. package/fesm2022/inera-ids-angular-components-form-textarea.mjs +2 -2
  140. package/fesm2022/inera-ids-angular-components-form-textarea.mjs.map +1 -1
  141. package/fesm2022/inera-ids-angular-components-form-time.mjs +2 -2
  142. package/fesm2022/inera-ids-angular-components-form-time.mjs.map +1 -1
  143. package/fesm2022/inera-ids-angular-components-global-alert.mjs +11 -23
  144. package/fesm2022/inera-ids-angular-components-global-alert.mjs.map +1 -1
  145. package/fesm2022/inera-ids-angular-components-header-1177-admin.mjs +29 -59
  146. package/fesm2022/inera-ids-angular-components-header-1177-admin.mjs.map +1 -1
  147. package/fesm2022/inera-ids-angular-components-header-1177-pro.mjs +64 -91
  148. package/fesm2022/inera-ids-angular-components-header-1177-pro.mjs.map +1 -1
  149. package/fesm2022/inera-ids-angular-components-header-1177.mjs +74 -104
  150. package/fesm2022/inera-ids-angular-components-header-1177.mjs.map +1 -1
  151. package/fesm2022/inera-ids-angular-components-header-inera-admin.mjs +31 -67
  152. package/fesm2022/inera-ids-angular-components-header-inera-admin.mjs.map +1 -1
  153. package/fesm2022/inera-ids-angular-components-header-inera-general.mjs +22 -49
  154. package/fesm2022/inera-ids-angular-components-header-inera-general.mjs.map +1 -1
  155. package/fesm2022/inera-ids-angular-components-header-inera.mjs +23 -54
  156. package/fesm2022/inera-ids-angular-components-header-inera.mjs.map +1 -1
  157. package/fesm2022/inera-ids-angular-components-mobile-menu-item.mjs +6 -12
  158. package/fesm2022/inera-ids-angular-components-mobile-menu-item.mjs.map +1 -1
  159. package/fesm2022/inera-ids-angular-components-mobile-menu.mjs +13 -22
  160. package/fesm2022/inera-ids-angular-components-mobile-menu.mjs.map +1 -1
  161. package/fesm2022/inera-ids-angular-components-navigation-content.mjs +7 -13
  162. package/fesm2022/inera-ids-angular-components-navigation-content.mjs.map +1 -1
  163. package/fesm2022/inera-ids-angular-components-navigation-local.mjs +7 -13
  164. package/fesm2022/inera-ids-angular-components-navigation-local.mjs.map +1 -1
  165. package/fesm2022/inera-ids-angular-components-popover.mjs +106 -61
  166. package/fesm2022/inera-ids-angular-components-popover.mjs.map +1 -1
  167. package/fesm2022/inera-ids-angular-components-puff-list.mjs +16 -22
  168. package/fesm2022/inera-ids-angular-components-puff-list.mjs.map +1 -1
  169. package/fesm2022/inera-ids-angular-components-side-menu.mjs +9 -12
  170. package/fesm2022/inera-ids-angular-components-side-menu.mjs.map +1 -1
  171. package/fesm2022/inera-ids-angular-components-side-panel.mjs +91 -79
  172. package/fesm2022/inera-ids-angular-components-side-panel.mjs.map +1 -1
  173. package/fesm2022/inera-ids-angular-components-stepper.mjs +5 -8
  174. package/fesm2022/inera-ids-angular-components-stepper.mjs.map +1 -1
  175. package/fesm2022/inera-ids-angular-components-tabs.mjs +14 -22
  176. package/fesm2022/inera-ids-angular-components-tabs.mjs.map +1 -1
  177. package/fesm2022/inera-ids-angular-components-tag.mjs +5 -5
  178. package/fesm2022/inera-ids-angular-components-tag.mjs.map +1 -1
  179. package/fesm2022/inera-ids-angular-components-tooltip.mjs +18 -24
  180. package/fesm2022/inera-ids-angular-components-tooltip.mjs.map +1 -1
  181. package/package.json +115 -107
  182. /package/common/services/{use-id.service.ts.d.ts → use-id.service.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class IDNavigationContentLinkComponent {
4
- template: TemplateRef<any>;
4
+ template: import("@angular/core").Signal<TemplateRef<any>>;
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<IDNavigationContentLinkComponent, never>;
6
6
  static ɵcmp: i0.ɵɵComponentDeclaration<IDNavigationContentLinkComponent, "id-navigation-content-link", never, {}, {}, never, ["*"], true, never>;
7
7
  }
@@ -1,10 +1,9 @@
1
- import { QueryList } from '@angular/core';
2
1
  import { IDNavigationContentLinkComponent } from './navigation-content-link.component';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class IDNavigationContentComponent {
5
4
  headline?: string;
6
5
  maxHeight?: string;
7
- linkComponents: QueryList<IDNavigationContentLinkComponent>;
6
+ linkComponents: import("@angular/core").Signal<readonly IDNavigationContentLinkComponent[]>;
8
7
  static ɵfac: i0.ɵɵFactoryDeclaration<IDNavigationContentComponent, never>;
9
8
  static ɵcmp: i0.ɵɵComponentDeclaration<IDNavigationContentComponent, "id-navigation-content", never, { "headline": { "alias": "headline"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; }, {}, ["linkComponents"], never, true, never>;
10
9
  }
@@ -1,7 +1,7 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class IDNavigationLocalLinkComponent {
4
- template: TemplateRef<any>;
4
+ template: import("@angular/core").Signal<TemplateRef<any>>;
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<IDNavigationLocalLinkComponent, never>;
6
6
  static ɵcmp: i0.ɵɵComponentDeclaration<IDNavigationLocalLinkComponent, "id-navigation-local-link", never, {}, {}, never, ["*"], true, never>;
7
7
  }
@@ -1,9 +1,8 @@
1
- import { QueryList } from '@angular/core';
2
1
  import { IDNavigationLocalLinkComponent } from './navigation-local-link.component';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class IDNavigationLocalComponent {
5
4
  headline?: string;
6
- linkComponents: QueryList<IDNavigationLocalLinkComponent>;
5
+ linkComponents: import("@angular/core").Signal<readonly IDNavigationLocalLinkComponent[]>;
7
6
  static ɵfac: i0.ɵɵFactoryDeclaration<IDNavigationLocalComponent, never>;
8
7
  static ɵcmp: i0.ɵɵComponentDeclaration<IDNavigationLocalComponent, "id-navigation-local", never, { "headline": { "alias": "headline"; "required": false; }; }, {}, ["linkComponents"], never, true, never>;
9
8
  }
@@ -1,4 +1,4 @@
1
- import { AfterContentInit, ElementRef, EventEmitter, OnChanges, OnDestroy, QueryList, SimpleChanges } from '@angular/core';
1
+ import { AfterContentInit, ElementRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
2
  import { IDPopoverCloseComponent } from './popover-close.component';
3
3
  import { IDPopoverContentComponent } from './popover-content.component';
4
4
  import * as i0 from "@angular/core";
@@ -9,9 +9,9 @@ export declare class IDPopoverComponent implements AfterContentInit, OnChanges,
9
9
  showChange: EventEmitter<boolean>;
10
10
  closed: EventEmitter<Event>;
11
11
  opened: EventEmitter<Event>;
12
- bodyComponent: IDPopoverContentComponent;
13
- closeComponents: QueryList<IDPopoverCloseComponent>;
14
- triggerEl: ElementRef<HTMLElement>;
12
+ bodyComponent: import("@angular/core").Signal<IDPopoverContentComponent | undefined>;
13
+ closeComponents: import("@angular/core").Signal<readonly IDPopoverCloseComponent[]>;
14
+ triggerEl: import("@angular/core").Signal<ElementRef<HTMLElement>>;
15
15
  private document;
16
16
  private appRef;
17
17
  private opener;
@@ -5,7 +5,7 @@ export declare class IDPuffListItemComponent {
5
5
  interactive: string;
6
6
  href: string;
7
7
  clicked: EventEmitter<Event>;
8
- template: TemplateRef<any>;
8
+ template: import("@angular/core").Signal<TemplateRef<any>>;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<IDPuffListItemComponent, never>;
10
10
  static ɵcmp: i0.ɵɵComponentDeclaration<IDPuffListItemComponent, "id-puff-list-item", never, { "lean": { "alias": "lean"; "required": false; }; "interactive": { "alias": "interactive"; "required": false; }; "href": { "alias": "href"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*", "id-puff-list-item-content", "id-puff-list-item-extra-content", "id-date-label", "id-date-label"], true, never>;
11
11
  static ngAcceptInputType_lean: unknown;
@@ -1,8 +1,7 @@
1
- import { QueryList } from '@angular/core';
2
1
  import { IDPuffListItemComponent } from './puff-list-item.component';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class IDPuffListComponent {
5
- listItems: QueryList<IDPuffListItemComponent>;
4
+ listItems: import("@angular/core").Signal<readonly IDPuffListItemComponent[]>;
6
5
  static ɵfac: i0.ɵɵFactoryDeclaration<IDPuffListComponent, never>;
7
6
  static ɵcmp: i0.ɵɵComponentDeclaration<IDPuffListComponent, "id-puff-list", never, {}, {}, ["listItems"], never, true, never>;
8
7
  }
@@ -1,4 +1,4 @@
1
- import { EventEmitter, QueryList } from '@angular/core';
1
+ import { EventEmitter } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class IDSideMenuComponent {
4
4
  label: string;
@@ -11,7 +11,7 @@ export declare class IDSideMenuComponent {
11
11
  expandedChange: EventEmitter<boolean>;
12
12
  closed: EventEmitter<Event>;
13
13
  opened: EventEmitter<Event>;
14
- menuChildren: QueryList<IDSideMenuComponent>;
14
+ menuChildren: import("@angular/core").Signal<readonly IDSideMenuComponent[]>;
15
15
  private parent;
16
16
  constructor();
17
17
  get hostClasses(): string;
@@ -1,19 +1,19 @@
1
- import { EventEmitter, ElementRef, AfterViewInit, OnDestroy, OnChanges, SimpleChanges } from "@angular/core";
2
- import { IDSidePanelFooterComponent } from "./side-panel-footer.component";
1
+ import { EventEmitter, ElementRef, AfterViewInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class IDSidePanelComponent implements AfterViewInit, OnDestroy, OnChanges {
5
4
  show: boolean;
6
5
  showChange: EventEmitter<boolean>;
7
6
  elevated: boolean;
8
7
  menu: boolean;
8
+ noCloseButton: boolean;
9
9
  srMobileDialogLabel: string;
10
10
  srCloseText: string;
11
11
  srOpenText: string;
12
- size: "s" | "m" | "l";
12
+ size: 's' | 'm' | 'l';
13
13
  opened: EventEmitter<void>;
14
14
  closed: EventEmitter<void>;
15
- footer: IDSidePanelFooterComponent;
16
- hamburgerButton?: ElementRef;
15
+ footer: import("@angular/core").Signal<unknown>;
16
+ hamburgerButton: import("@angular/core").Signal<ElementRef<any> | undefined>;
17
17
  position: "left" | "right";
18
18
  private el;
19
19
  private resizeObserver?;
@@ -29,8 +29,9 @@ export declare class IDSidePanelComponent implements AfterViewInit, OnDestroy, O
29
29
  protected didClose(): void;
30
30
  ngOnDestroy(): void;
31
31
  static ɵfac: i0.ɵɵFactoryDeclaration<IDSidePanelComponent, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<IDSidePanelComponent, "id-side-panel", never, { "show": { "alias": "show"; "required": false; }; "elevated": { "alias": "elevated"; "required": false; }; "menu": { "alias": "menu"; "required": false; }; "srMobileDialogLabel": { "alias": "srMobileDialogLabel"; "required": false; }; "srCloseText": { "alias": "srCloseText"; "required": false; }; "srOpenText": { "alias": "srOpenText"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "showChange": "showChange"; "opened": "opened"; "closed": "closed"; }, ["footer"], ["[slot='headline']", "*", "id-side-panel-footer"], true, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<IDSidePanelComponent, "id-side-panel", never, { "show": { "alias": "show"; "required": false; }; "elevated": { "alias": "elevated"; "required": false; }; "menu": { "alias": "menu"; "required": false; }; "noCloseButton": { "alias": "noCloseButton"; "required": false; }; "srMobileDialogLabel": { "alias": "srMobileDialogLabel"; "required": false; }; "srCloseText": { "alias": "srCloseText"; "required": false; }; "srOpenText": { "alias": "srOpenText"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "showChange": "showChange"; "opened": "opened"; "closed": "closed"; }, ["footer"], ["[slot='headline']", "*", "id-side-panel-footer"], true, never>;
33
33
  static ngAcceptInputType_show: unknown;
34
34
  static ngAcceptInputType_elevated: unknown;
35
35
  static ngAcceptInputType_menu: unknown;
36
+ static ngAcceptInputType_noCloseButton: unknown;
36
37
  }
@@ -1,8 +1,8 @@
1
- import { AfterContentInit, QueryList } from "@angular/core";
1
+ import { AfterContentInit } from '@angular/core';
2
2
  import { IDStepComponent } from "./step.component";
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class IDStepperComponent implements AfterContentInit {
5
- steps: QueryList<IDStepComponent>;
5
+ steps: import("@angular/core").Signal<readonly IDStepComponent[]>;
6
6
  ngAfterContentInit(): void;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<IDStepperComponent, never>;
8
8
  static ɵcmp: i0.ɵɵComponentDeclaration<IDStepperComponent, "id-stepper", never, {}, {}, ["steps"], ["*"], true, never>;
@@ -1,8 +1,8 @@
1
- import { AfterContentInit, QueryList } from '@angular/core';
1
+ import { AfterContentInit } from '@angular/core';
2
2
  import { IDTabComponent } from './tab.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class IDTabGroupComponent implements AfterContentInit {
5
- tabs: QueryList<IDTabComponent>;
5
+ tabs: import("@angular/core").Signal<readonly IDTabComponent[]>;
6
6
  selectedIndex: number;
7
7
  focusedIndex: number;
8
8
  ngAfterContentInit(): void;
@@ -11,6 +11,7 @@ export declare class IDTabGroupComponent implements AfterContentInit {
11
11
  light: boolean;
12
12
  compact: boolean;
13
13
  selectLabel?: string;
14
+ private ref;
14
15
  private idService;
15
16
  selectId: string;
16
17
  selectTab(i: number): void;
@@ -8,8 +8,8 @@ export declare class IDTabComponent {
8
8
  selected: boolean;
9
9
  noTabindex: boolean;
10
10
  compact: boolean;
11
- labelTemplate?: TemplateRef<any>;
12
- content: TemplateRef<any>;
11
+ labelTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
12
+ content: import("@angular/core").Signal<TemplateRef<any>>;
13
13
  private idService;
14
14
  ngOnInit(): void;
15
15
  static ɵfac: i0.ɵɵFactoryDeclaration<IDTabComponent, never>;
@@ -1,4 +1,4 @@
1
- import { EventEmitter } from "@angular/core";
1
+ import { EventEmitter } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class IDTagComponent {
4
4
  closeable: boolean;
@@ -7,8 +7,8 @@ export declare class IDTooltipComponent implements AfterContentInit, OnDestroy {
7
7
  private appRef;
8
8
  private renderer;
9
9
  tooltipId: string;
10
- tooltipContent: ElementRef<HTMLElement>;
11
- trigger: IDTooltipTriggerDirective;
10
+ tooltipContent: import("@angular/core").Signal<ElementRef<HTMLElement>>;
11
+ trigger: import("@angular/core").Signal<IDTooltipTriggerDirective | undefined>;
12
12
  maxWidth?: string;
13
13
  fixedPosition: boolean;
14
14
  position: 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right';
@@ -236,21 +236,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
236
236
  }] } });
237
237
 
238
238
  class IDClickOutsideDirective {
239
- elementRef;
240
239
  idClickOutside = new EventEmitter();
241
- constructor(elementRef) {
242
- this.elementRef = elementRef;
243
- document.addEventListener('click', this.onDocumentClick.bind(this), true);
240
+ elementRef = inject(ElementRef);
241
+ constructor() {
242
+ document.addEventListener('click', this.onDocumentClick, true);
244
243
  }
245
244
  ngOnDestroy() {
246
- document.removeEventListener('click', this.onDocumentClick.bind(this), true);
245
+ document.removeEventListener('click', this.onDocumentClick, true);
247
246
  }
248
- onDocumentClick(event) {
247
+ onDocumentClick = (event) => {
249
248
  if (!this.elementRef.nativeElement.contains(event.target)) {
250
249
  this.idClickOutside.emit(event);
251
250
  }
252
- }
253
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
251
+ };
252
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
254
253
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: IDClickOutsideDirective, isStandalone: true, selector: "[idClickOutside]", outputs: { idClickOutside: "idClickOutside" }, ngImport: i0 });
255
254
  }
256
255
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDClickOutsideDirective, decorators: [{
@@ -259,7 +258,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
259
258
  selector: '[idClickOutside]',
260
259
  standalone: true
261
260
  }]
262
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { idClickOutside: [{
261
+ }], ctorParameters: () => [], propDecorators: { idClickOutside: [{
263
262
  type: Output
264
263
  }] } });
265
264
 
@@ -1 +1 @@
1
- {"version":3,"file":"inera-ids-angular-common.mjs","sources":["../../../projects/ids-angular/common/services/input-label-linker.service.ts","../../../projects/ids-angular/common/services/input-described-by-linker.service.ts","../../../projects/ids-angular/common/services/input-invalid-linker.service.ts","../../../projects/ids-angular/common/services/use-id.service.ts.ts","../../../projects/ids-angular/common/classes/form/IDErrorMessageBase.ts","../../../projects/ids-angular/common/classes/form/IDFormBase.ts","../../../projects/ids-angular/common/directives/click-outside.directive.ts","../../../projects/ids-angular/common/services/tooltip-category.service.ts","../../../projects/ids-angular/common/context/header-context.ts","../../../projects/ids-angular/common/utilities/useEscKey.ts","../../../projects/ids-angular/common/utilities/useFocusTrap.ts","../../../projects/ids-angular/common/inera-ids-angular-common.ts"],"sourcesContent":["import { Injectable, ElementRef, Renderer2, RendererFactory2 } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class IDInputLabelLinker {\n private static nextId = 0;\n private renderer: Renderer2;\n\n constructor(rendererFactory: RendererFactory2) {\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n link(host: ElementRef<HTMLElement>) {\n const el = host.nativeElement;\n const label = el.querySelector('label');\n const input = el.querySelector('input, textarea, select');\n\n if (!input || !label) return;\n\n const id = input.id || `ids-form-element-${IDInputLabelLinker.nextId++}`;\n this.renderer.setAttribute(input, 'id', id);\n this.renderer.setAttribute(label, 'for', id);\n }\n}","import { ElementRef, Injectable, RendererFactory2, Renderer2 } from '@angular/core';\nimport { IDErrorMessageBase } from '../classes/form/IDErrorMessageBase';\n\n@Injectable({ providedIn: 'root' })\nexport class IDInputDescribedByLinker {\n private renderer: Renderer2;\n\n constructor(rendererFactory: RendererFactory2) {\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n link(\n host: ElementRef<HTMLElement>,\n errorMessage: IDErrorMessageBase | undefined,\n invalid: boolean\n ): void {\n const el = host.nativeElement;\n const input = el.querySelector('input, textarea, select');\n const hint = el.querySelector('.ids-input__hint');\n\n if (!input) return;\n\n if (invalid && errorMessage) {\n this.renderer.setAttribute(input, 'aria-describedby', errorMessage.id);\n } else if (!invalid && hint?.id) {\n this.renderer.setAttribute(input, 'aria-describedby', hint.id);\n } else {\n this.renderer.removeAttribute(input, 'aria-describedby');\n }\n }\n}\n","import { ElementRef, Injectable, RendererFactory2, Renderer2 } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class IDInputInvalidLinker {\n private renderer: Renderer2;\n\n constructor(rendererFactory: RendererFactory2) {\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n link(\n host: ElementRef<HTMLElement>,\n invalid: boolean\n ): void {\n const el = host.nativeElement;\n const input = el.querySelector('input, textarea, select');\n\n if (!input) return;\n\n if (invalid) {\n this.renderer.addClass(input, 'ids-input--invalid');\n this.renderer.setAttribute(input, 'aria-invalid', 'true');\n } else {\n this.renderer.removeClass(input, 'ids-input--invalid');\n this.renderer.removeAttribute(input, 'aria-invalid');\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class IDUseIdService {\n private static componentCounters: Record<string, number> = {};\n\n generateId(componentName: string): string {\n if (!IDUseIdService.componentCounters[componentName]) {\n IDUseIdService.componentCounters[componentName] = 0;\n }\n IDUseIdService.componentCounters[componentName]++;\n return `ids-${componentName}-${IDUseIdService.componentCounters[componentName]}`;\n }\n}","import { Directive, HostBinding, inject, Input} from '@angular/core';\nimport { IDUseIdService } from '../../services/use-id.service.ts';\n\n@Directive()\nexport abstract class IDErrorMessageBase {\n\n @HostBinding('class.ids-error-message--show')\n @Input()\n show: boolean = false;\n\n private idService = inject(IDUseIdService);\n id = this.idService.generateId('error-message');\n \n}\n","import {\n AfterContentInit,\n ContentChild,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n Renderer2,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgControl } from '@angular/forms';\nimport { EMPTY, merge } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\nimport { IDInputLabelLinker } from '../../services/input-label-linker.service';\nimport { IDInputDescribedByLinker } from '../../services/input-described-by-linker.service';\nimport { IDInputInvalidLinker } from '../../services/input-invalid-linker.service'\nimport { IDErrorMessageBase } from './IDErrorMessageBase';\n\n@Directive()\nexport abstract class IDFormBase implements AfterContentInit {\n @ContentChild(NgControl, { read: NgControl }) ngControl?: NgControl;\n\n @ContentChild(IDErrorMessageBase)\n errorMessage!: IDErrorMessageBase;\n\n @Input()\n validateOn: 'immediate' | 'touched' | 'dirty' | 'blur' | 'none' = 'dirty';\n\n @Output()\n invalidChange = new EventEmitter<boolean>();\n\n private _invalid = false;\n\n @Input()\n get invalid(): boolean {\n return this._invalid;\n }\n set invalid(value: boolean) {\n this._invalid = value;\n this.toggleInputArias({ invalid: this._invalid });\n this.toggleErrorMessage();\n this.invalidChange.emit(value);\n }\n\n @Input()\n srof: string = 'av';\n\n @Input()\n light: boolean = false;\n\n protected inputLabelLinker = inject(IDInputLabelLinker);\n protected inputDescribedByLinker = inject(IDInputDescribedByLinker);\n protected inputInvalidLinker = inject(IDInputInvalidLinker);\n protected destroyRef = inject(DestroyRef);\n\n private blurEvent?: () => void;\n\n get input() {\n return (\n this.host.nativeElement.querySelector('input') ||\n this.host.nativeElement.querySelector('textarea') ||\n this.host.nativeElement.querySelector('select')\n );\n }\n\n get label() {\n return this.host.nativeElement.querySelector('label');\n }\n\n get checkbox() {\n return this.host.nativeElement.querySelector('input[type=checkbox]');\n }\n\n protected host = inject(ElementRef);\n protected renderer = inject(Renderer2);\n\n ngAfterContentInit() {\n if (!this.input) {\n throw new Error('IDS ERROR - Input missing in ' + this.host.nativeElement.tagName);\n }\n if (this.validateOn === 'immediate') {\n this._updateErrorState();\n }\n if (this.validateOn === 'touched' || this.validateOn === 'blur') {\n this.blurEvent = this.renderer.listen(this.input, 'blur', () => {\n this._updateErrorState();\n });\n }\n if (this.ngControl && this.validateOn !== 'blur') {\n merge(...[this.ngControl.statusChanges ?? EMPTY, this.ngControl.valueChanges ?? EMPTY])\n .pipe(auditTime(0), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this._updateErrorState());\n }\n this.inputLabelLinker.link(this.host);\n this.inputDescribedByLinker.link(this.host, this.errorMessage, this.invalid);\n this.inputInvalidLinker.link(this.host, this.invalid);\n this.renderer.addClass(this.label, 'ids-label');\n if (this.light) {\n this.renderer.addClass(this.input, 'ids-input--light');\n }\n }\n\n protected _updateErrorState() {\n if (!this.ngControl || this.validateOn === 'none') return;\n switch (this.validateOn) {\n case 'immediate':\n this.invalid = Boolean(this.ngControl.invalid);\n break;\n case 'touched':\n this.invalid = Boolean(this.ngControl.invalid) && Boolean(this.ngControl.touched);\n break;\n case 'dirty':\n this.invalid = Boolean(this.ngControl.invalid) && Boolean(this.ngControl.dirty);\n break;\n case 'blur':\n this.invalid = Boolean(this.ngControl.invalid);\n }\n }\n\n toggleErrorMessage(): void {\n if (!this.errorMessage) return;\n this.errorMessage.show = this.invalid;\n }\n\n toggleInputArias({ invalid }: { invalid: boolean }) {\n if (this.checkbox) {\n this.renderer.setAttribute(this.input, 'aria-checked', this.checkbox.checked);\n }\n this.renderer.setAttribute(this.input, 'aria-required', this.input.required);\n \n this.inputDescribedByLinker.link(this.host, this.errorMessage, invalid);\n this.inputInvalidLinker.link(this.host, this.invalid);\n }\n\n ngOnDestroy() {\n this.blurEvent?.();\n }\n}\n","import { Directive, ElementRef, Output, EventEmitter, OnDestroy } from '@angular/core';\n\n@Directive({\n selector: '[idClickOutside]',\n standalone: true\n})\nexport class IDClickOutsideDirective implements OnDestroy {\n @Output() idClickOutside = new EventEmitter<Event>();\n\n constructor(private elementRef: ElementRef) {\n document.addEventListener('click', this.onDocumentClick.bind(this), true);\n }\n\n ngOnDestroy() {\n document.removeEventListener('click', this.onDocumentClick.bind(this), true);\n }\n\n private onDocumentClick(event: MouseEvent) {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.idClickOutside.emit(event);\n }\n }\n}","import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class IDTooltipCategoryService {\n closeCategory = signal<string | null>(null);\n\n requestClose(category: string) {\n this.closeCategory.set(null);\n this.closeCategory.set(category);\n }\n}","import { InjectionToken } from '@angular/core';\n\nexport interface IDHeaderContext {\n unresponsive: boolean;\n}\n\nexport const ID_HEADER_CONTEXT = new InjectionToken<IDHeaderContext>('ID_HEADER_CONTEXT');","import { inject, DestroyRef } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport function useEscapeKey(callback: () => void, condition: () => boolean) {\n const destroyRef = inject(DestroyRef);\n\n fromEvent<KeyboardEvent>(window, 'keydown')\n .pipe(\n filter(event => event.key === 'Escape' && condition()),\n takeUntilDestroyed(destroyRef)\n )\n .subscribe(() => callback());\n}","import { ElementRef, inject } from '@angular/core';\nimport { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\n\nconst focusableSelector = 'button, [href], input, select, textarea, [tabindex]';\n\ntype FocusContainer = ElementRef<HTMLElement> | HTMLElement | undefined;\n\nexport function useFocusTrap(\n getContainer: () => FocusContainer,\n options?: { disabled?: () => boolean }\n) {\n const focusTrapFactory = inject(FocusTrapFactory);\n let focusTrap: FocusTrap | undefined;\n let pendingTimeout: ReturnType<typeof setTimeout> | undefined;\n const maxCreateAttempts = 10;\n\n const getNativeElement = (): HTMLElement | undefined => {\n const container = getContainer();\n if (!container) {\n return undefined;\n }\n\n return container instanceof ElementRef ? container.nativeElement : container;\n };\n\n const getFocusableElements = (): HTMLElement[] => {\n const nativeElement = getNativeElement();\n if (!nativeElement) {\n return [];\n }\n\n return Array.from(nativeElement.querySelectorAll(focusableSelector)) as HTMLElement[];\n };\n\n const handleBackTab = (event: KeyboardEvent): void => {\n if (event.key !== 'Tab' || !event.shiftKey) {\n return;\n }\n\n const focusableElements = getFocusableElements();\n const firstFocusable = focusableElements[0];\n const lastFocusable = focusableElements[focusableElements.length - 1];\n if (!firstFocusable || !lastFocusable) {\n return;\n }\n\n if (event.target !== firstFocusable) {\n return;\n }\n\n event.preventDefault();\n lastFocusable.focus();\n };\n\n const reset = (): void => {\n const firstFocusable = getFocusableElements()[0];\n firstFocusable?.removeEventListener('keydown', handleBackTab);\n };\n\n const create = (): void => {\n if (options?.disabled?.() || focusTrap) {\n return;\n }\n\n const tryCreate = (attempt: number): void => {\n if (options?.disabled?.() || focusTrap) {\n return;\n }\n\n const nativeElement = getNativeElement();\n if (!nativeElement) {\n if (attempt < maxCreateAttempts) {\n pendingTimeout = setTimeout(() => tryCreate(attempt + 1));\n }\n return;\n }\n\n pendingTimeout = undefined;\n focusTrap = focusTrapFactory.create(nativeElement);\n getFocusableElements()[0]?.addEventListener('keydown', handleBackTab);\n focusTrap.focusInitialElement();\n };\n\n queueMicrotask(() => tryCreate(0));\n };\n\n const destroy = (): void => {\n if (pendingTimeout !== undefined) {\n clearTimeout(pendingTimeout);\n pendingTimeout = undefined;\n }\n if (!focusTrap) {\n return;\n }\n\n reset();\n focusTrap.destroy();\n focusTrap = undefined;\n };\n\n return {\n create,\n reset,\n destroy,\n get focusableElements(): HTMLElement[] {\n return getFocusableElements();\n }\n };\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inera-ids-angular-common.mjs","sources":["../../../projects/ids-angular/common/services/input-label-linker.service.ts","../../../projects/ids-angular/common/services/input-described-by-linker.service.ts","../../../projects/ids-angular/common/services/input-invalid-linker.service.ts","../../../projects/ids-angular/common/services/use-id.service.ts","../../../projects/ids-angular/common/classes/form/IDErrorMessageBase.ts","../../../projects/ids-angular/common/classes/form/IDFormBase.ts","../../../projects/ids-angular/common/directives/click-outside.directive.ts","../../../projects/ids-angular/common/services/tooltip-category.service.ts","../../../projects/ids-angular/common/context/header-context.ts","../../../projects/ids-angular/common/utilities/useEscKey.ts","../../../projects/ids-angular/common/utilities/useFocusTrap.ts","../../../projects/ids-angular/common/inera-ids-angular-common.ts"],"sourcesContent":["import { Injectable, ElementRef, Renderer2, RendererFactory2 } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class IDInputLabelLinker {\n private static nextId = 0;\n private renderer: Renderer2;\n\n constructor(rendererFactory: RendererFactory2) {\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n link(host: ElementRef<HTMLElement>) {\n const el = host.nativeElement;\n const label = el.querySelector('label');\n const input = el.querySelector('input, textarea, select');\n\n if (!input || !label) return;\n\n const id = input.id || `ids-form-element-${IDInputLabelLinker.nextId++}`;\n this.renderer.setAttribute(input, 'id', id);\n this.renderer.setAttribute(label, 'for', id);\n }\n}","import { ElementRef, Injectable, RendererFactory2, Renderer2 } from '@angular/core';\nimport { IDErrorMessageBase } from '../classes/form/IDErrorMessageBase';\n\n@Injectable({ providedIn: 'root' })\nexport class IDInputDescribedByLinker {\n private renderer: Renderer2;\n\n constructor(rendererFactory: RendererFactory2) {\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n link(\n host: ElementRef<HTMLElement>,\n errorMessage: IDErrorMessageBase | undefined,\n invalid: boolean\n ): void {\n const el = host.nativeElement;\n const input = el.querySelector('input, textarea, select');\n const hint = el.querySelector('.ids-input__hint');\n\n if (!input) return;\n\n if (invalid && errorMessage) {\n this.renderer.setAttribute(input, 'aria-describedby', errorMessage.id);\n } else if (!invalid && hint?.id) {\n this.renderer.setAttribute(input, 'aria-describedby', hint.id);\n } else {\n this.renderer.removeAttribute(input, 'aria-describedby');\n }\n }\n}\n","import { ElementRef, Injectable, RendererFactory2, Renderer2 } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class IDInputInvalidLinker {\n private renderer: Renderer2;\n\n constructor(rendererFactory: RendererFactory2) {\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n link(\n host: ElementRef<HTMLElement>,\n invalid: boolean\n ): void {\n const el = host.nativeElement;\n const input = el.querySelector('input, textarea, select');\n\n if (!input) return;\n\n if (invalid) {\n this.renderer.addClass(input, 'ids-input--invalid');\n this.renderer.setAttribute(input, 'aria-invalid', 'true');\n } else {\n this.renderer.removeClass(input, 'ids-input--invalid');\n this.renderer.removeAttribute(input, 'aria-invalid');\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class IDUseIdService {\n private static componentCounters: Record<string, number> = {};\n\n generateId(componentName: string): string {\n if (!IDUseIdService.componentCounters[componentName]) {\n IDUseIdService.componentCounters[componentName] = 0;\n }\n IDUseIdService.componentCounters[componentName]++;\n return `ids-${componentName}-${IDUseIdService.componentCounters[componentName]}`;\n }\n}\n","import { Directive, HostBinding, inject, Input} from '@angular/core';\nimport { IDUseIdService } from '../../services/use-id.service';\n\n@Directive()\nexport abstract class IDErrorMessageBase {\n\n @HostBinding('class.ids-error-message--show')\n @Input()\n show: boolean = false;\n\n private idService = inject(IDUseIdService);\n id = this.idService.generateId('error-message');\n \n}\n","import {\n AfterContentInit,\n ContentChild,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n Renderer2,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgControl } from '@angular/forms';\nimport { EMPTY, merge } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\nimport { IDInputLabelLinker } from '../../services/input-label-linker.service';\nimport { IDInputDescribedByLinker } from '../../services/input-described-by-linker.service';\nimport { IDInputInvalidLinker } from '../../services/input-invalid-linker.service'\nimport { IDErrorMessageBase } from './IDErrorMessageBase';\n\n@Directive()\nexport abstract class IDFormBase implements AfterContentInit {\n @ContentChild(NgControl, { read: NgControl }) ngControl?: NgControl;\n\n @ContentChild(IDErrorMessageBase)\n errorMessage!: IDErrorMessageBase;\n\n @Input()\n validateOn: 'immediate' | 'touched' | 'dirty' | 'blur' | 'none' = 'dirty';\n\n @Output()\n invalidChange = new EventEmitter<boolean>();\n\n private _invalid = false;\n\n @Input()\n get invalid(): boolean {\n return this._invalid;\n }\n set invalid(value: boolean) {\n this._invalid = value;\n this.toggleInputArias({ invalid: this._invalid });\n this.toggleErrorMessage();\n this.invalidChange.emit(value);\n }\n\n @Input()\n srof: string = 'av';\n\n @Input()\n light: boolean = false;\n\n protected inputLabelLinker = inject(IDInputLabelLinker);\n protected inputDescribedByLinker = inject(IDInputDescribedByLinker);\n protected inputInvalidLinker = inject(IDInputInvalidLinker);\n protected destroyRef = inject(DestroyRef);\n\n private blurEvent?: () => void;\n\n get input() {\n return (\n this.host.nativeElement.querySelector('input') ||\n this.host.nativeElement.querySelector('textarea') ||\n this.host.nativeElement.querySelector('select')\n );\n }\n\n get label() {\n return this.host.nativeElement.querySelector('label');\n }\n\n get checkbox() {\n return this.host.nativeElement.querySelector('input[type=checkbox]');\n }\n\n protected host = inject(ElementRef);\n protected renderer = inject(Renderer2);\n\n ngAfterContentInit() {\n if (!this.input) {\n throw new Error('IDS ERROR - Input missing in ' + this.host.nativeElement.tagName);\n }\n if (this.validateOn === 'immediate') {\n this._updateErrorState();\n }\n if (this.validateOn === 'touched' || this.validateOn === 'blur') {\n this.blurEvent = this.renderer.listen(this.input, 'blur', () => {\n this._updateErrorState();\n });\n }\n if (this.ngControl && this.validateOn !== 'blur') {\n merge(...[this.ngControl.statusChanges ?? EMPTY, this.ngControl.valueChanges ?? EMPTY])\n .pipe(auditTime(0), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this._updateErrorState());\n }\n this.inputLabelLinker.link(this.host);\n this.inputDescribedByLinker.link(this.host, this.errorMessage, this.invalid);\n this.inputInvalidLinker.link(this.host, this.invalid);\n this.renderer.addClass(this.label, 'ids-label');\n if (this.light) {\n this.renderer.addClass(this.input, 'ids-input--light');\n }\n }\n\n protected _updateErrorState() {\n if (!this.ngControl || this.validateOn === 'none') return;\n switch (this.validateOn) {\n case 'immediate':\n this.invalid = Boolean(this.ngControl.invalid);\n break;\n case 'touched':\n this.invalid = Boolean(this.ngControl.invalid) && Boolean(this.ngControl.touched);\n break;\n case 'dirty':\n this.invalid = Boolean(this.ngControl.invalid) && Boolean(this.ngControl.dirty);\n break;\n case 'blur':\n this.invalid = Boolean(this.ngControl.invalid);\n }\n }\n\n toggleErrorMessage(): void {\n if (!this.errorMessage) return;\n this.errorMessage.show = this.invalid;\n }\n\n toggleInputArias({ invalid }: { invalid: boolean }) {\n if (this.checkbox) {\n this.renderer.setAttribute(this.input, 'aria-checked', this.checkbox.checked);\n }\n this.renderer.setAttribute(this.input, 'aria-required', this.input.required);\n \n this.inputDescribedByLinker.link(this.host, this.errorMessage, invalid);\n this.inputInvalidLinker.link(this.host, this.invalid);\n }\n\n ngOnDestroy() {\n this.blurEvent?.();\n }\n}\n","import { Directive, ElementRef, Output, EventEmitter, OnDestroy, inject } from '@angular/core';\n\n@Directive({\n selector: '[idClickOutside]',\n standalone: true\n})\nexport class IDClickOutsideDirective implements OnDestroy {\n @Output() idClickOutside = new EventEmitter<Event>();\n\n private elementRef = inject(ElementRef);\n\n constructor() {\n document.addEventListener('click', this.onDocumentClick, true);\n }\n\n ngOnDestroy() {\n document.removeEventListener('click', this.onDocumentClick, true);\n }\n\n private onDocumentClick = (event: MouseEvent) => {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.idClickOutside.emit(event);\n }\n }\n}","import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class IDTooltipCategoryService {\n closeCategory = signal<string | null>(null);\n\n requestClose(category: string) {\n this.closeCategory.set(null);\n this.closeCategory.set(category);\n }\n}","import { InjectionToken } from '@angular/core';\n\nexport interface IDHeaderContext {\n unresponsive: boolean;\n}\n\nexport const ID_HEADER_CONTEXT = new InjectionToken<IDHeaderContext>('ID_HEADER_CONTEXT');","import { inject, DestroyRef } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport function useEscapeKey(callback: () => void, condition: () => boolean) {\n const destroyRef = inject(DestroyRef);\n\n fromEvent<KeyboardEvent>(window, 'keydown')\n .pipe(\n filter(event => event.key === 'Escape' && condition()),\n takeUntilDestroyed(destroyRef)\n )\n .subscribe(() => callback());\n}","import { ElementRef, inject } from '@angular/core';\nimport { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\n\nconst focusableSelector = 'button, [href], input, select, textarea, [tabindex]';\n\ntype FocusContainer = ElementRef<HTMLElement> | HTMLElement | undefined;\n\nexport function useFocusTrap(\n getContainer: () => FocusContainer,\n options?: { disabled?: () => boolean }\n) {\n const focusTrapFactory = inject(FocusTrapFactory);\n let focusTrap: FocusTrap | undefined;\n let pendingTimeout: ReturnType<typeof setTimeout> | undefined;\n const maxCreateAttempts = 10;\n\n const getNativeElement = (): HTMLElement | undefined => {\n const container = getContainer();\n if (!container) {\n return undefined;\n }\n\n return container instanceof ElementRef ? container.nativeElement : container;\n };\n\n const getFocusableElements = (): HTMLElement[] => {\n const nativeElement = getNativeElement();\n if (!nativeElement) {\n return [];\n }\n\n return Array.from(nativeElement.querySelectorAll(focusableSelector)) as HTMLElement[];\n };\n\n const handleBackTab = (event: KeyboardEvent): void => {\n if (event.key !== 'Tab' || !event.shiftKey) {\n return;\n }\n\n const focusableElements = getFocusableElements();\n const firstFocusable = focusableElements[0];\n const lastFocusable = focusableElements[focusableElements.length - 1];\n if (!firstFocusable || !lastFocusable) {\n return;\n }\n\n if (event.target !== firstFocusable) {\n return;\n }\n\n event.preventDefault();\n lastFocusable.focus();\n };\n\n const reset = (): void => {\n const firstFocusable = getFocusableElements()[0];\n firstFocusable?.removeEventListener('keydown', handleBackTab);\n };\n\n const create = (): void => {\n if (options?.disabled?.() || focusTrap) {\n return;\n }\n\n const tryCreate = (attempt: number): void => {\n if (options?.disabled?.() || focusTrap) {\n return;\n }\n\n const nativeElement = getNativeElement();\n if (!nativeElement) {\n if (attempt < maxCreateAttempts) {\n pendingTimeout = setTimeout(() => tryCreate(attempt + 1));\n }\n return;\n }\n\n pendingTimeout = undefined;\n focusTrap = focusTrapFactory.create(nativeElement);\n getFocusableElements()[0]?.addEventListener('keydown', handleBackTab);\n focusTrap.focusInitialElement();\n };\n\n queueMicrotask(() => tryCreate(0));\n };\n\n const destroy = (): void => {\n if (pendingTimeout !== undefined) {\n clearTimeout(pendingTimeout);\n pendingTimeout = undefined;\n }\n if (!focusTrap) {\n return;\n }\n\n reset();\n focusTrap.destroy();\n focusTrap = undefined;\n };\n\n return {\n create,\n reset,\n destroy,\n get focusableElements(): HTMLElement[] {\n return getFocusableElements();\n }\n };\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  import { NgTemplateOutlet } from '@angular/common';
2
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
2
+ import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
3
  import * as i0 from '@angular/core';
4
- import { TemplateRef, ViewChild, Component, EventEmitter, inject, DestroyRef, booleanAttribute, Output, Input, ContentChild, ContentChildren } from '@angular/core';
4
+ import { viewChild, TemplateRef, Component, contentChildren, contentChild, EventEmitter, inject, DestroyRef, booleanAttribute, Output, Input } from '@angular/core';
5
5
  import { IDUseIdService } from '@inera/ids-angular/common';
6
6
 
7
7
  class IDAccordionHeaderComponent {
8
- template;
8
+ template = viewChild.required(TemplateRef);
9
9
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDAccordionHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: IDAccordionHeaderComponent, isStandalone: true, selector: "id-accordion-header", viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: `
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.20", type: IDAccordionHeaderComponent, isStandalone: true, selector: "id-accordion-header", viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: `
11
11
  <ng-template>
12
12
  <ng-content></ng-content>
13
-
14
- </ng-template>`, isInline: true });
13
+ </ng-template>
14
+ `, isInline: true });
15
15
  }
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDAccordionHeaderComponent, decorators: [{
17
17
  type: Component,
@@ -21,17 +21,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
21
21
  template: `
22
22
  <ng-template>
23
23
  <ng-content></ng-content>
24
-
25
- </ng-template>`
24
+ </ng-template>
25
+ `,
26
26
  }]
27
- }], propDecorators: { template: [{
28
- type: ViewChild,
29
- args: [TemplateRef, { static: true }]
30
- }] } });
27
+ }] });
31
28
 
32
29
  class IDAccordionComponent {
33
- nestedAccordions;
34
- header;
30
+ nestedAccordions = contentChildren(IDAccordionComponent);
31
+ header = contentChild(IDAccordionHeaderComponent);
35
32
  subtitle = '';
36
33
  lean = false;
37
34
  noBorder = false;
@@ -42,7 +39,7 @@ class IDAccordionComponent {
42
39
  opened = new EventEmitter();
43
40
  expandedChange = new EventEmitter();
44
41
  get hasChildren() {
45
- return (this.nestedAccordions?.length ?? 0) > 0;
42
+ return this.nestedAccordions().length > 0;
46
43
  }
47
44
  get isChild() {
48
45
  return this.level > 1;
@@ -50,14 +47,14 @@ class IDAccordionComponent {
50
47
  idService = inject(IDUseIdService);
51
48
  destroyRef = inject(DestroyRef);
52
49
  contentId = this.idService.generateId('accordion');
50
+ nestedAccordionsSubscription = toObservable(this.nestedAccordions)
51
+ .pipe(takeUntilDestroyed(this.destroyRef))
52
+ .subscribe(() => this.updateNestedAccordionLevels());
53
53
  ngAfterContentInit() {
54
54
  this.updateNestedAccordionLevels();
55
- this.nestedAccordions?.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
56
- this.updateNestedAccordionLevels();
57
- });
58
55
  }
59
56
  updateNestedAccordionLevels() {
60
- this.nestedAccordions?.forEach((accordion) => {
57
+ this.nestedAccordions().forEach((accordion) => {
61
58
  accordion.level = this.level + 1;
62
59
  switch (this.size) {
63
60
  case 'm':
@@ -84,7 +81,7 @@ class IDAccordionComponent {
84
81
  this.expandedChange.emit(this.expanded);
85
82
  }
86
83
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
87
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: IDAccordionComponent, isStandalone: true, selector: "id-accordion", inputs: { subtitle: "subtitle", lean: ["lean", "lean", booleanAttribute], noBorder: ["noBorder", "noBorder", booleanAttribute], expanded: ["expanded", "expanded", booleanAttribute], level: "level", size: "size" }, outputs: { closed: "closed", opened: "opened", expandedChange: "expandedChange" }, host: { properties: { "class.ids-accordion--expanded": "expanded", "class.ids-accordion--no-border": "noBorder", "class.ids-accordion--lean": "lean", "class.ids-accordion--has-children": "hasChildren", "class.ids-accordion--is-child": "isChild" }, classAttribute: "ids-accordion" }, queries: [{ propertyName: "header", first: true, predicate: IDAccordionHeaderComponent, descendants: true }, { propertyName: "nestedAccordions", predicate: IDAccordionComponent }], ngImport: i0, template: "<button\n [class]=\"'ids-accordion__button ids-accordion__button--' + size\"\n (click)=\"toggleExpansion($event)\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"contentId\"\n>\n <div\n [class]=\"\n 'ids-accordion__headline ids-accordion__headline-' +\n level +\n ' ids-accordion__headline--' +\n size +\n (expanded ? ' ids-accordion__headline--expanded' : '')\n \"\n >\n <ng-container [ngTemplateOutlet]=\"header.template\"></ng-container>\n @if (!!subtitle) {\n <div class=\"ids-accordion__subtitle\">{{ subtitle }}</div>\n }\n </div>\n</button>\n\n<div\n [id]=\"contentId\"\n class=\"ids-accordion__content\"\n [hidden]=\"!expanded\"\n>\n <ng-content select=\":not(id-accordion-header)\"></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
84
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: IDAccordionComponent, isStandalone: true, selector: "id-accordion", inputs: { subtitle: "subtitle", lean: ["lean", "lean", booleanAttribute], noBorder: ["noBorder", "noBorder", booleanAttribute], expanded: ["expanded", "expanded", booleanAttribute], level: "level", size: "size" }, outputs: { closed: "closed", opened: "opened", expandedChange: "expandedChange" }, host: { properties: { "class.ids-accordion--expanded": "expanded", "class.ids-accordion--no-border": "noBorder", "class.ids-accordion--lean": "lean", "class.ids-accordion--has-children": "hasChildren", "class.ids-accordion--is-child": "isChild" }, classAttribute: "ids-accordion" }, queries: [{ propertyName: "nestedAccordions", predicate: IDAccordionComponent, isSignal: true }, { propertyName: "header", first: true, predicate: IDAccordionHeaderComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<button\n [class]=\"'ids-accordion__button ids-accordion__button--' + size\"\n (click)=\"toggleExpansion($event)\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"contentId\"\n>\n <div\n [class]=\"\n 'ids-accordion__headline ids-accordion__headline-' +\n level +\n ' ids-accordion__headline--' +\n size +\n (expanded ? ' ids-accordion__headline--expanded' : '')\n \"\n >\n <ng-container [ngTemplateOutlet]=\"header()!.template()\"></ng-container>\n @if (!!subtitle) {\n <div class=\"ids-accordion__subtitle\">{{ subtitle }}</div>\n }\n </div>\n</button>\n\n<div\n [id]=\"contentId\"\n class=\"ids-accordion__content\"\n [hidden]=\"!expanded\"\n>\n <ng-content select=\":not(id-accordion-header)\"></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
88
85
  }
89
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDAccordionComponent, decorators: [{
90
87
  type: Component,
@@ -95,14 +92,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
95
92
  '[class.ids-accordion--lean]': 'lean',
96
93
  '[class.ids-accordion--has-children]': 'hasChildren',
97
94
  '[class.ids-accordion--is-child]': 'isChild',
98
- }, imports: [NgTemplateOutlet], standalone: true, template: "<button\n [class]=\"'ids-accordion__button ids-accordion__button--' + size\"\n (click)=\"toggleExpansion($event)\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"contentId\"\n>\n <div\n [class]=\"\n 'ids-accordion__headline ids-accordion__headline-' +\n level +\n ' ids-accordion__headline--' +\n size +\n (expanded ? ' ids-accordion__headline--expanded' : '')\n \"\n >\n <ng-container [ngTemplateOutlet]=\"header.template\"></ng-container>\n @if (!!subtitle) {\n <div class=\"ids-accordion__subtitle\">{{ subtitle }}</div>\n }\n </div>\n</button>\n\n<div\n [id]=\"contentId\"\n class=\"ids-accordion__content\"\n [hidden]=\"!expanded\"\n>\n <ng-content select=\":not(id-accordion-header)\"></ng-content>\n</div>\n" }]
99
- }], propDecorators: { nestedAccordions: [{
100
- type: ContentChildren,
101
- args: [IDAccordionComponent]
102
- }], header: [{
103
- type: ContentChild,
104
- args: [IDAccordionHeaderComponent]
105
- }], subtitle: [{
95
+ }, imports: [NgTemplateOutlet], standalone: true, template: "<button\n [class]=\"'ids-accordion__button ids-accordion__button--' + size\"\n (click)=\"toggleExpansion($event)\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"contentId\"\n>\n <div\n [class]=\"\n 'ids-accordion__headline ids-accordion__headline-' +\n level +\n ' ids-accordion__headline--' +\n size +\n (expanded ? ' ids-accordion__headline--expanded' : '')\n \"\n >\n <ng-container [ngTemplateOutlet]=\"header()!.template()\"></ng-container>\n @if (!!subtitle) {\n <div class=\"ids-accordion__subtitle\">{{ subtitle }}</div>\n }\n </div>\n</button>\n\n<div\n [id]=\"contentId\"\n class=\"ids-accordion__content\"\n [hidden]=\"!expanded\"\n>\n <ng-content select=\":not(id-accordion-header)\"></ng-content>\n</div>\n" }]
96
+ }], propDecorators: { subtitle: [{
106
97
  type: Input
107
98
  }], lean: [{
108
99
  type: Input,
@@ -1 +1 @@
1
- {"version":3,"file":"inera-ids-angular-components-accordion.mjs","sources":["../../../projects/ids-angular/components/accordion/accordion-header.component.ts","../../../projects/ids-angular/components/accordion/accordion.component.ts","../../../projects/ids-angular/components/accordion/accordion.component.html","../../../projects/ids-angular/components/accordion/inera-ids-angular-components-accordion.ts"],"sourcesContent":["import { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'id-accordion-header',\n standalone: true,\n template: `\n <ng-template>\n <ng-content></ng-content>\n \n </ng-template>`\n})\nexport class IDAccordionHeaderComponent {\n\n @ViewChild(TemplateRef, { static: true })\n template!: TemplateRef<unknown>;\n\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { IDAccordionHeaderComponent } from './accordion-header.component';\nimport { IDUseIdService } from '@inera/ids-angular/common';\n\n@Component({\n selector: 'id-accordion',\n templateUrl: './accordion.component.html',\n host: {\n class: 'ids-accordion',\n '[class.ids-accordion--expanded]': 'expanded',\n '[class.ids-accordion--no-border]': 'noBorder',\n '[class.ids-accordion--lean]': 'lean',\n '[class.ids-accordion--has-children]': 'hasChildren',\n '[class.ids-accordion--is-child]': 'isChild',\n },\n imports: [NgTemplateOutlet],\n standalone: true,\n})\nexport class IDAccordionComponent {\n @ContentChildren(IDAccordionComponent)\n nestedAccordions: QueryList<IDAccordionComponent>;\n\n @ContentChild(IDAccordionHeaderComponent)\n header: IDAccordionHeaderComponent;\n\n @Input() subtitle: string = '';\n @Input({ transform: booleanAttribute }) lean: boolean = false;\n @Input({ transform: booleanAttribute }) noBorder: boolean = false;\n @Input({ transform: booleanAttribute }) expanded: boolean = false;\n @Input() level: number = 1;\n @Input() size: 'xs' | 's' | 'm' = 'm';\n\n @Output() closed: EventEmitter<Event> = new EventEmitter();\n @Output() opened: EventEmitter<Event> = new EventEmitter();\n @Output() expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n get hasChildren(): boolean {\n return (this.nestedAccordions?.length ?? 0) > 0;\n }\n\n get isChild(): boolean {\n return this.level > 1;\n }\n\n private idService = inject(IDUseIdService);\n private destroyRef = inject(DestroyRef);\n contentId = this.idService.generateId('accordion');\n\n ngAfterContentInit() {\n this.updateNestedAccordionLevels();\n this.nestedAccordions?.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.updateNestedAccordionLevels();\n });\n }\n\n updateNestedAccordionLevels() {\n this.nestedAccordions?.forEach((accordion) => {\n accordion.level = this.level + 1;\n switch (this.size) {\n case 'm':\n accordion.size = 's';\n break;\n case 's':\n accordion.size = 'xs';\n break;\n }\n accordion.updateNestedAccordionLevels();\n });\n }\n\n toggleExpansion(event: Event) {\n this.setExpanded(!this.expanded, event);\n }\n\n private setExpanded(expanded: boolean, event: Event) {\n this.expanded = expanded;\n if (expanded) {\n this.opened.emit(event);\n } else {\n this.closed.emit(event);\n }\n this.expandedChange.emit(this.expanded);\n }\n}\n","<button\n [class]=\"'ids-accordion__button ids-accordion__button--' + size\"\n (click)=\"toggleExpansion($event)\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"contentId\"\n>\n <div\n [class]=\"\n 'ids-accordion__headline ids-accordion__headline-' +\n level +\n ' ids-accordion__headline--' +\n size +\n (expanded ? ' ids-accordion__headline--expanded' : '')\n \"\n >\n <ng-container [ngTemplateOutlet]=\"header.template\"></ng-container>\n @if (!!subtitle) {\n <div class=\"ids-accordion__subtitle\">{{ subtitle }}</div>\n }\n </div>\n</button>\n\n<div\n [id]=\"contentId\"\n class=\"ids-accordion__content\"\n [hidden]=\"!expanded\"\n>\n <ng-content select=\":not(id-accordion-header)\"></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inera-ids-angular-components-accordion.mjs","sources":["../../../projects/ids-angular/components/accordion/accordion-header.component.ts","../../../projects/ids-angular/components/accordion/accordion.component.ts","../../../projects/ids-angular/components/accordion/accordion.component.html","../../../projects/ids-angular/components/accordion/inera-ids-angular-components-accordion.ts"],"sourcesContent":["import { Component, TemplateRef, viewChild } from '@angular/core';\n\n@Component({\n selector: 'id-accordion-header',\n standalone: true,\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `,\n})\nexport class IDAccordionHeaderComponent {\n template = viewChild.required(TemplateRef);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { Component, DestroyRef, EventEmitter, Input, Output, booleanAttribute, inject, contentChild, contentChildren } from '@angular/core';\nimport { IDAccordionHeaderComponent } from './accordion-header.component';\nimport { IDUseIdService } from '@inera/ids-angular/common';\n\n@Component({\n selector: 'id-accordion',\n templateUrl: './accordion.component.html',\n host: {\n class: 'ids-accordion',\n '[class.ids-accordion--expanded]': 'expanded',\n '[class.ids-accordion--no-border]': 'noBorder',\n '[class.ids-accordion--lean]': 'lean',\n '[class.ids-accordion--has-children]': 'hasChildren',\n '[class.ids-accordion--is-child]': 'isChild',\n },\n imports: [NgTemplateOutlet],\n standalone: true,\n})\nexport class IDAccordionComponent {\n nestedAccordions = contentChildren(IDAccordionComponent);\n\n header = contentChild(IDAccordionHeaderComponent);\n\n @Input() subtitle: string = '';\n @Input({ transform: booleanAttribute }) lean: boolean = false;\n @Input({ transform: booleanAttribute }) noBorder: boolean = false;\n @Input({ transform: booleanAttribute }) expanded: boolean = false;\n @Input() level: number = 1;\n @Input() size: 'xs' | 's' | 'm' = 'm';\n\n @Output() closed: EventEmitter<Event> = new EventEmitter();\n @Output() opened: EventEmitter<Event> = new EventEmitter();\n @Output() expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n get hasChildren(): boolean {\n return this.nestedAccordions().length > 0;\n }\n\n get isChild(): boolean {\n return this.level > 1;\n }\n\n private idService = inject(IDUseIdService);\n private destroyRef = inject(DestroyRef);\n contentId = this.idService.generateId('accordion');\n\n private nestedAccordionsSubscription = toObservable(this.nestedAccordions)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.updateNestedAccordionLevels());\n\n ngAfterContentInit() {\n this.updateNestedAccordionLevels();\n }\n\n updateNestedAccordionLevels() {\n this.nestedAccordions().forEach((accordion) => {\n accordion.level = this.level + 1;\n switch (this.size) {\n case 'm':\n accordion.size = 's';\n break;\n case 's':\n accordion.size = 'xs';\n break;\n }\n accordion.updateNestedAccordionLevels();\n });\n }\n\n toggleExpansion(event: Event) {\n this.setExpanded(!this.expanded, event);\n }\n\n private setExpanded(expanded: boolean, event: Event) {\n this.expanded = expanded;\n if (expanded) {\n this.opened.emit(event);\n } else {\n this.closed.emit(event);\n }\n this.expandedChange.emit(this.expanded);\n }\n}\n","<button\n [class]=\"'ids-accordion__button ids-accordion__button--' + size\"\n (click)=\"toggleExpansion($event)\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"contentId\"\n>\n <div\n [class]=\"\n 'ids-accordion__headline ids-accordion__headline-' +\n level +\n ' ids-accordion__headline--' +\n size +\n (expanded ? ' ids-accordion__headline--expanded' : '')\n \"\n >\n <ng-container [ngTemplateOutlet]=\"header()!.template()\"></ng-container>\n @if (!!subtitle) {\n <div class=\"ids-accordion__subtitle\">{{ subtitle }}</div>\n }\n </div>\n</button>\n\n<div\n [id]=\"contentId\"\n class=\"ids-accordion__content\"\n [hidden]=\"!expanded\"\n>\n <ng-content select=\":not(id-accordion-header)\"></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}