@db-ux/ngx-core-components 4.7.0-tabs-34782eb → 4.7.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.
@@ -170,7 +170,7 @@ const getNotificationRole = ({ semantic, role, ariaLive }) => {
170
170
  }
171
171
  };
172
172
 
173
- const defaultProps$z = {};
173
+ const defaultProps$A = {};
174
174
  class DBAccordionItem {
175
175
  handleNameAttribute() {
176
176
  if (this._ref()?.nativeElement) {
@@ -327,7 +327,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
327
327
  </li> `, styles: [":host{display:contents}\n"] }]
328
328
  }], ctorParameters: () => [], propDecorators: { defaultOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultOpen", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], headlinePlain: [{ type: i0.Input, args: [{ isSignal: true, alias: "headlinePlain", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], toggle: [{ type: i0.Output, args: ["toggle"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
329
329
 
330
- const defaultProps$y = {};
330
+ const defaultProps$z = {};
331
331
  class DBAccordion {
332
332
  convertItems() {
333
333
  try {
@@ -622,7 +622,7 @@ const TESTING_VIEWPORTS = [{
622
622
  const DB_UX_LOCAL_STORAGE_FRAMEWORK = 'db-ux-framework';
623
623
  const DB_UX_LOCAL_STORAGE_MODE = 'db-ux-mode';
624
624
 
625
- const defaultProps$x = {};
625
+ const defaultProps$y = {};
626
626
  class DBBadge {
627
627
  constructor() {
628
628
  this.cls = cls;
@@ -742,7 +742,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
742
742
 
743
743
  const BadgePlacementList = ['inline', 'corner-top-left', 'corner-top-right', 'corner-center-left', 'corner-center-right', 'corner-bottom-left', 'corner-bottom-right'];
744
744
 
745
- const defaultProps$w = {};
745
+ const defaultProps$x = {};
746
746
  class DBBrand {
747
747
  constructor() {
748
748
  this.DEFAULT_ICON = DEFAULT_ICON;
@@ -827,7 +827,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
827
827
  </div> `, styles: [":host{display:contents}\n"] }]
828
828
  }], ctorParameters: () => [], propDecorators: { hideLogo: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideLogo", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
829
829
 
830
- const defaultProps$v = {};
830
+ const defaultProps$w = {};
831
831
  class DBButton {
832
832
  getButtonType() {
833
833
  if (this.type()) {
@@ -962,7 +962,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
962
962
  const ButtonVariantList = ['outlined', 'brand', 'filled', 'ghost'];
963
963
  const ButtonTypeList = ['button', 'reset', 'submit'];
964
964
 
965
- const defaultProps$u = {};
965
+ const defaultProps$v = {};
966
966
  class DBCard {
967
967
  handleClick(event) {
968
968
  if (this.click) {
@@ -1125,7 +1125,7 @@ const addValueResetEventListener = (element, props, resetFunction, signal) => {
1125
1125
  }, signal);
1126
1126
  };
1127
1127
 
1128
- const defaultProps$t = {};
1128
+ const defaultProps$u = {};
1129
1129
  class DBInfotext {
1130
1130
  constructor() {
1131
1131
  this.cls = cls;
@@ -1215,7 +1215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
1215
1215
  > `, styles: [":host{display:contents}\n"] }]
1216
1216
  }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], semantic: [{ type: i0.Input, args: [{ isSignal: true, alias: "semantic", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
1217
1217
 
1218
- const defaultProps$s = {};
1218
+ const defaultProps$t = {};
1219
1219
  class DBCheckbox {
1220
1220
  hasValidState() {
1221
1221
  return !!(this.validMessage() ?? this.validation() === "valid");
@@ -1595,7 +1595,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
1595
1595
  </div> `, styles: [":host{display:contents}\n"] }]
1596
1596
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { invalidMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalidMessage", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], showMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMessage", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], validMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "validMessage", required: false }] }], validation: [{ type: i0.Input, args: [{ isSignal: true, alias: "validation", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], showRequiredAsterisk: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRequiredAsterisk", required: false }] }], showLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabel", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedBy", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], messageIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageIcon", required: false }] }], change: [{ type: i0.Output, args: ["change"] }], blur: [{ type: i0.Output, args: ["blur"] }], focus: [{ type: i0.Output, args: ["focus"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
1597
1597
 
1598
- const defaultProps$r = {};
1598
+ const defaultProps$s = {};
1599
1599
  class DBCustomButton {
1600
1600
  constructor() {
1601
1601
  this.cls = cls;
@@ -2121,14 +2121,14 @@ const handleFixedPopover = (element, parent, placement) => {
2121
2121
  element.dataset['correctedPlacement'] = correctedPlacement;
2122
2122
  };
2123
2123
 
2124
- const defaultProps$q = { width: "fixed" };
2124
+ const defaultProps$r = { width: "fixed" };
2125
2125
  class DBCustomSelectDropdown {
2126
2126
  constructor() {
2127
2127
  this.cls = cls;
2128
2128
  this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : /* istanbul ignore next */ []));
2129
2129
  this.propOverrides = input(...(ngDevMode ? [undefined, { debugName: "propOverrides" }] : /* istanbul ignore next */ []));
2130
2130
  this.className = input(...(ngDevMode ? [undefined, { debugName: "className" }] : /* istanbul ignore next */ []));
2131
- this.width = input(defaultProps$q["width"], ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
2131
+ this.width = input(defaultProps$r["width"], ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
2132
2132
  this._ref = viewChild("_ref", ...(ngDevMode ? [{ debugName: "_ref" }] : /* istanbul ignore next */ []));
2133
2133
  }
2134
2134
  /**
@@ -2197,7 +2197,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
2197
2197
  </article> `, styles: [":host{display:contents}\n"] }]
2198
2198
  }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
2199
2199
 
2200
- const defaultProps$p = {};
2200
+ const defaultProps$q = {};
2201
2201
  class DBCustomSelectListItem {
2202
2202
  handleChange(event) {
2203
2203
  event.stopPropagation();
@@ -2383,7 +2383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
2383
2383
  </li> `, styles: [":host{display:contents}\n"] }]
2384
2384
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { isGroupTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "isGroupTitle", required: false }] }], showDivider: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDivider", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], groupTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupTitle", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], change: [{ type: i0.Output, args: ["change"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
2385
2385
 
2386
- const defaultProps$o = {};
2386
+ const defaultProps$p = {};
2387
2387
  class DBCustomSelectList {
2388
2388
  constructor() {
2389
2389
  this.cls = cls;
@@ -2464,7 +2464,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
2464
2464
  </div> `, styles: [":host{display:contents}\n"] }]
2465
2465
  }], ctorParameters: () => [], propDecorators: { multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
2466
2466
 
2467
- const defaultProps$n = {};
2467
+ const defaultProps$o = {};
2468
2468
  class DBInput {
2469
2469
  hasValidState() {
2470
2470
  return !!(this.validMessage() ?? this.validation() === "valid");
@@ -2944,7 +2944,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
2944
2944
  </div> `, styles: [":host{display:contents}\n"] }]
2945
2945
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { invalidMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalidMessage", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], dataListId: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataListId", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], showMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMessage", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], validMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "validMessage", required: false }] }], validation: [{ type: i0.Input, args: [{ isSignal: true, alias: "validation", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], minLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minLength", required: false }] }], maxLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLength", required: false }] }], pattern: [{ type: i0.Input, args: [{ isSignal: true, alias: "pattern", required: false }] }], dataList: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataList", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], showLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabel", required: false }] }], showIconLeading: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIconLeading", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], iconLeading: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconLeading", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconTrailing", required: false }] }], showRequiredAsterisk: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRequiredAsterisk", required: false }] }], showIconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIconTrailing", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], fieldSizing: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldSizing", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], accept: [{ type: i0.Input, args: [{ isSignal: true, alias: "accept", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], maxlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxlength", required: false }] }], minlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minlength", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], readOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readOnly", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], autofocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autofocus", required: false }] }], enterkeyhint: [{ type: i0.Input, args: [{ isSignal: true, alias: "enterkeyhint", required: false }] }], inputmode: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputmode", required: false }] }], ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedBy", required: false }] }], messageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageSize", required: false }] }], messageIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageIcon", required: false }] }], validMessageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "validMessageSize", required: false }] }], invalidMessageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalidMessageSize", required: false }] }], input: [{ type: i0.Output, args: ["input"] }], change: [{ type: i0.Output, args: ["change"] }], blur: [{ type: i0.Output, args: ["blur"] }], focus: [{ type: i0.Output, args: ["focus"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
2946
2946
 
2947
- const defaultProps$m = {};
2947
+ const defaultProps$n = {};
2948
2948
  class DBTooltip {
2949
2949
  handleClick(event) {
2950
2950
  event.stopPropagation();
@@ -3012,7 +3012,7 @@ class DBTooltip {
3012
3012
  this.width = input(...(ngDevMode ? [undefined, { debugName: "width" }] : /* istanbul ignore next */ []));
3013
3013
  this.showArrow = input(...(ngDevMode ? [undefined, { debugName: "showArrow" }] : /* istanbul ignore next */ []));
3014
3014
  this._ref = viewChild("_ref", ...(ngDevMode ? [{ debugName: "_ref" }] : /* istanbul ignore next */ []));
3015
- this._id = signal("tooltip-" + uuid(), ...(ngDevMode ? [{ debugName: "_id" }] : /* istanbul ignore next */ []));
3015
+ this._id = signal(DEFAULT_ID, ...(ngDevMode ? [{ debugName: "_id" }] : /* istanbul ignore next */ []));
3016
3016
  this.initialized = signal(false, ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
3017
3017
  this._documentScrollListenerCallbackId = signal(undefined, ...(ngDevMode ? [{ debugName: "_documentScrollListenerCallbackId" }] : /* istanbul ignore next */ []));
3018
3018
  this._observer = signal(undefined, ...(ngDevMode ? [{ debugName: "_observer" }] : /* istanbul ignore next */ []));
@@ -3152,7 +3152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
3152
3152
  ></i> `, styles: [":host{display:contents}\n"] }]
3153
3153
  }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], emphasis: [{ type: i0.Input, args: [{ isSignal: true, alias: "emphasis", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }], animation: [{ type: i0.Input, args: [{ isSignal: true, alias: "animation", required: false }] }], delay: [{ type: i0.Input, args: [{ isSignal: true, alias: "delay", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], showArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "showArrow", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
3154
3154
 
3155
- const defaultProps$l = {};
3155
+ const defaultProps$m = {};
3156
3156
  class DBTag {
3157
3157
  handleRemove(event) {
3158
3158
  if (!event)
@@ -3292,7 +3292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
3292
3292
  </div> `, styles: [":host{display:contents}\n"] }]
3293
3293
  }], ctorParameters: () => [], propDecorators: { removeButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "removeButton", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], semantic: [{ type: i0.Input, args: [{ isSignal: true, alias: "semantic", required: false }] }], emphasis: [{ type: i0.Input, args: [{ isSignal: true, alias: "emphasis", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], showCheckState: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCheckState", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], noText: [{ type: i0.Input, args: [{ isSignal: true, alias: "noText", required: false }] }], overflow: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflow", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], behavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "behavior", required: false }] }], remove: [{ type: i0.Output, args: ["remove"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
3294
3294
 
3295
- const defaultProps$k = {
3295
+ const defaultProps$l = {
3296
3296
  clearSelectionText: "Clear selection",
3297
3297
  showClearSelection: true,
3298
3298
  };
@@ -3792,8 +3792,8 @@ class DBCustomSelect {
3792
3792
  this.loadingText = input(...(ngDevMode ? [undefined, { debugName: "loadingText" }] : /* istanbul ignore next */ []));
3793
3793
  this.noResultsText = input(...(ngDevMode ? [undefined, { debugName: "noResultsText" }] : /* istanbul ignore next */ []));
3794
3794
  this.mobileCloseButtonText = input(...(ngDevMode ? [undefined, { debugName: "mobileCloseButtonText" }] : /* istanbul ignore next */ []));
3795
- this.showClearSelection = input(defaultProps$k["showClearSelection"], ...(ngDevMode ? [{ debugName: "showClearSelection" }] : /* istanbul ignore next */ []));
3796
- this.clearSelectionText = input(defaultProps$k["clearSelectionText"], ...(ngDevMode ? [{ debugName: "clearSelectionText" }] : /* istanbul ignore next */ []));
3795
+ this.showClearSelection = input(defaultProps$l["showClearSelection"], ...(ngDevMode ? [{ debugName: "showClearSelection" }] : /* istanbul ignore next */ []));
3796
+ this.clearSelectionText = input(defaultProps$l["clearSelectionText"], ...(ngDevMode ? [{ debugName: "clearSelectionText" }] : /* istanbul ignore next */ []));
3797
3797
  this.placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
3798
3798
  this.messageIcon = input(...(ngDevMode ? [undefined, { debugName: "messageIcon" }] : /* istanbul ignore next */ []));
3799
3799
  this.amountChange = output();
@@ -4631,7 +4631,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
4631
4631
 
4632
4632
  const CustomSelectDropdownWidthList = ['fixed', 'auto', 'full'];
4633
4633
 
4634
- const defaultProps$j = {};
4634
+ const defaultProps$k = {};
4635
4635
  class DBCustomSelectFormField {
4636
4636
  constructor() {
4637
4637
  this.cls = cls;
@@ -4706,7 +4706,7 @@ const CustomSelectListItemTypeList = ['checkbox', 'radio'];
4706
4706
 
4707
4707
  const SelectedTypeList = ['amount', 'text', 'tag'];
4708
4708
 
4709
- const defaultProps$i = {};
4709
+ const defaultProps$j = {};
4710
4710
  class DBDivider {
4711
4711
  constructor() {
4712
4712
  this.cls = cls;
@@ -4788,7 +4788,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
4788
4788
  const DividerMarginList = ['none', '_'];
4789
4789
  const DividerVariantList = ['horizontal', 'vertical'];
4790
4790
 
4791
- const defaultProps$h = {};
4791
+ const defaultProps$i = {};
4792
4792
  class DBDrawer {
4793
4793
  handleClose(event, forceClose) {
4794
4794
  if (!event)
@@ -5196,7 +5196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
5196
5196
  }]
5197
5197
  }] });
5198
5198
 
5199
- const defaultProps$g = {};
5199
+ const defaultProps$h = {};
5200
5200
  class DBHeader {
5201
5201
  handleToggle(event) {
5202
5202
  if (event && event.stopPropagation) {
@@ -5425,7 +5425,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
5425
5425
  args: [SecondaryActionDirective, { read: TemplateRef }]
5426
5426
  }], forceMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "forceMobile", required: false }] }], drawerOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "drawerOpen", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], closeButtonId: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeButtonId", required: false }] }], closeButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeButtonText", required: false }] }], burgerMenuLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "burgerMenuLabel", required: false }] }], toggle: [{ type: i0.Output, args: ["toggle"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
5427
5427
 
5428
- const defaultProps$f = {};
5428
+ const defaultProps$g = {};
5429
5429
  class DBIcon {
5430
5430
  constructor() {
5431
5431
  this.cls = cls;
@@ -5518,7 +5518,7 @@ const InputTypeList = ['color', 'date', 'datetime-local', 'email', 'file',
5518
5518
  // TODO: move this to own component
5519
5519
  'search', 'tel', 'text', 'time', 'url', 'week'];
5520
5520
 
5521
- const defaultProps$e = {};
5521
+ const defaultProps$f = {};
5522
5522
  class DBLink {
5523
5523
  constructor() {
5524
5524
  this.cls = cls;
@@ -5636,7 +5636,7 @@ const LinkVariantList = ['adaptive', 'brand', 'inline'];
5636
5636
  const LinkSizeList = ['medium', 'small'];
5637
5637
  const LinkContentList = ['external', 'internal'];
5638
5638
 
5639
- const defaultProps$d = {};
5639
+ const defaultProps$e = {};
5640
5640
  class DBNavigation {
5641
5641
  constructor() {
5642
5642
  this.cls = cls;
@@ -5720,7 +5720,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
5720
5720
  }]
5721
5721
  }] });
5722
5722
 
5723
- const defaultProps$c = {};
5723
+ const defaultProps$d = {};
5724
5724
  class DBNavigationItem {
5725
5725
  handleNavigationItemClick(event) {
5726
5726
  if (event?.target?.nodeName === "A") {
@@ -5963,7 +5963,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
5963
5963
  args: [NavigationContentDirective, { read: TemplateRef }]
5964
5964
  }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], subNavigationExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "subNavigationExpanded", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], backButtonId: [{ type: i0.Input, args: [{ isSignal: true, alias: "backButtonId", required: false }] }], backButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "backButtonText", required: false }] }], click: [{ type: i0.Output, args: ["click"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
5965
5965
 
5966
- const defaultProps$b = {};
5966
+ const defaultProps$c = {};
5967
5967
  class DBNotification {
5968
5968
  handleClose(event) {
5969
5969
  if (!event)
@@ -6135,7 +6135,7 @@ const NotificationVariantList = ['docked', 'standalone', 'overlay'];
6135
6135
  const NotificationLinkVariantList = ['block', 'inline'];
6136
6136
  const NotificationAriaLiveList = ['assertive', 'polite', 'off'];
6137
6137
 
6138
- const defaultProps$a = {};
6138
+ const defaultProps$b = {};
6139
6139
  class DBPage {
6140
6140
  constructor() {
6141
6141
  this.cls = cls;
@@ -6251,7 +6251,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
6251
6251
  const PageVariantList = ['auto', 'fixed'];
6252
6252
  const PageDocumentOverflowList = ['hidden', 'auto'];
6253
6253
 
6254
- const defaultProps$9 = {};
6254
+ const defaultProps$a = {};
6255
6255
  class DBPopover {
6256
6256
  handleEscape(event) {
6257
6257
  if (!event || event.key === "Escape") {
@@ -6476,7 +6476,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
6476
6476
  </div> `, styles: [":host{display:contents}\n"] }]
6477
6477
  }], ctorParameters: () => [], propDecorators: { placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], spacing: [{ type: i0.Input, args: [{ isSignal: true, alias: "spacing", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], animation: [{ type: i0.Input, args: [{ isSignal: true, alias: "animation", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], delay: [{ type: i0.Input, args: [{ isSignal: true, alias: "delay", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
6478
6478
 
6479
- const defaultProps$8 = {};
6479
+ const defaultProps$9 = {};
6480
6480
  class DBRadio {
6481
6481
  handleInput(event, reset) {
6482
6482
  if (this.input) {
@@ -6725,7 +6725,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
6725
6725
  > `, styles: [":host{display:contents}\n"] }]
6726
6726
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], showLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabel", required: false }] }], showRequiredAsterisk: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRequiredAsterisk", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], validation: [{ type: i0.Input, args: [{ isSignal: true, alias: "validation", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], input: [{ type: i0.Output, args: ["input"] }], change: [{ type: i0.Output, args: ["change"] }], blur: [{ type: i0.Output, args: ["blur"] }], focus: [{ type: i0.Output, args: ["focus"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
6727
6727
 
6728
- const defaultProps$7 = {};
6728
+ const defaultProps$8 = {};
6729
6729
  class DBSection {
6730
6730
  constructor() {
6731
6731
  this.cls = cls;
@@ -6802,7 +6802,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
6802
6802
  </section> `, styles: [":host{display:contents}\n"] }]
6803
6803
  }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], spacing: [{ type: i0.Input, args: [{ isSignal: true, alias: "spacing", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
6804
6804
 
6805
- const defaultProps$6 = {};
6805
+ const defaultProps$7 = {};
6806
6806
  class DBSelect {
6807
6807
  hasValidState() {
6808
6808
  return !!(this.validMessage() ?? this.validation() === "valid");
@@ -7308,7 +7308,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
7308
7308
  </div> `, styles: [":host{display:contents}\n"] }]
7309
7309
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { invalidMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalidMessage", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], showMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMessage", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], validMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "validMessage", required: false }] }], validation: [{ type: i0.Input, args: [{ isSignal: true, alias: "validation", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], showEmptyOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "showEmptyOption", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], showLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabel", required: false }] }], showRequiredAsterisk: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRequiredAsterisk", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedBy", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], messageIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageIcon", required: false }] }], click: [{ type: i0.Output, args: ["click"] }], input: [{ type: i0.Output, args: ["input"] }], change: [{ type: i0.Output, args: ["change"] }], blur: [{ type: i0.Output, args: ["blur"] }], focus: [{ type: i0.Output, args: ["focus"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
7310
7310
 
7311
- const defaultProps$5 = {};
7311
+ const defaultProps$6 = {};
7312
7312
  class DBStack {
7313
7313
  constructor() {
7314
7314
  this.cls = cls;
@@ -7403,7 +7403,7 @@ const StackDirectionList = ['row', 'column'];
7403
7403
  const StackAlignmentList = ['stretch', 'start', 'end', 'center'];
7404
7404
  const StackJustifyContentList = ['space-between', 'start', 'end', 'center'];
7405
7405
 
7406
- const defaultProps$4 = {};
7406
+ const defaultProps$5 = {};
7407
7407
  class DBSwitch {
7408
7408
  hasValidState() {
7409
7409
  return !!(this.validMessage() ?? this.validation() === "valid");
@@ -7779,100 +7779,89 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
7779
7779
  </div> `, styles: [":host{display:contents}\n"] }]
7780
7780
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { invalidMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalidMessage", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], validation: [{ type: i0.Input, args: [{ isSignal: true, alias: "validation", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], showMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMessage", required: false }] }], validMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "validMessage", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], visualAid: [{ type: i0.Input, args: [{ isSignal: true, alias: "visualAid", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], showLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabel", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], showRequiredAsterisk: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRequiredAsterisk", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], iconLeading: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconLeading", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconTrailing", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], messageIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "messageIcon", required: false }] }], change: [{ type: i0.Output, args: ["change"] }], blur: [{ type: i0.Output, args: ["blur"] }], focus: [{ type: i0.Output, args: ["focus"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
7781
7781
 
7782
- const defaultProps$3 = {};
7782
+ const defaultProps$4 = {};
7783
7783
  class DBTabItem {
7784
- getCurrentTabIndex() {
7785
- return this.tabIndex() !== undefined
7786
- ? Number(this.tabIndex())
7787
- : this.internalTabIndex();
7784
+ setSelectedOnChange(event) {
7785
+ event.stopPropagation();
7786
+ this._selected.set(event.target === this._ref().nativeElement);
7788
7787
  }
7789
- handleClick(event) {
7790
- if (event && event.preventDefault) {
7791
- event.preventDefault();
7792
- }
7793
- if (!getBoolean(this.disabled()) && this.click.emit()) {
7794
- this.click.emit(event);
7788
+ handleNameAttribute() {
7789
+ if (this._ref()?.nativeElement) {
7790
+ const setAttribute = this._ref()?.nativeElement.setAttribute;
7791
+ this._ref().nativeElement.setAttribute = (attribute, value) => {
7792
+ setAttribute.call(this._ref()?.nativeElement, attribute, value);
7793
+ if (attribute === "name") {
7794
+ this._name.set(value);
7795
+ }
7796
+ };
7795
7797
  }
7796
7798
  }
7797
- checkTruncation() {
7798
- if (this._labelRef()?.nativeElement) {
7799
- const scrollWidth = Math.ceil(this._labelRef()?.nativeElement.scrollWidth);
7800
- const clientWidth = Math.ceil(this._labelRef()?.nativeElement.clientWidth);
7801
- const truncated = scrollWidth > clientWidth + 1;
7802
- if (this.isTruncated() !== truncated) {
7803
- this.isTruncated.set(truncated);
7804
- if (!truncated && this._ref()?.nativeElement) {
7805
- if (this._ref()?.nativeElement.hasAttribute("data-has-tooltip")) {
7806
- this._ref()?.nativeElement.removeAttribute("data-has-tooltip");
7807
- }
7808
- if (this._ref()?.nativeElement.hasAttribute("aria-describedby")) {
7809
- this._ref()?.nativeElement.removeAttribute("aria-describedby");
7810
- }
7811
- }
7812
- }
7813
- this.tooltipText.set(truncated
7814
- ? this.label() ||
7815
- this._labelRef()?.nativeElement.innerText ||
7816
- this._labelRef()?.nativeElement.textContent ||
7817
- ""
7818
- : "");
7799
+ handleChange(event) {
7800
+ if (this.change) {
7801
+ this.change.emit(event);
7819
7802
  }
7803
+ handleFrameworkEventAngular(this, event, "checked");
7820
7804
  }
7821
- constructor() {
7805
+ constructor(renderer) {
7806
+ this.renderer = renderer;
7822
7807
  this.cls = cls;
7808
+ this.getBooleanAsString = getBooleanAsString;
7823
7809
  this.getBoolean = getBoolean;
7824
7810
  this.active = input(...(ngDevMode ? [undefined, { debugName: "active" }] : /* istanbul ignore next */ []));
7825
- this.label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
7826
- this.showIcon = input(...(ngDevMode ? [undefined, { debugName: "showIcon" }] : /* istanbul ignore next */ []));
7827
- this.icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
7828
- this.tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
7829
- this.disabled = model(...(ngDevMode ? [undefined, { debugName: "disabled" }] : /* istanbul ignore next */ []));
7811
+ this.name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : /* istanbul ignore next */ []));
7830
7812
  this.className = input(...(ngDevMode ? [undefined, { debugName: "className" }] : /* istanbul ignore next */ []));
7831
- this.noText = input(...(ngDevMode ? [undefined, { debugName: "noText" }] : /* istanbul ignore next */ []));
7832
- this.ariaControls = input(...(ngDevMode ? [undefined, { debugName: "ariaControls" }] : /* istanbul ignore next */ []));
7833
7813
  this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : /* istanbul ignore next */ []));
7834
- this.value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
7835
- this.showIconLeading = input(...(ngDevMode ? [undefined, { debugName: "showIconLeading" }] : /* istanbul ignore next */ []));
7814
+ this.propOverrides = input(...(ngDevMode ? [undefined, { debugName: "propOverrides" }] : /* istanbul ignore next */ []));
7836
7815
  this.iconLeading = input(...(ngDevMode ? [undefined, { debugName: "iconLeading" }] : /* istanbul ignore next */ []));
7837
- this.showIconTrailing = input(...(ngDevMode ? [undefined, { debugName: "showIconTrailing" }] : /* istanbul ignore next */ []));
7816
+ this.icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
7838
7817
  this.iconTrailing = input(...(ngDevMode ? [undefined, { debugName: "iconTrailing" }] : /* istanbul ignore next */ []));
7839
- this.click = output();
7818
+ this.showIconLeading = input(...(ngDevMode ? [undefined, { debugName: "showIconLeading" }] : /* istanbul ignore next */ []));
7819
+ this.showIcon = input(...(ngDevMode ? [undefined, { debugName: "showIcon" }] : /* istanbul ignore next */ []));
7820
+ this.showIconTrailing = input(...(ngDevMode ? [undefined, { debugName: "showIconTrailing" }] : /* istanbul ignore next */ []));
7821
+ this.noText = input(...(ngDevMode ? [undefined, { debugName: "noText" }] : /* istanbul ignore next */ []));
7822
+ this.disabled = model(...(ngDevMode ? [undefined, { debugName: "disabled" }] : /* istanbul ignore next */ []));
7823
+ this.checked = model(...(ngDevMode ? [undefined, { debugName: "checked" }] : /* istanbul ignore next */ []));
7824
+ this.label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
7825
+ this.change = output();
7840
7826
  this._ref = viewChild("_ref", ...(ngDevMode ? [{ debugName: "_ref" }] : /* istanbul ignore next */ []));
7841
- this._labelRef = viewChild("_labelRef", ...(ngDevMode ? [{ debugName: "_labelRef" }] : /* istanbul ignore next */ []));
7827
+ this._selected = signal(false, ...(ngDevMode ? [{ debugName: "_selected" }] : /* istanbul ignore next */ []));
7828
+ this._name = signal(undefined, ...(ngDevMode ? [{ debugName: "_name" }] : /* istanbul ignore next */ []));
7842
7829
  this.initialized = signal(false, ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
7843
- this.internalActive = signal(false, ...(ngDevMode ? [{ debugName: "internalActive" }] : /* istanbul ignore next */ []));
7844
- this.internalTabIndex = signal(-1, ...(ngDevMode ? [{ debugName: "internalTabIndex" }] : /* istanbul ignore next */ []));
7845
- this.isTruncated = signal(false, ...(ngDevMode ? [{ debugName: "isTruncated" }] : /* istanbul ignore next */ []));
7846
- this.tooltipText = signal("", ...(ngDevMode ? [{ debugName: "tooltipText" }] : /* istanbul ignore next */ []));
7847
- this._resizeObserver = signal(null, ...(ngDevMode ? [{ debugName: "_resizeObserver" }] : /* istanbul ignore next */ []));
7848
- this._ariaSelectedListener = signal(null, ...(ngDevMode ? [{ debugName: "_ariaSelectedListener" }] : /* istanbul ignore next */ []));
7830
+ this._listenerAdded = signal(false, ...(ngDevMode ? [{ debugName: "_listenerAdded" }] : /* istanbul ignore next */ []));
7831
+ this.boundSetSelectedOnChange = signal(undefined, ...(ngDevMode ? [{ debugName: "boundSetSelectedOnChange" }] : /* istanbul ignore next */ []));
7849
7832
  if (typeof window !== "undefined") {
7850
7833
  effect(() => {
7851
7834
  // --- Mitosis: Workaround to make sure the effect() is triggered ---
7852
- this.active();
7835
+ this._ref();
7836
+ this.initialized();
7837
+ this.boundSetSelectedOnChange();
7853
7838
  // ---
7854
- if (this.active() !== undefined) {
7855
- this.internalActive.set(getBoolean(this.active()) || false);
7839
+ if (this._ref()?.nativeElement &&
7840
+ this.initialized() &&
7841
+ this.boundSetSelectedOnChange()) {
7842
+ this.initialized.set(false);
7843
+ // deselect this tab when another tab in tablist is selected
7844
+ if (!this._listenerAdded()) {
7845
+ this._ref()
7846
+ ?.nativeElement.closest("[role=tablist]")
7847
+ ?.addEventListener("change", this.boundSetSelectedOnChange());
7848
+ this._listenerAdded.set(true);
7849
+ }
7850
+ // Initialize selected state from either active prop (set by parent) or checked attribute
7851
+ if (this.active() || this._ref()?.nativeElement.checked) {
7852
+ this._selected.set(true);
7853
+ this._ref()?.nativeElement.click();
7854
+ }
7856
7855
  }
7857
7856
  }, {
7858
7857
  // Enable writing to signals inside effects
7859
7858
  });
7860
7859
  effect(() => {
7861
- if (this._ref()?.nativeElement) {
7862
- const isDisabled = getBoolean(this.disabled());
7863
- const disabledStr = isDisabled ? "true" : "false";
7864
- if (this._ref()?.nativeElement?.getAttribute("aria-disabled") !==
7865
- disabledStr) {
7866
- this._ref()?.nativeElement?.setAttribute("aria-disabled", disabledStr);
7867
- }
7868
- if (!this.isTruncated()) {
7869
- if (this._ref()?.nativeElement.hasAttribute("data-has-tooltip")) {
7870
- this._ref()?.nativeElement.removeAttribute("data-has-tooltip");
7871
- }
7872
- if (this._ref()?.nativeElement.hasAttribute("aria-describedby")) {
7873
- this._ref()?.nativeElement.removeAttribute("aria-describedby");
7874
- }
7875
- }
7860
+ // --- Mitosis: Workaround to make sure the effect() is triggered ---
7861
+ this.name();
7862
+ // ---
7863
+ if (this.name()) {
7864
+ this._name.set(this.name());
7876
7865
  }
7877
7866
  }, {
7878
7867
  // Enable writing to signals inside effects
@@ -7915,159 +7904,103 @@ class DBTabItem {
7915
7904
  }
7916
7905
  }
7917
7906
  }
7907
+ writeValue(value) {
7908
+ this.checked.set(!!value);
7909
+ if (this._ref()?.nativeElement) {
7910
+ this.renderer.setProperty(this._ref()?.nativeElement, 'checked', !!value);
7911
+ }
7912
+ }
7913
+ propagateChange(_) { }
7914
+ registerOnChange(onChange) {
7915
+ this.propagateChange = onChange;
7916
+ }
7917
+ registerOnTouched(onTouched) {
7918
+ }
7919
+ setDisabledState(disabled) {
7920
+ this.disabled.set(disabled);
7921
+ }
7918
7922
  ngAfterViewInit() {
7919
7923
  if (typeof window !== "undefined") {
7920
7924
  const element = this._ref()?.nativeElement;
7921
7925
  this.enableAttributePassing(element, "db-tab-item");
7922
- this.internalActive.set(getBoolean(this.active()) || false);
7923
- this.internalTabIndex.set(getBoolean(this.active()) ? 0 : -1);
7924
- if (typeof window !== "undefined") {
7925
- const setupObserverAndCheck = () => {
7926
- requestAnimationFrame(() => {
7927
- this.checkTruncation();
7928
- const labelEl = this._labelRef()?.nativeElement;
7929
- if (labelEl && !labelEl.dataset.label) {
7930
- labelEl.dataset.label =
7931
- this.label() || labelEl.innerText || labelEl.textContent || "";
7932
- }
7933
- if (this._labelRef()?.nativeElement) {
7934
- const resizeObserver = new ResizeObserver(() => {
7935
- requestAnimationFrame(() => {
7936
- this.checkTruncation();
7937
- });
7938
- });
7939
- resizeObserver.observe(this._labelRef()?.nativeElement);
7940
- this._resizeObserver.set(resizeObserver);
7941
- }
7942
- });
7943
- };
7944
- const hasIcon = this.showIcon() && this.icon();
7945
- if (hasIcon && document.fonts?.ready) {
7946
- document.fonts.ready.then(setupObserverAndCheck);
7947
- }
7948
- else {
7949
- setupObserverAndCheck();
7950
- }
7951
- }
7952
- if (this._ref()?.nativeElement) {
7953
- const listener = (event) => {
7954
- this.internalActive.set(event.detail.selected);
7955
- if (this.tabIndex() === undefined) {
7956
- if (event.detail.tabIndex !== undefined) {
7957
- this.internalTabIndex.set(event.detail.tabIndex);
7958
- }
7959
- else {
7960
- this.internalTabIndex.set(event.detail.selected ? 0 : -1);
7961
- }
7962
- }
7963
- };
7964
- this._ariaSelectedListener.set({
7965
- fn: listener,
7966
- });
7967
- this._ref()?.nativeElement.addEventListener("aria-selected-changed", listener);
7968
- }
7926
+ this.boundSetSelectedOnChange.set(this.setSelectedOnChange.bind(this));
7927
+ this.initialized.set(true);
7969
7928
  }
7970
7929
  }
7971
7930
  ngOnDestroy() {
7972
- this._resizeObserver()?.disconnect();
7973
- const _listener = this._ariaSelectedListener();
7974
- if (this._ref()?.nativeElement && _listener) {
7975
- this._ref()?.nativeElement.removeEventListener("aria-selected-changed", _listener.fn);
7931
+ if (this._listenerAdded() &&
7932
+ this._ref()?.nativeElement &&
7933
+ this.boundSetSelectedOnChange()) {
7934
+ this._ref()
7935
+ ?.nativeElement.closest("[role=tablist]")
7936
+ ?.removeEventListener("change", this.boundSetSelectedOnChange());
7937
+ this._listenerAdded.set(false);
7976
7938
  }
7977
7939
  }
7978
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DBTabItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7979
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: DBTabItem, isStandalone: true, selector: "db-tab-item", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, noText: { classPropertyName: "noText", publicName: "noText", isSignal: true, isRequired: false, transformFunction: null }, ariaControls: { classPropertyName: "ariaControls", publicName: "ariaControls", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, showIconLeading: { classPropertyName: "showIconLeading", publicName: "showIconLeading", isSignal: true, isRequired: false, transformFunction: null }, iconLeading: { classPropertyName: "iconLeading", publicName: "iconLeading", isSignal: true, isRequired: false, transformFunction: null }, showIconTrailing: { classPropertyName: "showIconTrailing", publicName: "showIconTrailing", isSignal: true, isRequired: false, transformFunction: null }, iconTrailing: { classPropertyName: "iconTrailing", publicName: "iconTrailing", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", click: "click" }, viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true, isSignal: true }, { propertyName: "_labelRef", first: true, predicate: ["_labelRef"], descendants: true, isSignal: true }], ngImport: i0, template: `<button
7980
- type="button"
7981
- role="tab"
7982
- title=""
7983
- #_ref
7984
- [class]="cls('db-tab-item', className())"
7985
- [attr.aria-label]="getBoolean(noText()) ? label() : undefined"
7986
- [attr.aria-selected]="(active() !== undefined ? getBoolean(active()) : internalActive()) ? 'true' : 'false'"
7987
- [attr.aria-controls]="ariaControls()"
7988
- [disabled]="getBoolean(disabled()) ? true : undefined"
7989
- [attr.tabIndex]="getCurrentTabIndex()"
7990
- [attr.id]="id()"
7991
- [attr.data-active]="active() !== undefined ? getBoolean(active()) : internalActive()"
7992
- [attr.data-no-text]="getBoolean(noText()) ? 'true' : undefined"
7993
- [attr.data-value]="value()"
7994
- (click)="handleClick($event)"
7995
- >
7996
- @if(!noText()){
7997
- <span
7998
- class="db-tab-label"
7999
- title=""
8000
- #_labelRef
8001
- [attr.data-icon]="getBoolean(showIconLeading() ?? showIcon()) ? iconLeading() ?? icon() : undefined"
8002
- [attr.data-icon-trailing]="getBoolean(showIconTrailing()) ? iconTrailing() : undefined"
8003
- >@if(label()){{{label()}}} @if(!label()){
8004
- <ng-content> </ng-content>
8005
- }</span
8006
- >
8007
- } @if(getBoolean(noText())){
8008
- <span
8009
- class="db-tab-label"
8010
- aria-hidden="true"
8011
- [attr.data-icon]="getBoolean(showIconLeading() ?? showIcon()) ? iconLeading() ?? icon() : undefined"
8012
- ></span>
8013
- } @if(isTruncated() && tooltipText()){
8014
- <db-tooltip placement="right">{{tooltipText()}}</db-tooltip>
8015
- }
8016
- </button> `, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DBTooltip, selector: "db-tooltip", inputs: ["id", "propOverrides", "variant", "placement", "className", "emphasis", "wrap", "animation", "delay", "width", "showArrow"] }] }); }
7940
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DBTabItem, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
7941
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: DBTabItem, isStandalone: true, selector: "db-tab-item", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, propOverrides: { classPropertyName: "propOverrides", publicName: "propOverrides", isSignal: true, isRequired: false, transformFunction: null }, iconLeading: { classPropertyName: "iconLeading", publicName: "iconLeading", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconTrailing: { classPropertyName: "iconTrailing", publicName: "iconTrailing", isSignal: true, isRequired: false, transformFunction: null }, showIconLeading: { classPropertyName: "showIconLeading", publicName: "showIconLeading", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, showIconTrailing: { classPropertyName: "showIconTrailing", publicName: "showIconTrailing", isSignal: true, isRequired: false, transformFunction: null }, noText: { classPropertyName: "noText", publicName: "noText", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", checked: "checkedChange", change: "change" }, providers: [{
7942
+ provide: NG_VALUE_ACCESSOR,
7943
+ useExisting: DBTabItem,
7944
+ multi: true
7945
+ }], viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true, isSignal: true }], ngImport: i0, template: `<li role="none" [class]="cls('db-tab-item', className())">
7946
+ <label
7947
+ [attr.for]="id() ?? propOverrides()?.id"
7948
+ [attr.data-icon]="iconLeading() ?? icon()"
7949
+ [attr.data-icon-trailing]="iconTrailing()"
7950
+ [attr.data-show-icon]="getBooleanAsString(showIconLeading() ?? showIcon())"
7951
+ [attr.data-show-icon-trailing]="getBooleanAsString(showIconTrailing())"
7952
+ [attr.data-no-text]="getBooleanAsString(noText())"
7953
+ ><input
7954
+ type="radio"
7955
+ role="tab"
7956
+ [disabled]="getBoolean(disabled(), 'disabled')"
7957
+ [attr.aria-selected]="_selected()"
7958
+ [attr.checked]="getBoolean(checked(), 'checked')"
7959
+ #_ref
7960
+ [attr.name]="_name()"
7961
+ [attr.id]="id() ?? propOverrides()?.id"
7962
+ (input)="handleChange($event)" />
7963
+ @if(label()){{{label()}}} <ng-content></ng-content
7964
+ ></label>
7965
+ </li> `, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
8017
7966
  }
8018
7967
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DBTabItem, decorators: [{
8019
7968
  type: Component,
8020
- args: [{ selector: "db-tab-item", standalone: true, imports: [CommonModule, DBTooltip], template: `<button
8021
- type="button"
8022
- role="tab"
8023
- title=""
8024
- #_ref
8025
- [class]="cls('db-tab-item', className())"
8026
- [attr.aria-label]="getBoolean(noText()) ? label() : undefined"
8027
- [attr.aria-selected]="(active() !== undefined ? getBoolean(active()) : internalActive()) ? 'true' : 'false'"
8028
- [attr.aria-controls]="ariaControls()"
8029
- [disabled]="getBoolean(disabled()) ? true : undefined"
8030
- [attr.tabIndex]="getCurrentTabIndex()"
8031
- [attr.id]="id()"
8032
- [attr.data-active]="active() !== undefined ? getBoolean(active()) : internalActive()"
8033
- [attr.data-no-text]="getBoolean(noText()) ? 'true' : undefined"
8034
- [attr.data-value]="value()"
8035
- (click)="handleClick($event)"
8036
- >
8037
- @if(!noText()){
8038
- <span
8039
- class="db-tab-label"
8040
- title=""
8041
- #_labelRef
8042
- [attr.data-icon]="getBoolean(showIconLeading() ?? showIcon()) ? iconLeading() ?? icon() : undefined"
8043
- [attr.data-icon-trailing]="getBoolean(showIconTrailing()) ? iconTrailing() : undefined"
8044
- >@if(label()){{{label()}}} @if(!label()){
8045
- <ng-content> </ng-content>
8046
- }</span
8047
- >
8048
- } @if(getBoolean(noText())){
8049
- <span
8050
- class="db-tab-label"
8051
- aria-hidden="true"
8052
- [attr.data-icon]="getBoolean(showIconLeading() ?? showIcon()) ? iconLeading() ?? icon() : undefined"
8053
- ></span>
8054
- } @if(isTruncated() && tooltipText()){
8055
- <db-tooltip placement="right">{{tooltipText()}}</db-tooltip>
8056
- }
8057
- </button> `, styles: [":host{display:contents}\n"] }]
8058
- }], ctorParameters: () => [], propDecorators: { active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], noText: [{ type: i0.Input, args: [{ isSignal: true, alias: "noText", required: false }] }], ariaControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaControls", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], showIconLeading: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIconLeading", required: false }] }], iconLeading: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconLeading", required: false }] }], showIconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIconTrailing", required: false }] }], iconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconTrailing", required: false }] }], click: [{ type: i0.Output, args: ["click"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }], _labelRef: [{ type: i0.ViewChild, args: ["_labelRef", { isSignal: true }] }] } });
7969
+ args: [{ providers: [{
7970
+ provide: NG_VALUE_ACCESSOR,
7971
+ useExisting: DBTabItem,
7972
+ multi: true
7973
+ }], selector: "db-tab-item", standalone: true, imports: [CommonModule], template: `<li role="none" [class]="cls('db-tab-item', className())">
7974
+ <label
7975
+ [attr.for]="id() ?? propOverrides()?.id"
7976
+ [attr.data-icon]="iconLeading() ?? icon()"
7977
+ [attr.data-icon-trailing]="iconTrailing()"
7978
+ [attr.data-show-icon]="getBooleanAsString(showIconLeading() ?? showIcon())"
7979
+ [attr.data-show-icon-trailing]="getBooleanAsString(showIconTrailing())"
7980
+ [attr.data-no-text]="getBooleanAsString(noText())"
7981
+ ><input
7982
+ type="radio"
7983
+ role="tab"
7984
+ [disabled]="getBoolean(disabled(), 'disabled')"
7985
+ [attr.aria-selected]="_selected()"
7986
+ [attr.checked]="getBoolean(checked(), 'checked')"
7987
+ #_ref
7988
+ [attr.name]="_name()"
7989
+ [attr.id]="id() ?? propOverrides()?.id"
7990
+ (input)="handleChange($event)" />
7991
+ @if(label()){{{label()}}} <ng-content></ng-content
7992
+ ></label>
7993
+ </li> `, styles: [":host{display:contents}\n"] }]
7994
+ }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], iconLeading: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconLeading", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconTrailing", required: false }] }], showIconLeading: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIconLeading", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], showIconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIconTrailing", required: false }] }], noText: [{ type: i0.Input, args: [{ isSignal: true, alias: "noText", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], change: [{ type: i0.Output, args: ["change"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
8059
7995
 
8060
- const defaultProps$2 = {};
7996
+ const defaultProps$3 = {};
8061
7997
  class DBTabList {
8062
7998
  constructor() {
8063
7999
  this.cls = cls;
8064
8000
  this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : /* istanbul ignore next */ []));
8001
+ this.propOverrides = input(...(ngDevMode ? [undefined, { debugName: "propOverrides" }] : /* istanbul ignore next */ []));
8065
8002
  this.className = input(...(ngDevMode ? [undefined, { debugName: "className" }] : /* istanbul ignore next */ []));
8066
- this.orientation = input(...(ngDevMode ? [undefined, { debugName: "orientation" }] : /* istanbul ignore next */ []));
8067
- this.ariaLabelledby = input(...(ngDevMode ? [undefined, { debugName: "ariaLabelledby" }] : /* istanbul ignore next */ []));
8068
- this.ariaLabel = input(...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
8069
8003
  this._ref = viewChild("_ref", ...(ngDevMode ? [{ debugName: "_ref" }] : /* istanbul ignore next */ []));
8070
- this._id = signal("tab-list-base-id", ...(ngDevMode ? [{ debugName: "_id" }] : /* istanbul ignore next */ []));
8071
8004
  }
8072
8005
  /**
8073
8006
  * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.
@@ -8109,46 +8042,39 @@ class DBTabList {
8109
8042
  if (typeof window !== "undefined") {
8110
8043
  const element = this._ref()?.nativeElement;
8111
8044
  this.enableAttributePassing(element, "db-tab-list");
8112
- this._id.set(this.id() || "tab-list-" + uuid());
8113
8045
  }
8114
8046
  }
8115
8047
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DBTabList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.10", type: DBTabList, isStandalone: true, selector: "db-tab-list", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true, isSignal: true }], ngImport: i0, template: `<div
8117
- role="tablist"
8048
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.10", type: DBTabList, isStandalone: true, selector: "db-tab-list", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, propOverrides: { classPropertyName: "propOverrides", publicName: "propOverrides", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true, isSignal: true }], ngImport: i0, template: `<div
8118
8049
  #_ref
8119
- [attr.id]="_id()"
8050
+ [attr.id]="id() ?? propOverrides()?.id"
8120
8051
  [class]="cls('db-tab-list', className())"
8121
- [attr.aria-orientation]="orientation() || 'horizontal'"
8122
- [attr.aria-label]="ariaLabelledby() ? undefined : ariaLabel()"
8123
- [attr.aria-labelledby]="ariaLabelledby()"
8124
8052
  >
8125
- <ng-content></ng-content>
8053
+ <ul role="tablist">
8054
+ <ng-content></ng-content>
8055
+ </ul>
8126
8056
  </div> `, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
8127
8057
  }
8128
8058
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DBTabList, decorators: [{
8129
8059
  type: Component,
8130
8060
  args: [{ selector: "db-tab-list", standalone: true, imports: [CommonModule], template: `<div
8131
- role="tablist"
8132
8061
  #_ref
8133
- [attr.id]="_id()"
8062
+ [attr.id]="id() ?? propOverrides()?.id"
8134
8063
  [class]="cls('db-tab-list', className())"
8135
- [attr.aria-orientation]="orientation() || 'horizontal'"
8136
- [attr.aria-label]="ariaLabelledby() ? undefined : ariaLabel()"
8137
- [attr.aria-labelledby]="ariaLabelledby()"
8138
8064
  >
8139
- <ng-content></ng-content>
8065
+ <ul role="tablist">
8066
+ <ng-content></ng-content>
8067
+ </ul>
8140
8068
  </div> `, styles: [":host{display:contents}\n"] }]
8141
- }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledby", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
8069
+ }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
8142
8070
 
8071
+ const defaultProps$2 = {};
8143
8072
  class DBTabPanel {
8144
8073
  constructor() {
8145
8074
  this.cls = cls;
8146
8075
  this.className = input(...(ngDevMode ? [undefined, { debugName: "className" }] : /* istanbul ignore next */ []));
8147
8076
  this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : /* istanbul ignore next */ []));
8148
8077
  this.propOverrides = input(...(ngDevMode ? [undefined, { debugName: "propOverrides" }] : /* istanbul ignore next */ []));
8149
- this.hidden = input(...(ngDevMode ? [undefined, { debugName: "hidden" }] : /* istanbul ignore next */ []));
8150
- this.ariaLabel = input(...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
8151
- this.ariaLabelledby = input(...(ngDevMode ? [undefined, { debugName: "ariaLabelledby" }] : /* istanbul ignore next */ []));
8152
8078
  this.content = input(...(ngDevMode ? [undefined, { debugName: "content" }] : /* istanbul ignore next */ []));
8153
8079
  this._ref = viewChild("_ref", ...(ngDevMode ? [{ debugName: "_ref" }] : /* istanbul ignore next */ []));
8154
8080
  }
@@ -8195,336 +8121,144 @@ class DBTabPanel {
8195
8121
  }
8196
8122
  }
8197
8123
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DBTabPanel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8198
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: DBTabPanel, isStandalone: true, selector: "db-tab-panel", inputs: { className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, propOverrides: { classPropertyName: "propOverrides", publicName: "propOverrides", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true, isSignal: true }], ngImport: i0, template: `<div
8124
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: DBTabPanel, isStandalone: true, selector: "db-tab-panel", inputs: { className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, propOverrides: { classPropertyName: "propOverrides", publicName: "propOverrides", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true, isSignal: true }], ngImport: i0, template: `<section
8199
8125
  role="tabpanel"
8200
8126
  #_ref
8201
8127
  [class]="cls('db-tab-panel', className())"
8202
8128
  [attr.id]="id() ?? propOverrides()?.id"
8203
- [attr.tabIndex]="hidden() ? -1 : 0"
8204
- [attr.hidden]="hidden()"
8205
- [attr.aria-label]="ariaLabel()"
8206
- [attr.aria-labelledby]="ariaLabel() ? undefined : ariaLabelledby()"
8207
8129
  >
8208
8130
  @if(content()){{{content()}}} <ng-content></ng-content>
8209
- </div> `, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
8131
+ </section> `, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
8210
8132
  }
8211
8133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DBTabPanel, decorators: [{
8212
8134
  type: Component,
8213
- args: [{ selector: "db-tab-panel", standalone: true, imports: [CommonModule], template: `<div
8135
+ args: [{ selector: "db-tab-panel", standalone: true, imports: [CommonModule], template: `<section
8214
8136
  role="tabpanel"
8215
8137
  #_ref
8216
8138
  [class]="cls('db-tab-panel', className())"
8217
8139
  [attr.id]="id() ?? propOverrides()?.id"
8218
- [attr.tabIndex]="hidden() ? -1 : 0"
8219
- [attr.hidden]="hidden()"
8220
- [attr.aria-label]="ariaLabel()"
8221
- [attr.aria-labelledby]="ariaLabel() ? undefined : ariaLabelledby()"
8222
8140
  >
8223
8141
  @if(content()){{{content()}}} <ng-content></ng-content>
8224
- </div> `, styles: [":host{display:contents}\n"] }]
8225
- }], ctorParameters: () => [], propDecorators: { className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledby", required: false }] }], content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
8142
+ </section> `, styles: [":host{display:contents}\n"] }]
8143
+ }], ctorParameters: () => [], propDecorators: { className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: false }] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
8226
8144
 
8227
- const defaultProps$1 = {
8228
- tabItemWidth: "auto",
8229
- tabItemAlignment: "start",
8230
- scrollStartLabel: "Scroll start",
8231
- scrollEndLabel: "Scroll end",
8232
- };
8145
+ const defaultProps$1 = {};
8233
8146
  class DBTabs {
8234
- _id() {
8235
- return this.id() || this._generatedId();
8236
- }
8237
- _name() {
8238
- return "tabs-" + (this.name() || this._generatedName());
8239
- }
8240
- getTabId(index) {
8241
- return `${this._name()}-tab-${index}`;
8242
- }
8243
- getPanelId(index) {
8244
- return `${this._name()}-tab-panel-${index}`;
8245
- }
8246
- activateTab(index) {
8247
- // Prevent activating a disabled tab
8248
- if (this._ref()?.nativeElement) {
8249
- const tabList = this._ref()?.nativeElement.querySelector('[role="tablist"]');
8250
- if (tabList) {
8251
- const tabs = Array.from(tabList.querySelectorAll('[role="tab"]'));
8252
- const tab = tabs[index];
8253
- if (tab?.disabled || tab?.getAttribute("aria-disabled") === "true") {
8254
- return;
8255
- }
8256
- }
8257
- }
8258
- if (this.activeTabIndex() !== index) {
8259
- this.activeTabIndex.set(index);
8260
- if (this.indexChange) {
8261
- this.indexChange.emit(index);
8262
- }
8263
- // Emit value of the newly active tab item if value props are set
8264
- if (this.valueChange) {
8265
- const tabList = this._ref()?.nativeElement?.querySelector('[role="tablist"]');
8266
- const tabs = tabList
8267
- ? Array.from(tabList.querySelectorAll('[role="tab"]'))
8268
- : [];
8269
- const value = tabs[index]?.dataset?.["value"];
8270
- this.valueChange.emit(value);
8271
- }
8272
- this.initTabs(index);
8273
- }
8274
- }
8275
- handleClick(event) {
8276
- // In props-mode (props.tabs), tab activation is handled via onClick on each DBTabItem directly.
8277
- // In slot-mode (!props.tabs), clicks bubble up and are handled here via DOM traversal.
8278
- if (this.tabs()) {
8279
- return;
8280
- }
8281
- const target = event.target;
8282
- const button = target.closest('[role="tab"]');
8283
- if (!button || !this._ref()?.nativeElement)
8284
- return;
8285
- const tabList = this._ref()?.nativeElement?.querySelector('[role="tablist"]');
8286
- if (!tabList)
8287
- return;
8288
- const buttons = Array.from(tabList.querySelectorAll('[role="tab"]'));
8289
- const index = buttons.indexOf(button);
8290
- if (index !== -1) {
8291
- event.preventDefault();
8292
- this.activateTab(index);
8293
- }
8294
- }
8295
- handleKeyDown(event) {
8296
- if (!this._ref()?.nativeElement)
8297
- return;
8298
- const key = event.key;
8299
- const navigationKeys = [
8300
- "ArrowRight",
8301
- "ArrowDown",
8302
- "ArrowLeft",
8303
- "ArrowUp",
8304
- "Home",
8305
- "End",
8306
- "Enter",
8307
- " ",
8308
- ];
8309
- if (!navigationKeys.includes(key)) {
8310
- return;
8311
- }
8312
- const tabList = this._ref()?.nativeElement.querySelector('[role="tablist"]');
8313
- if (!tabList)
8314
- return;
8315
- const buttons = Array.from(tabList.querySelectorAll('[role="tab"]'));
8316
- // find currently focused element within the buttons list
8317
- let currentIndex = -1;
8318
- if (typeof document !== "undefined") {
8319
- // Traverse Shadow DOM boundaries to find the truly focused element.
8320
- // document.activeElement only returns the shadow host when focus is inside a Shadow DOM,
8321
- // so we must walk through each shadowRoot to reach the actual focused element.
8322
- let activeEl = document.activeElement;
8323
- while (activeEl?.shadowRoot?.activeElement) {
8324
- activeEl = activeEl.shadowRoot.activeElement;
8325
- }
8326
- if (activeEl) {
8327
- const focusedButton = activeEl.closest('[role="tab"]');
8328
- if (focusedButton) {
8329
- currentIndex = buttons.indexOf(focusedButton);
8330
- }
8331
- }
8332
- }
8333
- if (currentIndex === -1) {
8334
- currentIndex = this.activeTabIndex();
8335
- }
8336
- if (buttons.length > 0) {
8337
- // handle activation (enter / space) -> change panel
8338
- if (key === "Enter" || key === " ") {
8339
- event.preventDefault();
8340
- this.activateTab(currentIndex);
8341
- return;
8342
- }
8343
- // handle navigation (arrows) -> moves focus
8344
- let nextIndex;
8345
- const length = buttons.length;
8346
- if (key === "ArrowRight" || key === "ArrowDown") {
8347
- nextIndex = (currentIndex + 1) % length;
8348
- }
8349
- else if (key === "ArrowLeft" || key === "ArrowUp") {
8350
- nextIndex = (currentIndex - 1 + length) % length;
8351
- }
8352
- else if (key === "Home") {
8353
- nextIndex = 0;
8354
- }
8355
- else if (key === "End") {
8356
- nextIndex = length - 1;
8357
- }
8358
- if (nextIndex !== undefined) {
8359
- event.preventDefault();
8360
- // Skip disabled tabs when navigating with arrow keys
8361
- const isForward = key === "ArrowRight" || key === "ArrowDown";
8362
- const maxAttempts = length;
8363
- for (let i = 0; i < maxAttempts; i++) {
8364
- const candidate = buttons[nextIndex];
8365
- if (!candidate?.disabled &&
8366
- candidate?.getAttribute("aria-disabled") !== "true") {
8367
- break;
8368
- }
8369
- if (isForward) {
8370
- nextIndex = (nextIndex + 1) % length;
8371
- }
8372
- else {
8373
- nextIndex = (nextIndex - 1 + length) % length;
8374
- }
8375
- }
8376
- // do not activateTab here for manual activation, just move the focus
8377
- const nextButton = buttons[nextIndex];
8378
- if (nextButton &&
8379
- !nextButton.disabled &&
8380
- nextButton.getAttribute("aria-disabled") !== "true") {
8381
- nextButton.focus();
8382
- }
8383
- }
8384
- }
8385
- }
8386
- isIndexActive(index) {
8387
- return this.activeTabIndex() === Number(index);
8388
- }
8389
- getTabItemTabIndex(index) {
8390
- const i = Number(index);
8391
- // only the active tab should be reachable via Tab key
8392
- return this.activeTabIndex() === i ||
8393
- (this.activeTabIndex() === -1 && i === 0)
8394
- ? 0
8395
- : -1;
8396
- }
8397
- _updateCachedTabs() {
8147
+ convertTabs() {
8398
8148
  try {
8399
8149
  if (typeof this.tabs() === "string") {
8400
- this._cachedTabs.set(JSON.parse(this.tabs()));
8401
- }
8402
- else if (this.tabs()) {
8403
- this._cachedTabs.set(this.tabs());
8404
- }
8405
- else {
8406
- this._cachedTabs.set([]);
8150
+ return JSON.parse(this.tabs());
8407
8151
  }
8152
+ return this.tabs();
8408
8153
  }
8409
8154
  catch (error) {
8410
8155
  console.error(error);
8411
- this._cachedTabs.set([]);
8412
8156
  }
8413
- }
8414
- _getScrollContainer() {
8415
- return (this._ref()?.nativeElement?.querySelector('[role="tablist"]') ?? null);
8416
- }
8417
- _isRtl() {
8418
- const container = this._getScrollContainer();
8419
- return (!!container &&
8420
- typeof getComputedStyle !== "undefined" &&
8421
- getComputedStyle(container).direction === "rtl");
8157
+ return [];
8422
8158
  }
8423
8159
  evaluateScrollButtons(tList) {
8424
8160
  const needsScroll = tList.scrollWidth > tList.clientWidth;
8425
- if (!needsScroll) {
8426
- this.showScrollStart.set(false);
8427
- this.showScrollEnd.set(false);
8428
- return;
8429
- }
8430
- const scrollPos = Math.abs(tList.scrollLeft);
8431
- const maxScroll = tList.scrollWidth - tList.clientWidth;
8432
- const tolerance = 2;
8433
- // scrollPos=0 means "at inline-start" in both LTR and RTL
8434
- this.showScrollStart.set(scrollPos > tolerance);
8435
- this.showScrollEnd.set(scrollPos < maxScroll - tolerance);
8161
+ this.showScrollLeft.set(needsScroll && tList.scrollLeft > 1);
8162
+ this.showScrollRight.set(needsScroll && tList.scrollLeft < tList.scrollWidth - tList.clientWidth);
8436
8163
  }
8437
- scroll(toStart) {
8438
- const container = this._getScrollContainer();
8439
- if (!container) {
8440
- return;
8441
- }
8442
- let step = Number(this.arrowScrollDistance()) || 120;
8443
- const isLeft = !!toStart;
8444
- const isRtl = this._isRtl();
8445
- // Map logical direction (start/end) to physical direction.
8446
- // In LTR: toStart=true → scroll left (negative), toEnd → scroll right (positive).
8447
- // In RTL: directions are inverted physically.
8448
- if (isLeft !== isRtl) {
8164
+ scroll(left) {
8165
+ let step = Number(this.arrowScrollDistance()) || 100;
8166
+ if (left) {
8449
8167
  step *= -1;
8450
8168
  }
8451
- container.scrollBy({
8169
+ this.scrollContainer()?.scrollBy({
8170
+ top: 0,
8452
8171
  left: step,
8453
8172
  behavior: "smooth",
8454
8173
  });
8455
8174
  }
8456
8175
  initTabList() {
8457
8176
  if (this._ref()?.nativeElement) {
8458
- const container = this._ref()?.nativeElement.querySelector('[role="tablist"]');
8459
- if (container) {
8460
- if (!container.getAttribute("aria-orientation")) {
8461
- container.setAttribute("aria-orientation", this.orientation() ?? "horizontal");
8462
- }
8463
- if (this.behavior() === "arrows") {
8464
- this.evaluateScrollButtons(container);
8465
- const _listener = this._scrollListener();
8466
- if (_listener && container) {
8467
- container.removeEventListener("scroll", _listener.fn);
8468
- this._scrollListener.set(null);
8469
- }
8470
- const onScroll = () => this.evaluateScrollButtons(container);
8471
- this._scrollListener.set({
8472
- fn: onScroll,
8473
- });
8474
- container.addEventListener("scroll", onScroll);
8475
- if (!this._resizeObserver()) {
8476
- const observer = new ResizeObserver(() => {
8177
+ const tabList = this._ref()?.nativeElement.querySelector(".db-tab-list");
8178
+ if (tabList) {
8179
+ const container = tabList.querySelector('[role="tablist"]');
8180
+ if (container) {
8181
+ container.setAttribute("aria-orientation", this.orientation() || "horizontal");
8182
+ if (this.behavior() === "arrows") {
8183
+ this.scrollContainer.set(container);
8184
+ this.evaluateScrollButtons(container);
8185
+ container.addEventListener("scroll", () => {
8477
8186
  this.evaluateScrollButtons(container);
8478
8187
  });
8479
- observer.observe(container);
8480
- this._resizeObserver.set(observer);
8188
+ // Use ResizeObserver to re-evaluate scroll buttons because it provides more accurate, container-specific resize detection than global window resize events.
8189
+ if (!this._resizeObserver()) {
8190
+ const observer = new ResizeObserver(() => {
8191
+ this.evaluateScrollButtons(container);
8192
+ });
8193
+ observer.observe(container);
8194
+ this._resizeObserver.set(observer);
8195
+ }
8481
8196
  }
8482
8197
  }
8483
- if (this.name() && !container.getAttribute("aria-label")) {
8484
- container.setAttribute("aria-label", this.name() ?? "");
8485
- }
8486
8198
  }
8487
8199
  }
8488
8200
  }
8489
- initTabs(activeIndex) {
8490
- const currentIndex = activeIndex !== undefined ? activeIndex : this.activeTabIndex();
8201
+ initTabs(init) {
8491
8202
  if (this._ref()?.nativeElement) {
8492
- const tabListEl = this._ref()?.nativeElement.querySelector('[role="tablist"]');
8493
- const panels = Array.from(this._ref()?.nativeElement?.querySelectorAll('[role="tabpanel"]') ?? []).filter((panel) => panel.closest(".db-tabs") === this._ref()?.nativeElement);
8494
- if (!tabListEl)
8495
- return;
8496
- const buttons = Array.from(tabListEl.querySelectorAll('[role="tab"]'));
8497
- buttons.forEach((button, index) => {
8498
- const isSelected = currentIndex === index;
8499
- const panel = panels[index];
8500
- const tabId = button.id || this.getTabId(index);
8501
- const panelId = panel?.id || this.getPanelId(index);
8502
- if (!button.id) {
8503
- button.id = tabId;
8504
- }
8505
- if (!button.getAttribute("aria-controls")) {
8506
- button.setAttribute("aria-controls", panelId);
8507
- }
8508
- button.dispatchEvent(new CustomEvent("aria-selected-changed", {
8509
- detail: {
8510
- selected: isSelected,
8511
- tabIndex: currentIndex === index || (currentIndex === -1 && index === 0)
8512
- ? 0
8513
- : -1,
8514
- },
8515
- }));
8516
- if (panel) {
8517
- if (!panel.id) {
8518
- panel.id = panelId;
8203
+ const tabItems = Array.from(this._ref()?.nativeElement.getElementsByClassName("db-tab-item"));
8204
+ const tabPanels = Array.from(this._ref()?.nativeElement.querySelectorAll(":is(:scope > .db-tab-panel, :scope > db-tab-panel > .db-tab-panel)"));
8205
+ for (const tabItem of tabItems) {
8206
+ const index = tabItems.indexOf(tabItem);
8207
+ const label = tabItem.querySelector("label");
8208
+ const input = tabItem.querySelector("input");
8209
+ if (input && label) {
8210
+ if (!input.id) {
8211
+ const tabId = `${this._name()}-tab-${index}`;
8212
+ label.setAttribute("for", tabId);
8213
+ input.id = tabId;
8214
+ input.setAttribute("name", this._name());
8215
+ if (tabPanels.length > index) {
8216
+ input.setAttribute("aria-controls", `${this._name()}-tab-panel-${index}`);
8217
+ }
8519
8218
  }
8520
- if (!panel.getAttribute("aria-label") &&
8521
- !panel.getAttribute("aria-labelledby")) {
8522
- panel.setAttribute("aria-labelledby", tabId);
8219
+ if (init) {
8220
+ // Auto select
8221
+ const autoSelect = !this.initialSelectedMode() ||
8222
+ this.initialSelectedMode() === "auto";
8223
+ const shouldAutoSelect = (this.initialSelectedIndex() == null && index === 0) ||
8224
+ Number(this.initialSelectedIndex()) === index;
8225
+ if (autoSelect && shouldAutoSelect) {
8226
+ input.click();
8227
+ }
8523
8228
  }
8524
- // toggle visibility
8525
- panel.hidden = !isSelected;
8526
8229
  }
8527
- });
8230
+ }
8231
+ for (const panel of tabPanels) {
8232
+ if (panel.id)
8233
+ continue;
8234
+ const index = tabPanels.indexOf(panel);
8235
+ panel.id = `${this._name()}-tab-panel-${index}`;
8236
+ panel.setAttribute("aria-labelledby", `${this._name()}-tab-${index}`);
8237
+ }
8238
+ }
8239
+ }
8240
+ handleChange(event) {
8241
+ event.stopPropagation();
8242
+ if (event.target) {
8243
+ const target = event.target;
8244
+ const parent = target.parentElement;
8245
+ if (parent &&
8246
+ parent.parentElement &&
8247
+ parent.parentElement?.nodeName === "LI") {
8248
+ const tabItem = parent.parentElement.parentElement;
8249
+ if (tabItem) {
8250
+ const list = tabItem.parentElement;
8251
+ if (list) {
8252
+ const tabIndex = Array.from(list.children).indexOf(tabItem);
8253
+ if (this.indexChange) {
8254
+ this.indexChange.emit(tabIndex);
8255
+ }
8256
+ if (this.tabSelect) {
8257
+ this.tabSelect.emit(event);
8258
+ }
8259
+ }
8260
+ }
8261
+ }
8528
8262
  }
8529
8263
  }
8530
8264
  trackByTab0(index, tab) {
@@ -8535,53 +8269,53 @@ class DBTabs {
8535
8269
  }
8536
8270
  constructor() {
8537
8271
  this.cls = cls;
8538
- this.initialSelectedIndex = input(...(ngDevMode ? [undefined, { debugName: "initialSelectedIndex" }] : /* istanbul ignore next */ []));
8539
- this.initialSelectedMode = input(...(ngDevMode ? [undefined, { debugName: "initialSelectedMode" }] : /* istanbul ignore next */ []));
8540
8272
  this.name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : /* istanbul ignore next */ []));
8541
8273
  this.tabs = input(...(ngDevMode ? [undefined, { debugName: "tabs" }] : /* istanbul ignore next */ []));
8542
- this.activeIndex = input(...(ngDevMode ? [undefined, { debugName: "activeIndex" }] : /* istanbul ignore next */ []));
8543
- this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : /* istanbul ignore next */ []));
8544
8274
  this.arrowScrollDistance = input(...(ngDevMode ? [undefined, { debugName: "arrowScrollDistance" }] : /* istanbul ignore next */ []));
8545
8275
  this.orientation = input(...(ngDevMode ? [undefined, { debugName: "orientation" }] : /* istanbul ignore next */ []));
8546
8276
  this.behavior = input(...(ngDevMode ? [undefined, { debugName: "behavior" }] : /* istanbul ignore next */ []));
8277
+ this.initialSelectedMode = input(...(ngDevMode ? [undefined, { debugName: "initialSelectedMode" }] : /* istanbul ignore next */ []));
8278
+ this.initialSelectedIndex = input(...(ngDevMode ? [undefined, { debugName: "initialSelectedIndex" }] : /* istanbul ignore next */ []));
8279
+ this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : /* istanbul ignore next */ []));
8547
8280
  this.propOverrides = input(...(ngDevMode ? [undefined, { debugName: "propOverrides" }] : /* istanbul ignore next */ []));
8548
8281
  this.className = input(...(ngDevMode ? [undefined, { debugName: "className" }] : /* istanbul ignore next */ []));
8549
- this.tabItemAlignment = input(defaultProps$1["tabItemAlignment"], ...(ngDevMode ? [{ debugName: "tabItemAlignment" }] : /* istanbul ignore next */ []));
8550
- this.tabItemWidth = input(defaultProps$1["tabItemWidth"], ...(ngDevMode ? [{ debugName: "tabItemWidth" }] : /* istanbul ignore next */ []));
8551
- this.scrollStartLabel = input(defaultProps$1["scrollStartLabel"], ...(ngDevMode ? [{ debugName: "scrollStartLabel" }] : /* istanbul ignore next */ []));
8552
- this.scrollEndLabel = input(defaultProps$1["scrollEndLabel"], ...(ngDevMode ? [{ debugName: "scrollEndLabel" }] : /* istanbul ignore next */ []));
8282
+ this.alignment = input(...(ngDevMode ? [undefined, { debugName: "alignment" }] : /* istanbul ignore next */ []));
8283
+ this.width = input(...(ngDevMode ? [undefined, { debugName: "width" }] : /* istanbul ignore next */ []));
8553
8284
  this.indexChange = output();
8554
- this.valueChange = output();
8285
+ this.tabSelect = output();
8555
8286
  this._ref = viewChild("_ref", ...(ngDevMode ? [{ debugName: "_ref" }] : /* istanbul ignore next */ []));
8556
- this._generatedId = signal("tabs-" + uuid(), ...(ngDevMode ? [{ debugName: "_generatedId" }] : /* istanbul ignore next */ []));
8557
- this._generatedName = signal(uuid(), ...(ngDevMode ? [{ debugName: "_generatedName" }] : /* istanbul ignore next */ []));
8558
- this.activeTabIndex = signal(0, ...(ngDevMode ? [{ debugName: "activeTabIndex" }] : /* istanbul ignore next */ []));
8287
+ this._name = signal("", ...(ngDevMode ? [{ debugName: "_name" }] : /* istanbul ignore next */ []));
8559
8288
  this.initialized = signal(false, ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
8560
- this.showScrollStart = signal(false, ...(ngDevMode ? [{ debugName: "showScrollStart" }] : /* istanbul ignore next */ []));
8561
- this.showScrollEnd = signal(false, ...(ngDevMode ? [{ debugName: "showScrollEnd" }] : /* istanbul ignore next */ []));
8562
- this._resizeObserver = signal(null, ...(ngDevMode ? [{ debugName: "_resizeObserver" }] : /* istanbul ignore next */ []));
8563
- this._observer = signal(null, ...(ngDevMode ? [{ debugName: "_observer" }] : /* istanbul ignore next */ []));
8564
- this._pendingRafId = signal(null, ...(ngDevMode ? [{ debugName: "_pendingRafId" }] : /* istanbul ignore next */ []));
8565
- this._scrollListener = signal(null, ...(ngDevMode ? [{ debugName: "_scrollListener" }] : /* istanbul ignore next */ []));
8566
- this._cachedTabs = signal([], ...(ngDevMode ? [{ debugName: "_cachedTabs" }] : /* istanbul ignore next */ []));
8289
+ this.showScrollLeft = signal(false, ...(ngDevMode ? [{ debugName: "showScrollLeft" }] : /* istanbul ignore next */ []));
8290
+ this.showScrollRight = signal(false, ...(ngDevMode ? [{ debugName: "showScrollRight" }] : /* istanbul ignore next */ []));
8291
+ this.scrollContainer = signal(null, ...(ngDevMode ? [{ debugName: "scrollContainer" }] : /* istanbul ignore next */ []));
8292
+ this._resizeObserver = signal(undefined, ...(ngDevMode ? [{ debugName: "_resizeObserver" }] : /* istanbul ignore next */ []));
8567
8293
  if (typeof window !== "undefined") {
8568
8294
  effect(() => {
8569
8295
  // --- Mitosis: Workaround to make sure the effect() is triggered ---
8570
- this.tabs();
8571
- // ---
8572
- this._updateCachedTabs();
8573
- }, {
8574
- // Enable writing to signals inside effects
8575
- });
8576
- effect(() => {
8577
- // --- Mitosis: Workaround to make sure the effect() is triggered ---
8578
- this.activeIndex();
8296
+ this._ref();
8297
+ this.initialized();
8579
8298
  // ---
8580
- if (this.activeIndex() !== undefined) {
8581
- const newIndex = Number(this.activeIndex());
8582
- if (!isNaN(newIndex) && newIndex !== this.activeTabIndex()) {
8583
- this.activateTab(newIndex);
8299
+ if (this._ref()?.nativeElement && this.initialized()) {
8300
+ this.initTabList();
8301
+ this.initTabs(true);
8302
+ const tabList = this._ref()?.nativeElement.querySelector(".db-tab-list");
8303
+ if (tabList) {
8304
+ const observer = new MutationObserver((mutations) => {
8305
+ mutations.forEach((mutation) => {
8306
+ if (mutation.removedNodes.length ||
8307
+ mutation.addedNodes.length) {
8308
+ this.initTabList();
8309
+ this.initTabs();
8310
+ }
8311
+ });
8312
+ });
8313
+ observer.observe(tabList, {
8314
+ childList: true,
8315
+ subtree: true,
8316
+ });
8584
8317
  }
8318
+ this.initialized.set(false);
8585
8319
  }
8586
8320
  }, {
8587
8321
  // Enable writing to signals inside effects
@@ -8628,209 +8362,125 @@ class DBTabs {
8628
8362
  if (typeof window !== "undefined") {
8629
8363
  const element = this._ref()?.nativeElement;
8630
8364
  this.enableAttributePassing(element, "db-tabs");
8631
- // 1. Calculate final start index synchronously to avoid race conditions
8632
- let startIndex = 0;
8633
- if (this.initialSelectedIndex() !== undefined) {
8634
- const parsedIndex = Number(this.initialSelectedIndex());
8635
- startIndex = isNaN(parsedIndex) ? 0 : parsedIndex;
8636
- }
8637
- else if (this.initialSelectedMode() === "manually") {
8638
- startIndex = -1;
8639
- }
8640
- // 2. Support deep linking: URL hash takes precedence over initial index
8641
- if (typeof window !== "undefined" && window.location.hash) {
8642
- const hashId = window.location.hash.substring(1);
8643
- const name = this.name() ? "tabs-" + this.name() : this._name();
8644
- const prefix = `${name}-tab-`;
8645
- if (hashId.startsWith(prefix)) {
8646
- const indexStr = hashId.replace(prefix, "");
8647
- const index = parseInt(indexStr, 10);
8648
- if (!isNaN(index)) {
8649
- startIndex = index;
8650
- }
8651
- }
8652
- }
8653
- // 3. Set initial state synchronously
8654
- this.activeTabIndex.set(startIndex);
8365
+ this._name.set(`tabs-${this.name() || uuid()}`);
8655
8366
  this.initialized.set(true);
8656
- this._updateCachedTabs();
8657
- // 4. Trigger single initial DOM update after paint
8658
- if (typeof window !== "undefined") {
8659
- requestAnimationFrame(() => {
8660
- this.initTabList();
8661
- this.initTabs(startIndex);
8662
- });
8663
- }
8664
- if (this._ref()?.nativeElement) {
8665
- const tabListEl = this._ref()?.nativeElement.querySelector('[role="tablist"]');
8666
- if (tabListEl) {
8667
- const observer = new MutationObserver(() => {
8668
- const rafId = this._pendingRafId();
8669
- if (rafId !== null)
8670
- cancelAnimationFrame(rafId);
8671
- this._pendingRafId.set(requestAnimationFrame(() => {
8672
- this._pendingRafId.set(null);
8673
- this.initTabList();
8674
- this.initTabs(this.activeTabIndex());
8675
- }));
8676
- });
8677
- // Observe only the tablist (not panel content) to avoid unnecessary
8678
- // re-evaluations when user content inside panels changes.
8679
- // childList only – attribute changes (set by initTabs) are not observed, preventing infinite loops.
8680
- observer.observe(tabListEl, {
8681
- childList: true,
8682
- subtree: true,
8683
- });
8684
- this._observer.set(observer);
8685
- }
8686
- }
8687
8367
  }
8688
8368
  }
8689
8369
  ngOnDestroy() {
8690
- const rafId = this._pendingRafId();
8691
- if (rafId !== null) {
8692
- cancelAnimationFrame(rafId);
8693
- this._pendingRafId.set(null);
8694
- }
8695
- const _listener = this._scrollListener();
8696
- const _container = this._getScrollContainer();
8697
- if (_listener && _container) {
8698
- _container.removeEventListener("scroll", _listener.fn);
8699
- }
8700
8370
  this._resizeObserver()?.disconnect();
8701
- this._resizeObserver.set(null);
8702
- this._observer()?.disconnect();
8703
- this._observer.set(null);
8371
+ this._resizeObserver.set(undefined);
8704
8372
  }
8705
8373
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DBTabs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8706
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: DBTabs, isStandalone: true, selector: "db-tabs", inputs: { initialSelectedIndex: { classPropertyName: "initialSelectedIndex", publicName: "initialSelectedIndex", isSignal: true, isRequired: false, transformFunction: null }, initialSelectedMode: { classPropertyName: "initialSelectedMode", publicName: "initialSelectedMode", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: false, transformFunction: null }, activeIndex: { classPropertyName: "activeIndex", publicName: "activeIndex", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, arrowScrollDistance: { classPropertyName: "arrowScrollDistance", publicName: "arrowScrollDistance", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, behavior: { classPropertyName: "behavior", publicName: "behavior", isSignal: true, isRequired: false, transformFunction: null }, propOverrides: { classPropertyName: "propOverrides", publicName: "propOverrides", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabItemAlignment: { classPropertyName: "tabItemAlignment", publicName: "tabItemAlignment", isSignal: true, isRequired: false, transformFunction: null }, tabItemWidth: { classPropertyName: "tabItemWidth", publicName: "tabItemWidth", isSignal: true, isRequired: false, transformFunction: null }, scrollStartLabel: { classPropertyName: "scrollStartLabel", publicName: "scrollStartLabel", isSignal: true, isRequired: false, transformFunction: null }, scrollEndLabel: { classPropertyName: "scrollEndLabel", publicName: "scrollEndLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexChange: "indexChange", valueChange: "valueChange" }, viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true, isSignal: true }], ngImport: i0, template: `<div
8374
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: DBTabs, isStandalone: true, selector: "db-tabs", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: false, transformFunction: null }, arrowScrollDistance: { classPropertyName: "arrowScrollDistance", publicName: "arrowScrollDistance", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, behavior: { classPropertyName: "behavior", publicName: "behavior", isSignal: true, isRequired: false, transformFunction: null }, initialSelectedMode: { classPropertyName: "initialSelectedMode", publicName: "initialSelectedMode", isSignal: true, isRequired: false, transformFunction: null }, initialSelectedIndex: { classPropertyName: "initialSelectedIndex", publicName: "initialSelectedIndex", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, propOverrides: { classPropertyName: "propOverrides", publicName: "propOverrides", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, alignment: { classPropertyName: "alignment", publicName: "alignment", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexChange: "indexChange", tabSelect: "tabSelect" }, viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true, isSignal: true }], ngImport: i0, template: `<div
8707
8375
  #_ref
8708
- [attr.id]="id() ?? propOverrides()?.id ?? _id()"
8376
+ [attr.id]="id() ?? propOverrides()?.id"
8709
8377
  [class]="cls('db-tabs', className())"
8710
8378
  [attr.data-orientation]="orientation()"
8711
8379
  [attr.data-scroll-behavior]="behavior()"
8712
- [attr.data-tab-item-alignment]="tabItemAlignment()"
8713
- [attr.data-tab-item-width]="tabItemWidth()"
8714
- (click)="handleClick($event)"
8715
- (keydown)="handleKeyDown($event)"
8380
+ [attr.data-alignment]="alignment() ?? 'start'"
8381
+ [attr.data-width]="width() ?? 'auto'"
8382
+ (input)="handleChange($event)"
8383
+ (change)="handleChange($event)"
8716
8384
  >
8717
- @if(showScrollStart()){
8385
+ @if(showScrollLeft()){
8718
8386
  <db-button
8719
8387
  variant="ghost"
8720
8388
  icon="chevron_left"
8721
8389
  type="button"
8722
- className="tabs-scroll-start"
8390
+ className="tabs-scroll-left"
8723
8391
  [noText]="true"
8724
8392
  (click)="scroll(true)"
8725
- >{{scrollStartLabel()}}</db-button
8726
8393
  >
8394
+ Scroll left
8395
+ </db-button>
8727
8396
  } @if(tabs()){
8728
- <db-tab-list [orientation]="orientation()" [ariaLabel]="name()">
8729
- @for (tab of _cachedTabs();track trackByTab0(index, tab);let index =
8397
+ <db-tab-list>
8398
+ @for (tab of convertTabs();track trackByTab0(index, tab);let index =
8730
8399
  $index) {
8731
8400
  <db-tab-item
8732
- [id]="getTabId(index)"
8733
- [ariaControls]="getPanelId(index)"
8734
- [active]="isIndexActive(index)"
8735
- [tabIndex]="getTabItemTabIndex(index)"
8401
+ [active]="tab.active"
8736
8402
  [label]="tab.label"
8737
8403
  [iconTrailing]="tab.iconTrailing"
8738
8404
  [icon]="tab.icon"
8739
8405
  [noText]="tab.noText"
8740
- (click)="activateTab(index)"
8741
8406
  ></db-tab-item>
8742
8407
  }
8743
8408
  </db-tab-list>
8744
8409
 
8745
- @for (tab of _cachedTabs();track trackByTab1(index, tab);let index = $index)
8410
+ @for (tab of convertTabs();track trackByTab1(index, tab);let index = $index)
8746
8411
  {
8747
- <db-tab-panel
8748
- [id]="getPanelId(index)"
8749
- [ariaLabelledby]="getTabId(index)"
8750
- [content]="tab.content"
8751
- [hidden]="!isIndexActive(index)"
8752
- >{{tab.children}}</db-tab-panel
8753
- >
8754
- } } @if(!tabs()){
8755
- <ng-content></ng-content>
8756
- } @if(showScrollEnd()){
8412
+ <db-tab-panel [content]="tab.content">{{tab.children}}</db-tab-panel>
8413
+ } } @if(showScrollRight()){
8757
8414
  <db-button
8758
8415
  variant="ghost"
8759
8416
  icon="chevron_right"
8760
8417
  type="button"
8761
- className="tabs-scroll-end"
8418
+ className="tabs-scroll-right"
8762
8419
  [noText]="true"
8763
- (click)="scroll(false)"
8764
- >{{scrollEndLabel()}}</db-button
8420
+ (click)="scroll()"
8765
8421
  >
8422
+ Scroll right
8423
+ </db-button>
8766
8424
  }
8767
- </div> `, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DBButton, selector: "db-button", inputs: ["type", "id", "propOverrides", "className", "disabled", "iconLeading", "icon", "showIconLeading", "showIcon", "iconTrailing", "showIconTrailing", "size", "width", "variant", "wrap", "noText", "name", "form", "value", "text"], outputs: ["click"] }, { kind: "component", type: DBTabList, selector: "db-tab-list", inputs: ["id", "className", "orientation", "ariaLabelledby", "ariaLabel"] }, { kind: "component", type: DBTabItem, selector: "db-tab-item", inputs: ["active", "label", "showIcon", "icon", "tabIndex", "disabled", "className", "noText", "ariaControls", "id", "value", "showIconLeading", "iconLeading", "showIconTrailing", "iconTrailing"], outputs: ["disabledChange", "click"] }, { kind: "component", type: DBTabPanel, selector: "db-tab-panel", inputs: ["className", "id", "propOverrides", "hidden", "ariaLabel", "ariaLabelledby", "content"] }] }); }
8425
+ <ng-content></ng-content>
8426
+ </div> `, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DBButton, selector: "db-button", inputs: ["type", "id", "propOverrides", "className", "disabled", "iconLeading", "icon", "showIconLeading", "showIcon", "iconTrailing", "showIconTrailing", "size", "width", "variant", "wrap", "noText", "name", "form", "value", "text"], outputs: ["click"] }, { kind: "component", type: DBTabList, selector: "db-tab-list", inputs: ["id", "propOverrides", "className"] }, { kind: "component", type: DBTabItem, selector: "db-tab-item", inputs: ["active", "name", "className", "id", "propOverrides", "iconLeading", "icon", "iconTrailing", "showIconLeading", "showIcon", "showIconTrailing", "noText", "disabled", "checked", "label"], outputs: ["disabledChange", "checkedChange", "change"] }, { kind: "component", type: DBTabPanel, selector: "db-tab-panel", inputs: ["className", "id", "propOverrides", "content"] }] }); }
8768
8427
  }
8769
8428
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DBTabs, decorators: [{
8770
8429
  type: Component,
8771
8430
  args: [{ selector: "db-tabs", standalone: true, imports: [CommonModule, DBButton, DBTabList, DBTabItem, DBTabPanel], template: `<div
8772
8431
  #_ref
8773
- [attr.id]="id() ?? propOverrides()?.id ?? _id()"
8432
+ [attr.id]="id() ?? propOverrides()?.id"
8774
8433
  [class]="cls('db-tabs', className())"
8775
8434
  [attr.data-orientation]="orientation()"
8776
8435
  [attr.data-scroll-behavior]="behavior()"
8777
- [attr.data-tab-item-alignment]="tabItemAlignment()"
8778
- [attr.data-tab-item-width]="tabItemWidth()"
8779
- (click)="handleClick($event)"
8780
- (keydown)="handleKeyDown($event)"
8436
+ [attr.data-alignment]="alignment() ?? 'start'"
8437
+ [attr.data-width]="width() ?? 'auto'"
8438
+ (input)="handleChange($event)"
8439
+ (change)="handleChange($event)"
8781
8440
  >
8782
- @if(showScrollStart()){
8441
+ @if(showScrollLeft()){
8783
8442
  <db-button
8784
8443
  variant="ghost"
8785
8444
  icon="chevron_left"
8786
8445
  type="button"
8787
- className="tabs-scroll-start"
8446
+ className="tabs-scroll-left"
8788
8447
  [noText]="true"
8789
8448
  (click)="scroll(true)"
8790
- >{{scrollStartLabel()}}</db-button
8791
8449
  >
8450
+ Scroll left
8451
+ </db-button>
8792
8452
  } @if(tabs()){
8793
- <db-tab-list [orientation]="orientation()" [ariaLabel]="name()">
8794
- @for (tab of _cachedTabs();track trackByTab0(index, tab);let index =
8453
+ <db-tab-list>
8454
+ @for (tab of convertTabs();track trackByTab0(index, tab);let index =
8795
8455
  $index) {
8796
8456
  <db-tab-item
8797
- [id]="getTabId(index)"
8798
- [ariaControls]="getPanelId(index)"
8799
- [active]="isIndexActive(index)"
8800
- [tabIndex]="getTabItemTabIndex(index)"
8457
+ [active]="tab.active"
8801
8458
  [label]="tab.label"
8802
8459
  [iconTrailing]="tab.iconTrailing"
8803
8460
  [icon]="tab.icon"
8804
8461
  [noText]="tab.noText"
8805
- (click)="activateTab(index)"
8806
8462
  ></db-tab-item>
8807
8463
  }
8808
8464
  </db-tab-list>
8809
8465
 
8810
- @for (tab of _cachedTabs();track trackByTab1(index, tab);let index = $index)
8466
+ @for (tab of convertTabs();track trackByTab1(index, tab);let index = $index)
8811
8467
  {
8812
- <db-tab-panel
8813
- [id]="getPanelId(index)"
8814
- [ariaLabelledby]="getTabId(index)"
8815
- [content]="tab.content"
8816
- [hidden]="!isIndexActive(index)"
8817
- >{{tab.children}}</db-tab-panel
8818
- >
8819
- } } @if(!tabs()){
8820
- <ng-content></ng-content>
8821
- } @if(showScrollEnd()){
8468
+ <db-tab-panel [content]="tab.content">{{tab.children}}</db-tab-panel>
8469
+ } } @if(showScrollRight()){
8822
8470
  <db-button
8823
8471
  variant="ghost"
8824
8472
  icon="chevron_right"
8825
8473
  type="button"
8826
- className="tabs-scroll-end"
8474
+ className="tabs-scroll-right"
8827
8475
  [noText]="true"
8828
- (click)="scroll(false)"
8829
- >{{scrollEndLabel()}}</db-button
8476
+ (click)="scroll()"
8830
8477
  >
8478
+ Scroll right
8479
+ </db-button>
8831
8480
  }
8481
+ <ng-content></ng-content>
8832
8482
  </div> `, styles: [":host{display:contents}\n"] }]
8833
- }], ctorParameters: () => [], propDecorators: { initialSelectedIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialSelectedIndex", required: false }] }], initialSelectedMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialSelectedMode", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], tabs: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabs", required: false }] }], activeIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeIndex", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], arrowScrollDistance: [{ type: i0.Input, args: [{ isSignal: true, alias: "arrowScrollDistance", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], behavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "behavior", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], tabItemAlignment: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabItemAlignment", required: false }] }], tabItemWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabItemWidth", required: false }] }], scrollStartLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollStartLabel", required: false }] }], scrollEndLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollEndLabel", required: false }] }], indexChange: [{ type: i0.Output, args: ["indexChange"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
8483
+ }], ctorParameters: () => [], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], tabs: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabs", required: false }] }], arrowScrollDistance: [{ type: i0.Input, args: [{ isSignal: true, alias: "arrowScrollDistance", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], behavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "behavior", required: false }] }], initialSelectedMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialSelectedMode", required: false }] }], initialSelectedIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialSelectedIndex", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], propOverrides: [{ type: i0.Input, args: [{ isSignal: true, alias: "propOverrides", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], alignment: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignment", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], indexChange: [{ type: i0.Output, args: ["indexChange"] }], tabSelect: [{ type: i0.Output, args: ["tabSelect"] }], _ref: [{ type: i0.ViewChild, args: ["_ref", { isSignal: true }] }] } });
8834
8484
 
8835
8485
  const TabsBehaviorList = ['scrollbar', 'arrows'];
8836
8486
  const TabsInitialSelectedModeList = ['auto', 'manually'];
@@ -9267,11 +8917,11 @@ const LabelVariantHorizontalList = ['leading', 'trailing'];
9267
8917
  const AutoCompleteList = ['off', 'on', 'name', 'honorific-prefix', 'given-name', 'additional-name', 'family-name', 'honorific-suffix', 'nickname', 'email', 'username', 'new-password', 'current-password', 'one-time-code', 'organization-title', 'organization', 'street-address', 'shipping', 'billing', 'address-line1', 'address-line2', 'address-line3', 'address-level4', 'address-level3', 'address-level2', 'address-level1', 'country', 'country-name', 'postal-code', 'cc-name', 'cc-given-name', 'cc-additional-name', 'cc-family-name', 'cc-number', 'cc-exp', 'cc-exp-month', 'cc-exp-year', 'cc-csc', 'cc-type', 'transaction-currency', 'transaction-amount', 'language', 'bday', 'bday-day', 'bday-month', 'bday-year', 'sex', 'tel', 'tel-country-code', 'tel-national', 'tel-area-code', 'tel-local', 'tel-extension', 'impp', 'url', 'photo', 'webauthn'];
9268
8918
  const LinkTargetList = ['_self', '_blank', '_parent', '_top'];
9269
8919
  const LinkReferrerPolicyList = ['no-referrer', 'no-referrer-when-downgrade', 'origin', 'origin-when-cross-origin', 'same-origin', 'strict-origin', 'strict-origin-when-cross-origin', 'unsafe-url'];
9270
- const TabItemAlignmentList = ['start', 'center', 'end'];
8920
+ const AlignmentList = ['start', 'center'];
9271
8921
 
9272
8922
  /**
9273
8923
  * Generated bundle index. Do not edit.
9274
8924
  */
9275
8925
 
9276
- export { AccordionBehaviorList, AccordionVariantList, AutoCompleteList, BadgePlacementList, ButtonTypeList, ButtonVariantList, COLOR, COLORS, COLORS_SIMPLE, COLOR_CONST, COLOR_SIMPLE, CardBehaviorList, CardElevationLevelList, CustomSelectDropdownWidthList, CustomSelectListItemTypeList, DBAccordion, DBAccordionItem, DBBadge, DBBrand, DBButton, DBCard, DBCheckbox, DBCustomButton, DBCustomSelect, DBCustomSelectDropdown, DBCustomSelectFormField, DBCustomSelectList, DBCustomSelectListItem, DBDivider, DBDrawer, DBHeader, DBIcon, DBInfotext, DBInput, DBLink, DBNavigation, DBNavigationItem, DBNotification, DBPage, DBPopover, DBRadio, DBSection, DBSelect, DBStack, DBSwitch, DBTabItem, DBTabList, DBTabPanel, DBTabs, DBTag, DBTextarea, DBTooltip, DB_UX_LOCAL_STORAGE_FRAMEWORK, DB_UX_LOCAL_STORAGE_MODE, DEFAULT_BACK, DEFAULT_BURGER_MENU, DEFAULT_CLOSE_BUTTON, DEFAULT_DATALIST_ID_SUFFIX, DEFAULT_ICON, DEFAULT_ID, DEFAULT_INVALID_MESSAGE, DEFAULT_INVALID_MESSAGE_ID_SUFFIX, DEFAULT_LABEL, DEFAULT_LABEL_ID_SUFFIX, DEFAULT_MESSAGE, DEFAULT_MESSAGE_ID_SUFFIX, DEFAULT_PLACEHOLDER, DEFAULT_PLACEHOLDER_ID_SUFFIX, DEFAULT_REMOVE, DEFAULT_ROWS, DEFAULT_SELECTED, DEFAULT_SELECT_ID_SUFFIX, DEFAULT_VALID_MESSAGE, DEFAULT_VALID_MESSAGE_ID_SUFFIX, DEFAULT_VIEWPORT, DENSITIES, DENSITY, DENSITY_CONST, DESKTOP_VIEWPORT, DividerMarginList, DividerVariantList, DocumentClickListener, DocumentScrollListener, DrawerBackdropList, DrawerDirectionList, DrawerPositionList, DrawerVariantList, EmphasisList, FieldSizingList, GapSpacingList, IconWeightList, InputTypeList, LabelVariantHorizontalList, LabelVariantList, LinkContentList, LinkReferrerPolicyList, LinkSizeList, LinkTargetList, LinkVariantList, MarginList, MaxWidthList, MetaNavigationDirective, NavigationContentDirective, NavigationDirective, NavigationItemSafeTriangle, NotificationAriaLiveList, NotificationLinkVariantList, NotificationVariantList, OrientationList, PageDocumentOverflowList, PageVariantList, PlacementHorizontalList, PlacementList, PlacementVerticalList, PopoverDelayList, PopoverWidthList, SEMANTIC, SEMANTICS, SecondaryActionDirective, SelectedTypeList, SemanticList, SizeList, SpacingList, StackAlignmentList, StackDirectionList, StackJustifyContentList, StackVariantList, TESTING_VIEWPORTS, TabItemAlignmentList, TabsBehaviorList, TabsInitialSelectedModeList, TagBehaviorList, TextareaResizeList, TextareaWrapList, TooltipVariantList, ValidationList, WidthList, addAttributeToChildren, cls, delay, getBoolean, getBooleanAsString, getFloatingProps, getHideProp, getInputValue, getNotificationRole, getNumber, getOptionKey, getSearchInput, getStep, handleDataOutside, handleFixedDropdown, handleFixedPopover, hasVoiceOver, isArrayOfStrings, isEventTargetNavigationItem, isIOSSafari, isKeyboardEvent, stringPropVisible, uuid };
8926
+ export { AccordionBehaviorList, AccordionVariantList, AlignmentList, AutoCompleteList, BadgePlacementList, ButtonTypeList, ButtonVariantList, COLOR, COLORS, COLORS_SIMPLE, COLOR_CONST, COLOR_SIMPLE, CardBehaviorList, CardElevationLevelList, CustomSelectDropdownWidthList, CustomSelectListItemTypeList, DBAccordion, DBAccordionItem, DBBadge, DBBrand, DBButton, DBCard, DBCheckbox, DBCustomButton, DBCustomSelect, DBCustomSelectDropdown, DBCustomSelectFormField, DBCustomSelectList, DBCustomSelectListItem, DBDivider, DBDrawer, DBHeader, DBIcon, DBInfotext, DBInput, DBLink, DBNavigation, DBNavigationItem, DBNotification, DBPage, DBPopover, DBRadio, DBSection, DBSelect, DBStack, DBSwitch, DBTabItem, DBTabList, DBTabPanel, DBTabs, DBTag, DBTextarea, DBTooltip, DB_UX_LOCAL_STORAGE_FRAMEWORK, DB_UX_LOCAL_STORAGE_MODE, DEFAULT_BACK, DEFAULT_BURGER_MENU, DEFAULT_CLOSE_BUTTON, DEFAULT_DATALIST_ID_SUFFIX, DEFAULT_ICON, DEFAULT_ID, DEFAULT_INVALID_MESSAGE, DEFAULT_INVALID_MESSAGE_ID_SUFFIX, DEFAULT_LABEL, DEFAULT_LABEL_ID_SUFFIX, DEFAULT_MESSAGE, DEFAULT_MESSAGE_ID_SUFFIX, DEFAULT_PLACEHOLDER, DEFAULT_PLACEHOLDER_ID_SUFFIX, DEFAULT_REMOVE, DEFAULT_ROWS, DEFAULT_SELECTED, DEFAULT_SELECT_ID_SUFFIX, DEFAULT_VALID_MESSAGE, DEFAULT_VALID_MESSAGE_ID_SUFFIX, DEFAULT_VIEWPORT, DENSITIES, DENSITY, DENSITY_CONST, DESKTOP_VIEWPORT, DividerMarginList, DividerVariantList, DocumentClickListener, DocumentScrollListener, DrawerBackdropList, DrawerDirectionList, DrawerPositionList, DrawerVariantList, EmphasisList, FieldSizingList, GapSpacingList, IconWeightList, InputTypeList, LabelVariantHorizontalList, LabelVariantList, LinkContentList, LinkReferrerPolicyList, LinkSizeList, LinkTargetList, LinkVariantList, MarginList, MaxWidthList, MetaNavigationDirective, NavigationContentDirective, NavigationDirective, NavigationItemSafeTriangle, NotificationAriaLiveList, NotificationLinkVariantList, NotificationVariantList, OrientationList, PageDocumentOverflowList, PageVariantList, PlacementHorizontalList, PlacementList, PlacementVerticalList, PopoverDelayList, PopoverWidthList, SEMANTIC, SEMANTICS, SecondaryActionDirective, SelectedTypeList, SemanticList, SizeList, SpacingList, StackAlignmentList, StackDirectionList, StackJustifyContentList, StackVariantList, TESTING_VIEWPORTS, TabsBehaviorList, TabsInitialSelectedModeList, TagBehaviorList, TextareaResizeList, TextareaWrapList, TooltipVariantList, ValidationList, WidthList, addAttributeToChildren, cls, delay, getBoolean, getBooleanAsString, getFloatingProps, getHideProp, getInputValue, getNotificationRole, getNumber, getOptionKey, getSearchInput, getStep, handleDataOutside, handleFixedDropdown, handleFixedPopover, hasVoiceOver, isArrayOfStrings, isEventTargetNavigationItem, isIOSSafari, isKeyboardEvent, stringPropVisible, uuid };
9277
8927
  //# sourceMappingURL=db-ux-ngx-core-components.mjs.map