@kirbydesign/designsystem 11.11.0-dev-d2c1fb9 → 11.11.0-dev-9d936c8
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 +2 -2
- package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-avatar.mjs +10 -2
- 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 +3 -4
- package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-calendar.mjs +2 -2
- package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-card.mjs +40 -8
- package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-checkbox.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-config.mjs +1 -1
- package/fesm2022/kirbydesign-designsystem-config.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-divider.mjs +2 -2
- package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-dropdown.mjs +2 -2
- package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-empty-state.mjs +2 -2
- package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +2 -2
- package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-flag.mjs +2 -2
- package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-form-field.mjs +8 -8
- package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-gesture.mjs +1 -1
- package/fesm2022/kirbydesign-designsystem-gesture.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-header.mjs +2 -2
- package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-icon.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-icon.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 +5 -5
- package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +1 -1
- package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-list.mjs +12 -5
- package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-modal.mjs +12 -17
- package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-page.mjs +8 -8
- package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +2 -2
- package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-radio.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-range.mjs +3 -3
- 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 +4 -4
- 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-segmented-control.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-segmented-control.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-slide-button.mjs +2 -2
- package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-slide.mjs +2 -2
- package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-spinner.mjs +2 -2
- package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-tabs.mjs +6 -6
- package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-testing-base.mjs +2 -2
- package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-testing.mjs +1 -1
- package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-toast.mjs +1 -1
- package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-toggle.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
- package/package.json +3 -3
- package/types/kirbydesign-designsystem-avatar.d.ts +5 -1
- package/types/kirbydesign-designsystem-avatar.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-button.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-card.d.ts +12 -2
- package/types/kirbydesign-designsystem-card.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-fab-sheet.d.ts +1 -1
- package/types/kirbydesign-designsystem-icon.d.ts +1 -1
- package/types/kirbydesign-designsystem-item-sliding.d.ts +1 -1
- package/types/kirbydesign-designsystem-item.d.ts +1 -1
- package/types/kirbydesign-designsystem-kirby-app.d.ts +1 -1
- package/types/kirbydesign-designsystem-list.d.ts +7 -2
- package/types/kirbydesign-designsystem-list.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-loading-overlay.d.ts +1 -1
- package/types/kirbydesign-designsystem-modal.d.ts +1 -2
- package/types/kirbydesign-designsystem-modal.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-page.d.ts +2 -2
- package/types/kirbydesign-designsystem-page.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-radio.d.ts +1 -1
- package/types/kirbydesign-designsystem-router-outlet.d.ts +2 -2
- package/types/kirbydesign-designsystem-tabs.d.ts +3 -3
- package/types/kirbydesign-designsystem-testing-base.d.ts +3 -3
- package/types/kirbydesign-designsystem-testing-base.d.ts.map +1 -1
- package/types/kirbydesign-designsystem-toast.d.ts +1 -1
|
@@ -29,11 +29,11 @@ class ProgressCircleRingComponent {
|
|
|
29
29
|
return 100 - this._progress;
|
|
30
30
|
}
|
|
31
31
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ProgressCircleRingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.18", type: ProgressCircleRingComponent, isStandalone: true, selector: "kirby-progress-circle-ring", inputs: { value: "value", themeColor: "themeColor", size: "size" }, host: { properties: { "class": "this._sizeClass", "class.view-initialized": "this.viewInitialized" } }, ngImport: i0, template: "<svg width=\"100%\" height=\"100%\" aria-hidden=\"true\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n pathLength=\"100\"\n cx=\"50%\"\n cy=\"50%\"\n [attr.stroke-linecap]=\"_linecap\"\n [attr.stroke-dasharray]=\"_progress + ' ' + _remainder\"\n />\n</svg>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{width:100%;height:100%}:host.success{--kirby-progress-circle-stroke-color: var(--kirby-success-
|
|
32
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.18", type: ProgressCircleRingComponent, isStandalone: true, selector: "kirby-progress-circle-ring", inputs: { value: "value", themeColor: "themeColor", size: "size" }, host: { properties: { "class": "this._sizeClass", "class.view-initialized": "this.viewInitialized" } }, ngImport: i0, template: "<svg width=\"100%\" height=\"100%\" aria-hidden=\"true\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n pathLength=\"100\"\n cx=\"50%\"\n cy=\"50%\"\n [attr.stroke-linecap]=\"_linecap\"\n [attr.stroke-dasharray]=\"_progress + ' ' + _remainder\"\n />\n</svg>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{width:100%;height:100%}:host.success{--kirby-progress-circle-stroke-color: var(--kirby-color-border-success-loud)}:host.warning{--kirby-progress-circle-stroke-color: var(--kirby-color-border-warning-loud)}:host.danger{--kirby-progress-circle-stroke-color: var(--kirby-color-border-danger-loud)}:host.view-initialized .progress{transition-property:stroke-dasharray,stroke;transition-duration:var(--kirby-transition-duration-extra-long);transition-timing-function:var(--kirby-transition-easing-enter-exit);transform-origin:50% 50%;stroke:var(--kirby-progress-circle-stroke-color, var(--kirby-color-border-success-loud))}svg{rotate:-90deg}.circle,.progress{r:calc(50% - var(--kirby-progress-circle-stroke-width, 4px) / 2);stroke-width:var(--kirby-progress-circle-stroke-width, 4px)}.circle{stroke:var(--kirby-color-border-base-quiet)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33
33
|
}
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ProgressCircleRingComponent, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
|
-
args: [{ selector: 'kirby-progress-circle-ring', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg width=\"100%\" height=\"100%\" aria-hidden=\"true\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n pathLength=\"100\"\n cx=\"50%\"\n cy=\"50%\"\n [attr.stroke-linecap]=\"_linecap\"\n [attr.stroke-dasharray]=\"_progress + ' ' + _remainder\"\n />\n</svg>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{width:100%;height:100%}:host.success{--kirby-progress-circle-stroke-color: var(--kirby-success-
|
|
36
|
+
args: [{ selector: 'kirby-progress-circle-ring', changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg width=\"100%\" height=\"100%\" aria-hidden=\"true\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n pathLength=\"100\"\n cx=\"50%\"\n cy=\"50%\"\n [attr.stroke-linecap]=\"_linecap\"\n [attr.stroke-dasharray]=\"_progress + ' ' + _remainder\"\n />\n</svg>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{width:100%;height:100%}:host.success{--kirby-progress-circle-stroke-color: var(--kirby-color-border-success-loud)}:host.warning{--kirby-progress-circle-stroke-color: var(--kirby-color-border-warning-loud)}:host.danger{--kirby-progress-circle-stroke-color: var(--kirby-color-border-danger-loud)}:host.view-initialized .progress{transition-property:stroke-dasharray,stroke;transition-duration:var(--kirby-transition-duration-extra-long);transition-timing-function:var(--kirby-transition-easing-enter-exit);transform-origin:50% 50%;stroke:var(--kirby-progress-circle-stroke-color, var(--kirby-color-border-success-loud))}svg{rotate:-90deg}.circle,.progress{r:calc(50% - var(--kirby-progress-circle-stroke-width, 4px) / 2);stroke-width:var(--kirby-progress-circle-stroke-width, 4px)}.circle{stroke:var(--kirby-color-border-base-quiet)}\n"] }]
|
|
37
37
|
}], propDecorators: { value: [{
|
|
38
38
|
type: Input
|
|
39
39
|
}], themeColor: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-progress-circle.mjs","sources":["../../progress-circle/src/progress-circle-ring.component.ts","../../progress-circle/src/progress-circle-ring.component.html","../../progress-circle/src/progress-circle.component.ts","../../progress-circle/src/progress-circle.component.html","../../progress-circle/src/kirbydesign-designsystem-progress-circle.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\n\n@Component({\n selector: 'kirby-progress-circle-ring',\n templateUrl: './progress-circle-ring.component.html',\n styleUrls: ['./progress-circle-ring.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleRingComponent implements AfterViewInit {\n private readonly UPPER_AND_LOWER_BOUND_GAP = 2.5;\n\n @Input() value: number = 0;\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n\n @HostBinding('class')\n get _sizeClass() {\n return this.size;\n }\n\n @HostBinding('class.view-initialized')\n viewInitialized;\n\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n }\n\n get _progress(): number {\n if (this.value <= 0) return 0;\n if (this.value >= 100) return 100;\n return Math.min(this.value, 100 - this.UPPER_AND_LOWER_BOUND_GAP);\n }\n\n get _linecap(): 'butt' | 'round' {\n return this._progress <= 0 || this._progress >= 100 ? 'butt' : 'round';\n }\n\n get _remainder(): number {\n return 100 - this._progress;\n }\n}\n","<svg width=\"100%\" height=\"100%\" aria-hidden=\"true\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n pathLength=\"100\"\n cx=\"50%\"\n cy=\"50%\"\n [attr.stroke-linecap]=\"_linecap\"\n [attr.stroke-dasharray]=\"_progress + ' ' + _remainder\"\n />\n</svg>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { ProgressCircleRingComponent } from './progress-circle-ring.component';\n\n@Component({\n imports: [ProgressCircleRingComponent, ThemeColorDirective],\n selector: 'kirby-progress-circle',\n templateUrl: './progress-circle.component.html',\n styleUrls: ['./progress-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleComponent implements AfterViewInit, OnDestroy {\n @HostBinding('attr.role') readonly role = 'progressbar';\n @HostBinding('attr.aria-valuenow')\n @Input()\n value: number = 0;\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n\n @HostBinding('class')\n get _cssSize() {\n return this.size;\n }\n\n private hasElementBeenVisible?: boolean;\n private observer: IntersectionObserver;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.observer) {\n this.observer = new IntersectionObserver(this.onIntersectionChange, {\n threshold: 0.5,\n });\n this.observer.observe(this.elementRef.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.unobserve();\n }\n\n private onIntersectionChange = (entries: IntersectionObserverEntry[]) => {\n this.hasElementBeenVisible = entries && entries.some((entry) => entry.isIntersecting);\n if (this.hasElementBeenVisible) {\n this.unobserve();\n this.changeDetectorRef.markForCheck();\n }\n };\n\n private unobserve() {\n if (this.observer) {\n this.observer.unobserve(this.elementRef.nativeElement);\n // Safari does not support \"disconnect\", see: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Browser_compatibility\n if (typeof this.observer.disconnect === 'function') {\n this.observer.disconnect();\n }\n }\n }\n\n get _shownValue() {\n // This is needed to make an animation [0 -> value] when element is shown to the user\n return this.hasElementBeenVisible ? this.value : 0;\n }\n}\n","<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [size]=\"size\"\n></kirby-progress-circle-ring>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;MAca,2BAA2B,CAAA;AANxC,IAAA,WAAA,GAAA;QAOmB,IAAA,CAAA,yBAAyB,GAAG,GAAG;QAEvC,IAAA,CAAA,KAAK,GAAW,CAAC;QACjB,IAAA,CAAA,UAAU,GAAqC,SAAS;QACxD,IAAA,CAAA,IAAI,GAAuB,IAAI;AA2BzC,IAAA;AAzBC,IAAA,IACI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,IAAI;IAClB;IAKA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;IAC7B;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;AAAE,YAAA,OAAO,CAAC;AAC7B,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG;AAAE,YAAA,OAAO,GAAG;AACjC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,yBAAyB,CAAC;IACnE;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,GAAG,MAAM,GAAG,OAAO;IACxE;AAEA,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS;IAC7B;kIA/BW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,kQCdxC,+dAmBA,EAAA,MAAA,EAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"kirbydesign-designsystem-progress-circle.mjs","sources":["../../progress-circle/src/progress-circle-ring.component.ts","../../progress-circle/src/progress-circle-ring.component.html","../../progress-circle/src/progress-circle.component.ts","../../progress-circle/src/progress-circle.component.html","../../progress-circle/src/kirbydesign-designsystem-progress-circle.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\n\n@Component({\n selector: 'kirby-progress-circle-ring',\n templateUrl: './progress-circle-ring.component.html',\n styleUrls: ['./progress-circle-ring.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleRingComponent implements AfterViewInit {\n private readonly UPPER_AND_LOWER_BOUND_GAP = 2.5;\n\n @Input() value: number = 0;\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n\n @HostBinding('class')\n get _sizeClass() {\n return this.size;\n }\n\n @HostBinding('class.view-initialized')\n viewInitialized;\n\n ngAfterViewInit(): void {\n this.viewInitialized = true;\n }\n\n get _progress(): number {\n if (this.value <= 0) return 0;\n if (this.value >= 100) return 100;\n return Math.min(this.value, 100 - this.UPPER_AND_LOWER_BOUND_GAP);\n }\n\n get _linecap(): 'butt' | 'round' {\n return this._progress <= 0 || this._progress >= 100 ? 'butt' : 'round';\n }\n\n get _remainder(): number {\n return 100 - this._progress;\n }\n}\n","<svg width=\"100%\" height=\"100%\" aria-hidden=\"true\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n pathLength=\"100\"\n cx=\"50%\"\n cy=\"50%\"\n [attr.stroke-linecap]=\"_linecap\"\n [attr.stroke-dasharray]=\"_progress + ' ' + _remainder\"\n />\n</svg>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { ProgressCircleRingComponent } from './progress-circle-ring.component';\n\n@Component({\n imports: [ProgressCircleRingComponent, ThemeColorDirective],\n selector: 'kirby-progress-circle',\n templateUrl: './progress-circle.component.html',\n styleUrls: ['./progress-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleComponent implements AfterViewInit, OnDestroy {\n @HostBinding('attr.role') readonly role = 'progressbar';\n @HostBinding('attr.aria-valuenow')\n @Input()\n value: number = 0;\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n\n @HostBinding('class')\n get _cssSize() {\n return this.size;\n }\n\n private hasElementBeenVisible?: boolean;\n private observer: IntersectionObserver;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.observer) {\n this.observer = new IntersectionObserver(this.onIntersectionChange, {\n threshold: 0.5,\n });\n this.observer.observe(this.elementRef.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.unobserve();\n }\n\n private onIntersectionChange = (entries: IntersectionObserverEntry[]) => {\n this.hasElementBeenVisible = entries && entries.some((entry) => entry.isIntersecting);\n if (this.hasElementBeenVisible) {\n this.unobserve();\n this.changeDetectorRef.markForCheck();\n }\n };\n\n private unobserve() {\n if (this.observer) {\n this.observer.unobserve(this.elementRef.nativeElement);\n // Safari does not support \"disconnect\", see: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Browser_compatibility\n if (typeof this.observer.disconnect === 'function') {\n this.observer.disconnect();\n }\n }\n }\n\n get _shownValue() {\n // This is needed to make an animation [0 -> value] when element is shown to the user\n return this.hasElementBeenVisible ? this.value : 0;\n }\n}\n","<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [size]=\"size\"\n></kirby-progress-circle-ring>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { ElementRef, HostBinding, Input, ViewChild, ChangeDetectionStrategy, Component, EventEmitter, TemplateRef, HostListener, ContentChildren, ViewChildren, ContentChild, Output, NgModule } from '@angular/core';
|
|
3
|
-
import { IonRadio, IonRadioGroup } from '@ionic/angular';
|
|
3
|
+
import { IonRadio, IonRadioGroup } from '@ionic/angular/standalone';
|
|
4
4
|
import * as i1 from '@kirbydesign/designsystem/helpers';
|
|
5
5
|
import { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';
|
|
6
6
|
import { inheritAriaLabelText, setAccessibleLabel, forwardAttributes } from '@kirbydesign/designsystem/shared';
|
|
@@ -54,11 +54,11 @@ class RadioComponent {
|
|
|
54
54
|
this.ionRadioElement?.nativeElement.focus();
|
|
55
55
|
}
|
|
56
56
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: RadioComponent, deps: [{ token: i0.ElementRef }, { token: i1.IonicElementPartHelper }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: RadioComponent, isStandalone: true, selector: "kirby-radio", inputs: { value: "value", text: "text", size: "size", disabled: "disabled" }, host: { properties: { "class": "this.size", "attr.disabled": "this._isDisabled", "class.has-hidden-label": "this._labelText" } }, providers: [IonicElementPartHelper], viewQueries: [{ propertyName: "ionRadioElement", first: true, predicate: IonRadio, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-radio\n [value]=\"value\"\n [disabled]=\"disabled\"\n mode=\"md\"\n [labelPlacement]=\"_labelPlacement\"\n [justify]=\"_justify\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n @if (text) {\n <span [attr.aria-hidden]=\"_labelText ? true : undefined\">{{ text }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-radio>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:flex}:host[disabled]
|
|
57
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: RadioComponent, isStandalone: true, selector: "kirby-radio", inputs: { value: "value", text: "text", size: "size", disabled: "disabled" }, host: { properties: { "class": "this.size", "attr.disabled": "this._isDisabled", "class.has-hidden-label": "this._labelText" } }, providers: [IonicElementPartHelper], viewQueries: [{ propertyName: "ionRadioElement", first: true, predicate: IonRadio, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<ion-radio\n [value]=\"value\"\n [disabled]=\"disabled\"\n mode=\"md\"\n [labelPlacement]=\"_labelPlacement\"\n [justify]=\"_justify\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n @if (text) {\n <span [attr.aria-hidden]=\"_labelText ? true : undefined\">{{ text }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-radio>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:flex}:host[disabled] ion-radio::part(label-text-wrapper),:host[disabled] ion-radio::part(native-wrapper){opacity:.4}:host:has(ion-radio.in-item.radio-justify-space-between){width:100%}:host.has-hidden-label:has(ion-radio.in-item){position:initial}:host.has-hidden-label:has(ion-radio.in-item) ion-radio{position:initial}:host.has-hidden-label:has(ion-radio.in-item) ion-radio::part(label){position:initial}:host.has-hidden-label:has(ion-radio.in-item) ion-radio.radio-label-placement-start::part(label-text-wrapper),:host.has-hidden-label:has(ion-radio.in-item) ion-radio.radio-label-placement-end::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-radio{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host.xs ion-radio:not(.in-item)::part(label){padding-block:calc((32px - var(--kirby-spacing-m)) * .5)}:host.sm ion-radio:not(.in-item)::part(label){padding-block:calc((44px - var(--kirby-spacing-m)) * .5)}:host.md ion-radio:not(.in-item)::part(label){padding-block:calc((56px - var(--kirby-spacing-m)) * .5)}ion-radio{box-sizing:border-box;--border-width: 1px;--color: var(--kirby-color-border-raised);--color-checked: var(--kirby-color-border-raised)}@media(hover:hover){ion-radio:hover{--color: var(--kirby-color-border-raised-hover);--color-checked: var(--kirby-color-border-raised-hover)}ion-radio:hover::part(container){background-color:var(--kirby-color-fill-raised-hover)}ion-radio:hover::part(mark){--color-checked: var(--kirby-color-fill-engaged-hover)}}ion-radio:active{--color: var(--kirby-color-border-raised-active);--color-checked: var(--kirby-color-border-raised-active)}ion-radio:active::part(container){background-color:var(--kirby-color-fill-raised-active)}ion-radio:active::part(mark){--color-checked: var(--kirby-color-fill-engaged-active)}ion-radio:focus-visible{--color: var(--kirby-color-border-focus);--color-checked: var(--kirby-color-border-focus)}ion-radio:focus-visible::part(container){transition:box-shadow 80ms linear;box-shadow:var(--kirby-focus-ring-sm-combined-inset)}ion-radio::part(container){transition:all 80ms linear 0ms;transition-property:background-color,box-shadow;background-color:var(--kirby-color-fill-raised);margin:var(--kirby-spacing-xxxxs);width:20px;height:20px}ion-radio::part(mark){--color-checked: var(--kirby-color-fill-engaged);width:var(--kirby-spacing-xs);height:var(--kirby-spacing-xs)}ion-radio::part(label){align-items:start;padding-inline:16px;line-height:var(--kirby-line-height-n)}ion-radio::part(label-text-wrapper){margin-inline:12px 0;white-space:pre-line}ion-radio::part(native-wrapper){height:var(--kirby-relative-size-m)}ion-radio.in-item::part(label){align-items:center;padding-inline:0}ion-radio.in-item::part(label-text-wrapper){margin-block:0}ion-radio.in-item.radio-label-placement-start::part(label-text-wrapper){margin-inline:0 var(--kirby-spacing-xxs)}ion-radio.in-item.radio-label-placement-end::part(label-text-wrapper){margin-inline:var(--kirby-spacing-xxs) 0}ion-radio :host-context(kirby-radio-group.error) ion-radio,ion-radio :host-context(kirby-radio-group.ng-touched.ng-invalid) ion-radio{--color: var(--kirby-color-border-raised-danger);--color-checked: var(--kirby-color-border-raised-danger)}ion-radio :host-context(kirby-radio-group.error) ion-radio::part(container),ion-radio :host-context(kirby-radio-group.ng-touched.ng-invalid) ion-radio::part(container){box-shadow:var(--kirby-error-ring-combined-inset)}ion-radio :host-context(kirby-radio-group.error) ion-radio:focus-visible,ion-radio :host-context(kirby-radio-group.ng-touched.ng-invalid) ion-radio:focus-visible{--color: var(--kirby-color-border-focus);--color-checked: var(--kirby-color-border-focus)}ion-radio :host-context(kirby-radio-group.error) ion-radio:focus-visible::part(container),ion-radio :host-context(kirby-radio-group.ng-touched.ng-invalid) ion-radio:focus-visible::part(container){box-shadow:var(--kirby-focus-ring-sm-combined-inset)}:host-context(kirby-item){z-index:var(--kirby-z-index-default)}:host-context(kirby-item) ion-radio{margin:0}:host-context(kirby-item)[slot=start]{margin-block:0;margin-inline-end:12px}\n"], dependencies: [{ kind: "component", type: IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
58
58
|
}
|
|
59
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: RadioComponent, decorators: [{
|
|
60
60
|
type: Component,
|
|
61
|
-
args: [{ selector: 'kirby-radio', changeDetection: ChangeDetectionStrategy.OnPush, providers: [IonicElementPartHelper], imports: [IonRadio], template: "<ion-radio\n [value]=\"value\"\n [disabled]=\"disabled\"\n mode=\"md\"\n [labelPlacement]=\"_labelPlacement\"\n [justify]=\"_justify\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n @if (text) {\n <span [attr.aria-hidden]=\"_labelText ? true : undefined\">{{ text }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-radio>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:flex}:host[disabled]
|
|
61
|
+
args: [{ selector: 'kirby-radio', changeDetection: ChangeDetectionStrategy.OnPush, providers: [IonicElementPartHelper], imports: [IonRadio], template: "<ion-radio\n [value]=\"value\"\n [disabled]=\"disabled\"\n mode=\"md\"\n [labelPlacement]=\"_labelPlacement\"\n [justify]=\"_justify\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n @if (text) {\n <span [attr.aria-hidden]=\"_labelText ? true : undefined\">{{ text }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-radio>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:flex}:host[disabled] ion-radio::part(label-text-wrapper),:host[disabled] ion-radio::part(native-wrapper){opacity:.4}:host:has(ion-radio.in-item.radio-justify-space-between){width:100%}:host.has-hidden-label:has(ion-radio.in-item){position:initial}:host.has-hidden-label:has(ion-radio.in-item) ion-radio{position:initial}:host.has-hidden-label:has(ion-radio.in-item) ion-radio::part(label){position:initial}:host.has-hidden-label:has(ion-radio.in-item) ion-radio.radio-label-placement-start::part(label-text-wrapper),:host.has-hidden-label:has(ion-radio.in-item) ion-radio.radio-label-placement-end::part(label-text-wrapper){margin-inline:0}:host.has-hidden-label[slot=end] ion-radio{margin-inline-start:12px}:host.has-hidden-label .hidden-label{position:absolute;inset:0;opacity:0}:host.xs ion-radio:not(.in-item)::part(label){padding-block:calc((32px - var(--kirby-spacing-m)) * .5)}:host.sm ion-radio:not(.in-item)::part(label){padding-block:calc((44px - var(--kirby-spacing-m)) * .5)}:host.md ion-radio:not(.in-item)::part(label){padding-block:calc((56px - var(--kirby-spacing-m)) * .5)}ion-radio{box-sizing:border-box;--border-width: 1px;--color: var(--kirby-color-border-raised);--color-checked: var(--kirby-color-border-raised)}@media(hover:hover){ion-radio:hover{--color: var(--kirby-color-border-raised-hover);--color-checked: var(--kirby-color-border-raised-hover)}ion-radio:hover::part(container){background-color:var(--kirby-color-fill-raised-hover)}ion-radio:hover::part(mark){--color-checked: var(--kirby-color-fill-engaged-hover)}}ion-radio:active{--color: var(--kirby-color-border-raised-active);--color-checked: var(--kirby-color-border-raised-active)}ion-radio:active::part(container){background-color:var(--kirby-color-fill-raised-active)}ion-radio:active::part(mark){--color-checked: var(--kirby-color-fill-engaged-active)}ion-radio:focus-visible{--color: var(--kirby-color-border-focus);--color-checked: var(--kirby-color-border-focus)}ion-radio:focus-visible::part(container){transition:box-shadow 80ms linear;box-shadow:var(--kirby-focus-ring-sm-combined-inset)}ion-radio::part(container){transition:all 80ms linear 0ms;transition-property:background-color,box-shadow;background-color:var(--kirby-color-fill-raised);margin:var(--kirby-spacing-xxxxs);width:20px;height:20px}ion-radio::part(mark){--color-checked: var(--kirby-color-fill-engaged);width:var(--kirby-spacing-xs);height:var(--kirby-spacing-xs)}ion-radio::part(label){align-items:start;padding-inline:16px;line-height:var(--kirby-line-height-n)}ion-radio::part(label-text-wrapper){margin-inline:12px 0;white-space:pre-line}ion-radio::part(native-wrapper){height:var(--kirby-relative-size-m)}ion-radio.in-item::part(label){align-items:center;padding-inline:0}ion-radio.in-item::part(label-text-wrapper){margin-block:0}ion-radio.in-item.radio-label-placement-start::part(label-text-wrapper){margin-inline:0 var(--kirby-spacing-xxs)}ion-radio.in-item.radio-label-placement-end::part(label-text-wrapper){margin-inline:var(--kirby-spacing-xxs) 0}ion-radio :host-context(kirby-radio-group.error) ion-radio,ion-radio :host-context(kirby-radio-group.ng-touched.ng-invalid) ion-radio{--color: var(--kirby-color-border-raised-danger);--color-checked: var(--kirby-color-border-raised-danger)}ion-radio :host-context(kirby-radio-group.error) ion-radio::part(container),ion-radio :host-context(kirby-radio-group.ng-touched.ng-invalid) ion-radio::part(container){box-shadow:var(--kirby-error-ring-combined-inset)}ion-radio :host-context(kirby-radio-group.error) ion-radio:focus-visible,ion-radio :host-context(kirby-radio-group.ng-touched.ng-invalid) ion-radio:focus-visible{--color: var(--kirby-color-border-focus);--color-checked: var(--kirby-color-border-focus)}ion-radio :host-context(kirby-radio-group.error) ion-radio:focus-visible::part(container),ion-radio :host-context(kirby-radio-group.ng-touched.ng-invalid) ion-radio:focus-visible::part(container){box-shadow:var(--kirby-focus-ring-sm-combined-inset)}:host-context(kirby-item){z-index:var(--kirby-z-index-default)}:host-context(kirby-item) ion-radio{margin:0}:host-context(kirby-item)[slot=start]{margin-block:0;margin-inline-end:12px}\n"] }]
|
|
62
62
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.IonicElementPartHelper }], propDecorators: { ionRadioElement: [{
|
|
63
63
|
type: ViewChild,
|
|
64
64
|
args: [IonRadio, { read: ElementRef, static: true }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-radio.mjs","sources":["../../radio/src/radio.component.ts","../../radio/src/radio.component.html","../../radio/src/radio-group/radio-group.component.ts","../../radio/src/radio-group/radio-group.component.html","../../radio/src/radio-module.ts","../../radio/src/kirbydesign-designsystem-radio.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { IonRadio } from '@ionic/angular';\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\nimport { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';\n\n@Component({\n selector: 'kirby-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IonicElementPartHelper],\n imports: [IonRadio],\n})\nexport class RadioComponent implements AfterViewInit, OnInit, AfterContentInit {\n @ViewChild(IonRadio, { read: ElementRef, static: true })\n private ionRadioElement?: ElementRef<HTMLIonRadioElement>;\n\n @Input()\n value: any;\n\n @Input()\n text: string;\n\n @HostBinding('class')\n @Input()\n size: 'xs' | 'sm' | 'md' = 'md';\n\n @Input()\n disabled: boolean;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.has-hidden-label') _labelText: string;\n\n get buttonTabIndex(): number {\n return this.ionRadioElement ? this.ionRadioElement.nativeElement.tabIndex : -1;\n }\n\n _justify: 'start' | 'end' | 'space-between' = 'start';\n _labelPlacement: 'end' | 'fixed' | 'stacked' | 'start' = 'end';\n _hasSlottedContent: boolean;\n\n constructor(\n private element: ElementRef<HTMLElement>,\n private ionicElementPartHelper: IonicElementPartHelper\n ) {}\n\n ngOnInit(): void {\n /**\n * We cannot query ion-checkbox for slotted content at this point as the slot has not been rendered.\n * But we need to know if content is slotted to set justify and labelPlacement BEFORE ion-checkbox is rendered.\n * So it has to be done by querying an additional wrapper around the default content slot like this.\n */\n this._hasSlottedContent = this.element.nativeElement\n .querySelector('.default-content')\n .hasChildNodes();\n\n const slot = this.element.nativeElement.getAttribute('slot');\n if (slot === 'end' && this._hasSlottedContent) {\n this._justify = 'space-between';\n this._labelPlacement = 'start';\n }\n }\n\n ngAfterViewInit(): void {\n this.ionicElementPartHelper.setPart('label', this.ionRadioElement, '.radio-wrapper');\n this.ionicElementPartHelper.setPart(\n 'label-text-wrapper',\n this.ionRadioElement,\n '.label-text-wrapper'\n );\n this.ionicElementPartHelper.setPart('native-wrapper', this.ionRadioElement, '.native-wrapper');\n }\n\n ngAfterContentInit(): void {\n this._labelText = inheritAriaLabelText(this.element.nativeElement);\n\n if (!this.text && !this._labelText && !this._hasSlottedContent) {\n // if no label has been set try to find a label in an item and use its text content\n this._labelText = setAccessibleLabel(this.element.nativeElement);\n }\n }\n\n focus() {\n this.ionRadioElement?.nativeElement.focus();\n }\n}\n","<ion-radio\n [value]=\"value\"\n [disabled]=\"disabled\"\n mode=\"md\"\n [labelPlacement]=\"_labelPlacement\"\n [justify]=\"_justify\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n @if (text) {\n <span [attr.aria-hidden]=\"_labelText ? true : undefined\">{{ text }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-radio>\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Output,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChildren,\n} from '@angular/core';\nimport { Component, HostListener, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ListItemTemplateDirective } from '@kirbydesign/designsystem/list';\nimport { FORM_FIELD_CONTROL, FormFieldControl } from '@kirbydesign/designsystem/types';\n\nimport { forwardAttributes } from '@kirbydesign/designsystem/shared';\nimport { IonRadioGroup } from '@ionic/angular';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { RadioComponent } from '../radio.component';\n\n@Component({\n selector: 'kirby-radio-group',\n templateUrl: './radio-group.component.html',\n styles: ['ion-radio-group { display: inherit; flex-wrap: inherit}'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroupComponent,\n multi: true,\n },\n { provide: FORM_FIELD_CONTROL, useExisting: RadioGroupComponent },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IonRadioGroup, NgTemplateOutlet, RadioComponent],\n})\nexport class RadioGroupComponent\n implements AfterContentInit, ControlValueAccessor, FormFieldControl, AfterViewInit\n{\n constructor(\n private cdr: ChangeDetectorRef,\n private element: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {}\n\n // #region public properties\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input() set disabled(value: boolean) {\n this._disabled = value;\n this.setProjectedRadiosDisabledState(value);\n }\n\n private _hasError: boolean = false;\n\n @HostBinding('class.error')\n @Input()\n get hasError(): boolean {\n return this._hasError;\n }\n\n set hasError(value: boolean) {\n if (this._hasError !== value) {\n this._hasError = value;\n this.hasErrorChange.emit(this._hasError);\n }\n }\n\n @Output() hasErrorChange = new EventEmitter<boolean>();\n\n get interactiveElement(): HTMLElement {\n return this.element?.nativeElement?.querySelector('ion-radio-group');\n }\n\n get items(): string[] | any[] {\n return this._items || []; // Ensure items return empty array even if set to null/undefined\n }\n\n @Input() set items(value: string[] | any[]) {\n if ((!value || !value.length) && !this.items.length) return; // Nothing changed, no items before or after\n this._items = value;\n this.refreshSelectionState();\n }\n\n @Input()\n itemTextProperty = 'text';\n\n @Input()\n itemDisabledProperty = 'disabled';\n\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(value: number) {\n if (typeof value === 'string') value = parseInt(value); // Ensure data type number, e.g. when used with template syntax without binding: <... selectedIndex=\"1\"\n if (value === undefined || value === null || Number.isNaN(value)) value = -1;\n if (value === this.selectedIndex) return;\n this._selectedIndex = value;\n this._value = this.getValueFromSelectedIndex() || null;\n }\n\n get value(): string | any {\n return this._value;\n }\n\n @Input() set value(value: string | any) {\n this.setSelectedItem(value);\n }\n\n private get hasValue(): boolean {\n return this.value !== undefined && this.value !== null;\n }\n\n /**\n * Emitted when an option is selected\n */\n @Output() valueChange: EventEmitter<string | any> = new EventEmitter<string | any>();\n // #endregion public properties\n\n // #region \"protected\" properties used by template\n @ContentChild(ListItemTemplateDirective, { read: TemplateRef })\n _customItemTemplate: TemplateRef<any>;\n // #endregion \"protected\" properties used by template\n\n // #region private fields\n private _disabled = false;\n private _items: string[] | any[] = [];\n private _onChangeCallback: (value: any) => void = () => {};\n private _onTouched = () => {};\n private _selectedIndex: number = -1;\n private _value?: string | any = null;\n private _attributesToForward = ['aria-label', 'aria-labelledby'];\n\n @ViewChildren(RadioComponent)\n private radioButtons: QueryList<RadioComponent>;\n @ContentChildren(RadioComponent, { descendants: true })\n private projectedRadioButtons: QueryList<RadioComponent>;\n\n private get hasItemsFromContentProjection(): boolean {\n return (\n !this.items.length &&\n !this._customItemTemplate &&\n this.projectedRadioButtons &&\n this.projectedRadioButtons.length > 0\n );\n }\n\n // #endregion private fields\n\n // #region public methods\n focus() {\n const findFocusable = (radios: QueryList<RadioComponent>) =>\n radios && radios.find((radio) => !isNaN(radio.buttonTabIndex) && radio.buttonTabIndex !== -1);\n const focusable = findFocusable(this.radioButtons) || findFocusable(this.projectedRadioButtons);\n focusable?.focus();\n }\n\n ngAfterContentInit(): void {\n this.initSelectionStateFromProjectedContent();\n this.listenForProjectedRadiosChange();\n }\n\n ngAfterViewInit(): void {\n forwardAttributes(\n this.element.nativeElement,\n this._attributesToForward,\n this.renderer,\n this.element.nativeElement.querySelector('ion-radio-group')\n );\n }\n\n registerOnChange(fn: any): void {\n this._onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n // #endregion public methods\n\n // #region \"protected\" methods used by template\n _getTextFromItem(item: string | any): string {\n if (!item) return null;\n return typeof item === 'string' ? item : item[this.itemTextProperty];\n }\n\n _getDisabledStateFromItem(item: string | any): boolean {\n if (!item) return undefined;\n return typeof item === 'string' ? undefined : item[this.itemDisabledProperty];\n }\n\n get _hasItems(): boolean {\n return this.items.length > 0 || this.hasItemsFromContentProjection;\n }\n\n _onChange(value: string | any) {\n if (value === this._value) return;\n this.setSelectedItem(value);\n this.valueChange.emit(value);\n this._onChangeCallback(value);\n }\n\n @HostListener('ionBlur')\n _onRadioBlur() {\n this._onTouched();\n }\n\n // #endregion \"protected\" methods used by template\n\n // #region private methods\n private getIndexOfSelectedValue() {\n if (!this.hasValue) return -1;\n return this.hasItemsFromContentProjection\n ? this.getIndexOfProjectedRadio(this.value)\n : this.items.indexOf(this.value);\n }\n\n private getIndexOfProjectedRadio(value: string | any): number {\n let selectedIndex = -1;\n this.projectedRadioButtons?.find((radio, i) => {\n const found = radio.value === value;\n if (found) {\n selectedIndex = i;\n }\n return found;\n });\n return selectedIndex;\n }\n\n private getValueFromSelectedIndex(): string | any {\n if (this.selectedIndex === -1) return;\n return this.hasItemsFromContentProjection\n ? this.getValueFromProjectedRadios(this.selectedIndex)\n : this.items[this.selectedIndex];\n }\n\n private getValueFromProjectedRadios(index: number): string | any {\n const radio =\n this.projectedRadioButtons &&\n this.projectedRadioButtons.find((_, i) => {\n return i === index;\n });\n return radio && radio.value;\n }\n\n private initSelectionStateFromProjectedContent() {\n if (this.hasItemsFromContentProjection) {\n this.refreshSelectionState(); // Initialize selected index and value from projected radios\n }\n }\n\n private listenForProjectedRadiosChange() {\n this.projectedRadioButtons.changes.subscribe(() => {\n this.refreshStateFromProjectedContent();\n\n if (this.disabled) {\n // Ensure disabled state propagates when re-rendering projected radios.\n // setTimeout prevents ExpressionChangedAfterItHasBeenCheckedError when updating the DOM in QueryList.changes:\n setTimeout(() => this.setProjectedRadiosDisabledState(this.disabled));\n }\n });\n }\n\n private refreshSelectionState() {\n if (this.hasValue) {\n this._selectedIndex = this.getIndexOfSelectedValue(); // Ensure selectedIndex reflects value within items\n }\n\n const valueFromSelectedIndex = this.getValueFromSelectedIndex();\n this._value = valueFromSelectedIndex !== undefined ? valueFromSelectedIndex : null;\n }\n\n private refreshStateFromProjectedContent() {\n if (this._customItemTemplate) return; // Only refresh on changes to projected content, not when re-rendering custom template\n this.cdr.markForCheck(); // Ensure changes to projected content gets checked in next change detection cycle\n this.refreshSelectionState(); // Sync selected index and value from projected radios\n }\n\n private setSelectedItem(value: string | any) {\n if (value === this._value) return; // Nothing changed\n this._value = value;\n this._selectedIndex = this.getIndexOfSelectedValue();\n }\n\n private setProjectedRadiosDisabledState(isDisabled: boolean) {\n if (!this.projectedRadioButtons || !this.projectedRadioButtons.length) return;\n this.projectedRadioButtons.forEach((radio, index) => {\n // Disable all radios when group is disabled, otherwise fall back to each item's disabled state, if defined:\n radio.disabled = isDisabled || this._getDisabledStateFromItem(this.items[index]);\n });\n }\n\n // #endregion private methods\n}\n","@if (_hasItems) {\n <ion-radio-group\n [value]=\"value\"\n (ionChange)=\"_onChange($event.detail.value)\"\n [attr.aria-invalid]=\"hasError\"\n >\n @if (!items || !items.length) {\n <ng-content></ng-content>\n } @else {\n @for (item of items; track _getTextFromItem(item)) {\n <ng-container\n *ngTemplateOutlet=\"\n _customItemTemplate || defaultItemTemplate;\n context: { $implicit: item, selected: $index === selectedIndex, index: $index }\n \"\n ></ng-container>\n }\n }\n </ion-radio-group>\n}\n\n<ng-template #defaultItemTemplate let-item>\n <kirby-radio\n [value]=\"item\"\n [disabled]=\"disabled || _getDisabledStateFromItem(item)\"\n [text]=\"_getTextFromItem(item)\"\n ></kirby-radio>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonRadio, IonRadioGroup } from '@ionic/angular';\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\nimport { RadioComponent } from './radio.component';\n\nconst declarations = [RadioComponent, RadioGroupComponent];\n\n@NgModule({\n imports: [CommonModule, IonRadio, IonRadioGroup, ...declarations],\n exports: [...declarations],\n})\nexport class RadioModule {}\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-radio.mjs","sources":["../../radio/src/radio.component.ts","../../radio/src/radio.component.html","../../radio/src/radio-group/radio-group.component.ts","../../radio/src/radio-group/radio-group.component.html","../../radio/src/radio-module.ts","../../radio/src/kirbydesign-designsystem-radio.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { IonRadio } from '@ionic/angular/standalone';\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\nimport { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';\n\n@Component({\n selector: 'kirby-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IonicElementPartHelper],\n imports: [IonRadio],\n})\nexport class RadioComponent implements AfterViewInit, OnInit, AfterContentInit {\n @ViewChild(IonRadio, { read: ElementRef, static: true })\n private ionRadioElement?: ElementRef<HTMLIonRadioElement>;\n\n @Input()\n value: any;\n\n @Input()\n text: string;\n\n @HostBinding('class')\n @Input()\n size: 'xs' | 'sm' | 'md' = 'md';\n\n @Input()\n disabled: boolean;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.has-hidden-label') _labelText: string;\n\n get buttonTabIndex(): number {\n return this.ionRadioElement ? this.ionRadioElement.nativeElement.tabIndex : -1;\n }\n\n _justify: 'start' | 'end' | 'space-between' = 'start';\n _labelPlacement: 'end' | 'fixed' | 'stacked' | 'start' = 'end';\n _hasSlottedContent: boolean;\n\n constructor(\n private element: ElementRef<HTMLElement>,\n private ionicElementPartHelper: IonicElementPartHelper\n ) {}\n\n ngOnInit(): void {\n /**\n * We cannot query ion-checkbox for slotted content at this point as the slot has not been rendered.\n * But we need to know if content is slotted to set justify and labelPlacement BEFORE ion-checkbox is rendered.\n * So it has to be done by querying an additional wrapper around the default content slot like this.\n */\n this._hasSlottedContent = this.element.nativeElement\n .querySelector('.default-content')\n .hasChildNodes();\n\n const slot = this.element.nativeElement.getAttribute('slot');\n if (slot === 'end' && this._hasSlottedContent) {\n this._justify = 'space-between';\n this._labelPlacement = 'start';\n }\n }\n\n ngAfterViewInit(): void {\n this.ionicElementPartHelper.setPart('label', this.ionRadioElement, '.radio-wrapper');\n this.ionicElementPartHelper.setPart(\n 'label-text-wrapper',\n this.ionRadioElement,\n '.label-text-wrapper'\n );\n this.ionicElementPartHelper.setPart('native-wrapper', this.ionRadioElement, '.native-wrapper');\n }\n\n ngAfterContentInit(): void {\n this._labelText = inheritAriaLabelText(this.element.nativeElement);\n\n if (!this.text && !this._labelText && !this._hasSlottedContent) {\n // if no label has been set try to find a label in an item and use its text content\n this._labelText = setAccessibleLabel(this.element.nativeElement);\n }\n }\n\n focus() {\n this.ionRadioElement?.nativeElement.focus();\n }\n}\n","<ion-radio\n [value]=\"value\"\n [disabled]=\"disabled\"\n mode=\"md\"\n [labelPlacement]=\"_labelPlacement\"\n [justify]=\"_justify\"\n>\n @if (_labelText) {\n <span class=\"hidden-label\">{{ _labelText }}</span>\n }\n @if (text) {\n <span [attr.aria-hidden]=\"_labelText ? true : undefined\">{{ text }}</span>\n }\n <span class=\"default-content\" [attr.aria-hidden]=\"_labelText ? true : undefined\">\n <ng-content></ng-content>\n </span>\n</ion-radio>\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Output,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChildren,\n} from '@angular/core';\nimport { Component, HostListener, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ListItemTemplateDirective } from '@kirbydesign/designsystem/list';\nimport { FORM_FIELD_CONTROL, FormFieldControl } from '@kirbydesign/designsystem/types';\n\nimport { forwardAttributes } from '@kirbydesign/designsystem/shared';\nimport { IonRadioGroup } from '@ionic/angular/standalone';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { RadioComponent } from '../radio.component';\n\n@Component({\n selector: 'kirby-radio-group',\n templateUrl: './radio-group.component.html',\n styles: ['ion-radio-group { display: inherit; flex-wrap: inherit}'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroupComponent,\n multi: true,\n },\n { provide: FORM_FIELD_CONTROL, useExisting: RadioGroupComponent },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IonRadioGroup, NgTemplateOutlet, RadioComponent],\n})\nexport class RadioGroupComponent\n implements AfterContentInit, ControlValueAccessor, FormFieldControl, AfterViewInit\n{\n constructor(\n private cdr: ChangeDetectorRef,\n private element: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {}\n\n // #region public properties\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input() set disabled(value: boolean) {\n this._disabled = value;\n this.setProjectedRadiosDisabledState(value);\n }\n\n private _hasError: boolean = false;\n\n @HostBinding('class.error')\n @Input()\n get hasError(): boolean {\n return this._hasError;\n }\n\n set hasError(value: boolean) {\n if (this._hasError !== value) {\n this._hasError = value;\n this.hasErrorChange.emit(this._hasError);\n }\n }\n\n @Output() hasErrorChange = new EventEmitter<boolean>();\n\n get interactiveElement(): HTMLElement {\n return this.element?.nativeElement?.querySelector('ion-radio-group');\n }\n\n get items(): string[] | any[] {\n return this._items || []; // Ensure items return empty array even if set to null/undefined\n }\n\n @Input() set items(value: string[] | any[]) {\n if ((!value || !value.length) && !this.items.length) return; // Nothing changed, no items before or after\n this._items = value;\n this.refreshSelectionState();\n }\n\n @Input()\n itemTextProperty = 'text';\n\n @Input()\n itemDisabledProperty = 'disabled';\n\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(value: number) {\n if (typeof value === 'string') value = parseInt(value); // Ensure data type number, e.g. when used with template syntax without binding: <... selectedIndex=\"1\"\n if (value === undefined || value === null || Number.isNaN(value)) value = -1;\n if (value === this.selectedIndex) return;\n this._selectedIndex = value;\n this._value = this.getValueFromSelectedIndex() || null;\n }\n\n get value(): string | any {\n return this._value;\n }\n\n @Input() set value(value: string | any) {\n this.setSelectedItem(value);\n }\n\n private get hasValue(): boolean {\n return this.value !== undefined && this.value !== null;\n }\n\n /**\n * Emitted when an option is selected\n */\n @Output() valueChange: EventEmitter<string | any> = new EventEmitter<string | any>();\n // #endregion public properties\n\n // #region \"protected\" properties used by template\n @ContentChild(ListItemTemplateDirective, { read: TemplateRef })\n _customItemTemplate: TemplateRef<any>;\n // #endregion \"protected\" properties used by template\n\n // #region private fields\n private _disabled = false;\n private _items: string[] | any[] = [];\n private _onChangeCallback: (value: any) => void = () => {};\n private _onTouched = () => {};\n private _selectedIndex: number = -1;\n private _value?: string | any = null;\n private _attributesToForward = ['aria-label', 'aria-labelledby'];\n\n @ViewChildren(RadioComponent)\n private radioButtons: QueryList<RadioComponent>;\n @ContentChildren(RadioComponent, { descendants: true })\n private projectedRadioButtons: QueryList<RadioComponent>;\n\n private get hasItemsFromContentProjection(): boolean {\n return (\n !this.items.length &&\n !this._customItemTemplate &&\n this.projectedRadioButtons &&\n this.projectedRadioButtons.length > 0\n );\n }\n\n // #endregion private fields\n\n // #region public methods\n focus() {\n const findFocusable = (radios: QueryList<RadioComponent>) =>\n radios && radios.find((radio) => !isNaN(radio.buttonTabIndex) && radio.buttonTabIndex !== -1);\n const focusable = findFocusable(this.radioButtons) || findFocusable(this.projectedRadioButtons);\n focusable?.focus();\n }\n\n ngAfterContentInit(): void {\n this.initSelectionStateFromProjectedContent();\n this.listenForProjectedRadiosChange();\n }\n\n ngAfterViewInit(): void {\n forwardAttributes(\n this.element.nativeElement,\n this._attributesToForward,\n this.renderer,\n this.element.nativeElement.querySelector('ion-radio-group')\n );\n }\n\n registerOnChange(fn: any): void {\n this._onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n // #endregion public methods\n\n // #region \"protected\" methods used by template\n _getTextFromItem(item: string | any): string {\n if (!item) return null;\n return typeof item === 'string' ? item : item[this.itemTextProperty];\n }\n\n _getDisabledStateFromItem(item: string | any): boolean {\n if (!item) return undefined;\n return typeof item === 'string' ? undefined : item[this.itemDisabledProperty];\n }\n\n get _hasItems(): boolean {\n return this.items.length > 0 || this.hasItemsFromContentProjection;\n }\n\n _onChange(value: string | any) {\n if (value === this._value) return;\n this.setSelectedItem(value);\n this.valueChange.emit(value);\n this._onChangeCallback(value);\n }\n\n @HostListener('ionBlur')\n _onRadioBlur() {\n this._onTouched();\n }\n\n // #endregion \"protected\" methods used by template\n\n // #region private methods\n private getIndexOfSelectedValue() {\n if (!this.hasValue) return -1;\n return this.hasItemsFromContentProjection\n ? this.getIndexOfProjectedRadio(this.value)\n : this.items.indexOf(this.value);\n }\n\n private getIndexOfProjectedRadio(value: string | any): number {\n let selectedIndex = -1;\n this.projectedRadioButtons?.find((radio, i) => {\n const found = radio.value === value;\n if (found) {\n selectedIndex = i;\n }\n return found;\n });\n return selectedIndex;\n }\n\n private getValueFromSelectedIndex(): string | any {\n if (this.selectedIndex === -1) return;\n return this.hasItemsFromContentProjection\n ? this.getValueFromProjectedRadios(this.selectedIndex)\n : this.items[this.selectedIndex];\n }\n\n private getValueFromProjectedRadios(index: number): string | any {\n const radio =\n this.projectedRadioButtons &&\n this.projectedRadioButtons.find((_, i) => {\n return i === index;\n });\n return radio && radio.value;\n }\n\n private initSelectionStateFromProjectedContent() {\n if (this.hasItemsFromContentProjection) {\n this.refreshSelectionState(); // Initialize selected index and value from projected radios\n }\n }\n\n private listenForProjectedRadiosChange() {\n this.projectedRadioButtons.changes.subscribe(() => {\n this.refreshStateFromProjectedContent();\n\n if (this.disabled) {\n // Ensure disabled state propagates when re-rendering projected radios.\n // setTimeout prevents ExpressionChangedAfterItHasBeenCheckedError when updating the DOM in QueryList.changes:\n setTimeout(() => this.setProjectedRadiosDisabledState(this.disabled));\n }\n });\n }\n\n private refreshSelectionState() {\n if (this.hasValue) {\n this._selectedIndex = this.getIndexOfSelectedValue(); // Ensure selectedIndex reflects value within items\n }\n\n const valueFromSelectedIndex = this.getValueFromSelectedIndex();\n this._value = valueFromSelectedIndex !== undefined ? valueFromSelectedIndex : null;\n }\n\n private refreshStateFromProjectedContent() {\n if (this._customItemTemplate) return; // Only refresh on changes to projected content, not when re-rendering custom template\n this.cdr.markForCheck(); // Ensure changes to projected content gets checked in next change detection cycle\n this.refreshSelectionState(); // Sync selected index and value from projected radios\n }\n\n private setSelectedItem(value: string | any) {\n if (value === this._value) return; // Nothing changed\n this._value = value;\n this._selectedIndex = this.getIndexOfSelectedValue();\n }\n\n private setProjectedRadiosDisabledState(isDisabled: boolean) {\n if (!this.projectedRadioButtons || !this.projectedRadioButtons.length) return;\n this.projectedRadioButtons.forEach((radio, index) => {\n // Disable all radios when group is disabled, otherwise fall back to each item's disabled state, if defined:\n radio.disabled = isDisabled || this._getDisabledStateFromItem(this.items[index]);\n });\n }\n\n // #endregion private methods\n}\n","@if (_hasItems) {\n <ion-radio-group\n [value]=\"value\"\n (ionChange)=\"_onChange($event.detail.value)\"\n [attr.aria-invalid]=\"hasError\"\n >\n @if (!items || !items.length) {\n <ng-content></ng-content>\n } @else {\n @for (item of items; track _getTextFromItem(item)) {\n <ng-container\n *ngTemplateOutlet=\"\n _customItemTemplate || defaultItemTemplate;\n context: { $implicit: item, selected: $index === selectedIndex, index: $index }\n \"\n ></ng-container>\n }\n }\n </ion-radio-group>\n}\n\n<ng-template #defaultItemTemplate let-item>\n <kirby-radio\n [value]=\"item\"\n [disabled]=\"disabled || _getDisabledStateFromItem(item)\"\n [text]=\"_getTextFromItem(item)\"\n ></kirby-radio>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonRadio, IonRadioGroup } from '@ionic/angular/standalone';\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\nimport { RadioComponent } from './radio.component';\n\nconst declarations = [RadioComponent, RadioGroupComponent];\n\n@NgModule({\n imports: [CommonModule, IonRadio, IonRadioGroup, ...declarations],\n exports: [...declarations],\n})\nexport class RadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { EventEmitter, forwardRef, ViewChild, Output, Input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { IonRange } from '@ionic/angular';
|
|
4
|
+
import { IonRange } from '@ionic/angular/standalone';
|
|
5
5
|
import { forwardAttributes } from '@kirbydesign/designsystem/shared';
|
|
6
6
|
|
|
7
7
|
class RangeComponent {
|
|
@@ -101,7 +101,7 @@ class RangeComponent {
|
|
|
101
101
|
multi: true,
|
|
102
102
|
useExisting: forwardRef((() => RangeComponent)),
|
|
103
103
|
},
|
|
104
|
-
], viewQueries: [{ propertyName: "ionRange", first: true, predicate: IonRange, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [pinFormatter]=\"pinFormatter\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n></ion-range>\n\n@if (minLabel) {\n <label class=\"min-label\">{{ minLabel }}</label>\n}\n@if (maxLabel) {\n <label class=\"max-label\">{{ maxLabel }}</label>\n}\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:flex;justify-content:space-between;flex-wrap:wrap}ion-range
|
|
104
|
+
], viewQueries: [{ propertyName: "ionRange", first: true, predicate: IonRange, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [pinFormatter]=\"pinFormatter\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n></ion-range>\n\n@if (minLabel) {\n <label class=\"min-label\">{{ minLabel }}</label>\n}\n@if (maxLabel) {\n <label class=\"max-label\">{{ maxLabel }}</label>\n}\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:flex;justify-content:space-between;flex-wrap:wrap}ion-range{--knob-background: var(--kirby-color-fill-brand-loud);--knob-box-shadow: 0 0 0 2px var(--kirby-color-fill-base);--knob-size: var(--kirby-spacing-s);--pin-color: var(--kirby-color-content-brand-loud);--pin-background: var(--kirby-color-fill-brand-loud);--bar-background: var(--kirby-color-border-base-quiet);--bar-background-active: var(--kirby-color-fill-brand-loud);--bar-border-radius: var(--kirby-spacing-xxxs);--bar-height: var(--kirby-spacing-xxxxs);flex:1 1 100%;padding:0}ion-range.range-disabled{opacity:.4}ion-range.range-has-pin{padding:0 calc(var(--kirby-spacing-xxs) / 2)}ion-range::part(knob){transition:all 80ms linear 0ms;transition-property:background,transform}ion-range::part(knob hover){--knob-background: var(--kirby-color-fill-brand-loud-hover)}ion-range::part(knob activated),ion-range::part(knob pressed){--knob-background: var(--kirby-color-fill-brand-loud-active)}ion-range::part(knob hover),ion-range::part(knob activated),ion-range::part(knob pressed){transform:scale(1.25)}ion-range::part(knob focused){box-shadow:var(--kirby-focus-ring-md-outer)}ion-range::part(pin){font-size:var(--kirby-font-size-xs);color:var(--pin-color);background-color:var(--pin-background);padding:var(--kirby-spacing-xxxxs) var(--kirby-spacing-xxs);border-radius:var(--kirby-spacing-xxxs);min-width:var(--kirby-spacing-m);top:calc(-1 * var(--kirby-spacing-xxs))}ion-range::part(pin):before{content:\"\";position:absolute;top:100%;left:50%;transform:translate(-50%);display:block;border:solid transparent 6px;border-top-color:var(--pin-background)}ion-range::part(tick),ion-range::part(tick-active){border-radius:var(--kirby-border-radius-circle);width:var(--kirby-spacing-xxs);height:var(--kirby-spacing-xxs);margin-inline-start:calc(var(--kirby-spacing-xxs) / -2);z-index:1}ion-range::part(tick){background:var(--kirby-color-border-base-quiet)}label{font-size:var(--kirby-font-size-xs);line-height:var(--kirby-line-height-xs);color:var(--kirby-color-content-base-quiet);margin-top:calc(-1 * var(--kirby-spacing-xxxs))}\n"], dependencies: [{ kind: "component", type: IonRange, selector: "ion-range", inputs: ["activeBarStart", "color", "debounce", "disabled", "dualKnobs", "label", "labelPlacement", "max", "min", "mode", "name", "pin", "pinFormatter", "snaps", "step", "ticks", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
105
105
|
}
|
|
106
106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: RangeComponent, decorators: [{
|
|
107
107
|
type: Component,
|
|
@@ -111,7 +111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
|
|
|
111
111
|
multi: true,
|
|
112
112
|
useExisting: forwardRef((() => RangeComponent)),
|
|
113
113
|
},
|
|
114
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [pinFormatter]=\"pinFormatter\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n></ion-range>\n\n@if (minLabel) {\n <label class=\"min-label\">{{ minLabel }}</label>\n}\n@if (maxLabel) {\n <label class=\"max-label\">{{ maxLabel }}</label>\n}\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:flex;justify-content:space-between;flex-wrap:wrap}ion-range
|
|
114
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [pinFormatter]=\"pinFormatter\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n></ion-range>\n\n@if (minLabel) {\n <label class=\"min-label\">{{ minLabel }}</label>\n}\n@if (maxLabel) {\n <label class=\"max-label\">{{ maxLabel }}</label>\n}\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}:host{display:flex;justify-content:space-between;flex-wrap:wrap}ion-range{--knob-background: var(--kirby-color-fill-brand-loud);--knob-box-shadow: 0 0 0 2px var(--kirby-color-fill-base);--knob-size: var(--kirby-spacing-s);--pin-color: var(--kirby-color-content-brand-loud);--pin-background: var(--kirby-color-fill-brand-loud);--bar-background: var(--kirby-color-border-base-quiet);--bar-background-active: var(--kirby-color-fill-brand-loud);--bar-border-radius: var(--kirby-spacing-xxxs);--bar-height: var(--kirby-spacing-xxxxs);flex:1 1 100%;padding:0}ion-range.range-disabled{opacity:.4}ion-range.range-has-pin{padding:0 calc(var(--kirby-spacing-xxs) / 2)}ion-range::part(knob){transition:all 80ms linear 0ms;transition-property:background,transform}ion-range::part(knob hover){--knob-background: var(--kirby-color-fill-brand-loud-hover)}ion-range::part(knob activated),ion-range::part(knob pressed){--knob-background: var(--kirby-color-fill-brand-loud-active)}ion-range::part(knob hover),ion-range::part(knob activated),ion-range::part(knob pressed){transform:scale(1.25)}ion-range::part(knob focused){box-shadow:var(--kirby-focus-ring-md-outer)}ion-range::part(pin){font-size:var(--kirby-font-size-xs);color:var(--pin-color);background-color:var(--pin-background);padding:var(--kirby-spacing-xxxxs) var(--kirby-spacing-xxs);border-radius:var(--kirby-spacing-xxxs);min-width:var(--kirby-spacing-m);top:calc(-1 * var(--kirby-spacing-xxs))}ion-range::part(pin):before{content:\"\";position:absolute;top:100%;left:50%;transform:translate(-50%);display:block;border:solid transparent 6px;border-top-color:var(--pin-background)}ion-range::part(tick),ion-range::part(tick-active){border-radius:var(--kirby-border-radius-circle);width:var(--kirby-spacing-xxs);height:var(--kirby-spacing-xxs);margin-inline-start:calc(var(--kirby-spacing-xxs) / -2);z-index:1}ion-range::part(tick){background:var(--kirby-color-border-base-quiet)}label{font-size:var(--kirby-font-size-xs);line-height:var(--kirby-line-height-xs);color:var(--kirby-color-content-base-quiet);margin-top:calc(-1 * var(--kirby-spacing-xxxs))}\n"] }]
|
|
115
115
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { minLabel: [{
|
|
116
116
|
type: Input
|
|
117
117
|
}], maxLabel: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-range.mjs","sources":["../../range/src/range.component.ts","../../range/src/range.component.html","../../range/src/kirbydesign-designsystem-range.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonRange } from '@ionic/angular';\nimport { forwardAttributes } from '@kirbydesign/designsystem/shared';\n\n@Component({\n imports: [IonRange],\n selector: 'kirby-range',\n templateUrl: './range.component.html',\n styleUrls: ['./range.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => RangeComponent),\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RangeComponent implements OnChanges, OnInit, ControlValueAccessor, AfterViewInit {\n @Input() minLabel: string;\n @Input() maxLabel: string;\n @Input() debounce: number;\n @Input() max: number;\n @Input() min: number;\n @Input() pin: boolean;\n @Input() step = 1;\n @Input() ticks: boolean;\n @Input() disabled = false;\n @Input() pinFormatter: (value: number) => string | number = this.defaultPinFormatter;\n @Input()\n set value(value: number) {\n if (value !== this.currentValue) {\n this.currentValue = value;\n this.propagateChange(this.currentValue);\n }\n }\n\n get value(): number {\n return this.currentValue;\n }\n\n @Output() change: EventEmitter<number> = new EventEmitter<number>();\n @Output() move: EventEmitter<number> = new EventEmitter<number>();\n\n @ViewChild(IonRange, { static: true }) private ionRange: IonRange;\n\n private currentValue: number;\n private _attributesToForward = ['aria-label', 'aria-labelledby'];\n\n constructor(\n private cdr: ChangeDetectorRef,\n private element: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {}\n\n ngOnInit() {\n this.initializeMoveEventEmitter();\n }\n\n ngOnChanges() {\n if (!this.ticks) return;\n\n /*\n * Max 10 ticks are allowed\n */\n const amountOfTicks = (this.max - this.min) / this.step;\n if (amountOfTicks > 9) {\n this.step = (this.max - this.min) / 9;\n }\n\n /*\n * Set value to the nearest tick\n */\n this.value = this.getTicks().reduce((a, b) => {\n return Math.abs(b - this.value) < Math.abs(a - this.value) ? b : a;\n });\n }\n\n ngAfterViewInit(): void {\n forwardAttributes(\n this.element.nativeElement,\n this._attributesToForward,\n this.renderer,\n this.element.nativeElement.querySelector('ion-range')\n );\n }\n\n private getTicks() {\n const ticks = [];\n for (let value = Number(this.min); value <= Number(this.max); value += Number(this.step)) {\n ticks.push(value);\n }\n return ticks;\n }\n\n private initializeMoveEventEmitter() {\n // We subscribe to ionRange's ionInput imperatively instead of in markup\n // to avoid doing work when no-one is listening to the move event.\n if (this.move.observed) {\n this.ionRange.ionInput.subscribe((rangeEvent) => {\n this._onRangeKnobMove(rangeEvent);\n });\n }\n }\n\n private defaultPinFormatter(value: number): number {\n return value;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n public _onRangeValueChange($event: any): void {\n this.writeValue($event.detail.value);\n this.change.emit(this.currentValue);\n }\n\n public _onRangeKnobMove($event: any): void {\n this.writeValue($event.detail.value);\n this.move.emit(this.currentValue);\n }\n\n public onTouched = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public propagateChange = (_: any) => {};\n\n public writeValue(value: any): void {\n if (value !== undefined) {\n this.value = value;\n this.cdr.markForCheck();\n }\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n}\n","<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [pinFormatter]=\"pinFormatter\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n></ion-range>\n\n@if (minLabel) {\n <label class=\"min-label\">{{ minLabel }}</label>\n}\n@if (maxLabel) {\n <label class=\"max-label\">{{ maxLabel }}</label>\n}\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-range.mjs","sources":["../../range/src/range.component.ts","../../range/src/range.component.html","../../range/src/kirbydesign-designsystem-range.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonRange } from '@ionic/angular/standalone';\nimport { forwardAttributes } from '@kirbydesign/designsystem/shared';\n\n@Component({\n imports: [IonRange],\n selector: 'kirby-range',\n templateUrl: './range.component.html',\n styleUrls: ['./range.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => RangeComponent),\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RangeComponent implements OnChanges, OnInit, ControlValueAccessor, AfterViewInit {\n @Input() minLabel: string;\n @Input() maxLabel: string;\n @Input() debounce: number;\n @Input() max: number;\n @Input() min: number;\n @Input() pin: boolean;\n @Input() step = 1;\n @Input() ticks: boolean;\n @Input() disabled = false;\n @Input() pinFormatter: (value: number) => string | number = this.defaultPinFormatter;\n @Input()\n set value(value: number) {\n if (value !== this.currentValue) {\n this.currentValue = value;\n this.propagateChange(this.currentValue);\n }\n }\n\n get value(): number {\n return this.currentValue;\n }\n\n @Output() change: EventEmitter<number> = new EventEmitter<number>();\n @Output() move: EventEmitter<number> = new EventEmitter<number>();\n\n @ViewChild(IonRange, { static: true }) private ionRange: IonRange;\n\n private currentValue: number;\n private _attributesToForward = ['aria-label', 'aria-labelledby'];\n\n constructor(\n private cdr: ChangeDetectorRef,\n private element: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {}\n\n ngOnInit() {\n this.initializeMoveEventEmitter();\n }\n\n ngOnChanges() {\n if (!this.ticks) return;\n\n /*\n * Max 10 ticks are allowed\n */\n const amountOfTicks = (this.max - this.min) / this.step;\n if (amountOfTicks > 9) {\n this.step = (this.max - this.min) / 9;\n }\n\n /*\n * Set value to the nearest tick\n */\n this.value = this.getTicks().reduce((a, b) => {\n return Math.abs(b - this.value) < Math.abs(a - this.value) ? b : a;\n });\n }\n\n ngAfterViewInit(): void {\n forwardAttributes(\n this.element.nativeElement,\n this._attributesToForward,\n this.renderer,\n this.element.nativeElement.querySelector('ion-range')\n );\n }\n\n private getTicks() {\n const ticks = [];\n for (let value = Number(this.min); value <= Number(this.max); value += Number(this.step)) {\n ticks.push(value);\n }\n return ticks;\n }\n\n private initializeMoveEventEmitter() {\n // We subscribe to ionRange's ionInput imperatively instead of in markup\n // to avoid doing work when no-one is listening to the move event.\n if (this.move.observed) {\n this.ionRange.ionInput.subscribe((rangeEvent) => {\n this._onRangeKnobMove(rangeEvent);\n });\n }\n }\n\n private defaultPinFormatter(value: number): number {\n return value;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n public _onRangeValueChange($event: any): void {\n this.writeValue($event.detail.value);\n this.change.emit(this.currentValue);\n }\n\n public _onRangeKnobMove($event: any): void {\n this.writeValue($event.detail.value);\n this.move.emit(this.currentValue);\n }\n\n public onTouched = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public propagateChange = (_: any) => {};\n\n public writeValue(value: any): void {\n if (value !== undefined) {\n this.value = value;\n this.cdr.markForCheck();\n }\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n}\n","<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [pinFormatter]=\"pinFormatter\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n></ion-range>\n\n@if (minLabel) {\n <label class=\"min-label\">{{ minLabel }}</label>\n}\n@if (maxLabel) {\n <label class=\"max-label\">{{ maxLabel }}</label>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { EventEmitter, TemplateRef, ViewChildren, ContentChild, Output, Input, C
|
|
|
5
5
|
import { CardComponent } from '@kirbydesign/designsystem/card';
|
|
6
6
|
import { ItemComponent, LabelComponent } from '@kirbydesign/designsystem/item';
|
|
7
7
|
import { ListItemTemplateDirective } from '@kirbydesign/designsystem/list';
|
|
8
|
-
import { IonBackdrop, IonReorderGroup } from '@ionic/angular';
|
|
8
|
+
import { IonBackdrop, IonReorderGroup } from '@ionic/angular/standalone';
|
|
9
9
|
|
|
10
10
|
class ReorderEvent {
|
|
11
11
|
constructor(ev, parentItem) {
|
|
@@ -67,7 +67,7 @@ class ReorderListComponent {
|
|
|
67
67
|
delete this.observer;
|
|
68
68
|
}
|
|
69
69
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ReorderListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: ReorderListComponent, isStandalone: true, selector: "kirby-reorder-list", inputs: { items: "items", subItemsName: "subItemsName", getItemTextDefault: "getItemTextDefault" }, outputs: { itemReorder: "itemReorder", subItemReorder: "subItemReorder" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: ListItemTemplateDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "reorderGroupContainer", predicate: ["reorderGroupContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (reorderActive) {\n <ion-backdrop [tappable]=\"false\" [visible]=\"true\" [stopPropagation]=\"false\"></ion-backdrop>\n}\n<ion-reorder-group (ionItemReorder)=\"doReorder($event)\" disabled=\"false\">\n @for (reorderItem of items; track reorderItem) {\n <div>\n <kirby-card>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: reorderItem }\n \"\n ></ng-container>\n @if (reorderItem[subItemsName]) {\n <div #reorderGroupContainer>\n <ion-reorder-group\n (ionItemReorder)=\"doSubReorder($event, reorderItem)\"\n disabled=\"false\"\n >\n @for (subItem of reorderItem[subItemsName]; track subItem) {\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: subItem, isSubItem: true }\n \"\n ></ng-container>\n </div>\n }\n </ion-reorder-group>\n </div>\n }\n </kirby-card>\n </div>\n }\n</ion-reorder-group>\n\n<ng-template #defaultItemTemplate let-item let-isSubItem>\n <kirby-item [reorderable]=\"true\">\n <p class=\"kirby-item-title\">{{ getItemTextDefault(item) }}</p>\n </kirby-item>\n</ng-template>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}ion-backdrop{opacity:.3;z-index:101;position:fixed}.reorder-selected{box-shadow:none;opacity:1;z-index:104}.reorder-selected kirby-card{transform:scale(1.05)}.reorder-selected kirby-card div:first-child{border-top:1px solid var(--kirby-
|
|
70
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: ReorderListComponent, isStandalone: true, selector: "kirby-reorder-list", inputs: { items: "items", subItemsName: "subItemsName", getItemTextDefault: "getItemTextDefault" }, outputs: { itemReorder: "itemReorder", subItemReorder: "subItemReorder" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: ListItemTemplateDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "reorderGroupContainer", predicate: ["reorderGroupContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (reorderActive) {\n <ion-backdrop [tappable]=\"false\" [visible]=\"true\" [stopPropagation]=\"false\"></ion-backdrop>\n}\n<ion-reorder-group (ionItemReorder)=\"doReorder($event)\" disabled=\"false\">\n @for (reorderItem of items; track reorderItem) {\n <div>\n <kirby-card>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: reorderItem }\n \"\n ></ng-container>\n @if (reorderItem[subItemsName]) {\n <div #reorderGroupContainer>\n <ion-reorder-group\n (ionItemReorder)=\"doSubReorder($event, reorderItem)\"\n disabled=\"false\"\n >\n @for (subItem of reorderItem[subItemsName]; track subItem) {\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: subItem, isSubItem: true }\n \"\n ></ng-container>\n </div>\n }\n </ion-reorder-group>\n </div>\n }\n </kirby-card>\n </div>\n }\n</ion-reorder-group>\n\n<ng-template #defaultItemTemplate let-item let-isSubItem>\n <kirby-item [reorderable]=\"true\">\n <p class=\"kirby-item-title\">{{ getItemTextDefault(item) }}</p>\n </kirby-item>\n</ng-template>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}ion-backdrop{opacity:.3;z-index:101;position:fixed}.reorder-selected{box-shadow:none;opacity:1;z-index:104}.reorder-selected kirby-card{transform:scale(1.05)}.reorder-selected kirby-card div:first-child{border-top:1px solid var(--kirby-color-border-base-silent)}.reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:var(--kirby-border-radius-n);overflow:hidden}.reorder-list-active>*{position:relative;z-index:103}.reorder-list-active>.reorder-selected{z-index:104}.reorder-list-active div:first-child{border-top:none}.reorder-list-active ::ng-deep>div:last-child kirby-item{border-bottom-left-radius:var(--kirby-border-radius-n);border-bottom-right-radius:var(--kirby-border-radius-n);overflow:hidden}.reorder-list-active .reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:var(--kirby-border-radius-n);overflow:hidden}:host>ion-reorder-group>div{border-bottom:20px transparent solid}:host>ion-reorder-group>div:last-child{border-bottom-width:0}kirby-card{overflow:inherit;z-index:auto}kirby-card ::ng-deep>div:last-child ion-reorder-group div:last-child kirby-item{border-bottom-left-radius:var(--kirby-border-radius-n);border-bottom-right-radius:var(--kirby-border-radius-n);overflow:hidden}kirby-card ::ng-deep>div kirby-item{z-index:1}kirby-card ::ng-deep>div .reorder-list-active kirby-item{z-index:103}kirby-card div:first-child{border-top:1px solid var(--kirby-color-border-base-silent)}\n"], dependencies: [{ kind: "component", type: CardComponent, selector: "kirby-card", inputs: ["title", "subtitle", "backgroundImageUrl", "hasPadding", "sizes", "variant"] }, { kind: "component", type: ItemComponent, selector: "kirby-item", inputs: ["disabled", "selected", "disclosure", "selectable", "reorderable", "size", "href", "rotateIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IonBackdrop, selector: "ion-backdrop", inputs: ["stopPropagation", "tappable", "visible"] }, { kind: "component", type: IonReorderGroup, selector: "ion-reorder-group", inputs: ["disabled"] }] }); }
|
|
71
71
|
}
|
|
72
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: ReorderListComponent, decorators: [{
|
|
73
73
|
type: Component,
|
|
@@ -78,7 +78,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
|
|
|
78
78
|
CommonModule,
|
|
79
79
|
IonBackdrop,
|
|
80
80
|
IonReorderGroup,
|
|
81
|
-
], selector: 'kirby-reorder-list', template: "@if (reorderActive) {\n <ion-backdrop [tappable]=\"false\" [visible]=\"true\" [stopPropagation]=\"false\"></ion-backdrop>\n}\n<ion-reorder-group (ionItemReorder)=\"doReorder($event)\" disabled=\"false\">\n @for (reorderItem of items; track reorderItem) {\n <div>\n <kirby-card>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: reorderItem }\n \"\n ></ng-container>\n @if (reorderItem[subItemsName]) {\n <div #reorderGroupContainer>\n <ion-reorder-group\n (ionItemReorder)=\"doSubReorder($event, reorderItem)\"\n disabled=\"false\"\n >\n @for (subItem of reorderItem[subItemsName]; track subItem) {\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: subItem, isSubItem: true }\n \"\n ></ng-container>\n </div>\n }\n </ion-reorder-group>\n </div>\n }\n </kirby-card>\n </div>\n }\n</ion-reorder-group>\n\n<ng-template #defaultItemTemplate let-item let-isSubItem>\n <kirby-item [reorderable]=\"true\">\n <p class=\"kirby-item-title\">{{ getItemTextDefault(item) }}</p>\n </kirby-item>\n</ng-template>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}ion-backdrop{opacity:.3;z-index:101;position:fixed}.reorder-selected{box-shadow:none;opacity:1;z-index:104}.reorder-selected kirby-card{transform:scale(1.05)}.reorder-selected kirby-card div:first-child{border-top:1px solid var(--kirby-
|
|
81
|
+
], selector: 'kirby-reorder-list', template: "@if (reorderActive) {\n <ion-backdrop [tappable]=\"false\" [visible]=\"true\" [stopPropagation]=\"false\"></ion-backdrop>\n}\n<ion-reorder-group (ionItemReorder)=\"doReorder($event)\" disabled=\"false\">\n @for (reorderItem of items; track reorderItem) {\n <div>\n <kirby-card>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: reorderItem }\n \"\n ></ng-container>\n @if (reorderItem[subItemsName]) {\n <div #reorderGroupContainer>\n <ion-reorder-group\n (ionItemReorder)=\"doSubReorder($event, reorderItem)\"\n disabled=\"false\"\n >\n @for (subItem of reorderItem[subItemsName]; track subItem) {\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: subItem, isSubItem: true }\n \"\n ></ng-container>\n </div>\n }\n </ion-reorder-group>\n </div>\n }\n </kirby-card>\n </div>\n }\n</ion-reorder-group>\n\n<ng-template #defaultItemTemplate let-item let-isSubItem>\n <kirby-item [reorderable]=\"true\">\n <p class=\"kirby-item-title\">{{ getItemTextDefault(item) }}</p>\n </kirby-item>\n</ng-template>\n", styles: [".kirby-line-clamp{display:-webkit-box;-webkit-line-clamp:var(--line-clamp, none);-webkit-box-orient:vertical;overflow:hidden}ion-backdrop{opacity:.3;z-index:101;position:fixed}.reorder-selected{box-shadow:none;opacity:1;z-index:104}.reorder-selected kirby-card{transform:scale(1.05)}.reorder-selected kirby-card div:first-child{border-top:1px solid var(--kirby-color-border-base-silent)}.reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:var(--kirby-border-radius-n);overflow:hidden}.reorder-list-active>*{position:relative;z-index:103}.reorder-list-active>.reorder-selected{z-index:104}.reorder-list-active div:first-child{border-top:none}.reorder-list-active ::ng-deep>div:last-child kirby-item{border-bottom-left-radius:var(--kirby-border-radius-n);border-bottom-right-radius:var(--kirby-border-radius-n);overflow:hidden}.reorder-list-active .reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:var(--kirby-border-radius-n);overflow:hidden}:host>ion-reorder-group>div{border-bottom:20px transparent solid}:host>ion-reorder-group>div:last-child{border-bottom-width:0}kirby-card{overflow:inherit;z-index:auto}kirby-card ::ng-deep>div:last-child ion-reorder-group div:last-child kirby-item{border-bottom-left-radius:var(--kirby-border-radius-n);border-bottom-right-radius:var(--kirby-border-radius-n);overflow:hidden}kirby-card ::ng-deep>div kirby-item{z-index:1}kirby-card ::ng-deep>div .reorder-list-active kirby-item{z-index:103}kirby-card div:first-child{border-top:1px solid var(--kirby-color-border-base-silent)}\n"] }]
|
|
82
82
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { items: [{
|
|
83
83
|
type: Input
|
|
84
84
|
}], subItemsName: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-reorder-list.mjs","sources":["../../reorder-list/src/reorder-event.ts","../../reorder-list/src/reorder-list.component.ts","../../reorder-list/src/reorder-list.component.html","../../reorder-list/src/kirbydesign-designsystem-reorder-list.ts"],"sourcesContent":["export class ReorderEvent {\n private origEvent: CustomEvent<any>;\n private parent?: any;\n\n constructor(ev: CustomEvent<any>, parentItem?: any) {\n this.origEvent = ev;\n this.parent = parentItem;\n this.origEvent.cancelBubble = true;\n }\n complete(listOrReorder?: boolean | any[]): Promise<any> {\n return this.origEvent.detail.complete(listOrReorder);\n }\n\n get parentItem(): any {\n return this.parent;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n TemplateRef,\n ViewChildren,\n} from '@angular/core';\nimport { CardComponent } from '@kirbydesign/designsystem/card';\nimport { ItemComponent, LabelComponent } from '@kirbydesign/designsystem/item';\nimport { ListItemTemplateDirective } from '@kirbydesign/designsystem/list';\n\nimport { IonBackdrop, IonReorderGroup } from '@ionic/angular';\nimport { ReorderEvent } from './reorder-event';\n\n@Component({\n imports: [\n CardComponent,\n ItemComponent,\n LabelComponent,\n CommonModule,\n IonBackdrop,\n IonReorderGroup,\n ],\n selector: 'kirby-reorder-list',\n templateUrl: './reorder-list.component.html',\n styleUrls: ['./reorder-list.component.scss'],\n})\nexport class ReorderListComponent implements OnChanges, OnDestroy {\n @Input() items: any[];\n @Input() subItemsName: string;\n @Input() getItemTextDefault: (item: any) => string;\n\n @Output() itemReorder = new EventEmitter<ReorderEvent>();\n @Output() subItemReorder = new EventEmitter<ReorderEvent>();\n\n @ContentChild(ListItemTemplateDirective, { static: true, read: TemplateRef })\n itemTemplate: TemplateRef<any>;\n @ViewChildren('reorderGroupContainer')\n reorderGroupContainer: QueryList<ElementRef>;\n\n private observer: MutationObserver;\n reorderActive: boolean = false;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnChanges(): void {\n if (this.items && this.items.length > 0) {\n setTimeout(() => {\n this.setupDomListener();\n });\n }\n }\n\n private setupDomListener() {\n const callback = (mutationsList: any) => {\n for (const mutation of mutationsList) {\n if (mutation.oldValue !== mutation.target['className']) {\n this.reorderActive = mutation.target['className'].includes('reorder-list-active');\n }\n }\n this.cdr.detectChanges();\n };\n this.observer = new MutationObserver(callback);\n\n this.reorderGroupContainer.forEach((div: ElementRef) => {\n this.observer.observe(div.nativeElement, {\n attributes: true,\n attributeFilter: ['class'],\n attributeOldValue: true,\n childList: false,\n subtree: true,\n });\n });\n }\n\n doReorder(ev: CustomEvent) {\n this.itemReorder.emit(new ReorderEvent(ev));\n }\n\n doSubReorder(ev: CustomEvent, parentItem: any) {\n this.subItemReorder.emit(new ReorderEvent(ev, parentItem));\n }\n\n ngOnDestroy() {\n //clean up the observer\n this.observer?.disconnect();\n delete this.observer;\n }\n}\n","@if (reorderActive) {\n <ion-backdrop [tappable]=\"false\" [visible]=\"true\" [stopPropagation]=\"false\"></ion-backdrop>\n}\n<ion-reorder-group (ionItemReorder)=\"doReorder($event)\" disabled=\"false\">\n @for (reorderItem of items; track reorderItem) {\n <div>\n <kirby-card>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: reorderItem }\n \"\n ></ng-container>\n @if (reorderItem[subItemsName]) {\n <div #reorderGroupContainer>\n <ion-reorder-group\n (ionItemReorder)=\"doSubReorder($event, reorderItem)\"\n disabled=\"false\"\n >\n @for (subItem of reorderItem[subItemsName]; track subItem) {\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: subItem, isSubItem: true }\n \"\n ></ng-container>\n </div>\n }\n </ion-reorder-group>\n </div>\n }\n </kirby-card>\n </div>\n }\n</ion-reorder-group>\n\n<ng-template #defaultItemTemplate let-item let-isSubItem>\n <kirby-item [reorderable]=\"true\">\n <p class=\"kirby-item-title\">{{ getItemTextDefault(item) }}</p>\n </kirby-item>\n</ng-template>\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-reorder-list.mjs","sources":["../../reorder-list/src/reorder-event.ts","../../reorder-list/src/reorder-list.component.ts","../../reorder-list/src/reorder-list.component.html","../../reorder-list/src/kirbydesign-designsystem-reorder-list.ts"],"sourcesContent":["export class ReorderEvent {\n private origEvent: CustomEvent<any>;\n private parent?: any;\n\n constructor(ev: CustomEvent<any>, parentItem?: any) {\n this.origEvent = ev;\n this.parent = parentItem;\n this.origEvent.cancelBubble = true;\n }\n complete(listOrReorder?: boolean | any[]): Promise<any> {\n return this.origEvent.detail.complete(listOrReorder);\n }\n\n get parentItem(): any {\n return this.parent;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n TemplateRef,\n ViewChildren,\n} from '@angular/core';\nimport { CardComponent } from '@kirbydesign/designsystem/card';\nimport { ItemComponent, LabelComponent } from '@kirbydesign/designsystem/item';\nimport { ListItemTemplateDirective } from '@kirbydesign/designsystem/list';\n\nimport { IonBackdrop, IonReorderGroup } from '@ionic/angular/standalone';\nimport { ReorderEvent } from './reorder-event';\n\n@Component({\n imports: [\n CardComponent,\n ItemComponent,\n LabelComponent,\n CommonModule,\n IonBackdrop,\n IonReorderGroup,\n ],\n selector: 'kirby-reorder-list',\n templateUrl: './reorder-list.component.html',\n styleUrls: ['./reorder-list.component.scss'],\n})\nexport class ReorderListComponent implements OnChanges, OnDestroy {\n @Input() items: any[];\n @Input() subItemsName: string;\n @Input() getItemTextDefault: (item: any) => string;\n\n @Output() itemReorder = new EventEmitter<ReorderEvent>();\n @Output() subItemReorder = new EventEmitter<ReorderEvent>();\n\n @ContentChild(ListItemTemplateDirective, { static: true, read: TemplateRef })\n itemTemplate: TemplateRef<any>;\n @ViewChildren('reorderGroupContainer')\n reorderGroupContainer: QueryList<ElementRef>;\n\n private observer: MutationObserver;\n reorderActive: boolean = false;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnChanges(): void {\n if (this.items && this.items.length > 0) {\n setTimeout(() => {\n this.setupDomListener();\n });\n }\n }\n\n private setupDomListener() {\n const callback = (mutationsList: any) => {\n for (const mutation of mutationsList) {\n if (mutation.oldValue !== mutation.target['className']) {\n this.reorderActive = mutation.target['className'].includes('reorder-list-active');\n }\n }\n this.cdr.detectChanges();\n };\n this.observer = new MutationObserver(callback);\n\n this.reorderGroupContainer.forEach((div: ElementRef) => {\n this.observer.observe(div.nativeElement, {\n attributes: true,\n attributeFilter: ['class'],\n attributeOldValue: true,\n childList: false,\n subtree: true,\n });\n });\n }\n\n doReorder(ev: CustomEvent) {\n this.itemReorder.emit(new ReorderEvent(ev));\n }\n\n doSubReorder(ev: CustomEvent, parentItem: any) {\n this.subItemReorder.emit(new ReorderEvent(ev, parentItem));\n }\n\n ngOnDestroy() {\n //clean up the observer\n this.observer?.disconnect();\n delete this.observer;\n }\n}\n","@if (reorderActive) {\n <ion-backdrop [tappable]=\"false\" [visible]=\"true\" [stopPropagation]=\"false\"></ion-backdrop>\n}\n<ion-reorder-group (ionItemReorder)=\"doReorder($event)\" disabled=\"false\">\n @for (reorderItem of items; track reorderItem) {\n <div>\n <kirby-card>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: reorderItem }\n \"\n ></ng-container>\n @if (reorderItem[subItemsName]) {\n <div #reorderGroupContainer>\n <ion-reorder-group\n (ionItemReorder)=\"doSubReorder($event, reorderItem)\"\n disabled=\"false\"\n >\n @for (subItem of reorderItem[subItemsName]; track subItem) {\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: subItem, isSubItem: true }\n \"\n ></ng-container>\n </div>\n }\n </ion-reorder-group>\n </div>\n }\n </kirby-card>\n </div>\n }\n</ion-reorder-group>\n\n<ng-template #defaultItemTemplate let-item let-isSubItem>\n <kirby-item [reorderable]=\"true\">\n <p class=\"kirby-item-title\">{{ getItemTextDefault(item) }}</p>\n </kirby-item>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;MAAa,YAAY,CAAA;IAIvB,WAAA,CAAY,EAAoB,EAAE,UAAgB,EAAA;AAChD,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,UAAU;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI;IACpC;AACA,IAAA,QAAQ,CAAC,aAA+B,EAAA;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;IACtD;AAEA,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;IACpB;AACD;;MCmBY,oBAAoB,CAAA;AAgB/B,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAA,CAAA,GAAG,GAAH,GAAG;AAXb,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAgB;AAC9C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAgB;QAQ3D,IAAA,CAAA,aAAa,GAAY,KAAK;IAEe;IAE7C,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,CAAC,CAAC;QACJ;IACF;IAEQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,QAAQ,GAAG,CAAC,aAAkB,KAAI;AACtC,YAAA,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE;gBACpC,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;AACtD,oBAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;gBACnF;YACF;AACA,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AAC1B,QAAA,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC;QAE9C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAe,KAAI;YACrD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;AACvC,gBAAA,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,CAAC,OAAO,CAAC;AAC1B,gBAAA,iBAAiB,EAAE,IAAI;AACvB,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,OAAO,EAAE,IAAI;AACd,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,SAAS,CAAC,EAAe,EAAA;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;IAC7C;IAEA,YAAY,CAAC,EAAe,EAAE,UAAe,EAAA;AAC3C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC5D;IAEA,WAAW,GAAA;;AAET,QAAA,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;QAC3B,OAAO,IAAI,CAAC,QAAQ;IACtB;kIA5DW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,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,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAQjB,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAwB,WAAW,mLC3C5E,46CA0CA,EAAA,MAAA,EAAA,CAAA,olDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDlBI,aAAa,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,aAAa,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAEb,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,WAAW,6GACX,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAMN,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA;wBACP,aAAa;wBACb,aAAa;wBACb,cAAc;wBACd,YAAY;wBACZ,WAAW;wBACX,eAAe;AAChB,qBAAA,EAAA,QAAA,EACS,oBAAoB,EAAA,QAAA,EAAA,46CAAA,EAAA,MAAA,EAAA,CAAA,olDAAA,CAAA,EAAA;;sBAK7B;;sBACA;;sBACA;;sBAEA;;sBACA;;sBAEA,YAAY;uBAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;;sBAE3E,YAAY;uBAAC,uBAAuB;;;AE7CvC;;AAEG;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Input, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
|
-
import { isPlatform, IonRouterOutlet } from '@ionic/angular';
|
|
4
|
-
export { NavController } from '@ionic/angular';
|
|
3
|
+
import { isPlatform, IonRouterOutlet } from '@ionic/angular/standalone';
|
|
4
|
+
export { NavController } from '@ionic/angular/standalone';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
6
|
|
|
7
7
|
class RouterOutletComponent {
|
|
@@ -9,11 +9,11 @@ class RouterOutletComponent {
|
|
|
9
9
|
this._animated = isPlatform('hybrid');
|
|
10
10
|
}
|
|
11
11
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: RouterOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: RouterOutletComponent, isStandalone: true, selector: "kirby-router-outlet", inputs: { main: "main" }, ngImport: i0, template: "@if (main) {\n <ion-router-outlet main [animated]=\"_animated\"></ion-router-outlet>\n}\n@if (!main) {\n <ion-router-outlet [animated]=\"_animated\"></ion-router-outlet>\n}\n", styles: [":host{inset:0;position:absolute;contain:size layout style;z-index:0;overflow:hidden;background-color:var(--kirby-
|
|
12
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: RouterOutletComponent, isStandalone: true, selector: "kirby-router-outlet", inputs: { main: "main" }, ngImport: i0, template: "@if (main) {\n <ion-router-outlet main [animated]=\"_animated\"></ion-router-outlet>\n}\n@if (!main) {\n <ion-router-outlet [animated]=\"_animated\"></ion-router-outlet>\n}\n", styles: [":host{inset:0;position:absolute;contain:size layout style;z-index:0;overflow:hidden;background-color:var(--kirby-color-fill-base)}\n"], dependencies: [{ kind: "component", type: IonRouterOutlet, selector: "ion-router-outlet" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13
13
|
}
|
|
14
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: RouterOutletComponent, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
|
-
args: [{ selector: 'kirby-router-outlet', changeDetection: ChangeDetectionStrategy.OnPush, imports: [IonRouterOutlet], template: "@if (main) {\n <ion-router-outlet main [animated]=\"_animated\"></ion-router-outlet>\n}\n@if (!main) {\n <ion-router-outlet [animated]=\"_animated\"></ion-router-outlet>\n}\n", styles: [":host{inset:0;position:absolute;contain:size layout style;z-index:0;overflow:hidden;background-color:var(--kirby-
|
|
16
|
+
args: [{ selector: 'kirby-router-outlet', changeDetection: ChangeDetectionStrategy.OnPush, imports: [IonRouterOutlet], template: "@if (main) {\n <ion-router-outlet main [animated]=\"_animated\"></ion-router-outlet>\n}\n@if (!main) {\n <ion-router-outlet [animated]=\"_animated\"></ion-router-outlet>\n}\n", styles: [":host{inset:0;position:absolute;contain:size layout style;z-index:0;overflow:hidden;background-color:var(--kirby-color-fill-base)}\n"] }]
|
|
17
17
|
}], propDecorators: { main: [{
|
|
18
18
|
type: Input
|
|
19
19
|
}] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-router-outlet.mjs","sources":["../../router-outlet/src/router-outlet.component.ts","../../router-outlet/src/router-outlet.component.html","../../router-outlet/src/router-outlet.module.ts","../../router-outlet/src/kirbydesign-designsystem-router-outlet.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IonRouterOutlet, isPlatform } from '@ionic/angular';\n\n@Component({\n selector: 'kirby-router-outlet',\n templateUrl: './router-outlet.component.html',\n styleUrls: ['./router-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IonRouterOutlet],\n})\nexport class RouterOutletComponent {\n @Input() main: boolean;\n\n _animated = isPlatform('hybrid');\n}\n","@if (main) {\n <ion-router-outlet main [animated]=\"_animated\"></ion-router-outlet>\n}\n@if (!main) {\n <ion-router-outlet [animated]=\"_animated\"></ion-router-outlet>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IonRouterOutlet } from '@ionic/angular';\nimport { RouterOutletComponent } from './router-outlet.component';\n\n@NgModule({\n imports: [CommonModule, IonRouterOutlet, RouterOutletComponent],\n exports: [RouterOutletComponent],\n})\nexport class RouterOutletModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;MAUa,qBAAqB,CAAA;AAPlC,IAAA,WAAA,GAAA;AAUE,QAAA,IAAA,CAAA,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;AACjC,IAAA;kIAJY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVlC,kLAMA,EAAA,MAAA,EAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"kirbydesign-designsystem-router-outlet.mjs","sources":["../../router-outlet/src/router-outlet.component.ts","../../router-outlet/src/router-outlet.component.html","../../router-outlet/src/router-outlet.module.ts","../../router-outlet/src/kirbydesign-designsystem-router-outlet.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IonRouterOutlet, isPlatform } from '@ionic/angular/standalone';\n\n@Component({\n selector: 'kirby-router-outlet',\n templateUrl: './router-outlet.component.html',\n styleUrls: ['./router-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IonRouterOutlet],\n})\nexport class RouterOutletComponent {\n @Input() main: boolean;\n\n _animated = isPlatform('hybrid');\n}\n","@if (main) {\n <ion-router-outlet main [animated]=\"_animated\"></ion-router-outlet>\n}\n@if (!main) {\n <ion-router-outlet [animated]=\"_animated\"></ion-router-outlet>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IonRouterOutlet } from '@ionic/angular/standalone';\nimport { RouterOutletComponent } from './router-outlet.component';\n\n@NgModule({\n imports: [CommonModule, IonRouterOutlet, RouterOutletComponent],\n exports: [RouterOutletComponent],\n})\nexport class RouterOutletModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;MAUa,qBAAqB,CAAA;AAPlC,IAAA,WAAA,GAAA;AAUE,QAAA,IAAA,CAAA,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;AACjC,IAAA;kIAJY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVlC,kLAMA,EAAA,MAAA,EAAA,CAAA,sIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDEY,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAEd,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,mBAGd,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,kLAAA,EAAA,MAAA,EAAA,CAAA,sIAAA,CAAA,EAAA;;sBAGzB;;;MEFU,kBAAkB,CAAA;kIAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHnB,YAAY,EAAE,eAAe,EAAE,qBAAqB,aACpD,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEpB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,OAAA,EAAA,CAHnB,YAAY,EAAE,eAAe,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;;4FAGnD,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,qBAAqB,CAAC;oBAC/D,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA;;;ACRD;;AAEG;;;;"}
|