@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.
- package/common/directives/click-outside.directive.d.ts +3 -3
- package/common/public-api.d.ts +1 -1
- package/components/accordion/accordion-header.component.d.ts +1 -1
- package/components/accordion/accordion.component.d.ts +5 -4
- package/components/alert/alert-header.component.d.ts +1 -1
- package/components/alert/alert.component.d.ts +2 -2
- package/components/box-link/box-link-button.component.d.ts +2 -2
- package/components/box-link/box-link.component.d.ts +2 -2
- package/components/breadcrumbs/breadcrumbs.component.d.ts +3 -4
- package/components/breadcrumbs/crumb.component.d.ts +1 -1
- package/components/carousel/carousel-item/carousel-item.component.d.ts +1 -1
- package/components/carousel/carousel.component.d.ts +4 -4
- package/components/control-button/control-button.directive.d.ts +5 -0
- package/components/control-button/index.d.ts +5 -0
- package/components/control-button/public-api.d.ts +1 -0
- package/components/dialog/dialog.component.d.ts +4 -4
- package/components/dialog/dialog.module.d.ts +12 -0
- package/components/dialog/public-api.d.ts +1 -0
- package/components/district-selector/district-selector.component.d.ts +14 -0
- package/components/district-selector/index.d.ts +5 -0
- package/components/district-selector/public-api.d.ts +1 -0
- package/components/dropdown/dropdown.component.d.ts +1 -1
- package/components/footer-1177/footer-1177-col.component.d.ts +4 -4
- package/components/footer-1177/footer-1177.component.d.ts +6 -4
- package/components/footer-1177-admin/footer-1177-admin-col.component.d.ts +4 -4
- package/components/footer-1177-admin/footer-1177-admin.component.d.ts +5 -4
- package/components/footer-1177-pro/footer-1177-pro-col.component.d.ts +4 -4
- package/components/footer-1177-pro/footer-1177-pro.component.d.ts +6 -4
- package/components/footer-inera/footer-inera-col.component.d.ts +4 -4
- package/components/footer-inera/footer-inera.component.d.ts +5 -4
- package/components/footer-inera-admin/footer-inera-admin-col.component.d.ts +4 -4
- package/components/footer-inera-admin/footer-inera-admin.component.d.ts +5 -4
- package/components/footer-inera-general/footer-inera-general-col.component.d.ts +4 -4
- package/components/footer-inera-general/footer-inera-general.component.d.ts +6 -4
- package/components/form/checkbox-group/checkbox-group.component.d.ts +4 -4
- package/components/form/input/input-clear-button.component.d.ts +5 -0
- package/components/form/input/input.component.d.ts +7 -3
- package/components/form/input/public-api.d.ts +1 -0
- package/components/form/label-subtitle/index.d.ts +5 -0
- package/components/form/label-subtitle/label-subtitle.component.d.ts +5 -0
- package/components/form/label-subtitle/public-api.d.ts +1 -0
- package/components/form/radio/radio-group.component.d.ts +4 -4
- package/components/form/radio/radio.component.d.ts +1 -1
- package/components/form/radio-button/radio-button-group.component.d.ts +1 -2
- package/components/form/range/range.component.d.ts +1 -1
- package/components/form/select/select.component.d.ts +1 -1
- package/components/form/select-multiple/select-multiple.component.d.ts +3 -3
- package/components/form/spinner/spinner.component.d.ts +2 -1
- package/components/form/textarea/textarea.component.d.ts +1 -1
- package/components/form/time/time.component.d.ts +1 -1
- package/components/global-alert/global-alert-actions.component.d.ts +1 -1
- package/components/global-alert/global-alert-header.component.d.ts +1 -1
- package/components/global-alert/global-alert.component.d.ts +2 -2
- package/components/header-1177/avatar/header-1177-avatar.component.d.ts +1 -1
- package/components/header-1177/header-1177.component.d.ts +6 -7
- package/components/header-1177/nav/header-1177-nav.component.d.ts +1 -1
- package/components/header-1177/nav-item/header-1177-nav-item.component.d.ts +5 -5
- package/components/header-1177/region-picker/header-1177-region-picker.component.d.ts +4 -4
- package/components/header-1177/region-picker-mobile/header-1177-region-picker-mobile.component.d.ts +3 -3
- package/components/header-1177-admin/avatar/header-1177-admin-avatar.component.d.ts +1 -1
- package/components/header-1177-admin/avatar-mobile/header-1177-admin-avatar-mobile.component.d.ts +1 -1
- package/components/header-1177-admin/header-1177-admin.component.d.ts +3 -3
- package/components/header-1177-admin/nav/header-1177-admin-nav.component.d.ts +6 -4
- package/components/header-1177-admin/nav-item/header-1177-admin-nav-item.component.d.ts +5 -5
- package/components/header-1177-pro/avatar/header-1177-pro-avatar.component.d.ts +1 -1
- package/components/header-1177-pro/avatar-mobile/header-1177-pro-avatar-mobile.component.d.ts +1 -1
- package/components/header-1177-pro/header-1177-pro.component.d.ts +3 -3
- package/components/header-1177-pro/nav/header-1177-pro-nav.component.d.ts +6 -4
- package/components/header-1177-pro/nav-item/header-1177-pro-nav-item.component.d.ts +5 -5
- package/components/header-1177-pro/region-picker/header-1177-pro-region-picker.component.d.ts +4 -4
- package/components/header-1177-pro/region-picker-mobile/header-1177-pro-region-picker-mobile.component.d.ts +1 -1
- package/components/header-inera/header-inera.component.d.ts +5 -6
- package/components/header-inera/nav/header-inera-nav.component.d.ts +3 -5
- package/components/header-inera/nav-item/header-inera-nav-item.component.d.ts +5 -5
- package/components/header-inera-admin/avatar/header-inera-admin-avatar.component.d.ts +1 -1
- package/components/header-inera-admin/avatar-mobile/header-inera-admin-avatar-mobile.component.d.ts +1 -1
- package/components/header-inera-admin/header-inera-admin.component.d.ts +12 -13
- package/components/header-inera-admin/header-inera-admin.module.d.ts +1 -1
- package/components/header-inera-admin/nav/header-inera-admin-nav.component.d.ts +6 -4
- package/components/header-inera-admin/nav-item/header-inera-admin-nav-item.component.d.ts +4 -4
- package/components/header-inera-admin/public-api.d.ts +12 -12
- package/components/header-inera-general/avatar/header-inera-general-avatar.component.d.ts +26 -0
- package/components/header-inera-general/avatar-mobile/header-inera-general-avatar-mobile.component.d.ts +26 -0
- package/components/header-inera-general/header-inera-general.component.d.ts +10 -6
- package/components/header-inera-general/header-inera-general.module.d.ts +11 -8
- package/components/header-inera-general/item/header-inera-general-item.component.d.ts +3 -1
- package/components/header-inera-general/nav/header-inera-general-nav.component.d.ts +1 -1
- package/components/header-inera-general/nav-item/header-inera-general-nav-item.component.d.ts +5 -5
- package/components/header-inera-general/nav-item-mobile/header-inera-general-nav-item-mobile.component.d.ts +8 -0
- package/components/header-inera-general/nav-mobile/header-inera-general-nav-mobile.component.d.ts +7 -0
- package/components/header-inera-general/public-api.d.ts +5 -1
- package/components/message-avatar/index.d.ts +5 -0
- package/components/message-avatar/message-avatar.component.d.ts +10 -0
- package/components/message-avatar/public-api.d.ts +1 -0
- package/components/mobile/menu/item/mobile-menu-item.component.d.ts +3 -3
- package/components/mobile/menu/mobile-menu.component.d.ts +1 -2
- package/components/navigation/content/navigation-content-item.component.d.ts +24 -0
- package/components/navigation/content/navigation-content-link.component.d.ts +1 -1
- package/components/navigation/content/navigation-content.component.d.ts +6 -3
- package/components/navigation/content/public-api.d.ts +1 -0
- package/components/navigation/local/navigation-local-link.component.d.ts +1 -1
- package/components/navigation/local/navigation-local.component.d.ts +1 -2
- package/components/popover/popover.component.d.ts +4 -4
- package/components/puff-list/puff-list-item.component.d.ts +1 -1
- package/components/puff-list/puff-list.component.d.ts +1 -2
- package/components/side-menu/side-menu.component.d.ts +4 -2
- package/components/side-panel/side-panel.component.d.ts +7 -6
- package/components/stepper/step.component.d.ts +2 -0
- package/components/stepper/stepper.component.d.ts +2 -2
- package/components/tabs/tab-group.component.d.ts +3 -2
- package/components/tabs/tab.component.d.ts +2 -2
- package/components/tag/tag.component.d.ts +1 -1
- package/components/tooltip/tooltip.component.d.ts +2 -2
- package/fesm2022/inera-ids-angular-common.mjs +31 -32
- package/fesm2022/inera-ids-angular-common.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-accordion.mjs +23 -32
- package/fesm2022/inera-ids-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-action-link.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-alert.mjs +12 -18
- package/fesm2022/inera-ids-angular-components-alert.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-badge.mjs +4 -4
- package/fesm2022/inera-ids-angular-components-badge.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-box-link.mjs +19 -23
- package/fesm2022/inera-ids-angular-components-box-link.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-breadcrumbs.mjs +19 -30
- package/fesm2022/inera-ids-angular-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-button-group.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-button.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-card.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-carousel.mjs +20 -27
- package/fesm2022/inera-ids-angular-components-carousel.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-control-button.mjs +24 -0
- package/fesm2022/inera-ids-angular-components-control-button.mjs.map +1 -0
- package/fesm2022/inera-ids-angular-components-date-label.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-dialog.mjs +65 -35
- package/fesm2022/inera-ids-angular-components-dialog.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-district-selector.mjs +45 -0
- package/fesm2022/inera-ids-angular-components-district-selector.mjs.map +1 -0
- package/fesm2022/inera-ids-angular-components-dropdown.mjs +16 -19
- package/fesm2022/inera-ids-angular-components-dropdown.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-footer-1177-admin.mjs +48 -55
- package/fesm2022/inera-ids-angular-components-footer-1177-admin.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-footer-1177-pro.mjs +49 -55
- package/fesm2022/inera-ids-angular-components-footer-1177-pro.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-footer-1177.mjs +49 -55
- package/fesm2022/inera-ids-angular-components-footer-1177.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-footer-inera-admin.mjs +51 -58
- package/fesm2022/inera-ids-angular-components-footer-inera-admin.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-footer-inera-general.mjs +53 -58
- package/fesm2022/inera-ids-angular-components-footer-inera-general.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-footer-inera.mjs +51 -58
- package/fesm2022/inera-ids-angular-components-footer-inera.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-form-check-button.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-form-checkbox-group.mjs +11 -17
- package/fesm2022/inera-ids-angular-components-form-checkbox-group.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-form-checkbox.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-form-darkmode-toggle.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-form-error-message.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-form-input.mjs +66 -42
- package/fesm2022/inera-ids-angular-components-form-input.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-form-label-subtitle.mjs +25 -0
- package/fesm2022/inera-ids-angular-components-form-label-subtitle.mjs.map +1 -0
- package/fesm2022/inera-ids-angular-components-form-radio-button.mjs +11 -14
- package/fesm2022/inera-ids-angular-components-form-radio-button.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-form-radio.mjs +15 -21
- package/fesm2022/inera-ids-angular-components-form-radio.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-form-range.mjs +4 -4
- package/fesm2022/inera-ids-angular-components-form-range.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-form-select-multiple.mjs +10 -13
- package/fesm2022/inera-ids-angular-components-form-select-multiple.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-form-select.mjs +4 -4
- package/fesm2022/inera-ids-angular-components-form-select.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-form-spinner.mjs +7 -4
- package/fesm2022/inera-ids-angular-components-form-spinner.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-form-textarea.mjs +7 -7
- package/fesm2022/inera-ids-angular-components-form-textarea.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-form-time.mjs +4 -4
- package/fesm2022/inera-ids-angular-components-form-time.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-form-toggle.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-global-alert.mjs +17 -29
- package/fesm2022/inera-ids-angular-components-global-alert.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-grid-column.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-grid-container.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-grid-layout-grid-column.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-grid-layout-grid-container.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-grid-layout-grid-row.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-grid-layout.mjs +9 -9
- package/fesm2022/inera-ids-angular-components-grid-row.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-grid.mjs +9 -9
- package/fesm2022/inera-ids-angular-components-header-1177-admin.mjs +86 -108
- package/fesm2022/inera-ids-angular-components-header-1177-admin.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-header-1177-pro.mjs +123 -138
- package/fesm2022/inera-ids-angular-components-header-1177-pro.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-header-1177.mjs +142 -180
- package/fesm2022/inera-ids-angular-components-header-1177.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-header-inera-admin.mjs +101 -133
- package/fesm2022/inera-ids-angular-components-header-inera-admin.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-header-inera-general.mjs +391 -80
- package/fesm2022/inera-ids-angular-components-header-inera-general.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-header-inera.mjs +57 -86
- package/fesm2022/inera-ids-angular-components-header-inera.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-header-patient.mjs +6 -6
- package/fesm2022/inera-ids-angular-components-link.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-message-avatar.mjs +35 -0
- package/fesm2022/inera-ids-angular-components-message-avatar.mjs.map +1 -0
- package/fesm2022/inera-ids-angular-components-mobile-menu-item.mjs +8 -14
- package/fesm2022/inera-ids-angular-components-mobile-menu-item.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-mobile-menu.mjs +17 -26
- package/fesm2022/inera-ids-angular-components-mobile-menu.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-navigation-content.mjs +79 -18
- package/fesm2022/inera-ids-angular-components-navigation-content.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-navigation-local.mjs +11 -17
- package/fesm2022/inera-ids-angular-components-navigation-local.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-notification-badge.mjs +5 -5
- package/fesm2022/inera-ids-angular-components-notification-badge.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-pagination-data-pagination.mjs +6 -6
- package/fesm2022/inera-ids-angular-components-pagination-list-pagination.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-popover.mjs +124 -79
- package/fesm2022/inera-ids-angular-components-popover.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-progressbar.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-puff-list.mjs +39 -45
- package/fesm2022/inera-ids-angular-components-puff-list.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-region-icon.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-side-menu.mjs +38 -28
- package/fesm2022/inera-ids-angular-components-side-menu.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-side-panel.mjs +103 -91
- package/fesm2022/inera-ids-angular-components-side-panel.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-stepper.mjs +24 -20
- package/fesm2022/inera-ids-angular-components-stepper.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-tabs.mjs +18 -26
- package/fesm2022/inera-ids-angular-components-tabs.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-tag.mjs +10 -10
- package/fesm2022/inera-ids-angular-components-tag.mjs.map +1 -1
- package/fesm2022/inera-ids-angular-components-toolbar.mjs +3 -3
- package/fesm2022/inera-ids-angular-components-tooltip.mjs +27 -33
- package/fesm2022/inera-ids-angular-components-tooltip.mjs.map +1 -1
- package/package.json +58 -42
- /package/common/services/{use-id.service.ts.d.ts → use-id.service.d.ts} +0 -0
- /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,
|
|
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
|
-
|
|
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.
|
|
45
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
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-
|
|
79
|
-
[class.ids-side-
|
|
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
|
|
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.
|
|
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-
|
|
151
|
-
[class.ids-side-
|
|
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
|
|
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.
|
|
219
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
239
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
257
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
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,
|
|
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.
|
|
12
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
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.
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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(
|
|
117
|
-
host.setAttribute(
|
|
118
|
-
host.setAttribute(
|
|
117
|
+
host.setAttribute('role', 'dialog');
|
|
118
|
+
host.setAttribute('aria-modal', 'true');
|
|
119
|
+
host.setAttribute('aria-label', this.srMobileDialogLabel);
|
|
119
120
|
}
|
|
120
121
|
else {
|
|
121
|
-
[
|
|
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
|
|
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.
|
|
155
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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
|
-
|
|
184
|
-
|
|
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
|
-
|
|
195
|
+
`, isInline: true });
|
|
188
196
|
}
|
|
189
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
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:
|
|
200
|
+
selector: 'id-side-panel',
|
|
193
201
|
template: `
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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
|
-
|
|
222
|
-
|
|
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
|
-
|
|
240
|
+
`,
|
|
226
241
|
standalone: true,
|
|
227
242
|
host: {
|
|
228
|
-
|
|
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.
|
|
270
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
317
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
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.
|
|
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.
|
|
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":";;;;;;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;;;MCiBU,oBAAoB,CAAA;IACS,IAAI,GAAG,KAAK;AAC1C,IAAA,UAAU,GAAG,IAAI,YAAY,EAAW;IACV,QAAQ,GAAG,KAAK;IAChB,IAAI,GAAG,KAAK;IAC3C,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;AAG3C,IAAA,MAAM;AAEkB,IAAA,eAAe;AAEhC,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,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;IACtD;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,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC5E;IACF;IAEA,eAAe,GAAA;AACb,QAAA,IAAG,IAAI,CAAC,IAAI,EAAE;YACZ,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;AACrC,YAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE;QAC5C;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;IACnC;wGA1FW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,kFACX,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAEhB,gBAAgB,CAAA,EAAA,IAAA,EAAA,CAAA,MAAA,EAAA,MAAA,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,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhD1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;4FAYI,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA9ChC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCH,QAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,uCAAuC;AAChD,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;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;gBAGD,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,sBAAsB;gBAGZ,eAAe,EAAA,CAAA;sBAAtC,SAAS;uBAAC,WAAW;;;MC9CX,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;;;;"}
|
|
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":"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"}
|