@kirbydesign/designsystem 11.4.0 → 11.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/action-group/index.d.ts.map +1 -1
  2. package/badge/index.d.ts.map +1 -1
  3. package/button/index.d.ts.map +1 -1
  4. package/calendar/index.d.ts.map +1 -1
  5. package/card/index.d.ts.map +1 -1
  6. package/chart/index.d.ts.map +1 -1
  7. package/config/index.d.ts.map +1 -1
  8. package/dropdown/index.d.ts +2 -2
  9. package/dropdown/index.d.ts.map +1 -1
  10. package/fesm2022/kirbydesign-designsystem-accordion.mjs +10 -10
  11. package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
  12. package/fesm2022/kirbydesign-designsystem-action-group.mjs +3 -3
  13. package/fesm2022/kirbydesign-designsystem-action-group.mjs.map +1 -1
  14. package/fesm2022/kirbydesign-designsystem-avatar.mjs +3 -3
  15. package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
  16. package/fesm2022/kirbydesign-designsystem-badge.mjs +3 -3
  17. package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
  18. package/fesm2022/kirbydesign-designsystem-button.mjs +3 -3
  19. package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
  20. package/fesm2022/kirbydesign-designsystem-calendar.mjs +3 -3
  21. package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
  22. package/fesm2022/kirbydesign-designsystem-card.mjs +16 -16
  23. package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
  24. package/fesm2022/kirbydesign-designsystem-chart.mjs +22 -22
  25. package/fesm2022/kirbydesign-designsystem-chart.mjs.map +1 -1
  26. package/fesm2022/kirbydesign-designsystem-checkbox.mjs +3 -3
  27. package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
  28. package/fesm2022/kirbydesign-designsystem-config.mjs.map +1 -1
  29. package/fesm2022/kirbydesign-designsystem-data-table.mjs +7 -7
  30. package/fesm2022/kirbydesign-designsystem-data-table.mjs.map +1 -1
  31. package/fesm2022/kirbydesign-designsystem-divider.mjs +3 -3
  32. package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
  33. package/fesm2022/kirbydesign-designsystem-dropdown.mjs +16 -14
  34. package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
  35. package/fesm2022/kirbydesign-designsystem-empty-state.mjs +7 -7
  36. package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
  37. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +3 -3
  38. package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
  39. package/fesm2022/kirbydesign-designsystem-flag.mjs +3 -3
  40. package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
  41. package/fesm2022/kirbydesign-designsystem-form-field.mjs +28 -28
  42. package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
  43. package/fesm2022/kirbydesign-designsystem-header.mjs +19 -19
  44. package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
  45. package/fesm2022/kirbydesign-designsystem-helpers-scss.mjs.map +1 -1
  46. package/fesm2022/kirbydesign-designsystem-helpers.mjs +9 -9
  47. package/fesm2022/kirbydesign-designsystem-helpers.mjs.map +1 -1
  48. package/fesm2022/kirbydesign-designsystem-icon.mjs +10 -10
  49. package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
  50. package/fesm2022/kirbydesign-designsystem-item-group.mjs +3 -3
  51. package/fesm2022/kirbydesign-designsystem-item-group.mjs.map +1 -1
  52. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +3 -3
  53. package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
  54. package/fesm2022/kirbydesign-designsystem-item.mjs +10 -10
  55. package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
  56. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +7 -7
  57. package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
  58. package/fesm2022/kirbydesign-designsystem-list.mjs +42 -42
  59. package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
  60. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +6 -6
  61. package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
  62. package/fesm2022/kirbydesign-designsystem-menu.mjs +3 -3
  63. package/fesm2022/kirbydesign-designsystem-menu.mjs.map +1 -1
  64. package/fesm2022/kirbydesign-designsystem-modal.mjs +42 -42
  65. package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
  66. package/fesm2022/kirbydesign-designsystem-page.mjs +40 -40
  67. package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
  68. package/fesm2022/kirbydesign-designsystem-popover.mjs +3 -3
  69. package/fesm2022/kirbydesign-designsystem-popover.mjs.map +1 -1
  70. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +6 -6
  71. package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
  72. package/fesm2022/kirbydesign-designsystem-radio.mjs +15 -15
  73. package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
  74. package/fesm2022/kirbydesign-designsystem-range.mjs +8 -5
  75. package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
  76. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +3 -3
  77. package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
  78. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +7 -7
  79. package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
  80. package/fesm2022/kirbydesign-designsystem-section-header.mjs +3 -3
  81. package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
  82. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +3 -3
  83. package/fesm2022/kirbydesign-designsystem-shared-floating.mjs.map +1 -1
  84. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +3 -3
  85. package/fesm2022/kirbydesign-designsystem-shared-portal.mjs.map +1 -1
  86. package/fesm2022/kirbydesign-designsystem-shared.mjs +18 -18
  87. package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
  88. package/fesm2022/kirbydesign-designsystem-slide-button.mjs +3 -3
  89. package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
  90. package/fesm2022/kirbydesign-designsystem-slide.mjs +13 -13
  91. package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
  92. package/fesm2022/kirbydesign-designsystem-spinner.mjs +7 -7
  93. package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
  94. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +10 -10
  95. package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
  96. package/fesm2022/kirbydesign-designsystem-tabs.mjs +13 -13
  97. package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
  98. package/fesm2022/kirbydesign-designsystem-testing-base.mjs +286 -286
  99. package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
  100. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
  101. package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
  102. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
  103. package/fesm2022/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
  104. package/fesm2022/kirbydesign-designsystem-testing.mjs +4 -4
  105. package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
  106. package/fesm2022/kirbydesign-designsystem-toast.mjs +6 -6
  107. package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
  108. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +8 -7
  109. package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
  110. package/fesm2022/kirbydesign-designsystem-toggle.mjs +5 -4
  111. package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
  112. package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
  113. package/fesm2022/kirbydesign-designsystem-types.mjs.map +1 -1
  114. package/fesm2022/kirbydesign-designsystem.mjs +32 -29
  115. package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
  116. package/flag/index.d.ts.map +1 -1
  117. package/form-field/index.d.ts.map +1 -1
  118. package/icon/index.d.ts.map +1 -1
  119. package/index.d.ts +3 -1
  120. package/index.d.ts.map +1 -1
  121. package/item-sliding/index.d.ts.map +1 -1
  122. package/list/index.d.ts.map +1 -1
  123. package/modal/index.d.ts.map +1 -1
  124. package/package.json +2 -2
  125. package/page/index.d.ts.map +1 -1
  126. package/radio/index.d.ts +2 -2
  127. package/radio/index.d.ts.map +1 -1
  128. package/range/index.d.ts +3 -2
  129. package/range/index.d.ts.map +1 -1
  130. package/shared/floating/index.d.ts.map +1 -1
  131. package/shared/index.d.ts.map +1 -1
  132. package/slide/index.d.ts.map +1 -1
  133. package/testing/index.d.ts.map +1 -1
  134. package/testing-base/index.d.ts.map +1 -1
  135. package/toast/index.d.ts.map +1 -1
  136. package/toggle/index.d.ts.map +1 -1
  137. package/toggle-button/index.d.ts.map +1 -1
  138. package/types/index.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-radio.mjs","sources":["../tmp-esm2022/radio/radio.component.js","../tmp-esm2022/radio/radio-group/radio-group.component.js","../tmp-esm2022/radio/radio-module.js","../tmp-esm2022/radio/kirbydesign-designsystem-radio.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input, ViewChild, } from '@angular/core';\nimport { IonRadio } from '@ionic/angular/standalone';\nimport { IonicElementPartHelper } from '@kirbydesign/designsystem/helpers';\nimport { inheritAriaLabelText, setAccessibleLabel } from '@kirbydesign/designsystem/shared';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@kirbydesign/designsystem/helpers\";\nexport class RadioComponent {\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n get buttonTabIndex() {\n return this.ionRadioElement ? this.ionRadioElement.nativeElement.tabIndex : -1;\n }\n constructor(element, ionicElementPartHelper) {\n this.element = element;\n this.ionicElementPartHelper = ionicElementPartHelper;\n this.size = 'md';\n this._justify = 'start';\n this._labelPlacement = 'end';\n }\n ngOnInit() {\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 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 ngAfterViewInit() {\n this.ionicElementPartHelper.setPart('label', this.ionRadioElement, '.radio-wrapper');\n this.ionicElementPartHelper.setPart('label-text-wrapper', this.ionRadioElement, '.label-text-wrapper');\n this.ionicElementPartHelper.setPart('native-wrapper', this.ionRadioElement, '.native-wrapper');\n }\n ngAfterContentInit() {\n this._labelText = inheritAriaLabelText(this.element.nativeElement);\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 focus() {\n this.ionRadioElement?.nativeElement.focus();\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: RadioComponent, deps: [{ token: i0.ElementRef }, { token: i1.IonicElementPartHelper }], target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.13\", 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: [\":host{display:flex}:host[disabled]{color:var(--kirby-text-color-semi-dark)}:host[disabled] ion-radio{--color: var(--kirby-medium);--color-checked: var(--kirby-medium)}:host[disabled] ion-radio::part(container){background-color:var(--kirby-semi-light)}:host[disabled] ion-radio::part(mark){--color-checked: var(--kirby-semi-dark)}:host[disabled] ion-radio::part(label-text-wrapper){opacity:1}:host[disabled] ion-radio::part(native-wrapper){opacity:1}: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:4px}:host.sm ion-radio:not(.in-item)::part(label){padding-block:10px}:host.md ion-radio:not(.in-item)::part(label){padding-block:16px}@media (hover: hover) and (pointer: fine){ion-radio:focus-within::part(container){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-radio{box-sizing:border-box;--border-width: 1px;--color: var(--kirby-semi-dark);--color-checked: var(--kirby-success)}@media (hover: hover){ion-radio:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer}ion-radio:hover::part(container){background-color:#ebebeb}}ion-radio:active,ion-radio.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--color-checked: rgb(52.6486343612, 207.7113656388, 125.2311894273)}ion-radio:active::part(container),ion-radio.interaction-state-active::part(container){background-color:#e0e0e0}ion-radio::part(container){transition:all 80ms linear 0ms;transition-property:background-color;background-color:var(--kirby-white);margin:2px}ion-radio::part(mark){width:12px;height:12px}ion-radio::part(label){align-items:start;padding-inline:16px 12px;line-height:24px}ion-radio::part(label-text-wrapper){margin-inline:12px 0;white-space:pre-line}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 8px}ion-radio.in-item.radio-label-placement-end::part(label-text-wrapper){margin-inline:8px 0}ion-radio :host-context(kirby-radio-group.error) ion-radio,ion-radio :host-context(kirby-radio-group.error) ion-radio:active,ion-radio :host-context(kirby-radio-group.ng-touched.ng-invalid) ion-radio,ion-radio :host-context(kirby-radio-group.ng-touched.ng-invalid) ion-radio:active{--color: var(--kirby-danger)}ion-radio.radio-checked:not(:focus,.radio-disabled)::part(container){box-shadow:0 0 5px #1c1c1c0a,0 10px 15px -10px #1c1c1c26}ion-radio.radio-checked:not(.radio-disabled)::part(container){border-color:var(--kirby-semi-dark)}:host-context(kirby-item){z-index:1}: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 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: RadioComponent, decorators: [{\n type: Component,\n 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: [\":host{display:flex}:host[disabled]{color:var(--kirby-text-color-semi-dark)}:host[disabled] ion-radio{--color: var(--kirby-medium);--color-checked: var(--kirby-medium)}:host[disabled] ion-radio::part(container){background-color:var(--kirby-semi-light)}:host[disabled] ion-radio::part(mark){--color-checked: var(--kirby-semi-dark)}:host[disabled] ion-radio::part(label-text-wrapper){opacity:1}:host[disabled] ion-radio::part(native-wrapper){opacity:1}: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:4px}:host.sm ion-radio:not(.in-item)::part(label){padding-block:10px}:host.md ion-radio:not(.in-item)::part(label){padding-block:16px}@media (hover: hover) and (pointer: fine){ion-radio:focus-within::part(container){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-radio{box-sizing:border-box;--border-width: 1px;--color: var(--kirby-semi-dark);--color-checked: var(--kirby-success)}@media (hover: hover){ion-radio:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer}ion-radio:hover::part(container){background-color:#ebebeb}}ion-radio:active,ion-radio.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--color-checked: rgb(52.6486343612, 207.7113656388, 125.2311894273)}ion-radio:active::part(container),ion-radio.interaction-state-active::part(container){background-color:#e0e0e0}ion-radio::part(container){transition:all 80ms linear 0ms;transition-property:background-color;background-color:var(--kirby-white);margin:2px}ion-radio::part(mark){width:12px;height:12px}ion-radio::part(label){align-items:start;padding-inline:16px 12px;line-height:24px}ion-radio::part(label-text-wrapper){margin-inline:12px 0;white-space:pre-line}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 8px}ion-radio.in-item.radio-label-placement-end::part(label-text-wrapper){margin-inline:8px 0}ion-radio :host-context(kirby-radio-group.error) ion-radio,ion-radio :host-context(kirby-radio-group.error) ion-radio:active,ion-radio :host-context(kirby-radio-group.ng-touched.ng-invalid) ion-radio,ion-radio :host-context(kirby-radio-group.ng-touched.ng-invalid) ion-radio:active{--color: var(--kirby-danger)}ion-radio.radio-checked:not(:focus,.radio-disabled)::part(container){box-shadow:0 0 5px #1c1c1c0a,0 10px 15px -10px #1c1c1c26}ion-radio.radio-checked:not(.radio-disabled)::part(container){border-color:var(--kirby-semi-dark)}:host-context(kirby-item){z-index:1}:host-context(kirby-item) ion-radio{margin:0}:host-context(kirby-item)[slot=start]{margin-block:0;margin-inline-end:12px}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.IonicElementPartHelper }], propDecorators: { ionRadioElement: [{\n type: ViewChild,\n args: [IonRadio, { read: ElementRef, static: true }]\n }], value: [{\n type: Input\n }], text: [{\n type: Input\n }], size: [{\n type: HostBinding,\n args: ['class']\n }, {\n type: Input\n }], disabled: [{\n type: Input\n }], _isDisabled: [{\n type: HostBinding,\n args: ['attr.disabled']\n }], _labelText: [{\n type: HostBinding,\n args: ['class.has-hidden-label']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcmFkaW8vc3JjL3JhZGlvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3JhZGlvL3NyYy9yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFVNUYsTUFBTSxPQUFPLGNBQWM7SUFnQnpCLElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUlELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQU1ELFlBQ1UsT0FBZ0MsRUFDaEMsc0JBQThDO1FBRDlDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFyQnhELFNBQUksR0FBdUIsSUFBSSxDQUFDO1FBZWhDLGFBQVEsR0FBc0MsT0FBTyxDQUFDO1FBQ3RELG9CQUFlLEdBQTBDLEtBQUssQ0FBQztJQU01RCxDQUFDO0lBRUosUUFBUTtRQUNOOzs7O1dBSUc7UUFDSCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhO2FBQ2pELGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQzthQUNqQyxhQUFhLEVBQUUsQ0FBQztRQUVuQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUNqQyxvQkFBb0IsRUFDcEIsSUFBSSxDQUFDLGVBQWUsRUFDcEIscUJBQXFCLENBQ3RCLENBQUM7UUFDRixJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMvRCxtRkFBbUY7WUFDbkYsSUFBSSxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzlDLENBQUM7a0lBMUVVLGNBQWM7c0hBQWQsY0FBYywwUUFIZCxDQUFDLHNCQUFzQixDQUFDLDJFQUl4QixRQUFRLDJCQUFVLFVBQVUsMkNDeEJ6QywrZEFpQkEsZzhHRElZLFFBQVE7OzRGQUVQLGNBQWM7a0JBUjFCLFNBQVM7K0JBQ0UsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsc0JBQXNCLENBQUMsV0FDMUIsQ0FBQyxRQUFRLENBQUM7O3NCQUdsQixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7c0JBR3RELEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLFdBQVc7dUJBQUMsT0FBTzs7c0JBQ25CLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUVMLFdBQVc7dUJBQUMsZUFBZTs7c0JBSzNCLFdBQVc7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25SYWRpbyB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSW9uaWNFbGVtZW50UGFydEhlbHBlciB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaGVscGVycyc7XG5pbXBvcnQgeyBpbmhlcml0QXJpYUxhYmVsVGV4dCwgc2V0QWNjZXNzaWJsZUxhYmVsIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1yYWRpbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtJb25pY0VsZW1lbnRQYXJ0SGVscGVyXSxcbiAgaW1wb3J0czogW0lvblJhZGlvXSxcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICBAVmlld0NoaWxkKElvblJhZGlvLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIGlvblJhZGlvRWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTElvblJhZGlvRWxlbWVudD47XG5cbiAgQElucHV0KClcbiAgdmFsdWU6IGFueTtcblxuICBASW5wdXQoKVxuICB0ZXh0OiBzdHJpbmc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIEBJbnB1dCgpXG4gIHNpemU6ICd4cycgfCAnc20nIHwgJ21kJyA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnYXR0ci5kaXNhYmxlZCcpXG4gIGdldCBfaXNEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtaGlkZGVuLWxhYmVsJykgX2xhYmVsVGV4dDogc3RyaW5nO1xuXG4gIGdldCBidXR0b25UYWJJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlvblJhZGlvRWxlbWVudCA/IHRoaXMuaW9uUmFkaW9FbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggOiAtMTtcbiAgfVxuXG4gIF9qdXN0aWZ5OiAnc3RhcnQnIHwgJ2VuZCcgfCAnc3BhY2UtYmV0d2VlbicgPSAnc3RhcnQnO1xuICBfbGFiZWxQbGFjZW1lbnQ6ICdlbmQnIHwgJ2ZpeGVkJyB8ICdzdGFja2VkJyB8ICdzdGFydCcgPSAnZW5kJztcbiAgX2hhc1Nsb3R0ZWRDb250ZW50OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBpb25pY0VsZW1lbnRQYXJ0SGVscGVyOiBJb25pY0VsZW1lbnRQYXJ0SGVscGVyXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBXZSBjYW5ub3QgcXVlcnkgaW9uLWNoZWNrYm94IGZvciBzbG90dGVkIGNvbnRlbnQgYXQgdGhpcyBwb2ludCBhcyB0aGUgc2xvdCBoYXMgbm90IGJlZW4gcmVuZGVyZWQuXG4gICAgICogQnV0IHdlIG5lZWQgdG8ga25vdyBpZiBjb250ZW50IGlzIHNsb3R0ZWQgdG8gc2V0IGp1c3RpZnkgYW5kIGxhYmVsUGxhY2VtZW50IEJFRk9SRSBpb24tY2hlY2tib3ggaXMgcmVuZGVyZWQuXG4gICAgICogU28gaXQgaGFzIHRvIGJlIGRvbmUgYnkgcXVlcnlpbmcgYW4gYWRkaXRpb25hbCB3cmFwcGVyIGFyb3VuZCB0aGUgZGVmYXVsdCBjb250ZW50IHNsb3QgbGlrZSB0aGlzLlxuICAgICAqL1xuICAgIHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcbiAgICAgIC5xdWVyeVNlbGVjdG9yKCcuZGVmYXVsdC1jb250ZW50JylcbiAgICAgIC5oYXNDaGlsZE5vZGVzKCk7XG5cbiAgICBjb25zdCBzbG90ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzbG90Jyk7XG4gICAgaWYgKHNsb3QgPT09ICdlbmQnICYmIHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KSB7XG4gICAgICB0aGlzLl9qdXN0aWZ5ID0gJ3NwYWNlLWJldHdlZW4nO1xuICAgICAgdGhpcy5fbGFiZWxQbGFjZW1lbnQgPSAnc3RhcnQnO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlvbmljRWxlbWVudFBhcnRIZWxwZXIuc2V0UGFydCgnbGFiZWwnLCB0aGlzLmlvblJhZGlvRWxlbWVudCwgJy5yYWRpby13cmFwcGVyJyk7XG4gICAgdGhpcy5pb25pY0VsZW1lbnRQYXJ0SGVscGVyLnNldFBhcnQoXG4gICAgICAnbGFiZWwtdGV4dC13cmFwcGVyJyxcbiAgICAgIHRoaXMuaW9uUmFkaW9FbGVtZW50LFxuICAgICAgJy5sYWJlbC10ZXh0LXdyYXBwZXInXG4gICAgKTtcbiAgICB0aGlzLmlvbmljRWxlbWVudFBhcnRIZWxwZXIuc2V0UGFydCgnbmF0aXZlLXdyYXBwZXInLCB0aGlzLmlvblJhZGlvRWxlbWVudCwgJy5uYXRpdmUtd3JhcHBlcicpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2xhYmVsVGV4dCA9IGluaGVyaXRBcmlhTGFiZWxUZXh0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcblxuICAgIGlmICghdGhpcy50ZXh0ICYmICF0aGlzLl9sYWJlbFRleHQgJiYgIXRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KSB7XG4gICAgICAvLyBpZiBubyBsYWJlbCBoYXMgYmVlbiBzZXQgdHJ5IHRvIGZpbmQgYSBsYWJlbCBpbiBhbiBpdGVtIGFuZCB1c2UgaXRzIHRleHQgY29udGVudFxuICAgICAgdGhpcy5fbGFiZWxUZXh0ID0gc2V0QWNjZXNzaWJsZUxhYmVsKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLmlvblJhZGlvRWxlbWVudD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG4iLCI8aW9uLXJhZGlvXG4gIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIG1vZGU9XCJtZFwiXG4gIFtsYWJlbFBsYWNlbWVudF09XCJfbGFiZWxQbGFjZW1lbnRcIlxuICBbanVzdGlmeV09XCJfanVzdGlmeVwiXG4+XG4gIEBpZiAoX2xhYmVsVGV4dCkge1xuICAgIDxzcGFuIGNsYXNzPVwiaGlkZGVuLWxhYmVsXCI+e3sgX2xhYmVsVGV4dCB9fTwvc3Bhbj5cbiAgfVxuICBAaWYgKHRleHQpIHtcbiAgICA8c3BhbiBbYXR0ci5hcmlhLWhpZGRlbl09XCJfbGFiZWxUZXh0ID8gdHJ1ZSA6IHVuZGVmaW5lZFwiPnt7IHRleHQgfX08L3NwYW4+XG4gIH1cbiAgPHNwYW4gY2xhc3M9XCJkZWZhdWx0LWNvbnRlbnRcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJfbGFiZWxUZXh0ID8gdHJ1ZSA6IHVuZGVmaW5lZFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9zcGFuPlxuPC9pb24tcmFkaW8+XG4iXX0=","import { ChangeDetectionStrategy, ContentChild, ContentChildren, EventEmitter, HostBinding, Output, TemplateRef, ViewChildren, } from '@angular/core';\nimport { Component, HostListener, Input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ListItemTemplateDirective } from '@kirbydesign/designsystem/list';\nimport { forwardAttributes } from '@kirbydesign/designsystem/shared';\nimport { IonRadioGroup } from '@ionic/angular/standalone';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { RadioComponent } from '../radio.component';\nimport * as i0 from \"@angular/core\";\nexport class RadioGroupComponent {\n constructor(changeDetectionRef, element, renderer) {\n this.changeDetectionRef = changeDetectionRef;\n this.element = element;\n this.renderer = renderer;\n this._hasError = false;\n this.hasErrorChange = new EventEmitter();\n this.itemTextProperty = 'text';\n this.itemDisabledProperty = 'disabled';\n /**\n * Emitted when an option is selected\n */\n this.valueChange = new EventEmitter();\n // #endregion \"protected\" properties used by template\n // #region private fields\n this._disabled = false;\n this._items = [];\n this._onChangeCallback = () => { };\n this._onTouched = () => { };\n this._selectedIndex = -1;\n this._value = null;\n this._attributesToForward = ['aria-label', 'aria-labelledby'];\n }\n // #region public properties\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value;\n this.setProjectedRadiosDisabledState(value);\n }\n get hasError() {\n return this._hasError;\n }\n set hasError(value) {\n if (this._hasError !== value) {\n this._hasError = value;\n this.hasErrorChange.emit(this._hasError);\n }\n }\n get items() {\n return this._items || []; // Ensure items return empty array even if set to null/undefined\n }\n set items(value) {\n if ((!value || !value.length) && !this.items.length)\n return; // Nothing changed, no items before or after\n this._items = value;\n this.refreshSelectionState();\n }\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(value) {\n if (typeof value === 'string')\n 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))\n value = -1;\n if (value === this.selectedIndex)\n return;\n this._selectedIndex = value;\n this._value = this.getValueFromSelectedIndex() || null;\n }\n get value() {\n return this._value;\n }\n set value(value) {\n this.setSelectedItem(value);\n }\n get hasValue() {\n return this.value !== undefined && this.value !== null;\n }\n get hasItemsFromContentProjection() {\n return (!this.items.length &&\n !this._customItemTemplate &&\n this.projectedRadioButtons &&\n this.projectedRadioButtons.length > 0);\n }\n // #endregion private fields\n // #region public methods\n focus() {\n const findFocusable = (radios) => radios && radios.find((radio) => !isNaN(radio.buttonTabIndex) && radio.buttonTabIndex !== -1);\n const focusable = findFocusable(this.radioButtons) || findFocusable(this.projectedRadioButtons);\n focusable?.focus();\n }\n ngAfterContentInit() {\n this.initSelectionStateFromProjectedContent();\n this.listenForProjectedRadiosChange();\n }\n ngAfterViewInit() {\n forwardAttributes(this.element.nativeElement, this._attributesToForward, this.renderer, this.element.nativeElement.querySelector('ion-radio-group'));\n }\n registerOnChange(fn) {\n this._onChangeCallback = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this.changeDetectionRef.markForCheck();\n }\n writeValue(value) {\n this.value = value;\n this.changeDetectionRef.markForCheck();\n }\n // #endregion public methods\n // #region \"protected\" methods used by template\n _getTextFromItem(item) {\n if (!item)\n return null;\n return typeof item === 'string' ? item : item[this.itemTextProperty];\n }\n _getDisabledStateFromItem(item) {\n if (!item)\n return undefined;\n return typeof item === 'string' ? undefined : item[this.itemDisabledProperty];\n }\n get _hasItems() {\n return this.items.length > 0 || this.hasItemsFromContentProjection;\n }\n _onChange(value) {\n if (value === this._value)\n return;\n this.setSelectedItem(value);\n this.valueChange.emit(value);\n this._onChangeCallback(value);\n }\n _onRadioBlur() {\n this._onTouched();\n }\n // #endregion \"protected\" methods used by template\n // #region private methods\n getIndexOfSelectedValue() {\n if (!this.hasValue)\n return -1;\n return this.hasItemsFromContentProjection\n ? this.getIndexOfProjectedRadio(this.value)\n : this.items.indexOf(this.value);\n }\n getIndexOfProjectedRadio(value) {\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 getValueFromSelectedIndex() {\n if (this.selectedIndex === -1)\n return;\n return this.hasItemsFromContentProjection\n ? this.getValueFromProjectedRadios(this.selectedIndex)\n : this.items[this.selectedIndex];\n }\n getValueFromProjectedRadios(index) {\n const radio = this.projectedRadioButtons &&\n this.projectedRadioButtons.find((_, i) => {\n return i === index;\n });\n return radio && radio.value;\n }\n initSelectionStateFromProjectedContent() {\n if (this.hasItemsFromContentProjection) {\n this.refreshSelectionState(); // Initialize selected index and value from projected radios\n }\n }\n listenForProjectedRadiosChange() {\n this.projectedRadioButtons.changes.subscribe(() => {\n this.refreshStateFromProjectedContent();\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 refreshSelectionState() {\n if (this.hasValue) {\n this._selectedIndex = this.getIndexOfSelectedValue(); // Ensure selectedIndex reflects value within items\n }\n const valueFromSelectedIndex = this.getValueFromSelectedIndex();\n this._value = valueFromSelectedIndex !== undefined ? valueFromSelectedIndex : null;\n }\n refreshStateFromProjectedContent() {\n if (this._customItemTemplate)\n return; // Only refresh on changes to projected content, not when re-rendering custom template\n this.changeDetectionRef.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 setSelectedItem(value) {\n if (value === this._value)\n return; // Nothing changed\n this._value = value;\n this._selectedIndex = this.getIndexOfSelectedValue();\n }\n setProjectedRadiosDisabledState(isDisabled) {\n if (!this.projectedRadioButtons || !this.projectedRadioButtons.length)\n 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 /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: RadioGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.13\", type: RadioGroupComponent, isStandalone: true, selector: \"kirby-radio-group\", inputs: { disabled: \"disabled\", hasError: \"hasError\", items: \"items\", itemTextProperty: \"itemTextProperty\", itemDisabledProperty: \"itemDisabledProperty\", selectedIndex: \"selectedIndex\", value: \"value\" }, outputs: { hasErrorChange: \"hasErrorChange\", valueChange: \"valueChange\" }, host: { listeners: { \"ionBlur\": \"_onRadioBlur()\" }, properties: { \"class.error\": \"this.hasError\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroupComponent,\n multi: true,\n },\n ], queries: [{ propertyName: \"_customItemTemplate\", first: true, predicate: ListItemTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: \"projectedRadioButtons\", predicate: RadioComponent, descendants: true }], viewQueries: [{ propertyName: \"radioButtons\", predicate: RadioComponent, descendants: true }], ngImport: i0, template: \"@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\", styles: [\"ion-radio-group{display:inherit;flex-wrap:inherit}\\n\"], dependencies: [{ kind: \"component\", type: IonRadioGroup, selector: \"ion-radio-group\", inputs: [\"allowEmptySelection\", \"compareWith\", \"errorText\", \"helperText\", \"name\", \"value\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: RadioComponent, selector: \"kirby-radio\", inputs: [\"value\", \"text\", \"size\", \"disabled\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: RadioGroupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'kirby-radio-group', providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroupComponent,\n multi: true,\n },\n ], changeDetection: ChangeDetectionStrategy.OnPush, imports: [IonRadioGroup, NgTemplateOutlet, RadioComponent], template: \"@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\", styles: [\"ion-radio-group{display:inherit;flex-wrap:inherit}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { disabled: [{\n type: Input\n }], hasError: [{\n type: HostBinding,\n args: ['class.error']\n }, {\n type: Input\n }], hasErrorChange: [{\n type: Output\n }], items: [{\n type: Input\n }], itemTextProperty: [{\n type: Input\n }], itemDisabledProperty: [{\n type: Input\n }], selectedIndex: [{\n type: Input\n }], value: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], _customItemTemplate: [{\n type: ContentChild,\n args: [ListItemTemplateDirective, { read: TemplateRef }]\n }], radioButtons: [{\n type: ViewChildren,\n args: [RadioComponent]\n }], projectedRadioButtons: [{\n type: ContentChildren,\n args: [RadioComponent, { descendants: true }]\n }], _onRadioBlur: [{\n type: HostListener,\n args: ['ionBlur']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcmFkaW8vc3JjL3JhZGlvLWdyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3JhZGlvL3NyYy9yYWRpby1ncm91cC9yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsdUJBQXVCLEVBRXZCLFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBR04sV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBZ0JwRCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQ1Usa0JBQXFDLEVBQ3JDLE9BQWdDLEVBQ2hDLFFBQW1CO1FBRm5CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDaEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWNyQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBZXpCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQWF2RCxxQkFBZ0IsR0FBRyxNQUFN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QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHFCQUFxQjs0QkFDaEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDOztzQkFpQnpELEtBQUs7O3NCQU9MLFdBQVc7dUJBQUMsYUFBYTs7c0JBQ3pCLEtBQUs7O3NCQVlMLE1BQU07O3NCQU1OLEtBQUs7O3NCQU1MLEtBQUs7O3NCQUdMLEtBQUs7O3NCQU9MLEtBQUs7O3NCQVlMLEtBQUs7O3NCQVdMLE1BQU07O3NCQUlOLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFOztzQkFhN0QsWUFBWTt1QkFBQyxjQUFjOztzQkFFM0IsZUFBZTt1QkFBQyxjQUFjLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFOztzQkE4RXJELFlBQVk7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMaXN0SXRlbVRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9saXN0JztcbmltcG9ydCB7IEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3R5cGVzJztcblxuaW1wb3J0IHsgZm9yd2FyZEF0dHJpYnV0ZXMgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3NoYXJlZCc7XG5pbXBvcnQgeyBJb25SYWRpb0dyb3VwIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi4vcmFkaW8uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktcmFkaW8tZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFsnaW9uLXJhZGlvLWdyb3VwIHsgZGlzcGxheTogaW5oZXJpdDsgZmxleC13cmFwOiBpbmhlcml0fSddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBSYWRpb0dyb3VwQ29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtJb25SYWRpb0dyb3VwLCBOZ1RlbXBsYXRlT3V0bGV0LCBSYWRpb0NvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvR3JvdXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUZpZWxkQ29udHJvbCwgQWZ0ZXJWaWV3SW5pdFxue1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdGlvblJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7fVxuXG4gIC8vICNyZWdpb24gcHVibGljIHByb3BlcnRpZXNcblxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLnNldFByb2plY3RlZFJhZGlvc0Rpc2FibGVkU3RhdGUodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVycm9yJylcbiAgQElucHV0KClcbiAgZ2V0IGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oYXNFcnJvcjtcbiAgfVxuXG4gIHNldCBoYXNFcnJvcih2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl9oYXNFcnJvciAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX2hhc0Vycm9yID0gdmFsdWU7XG4gICAgICB0aGlzLmhhc0Vycm9yQ2hhbmdlLmVtaXQodGhpcy5faGFzRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBoYXNFcnJvckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBnZXQgaXRlbXMoKTogc3RyaW5nW10gfCBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zIHx8IFtdOyAvLyBFbnN1cmUgaXRlbXMgcmV0dXJuIGVtcHR5IGFycmF5IGV2ZW4gaWYgc2V0IHRvIG51bGwvdW5kZWZpbmVkXG4gIH1cblxuICBASW5wdXQoKSBzZXQgaXRlbXModmFsdWU6IHN0cmluZ1tdIHwgYW55W10pIHtcbiAgICBpZiAoKCF2YWx1ZSB8fCAhdmFsdWUubGVuZ3RoKSAmJiAhdGhpcy5pdGVtcy5sZW5ndGgpIHJldHVybjsgLy8gTm90aGluZyBjaGFuZ2VkLCBubyBpdGVtcyBiZWZvcmUgb3IgYWZ0ZXJcbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xuICAgIHRoaXMucmVmcmVzaFNlbGVjdGlvblN0YXRlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBpdGVtVGV4dFByb3BlcnR5ID0gJ3RleHQnO1xuXG4gIEBJbnB1dCgpXG4gIGl0ZW1EaXNhYmxlZFByb3BlcnR5ID0gJ2Rpc2FibGVkJztcblxuICBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4O1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB2YWx1ZSA9IHBhcnNlSW50KHZhbHVlKTsgLy8gRW5zdXJlIGRhdGEgdHlwZSBudW1iZXIsIGUuZy4gd2hlbiB1c2VkIHdpdGggdGVtcGxhdGUgc3ludGF4IHdpdGhvdXQgYmluZGluZzogPC4uLiBzZWxlY3RlZEluZGV4PVwiMVwiXG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgTnVtYmVyLmlzTmFOKHZhbHVlKSkgdmFsdWUgPSAtMTtcbiAgICBpZiAodmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRJbmRleCkgcmV0dXJuO1xuICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSB2YWx1ZTtcbiAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGcm9tU2VsZWN0ZWRJbmRleCgpIHx8IG51bGw7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHwgYW55IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IGFueSkge1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRJdGVtKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGhhc1ZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy52YWx1ZSAhPT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYW4gb3B0aW9uIGlzIHNlbGVjdGVkXG4gICAqL1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBhbnk+KCk7XG4gIC8vICNlbmRyZWdpb24gcHVibGljIHByb3BlcnRpZXNcblxuICAvLyAjcmVnaW9uIFwicHJvdGVjdGVkXCIgcHJvcGVydGllcyB1c2VkIGJ5IHRlbXBsYXRlXG4gIEBDb250ZW50Q2hpbGQoTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBfY3VzdG9tSXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvLyAjZW5kcmVnaW9uIFwicHJvdGVjdGVkXCIgcHJvcGVydGllcyB1c2VkIGJ5IHRlbXBsYXRlXG5cbiAgLy8gI3JlZ2lvbiBwcml2YXRlIGZpZWxkc1xuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9pdGVtczogc3RyaW5nW10gfCBhbnlbXSA9IFtdO1xuICBwcml2YXRlIF9vbkNoYW5nZUNhbGxiYWNrOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIF9vblRvdWNoZWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRJbmRleDogbnVtYmVyID0gLTE7XG4gIHByaXZhdGUgX3ZhbHVlPzogc3RyaW5nIHwgYW55ID0gbnVsbDtcbiAgcHJpdmF0ZSBfYXR0cmlidXRlc1RvRm9yd2FyZCA9IFsnYXJpYS1sYWJlbCcsICdhcmlhLWxhYmVsbGVkYnknXTtcblxuICBAVmlld0NoaWxkcmVuKFJhZGlvQ29tcG9uZW50KVxuICBwcml2YXRlIHJhZGlvQnV0dG9uczogUXVlcnlMaXN0PFJhZGlvQ29tcG9uZW50PjtcbiAgQENvbnRlbnRDaGlsZHJlbihSYWRpb0NvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIHByb2plY3RlZFJhZGlvQnV0dG9uczogUXVlcnlMaXN0PFJhZGlvQ29tcG9uZW50PjtcblxuICBwcml2YXRlIGdldCBoYXNJdGVtc0Zyb21Db250ZW50UHJvamVjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXRoaXMuaXRlbXMubGVuZ3RoICYmXG4gICAgICAhdGhpcy5fY3VzdG9tSXRlbVRlbXBsYXRlICYmXG4gICAgICB0aGlzLnByb2plY3RlZFJhZGlvQnV0dG9ucyAmJlxuICAgICAgdGhpcy5wcm9qZWN0ZWRSYWRpb0J1dHRvbnMubGVuZ3RoID4gMFxuICAgICk7XG4gIH1cblxuICAvLyAjZW5kcmVnaW9uIHByaXZhdGUgZmllbGRzXG5cbiAgLy8gI3JlZ2lvbiBwdWJsaWMgbWV0aG9kc1xuICBmb2N1cygpIHtcbiAgICBjb25zdCBmaW5kRm9jdXNhYmxlID0gKHJhZGlvczogUXVlcnlMaXN0PFJhZGlvQ29tcG9uZW50PikgPT5cbiAgICAgIHJhZGlvcyAmJiByYWRpb3MuZmluZCgocmFkaW8pID0+ICFpc05hTihyYWRpby5idXR0b25UYWJJbmRleCkgJiYgcmFkaW8uYnV0dG9uVGFiSW5kZXggIT09IC0xKTtcbiAgICBjb25zdCBmb2N1c2FibGUgPSBmaW5kRm9jdXNhYmxlKHRoaXMucmFkaW9CdXR0b25zKSB8fCBmaW5kRm9jdXNhYmxlKHRoaXMucHJvamVjdGVkUmFkaW9CdXR0b25zKTtcbiAgICBmb2N1c2FibGU/LmZvY3VzKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0U2VsZWN0aW9uU3RhdGVGcm9tUHJvamVjdGVkQ29udGVudCgpO1xuICAgIHRoaXMubGlzdGVuRm9yUHJvamVjdGVkUmFkaW9zQ2hhbmdlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgZm9yd2FyZEF0dHJpYnV0ZXMoXG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZXNUb0ZvcndhcmQsXG4gICAgICB0aGlzLnJlbmRlcmVyLFxuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW9uLXJhZGlvLWdyb3VwJylcbiAgICApO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rpb25SZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rpb25SZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvLyAjZW5kcmVnaW9uIHB1YmxpYyBtZXRob2RzXG5cbiAgLy8gI3JlZ2lvbiBcInByb3RlY3RlZFwiIG1ldGhvZHMgdXNlZCBieSB0ZW1wbGF0ZVxuICBfZ2V0VGV4dEZyb21JdGVtKGl0ZW06IHN0cmluZyB8IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKCFpdGVtKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnID8gaXRlbSA6IGl0ZW1bdGhpcy5pdGVtVGV4dFByb3BlcnR5XTtcbiAgfVxuXG4gIF9nZXREaXNhYmxlZFN0YXRlRnJvbUl0ZW0oaXRlbTogc3RyaW5nIHwgYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCFpdGVtKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgPyB1bmRlZmluZWQgOiBpdGVtW3RoaXMuaXRlbURpc2FibGVkUHJvcGVydHldO1xuICB9XG5cbiAgZ2V0IF9oYXNJdGVtcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGggPiAwIHx8IHRoaXMuaGFzSXRlbXNGcm9tQ29udGVudFByb2plY3Rpb247XG4gIH1cblxuICBfb25DaGFuZ2UodmFsdWU6IHN0cmluZyB8IGFueSkge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLnNldFNlbGVjdGVkSXRlbSh2YWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKHZhbHVlKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lvbkJsdXInKVxuICBfb25SYWRpb0JsdXIoKSB7XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gIH1cblxuICAvLyAjZW5kcmVnaW9uIFwicHJvdGVjdGVkXCIgbWV0aG9kcyB1c2VkIGJ5IHRlbXBsYXRlXG5cbiAgLy8gI3JlZ2lvbiBwcml2YXRlIG1ldGhvZHNcbiAgcHJpdmF0ZSBnZXRJbmRleE9mU2VsZWN0ZWRWYWx1ZSgpIHtcbiAgICBpZiAoIXRoaXMuaGFzVmFsdWUpIHJldHVybiAtMTtcbiAgICByZXR1cm4gdGhpcy5oYXNJdGVtc0Zyb21Db250ZW50UHJvamVjdGlvblxuICAgICAgPyB0aGlzLmdldEluZGV4T2ZQcm9qZWN0ZWRSYWRpbyh0aGlzLnZhbHVlKVxuICAgICAgOiB0aGlzLml0ZW1zLmluZGV4T2YodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldEluZGV4T2ZQcm9qZWN0ZWRSYWRpbyh2YWx1ZTogc3RyaW5nIHwgYW55KTogbnVtYmVyIHtcbiAgICBsZXQgc2VsZWN0ZWRJbmRleCA9IC0xO1xuICAgIHRoaXMucHJvamVjdGVkUmFkaW9CdXR0b25zPy5maW5kKChyYWRpbywgaSkgPT4ge1xuICAgICAgY29uc3QgZm91bmQgPSByYWRpby52YWx1ZSA9PT0gdmFsdWU7XG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgc2VsZWN0ZWRJbmRleCA9IGk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZm91bmQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIHNlbGVjdGVkSW5kZXg7XG4gIH1cblxuICBwcml2YXRlIGdldFZhbHVlRnJvbVNlbGVjdGVkSW5kZXgoKTogc3RyaW5nIHwgYW55IHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSAtMSkgcmV0dXJuO1xuICAgIHJldHVybiB0aGlzLmhhc0l0ZW1zRnJvbUNvbnRlbnRQcm9qZWN0aW9uXG4gICAgICA/IHRoaXMuZ2V0VmFsdWVGcm9tUHJvamVjdGVkUmFkaW9zKHRoaXMuc2VsZWN0ZWRJbmRleClcbiAgICAgIDogdGhpcy5pdGVtc1t0aGlzLnNlbGVjdGVkSW5kZXhdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYWx1ZUZyb21Qcm9qZWN0ZWRSYWRpb3MoaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IGFueSB7XG4gICAgY29uc3QgcmFkaW8gPVxuICAgICAgdGhpcy5wcm9qZWN0ZWRSYWRpb0J1dHRvbnMgJiZcbiAgICAgIHRoaXMucHJvamVjdGVkUmFkaW9CdXR0b25zLmZpbmQoKF8sIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIGkgPT09IGluZGV4O1xuICAgICAgfSk7XG4gICAgcmV0dXJuIHJhZGlvICYmIHJhZGlvLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U2VsZWN0aW9uU3RhdGVGcm9tUHJvamVjdGVkQ29udGVudCgpIHtcbiAgICBpZiAodGhpcy5oYXNJdGVtc0Zyb21Db250ZW50UHJvamVjdGlvbikge1xuICAgICAgdGhpcy5yZWZyZXNoU2VsZWN0aW9uU3RhdGUoKTsgLy8gSW5pdGlhbGl6ZSBzZWxlY3RlZCBpbmRleCBhbmQgdmFsdWUgZnJvbSBwcm9qZWN0ZWQgcmFkaW9zXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JQcm9qZWN0ZWRSYWRpb3NDaGFuZ2UoKSB7XG4gICAgdGhpcy5wcm9qZWN0ZWRSYWRpb0J1dHRvbnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoU3RhdGVGcm9tUHJvamVjdGVkQ29udGVudCgpO1xuXG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAvLyBFbnN1cmUgZGlzYWJsZWQgc3RhdGUgcHJvcGFnYXRlcyB3aGVuIHJlLXJlbmRlcmluZyBwcm9qZWN0ZWQgcmFkaW9zLlxuICAgICAgICAvLyBzZXRUaW1lb3V0IHByZXZlbnRzIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3Igd2hlbiB1cGRhdGluZyB0aGUgRE9NIGluIFF1ZXJ5TGlzdC5jaGFuZ2VzOlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0UHJvamVjdGVkUmFkaW9zRGlzYWJsZWRTdGF0ZSh0aGlzLmRpc2FibGVkKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hTZWxlY3Rpb25TdGF0ZSgpIHtcbiAgICBpZiAodGhpcy5oYXNWYWx1ZSkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IHRoaXMuZ2V0SW5kZXhPZlNlbGVjdGVkVmFsdWUoKTsgLy8gRW5zdXJlIHNlbGVjdGVkSW5kZXggcmVmbGVjdHMgdmFsdWUgd2l0aGluIGl0ZW1zXG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVGcm9tU2VsZWN0ZWRJbmRleCA9IHRoaXMuZ2V0VmFsdWVGcm9tU2VsZWN0ZWRJbmRleCgpO1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWVGcm9tU2VsZWN0ZWRJbmRleCAhPT0gdW5kZWZpbmVkID8gdmFsdWVGcm9tU2VsZWN0ZWRJbmRleCA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hTdGF0ZUZyb21Qcm9qZWN0ZWRDb250ZW50KCkge1xuICAgIGlmICh0aGlzLl9jdXN0b21JdGVtVGVtcGxhdGUpIHJldHVybjsgLy8gT25seSByZWZyZXNoIG9uIGNoYW5nZXMgdG8gcHJvamVjdGVkIGNvbnRlbnQsIG5vdCB3aGVuIHJlLXJlbmRlcmluZyBjdXN0b20gdGVtcGxhdGVcbiAgICB0aGlzLmNoYW5nZURldGVjdGlvblJlZi5tYXJrRm9yQ2hlY2soKTsgLy8gRW5zdXJlIGNoYW5nZXMgdG8gcHJvamVjdGVkIGNvbnRlbnQgZ2V0cyBjaGVja2VkIGluIG5leHQgY2hhbmdlIGRldGVjdGlvbiBjeWNsZVxuICAgIHRoaXMucmVmcmVzaFNlbGVjdGlvblN0YXRlKCk7IC8vIFN5bmMgc2VsZWN0ZWQgaW5kZXggYW5kIHZhbHVlIGZyb20gcHJvamVjdGVkIHJhZGlvc1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZEl0ZW0odmFsdWU6IHN0cmluZyB8IGFueSkge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fdmFsdWUpIHJldHVybjsgLy8gTm90aGluZyBjaGFuZ2VkXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLl9zZWxlY3RlZEluZGV4ID0gdGhpcy5nZXRJbmRleE9mU2VsZWN0ZWRWYWx1ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQcm9qZWN0ZWRSYWRpb3NEaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMucHJvamVjdGVkUmFkaW9CdXR0b25zIHx8ICF0aGlzLnByb2plY3RlZFJhZGlvQnV0dG9ucy5sZW5ndGgpIHJldHVybjtcbiAgICB0aGlzLnByb2plY3RlZFJhZGlvQnV0dG9ucy5mb3JFYWNoKChyYWRpbywgaW5kZXgpID0+IHtcbiAgICAgIC8vIERpc2FibGUgYWxsIHJhZGlvcyB3aGVuIGdyb3VwIGlzIGRpc2FibGVkLCBvdGhlcndpc2UgZmFsbCBiYWNrIHRvIGVhY2ggaXRlbSdzIGRpc2FibGVkIHN0YXRlLCBpZiBkZWZpbmVkOlxuICAgICAgcmFkaW8uZGlzYWJsZWQgPSBpc0Rpc2FibGVkIHx8IHRoaXMuX2dldERpc2FibGVkU3RhdGVGcm9tSXRlbSh0aGlzLml0ZW1zW2luZGV4XSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyAjZW5kcmVnaW9uIHByaXZhdGUgbWV0aG9kc1xufVxuIiwiQGlmIChfaGFzSXRlbXMpIHtcbiAgPGlvbi1yYWRpby1ncm91cFxuICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgKGlvbkNoYW5nZSk9XCJfb25DaGFuZ2UoJGV2ZW50LmRldGFpbC52YWx1ZSlcIlxuICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvclwiXG4gID5cbiAgICBAaWYgKCFpdGVtcyB8fCAhaXRlbXMubGVuZ3RoKSB7XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgfSBAZWxzZSB7XG4gICAgICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayBfZ2V0VGV4dEZyb21JdGVtKGl0ZW0pKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgX2N1c3RvbUl0ZW1UZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbVRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIHNlbGVjdGVkOiAkaW5kZXggPT09IHNlbGVjdGVkSW5kZXgsIGluZGV4OiAkaW5kZXggfVxuICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIH1cbiAgICB9XG4gIDwvaW9uLXJhZGlvLWdyb3VwPlxufVxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRJdGVtVGVtcGxhdGUgbGV0LWl0ZW0+XG4gIDxraXJieS1yYWRpb1xuICAgIFt2YWx1ZV09XCJpdGVtXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgX2dldERpc2FibGVkU3RhdGVGcm9tSXRlbShpdGVtKVwiXG4gICAgW3RleHRdPVwiX2dldFRleHRGcm9tSXRlbShpdGVtKVwiXG4gID48L2tpcmJ5LXJhZGlvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==","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';\nimport * as i0 from \"@angular/core\";\nconst declarations = [RadioComponent, RadioGroupComponent];\nexport class RadioModule {\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: RadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.13\", ngImport: i0, type: RadioModule, imports: [CommonModule, IonRadio, IonRadioGroup, RadioComponent, RadioGroupComponent], exports: [RadioComponent, RadioGroupComponent] }); }\n /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: RadioModule, imports: [CommonModule, IonRadio, IonRadioGroup, declarations] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: RadioModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, IonRadio, IonRadioGroup, ...declarations],\n exports: [...declarations],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcmFkaW8vc3JjL3JhZGlvLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFbkQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQU0zRCxNQUFNLE9BQU8sV0FBVztrSUFBWCxXQUFXO21JQUFYLFdBQVcsWUFIWixZQUFZLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFIM0IsY0FBYyxFQUFFLG1CQUFtQixhQUFuQyxjQUFjLEVBQUUsbUJBQW1CO21JQU01QyxXQUFXLFlBSFosWUFBWSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUssWUFBWTs7NEZBR3JELFdBQVc7a0JBSnZCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsR0FBRyxZQUFZLENBQUM7b0JBQ2pFLE9BQU8sRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uUmFkaW8sIElvblJhZGlvR3JvdXAgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFJhZGlvR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL3JhZGlvLWdyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8uY29tcG9uZW50JztcblxuY29uc3QgZGVjbGFyYXRpb25zID0gW1JhZGlvQ29tcG9uZW50LCBSYWRpb0dyb3VwQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uUmFkaW8sIElvblJhZGlvR3JvdXAsIC4uLmRlY2xhcmF0aW9uc10sXG4gIGV4cG9ydHM6IFsuLi5kZWNsYXJhdGlvbnNdLFxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb01vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2lyYnlkZXNpZ24tZGVzaWduc3lzdGVtLXJhZGlvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcmFkaW8vc3JjL2tpcmJ5ZGVzaWduLWRlc2lnbnN5c3RlbS1yYWRpby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"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 { 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 ],\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 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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"}
@@ -14,7 +14,8 @@ class RangeComponent {
14
14
  get value() {
15
15
  return this.currentValue;
16
16
  }
17
- constructor(element, renderer) {
17
+ constructor(cdr, element, renderer) {
18
+ this.cdr = cdr;
18
19
  this.element = element;
19
20
  this.renderer = renderer;
20
21
  this.step = 1;
@@ -71,6 +72,7 @@ class RangeComponent {
71
72
  }
72
73
  setDisabledState(isDisabled) {
73
74
  this.disabled = isDisabled;
75
+ this.cdr.markForCheck();
74
76
  }
75
77
  _onRangeValueChange($event) {
76
78
  this.writeValue($event.detail.value);
@@ -83,6 +85,7 @@ class RangeComponent {
83
85
  writeValue(value) {
84
86
  if (value !== undefined) {
85
87
  this.value = value;
88
+ this.cdr.markForCheck();
86
89
  }
87
90
  }
88
91
  registerOnTouched(fn) {
@@ -91,8 +94,8 @@ class RangeComponent {
91
94
  registerOnChange(fn) {
92
95
  this.propagateChange = fn;
93
96
  }
94
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: RangeComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
95
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.13", type: RangeComponent, isStandalone: true, selector: "kirby-range", inputs: { minLabel: "minLabel", maxLabel: "maxLabel", debounce: "debounce", max: "max", min: "min", pin: "pin", step: "step", ticks: "ticks", disabled: "disabled", pinFormatter: "pinFormatter", value: "value" }, outputs: { change: "change", move: "move" }, providers: [
97
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RangeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
98
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: RangeComponent, isStandalone: true, selector: "kirby-range", inputs: { minLabel: "minLabel", maxLabel: "maxLabel", debounce: "debounce", max: "max", min: "min", pin: "pin", step: "step", ticks: "ticks", disabled: "disabled", pinFormatter: "pinFormatter", value: "value" }, outputs: { change: "change", move: "move" }, providers: [
96
99
  {
97
100
  provide: NG_VALUE_ACCESSOR,
98
101
  multi: true,
@@ -100,7 +103,7 @@ class RangeComponent {
100
103
  },
101
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: [":host{display:flex;justify-content:space-between;flex-wrap:wrap}@media (hover: hover) and (pointer: fine){ion-range:focus-within::part(knob){transition:all 80ms linear 0ms;box-shadow:0 5px 10px #1c1c1c4d,0 0 5px #1c1c1c14,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-range:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--knob-background: rgb(234.6, 234.6, 234.6)}}ion-range:active,ion-range.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--knob-background: rgb(214.2, 214.2, 214.2)}ion-range{--knob-background: var(--kirby-white);--knob-box-shadow: 0 5px 10px 0 rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);--knob-size: 24px;--pin-color: var(--kirby-text-color-black);--pin-background: var(--kirby-semi-light);--bar-background: var(--kirby-medium);--bar-background-active: var(--kirby-dark);--bar-border-radius: 4px;--bar-height: 2px;flex:1 1 100%;padding:0}ion-range.range-disabled{--knob-background: var(--kirby-medium);--knob-box-shadow: none;--bar-background: var(--kirby-semi-light);--bar-background-active: var(--kirby-medium)}ion-range.range-disabled::part(tick){background:var(--kirby-semi-light)}ion-range.range-has-pin{padding:0 3px}ion-range::part(knob){transition:all 80ms linear 0ms;transition-property:background}ion-range::part(pin){font-size:12px;color:var(--pin-color);background-color:var(--pin-background);padding:2px 8px;border-radius:4px;min-width:24px;top:-12px}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:50%;width:6px;height:6px;margin-top:1px;z-index:1;margin-inline-start:-3px}ion-range::part(tick){background:var(--kirby-medium)}label{font-size:12px;line-height:16px;color:var(--kirby-text-color-semi-dark);margin-top:-4px}\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 }); }
102
105
  }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: RangeComponent, decorators: [{
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RangeComponent, decorators: [{
104
107
  type: Component,
105
108
  args: [{ imports: [IonRange], selector: 'kirby-range', providers: [
106
109
  {
@@ -109,7 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImpo
109
112
  useExisting: forwardRef((() => RangeComponent)),
110
113
  },
111
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: [":host{display:flex;justify-content:space-between;flex-wrap:wrap}@media (hover: hover) and (pointer: fine){ion-range:focus-within::part(knob){transition:all 80ms linear 0ms;box-shadow:0 5px 10px #1c1c1c4d,0 0 5px #1c1c1c14,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-range:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--knob-background: rgb(234.6, 234.6, 234.6)}}ion-range:active,ion-range.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--knob-background: rgb(214.2, 214.2, 214.2)}ion-range{--knob-background: var(--kirby-white);--knob-box-shadow: 0 5px 10px 0 rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);--knob-size: 24px;--pin-color: var(--kirby-text-color-black);--pin-background: var(--kirby-semi-light);--bar-background: var(--kirby-medium);--bar-background-active: var(--kirby-dark);--bar-border-radius: 4px;--bar-height: 2px;flex:1 1 100%;padding:0}ion-range.range-disabled{--knob-background: var(--kirby-medium);--knob-box-shadow: none;--bar-background: var(--kirby-semi-light);--bar-background-active: var(--kirby-medium)}ion-range.range-disabled::part(tick){background:var(--kirby-semi-light)}ion-range.range-has-pin{padding:0 3px}ion-range::part(knob){transition:all 80ms linear 0ms;transition-property:background}ion-range::part(pin){font-size:12px;color:var(--pin-color);background-color:var(--pin-background);padding:2px 8px;border-radius:4px;min-width:24px;top:-12px}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:50%;width:6px;height:6px;margin-top:1px;z-index:1;margin-inline-start:-3px}ion-range::part(tick){background:var(--kirby-medium)}label{font-size:12px;line-height:16px;color:var(--kirby-text-color-semi-dark);margin-top:-4px}\n"] }]
112
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { minLabel: [{
115
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { minLabel: [{
113
116
  type: Input
114
117
  }], maxLabel: [{
115
118
  type: Input
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-range.mjs","sources":["../tmp-esm2022/range/range.component.js","../tmp-esm2022/range/kirbydesign-designsystem-range.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonRange } from '@ionic/angular/standalone';\nimport { forwardAttributes } from '@kirbydesign/designsystem/shared';\nimport * as i0 from \"@angular/core\";\nexport class RangeComponent {\n set value(value) {\n if (value !== this.currentValue) {\n this.currentValue = value;\n this.propagateChange(this.currentValue);\n }\n }\n get value() {\n return this.currentValue;\n }\n constructor(element, renderer) {\n this.element = element;\n this.renderer = renderer;\n this.step = 1;\n this.disabled = false;\n this.pinFormatter = this.defaultPinFormatter;\n this.change = new EventEmitter();\n this.move = new EventEmitter();\n this._attributesToForward = ['aria-label', 'aria-labelledby'];\n this.onTouched = () => { };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n this.propagateChange = (_) => { };\n }\n ngOnInit() {\n this.initializeMoveEventEmitter();\n }\n ngOnChanges() {\n if (!this.ticks)\n return;\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 * 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 ngAfterViewInit() {\n forwardAttributes(this.element.nativeElement, this._attributesToForward, this.renderer, this.element.nativeElement.querySelector('ion-range'));\n }\n 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 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 defaultPinFormatter(value) {\n return value;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n _onRangeValueChange($event) {\n this.writeValue($event.detail.value);\n this.change.emit(this.currentValue);\n }\n _onRangeKnobMove($event) {\n this.writeValue($event.detail.value);\n this.move.emit(this.currentValue);\n }\n writeValue(value) {\n if (value !== undefined) {\n this.value = value;\n }\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n registerOnChange(fn) {\n this.propagateChange = fn;\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: RangeComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.13\", type: RangeComponent, isStandalone: true, selector: \"kirby-range\", inputs: { minLabel: \"minLabel\", maxLabel: \"maxLabel\", debounce: \"debounce\", max: \"max\", min: \"min\", pin: \"pin\", step: \"step\", ticks: \"ticks\", disabled: \"disabled\", pinFormatter: \"pinFormatter\", value: \"value\" }, outputs: { change: \"change\", move: \"move\" }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef((() => RangeComponent)),\n },\n ], 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: [\":host{display:flex;justify-content:space-between;flex-wrap:wrap}@media (hover: hover) and (pointer: fine){ion-range:focus-within::part(knob){transition:all 80ms linear 0ms;box-shadow:0 5px 10px #1c1c1c4d,0 0 5px #1c1c1c14,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-range:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--knob-background: rgb(234.6, 234.6, 234.6)}}ion-range:active,ion-range.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--knob-background: rgb(214.2, 214.2, 214.2)}ion-range{--knob-background: var(--kirby-white);--knob-box-shadow: 0 5px 10px 0 rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);--knob-size: 24px;--pin-color: var(--kirby-text-color-black);--pin-background: var(--kirby-semi-light);--bar-background: var(--kirby-medium);--bar-background-active: var(--kirby-dark);--bar-border-radius: 4px;--bar-height: 2px;flex:1 1 100%;padding:0}ion-range.range-disabled{--knob-background: var(--kirby-medium);--knob-box-shadow: none;--bar-background: var(--kirby-semi-light);--bar-background-active: var(--kirby-medium)}ion-range.range-disabled::part(tick){background:var(--kirby-semi-light)}ion-range.range-has-pin{padding:0 3px}ion-range::part(knob){transition:all 80ms linear 0ms;transition-property:background}ion-range::part(pin){font-size:12px;color:var(--pin-color);background-color:var(--pin-background);padding:2px 8px;border-radius:4px;min-width:24px;top:-12px}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:50%;width:6px;height:6px;margin-top:1px;z-index:1;margin-inline-start:-3px}ion-range::part(tick){background:var(--kirby-medium)}label{font-size:12px;line-height:16px;color:var(--kirby-text-color-semi-dark);margin-top:-4px}\\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 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: RangeComponent, decorators: [{\n type: Component,\n args: [{ imports: [IonRange], selector: 'kirby-range', providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef((() => RangeComponent)),\n },\n ], 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: [\":host{display:flex;justify-content:space-between;flex-wrap:wrap}@media (hover: hover) and (pointer: fine){ion-range:focus-within::part(knob){transition:all 80ms linear 0ms;box-shadow:0 5px 10px #1c1c1c4d,0 0 5px #1c1c1c14,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}@media (hover: hover){ion-range:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--knob-background: rgb(234.6, 234.6, 234.6)}}ion-range:active,ion-range.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--knob-background: rgb(214.2, 214.2, 214.2)}ion-range{--knob-background: var(--kirby-white);--knob-box-shadow: 0 5px 10px 0 rgba(28, 28, 28, .3), 0 0 5px 0 rgba(28, 28, 28, .08);--knob-size: 24px;--pin-color: var(--kirby-text-color-black);--pin-background: var(--kirby-semi-light);--bar-background: var(--kirby-medium);--bar-background-active: var(--kirby-dark);--bar-border-radius: 4px;--bar-height: 2px;flex:1 1 100%;padding:0}ion-range.range-disabled{--knob-background: var(--kirby-medium);--knob-box-shadow: none;--bar-background: var(--kirby-semi-light);--bar-background-active: var(--kirby-medium)}ion-range.range-disabled::part(tick){background:var(--kirby-semi-light)}ion-range.range-has-pin{padding:0 3px}ion-range::part(knob){transition:all 80ms linear 0ms;transition-property:background}ion-range::part(pin){font-size:12px;color:var(--pin-color);background-color:var(--pin-background);padding:2px 8px;border-radius:4px;min-width:24px;top:-12px}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:50%;width:6px;height:6px;margin-top:1px;z-index:1;margin-inline-start:-3px}ion-range::part(tick){background:var(--kirby-medium)}label{font-size:12px;line-height:16px;color:var(--kirby-text-color-semi-dark);margin-top:-4px}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { minLabel: [{\n type: Input\n }], maxLabel: [{\n type: Input\n }], debounce: [{\n type: Input\n }], max: [{\n type: Input\n }], min: [{\n type: Input\n }], pin: [{\n type: Input\n }], step: [{\n type: Input\n }], ticks: [{\n type: Input\n }], disabled: [{\n type: Input\n }], pinFormatter: [{\n type: Input\n }], value: [{\n type: Input\n }], change: [{\n type: Output\n }], move: [{\n type: Output\n }], ionRange: [{\n type: ViewChild,\n args: [IonRange, { static: true }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcmFuZ2Uvc3JjL3JhbmdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3JhbmdlL3NyYy9yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBZ0JyRSxNQUFNLE9BQU8sY0FBYztJQVd6QixJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBVUQsWUFDVSxPQUFnQyxFQUNoQyxRQUFtQjtRQURuQixZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUNoQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBMUJwQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRVQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixpQkFBWSxHQUF1QyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFhM0UsV0FBTSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFELFNBQUksR0FBeUIsSUFB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TUFBTTs7c0JBQ04sTUFBTTs7c0JBRU4sU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uUmFuZ2UgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGZvcndhcmRBdHRyaWJ1dGVzIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW0lvblJhbmdlXSxcbiAgc2VsZWN0b3I6ICdraXJieS1yYW5nZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhbmdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYW5nZUNvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgbWluTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgbWF4TGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgZGVib3VuY2U6IG51bWJlcjtcbiAgQElucHV0KCkgbWF4OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pbjogbnVtYmVyO1xuICBASW5wdXQoKSBwaW46IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN0ZXAgPSAxO1xuICBASW5wdXQoKSB0aWNrczogYm9vbGVhbjtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcGluRm9ybWF0dGVyOiAodmFsdWU6IG51bWJlcikgPT4gc3RyaW5nIHwgbnVtYmVyID0gdGhpcy5kZWZhdWx0UGluRm9ybWF0dGVyO1xuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLmN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFZhbHVlO1xuICB9XG5cbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIG1vdmU6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQFZpZXdDaGlsZChJb25SYW5nZSwgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBpb25SYW5nZTogSW9uUmFuZ2U7XG5cbiAgcHJpdmF0ZSBjdXJyZW50VmFsdWU6IG51bWJlcjtcbiAgcHJpdmF0ZSBfYXR0cmlidXRlc1RvRm9yd2FyZCA9IFsnYXJpYS1sYWJlbCcsICdhcmlhLWxhYmVsbGVkYnknXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplTW92ZUV2ZW50RW1pdHRlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLnRpY2tzKSByZXR1cm47XG5cbiAgICAvKlxuICAgICAqIE1heCAxMCB0aWNrcyBhcmUgYWxsb3dlZFxuICAgICAqL1xuICAgIGNvbnN0IGFtb3VudE9mVGlja3MgPSAodGhpcy5tYXggLSB0aGlzLm1pbikgLyB0aGlzLnN0ZXA7XG4gICAgaWYgKGFtb3VudE9mVGlja3MgPiA5KSB7XG4gICAgICB0aGlzLnN0ZXAgPSAodGhpcy5tYXggLSB0aGlzLm1pbikgLyA5O1xuICAgIH1cblxuICAgIC8qXG4gICAgICogU2V0IHZhbHVlIHRvIHRoZSBuZWFyZXN0IHRpY2tcbiAgICAgKi9cbiAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRUaWNrcygpLnJlZHVjZSgoYSwgYikgPT4ge1xuICAgICAgcmV0dXJuIE1hdGguYWJzKGIgLSB0aGlzLnZhbHVlKSA8IE1hdGguYWJzKGEgLSB0aGlzLnZhbHVlKSA/IGIgOiBhO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGZvcndhcmRBdHRyaWJ1dGVzKFxuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0aGlzLl9hdHRyaWJ1dGVzVG9Gb3J3YXJkLFxuICAgICAgdGhpcy5yZW5kZXJlcixcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lvbi1yYW5nZScpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGlja3MoKSB7XG4gICAgY29uc3QgdGlja3MgPSBbXTtcbiAgICBmb3IgKGxldCB2YWx1ZSA9IE51bWJlcih0aGlzLm1pbik7IHZhbHVlIDw9IE51bWJlcih0aGlzLm1heCk7IHZhbHVlICs9IE51bWJlcih0aGlzLnN0ZXApKSB7XG4gICAgICB0aWNrcy5wdXNoKHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRpY2tzO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTW92ZUV2ZW50RW1pdHRlcigpIHtcbiAgICAvLyBXZSBzdWJzY3JpYmUgdG8gaW9uUmFuZ2UncyBpb25JbnB1dCBpbXBlcmF0aXZlbHkgaW5zdGVhZCBvZiBpbiBtYXJrdXBcbiAgICAvLyB0byBhdm9pZCBkb2luZyB3b3JrIHdoZW4gbm8tb25lIGlzIGxpc3RlbmluZyB0byB0aGUgbW92ZSBldmVudC5cbiAgICBpZiAodGhpcy5tb3ZlLm9ic2VydmVkKSB7XG4gICAgICB0aGlzLmlvblJhbmdlLmlvbklucHV0LnN1YnNjcmliZSgocmFuZ2VFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLl9vblJhbmdlS25vYk1vdmUocmFuZ2VFdmVudCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlZmF1bHRQaW5Gb3JtYXR0ZXIodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBfb25SYW5nZVZhbHVlQ2hhbmdlKCRldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy53cml0ZVZhbHVlKCRldmVudC5kZXRhaWwudmFsdWUpO1xuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5jdXJyZW50VmFsdWUpO1xuICB9XG5cbiAgcHVibGljIF9vblJhbmdlS25vYk1vdmUoJGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLndyaXRlVmFsdWUoJGV2ZW50LmRldGFpbC52YWx1ZSk7XG4gICAgdGhpcy5tb3ZlLmVtaXQodGhpcy5jdXJyZW50VmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHVibGljIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG59XG4iLCI8aW9uLXJhbmdlXG4gIChpb25DaGFuZ2UpPVwiX29uUmFuZ2VWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgW21pbl09XCJtaW5cIlxuICBbbWF4XT1cIm1heFwiXG4gIFtzdGVwXT1cInN0ZXBcIlxuICBbdmFsdWVdPVwidmFsdWVcIlxuICBbcGluXT1cInBpblwiXG4gIFtwaW5Gb3JtYXR0ZXJdPVwicGluRm9ybWF0dGVyXCJcbiAgW3NuYXBzXT1cInRpY2tzXCJcbiAgW3RpY2tzXT1cInRpY2tzXCJcbiAgW2RlYm91bmNlXT1cImRlYm91bmNlXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbj48L2lvbi1yYW5nZT5cblxuQGlmIChtaW5MYWJlbCkge1xuICA8bGFiZWwgY2xhc3M9XCJtaW4tbGFiZWxcIj57eyBtaW5MYWJlbCB9fTwvbGFiZWw+XG59XG5AaWYgKG1heExhYmVsKSB7XG4gIDxsYWJlbCBjbGFzcz1cIm1heC1sYWJlbFwiPnt7IG1heExhYmVsIH19PC9sYWJlbD5cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2lyYnlkZXNpZ24tZGVzaWduc3lzdGVtLXJhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcmFuZ2Uvc3JjL2tpcmJ5ZGVzaWduLWRlc2lnbnN5c3RlbS1yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"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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"}
@@ -66,10 +66,10 @@ class ReorderListComponent {
66
66
  this.observer?.disconnect();
67
67
  delete this.observer;
68
68
  }
69
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ReorderListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
70
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.13", 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: ["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-background-color)}.reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;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:16px;border-bottom-right-radius:16px;overflow:hidden}.reorder-list-active .reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;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:16px;border-bottom-right-radius:16px;overflow:hidden}kirby-card ::ng-deep>div kirby-item{z-index:1}kirby-card ::ng-deep>.content-layer>div:first-child>kirby-item{border-radius:16px;overflow:hidden}kirby-card ::ng-deep>div .reorder-list-active kirby-item{z-index:103}kirby-card div:first-child{border-top:1px solid var(--kirby-background-color)}\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"] }] }); }
69
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ReorderListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
70
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", 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: ["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-background-color)}.reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;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:16px;border-bottom-right-radius:16px;overflow:hidden}.reorder-list-active .reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;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:16px;border-bottom-right-radius:16px;overflow:hidden}kirby-card ::ng-deep>div kirby-item{z-index:1}kirby-card ::ng-deep>.content-layer>div:first-child>kirby-item{border-radius:16px;overflow:hidden}kirby-card ::ng-deep>div .reorder-list-active kirby-item{z-index:103}kirby-card div:first-child{border-top:1px solid var(--kirby-background-color)}\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
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ReorderListComponent, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ReorderListComponent, decorators: [{
73
73
  type: Component,
74
74
  args: [{ imports: [
75
75
  CardComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-reorder-list.mjs","sources":["../tmp-esm2022/reorder-list/reorder-event.js","../tmp-esm2022/reorder-list/reorder-list.component.js","../tmp-esm2022/reorder-list/kirbydesign-designsystem-reorder-list.js"],"sourcesContent":["export class ReorderEvent {\n constructor(ev, parentItem) {\n this.origEvent = ev;\n this.parent = parentItem;\n this.origEvent.cancelBubble = true;\n }\n complete(listOrReorder) {\n return this.origEvent.detail.complete(listOrReorder);\n }\n get parentItem() {\n return this.parent;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVvcmRlci1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Jlb3JkZXItbGlzdC9zcmMvcmVvcmRlci1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sWUFBWTtJQUl2QixZQUFZLEVBQW9CLEVBQUUsVUFBZ0I7UUFDaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxRQUFRLENBQUMsYUFBK0I7UUFDdEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUmVvcmRlckV2ZW50IHtcbiAgcHJpdmF0ZSBvcmlnRXZlbnQ6IEN1c3RvbUV2ZW50PGFueT47XG4gIHByaXZhdGUgcGFyZW50PzogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGV2OiBDdXN0b21FdmVudDxhbnk+LCBwYXJlbnRJdGVtPzogYW55KSB7XG4gICAgdGhpcy5vcmlnRXZlbnQgPSBldjtcbiAgICB0aGlzLnBhcmVudCA9IHBhcmVudEl0ZW07XG4gICAgdGhpcy5vcmlnRXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTtcbiAgfVxuICBjb21wbGV0ZShsaXN0T3JSZW9yZGVyPzogYm9vbGVhbiB8IGFueVtdKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5vcmlnRXZlbnQuZGV0YWlsLmNvbXBsZXRlKGxpc3RPclJlb3JkZXIpO1xuICB9XG5cbiAgZ2V0IHBhcmVudEl0ZW0oKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XG4gIH1cbn1cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChildren, } from '@angular/core';\nimport { CardComponent } from '@kirbydesign/designsystem/card';\nimport { ItemComponent, LabelComponent } from '@kirbydesign/designsystem/item';\nimport { ListItemTemplateDirective } from '@kirbydesign/designsystem/list';\nimport { IonBackdrop, IonReorderGroup } from '@ionic/angular/standalone';\nimport { ReorderEvent } from './reorder-event';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nexport class ReorderListComponent {\n constructor(cdr) {\n this.cdr = cdr;\n this.itemReorder = new EventEmitter();\n this.subItemReorder = new EventEmitter();\n this.reorderActive = false;\n }\n ngOnChanges() {\n if (this.items && this.items.length > 0) {\n setTimeout(() => {\n this.setupDomListener();\n });\n }\n }\n setupDomListener() {\n const callback = (mutationsList) => {\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 this.reorderGroupContainer.forEach((div) => {\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 doReorder(ev) {\n this.itemReorder.emit(new ReorderEvent(ev));\n }\n doSubReorder(ev, parentItem) {\n this.subItemReorder.emit(new ReorderEvent(ev, parentItem));\n }\n ngOnDestroy() {\n //clean up the observer\n this.observer?.disconnect();\n delete this.observer;\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ReorderListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.13\", 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: [\"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-background-color)}.reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;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:16px;border-bottom-right-radius:16px;overflow:hidden}.reorder-list-active .reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;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:16px;border-bottom-right-radius:16px;overflow:hidden}kirby-card ::ng-deep>div kirby-item{z-index:1}kirby-card ::ng-deep>.content-layer>div:first-child>kirby-item{border-radius:16px;overflow:hidden}kirby-card ::ng-deep>div .reorder-list-active kirby-item{z-index:103}kirby-card div:first-child{border-top:1px solid var(--kirby-background-color)}\\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\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: ReorderListComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CardComponent,\n ItemComponent,\n LabelComponent,\n CommonModule,\n IonBackdrop,\n IonReorderGroup,\n ], 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: [\"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-background-color)}.reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;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:16px;border-bottom-right-radius:16px;overflow:hidden}.reorder-list-active .reorder-selected ::ng-deep>kirby-item{box-shadow:0 0 10px #0006;transform:scale(1.05);border-radius:16px;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:16px;border-bottom-right-radius:16px;overflow:hidden}kirby-card ::ng-deep>div kirby-item{z-index:1}kirby-card ::ng-deep>.content-layer>div:first-child>kirby-item{border-radius:16px;overflow:hidden}kirby-card ::ng-deep>div .reorder-list-active kirby-item{z-index:103}kirby-card div:first-child{border-top:1px solid var(--kirby-background-color)}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { items: [{\n type: Input\n }], subItemsName: [{\n type: Input\n }], getItemTextDefault: [{\n type: Input\n }], itemReorder: [{\n type: Output\n }], subItemReorder: [{\n type: Output\n }], itemTemplate: [{\n type: ContentChild,\n args: [ListItemTemplateDirective, { static: true, read: TemplateRef }]\n }], reorderGroupContainer: [{\n type: ViewChildren,\n args: ['reorderGroupContainer']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVvcmRlci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Jlb3JkZXItbGlzdC9zcmMvcmVvcmRlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3Jlb3JkZXItbGlzdC9zcmMvcmVvcmRlci1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixXQUFXLEVBQ1gsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFlL0MsTUFBTSxPQUFPLG9CQUFvQjtJQWdCL0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFYaEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUMvQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBUTVELGtCQUFhLEdBQVksS0FBSyxDQUFDO0lBRWMsQ0FBQztJQUU5QyxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLFFBQVEsR0FBRyxDQUFDLGFBQWtCLEVBQUUsRUFBRTtZQUN0QyxLQUFLLE1BQU0sUUFBUSxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO29CQUN2RCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUM7Z0JBQ3BGLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQWUsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUU7Z0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixlQUFlLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBQzFCLGlCQUFpQixFQUFFLElBQUk7Z0JBQ3ZCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixPQUFPLEVBQUUsSUFBSTthQUNkLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFlO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQVksQ0FBQyxFQUFlLEVBQUUsVUFBZTtRQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVztRQUNULHVCQUF1QjtRQUN2QixJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO2tJQTVEVSxvQkFBb0I7c0hBQXBCLG9CQUFvQix1U0FRakIseUJBQXlCLDJCQUF3QixXQUFXLG1MQzNDNUUsNDZDQTBDQSxpOUNEbEJJLGFBQWEsOElBQ2IsYUFBYSxpS0FFYixZQUFZLHNNQUNaLFdBQVcsNkdBQ1gsZUFBZTs7NEZBTU4sb0JBQW9CO2tCQWJoQyxTQUFTOzhCQUNDO3dCQUNQLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlO3FCQUNoQixZQUNTLG9CQUFvQjs7c0JBSzdCLEtBQUs7O3NCQUNMLEtBQUs7O3NCQUNMLEtBQUs7O3NCQUVMLE1BQU07O3NCQUNOLE1BQU07O3NCQUVOLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7O3NCQUUzRSxZQUFZO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYXJkQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9jYXJkJztcbmltcG9ydCB7IEl0ZW1Db21wb25lbnQsIExhYmVsQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9pdGVtJztcbmltcG9ydCB7IExpc3RJdGVtVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2xpc3QnO1xuXG5pbXBvcnQgeyBJb25CYWNrZHJvcCwgSW9uUmVvcmRlckdyb3VwIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBSZW9yZGVyRXZlbnQgfSBmcm9tICcuL3Jlb3JkZXItZXZlbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW1xuICAgIENhcmRDb21wb25lbnQsXG4gICAgSXRlbUNvbXBvbmVudCxcbiAgICBMYWJlbENvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uQmFja2Ryb3AsXG4gICAgSW9uUmVvcmRlckdyb3VwLFxuICBdLFxuICBzZWxlY3RvcjogJ2tpcmJ5LXJlb3JkZXItbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZW9yZGVyLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZW9yZGVyLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVvcmRlckxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXTtcbiAgQElucHV0KCkgc3ViSXRlbXNOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGdldEl0ZW1UZXh0RGVmYXVsdDogKGl0ZW06IGFueSkgPT4gc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBpdGVtUmVvcmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8UmVvcmRlckV2ZW50PigpO1xuICBAT3V0cHV0KCkgc3ViSXRlbVJlb3JkZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFJlb3JkZXJFdmVudD4oKTtcblxuICBAQ29udGVudENoaWxkKExpc3RJdGVtVGVtcGxhdGVEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGRyZW4oJ3Jlb3JkZXJHcm91cENvbnRhaW5lcicpXG4gIHJlb3JkZXJHcm91cENvbnRhaW5lcjogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gIHByaXZhdGUgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG4gIHJlb3JkZXJBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXR1cERvbUxpc3RlbmVyKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldHVwRG9tTGlzdGVuZXIoKSB7XG4gICAgY29uc3QgY2FsbGJhY2sgPSAobXV0YXRpb25zTGlzdDogYW55KSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9uc0xpc3QpIHtcbiAgICAgICAgaWYgKG11dGF0aW9uLm9sZFZhbHVlICE9PSBtdXRhdGlvbi50YXJnZXRbJ2NsYXNzTmFtZSddKSB7XG4gICAgICAgICAgdGhpcy5yZW9yZGVyQWN0aXZlID0gbXV0YXRpb24udGFyZ2V0WydjbGFzc05hbWUnXS5pbmNsdWRlcygncmVvcmRlci1saXN0LWFjdGl2ZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfTtcbiAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spO1xuXG4gICAgdGhpcy5yZW9yZGVyR3JvdXBDb250YWluZXIuZm9yRWFjaCgoZGl2OiBFbGVtZW50UmVmKSA9PiB7XG4gICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUoZGl2Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10sXG4gICAgICAgIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLFxuICAgICAgICBjaGlsZExpc3Q6IGZhbHNlLFxuICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBkb1Jlb3JkZXIoZXY6IEN1c3RvbUV2ZW50KSB7XG4gICAgdGhpcy5pdGVtUmVvcmRlci5lbWl0KG5ldyBSZW9yZGVyRXZlbnQoZXYpKTtcbiAgfVxuXG4gIGRvU3ViUmVvcmRlcihldjogQ3VzdG9tRXZlbnQsIHBhcmVudEl0ZW06IGFueSkge1xuICAgIHRoaXMuc3ViSXRlbVJlb3JkZXIuZW1pdChuZXcgUmVvcmRlckV2ZW50KGV2LCBwYXJlbnRJdGVtKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvL2NsZWFuIHVwIHRoZSBvYnNlcnZlclxuICAgIHRoaXMub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICBkZWxldGUgdGhpcy5vYnNlcnZlcjtcbiAgfVxufVxuIiwiQGlmIChyZW9yZGVyQWN0aXZlKSB7XG4gIDxpb24tYmFja2Ryb3AgW3RhcHBhYmxlXT1cImZhbHNlXCIgW3Zpc2libGVdPVwidHJ1ZVwiIFtzdG9wUHJvcGFnYXRpb25dPVwiZmFsc2VcIj48L2lvbi1iYWNrZHJvcD5cbn1cbjxpb24tcmVvcmRlci1ncm91cCAoaW9uSXRlbVJlb3JkZXIpPVwiZG9SZW9yZGVyKCRldmVudClcIiBkaXNhYmxlZD1cImZhbHNlXCI+XG4gIEBmb3IgKHJlb3JkZXJJdGVtIG9mIGl0ZW1zOyB0cmFjayByZW9yZGVySXRlbSkge1xuICAgIDxkaXY+XG4gICAgICA8a2lyYnktY2FyZD5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBpdGVtVGVtcGxhdGUgfHwgZGVmYXVsdEl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByZW9yZGVySXRlbSB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICBAaWYgKHJlb3JkZXJJdGVtW3N1Ykl0ZW1zTmFtZV0pIHtcbiAgICAgICAgICA8ZGl2ICNyZW9yZGVyR3JvdXBDb250YWluZXI+XG4gICAgICAgICAgICA8aW9uLXJlb3JkZXItZ3JvdXBcbiAgICAgICAgICAgICAgKGlvbkl0ZW1SZW9yZGVyKT1cImRvU3ViUmVvcmRlcigkZXZlbnQsIHJlb3JkZXJJdGVtKVwiXG4gICAgICAgICAgICAgIGRpc2FibGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAZm9yIChzdWJJdGVtIG9mIHJlb3JkZXJJdGVtW3N1Ykl0ZW1zTmFtZV07IHRyYWNrIHN1Ykl0ZW0pIHtcbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbVRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzdWJJdGVtLCBpc1N1Ykl0ZW06IHRydWUgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2lvbi1yZW9yZGVyLWdyb3VwPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2tpcmJ5LWNhcmQ+XG4gICAgPC9kaXY+XG4gIH1cbjwvaW9uLXJlb3JkZXItZ3JvdXA+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEl0ZW1UZW1wbGF0ZSBsZXQtaXRlbSBsZXQtaXNTdWJJdGVtPlxuICA8a2lyYnktaXRlbSBbcmVvcmRlcmFibGVdPVwidHJ1ZVwiPlxuICAgIDxwIGNsYXNzPVwia2lyYnktaXRlbS10aXRsZVwiPnt7IGdldEl0ZW1UZXh0RGVmYXVsdChpdGVtKSB9fTwvcD5cbiAgPC9raXJieS1pdGVtPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2lyYnlkZXNpZ24tZGVzaWduc3lzdGVtLXJlb3JkZXItbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Jlb3JkZXItbGlzdC9zcmMva2lyYnlkZXNpZ24tZGVzaWduc3lzdGVtLXJlb3JkZXItbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"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":"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"}
@@ -8,10 +8,10 @@ class RouterOutletComponent {
8
8
  constructor() {
9
9
  this._animated = isPlatform('hybrid');
10
10
  }
11
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: RouterOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.13", 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-background-color)}\n"], dependencies: [{ kind: "component", type: IonRouterOutlet, selector: "ion-router-outlet" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RouterOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", 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-background-color)}\n"], dependencies: [{ kind: "component", type: IonRouterOutlet, selector: "ion-router-outlet" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: RouterOutletComponent, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RouterOutletComponent, decorators: [{
15
15
  type: Component,
16
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-background-color)}\n"] }]
17
17
  }], propDecorators: { main: [{
@@ -19,11 +19,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImpo
19
19
  }] } });
20
20
 
21
21
  class RouterOutletModule {
22
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: RouterOutletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: RouterOutletModule, imports: [CommonModule, IonRouterOutlet, RouterOutletComponent], exports: [RouterOutletComponent] }); }
24
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: RouterOutletModule, imports: [CommonModule, IonRouterOutlet, RouterOutletComponent] }); }
22
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RouterOutletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: RouterOutletModule, imports: [CommonModule, IonRouterOutlet, RouterOutletComponent], exports: [RouterOutletComponent] }); }
24
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RouterOutletModule, imports: [CommonModule, IonRouterOutlet, RouterOutletComponent] }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: RouterOutletModule, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RouterOutletModule, decorators: [{
27
27
  type: NgModule,
28
28
  args: [{
29
29
  imports: [CommonModule, IonRouterOutlet, RouterOutletComponent],