@kirbydesign/designsystem 8.9.0 → 8.11.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/accordion/accordion-item.component.d.ts +4 -3
- package/esm2020/accordion/accordion-item.component.mjs +10 -4
- package/esm2020/action-group/action-group.component.mjs +2 -2
- package/esm2020/calendar/calendar.component.mjs +6 -8
- package/esm2020/divider/divider.component.mjs +3 -3
- package/esm2020/dropdown/dropdown.component.mjs +1 -1
- package/esm2020/icon/kirby-icon-settings.mjs +4 -1
- package/esm2020/item/item.component.mjs +6 -3
- package/esm2020/item-sliding/item-sliding.component.mjs +13 -6
- package/esm2020/page/page.component.mjs +3 -3
- package/esm2020/reorder-list/reorder-list.component.mjs +3 -3
- package/esm2020/tab-navigation/tab-navigation/tab-navigation.component.mjs +2 -2
- package/esm2020/tabs/tab-button/tab-button.component.mjs +2 -2
- package/esm2020/testing/test-helper.mjs +9 -1
- package/fesm2015/kirbydesign-designsystem-accordion.mjs +9 -3
- package/fesm2015/kirbydesign-designsystem-accordion.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-action-group.mjs +1 -1
- package/fesm2015/kirbydesign-designsystem-action-group.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-calendar.mjs +5 -7
- package/fesm2015/kirbydesign-designsystem-calendar.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-divider.mjs +2 -2
- package/fesm2015/kirbydesign-designsystem-divider.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-dropdown.mjs +1 -1
- package/fesm2015/kirbydesign-designsystem-dropdown.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-icon.mjs +3 -0
- package/fesm2015/kirbydesign-designsystem-icon.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-item-sliding.mjs +12 -5
- package/fesm2015/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-item.mjs +5 -2
- package/fesm2015/kirbydesign-designsystem-item.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-page.mjs +2 -2
- package/fesm2015/kirbydesign-designsystem-page.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-reorder-list.mjs +2 -2
- package/fesm2015/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-tab-navigation.mjs +1 -1
- package/fesm2015/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-tabs.mjs +2 -2
- package/fesm2015/kirbydesign-designsystem-tabs.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-testing.mjs +8 -0
- package/fesm2015/kirbydesign-designsystem-testing.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-accordion.mjs +9 -3
- package/fesm2020/kirbydesign-designsystem-accordion.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-action-group.mjs +1 -1
- package/fesm2020/kirbydesign-designsystem-action-group.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-calendar.mjs +5 -7
- package/fesm2020/kirbydesign-designsystem-calendar.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-divider.mjs +2 -2
- package/fesm2020/kirbydesign-designsystem-divider.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-dropdown.mjs +1 -1
- package/fesm2020/kirbydesign-designsystem-dropdown.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-icon.mjs +3 -0
- package/fesm2020/kirbydesign-designsystem-icon.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-item-sliding.mjs +12 -5
- package/fesm2020/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-item.mjs +5 -2
- package/fesm2020/kirbydesign-designsystem-item.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-page.mjs +2 -2
- package/fesm2020/kirbydesign-designsystem-page.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-reorder-list.mjs +2 -2
- package/fesm2020/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-tab-navigation.mjs +1 -1
- package/fesm2020/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-tabs.mjs +2 -2
- package/fesm2020/kirbydesign-designsystem-tabs.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-testing.mjs +8 -0
- package/fesm2020/kirbydesign-designsystem-testing.mjs.map +1 -1
- package/icons/svg/adjust.svg +2 -0
- package/icons/svg/grid.svg +2 -0
- package/icons/svg/list.svg +2 -0
- package/item/item.component.d.ts +2 -1
- package/item-sliding/item-sliding.component.d.ts +3 -0
- package/package.json +1 -1
- package/testing/test-helper.d.ts +1 -0
|
@@ -21,7 +21,7 @@ export class TabNavigationComponent {
|
|
|
21
21
|
return this._selectedIndex;
|
|
22
22
|
}
|
|
23
23
|
set selectedIndex(index) {
|
|
24
|
-
if (index !== this._selectedIndex) {
|
|
24
|
+
if (index !== this._selectedIndex && index !== -1) {
|
|
25
25
|
this._selectedIndex = index;
|
|
26
26
|
this.focusIndex = index;
|
|
27
27
|
this.selectTab(this.selectedIndex);
|
|
@@ -120,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
120
120
|
type: HostListener,
|
|
121
121
|
args: ['keydown.arrowleft', ['$event']]
|
|
122
122
|
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vdGFiLW5hdmlnYXRpb24vc3JjL3RhYi1uYXZpZ2F0aW9uL3RhYi1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3RhYi1uYXZpZ2F0aW9uL3NyYy90YWItbmF2aWdhdGlvbi90YWItbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7OztBQVFsRyxNQUFNLE9BQU8sc0JBQXNCO0lBOENqQyxZQUFvQixNQUFpQixFQUFVLHNCQUE4QztRQUF6RSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQTdDN0UscUJBQWdCLEdBQUcsR0FBRyxDQUFDO1FBUy9CLGdCQUFXLEdBQUcsSUFBSSxLQUFLLEVBQWUsQ0FBQztRQUN2QyxzQkFBaUIsR0FBRyxJQUFJLEtBQUssRUFBZSxDQUFDO1FBZ0I3QyxtQkFBYyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBY3BCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFHekIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUcvQyxJQUFJ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QyxrQkFBa0IsR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FDbEY7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O3NJQXhIVSxzQkFBc0I7MEhBQXRCLHNCQUFzQix1YkFNaEIsMEJBQTBCLFFBQVUsVUFBVSwrSEM3QmpFLHVFQUdBOzJGRG9CYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0Usc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU07cUlBTXZDLE1BQU07c0JBRGIsU0FBUzt1QkFBQyxRQUFRO2dCQUlYLElBQUk7c0JBRFgsZUFBZTt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBUTdELGFBQWE7c0JBRGhCLEtBQUs7Z0JBK0JOLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkF1QlAsWUFBWTtzQkFGWCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ2hDLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVl6QyxTQUFTO3NCQUpSLFlBQVk7dUJBQUMsY0FBYyxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDdkMsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN0QyxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDN0MsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdpbmRvd1JlZiB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vdHlwZXMnO1xuaW1wb3J0IHsgS2V5Ym9hcmRIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vZHJvcGRvd24nO1xuaW1wb3J0IHsgVGFiTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi90YWItbmF2aWdhdGlvbi1pdGVtL3RhYi1uYXZpZ2F0aW9uLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktdGFiLW5hdmlnYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWItbmF2aWdhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFiTmF2aWdhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwdWJsaWMgcmVhZG9ubHkgREVCT1VOQ0VfVElNRV9NUyA9IDI1MDtcblxuICBAVmlld0NoaWxkKCd0YWJCYXInKVxuICBwcml2YXRlIHRhYkJhcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUYWJOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHByaXZhdGUgdGFiczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICBwcml2YXRlIHRhYkJhckVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIHRhYkVsZW1lbnRzID0gbmV3IEFycmF5PEhUTUxFbGVtZW50PigpO1xuICBwcml2YXRlIHRhYkJ1dHRvbkVsZW1lbnRzID0gbmV3IEFycmF5PEhUTUxFbGVtZW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBzZWxlY3RlZEluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSW5kZXg7XG4gIH1cblxuICBzZXQgc2VsZWN0ZWRJbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGluZGV4ICE9PSB0aGlzLl9zZWxlY3RlZEluZGV4KSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZEluZGV4ID0gaW5kZXg7XG5cbiAgICAgIHRoaXMuZm9jdXNJbmRleCA9IGluZGV4O1xuICAgICAgdGhpcy5zZWxlY3RUYWIodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX3NlbGVjdGVkSW5kZXggPSAtMTtcblxuICBnZXQgZm9jdXNJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c0luZGV4O1xuICB9XG5cbiAgc2V0IGZvY3VzSW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCAhPT0gdGhpcy5fZm9jdXNJbmRleCkge1xuICAgICAgdGhpcy5fZm9jdXNJbmRleCA9IGluZGV4O1xuXG4gICAgICB0aGlzLnNjcm9sbFRvVGFiKHRoaXMuZm9jdXNJbmRleCk7XG4gICAgICB0aGlzLmZvY3VzVGFiKHRoaXMuZm9jdXNJbmRleCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX2ZvY3VzSW5kZXggPSAtMTtcblxuICBAT3V0cHV0KClcbiAgc2VsZWN0ZWRJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd2luZG93OiBXaW5kb3dSZWYsIHByaXZhdGUga2V5Ym9hcmRIYW5kbGVyU2VydmljZTogS2V5Ym9hcmRIYW5kbGVyU2VydmljZSkge1xuICAgIC8qKi9cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYkJhckVsZW1lbnQgPSB0aGlzLnRhYkJhci5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMudGFicy5mb3JFYWNoKCh0YWIpID0+IHRoaXMudGFiRWxlbWVudHMucHVzaCh0YWIubmF0aXZlRWxlbWVudCkpO1xuICAgIHRoaXMudGFiRWxlbWVudHMuZm9yRWFjaCgodGFiRWxlbWVudCkgPT5cbiAgICAgIHRoaXMudGFiQnV0dG9uRWxlbWVudHMucHVzaCh0YWJFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tyb2xlPVwidGFiXCJdJykpXG4gICAgKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RUYWIodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICAgIHRoaXMuc2Nyb2xsVG9UYWIodGhpcy5mb2N1c0luZGV4KTtcbiAgICAgIHRoaXMuZm9jdXNUYWIodGhpcy5mb2N1c0luZGV4KTtcbiAgICB9LCB0aGlzLkRFQk9VTkNFX1RJTUVfTVMpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgb25JdGVtU2VsZWN0KGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSB0aGlzLnRhYkJhckVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IHRhcmdldFRhYk5hdkl0ZW0gPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KCdidXR0b24nKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMudGFiQnV0dG9uRWxlbWVudHMuaW5kZXhPZih0YXJnZXRUYWJOYXZJdGVtKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmhvbWUnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVuZCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dyaWdodCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dsZWZ0JywgWyckZXZlbnQnXSlcbiAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmZvY3VzSW5kZXggPSB0aGlzLmtleWJvYXJkSGFuZGxlclNlcnZpY2UuaGFuZGxlKFxuICAgICAgZXZlbnQsXG4gICAgICB0aGlzLmZvY3VzSW5kZXgsXG4gICAgICB0aGlzLnRhYkVsZW1lbnRzLmxlbmd0aCAtIDEsXG4gICAgICB0cnVlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0VGFiKHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnRhYkJ1dHRvbkVsZW1lbnRzLmZvckVhY2goKHRhYkJ1dHRvbkVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICB0YWJCdXR0b25FbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsIGluZGV4ID09PSB0YWJJbmRleCA/ICd0cnVlJyA6ICdmYWxzZScpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1RhYihmb2N1c0luZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnRhYkJ1dHRvbkVsZW1lbnRzLmZvckVhY2goKHRhYkJ1dHRvbkVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICB0YWJCdXR0b25FbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCBpbmRleCA9PT0gZm9jdXNJbmRleCA/ICcwJyA6ICctMScpO1xuICAgIH0pO1xuXG4gICAgaWYgKDAgPD0gZm9jdXNJbmRleCAmJiBmb2N1c0luZGV4IDwgdGhpcy50YWJCdXR0b25FbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudGFiQnV0dG9uRWxlbWVudHNbZm9jdXNJbmRleF0uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFRvVGFiKHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoMCA8PSB0YWJJbmRleCAmJiB0YWJJbmRleCA8IHRoaXMudGFiRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFRhYkVsZW1lbnQgPSB0aGlzLnRhYkVsZW1lbnRzW3RhYkluZGV4XTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkVGFiRWxlbWVudFdpZHRoID0gc2VsZWN0ZWRUYWJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRUYWJFbGVtZW50T2Zmc2V0TGVmdCA9IHNlbGVjdGVkVGFiRWxlbWVudC5vZmZzZXRMZWZ0O1xuICAgICAgY29uc3QgdGFiQmFyRWxlbWVudFdpZHRoID0gdGhpcy50YWJCYXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuXG4gICAgICB0aGlzLndpbmRvdy5uYXRpdmVXaW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy50YWJCYXJFbGVtZW50Py5zY3JvbGxUbyh7XG4gICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgICAgIGxlZnQ6IE1hdGgubWF4KFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIHNlbGVjdGVkVGFiRWxlbWVudE9mZnNldExlZnQgLSAodGFiQmFyRWxlbWVudFdpZHRoIC0gc2VsZWN0ZWRUYWJFbGVtZW50V2lkdGgpIC8gMlxuICAgICAgICAgICksXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IHJvbGU9XCJ0YWJsaXN0XCIgI3RhYkJhcj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vdGFiLW5hdmlnYXRpb24vc3JjL3RhYi1uYXZpZ2F0aW9uL3RhYi1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3RhYi1uYXZpZ2F0aW9uL3NyYy90YWItbmF2aWdhdGlvbi90YWItbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7OztBQVFsRyxNQUFNLE9BQU8sc0JBQXNCO0lBOENqQyxZQUFvQixNQUFpQixFQUFVLHNCQUE4QztRQUF6RSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQTdDN0UscUJBQWdCLEdBQUcsR0FBRyxDQUFDO1FBUy9CLGdCQUFXLEdBQUcsSUFBSSxLQUFLLEVBQWUsQ0FBQztRQUN2QyxzQkFBaUIsR0FBRyxJQUFJLEtBQUssRUFBZSxDQUFDO1FBZ0I3QyxtQkFBYyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBY3BCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFHekIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUcvQyxJQUFJ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Q0FBQyxFQUNELDRCQUE0QixHQUFHLENBQUMsa0JBQWtCLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQ2xGO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztzSUF4SFUsc0JBQXNCOzBIQUF0QixzQkFBc0IsdWJBTWhCLDBCQUEwQixRQUFVLFVBQVUsK0hDN0JqRSx1RUFHQTsyRkRvQmEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNO3FJQU12QyxNQUFNO3NCQURiLFNBQVM7dUJBQUMsUUFBUTtnQkFJWCxJQUFJO3NCQURYLGVBQWU7dUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQVE3RCxhQUFhO3NCQURoQixLQUFLO2dCQStCTixtQkFBbUI7c0JBRGxCLE1BQU07Z0JBdUJQLFlBQVk7c0JBRlgsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNoQyxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZekMsU0FBUztzQkFKUixZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3ZDLFlBQVk7dUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDdEMsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQzdDLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3R5cGVzJztcbmltcG9ydCB7IEtleWJvYXJkSGFuZGxlclNlcnZpY2UgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2Ryb3Bkb3duJztcbmltcG9ydCB7IFRhYk5hdmlnYXRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFiLW5hdmlnYXRpb24taXRlbS90YWItbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LXRhYi1uYXZpZ2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFiLW5hdmlnYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRhYk5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIHJlYWRvbmx5IERFQk9VTkNFX1RJTUVfTVMgPSAyNTA7XG5cbiAgQFZpZXdDaGlsZCgndGFiQmFyJylcbiAgcHJpdmF0ZSB0YWJCYXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oVGFiTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcml2YXRlIHRhYnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG5cbiAgcHJpdmF0ZSB0YWJCYXJFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSB0YWJFbGVtZW50cyA9IG5ldyBBcnJheTxIVE1MRWxlbWVudD4oKTtcbiAgcHJpdmF0ZSB0YWJCdXR0b25FbGVtZW50cyA9IG5ldyBBcnJheTxIVE1MRWxlbWVudD4oKTtcblxuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4O1xuICB9XG5cbiAgc2V0IHNlbGVjdGVkSW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCAhPT0gdGhpcy5fc2VsZWN0ZWRJbmRleCAmJiBpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSBpbmRleDtcblxuICAgICAgdGhpcy5mb2N1c0luZGV4ID0gaW5kZXg7XG4gICAgICB0aGlzLnNlbGVjdFRhYih0aGlzLnNlbGVjdGVkSW5kZXgpO1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRJbmRleCA9IC0xO1xuXG4gIGdldCBmb2N1c0luZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzSW5kZXg7XG4gIH1cblxuICBzZXQgZm9jdXNJbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGluZGV4ICE9PSB0aGlzLl9mb2N1c0luZGV4KSB7XG4gICAgICB0aGlzLl9mb2N1c0luZGV4ID0gaW5kZXg7XG5cbiAgICAgIHRoaXMuc2Nyb2xsVG9UYWIodGhpcy5mb2N1c0luZGV4KTtcbiAgICAgIHRoaXMuZm9jdXNUYWIodGhpcy5mb2N1c0luZGV4KTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfZm9jdXNJbmRleCA9IC0xO1xuXG4gIEBPdXRwdXQoKVxuICBzZWxlY3RlZEluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB3aW5kb3c6IFdpbmRvd1JlZiwgcHJpdmF0ZSBrZXlib2FyZEhhbmRsZXJTZXJ2aWNlOiBLZXlib2FyZEhhbmRsZXJTZXJ2aWNlKSB7XG4gICAgLyoqL1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFiQmFyRWxlbWVudCA9IHRoaXMudGFiQmFyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy50YWJzLmZvckVhY2goKHRhYikgPT4gdGhpcy50YWJFbGVtZW50cy5wdXNoKHRhYi5uYXRpdmVFbGVtZW50KSk7XG4gICAgdGhpcy50YWJFbGVtZW50cy5mb3JFYWNoKCh0YWJFbGVtZW50KSA9PlxuICAgICAgdGhpcy50YWJCdXR0b25FbGVtZW50cy5wdXNoKHRhYkVsZW1lbnQucXVlcnlTZWxlY3RvcignW3JvbGU9XCJ0YWJcIl0nKSlcbiAgICApO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdFRhYih0aGlzLnNlbGVjdGVkSW5kZXgpO1xuICAgICAgdGhpcy5zY3JvbGxUb1RhYih0aGlzLmZvY3VzSW5kZXgpO1xuICAgICAgdGhpcy5mb2N1c1RhYih0aGlzLmZvY3VzSW5kZXgpO1xuICAgIH0sIHRoaXMuREVCT1VOQ0VfVElNRV9NUyk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICBvbkl0ZW1TZWxlY3QoZXZlbnQ6IFBvaW50ZXJFdmVudCkge1xuICAgIGlmIChldmVudC50YXJnZXQgIT09IHRoaXMudGFiQmFyRWxlbWVudCkge1xuICAgICAgY29uc3QgdGFyZ2V0VGFiTmF2SXRlbSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJ2J1dHRvbicpO1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy50YWJCdXR0b25FbGVtZW50cy5pbmRleE9mKHRhcmdldFRhYk5hdkl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uaG9tZScsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW5kJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd3JpZ2h0JywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2xlZnQnLCBbJyRldmVudCddKVxuICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuZm9jdXNJbmRleCA9IHRoaXMua2V5Ym9hcmRIYW5kbGVyU2VydmljZS5oYW5kbGUoXG4gICAgICBldmVudCxcbiAgICAgIHRoaXMuZm9jdXNJbmRleCxcbiAgICAgIHRoaXMudGFiRWxlbWVudHMubGVuZ3RoIC0gMSxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RUYWIodGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudGFiQnV0dG9uRWxlbWVudHMuZm9yRWFjaCgodGFiQnV0dG9uRWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICAgIHRhYkJ1dHRvbkVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywgaW5kZXggPT09IHRhYkluZGV4ID8gJ3RydWUnIDogJ2ZhbHNlJyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzVGFiKGZvY3VzSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudGFiQnV0dG9uRWxlbWVudHMuZm9yRWFjaCgodGFiQnV0dG9uRWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICAgIHRhYkJ1dHRvbkVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsIGluZGV4ID09PSBmb2N1c0luZGV4ID8gJzAnIDogJy0xJyk7XG4gICAgfSk7XG5cbiAgICBpZiAoMCA8PSBmb2N1c0luZGV4ICYmIGZvY3VzSW5kZXggPCB0aGlzLnRhYkJ1dHRvbkVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgdGhpcy50YWJCdXR0b25FbGVtZW50c1tmb2N1c0luZGV4XS5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9UYWIodGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICgwIDw9IHRhYkluZGV4ICYmIHRhYkluZGV4IDwgdGhpcy50YWJFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkVGFiRWxlbWVudCA9IHRoaXMudGFiRWxlbWVudHNbdGFiSW5kZXhdO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRUYWJFbGVtZW50V2lkdGggPSBzZWxlY3RlZFRhYkVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICBjb25zdCBzZWxlY3RlZFRhYkVsZW1lbnRPZmZzZXRMZWZ0ID0gc2VsZWN0ZWRUYWJFbGVtZW50Lm9mZnNldExlZnQ7XG4gICAgICBjb25zdCB0YWJCYXJFbGVtZW50V2lkdGggPSB0aGlzLnRhYkJhckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cbiAgICAgIHRoaXMud2luZG93Lm5hdGl2ZVdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnRhYkJhckVsZW1lbnQ/LnNjcm9sbFRvKHtcbiAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgICAgbGVmdDogTWF0aC5tYXgoXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgc2VsZWN0ZWRUYWJFbGVtZW50T2Zmc2V0TGVmdCAtICh0YWJCYXJFbGVtZW50V2lkdGggLSBzZWxlY3RlZFRhYkVsZW1lbnRXaWR0aCkgLyAyXG4gICAgICAgICAgKSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgcm9sZT1cInRhYmxpc3RcIiAjdGFiQmFyPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -28,10 +28,10 @@ export class TabButtonComponent {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
/** @nocollapse */ TabButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
-
/** @nocollapse */ TabButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabButtonComponent, selector: "kirby-tab-button", inputs: { routerLink: "routerLink" }, outputs: { click: "click" }, queries: [{ propertyName: "icons", predicate: IconComponent }], ngImport: i0, template: "<ion-tab-button #ionTabButton [tab]=\"routerLink\" (click)=\"onClick($event, ionTabButton.selected)\">\n <ng-content\n *ngIf=\"icons.length === 1 || !ionTabButton.selected\"\n select=\"kirby-icon:not([selected-tab])\"\n ></ng-content>\n <ng-content *ngIf=\"ionTabButton.selected\" select=\"kirby-icon[selected-tab]\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"kirby-badge\"></ng-content>\n</ion-tab-button>\n", styles: ["ion-tab-button{transition:
|
|
31
|
+
/** @nocollapse */ TabButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabButtonComponent, selector: "kirby-tab-button", inputs: { routerLink: "routerLink" }, outputs: { click: "click" }, queries: [{ propertyName: "icons", predicate: IconComponent }], ngImport: i0, template: "<ion-tab-button #ionTabButton [tab]=\"routerLink\" (click)=\"onClick($event, ionTabButton.selected)\">\n <ng-content\n *ngIf=\"icons.length === 1 || !ionTabButton.selected\"\n select=\"kirby-icon:not([selected-tab])\"\n ></ng-content>\n <ng-content *ngIf=\"ionTabButton.selected\" select=\"kirby-icon[selected-tab]\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"kirby-badge\"></ng-content>\n</ion-tab-button>\n", styles: ["ion-tab-button{transition:background-color 80ms linear 0ms;height:100%;flex:1 1 0%;max-width:168px;font-weight:500;font-size:12px;line-height:16px;--color: var(--kirby-text-color-semi-dark);--color-selected: var(--kirby-black);--padding-start: 0;--padding-end: 0;--kirby-badge-position: absolute;--kirby-badge-top: .55em;--kirby-badge-left:calc(50% + .4em)}@media (hover: hover) and (pointer: fine){ion-tab-button.ion-focused{--background: whitesmoke;--background-focused-opacity: 0}ion-tab-button.ion-focused:focus-visible{box-shadow:none;--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}}@media (hover: hover){ion-tab-button:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--background: whitesmoke}}ion-tab-button:active,ion-tab-button.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--background: #ebebeb}ion-tab-button ::ng-deep>kirby-badge.md{--kirby-badge-top: .3em;--kirby-badge-left:calc(50% + .2em)}@media (min-width: 768px){ion-tab-button{flex:none;flex-direction:row;font-size:14px;line-height:20px;--padding-start: 24px;--padding-end: 24px;--kirby-badge-position: absolute;--kirby-badge-top:calc(50% - 1.35em);--kirby-badge-left: 1.6em}ion-tab-button ::ng-deep>kirby-badge.md{--kirby-badge-position: relative;--kirby-badge-top: 0;--kirby-badge-left: 0;margin-left:2px;margin-bottom:1px}ion-tab-button ::ng-deep>kirby-icon{--kirby-icon-margin-right: 8px}}@media (min-width: 1025px) and (hover: hover) and (pointer: fine){ion-tab-button{--padding-start: 12px;--padding-end: 12px}}\n"], dependencies: [{ kind: "component", type: i1.IonTabButton, selector: "ion-tab-button", inputs: ["disabled", "download", "href", "layout", "mode", "rel", "selected", "tab", "target"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabButtonComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
|
-
args: [{ selector: 'kirby-tab-button', template: "<ion-tab-button #ionTabButton [tab]=\"routerLink\" (click)=\"onClick($event, ionTabButton.selected)\">\n <ng-content\n *ngIf=\"icons.length === 1 || !ionTabButton.selected\"\n select=\"kirby-icon:not([selected-tab])\"\n ></ng-content>\n <ng-content *ngIf=\"ionTabButton.selected\" select=\"kirby-icon[selected-tab]\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"kirby-badge\"></ng-content>\n</ion-tab-button>\n", styles: ["ion-tab-button{transition:
|
|
34
|
+
args: [{ selector: 'kirby-tab-button', template: "<ion-tab-button #ionTabButton [tab]=\"routerLink\" (click)=\"onClick($event, ionTabButton.selected)\">\n <ng-content\n *ngIf=\"icons.length === 1 || !ionTabButton.selected\"\n select=\"kirby-icon:not([selected-tab])\"\n ></ng-content>\n <ng-content *ngIf=\"ionTabButton.selected\" select=\"kirby-icon[selected-tab]\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"kirby-badge\"></ng-content>\n</ion-tab-button>\n", styles: ["ion-tab-button{transition:background-color 80ms linear 0ms;height:100%;flex:1 1 0%;max-width:168px;font-weight:500;font-size:12px;line-height:16px;--color: var(--kirby-text-color-semi-dark);--color-selected: var(--kirby-black);--padding-start: 0;--padding-end: 0;--kirby-badge-position: absolute;--kirby-badge-top: .55em;--kirby-badge-left:calc(50% + .4em)}@media (hover: hover) and (pointer: fine){ion-tab-button.ion-focused{--background: whitesmoke;--background-focused-opacity: 0}ion-tab-button.ion-focused:focus-visible{box-shadow:none;--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}}@media (hover: hover){ion-tab-button:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--background: whitesmoke}}ion-tab-button:active,ion-tab-button.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--background: #ebebeb}ion-tab-button ::ng-deep>kirby-badge.md{--kirby-badge-top: .3em;--kirby-badge-left:calc(50% + .2em)}@media (min-width: 768px){ion-tab-button{flex:none;flex-direction:row;font-size:14px;line-height:20px;--padding-start: 24px;--padding-end: 24px;--kirby-badge-position: absolute;--kirby-badge-top:calc(50% - 1.35em);--kirby-badge-left: 1.6em}ion-tab-button ::ng-deep>kirby-badge.md{--kirby-badge-position: relative;--kirby-badge-top: 0;--kirby-badge-left: 0;margin-left:2px;margin-bottom:1px}ion-tab-button ::ng-deep>kirby-icon{--kirby-icon-margin-right: 8px}}@media (min-width: 1025px) and (hover: hover) and (pointer: fine){ion-tab-button{--padding-start: 12px;--padding-end: 12px}}\n"] }]
|
|
35
35
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { routerLink: [{
|
|
36
36
|
type: Input
|
|
37
37
|
}], click: [{
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { IonicModule } from '@ionic/angular';
|
|
2
2
|
export class TestHelper {
|
|
3
|
+
static disableAnimationsInTest() {
|
|
4
|
+
//@ts-ignore
|
|
5
|
+
window.Ionic = {
|
|
6
|
+
config: {
|
|
7
|
+
_testing: true,
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
}
|
|
3
11
|
static muteIonicReInitializeWarning() {
|
|
4
12
|
const originalWarn = console.warn;
|
|
5
13
|
const patchedWarn = (warning, ...optionalParams) => {
|
|
@@ -132,4 +140,4 @@ TestHelper.screensize = {
|
|
|
132
140
|
tablet: { width: '768px', height: '1024px' },
|
|
133
141
|
desktop: { width: '1200px', height: '900px' },
|
|
134
142
|
};
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS90ZXN0aW5nL3NyYy90ZXN0LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0MsTUFBTSxPQUFPLFVBQVU7SUFHZCxNQUFNLENBQUMsNEJBQTRCO1FBQ3hDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFZLEVBQUUsR0FBRyxjQUFxQixFQUFFLEVBQUU7WUFDN0QsTUFBTSxRQUFRLEdBQUcsNkZBQTZGLENBQUM7WUFDL0csSUFBSSxPQUFPLEtBQUssUUFBUTtnQkFBRSxZQUFZLENBQUMsT0FBTyxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7SUFDN0IsQ0FBQztJQVFEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FDM0IsaUJBQTREO1FBRTVELElBQUksaUJBQWlCLEtBQUssU0FBUyxJQUFJLGlCQUFpQixLQUFLLElBQUk7WUFDL0QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDOUUsSUFBSSxpQkFBaUIsWUFBWSxPQUFPLEVBQUU7WUFDeEMsTUFBTSxVQUFVLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDaEQsTUFBTSxVQUFVLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN6RDthQUFNO1lBQ0wsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLENB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LEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IElvbmljQ29uZmlnIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgVGVzdEhlbHBlciB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgX2luaXQgPSBUZXN0SGVscGVyLm11dGVJb25pY1JlSW5pdGlhbGl6ZVdhcm5pbmcoKTtcblxuICBwdWJsaWMgc3RhdGljIG11dGVJb25pY1JlSW5pdGlhbGl6ZVdhcm5pbmcoKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxXYXJuID0gY29uc29sZS53YXJuO1xuICAgIGNvbnN0IHBhdGNoZWRXYXJuID0gKHdhcm5pbmc6IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKSA9PiB7XG4gICAgICBjb25zdCBzdXBwcmVzcyA9IGBJb25pYyBBbmd1bGFyIHdhcyBhbHJlYWR5IGluaXRpYWxpemVkLiBNYWtlIHN1cmUgSW9uaWNNb2R1bGUuZm9yUm9vdCgpIGlzIGp1c3QgY2FsbGVkIG9uY2UuYDtcbiAgICAgIGlmICh3YXJuaW5nICE9PSBzdXBwcmVzcykgb3JpZ2luYWxXYXJuKHdhcm5pbmcsIC4uLm9wdGlvbmFsUGFyYW1zKTtcbiAgICB9O1xuICAgIGNvbnNvbGUud2FybiA9IHBhdGNoZWRXYXJuO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpb25pY01vZHVsZUZvclRlc3QgPSBJb25pY01vZHVsZS5mb3JSb290KHtcbiAgICBtb2RlOiAnaW9zJyxcbiAgICBfdGVzdGluZzogdHJ1ZSxcbiAgICBnZXQ6ICgpID0+IHt9LCAvLyBQcmV2ZW50cyBJb25pYyBcImNvbmZpZy5nZXQgaXMgbm90IGEgZnVuY3Rpb25cIiBlcnJvcnNcbiAgfSBhcyBJb25pY0NvbmZpZyk7XG5cbiAgLypcbiAgICogQ2hlY2tzIGZvciB0aGUgV2ViIENvbXBvbmVudChzKSBiZWluZyByZWFkeSxcbiAgICogaWUuIHRoZSBjb21wb25lbnQgaXMgaHlkcmF0ZWQsIHN0eWxlcyBoYXZlIGJlZW4gYXBwbGllZFxuICAgKiBhbmQgdGhlIFNoYWRvdyBET00gaXMgcmVhZHkgZm9yIHF1ZXJ5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIHdoZW5SZWFkeShcbiAgICBlbGVtZW50T3JOb2RlTGlzdDogRWxlbWVudCB8IE5vZGVMaXN0T2Y8RWxlbWVudD4gfCBFbGVtZW50W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGVsZW1lbnRPck5vZGVMaXN0ID09PSB1bmRlZmluZWQgfHwgZWxlbWVudE9yTm9kZUxpc3QgPT09IG51bGwpXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ1Rlc3RIZWxwZXIud2hlblJlYWR5OiBFbGVtZW50IGlzIG51bGwgb3IgdW5kZWZpbmVkJyk7XG4gICAgaWYgKGVsZW1lbnRPck5vZGVMaXN0IGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgYXdhaXQgVGVzdEhlbHBlci53aGVuRGVmaW5lZChlbGVtZW50T3JOb2RlTGlzdCk7XG4gICAgICBhd2FpdCBUZXN0SGVscGVyLmlvbkNvbXBvbmVudE9uUmVhZHkoZWxlbWVudE9yTm9kZUxpc3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgQXJyYXkuZnJvbShlbGVtZW50T3JOb2RlTGlzdCkubWFwKGFzeW5jIChlbGVtZW50KSA9PiBhd2FpdCBUZXN0SGVscGVyLndoZW5SZWFkeShlbGVtZW50KSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyogQ2hlY2tzIGZvciB0aGUgV2ViIENvbXBvbmVudCBiZWluZyBkZWZpbmVkLCBpZS4gdGhlIHB1YmxpYyBtZXRob2RzIGFyZSBhdmFpbGFibGUgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyB3aGVuRGVmaW5lZChlbGVtZW50OiBFbGVtZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQoZWxlbWVudC5sb2NhbE5hbWUpO1xuICB9XG5cbiAgLyogQ2hlY2tzIGZvciB0aGUgSW9uaWMgV2ViIENvbXBvbmVudCBiZWluZyByZWFkeSwgaWUuIHRoZSBjb21wb25lbnQgaXMgaHlkcmF0ZWQgYW5kIHN0eWxlcyBhcHBsaWVkICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgaW9uQ29tcG9uZW50T25SZWFkeShlbGVtZW50OiBFbGVtZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29tcG9uZW50T25SZWFkeSA9IChlbGVtZW50IGFzIGFueSkuY29tcG9uZW50T25SZWFkeSBhcyAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIGlmICh0eXBlb2YgY29tcG9uZW50T25SZWFkeSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgYXdhaXQgY29tcG9uZW50T25SZWFkeS5iaW5kKGVsZW1lbnQpKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhc3luYyB3aGVuVHJ1ZShcbiAgICBwb2xsRnVuYzogKCkgPT4gYm9vbGVhbixcbiAgICB0aW1lb3V0SW5NczogbnVtYmVyID0gMjAwMCxcbiAgICBwb2xsSW50ZXJ2YWxJbk1zOiBudW1iZXIgPSA1XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChwb2xsRnVuYygpID09PSB0cnVlKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGxldCB0aW1lb3V0SWQsIGludGVydmFsSWQ7XG4gICAgICBjb25zdCBwb2xsU3RhdGUgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHBvbGxGdW5jKCk7XG4gICAgICAgIGlmIChyZXN1bHQgPT09IHRydWUpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgICAgICByZWplY3QoXG4gICAgICAgICAgYEVycm9yOiBUaW1lb3V0IC0gVGVzdEhlbHBlci53aGVuVHJ1ZSBmdW5jdGlvbiBkaWQgbm90IGNvbXBsZXRlIHdpdGhpbiAke3RpbWVvdXRJbk1zfW1zYFxuICAgICAgICApO1xuICAgICAgfSwgdGltZW91dEluTXMpO1xuICAgICAgaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKHBvbGxTdGF0ZSwgcG9sbEludGVydmFsSW5Ncyk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldENzc1Byb3BlcnR5KGVsZW1lbnQ6IEVsZW1lbnQsIHByb3BlcnR5TmFtZTogc3RyaW5nLCBwc2V1ZG9FbHQ/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgcHNldWRvRWx0KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5TmFtZSkudHJpbSgpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzY3JlZW5zaXplID0ge1xuICAgIHBob25lc21hbGw6IHsgd2lkdGg6ICczMjBweCcsIGhlaWdodDogJzU2OHB4JyB9LFxuICAgIHBob25lOiB7IHdpZHRoOiAnMzc1cHgnLCBoZWlnaHQ6ICc2NjdweCcgfSxcbiAgICBwaGFibGV0OiB7IHdpZHRoOiAnNTc1cHgnLCBoZWlnaHQ6ICc3NjdweCcgfSxcbiAgICAncGhhYmxldC1sYW5kc2NhcGUnOiB7IHdpZHRoOiAnNzY3cHgnLCBoZWlnaHQ6ICc1NzVweCcgfSxcbiAgICB0YWJsZXQ6IHsgd2lkdGg6ICc3NjhweCcsIGhlaWdodDogJzEwMjRweCcgfSxcbiAgICBkZXNrdG9wOiB7IHdpZHRoOiAnMTIwMHB4JywgaGVpZ2h0OiAnOTAwcHgnIH0sXG4gIH07XG5cbiAgcHVibGljIHN0YXRpYyByZXNpemVUZXN0V2luZG93KHNpemU6IHsgd2lkdGg/OiBzdHJpbmc7IGhlaWdodD86IHN0cmluZyB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghd2luZG93LmZyYW1lRWxlbWVudCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ3dpbmRvdy5mcmFtZUVsZW1lbnQgaXMgdW5kZWZpbmVkLiBDYW5ub3QgcmVzaXplIHRlc3Qgd2luZG93LicpO1xuICAgICAgICByZWplY3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gW107XG4gICAgICAgIGlmIChzaXplLndpZHRoKSB7XG4gICAgICAgICAgcXVlcnkucHVzaChgKG1heC13aWR0aDogJHtzaXplLndpZHRofSlgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2l6ZS5oZWlnaHQpIHtcbiAgICAgICAgICBxdWVyeS5wdXNoKGAobWF4LWhlaWdodDogJHtzaXplLmhlaWdodH0pYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coYFNldCB0ZXN0IHdpbmRvdyBzaXplIHRvOiAke0pTT04uc3RyaW5naWZ5KHNpemUpfWApO1xuICAgICAgICAod2luZG93LmZyYW1lRWxlbWVudCBhcyBIVE1MSUZyYW1lRWxlbWVudCkuc3R5bGUud2lkdGggPSBzaXplLndpZHRoO1xuICAgICAgICAod2luZG93LmZyYW1lRWxlbWVudCBhcyBIVE1MSUZyYW1lRWxlbWVudCkuc3R5bGUuaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IG1lZGlhUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYShxdWVyeS5qb2luKCcgYW5kICcpKTtcbiAgICAgICAgaWYgKG1lZGlhUXVlcnkubWF0Y2hlcykge1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBFbnN1cmUgd2luZG93IGhhcyByZXNpemVkIGJlZm9yZSBleGVjdXRpbmc6XG4gICAgICAgICAgbWVkaWFRdWVyeS5vbmNoYW5nZSA9IChldikgPT4ge1xuICAgICAgICAgICAgaWYgKGV2Lm1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgLy8gU3RvcCBsaXN0ZW5pbmcgZm9yIGNoYW5nZXM6XG4gICAgICAgICAgICAgIG1lZGlhUXVlcnkub25jaGFuZ2UgPSBudWxsO1xuICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgQXdhaXRpbmcgbWVkaWEgcXVlcnkgdG8gbWF0Y2g6ICR7bWVkaWFRdWVyeS5tZWRpYX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyByZXNldFRlc3RXaW5kb3coKTogdm9pZCB7XG4gICAgaWYgKCF3aW5kb3cuZnJhbWVFbGVtZW50KSB7XG4gICAgICBjb25zb2xlLndhcm4oJ3dpbmRvdy5mcmFtZUVsZW1lbnQgaXMgdW5kZWZpbmVkLiBDYW5ub3QgcmVzaXplIHRlc3Qgd2luZG93LicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZygnUmVzZXR0aW5nIHRlc3Qgd2luZG93IHdpZHRoJyk7XG4gICAgKHdpbmRvdy5mcmFtZUVsZW1lbnQgYXMgSFRNTElGcmFtZUVsZW1lbnQpLnN0eWxlLndpZHRoID0gbnVsbDtcbiAgICAod2luZG93LmZyYW1lRWxlbWVudCBhcyBIVE1MSUZyYW1lRWxlbWVudCkuc3R5bGUuaGVpZ2h0ID0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2Nyb2xsTWFpbldpbmRvd1RvVG9wKCkge1xuICAgIGlmIChcbiAgICAgIHdpbmRvdy5wYXJlbnQgJiZcbiAgICAgIHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQgJiZcbiAgICAgIHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmXG4gICAgICB3aW5kb3cucGFyZW50LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPiAwXG4gICAgKSB7XG4gICAgICB3aW5kb3cucGFyZW50LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgd2FpdEZvclJlc2l6ZU9ic2VydmVyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBUZXN0SGVscGVyLndhaXRGb3JUaW1lb3V0KDEpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB3YWl0Rm9yVGltZW91dCh0aW1lb3V0SW5Ncz86IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCB0aW1lb3V0SW5NcykpO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFNjcmVlblNpemUgPSBrZXlvZiB0eXBlb2YgVGVzdEhlbHBlci5zY3JlZW5zaXplO1xuIl19
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS90ZXN0aW5nL3NyYy90ZXN0LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0MsTUFBTSxPQUFPLFVBQVU7SUFHZCxNQUFNLENBQUMsdUJBQXVCO1FBQ25DLFlBQVk7UUFDWixNQUFNLENBQUMsS0FBSyxHQUFHO1lBQ2IsTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyw0QkFBNEI7UUFDeEMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUNsQyxNQUFNLFdBQVcsR0FBRyxDQUFDLE9BQVksRUFBRSxHQUFHLGNBQXFCLEVBQUUsRUFBRTtZQUM3RCxNQUFNLFFBQVEsR0FBRyw2RkFBNkYsQ0FBQztZQUMvRyxJQUFJLE9BQU8sS0FBSyxRQUFRO2dCQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUM7UUFDRixPQUFPLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUM3QixDQUFDO0lBUUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUMzQixpQkFBNEQ7UUFFNUQsSUFBSSxpQkFBaUIsS0FBSyxTQUFTLElBQUksaUJBQWlCLEtBQUssSUFBSTtZQUMvRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUM5RSxJQUFJLGlCQUFpQixZQUFZLE9BQU8sRUFBRTtZQUN4QyxNQUFNLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNoRCxNQUFNLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxD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QUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRTtJQUN4RCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUU7SUFDNUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IElvbmljQ29uZmlnIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgVGVzdEhlbHBlciB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgX2luaXQgPSBUZXN0SGVscGVyLm11dGVJb25pY1JlSW5pdGlhbGl6ZVdhcm5pbmcoKTtcblxuICBwdWJsaWMgc3RhdGljIGRpc2FibGVBbmltYXRpb25zSW5UZXN0KCkge1xuICAgIC8vQHRzLWlnbm9yZVxuICAgIHdpbmRvdy5Jb25pYyA9IHtcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBfdGVzdGluZzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgbXV0ZUlvbmljUmVJbml0aWFsaXplV2FybmluZygpIHtcbiAgICBjb25zdCBvcmlnaW5hbFdhcm4gPSBjb25zb2xlLndhcm47XG4gICAgY29uc3QgcGF0Y2hlZFdhcm4gPSAod2FybmluZzogYW55LCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IHN1cHByZXNzID0gYElvbmljIEFuZ3VsYXIgd2FzIGFscmVhZHkgaW5pdGlhbGl6ZWQuIE1ha2Ugc3VyZSBJb25pY01vZHVsZS5mb3JSb290KCkgaXMganVzdCBjYWxsZWQgb25jZS5gO1xuICAgICAgaWYgKHdhcm5pbmcgIT09IHN1cHByZXNzKSBvcmlnaW5hbFdhcm4od2FybmluZywgLi4ub3B0aW9uYWxQYXJhbXMpO1xuICAgIH07XG4gICAgY29uc29sZS53YXJuID0gcGF0Y2hlZFdhcm47XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlvbmljTW9kdWxlRm9yVGVzdCA9IElvbmljTW9kdWxlLmZvclJvb3Qoe1xuICAgIG1vZGU6ICdpb3MnLFxuICAgIF90ZXN0aW5nOiB0cnVlLFxuICAgIGdldDogKCkgPT4ge30sIC8vIFByZXZlbnRzIElvbmljIFwiY29uZmlnLmdldCBpcyBub3QgYSBmdW5jdGlvblwiIGVycm9yc1xuICB9IGFzIElvbmljQ29uZmlnKTtcblxuICAvKlxuICAgKiBDaGVja3MgZm9yIHRoZSBXZWIgQ29tcG9uZW50KHMpIGJlaW5nIHJlYWR5LFxuICAgKiBpZS4gdGhlIGNvbXBvbmVudCBpcyBoeWRyYXRlZCwgc3R5bGVzIGhhdmUgYmVlbiBhcHBsaWVkXG4gICAqIGFuZCB0aGUgU2hhZG93IERPTSBpcyByZWFkeSBmb3IgcXVlcnlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgd2hlblJlYWR5KFxuICAgIGVsZW1lbnRPck5vZGVMaXN0OiBFbGVtZW50IHwgTm9kZUxpc3RPZjxFbGVtZW50PiB8IEVsZW1lbnRbXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoZWxlbWVudE9yTm9kZUxpc3QgPT09IHVuZGVmaW5lZCB8fCBlbGVtZW50T3JOb2RlTGlzdCA9PT0gbnVsbClcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnVGVzdEhlbHBlci53aGVuUmVhZHk6IEVsZW1lbnQgaXMgbnVsbCBvciB1bmRlZmluZWQnKTtcbiAgICBpZiAoZWxlbWVudE9yTm9kZUxpc3QgaW5zdGFuY2VvZiBFbGVtZW50KSB7XG4gICAgICBhd2FpdCBUZXN0SGVscGVyLndoZW5EZWZpbmVkKGVsZW1lbnRPck5vZGVMaXN0KTtcbiAgICAgIGF3YWl0IFRlc3RIZWxwZXIuaW9uQ29tcG9uZW50T25SZWFkeShlbGVtZW50T3JOb2RlTGlzdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBBcnJheS5mcm9tKGVsZW1lbnRPck5vZGVMaXN0KS5tYXAoYXN5bmMgKGVsZW1lbnQpID0+IGF3YWl0IFRlc3RIZWxwZXIud2hlblJlYWR5KGVsZW1lbnQpKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKiBDaGVja3MgZm9yIHRoZSBXZWIgQ29tcG9uZW50IGJlaW5nIGRlZmluZWQsIGllLiB0aGUgcHVibGljIG1ldGhvZHMgYXJlIGF2YWlsYWJsZSAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIHdoZW5EZWZpbmVkKGVsZW1lbnQ6IEVsZW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZChlbGVtZW50LmxvY2FsTmFtZSk7XG4gIH1cblxuICAvKiBDaGVja3MgZm9yIHRoZSBJb25pYyBXZWIgQ29tcG9uZW50IGJlaW5nIHJlYWR5LCBpZS4gdGhlIGNvbXBvbmVudCBpcyBoeWRyYXRlZCBhbmQgc3R5bGVzIGFwcGxpZWQgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBpb25Db21wb25lbnRPblJlYWR5KGVsZW1lbnQ6IEVsZW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb21wb25lbnRPblJlYWR5ID0gKGVsZW1lbnQgYXMgYW55KS5jb21wb25lbnRPblJlYWR5IGFzICgpID0+IFByb21pc2U8dm9pZD47XG4gICAgaWYgKHR5cGVvZiBjb21wb25lbnRPblJlYWR5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBhd2FpdCBjb21wb25lbnRPblJlYWR5LmJpbmQoZWxlbWVudCkoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIHdoZW5UcnVlKFxuICAgIHBvbGxGdW5jOiAoKSA9PiBib29sZWFuLFxuICAgIHRpbWVvdXRJbk1zOiBudW1iZXIgPSAyMDAwLFxuICAgIHBvbGxJbnRlcnZhbEluTXM6IG51bWJlciA9IDVcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHBvbGxGdW5jKCkgPT09IHRydWUpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgbGV0IHRpbWVvdXRJZCwgaW50ZXJ2YWxJZDtcbiAgICAgIGNvbnN0IHBvbGxTdGF0ZSA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcG9sbEZ1bmMoKTtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICAgIHJlamVjdChcbiAgICAgICAgICBgRXJyb3I6IFRpbWVvdXQgLSBUZXN0SGVscGVyLndoZW5UcnVlIGZ1bmN0aW9uIGRpZCBub3QgY29tcGxldGUgd2l0aGluICR7dGltZW91dEluTXN9bXNgXG4gICAgICAgICk7XG4gICAgICB9LCB0aW1lb3V0SW5Ncyk7XG4gICAgICBpbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwocG9sbFN0YXRlLCBwb2xsSW50ZXJ2YWxJbk1zKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Q3NzUHJvcGVydHkoZWxlbWVudDogRWxlbWVudCwgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHBzZXVkb0VsdD86IHN0cmluZykge1xuICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBwc2V1ZG9FbHQpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHlOYW1lKS50cmltKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNjcmVlbnNpemUgPSB7XG4gICAgcGhvbmVzbWFsbDogeyB3aWR0aDogJzMyMHB4JywgaGVpZ2h0OiAnNTY4cHgnIH0sXG4gICAgcGhvbmU6IHsgd2lkdGg6ICczNzVweCcsIGhlaWdodDogJzY2N3B4JyB9LFxuICAgIHBoYWJsZXQ6IHsgd2lkdGg6ICc1NzVweCcsIGhlaWdodDogJzc2N3B4JyB9LFxuICAgICdwaGFibGV0LWxhbmRzY2FwZSc6IHsgd2lkdGg6ICc3NjdweCcsIGhlaWdodDogJzU3NXB4JyB9LFxuICAgIHRhYmxldDogeyB3aWR0aDogJzc2OHB4JywgaGVpZ2h0OiAnMTAyNHB4JyB9LFxuICAgIGRlc2t0b3A6IHsgd2lkdGg6ICcxMjAwcHgnLCBoZWlnaHQ6ICc5MDBweCcgfSxcbiAgfTtcblxuICBwdWJsaWMgc3RhdGljIHJlc2l6ZVRlc3RXaW5kb3coc2l6ZTogeyB3aWR0aD86IHN0cmluZzsgaGVpZ2h0Pzogc3RyaW5nIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF3aW5kb3cuZnJhbWVFbGVtZW50KSB7XG4gICAgICAgIGNvbnNvbGUud2Fybignd2luZG93LmZyYW1lRWxlbWVudCBpcyB1bmRlZmluZWQuIENhbm5vdCByZXNpemUgdGVzdCB3aW5kb3cuJyk7XG4gICAgICAgIHJlamVjdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcXVlcnkgPSBbXTtcbiAgICAgICAgaWYgKHNpemUud2lkdGgpIHtcbiAgICAgICAgICBxdWVyeS5wdXNoKGAobWF4LXdpZHRoOiAke3NpemUud2lkdGh9KWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzaXplLmhlaWdodCkge1xuICAgICAgICAgIHF1ZXJ5LnB1c2goYChtYXgtaGVpZ2h0OiAke3NpemUuaGVpZ2h0fSlgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhgU2V0IHRlc3Qgd2luZG93IHNpemUgdG86ICR7SlNPTi5zdHJpbmdpZnkoc2l6ZSl9YCk7XG4gICAgICAgICh3aW5kb3cuZnJhbWVFbGVtZW50IGFzIEhUTUxJRnJhbWVFbGVtZW50KS5zdHlsZS53aWR0aCA9IHNpemUud2lkdGg7XG4gICAgICAgICh3aW5kb3cuZnJhbWVFbGVtZW50IGFzIEhUTUxJRnJhbWVFbGVtZW50KS5zdHlsZS5oZWlnaHQgPSBzaXplLmhlaWdodDtcbiAgICAgICAgY29uc3QgbWVkaWFRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKHF1ZXJ5LmpvaW4oJyBhbmQgJykpO1xuICAgICAgICBpZiAobWVkaWFRdWVyeS5tYXRjaGVzKSB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEVuc3VyZSB3aW5kb3cgaGFzIHJlc2l6ZWQgYmVmb3JlIGV4ZWN1dGluZzpcbiAgICAgICAgICBtZWRpYVF1ZXJ5Lm9uY2hhbmdlID0gKGV2KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXYubWF0Y2hlcykge1xuICAgICAgICAgICAgICAvLyBTdG9wIGxpc3RlbmluZyBmb3IgY2hhbmdlczpcbiAgICAgICAgICAgICAgbWVkaWFRdWVyeS5vbmNoYW5nZSA9IG51bGw7XG4gICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBBd2FpdGluZyBtZWRpYSBxdWVyeSB0byBtYXRjaDogJHttZWRpYVF1ZXJ5Lm1lZGlhfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlc2V0VGVzdFdpbmRvdygpOiB2b2lkIHtcbiAgICBpZiAoIXdpbmRvdy5mcmFtZUVsZW1lbnQpIHtcbiAgICAgIGNvbnNvbGUud2Fybignd2luZG93LmZyYW1lRWxlbWVudCBpcyB1bmRlZmluZWQuIENhbm5vdCByZXNpemUgdGVzdCB3aW5kb3cuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKCdSZXNldHRpbmcgdGVzdCB3aW5kb3cgd2lkdGgnKTtcbiAgICAod2luZG93LmZyYW1lRWxlbWVudCBhcyBIVE1MSUZyYW1lRWxlbWVudCkuc3R5bGUud2lkdGggPSBudWxsO1xuICAgICh3aW5kb3cuZnJhbWVFbGVtZW50IGFzIEhUTUxJRnJhbWVFbGVtZW50KS5zdHlsZS5oZWlnaHQgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzY3JvbGxNYWluV2luZG93VG9Ub3AoKSB7XG4gICAgaWYgKFxuICAgICAgd2luZG93LnBhcmVudCAmJlxuICAgICAgd2luZG93LnBhcmVudC5kb2N1bWVudCAmJlxuICAgICAgd2luZG93LnBhcmVudC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiZcbiAgICAgIHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA+IDBcbiAgICApIHtcbiAgICAgIHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyB3YWl0Rm9yUmVzaXplT2JzZXJ2ZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIFRlc3RIZWxwZXIud2FpdEZvclRpbWVvdXQoMSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHdhaXRGb3JUaW1lb3V0KHRpbWVvdXRJbk1zPzogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWVvdXRJbk1zKSk7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgU2NyZWVuU2l6ZSA9IGtleW9mIHR5cGVvZiBUZXN0SGVscGVyLnNjcmVlbnNpemU7XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, Component, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
|
|
2
|
+
import { Directive, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, NgModule } from '@angular/core';
|
|
3
3
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
4
4
|
import * as i1 from '@kirbydesign/designsystem/icon';
|
|
5
5
|
import { IconModule } from '@kirbydesign/designsystem/icon';
|
|
@@ -22,6 +22,7 @@ class AccordionItemComponent {
|
|
|
22
22
|
constructor() {
|
|
23
23
|
this.isExpanded = false;
|
|
24
24
|
this.isDisabled = false;
|
|
25
|
+
this.toggle = new EventEmitter();
|
|
25
26
|
// IDs used for a11y labelling
|
|
26
27
|
this._titleId = `kirby-accordion-item-title-${++uniqueId}`;
|
|
27
28
|
this._contentId = `kirby-accordion-item-content-${uniqueId}`;
|
|
@@ -41,11 +42,14 @@ class AccordionItemComponent {
|
|
|
41
42
|
}
|
|
42
43
|
_onToggleExpanded(event) {
|
|
43
44
|
event.preventDefault();
|
|
45
|
+
if (this.isDisabled)
|
|
46
|
+
return;
|
|
44
47
|
this.isExpanded = !this.isExpanded && !this.isDisabled;
|
|
48
|
+
this.toggle.emit(this.isExpanded);
|
|
45
49
|
}
|
|
46
50
|
}
|
|
47
51
|
/** @nocollapse */ AccordionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
-
/** @nocollapse */ AccordionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AccordionItemComponent, selector: "kirby-accordion-item", inputs: { title: "title", isExpanded: "isExpanded", isDisabled: "isDisabled", disabledTitle: "disabledTitle" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"content-layer\">\n <div\n (click)=\"_onToggleExpanded($event)\"\n (keydown.ENTER)=\"_onToggleExpanded($event)\"\n (keydown.space)=\"_onToggleExpanded($event)\"\n class=\"header\"\n role=\"button\"\n [class.disabled]=\"isDisabled\"\n tabindex=\"0\"\n [class.expanded]=\"isExpanded\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"_contentId\"\n [id]=\"_titleId\"\n >\n <span class=\"state-layer\" aria-hidden=\"true\"></span>\n <div class=\"title\">{{ getTitle() }}</div>\n <kirby-icon name=\"arrow-down\"></kirby-icon>\n </div>\n <div\n class=\"content\"\n role=\"region\"\n [attr.aria-labelledby]=\"_titleId\"\n [id]=\"_contentId\"\n [@isExpanded]=\"!!isExpanded\"\n >\n <div class=\"content-body\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{--state-layer-opacity: 0;--state-layer-background-color: var(--kirby-black);position:relative;display:block;border-top:1px solid var(--kirby-medium);border-bottom:1px solid var(--kirby-medium)}:host .content-layer{position:relative;z-index:var(--content-layer-z-index, 1)}:host .state-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:2}:host .state-layer:before{transition:all 80ms linear 0ms;content:\"\";position:absolute;pointer-events:none;inset:-50%;opacity:var(--state-layer-opacity, 0);background-color:var(--state-layer-background-color, var(--kirby-black))}.header{display:flex;align-items:center;height:56px;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none}@media (hover: hover) and (pointer: fine){.header{outline:0}.header:focus-visible{box-shadow:none;--state-layer-opacity: .04;--state-layer-background-color: var(--kirby-black)}}@media (hover: hover){.header:hover{--state-layer-opacity: .04;--state-layer-background-color: var(--kirby-black);cursor:pointer}}.header:active,.header.interaction-state-active{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}.title{flex-grow:2}.kirby-icon{transition:transform .2s}.content{overflow:hidden;cursor:default}.content-body{padding:0 16px 16px}.disabled{pointer-events:none}.disabled .kirby-icon{color:var(--kirby-semi-dark)}.disabled .title{color:var(--kirby-text-color-semi-dark)}.expanded .title{font-weight:700}.expanded .kirby-icon{transform:rotate(180deg)}:host-context(kirby-accordion):not(:first-child){border-top:none}:host-context(kirby-card){border-color:var(--kirby-background-color)}:host-context(kirby-card):first-child{border-top:none}:host-context(kirby-card):last-child{border-bottom:none}\n"], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }], animations: [
|
|
52
|
+
/** @nocollapse */ AccordionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AccordionItemComponent, selector: "kirby-accordion-item", inputs: { title: "title", isExpanded: "isExpanded", isDisabled: "isDisabled", disabledTitle: "disabledTitle" }, outputs: { toggle: "toggle" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"content-layer\">\n <div\n (click)=\"_onToggleExpanded($event)\"\n (keydown.ENTER)=\"_onToggleExpanded($event)\"\n (keydown.space)=\"_onToggleExpanded($event)\"\n class=\"header\"\n role=\"button\"\n [class.disabled]=\"isDisabled\"\n [tabindex]=\"isDisabled ? -1 : 0\"\n [class.expanded]=\"isExpanded\"\n [attr.aria-disabled]=\"isDisabled ? true : undefined\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"_contentId\"\n [id]=\"_titleId\"\n >\n <span class=\"state-layer\" aria-hidden=\"true\"></span>\n <div class=\"title\">{{ getTitle() }}</div>\n <kirby-icon name=\"arrow-down\"></kirby-icon>\n </div>\n <div\n class=\"content\"\n role=\"region\"\n [attr.aria-labelledby]=\"_titleId\"\n [id]=\"_contentId\"\n [@isExpanded]=\"!!isExpanded\"\n >\n <div class=\"content-body\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{--state-layer-opacity: 0;--state-layer-background-color: var(--kirby-black);position:relative;display:block;border-top:1px solid var(--kirby-medium);border-bottom:1px solid var(--kirby-medium)}:host .content-layer{position:relative;z-index:var(--content-layer-z-index, 1)}:host .state-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:2}:host .state-layer:before{transition:all 80ms linear 0ms;content:\"\";position:absolute;pointer-events:none;inset:-50%;opacity:var(--state-layer-opacity, 0);background-color:var(--state-layer-background-color, var(--kirby-black))}.header{display:flex;align-items:center;height:56px;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none}@media (hover: hover) and (pointer: fine){.header{outline:0}.header:focus-visible{box-shadow:none;--state-layer-opacity: .04;--state-layer-background-color: var(--kirby-black)}}@media (hover: hover){.header:hover{--state-layer-opacity: .04;--state-layer-background-color: var(--kirby-black);cursor:pointer}}.header:active,.header.interaction-state-active{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}.title{flex-grow:2}.kirby-icon{transition:transform .2s}.content{overflow:hidden;cursor:default}.content-body{padding:0 16px 16px}.disabled{pointer-events:none}.disabled .kirby-icon{color:var(--kirby-semi-dark)}.disabled .title{color:var(--kirby-text-color-semi-dark)}.expanded .title{font-weight:700}.expanded .kirby-icon{transform:rotate(180deg)}:host-context(kirby-accordion):not(:first-child){border-top:none}:host-context(kirby-card){border-color:var(--kirby-background-color)}:host-context(kirby-card):first-child{border-top:none}:host-context(kirby-card):last-child{border-bottom:none}\n"], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }], animations: [
|
|
49
53
|
trigger('isExpanded', [
|
|
50
54
|
state('true', style({ height: '*', visibility: 'visible' })),
|
|
51
55
|
state('false', style({ height: '0px', visibility: 'hidden' })),
|
|
@@ -60,7 +64,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
60
64
|
state('false', style({ height: '0px', visibility: 'hidden' })),
|
|
61
65
|
transition('true <=> false', animate('0.2s')),
|
|
62
66
|
]),
|
|
63
|
-
], template: "<div class=\"content-layer\">\n <div\n (click)=\"_onToggleExpanded($event)\"\n (keydown.ENTER)=\"_onToggleExpanded($event)\"\n (keydown.space)=\"_onToggleExpanded($event)\"\n class=\"header\"\n role=\"button\"\n [class.disabled]=\"isDisabled\"\n tabindex=\"0\"\n [class.expanded]=\"isExpanded\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"_contentId\"\n [id]=\"_titleId\"\n >\n <span class=\"state-layer\" aria-hidden=\"true\"></span>\n <div class=\"title\">{{ getTitle() }}</div>\n <kirby-icon name=\"arrow-down\"></kirby-icon>\n </div>\n <div\n class=\"content\"\n role=\"region\"\n [attr.aria-labelledby]=\"_titleId\"\n [id]=\"_contentId\"\n [@isExpanded]=\"!!isExpanded\"\n >\n <div class=\"content-body\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{--state-layer-opacity: 0;--state-layer-background-color: var(--kirby-black);position:relative;display:block;border-top:1px solid var(--kirby-medium);border-bottom:1px solid var(--kirby-medium)}:host .content-layer{position:relative;z-index:var(--content-layer-z-index, 1)}:host .state-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:2}:host .state-layer:before{transition:all 80ms linear 0ms;content:\"\";position:absolute;pointer-events:none;inset:-50%;opacity:var(--state-layer-opacity, 0);background-color:var(--state-layer-background-color, var(--kirby-black))}.header{display:flex;align-items:center;height:56px;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none}@media (hover: hover) and (pointer: fine){.header{outline:0}.header:focus-visible{box-shadow:none;--state-layer-opacity: .04;--state-layer-background-color: var(--kirby-black)}}@media (hover: hover){.header:hover{--state-layer-opacity: .04;--state-layer-background-color: var(--kirby-black);cursor:pointer}}.header:active,.header.interaction-state-active{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}.title{flex-grow:2}.kirby-icon{transition:transform .2s}.content{overflow:hidden;cursor:default}.content-body{padding:0 16px 16px}.disabled{pointer-events:none}.disabled .kirby-icon{color:var(--kirby-semi-dark)}.disabled .title{color:var(--kirby-text-color-semi-dark)}.expanded .title{font-weight:700}.expanded .kirby-icon{transform:rotate(180deg)}:host-context(kirby-accordion):not(:first-child){border-top:none}:host-context(kirby-card){border-color:var(--kirby-background-color)}:host-context(kirby-card):first-child{border-top:none}:host-context(kirby-card):last-child{border-bottom:none}\n"] }]
|
|
67
|
+
], template: "<div class=\"content-layer\">\n <div\n (click)=\"_onToggleExpanded($event)\"\n (keydown.ENTER)=\"_onToggleExpanded($event)\"\n (keydown.space)=\"_onToggleExpanded($event)\"\n class=\"header\"\n role=\"button\"\n [class.disabled]=\"isDisabled\"\n [tabindex]=\"isDisabled ? -1 : 0\"\n [class.expanded]=\"isExpanded\"\n [attr.aria-disabled]=\"isDisabled ? true : undefined\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"_contentId\"\n [id]=\"_titleId\"\n >\n <span class=\"state-layer\" aria-hidden=\"true\"></span>\n <div class=\"title\">{{ getTitle() }}</div>\n <kirby-icon name=\"arrow-down\"></kirby-icon>\n </div>\n <div\n class=\"content\"\n role=\"region\"\n [attr.aria-labelledby]=\"_titleId\"\n [id]=\"_contentId\"\n [@isExpanded]=\"!!isExpanded\"\n >\n <div class=\"content-body\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{--state-layer-opacity: 0;--state-layer-background-color: var(--kirby-black);position:relative;display:block;border-top:1px solid var(--kirby-medium);border-bottom:1px solid var(--kirby-medium)}:host .content-layer{position:relative;z-index:var(--content-layer-z-index, 1)}:host .state-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:2}:host .state-layer:before{transition:all 80ms linear 0ms;content:\"\";position:absolute;pointer-events:none;inset:-50%;opacity:var(--state-layer-opacity, 0);background-color:var(--state-layer-background-color, var(--kirby-black))}.header{display:flex;align-items:center;height:56px;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none}@media (hover: hover) and (pointer: fine){.header{outline:0}.header:focus-visible{box-shadow:none;--state-layer-opacity: .04;--state-layer-background-color: var(--kirby-black)}}@media (hover: hover){.header:hover{--state-layer-opacity: .04;--state-layer-background-color: var(--kirby-black);cursor:pointer}}.header:active,.header.interaction-state-active{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black)}.title{flex-grow:2}.kirby-icon{transition:transform .2s}.content{overflow:hidden;cursor:default}.content-body{padding:0 16px 16px}.disabled{pointer-events:none}.disabled .kirby-icon{color:var(--kirby-semi-dark)}.disabled .title{color:var(--kirby-text-color-semi-dark)}.expanded .title{font-weight:700}.expanded .kirby-icon{transform:rotate(180deg)}:host-context(kirby-accordion):not(:first-child){border-top:none}:host-context(kirby-card){border-color:var(--kirby-background-color)}:host-context(kirby-card):first-child{border-top:none}:host-context(kirby-card):last-child{border-bottom:none}\n"] }]
|
|
64
68
|
}], propDecorators: { title: [{
|
|
65
69
|
type: Input
|
|
66
70
|
}], isExpanded: [{
|
|
@@ -69,6 +73,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
69
73
|
type: Input
|
|
70
74
|
}], disabledTitle: [{
|
|
71
75
|
type: Input
|
|
76
|
+
}], toggle: [{
|
|
77
|
+
type: Output
|
|
72
78
|
}] } });
|
|
73
79
|
|
|
74
80
|
const declarations = [AccordionDirective, AccordionItemComponent];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-accordion.mjs","sources":["../../../../libs/designsystem/accordion/src/accordion.directive.ts","../../../../libs/designsystem/accordion/src/accordion-item.component.ts","../../../../libs/designsystem/accordion/src/accordion-item.component.html","../../../../libs/designsystem/accordion/src/accordion.module.ts","../../../../libs/designsystem/accordion/src/kirbydesign-designsystem-accordion.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[kirbyAccordion], kirby-accordion',\n exportAs: 'kirby-accordion',\n})\nexport class AccordionDirective {}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {
|
|
1
|
+
{"version":3,"file":"kirbydesign-designsystem-accordion.mjs","sources":["../../../../libs/designsystem/accordion/src/accordion.directive.ts","../../../../libs/designsystem/accordion/src/accordion-item.component.ts","../../../../libs/designsystem/accordion/src/accordion-item.component.html","../../../../libs/designsystem/accordion/src/accordion.module.ts","../../../../libs/designsystem/accordion/src/kirbydesign-designsystem-accordion.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[kirbyAccordion], kirby-accordion',\n exportAs: 'kirby-accordion',\n})\nexport class AccordionDirective {}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n} from '@angular/core';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\n\n// Counter for generating unique element ids\nlet uniqueId = 0;\n\n@Component({\n selector: 'kirby-accordion-item',\n templateUrl: './accordion-item.component.html',\n styleUrls: ['./accordion-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('isExpanded', [\n state('true', style({ height: '*', visibility: 'visible' })),\n state('false', style({ height: '0px', visibility: 'hidden' })),\n transition('true <=> false', animate('0.2s')),\n ]),\n ],\n})\nexport class AccordionItemComponent implements OnChanges {\n @Input() title: string;\n @Input() isExpanded: boolean = false;\n @Input() isDisabled: boolean = false;\n @Input() disabledTitle: string;\n @Output() toggle: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n ngOnChanges(): void {\n if (this.isDisabled) {\n this.isExpanded = false;\n }\n }\n\n getTitle() {\n if (this.isDisabled && !!this.disabledTitle) {\n return this.disabledTitle;\n } else {\n return this.title;\n }\n }\n\n _onToggleExpanded(event: UIEvent) {\n event.preventDefault();\n if (this.isDisabled) return;\n\n this.isExpanded = !this.isExpanded && !this.isDisabled;\n this.toggle.emit(this.isExpanded);\n }\n\n // IDs used for a11y labelling\n _titleId = `kirby-accordion-item-title-${++uniqueId}`;\n _contentId = `kirby-accordion-item-content-${uniqueId}`;\n}\n","<div class=\"content-layer\">\n <div\n (click)=\"_onToggleExpanded($event)\"\n (keydown.ENTER)=\"_onToggleExpanded($event)\"\n (keydown.space)=\"_onToggleExpanded($event)\"\n class=\"header\"\n role=\"button\"\n [class.disabled]=\"isDisabled\"\n [tabindex]=\"isDisabled ? -1 : 0\"\n [class.expanded]=\"isExpanded\"\n [attr.aria-disabled]=\"isDisabled ? true : undefined\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"_contentId\"\n [id]=\"_titleId\"\n >\n <span class=\"state-layer\" aria-hidden=\"true\"></span>\n <div class=\"title\">{{ getTitle() }}</div>\n <kirby-icon name=\"arrow-down\"></kirby-icon>\n </div>\n <div\n class=\"content\"\n role=\"region\"\n [attr.aria-labelledby]=\"_titleId\"\n [id]=\"_contentId\"\n [@isExpanded]=\"!!isExpanded\"\n >\n <div class=\"content-body\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\n\nimport { AccordionItemComponent } from './accordion-item.component';\nimport { AccordionDirective } from './accordion.directive';\n\nconst declarations = [AccordionDirective, AccordionItemComponent];\n\n@NgModule({\n declarations: [...declarations],\n imports: [IconModule],\n exports: [...declarations],\n})\nexport class AccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -99,7 +99,7 @@ class ActionGroupComponent {
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
/** @nocollapse */ ActionGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ActionGroupComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: ACTIONGROUP_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
-
/** @nocollapse */ ActionGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ActionGroupComponent, isStandalone: true, selector: "kirby-action-group", inputs: { visibleActions: "visibleActions", align: "align" }, host: { properties: { "class.is-collapsed": "this._isCollapsed", "class": "this._align" } }, queries: [{ propertyName: "buttonElements", predicate: ButtonComponent, read: ElementRef }, { propertyName: "buttons", predicate: ButtonComponent }], viewQueries: [{ propertyName: "hiddenLayer", first: true, predicate: ["hiddenLayer"], descendants: true, read: ElementRef, static: true }, { propertyName: "menuElement", first: true, predicate: MenuComponent, descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-content select=\"button[kirby-button]\"></ng-content>\n\n<kirby-menu [placement]=\"'bottom-end'\">\n <kirby-item\n *ngFor=\"let action of _collapsedActions\"\n [selectable]=\"true\"\n (click)=\"onActionSelect(action)\"\n >\n {{ action.text }}\n </kirby-item>\n</kirby-menu>\n\n<div class=\"hidden-layer\" #hiddenLayer></div>\n", styles: [":host{display:flex;position:relative;gap:8px}:host(.align-end){justify-content:flex-end}:host(.align-end) .hidden-layer{order:-1}.hidden-layer{display:none;visibility:hidden}kirby-menu{display:none;z-index:1}:host(.is-collapsed) kirby-menu{display:inline-block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ItemModule }, { kind: "component", type: i2.ItemComponent, selector: "kirby-item", inputs: ["disabled", "selected", "disclosure", "selectable", "reorderable", "size"] }, { kind: "component", type: MenuComponent, selector: "kirby-menu", inputs: ["isDisabled", "buttonSize", "placement", "attentionLevel", "triggers", "DOMPortalOutlet", "portalOutletConfig", "autoPlacement", "closeOnSelect", "closeOnEscapeKey", "closeOnBackdrop", "shift", "minWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
102
|
+
/** @nocollapse */ ActionGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ActionGroupComponent, isStandalone: true, selector: "kirby-action-group", inputs: { visibleActions: "visibleActions", align: "align" }, host: { properties: { "class.is-collapsed": "this._isCollapsed", "class": "this._align" } }, queries: [{ propertyName: "buttonElements", predicate: ButtonComponent, read: ElementRef }, { propertyName: "buttons", predicate: ButtonComponent }], viewQueries: [{ propertyName: "hiddenLayer", first: true, predicate: ["hiddenLayer"], descendants: true, read: ElementRef, static: true }, { propertyName: "menuElement", first: true, predicate: MenuComponent, descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-content select=\"button[kirby-button]\"></ng-content>\n\n<kirby-menu [placement]=\"'bottom-end'\">\n <kirby-item\n *ngFor=\"let action of _collapsedActions\"\n [selectable]=\"true\"\n (click)=\"onActionSelect(action)\"\n >\n {{ action.text }}\n </kirby-item>\n</kirby-menu>\n\n<div class=\"hidden-layer\" #hiddenLayer></div>\n", styles: [":host{display:flex;position:relative;gap:8px}:host(.align-end){justify-content:flex-end}:host(.align-end) .hidden-layer{order:-1}.hidden-layer{display:none;visibility:hidden}kirby-menu{display:none;z-index:1}:host(.is-collapsed) kirby-menu{display:inline-block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ItemModule }, { kind: "component", type: i2.ItemComponent, selector: "kirby-item", inputs: ["disabled", "selected", "disclosure", "selectable", "reorderable", "size", "rotateIcon"] }, { kind: "component", type: MenuComponent, selector: "kirby-menu", inputs: ["isDisabled", "buttonSize", "placement", "attentionLevel", "triggers", "DOMPortalOutlet", "portalOutletConfig", "autoPlacement", "closeOnSelect", "closeOnEscapeKey", "closeOnBackdrop", "shift", "minWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
103
103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ActionGroupComponent, decorators: [{
|
|
104
104
|
type: Component,
|
|
105
105
|
args: [{ selector: 'kirby-action-group', standalone: true, imports: [CommonModule, ButtonComponent, ItemModule, MenuComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"button[kirby-button]\"></ng-content>\n\n<kirby-menu [placement]=\"'bottom-end'\">\n <kirby-item\n *ngFor=\"let action of _collapsedActions\"\n [selectable]=\"true\"\n (click)=\"onActionSelect(action)\"\n >\n {{ action.text }}\n </kirby-item>\n</kirby-menu>\n\n<div class=\"hidden-layer\" #hiddenLayer></div>\n", styles: [":host{display:flex;position:relative;gap:8px}:host(.align-end){justify-content:flex-end}:host(.align-end) .hidden-layer{order:-1}.hidden-layer{display:none;visibility:hidden}kirby-menu{display:none;z-index:1}:host(.is-collapsed) kirby-menu{display:inline-block}\n"] }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-action-group.mjs","sources":["../../../../libs/designsystem/action-group/src/action-group.component.ts","../../../../libs/designsystem/action-group/src/action-group.component.html","../../../../libs/designsystem/action-group/src/kirbydesign-designsystem-action-group.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n Optional,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { ItemModule } from '@kirbydesign/designsystem/item';\nimport { MenuComponent } from '@kirbydesign/designsystem/menu';\n\nexport type ActionGroupConfig = {\n isCondensed?: boolean;\n defaultVisibleActions?: number;\n maxVisibleActions?: number;\n};\nexport const ACTIONGROUP_CONFIG = new InjectionToken<ActionGroupConfig>('action-group.config');\n\ntype CollapsedAction = { button: HTMLButtonElement; text: string };\n\n@Component({\n selector: 'kirby-action-group',\n standalone: true,\n imports: [CommonModule, ButtonComponent, ItemModule, MenuComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './action-group.component.html',\n styleUrls: ['./action-group.component.scss'],\n})\nexport class ActionGroupComponent implements AfterContentInit, OnChanges {\n @Input() visibleActions?: number;\n\n @Input()\n align: 'start' | 'end' = 'end';\n\n @ContentChildren(ButtonComponent, { read: ElementRef }) private buttonElements?: QueryList<\n ElementRef<HTMLButtonElement>\n >;\n @ContentChildren(ButtonComponent) private buttons?: QueryList<ButtonComponent>;\n @ViewChild('hiddenLayer', { read: ElementRef, static: true })\n private hiddenLayer!: ElementRef<HTMLElement>;\n\n @ViewChild(MenuComponent, { read: ElementRef, static: true })\n private menuElement!: ElementRef<HTMLElement>;\n\n @HostBinding('class.is-collapsed')\n _isCollapsed: boolean;\n _collapsedActions: CollapsedAction[] = [];\n\n @HostBinding('class')\n get _align() {\n return 'align-' + this.align;\n }\n\n private collapseThreshold = 2;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n @Optional() @Inject(ACTIONGROUP_CONFIG) private config: ActionGroupConfig\n ) {}\n\n ngAfterContentInit(): void {\n // Ensure we collapse according to visibleActions if lower than our default threshold (2).\n // I.e. if there are 2 buttons and visibleActions = 1 we'll collapse the 2nd button into the menu:\n if (this.visibleActions < this.collapseThreshold) {\n this.collapseThreshold = this.visibleActions;\n }\n\n this.initializeFromConfig();\n\n if (this.visibleActions !== undefined) {\n this.initializeCollapsing();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.visibleActions && !changes.visibleActions.firstChange) {\n const satifiesMaxVisibleActions =\n this.config?.maxVisibleActions === undefined ||\n this.config?.maxVisibleActions === null ||\n changes.visibleActions.currentValue <= this.config?.maxVisibleActions;\n if (satifiesMaxVisibleActions) {\n this.initializeCollapsing();\n }\n }\n }\n\n onActionSelect(action: CollapsedAction) {\n const event = new PointerEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n\n action.button.dispatchEvent(event);\n }\n\n private initializeFromConfig() {\n if (!this.config) return;\n\n if (this.visibleActions === undefined && this.config.defaultVisibleActions !== undefined) {\n this.visibleActions = this.config.defaultVisibleActions;\n }\n\n if (this.config.maxVisibleActions !== undefined) {\n // Don't overwrite visibleActions value if configured lower than maxVisibleActions:\n if (!(this.visibleActions < this.config.maxVisibleActions)) {\n this.visibleActions = this.config.maxVisibleActions;\n }\n }\n\n if (this.config.isCondensed) {\n this.buttons?.forEach((button) => (button.showIconOnly = true));\n }\n }\n\n private initializeCollapsing() {\n if (this.buttonElements.length <= this.collapseThreshold) return;\n\n this.moveButtons();\n this.populateMenu();\n this.toggleMenu();\n }\n\n private moveButtons() {\n const buttonsToShow = [...this.buttonElements]\n .slice(0, this.visibleActions)\n .filter((btn) => btn.nativeElement.parentElement === this.hiddenLayer.nativeElement);\n buttonsToShow.forEach((button) => {\n this.renderer.insertBefore(\n this.elementRef.nativeElement,\n button.nativeElement,\n this.menuElement.nativeElement\n );\n });\n\n const buttonsToHide = [...this.buttonElements].slice(this.visibleActions);\n buttonsToHide.forEach((button) => {\n this.renderer.appendChild(this.hiddenLayer.nativeElement, button.nativeElement);\n });\n }\n\n private toggleMenu() {\n const hasHiddenButtons = this.hiddenLayer.nativeElement.childElementCount > 0;\n this._isCollapsed = hasHiddenButtons;\n }\n\n private populateMenu() {\n const hiddenButtons = Array.from(\n this.hiddenLayer.nativeElement.children\n ) as HTMLButtonElement[];\n\n this._collapsedActions = hiddenButtons.map((button) => ({\n button,\n text: button.textContent.trim(),\n }));\n }\n}\n","<ng-content select=\"button[kirby-button]\"></ng-content>\n\n<kirby-menu [placement]=\"'bottom-end'\">\n <kirby-item\n *ngFor=\"let action of _collapsedActions\"\n [selectable]=\"true\"\n (click)=\"onActionSelect(action)\"\n >\n {{ action.text }}\n </kirby-item>\n</kirby-menu>\n\n<div class=\"hidden-layer\" #hiddenLayer></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kirbydesign-designsystem-action-group.mjs","sources":["../../../../libs/designsystem/action-group/src/action-group.component.ts","../../../../libs/designsystem/action-group/src/action-group.component.html","../../../../libs/designsystem/action-group/src/kirbydesign-designsystem-action-group.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n Optional,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { ItemModule } from '@kirbydesign/designsystem/item';\nimport { MenuComponent } from '@kirbydesign/designsystem/menu';\n\nexport type ActionGroupConfig = {\n isCondensed?: boolean;\n defaultVisibleActions?: number;\n maxVisibleActions?: number;\n};\nexport const ACTIONGROUP_CONFIG = new InjectionToken<ActionGroupConfig>('action-group.config');\n\ntype CollapsedAction = { button: HTMLButtonElement; text: string };\n\n@Component({\n selector: 'kirby-action-group',\n standalone: true,\n imports: [CommonModule, ButtonComponent, ItemModule, MenuComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './action-group.component.html',\n styleUrls: ['./action-group.component.scss'],\n})\nexport class ActionGroupComponent implements AfterContentInit, OnChanges {\n @Input() visibleActions?: number;\n\n @Input()\n align: 'start' | 'end' = 'end';\n\n @ContentChildren(ButtonComponent, { read: ElementRef }) private buttonElements?: QueryList<\n ElementRef<HTMLButtonElement>\n >;\n @ContentChildren(ButtonComponent) private buttons?: QueryList<ButtonComponent>;\n @ViewChild('hiddenLayer', { read: ElementRef, static: true })\n private hiddenLayer!: ElementRef<HTMLElement>;\n\n @ViewChild(MenuComponent, { read: ElementRef, static: true })\n private menuElement!: ElementRef<HTMLElement>;\n\n @HostBinding('class.is-collapsed')\n _isCollapsed: boolean;\n _collapsedActions: CollapsedAction[] = [];\n\n @HostBinding('class')\n get _align() {\n return 'align-' + this.align;\n }\n\n private collapseThreshold = 2;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n @Optional() @Inject(ACTIONGROUP_CONFIG) private config: ActionGroupConfig\n ) {}\n\n ngAfterContentInit(): void {\n // Ensure we collapse according to visibleActions if lower than our default threshold (2).\n // I.e. if there are 2 buttons and visibleActions = 1 we'll collapse the 2nd button into the menu:\n if (this.visibleActions < this.collapseThreshold) {\n this.collapseThreshold = this.visibleActions;\n }\n\n this.initializeFromConfig();\n\n if (this.visibleActions !== undefined) {\n this.initializeCollapsing();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.visibleActions && !changes.visibleActions.firstChange) {\n const satifiesMaxVisibleActions =\n this.config?.maxVisibleActions === undefined ||\n this.config?.maxVisibleActions === null ||\n changes.visibleActions.currentValue <= this.config?.maxVisibleActions;\n if (satifiesMaxVisibleActions) {\n this.initializeCollapsing();\n }\n }\n }\n\n onActionSelect(action: CollapsedAction) {\n const event = new PointerEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n\n action.button.dispatchEvent(event);\n }\n\n private initializeFromConfig() {\n if (!this.config) return;\n\n if (this.visibleActions === undefined && this.config.defaultVisibleActions !== undefined) {\n this.visibleActions = this.config.defaultVisibleActions;\n }\n\n if (this.config.maxVisibleActions !== undefined) {\n // Don't overwrite visibleActions value if configured lower than maxVisibleActions:\n if (!(this.visibleActions < this.config.maxVisibleActions)) {\n this.visibleActions = this.config.maxVisibleActions;\n }\n }\n\n if (this.config.isCondensed) {\n this.buttons?.forEach((button) => (button.showIconOnly = true));\n }\n }\n\n private initializeCollapsing() {\n if (this.buttonElements.length <= this.collapseThreshold) return;\n\n this.moveButtons();\n this.populateMenu();\n this.toggleMenu();\n }\n\n private moveButtons() {\n const buttonsToShow = [...this.buttonElements]\n .slice(0, this.visibleActions)\n .filter((btn) => btn.nativeElement.parentElement === this.hiddenLayer.nativeElement);\n buttonsToShow.forEach((button) => {\n this.renderer.insertBefore(\n this.elementRef.nativeElement,\n button.nativeElement,\n this.menuElement.nativeElement\n );\n });\n\n const buttonsToHide = [...this.buttonElements].slice(this.visibleActions);\n buttonsToHide.forEach((button) => {\n this.renderer.appendChild(this.hiddenLayer.nativeElement, button.nativeElement);\n });\n }\n\n private toggleMenu() {\n const hasHiddenButtons = this.hiddenLayer.nativeElement.childElementCount > 0;\n this._isCollapsed = hasHiddenButtons;\n }\n\n private populateMenu() {\n const hiddenButtons = Array.from(\n this.hiddenLayer.nativeElement.children\n ) as HTMLButtonElement[];\n\n this._collapsedActions = hiddenButtons.map((button) => ({\n button,\n text: button.textContent.trim(),\n }));\n }\n}\n","<ng-content select=\"button[kirby-button]\"></ng-content>\n\n<kirby-menu [placement]=\"'bottom-end'\">\n <kirby-item\n *ngFor=\"let action of _collapsedActions\"\n [selectable]=\"true\"\n (click)=\"onActionSelect(action)\"\n >\n {{ action.text }}\n </kirby-item>\n</kirby-menu>\n\n<div class=\"hidden-layer\" #hiddenLayer></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, EventEmitter, LOCALE_ID, Component, Inject, ViewChild, Output, Input, HostBinding } from '@angular/core';
|
|
3
|
-
import { isBefore, isAfter, format, isSameMonth, startOfMonth, startOfDay, eachDayOfInterval, startOfWeek, endOfWeek, isSameDay,
|
|
3
|
+
import { isBefore, isAfter, format, isSameMonth, startOfMonth, startOfDay, eachDayOfInterval, startOfWeek, endOfWeek, isSameDay, add, isWeekend, getYear } from 'date-fns';
|
|
4
4
|
import { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';
|
|
5
5
|
import { da, enGB, enUS } from 'date-fns/locale';
|
|
6
6
|
import { capitalizeFirstLetter } from '@kirbydesign/core';
|
|
@@ -288,12 +288,10 @@ class CalendarComponent {
|
|
|
288
288
|
if (!this.activeMonth)
|
|
289
289
|
return;
|
|
290
290
|
const monthStart = startOfMonth(this.activeMonth);
|
|
291
|
-
const monthEnd = endOfMonth(this.activeMonth);
|
|
292
291
|
const startOfFirstWeek = startOfWeek(monthStart, { locale: this.locale });
|
|
293
|
-
const endOfLastWeek = endOfWeek(monthEnd, { locale: this.locale });
|
|
294
|
-
const totalDayCount = differenceInDays(endOfLastWeek, startOfFirstWeek) + 1;
|
|
295
292
|
const today = this.todayDate ? startOfDay(this.todayDate) : startOfDay(new Date());
|
|
296
|
-
const
|
|
293
|
+
const totalNumberOfDays = 42; // Always show 42 days (6 weeks) in calendar
|
|
294
|
+
const daysArray = Array.from(Array(totalNumberOfDays).keys());
|
|
297
295
|
const days = daysArray.map((number) => {
|
|
298
296
|
const cellDate = add(startOfFirstWeek, { [TimeUnit.days]: number });
|
|
299
297
|
const day = this.getCalendarDay(cellDate, today, monthStart);
|
|
@@ -460,10 +458,10 @@ class CalendarComponent {
|
|
|
460
458
|
}
|
|
461
459
|
}
|
|
462
460
|
/** @nocollapse */ CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CalendarComponent, deps: [{ token: CalendarHelper }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
463
|
-
/** @nocollapse */ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CalendarComponent, isStandalone: true, selector: "kirby-calendar", inputs: { timezone: "timezone", disableWeekends: "disableWeekends", disablePastDates: "disablePastDates", disableFutureDates: "disableFutureDates", alwaysEnableToday: "alwaysEnableToday", locales: "locales", customLocales: "customLocales", usePopover: "usePopover", yearNavigatorOptions: "yearNavigatorOptions", selectedDate: "selectedDate", disabledDates: "disabledDates", enabledDates: "enabledDates", todayDate: "todayDate", minDate: "minDate", maxDate: "maxDate" }, outputs: { dateChange: "dateChange", dateSelect: "dateSelect", yearSelect: "yearSelect", previousMonthClicked: "previousMonthClicked", nextMonthClicked: "nextMonthClicked" }, host: { properties: { "class.has-year-navigator": "this._hasYearNavigator" } }, providers: [CalendarHelper], viewQueries: [{ propertyName: "calendarContainer", first: true, predicate: ["calendarContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button\n [disabled]=\"!_canNavigateBack\"\n (click)=\"_changeMonth(-1)\"\n kirby-button\n [noDecoration]=\"true\"\n class=\"no-margin\"\n >\n <kirby-icon name=\"arrow-back\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\">\n <span class=\"month\">{{ activeMonthName }}</span>\n <span *ngIf=\"!_hasYearNavigator\" class=\"year\">{{ activeYear }}</span>\n </div>\n\n <button\n [disabled]=\"!_canNavigateForward\"\n (click)=\"_changeMonth(1)\"\n kirby-button\n [noDecoration]=\"true\"\n class=\"no-margin\"\n >\n <kirby-icon name=\"arrow-more\"></kirby-icon>\n </button>\n </div>\n <kirby-dropdown\n *ngIf=\"_hasYearNavigator\"\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n ></kirby-dropdown>\n</div>\n\n<table>\n <thead>\n <tr>\n <th *ngFor=\"let weekDay of _weekDays\">{{ weekDay }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let week of _month\">\n <td *ngFor=\"let day of week\">\n <div\n (click)=\"_onDateSelected(day)\"\n class=\"{{ day.cssClasses }} contain-state-layer\"\n [class.selected]=\"day.isSelected\"\n >\n <span class=\"state-layer\" aria-hidden=\"true\"></span>\n <span class=\"content-layer\">{{ day.date }}</span>\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- <iframe src=\"kirby/components/calendar/calendar.webview.html\" #calendarContainer style=\"width: 320px; height: 304px; border: 0\"> -->\n", styles: ["table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}th,td{text-align:center;padding:0}th:first-child,td:first-child{padding-left:8px}th:last-child,td:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,th,td{background-color:transparent}.header{display:flex;justify-content:space-between;margin:8px 8px 0}.month-navigator{display:flex;flex-grow:1;align-items:center;justify-content:space-between}.month-navigator button:disabled{opacity:.5;pointer-events:none}.month-and-year{-webkit-user-select:none;user-select:none}.month-and-year .month{font-weight:700;margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;width:40px;height:40px;margin:4px 0;color:var(--color, var(--kirby-black));background-color:var(--background-color, transparent)}.day.disabled,.day:not(.selectable){--color: var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}@media (hover: hover){.day.today:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer}}.day.today:active,.day.today.interaction-state-active{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}@media (hover: hover){.day.selected:hover{--state-layer-opacity: .24;--state-layer-background-color: var(--kirby-black-contrast);cursor:pointer}}.day.selected:active,.day.selected.interaction-state-active{--state-layer-opacity: .36;--state-layer-background-color: var(--kirby-black-contrast)}.day:not(.current-month){
|
|
461
|
+
/** @nocollapse */ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CalendarComponent, isStandalone: true, selector: "kirby-calendar", inputs: { timezone: "timezone", disableWeekends: "disableWeekends", disablePastDates: "disablePastDates", disableFutureDates: "disableFutureDates", alwaysEnableToday: "alwaysEnableToday", locales: "locales", customLocales: "customLocales", usePopover: "usePopover", yearNavigatorOptions: "yearNavigatorOptions", selectedDate: "selectedDate", disabledDates: "disabledDates", enabledDates: "enabledDates", todayDate: "todayDate", minDate: "minDate", maxDate: "maxDate" }, outputs: { dateChange: "dateChange", dateSelect: "dateSelect", yearSelect: "yearSelect", previousMonthClicked: "previousMonthClicked", nextMonthClicked: "nextMonthClicked" }, host: { properties: { "class.has-year-navigator": "this._hasYearNavigator" } }, providers: [CalendarHelper], viewQueries: [{ propertyName: "calendarContainer", first: true, predicate: ["calendarContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button\n [disabled]=\"!_canNavigateBack\"\n (click)=\"_changeMonth(-1)\"\n kirby-button\n [noDecoration]=\"true\"\n class=\"no-margin\"\n >\n <kirby-icon name=\"arrow-back\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\">\n <span class=\"month\">{{ activeMonthName }}</span>\n <span *ngIf=\"!_hasYearNavigator\" class=\"year\">{{ activeYear }}</span>\n </div>\n\n <button\n [disabled]=\"!_canNavigateForward\"\n (click)=\"_changeMonth(1)\"\n kirby-button\n [noDecoration]=\"true\"\n class=\"no-margin\"\n >\n <kirby-icon name=\"arrow-more\"></kirby-icon>\n </button>\n </div>\n <kirby-dropdown\n *ngIf=\"_hasYearNavigator\"\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n ></kirby-dropdown>\n</div>\n\n<table>\n <thead>\n <tr>\n <th *ngFor=\"let weekDay of _weekDays\">{{ weekDay }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let week of _month\">\n <td *ngFor=\"let day of week\">\n <div\n (click)=\"_onDateSelected(day)\"\n class=\"{{ day.cssClasses }} contain-state-layer\"\n [class.selected]=\"day.isSelected\"\n >\n <span class=\"state-layer\" aria-hidden=\"true\"></span>\n <span class=\"content-layer\">{{ day.date }}</span>\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- <iframe src=\"kirby/components/calendar/calendar.webview.html\" #calendarContainer style=\"width: 320px; height: 304px; border: 0\"> -->\n", styles: ["table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}th,td{text-align:center;padding:0}th:first-child,td:first-child{padding-left:8px}th:last-child,td:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,th,td{background-color:transparent}.header{display:flex;justify-content:space-between;margin:8px 8px 0}.month-navigator{display:flex;flex-grow:1;align-items:center;justify-content:space-between}.month-navigator button:disabled{opacity:.5;pointer-events:none}.month-and-year{-webkit-user-select:none;user-select:none}.month-and-year .month{font-weight:700;margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;width:40px;height:40px;margin:4px 0;color:var(--color, var(--kirby-black));background-color:var(--background-color, transparent)}.day.disabled,.day:not(.selectable){--color: var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}@media (hover: hover){.day.today:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer}}.day.today:active,.day.today.interaction-state-active{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}@media (hover: hover){.day.selected:hover{--state-layer-opacity: .24;--state-layer-background-color: var(--kirby-black-contrast);cursor:pointer}}.day.selected:active,.day.selected.interaction-state-active{--state-layer-opacity: .36;--state-layer-background-color: var(--kirby-black-contrast)}.day:not(.current-month){pointer-events:none}.contain-state-layer{--state-layer-opacity: 0;--state-layer-background-color: var(--kirby-black);position:relative}.contain-state-layer .content-layer{position:relative;z-index:var(--content-layer-z-index, 1)}.contain-state-layer .state-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:2}.contain-state-layer .state-layer:before{transition:all 80ms linear 0ms;content:\"\";position:absolute;pointer-events:none;inset:-50%;opacity:var(--state-layer-opacity, 0);background-color:var(--state-layer-background-color, var(--kirby-black))}@media (hover: hover){.contain-state-layer:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer}}.contain-state-layer:active,.contain-state-layer.interaction-state-active{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black)}\n"], dependencies: [{ kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2.DropdownComponent, selector: "kirby-dropdown", inputs: ["items", "selectedIndex", "focusedIndex", "itemTextProperty", "placeholder", "popout", "attentionLevel", "expand", "disabled", "hasError", "size", "tabindex", "usePopover"], outputs: ["change"] }, { kind: "component", type: ButtonComponent, selector: "button[kirby-button],Button[kirby-button]", inputs: ["attentionLevel", "noDecoration", "themeColor", "expand", "isFloating", "size", "showIconOnly"] }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i3.IconComponent, selector: "kirby-icon", inputs: ["size", "name", "customName"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
464
462
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CalendarComponent, decorators: [{
|
|
465
463
|
type: Component,
|
|
466
|
-
args: [{ standalone: true, imports: [DropdownModule, ButtonComponent, IconModule, CommonModule], selector: 'kirby-calendar', providers: [CalendarHelper], template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button\n [disabled]=\"!_canNavigateBack\"\n (click)=\"_changeMonth(-1)\"\n kirby-button\n [noDecoration]=\"true\"\n class=\"no-margin\"\n >\n <kirby-icon name=\"arrow-back\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\">\n <span class=\"month\">{{ activeMonthName }}</span>\n <span *ngIf=\"!_hasYearNavigator\" class=\"year\">{{ activeYear }}</span>\n </div>\n\n <button\n [disabled]=\"!_canNavigateForward\"\n (click)=\"_changeMonth(1)\"\n kirby-button\n [noDecoration]=\"true\"\n class=\"no-margin\"\n >\n <kirby-icon name=\"arrow-more\"></kirby-icon>\n </button>\n </div>\n <kirby-dropdown\n *ngIf=\"_hasYearNavigator\"\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n ></kirby-dropdown>\n</div>\n\n<table>\n <thead>\n <tr>\n <th *ngFor=\"let weekDay of _weekDays\">{{ weekDay }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let week of _month\">\n <td *ngFor=\"let day of week\">\n <div\n (click)=\"_onDateSelected(day)\"\n class=\"{{ day.cssClasses }} contain-state-layer\"\n [class.selected]=\"day.isSelected\"\n >\n <span class=\"state-layer\" aria-hidden=\"true\"></span>\n <span class=\"content-layer\">{{ day.date }}</span>\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- <iframe src=\"kirby/components/calendar/calendar.webview.html\" #calendarContainer style=\"width: 320px; height: 304px; border: 0\"> -->\n", styles: ["table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}th,td{text-align:center;padding:0}th:first-child,td:first-child{padding-left:8px}th:last-child,td:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,th,td{background-color:transparent}.header{display:flex;justify-content:space-between;margin:8px 8px 0}.month-navigator{display:flex;flex-grow:1;align-items:center;justify-content:space-between}.month-navigator button:disabled{opacity:.5;pointer-events:none}.month-and-year{-webkit-user-select:none;user-select:none}.month-and-year .month{font-weight:700;margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;width:40px;height:40px;margin:4px 0;color:var(--color, var(--kirby-black));background-color:var(--background-color, transparent)}.day.disabled,.day:not(.selectable){--color: var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}@media (hover: hover){.day.today:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer}}.day.today:active,.day.today.interaction-state-active{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}@media (hover: hover){.day.selected:hover{--state-layer-opacity: .24;--state-layer-background-color: var(--kirby-black-contrast);cursor:pointer}}.day.selected:active,.day.selected.interaction-state-active{--state-layer-opacity: .36;--state-layer-background-color: var(--kirby-black-contrast)}.day:not(.current-month){
|
|
464
|
+
args: [{ standalone: true, imports: [DropdownModule, ButtonComponent, IconModule, CommonModule], selector: 'kirby-calendar', providers: [CalendarHelper], template: "<div class=\"header\">\n <div class=\"month-navigator\">\n <button\n [disabled]=\"!_canNavigateBack\"\n (click)=\"_changeMonth(-1)\"\n kirby-button\n [noDecoration]=\"true\"\n class=\"no-margin\"\n >\n <kirby-icon name=\"arrow-back\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\">\n <span class=\"month\">{{ activeMonthName }}</span>\n <span *ngIf=\"!_hasYearNavigator\" class=\"year\">{{ activeYear }}</span>\n </div>\n\n <button\n [disabled]=\"!_canNavigateForward\"\n (click)=\"_changeMonth(1)\"\n kirby-button\n [noDecoration]=\"true\"\n class=\"no-margin\"\n >\n <kirby-icon name=\"arrow-more\"></kirby-icon>\n </button>\n </div>\n <kirby-dropdown\n *ngIf=\"_hasYearNavigator\"\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n ></kirby-dropdown>\n</div>\n\n<table>\n <thead>\n <tr>\n <th *ngFor=\"let weekDay of _weekDays\">{{ weekDay }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let week of _month\">\n <td *ngFor=\"let day of week\">\n <div\n (click)=\"_onDateSelected(day)\"\n class=\"{{ day.cssClasses }} contain-state-layer\"\n [class.selected]=\"day.isSelected\"\n >\n <span class=\"state-layer\" aria-hidden=\"true\"></span>\n <span class=\"content-layer\">{{ day.date }}</span>\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- <iframe src=\"kirby/components/calendar/calendar.webview.html\" #calendarContainer style=\"width: 320px; height: 304px; border: 0\"> -->\n", styles: ["table{width:100%;border-collapse:collapse;-webkit-user-select:none;user-select:none;margin-bottom:8px}th,td{text-align:center;padding:0}th:first-child,td:first-child{padding-left:8px}th:last-child,td:last-child{padding-right:8px}th{height:50px;border-bottom:1px solid var(--kirby-background-color)}.header,th,td{background-color:transparent}.header{display:flex;justify-content:space-between;margin:8px 8px 0}.month-navigator{display:flex;flex-grow:1;align-items:center;justify-content:space-between}.month-navigator button:disabled{opacity:.5;pointer-events:none}.month-and-year{-webkit-user-select:none;user-select:none}.month-and-year .month{font-weight:700;margin-right:8px}:host(.has-year-navigator) .month-navigator{flex-grow:0}:host(.has-year-navigator) .month-and-year{width:80px;margin:0 8px;text-align:center}:host(.has-year-navigator) .month{margin-right:0}.day{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;width:40px;height:40px;margin:4px 0;color:var(--color, var(--kirby-black));background-color:var(--background-color, transparent)}.day.disabled,.day:not(.selectable){--color: var(--kirby-text-color-semi-dark)}.day.today{color:var(--kirby-medium-contrast);background-color:var(--kirby-medium)}@media (hover: hover){.day.today:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer}}.day.today:active,.day.today.interaction-state-active{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black)}.day.selected{color:var(--kirby-black-contrast);background-color:var(--kirby-black)}@media (hover: hover){.day.selected:hover{--state-layer-opacity: .24;--state-layer-background-color: var(--kirby-black-contrast);cursor:pointer}}.day.selected:active,.day.selected.interaction-state-active{--state-layer-opacity: .36;--state-layer-background-color: var(--kirby-black-contrast)}.day:not(.current-month){pointer-events:none}.contain-state-layer{--state-layer-opacity: 0;--state-layer-background-color: var(--kirby-black);position:relative}.contain-state-layer .content-layer{position:relative;z-index:var(--content-layer-z-index, 1)}.contain-state-layer .state-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:2}.contain-state-layer .state-layer:before{transition:all 80ms linear 0ms;content:\"\";position:absolute;pointer-events:none;inset:-50%;opacity:var(--state-layer-opacity, 0);background-color:var(--state-layer-background-color, var(--kirby-black))}@media (hover: hover){.contain-state-layer:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer}}.contain-state-layer:active,.contain-state-layer.interaction-state-active{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black)}\n"] }]
|
|
467
465
|
}], ctorParameters: function () {
|
|
468
466
|
return [{ type: CalendarHelper }, { type: undefined, decorators: [{
|
|
469
467
|
type: Inject,
|