@kirbydesign/designsystem 11.4.2 → 11.5.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/fesm2022/kirbydesign-designsystem-accordion.mjs +11 -11
- package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-action-group.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-action-group.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-avatar.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-badge.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-button.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-calendar.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-card.mjs +17 -17
- package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-chart.mjs +22 -22
- package/fesm2022/kirbydesign-designsystem-chart.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-checkbox.mjs +5 -5
- package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-data-table.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-data-table.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-divider.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-dropdown.mjs +12 -12
- package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-empty-state.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-flag.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-form-field.mjs +132 -113
- package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-header.mjs +20 -20
- package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-helpers.mjs +73 -10
- package/fesm2022/kirbydesign-designsystem-helpers.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-icon.mjs +10 -10
- package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-item-group.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-item-group.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-item.mjs +11 -11
- package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-list.mjs +40 -40
- package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +6 -6
- package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-menu.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-menu.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-modal.mjs +51 -51
- package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-page.mjs +41 -41
- package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-popover.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-popover.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +6 -6
- package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-radio.mjs +11 -11
- package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-range.mjs +5 -5
- package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-section-header.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-shared-floating.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-shared-portal.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-shared.mjs +18 -18
- package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-slide-button.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-slide.mjs +14 -14
- package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-spinner.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +11 -11
- package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-tabs.mjs +15 -15
- package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-testing-base.mjs +294 -287
- package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-testing.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-toast.mjs +6 -6
- package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-toggle.mjs +5 -5
- package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-types.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem.mjs +15 -15
- package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
- package/package.json +63 -63
- package/{accordion/index.d.ts → types/kirbydesign-designsystem-accordion.d.ts} +1 -1
- package/types/kirbydesign-designsystem-accordion.d.ts.map +1 -0
- package/{action-group/index.d.ts → types/kirbydesign-designsystem-action-group.d.ts} +1 -1
- package/types/kirbydesign-designsystem-action-group.d.ts.map +1 -0
- package/{avatar/index.d.ts → types/kirbydesign-designsystem-avatar.d.ts} +2 -2
- package/types/kirbydesign-designsystem-avatar.d.ts.map +1 -0
- package/{badge/index.d.ts → types/kirbydesign-designsystem-badge.d.ts} +1 -1
- package/types/kirbydesign-designsystem-badge.d.ts.map +1 -0
- package/{button/index.d.ts → types/kirbydesign-designsystem-button.d.ts} +2 -2
- package/types/kirbydesign-designsystem-button.d.ts.map +1 -0
- package/{calendar/index.d.ts → types/kirbydesign-designsystem-calendar.d.ts} +1 -1
- package/types/kirbydesign-designsystem-calendar.d.ts.map +1 -0
- package/{card/index.d.ts → types/kirbydesign-designsystem-card.d.ts} +2 -2
- package/types/kirbydesign-designsystem-card.d.ts.map +1 -0
- package/{chart/index.d.ts → types/kirbydesign-designsystem-chart.d.ts} +1 -1
- package/types/kirbydesign-designsystem-chart.d.ts.map +1 -0
- package/{checkbox/index.d.ts → types/kirbydesign-designsystem-checkbox.d.ts} +1 -1
- package/types/kirbydesign-designsystem-checkbox.d.ts.map +1 -0
- package/{config/index.d.ts → types/kirbydesign-designsystem-config.d.ts} +1 -1
- package/types/kirbydesign-designsystem-config.d.ts.map +1 -0
- package/{data-table/index.d.ts → types/kirbydesign-designsystem-data-table.d.ts} +1 -1
- package/types/kirbydesign-designsystem-data-table.d.ts.map +1 -0
- package/{divider/index.d.ts → types/kirbydesign-designsystem-divider.d.ts} +1 -1
- package/types/kirbydesign-designsystem-divider.d.ts.map +1 -0
- package/{dropdown/index.d.ts → types/kirbydesign-designsystem-dropdown.d.ts} +1 -1
- package/types/kirbydesign-designsystem-dropdown.d.ts.map +1 -0
- package/{empty-state/index.d.ts → types/kirbydesign-designsystem-empty-state.d.ts} +1 -1
- package/types/kirbydesign-designsystem-empty-state.d.ts.map +1 -0
- package/{fab-sheet/index.d.ts → types/kirbydesign-designsystem-fab-sheet.d.ts} +1 -1
- package/types/kirbydesign-designsystem-fab-sheet.d.ts.map +1 -0
- package/{flag/index.d.ts → types/kirbydesign-designsystem-flag.d.ts} +1 -1
- package/types/kirbydesign-designsystem-flag.d.ts.map +1 -0
- package/{form-field/index.d.ts → types/kirbydesign-designsystem-form-field.d.ts} +21 -24
- package/types/kirbydesign-designsystem-form-field.d.ts.map +1 -0
- package/{header/index.d.ts → types/kirbydesign-designsystem-header.d.ts} +1 -1
- package/types/kirbydesign-designsystem-header.d.ts.map +1 -0
- package/{helpers/scss/index.d.ts → types/kirbydesign-designsystem-helpers-scss.d.ts} +1 -1
- package/types/kirbydesign-designsystem-helpers-scss.d.ts.map +1 -0
- package/{helpers/index.d.ts → types/kirbydesign-designsystem-helpers.d.ts} +81 -13
- package/types/kirbydesign-designsystem-helpers.d.ts.map +1 -0
- package/{icon/index.d.ts → types/kirbydesign-designsystem-icon.d.ts} +1 -1
- package/types/kirbydesign-designsystem-icon.d.ts.map +1 -0
- package/{item-group/index.d.ts → types/kirbydesign-designsystem-item-group.d.ts} +1 -1
- package/types/kirbydesign-designsystem-item-group.d.ts.map +1 -0
- package/{item-sliding/index.d.ts → types/kirbydesign-designsystem-item-sliding.d.ts} +1 -1
- package/types/kirbydesign-designsystem-item-sliding.d.ts.map +1 -0
- package/{item/index.d.ts → types/kirbydesign-designsystem-item.d.ts} +1 -1
- package/types/kirbydesign-designsystem-item.d.ts.map +1 -0
- package/{kirby-app/index.d.ts → types/kirbydesign-designsystem-kirby-app.d.ts} +1 -1
- package/types/kirbydesign-designsystem-kirby-app.d.ts.map +1 -0
- package/{list/index.d.ts → types/kirbydesign-designsystem-list.d.ts} +1 -1
- package/types/kirbydesign-designsystem-list.d.ts.map +1 -0
- package/{loading-overlay/index.d.ts → types/kirbydesign-designsystem-loading-overlay.d.ts} +1 -1
- package/types/kirbydesign-designsystem-loading-overlay.d.ts.map +1 -0
- package/{menu/index.d.ts → types/kirbydesign-designsystem-menu.d.ts} +1 -1
- package/types/kirbydesign-designsystem-menu.d.ts.map +1 -0
- package/{modal/index.d.ts → types/kirbydesign-designsystem-modal.d.ts} +2 -2
- package/types/kirbydesign-designsystem-modal.d.ts.map +1 -0
- package/{page/index.d.ts → types/kirbydesign-designsystem-page.d.ts} +1 -1
- package/types/kirbydesign-designsystem-page.d.ts.map +1 -0
- package/{popover/index.d.ts → types/kirbydesign-designsystem-popover.d.ts} +1 -1
- package/types/kirbydesign-designsystem-popover.d.ts.map +1 -0
- package/{progress-circle/index.d.ts → types/kirbydesign-designsystem-progress-circle.d.ts} +1 -1
- package/types/kirbydesign-designsystem-progress-circle.d.ts.map +1 -0
- package/{radio/index.d.ts → types/kirbydesign-designsystem-radio.d.ts} +1 -1
- package/types/kirbydesign-designsystem-radio.d.ts.map +1 -0
- package/{range/index.d.ts → types/kirbydesign-designsystem-range.d.ts} +1 -1
- package/types/kirbydesign-designsystem-range.d.ts.map +1 -0
- package/{reorder-list/index.d.ts → types/kirbydesign-designsystem-reorder-list.d.ts} +1 -1
- package/types/kirbydesign-designsystem-reorder-list.d.ts.map +1 -0
- package/{router-outlet/index.d.ts → types/kirbydesign-designsystem-router-outlet.d.ts} +1 -1
- package/types/kirbydesign-designsystem-router-outlet.d.ts.map +1 -0
- package/{section-header/index.d.ts → types/kirbydesign-designsystem-section-header.d.ts} +1 -1
- package/types/kirbydesign-designsystem-section-header.d.ts.map +1 -0
- package/{shared/floating/index.d.ts → types/kirbydesign-designsystem-shared-floating.d.ts} +1 -1
- package/types/kirbydesign-designsystem-shared-floating.d.ts.map +1 -0
- package/{shared/portal/index.d.ts → types/kirbydesign-designsystem-shared-portal.d.ts} +1 -1
- package/types/kirbydesign-designsystem-shared-portal.d.ts.map +1 -0
- package/{shared/index.d.ts → types/kirbydesign-designsystem-shared.d.ts} +1 -1
- package/types/kirbydesign-designsystem-shared.d.ts.map +1 -0
- package/{slide-button/index.d.ts → types/kirbydesign-designsystem-slide-button.d.ts} +1 -1
- package/types/kirbydesign-designsystem-slide-button.d.ts.map +1 -0
- package/{slide/index.d.ts → types/kirbydesign-designsystem-slide.d.ts} +1 -1
- package/types/kirbydesign-designsystem-slide.d.ts.map +1 -0
- package/{spinner/index.d.ts → types/kirbydesign-designsystem-spinner.d.ts} +1 -1
- package/types/kirbydesign-designsystem-spinner.d.ts.map +1 -0
- package/{tab-navigation/index.d.ts → types/kirbydesign-designsystem-tab-navigation.d.ts} +1 -1
- package/types/kirbydesign-designsystem-tab-navigation.d.ts.map +1 -0
- package/{tabs/index.d.ts → types/kirbydesign-designsystem-tabs.d.ts} +1 -1
- package/types/kirbydesign-designsystem-tabs.d.ts.map +1 -0
- package/{testing-base/index.d.ts → types/kirbydesign-designsystem-testing-base.d.ts} +5 -3
- package/types/kirbydesign-designsystem-testing-base.d.ts.map +1 -0
- package/{testing-jasmine/index.d.ts → types/kirbydesign-designsystem-testing-jasmine.d.ts} +1 -1
- package/types/kirbydesign-designsystem-testing-jasmine.d.ts.map +1 -0
- package/{testing-jest/index.d.ts → types/kirbydesign-designsystem-testing-jest.d.ts} +1 -1
- package/types/kirbydesign-designsystem-testing-jest.d.ts.map +1 -0
- package/{testing/index.d.ts → types/kirbydesign-designsystem-testing.d.ts} +1 -1
- package/types/kirbydesign-designsystem-testing.d.ts.map +1 -0
- package/{toast/index.d.ts → types/kirbydesign-designsystem-toast.d.ts} +1 -1
- package/types/kirbydesign-designsystem-toast.d.ts.map +1 -0
- package/{toggle-button/index.d.ts → types/kirbydesign-designsystem-toggle-button.d.ts} +1 -1
- package/types/kirbydesign-designsystem-toggle-button.d.ts.map +1 -0
- package/{toggle/index.d.ts → types/kirbydesign-designsystem-toggle.d.ts} +1 -1
- package/types/kirbydesign-designsystem-toggle.d.ts.map +1 -0
- package/types/{index.d.ts → kirbydesign-designsystem-types.d.ts} +1 -1
- package/types/kirbydesign-designsystem-types.d.ts.map +1 -0
- package/{index.d.ts → types/kirbydesign-designsystem.d.ts} +1 -1
- package/types/kirbydesign-designsystem.d.ts.map +1 -0
- package/accordion/index.d.ts.map +0 -1
- package/action-group/index.d.ts.map +0 -1
- package/avatar/index.d.ts.map +0 -1
- package/badge/index.d.ts.map +0 -1
- package/button/index.d.ts.map +0 -1
- package/calendar/index.d.ts.map +0 -1
- package/card/index.d.ts.map +0 -1
- package/chart/index.d.ts.map +0 -1
- package/checkbox/index.d.ts.map +0 -1
- package/config/index.d.ts.map +0 -1
- package/data-table/index.d.ts.map +0 -1
- package/divider/index.d.ts.map +0 -1
- package/dropdown/index.d.ts.map +0 -1
- package/empty-state/index.d.ts.map +0 -1
- package/fab-sheet/index.d.ts.map +0 -1
- package/flag/index.d.ts.map +0 -1
- package/form-field/index.d.ts.map +0 -1
- package/header/index.d.ts.map +0 -1
- package/helpers/index.d.ts.map +0 -1
- package/helpers/scss/index.d.ts.map +0 -1
- package/icon/index.d.ts.map +0 -1
- package/index.d.ts.map +0 -1
- package/item/index.d.ts.map +0 -1
- package/item-group/index.d.ts.map +0 -1
- package/item-sliding/index.d.ts.map +0 -1
- package/kirby-app/index.d.ts.map +0 -1
- package/list/index.d.ts.map +0 -1
- package/loading-overlay/index.d.ts.map +0 -1
- package/menu/index.d.ts.map +0 -1
- package/modal/index.d.ts.map +0 -1
- package/page/index.d.ts.map +0 -1
- package/popover/index.d.ts.map +0 -1
- package/progress-circle/index.d.ts.map +0 -1
- package/radio/index.d.ts.map +0 -1
- package/range/index.d.ts.map +0 -1
- package/reorder-list/index.d.ts.map +0 -1
- package/router-outlet/index.d.ts.map +0 -1
- package/section-header/index.d.ts.map +0 -1
- package/shared/floating/index.d.ts.map +0 -1
- package/shared/index.d.ts.map +0 -1
- package/shared/portal/index.d.ts.map +0 -1
- package/slide/index.d.ts.map +0 -1
- package/slide-button/index.d.ts.map +0 -1
- package/spinner/index.d.ts.map +0 -1
- package/tab-navigation/index.d.ts.map +0 -1
- package/tabs/index.d.ts.map +0 -1
- package/testing/index.d.ts.map +0 -1
- package/testing-base/index.d.ts.map +0 -1
- package/testing-jasmine/index.d.ts.map +0 -1
- package/testing-jest/index.d.ts.map +0 -1
- package/toast/index.d.ts.map +0 -1
- package/toggle/index.d.ts.map +0 -1
- package/toggle-button/index.d.ts.map +0 -1
- package/types/index.d.ts.map +0 -1
|
@@ -100,10 +100,10 @@ class PlatformService {
|
|
|
100
100
|
const query = `(min-width: ${DesignTokenHelper.breakpoints.medium})`;
|
|
101
101
|
return this.windowRef.nativeWindow.matchMedia(query).matches;
|
|
102
102
|
}
|
|
103
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
104
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
103
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PlatformService, deps: [{ token: i1.WindowRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
104
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PlatformService, providedIn: 'root' }); }
|
|
105
105
|
}
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PlatformService, decorators: [{
|
|
107
107
|
type: Injectable,
|
|
108
108
|
args: [{
|
|
109
109
|
providedIn: 'root',
|
|
@@ -271,10 +271,10 @@ class LineClampHelper {
|
|
|
271
271
|
this.renderer.removeStyle(element, config.lineClamp);
|
|
272
272
|
this.renderer.removeStyle(element, config.lineHeight);
|
|
273
273
|
}
|
|
274
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
275
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
274
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LineClampHelper, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
275
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LineClampHelper }); }
|
|
276
276
|
}
|
|
277
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
277
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LineClampHelper, decorators: [{
|
|
278
278
|
type: Injectable
|
|
279
279
|
}], ctorParameters: () => [{ type: i0.Renderer2 }] });
|
|
280
280
|
|
|
@@ -307,13 +307,76 @@ class IonicElementPartHelper {
|
|
|
307
307
|
return;
|
|
308
308
|
this.renderer.setAttribute(partElement, 'part', partName);
|
|
309
309
|
}
|
|
310
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
311
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
310
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IonicElementPartHelper, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
311
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IonicElementPartHelper }); }
|
|
312
312
|
}
|
|
313
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IonicElementPartHelper, decorators: [{
|
|
314
314
|
type: Injectable
|
|
315
315
|
}], ctorParameters: () => [{ type: i0.Renderer2 }] });
|
|
316
316
|
|
|
317
|
+
/**
|
|
318
|
+
* Extends the methods of provided ControlValueAccessors.
|
|
319
|
+
*
|
|
320
|
+
* This utility wraps the control value accessor methods to add custom behavior while preserving
|
|
321
|
+
* the original functionality. Its used to:
|
|
322
|
+
* - Emit kirbyChange when values are written programmatically
|
|
323
|
+
* - Transform or normalize values before they're passed to form controls to work with inputmasking
|
|
324
|
+
*
|
|
325
|
+
* @param accessors - Array of ControlValueAccessors to extend, typically injected via `NG_VALUE_ACCESSOR`
|
|
326
|
+
* @param config - Configuration specifying which methods to extend and how
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* // Simple usage - emit changes when writeValue is called
|
|
330
|
+
* extendValueAccessors(this.valueAccessors, {
|
|
331
|
+
* writeValue: {
|
|
332
|
+
* afterWriteValue: (value) => this.kirbyChange.emit(value)
|
|
333
|
+
* }
|
|
334
|
+
* });
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* // Advanced usage - transform values in registerOnChange
|
|
338
|
+
* extendValueAccessors(this.valueAccessors, {
|
|
339
|
+
* writeValue: {
|
|
340
|
+
* afterWriteValue: (value) => this.updateDisplay(value)
|
|
341
|
+
* },
|
|
342
|
+
* registerOnChange: {
|
|
343
|
+
* transformValue: (value) => this.normalizeValue(value)
|
|
344
|
+
* }
|
|
345
|
+
* });
|
|
346
|
+
*/
|
|
347
|
+
function extendValueAccessors(accessors, config) {
|
|
348
|
+
if (!accessors)
|
|
349
|
+
return;
|
|
350
|
+
accessors.forEach((accessor) => {
|
|
351
|
+
if (config.writeValue) {
|
|
352
|
+
extendWriteValue(accessor, config.writeValue);
|
|
353
|
+
}
|
|
354
|
+
if (config.registerOnChange) {
|
|
355
|
+
extendRegisterOnChange(accessor, config.registerOnChange);
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
function extendWriteValue(accessor, extension) {
|
|
360
|
+
const originalWriteValue = accessor.writeValue?.bind(accessor);
|
|
361
|
+
accessor.writeValue = (value) => {
|
|
362
|
+
if (originalWriteValue) {
|
|
363
|
+
originalWriteValue(value);
|
|
364
|
+
}
|
|
365
|
+
extension.afterWriteValue(value);
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
function extendRegisterOnChange(accessor, extension) {
|
|
369
|
+
const originalRegisterOnChange = accessor.registerOnChange?.bind(accessor);
|
|
370
|
+
if (originalRegisterOnChange) {
|
|
371
|
+
accessor.registerOnChange = (fn) => {
|
|
372
|
+
const wrappedFn = (value) => {
|
|
373
|
+
fn(extension.transformValue(value));
|
|
374
|
+
};
|
|
375
|
+
originalRegisterOnChange(wrappedFn);
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
|
|
317
380
|
// re-export helpers from core, to preserve backwards compatability
|
|
318
381
|
// of 'designsystem' library
|
|
319
382
|
|
|
@@ -321,5 +384,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
321
384
|
* Generated bundle index. Do not edit.
|
|
322
385
|
*/
|
|
323
386
|
|
|
324
|
-
export { IonicElementPartHelper, KirbyAnimation, LineClampHelper, PlatformService, StringSearchHelper, UniqueIdGenerator, chartConfigHasType, deepCopy, elementHasAncestor, getIonModalDialogAncestor, mergeDeep, mergeDeepAll, observeContent };
|
|
387
|
+
export { IonicElementPartHelper, KirbyAnimation, LineClampHelper, PlatformService, StringSearchHelper, UniqueIdGenerator, chartConfigHasType, deepCopy, elementHasAncestor, extendValueAccessors, getIonModalDialogAncestor, mergeDeep, mergeDeepAll, observeContent };
|
|
325
388
|
//# sourceMappingURL=kirbydesign-designsystem-helpers.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-helpers.mjs","sources":["../../helpers/src/element-ancestor-utils.ts","../../helpers/src/content-mutation-observer.ts","../../helpers/src/platform.service.ts","../../helpers/src/chart-config-has-type.ts","../../helpers/src/deep-copy.ts","../../helpers/src/merge-deep.ts","../../helpers/src/unique-id-generator.helper.ts","../../helpers/src/string-search.helper.ts","../../helpers/src/line-clamp-helper.ts","../../helpers/src/kirby-animation.ts","../../helpers/src/ionic-element-part-helper.ts","../../helpers/src/public_api.ts","../../helpers/src/kirbydesign-designsystem-helpers.ts"],"sourcesContent":["/* \n Utility function to check if a given element \n has an ancestor with a specific node name. \n\n Can be given a 'stopNodeName' to limit the search\n as to not climb all the way up through the DOM tree. \n\n Returns true when element has the ancestorNodeName \n or an ancestor has the ancestorNodeName. \n\n Returns false otherwise.\n*/\n\nexport const elementHasAncestor = (\n element: HTMLElement,\n ancestorNodeName: string,\n stopNodeName?: string\n) => {\n switch (element?.nodeName) {\n case undefined:\n case stopNodeName?.toUpperCase():\n return false;\n case ancestorNodeName.toUpperCase():\n return true;\n default:\n return elementHasAncestor(element.parentElement, ancestorNodeName, stopNodeName);\n }\n};\n\n/*\n * Utility function to find the closest ancestor modal and\n * get the element with a dialog role from within its shadow root.\n */\nexport function getIonModalDialogAncestor(currentElement: HTMLElement): HTMLElement | undefined {\n const ionModalElement = currentElement.closest('ion-modal');\n const modalElementDialog = ionModalElement?.shadowRoot?.querySelector(\n '[role=\"dialog\"]'\n ) as HTMLElement;\n return modalElementDialog;\n}\n","import { UnobserveFn } from '@kirbydesign/designsystem/types';\n\n/* Function based on https://github.com/angular/components/blob/main/src/cdk/observers/observe-content.ts\n * Angular may add, remove, or edit comment nodes during change detection. We don't care about\n * these changes because they don't affect the user-preceived content, and worse it can cause\n * infinite change detection cycles where the change detection updates a comment, triggering the\n * MutationObserver, triggering another change detection and kicking the cycle off again. */\nfunction shouldIgnoreMutationRecord(record: MutationRecord) {\n // Ignore changes to comment text.\n if (record.type === 'characterData' && record.target instanceof Comment) {\n return true;\n }\n // Ignore addition / removal of comments.\n if (record.type === 'childList') {\n for (let i = 0; i < record.addedNodes.length; i++) {\n if (!(record.addedNodes[i] instanceof Comment)) {\n return false;\n }\n }\n for (let i = 0; i < record.removedNodes.length; i++) {\n if (!(record.removedNodes[i] instanceof Comment)) {\n return false;\n }\n }\n return true;\n }\n // Observe everything else.\n return false;\n}\n\n/**\n * Creates a MutationObserver and observes content changes in a given element.\n * The provided callback is called when changes are detected.\n *\n * @returns function - an unobserve function that can be called to disconnect the created observer.\n */\nexport function observeContent(\n observedElement: HTMLElement,\n contentChangedCallback: () => void\n): UnobserveFn {\n const mutationObserver = new MutationObserver((mutations) => {\n const filteredMutations = mutations.filter((mutation) => !shouldIgnoreMutationRecord(mutation));\n if (filteredMutations.length > 0) {\n contentChangedCallback();\n }\n });\n\n mutationObserver.observe(observedElement, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n\n return () => {\n mutationObserver.disconnect();\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { DesignTokenHelper } from './design-token-helper';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformService {\n constructor(private windowRef: WindowRef) {}\n\n isTouch() {\n const isTouchDeviceQuery = '(pointer: coarse)'; // No check for `hover: none`, as Samsung Galaxy will return false on `hover: none` media query\n return this.windowRef.nativeWindow.matchMedia(isTouchDeviceQuery).matches;\n }\n\n isPhabletOrBigger() {\n const query = `(min-width: ${DesignTokenHelper.breakpoints.medium})`;\n return this.windowRef.nativeWindow.matchMedia(query).matches;\n }\n}\n","import { ChartConfiguration, ChartConfigurationCustomTypesPerDataset } from 'chart.js';\n\n/* \n Type guard is needed as of chart.js@3.8.1. The config type has been updated to a union type, \n and the newly added type 'ChartConfigurationCustomTypesPerDataset' does not contain the 'type' property.\n Typescript will throw an error, when trying to access a property that doesn't exist on all union types,\n unless a type guard is used. \n*/\n\nexport const chartConfigHasType = (\n config: ChartConfiguration | ChartConfigurationCustomTypesPerDataset\n): config is ChartConfiguration => {\n return 'type' in config;\n};\n","/*\nCopied from https://github.com/ykdr8/ts-deepcopy.\n\nMIT License\n\nCopyright (c) 2017 ykdr2017\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n */\nexport function deepCopy<Tp>(tgt: Tp): Tp {\n let cp: Tp;\n if (tgt === null) {\n cp = tgt;\n } else if (tgt instanceof Date) {\n cp = new Date((tgt as any).getTime()) as any;\n } else if (Array.isArray(tgt)) {\n cp = [] as any;\n (tgt as any[]).forEach((v) => {\n (cp as any).push(v);\n });\n cp = (cp as any).map((n: any) => deepCopy<any>(n));\n } else if (typeof tgt === 'object') {\n cp = { ...(tgt as Tp) } as Tp;\n Object.keys(cp).forEach((k) => {\n (cp as any)[k] = deepCopy<any>((cp as any)[k]);\n });\n } else {\n cp = tgt;\n }\n return cp;\n}\n","/**\n * Performs a deep merge of objects and returns new object. Does not modify\n * objects (immutable).\n * It merges from into object to the left\n * eg. mergeDeep({a: 'will be overridden', b: 'some val'}, {a: 'new val'}) => {a: 'new val', b: 'some val'}\n *\n * @param originalObject object - Object to override,\n * @param overrideObject object - Object to override \"toOverride\" values with\n * @param config object - Configuration for how to merge.\n * mergeArrays determines if it should merge or override arrays\n * @returns object - New object with merged key/values\n */\nexport function mergeDeep(originalObject, overrideObject, config = { mergeArrays: false }) {\n const isObject = (obj) => obj && typeof obj === 'object';\n\n return [originalObject, overrideObject].reduce((mergedObject, obj) => {\n Object.keys(obj).forEach((key) => {\n const mergedObjectValue = mergedObject[key];\n const overrideObjectValue = obj[key];\n\n if (Array.isArray(mergedObjectValue) && Array.isArray(overrideObjectValue)) {\n mergedObject[key] = config.mergeArrays\n ? mergedObjectValue.concat(overrideObjectValue)\n : overrideObjectValue;\n } else if (isObject(mergedObjectValue) && isObject(overrideObjectValue)) {\n mergedObject[key] = mergeDeep(mergedObjectValue, overrideObjectValue);\n } else {\n mergedObject[key] = overrideObjectValue;\n }\n });\n\n return mergedObject;\n }, {});\n}\n\nexport function mergeDeepAll(...objects: object[]): object {\n const objectsWithoutUndefined = objects.filter((object) => object !== undefined);\n return objectsWithoutUndefined.reduce((originalObject, overrideObject) =>\n mergeDeep(originalObject, overrideObject)\n );\n}\n","export class UniqueIdGenerator {\n private static registry = new Map<string, UniqueIdGenerator>();\n private id = 0;\n\n private constructor(private scope: string) {}\n\n static scopedTo(scope: string) {\n let scopedGenerator = UniqueIdGenerator.registry.get(scope);\n if (!scopedGenerator) {\n scopedGenerator = new UniqueIdGenerator(scope);\n UniqueIdGenerator.registry.set(scope, scopedGenerator);\n }\n return scopedGenerator;\n }\n\n next(): string {\n return `${this.scope}-${this.id++}`;\n }\n}\n","export class StringSearchHelper {\n static getIndexByFirstMatchingStartString(\n searchString: string,\n words: string[],\n startIndex: number\n ): number {\n searchString = searchString.toLowerCase();\n\n const wordsStartingWithMatchString = words\n .map((word, index) => {\n return { word: word.toLowerCase(), index };\n })\n .filter((match) => match.word.startsWith(searchString));\n\n if (wordsStartingWithMatchString.length === 0) {\n return -1;\n }\n\n const firstWordStartingWithChar = wordsStartingWithMatchString[0];\n const nextWordStartingWithChar = wordsStartingWithMatchString.find(\n (wordAndIndex) => wordAndIndex.index >= startIndex\n );\n\n return nextWordStartingWithChar?.index ?? firstWordStartingWithChar.index;\n }\n\n static isPrintableCharacter(key: string): boolean {\n return key.length === 1 && /\\S/.test(key);\n }\n}\n","import { Injectable, Renderer2, RendererStyleFlags2 } from '@angular/core';\n\nconst config = Object.freeze({\n className: 'kirby-line-clamp',\n lineClamp: '--line-clamp',\n lineHeight: '--line-height',\n});\n\n@Injectable()\nexport class LineClampHelper {\n constructor(private renderer: Renderer2) {}\n\n setMaxLines(element: Element, maxLines: number): void {\n this.renderer.setStyle(element, config.lineClamp, maxLines, RendererStyleFlags2.DashCase);\n this.renderer.addClass(element, config.className);\n }\n\n setLineHeight(element: Element, lineHeight: string): void {\n // Only necessary for the fallback solution to work\n this.renderer.setStyle(element, config.lineHeight, lineHeight, RendererStyleFlags2.DashCase);\n }\n\n removeLineClamp(element: Element) {\n this.renderer.removeClass(element, config.className);\n this.renderer.removeStyle(element, config.lineClamp);\n this.renderer.removeStyle(element, config.lineHeight);\n }\n}\n","/* eslint-disable @typescript-eslint/no-namespace */\nimport { DesignTokenHelper } from './design-token-helper';\n\nexport namespace KirbyAnimation {\n export enum Duration {\n // Duration in milliseconds\n QUICK = parseInt(DesignTokenHelper.transitionDuration('quick')),\n SHORT = parseInt(DesignTokenHelper.transitionDuration('short')),\n LONG = parseInt(DesignTokenHelper.transitionDuration('long')),\n EXTRA_LONG = parseInt(DesignTokenHelper.transitionDuration('extraLong')),\n }\n export const Easing = DesignTokenHelper.transitionEasings();\n}\n","import { ElementRef, Injectable, Renderer2 } from '@angular/core';\nimport { componentOnReady } from '@ionic/core';\n\n@Injectable()\nexport class IonicElementPartHelper {\n constructor(private renderer: Renderer2) {}\n\n public async setPart(partName: string, ionicElementRef: ElementRef, selector: string) {\n // Ensure custom element has been defined and rendered\n await customElements.whenDefined(ionicElementRef.nativeElement.localName);\n const customElement = await new Promise<HTMLElement>((resolve) => {\n componentOnReady(ionicElementRef.nativeElement, (element) => resolve(element));\n });\n\n const partElement: HTMLElement = customElement.shadowRoot.querySelector(selector);\n if (!partElement) return;\n\n this.renderer.setAttribute(partElement, 'part', partName);\n }\n}\n","// re-export helpers from core, to preserve backwards compatability\n// of 'designsystem' library\nexport * from './element-ancestor-utils';\nexport * from './color-helper';\nexport * from './content-mutation-observer';\nexport * from './design-token-helper';\nexport * from './string-helper';\nexport * from './theme-color.type';\nexport * from './platform.service';\nexport * from './chart-config-has-type';\nexport * from './deep-copy';\nexport * from './merge-deep';\nexport * from './unique-id-generator.helper';\nexport * from './string-search.helper';\nexport * from './line-clamp-helper';\nexport * from './kirby-animation';\nexport * from './ionic-element-part-helper';\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-helpers.mjs","sources":["../../helpers/src/element-ancestor-utils.ts","../../helpers/src/content-mutation-observer.ts","../../helpers/src/platform.service.ts","../../helpers/src/chart-config-has-type.ts","../../helpers/src/deep-copy.ts","../../helpers/src/merge-deep.ts","../../helpers/src/unique-id-generator.helper.ts","../../helpers/src/string-search.helper.ts","../../helpers/src/line-clamp-helper.ts","../../helpers/src/kirby-animation.ts","../../helpers/src/ionic-element-part-helper.ts","../../helpers/src/value-accessor-helper.ts","../../helpers/src/public_api.ts","../../helpers/src/kirbydesign-designsystem-helpers.ts"],"sourcesContent":["/* \n Utility function to check if a given element \n has an ancestor with a specific node name. \n\n Can be given a 'stopNodeName' to limit the search\n as to not climb all the way up through the DOM tree. \n\n Returns true when element has the ancestorNodeName \n or an ancestor has the ancestorNodeName. \n\n Returns false otherwise.\n*/\n\nexport const elementHasAncestor = (\n element: HTMLElement,\n ancestorNodeName: string,\n stopNodeName?: string\n) => {\n switch (element?.nodeName) {\n case undefined:\n case stopNodeName?.toUpperCase():\n return false;\n case ancestorNodeName.toUpperCase():\n return true;\n default:\n return elementHasAncestor(element.parentElement, ancestorNodeName, stopNodeName);\n }\n};\n\n/*\n * Utility function to find the closest ancestor modal and\n * get the element with a dialog role from within its shadow root.\n */\nexport function getIonModalDialogAncestor(currentElement: HTMLElement): HTMLElement | undefined {\n const ionModalElement = currentElement.closest('ion-modal');\n const modalElementDialog = ionModalElement?.shadowRoot?.querySelector(\n '[role=\"dialog\"]'\n ) as HTMLElement;\n return modalElementDialog;\n}\n","import { UnobserveFn } from '@kirbydesign/designsystem/types';\n\n/* Function based on https://github.com/angular/components/blob/main/src/cdk/observers/observe-content.ts\n * Angular may add, remove, or edit comment nodes during change detection. We don't care about\n * these changes because they don't affect the user-preceived content, and worse it can cause\n * infinite change detection cycles where the change detection updates a comment, triggering the\n * MutationObserver, triggering another change detection and kicking the cycle off again. */\nfunction shouldIgnoreMutationRecord(record: MutationRecord) {\n // Ignore changes to comment text.\n if (record.type === 'characterData' && record.target instanceof Comment) {\n return true;\n }\n // Ignore addition / removal of comments.\n if (record.type === 'childList') {\n for (let i = 0; i < record.addedNodes.length; i++) {\n if (!(record.addedNodes[i] instanceof Comment)) {\n return false;\n }\n }\n for (let i = 0; i < record.removedNodes.length; i++) {\n if (!(record.removedNodes[i] instanceof Comment)) {\n return false;\n }\n }\n return true;\n }\n // Observe everything else.\n return false;\n}\n\n/**\n * Creates a MutationObserver and observes content changes in a given element.\n * The provided callback is called when changes are detected.\n *\n * @returns function - an unobserve function that can be called to disconnect the created observer.\n */\nexport function observeContent(\n observedElement: HTMLElement,\n contentChangedCallback: () => void\n): UnobserveFn {\n const mutationObserver = new MutationObserver((mutations) => {\n const filteredMutations = mutations.filter((mutation) => !shouldIgnoreMutationRecord(mutation));\n if (filteredMutations.length > 0) {\n contentChangedCallback();\n }\n });\n\n mutationObserver.observe(observedElement, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n\n return () => {\n mutationObserver.disconnect();\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { DesignTokenHelper } from './design-token-helper';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformService {\n constructor(private windowRef: WindowRef) {}\n\n isTouch() {\n const isTouchDeviceQuery = '(pointer: coarse)'; // No check for `hover: none`, as Samsung Galaxy will return false on `hover: none` media query\n return this.windowRef.nativeWindow.matchMedia(isTouchDeviceQuery).matches;\n }\n\n isPhabletOrBigger() {\n const query = `(min-width: ${DesignTokenHelper.breakpoints.medium})`;\n return this.windowRef.nativeWindow.matchMedia(query).matches;\n }\n}\n","import { ChartConfiguration, ChartConfigurationCustomTypesPerDataset } from 'chart.js';\n\n/* \n Type guard is needed as of chart.js@3.8.1. The config type has been updated to a union type, \n and the newly added type 'ChartConfigurationCustomTypesPerDataset' does not contain the 'type' property.\n Typescript will throw an error, when trying to access a property that doesn't exist on all union types,\n unless a type guard is used. \n*/\n\nexport const chartConfigHasType = (\n config: ChartConfiguration | ChartConfigurationCustomTypesPerDataset\n): config is ChartConfiguration => {\n return 'type' in config;\n};\n","/*\nCopied from https://github.com/ykdr8/ts-deepcopy.\n\nMIT License\n\nCopyright (c) 2017 ykdr2017\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n */\nexport function deepCopy<Tp>(tgt: Tp): Tp {\n let cp: Tp;\n if (tgt === null) {\n cp = tgt;\n } else if (tgt instanceof Date) {\n cp = new Date((tgt as any).getTime()) as any;\n } else if (Array.isArray(tgt)) {\n cp = [] as any;\n (tgt as any[]).forEach((v) => {\n (cp as any).push(v);\n });\n cp = (cp as any).map((n: any) => deepCopy<any>(n));\n } else if (typeof tgt === 'object') {\n cp = { ...(tgt as Tp) } as Tp;\n Object.keys(cp).forEach((k) => {\n (cp as any)[k] = deepCopy<any>((cp as any)[k]);\n });\n } else {\n cp = tgt;\n }\n return cp;\n}\n","/**\n * Performs a deep merge of objects and returns new object. Does not modify\n * objects (immutable).\n * It merges from into object to the left\n * eg. mergeDeep({a: 'will be overridden', b: 'some val'}, {a: 'new val'}) => {a: 'new val', b: 'some val'}\n *\n * @param originalObject object - Object to override,\n * @param overrideObject object - Object to override \"toOverride\" values with\n * @param config object - Configuration for how to merge.\n * mergeArrays determines if it should merge or override arrays\n * @returns object - New object with merged key/values\n */\nexport function mergeDeep(originalObject, overrideObject, config = { mergeArrays: false }) {\n const isObject = (obj) => obj && typeof obj === 'object';\n\n return [originalObject, overrideObject].reduce((mergedObject, obj) => {\n Object.keys(obj).forEach((key) => {\n const mergedObjectValue = mergedObject[key];\n const overrideObjectValue = obj[key];\n\n if (Array.isArray(mergedObjectValue) && Array.isArray(overrideObjectValue)) {\n mergedObject[key] = config.mergeArrays\n ? mergedObjectValue.concat(overrideObjectValue)\n : overrideObjectValue;\n } else if (isObject(mergedObjectValue) && isObject(overrideObjectValue)) {\n mergedObject[key] = mergeDeep(mergedObjectValue, overrideObjectValue);\n } else {\n mergedObject[key] = overrideObjectValue;\n }\n });\n\n return mergedObject;\n }, {});\n}\n\nexport function mergeDeepAll(...objects: object[]): object {\n const objectsWithoutUndefined = objects.filter((object) => object !== undefined);\n return objectsWithoutUndefined.reduce((originalObject, overrideObject) =>\n mergeDeep(originalObject, overrideObject)\n );\n}\n","export class UniqueIdGenerator {\n private static registry = new Map<string, UniqueIdGenerator>();\n private id = 0;\n\n private constructor(private scope: string) {}\n\n static scopedTo(scope: string) {\n let scopedGenerator = UniqueIdGenerator.registry.get(scope);\n if (!scopedGenerator) {\n scopedGenerator = new UniqueIdGenerator(scope);\n UniqueIdGenerator.registry.set(scope, scopedGenerator);\n }\n return scopedGenerator;\n }\n\n next(): string {\n return `${this.scope}-${this.id++}`;\n }\n}\n","export class StringSearchHelper {\n static getIndexByFirstMatchingStartString(\n searchString: string,\n words: string[],\n startIndex: number\n ): number {\n searchString = searchString.toLowerCase();\n\n const wordsStartingWithMatchString = words\n .map((word, index) => {\n return { word: word.toLowerCase(), index };\n })\n .filter((match) => match.word.startsWith(searchString));\n\n if (wordsStartingWithMatchString.length === 0) {\n return -1;\n }\n\n const firstWordStartingWithChar = wordsStartingWithMatchString[0];\n const nextWordStartingWithChar = wordsStartingWithMatchString.find(\n (wordAndIndex) => wordAndIndex.index >= startIndex\n );\n\n return nextWordStartingWithChar?.index ?? firstWordStartingWithChar.index;\n }\n\n static isPrintableCharacter(key: string): boolean {\n return key.length === 1 && /\\S/.test(key);\n }\n}\n","import { Injectable, Renderer2, RendererStyleFlags2 } from '@angular/core';\n\nconst config = Object.freeze({\n className: 'kirby-line-clamp',\n lineClamp: '--line-clamp',\n lineHeight: '--line-height',\n});\n\n@Injectable()\nexport class LineClampHelper {\n constructor(private renderer: Renderer2) {}\n\n setMaxLines(element: Element, maxLines: number): void {\n this.renderer.setStyle(element, config.lineClamp, maxLines, RendererStyleFlags2.DashCase);\n this.renderer.addClass(element, config.className);\n }\n\n setLineHeight(element: Element, lineHeight: string): void {\n // Only necessary for the fallback solution to work\n this.renderer.setStyle(element, config.lineHeight, lineHeight, RendererStyleFlags2.DashCase);\n }\n\n removeLineClamp(element: Element) {\n this.renderer.removeClass(element, config.className);\n this.renderer.removeStyle(element, config.lineClamp);\n this.renderer.removeStyle(element, config.lineHeight);\n }\n}\n","/* eslint-disable @typescript-eslint/no-namespace */\nimport { DesignTokenHelper } from './design-token-helper';\n\nexport namespace KirbyAnimation {\n export enum Duration {\n // Duration in milliseconds\n QUICK = parseInt(DesignTokenHelper.transitionDuration('quick')),\n SHORT = parseInt(DesignTokenHelper.transitionDuration('short')),\n LONG = parseInt(DesignTokenHelper.transitionDuration('long')),\n EXTRA_LONG = parseInt(DesignTokenHelper.transitionDuration('extraLong')),\n }\n export const Easing = DesignTokenHelper.transitionEasings();\n}\n","import { ElementRef, Injectable, Renderer2 } from '@angular/core';\nimport { componentOnReady } from '@ionic/core';\n\n@Injectable()\nexport class IonicElementPartHelper {\n constructor(private renderer: Renderer2) {}\n\n public async setPart(partName: string, ionicElementRef: ElementRef, selector: string) {\n // Ensure custom element has been defined and rendered\n await customElements.whenDefined(ionicElementRef.nativeElement.localName);\n const customElement = await new Promise<HTMLElement>((resolve) => {\n componentOnReady(ionicElementRef.nativeElement, (element) => resolve(element));\n });\n\n const partElement: HTMLElement = customElement.shadowRoot.querySelector(selector);\n if (!partElement) return;\n\n this.renderer.setAttribute(partElement, 'part', partName);\n }\n}\n","import { ControlValueAccessor } from '@angular/forms';\n\n/**\n * Configuration for extending a ControlValueAccessor's `writeValue` method.\n * @typeParam T - The type of value being written\n */\nexport interface WriteValueExtension<T = unknown> {\n /**\n * Callback invoked after `writeValue` is called on each accessor.\n * @param value - The value being written\n */\n afterWriteValue: (value: T) => void;\n}\n\n/**\n * Configuration for extending a ControlValueAccessor's `registerOnChange` method.\n * @typeParam TInput - The type of value received from the input\n * @typeParam TOutput - The type of value passed to the form control\n */\nexport interface RegisterOnChangeExtension<TInput = unknown, TOutput = unknown> {\n /**\n * Transform the value before it's passed to the original onChange function.\n * @param value - The original value from the input event\n * @returns The transformed value to pass to the form control\n */\n transformValue: (value: TInput) => TOutput;\n}\n\n/**\n * Configuration options for extending ControlValueAccessor methods.\n * @typeParam TWrite - The type of value for writeValue\n * @typeParam TChangeInput - The type of value received in registerOnChange\n * @typeParam TChangeOutput - The type of value output from registerOnChange\n */\nexport interface ValueAccessorExtensionConfig<\n TWrite = unknown,\n TChangeInput = unknown,\n TChangeOutput = unknown,\n> {\n /**\n * Configuration for extending `writeValue`.\n * When provided, the `afterWriteValue` callback will be invoked after each accessor's\n * `writeValue` method is called.\n */\n writeValue?: WriteValueExtension<TWrite>;\n\n /**\n * Configuration for extending `registerOnChange`.\n * When provided, the `transformValue` function will be used to transform values\n * before they're passed to the form control's onChange handler.\n */\n registerOnChange?: RegisterOnChangeExtension<TChangeInput, TChangeOutput>;\n}\n\n/**\n * Extends the methods of provided ControlValueAccessors.\n *\n * This utility wraps the control value accessor methods to add custom behavior while preserving\n * the original functionality. Its used to:\n * - Emit kirbyChange when values are written programmatically\n * - Transform or normalize values before they're passed to form controls to work with inputmasking\n *\n * @param accessors - Array of ControlValueAccessors to extend, typically injected via `NG_VALUE_ACCESSOR`\n * @param config - Configuration specifying which methods to extend and how\n *\n * @example\n * // Simple usage - emit changes when writeValue is called\n * extendValueAccessors(this.valueAccessors, {\n * writeValue: {\n * afterWriteValue: (value) => this.kirbyChange.emit(value)\n * }\n * });\n *\n * @example\n * // Advanced usage - transform values in registerOnChange\n * extendValueAccessors(this.valueAccessors, {\n * writeValue: {\n * afterWriteValue: (value) => this.updateDisplay(value)\n * },\n * registerOnChange: {\n * transformValue: (value) => this.normalizeValue(value)\n * }\n * });\n */\nexport function extendValueAccessors<\n TWrite = unknown,\n TChangeInput = unknown,\n TChangeOutput = unknown,\n>(\n accessors: ControlValueAccessor[] | null | undefined,\n config: ValueAccessorExtensionConfig<TWrite, TChangeInput, TChangeOutput>\n): void {\n if (!accessors) return;\n\n accessors.forEach((accessor) => {\n if (config.writeValue) {\n extendWriteValue(accessor, config.writeValue);\n }\n\n if (config.registerOnChange) {\n extendRegisterOnChange(accessor, config.registerOnChange);\n }\n });\n}\n\nfunction extendWriteValue<T>(\n accessor: ControlValueAccessor,\n extension: WriteValueExtension<T>\n): void {\n const originalWriteValue = accessor.writeValue?.bind(accessor);\n\n accessor.writeValue = (value: T) => {\n if (originalWriteValue) {\n originalWriteValue(value);\n }\n extension.afterWriteValue(value);\n };\n}\n\nfunction extendRegisterOnChange<TInput, TOutput>(\n accessor: ControlValueAccessor,\n extension: RegisterOnChangeExtension<TInput, TOutput>\n): void {\n const originalRegisterOnChange = accessor.registerOnChange?.bind(accessor);\n\n if (originalRegisterOnChange) {\n accessor.registerOnChange = (fn: (value: TOutput) => void) => {\n const wrappedFn = (value: TInput) => {\n fn(extension.transformValue(value));\n };\n originalRegisterOnChange(wrappedFn);\n };\n }\n}\n","// re-export helpers from core, to preserve backwards compatability\n// of 'designsystem' library\nexport * from './element-ancestor-utils';\nexport * from './color-helper';\nexport * from './content-mutation-observer';\nexport * from './design-token-helper';\nexport * from './string-helper';\nexport * from './theme-color.type';\nexport * from './platform.service';\nexport * from './chart-config-has-type';\nexport * from './deep-copy';\nexport * from './merge-deep';\nexport * from './unique-id-generator.helper';\nexport * from './string-search.helper';\nexport * from './line-clamp-helper';\nexport * from './kirby-animation';\nexport * from './ionic-element-part-helper';\nexport * from './value-accessor-helper';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -186,10 +186,10 @@ class IconRegistryService {
|
|
|
186
186
|
const svg = this.iconRegistry.get(name);
|
|
187
187
|
return svg ? { name, svg } : undefined;
|
|
188
188
|
}
|
|
189
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
190
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
189
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IconRegistryService, deps: [{ token: BUILT_IN_ICONS_URL }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
190
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IconRegistryService, providedIn: 'root' }); }
|
|
191
191
|
}
|
|
192
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
192
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IconRegistryService, decorators: [{
|
|
193
193
|
type: Injectable,
|
|
194
194
|
args: [{
|
|
195
195
|
providedIn: 'root',
|
|
@@ -253,10 +253,10 @@ forgot to configure the custom icon through the 'IconRegistryService'?`);
|
|
|
253
253
|
this.renderer.setAttribute(this.element, 'aria-hidden', 'true');
|
|
254
254
|
}
|
|
255
255
|
}
|
|
256
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
257
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
256
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IconComponent, deps: [{ token: IconRegistryService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
257
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: IconComponent, isStandalone: true, selector: "kirby-icon", inputs: { size: "size", name: "name" }, host: { properties: { "class.kirby-icon": "true", "class": "this.size" } }, usesOnChanges: true, ngImport: i0, template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, 24px);margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: 16px}:host(.sm){--kirby-icon-font-size: 24px}:host(.md){--kirby-icon-font-size: 32px}:host(.lg){--kirby-icon-font-size: 56px}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.white-overlay){color:var(--kirby-white-overlay)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host(.dark-overlay){color:var(--kirby-dark-overlay)}:host-context(kirby-item)[slot=start]{margin-inline-end:8px}:host-context(kirby-item)[slot=end]{margin-inline-start:8px}:host-context(ion-tab-button){pointer-events:none}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
258
258
|
}
|
|
259
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
259
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IconComponent, decorators: [{
|
|
260
260
|
type: Component,
|
|
261
261
|
args: [{ selector: 'kirby-icon', host: { '[class.kirby-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, imports: [IonIcon], template: "<ion-icon [src]=\"icon?.svg\"></ion-icon>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-size:var(--kirby-icon-font-size, 24px);margin-left:var(--kirby-icon-margin-left, unset);margin-right:var(--kirby-icon-margin-right, unset)}:host svg path{fill:currentcolor;stroke:currentcolor}:host(.xs){--kirby-icon-font-size: 16px}:host(.sm){--kirby-icon-font-size: 24px}:host(.md){--kirby-icon-font-size: 32px}:host(.lg){--kirby-icon-font-size: 56px}:host(.primary){color:var(--kirby-primary)}:host(.secondary){color:var(--kirby-secondary)}:host(.tertiary){color:var(--kirby-tertiary)}:host(.success){color:var(--kirby-success)}:host(.warning){color:var(--kirby-warning)}:host(.danger){color:var(--kirby-danger)}:host(.white-overlay){color:var(--kirby-white-overlay)}:host(.light){color:var(--kirby-light)}:host(.medium){color:var(--kirby-medium)}:host(.dark){color:var(--kirby-dark)}:host(.dark-overlay){color:var(--kirby-dark-overlay)}:host-context(kirby-item)[slot=start]{margin-inline-end:8px}:host-context(kirby-item)[slot=end]{margin-inline-start:8px}:host-context(ion-tab-button){pointer-events:none}\n"] }]
|
|
262
262
|
}], ctorParameters: () => [{ type: IconRegistryService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { size: [{
|
|
@@ -269,11 +269,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
269
269
|
}] } });
|
|
270
270
|
|
|
271
271
|
class IconModule {
|
|
272
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
273
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
274
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
272
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
273
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: IconModule, imports: [ThemeColorDirective, IonIcon, IconComponent], exports: [IconComponent, ThemeColorDirective] }); }
|
|
274
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IconModule, imports: [IonIcon, IconComponent] }); }
|
|
275
275
|
}
|
|
276
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IconModule, decorators: [{
|
|
277
277
|
type: NgModule,
|
|
278
278
|
args: [{
|
|
279
279
|
imports: [ThemeColorDirective, IonIcon, IconComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-icon.mjs","sources":["../../icon/src/kirby-icon-settings.ts","../../icon/src/icon-registry.service.ts","../../icon/src/icon.component.ts","../../icon/src/icon.component.html","../../icon/src/icon.module.ts","../../icon/src/kirbydesign-designsystem-icon.ts"],"sourcesContent":["import { Icon, IconSettings } from './icon-settings';\n\nconst sortIconsByName = (icons: Icon[]) => {\n const collator = new Intl.Collator('en');\n return icons.sort((a, b) => collator.compare(a.name, b.name));\n};\n\nexport const kirbyIconSettings: IconSettings = {\n icons: sortIconsByName([\n { name: 'accounts-outline', svg: 'accounts-outline.svg' },\n { name: 'accounts', svg: 'accounts.svg' },\n { name: 'add', svg: 'add.svg' },\n { name: 'remove', svg: 'remove.svg' },\n { name: 'unsubscribe', svg: 'unsubscribe.svg' },\n { name: 'arrow-back', svg: 'arrow-back.svg' },\n { name: 'arrow-down', svg: 'arrow-down.svg' },\n { name: 'arrow-more', svg: 'arrow-more.svg' },\n { name: 'arrow-up', svg: 'arrow-up.svg' },\n { name: 'attach', svg: 'attach.svg' },\n { name: 'backspace', svg: 'backspace.svg' },\n { name: 'calendar', svg: 'calendar.svg' },\n { name: 'camera', svg: 'camera.svg' },\n { name: 'car', svg: 'car.svg' },\n { name: 'checkbox-outline', svg: 'checkbox-outline.svg' },\n { name: 'checkbox', svg: 'checkbox.svg' },\n { name: 'checkmark-selected', svg: 'checkmark-selected.svg' },\n { name: 'close', svg: 'close.svg' },\n { name: 'cog', svg: 'cog.svg' },\n { name: 'coinstack', svg: 'coinstack.svg' },\n { name: 'contact', svg: 'contact.svg' },\n { name: 'copy', svg: 'copy.svg' },\n { name: 'flag', svg: 'flag.svg' },\n { name: 'edit', svg: 'edit.svg' },\n { name: 'filter', svg: 'filter.svg' },\n { name: 'flash-off', svg: 'flash-off.svg' },\n { name: 'flash', svg: 'flash.svg' },\n { name: 'moneybag', svg: 'moneybag.svg' },\n { name: 'help', svg: 'help.svg' },\n { name: 'home', svg: 'home.svg' },\n { name: 'inbox', svg: 'inbox.svg' },\n { name: 'inbox-outline', svg: 'inbox-outline.svg' },\n { name: 'information', svg: 'information.svg' },\n { name: 'insurance', svg: 'insurance.svg' },\n { name: 'investment', svg: 'investment.svg' },\n { name: 'kirby', svg: 'kirby.svg' },\n { name: 'link', svg: 'link.svg' },\n { name: 'log-out', svg: 'log-out.svg' },\n { name: 'menu-outline', svg: 'menu-outline.svg' },\n { name: 'menu', svg: 'menu.svg' },\n { name: 'menu-no-decoration', svg: 'menu-no-decoration.svg' },\n { name: 'misc', svg: 'misc.svg' },\n { name: 'more', svg: 'more.svg' },\n { name: 'move', svg: 'move.svg' },\n { name: 'payment-card', svg: 'payment-card.svg' },\n { name: 'pension', svg: 'pension.svg' },\n { name: 'person-outline', svg: 'person-outline.svg' },\n { name: 'person', svg: 'person.svg' },\n { name: 'qr', svg: 'QR.svg' },\n { name: 'recurring', svg: 'recurring.svg' },\n { name: 'salary', svg: 'salary.svg' },\n { name: 'search', svg: 'search.svg' },\n { name: 'share', svg: 'share.svg' },\n { name: 'sort', svg: 'sort.svg' },\n { name: 'support', svg: 'support.svg' },\n { name: 'swap', svg: 'swap.svg' },\n { name: 'trash', svg: 'trash.svg' },\n { name: 'foreign-payment', svg: 'foreign-payment.svg' },\n { name: 'clock', svg: 'clock.svg' },\n { name: 'verify', svg: 'verify.svg' },\n { name: 'warning', svg: 'warning.svg' },\n { name: 'write-message', svg: 'write-message.svg' },\n { name: 'reorder', svg: 'reorder.svg' },\n { name: 'accident', svg: 'accident.svg' },\n { name: 'health', svg: 'health.svg' },\n { name: 'illness', svg: 'illness.svg' },\n { name: 'incapacity', svg: 'incapacity.svg' },\n { name: 'life', svg: 'life.svg' },\n { name: 'help-decoration', svg: 'help-decoration.svg' },\n { name: 'information-decoration', svg: 'information-decoration.svg' },\n { name: 'warning-decoration', svg: 'warning-decoration.svg' },\n { name: 'notification', svg: 'notification.svg' },\n { name: 'transfer-ownership', svg: 'transfer-ownership.svg' },\n { name: 'update', svg: 'update.svg' },\n { name: 'user-blocked', svg: 'user-blocked.svg' },\n { name: 'add-bank', svg: 'add-bank.svg' },\n { name: 'participants', svg: 'participants.svg' },\n { name: 'download', svg: 'download.svg' },\n { name: 'globe-transfer', svg: 'globe-transfer.svg' },\n { name: 'banknotes', svg: 'banknotes.svg' },\n { name: 'air-balloon', svg: 'air-balloon.svg' },\n { name: 'piggybank', svg: 'piggybank.svg' },\n { name: 'business', svg: 'business.svg' },\n { name: 'navigation', svg: 'navigation.svg' },\n { name: 'phone-device', svg: 'phone-device.svg' },\n { name: 'upload', svg: 'upload.svg' },\n { name: 'document', svg: 'document.svg' },\n { name: 'chat', svg: 'chat.svg' },\n { name: 'feedback', svg: 'feedback.svg' },\n { name: 'keyboard', svg: 'keyboard.svg' },\n { name: 'lock', svg: 'lock.svg' },\n { name: 'see', svg: 'see.svg' },\n { name: 'overview', svg: 'overview.svg' },\n { name: 'overview-outline', svg: 'overview-outline.svg' },\n { name: 'arrow-down-fill', svg: 'arrow-down-fill.svg' },\n { name: 'arrow-up-fill', svg: 'arrow-up-fill.svg' },\n { name: 'calculator', svg: 'calculator.svg' },\n { name: 'grid', svg: 'grid.svg' },\n { name: 'list', svg: 'list.svg' },\n { name: 'adjust', svg: 'adjust.svg' },\n { name: 'bs-logo', svg: 'bs-logo.svg' },\n { name: 'company', svg: 'company.svg' },\n { name: 'budget', svg: 'budget.svg' },\n { name: 'history', svg: 'history.svg' },\n { name: 'dot', svg: 'dot.svg' },\n { name: 'agreement', svg: 'agreement.svg' },\n { name: 'sunshine', svg: 'sunshine.svg' },\n { name: 'star', svg: 'star.svg' },\n { name: 'star-fill', svg: 'star-fill.svg' },\n { name: 'payment', svg: 'payment.svg' },\n { name: 'revert', svg: 'revert.svg' },\n { name: 'fees', svg: 'fees.svg' },\n { name: 'crossedeye', svg: 'crossedeye.svg' },\n { name: 'common', svg: 'common.svg' },\n { name: 'calendar-start', svg: 'calendar-start.svg' },\n { name: 'calendar-end', svg: 'calendar-end.svg' },\n { name: 'expand', svg: 'expand.svg' },\n { name: 'contract', svg: 'contract.svg' },\n { name: 'house', svg: 'house.svg' },\n { name: 'tractor', svg: 'tractor.svg' },\n { name: 'flower', svg: 'flower.svg' },\n { name: 'basket', svg: 'basket.svg' },\n { name: 'drag-drop', svg: 'drag-drop.svg' },\n { name: 'notification-fill', svg: 'notification-fill.svg' },\n { name: 'expense', svg: 'expense.svg' },\n { name: 'income', svg: 'income.svg' },\n { name: 'top-up', svg: 'top-up.svg' },\n { name: 'signed-document', svg: 'signed-document.svg' },\n { name: 'bank', svg: 'bank.svg' },\n { name: 'balloon', svg: 'balloon.svg' },\n { name: 'scale', svg: 'scale.svg' },\n ]),\n};\n\nexport const defaultIcons = kirbyIconSettings.icons.map((icon) => icon.name);\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\n\nimport { Icon } from './icon-settings';\nimport { kirbyIconSettings } from './kirby-icon-settings';\n\nexport const DEFAULT_BUILT_IN_ICONS_URL = 'assets/kirby/icons/svg/';\n\n/**\n * Token used to configure base URL for path to built-in icons. Default is 'assets/kirby/icons/svg'.\n */\nexport const BUILT_IN_ICONS_URL = new InjectionToken<string>('BUILT_IN_ICONS_URL', {\n factory: () => DEFAULT_BUILT_IN_ICONS_URL,\n});\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconRegistryService {\n private iconRegistry = new Map<string, string>();\n\n constructor(@Inject(BUILT_IN_ICONS_URL) private builtInIconsUrl: string) {\n this.addDefaultIcons();\n }\n\n addIcon(iconName: string, svgPath: string): void {\n if (!this.iconRegistry.has(iconName)) {\n this.iconRegistry.set(iconName, svgPath);\n } else {\n console.warn(`Icon with name: \"${iconName}\" already exists`);\n }\n }\n\n addIcons(icons: Icon[]): void {\n if (!icons) {\n console.error('Icons not defined');\n return;\n }\n icons.forEach((icon) => {\n this.addIcon(icon.name, icon.svg);\n });\n }\n\n private addDefaultIcons(): void {\n const baseUrl = this.builtInIconsUrl ?? DEFAULT_BUILT_IN_ICONS_URL;\n const baseUrlWithSlash = baseUrl.endsWith('/') ? baseUrl : baseUrl + '/';\n this.addIcons(\n kirbyIconSettings.icons.map((icon) => ({ name: icon.name, svg: baseUrlWithSlash + icon.svg }))\n );\n }\n\n getIcons(): Icon[] {\n return Array.from(this.iconRegistry.keys()).map((key) => this.getIcon(key));\n }\n\n getIcon(name: string): Icon {\n const svg = this.iconRegistry.get(name);\n return svg ? { name, svg } : undefined;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\n\nimport { IonIcon } from '@ionic/angular/standalone';\nimport { IconRegistryService } from './icon-registry.service';\nimport { Icon } from './icon-settings';\n\nexport enum IconSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\n@Component({\n selector: 'kirby-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n host: { '[class.kirby-icon]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IonIcon],\n})\nexport class IconComponent implements OnChanges {\n defaultIcon: Icon = this.iconRegistryService.getIcon('cog');\n private _icon = (this.icon = this.defaultIcon);\n private element: HTMLElement;\n\n @HostBinding('class')\n @Input()\n size: IconSize | `${IconSize}`;\n\n @Input() name: string;\n\n get icon(): Icon {\n return this._icon;\n }\n\n set icon(icon: Icon) {\n // If icon are not found, set default icon\n if (!icon && this.name) {\n this.warnAboutMissingIcon();\n\n icon = this.defaultIcon;\n\n // If default icon are not found\n if (!icon) {\n console.warn('Default icon was not found.');\n return;\n }\n }\n\n // Set icon if it's found\n if (icon) {\n this._icon = icon;\n }\n }\n\n private warnAboutMissingIcon(): void {\n console.warn(`Icon with name \"${this.name}\" was not found.\nDo you have a typo in 'name' for a built-in icon or\nforgot to configure the custom icon through the 'IconRegistryService'?`);\n }\n\n constructor(\n private iconRegistryService: IconRegistryService,\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {\n this.element = this.elementRef.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.name && changes.name.currentValue) {\n this.icon = this.iconRegistryService.getIcon(changes.name.currentValue);\n\n // This will always run on first init - and again later if name is changed\n // If name changes a new aria-label might have been added, so we need to check again.\n this.setAriaHiddenIfNoLabel();\n }\n }\n\n private setAriaHiddenIfNoLabel() {\n const existingAriaLabel = this.element.hasAttribute('aria-label');\n if (!existingAriaLabel) {\n this.renderer.setAttribute(this.element, 'aria-hidden', 'true');\n }\n }\n}\n","<ion-icon [src]=\"icon?.svg\"></ion-icon>\n","import { NgModule } from '@angular/core';\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { IonIcon } from '@ionic/angular/standalone';\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n imports: [ThemeColorDirective, IonIcon, IconComponent],\n exports: [IconComponent, ThemeColorDirective],\n})\nexport class IconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IconRegistryService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kirbydesign-designsystem-icon.mjs","sources":["../../icon/src/kirby-icon-settings.ts","../../icon/src/icon-registry.service.ts","../../icon/src/icon.component.ts","../../icon/src/icon.component.html","../../icon/src/icon.module.ts","../../icon/src/kirbydesign-designsystem-icon.ts"],"sourcesContent":["import { Icon, IconSettings } from './icon-settings';\n\nconst sortIconsByName = (icons: Icon[]) => {\n const collator = new Intl.Collator('en');\n return icons.sort((a, b) => collator.compare(a.name, b.name));\n};\n\nexport const kirbyIconSettings: IconSettings = {\n icons: sortIconsByName([\n { name: 'accounts-outline', svg: 'accounts-outline.svg' },\n { name: 'accounts', svg: 'accounts.svg' },\n { name: 'add', svg: 'add.svg' },\n { name: 'remove', svg: 'remove.svg' },\n { name: 'unsubscribe', svg: 'unsubscribe.svg' },\n { name: 'arrow-back', svg: 'arrow-back.svg' },\n { name: 'arrow-down', svg: 'arrow-down.svg' },\n { name: 'arrow-more', svg: 'arrow-more.svg' },\n { name: 'arrow-up', svg: 'arrow-up.svg' },\n { name: 'attach', svg: 'attach.svg' },\n { name: 'backspace', svg: 'backspace.svg' },\n { name: 'calendar', svg: 'calendar.svg' },\n { name: 'camera', svg: 'camera.svg' },\n { name: 'car', svg: 'car.svg' },\n { name: 'checkbox-outline', svg: 'checkbox-outline.svg' },\n { name: 'checkbox', svg: 'checkbox.svg' },\n { name: 'checkmark-selected', svg: 'checkmark-selected.svg' },\n { name: 'close', svg: 'close.svg' },\n { name: 'cog', svg: 'cog.svg' },\n { name: 'coinstack', svg: 'coinstack.svg' },\n { name: 'contact', svg: 'contact.svg' },\n { name: 'copy', svg: 'copy.svg' },\n { name: 'flag', svg: 'flag.svg' },\n { name: 'edit', svg: 'edit.svg' },\n { name: 'filter', svg: 'filter.svg' },\n { name: 'flash-off', svg: 'flash-off.svg' },\n { name: 'flash', svg: 'flash.svg' },\n { name: 'moneybag', svg: 'moneybag.svg' },\n { name: 'help', svg: 'help.svg' },\n { name: 'home', svg: 'home.svg' },\n { name: 'inbox', svg: 'inbox.svg' },\n { name: 'inbox-outline', svg: 'inbox-outline.svg' },\n { name: 'information', svg: 'information.svg' },\n { name: 'insurance', svg: 'insurance.svg' },\n { name: 'investment', svg: 'investment.svg' },\n { name: 'kirby', svg: 'kirby.svg' },\n { name: 'link', svg: 'link.svg' },\n { name: 'log-out', svg: 'log-out.svg' },\n { name: 'menu-outline', svg: 'menu-outline.svg' },\n { name: 'menu', svg: 'menu.svg' },\n { name: 'menu-no-decoration', svg: 'menu-no-decoration.svg' },\n { name: 'misc', svg: 'misc.svg' },\n { name: 'more', svg: 'more.svg' },\n { name: 'move', svg: 'move.svg' },\n { name: 'payment-card', svg: 'payment-card.svg' },\n { name: 'pension', svg: 'pension.svg' },\n { name: 'person-outline', svg: 'person-outline.svg' },\n { name: 'person', svg: 'person.svg' },\n { name: 'qr', svg: 'QR.svg' },\n { name: 'recurring', svg: 'recurring.svg' },\n { name: 'salary', svg: 'salary.svg' },\n { name: 'search', svg: 'search.svg' },\n { name: 'share', svg: 'share.svg' },\n { name: 'sort', svg: 'sort.svg' },\n { name: 'support', svg: 'support.svg' },\n { name: 'swap', svg: 'swap.svg' },\n { name: 'trash', svg: 'trash.svg' },\n { name: 'foreign-payment', svg: 'foreign-payment.svg' },\n { name: 'clock', svg: 'clock.svg' },\n { name: 'verify', svg: 'verify.svg' },\n { name: 'warning', svg: 'warning.svg' },\n { name: 'write-message', svg: 'write-message.svg' },\n { name: 'reorder', svg: 'reorder.svg' },\n { name: 'accident', svg: 'accident.svg' },\n { name: 'health', svg: 'health.svg' },\n { name: 'illness', svg: 'illness.svg' },\n { name: 'incapacity', svg: 'incapacity.svg' },\n { name: 'life', svg: 'life.svg' },\n { name: 'help-decoration', svg: 'help-decoration.svg' },\n { name: 'information-decoration', svg: 'information-decoration.svg' },\n { name: 'warning-decoration', svg: 'warning-decoration.svg' },\n { name: 'notification', svg: 'notification.svg' },\n { name: 'transfer-ownership', svg: 'transfer-ownership.svg' },\n { name: 'update', svg: 'update.svg' },\n { name: 'user-blocked', svg: 'user-blocked.svg' },\n { name: 'add-bank', svg: 'add-bank.svg' },\n { name: 'participants', svg: 'participants.svg' },\n { name: 'download', svg: 'download.svg' },\n { name: 'globe-transfer', svg: 'globe-transfer.svg' },\n { name: 'banknotes', svg: 'banknotes.svg' },\n { name: 'air-balloon', svg: 'air-balloon.svg' },\n { name: 'piggybank', svg: 'piggybank.svg' },\n { name: 'business', svg: 'business.svg' },\n { name: 'navigation', svg: 'navigation.svg' },\n { name: 'phone-device', svg: 'phone-device.svg' },\n { name: 'upload', svg: 'upload.svg' },\n { name: 'document', svg: 'document.svg' },\n { name: 'chat', svg: 'chat.svg' },\n { name: 'feedback', svg: 'feedback.svg' },\n { name: 'keyboard', svg: 'keyboard.svg' },\n { name: 'lock', svg: 'lock.svg' },\n { name: 'see', svg: 'see.svg' },\n { name: 'overview', svg: 'overview.svg' },\n { name: 'overview-outline', svg: 'overview-outline.svg' },\n { name: 'arrow-down-fill', svg: 'arrow-down-fill.svg' },\n { name: 'arrow-up-fill', svg: 'arrow-up-fill.svg' },\n { name: 'calculator', svg: 'calculator.svg' },\n { name: 'grid', svg: 'grid.svg' },\n { name: 'list', svg: 'list.svg' },\n { name: 'adjust', svg: 'adjust.svg' },\n { name: 'bs-logo', svg: 'bs-logo.svg' },\n { name: 'company', svg: 'company.svg' },\n { name: 'budget', svg: 'budget.svg' },\n { name: 'history', svg: 'history.svg' },\n { name: 'dot', svg: 'dot.svg' },\n { name: 'agreement', svg: 'agreement.svg' },\n { name: 'sunshine', svg: 'sunshine.svg' },\n { name: 'star', svg: 'star.svg' },\n { name: 'star-fill', svg: 'star-fill.svg' },\n { name: 'payment', svg: 'payment.svg' },\n { name: 'revert', svg: 'revert.svg' },\n { name: 'fees', svg: 'fees.svg' },\n { name: 'crossedeye', svg: 'crossedeye.svg' },\n { name: 'common', svg: 'common.svg' },\n { name: 'calendar-start', svg: 'calendar-start.svg' },\n { name: 'calendar-end', svg: 'calendar-end.svg' },\n { name: 'expand', svg: 'expand.svg' },\n { name: 'contract', svg: 'contract.svg' },\n { name: 'house', svg: 'house.svg' },\n { name: 'tractor', svg: 'tractor.svg' },\n { name: 'flower', svg: 'flower.svg' },\n { name: 'basket', svg: 'basket.svg' },\n { name: 'drag-drop', svg: 'drag-drop.svg' },\n { name: 'notification-fill', svg: 'notification-fill.svg' },\n { name: 'expense', svg: 'expense.svg' },\n { name: 'income', svg: 'income.svg' },\n { name: 'top-up', svg: 'top-up.svg' },\n { name: 'signed-document', svg: 'signed-document.svg' },\n { name: 'bank', svg: 'bank.svg' },\n { name: 'balloon', svg: 'balloon.svg' },\n { name: 'scale', svg: 'scale.svg' },\n ]),\n};\n\nexport const defaultIcons = kirbyIconSettings.icons.map((icon) => icon.name);\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\n\nimport { Icon } from './icon-settings';\nimport { kirbyIconSettings } from './kirby-icon-settings';\n\nexport const DEFAULT_BUILT_IN_ICONS_URL = 'assets/kirby/icons/svg/';\n\n/**\n * Token used to configure base URL for path to built-in icons. Default is 'assets/kirby/icons/svg'.\n */\nexport const BUILT_IN_ICONS_URL = new InjectionToken<string>('BUILT_IN_ICONS_URL', {\n factory: () => DEFAULT_BUILT_IN_ICONS_URL,\n});\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconRegistryService {\n private iconRegistry = new Map<string, string>();\n\n constructor(@Inject(BUILT_IN_ICONS_URL) private builtInIconsUrl: string) {\n this.addDefaultIcons();\n }\n\n addIcon(iconName: string, svgPath: string): void {\n if (!this.iconRegistry.has(iconName)) {\n this.iconRegistry.set(iconName, svgPath);\n } else {\n console.warn(`Icon with name: \"${iconName}\" already exists`);\n }\n }\n\n addIcons(icons: Icon[]): void {\n if (!icons) {\n console.error('Icons not defined');\n return;\n }\n icons.forEach((icon) => {\n this.addIcon(icon.name, icon.svg);\n });\n }\n\n private addDefaultIcons(): void {\n const baseUrl = this.builtInIconsUrl ?? DEFAULT_BUILT_IN_ICONS_URL;\n const baseUrlWithSlash = baseUrl.endsWith('/') ? baseUrl : baseUrl + '/';\n this.addIcons(\n kirbyIconSettings.icons.map((icon) => ({ name: icon.name, svg: baseUrlWithSlash + icon.svg }))\n );\n }\n\n getIcons(): Icon[] {\n return Array.from(this.iconRegistry.keys()).map((key) => this.getIcon(key));\n }\n\n getIcon(name: string): Icon {\n const svg = this.iconRegistry.get(name);\n return svg ? { name, svg } : undefined;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\n\nimport { IonIcon } from '@ionic/angular/standalone';\nimport { IconRegistryService } from './icon-registry.service';\nimport { Icon } from './icon-settings';\n\nexport enum IconSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\n@Component({\n selector: 'kirby-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n host: { '[class.kirby-icon]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IonIcon],\n})\nexport class IconComponent implements OnChanges {\n defaultIcon: Icon = this.iconRegistryService.getIcon('cog');\n private _icon = (this.icon = this.defaultIcon);\n private element: HTMLElement;\n\n @HostBinding('class')\n @Input()\n size: IconSize | `${IconSize}`;\n\n @Input() name: string;\n\n get icon(): Icon {\n return this._icon;\n }\n\n set icon(icon: Icon) {\n // If icon are not found, set default icon\n if (!icon && this.name) {\n this.warnAboutMissingIcon();\n\n icon = this.defaultIcon;\n\n // If default icon are not found\n if (!icon) {\n console.warn('Default icon was not found.');\n return;\n }\n }\n\n // Set icon if it's found\n if (icon) {\n this._icon = icon;\n }\n }\n\n private warnAboutMissingIcon(): void {\n console.warn(`Icon with name \"${this.name}\" was not found.\nDo you have a typo in 'name' for a built-in icon or\nforgot to configure the custom icon through the 'IconRegistryService'?`);\n }\n\n constructor(\n private iconRegistryService: IconRegistryService,\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {\n this.element = this.elementRef.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.name && changes.name.currentValue) {\n this.icon = this.iconRegistryService.getIcon(changes.name.currentValue);\n\n // This will always run on first init - and again later if name is changed\n // If name changes a new aria-label might have been added, so we need to check again.\n this.setAriaHiddenIfNoLabel();\n }\n }\n\n private setAriaHiddenIfNoLabel() {\n const existingAriaLabel = this.element.hasAttribute('aria-label');\n if (!existingAriaLabel) {\n this.renderer.setAttribute(this.element, 'aria-hidden', 'true');\n }\n }\n}\n","<ion-icon [src]=\"icon?.svg\"></ion-icon>\n","import { NgModule } from '@angular/core';\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { IonIcon } from '@ionic/angular/standalone';\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n imports: [ThemeColorDirective, IonIcon, IconComponent],\n exports: [IconComponent, ThemeColorDirective],\n})\nexport class IconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IconRegistryService"],"mappings":"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"}
|
|
@@ -5,10 +5,10 @@ class ItemGroupComponent {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.role = 'group';
|
|
7
7
|
}
|
|
8
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
8
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ItemGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: ItemGroupComponent, isStandalone: true, selector: "kirby-item-group", host: { properties: { "attr.role": "this.role" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ItemGroupComponent, decorators: [{
|
|
12
12
|
type: Component,
|
|
13
13
|
args: [{ selector: 'kirby-item-group', template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
|
|
14
14
|
}], propDecorators: { role: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-item-group.mjs","sources":["../../item-group/src/item-group.component.ts","../../item-group/src/item-group.component.html","../../item-group/src/kirbydesign-designsystem-item-group.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'kirby-item-group',\n templateUrl: './item-group.component.html',\n styleUrls: ['./item-group.component.scss'],\n})\nexport class ItemGroupComponent {\n @HostBinding('attr.role') role: string = 'group';\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;MAOa,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;QAM4B,IAAA,CAAA,IAAI,GAAW,OAAO;AACjD,IAAA;
|
|
1
|
+
{"version":3,"file":"kirbydesign-designsystem-item-group.mjs","sources":["../../item-group/src/item-group.component.ts","../../item-group/src/item-group.component.html","../../item-group/src/kirbydesign-designsystem-item-group.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'kirby-item-group',\n templateUrl: './item-group.component.html',\n styleUrls: ['./item-group.component.scss'],\n})\nexport class ItemGroupComponent {\n @HostBinding('attr.role') role: string = 'group';\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;MAOa,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;QAM4B,IAAA,CAAA,IAAI,GAAW,OAAO;AACjD,IAAA;iIAFY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,gICP/B,6BACA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;;2FDMa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAK3B,WAAW;uBAAC,WAAW;;;AER1B;;AAEG;;;;"}
|
|
@@ -21,10 +21,10 @@ class ItemSlidingComponent {
|
|
|
21
21
|
swipeAction.onSelected();
|
|
22
22
|
this.itemSliding.close();
|
|
23
23
|
}
|
|
24
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
25
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
24
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ItemSlidingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: ItemSlidingComponent, isStandalone: true, selector: "kirby-item-sliding", inputs: { swipeActions: "swipeActions", side: "side" }, viewQueries: [{ propertyName: "itemSliding", first: true, predicate: IonItemSliding, descendants: true, static: true }], ngImport: i0, template: "<ion-item-sliding>\n <ng-content></ng-content>\n\n @if (_hasSwipeActions) {\n <ion-item-options [side]=\"_side\">\n @for (swipeAction of swipeActions; track swipeAction.title) {\n @if (!swipeAction.isDisabled) {\n <ion-item-option [ngClass]=\"swipeAction.type\" (click)=\"onSwipeActionClick(swipeAction)\">\n @if (swipeAction.icon !== undefined) {\n <kirby-icon [name]=\"swipeAction.icon\" slot=\"top\"></kirby-icon>\n }\n <ion-label>{{ swipeAction.title }}</ion-label>\n </ion-item-option>\n }\n }\n </ion-item-options>\n }\n</ion-item-sliding>\n", styles: ["ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}:host{display:block}ion-item-option{min-width:92px}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "kirby-icon", inputs: ["size", "name"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonItemSliding, selector: "ion-item-sliding", inputs: ["disabled"] }, { kind: "component", type: IonItemOptions, selector: "ion-item-options", inputs: ["side"] }, { kind: "component", type: IonItemOption, selector: "ion-item-option", inputs: ["color", "disabled", "download", "expandable", "href", "mode", "rel", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ItemSlidingComponent, decorators: [{
|
|
28
28
|
type: Component,
|
|
29
29
|
args: [{ imports: [IconComponent, CommonModule, IonItemSliding, IonItemOptions, IonItemOption, IonLabel], selector: 'kirby-item-sliding', template: "<ion-item-sliding>\n <ng-content></ng-content>\n\n @if (_hasSwipeActions) {\n <ion-item-options [side]=\"_side\">\n @for (swipeAction of swipeActions; track swipeAction.title) {\n @if (!swipeAction.isDisabled) {\n <ion-item-option [ngClass]=\"swipeAction.type\" (click)=\"onSwipeActionClick(swipeAction)\">\n @if (swipeAction.icon !== undefined) {\n <kirby-icon [name]=\"swipeAction.icon\" slot=\"top\"></kirby-icon>\n }\n <ion-label>{{ swipeAction.title }}</ion-label>\n </ion-item-option>\n }\n }\n </ion-item-options>\n }\n</ion-item-sliding>\n", styles: ["ion-item-option.primary{background-color:var(--kirby-primary);color:var(--kirby-primary-contrast)}ion-item-option.secondary{background-color:var(--kirby-secondary);color:var(--kirby-secondary-contrast)}ion-item-option.tertiary{background-color:var(--kirby-tertiary);color:var(--kirby-tertiary-contrast)}ion-item-option.success{background-color:var(--kirby-success);color:var(--kirby-success-contrast)}ion-item-option.warning{background-color:var(--kirby-warning);color:var(--kirby-warning-contrast)}ion-item-option.danger{background-color:var(--kirby-danger);color:var(--kirby-danger-contrast)}ion-item-option.white-overlay{background-color:var(--kirby-white-overlay);color:var(--kirby-white-overlay-contrast)}ion-item-option.light{background-color:var(--kirby-light);color:var(--kirby-light-contrast)}ion-item-option.medium{background-color:var(--kirby-medium);color:var(--kirby-medium-contrast)}ion-item-option.dark{background-color:var(--kirby-dark);color:var(--kirby-dark-contrast)}ion-item-option.dark-overlay{background-color:var(--kirby-dark-overlay);color:var(--kirby-dark-overlay-contrast)}:host{display:block}ion-item-option{min-width:92px}\n"] }]
|
|
30
30
|
}], propDecorators: { itemSliding: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-item-sliding.mjs","sources":["../../item-sliding/src/item-sliding.component.ts","../../item-sliding/src/item-sliding.component.html","../../item-sliding/src/kirbydesign-designsystem-item-sliding.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewChild } from '@angular/core';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\n\nimport { IonItemOption, IonItemOptions, IonItemSliding, IonLabel } from '@ionic/angular/standalone';\nimport { ItemSlidingSide, ItemSwipeAction } from './item-sliding.types';\n\n@Component({\n imports: [IconComponent, CommonModule, IonItemSliding, IonItemOptions, IonItemOption, IonLabel],\n selector: 'kirby-item-sliding',\n templateUrl: './item-sliding.component.html',\n styleUrls: ['./item-sliding.component.scss'],\n})\nexport class ItemSlidingComponent {\n @ViewChild(IonItemSliding, { static: true }) itemSliding: IonItemSliding;\n @Input() swipeActions: ItemSwipeAction[];\n\n _side: 'start' | 'end' = 'start';\n @Input() set side(value: ItemSlidingSide) {\n this._side = value === 'left' ? 'start' : 'end';\n }\n\n get _hasSwipeActions(): boolean {\n // Using '>' instead of '!==';\n // will only return true when swipeActions is an array\n return this.swipeActions?.length > 0;\n }\n\n onSwipeActionClick(swipeAction: ItemSwipeAction): void {\n swipeAction.onSelected();\n this.itemSliding.close();\n }\n}\n","<ion-item-sliding>\n <ng-content></ng-content>\n\n @if (_hasSwipeActions) {\n <ion-item-options [side]=\"_side\">\n @for (swipeAction of swipeActions; track swipeAction.title) {\n @if (!swipeAction.isDisabled) {\n <ion-item-option [ngClass]=\"swipeAction.type\" (click)=\"onSwipeActionClick(swipeAction)\">\n @if (swipeAction.icon !== undefined) {\n <kirby-icon [name]=\"swipeAction.icon\" slot=\"top\"></kirby-icon>\n }\n <ion-label>{{ swipeAction.title }}</ion-label>\n </ion-item-option>\n }\n }\n </ion-item-options>\n }\n</ion-item-sliding>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;MAaa,oBAAoB,CAAA;AANjC,IAAA,WAAA,GAAA;QAUE,IAAA,CAAA,KAAK,GAAoB,OAAO;AAejC,IAAA;IAdC,IAAa,IAAI,CAAC,KAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,MAAM,GAAG,OAAO,GAAG,KAAK;IACjD;AAEA,IAAA,IAAI,gBAAgB,GAAA;;;AAGlB,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC;IACtC;AAEA,IAAA,kBAAkB,CAAC,WAA4B,EAAA;QAC7C,WAAW,CAAC,UAAU,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;IAC1B;
|
|
1
|
+
{"version":3,"file":"kirbydesign-designsystem-item-sliding.mjs","sources":["../../item-sliding/src/item-sliding.component.ts","../../item-sliding/src/item-sliding.component.html","../../item-sliding/src/kirbydesign-designsystem-item-sliding.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewChild } from '@angular/core';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\n\nimport { IonItemOption, IonItemOptions, IonItemSliding, IonLabel } from '@ionic/angular/standalone';\nimport { ItemSlidingSide, ItemSwipeAction } from './item-sliding.types';\n\n@Component({\n imports: [IconComponent, CommonModule, IonItemSliding, IonItemOptions, IonItemOption, IonLabel],\n selector: 'kirby-item-sliding',\n templateUrl: './item-sliding.component.html',\n styleUrls: ['./item-sliding.component.scss'],\n})\nexport class ItemSlidingComponent {\n @ViewChild(IonItemSliding, { static: true }) itemSliding: IonItemSliding;\n @Input() swipeActions: ItemSwipeAction[];\n\n _side: 'start' | 'end' = 'start';\n @Input() set side(value: ItemSlidingSide) {\n this._side = value === 'left' ? 'start' : 'end';\n }\n\n get _hasSwipeActions(): boolean {\n // Using '>' instead of '!==';\n // will only return true when swipeActions is an array\n return this.swipeActions?.length > 0;\n }\n\n onSwipeActionClick(swipeAction: ItemSwipeAction): void {\n swipeAction.onSelected();\n this.itemSliding.close();\n }\n}\n","<ion-item-sliding>\n <ng-content></ng-content>\n\n @if (_hasSwipeActions) {\n <ion-item-options [side]=\"_side\">\n @for (swipeAction of swipeActions; track swipeAction.title) {\n @if (!swipeAction.isDisabled) {\n <ion-item-option [ngClass]=\"swipeAction.type\" (click)=\"onSwipeActionClick(swipeAction)\">\n @if (swipeAction.icon !== undefined) {\n <kirby-icon [name]=\"swipeAction.icon\" slot=\"top\"></kirby-icon>\n }\n <ion-label>{{ swipeAction.title }}</ion-label>\n </ion-item-option>\n }\n }\n </ion-item-options>\n }\n</ion-item-sliding>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;MAaa,oBAAoB,CAAA;AANjC,IAAA,WAAA,GAAA;QAUE,IAAA,CAAA,KAAK,GAAoB,OAAO;AAejC,IAAA;IAdC,IAAa,IAAI,CAAC,KAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,MAAM,GAAG,OAAO,GAAG,KAAK;IACjD;AAEA,IAAA,IAAI,gBAAgB,GAAA;;;AAGlB,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC;IACtC;AAEA,IAAA,kBAAkB,CAAC,WAA4B,EAAA;QAC7C,WAAW,CAAC,UAAU,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;IAC1B;iIAlBW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACpB,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd3B,soBAkBA,0rCDVY,aAAa,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,8JAAE,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAKnF,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAC,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,YACrF,oBAAoB,EAAA,QAAA,EAAA,soBAAA,EAAA,MAAA,EAAA,CAAA,koCAAA,CAAA,EAAA;;sBAK7B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAC1C;;sBAGA;;;AElBH;;AAEG;;;;"}
|