@inera/ids-angular 9.1.0 → 9.2.1

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 (92) hide show
  1. package/components/accordion/accordion.component.d.ts +4 -3
  2. package/components/dropdown/dropdown.component.d.ts +5 -1
  3. package/components/footer-inera/footer-inera-sub-footer-mobile-text.component.d.ts +5 -0
  4. package/components/footer-inera/footer-inera.component.d.ts +1 -1
  5. package/components/footer-inera/footer-inera.module.d.ts +2 -1
  6. package/components/footer-inera/public-api.d.ts +1 -0
  7. package/components/footer-inera-admin/footer-inera-admin-sub-footer-mobile-text.component.d.ts +5 -0
  8. package/components/footer-inera-admin/footer-inera-admin.component.d.ts +1 -1
  9. package/components/footer-inera-admin/footer-inera-admin.module.d.ts +2 -1
  10. package/components/footer-inera-admin/public-api.d.ts +1 -0
  11. package/components/footer-inera-general/footer-inera-general-col.component.d.ts +13 -0
  12. package/components/footer-inera-general/footer-inera-general-sub-footer-left.component.d.ts +5 -0
  13. package/components/footer-inera-general/footer-inera-general-sub-footer-mobile-text.component.d.ts +5 -0
  14. package/components/footer-inera-general/footer-inera-general-sub-footer-mobile.component.d.ts +5 -0
  15. package/components/footer-inera-general/footer-inera-general-sub-footer-right.component.d.ts +5 -0
  16. package/components/footer-inera-general/footer-inera-general-text.component.d.ts +5 -0
  17. package/components/footer-inera-general/footer-inera-general.component.d.ts +12 -0
  18. package/components/footer-inera-general/footer-inera-general.module.d.ts +12 -0
  19. package/components/footer-inera-general/index.d.ts +5 -0
  20. package/components/footer-inera-general/public-api.d.ts +8 -0
  21. package/components/global-alert/global-alert.component.d.ts +1 -3
  22. package/components/header-1177-admin/avatar/header-1177-admin-avatar.component.d.ts +2 -2
  23. package/components/header-1177-admin/nav/header-1177-admin-nav.component.d.ts +1 -1
  24. package/components/header-1177-pro/avatar-mobile/header-1177-pro-avatar-mobile.component.d.ts +2 -2
  25. package/components/header-1177-pro/header-1177-pro.component.d.ts +4 -4
  26. package/components/header-1177-pro/nav/header-1177-pro-nav.component.d.ts +1 -1
  27. package/components/header-1177-pro/region-picker-mobile/header-1177-pro-region-picker-mobile.component.d.ts +4 -2
  28. package/components/header-inera-admin/nav/header-inera-admin-nav.component.d.ts +3 -1
  29. package/components/header-inera-general/brand-link/header-inera-general-brand-link.directive.d.ts +5 -0
  30. package/components/header-inera-general/header-inera-general.component.d.ts +18 -0
  31. package/components/header-inera-general/header-inera-general.module.d.ts +14 -0
  32. package/components/header-inera-general/index.d.ts +5 -0
  33. package/components/header-inera-general/item/header-inera-general-item.component.d.ts +10 -0
  34. package/components/header-inera-general/menu-mobile/header-inera-general-menu-mobile.component.d.ts +10 -0
  35. package/components/header-inera-general/nav/header-inera-general-nav.component.d.ts +9 -0
  36. package/components/header-inera-general/nav-item/header-inera-general-nav-item.component.d.ts +25 -0
  37. package/components/header-inera-general/nav-item-menu-link/header-inera-general-nav-item-menu-link.component.d.ts +5 -0
  38. package/components/header-inera-general/public-api.d.ts +9 -0
  39. package/components/header-inera-general/skip-to-content/header-inera-general-skip-to-content.component.d.ts +5 -0
  40. package/components/popover/popover-content.component.d.ts +4 -1
  41. package/components/popover/popover.component.d.ts +17 -8
  42. package/components/stepper/step.component.d.ts +2 -2
  43. package/components/toolbar/index.d.ts +5 -0
  44. package/components/toolbar/public-api.d.ts +1 -0
  45. package/components/toolbar/toolbar.component.d.ts +5 -0
  46. package/components/tooltip/tooltip.component.d.ts +17 -4
  47. package/eslint/rules/no-old-components.js +2 -2
  48. package/fesm2022/inera-ids-angular-components-accordion.mjs +10 -5
  49. package/fesm2022/inera-ids-angular-components-accordion.mjs.map +1 -1
  50. package/fesm2022/inera-ids-angular-components-action-link.mjs +25 -9
  51. package/fesm2022/inera-ids-angular-components-action-link.mjs.map +1 -1
  52. package/fesm2022/inera-ids-angular-components-breadcrumbs.mjs +2 -2
  53. package/fesm2022/inera-ids-angular-components-breadcrumbs.mjs.map +1 -1
  54. package/fesm2022/inera-ids-angular-components-button.mjs +1 -1
  55. package/fesm2022/inera-ids-angular-components-button.mjs.map +1 -1
  56. package/fesm2022/inera-ids-angular-components-card.mjs +2 -2
  57. package/fesm2022/inera-ids-angular-components-card.mjs.map +1 -1
  58. package/fesm2022/inera-ids-angular-components-dialog.mjs +2 -2
  59. package/fesm2022/inera-ids-angular-components-dialog.mjs.map +1 -1
  60. package/fesm2022/inera-ids-angular-components-dropdown.mjs +40 -13
  61. package/fesm2022/inera-ids-angular-components-dropdown.mjs.map +1 -1
  62. package/fesm2022/inera-ids-angular-components-footer-inera-admin.mjs +25 -5
  63. package/fesm2022/inera-ids-angular-components-footer-inera-admin.mjs.map +1 -1
  64. package/fesm2022/inera-ids-angular-components-footer-inera-general.mjs +214 -0
  65. package/fesm2022/inera-ids-angular-components-footer-inera-general.mjs.map +1 -0
  66. package/fesm2022/inera-ids-angular-components-footer-inera.mjs +25 -5
  67. package/fesm2022/inera-ids-angular-components-footer-inera.mjs.map +1 -1
  68. package/fesm2022/inera-ids-angular-components-global-alert.mjs +3 -9
  69. package/fesm2022/inera-ids-angular-components-global-alert.mjs.map +1 -1
  70. package/fesm2022/inera-ids-angular-components-header-1177-admin.mjs +95 -63
  71. package/fesm2022/inera-ids-angular-components-header-1177-admin.mjs.map +1 -1
  72. package/fesm2022/inera-ids-angular-components-header-1177-pro.mjs +110 -84
  73. package/fesm2022/inera-ids-angular-components-header-1177-pro.mjs.map +1 -1
  74. package/fesm2022/inera-ids-angular-components-header-1177.mjs +2 -4
  75. package/fesm2022/inera-ids-angular-components-header-1177.mjs.map +1 -1
  76. package/fesm2022/inera-ids-angular-components-header-inera-admin.mjs +15 -16
  77. package/fesm2022/inera-ids-angular-components-header-inera-admin.mjs.map +1 -1
  78. package/fesm2022/inera-ids-angular-components-header-inera-general.mjs +425 -0
  79. package/fesm2022/inera-ids-angular-components-header-inera-general.mjs.map +1 -0
  80. package/fesm2022/inera-ids-angular-components-header-inera.mjs +2 -4
  81. package/fesm2022/inera-ids-angular-components-header-inera.mjs.map +1 -1
  82. package/fesm2022/inera-ids-angular-components-popover.mjs +176 -50
  83. package/fesm2022/inera-ids-angular-components-popover.mjs.map +1 -1
  84. package/fesm2022/inera-ids-angular-components-puff-list.mjs +29 -17
  85. package/fesm2022/inera-ids-angular-components-puff-list.mjs.map +1 -1
  86. package/fesm2022/inera-ids-angular-components-stepper.mjs +7 -7
  87. package/fesm2022/inera-ids-angular-components-stepper.mjs.map +1 -1
  88. package/fesm2022/inera-ids-angular-components-toolbar.mjs +18 -0
  89. package/fesm2022/inera-ids-angular-components-toolbar.mjs.map +1 -0
  90. package/fesm2022/inera-ids-angular-components-tooltip.mjs +139 -33
  91. package/fesm2022/inera-ids-angular-components-tooltip.mjs.map +1 -1
  92. package/package.json +72 -56
@@ -1 +1 @@
1
- {"version":3,"file":"inera-ids-angular-components-header-inera.mjs","sources":["../../../projects/ids-angular/components/header-inera/item/header-inera-item.component.ts","../../../projects/ids-angular/components/header-inera/nav/header-inera-nav.component.ts","../../../projects/ids-angular/components/header-inera/skip-to-content/header-inera-skip-to-content.component.ts","../../../projects/ids-angular/components/header-inera/brand-link/header-inera-brand-link.directive.ts","../../../projects/ids-angular/components/header-inera/header-inera.component.ts","../../../projects/ids-angular/components/header-inera/header-inera.component.html","../../../projects/ids-angular/components/header-inera/nav-item/header-inera-nav-item.component.ts","../../../projects/ids-angular/components/header-inera/menu-mobile/header-inera-menu-mobile.component.ts","../../../projects/ids-angular/components/header-inera/nav-item-menu-link/header-inera-nav-item-menu-link.component.ts","../../../projects/ids-angular/components/header-inera/header-inera.module.ts","../../../projects/ids-angular/components/header-inera/inera-ids-angular-components-header-inera.ts"],"sourcesContent":["import { Component, Input, booleanAttribute, inject } from '@angular/core';\nimport { ID_HEADER_CONTEXT, IDHeaderContext } from '@inera/ids-angular/common';\n\n@Component({\n selector: 'id-header-inera-item',\n template: `\n <div class=\"ids-header-inera-item__icon\">\n <ng-content name=[icon]></ng-content>\n <span class=\"ids-icon-{{icon}}\" aria-hidden=\"true\"></span>\n </div>\n <ng-content></ng-content>`,\n standalone: true,\n host: {\n class: 'ids-header-inera-item',\n '[class.ids-header-inera-item--unresponsive]': 'header?.unresponsive',\n '[class.ids-header-inera-item--mobile]': 'mobile'\n }\n})\nexport class IDHeaderIneraItemComponent {\n\n @Input({ transform: booleanAttribute }) mobile: boolean = false;\n @Input() icon?: string;\n\n header = inject<IDHeaderContext | null>(ID_HEADER_CONTEXT, { optional: true, host: true });\n}\n ","import { Component, Input, TemplateRef, ViewChild, booleanAttribute } from \"@angular/core\";\n\n@Component({\n selector: \"id-header-inera-nav\",\n template: `\n <ng-template #nav>\n <div class=\"ids-header-inera-nav__nav-items\"> \n <ng-content></ng-content>\n </div>\n </ng-template>`,\n standalone: true\n})\nexport class IDHeaderIneraNavComponent {\n @Input({ transform: booleanAttribute }) hideOnTablet: boolean = false;\n\n @ViewChild('nav') template: TemplateRef<any>;\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"id-header-inera-skip-to-content\",\n template: `<ng-content></ng-content>`,\n standalone: true,\n host: {\n class: 'ids-header-inera__skip-to-content'\n }\n})\nexport class IDHeaderIneraSkipToContent {}\n","import { Directive } from \"@angular/core\";\n\n@Directive({\n selector: \"a[idBrandIneraLink]\",\n standalone: true,\n})\nexport class IDHeaderIneraBrandLinkDirective {}\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport { Component, ContentChild, ContentChildren, Input, QueryList, booleanAttribute } from \"@angular/core\";\nimport { IDHeaderIneraItemComponent } from \"./item/header-inera-item.component\";\nimport { IDHeaderIneraNavComponent } from \"./nav/header-inera-nav.component\";\nimport { IDHeaderIneraSkipToContent } from \"./skip-to-content/header-inera-skip-to-content.component\";\nimport { ID_HEADER_CONTEXT, IDHeaderContext } from \"@inera/ids-angular/common\";\nimport { IDHeaderIneraBrandLinkDirective } from \"./brand-link/header-inera-brand-link.directive\";\n\n@Component({\n selector: \"id-header-inera\",\n templateUrl: \"./header-inera.component.html\",\n standalone: true,\n providers: [\n {\n provide: ID_HEADER_CONTEXT,\n useExisting: IDHeaderIneraComponent,\n },\n ],\n imports: [NgTemplateOutlet]\n})\nexport class IDHeaderIneraComponent implements IDHeaderContext {\n @Input({ transform: booleanAttribute }) unresponsive: boolean = false;\n @Input() brandHref: string = \"#\";\n @Input() srBrandLabel: string = \"Logotyp\";\n\n @ContentChildren(IDHeaderIneraItemComponent)\n items: QueryList<IDHeaderIneraItemComponent>;\n\n @ContentChild(IDHeaderIneraNavComponent)\n nav: IDHeaderIneraNavComponent;\n\n @ContentChild(IDHeaderIneraBrandLinkDirective)\n brandLink: IDHeaderIneraBrandLinkDirective;\n\n @ContentChild(IDHeaderIneraSkipToContent)\n skipToContent: IDHeaderIneraSkipToContent;\n\n}\n","<header class=\"ids-header-inera\"\n [class.ids-header-inera--unresponsive]=\"unresponsive\">\n <ng-content select=\"id-header-inera-skip-to-content\"></ng-content>\n <div class=\"ids-header-inera__container\">\n <div class=\"ids-header-inera__inner\">\n <div class=\"ids-header-inera__main\">\n @if(brandLink) {\n <div class=\"ids-header-inera__logo-custom\">\n <ng-content select=\"[idBrandIneraLink]\"></ng-content>\n </div>\n } @else {\n <a class=\"ids-header-inera__logo\" [attr.href]=\"brandHref\" [attr.aria-label]=\"srBrandLabel\"> </a>\n }\n @if(items) {\n <div class=\"ids-header-inera__items\">\n <ng-content select=\"id-header-inera-item\"></ng-content>\n <ng-content select=\"id-header-inera-menu-mobile\"></ng-content>\n </div>\n }\n </div>\n </div>\n </div>\n @if(nav) {\n <nav class=\"ids-header-inera-nav\"\n [class.ids-header-inera-nav--unresponsive]=\"unresponsive\"\n [class.ids-header-inera-nav--hide-on-tablet]=\"nav.hideOnTablet\">\n <ng-container *ngTemplateOutlet=\"nav.template\"></ng-container>\n </nav>\n }\n</header>","import { NgTemplateOutlet } from \"@angular/common\";\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, booleanAttribute, inject } from \"@angular/core\";\nimport { ID_HEADER_CONTEXT, IDHeaderContext, IDUseIdService, IDClickOutsideDirective, useEscapeKey } from \"@inera/ids-angular/common\";\n\n@Component({\n selector: \"id-header-inera-nav-item\",\n template: `\n <div\n idClickOutside\n (idClickOutside)=\"closeItem()\">\n @if (this.label) {\n <button\n [attr.aria-controls]=\"contentId\"\n [attr.aria-expanded]=\"expanded\"\n class=\"ids-header-inera-nav-item__button\"\n (click)=\"toggleExpansion()\">\n {{label}}\n </button>\n } @else {\n <span class=\"ids-header-inera-nav-item__link\">\n <ng-content select=\"[link]\"></ng-content>\n </span>\n }\n <div [attr.id]=\"contentId\" \n class=\"ids-header-inera-nav-item__menu\"\n [class.ids-header-inera-nav-item__menu--expanded]=\"expanded\">\n <div class=\"ids-header-inera-nav-item__menu-content\">\n <div class=\"ids-header-inera-nav-item__menu-col-1\">\n <ng-container *ngTemplateOutlet=\"col1\"></ng-container>\n </div>\n <div class=\"ids-header-inera-nav-item__menu-col-2\">\n <ng-container *ngTemplateOutlet=\"col2\"></ng-container>\n </div>\n <div class=\"ids-header-inera-nav-item__menu-col-3\">\n <ng-container *ngTemplateOutlet=\"col3\"></ng-container>\n </div>\n <div class=\"ids-header-inera-nav-item__menu-col-4\">\n <ng-container *ngTemplateOutlet=\"col4\"></ng-container>\n </div>\n </div>\n </div>\n </div>`,\n standalone: true,\n imports: [IDClickOutsideDirective, NgTemplateOutlet],\n host: {\n class: 'ids-header-inera-nav-item',\n '[class.ids-header-inera-nav-item--unresponsive]': 'header?.unresponsive',\n '[class.ids-header-inera-nav-item--active]': 'active',\n '[attr.aria-current]': 'active',\n '[class.ids-header-inera-nav-item--expanded]': 'expanded'\n }\n})\nexport class IDHeaderIneraNavItemComponent {\n @Input() label?: string;\n\n @Input({ transform: booleanAttribute }) active: boolean = false;\n @Output() activeChange = new EventEmitter<boolean>();\n\n @Input({ transform: booleanAttribute }) expanded: boolean = false;\n @Output() expandedChange = new EventEmitter<boolean>();\n\n @ContentChild('col1') col1: TemplateRef<any> | null = null;\n @ContentChild('col2') col2: TemplateRef<any> | null = null;\n @ContentChild('col3') col3: TemplateRef<any> | null = null;\n @ContentChild('col4') col4: TemplateRef<any> | null = null;\n\n private idService = inject(IDUseIdService);\n protected contentId = this.idService.generateId('header-inera-nav-item');\n header = inject<IDHeaderContext | null>(ID_HEADER_CONTEXT, { optional: true, host: true });\n\n constructor() {\n useEscapeKey(() => this.closeItem(), () => this.expanded);\n }\n\n toggleExpansion(): void {\n if(this.expanded) {\n this.closeItem();\n } else {\n this.expandItem();\n }\n }\n\n expandItem(): void {\n this.active = true;\n this.expanded = true;\n this.expandedChange.emit(true);\n this.activeChange.emit(true);\n }\n\n closeItem(): void {\n this.active = false;\n this.expanded = false;\n this.expandedChange.emit(false);\n this.activeChange.emit(false);\n }\n}\n","import { Component, Input, booleanAttribute, inject } from '@angular/core';\nimport { ID_HEADER_CONTEXT, IDHeaderContext } from '@inera/ids-angular/common';\n\n@Component({\n selector: 'id-header-inera-menu-mobile',\n template: `\n <div\n class=\"ids-header-inera-menu-mobile\"\n [class.ids-header-inera-menu-mobile--unresponsive]=\"header?.unresponsive\"\n [class.ids-header-inera-menu-mobile--expanded]=\"expanded\"\n >\n <button\n (click)=\"toggleExpansion()\"\n aria-label=\"Meny\"\n [attr.aria-expanded]=\"expanded\"\n class=\"ids-header-inera-menu-mobile__button\"\n >\n <div class=\"ids-hamburger\">\n <span class=\"ids-hamburger__lines\"></span>\n </div>\n </button>\n @if (expanded) {\n <nav class=\"ids-header-inera-menu-mobile__items\">\n <ng-content select=\"id-mobile-menu\"></ng-content>\n </nav>\n }\n </div>\n `,\n standalone: true,\n host: {\n class: 'ids-header-inera__mobile-menu',\n },\n})\nexport class IDHeaderIneraMenuMobileComponent {\n @Input({ transform: booleanAttribute }) expanded: boolean = false;\n\n header = inject<IDHeaderContext | null>(ID_HEADER_CONTEXT, { optional: true, host: true });\n\n toggleExpansion() {\n this.expanded = !this.expanded;\n }\n}\n","import {\n Component,\n} from \"@angular/core\";\n\n@Component({\n selector: \"id-header-inera-nav-item-menu-link\",\n template: `<ng-content></ng-content>`,\n standalone: true,\n host: {\n class: 'ids-header-inera-nav__menu-item-wrapper'\n }\n})\nexport class IDHeaderIneraNavItemMenuLinkComponent {\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { IDHeaderIneraComponent } from \"./header-inera.component\";\nimport { IDHeaderIneraItemComponent } from \"./item/header-inera-item.component\";\nimport { IDHeaderIneraNavComponent } from \"./nav/header-inera-nav.component\";\nimport { IDHeaderIneraNavItemComponent } from \"./nav-item/header-inera-nav-item.component\";\nimport { IDHeaderIneraMenuMobileComponent } from \"./menu-mobile/header-inera-menu-mobile.component\";\nimport { IDHeaderIneraSkipToContent } from \"./skip-to-content/header-inera-skip-to-content.component\";\nimport { IDHeaderIneraNavItemMenuLinkComponent } from \"./nav-item-menu-link/header-inera-nav-item-menu-link.component\";\n\nimport { IDHeaderIneraBrandLinkDirective } from \"./brand-link/header-inera-brand-link.directive\";\n\n@NgModule({\n imports: [\n IDHeaderIneraComponent,\n IDHeaderIneraItemComponent,\n IDHeaderIneraNavComponent,\n IDHeaderIneraNavItemComponent,\n IDHeaderIneraMenuMobileComponent,\n IDHeaderIneraSkipToContent,\n IDHeaderIneraNavItemMenuLinkComponent,\n IDHeaderIneraBrandLinkDirective,\n ],\n exports: [\n IDHeaderIneraComponent,\n IDHeaderIneraItemComponent,\n IDHeaderIneraNavComponent,\n IDHeaderIneraNavItemComponent,\n IDHeaderIneraMenuMobileComponent,\n IDHeaderIneraSkipToContent,\n IDHeaderIneraNavItemMenuLinkComponent,\n IDHeaderIneraBrandLinkDirective,\n ],\n})\nexport class IDHeaderIneraModule {}","/**\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-header-inera.mjs","sources":["../../../projects/ids-angular/components/header-inera/item/header-inera-item.component.ts","../../../projects/ids-angular/components/header-inera/nav/header-inera-nav.component.ts","../../../projects/ids-angular/components/header-inera/skip-to-content/header-inera-skip-to-content.component.ts","../../../projects/ids-angular/components/header-inera/brand-link/header-inera-brand-link.directive.ts","../../../projects/ids-angular/components/header-inera/header-inera.component.ts","../../../projects/ids-angular/components/header-inera/header-inera.component.html","../../../projects/ids-angular/components/header-inera/nav-item/header-inera-nav-item.component.ts","../../../projects/ids-angular/components/header-inera/menu-mobile/header-inera-menu-mobile.component.ts","../../../projects/ids-angular/components/header-inera/nav-item-menu-link/header-inera-nav-item-menu-link.component.ts","../../../projects/ids-angular/components/header-inera/header-inera.module.ts","../../../projects/ids-angular/components/header-inera/inera-ids-angular-components-header-inera.ts"],"sourcesContent":["import { Component, Input, booleanAttribute, inject } from '@angular/core';\nimport { ID_HEADER_CONTEXT, IDHeaderContext } from '@inera/ids-angular/common';\n\n@Component({\n selector: 'id-header-inera-item',\n template: `\n <div class=\"ids-header-inera-item__icon\">\n <ng-content name=[icon]></ng-content>\n <span class=\"ids-icon-{{icon}}\" aria-hidden=\"true\"></span>\n </div>\n <ng-content></ng-content>`,\n standalone: true,\n host: {\n class: 'ids-header-inera-item',\n '[class.ids-header-inera-item--unresponsive]': 'header?.unresponsive',\n '[class.ids-header-inera-item--mobile]': 'mobile'\n }\n})\nexport class IDHeaderIneraItemComponent {\n\n @Input({ transform: booleanAttribute }) mobile: boolean = false;\n @Input() icon?: string;\n\n header = inject<IDHeaderContext | null>(ID_HEADER_CONTEXT, { optional: true, host: true });\n}\n ","import { Component, Input, TemplateRef, ViewChild, booleanAttribute } from \"@angular/core\";\n\n@Component({\n selector: \"id-header-inera-nav\",\n template: `\n <ng-template #nav>\n <div class=\"ids-header-inera-nav__nav-items\"> \n <ng-content></ng-content>\n </div>\n </ng-template>`,\n standalone: true\n})\nexport class IDHeaderIneraNavComponent {\n @Input({ transform: booleanAttribute }) hideOnTablet: boolean = false;\n\n @ViewChild('nav') template: TemplateRef<any>;\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"id-header-inera-skip-to-content\",\n template: `<ng-content></ng-content>`,\n standalone: true,\n host: {\n class: 'ids-header-inera__skip-to-content'\n }\n})\nexport class IDHeaderIneraSkipToContent {}\n","import { Directive } from \"@angular/core\";\n\n@Directive({\n selector: \"a[idBrandIneraLink]\",\n standalone: true,\n})\nexport class IDHeaderIneraBrandLinkDirective {}\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport { Component, ContentChild, ContentChildren, Input, QueryList, booleanAttribute } from \"@angular/core\";\nimport { IDHeaderIneraItemComponent } from \"./item/header-inera-item.component\";\nimport { IDHeaderIneraNavComponent } from \"./nav/header-inera-nav.component\";\nimport { IDHeaderIneraSkipToContent } from \"./skip-to-content/header-inera-skip-to-content.component\";\nimport { ID_HEADER_CONTEXT, IDHeaderContext } from \"@inera/ids-angular/common\";\nimport { IDHeaderIneraBrandLinkDirective } from \"./brand-link/header-inera-brand-link.directive\";\n\n@Component({\n selector: \"id-header-inera\",\n templateUrl: \"./header-inera.component.html\",\n standalone: true,\n providers: [\n {\n provide: ID_HEADER_CONTEXT,\n useExisting: IDHeaderIneraComponent,\n },\n ],\n imports: [NgTemplateOutlet]\n})\nexport class IDHeaderIneraComponent implements IDHeaderContext {\n @Input({ transform: booleanAttribute }) unresponsive: boolean = false;\n @Input() brandHref: string = \"#\";\n @Input() srBrandLabel: string = \"Logotyp\";\n\n @ContentChildren(IDHeaderIneraItemComponent)\n items: QueryList<IDHeaderIneraItemComponent>;\n\n @ContentChild(IDHeaderIneraNavComponent)\n nav: IDHeaderIneraNavComponent;\n\n @ContentChild(IDHeaderIneraBrandLinkDirective)\n brandLink: IDHeaderIneraBrandLinkDirective;\n\n @ContentChild(IDHeaderIneraSkipToContent)\n skipToContent: IDHeaderIneraSkipToContent;\n\n}\n","<header class=\"ids-header-inera\"\n [class.ids-header-inera--unresponsive]=\"unresponsive\">\n <ng-content select=\"id-header-inera-skip-to-content\"></ng-content>\n <div class=\"ids-header-inera__container\">\n <div class=\"ids-header-inera__inner\">\n <div class=\"ids-header-inera__main\">\n @if(brandLink) {\n <div class=\"ids-header-inera__logo-custom\">\n <ng-content select=\"[idBrandIneraLink]\"></ng-content>\n </div>\n } @else {\n <a class=\"ids-header-inera__logo\" [attr.href]=\"brandHref\" [attr.aria-label]=\"srBrandLabel\"> </a>\n }\n @if(items) {\n <div class=\"ids-header-inera__items\">\n <ng-content select=\"id-header-inera-item\"></ng-content>\n <ng-content select=\"id-header-inera-menu-mobile\"></ng-content>\n </div>\n }\n </div>\n </div>\n </div>\n @if(nav) {\n <nav class=\"ids-header-inera-nav\"\n [class.ids-header-inera-nav--unresponsive]=\"unresponsive\"\n [class.ids-header-inera-nav--hide-on-tablet]=\"nav.hideOnTablet\">\n <ng-container *ngTemplateOutlet=\"nav.template\"></ng-container>\n </nav>\n }\n</header>","import { NgTemplateOutlet } from \"@angular/common\";\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, booleanAttribute, inject } from \"@angular/core\";\nimport { ID_HEADER_CONTEXT, IDHeaderContext, IDUseIdService, IDClickOutsideDirective, useEscapeKey } from \"@inera/ids-angular/common\";\n\n@Component({\n selector: \"id-header-inera-nav-item\",\n template: `\n <div\n idClickOutside\n (idClickOutside)=\"closeItem()\">\n @if (this.label) {\n <button\n [attr.aria-controls]=\"contentId\"\n [attr.aria-expanded]=\"expanded\"\n class=\"ids-header-inera-nav-item__button\"\n (click)=\"toggleExpansion()\">\n {{label}}\n </button>\n } @else {\n <span class=\"ids-header-inera-nav-item__link\">\n <ng-content select=\"[link]\"></ng-content>\n </span>\n }\n <div [attr.id]=\"contentId\" \n class=\"ids-header-inera-nav-item__menu\"\n [class.ids-header-inera-nav-item__menu--expanded]=\"expanded\">\n <div class=\"ids-header-inera-nav-item__menu-content\">\n <div class=\"ids-header-inera-nav-item__menu-col-1\">\n <ng-container *ngTemplateOutlet=\"col1\"></ng-container>\n </div>\n <div class=\"ids-header-inera-nav-item__menu-col-2\">\n <ng-container *ngTemplateOutlet=\"col2\"></ng-container>\n </div>\n <div class=\"ids-header-inera-nav-item__menu-col-3\">\n <ng-container *ngTemplateOutlet=\"col3\"></ng-container>\n </div>\n <div class=\"ids-header-inera-nav-item__menu-col-4\">\n <ng-container *ngTemplateOutlet=\"col4\"></ng-container>\n </div>\n </div>\n </div>\n </div>`,\n standalone: true,\n imports: [IDClickOutsideDirective, NgTemplateOutlet],\n host: {\n class: 'ids-header-inera-nav-item',\n '[class.ids-header-inera-nav-item--unresponsive]': 'header?.unresponsive',\n '[class.ids-header-inera-nav-item--active]': 'active || expanded',\n '[attr.aria-current]': 'active',\n '[class.ids-header-inera-nav-item--expanded]': 'expanded'\n }\n})\nexport class IDHeaderIneraNavItemComponent {\n @Input() label?: string;\n\n @Input({ transform: booleanAttribute }) active: boolean = false;\n @Output() activeChange = new EventEmitter<boolean>();\n\n @Input({ transform: booleanAttribute }) expanded: boolean = false;\n @Output() expandedChange = new EventEmitter<boolean>();\n\n @ContentChild('col1') col1: TemplateRef<any> | null = null;\n @ContentChild('col2') col2: TemplateRef<any> | null = null;\n @ContentChild('col3') col3: TemplateRef<any> | null = null;\n @ContentChild('col4') col4: TemplateRef<any> | null = null;\n\n private idService = inject(IDUseIdService);\n protected contentId = this.idService.generateId('header-inera-nav-item');\n header = inject<IDHeaderContext | null>(ID_HEADER_CONTEXT, { optional: true, host: true });\n\n constructor() {\n useEscapeKey(() => this.closeItem(), () => this.expanded);\n }\n\n toggleExpansion(): void {\n if(this.expanded) {\n this.closeItem();\n } else {\n this.expandItem();\n }\n }\n\n expandItem(): void {\n this.expanded = true;\n this.expandedChange.emit(true);\n this.activeChange.emit(true);\n }\n\n closeItem(): void {\n this.expanded = false;\n this.expandedChange.emit(false);\n this.activeChange.emit(false);\n }\n}\n","import { Component, Input, booleanAttribute, inject } from '@angular/core';\nimport { ID_HEADER_CONTEXT, IDHeaderContext } from '@inera/ids-angular/common';\n\n@Component({\n selector: 'id-header-inera-menu-mobile',\n template: `\n <div\n class=\"ids-header-inera-menu-mobile\"\n [class.ids-header-inera-menu-mobile--unresponsive]=\"header?.unresponsive\"\n [class.ids-header-inera-menu-mobile--expanded]=\"expanded\"\n >\n <button\n (click)=\"toggleExpansion()\"\n aria-label=\"Meny\"\n [attr.aria-expanded]=\"expanded\"\n class=\"ids-header-inera-menu-mobile__button\"\n >\n <div class=\"ids-hamburger\">\n <span class=\"ids-hamburger__lines\"></span>\n </div>\n </button>\n @if (expanded) {\n <nav class=\"ids-header-inera-menu-mobile__items\">\n <ng-content select=\"id-mobile-menu\"></ng-content>\n </nav>\n }\n </div>\n `,\n standalone: true,\n host: {\n class: 'ids-header-inera__mobile-menu',\n },\n})\nexport class IDHeaderIneraMenuMobileComponent {\n @Input({ transform: booleanAttribute }) expanded: boolean = false;\n\n header = inject<IDHeaderContext | null>(ID_HEADER_CONTEXT, { optional: true, host: true });\n\n toggleExpansion() {\n this.expanded = !this.expanded;\n }\n}\n","import {\n Component,\n} from \"@angular/core\";\n\n@Component({\n selector: \"id-header-inera-nav-item-menu-link\",\n template: `<ng-content></ng-content>`,\n standalone: true,\n host: {\n class: 'ids-header-inera-nav__menu-item-wrapper'\n }\n})\nexport class IDHeaderIneraNavItemMenuLinkComponent {\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { IDHeaderIneraComponent } from \"./header-inera.component\";\nimport { IDHeaderIneraItemComponent } from \"./item/header-inera-item.component\";\nimport { IDHeaderIneraNavComponent } from \"./nav/header-inera-nav.component\";\nimport { IDHeaderIneraNavItemComponent } from \"./nav-item/header-inera-nav-item.component\";\nimport { IDHeaderIneraMenuMobileComponent } from \"./menu-mobile/header-inera-menu-mobile.component\";\nimport { IDHeaderIneraSkipToContent } from \"./skip-to-content/header-inera-skip-to-content.component\";\nimport { IDHeaderIneraNavItemMenuLinkComponent } from \"./nav-item-menu-link/header-inera-nav-item-menu-link.component\";\n\nimport { IDHeaderIneraBrandLinkDirective } from \"./brand-link/header-inera-brand-link.directive\";\n\n@NgModule({\n imports: [\n IDHeaderIneraComponent,\n IDHeaderIneraItemComponent,\n IDHeaderIneraNavComponent,\n IDHeaderIneraNavItemComponent,\n IDHeaderIneraMenuMobileComponent,\n IDHeaderIneraSkipToContent,\n IDHeaderIneraNavItemMenuLinkComponent,\n IDHeaderIneraBrandLinkDirective,\n ],\n exports: [\n IDHeaderIneraComponent,\n IDHeaderIneraItemComponent,\n IDHeaderIneraNavComponent,\n IDHeaderIneraNavItemComponent,\n IDHeaderIneraMenuMobileComponent,\n IDHeaderIneraSkipToContent,\n IDHeaderIneraNavItemMenuLinkComponent,\n IDHeaderIneraBrandLinkDirective,\n ],\n})\nexport class IDHeaderIneraModule {}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, HostListener, Output, Component, booleanAttribute, Input, inject, ElementRef, DestroyRef, effect, ContentChildren, ContentChild, NgModule } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
2
+ import { EventEmitter, HostListener, Output, Component, inject, ElementRef, booleanAttribute, Input, ApplicationRef, DestroyRef, effect, ViewChild, ContentChildren, ContentChild, NgModule } from '@angular/core';
4
3
  import * as i2 from '@angular/common';
5
- import { CommonModule } from '@angular/common';
4
+ import { CommonModule, DOCUMENT } from '@angular/common';
5
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
+ import { DomPortalOutlet, DomPortal } from '@angular/cdk/portal';
6
7
  import { IDClickOutsideDirective, IDTooltipCategoryService } from '@inera/ids-angular/common';
7
8
  import * as i1 from '@angular/cdk/a11y';
8
9
  import { A11yModule } from '@angular/cdk/a11y';
@@ -30,6 +31,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
30
31
  }] } });
31
32
 
32
33
  class IDPopoverContentComponent {
34
+ elementRef = inject(ElementRef);
33
35
  contentClosed = new EventEmitter();
34
36
  position = 'bottom';
35
37
  closeOnBlur = false;
@@ -44,6 +46,24 @@ class IDPopoverContentComponent {
44
46
  this.contentClosed.emit(event);
45
47
  }
46
48
  }
49
+ onKeyDown(event) {
50
+ if (event.key === 'Escape') {
51
+ this.contentClosed.emit(event);
52
+ }
53
+ }
54
+ onShiftTab(event) {
55
+ const wrapper = this.elementRef.nativeElement.querySelector('.ids-popover-content__content-wrapper');
56
+ if (document.activeElement !== wrapper && !wrapper?.contains(document.activeElement))
57
+ return;
58
+ if (document.activeElement === wrapper) {
59
+ event.preventDefault();
60
+ const focusable = wrapper.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');
61
+ const last = Array.from(focusable).filter(el => el !== wrapper).pop();
62
+ if (last) {
63
+ last.focus();
64
+ }
65
+ }
66
+ }
47
67
  get caretPositionClass() {
48
68
  return `ids-popover-content__caret--${this.position}`;
49
69
  }
@@ -51,10 +71,13 @@ class IDPopoverContentComponent {
51
71
  return `ids-popover-content ids-popover-content--${this.position}`;
52
72
  }
53
73
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDPopoverContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.20", type: IDPopoverContentComponent, isStandalone: true, selector: "id-popover-content", inputs: { closeOnBlur: ["closeOnBlur", "closeOnBlur", booleanAttribute], maxHeight: "maxHeight", maxWidth: "maxWidth", srCloseText: "srCloseText" }, outputs: { contentClosed: "contentClosed" }, host: { properties: { "class": "hostClasses" } }, ngImport: i0, template: `
55
- <div [cdkTrapFocus]="true" idClickOutside (idClickOutside)="onClickedOutside($event)" class="ids-popover-content__content-wrapper"
74
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.20", type: IDPopoverContentComponent, isStandalone: true, selector: "id-popover-content", inputs: { closeOnBlur: ["closeOnBlur", "closeOnBlur", booleanAttribute], maxHeight: "maxHeight", maxWidth: "maxWidth", srCloseText: "srCloseText" }, outputs: { contentClosed: "contentClosed" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "class": "hostClasses" }, styleAttribute: "display: none" }, ngImport: i0, template: `
75
+ <div [cdkTrapFocus]="true" idClickOutside (idClickOutside)="onClickedOutside($event)"
76
+ (keydown.shift.tab)="onShiftTab($event)"
77
+ class="ids-popover-content__content-wrapper"
78
+ tabindex="0"
56
79
  [style.maxWidth]="maxWidth"
57
- [style.maxHeight]="contentMaxHeight">
80
+ [style.maxHeight]="maxHeight">
58
81
  <div class="ids-popover-content__caret" [ngClass]="caretPositionClass">
59
82
  <span class="ids-popover-content__caret-body" [ngClass]="caretPositionClass"></span>
60
83
  <span class="ids-popover-content__caret-border" [ngClass]="caretPositionClass"></span>
@@ -65,7 +88,7 @@ class IDPopoverContentComponent {
65
88
  <button (click)="contentClosed.emit($event)" class="ids-popover-content__close-btn" [attr.aria-label]="srCloseText"></button>
66
89
  </div>
67
90
  </div>
68
- <div tabindex="0" class="ids-popover-content__content-wrapper-inner">
91
+ <div class="ids-popover-content__content-wrapper-inner">
69
92
  <ng-content select="id-popover-header"></ng-content>
70
93
  <ng-content></ng-content>
71
94
  </div>
@@ -78,9 +101,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
78
101
  standalone: true,
79
102
  imports: [A11yModule, CommonModule, IDClickOutsideDirective],
80
103
  template: `
81
- <div [cdkTrapFocus]="true" idClickOutside (idClickOutside)="onClickedOutside($event)" class="ids-popover-content__content-wrapper"
104
+ <div [cdkTrapFocus]="true" idClickOutside (idClickOutside)="onClickedOutside($event)"
105
+ (keydown.shift.tab)="onShiftTab($event)"
106
+ class="ids-popover-content__content-wrapper"
107
+ tabindex="0"
82
108
  [style.maxWidth]="maxWidth"
83
- [style.maxHeight]="contentMaxHeight">
109
+ [style.maxHeight]="maxHeight">
84
110
  <div class="ids-popover-content__caret" [ngClass]="caretPositionClass">
85
111
  <span class="ids-popover-content__caret-body" [ngClass]="caretPositionClass"></span>
86
112
  <span class="ids-popover-content__caret-border" [ngClass]="caretPositionClass"></span>
@@ -91,13 +117,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
91
117
  <button (click)="contentClosed.emit($event)" class="ids-popover-content__close-btn" [attr.aria-label]="srCloseText"></button>
92
118
  </div>
93
119
  </div>
94
- <div tabindex="0" class="ids-popover-content__content-wrapper-inner">
120
+ <div class="ids-popover-content__content-wrapper-inner">
95
121
  <ng-content select="id-popover-header"></ng-content>
96
122
  <ng-content></ng-content>
97
123
  </div>
98
124
  </div>`,
99
125
  host: {
100
126
  '[class]': 'hostClasses',
127
+ 'style': 'display: none',
101
128
  }
102
129
  }]
103
130
  }], propDecorators: { contentClosed: [{
@@ -111,6 +138,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
111
138
  type: Input
112
139
  }], srCloseText: [{
113
140
  type: Input
141
+ }], onKeyDown: [{
142
+ type: HostListener,
143
+ args: ['keydown', ['$event']]
114
144
  }] } });
115
145
 
116
146
  class IDPopoverComponent {
@@ -118,17 +148,26 @@ class IDPopoverComponent {
118
148
  category = '';
119
149
  show = false;
120
150
  showChange = new EventEmitter();
121
- autoFocus = false;
122
151
  closed = new EventEmitter();
123
152
  opened = new EventEmitter();
124
153
  bodyComponent;
125
154
  closeComponents;
126
- elementRef = inject(ElementRef);
155
+ triggerEl;
156
+ document = inject(DOCUMENT);
157
+ appRef = inject(ApplicationRef);
127
158
  opener = false;
128
159
  categoryCollection = inject(IDTooltipCategoryService);
129
160
  destroyRef = inject(DestroyRef);
130
161
  updatePositionTimeout;
131
- autoFocusTimeout;
162
+ isAttached = false;
163
+ openedViaTrigger = false;
164
+ portalOutlet = null;
165
+ GAP = 4;
166
+ CARET_SIZE = 8;
167
+ resizeHandler = () => this.applyPortalPosition();
168
+ get win() {
169
+ return this.document.defaultView || window;
170
+ }
132
171
  constructor() {
133
172
  effect(() => {
134
173
  const categoryToClose = this.categoryCollection.closeCategory();
@@ -138,6 +177,7 @@ class IDPopoverComponent {
138
177
  this.opener = false;
139
178
  return;
140
179
  }
180
+ this.detachPortal();
141
181
  this.show = false;
142
182
  });
143
183
  }
@@ -145,11 +185,22 @@ class IDPopoverComponent {
145
185
  if (changes['position']) {
146
186
  this.updatePosition(changes['position'].currentValue);
147
187
  }
188
+ if (changes['show'] && !changes['show'].firstChange) {
189
+ if (changes['show'].currentValue) {
190
+ this.attachPortal();
191
+ }
192
+ else {
193
+ this.detachPortal();
194
+ }
195
+ }
148
196
  }
149
197
  updatePosition(position) {
150
198
  clearTimeout(this.updatePositionTimeout);
151
199
  this.updatePositionTimeout = setTimeout(() => {
152
200
  this.bodyComponent.position = position;
201
+ if (this.isAttached) {
202
+ requestAnimationFrame(() => this.applyPortalPosition());
203
+ }
153
204
  }, 0);
154
205
  }
155
206
  ngAfterContentInit() {
@@ -165,12 +216,13 @@ class IDPopoverComponent {
165
216
  this.closePopover(event);
166
217
  });
167
218
  });
219
+ if (this.show) {
220
+ this.attachPortal();
221
+ }
168
222
  }
169
223
  ngOnDestroy() {
170
224
  clearTimeout(this.updatePositionTimeout);
171
- clearTimeout(this.autoFocusTimeout);
172
- }
173
- closeCategory() {
225
+ this.detachPortal();
174
226
  }
175
227
  togglePopover(e) {
176
228
  e.preventDefault();
@@ -181,47 +233,126 @@ class IDPopoverComponent {
181
233
  this.showPopover(e);
182
234
  }
183
235
  }
184
- checkAutoFocus() {
185
- if (this.autoFocus) {
186
- this.autoFocusTimeout = setTimeout(() => {
187
- const focusAnchor = this.elementRef.nativeElement.querySelector('.ids-focus-anchor');
188
- const bodyComponent = this.elementRef.nativeElement.querySelector('.ids-popover-content__content-wrapper-inner');
189
- if (focusAnchor) {
190
- focusAnchor.focus();
191
- }
192
- else if (bodyComponent) {
193
- bodyComponent.focus();
194
- }
195
- }, 0);
236
+ focusContent() {
237
+ if (!this.bodyComponent)
238
+ return;
239
+ const contentEl = this.bodyComponent.elementRef.nativeElement;
240
+ const wrapper = contentEl.querySelector('.ids-popover-content__content-wrapper');
241
+ if (wrapper) {
242
+ wrapper.focus({ preventScroll: true });
196
243
  }
197
244
  }
198
245
  showPopover(event) {
199
246
  this.opener = true;
247
+ this.openedViaTrigger = true;
200
248
  this.categoryCollection.requestClose(this.category);
201
- this.closeCategory();
202
249
  this.show = true;
203
250
  this.showChange.emit(this.show);
204
- this.checkAutoFocus();
251
+ this.attachPortal();
205
252
  this.opened.emit(event);
206
253
  }
207
- handleKeyDown(event) {
208
- if (event.key === 'Escape' && this.show) {
209
- this.closePopover(event);
210
- }
211
- }
212
254
  closePopover(event) {
255
+ this.detachPortal();
213
256
  this.show = false;
214
257
  this.showChange.emit(this.show);
215
258
  this.closed.emit(event);
259
+ this.focusTriggerContent();
260
+ }
261
+ focusTriggerContent() {
262
+ const trigger = this.triggerEl?.nativeElement;
263
+ if (!trigger)
264
+ return;
265
+ const focusable = trigger.querySelector('button, a[href], [tabindex]:not([tabindex="-1"]), input, select, textarea');
266
+ if (focusable) {
267
+ focusable.focus();
268
+ }
269
+ }
270
+ attachPortal() {
271
+ if (this.isAttached || !this.bodyComponent)
272
+ return;
273
+ this.isAttached = true;
274
+ const contentEl = this.bodyComponent.elementRef.nativeElement;
275
+ contentEl.style.display = '';
276
+ contentEl.style.opacity = '0';
277
+ const outletEl = this.document.createElement('div');
278
+ this.document.body.appendChild(outletEl);
279
+ this.portalOutlet = new DomPortalOutlet(outletEl, undefined, this.appRef, undefined, this.document);
280
+ this.portalOutlet.attach(new DomPortal(this.bodyComponent.elementRef));
281
+ clearTimeout(this.updatePositionTimeout);
282
+ this.updatePositionTimeout = setTimeout(() => {
283
+ requestAnimationFrame(() => {
284
+ this.applyPortalPosition();
285
+ contentEl.style.opacity = '';
286
+ if (this.openedViaTrigger) {
287
+ this.focusContent();
288
+ this.openedViaTrigger = false;
289
+ }
290
+ });
291
+ }, 100);
292
+ this.win.addEventListener('resize', this.resizeHandler);
293
+ }
294
+ detachPortal() {
295
+ if (!this.isAttached)
296
+ return;
297
+ this.isAttached = false;
298
+ this.win.removeEventListener('resize', this.resizeHandler);
299
+ if (this.portalOutlet) {
300
+ this.portalOutlet.dispose();
301
+ this.portalOutlet = null;
302
+ }
303
+ if (this.bodyComponent) {
304
+ this.bodyComponent.elementRef.nativeElement.style.cssText = 'display:none';
305
+ }
306
+ }
307
+ calculatePosition(triggerRect, contentRect) {
308
+ const offset = this.GAP + this.CARET_SIZE;
309
+ const pos = this.position;
310
+ const centerY = triggerRect.top + triggerRect.height / 2 - contentRect.height / 2;
311
+ const centerX = triggerRect.left + triggerRect.width / 2 - contentRect.width / 2;
312
+ let top;
313
+ if (pos.startsWith('top'))
314
+ top = triggerRect.top - contentRect.height - offset;
315
+ else if (pos.startsWith('bottom'))
316
+ top = triggerRect.bottom + offset;
317
+ else if (pos.endsWith('-top'))
318
+ top = triggerRect.bottom - contentRect.height;
319
+ else if (pos.endsWith('-bottom'))
320
+ top = triggerRect.top;
321
+ else
322
+ top = centerY;
323
+ let left;
324
+ if (pos.startsWith('left'))
325
+ left = triggerRect.left - contentRect.width - offset;
326
+ else if (pos.startsWith('right'))
327
+ left = triggerRect.right + offset;
328
+ else if (pos.endsWith('-left'))
329
+ left = triggerRect.left;
330
+ else if (pos.endsWith('-right'))
331
+ left = triggerRect.right - contentRect.width;
332
+ else
333
+ left = centerX;
334
+ return { top, left };
335
+ }
336
+ applyPortalPosition() {
337
+ if (!this.bodyComponent || !this.triggerEl)
338
+ return;
339
+ const triggerRect = this.triggerEl.nativeElement.getBoundingClientRect();
340
+ const contentEl = this.bodyComponent.elementRef.nativeElement;
341
+ const { top, left } = this.calculatePosition(triggerRect, contentEl.getBoundingClientRect());
342
+ const window = this.win;
343
+ Object.assign(contentEl.style, {
344
+ position: 'absolute',
345
+ top: `${top + window.scrollY}px`,
346
+ left: `${left + window.scrollX}px`,
347
+ bottom: 'auto', right: 'auto', transform: 'none', zIndex: '9999',
348
+ });
216
349
  }
217
350
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
218
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: IDPopoverComponent, isStandalone: true, selector: "id-popover", inputs: { position: "position", category: "category", show: ["show", "show", booleanAttribute], autoFocus: ["autoFocus", "autoFocus", booleanAttribute] }, outputs: { showChange: "showChange", closed: "closed", opened: "opened" }, host: { listeners: { "window:keydown": "handleKeyDown($event)" }, classAttribute: "ids-popover" }, queries: [{ propertyName: "bodyComponent", first: true, predicate: IDPopoverContentComponent, descendants: true }, { propertyName: "closeComponents", predicate: IDPopoverCloseComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
219
- <span class="ids-popover-trigger" (click)="togglePopover($event)">
351
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.20", type: IDPopoverComponent, isStandalone: true, selector: "id-popover", inputs: { position: "position", category: "category", show: ["show", "show", booleanAttribute] }, outputs: { showChange: "showChange", closed: "closed", opened: "opened" }, host: { classAttribute: "ids-popover" }, queries: [{ propertyName: "bodyComponent", first: true, predicate: IDPopoverContentComponent, descendants: true }, { propertyName: "closeComponents", predicate: IDPopoverCloseComponent, descendants: true }], viewQueries: [{ propertyName: "triggerEl", first: true, predicate: ["triggerEl"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
352
+ <span #triggerEl class="ids-popover-trigger" (click)="togglePopover($event)">
220
353
  <ng-content></ng-content>
221
354
  </span>
222
- @if(show) {
223
- <ng-content select="id-popover-content"></ng-content>
224
- }
355
+ <ng-content select="id-popover-content"></ng-content>
225
356
  `, isInline: true });
226
357
  }
227
358
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IDPopoverComponent, decorators: [{
@@ -230,12 +361,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
230
361
  selector: 'id-popover',
231
362
  standalone: true,
232
363
  template: `
233
- <span class="ids-popover-trigger" (click)="togglePopover($event)">
364
+ <span #triggerEl class="ids-popover-trigger" (click)="togglePopover($event)">
234
365
  <ng-content></ng-content>
235
366
  </span>
236
- @if(show) {
237
- <ng-content select="id-popover-content"></ng-content>
238
- }
367
+ <ng-content select="id-popover-content"></ng-content>
239
368
  `,
240
369
  host: {
241
370
  class: 'ids-popover'
@@ -250,9 +379,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
250
379
  args: [{ transform: booleanAttribute }]
251
380
  }], showChange: [{
252
381
  type: Output
253
- }], autoFocus: [{
254
- type: Input,
255
- args: [{ transform: booleanAttribute }]
256
382
  }], closed: [{
257
383
  type: Output
258
384
  }], opened: [{
@@ -263,9 +389,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
263
389
  }], closeComponents: [{
264
390
  type: ContentChildren,
265
391
  args: [IDPopoverCloseComponent, { descendants: true }]
266
- }], handleKeyDown: [{
267
- type: HostListener,
268
- args: ['window:keydown', ['$event']]
392
+ }], triggerEl: [{
393
+ type: ViewChild,
394
+ args: ['triggerEl']
269
395
  }] } });
270
396
 
271
397
  class IDPopoverHeaderComponent {
@@ -1 +1 @@
1
- {"version":3,"file":"inera-ids-angular-components-popover.mjs","sources":["../../../projects/ids-angular/components/popover/popover-close.component.ts","../../../projects/ids-angular/components/popover/popover-content.component.ts","../../../projects/ids-angular/components/popover/popover.component.ts","../../../projects/ids-angular/components/popover/popover-header.component.ts","../../../projects/ids-angular/components/popover/popover-trigger.component.ts","../../../projects/ids-angular/components/popover/popover.module.ts","../../../projects/ids-angular/components/popover/inera-ids-angular-components-popover.ts"],"sourcesContent":["import { Component, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Component({\n selector: 'id-popover-close',\n standalone: true,\n template: `<ng-content></ng-content>`,\n})\nexport class IDPopoverCloseComponent {\n @Output() clicked = new EventEmitter<Event>();\n\n @HostListener('click')\n onClick = (e:Event) => {\n this.clicked.emit(e);\n }\n}","import { CommonModule } from '@angular/common';\nimport { booleanAttribute, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IDClickOutsideDirective } from '@inera/ids-angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'id-popover-content',\n standalone: true,\n imports: [A11yModule, CommonModule, IDClickOutsideDirective],\n template: `\n <div [cdkTrapFocus]=\"true\" idClickOutside (idClickOutside)=\"onClickedOutside($event)\" class=\"ids-popover-content__content-wrapper\"\n [style.maxWidth]=\"maxWidth\"\n [style.maxHeight]=\"contentMaxHeight\">\n <div class=\"ids-popover-content__caret\" [ngClass]=\"caretPositionClass\">\n <span class=\"ids-popover-content__caret-body\" [ngClass]=\"caretPositionClass\"></span>\n <span class=\"ids-popover-content__caret-border\" [ngClass]=\"caretPositionClass\"></span>\n <span class=\"ids-popover-content__caret-shadow\" [ngClass]=\"caretPositionClass\"></span>\n </div>\n <div class=\"ids-popover-content__top-bar\">\n <div class=\"ids-popover-content__close-btn-wrapper\">\n <button (click)=\"contentClosed.emit($event)\" class=\"ids-popover-content__close-btn\" [attr.aria-label]=\"srCloseText\"></button>\n </div>\n </div>\n <div tabindex=\"0\" class=\"ids-popover-content__content-wrapper-inner\">\n <ng-content select=\"id-popover-header\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>`,\n host: {\n '[class]': 'hostClasses',\n }\n})\nexport class IDPopoverContentComponent {\n\n @Output()\n contentClosed: EventEmitter<Event> = new EventEmitter<Event>();\n\n position = 'bottom';\n\n @Input({transform: booleanAttribute}) closeOnBlur = false;\n @Input() maxHeight = '260px';\n @Input() maxWidth = '260px';\n @Input() srCloseText = 'Stäng';\n\n get contentMaxHeight() {\n return `calc(${this.maxHeight} - 40px)`\n }\n\n onClickedOutside(event: Event) {\n if(this.closeOnBlur) {\n this.contentClosed.emit(event)\n }\n }\n\n get caretPositionClass() {\n return `ids-popover-content__caret--${this.position}`;\n }\n\n get hostClasses(): string {\n return `ids-popover-content ids-popover-content--${this.position}`;\n }\n}\n","import { AfterContentInit, booleanAttribute, Component, ContentChild, ContentChildren, DestroyRef, effect, ElementRef, EventEmitter, HostListener, inject, Input, OnChanges, OnDestroy, Output, QueryList, SimpleChanges } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IDPopoverCloseComponent } from './popover-close.component';\nimport { IDPopoverContentComponent } from './popover-content.component';\nimport { IDTooltipCategoryService } from '@inera/ids-angular/common';\n\n@Component({\n selector: 'id-popover',\n standalone: true,\n template: `\n <span class=\"ids-popover-trigger\" (click)=\"togglePopover($event)\">\n <ng-content></ng-content>\n </span>\n @if(show) {\n <ng-content select=\"id-popover-content\"></ng-content>\n }\n `,\n host: {\n class: 'ids-popover'\n }\n})\nexport class IDPopoverComponent implements AfterContentInit, OnChanges, OnDestroy {\n @Input() position:\n | 'top'\n | 'top-left'\n | 'top-right'\n | 'right'\n | 'right-top'\n | 'right-bottom'\n | 'bottom'\n | 'bottom-left'\n | 'bottom-right'\n | 'left'\n | 'left-top'\n | 'left-bottom' = 'bottom';\n\n @Input() category = '';\n @Input({transform: booleanAttribute}) show: boolean = false;\n @Output() showChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Input({transform: booleanAttribute}) autoFocus: boolean = false;\n \n @Output() closed: EventEmitter<Event> = new EventEmitter();\n @Output() opened: EventEmitter<Event> = new EventEmitter();\n\n @ContentChild(IDPopoverContentComponent, { descendants:true })\n bodyComponent: IDPopoverContentComponent;\n\n @ContentChildren(IDPopoverCloseComponent, { descendants: true })\n closeComponents: QueryList<IDPopoverCloseComponent>;\n\n elementRef = inject(ElementRef);\n private opener = false;\n private categoryCollection = inject(IDTooltipCategoryService);\n private destroyRef = inject(DestroyRef);\n private updatePositionTimeout?: ReturnType<typeof setTimeout>;\n private autoFocusTimeout?: ReturnType<typeof setTimeout>;\n\n constructor() {\n effect(() => {\n const categoryToClose = this.categoryCollection.closeCategory();\n if (!categoryToClose || categoryToClose !== this.category) return;\n if (this.opener) {\n this.opener = false;\n return;\n }\n this.show = false;\n });\n }\n \n ngOnChanges(changes: SimpleChanges): void {\n if (changes['position']) {\n this.updatePosition(changes['position'].currentValue)\n }\n }\n\n private updatePosition(position: string) {\n clearTimeout(this.updatePositionTimeout);\n this.updatePositionTimeout = setTimeout(() => {\n this.bodyComponent.position = position;\n }, 0);\n }\n\n ngAfterContentInit(): void {\n this.bodyComponent.contentClosed\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: Event) => {\n this.closePopover(event);\n });\n this.closeComponents.forEach((closeComponent) => {\n closeComponent.clicked\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: Event) => {\n this.closePopover(event);\n });\n });\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.updatePositionTimeout);\n clearTimeout(this.autoFocusTimeout);\n }\n\n closeCategory() {\n }\n\n togglePopover(e: Event) {\n e.preventDefault();\n if (this.show) {\n this.closePopover(e);\n } else {\n this.showPopover(e);\n }\n }\n\n checkAutoFocus() {\n if(this.autoFocus) {\n this.autoFocusTimeout = setTimeout(() => {\n const focusAnchor = this.elementRef.nativeElement.querySelector('.ids-focus-anchor');\n const bodyComponent = this.elementRef.nativeElement.querySelector('.ids-popover-content__content-wrapper-inner');\n if(focusAnchor) {\n focusAnchor.focus();\n } else if (bodyComponent) {\n bodyComponent.focus();\n }\n }, 0);\n }\n }\n \n showPopover(event: Event):void {\n this.opener = true;\n this.categoryCollection.requestClose(this.category);\n this.closeCategory();\n this.show = true;\n this.showChange.emit(this.show);\n this.checkAutoFocus();\n this.opened.emit(event)\n }\n\n @HostListener('window:keydown', ['$event'])\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.show) {\n this.closePopover(event);\n }\n }\n\n closePopover(event: Event):void {\n this.show = false;\n this.showChange.emit(this.show);\n this.closed.emit(event)\n }\n}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'id-popover-header',\n standalone: true,\n template: `<ng-content></ng-content>`,\n host: {\n class: 'ids-popover-content__headline'\n }\n})\nexport class IDPopoverHeaderComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'id-popover-trigger',\n standalone: true,\n template: `<ng-content></ng-content>`,\n})\nexport class IDPopoverTriggerComponent {}","import { NgModule } from '@angular/core';\n\nimport { IDPopoverComponent } from './popover.component';\nimport { IDPopoverHeaderComponent } from './popover-header.component';\nimport { IDPopoverContentComponent } from './popover-content.component';\nimport { IDPopoverTriggerComponent } from './popover-trigger.component';\nimport { IDPopoverCloseComponent } from './popover-close.component';\n\n\n@NgModule({\n imports: [\n IDPopoverComponent,\n IDPopoverHeaderComponent,\n IDPopoverContentComponent,\n IDPopoverTriggerComponent,\n IDPopoverCloseComponent\n ],\n exports: [\n IDPopoverComponent,\n IDPopoverHeaderComponent,\n IDPopoverContentComponent,\n IDPopoverTriggerComponent,\n IDPopoverCloseComponent\n ],\n})\nexport class IDPopoverModule {}","/**\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-popover.mjs","sources":["../../../projects/ids-angular/components/popover/popover-close.component.ts","../../../projects/ids-angular/components/popover/popover-content.component.ts","../../../projects/ids-angular/components/popover/popover.component.ts","../../../projects/ids-angular/components/popover/popover-header.component.ts","../../../projects/ids-angular/components/popover/popover-trigger.component.ts","../../../projects/ids-angular/components/popover/popover.module.ts","../../../projects/ids-angular/components/popover/inera-ids-angular-components-popover.ts"],"sourcesContent":["import { Component, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Component({\n selector: 'id-popover-close',\n standalone: true,\n template: `<ng-content></ng-content>`,\n})\nexport class IDPopoverCloseComponent {\n @Output() clicked = new EventEmitter<Event>();\n\n @HostListener('click')\n onClick = (e:Event) => {\n this.clicked.emit(e);\n }\n}","import { CommonModule } from '@angular/common';\nimport { booleanAttribute, Component, ElementRef, EventEmitter, HostListener, inject, Input, Output } from '@angular/core';\nimport { IDClickOutsideDirective } from '@inera/ids-angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'id-popover-content',\n standalone: true,\n imports: [A11yModule, CommonModule, IDClickOutsideDirective],\n template: `\n <div [cdkTrapFocus]=\"true\" idClickOutside (idClickOutside)=\"onClickedOutside($event)\"\n (keydown.shift.tab)=\"onShiftTab($event)\"\n class=\"ids-popover-content__content-wrapper\"\n tabindex=\"0\"\n [style.maxWidth]=\"maxWidth\"\n [style.maxHeight]=\"maxHeight\">\n <div class=\"ids-popover-content__caret\" [ngClass]=\"caretPositionClass\">\n <span class=\"ids-popover-content__caret-body\" [ngClass]=\"caretPositionClass\"></span>\n <span class=\"ids-popover-content__caret-border\" [ngClass]=\"caretPositionClass\"></span>\n <span class=\"ids-popover-content__caret-shadow\" [ngClass]=\"caretPositionClass\"></span>\n </div>\n <div class=\"ids-popover-content__top-bar\">\n <div class=\"ids-popover-content__close-btn-wrapper\">\n <button (click)=\"contentClosed.emit($event)\" class=\"ids-popover-content__close-btn\" [attr.aria-label]=\"srCloseText\"></button>\n </div>\n </div>\n <div class=\"ids-popover-content__content-wrapper-inner\">\n <ng-content select=\"id-popover-header\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>`,\n host: {\n '[class]': 'hostClasses',\n 'style': 'display: none',\n }\n})\nexport class IDPopoverContentComponent {\n\n public elementRef = inject(ElementRef);\n\n @Output()\n contentClosed: EventEmitter<Event> = new EventEmitter<Event>();\n\n position = 'bottom';\n\n @Input({transform: booleanAttribute}) closeOnBlur = false;\n @Input() maxHeight = '260px';\n @Input() maxWidth = '260px';\n @Input() srCloseText = 'Stäng';\n\n get contentMaxHeight() {\n return `calc(${this.maxHeight} - 40px)`\n }\n\n onClickedOutside(event: Event) {\n if(this.closeOnBlur) {\n this.contentClosed.emit(event)\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.contentClosed.emit(event);\n }\n }\n\n onShiftTab(event: Event) {\n const wrapper = this.elementRef.nativeElement.querySelector('.ids-popover-content__content-wrapper');\n if (document.activeElement !== wrapper && !wrapper?.contains(document.activeElement)) return;\n if (document.activeElement === wrapper) {\n event.preventDefault();\n const focusable = wrapper.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])') as NodeListOf<HTMLElement>;\n const last = Array.from(focusable).filter(el => el !== wrapper).pop();\n if (last) {\n last.focus();\n }\n }\n }\n\n\n get caretPositionClass() {\n return `ids-popover-content__caret--${this.position}`;\n }\n\n get hostClasses(): string {\n return `ids-popover-content ids-popover-content--${this.position}`;\n }\n}\n","import { AfterContentInit, ApplicationRef, booleanAttribute, Component, ContentChild, ContentChildren, DestroyRef, effect, ElementRef, EventEmitter, inject, Input, OnChanges, OnDestroy, Output, QueryList, SimpleChanges, ViewChild } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { IDPopoverCloseComponent } from './popover-close.component';\nimport { IDPopoverContentComponent } from './popover-content.component';\nimport { IDTooltipCategoryService } from '@inera/ids-angular/common';\n\n@Component({\n selector: 'id-popover',\n standalone: true,\n template: `\n <span #triggerEl class=\"ids-popover-trigger\" (click)=\"togglePopover($event)\">\n <ng-content></ng-content>\n </span>\n <ng-content select=\"id-popover-content\"></ng-content>\n `,\n host: {\n class: 'ids-popover'\n }\n})\nexport class IDPopoverComponent implements AfterContentInit, OnChanges, OnDestroy {\n @Input() position:\n | 'top'\n | 'top-left'\n | 'top-right'\n | 'right'\n | 'right-top'\n | 'right-bottom'\n | 'bottom'\n | 'bottom-left'\n | 'bottom-right'\n | 'left'\n | 'left-top'\n | 'left-bottom' = 'bottom';\n\n @Input() category = '';\n @Input({transform: booleanAttribute}) show: boolean = false;\n @Output() showChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n \n @Output() closed: EventEmitter<Event> = new EventEmitter();\n @Output() opened: EventEmitter<Event> = new EventEmitter();\n\n @ContentChild(IDPopoverContentComponent, { descendants:true })\n bodyComponent: IDPopoverContentComponent;\n\n @ContentChildren(IDPopoverCloseComponent, { descendants: true })\n closeComponents: QueryList<IDPopoverCloseComponent>;\n\n @ViewChild('triggerEl') triggerEl: ElementRef<HTMLElement>;\n\n private document = inject(DOCUMENT);\n private appRef = inject(ApplicationRef);\n private opener = false;\n private categoryCollection = inject(IDTooltipCategoryService);\n private destroyRef = inject(DestroyRef);\n private updatePositionTimeout?: ReturnType<typeof setTimeout>;\n private isAttached = false;\n private openedViaTrigger = false;\n private portalOutlet: DomPortalOutlet | null = null;\n\n private readonly GAP = 4;\n private readonly CARET_SIZE = 8;\n\n private resizeHandler = () => this.applyPortalPosition();\n\n private get win(): Window {\n return this.document.defaultView || window;\n }\n\n constructor() {\n effect(() => {\n const categoryToClose = this.categoryCollection.closeCategory();\n if (!categoryToClose || categoryToClose !== this.category) return;\n if (this.opener) {\n this.opener = false;\n return;\n }\n this.detachPortal();\n this.show = false;\n });\n }\n \n ngOnChanges(changes: SimpleChanges): void {\n if (changes['position']) {\n this.updatePosition(changes['position'].currentValue);\n }\n if (changes['show'] && !changes['show'].firstChange) {\n if (changes['show'].currentValue) {\n this.attachPortal();\n } else {\n this.detachPortal();\n }\n }\n }\n\n private updatePosition(position: string) {\n clearTimeout(this.updatePositionTimeout);\n this.updatePositionTimeout = setTimeout(() => {\n this.bodyComponent.position = position;\n if (this.isAttached) {\n requestAnimationFrame(() => this.applyPortalPosition());\n }\n }, 0);\n }\n\n ngAfterContentInit(): void {\n this.bodyComponent.contentClosed\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: Event) => {\n this.closePopover(event);\n });\n this.closeComponents.forEach((closeComponent) => {\n closeComponent.clicked\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: Event) => {\n this.closePopover(event);\n });\n });\n\n if (this.show) {\n this.attachPortal();\n }\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.updatePositionTimeout);\n this.detachPortal();\n }\n\n togglePopover(e: Event) {\n e.preventDefault();\n if (this.show) {\n this.closePopover(e);\n } else {\n this.showPopover(e);\n }\n }\n\n private focusContent(): void {\n if (!this.bodyComponent) return;\n const contentEl = this.bodyComponent.elementRef.nativeElement;\n const wrapper = contentEl.querySelector('.ids-popover-content__content-wrapper') as HTMLElement | null;\n if (wrapper) {\n wrapper.focus({ preventScroll: true });\n }\n }\n \n showPopover(event: Event):void {\n this.opener = true;\n this.openedViaTrigger = true;\n this.categoryCollection.requestClose(this.category);\n this.show = true;\n this.showChange.emit(this.show);\n this.attachPortal();\n this.opened.emit(event);\n }\n\n closePopover(event: Event):void {\n this.detachPortal();\n this.show = false;\n this.showChange.emit(this.show);\n this.closed.emit(event);\n this.focusTriggerContent();\n }\n\n private focusTriggerContent(): void {\n const trigger = this.triggerEl?.nativeElement;\n if (!trigger) return;\n const focusable = trigger.querySelector<HTMLElement>('button, a[href], [tabindex]:not([tabindex=\"-1\"]), input, select, textarea');\n if (focusable) {\n focusable.focus();\n }\n }\n\n private attachPortal(): void {\n if (this.isAttached || !this.bodyComponent) return;\n this.isAttached = true;\n\n const contentEl = this.bodyComponent.elementRef.nativeElement;\n contentEl.style.display = '';\n contentEl.style.opacity = '0';\n\n const outletEl = this.document.createElement('div');\n this.document.body.appendChild(outletEl);\n this.portalOutlet = new DomPortalOutlet(outletEl, undefined, this.appRef, undefined, this.document);\n this.portalOutlet.attach(new DomPortal(this.bodyComponent.elementRef));\n\n clearTimeout(this.updatePositionTimeout);\n this.updatePositionTimeout = setTimeout(() => {\n requestAnimationFrame(() => {\n this.applyPortalPosition();\n contentEl.style.opacity = '';\n if (this.openedViaTrigger) {\n this.focusContent();\n this.openedViaTrigger = false;\n }\n });\n }, 100);\n\n this.win.addEventListener('resize', this.resizeHandler);\n }\n\n private detachPortal(): void {\n if (!this.isAttached) return;\n this.isAttached = false;\n\n this.win.removeEventListener('resize', this.resizeHandler);\n\n if (this.portalOutlet) {\n this.portalOutlet.dispose();\n this.portalOutlet = null;\n }\n\n if (this.bodyComponent) {\n this.bodyComponent.elementRef.nativeElement.style.cssText = 'display:none';\n }\n }\n\n private calculatePosition(triggerRect: DOMRect, contentRect: DOMRect): { top: number; left: number } {\n const offset = this.GAP + this.CARET_SIZE;\n const pos = this.position;\n const centerY = triggerRect.top + triggerRect.height / 2 - contentRect.height / 2;\n const centerX = triggerRect.left + triggerRect.width / 2 - contentRect.width / 2;\n\n let top: number;\n if (pos.startsWith('top')) top = triggerRect.top - contentRect.height - offset;\n else if (pos.startsWith('bottom')) top = triggerRect.bottom + offset;\n else if (pos.endsWith('-top')) top = triggerRect.bottom - contentRect.height;\n else if (pos.endsWith('-bottom')) top = triggerRect.top;\n else top = centerY;\n\n let left: number;\n if (pos.startsWith('left')) left = triggerRect.left - contentRect.width - offset;\n else if (pos.startsWith('right')) left = triggerRect.right + offset;\n else if (pos.endsWith('-left')) left = triggerRect.left;\n else if (pos.endsWith('-right')) left = triggerRect.right - contentRect.width;\n else left = centerX;\n\n return { top, left };\n }\n\n private applyPortalPosition(): void {\n if (!this.bodyComponent || !this.triggerEl) return;\n\n const triggerRect = this.triggerEl.nativeElement.getBoundingClientRect();\n const contentEl = this.bodyComponent.elementRef.nativeElement;\n const { top, left } = this.calculatePosition(triggerRect, contentEl.getBoundingClientRect());\n const window = this.win;\n\n Object.assign(contentEl.style, {\n position: 'absolute',\n top: `${top + window.scrollY}px`,\n left: `${left + window.scrollX}px`,\n bottom: 'auto', right: 'auto', transform: 'none', zIndex: '9999',\n });\n }\n}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'id-popover-header',\n standalone: true,\n template: `<ng-content></ng-content>`,\n host: {\n class: 'ids-popover-content__headline'\n }\n})\nexport class IDPopoverHeaderComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'id-popover-trigger',\n standalone: true,\n template: `<ng-content></ng-content>`,\n})\nexport class IDPopoverTriggerComponent {}","import { NgModule } from '@angular/core';\n\nimport { IDPopoverComponent } from './popover.component';\nimport { IDPopoverHeaderComponent } from './popover-header.component';\nimport { IDPopoverContentComponent } from './popover-content.component';\nimport { IDPopoverTriggerComponent } from './popover-trigger.component';\nimport { IDPopoverCloseComponent } from './popover-close.component';\n\n\n@NgModule({\n imports: [\n IDPopoverComponent,\n IDPopoverHeaderComponent,\n IDPopoverContentComponent,\n IDPopoverTriggerComponent,\n IDPopoverCloseComponent\n ],\n exports: [\n IDPopoverComponent,\n IDPopoverHeaderComponent,\n IDPopoverContentComponent,\n IDPopoverTriggerComponent,\n IDPopoverCloseComponent\n ],\n})\nexport class IDPopoverModule {}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}