@i-cell/ids-angular 0.1.5 → 0.1.7

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.
@@ -65,7 +65,7 @@ class IdsIconComponent extends ComponentBaseWithDefaults {
65
65
  return iconName;
66
66
  }
67
67
  const fontNameMappings = this._defaultConfig.fontNameMappings;
68
- const mappedIconName = fontNameMappings[iconName];
68
+ const mappedIconName = fontNameMappings?.[iconName];
69
69
  return mappedIconName ?? iconName;
70
70
  });
71
71
  this._iconSourceType = computed(() => (this.fontIcon() ? IdsIconSource.FONT : IdsIconSource.SVG));
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-icon.mjs","sources":["../../../projects/widgets/icon/tokens/icon-parent.ts","../../../projects/widgets/icon/types/icon-source.type.ts","../../../projects/widgets/icon/types/icon-variant.type.ts","../../../projects/widgets/icon/icon-defaults.ts","../../../projects/widgets/icon/icon.component.ts","../../../projects/widgets/icon/i-cell-ids-angular-icon.ts"],"sourcesContent":["import { IdsIconVariantType } from '../types/icon-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\n\nexport abstract class IdsIconParent {\n public readonly embeddedIconVariant!: Signal<IdsIconVariantType>;\n};\n\nexport const IDS_ICON_PARENT = new InjectionToken<IdsIconParent>(\n 'IDS_ICON_PARENT',\n);\n","export const IdsIconSource = {\n SVG: 'svg',\n FONT: 'font',\n} as const;\n\nexport type IdsIconSourceType = (typeof IdsIconSource)[keyof typeof IdsIconSource];\n","export const IdsIconVariant = {\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n SURFACE: 'surface',\n BRAND: 'brand',\n LIGHT: 'light',\n DARK: 'dark',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n} as const;\n\nexport type IdsIconVariantType = (typeof IdsIconVariant)[keyof typeof IdsIconVariant];\n","import { IdsIconVariant, IdsIconVariantType } from './types/icon-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeCollection, IdsSizeCollectionType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsIconDefaultConfig {\n size?: IdsSizeType\n sizeCollection?: IdsSizeCollectionType\n variant?: IdsIconVariantType\n iconAssetsPath: string\n fontNameMappings: Record<string, string>\n}\n\nexport const IDS_ICON_DEFAULT_CONFIG = new InjectionToken<IdsIconDefaultConfig>(\n 'IDS_ICON_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_ICON_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_ICON_DEFAULT_CONFIG_FACTORY(): Required<IdsIconDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n sizeCollection: IdsSizeCollection.SMALL,\n variant: IdsIconVariant.SURFACE,\n iconAssetsPath: '',\n fontNameMappings: {},\n };\n}\n","import { IDS_ICON_DEFAULT_CONFIG, IDS_ICON_DEFAULT_CONFIG_FACTORY, IdsIconDefaultConfig } from './icon-defaults';\nimport { IDS_ICON_PARENT } from './tokens/icon-parent';\nimport { IdsIconSource } from './types/icon-source.type';\nimport { IdsIconVariantType } from './types/icon-variant.type';\n\nimport { DOCUMENT } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, OnInit, SecurityContext, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { coerceBooleanAttribute, coerceStringAttribute, ComponentBaseWithDefaults, IdsSizeCollectionType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_ICON_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-icon',\n standalone: true,\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.aria-hidden]': 'ariaHidden().toString()',\n '[attr.fontIcon]': 'this._safeFontIcon()',\n 'role': 'img',\n },\n})\nexport class IdsIconComponent extends ComponentBaseWithDefaults<IdsIconDefaultConfig> implements OnInit {\n protected override get _hostName(): string {\n return 'icon';\n }\n\n private readonly _parent = inject(IDS_ICON_PARENT, { optional: true });\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_ICON_DEFAULT_CONFIG);\n\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n private readonly _document = inject(DOCUMENT);\n private readonly _httpClient = inject(HttpClient);\n private readonly _sanitizer = inject(DomSanitizer);\n\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public sizeCollection = input<IdsSizeCollectionType>(this._defaultConfig.sizeCollection);\n public variant = input<IdsIconVariantType>(this._defaultConfig.variant);\n public fontIcon = input<string | null, string>(null, { transform: coerceStringAttribute });\n public svgIconName = input<string | null, string>(null, { alias: 'svgIcon', transform: coerceStringAttribute });\n public ariaHidden = input<boolean, unknown>(true, { alias: 'aria-hidden', transform: coerceBooleanAttribute });\n\n protected _svgIcon: SVGElement | null = null;\n\n protected _safeFontIcon = computed(() => {\n const iconName = this.fontIcon();\n if (!iconName) {\n return iconName;\n }\n const fontNameMappings = this._defaultConfig.fontNameMappings;\n const mappedIconName = fontNameMappings[iconName];\n return mappedIconName ?? iconName;\n });\n\n protected _iconSourceType = computed(() => (this.fontIcon() ? IdsIconSource.FONT : IdsIconSource.SVG));\n\n private _parentOrSelfVariant = computed(() => this._parent?.embeddedIconVariant() ?? this.variant());\n protected _hostClasses = computed(() => this._getHostClasses([\n [\n `${this.sizeCollection()}collection`,\n this.size(),\n ],\n this._parentOrSelfVariant(),\n this._iconSourceType(),\n ]));\n\n private _sanitizeSvgIconEffect = effect(() => {\n const svgIconName = this.svgIconName();\n if (!svgIconName) {\n this._svgIcon = null;\n return;\n }\n\n const svgIconSafeUrl = this._sanitizer.sanitize(\n SecurityContext.RESOURCE_URL,\n this._sanitizer.bypassSecurityTrustResourceUrl(`${this._defaultConfig.iconAssetsPath}/${svgIconName}.svg`),\n );\n\n if (!svgIconSafeUrl) {\n this._svgIcon = null;\n return;\n }\n\n this._getSvgElementSource(svgIconSafeUrl);\n });\n\n public ngOnInit(): void {\n if (this.fontIcon() && this.svgIconName()) {\n throw this._createHostError('Font icon and svg icon can not be used together!');\n }\n }\n\n private _getSvgElementSource(url: string): void {\n this._httpClient\n .get(url, { responseType: 'text' })\n .pipe(\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe((svg) => {\n this._svgIcon = this._getSvgElement(this._sanitizer.bypassSecurityTrustHtml(svg));\n this._setSvgElement(this._svgIcon);\n });\n }\n\n private _setSvgElement(svg: SVGElement): void {\n this._clearSvgElement();\n\n this._elementRef.nativeElement.appendChild(svg);\n }\n\n private _clearSvgElement(): void {\n const layoutElement: HTMLElement = this._elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n child.remove();\n }\n }\n }\n\n private _getSvgElement(safeHtml: SafeHtml): SVGElement {\n const div = this._document.createElement('div');\n div.innerHTML = safeHtml as unknown as string;\n const svg = div.querySelector('svg');\n\n if (!svg) {\n throw this._createHostError('Svg element creation failed!');\n }\n\n return svg;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MAIsB,aAAa,CAAA;AAElC;AAAA;MAEY,eAAe,GAAG,IAAI,cAAc,CAC/C,iBAAiB;;ACTN,MAAA,aAAa,GAAG;AAC3B,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,IAAI,EAAE,MAAM;;;ACFD,MAAA,cAAc,GAAG;AAC5B,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,OAAO;;;MCIH,uBAAuB,GAAG,IAAI,cAAc,CACvD,yBAAyB,EACzB;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,+BAA+B;AACzC,CAAA;SAGa,+BAA+B,GAAA;IAC7C,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,cAAc,EAAE,iBAAiB,CAAC,KAAK;QACvC,OAAO,EAAE,cAAc,CAAC,OAAO;AAC/B,QAAA,cAAc,EAAE,EAAE;AAClB,QAAA,gBAAgB,EAAE,EAAE;KACrB;AACH;;ACjBA,MAAM,aAAa,GAAG,+BAA+B,EAAE;AAcjD,MAAO,gBAAiB,SAAQ,yBAA+C,CAAA;AAZrF,IAAA,WAAA,GAAA;;QAiBmB,IAAO,CAAA,OAAA,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACnD,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,uBAAuB,CAAC;AAEjF,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,EAAC,UAAuB,EAAC;AAC7C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;QAE3C,IAAI,CAAA,IAAA,GAAG,KAAK,CAAc,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QACnD,IAAc,CAAA,cAAA,GAAG,KAAK,CAAwB,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;QACjF,IAAO,CAAA,OAAA,GAAG,KAAK,CAAqB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;QAChE,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAwB,IAAI,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AACnF,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAwB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AACxG,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAmB,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;QAEpG,IAAQ,CAAA,QAAA,GAAsB,IAAI;AAElC,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AACtC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,CAAC,QAAQ,EAAE;AACb,gBAAA,OAAO,QAAQ;;AAEjB,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB;AAC7D,YAAA,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC;YACjD,OAAO,cAAc,IAAI,QAAQ;AACnC,SAAC,CAAC;QAEQ,IAAe,CAAA,eAAA,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AAE9F,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1F,IAAY,CAAA,YAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC;AAC3D,YAAA;AACE,gBAAA,CAAA,EAAG,IAAI,CAAC,cAAc,EAAE,CAAY,UAAA,CAAA;gBACpC,IAAI,CAAC,IAAI,EAAE;AACZ,aAAA;YACD,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,eAAe,EAAE;AACvB,SAAA,CAAC,CAAC;AAEK,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,MAAK;AAC3C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;YACtC,IAAI,CAAC,WAAW,EAAE;AAChB,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;gBACpB;;AAGF,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAC7C,eAAe,CAAC,YAAY,EAC5B,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAG,EAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAI,CAAA,EAAA,WAAW,CAAM,IAAA,CAAA,CAAC,CAC3G;YAED,IAAI,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;gBACpB;;AAGF,YAAA,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;AAC3C,SAAC,CAAC;AAkDH;AA/GC,IAAA,IAAuB,SAAS,GAAA;AAC9B,QAAA,OAAO,MAAM;;IA8DR,QAAQ,GAAA;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACzC,YAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,kDAAkD,CAAC;;;AAI3E,IAAA,oBAAoB,CAAC,GAAW,EAAA;AACtC,QAAA,IAAI,CAAC;aACF,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;AACjC,aAAA,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AAErC,aAAA,SAAS,CAAC,CAAC,GAAG,KAAI;AACjB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;AACpC,SAAC,CAAC;;AAGE,IAAA,cAAc,CAAC,GAAe,EAAA;QACpC,IAAI,CAAC,gBAAgB,EAAE;QAEvB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC;;IAGzC,gBAAgB,GAAA;AACtB,QAAA,MAAM,aAAa,GAAgB,IAAI,CAAC,WAAW,CAAC,aAAa;AACjE,QAAA,IAAI,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM;QAEhD,OAAO,UAAU,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC;AAElD,YAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE;gBAClE,KAAK,CAAC,MAAM,EAAE;;;;AAKZ,IAAA,cAAc,CAAC,QAAkB,EAAA;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;AAC/C,QAAA,GAAG,CAAC,SAAS,GAAG,QAA6B;QAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC;QAEpC,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,8BAA8B,CAAC;;AAG7D,QAAA,OAAO,GAAG;;8GA9GD,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,6gCATjB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FASD,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE;AACJ,wBAAA,oBAAoB,EAAE,yBAAyB;AAC/C,wBAAA,iBAAiB,EAAE,sBAAsB;AACzC,wBAAA,MAAM,EAAE,KAAK;AACd,qBAAA;AACF,iBAAA;;;ACzBD;;AAEG;;;;"}
1
+ {"version":3,"file":"i-cell-ids-angular-icon.mjs","sources":["../../../projects/widgets/icon/tokens/icon-parent.ts","../../../projects/widgets/icon/types/icon-source.type.ts","../../../projects/widgets/icon/types/icon-variant.type.ts","../../../projects/widgets/icon/icon-defaults.ts","../../../projects/widgets/icon/icon.component.ts","../../../projects/widgets/icon/i-cell-ids-angular-icon.ts"],"sourcesContent":["import { IdsIconVariantType } from '../types/icon-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\n\nexport abstract class IdsIconParent {\n public readonly embeddedIconVariant!: Signal<IdsIconVariantType>;\n};\n\nexport const IDS_ICON_PARENT = new InjectionToken<IdsIconParent>(\n 'IDS_ICON_PARENT',\n);\n","export const IdsIconSource = {\n SVG: 'svg',\n FONT: 'font',\n} as const;\n\nexport type IdsIconSourceType = (typeof IdsIconSource)[keyof typeof IdsIconSource];\n","export const IdsIconVariant = {\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n SURFACE: 'surface',\n BRAND: 'brand',\n LIGHT: 'light',\n DARK: 'dark',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n} as const;\n\nexport type IdsIconVariantType = (typeof IdsIconVariant)[keyof typeof IdsIconVariant];\n","import { IdsIconVariant, IdsIconVariantType } from './types/icon-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeCollection, IdsSizeCollectionType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsIconDefaultConfig {\n size?: IdsSizeType\n sizeCollection?: IdsSizeCollectionType\n variant?: IdsIconVariantType\n iconAssetsPath: string\n fontNameMappings?: Record<string, string>\n}\n\nexport const IDS_ICON_DEFAULT_CONFIG = new InjectionToken<IdsIconDefaultConfig>(\n 'IDS_ICON_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_ICON_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_ICON_DEFAULT_CONFIG_FACTORY(): Required<IdsIconDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n sizeCollection: IdsSizeCollection.SMALL,\n variant: IdsIconVariant.SURFACE,\n iconAssetsPath: '',\n fontNameMappings: {},\n };\n}\n","import { IDS_ICON_DEFAULT_CONFIG, IDS_ICON_DEFAULT_CONFIG_FACTORY, IdsIconDefaultConfig } from './icon-defaults';\nimport { IDS_ICON_PARENT } from './tokens/icon-parent';\nimport { IdsIconSource } from './types/icon-source.type';\nimport { IdsIconVariantType } from './types/icon-variant.type';\n\nimport { DOCUMENT } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, OnInit, SecurityContext, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { coerceBooleanAttribute, coerceStringAttribute, ComponentBaseWithDefaults, IdsSizeCollectionType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_ICON_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-icon',\n standalone: true,\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.aria-hidden]': 'ariaHidden().toString()',\n '[attr.fontIcon]': 'this._safeFontIcon()',\n 'role': 'img',\n },\n})\nexport class IdsIconComponent extends ComponentBaseWithDefaults<IdsIconDefaultConfig> implements OnInit {\n protected override get _hostName(): string {\n return 'icon';\n }\n\n private readonly _parent = inject(IDS_ICON_PARENT, { optional: true });\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_ICON_DEFAULT_CONFIG);\n\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n private readonly _document = inject(DOCUMENT);\n private readonly _httpClient = inject(HttpClient);\n private readonly _sanitizer = inject(DomSanitizer);\n\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public sizeCollection = input<IdsSizeCollectionType>(this._defaultConfig.sizeCollection);\n public variant = input<IdsIconVariantType>(this._defaultConfig.variant);\n public fontIcon = input<string | null, string>(null, { transform: coerceStringAttribute });\n public svgIconName = input<string | null, string>(null, { alias: 'svgIcon', transform: coerceStringAttribute });\n public ariaHidden = input<boolean, unknown>(true, { alias: 'aria-hidden', transform: coerceBooleanAttribute });\n\n protected _svgIcon: SVGElement | null = null;\n\n protected _safeFontIcon = computed(() => {\n const iconName = this.fontIcon();\n if (!iconName) {\n return iconName;\n }\n const fontNameMappings = this._defaultConfig.fontNameMappings;\n const mappedIconName = fontNameMappings?.[iconName];\n return mappedIconName ?? iconName;\n });\n\n protected _iconSourceType = computed(() => (this.fontIcon() ? IdsIconSource.FONT : IdsIconSource.SVG));\n\n private _parentOrSelfVariant = computed(() => this._parent?.embeddedIconVariant() ?? this.variant());\n protected _hostClasses = computed(() => this._getHostClasses([\n [\n `${this.sizeCollection()}collection`,\n this.size(),\n ],\n this._parentOrSelfVariant(),\n this._iconSourceType(),\n ]));\n\n private _sanitizeSvgIconEffect = effect(() => {\n const svgIconName = this.svgIconName();\n if (!svgIconName) {\n this._svgIcon = null;\n return;\n }\n\n const svgIconSafeUrl = this._sanitizer.sanitize(\n SecurityContext.RESOURCE_URL,\n this._sanitizer.bypassSecurityTrustResourceUrl(`${this._defaultConfig.iconAssetsPath}/${svgIconName}.svg`),\n );\n\n if (!svgIconSafeUrl) {\n this._svgIcon = null;\n return;\n }\n\n this._getSvgElementSource(svgIconSafeUrl);\n });\n\n public ngOnInit(): void {\n if (this.fontIcon() && this.svgIconName()) {\n throw this._createHostError('Font icon and svg icon can not be used together!');\n }\n }\n\n private _getSvgElementSource(url: string): void {\n this._httpClient\n .get(url, { responseType: 'text' })\n .pipe(\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe((svg) => {\n this._svgIcon = this._getSvgElement(this._sanitizer.bypassSecurityTrustHtml(svg));\n this._setSvgElement(this._svgIcon);\n });\n }\n\n private _setSvgElement(svg: SVGElement): void {\n this._clearSvgElement();\n\n this._elementRef.nativeElement.appendChild(svg);\n }\n\n private _clearSvgElement(): void {\n const layoutElement: HTMLElement = this._elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n child.remove();\n }\n }\n }\n\n private _getSvgElement(safeHtml: SafeHtml): SVGElement {\n const div = this._document.createElement('div');\n div.innerHTML = safeHtml as unknown as string;\n const svg = div.querySelector('svg');\n\n if (!svg) {\n throw this._createHostError('Svg element creation failed!');\n }\n\n return svg;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -6,10 +6,10 @@ import { SelectionModel } from '@angular/cdk/collections';
6
6
  import { hasModifierKey } from '@angular/cdk/keycodes';
7
7
  import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
8
8
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
- import { NgForm, FormGroupDirective, NgControl, NG_VALUE_ACCESSOR } from '@angular/forms';
9
+ import { NgForm, FormGroupDirective, NgControl, ValueChangeEvent, NG_VALUE_ACCESSOR } from '@angular/forms';
10
10
  import { ComponentBaseWithDefaults, coerceNumberAttribute, createClassList } from '@i-cell/ids-angular/core';
11
11
  import { IdsIconComponent } from '@i-cell/ids-angular/icon';
12
- import { Subject, first } from 'rxjs';
12
+ import { Subject, filter, first } from 'rxjs';
13
13
 
14
14
  const IDS_SELECT_DEFAULT_CONFIG = new InjectionToken('IDS_SELECT_DEFAULT_CONFIG', {
15
15
  providedIn: 'root',
@@ -178,6 +178,16 @@ class IdsSelectComponent extends ComponentBaseWithDefaults {
178
178
  throw this._createHostError('Select must be in a form field');
179
179
  }
180
180
  this._selectionModel = new SelectionModel(this.multiSelect(), undefined, false, this.valueCompareFn());
181
+ queueMicrotask(() => {
182
+ const control = this.ngControl()?.control;
183
+ if (control) {
184
+ control.events
185
+ .pipe(filter((event) => event instanceof ValueChangeEvent), takeUntilDestroyed(this._destroyRef))
186
+ .subscribe(() => {
187
+ this._changeDetectorRef.markForCheck();
188
+ });
189
+ }
190
+ });
181
191
  this._initErrorStateTracker();
182
192
  }
183
193
  ngAfterContentInit() {
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-select.mjs","sources":["../../../projects/widgets/select/select-defaults.ts","../../../projects/widgets/select/select-trigger.directive.ts","../../../projects/widgets/select/select-positions.ts","../../../projects/widgets/select/select.component.ts","../../../projects/widgets/select/select.component.html","../../../projects/widgets/select/i-cell-ids-angular-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AbstractErrorStateMatcher, AbstractSuccessStateMatcher, ErrorStateMatcher, SuccessStateMatcher } from '@i-cell/ids-angular/forms';\n\nexport interface IdsSelectDefaultConfig {\n errorStateMatcher?: typeof AbstractErrorStateMatcher\n successStateMatcher?: typeof AbstractSuccessStateMatcher\n typeaheadDebounceInterval: number\n}\n\nexport const IDS_SELECT_DEFAULT_CONFIG = new InjectionToken<IdsSelectDefaultConfig>(\n 'IDS_SELECT_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SELECT_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SELECT_DEFAULT_CONFIG_FACTORY(): Required<IdsSelectDefaultConfig> {\n return {\n errorStateMatcher: ErrorStateMatcher,\n successStateMatcher: SuccessStateMatcher,\n typeaheadDebounceInterval: 200,\n };\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ids-select-trigger',\n standalone: true,\n})\nexport class IdsSelectTriggerDirective {\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const selectConnectedPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ids-select-panel-above',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ids-select-panel-above',\n },\n];\n","import { IDS_SELECT_DEFAULT_CONFIG, IDS_SELECT_DEFAULT_CONFIG_FACTORY, IdsSelectDefaultConfig } from './select-defaults';\nimport { selectConnectedPositions } from './select-positions';\nimport { IdsSelectTriggerDirective } from './select-trigger.directive';\n\nimport { ActiveDescendantKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, contentChildren, ElementRef, inject, input, OnInit, signal, viewChild, ViewEncapsulation, AfterContentInit, forwardRef, contentChild, OnDestroy, effect, isDevMode, booleanAttribute, Injector, AfterViewInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormGroupDirective, NG_VALUE_ACCESSOR, NgControl, NgForm } from '@angular/forms';\nimport { coerceNumberAttribute, ComponentBaseWithDefaults, createClassList } from '@i-cell/ids-angular/core';\nimport { IDS_FORM_FIELD_CONTROL, IdsFormFieldControl, IdsOptionComponent, IdsOptionGroupComponent, AbstractSuccessStateMatcher, AbstractErrorStateMatcher, ErrorStateTracker, SuccessStateTracker, _getOptionScrollPosition, _countGroupLabelsBeforeOption, IdsOptionSelectionChange, IDS_OPTION_PARENT_COMPONENT, formFieldControlClass, IdsFormFieldComponent, IDS_OPTION_GROUP } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { first, Subject, Subscription } from 'rxjs';\n\nconst defaultConfig = IDS_SELECT_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: `ids-select[ngModel]:not([formControl]):not([formControlName]),\n ids-select[formControl]:not([ngModel]):not([formControlName]),\n ids-select[formControlName]:not([ngModel]):not([formControl])`,\n imports: [\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n IdsIconComponent,\n ],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: IDS_FORM_FIELD_CONTROL, useExisting: IdsSelectComponent },\n { provide: IDS_OPTION_PARENT_COMPONENT, useExisting: IdsSelectComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsSelectComponent),\n multi: true,\n },\n ],\n host: {\n 'role': 'select',\n 'aria-autocomplete': 'none',\n 'aria-haspopup': 'listbox',\n '[attr.tabindex]': 'disabled() ? -1 : tabIndex()',\n '[attr.aria-controls]': 'isPanelOpen() ? id() + \"-panel\" : null',\n '[attr.aria-owns]': 'isPanelOpen() ? id() + \"-panel\" : null',\n '[attr.aria-expanded]': 'isPanelOpen()',\n '[attr.aria-label]': 'ariaLabel() || null',\n '[attr.aria-labelledby]': 'ariaLabelledby() || null',\n '[attr.aria-required]': 'required().toString()',\n '[attr.aria-disabled]': 'disabled().toString()',\n '[attr.aria-invalid]': 'hasErrorState()',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': 'focus()',\n '(blur)': '_onBlur()',\n },\n})\nexport class IdsSelectComponent\n extends ComponentBaseWithDefaults<IdsSelectDefaultConfig>\n implements IdsFormFieldControl, ControlValueAccessor, OnInit, AfterContentInit, AfterViewInit, OnDestroy {\n protected override get _hostName(): string {\n return 'select';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SELECT_DEFAULT_CONFIG);\n private readonly _injector = inject(Injector);\n private readonly _elementRef = inject(ElementRef);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _liveAnnouncer = inject(LiveAnnouncer);\n private readonly _parentFormField = inject(IdsFormFieldComponent);\n private readonly _parentForm = inject(NgForm, { optional: true });\n private readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\n protected readonly _connectedPositions = selectConnectedPositions;\n public readonly errorStateChanges = new Subject<void>();\n public readonly successStateChanges = new Subject<void>();\n\n protected _preferredOverlayOrigin: CdkOverlayOrigin | ElementRef | undefined;\n protected _overlayWidth: string | number = 0;\n\n public multiSelect = input<boolean>(false);\n public placeholder = input<string>('');\n public required = input<boolean, unknown>(false, { transform: booleanAttribute });\n public readonly = input<boolean, unknown>(false, { transform: booleanAttribute });\n public canHandleSuccessState = input<boolean>(false);\n public errorStateMatcher = input<AbstractErrorStateMatcher>(inject(this._defaultConfig.errorStateMatcher));\n public successStateMatcher = input<AbstractSuccessStateMatcher>(inject(this._defaultConfig.successStateMatcher));\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledby = input<string>('', { alias: 'aria-labelledby' });\n public valueCompareFn = input<(o1: unknown, o2: unknown) => boolean>((o1: unknown, o2: unknown) => o1 === o2);\n public sortCompareFn = input<(a: IdsOptionComponent, b: IdsOptionComponent, options: Readonly<IdsOptionComponent[]>) => number>();\n public tabIndex = input<number, unknown>(0, { transform: coerceNumberAttribute });\n public typeaheadDebounceInterval = input<number, unknown>(\n this._defaultConfig.typeaheadDebounceInterval, { transform: coerceNumberAttribute },\n );\n\n public ngControl = signal<NgControl | null>(null);\n\n /** Handles the `disabled` input binding */\n public disabledInput = input<boolean, unknown>(false, { transform: booleanAttribute, alias: 'disabled' });\n /** Stores the `disabled` state internally */\n private _disabled = signal(this.disabledInput());\n /** The input's `disabled` state as a read-only signal (to enable/disable the contol programmatically, use the FormControl's related API) */\n public disabled = computed(() => this._disabled());\n\n /** This effect is triggered if the `disabled` attribute binding changes and delegates the change to the underlying FormControl */\n private _disabledInputEffect = effect(() => {\n const enableOrDisable = this.disabledInput() ? 'disable' : 'enable';\n const controlDir = this.ngControl();\n\n // The NgControl's `control` property might not be initialized so we delay the enable/disable call\n // (the FormControl's enable/disable method call will trigger the CVA's setDisabledState() callback\n // which sets the \"main\" disabled signal)\n queueMicrotask(() => controlDir?.control?.[enableOrDisable]());\n });\n\n public isPanelOpen = signal<boolean>(false);\n public hasErrorState = signal<boolean>(false);\n public hasSuccessState = signal<boolean>(false);\n public parentSize = computed(() => this._parentFormField.parentOrSelfSize());\n public parentVariant = computed(() => this._parentFormField.parentOrSelfVariant());\n private _focused = signal<boolean>(false);\n\n private _canOpen = computed(() => !this.isPanelOpen() && !this.disabled() && !this.readonly() && this.options().length > 0);\n protected _hostClasses = computed(() => this._getHostClasses([\n this.parentSize(),\n this.parentVariant(),\n this.disabled() ? 'disabled' : null,\n this.readonly() ? 'readonly' : null,\n ], [formFieldControlClass]));\n\n protected _panelClasses = computed(() => createClassList(`${this._hostClassName}-panel`, [\n this.parentSize(),\n this.parentVariant(),\n ]));\n\n private _panel = viewChild<ElementRef<HTMLElement>>('panel');\n private _overlayDir = viewChild(CdkConnectedOverlay);\n public options = contentChildren<IdsOptionComponent>(IdsOptionComponent, { descendants: true });\n public optionGroups = contentChildren<IdsOptionGroupComponent>(IDS_OPTION_GROUP, { descendants: true });\n protected _customTrigger = contentChild(IdsSelectTriggerDirective);\n\n private _errorStateTracker?: ErrorStateTracker;\n private _successStateTracker?: SuccessStateTracker;\n private _successStateSubscription?: Subscription;\n\n private _canHandleSuccessStateEffect = effect(() => {\n this._setSuccessStateTracker(this.canHandleSuccessState());\n });\n\n private _keyManager?: ActiveDescendantKeyManager<IdsOptionComponent>;\n private _rawValue: unknown | unknown[];\n private _selectionModel?: SelectionModel<IdsOptionComponent>;\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => unknown = () => { };\n\n protected get _empty(): boolean {\n return Boolean(this._selectionModel?.isEmpty());\n }\n\n public get selected(): IdsOptionComponent | IdsOptionComponent[] | undefined {\n return this.multiSelect() ? this._selectionModel?.selected : this._selectionModel?.selected?.[0];\n }\n\n protected get _triggerValue(): string {\n if (this._empty) {\n return '';\n }\n\n if (this.multiSelect()) {\n const selectedOptions = this._selectionModel?.selected?.map((option) => option.viewValue());\n return selectedOptions?.join(', ') || '';\n }\n\n return this._selectionModel?.selected?.[0].viewValue() || '';\n }\n\n constructor() {\n super();\n effect(() => {\n this._keyManager?.withTypeAhead(this.typeaheadDebounceInterval());\n });\n\n // Get the NgControl reference as soon as we can\n queueMicrotask(() => this.ngControl.set(this._injector.get(NgControl, null, { self: true })));\n }\n\n public ngOnInit(): void {\n if (!this._parentFormField) {\n throw this._createHostError('Select must be in a form field');\n }\n this._selectionModel = new SelectionModel<IdsOptionComponent>(this.multiSelect(), undefined, false, this.valueCompareFn());\n this._initErrorStateTracker();\n }\n\n public ngAfterContentInit(): void {\n this._initKeyManager();\n this._selectionModel?.select(...this.options().filter((item) => item.selected()));\n this._subscribeOptionChanges();\n }\n\n public ngAfterViewInit(): void {\n const controlDir = this.ngControl();\n if (controlDir?.control) {\n controlDir.control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.updateErrorAndSuccessState());\n }\n }\n\n public updateErrorAndSuccessState(): void {\n this._errorStateTracker?.updateErrorState();\n this._successStateTracker?.updateSuccessState();\n }\n\n public ngOnDestroy(): void {\n this._keyManager?.destroy();\n }\n\n private _initErrorStateTracker(): void {\n this._errorStateTracker = new ErrorStateTracker(\n this.errorStateMatcher(),\n this.ngControl(),\n this._parentFormGroup,\n this._parentForm,\n this.errorStateChanges,\n );\n\n this.errorStateChanges.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this.hasErrorState.set(this._errorStateTracker!.hasErrorState));\n }\n\n protected _setSuccessStateTracker(canHandleSuccessState: boolean): void {\n if (canHandleSuccessState) {\n this._successStateTracker = new SuccessStateTracker(\n this.successStateMatcher(),\n this.ngControl(),\n this._parentFormGroup,\n this._parentForm,\n this.successStateChanges,\n );\n\n this._successStateSubscription = this.successStateChanges.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this.hasSuccessState.set(this._successStateTracker!.hasSuccessState));\n\n this._successStateTracker.updateSuccessState();\n } else {\n this._successStateTracker = undefined;\n this._successStateSubscription?.unsubscribe();\n this.hasSuccessState.set(false);\n }\n }\n\n private _initKeyManager(): void {\n this._keyManager = new ActiveDescendantKeyManager<IdsOptionComponent>(this.options())\n .withTypeAhead(this.typeaheadDebounceInterval())\n .withVerticalOrientation()\n .withHorizontalOrientation('ltr')\n .withHomeAndEnd()\n .withPageUpDown()\n .withAllowedModifierKeys(['shiftKey'])\n .skipPredicate(this._skipPredicate);\n\n this._keyManager.tabOut.subscribe(() => {\n if (this.isPanelOpen()) {\n if (!this.multiSelect() && this._keyManager?.activeItem) {\n this._keyManager.activeItem.selectViaInteraction();\n }\n this.focus();\n this.close();\n }\n });\n\n this._keyManager.change.subscribe(() => {\n if (this.isPanelOpen() && this._panel()) {\n this._scrollOptionIntoView(this._keyManager?.activeItemIndex || 0);\n }\n });\n }\n\n private _subscribeOptionChanges(): void {\n this.options().forEach((option) => {\n option.onSelectionChange.subscribe(\n (change) => {\n this._handleOptionChange(change);\n },\n );\n });\n }\n\n private _handleOptionChange(change: IdsOptionSelectionChange): void {\n const { source, selected, isUserInput } = change;\n if (!this.multiSelect()) {\n this._clearSelection();\n }\n source.selected.set(selected);\n\n if (isUserInput) {\n this._keyManager?.setActiveItem(source);\n }\n\n if (isUserInput && !this.multiSelect() && this.isPanelOpen()) {\n this.close();\n this.focus();\n }\n\n if (this.multiSelect()) {\n this._sortValues();\n\n if (isUserInput) {\n this.focus();\n }\n }\n\n if (selected) {\n this._selectionModel?.select(source);\n } else {\n this._selectionModel?.deselect(source);\n }\n this._handleChange();\n this._onTouched();\n }\n\n protected _handleKeydown(event: KeyboardEvent): void {\n if (!this.disabled() && !this.readonly()) {\n this.isPanelOpen() ? this._handleOpenedPanelKeydown(event) : this._handleClosedPanelKeydown(event);\n }\n }\n\n private _handleClosedPanelKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey =\n key === 'ArrowDown' ||\n key === 'ArrowUp' ||\n key === 'ArrowLeft' ||\n key === 'ArrowRight';\n const isOpenKey = key === 'Enter' || key === ' ';\n\n if ((!manager?.isTyping() && isOpenKey && !hasModifierKey(event)) || isArrowKey) {\n event.preventDefault();\n this.open();\n } else if (!this.multiSelect()) {\n const previouslySelectedOption = this.selected;\n manager?.onKeydown(event);\n const selectedOption = this.selected as IdsOptionComponent;\n\n if (selectedOption?.viewValue() && previouslySelectedOption !== selectedOption) {\n // eslint-disable-next-line no-magic-numbers\n this._liveAnnouncer.announce(selectedOption.viewValue(), 10000);\n }\n }\n }\n\n private _handleOpenedPanelKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey = key === 'ArrowDown' || key === 'ArrowUp';\n const isTyping = manager?.isTyping();\n\n if (isArrowKey && event.altKey) {\n event.preventDefault();\n this.close();\n } else if (\n !isTyping &&\n (key === 'Enter' || key === ' ') &&\n manager?.activeItem &&\n !hasModifierKey(event)\n ) {\n event.preventDefault();\n manager.activeItem.selectViaInteraction();\n } else if (!isTyping && this.multiSelect() && key === 'a' && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options().some((opt) => !opt.disabled && !opt.selected());\n\n this.options().forEach((option) => {\n if (!option.disabled) {\n hasDeselectedOptions ? option.select() : option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = manager?.activeItemIndex;\n\n manager?.onKeydown(event);\n\n if (\n this.multiSelect() &&\n isArrowKey &&\n event.shiftKey &&\n manager?.activeItem &&\n manager?.activeItemIndex !== previouslyFocusedIndex\n ) {\n manager?.activeItem.selectViaInteraction();\n }\n }\n }\n\n private _positioningSettled(): void {\n this._scrollOptionIntoView(this._keyManager?.activeItemIndex || 0);\n }\n\n private _scrollOptionIntoView(index: number): void {\n const option = this.options()[index];\n\n if (option) {\n const panel: HTMLElement | undefined = this._panel()!.nativeElement;\n const labelCount = _countGroupLabelsBeforeOption(index, this.options(), this.optionGroups());\n const element = option.getHostElement();\n\n if (index === 0 && labelCount === 1) {\n panel.scrollTop = 0;\n } else {\n panel.scrollTop = _getOptionScrollPosition(\n element.offsetTop,\n element.offsetHeight,\n panel.scrollTop,\n panel.offsetHeight,\n );\n }\n }\n }\n\n private _sortValues(): void {\n if (this.multiSelect()) {\n const options = this.options();\n\n const sortComparator = this.sortCompareFn();\n this._selectionModel?.sort((a, b) => (sortComparator\n ? sortComparator(a, b, options)\n : options.indexOf(a) - options.indexOf(b)));\n }\n }\n\n private _getOverlayWidth(\n preferredOrigin: ElementRef<ElementRef> | CdkOverlayOrigin | undefined,\n ): string | number {\n const refToMeasure\n = preferredOrigin instanceof CdkOverlayOrigin\n ? preferredOrigin.elementRef\n : preferredOrigin || this._elementRef;\n return refToMeasure.nativeElement.getBoundingClientRect().width;\n }\n\n protected _panelAttached(): void {\n this._overlayDir()?.positionChange.pipe(first()).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this._positioningSettled();\n });\n }\n\n public toggle(): void {\n this.isPanelOpen() ? this.close() : this.open();\n }\n\n public open(): void {\n if (!this._canOpen()) {\n return;\n }\n\n if (this._parentFormField) {\n this._preferredOverlayOrigin = this._parentFormField?.getConnectedOverlayOrigin();\n }\n\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n this.isPanelOpen.set(true);\n this._keyManager?.withHorizontalOrientation(null);\n this._highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n }\n\n public close(): void {\n if (this.isPanelOpen()) {\n this.isPanelOpen.set(false);\n this._keyManager?.withHorizontalOrientation('ltr');\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n }\n }\n\n // #region ControlValueAccessor implementation\n public writeValue(value: unknown | unknown[]): void {\n this._setSelectionByValue(value);\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => unknown): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n this._changeDetectorRef.markForCheck();\n }\n // #endregion\n\n private _setSelectionByValue(value: unknown | unknown[]): void {\n this.options().forEach((option) => option.setInactiveStyles());\n this._selectionModel?.clear();\n this._rawValue = value;\n\n if (this.options().length === 0) {\n return;\n }\n\n if (this.multiSelect() && value) {\n if (!Array.isArray(value)) {\n throw this._createHostError('value must be an array in multiple-selection mode');\n }\n\n value.forEach((currentValue: unknown) => this._selectValue(currentValue));\n this._sortValues();\n } else {\n const correspondingOption = this._selectValue(value);\n if (correspondingOption) {\n this._keyManager?.updateActiveItem(correspondingOption);\n } else if (!this.isPanelOpen()) {\n this._keyManager?.updateActiveItem(-1);\n }\n }\n }\n\n private _selectValue(value: unknown): IdsOptionComponent | undefined {\n const correspondingOption = this.options().find((option) => {\n if (this._selectionModel?.isSelected(option)) {\n return false;\n }\n\n try {\n const valueCompareFn = this.valueCompareFn();\n return option.value() != null && valueCompareFn && valueCompareFn(option.value(), value);\n } catch (error) {\n if (isDevMode()) {\n console.warn(error);\n }\n return false;\n }\n });\n\n if (correspondingOption) {\n correspondingOption.selected.set(true);\n this._selectionModel?.select(correspondingOption);\n }\n\n return correspondingOption;\n }\n\n private _clearSelection(): void {\n this._selectionModel?.clear();\n this.options().forEach((option) => {\n option.selected.set(false);\n });\n }\n\n private _handleChange(): void {\n const selectionModelValues = this._selectionModel?.selected?.map((item) => item.value());\n if (this.multiSelect()) {\n this._onChange(selectionModelValues);\n } else {\n this._onChange(selectionModelValues?.[0]);\n }\n this._changeDetectorRef.markForCheck();\n }\n\n private _skipPredicate = (option: IdsOptionComponent): boolean => {\n if (this.isPanelOpen()) {\n return false;\n }\n\n return option.disabledInput();\n };\n\n private _highlightCorrectOption(): void {\n if (this._keyManager) {\n if (this._empty) {\n let firstEnabledOptionIndex = -1;\n for (let index = 0; index < this.options().length; index++) {\n const option = this.options()[index]!;\n if (!option.disabled) {\n firstEnabledOptionIndex = index;\n break;\n }\n }\n\n this._keyManager.setActiveItem(firstEnabledOptionIndex);\n } else {\n if (this._selectionModel) {\n this._keyManager.setActiveItem(this._selectionModel.selected[0]);\n }\n }\n }\n }\n\n public isOptionPreSelectedByValue(optionValue: unknown): boolean {\n if (this._rawValue === undefined) {\n return false;\n }\n\n if (this.multiSelect() && Array.isArray(this._rawValue)) {\n return this._rawValue.some((value) => optionValue != null && value === optionValue);\n }\n return optionValue === this._rawValue;\n }\n\n public setDescribedByIds(ids: string[]): void {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n\n private _onFocus(): void {\n if (!this.disabled()) {\n this._focused.set(true);\n }\n }\n\n private _onBlur(): void {\n this._focused.set(false);\n this._keyManager?.cancelTypeahead();\n\n if (!this.disabled() && !this.isPanelOpen()) {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _getAriaActiveDescendant(): string | null {\n if (this.isPanelOpen() && this._keyManager?.activeItem) {\n return this._keyManager.activeItem.id();\n }\n\n return null;\n }\n\n public focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n public onContainerClick = (): void => {\n if (!this._focused && !this.readonly() && !this.disabled()) {\n this.focus();\n this.open();\n }\n };\n}\n","<div #trigger #fallbackOverlayOrigin=\"cdkOverlayOrigin\" cdk-overlay-origin class=\"ids-select__trigger\" (click)=\"open()\">\n <div class=\"ids-select__value\">\n @if (_empty) {\n <span class=\"ids-select__placeholder\">{{ placeholder() }}</span>\n } @else {\n <span class=\"ids-select__value-text\">\n @if (_customTrigger()) {\n <ng-content select=\"ids-select-trigger\" />\n } @else {\n {{ _triggerValue }}\n }\n </span>\n }\n </div>\n\n <div class=\"ids-select__arrow\">\n <ids-icon fontIcon=\"chevron-down\" />\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOrigin]=\"_preferredOverlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen()\"\n [cdkConnectedOverlayPositions]=\"_connectedPositions\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth\"\n [cdkConnectedOverlayPush]=\"true\"\n (overlayOutsideClick)=\"close()\"\n (attach)=\"_panelAttached()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id() + '-panel'\"\n [attr.aria-multiselectable]=\"multiSelect()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [class]=\"_panelClasses()\"\n (keydown)=\"_handleKeydown($event)\"\n >\n <ng-content />\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-select.mjs","sources":["../../../projects/widgets/select/select-defaults.ts","../../../projects/widgets/select/select-trigger.directive.ts","../../../projects/widgets/select/select-positions.ts","../../../projects/widgets/select/select.component.ts","../../../projects/widgets/select/select.component.html","../../../projects/widgets/select/i-cell-ids-angular-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AbstractErrorStateMatcher, AbstractSuccessStateMatcher, ErrorStateMatcher, SuccessStateMatcher } from '@i-cell/ids-angular/forms';\n\nexport interface IdsSelectDefaultConfig {\n errorStateMatcher?: typeof AbstractErrorStateMatcher\n successStateMatcher?: typeof AbstractSuccessStateMatcher\n typeaheadDebounceInterval: number\n}\n\nexport const IDS_SELECT_DEFAULT_CONFIG = new InjectionToken<IdsSelectDefaultConfig>(\n 'IDS_SELECT_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SELECT_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SELECT_DEFAULT_CONFIG_FACTORY(): Required<IdsSelectDefaultConfig> {\n return {\n errorStateMatcher: ErrorStateMatcher,\n successStateMatcher: SuccessStateMatcher,\n typeaheadDebounceInterval: 200,\n };\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ids-select-trigger',\n standalone: true,\n})\nexport class IdsSelectTriggerDirective {\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const selectConnectedPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ids-select-panel-above',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ids-select-panel-above',\n },\n];\n","import { IDS_SELECT_DEFAULT_CONFIG, IDS_SELECT_DEFAULT_CONFIG_FACTORY, IdsSelectDefaultConfig } from './select-defaults';\nimport { selectConnectedPositions } from './select-positions';\nimport { IdsSelectTriggerDirective } from './select-trigger.directive';\n\nimport { ActiveDescendantKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, contentChildren, ElementRef, inject, input, OnInit, signal, viewChild, ViewEncapsulation, AfterContentInit, forwardRef, contentChild, OnDestroy, effect, isDevMode, booleanAttribute, Injector, AfterViewInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormGroupDirective, NG_VALUE_ACCESSOR, NgControl, NgForm, ValueChangeEvent } from '@angular/forms';\nimport { coerceNumberAttribute, ComponentBaseWithDefaults, createClassList } from '@i-cell/ids-angular/core';\nimport { IDS_FORM_FIELD_CONTROL, IdsFormFieldControl, IdsOptionComponent, IdsOptionGroupComponent, AbstractSuccessStateMatcher, AbstractErrorStateMatcher, ErrorStateTracker, SuccessStateTracker, _getOptionScrollPosition, _countGroupLabelsBeforeOption, IdsOptionSelectionChange, IDS_OPTION_PARENT_COMPONENT, formFieldControlClass, IdsFormFieldComponent, IDS_OPTION_GROUP } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { filter, first, Subject, Subscription } from 'rxjs';\n\nconst defaultConfig = IDS_SELECT_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: `ids-select[ngModel]:not([formControl]):not([formControlName]),\n ids-select[formControl]:not([ngModel]):not([formControlName]),\n ids-select[formControlName]:not([ngModel]):not([formControl])`,\n imports: [\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n IdsIconComponent,\n ],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: IDS_FORM_FIELD_CONTROL, useExisting: IdsSelectComponent },\n { provide: IDS_OPTION_PARENT_COMPONENT, useExisting: IdsSelectComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsSelectComponent),\n multi: true,\n },\n ],\n host: {\n 'role': 'select',\n 'aria-autocomplete': 'none',\n 'aria-haspopup': 'listbox',\n '[attr.tabindex]': 'disabled() ? -1 : tabIndex()',\n '[attr.aria-controls]': 'isPanelOpen() ? id() + \"-panel\" : null',\n '[attr.aria-owns]': 'isPanelOpen() ? id() + \"-panel\" : null',\n '[attr.aria-expanded]': 'isPanelOpen()',\n '[attr.aria-label]': 'ariaLabel() || null',\n '[attr.aria-labelledby]': 'ariaLabelledby() || null',\n '[attr.aria-required]': 'required().toString()',\n '[attr.aria-disabled]': 'disabled().toString()',\n '[attr.aria-invalid]': 'hasErrorState()',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': 'focus()',\n '(blur)': '_onBlur()',\n },\n})\nexport class IdsSelectComponent\n extends ComponentBaseWithDefaults<IdsSelectDefaultConfig>\n implements IdsFormFieldControl, ControlValueAccessor, OnInit, AfterContentInit, AfterViewInit, OnDestroy {\n protected override get _hostName(): string {\n return 'select';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SELECT_DEFAULT_CONFIG);\n private readonly _injector = inject(Injector);\n private readonly _elementRef = inject(ElementRef);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _liveAnnouncer = inject(LiveAnnouncer);\n private readonly _parentFormField = inject(IdsFormFieldComponent);\n private readonly _parentForm = inject(NgForm, { optional: true });\n private readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\n protected readonly _connectedPositions = selectConnectedPositions;\n public readonly errorStateChanges = new Subject<void>();\n public readonly successStateChanges = new Subject<void>();\n\n protected _preferredOverlayOrigin: CdkOverlayOrigin | ElementRef | undefined;\n protected _overlayWidth: string | number = 0;\n\n public multiSelect = input<boolean>(false);\n public placeholder = input<string>('');\n public required = input<boolean, unknown>(false, { transform: booleanAttribute });\n public readonly = input<boolean, unknown>(false, { transform: booleanAttribute });\n public canHandleSuccessState = input<boolean>(false);\n public errorStateMatcher = input<AbstractErrorStateMatcher>(inject(this._defaultConfig.errorStateMatcher));\n public successStateMatcher = input<AbstractSuccessStateMatcher>(inject(this._defaultConfig.successStateMatcher));\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledby = input<string>('', { alias: 'aria-labelledby' });\n public valueCompareFn = input<(o1: unknown, o2: unknown) => boolean>((o1: unknown, o2: unknown) => o1 === o2);\n public sortCompareFn = input<(a: IdsOptionComponent, b: IdsOptionComponent, options: Readonly<IdsOptionComponent[]>) => number>();\n public tabIndex = input<number, unknown>(0, { transform: coerceNumberAttribute });\n public typeaheadDebounceInterval = input<number, unknown>(\n this._defaultConfig.typeaheadDebounceInterval, { transform: coerceNumberAttribute },\n );\n\n public ngControl = signal<NgControl | null>(null);\n\n /** Handles the `disabled` input binding */\n public disabledInput = input<boolean, unknown>(false, { transform: booleanAttribute, alias: 'disabled' });\n /** Stores the `disabled` state internally */\n private _disabled = signal(this.disabledInput());\n /** The input's `disabled` state as a read-only signal (to enable/disable the contol programmatically, use the FormControl's related API) */\n public disabled = computed(() => this._disabled());\n\n /** This effect is triggered if the `disabled` attribute binding changes and delegates the change to the underlying FormControl */\n private _disabledInputEffect = effect(() => {\n const enableOrDisable = this.disabledInput() ? 'disable' : 'enable';\n const controlDir = this.ngControl();\n\n // The NgControl's `control` property might not be initialized so we delay the enable/disable call\n // (the FormControl's enable/disable method call will trigger the CVA's setDisabledState() callback\n // which sets the \"main\" disabled signal)\n queueMicrotask(() => controlDir?.control?.[enableOrDisable]());\n });\n\n public isPanelOpen = signal<boolean>(false);\n public hasErrorState = signal<boolean>(false);\n public hasSuccessState = signal<boolean>(false);\n public parentSize = computed(() => this._parentFormField.parentOrSelfSize());\n public parentVariant = computed(() => this._parentFormField.parentOrSelfVariant());\n private _focused = signal<boolean>(false);\n\n private _canOpen = computed(() => !this.isPanelOpen() && !this.disabled() && !this.readonly() && this.options().length > 0);\n protected _hostClasses = computed(() => this._getHostClasses([\n this.parentSize(),\n this.parentVariant(),\n this.disabled() ? 'disabled' : null,\n this.readonly() ? 'readonly' : null,\n ], [formFieldControlClass]));\n\n protected _panelClasses = computed(() => createClassList(`${this._hostClassName}-panel`, [\n this.parentSize(),\n this.parentVariant(),\n ]));\n\n private _panel = viewChild<ElementRef<HTMLElement>>('panel');\n private _overlayDir = viewChild(CdkConnectedOverlay);\n public options = contentChildren<IdsOptionComponent>(IdsOptionComponent, { descendants: true });\n public optionGroups = contentChildren<IdsOptionGroupComponent>(IDS_OPTION_GROUP, { descendants: true });\n protected _customTrigger = contentChild(IdsSelectTriggerDirective);\n\n private _errorStateTracker?: ErrorStateTracker;\n private _successStateTracker?: SuccessStateTracker;\n private _successStateSubscription?: Subscription;\n\n private _canHandleSuccessStateEffect = effect(() => {\n this._setSuccessStateTracker(this.canHandleSuccessState());\n });\n\n private _keyManager?: ActiveDescendantKeyManager<IdsOptionComponent>;\n private _rawValue: unknown | unknown[];\n private _selectionModel?: SelectionModel<IdsOptionComponent>;\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => unknown = () => { };\n\n protected get _empty(): boolean {\n return Boolean(this._selectionModel?.isEmpty());\n }\n\n public get selected(): IdsOptionComponent | IdsOptionComponent[] | undefined {\n return this.multiSelect() ? this._selectionModel?.selected : this._selectionModel?.selected?.[0];\n }\n\n protected get _triggerValue(): string {\n if (this._empty) {\n return '';\n }\n\n if (this.multiSelect()) {\n const selectedOptions = this._selectionModel?.selected?.map((option) => option.viewValue());\n return selectedOptions?.join(', ') || '';\n }\n\n return this._selectionModel?.selected?.[0].viewValue() || '';\n }\n\n constructor() {\n super();\n effect(() => {\n this._keyManager?.withTypeAhead(this.typeaheadDebounceInterval());\n });\n\n // Get the NgControl reference as soon as we can\n queueMicrotask(() => this.ngControl.set(this._injector.get(NgControl, null, { self: true })));\n }\n\n public ngOnInit(): void {\n if (!this._parentFormField) {\n throw this._createHostError('Select must be in a form field');\n }\n this._selectionModel = new SelectionModel<IdsOptionComponent>(this.multiSelect(), undefined, false, this.valueCompareFn());\n queueMicrotask(() => {\n const control = this.ngControl()?.control;\n if (control) {\n control.events\n .pipe(\n filter((event) => event instanceof ValueChangeEvent),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n });\n this._initErrorStateTracker();\n }\n\n public ngAfterContentInit(): void {\n this._initKeyManager();\n this._selectionModel?.select(...this.options().filter((item) => item.selected()));\n this._subscribeOptionChanges();\n }\n\n public ngAfterViewInit(): void {\n const controlDir = this.ngControl();\n if (controlDir?.control) {\n controlDir.control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.updateErrorAndSuccessState());\n }\n }\n\n public updateErrorAndSuccessState(): void {\n this._errorStateTracker?.updateErrorState();\n this._successStateTracker?.updateSuccessState();\n }\n\n public ngOnDestroy(): void {\n this._keyManager?.destroy();\n }\n\n private _initErrorStateTracker(): void {\n this._errorStateTracker = new ErrorStateTracker(\n this.errorStateMatcher(),\n this.ngControl(),\n this._parentFormGroup,\n this._parentForm,\n this.errorStateChanges,\n );\n\n this.errorStateChanges.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this.hasErrorState.set(this._errorStateTracker!.hasErrorState));\n }\n\n protected _setSuccessStateTracker(canHandleSuccessState: boolean): void {\n if (canHandleSuccessState) {\n this._successStateTracker = new SuccessStateTracker(\n this.successStateMatcher(),\n this.ngControl(),\n this._parentFormGroup,\n this._parentForm,\n this.successStateChanges,\n );\n\n this._successStateSubscription = this.successStateChanges.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this.hasSuccessState.set(this._successStateTracker!.hasSuccessState));\n\n this._successStateTracker.updateSuccessState();\n } else {\n this._successStateTracker = undefined;\n this._successStateSubscription?.unsubscribe();\n this.hasSuccessState.set(false);\n }\n }\n\n private _initKeyManager(): void {\n this._keyManager = new ActiveDescendantKeyManager<IdsOptionComponent>(this.options())\n .withTypeAhead(this.typeaheadDebounceInterval())\n .withVerticalOrientation()\n .withHorizontalOrientation('ltr')\n .withHomeAndEnd()\n .withPageUpDown()\n .withAllowedModifierKeys(['shiftKey'])\n .skipPredicate(this._skipPredicate);\n\n this._keyManager.tabOut.subscribe(() => {\n if (this.isPanelOpen()) {\n if (!this.multiSelect() && this._keyManager?.activeItem) {\n this._keyManager.activeItem.selectViaInteraction();\n }\n this.focus();\n this.close();\n }\n });\n\n this._keyManager.change.subscribe(() => {\n if (this.isPanelOpen() && this._panel()) {\n this._scrollOptionIntoView(this._keyManager?.activeItemIndex || 0);\n }\n });\n }\n\n private _subscribeOptionChanges(): void {\n this.options().forEach((option) => {\n option.onSelectionChange.subscribe(\n (change) => {\n this._handleOptionChange(change);\n },\n );\n });\n }\n\n private _handleOptionChange(change: IdsOptionSelectionChange): void {\n const { source, selected, isUserInput } = change;\n if (!this.multiSelect()) {\n this._clearSelection();\n }\n source.selected.set(selected);\n\n if (isUserInput) {\n this._keyManager?.setActiveItem(source);\n }\n\n if (isUserInput && !this.multiSelect() && this.isPanelOpen()) {\n this.close();\n this.focus();\n }\n\n if (this.multiSelect()) {\n this._sortValues();\n\n if (isUserInput) {\n this.focus();\n }\n }\n\n if (selected) {\n this._selectionModel?.select(source);\n } else {\n this._selectionModel?.deselect(source);\n }\n this._handleChange();\n this._onTouched();\n }\n\n protected _handleKeydown(event: KeyboardEvent): void {\n if (!this.disabled() && !this.readonly()) {\n this.isPanelOpen() ? this._handleOpenedPanelKeydown(event) : this._handleClosedPanelKeydown(event);\n }\n }\n\n private _handleClosedPanelKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey =\n key === 'ArrowDown' ||\n key === 'ArrowUp' ||\n key === 'ArrowLeft' ||\n key === 'ArrowRight';\n const isOpenKey = key === 'Enter' || key === ' ';\n\n if ((!manager?.isTyping() && isOpenKey && !hasModifierKey(event)) || isArrowKey) {\n event.preventDefault();\n this.open();\n } else if (!this.multiSelect()) {\n const previouslySelectedOption = this.selected;\n manager?.onKeydown(event);\n const selectedOption = this.selected as IdsOptionComponent;\n\n if (selectedOption?.viewValue() && previouslySelectedOption !== selectedOption) {\n // eslint-disable-next-line no-magic-numbers\n this._liveAnnouncer.announce(selectedOption.viewValue(), 10000);\n }\n }\n }\n\n private _handleOpenedPanelKeydown(event: KeyboardEvent): void {\n const manager = this._keyManager;\n const key = event.key;\n const isArrowKey = key === 'ArrowDown' || key === 'ArrowUp';\n const isTyping = manager?.isTyping();\n\n if (isArrowKey && event.altKey) {\n event.preventDefault();\n this.close();\n } else if (\n !isTyping &&\n (key === 'Enter' || key === ' ') &&\n manager?.activeItem &&\n !hasModifierKey(event)\n ) {\n event.preventDefault();\n manager.activeItem.selectViaInteraction();\n } else if (!isTyping && this.multiSelect() && key === 'a' && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options().some((opt) => !opt.disabled && !opt.selected());\n\n this.options().forEach((option) => {\n if (!option.disabled) {\n hasDeselectedOptions ? option.select() : option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = manager?.activeItemIndex;\n\n manager?.onKeydown(event);\n\n if (\n this.multiSelect() &&\n isArrowKey &&\n event.shiftKey &&\n manager?.activeItem &&\n manager?.activeItemIndex !== previouslyFocusedIndex\n ) {\n manager?.activeItem.selectViaInteraction();\n }\n }\n }\n\n private _positioningSettled(): void {\n this._scrollOptionIntoView(this._keyManager?.activeItemIndex || 0);\n }\n\n private _scrollOptionIntoView(index: number): void {\n const option = this.options()[index];\n\n if (option) {\n const panel: HTMLElement | undefined = this._panel()!.nativeElement;\n const labelCount = _countGroupLabelsBeforeOption(index, this.options(), this.optionGroups());\n const element = option.getHostElement();\n\n if (index === 0 && labelCount === 1) {\n panel.scrollTop = 0;\n } else {\n panel.scrollTop = _getOptionScrollPosition(\n element.offsetTop,\n element.offsetHeight,\n panel.scrollTop,\n panel.offsetHeight,\n );\n }\n }\n }\n\n private _sortValues(): void {\n if (this.multiSelect()) {\n const options = this.options();\n\n const sortComparator = this.sortCompareFn();\n this._selectionModel?.sort((a, b) => (sortComparator\n ? sortComparator(a, b, options)\n : options.indexOf(a) - options.indexOf(b)));\n }\n }\n\n private _getOverlayWidth(\n preferredOrigin: ElementRef<ElementRef> | CdkOverlayOrigin | undefined,\n ): string | number {\n const refToMeasure\n = preferredOrigin instanceof CdkOverlayOrigin\n ? preferredOrigin.elementRef\n : preferredOrigin || this._elementRef;\n return refToMeasure.nativeElement.getBoundingClientRect().width;\n }\n\n protected _panelAttached(): void {\n this._overlayDir()?.positionChange.pipe(first()).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this._positioningSettled();\n });\n }\n\n public toggle(): void {\n this.isPanelOpen() ? this.close() : this.open();\n }\n\n public open(): void {\n if (!this._canOpen()) {\n return;\n }\n\n if (this._parentFormField) {\n this._preferredOverlayOrigin = this._parentFormField?.getConnectedOverlayOrigin();\n }\n\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n this.isPanelOpen.set(true);\n this._keyManager?.withHorizontalOrientation(null);\n this._highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n }\n\n public close(): void {\n if (this.isPanelOpen()) {\n this.isPanelOpen.set(false);\n this._keyManager?.withHorizontalOrientation('ltr');\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n }\n }\n\n // #region ControlValueAccessor implementation\n public writeValue(value: unknown | unknown[]): void {\n this._setSelectionByValue(value);\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => unknown): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n this._changeDetectorRef.markForCheck();\n }\n // #endregion\n\n private _setSelectionByValue(value: unknown | unknown[]): void {\n this.options().forEach((option) => option.setInactiveStyles());\n this._selectionModel?.clear();\n this._rawValue = value;\n\n if (this.options().length === 0) {\n return;\n }\n\n if (this.multiSelect() && value) {\n if (!Array.isArray(value)) {\n throw this._createHostError('value must be an array in multiple-selection mode');\n }\n\n value.forEach((currentValue: unknown) => this._selectValue(currentValue));\n this._sortValues();\n } else {\n const correspondingOption = this._selectValue(value);\n if (correspondingOption) {\n this._keyManager?.updateActiveItem(correspondingOption);\n } else if (!this.isPanelOpen()) {\n this._keyManager?.updateActiveItem(-1);\n }\n }\n }\n\n private _selectValue(value: unknown): IdsOptionComponent | undefined {\n const correspondingOption = this.options().find((option) => {\n if (this._selectionModel?.isSelected(option)) {\n return false;\n }\n\n try {\n const valueCompareFn = this.valueCompareFn();\n return option.value() != null && valueCompareFn && valueCompareFn(option.value(), value);\n } catch (error) {\n if (isDevMode()) {\n console.warn(error);\n }\n return false;\n }\n });\n\n if (correspondingOption) {\n correspondingOption.selected.set(true);\n this._selectionModel?.select(correspondingOption);\n }\n\n return correspondingOption;\n }\n\n private _clearSelection(): void {\n this._selectionModel?.clear();\n this.options().forEach((option) => {\n option.selected.set(false);\n });\n }\n\n private _handleChange(): void {\n const selectionModelValues = this._selectionModel?.selected?.map((item) => item.value());\n if (this.multiSelect()) {\n this._onChange(selectionModelValues);\n } else {\n this._onChange(selectionModelValues?.[0]);\n }\n this._changeDetectorRef.markForCheck();\n }\n\n private _skipPredicate = (option: IdsOptionComponent): boolean => {\n if (this.isPanelOpen()) {\n return false;\n }\n\n return option.disabledInput();\n };\n\n private _highlightCorrectOption(): void {\n if (this._keyManager) {\n if (this._empty) {\n let firstEnabledOptionIndex = -1;\n for (let index = 0; index < this.options().length; index++) {\n const option = this.options()[index]!;\n if (!option.disabled) {\n firstEnabledOptionIndex = index;\n break;\n }\n }\n\n this._keyManager.setActiveItem(firstEnabledOptionIndex);\n } else {\n if (this._selectionModel) {\n this._keyManager.setActiveItem(this._selectionModel.selected[0]);\n }\n }\n }\n }\n\n public isOptionPreSelectedByValue(optionValue: unknown): boolean {\n if (this._rawValue === undefined) {\n return false;\n }\n\n if (this.multiSelect() && Array.isArray(this._rawValue)) {\n return this._rawValue.some((value) => optionValue != null && value === optionValue);\n }\n return optionValue === this._rawValue;\n }\n\n public setDescribedByIds(ids: string[]): void {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n\n private _onFocus(): void {\n if (!this.disabled()) {\n this._focused.set(true);\n }\n }\n\n private _onBlur(): void {\n this._focused.set(false);\n this._keyManager?.cancelTypeahead();\n\n if (!this.disabled() && !this.isPanelOpen()) {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _getAriaActiveDescendant(): string | null {\n if (this.isPanelOpen() && this._keyManager?.activeItem) {\n return this._keyManager.activeItem.id();\n }\n\n return null;\n }\n\n public focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n public onContainerClick = (): void => {\n if (!this._focused && !this.readonly() && !this.disabled()) {\n this.focus();\n this.open();\n }\n };\n}\n","<div #trigger #fallbackOverlayOrigin=\"cdkOverlayOrigin\" cdk-overlay-origin class=\"ids-select__trigger\" (click)=\"open()\">\n <div class=\"ids-select__value\">\n @if (_empty) {\n <span class=\"ids-select__placeholder\">{{ placeholder() }}</span>\n } @else {\n <span class=\"ids-select__value-text\">\n @if (_customTrigger()) {\n <ng-content select=\"ids-select-trigger\" />\n } @else {\n {{ _triggerValue }}\n }\n </span>\n }\n </div>\n\n <div class=\"ids-select__arrow\">\n <ids-icon fontIcon=\"chevron-down\" />\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOrigin]=\"_preferredOverlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen()\"\n [cdkConnectedOverlayPositions]=\"_connectedPositions\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth\"\n [cdkConnectedOverlayPush]=\"true\"\n (overlayOutsideClick)=\"close()\"\n (attach)=\"_panelAttached()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id() + '-panel'\"\n [attr.aria-multiselectable]=\"multiSelect()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [class]=\"_panelClasses()\"\n (keydown)=\"_handleKeydown($event)\"\n >\n <ng-content />\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, input, computed, Component } from '@angular/core';
3
+ import { IdsSize, IdsSizeCollection, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
4
+
5
+ const IdsSpinnerVariant = {
6
+ SURFACE: 'surface',
7
+ PRIMARY: 'primary',
8
+ SECONDARY: 'secondary',
9
+ BRAND: 'brand',
10
+ LIGHT: 'light',
11
+ ERROR: 'error',
12
+ SUCCESS: 'success',
13
+ WARNING: 'warning',
14
+ };
15
+
16
+ const IDS_SPINNER_DEFAULT_CONFIG = new InjectionToken('IDS_ICON_DEFAULT_CONFIG', {
17
+ providedIn: 'root',
18
+ factory: IDS_SPINNER_DEFAULT_CONFIG_FACTORY,
19
+ });
20
+ function IDS_SPINNER_DEFAULT_CONFIG_FACTORY() {
21
+ return {
22
+ size: IdsSize.COMPACT,
23
+ sizeCollection: IdsSizeCollection.SMALL,
24
+ variant: IdsSpinnerVariant.SURFACE,
25
+ isTrack: true,
26
+ };
27
+ }
28
+
29
+ const defaultConfig = IDS_SPINNER_DEFAULT_CONFIG_FACTORY();
30
+ class IdsSpinnerComponent extends ComponentBaseWithDefaults {
31
+ get _hostName() {
32
+ return 'spinner';
33
+ }
34
+ constructor() {
35
+ super();
36
+ this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SPINNER_DEFAULT_CONFIG);
37
+ this.size = input(this._defaultConfig.size);
38
+ this.sizeCollection = input(this._defaultConfig.sizeCollection);
39
+ this.variant = input(this._defaultConfig.variant);
40
+ this.isTrack = input(this._defaultConfig.isTrack);
41
+ this.ariaLabel = input('', { alias: 'aria-label' });
42
+ this._hostClasses = computed(() => this._getHostClasses([
43
+ this.variant(),
44
+ [
45
+ `${this.sizeCollection()}collection`,
46
+ this.size(),
47
+ ],
48
+ ]));
49
+ }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.2", type: IdsSpinnerComponent, isStandalone: true, selector: "ids-spinner", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, sizeCollection: { classPropertyName: "sizeCollection", publicName: "sizeCollection", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, isTrack: { classPropertyName: "isTrack", publicName: "isTrack", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-busy": "true", "attr.aria-live": "'polite'", "attr.aria-label": "this.ariaLabel()" } }, usesInheritance: true, ngImport: i0, template: "<svg class=\"rotate-center ids-spinner__body\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" fill=\"none\">\n @if (isTrack()) {\n <path class=\"ids-spinner__track\" d=\"M48 23.9941C48 37.249 37.2548 47.9941 24 47.9941C10.7452 47.9941 0 37.249 0 23.9941C0 10.7393 10.7452 -0.00585938 24 -0.00585938C37.2548 -0.00585938 48 10.7393 48 23.9941ZM4.8 23.9941C4.8 34.598 13.3961 43.1941 24 43.1941C34.6039 43.1941 43.2 34.598 43.2 23.9941C43.2 13.3903 34.6039 4.79414 24 4.79414C13.3961 4.79414 4.8 13.3903 4.8 23.9941Z\" fill=\"#E2E8F0\"/>\n }\n <path class=\"ids-spinner__active-indicator\" d=\"M24 2.4C24 1.07452 25.0772 -0.0124557 26.3961 0.119833C31.8813 0.670028 37.038 3.0969 40.9706 7.02943C44.9031 10.962 47.33 16.1187 47.8802 21.6039C48.0125 22.9228 46.9255 24 45.6 24C44.2745 24 43.2155 22.9213 43.0503 21.6062C42.5214 17.3966 40.6082 13.4553 37.5765 10.4235C34.5447 7.39176 30.6034 5.47861 26.3938 4.94974C25.0787 4.78451 24 3.72548 24 2.4Z\" fill=\"#64748B\"/>\n</svg>\n" }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsSpinnerComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'ids-spinner', host: {
56
+ '[attr.aria-busy]': 'true',
57
+ '[attr.aria-live]': '\'polite\'',
58
+ '[attr.aria-label]': 'this.ariaLabel()',
59
+ }, template: "<svg class=\"rotate-center ids-spinner__body\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" fill=\"none\">\n @if (isTrack()) {\n <path class=\"ids-spinner__track\" d=\"M48 23.9941C48 37.249 37.2548 47.9941 24 47.9941C10.7452 47.9941 0 37.249 0 23.9941C0 10.7393 10.7452 -0.00585938 24 -0.00585938C37.2548 -0.00585938 48 10.7393 48 23.9941ZM4.8 23.9941C4.8 34.598 13.3961 43.1941 24 43.1941C34.6039 43.1941 43.2 34.598 43.2 23.9941C43.2 13.3903 34.6039 4.79414 24 4.79414C13.3961 4.79414 4.8 13.3903 4.8 23.9941Z\" fill=\"#E2E8F0\"/>\n }\n <path class=\"ids-spinner__active-indicator\" d=\"M24 2.4C24 1.07452 25.0772 -0.0124557 26.3961 0.119833C31.8813 0.670028 37.038 3.0969 40.9706 7.02943C44.9031 10.962 47.33 16.1187 47.8802 21.6039C48.0125 22.9228 46.9255 24 45.6 24C44.2745 24 43.2155 22.9213 43.0503 21.6062C42.5214 17.3966 40.6082 13.4553 37.5765 10.4235C34.5447 7.39176 30.6034 5.47861 26.3938 4.94974C25.0787 4.78451 24 3.72548 24 2.4Z\" fill=\"#64748B\"/>\n</svg>\n" }]
60
+ }], ctorParameters: () => [] });
61
+
62
+ /**
63
+ * Generated bundle index. Do not edit.
64
+ */
65
+
66
+ export { IDS_SPINNER_DEFAULT_CONFIG, IDS_SPINNER_DEFAULT_CONFIG_FACTORY, IdsSpinnerComponent, IdsSpinnerVariant };
67
+ //# sourceMappingURL=i-cell-ids-angular-spinner.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-cell-ids-angular-spinner.mjs","sources":["../../../projects/widgets/spinner/types/spinner-variant.type.ts","../../../projects/widgets/spinner/spinner-defaults.ts","../../../projects/widgets/spinner/spinner.component.ts","../../../projects/widgets/spinner/spinner.component.html","../../../projects/widgets/spinner/i-cell-ids-angular-spinner.ts"],"sourcesContent":["export const IdsSpinnerVariant = {\n SURFACE: 'surface',\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n BRAND: 'brand',\n LIGHT: 'light',\n ERROR: 'error',\n SUCCESS: 'success',\n WARNING: 'warning',\n} as const;\n\nexport type IdsSpinnerVariantType = (typeof IdsSpinnerVariant)[keyof typeof IdsSpinnerVariant];\n","import { IdsSpinnerVariant, IdsSpinnerVariantType } from './types/spinner-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeCollection, IdsSizeCollectionType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsSpinnerDefaultConfig {\n size?: IdsSizeType\n sizeCollection?: IdsSizeCollectionType\n variant?: IdsSpinnerVariantType\n isTrack: boolean\n}\n\nexport const IDS_SPINNER_DEFAULT_CONFIG = new InjectionToken<IdsSpinnerDefaultConfig>(\n 'IDS_ICON_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SPINNER_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SPINNER_DEFAULT_CONFIG_FACTORY(): Required<IdsSpinnerDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n sizeCollection: IdsSizeCollection.SMALL,\n variant: IdsSpinnerVariant.SURFACE,\n isTrack: true,\n };\n}\n","import {\n IDS_SPINNER_DEFAULT_CONFIG,\n IDS_SPINNER_DEFAULT_CONFIG_FACTORY,\n IdsSpinnerDefaultConfig,\n} from './spinner-defaults';\nimport { IdsSpinnerVariantType } from './types/spinner-variant.type';\n\nimport { Component, computed, input } from '@angular/core';\nimport { ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_SPINNER_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-spinner',\n templateUrl: './spinner.component.html',\n host: {\n '[attr.aria-busy]': 'true',\n '[attr.aria-live]': '\\'polite\\'',\n '[attr.aria-label]': 'this.ariaLabel()',\n },\n})\nexport class IdsSpinnerComponent extends ComponentBaseWithDefaults<IdsSpinnerDefaultConfig> {\n protected override get _hostName(): string {\n return 'spinner';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SPINNER_DEFAULT_CONFIG);\n\n public size = input<string>(this._defaultConfig.size);\n public sizeCollection = input<string>(this._defaultConfig.sizeCollection);\n public variant = input<IdsSpinnerVariantType>(this._defaultConfig.variant);\n public isTrack = input<boolean>(this._defaultConfig.isTrack);\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n\n constructor() {\n super();\n }\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.variant(),\n [\n `${this.sizeCollection()}collection`,\n this.size(),\n ],\n ]));\n\n}\n","<svg class=\"rotate-center ids-spinner__body\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" fill=\"none\">\n @if (isTrack()) {\n <path class=\"ids-spinner__track\" d=\"M48 23.9941C48 37.249 37.2548 47.9941 24 47.9941C10.7452 47.9941 0 37.249 0 23.9941C0 10.7393 10.7452 -0.00585938 24 -0.00585938C37.2548 -0.00585938 48 10.7393 48 23.9941ZM4.8 23.9941C4.8 34.598 13.3961 43.1941 24 43.1941C34.6039 43.1941 43.2 34.598 43.2 23.9941C43.2 13.3903 34.6039 4.79414 24 4.79414C13.3961 4.79414 4.8 13.3903 4.8 23.9941Z\" fill=\"#E2E8F0\"/>\n }\n <path class=\"ids-spinner__active-indicator\" d=\"M24 2.4C24 1.07452 25.0772 -0.0124557 26.3961 0.119833C31.8813 0.670028 37.038 3.0969 40.9706 7.02943C44.9031 10.962 47.33 16.1187 47.8802 21.6039C48.0125 22.9228 46.9255 24 45.6 24C44.2745 24 43.2155 22.9213 43.0503 21.6062C42.5214 17.3966 40.6082 13.4553 37.5765 10.4235C34.5447 7.39176 30.6034 5.47861 26.3938 4.94974C25.0787 4.78451 24 3.72548 24 2.4Z\" fill=\"#64748B\"/>\n</svg>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAAa,MAAA,iBAAiB,GAAG;AAC/B,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;;;MCIP,0BAA0B,GAAG,IAAI,cAAc,CAC1D,yBAAyB,EACzB;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,kCAAkC;AAC5C,CAAA;SAGa,kCAAkC,GAAA;IAChD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,cAAc,EAAE,iBAAiB,CAAC,KAAK;QACvC,OAAO,EAAE,iBAAiB,CAAC,OAAO;AAClC,QAAA,OAAO,EAAE,IAAI;KACd;AACH;;ACjBA,MAAM,aAAa,GAAG,kCAAkC,EAAE;AAWpD,MAAO,mBAAoB,SAAQ,yBAAkD,CAAA;AACzF,IAAA,IAAuB,SAAS,GAAA;AAC9B,QAAA,OAAO,SAAS;;AAWlB,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QATU,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,0BAA0B,CAAC;QAE9F,IAAI,CAAA,IAAA,GAAG,KAAK,CAAS,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAC9C,IAAc,CAAA,cAAA,GAAG,KAAK,CAAS,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;QAClE,IAAO,CAAA,OAAA,GAAG,KAAK,CAAwB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;QACnE,IAAO,CAAA,OAAA,GAAG,KAAK,CAAU,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;QACrD,IAAS,CAAA,SAAA,GAAG,KAAK,CAAS,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAMnD,IAAY,CAAA,YAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC;YAC3D,IAAI,CAAC,OAAO,EAAE;AACd,YAAA;AACE,gBAAA,CAAA,EAAG,IAAI,CAAC,cAAc,EAAE,CAAY,UAAA,CAAA;gBACpC,IAAI,CAAC,IAAI,EAAE;AACZ,aAAA;AACF,SAAA,CAAC,CAAC;;8GAvBQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,42BCrBhC,q+BAMA,EAAA,CAAA,CAAA;;2FDea,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAEjB,IAAA,EAAA;AACJ,wBAAA,kBAAkB,EAAE,MAAM;AAC1B,wBAAA,kBAAkB,EAAE,YAAY;AAChC,wBAAA,mBAAmB,EAAE,kBAAkB;AACxC,qBAAA,EAAA,QAAA,EAAA,q+BAAA,EAAA;;;AEnBH;;AAEG;;;;"}
@@ -6,7 +6,7 @@ export interface IdsIconDefaultConfig {
6
6
  sizeCollection?: IdsSizeCollectionType;
7
7
  variant?: IdsIconVariantType;
8
8
  iconAssetsPath: string;
9
- fontNameMappings: Record<string, string>;
9
+ fontNameMappings?: Record<string, string>;
10
10
  }
11
11
  export declare const IDS_ICON_DEFAULT_CONFIG: InjectionToken<IdsIconDefaultConfig>;
12
12
  export declare function IDS_ICON_DEFAULT_CONFIG_FACTORY(): Required<IdsIconDefaultConfig>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@i-cell/ids-angular",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "private": false,
5
5
  "description": "i-Cell Design System UI Kit components for Angular",
6
6
  "publishConfig": {
@@ -47,26 +47,34 @@
47
47
  "types": "./index.d.ts",
48
48
  "default": "./fesm2022/i-cell-ids-angular.mjs"
49
49
  },
50
- "./card": {
51
- "types": "./card/index.d.ts",
52
- "default": "./fesm2022/i-cell-ids-angular-card.mjs"
53
- },
54
50
  "./accordion": {
55
51
  "types": "./accordion/index.d.ts",
56
52
  "default": "./fesm2022/i-cell-ids-angular-accordion.mjs"
57
53
  },
54
+ "./avatar": {
55
+ "types": "./avatar/index.d.ts",
56
+ "default": "./fesm2022/i-cell-ids-angular-avatar.mjs"
57
+ },
58
+ "./card": {
59
+ "types": "./card/index.d.ts",
60
+ "default": "./fesm2022/i-cell-ids-angular-card.mjs"
61
+ },
58
62
  "./button": {
59
63
  "types": "./button/index.d.ts",
60
64
  "default": "./fesm2022/i-cell-ids-angular-button.mjs"
61
65
  },
62
- "./avatar": {
63
- "types": "./avatar/index.d.ts",
64
- "default": "./fesm2022/i-cell-ids-angular-avatar.mjs"
66
+ "./chip": {
67
+ "types": "./chip/index.d.ts",
68
+ "default": "./fesm2022/i-cell-ids-angular-chip.mjs"
65
69
  },
66
70
  "./core": {
67
71
  "types": "./core/index.d.ts",
68
72
  "default": "./fesm2022/i-cell-ids-angular-core.mjs"
69
73
  },
74
+ "./checkbox": {
75
+ "types": "./checkbox/index.d.ts",
76
+ "default": "./fesm2022/i-cell-ids-angular-checkbox.mjs"
77
+ },
70
78
  "./dialog": {
71
79
  "types": "./dialog/index.d.ts",
72
80
  "default": "./fesm2022/i-cell-ids-angular-dialog.mjs"
@@ -75,14 +83,6 @@
75
83
  "types": "./divider/index.d.ts",
76
84
  "default": "./fesm2022/i-cell-ids-angular-divider.mjs"
77
85
  },
78
- "./chip": {
79
- "types": "./chip/index.d.ts",
80
- "default": "./fesm2022/i-cell-ids-angular-chip.mjs"
81
- },
82
- "./checkbox": {
83
- "types": "./checkbox/index.d.ts",
84
- "default": "./fesm2022/i-cell-ids-angular-checkbox.mjs"
85
- },
86
86
  "./forms": {
87
87
  "types": "./forms/index.d.ts",
88
88
  "default": "./fesm2022/i-cell-ids-angular-forms.mjs"
@@ -95,61 +95,65 @@
95
95
  "types": "./icon-button/index.d.ts",
96
96
  "default": "./fesm2022/i-cell-ids-angular-icon-button.mjs"
97
97
  },
98
+ "./menu": {
99
+ "types": "./menu/index.d.ts",
100
+ "default": "./fesm2022/i-cell-ids-angular-menu.mjs"
101
+ },
98
102
  "./notification": {
99
103
  "types": "./notification/index.d.ts",
100
104
  "default": "./fesm2022/i-cell-ids-angular-notification.mjs"
101
105
  },
102
- "./menu": {
103
- "types": "./menu/index.d.ts",
104
- "default": "./fesm2022/i-cell-ids-angular-menu.mjs"
106
+ "./overlay-panel": {
107
+ "types": "./overlay-panel/index.d.ts",
108
+ "default": "./fesm2022/i-cell-ids-angular-overlay-panel.mjs"
105
109
  },
106
110
  "./paginator": {
107
111
  "types": "./paginator/index.d.ts",
108
112
  "default": "./fesm2022/i-cell-ids-angular-paginator.mjs"
109
113
  },
110
- "./segmented-control": {
111
- "types": "./segmented-control/index.d.ts",
112
- "default": "./fesm2022/i-cell-ids-angular-segmented-control.mjs"
113
- },
114
114
  "./radio": {
115
115
  "types": "./radio/index.d.ts",
116
116
  "default": "./fesm2022/i-cell-ids-angular-radio.mjs"
117
117
  },
118
- "./overlay-panel": {
119
- "types": "./overlay-panel/index.d.ts",
120
- "default": "./fesm2022/i-cell-ids-angular-overlay-panel.mjs"
121
- },
122
- "./select": {
123
- "types": "./select/index.d.ts",
124
- "default": "./fesm2022/i-cell-ids-angular-select.mjs"
118
+ "./segmented-control": {
119
+ "types": "./segmented-control/index.d.ts",
120
+ "default": "./fesm2022/i-cell-ids-angular-segmented-control.mjs"
125
121
  },
126
122
  "./segmented-control-toggle": {
127
123
  "types": "./segmented-control-toggle/index.d.ts",
128
124
  "default": "./fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs"
129
125
  },
130
- "./tab": {
131
- "types": "./tab/index.d.ts",
132
- "default": "./fesm2022/i-cell-ids-angular-tab.mjs"
126
+ "./select": {
127
+ "types": "./select/index.d.ts",
128
+ "default": "./fesm2022/i-cell-ids-angular-select.mjs"
133
129
  },
134
130
  "./snackbar": {
135
131
  "types": "./snackbar/index.d.ts",
136
132
  "default": "./fesm2022/i-cell-ids-angular-snackbar.mjs"
137
133
  },
134
+ "./spinner": {
135
+ "types": "./spinner/index.d.ts",
136
+ "default": "./fesm2022/i-cell-ids-angular-spinner.mjs"
137
+ },
138
+ "./switch": {
139
+ "types": "./switch/index.d.ts",
140
+ "default": "./fesm2022/i-cell-ids-angular-switch.mjs"
141
+ },
142
+ "./tab": {
143
+ "types": "./tab/index.d.ts",
144
+ "default": "./fesm2022/i-cell-ids-angular-tab.mjs"
145
+ },
138
146
  "./table": {
139
147
  "types": "./table/index.d.ts",
140
148
  "default": "./fesm2022/i-cell-ids-angular-table.mjs"
141
149
  },
142
- "./tooltip": {
143
- "types": "./tooltip/index.d.ts",
144
- "default": "./fesm2022/i-cell-ids-angular-tooltip.mjs"
145
- },
146
150
  "./tag": {
147
151
  "types": "./tag/index.d.ts",
148
152
  "default": "./fesm2022/i-cell-ids-angular-tag.mjs"
149
153
  },
150
- "./switch": {
151
- "types": "./switch/index.d.ts",
152
- "default": "./fesm2022/i-cell-ids-angular-switch.mjs"
154
+ "./tooltip": {
155
+ "types": "./tooltip/index.d.ts",
156
+ "default": "./fesm2022/i-cell-ids-angular-tooltip.mjs"
153
157
  }
154
158
  }
155
159
  }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@i-cell/ids-angular/spinner" />
5
+ export * from './public-api';
@@ -0,0 +1,3 @@
1
+ export * from './types/spinner-variant.type';
2
+ export * from './spinner-defaults';
3
+ export * from './spinner.component';
@@ -0,0 +1,11 @@
1
+ import { IdsSpinnerVariantType } from './types/spinner-variant.type';
2
+ import { InjectionToken } from '@angular/core';
3
+ import { IdsSizeCollectionType, IdsSizeType } from '@i-cell/ids-angular/core';
4
+ export interface IdsSpinnerDefaultConfig {
5
+ size?: IdsSizeType;
6
+ sizeCollection?: IdsSizeCollectionType;
7
+ variant?: IdsSpinnerVariantType;
8
+ isTrack: boolean;
9
+ }
10
+ export declare const IDS_SPINNER_DEFAULT_CONFIG: InjectionToken<IdsSpinnerDefaultConfig>;
11
+ export declare function IDS_SPINNER_DEFAULT_CONFIG_FACTORY(): Required<IdsSpinnerDefaultConfig>;
@@ -0,0 +1,17 @@
1
+ import { IdsSpinnerDefaultConfig } from './spinner-defaults';
2
+ import { IdsSpinnerVariantType } from './types/spinner-variant.type';
3
+ import { ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
4
+ import * as i0 from "@angular/core";
5
+ export declare class IdsSpinnerComponent extends ComponentBaseWithDefaults<IdsSpinnerDefaultConfig> {
6
+ protected get _hostName(): string;
7
+ protected readonly _defaultConfig: Required<IdsSpinnerDefaultConfig>;
8
+ size: import("@angular/core").InputSignal<string>;
9
+ sizeCollection: import("@angular/core").InputSignal<string>;
10
+ variant: import("@angular/core").InputSignal<IdsSpinnerVariantType>;
11
+ isTrack: import("@angular/core").InputSignal<boolean>;
12
+ ariaLabel: import("@angular/core").InputSignal<string>;
13
+ constructor();
14
+ protected _hostClasses: import("@angular/core").Signal<string>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<IdsSpinnerComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<IdsSpinnerComponent, "ids-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "sizeCollection": { "alias": "sizeCollection"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "isTrack": { "alias": "isTrack"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
17
+ }
@@ -0,0 +1,11 @@
1
+ export declare const IdsSpinnerVariant: {
2
+ readonly SURFACE: "surface";
3
+ readonly PRIMARY: "primary";
4
+ readonly SECONDARY: "secondary";
5
+ readonly BRAND: "brand";
6
+ readonly LIGHT: "light";
7
+ readonly ERROR: "error";
8
+ readonly SUCCESS: "success";
9
+ readonly WARNING: "warning";
10
+ };
11
+ export type IdsSpinnerVariantType = (typeof IdsSpinnerVariant)[keyof typeof IdsSpinnerVariant];