@inera/ids-angular 9.2.1 → 9.4.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 (239) 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 +2 -2
  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/dialog/dialog.module.d.ts +12 -0
  18. package/components/dialog/public-api.d.ts +1 -0
  19. package/components/district-selector/district-selector.component.d.ts +14 -0
  20. package/components/district-selector/index.d.ts +5 -0
  21. package/components/district-selector/public-api.d.ts +1 -0
  22. package/components/dropdown/dropdown.component.d.ts +1 -1
  23. package/components/footer-1177/footer-1177-col.component.d.ts +4 -4
  24. package/components/footer-1177/footer-1177.component.d.ts +6 -4
  25. package/components/footer-1177-admin/footer-1177-admin-col.component.d.ts +4 -4
  26. package/components/footer-1177-admin/footer-1177-admin.component.d.ts +5 -4
  27. package/components/footer-1177-pro/footer-1177-pro-col.component.d.ts +4 -4
  28. package/components/footer-1177-pro/footer-1177-pro.component.d.ts +6 -4
  29. package/components/footer-inera/footer-inera-col.component.d.ts +4 -4
  30. package/components/footer-inera/footer-inera.component.d.ts +5 -4
  31. package/components/footer-inera-admin/footer-inera-admin-col.component.d.ts +4 -4
  32. package/components/footer-inera-admin/footer-inera-admin.component.d.ts +5 -4
  33. package/components/footer-inera-general/footer-inera-general-col.component.d.ts +4 -4
  34. package/components/footer-inera-general/footer-inera-general.component.d.ts +6 -4
  35. package/components/form/checkbox-group/checkbox-group.component.d.ts +4 -4
  36. package/components/form/input/input-clear-button.component.d.ts +5 -0
  37. package/components/form/input/input.component.d.ts +7 -3
  38. package/components/form/input/public-api.d.ts +1 -0
  39. package/components/form/label-subtitle/index.d.ts +5 -0
  40. package/components/form/label-subtitle/label-subtitle.component.d.ts +5 -0
  41. package/components/form/label-subtitle/public-api.d.ts +1 -0
  42. package/components/form/radio/radio-group.component.d.ts +4 -4
  43. package/components/form/radio/radio.component.d.ts +1 -1
  44. package/components/form/radio-button/radio-button-group.component.d.ts +1 -2
  45. package/components/form/range/range.component.d.ts +1 -1
  46. package/components/form/select/select.component.d.ts +1 -1
  47. package/components/form/select-multiple/select-multiple.component.d.ts +3 -3
  48. package/components/form/spinner/spinner.component.d.ts +2 -1
  49. package/components/form/textarea/textarea.component.d.ts +1 -1
  50. package/components/form/time/time.component.d.ts +1 -1
  51. package/components/global-alert/global-alert-actions.component.d.ts +1 -1
  52. package/components/global-alert/global-alert-header.component.d.ts +1 -1
  53. package/components/global-alert/global-alert.component.d.ts +2 -2
  54. package/components/header-1177/avatar/header-1177-avatar.component.d.ts +1 -1
  55. package/components/header-1177/header-1177.component.d.ts +6 -7
  56. package/components/header-1177/nav/header-1177-nav.component.d.ts +1 -1
  57. package/components/header-1177/nav-item/header-1177-nav-item.component.d.ts +5 -5
  58. package/components/header-1177/region-picker/header-1177-region-picker.component.d.ts +4 -4
  59. package/components/header-1177/region-picker-mobile/header-1177-region-picker-mobile.component.d.ts +3 -3
  60. package/components/header-1177-admin/avatar/header-1177-admin-avatar.component.d.ts +1 -1
  61. package/components/header-1177-admin/avatar-mobile/header-1177-admin-avatar-mobile.component.d.ts +1 -1
  62. package/components/header-1177-admin/header-1177-admin.component.d.ts +3 -3
  63. package/components/header-1177-admin/nav/header-1177-admin-nav.component.d.ts +6 -4
  64. package/components/header-1177-admin/nav-item/header-1177-admin-nav-item.component.d.ts +5 -5
  65. package/components/header-1177-pro/avatar/header-1177-pro-avatar.component.d.ts +1 -1
  66. package/components/header-1177-pro/avatar-mobile/header-1177-pro-avatar-mobile.component.d.ts +1 -1
  67. package/components/header-1177-pro/header-1177-pro.component.d.ts +3 -3
  68. package/components/header-1177-pro/nav/header-1177-pro-nav.component.d.ts +6 -4
  69. package/components/header-1177-pro/nav-item/header-1177-pro-nav-item.component.d.ts +5 -5
  70. package/components/header-1177-pro/region-picker/header-1177-pro-region-picker.component.d.ts +4 -4
  71. package/components/header-1177-pro/region-picker-mobile/header-1177-pro-region-picker-mobile.component.d.ts +1 -1
  72. package/components/header-inera/header-inera.component.d.ts +5 -6
  73. package/components/header-inera/nav/header-inera-nav.component.d.ts +3 -5
  74. package/components/header-inera/nav-item/header-inera-nav-item.component.d.ts +5 -5
  75. package/components/header-inera-admin/avatar/header-inera-admin-avatar.component.d.ts +1 -1
  76. package/components/header-inera-admin/avatar-mobile/header-inera-admin-avatar-mobile.component.d.ts +1 -1
  77. package/components/header-inera-admin/header-inera-admin.component.d.ts +12 -13
  78. package/components/header-inera-admin/header-inera-admin.module.d.ts +1 -1
  79. package/components/header-inera-admin/nav/header-inera-admin-nav.component.d.ts +6 -4
  80. package/components/header-inera-admin/nav-item/header-inera-admin-nav-item.component.d.ts +4 -4
  81. package/components/header-inera-admin/public-api.d.ts +12 -12
  82. package/components/header-inera-general/avatar/header-inera-general-avatar.component.d.ts +26 -0
  83. package/components/header-inera-general/avatar-mobile/header-inera-general-avatar-mobile.component.d.ts +26 -0
  84. package/components/header-inera-general/header-inera-general.component.d.ts +10 -6
  85. package/components/header-inera-general/header-inera-general.module.d.ts +11 -8
  86. package/components/header-inera-general/item/header-inera-general-item.component.d.ts +3 -1
  87. package/components/header-inera-general/nav/header-inera-general-nav.component.d.ts +1 -1
  88. package/components/header-inera-general/nav-item/header-inera-general-nav-item.component.d.ts +5 -5
  89. package/components/header-inera-general/nav-item-mobile/header-inera-general-nav-item-mobile.component.d.ts +8 -0
  90. package/components/header-inera-general/nav-mobile/header-inera-general-nav-mobile.component.d.ts +7 -0
  91. package/components/header-inera-general/public-api.d.ts +5 -1
  92. package/components/message-avatar/index.d.ts +5 -0
  93. package/components/message-avatar/message-avatar.component.d.ts +10 -0
  94. package/components/message-avatar/public-api.d.ts +1 -0
  95. package/components/mobile/menu/item/mobile-menu-item.component.d.ts +3 -3
  96. package/components/mobile/menu/mobile-menu.component.d.ts +1 -2
  97. package/components/navigation/content/navigation-content-item.component.d.ts +24 -0
  98. package/components/navigation/content/navigation-content-link.component.d.ts +1 -1
  99. package/components/navigation/content/navigation-content.component.d.ts +6 -3
  100. package/components/navigation/content/public-api.d.ts +1 -0
  101. package/components/navigation/local/navigation-local-link.component.d.ts +1 -1
  102. package/components/navigation/local/navigation-local.component.d.ts +1 -2
  103. package/components/popover/popover.component.d.ts +4 -4
  104. package/components/puff-list/puff-list-item.component.d.ts +1 -1
  105. package/components/puff-list/puff-list.component.d.ts +1 -2
  106. package/components/side-menu/side-menu.component.d.ts +4 -2
  107. package/components/side-panel/side-panel.component.d.ts +7 -6
  108. package/components/stepper/step.component.d.ts +2 -0
  109. package/components/stepper/stepper.component.d.ts +2 -2
  110. package/components/tabs/tab-group.component.d.ts +3 -2
  111. package/components/tabs/tab.component.d.ts +2 -2
  112. package/components/tag/tag.component.d.ts +1 -1
  113. package/components/tooltip/tooltip.component.d.ts +2 -2
  114. package/fesm2022/inera-ids-angular-common.mjs +31 -32
  115. package/fesm2022/inera-ids-angular-common.mjs.map +1 -1
  116. package/fesm2022/inera-ids-angular-components-accordion.mjs +23 -32
  117. package/fesm2022/inera-ids-angular-components-accordion.mjs.map +1 -1
  118. package/fesm2022/inera-ids-angular-components-action-link.mjs +3 -3
  119. package/fesm2022/inera-ids-angular-components-alert.mjs +12 -18
  120. package/fesm2022/inera-ids-angular-components-alert.mjs.map +1 -1
  121. package/fesm2022/inera-ids-angular-components-badge.mjs +4 -4
  122. package/fesm2022/inera-ids-angular-components-badge.mjs.map +1 -1
  123. package/fesm2022/inera-ids-angular-components-box-link.mjs +19 -23
  124. package/fesm2022/inera-ids-angular-components-box-link.mjs.map +1 -1
  125. package/fesm2022/inera-ids-angular-components-breadcrumbs.mjs +19 -30
  126. package/fesm2022/inera-ids-angular-components-breadcrumbs.mjs.map +1 -1
  127. package/fesm2022/inera-ids-angular-components-button-group.mjs +3 -3
  128. package/fesm2022/inera-ids-angular-components-button.mjs +3 -3
  129. package/fesm2022/inera-ids-angular-components-card.mjs +3 -3
  130. package/fesm2022/inera-ids-angular-components-carousel.mjs +20 -27
  131. package/fesm2022/inera-ids-angular-components-carousel.mjs.map +1 -1
  132. package/fesm2022/inera-ids-angular-components-control-button.mjs +24 -0
  133. package/fesm2022/inera-ids-angular-components-control-button.mjs.map +1 -0
  134. package/fesm2022/inera-ids-angular-components-date-label.mjs +3 -3
  135. package/fesm2022/inera-ids-angular-components-dialog.mjs +65 -35
  136. package/fesm2022/inera-ids-angular-components-dialog.mjs.map +1 -1
  137. package/fesm2022/inera-ids-angular-components-district-selector.mjs +45 -0
  138. package/fesm2022/inera-ids-angular-components-district-selector.mjs.map +1 -0
  139. package/fesm2022/inera-ids-angular-components-dropdown.mjs +16 -19
  140. package/fesm2022/inera-ids-angular-components-dropdown.mjs.map +1 -1
  141. package/fesm2022/inera-ids-angular-components-footer-1177-admin.mjs +48 -55
  142. package/fesm2022/inera-ids-angular-components-footer-1177-admin.mjs.map +1 -1
  143. package/fesm2022/inera-ids-angular-components-footer-1177-pro.mjs +49 -55
  144. package/fesm2022/inera-ids-angular-components-footer-1177-pro.mjs.map +1 -1
  145. package/fesm2022/inera-ids-angular-components-footer-1177.mjs +49 -55
  146. package/fesm2022/inera-ids-angular-components-footer-1177.mjs.map +1 -1
  147. package/fesm2022/inera-ids-angular-components-footer-inera-admin.mjs +51 -58
  148. package/fesm2022/inera-ids-angular-components-footer-inera-admin.mjs.map +1 -1
  149. package/fesm2022/inera-ids-angular-components-footer-inera-general.mjs +53 -58
  150. package/fesm2022/inera-ids-angular-components-footer-inera-general.mjs.map +1 -1
  151. package/fesm2022/inera-ids-angular-components-footer-inera.mjs +51 -58
  152. package/fesm2022/inera-ids-angular-components-footer-inera.mjs.map +1 -1
  153. package/fesm2022/inera-ids-angular-components-form-check-button.mjs +3 -3
  154. package/fesm2022/inera-ids-angular-components-form-checkbox-group.mjs +11 -17
  155. package/fesm2022/inera-ids-angular-components-form-checkbox-group.mjs.map +1 -1
  156. package/fesm2022/inera-ids-angular-components-form-checkbox.mjs +3 -3
  157. package/fesm2022/inera-ids-angular-components-form-darkmode-toggle.mjs +3 -3
  158. package/fesm2022/inera-ids-angular-components-form-error-message.mjs +3 -3
  159. package/fesm2022/inera-ids-angular-components-form-input.mjs +66 -42
  160. package/fesm2022/inera-ids-angular-components-form-input.mjs.map +1 -1
  161. package/fesm2022/inera-ids-angular-components-form-label-subtitle.mjs +25 -0
  162. package/fesm2022/inera-ids-angular-components-form-label-subtitle.mjs.map +1 -0
  163. package/fesm2022/inera-ids-angular-components-form-radio-button.mjs +11 -14
  164. package/fesm2022/inera-ids-angular-components-form-radio-button.mjs.map +1 -1
  165. package/fesm2022/inera-ids-angular-components-form-radio.mjs +15 -21
  166. package/fesm2022/inera-ids-angular-components-form-radio.mjs.map +1 -1
  167. package/fesm2022/inera-ids-angular-components-form-range.mjs +4 -4
  168. package/fesm2022/inera-ids-angular-components-form-range.mjs.map +1 -1
  169. package/fesm2022/inera-ids-angular-components-form-select-multiple.mjs +10 -13
  170. package/fesm2022/inera-ids-angular-components-form-select-multiple.mjs.map +1 -1
  171. package/fesm2022/inera-ids-angular-components-form-select.mjs +4 -4
  172. package/fesm2022/inera-ids-angular-components-form-select.mjs.map +1 -1
  173. package/fesm2022/inera-ids-angular-components-form-spinner.mjs +7 -4
  174. package/fesm2022/inera-ids-angular-components-form-spinner.mjs.map +1 -1
  175. package/fesm2022/inera-ids-angular-components-form-textarea.mjs +7 -7
  176. package/fesm2022/inera-ids-angular-components-form-textarea.mjs.map +1 -1
  177. package/fesm2022/inera-ids-angular-components-form-time.mjs +4 -4
  178. package/fesm2022/inera-ids-angular-components-form-time.mjs.map +1 -1
  179. package/fesm2022/inera-ids-angular-components-form-toggle.mjs +3 -3
  180. package/fesm2022/inera-ids-angular-components-global-alert.mjs +17 -29
  181. package/fesm2022/inera-ids-angular-components-global-alert.mjs.map +1 -1
  182. package/fesm2022/inera-ids-angular-components-grid-column.mjs +3 -3
  183. package/fesm2022/inera-ids-angular-components-grid-container.mjs +3 -3
  184. package/fesm2022/inera-ids-angular-components-grid-layout-grid-column.mjs +3 -3
  185. package/fesm2022/inera-ids-angular-components-grid-layout-grid-container.mjs +3 -3
  186. package/fesm2022/inera-ids-angular-components-grid-layout-grid-row.mjs +3 -3
  187. package/fesm2022/inera-ids-angular-components-grid-layout.mjs +9 -9
  188. package/fesm2022/inera-ids-angular-components-grid-row.mjs +3 -3
  189. package/fesm2022/inera-ids-angular-components-grid.mjs +9 -9
  190. package/fesm2022/inera-ids-angular-components-header-1177-admin.mjs +86 -108
  191. package/fesm2022/inera-ids-angular-components-header-1177-admin.mjs.map +1 -1
  192. package/fesm2022/inera-ids-angular-components-header-1177-pro.mjs +123 -138
  193. package/fesm2022/inera-ids-angular-components-header-1177-pro.mjs.map +1 -1
  194. package/fesm2022/inera-ids-angular-components-header-1177.mjs +142 -180
  195. package/fesm2022/inera-ids-angular-components-header-1177.mjs.map +1 -1
  196. package/fesm2022/inera-ids-angular-components-header-inera-admin.mjs +101 -133
  197. package/fesm2022/inera-ids-angular-components-header-inera-admin.mjs.map +1 -1
  198. package/fesm2022/inera-ids-angular-components-header-inera-general.mjs +391 -80
  199. package/fesm2022/inera-ids-angular-components-header-inera-general.mjs.map +1 -1
  200. package/fesm2022/inera-ids-angular-components-header-inera.mjs +57 -86
  201. package/fesm2022/inera-ids-angular-components-header-inera.mjs.map +1 -1
  202. package/fesm2022/inera-ids-angular-components-header-patient.mjs +6 -6
  203. package/fesm2022/inera-ids-angular-components-link.mjs +3 -3
  204. package/fesm2022/inera-ids-angular-components-message-avatar.mjs +35 -0
  205. package/fesm2022/inera-ids-angular-components-message-avatar.mjs.map +1 -0
  206. package/fesm2022/inera-ids-angular-components-mobile-menu-item.mjs +8 -14
  207. package/fesm2022/inera-ids-angular-components-mobile-menu-item.mjs.map +1 -1
  208. package/fesm2022/inera-ids-angular-components-mobile-menu.mjs +17 -26
  209. package/fesm2022/inera-ids-angular-components-mobile-menu.mjs.map +1 -1
  210. package/fesm2022/inera-ids-angular-components-navigation-content.mjs +79 -18
  211. package/fesm2022/inera-ids-angular-components-navigation-content.mjs.map +1 -1
  212. package/fesm2022/inera-ids-angular-components-navigation-local.mjs +11 -17
  213. package/fesm2022/inera-ids-angular-components-navigation-local.mjs.map +1 -1
  214. package/fesm2022/inera-ids-angular-components-notification-badge.mjs +5 -5
  215. package/fesm2022/inera-ids-angular-components-notification-badge.mjs.map +1 -1
  216. package/fesm2022/inera-ids-angular-components-pagination-data-pagination.mjs +6 -6
  217. package/fesm2022/inera-ids-angular-components-pagination-list-pagination.mjs +3 -3
  218. package/fesm2022/inera-ids-angular-components-popover.mjs +124 -79
  219. package/fesm2022/inera-ids-angular-components-popover.mjs.map +1 -1
  220. package/fesm2022/inera-ids-angular-components-progressbar.mjs +3 -3
  221. package/fesm2022/inera-ids-angular-components-puff-list.mjs +39 -45
  222. package/fesm2022/inera-ids-angular-components-puff-list.mjs.map +1 -1
  223. package/fesm2022/inera-ids-angular-components-region-icon.mjs +3 -3
  224. package/fesm2022/inera-ids-angular-components-side-menu.mjs +38 -28
  225. package/fesm2022/inera-ids-angular-components-side-menu.mjs.map +1 -1
  226. package/fesm2022/inera-ids-angular-components-side-panel.mjs +103 -91
  227. package/fesm2022/inera-ids-angular-components-side-panel.mjs.map +1 -1
  228. package/fesm2022/inera-ids-angular-components-stepper.mjs +24 -20
  229. package/fesm2022/inera-ids-angular-components-stepper.mjs.map +1 -1
  230. package/fesm2022/inera-ids-angular-components-tabs.mjs +18 -26
  231. package/fesm2022/inera-ids-angular-components-tabs.mjs.map +1 -1
  232. package/fesm2022/inera-ids-angular-components-tag.mjs +10 -10
  233. package/fesm2022/inera-ids-angular-components-tag.mjs.map +1 -1
  234. package/fesm2022/inera-ids-angular-components-toolbar.mjs +3 -3
  235. package/fesm2022/inera-ids-angular-components-tooltip.mjs +27 -33
  236. package/fesm2022/inera-ids-angular-components-tooltip.mjs.map +1 -1
  237. package/package.json +58 -42
  238. /package/common/services/{use-id.service.ts.d.ts → use-id.service.d.ts} +0 -0
  239. /package/components/header-inera-admin/nav-item-mobile/{header-inera-admin-nav-item-mobile.d.ts → header-inera-admin-nav-item-mobile.component.d.ts} +0 -0
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, inject, booleanAttribute, ContentChildren, Output, Input, Component, NgModule } from '@angular/core';
2
+ import { EventEmitter, inject, contentChildren, booleanAttribute, Output, Input, Component, NgModule } from '@angular/core';
3
3
  import { NgTemplateOutlet } from '@angular/common';
4
+ import { IDUseIdService } from '@inera/ids-angular/common';
4
5
 
5
6
  class IDSideMenuComponent {
6
7
  label = '';
@@ -13,7 +14,9 @@ class IDSideMenuComponent {
13
14
  expandedChange = new EventEmitter();
14
15
  closed = new EventEmitter();
15
16
  opened = new EventEmitter();
16
- menuChildren;
17
+ idService = inject(IDUseIdService);
18
+ menuChildren = contentChildren(IDSideMenuComponent);
19
+ contentId = this.idService.generateId('side-menu');
17
20
  parent = inject(IDSideMenuComponent, { optional: true, skipSelf: true });
18
21
  constructor() {
19
22
  if (this.parent) {
@@ -41,8 +44,8 @@ class IDSideMenuComponent {
41
44
  this.hasOpened(e);
42
45
  }
43
46
  }
44
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSideMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
45
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: IDSideMenuComponent, isStandalone: true, selector: "id-side-menu-item", inputs: { label: "label", srExpandText: "srExpandText", srCollapseText: "srCollapseText", level: "level", active: ["active", "active", booleanAttribute], icon: "icon", expanded: ["expanded", "expanded", booleanAttribute] }, outputs: { expandedChange: "expandedChange", closed: "closed", opened: "opened" }, host: { properties: { "class": "hostClasses" } }, queries: [{ propertyName: "menuChildren", predicate: IDSideMenuComponent }], ngImport: i0, template: `
47
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSideMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: IDSideMenuComponent, isStandalone: true, selector: "id-side-menu-item", inputs: { label: "label", srExpandText: "srExpandText", srCollapseText: "srCollapseText", level: "level", active: ["active", "active", booleanAttribute], icon: "icon", expanded: ["expanded", "expanded", booleanAttribute] }, outputs: { expandedChange: "expandedChange", closed: "closed", opened: "opened" }, host: { properties: { "class": "hostClasses" } }, queries: [{ propertyName: "menuChildren", predicate: IDSideMenuComponent, isSignal: true }], ngImport: i0, template: `
46
49
  <ng-template #labelTemplate>
47
50
  <div class="ids-side-menu__label">
48
51
  {{ label }}
@@ -50,12 +53,13 @@ class IDSideMenuComponent {
50
53
  </div>
51
54
  </ng-template>
52
55
  <ng-template #expandBtnTemplate>
53
- @if (this.menuChildren.length > 0) {
56
+ @if (this.menuChildren().length > 0) {
54
57
  <button
55
58
  class="ids-side-menu__chevron-button"
56
59
  [class.ids-side-menu__chevron-button--expanded]="expanded"
57
60
  (click)="toggleExpanded($event)"
58
61
  [attr.aria-expanded]="expanded"
62
+ [attr.aria-controls]="contentId"
59
63
  [attr.aria-label]="expanded ? srCollapseText : srExpandText"
60
64
  ></button>
61
65
  } @else if (this.icon) {
@@ -75,15 +79,16 @@ class IDSideMenuComponent {
75
79
 
76
80
  <div
77
81
  class="ids-side-menu__header"
78
- [class.ids-side-menu--node-label]="this.menuChildren.length && this.label"
79
- [class.ids-side-menu--active]="active"
82
+ [class.ids-side-menu__header--node-label]="this.menuChildren().length && this.label"
83
+ [class.ids-side-menu__header--active]="active"
80
84
  >
81
85
  <div class="ids-side-menu__header-inner">
82
- @if (this.label && this.menuChildren.length > 0) {
86
+ @if (this.label && this.menuChildren().length > 0) {
83
87
  <button
84
88
  class="ids-side-menu__label-button"
85
89
  (click)="toggleExpanded($event)"
86
90
  [attr.aria-expanded]="expanded"
91
+ [attr.aria-controls]="contentId"
87
92
  [attr.aria-label]="expanded ? srCollapseText : srExpandText"
88
93
  >
89
94
  <div
@@ -104,13 +109,16 @@ class IDSideMenuComponent {
104
109
  </div>
105
110
  </div>
106
111
  @if (this.expanded) {
107
- <div class="ids-side-menu__children">
112
+ <div
113
+ class="ids-side-menu__children"
114
+ [id]="contentId"
115
+ >
108
116
  <ng-content select="id-side-menu-item"></ng-content>
109
117
  </div>
110
118
  }
111
119
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
112
120
  }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSideMenuComponent, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSideMenuComponent, decorators: [{
114
122
  type: Component,
115
123
  args: [{
116
124
  selector: 'id-side-menu-item',
@@ -122,12 +130,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
122
130
  </div>
123
131
  </ng-template>
124
132
  <ng-template #expandBtnTemplate>
125
- @if (this.menuChildren.length > 0) {
133
+ @if (this.menuChildren().length > 0) {
126
134
  <button
127
135
  class="ids-side-menu__chevron-button"
128
136
  [class.ids-side-menu__chevron-button--expanded]="expanded"
129
137
  (click)="toggleExpanded($event)"
130
138
  [attr.aria-expanded]="expanded"
139
+ [attr.aria-controls]="contentId"
131
140
  [attr.aria-label]="expanded ? srCollapseText : srExpandText"
132
141
  ></button>
133
142
  } @else if (this.icon) {
@@ -147,15 +156,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
147
156
 
148
157
  <div
149
158
  class="ids-side-menu__header"
150
- [class.ids-side-menu--node-label]="this.menuChildren.length && this.label"
151
- [class.ids-side-menu--active]="active"
159
+ [class.ids-side-menu__header--node-label]="this.menuChildren().length && this.label"
160
+ [class.ids-side-menu__header--active]="active"
152
161
  >
153
162
  <div class="ids-side-menu__header-inner">
154
- @if (this.label && this.menuChildren.length > 0) {
163
+ @if (this.label && this.menuChildren().length > 0) {
155
164
  <button
156
165
  class="ids-side-menu__label-button"
157
166
  (click)="toggleExpanded($event)"
158
167
  [attr.aria-expanded]="expanded"
168
+ [attr.aria-controls]="contentId"
159
169
  [attr.aria-label]="expanded ? srCollapseText : srExpandText"
160
170
  >
161
171
  <div
@@ -176,7 +186,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
176
186
  </div>
177
187
  </div>
178
188
  @if (this.expanded) {
179
- <div class="ids-side-menu__children">
189
+ <div
190
+ class="ids-side-menu__children"
191
+ [id]="contentId"
192
+ >
180
193
  <ng-content select="id-side-menu-item"></ng-content>
181
194
  </div>
182
195
  }
@@ -209,16 +222,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
209
222
  type: Output
210
223
  }], opened: [{
211
224
  type: Output
212
- }], menuChildren: [{
213
- type: ContentChildren,
214
- args: [IDSideMenuComponent]
215
225
  }] } });
216
226
 
217
227
  class IDSideMenuLinkComponent {
218
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSideMenuLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
219
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: IDSideMenuLinkComponent, isStandalone: true, selector: "id-side-menu-item-link", host: { classAttribute: "ids-side-menu__link" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
228
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSideMenuLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
229
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: IDSideMenuLinkComponent, isStandalone: true, selector: "id-side-menu-item-link", host: { classAttribute: "ids-side-menu__link" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
220
230
  }
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSideMenuLinkComponent, decorators: [{
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSideMenuLinkComponent, decorators: [{
222
232
  type: Component,
223
233
  args: [{
224
234
  selector: "id-side-menu-item-link",
@@ -235,10 +245,10 @@ class IDSideMenuIconComponent {
235
245
  get hostClasses() {
236
246
  return `ids-icon-${this.name} ids-side-menu--start-icon`;
237
247
  }
238
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSideMenuIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
239
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: IDSideMenuIconComponent, isStandalone: true, selector: "id-side-menu-item-icon", inputs: { name: "name" }, host: { properties: { "class": "hostClasses" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
248
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSideMenuIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
249
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: IDSideMenuIconComponent, isStandalone: true, selector: "id-side-menu-item-icon", inputs: { name: "name" }, host: { properties: { "class": "hostClasses" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
240
250
  }
241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSideMenuIconComponent, decorators: [{
251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSideMenuIconComponent, decorators: [{
242
252
  type: Component,
243
253
  args: [{
244
254
  selector: "id-side-menu-item-icon",
@@ -253,15 +263,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
253
263
  }] } });
254
264
 
255
265
  class IDSideMenuModule {
256
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSideMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
257
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: IDSideMenuModule, imports: [IDSideMenuComponent,
266
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSideMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
267
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: IDSideMenuModule, imports: [IDSideMenuComponent,
258
268
  IDSideMenuLinkComponent,
259
269
  IDSideMenuIconComponent], exports: [IDSideMenuComponent,
260
270
  IDSideMenuLinkComponent,
261
271
  IDSideMenuIconComponent] });
262
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSideMenuModule });
272
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSideMenuModule });
263
273
  }
264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSideMenuModule, decorators: [{
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSideMenuModule, decorators: [{
265
275
  type: NgModule,
266
276
  args: [{
267
277
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"inera-ids-angular-components-side-menu.mjs","sources":["../../../projects/ids-angular/components/side-menu/side-menu.component.ts","../../../projects/ids-angular/components/side-menu/side-menu-link.component.ts","../../../projects/ids-angular/components/side-menu/side-menu-icon.component.ts","../../../projects/ids-angular/components/side-menu/side-menu.module.ts","../../../projects/ids-angular/components/side-menu/inera-ids-angular-components-side-menu.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n Output,\n QueryList,\n booleanAttribute,\n inject,\n} from '@angular/core';\n\n@Component({\n selector: 'id-side-menu-item',\n template: `\n <ng-template #labelTemplate>\n <div class=\"ids-side-menu__label\">\n {{ label }}\n <slot name=\"label-notification\"></slot>\n </div>\n </ng-template>\n <ng-template #expandBtnTemplate>\n @if (this.menuChildren.length > 0) {\n <button\n class=\"ids-side-menu__chevron-button\"\n [class.ids-side-menu__chevron-button--expanded]=\"expanded\"\n (click)=\"toggleExpanded($event)\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-label]=\"expanded ? srCollapseText : srExpandText\"\n ></button>\n } @else if (this.icon) {\n <div\n class=\"ids-side-menu__label-icon\"\n aria-hidden=\"true\"\n >\n <span\n class=\"ids-icon-{{ this.icon }}\"\n aria-hidden=\"true\"\n ></span>\n </div>\n } @else {\n <div class=\"ids-side-menu__chevron-button--empty\"></div>\n }\n </ng-template>\n\n <div\n class=\"ids-side-menu__header\"\n [class.ids-side-menu--node-label]=\"this.menuChildren.length && this.label\"\n [class.ids-side-menu--active]=\"active\"\n >\n <div class=\"ids-side-menu__header-inner\">\n @if (this.label && this.menuChildren.length > 0) {\n <button\n class=\"ids-side-menu__label-button\"\n (click)=\"toggleExpanded($event)\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-label]=\"expanded ? srCollapseText : srExpandText\"\n >\n <div\n class=\"ids-side-menu__label-chevron\"\n [class.ids-side-menu__label-chevron--expanded]=\"expanded\"\n ></div>\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n </button>\n } @else if (this.label) {\n <div class=\"ids-side-menu__chevron-button--empty\"></div>\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n } @else {\n <ng-container [ngTemplateOutlet]=\"expandBtnTemplate\"></ng-container>\n <div class=\"ids-side-menu__link\">\n <ng-content></ng-content>\n </div>\n }\n </div>\n </div>\n @if (this.expanded) {\n <div class=\"ids-side-menu__children\">\n <ng-content select=\"id-side-menu-item\"></ng-content>\n </div>\n }\n `,\n host: {\n '[class]': 'hostClasses',\n },\n standalone: true,\n imports: [NgTemplateOutlet],\n})\nexport class IDSideMenuComponent {\n @Input() label: string = '';\n @Input() srExpandText: string = 'Expandera';\n @Input() srCollapseText: string = 'Minimera';\n @Input() level: number = 1;\n @Input({ transform: booleanAttribute }) active: boolean = false;\n @Input() icon: string = '';\n @Input({ transform: booleanAttribute }) expanded: boolean = false;\n @Output() expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output() closed: EventEmitter<Event> = new EventEmitter();\n @Output() opened: EventEmitter<Event> = new EventEmitter();\n\n @ContentChildren(IDSideMenuComponent)\n menuChildren!: QueryList<IDSideMenuComponent>;\n\n private parent = inject(IDSideMenuComponent, { optional: true, skipSelf: true });\n\n constructor() {\n if (this.parent) {\n this.level = this.parent.level + 1;\n }\n }\n\n get hostClasses(): string {\n return `ids-side-menu ids-side-menu--level-${this.level}`;\n }\n\n hasClosed(event: Event) {\n this.expanded = false;\n this.expandedChange.emit(this.expanded);\n this.closed.emit(event);\n }\n hasOpened(event: Event) {\n this.expanded = true;\n this.expandedChange.emit(this.expanded);\n this.opened.emit(event);\n }\n\n toggleExpanded(e: Event) {\n if (this.expanded) {\n this.hasClosed(e);\n } else {\n this.hasOpened(e);\n }\n }\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"id-side-menu-item-link\",\n template: `<ng-content></ng-content>`,\n host: {\n class: 'ids-side-menu__link'\n },\n standalone: true\n})\nexport class IDSideMenuLinkComponent {\n\n}\n","import { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"id-side-menu-item-icon\",\n template: `<ng-content></ng-content>`,\n standalone: true,\n host: {\n '[class]': 'hostClasses',\n }\n})\nexport class IDSideMenuIconComponent {\n\n @Input() name: string\n\n get hostClasses(): string {\n return `ids-icon-${this.name} ids-side-menu--start-icon`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { IDSideMenuComponent } from \"./side-menu.component\";\nimport { IDSideMenuLinkComponent } from \"./side-menu-link.component\";\nimport { IDSideMenuIconComponent } from \"./side-menu-icon.component\";\n\n@NgModule({\n imports: [\n IDSideMenuComponent,\n IDSideMenuLinkComponent,\n IDSideMenuIconComponent\n ],\n exports: [\n IDSideMenuComponent,\n IDSideMenuLinkComponent,\n IDSideMenuIconComponent\n ],\n})\nexport class IDSideMenuModule {}","/**\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-side-menu.mjs","sources":["../../../projects/ids-angular/components/side-menu/side-menu.component.ts","../../../projects/ids-angular/components/side-menu/side-menu-link.component.ts","../../../projects/ids-angular/components/side-menu/side-menu-icon.component.ts","../../../projects/ids-angular/components/side-menu/side-menu.module.ts","../../../projects/ids-angular/components/side-menu/inera-ids-angular-components-side-menu.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n booleanAttribute,\n inject,\n contentChildren,\n} from '@angular/core';\nimport { IDUseIdService } from '@inera/ids-angular/common';\n\n@Component({\n selector: 'id-side-menu-item',\n template: `\n <ng-template #labelTemplate>\n <div class=\"ids-side-menu__label\">\n {{ label }}\n <slot name=\"label-notification\"></slot>\n </div>\n </ng-template>\n <ng-template #expandBtnTemplate>\n @if (this.menuChildren().length > 0) {\n <button\n class=\"ids-side-menu__chevron-button\"\n [class.ids-side-menu__chevron-button--expanded]=\"expanded\"\n (click)=\"toggleExpanded($event)\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"contentId\"\n [attr.aria-label]=\"expanded ? srCollapseText : srExpandText\"\n ></button>\n } @else if (this.icon) {\n <div\n class=\"ids-side-menu__label-icon\"\n aria-hidden=\"true\"\n >\n <span\n class=\"ids-icon-{{ this.icon }}\"\n aria-hidden=\"true\"\n ></span>\n </div>\n } @else {\n <div class=\"ids-side-menu__chevron-button--empty\"></div>\n }\n </ng-template>\n\n <div\n class=\"ids-side-menu__header\"\n [class.ids-side-menu__header--node-label]=\"this.menuChildren().length && this.label\"\n [class.ids-side-menu__header--active]=\"active\"\n >\n <div class=\"ids-side-menu__header-inner\">\n @if (this.label && this.menuChildren().length > 0) {\n <button\n class=\"ids-side-menu__label-button\"\n (click)=\"toggleExpanded($event)\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"contentId\"\n [attr.aria-label]=\"expanded ? srCollapseText : srExpandText\"\n >\n <div\n class=\"ids-side-menu__label-chevron\"\n [class.ids-side-menu__label-chevron--expanded]=\"expanded\"\n ></div>\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n </button>\n } @else if (this.label) {\n <div class=\"ids-side-menu__chevron-button--empty\"></div>\n <ng-container [ngTemplateOutlet]=\"labelTemplate\"></ng-container>\n } @else {\n <ng-container [ngTemplateOutlet]=\"expandBtnTemplate\"></ng-container>\n <div class=\"ids-side-menu__link\">\n <ng-content></ng-content>\n </div>\n }\n </div>\n </div>\n @if (this.expanded) {\n <div\n class=\"ids-side-menu__children\"\n [id]=\"contentId\"\n >\n <ng-content select=\"id-side-menu-item\"></ng-content>\n </div>\n }\n `,\n host: {\n '[class]': 'hostClasses',\n },\n standalone: true,\n imports: [NgTemplateOutlet],\n})\nexport class IDSideMenuComponent {\n @Input() label: string = '';\n @Input() srExpandText: string = 'Expandera';\n @Input() srCollapseText: string = 'Minimera';\n @Input() level: number = 1;\n @Input({ transform: booleanAttribute }) active: boolean = false;\n @Input() icon: string = '';\n @Input({ transform: booleanAttribute }) expanded: boolean = false;\n @Output() expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output() closed: EventEmitter<Event> = new EventEmitter();\n @Output() opened: EventEmitter<Event> = new EventEmitter();\n\n private idService = inject(IDUseIdService);\n menuChildren = contentChildren(IDSideMenuComponent);\n contentId = this.idService.generateId('side-menu');\n\n private parent = inject(IDSideMenuComponent, { optional: true, skipSelf: true });\n\n constructor() {\n if (this.parent) {\n this.level = this.parent.level + 1;\n }\n }\n\n get hostClasses(): string {\n return `ids-side-menu ids-side-menu--level-${this.level}`;\n }\n\n hasClosed(event: Event) {\n this.expanded = false;\n this.expandedChange.emit(this.expanded);\n this.closed.emit(event);\n }\n hasOpened(event: Event) {\n this.expanded = true;\n this.expandedChange.emit(this.expanded);\n this.opened.emit(event);\n }\n\n toggleExpanded(e: Event) {\n if (this.expanded) {\n this.hasClosed(e);\n } else {\n this.hasOpened(e);\n }\n }\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"id-side-menu-item-link\",\n template: `<ng-content></ng-content>`,\n host: {\n class: 'ids-side-menu__link'\n },\n standalone: true\n})\nexport class IDSideMenuLinkComponent {\n\n}\n","import { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"id-side-menu-item-icon\",\n template: `<ng-content></ng-content>`,\n standalone: true,\n host: {\n '[class]': 'hostClasses',\n }\n})\nexport class IDSideMenuIconComponent {\n\n @Input() name: string\n\n get hostClasses(): string {\n return `ids-icon-${this.name} ids-side-menu--start-icon`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { IDSideMenuComponent } from \"./side-menu.component\";\nimport { IDSideMenuLinkComponent } from \"./side-menu-link.component\";\nimport { IDSideMenuIconComponent } from \"./side-menu-icon.component\";\n\n@NgModule({\n imports: [\n IDSideMenuComponent,\n IDSideMenuLinkComponent,\n IDSideMenuIconComponent\n ],\n exports: [\n IDSideMenuComponent,\n IDSideMenuLinkComponent,\n IDSideMenuIconComponent\n ],\n})\nexport class IDSideMenuModule {}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Input, Component, EventEmitter, inject, ElementRef, booleanAttribute, ViewChild, ContentChild, Output, NgModule } from '@angular/core';
2
+ import { InjectionToken, Input, Component, EventEmitter, contentChild, viewChild, inject, ElementRef, booleanAttribute, Output, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { useEscapeKey } from '@inera/ids-angular/common';
@@ -8,8 +8,8 @@ const POSITION = new InjectionToken('POSITION');
8
8
  class IDSidePanelProviderComponent {
9
9
  position = 'right';
10
10
  hide;
11
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSidePanelProviderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: IDSidePanelProviderComponent, isStandalone: true, selector: "id-side-panel-provider", inputs: { position: "position", hide: "hide" }, host: { classAttribute: "ids-side-panel-provider" }, providers: [
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSidePanelProviderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: IDSidePanelProviderComponent, isStandalone: true, selector: "id-side-panel-provider", inputs: { position: "position", hide: "hide" }, host: { classAttribute: "ids-side-panel-provider" }, providers: [
13
13
  {
14
14
  provide: POSITION,
15
15
  useFactory: (component) => component.position,
@@ -33,7 +33,7 @@ class IDSidePanelProviderComponent {
33
33
  }
34
34
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSidePanelProviderComponent, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSidePanelProviderComponent, decorators: [{
37
37
  type: Component,
38
38
  args: [{
39
39
  selector: "id-side-panel-provider",
@@ -78,14 +78,15 @@ class IDSidePanelComponent {
78
78
  showChange = new EventEmitter();
79
79
  elevated = false;
80
80
  menu = false;
81
- srMobileDialogLabel = "Sidopanel";
82
- srCloseText = "Stäng";
83
- srOpenText = "Öppna";
84
- size = "m";
81
+ noCloseButton = false;
82
+ srMobileDialogLabel = 'Sidopanel';
83
+ srCloseText = 'Stäng';
84
+ srOpenText = 'Öppna';
85
+ size = 'm';
85
86
  opened = new EventEmitter();
86
87
  closed = new EventEmitter();
87
- footer;
88
- hamburgerButton;
88
+ footer = contentChild('id-side-panel-footer');
89
+ hamburgerButton = viewChild('hamburger');
89
90
  position = inject(POSITION);
90
91
  el = inject(ElementRef);
91
92
  resizeObserver;
@@ -113,12 +114,12 @@ class IDSidePanelComponent {
113
114
  const isMobile = window.innerWidth <= 1024;
114
115
  const host = this.el.nativeElement;
115
116
  if (isMobile) {
116
- host.setAttribute("role", "dialog");
117
- host.setAttribute("aria-modal", "true");
118
- host.setAttribute("aria-label", this.srMobileDialogLabel);
117
+ host.setAttribute('role', 'dialog');
118
+ host.setAttribute('aria-modal', 'true');
119
+ host.setAttribute('aria-label', this.srMobileDialogLabel);
119
120
  }
120
121
  else {
121
- ["role", "aria-modal", "aria-label"].forEach(a => host.removeAttribute(a));
122
+ ['role', 'aria-modal', 'aria-label'].forEach((a) => host.removeAttribute(a));
122
123
  }
123
124
  }
124
125
  toggleExpansion() {
@@ -145,87 +146,101 @@ class IDSidePanelComponent {
145
146
  this.show = false;
146
147
  this.closed.emit();
147
148
  if (this.menu && this.hamburgerButton) {
148
- this.hamburgerButton.nativeElement.focus();
149
+ this.hamburgerButton()?.nativeElement.focus();
149
150
  }
150
151
  }
151
152
  ngOnDestroy() {
152
153
  this.resizeObserver?.disconnect();
153
154
  }
154
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSidePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
155
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: IDSidePanelComponent, isStandalone: true, selector: "id-side-panel", inputs: { show: ["show", "show", booleanAttribute], elevated: ["elevated", "elevated", booleanAttribute], menu: ["menu", "menu", booleanAttribute], srMobileDialogLabel: "srMobileDialogLabel", srCloseText: "srCloseText", srOpenText: "srOpenText", size: "size" }, outputs: { showChange: "showChange", opened: "opened", closed: "closed" }, host: { properties: { "class.ids-side-panel--menu": "menu", "class.ids-side-panel--regular": "!menu", "class.ids-side-panel--show": "show", "class.ids-side-panel--elevated": "elevated", "class.ids-side-panel--left": "position === \"left\" && !menu", "class": "sizeClass" }, classAttribute: "ids-side-panel ids-focus-trap--tablet" }, queries: [{ propertyName: "footer", first: true, predicate: ["id-side-panel-footer"], descendants: true }], viewQueries: [{ propertyName: "hamburgerButton", first: true, predicate: ["hamburger"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
156
- <div class="ids-side-panel__panel">
157
- <div class="ids-side-panel__actions">
158
- @if(menu) {
159
- <button
160
- class="ids-side-panel__hamburger"
161
- [attr.aria-label]="show ? srCloseText : srOpenText"
162
- [attr.aria-expanded]="show"
163
- (click)="toggleExpansion()">
164
- <div class="ids-hamburger">
165
- <div class="ids-hamburger__lines"></div>
166
- </div>
167
- </button>
168
- } @else {
169
- <button
170
- class="ids-side-panel__close-button"
171
- [attr.aria-label]="srCloseText"
172
- [attr.aria-expanded]="show"
173
- (click)="didClose()">
174
- </button>
175
- }
176
- </div>
177
-
178
- <div class="ids-side-panel__content" tabindex="0">
179
- <div class="ids-side-panel__inner">
180
- <ng-content select="[slot='headline']"></ng-content>
181
- <ng-content></ng-content>
155
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSidePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
156
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: IDSidePanelComponent, isStandalone: true, selector: "id-side-panel", inputs: { show: ["show", "show", booleanAttribute], elevated: ["elevated", "elevated", booleanAttribute], menu: ["menu", "menu", booleanAttribute], noCloseButton: ["noCloseButton", "noCloseButton", booleanAttribute], srMobileDialogLabel: "srMobileDialogLabel", srCloseText: "srCloseText", srOpenText: "srOpenText", size: "size" }, outputs: { showChange: "showChange", opened: "opened", closed: "closed" }, host: { properties: { "class.ids-side-panel--menu": "menu", "class.ids-side-panel--regular": "!menu", "class.ids-side-panel--show": "show", "class.ids-side-panel--elevated": "elevated", "class.ids-side-panel--left": "position === \"left\" && !menu", "class": "sizeClass" }, classAttribute: "ids-side-panel ids-focus-trap--tablet" }, queries: [{ propertyName: "footer", first: true, predicate: ["id-side-panel-footer"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "hamburgerButton", first: true, predicate: ["hamburger"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: `
157
+ <div class="ids-side-panel__panel" [class.ids-side-panel__panel--no-close-button]="noCloseButton">
158
+ <div class="ids-side-panel__actions">
159
+ @if (!noCloseButton) {
160
+ @if (menu) {
161
+ <button
162
+ class="ids-side-panel__hamburger"
163
+ [attr.aria-label]="show ? srCloseText : srOpenText"
164
+ [attr.aria-expanded]="show"
165
+ (click)="toggleExpansion()"
166
+ >
167
+ <div class="ids-hamburger">
168
+ <div class="ids-hamburger__lines"></div>
169
+ </div>
170
+ </button>
171
+ } @else {
172
+ <button
173
+ class="ids-side-panel__close-button"
174
+ [attr.aria-label]="srCloseText"
175
+ [attr.aria-expanded]="show"
176
+ (click)="didClose()"
177
+ ></button>
178
+ }
179
+ }
182
180
  </div>
183
- @if (menu) {
184
- <ng-content select="id-side-panel-footer"></ng-content>
181
+
182
+ <div
183
+ class="ids-side-panel__content"
184
+ tabindex="0"
185
+ >
186
+ <div class="ids-side-panel__inner">
187
+ <ng-content select="[slot='headline']"></ng-content>
188
+ <ng-content></ng-content>
189
+ </div>
190
+ @if (menu) {
191
+ <ng-content select="id-side-panel-footer"></ng-content>
185
192
  }
193
+ </div>
186
194
  </div>
187
- </div>`, isInline: true });
195
+ `, isInline: true });
188
196
  }
189
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSidePanelComponent, decorators: [{
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSidePanelComponent, decorators: [{
190
198
  type: Component,
191
199
  args: [{
192
- selector: "id-side-panel",
200
+ selector: 'id-side-panel',
193
201
  template: `
194
- <div class="ids-side-panel__panel">
195
- <div class="ids-side-panel__actions">
196
- @if(menu) {
197
- <button
198
- class="ids-side-panel__hamburger"
199
- [attr.aria-label]="show ? srCloseText : srOpenText"
200
- [attr.aria-expanded]="show"
201
- (click)="toggleExpansion()">
202
- <div class="ids-hamburger">
203
- <div class="ids-hamburger__lines"></div>
204
- </div>
205
- </button>
206
- } @else {
207
- <button
208
- class="ids-side-panel__close-button"
209
- [attr.aria-label]="srCloseText"
210
- [attr.aria-expanded]="show"
211
- (click)="didClose()">
212
- </button>
213
- }
214
- </div>
215
-
216
- <div class="ids-side-panel__content" tabindex="0">
217
- <div class="ids-side-panel__inner">
218
- <ng-content select="[slot='headline']"></ng-content>
219
- <ng-content></ng-content>
202
+ <div class="ids-side-panel__panel" [class.ids-side-panel__panel--no-close-button]="noCloseButton">
203
+ <div class="ids-side-panel__actions">
204
+ @if (!noCloseButton) {
205
+ @if (menu) {
206
+ <button
207
+ class="ids-side-panel__hamburger"
208
+ [attr.aria-label]="show ? srCloseText : srOpenText"
209
+ [attr.aria-expanded]="show"
210
+ (click)="toggleExpansion()"
211
+ >
212
+ <div class="ids-hamburger">
213
+ <div class="ids-hamburger__lines"></div>
214
+ </div>
215
+ </button>
216
+ } @else {
217
+ <button
218
+ class="ids-side-panel__close-button"
219
+ [attr.aria-label]="srCloseText"
220
+ [attr.aria-expanded]="show"
221
+ (click)="didClose()"
222
+ ></button>
223
+ }
224
+ }
220
225
  </div>
221
- @if (menu) {
222
- <ng-content select="id-side-panel-footer"></ng-content>
226
+
227
+ <div
228
+ class="ids-side-panel__content"
229
+ tabindex="0"
230
+ >
231
+ <div class="ids-side-panel__inner">
232
+ <ng-content select="[slot='headline']"></ng-content>
233
+ <ng-content></ng-content>
234
+ </div>
235
+ @if (menu) {
236
+ <ng-content select="id-side-panel-footer"></ng-content>
223
237
  }
238
+ </div>
224
239
  </div>
225
- </div>`,
240
+ `,
226
241
  standalone: true,
227
242
  host: {
228
- 'class': 'ids-side-panel ids-focus-trap--tablet',
243
+ class: 'ids-side-panel ids-focus-trap--tablet',
229
244
  '[class.ids-side-panel--menu]': 'menu',
230
245
  '[class.ids-side-panel--regular]': '!menu',
231
246
  '[class.ids-side-panel--show]': 'show',
@@ -245,6 +260,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
245
260
  }], menu: [{
246
261
  type: Input,
247
262
  args: [{ transform: booleanAttribute }]
263
+ }], noCloseButton: [{
264
+ type: Input,
265
+ args: [{ transform: booleanAttribute }]
248
266
  }], srMobileDialogLabel: [{
249
267
  type: Input
250
268
  }], srCloseText: [{
@@ -257,17 +275,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
257
275
  type: Output
258
276
  }], closed: [{
259
277
  type: Output
260
- }], footer: [{
261
- type: ContentChild,
262
- args: ['id-side-panel-footer']
263
- }], hamburgerButton: [{
264
- type: ViewChild,
265
- args: ['hamburger']
266
278
  }] } });
267
279
 
268
280
  class IDSidePanelFooterComponent {
269
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSidePanelFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
270
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: IDSidePanelFooterComponent, isStandalone: true, selector: "id-side-panel-footer", host: { classAttribute: "ids-side-panel__footer" }, ngImport: i0, template: `
281
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSidePanelFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
282
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: IDSidePanelFooterComponent, isStandalone: true, selector: "id-side-panel-footer", host: { classAttribute: "ids-side-panel__footer" }, ngImport: i0, template: `
271
283
  <footer>
272
284
  <div class="ids-side-panel__footer-links">
273
285
  <ng-content select="a"></ng-content>
@@ -284,7 +296,7 @@ class IDSidePanelFooterComponent {
284
296
  </footer>
285
297
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
286
298
  }
287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSidePanelFooterComponent, decorators: [{
299
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSidePanelFooterComponent, decorators: [{
288
300
  type: Component,
289
301
  args: [{
290
302
  selector: 'id-side-panel-footer',
@@ -313,16 +325,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
313
325
  }] });
314
326
 
315
327
  class IDSidePanelModule {
316
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSidePanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
317
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: IDSidePanelModule, imports: [IDSidePanelComponent,
328
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSidePanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
329
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: IDSidePanelModule, imports: [IDSidePanelComponent,
318
330
  IDSidePanelProviderComponent,
319
331
  IDSidePanelFooterComponent], exports: [IDSidePanelComponent,
320
332
  IDSidePanelProviderComponent,
321
333
  IDSidePanelFooterComponent] });
322
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSidePanelModule, imports: [IDSidePanelProviderComponent,
334
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSidePanelModule, imports: [IDSidePanelProviderComponent,
323
335
  IDSidePanelFooterComponent] });
324
336
  }
325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDSidePanelModule, decorators: [{
337
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IDSidePanelModule, decorators: [{
326
338
  type: NgModule,
327
339
  args: [{
328
340
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"inera-ids-angular-components-side-panel.mjs","sources":["../../../projects/ids-angular/components/side-panel/side-panel-provider.component.ts","../../../projects/ids-angular/components/side-panel/side-panel.component.ts","../../../projects/ids-angular/components/side-panel/side-panel-footer.component.ts","../../../projects/ids-angular/components/side-panel/side-panel.module.ts","../../../projects/ids-angular/components/side-panel/inera-ids-angular-components-side-panel.ts"],"sourcesContent":["import { CommonModule } from \"@angular/common\";\nimport { Component, InjectionToken, Input } from \"@angular/core\";\n\nexport const POSITION = new InjectionToken<'left' | 'right'>('POSITION')\n\n@Component({\n selector: \"id-side-panel-provider\",\n providers: [\n {\n provide: POSITION,\n useFactory: (component: IDSidePanelProviderComponent) => component.position,\n deps: [IDSidePanelProviderComponent]\n }\n ],\n template: `\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #sidePanel>\n @if(!hide) {\n <ng-content select=\"id-side-panel\"></ng-content>\n }\n </ng-template>\n @if(position === 'left') {\n <ng-container [ngTemplateOutlet]=\"sidePanel\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n } @else {\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"sidePanel\"></ng-container>\n }\n `,\n standalone: true,\n host: {\n class: 'ids-side-panel-provider'\n },\n imports: [CommonModule]\n})\nexport class IDSidePanelProviderComponent {\n @Input()\n position: 'right' | 'left' = 'right';\n @Input()\n hide: boolean;\n}","import { \n Component, EventEmitter, Input, Output, HostListener,\n ElementRef, ViewChild, AfterViewInit, OnDestroy, OnChanges, SimpleChanges, \n ContentChild,\n booleanAttribute,\n inject\n} from \"@angular/core\";\nimport { IDSidePanelFooterComponent } from \"./side-panel-footer.component\";\nimport { POSITION } from \"./side-panel-provider.component\";\nimport { useEscapeKey } from \"@inera/ids-angular/common\";\n\n@Component({\n selector: \"id-side-panel\",\n template: `\n <div class=\"ids-side-panel__panel\">\n <div class=\"ids-side-panel__actions\">\n @if(menu) {\n <button \n class=\"ids-side-panel__hamburger\"\n [attr.aria-label]=\"show ? srCloseText : srOpenText\"\n [attr.aria-expanded]=\"show\"\n (click)=\"toggleExpansion()\">\n <div class=\"ids-hamburger\">\n <div class=\"ids-hamburger__lines\"></div>\n </div>\n </button>\n } @else {\n <button\n class=\"ids-side-panel__close-button\"\n [attr.aria-label]=\"srCloseText\"\n [attr.aria-expanded]=\"show\"\n (click)=\"didClose()\">\n </button>\n }\n </div>\n\n <div class=\"ids-side-panel__content\" tabindex=\"0\">\n <div class=\"ids-side-panel__inner\">\n <ng-content select=\"[slot='headline']\"></ng-content>\n <ng-content></ng-content>\n </div>\n @if (menu) {\n <ng-content select=\"id-side-panel-footer\"></ng-content>\n }\n </div>\n </div>`,\n standalone: true,\n host: {\n 'class': 'ids-side-panel ids-focus-trap--tablet',\n '[class.ids-side-panel--menu]': 'menu',\n '[class.ids-side-panel--regular]': '!menu',\n '[class.ids-side-panel--show]': 'show',\n '[class.ids-side-panel--elevated]': 'elevated',\n '[class.ids-side-panel--left]': 'position === \"left\" && !menu',\n '[class]': 'sizeClass',\n },\n})\nexport class IDSidePanelComponent implements AfterViewInit, OnDestroy, OnChanges {\n @Input({ transform: booleanAttribute }) show = false;\n @Output() showChange = new EventEmitter<boolean>();\n @Input({ transform: booleanAttribute }) elevated = false;\n @Input({ transform: booleanAttribute }) menu = false;\n @Input() srMobileDialogLabel = \"Sidopanel\";\n @Input() srCloseText = \"Stäng\";\n @Input() srOpenText = \"Öppna\";\n @Input() size: \"s\" | \"m\" | \"l\" = \"m\";\n\n @Output() opened = new EventEmitter<void>();\n @Output() closed = new EventEmitter<void>();\n \n @ContentChild('id-side-panel-footer') \n footer: IDSidePanelFooterComponent;\n\n @ViewChild('hamburger') hamburgerButton?: ElementRef;\n\n public position = inject(POSITION);\n private el = inject(ElementRef);\n private resizeObserver?: ResizeObserver;\n\n get sizeClass() {\n return !this.menu ? `ids-side-panel--${this.size}` : '';\n }\n\n constructor() {\n useEscapeKey(() => this.didClose(), () => this.show);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['show'] && !changes['show'].firstChange) {\n this.show ? this.handleShowLogic() : this.didClose();\n }\n }\n\n ngAfterViewInit() {\n this.setupResizeObserver();\n if (this.show) this.handleShowLogic();\n }\n\n private setupResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.checkWindowSize());\n this.resizeObserver.observe(document.body);\n }\n\n private checkWindowSize() {\n const isMobile = window.innerWidth <= 1024;\n const host = this.el.nativeElement;\n if (isMobile) {\n host.setAttribute(\"role\", \"dialog\");\n host.setAttribute(\"aria-modal\", \"true\");\n host.setAttribute(\"aria-label\", this.srMobileDialogLabel);\n } else {\n [\"role\", \"aria-modal\", \"aria-label\"].forEach(a => host.removeAttribute(a));\n }\n }\n\n toggleExpansion() {\n if(this.show) {\n this.didClose();\n } else {\n this.didOpen();\n }\n this.showChange.emit(this.show);\n }\n\n private handleShowLogic() {\n this.opened.emit();\n setTimeout(() => {\n const headline = this.el.nativeElement.querySelector('[slot=\"headline\"]');\n headline?.focus();\n }, 0);\n }\n\n protected didOpen() {\n this.show = true;\n this.opened.emit();\n }\n\n protected didClose() {\n this.show = false;\n this.closed.emit();\n if (this.menu && this.hamburgerButton) {\n this.hamburgerButton.nativeElement.focus();\n }\n }\n\n ngOnDestroy() {\n this.resizeObserver?.disconnect();\n }\n}","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'id-side-panel-footer',\n template: `\n <footer>\n <div class=\"ids-side-panel__footer-links\">\n <ng-content select=\"a\"></ng-content>\n <ng-content select=\"[slot='footer-links']\"></ng-content>\n\n <div class=\"ids-side-panel__footer-toggle\">\n <ng-content select=\"id-darkmode-toggle\"></ng-content>\n </div>\n\n <div class=\"ids-side-panel__footer-text\">\n <ng-content></ng-content>\n </div>\n </div>\n </footer>\n `,\n standalone: true,\n host: {\n class: 'ids-side-panel__footer',\n },\n imports: [CommonModule],\n})\nexport class IDSidePanelFooterComponent {}\n","import { NgModule } from '@angular/core';\n\nimport { IDSidePanelComponent } from \"./side-panel.component\";\nimport { IDSidePanelProviderComponent } from \"./side-panel-provider.component\";\nimport { IDSidePanelFooterComponent } from \"./side-panel-footer.component\";\n\n@NgModule({\n imports: [\n IDSidePanelComponent,\n IDSidePanelProviderComponent,\n IDSidePanelFooterComponent\n ],\n exports: [\n IDSidePanelComponent,\n IDSidePanelProviderComponent,\n IDSidePanelFooterComponent\n ],\n})\nexport class IDSidePanelModule {}","/**\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-side-panel.mjs","sources":["../../../projects/ids-angular/components/side-panel/side-panel-provider.component.ts","../../../projects/ids-angular/components/side-panel/side-panel.component.ts","../../../projects/ids-angular/components/side-panel/side-panel-footer.component.ts","../../../projects/ids-angular/components/side-panel/side-panel.module.ts","../../../projects/ids-angular/components/side-panel/inera-ids-angular-components-side-panel.ts"],"sourcesContent":["import { CommonModule } from \"@angular/common\";\nimport { Component, InjectionToken, Input } from \"@angular/core\";\n\nexport const POSITION = new InjectionToken<'left' | 'right'>('POSITION')\n\n@Component({\n selector: \"id-side-panel-provider\",\n providers: [\n {\n provide: POSITION,\n useFactory: (component: IDSidePanelProviderComponent) => component.position,\n deps: [IDSidePanelProviderComponent]\n }\n ],\n template: `\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #sidePanel>\n @if(!hide) {\n <ng-content select=\"id-side-panel\"></ng-content>\n }\n </ng-template>\n @if(position === 'left') {\n <ng-container [ngTemplateOutlet]=\"sidePanel\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n } @else {\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"sidePanel\"></ng-container>\n }\n `,\n standalone: true,\n host: {\n class: 'ids-side-panel-provider'\n },\n imports: [CommonModule]\n})\nexport class IDSidePanelProviderComponent {\n @Input()\n position: 'right' | 'left' = 'right';\n @Input()\n hide: boolean;\n}","import { Component, EventEmitter, Input, Output, HostListener, ElementRef, viewChild, AfterViewInit, OnDestroy, OnChanges, SimpleChanges, booleanAttribute, inject, contentChild } from '@angular/core';\nimport { IDSidePanelFooterComponent } from './side-panel-footer.component';\nimport { POSITION } from './side-panel-provider.component';\nimport { useEscapeKey } from '@inera/ids-angular/common';\n\n@Component({\n selector: 'id-side-panel',\n template: `\n <div class=\"ids-side-panel__panel\" [class.ids-side-panel__panel--no-close-button]=\"noCloseButton\">\n <div class=\"ids-side-panel__actions\">\n @if (!noCloseButton) {\n @if (menu) {\n <button\n class=\"ids-side-panel__hamburger\"\n [attr.aria-label]=\"show ? srCloseText : srOpenText\"\n [attr.aria-expanded]=\"show\"\n (click)=\"toggleExpansion()\"\n >\n <div class=\"ids-hamburger\">\n <div class=\"ids-hamburger__lines\"></div>\n </div>\n </button>\n } @else {\n <button\n class=\"ids-side-panel__close-button\"\n [attr.aria-label]=\"srCloseText\"\n [attr.aria-expanded]=\"show\"\n (click)=\"didClose()\"\n ></button>\n }\n }\n </div>\n\n <div\n class=\"ids-side-panel__content\"\n tabindex=\"0\"\n >\n <div class=\"ids-side-panel__inner\">\n <ng-content select=\"[slot='headline']\"></ng-content>\n <ng-content></ng-content>\n </div>\n @if (menu) {\n <ng-content select=\"id-side-panel-footer\"></ng-content>\n }\n </div>\n </div>\n `,\n standalone: true,\n host: {\n class: 'ids-side-panel ids-focus-trap--tablet',\n '[class.ids-side-panel--menu]': 'menu',\n '[class.ids-side-panel--regular]': '!menu',\n '[class.ids-side-panel--show]': 'show',\n '[class.ids-side-panel--elevated]': 'elevated',\n '[class.ids-side-panel--left]': 'position === \"left\" && !menu',\n '[class]': 'sizeClass',\n },\n})\nexport class IDSidePanelComponent implements AfterViewInit, OnDestroy, OnChanges {\n @Input({ transform: booleanAttribute }) show = false;\n @Output() showChange = new EventEmitter<boolean>();\n @Input({ transform: booleanAttribute }) elevated = false;\n @Input({ transform: booleanAttribute }) menu = false;\n @Input({ transform: booleanAttribute }) noCloseButton = false;\n @Input() srMobileDialogLabel = 'Sidopanel';\n @Input() srCloseText = 'Stäng';\n @Input() srOpenText = 'Öppna';\n @Input() size: 's' | 'm' | 'l' = 'm';\n\n @Output() opened = new EventEmitter<void>();\n @Output() closed = new EventEmitter<void>();\n\n footer = contentChild('id-side-panel-footer');\n\n hamburgerButton = viewChild<ElementRef>('hamburger');\n\n public position = inject(POSITION);\n private el = inject(ElementRef);\n private resizeObserver?: ResizeObserver;\n\n get sizeClass() {\n return !this.menu ? `ids-side-panel--${this.size}` : '';\n }\n\n constructor() {\n useEscapeKey(\n () => this.didClose(),\n () => this.show,\n );\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['show'] && !changes['show'].firstChange) {\n this.show ? this.handleShowLogic() : this.didClose();\n }\n }\n\n ngAfterViewInit() {\n this.setupResizeObserver();\n if (this.show) this.handleShowLogic();\n }\n\n private setupResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.checkWindowSize());\n this.resizeObserver.observe(document.body);\n }\n\n private checkWindowSize() {\n const isMobile = window.innerWidth <= 1024;\n const host = this.el.nativeElement;\n if (isMobile) {\n host.setAttribute('role', 'dialog');\n host.setAttribute('aria-modal', 'true');\n host.setAttribute('aria-label', this.srMobileDialogLabel);\n } else {\n ['role', 'aria-modal', 'aria-label'].forEach((a) => host.removeAttribute(a));\n }\n }\n\n toggleExpansion() {\n if (this.show) {\n this.didClose();\n } else {\n this.didOpen();\n }\n this.showChange.emit(this.show);\n }\n\n private handleShowLogic() {\n this.opened.emit();\n setTimeout(() => {\n const headline = this.el.nativeElement.querySelector('[slot=\"headline\"]');\n headline?.focus();\n }, 0);\n }\n\n protected didOpen() {\n this.show = true;\n this.opened.emit();\n }\n\n protected didClose() {\n this.show = false;\n this.closed.emit();\n if (this.menu && this.hamburgerButton) {\n this.hamburgerButton()?.nativeElement.focus();\n }\n }\n\n ngOnDestroy() {\n this.resizeObserver?.disconnect();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'id-side-panel-footer',\n template: `\n <footer>\n <div class=\"ids-side-panel__footer-links\">\n <ng-content select=\"a\"></ng-content>\n <ng-content select=\"[slot='footer-links']\"></ng-content>\n\n <div class=\"ids-side-panel__footer-toggle\">\n <ng-content select=\"id-darkmode-toggle\"></ng-content>\n </div>\n\n <div class=\"ids-side-panel__footer-text\">\n <ng-content></ng-content>\n </div>\n </div>\n </footer>\n `,\n standalone: true,\n host: {\n class: 'ids-side-panel__footer',\n },\n imports: [CommonModule],\n})\nexport class IDSidePanelFooterComponent {}\n","import { NgModule } from '@angular/core';\n\nimport { IDSidePanelComponent } from \"./side-panel.component\";\nimport { IDSidePanelProviderComponent } from \"./side-panel-provider.component\";\nimport { IDSidePanelFooterComponent } from \"./side-panel-footer.component\";\n\n@NgModule({\n imports: [\n IDSidePanelComponent,\n IDSidePanelProviderComponent,\n IDSidePanelFooterComponent\n ],\n exports: [\n IDSidePanelComponent,\n IDSidePanelProviderComponent,\n IDSidePanelFooterComponent\n ],\n})\nexport class IDSidePanelModule {}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAGO,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAmB,UAAU,CAAC;MAkC3D,4BAA4B,CAAA;IAEvC,QAAQ,GAAqB,OAAO;AAEpC,IAAA,IAAI;wGAJO,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,EAAA,SAAA,EA9B3B;AACV,YAAA;AACE,gBAAA,OAAO,EAAE,QAAQ;gBACjB,UAAU,EAAE,CAAC,SAAuC,KAAK,SAAS,CAAC,QAAQ;gBAC3E,IAAI,EAAE,CAAC,4BAA4B;AACpC;SACF,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;AAgBP,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAKO,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAEX,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAhCxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AACjC,oBAAA,SAAS,EAAE;AACV,wBAAA;AACE,4BAAA,OAAO,EAAE,QAAQ;4BACjB,UAAU,EAAE,CAAC,SAAuC,KAAK,SAAS,CAAC,QAAQ;AAC3E,4BAAA,IAAI,EAAE,CAAA,4BAAA;AACP;AACF,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;AAgBP,IAAA,CAAA;AACH,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;AACR,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY;AACvB,iBAAA;8BAGC,QAAQ,EAAA,CAAA;sBADP;gBAGD,IAAI,EAAA,CAAA;sBADH;;;MCkBU,oBAAoB,CAAA;IACS,IAAI,GAAG,KAAK;AAC1C,IAAA,UAAU,GAAG,IAAI,YAAY,EAAW;IACV,QAAQ,GAAG,KAAK;IAChB,IAAI,GAAG,KAAK;IACZ,aAAa,GAAG,KAAK;IACpD,mBAAmB,GAAG,WAAW;IACjC,WAAW,GAAG,OAAO;IACrB,UAAU,GAAG,OAAO;IACpB,IAAI,GAAoB,GAAG;AAE1B,IAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AACjC,IAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AAEzC,IAAA,MAAM,GAAG,YAAY,CAAC,sBAAsB,CAAC;AAE/C,IAAA,eAAe,GAAG,SAAS,CAAa,WAAW,CAAC;AAE7C,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC1B,IAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,IAAA,cAAc;AAEtB,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAA,gBAAA,EAAmB,IAAI,CAAC,IAAI,CAAA,CAAE,GAAG,EAAE;IACzD;AAEA,IAAA,WAAA,GAAA;AACE,QAAA,YAAY,CACV,MAAM,IAAI,CAAC,QAAQ,EAAE,EACrB,MAAM,IAAI,CAAC,IAAI,CAChB;IACH;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;AACnD,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;QACtD;IACF;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,mBAAmB,EAAE;QAC1B,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,eAAe,EAAE;IACvC;IAEQ,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACtE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5C;IAEQ,eAAe,GAAA;AACrB,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI;AAC1C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;QAClC,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;AACnC,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAC3D;aAAO;YACL,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC9E;IACF;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,QAAQ,EAAE;QACjB;aAAO;YACL,IAAI,CAAC,OAAO,EAAE;QAChB;QACA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAClB,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAmB,CAAC;YACzE,QAAQ,EAAE,KAAK,EAAE;QACnB,CAAC,EAAE,CAAC,CAAC;IACP;IAEU,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpB;IAEU,QAAQ,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAClB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;YACrC,IAAI,CAAC,eAAe,EAAE,EAAE,aAAa,CAAC,KAAK,EAAE;QAC/C;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;IACnC;wGA7FW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EACX,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAEhB,gBAAgB,0BAChB,gBAAgB,CAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAChB,gBAAgB,CAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,+BAAA,EAAA,OAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,gCAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,cAAA,EAAA,uCAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxD1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;4FAYU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBArDhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uCAAuC;AAC9C,wBAAA,8BAA8B,EAAE,MAAM;AACtC,wBAAA,iCAAiC,EAAE,OAAO;AAC1C,wBAAA,8BAA8B,EAAE,MAAM;AACtC,wBAAA,kCAAkC,EAAE,UAAU;AAC9C,wBAAA,8BAA8B,EAAE,8BAA8B;AAC9D,wBAAA,SAAS,EAAE,WAAW;AACvB,qBAAA;AACF,iBAAA;wDAEyC,IAAI,EAAA,CAAA;sBAA3C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC5B,UAAU,EAAA,CAAA;sBAAnB;gBACuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,IAAI,EAAA,CAAA;sBAA3C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,mBAAmB,EAAA,CAAA;sBAA3B;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBAES,MAAM,EAAA,CAAA;sBAAf;gBACS,MAAM,EAAA,CAAA;sBAAf;;;MC3CU,0BAA0B,CAAA;wGAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtB3B;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAKS,YAAY,EAAA,CAAA,EAAA,CAAA;;4FAEX,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAxBtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;AAeT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,wBAAwB;AAChC,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;MCRY,iBAAiB,CAAA;wGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAV1B,oBAAoB;YACpB,4BAA4B;AAC5B,YAAA,0BAA0B,aAG1B,oBAAoB;YACpB,4BAA4B;YAC5B,0BAA0B,CAAA,EAAA,CAAA;AAGjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAT1B,4BAA4B;YAC5B,0BAA0B,CAAA,EAAA,CAAA;;4FAQjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,4BAA4B;wBAC5B;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,4BAA4B;wBAC5B;AACD,qBAAA;AACF,iBAAA;;;ACjBD;;AAEG;;;;"}