@kirbydesign/designsystem 4.0.13 → 4.0.14

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.
@@ -8653,7 +8653,8 @@
8653
8653
  SegmentedControlMode["default"] = "default";
8654
8654
  })(exports.SegmentedControlMode || (exports.SegmentedControlMode = {}));
8655
8655
  var SegmentedControlComponent = /** @class */ (function () {
8656
- function SegmentedControlComponent() {
8656
+ function SegmentedControlComponent(iconRegistryService) {
8657
+ this.iconRegistryService = iconRegistryService;
8657
8658
  this.mode = exports.SegmentedControlMode.default;
8658
8659
  this._items = [];
8659
8660
  this._selectedIndex = -1;
@@ -8683,7 +8684,16 @@
8683
8684
  return this._items;
8684
8685
  },
8685
8686
  set: function (value) {
8687
+ var _this = this;
8686
8688
  this._items = value || [];
8689
+ this._items.forEach(function (item) {
8690
+ if (item.badge === undefined)
8691
+ return;
8692
+ // We need to verify whether badges icon is custom or default, so we can check for it in the template
8693
+ item.badge.isCustomIcon =
8694
+ item.badge.icon !== undefined &&
8695
+ _this.iconRegistryService.getIcon(item.badge.icon) !== undefined;
8696
+ });
8687
8697
  var checkedItemIndex = this.items.findIndex(function (item) { return item.checked; });
8688
8698
  if (checkedItemIndex > -1) {
8689
8699
  console.warn('SegmentItem.checked is deprecated - please remove from your `items` configuration. Use `selectedIndex` or `value` on `<kirby-segmented-control>` instead ');
@@ -8736,12 +8746,16 @@
8736
8746
  SegmentedControlComponent.decorators = [
8737
8747
  { type: i0.Component, args: [{
8738
8748
  selector: 'kirby-segmented-control',
8739
- template: "<ion-segment\n *ngIf=\"mode === 'default'\"\n [value]=\"value?.id\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventWrapperClick($event)\"\n>\n <div *ngFor=\"let item of items\" class=\"segment-btn-wrapper\">\n <ion-segment-button [value]=\"item.id\">{{ item.text }}</ion-segment-button>\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <kirby-icon\n *ngIf=\"item.badge.icon; else badgeContent\"\n [customName]=\"item.badge.icon\"\n [name]=\"item.badge.icon\"\n ></kirby-icon>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </div>\n</ion-segment>\n\n<ng-container *ngIf=\"mode === 'chip' || mode === 'compactChip'\">\n <kirby-chip\n *ngFor=\"let item of items; let index = index\"\n [text]=\"item.text\"\n [isSelected]=\"index === selectedIndex\"\n (click)=\"onSegmentSelect(item.id)\"\n role=\"button\"\n ></kirby-chip>\n</ng-container>\n",
8749
+ template: "<ion-segment\n *ngIf=\"mode === 'default'\"\n [value]=\"value?.id\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventWrapperClick($event)\"\n>\n <div *ngFor=\"let item of items\" class=\"segment-btn-wrapper\">\n <ion-segment-button [value]=\"item.id\">{{ item.text }}</ion-segment-button>\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon\n *ngIf=\"item.badge.isCustomIcon; else defaultIconName\"\n [customName]=\"item.badge.icon\"\n ></kirby-icon>\n <ng-template #defaultIconName>\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-template>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </div>\n</ion-segment>\n\n<ng-container *ngIf=\"mode === 'chip' || mode === 'compactChip'\">\n <kirby-chip\n *ngFor=\"let item of items; let index = index\"\n [text]=\"item.text\"\n [isSelected]=\"index === selectedIndex\"\n (click)=\"onSegmentSelect(item.id)\"\n role=\"button\"\n ></kirby-chip>\n</ng-container>\n",
8740
8750
  // tslint:disable-next-line: no-host-metadata-property
8741
8751
  host: { role: 'group' },
8742
8752
  styles: [":host{display:block;-webkit-user-select:none;user-select:none;--kirby-badge-elevation:0 5px 10px -10px rgba(28,28,28,0.3),0 0 5px 0 rgba(28,28,28,0.08);--kirby-badge-position:absolute;--kirby-badge-top:-8px;--kirby-badge-right:8px;--kirby-badge-z-index:2}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start:16px;--padding-end:16px}:host.chip-mode{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden}@media (pointer:coarse){:host.chip-mode{scrollbar-width:none}:host.chip-mode::-webkit-scrollbar{display:none}}ion-segment{display:inline-flex;width:auto;overflow:visible;contain:unset;--background:var(--kirby-white);border-radius:999px}ion-segment-button{position:relative;min-height:40px;font-weight:400;font-size:14px;text-transform:none;--border-radius:999px;--border-style:none;--background:none;--color:var(--kirby-white-contrast);--indicator-color:var(--kirby-black);--color-checked:var(--kirby-black-contrast);--color-hover:var(--kirby-black-tint);--indicator-box-shadow:none;--padding-start:24px;--padding-end:24px;--margin-bottom:0;--margin-end:0;--margin-start:0;--margin-top:0;margin:0}ion-segment-button:after{content:\"\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}.segment-btn-wrapper{position:relative}:host-context(.plt-desktop) ion-segment-button:focus-within{outline-color:-webkit-focus-ring-color;outline-style:auto}"]
8743
8753
  },] }
8744
8754
  ];
8755
+ /** @nocollapse */
8756
+ SegmentedControlComponent.ctorParameters = function () { return [
8757
+ { type: IconRegistryService }
8758
+ ]; };
8745
8759
  SegmentedControlComponent.propDecorators = {
8746
8760
  mode: [{ type: i0.Input }],
8747
8761
  _modeCssClass: [{ type: i0.HostBinding, args: ['class',] }],