@siemens/element-ng 48.5.2 → 48.7.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-icon.mjs","sources":["../../../../projects/element-ng/icon/si-icon-legacy.component.ts","../../../../projects/element-ng/icon/si-icon-legacy.component.html","../../../../projects/element-ng/icon/si-icons.ts","../../../../projects/element-ng/icon/si-icon.component.ts","../../../../projects/element-ng/icon/si-icon.module.ts","../../../../projects/element-ng/icon/element-icons.ts","../../../../projects/element-ng/icon/status-icon.ts","../../../../projects/element-ng/icon/si-status-icon.component.ts","../../../../projects/element-ng/icon/index.ts","../../../../projects/element-ng/icon/siemens-element-ng-icon.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\n/**\n * @deprecated This component should no longer be used.\n * Use the {@link SiIconComponent} instead.\n * Existing usages can be replaced as follows:\n *\n * ```html\n * <!-- before -->\n * <si-icon icon=\"element-user\" color=\"text-danger\" />\n * <!-- after -->\n * <si-icon icon=\"element-user\" class=\"icon text-danger\" />\n * ```\n *\n * **Important:** Previously, the class `icon` was automatically applied. Unless not needed,\n * it must now be applied manually.\n * The icon class scales up the icon compared to its surrounding text.\n *\n * Stacked icons need to be constructed in HTML directly.\n * If applicable, the `si-status-icon` component should be used instead.\n *\n * ```html\n * <!-- before -->\n * <si-icon\n * icon=\"element-circle-filled\"\n * color=\"status-success\"\n * stackedIcon=\"element-state-tick\"\n * stackedColor=\"status-success-contrast\"\n * alt=\"Success\"\n * />\n *\n * <!-- after -->\n * <div class=\"icon-stack icon\" aria-label=\"Success\">\n * <si-icon icon=\"element-circle-filled\" class=\"status-success\" />\n * <si-icon icon=\"element-state-tick\" class=\"status-success-contrast\" />\n * </div>\n * ```\n */\n@Component({\n selector: 'si-icon-legacy',\n imports: [NgClass, SiTranslatePipe],\n templateUrl: './si-icon-legacy.component.html',\n styles: ':host, span { line-height: 1; }',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiIconLegacyComponent {\n /** Icon token, see {@link https://element.siemens.io/icons/element} */\n readonly icon = input<string>();\n /** Color class, see {@link https://element.siemens.io/fundamentals/typography/#color-variants-classes} */\n readonly color = input<string>();\n /** Icon token, see {@link https://element.siemens.io/fundamentals/icons/} */\n readonly stackedIcon = input<string>();\n /** Color class, see {@link https://element.siemens.io/fundamentals/icons/} */\n readonly stackedColor = input<string>();\n /** Alternative name or translation key for icon. Used for A11y. */\n readonly alt = input<TranslatableString>();\n /**\n * Text-size class for icon size, see {@link https://element.siemens.io/fundamentals/typography/#type-styles-classes}\n *\n * @defaultValue 'icon'\n */\n readonly size = input<string>('icon');\n\n protected readonly altText = computed(() => {\n return this.alt() ?? this.icon()?.replace('element-', '').split('-').join(' ') ?? '';\n });\n}\n","<span\n class=\"d-inline-block position-relative\"\n [attr.aria-label]=\"altText() ? (altText() | translate) : null\"\n [attr.aria-hidden]=\"!altText()\"\n [attr.role]=\"altText() ? 'img' : 'presentation'\"\n [ngClass]=\"[icon() ?? '', color() ?? '', size()]\"\n>\n @if (stackedIcon()) {\n <i\n class=\"position-absolute start-0\"\n aria-hidden=\"true\"\n [ngClass]=\"[stackedIcon(), stackedColor() ?? '']\"\n ></i>\n }\n</span>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { DestroyRef, inject, Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { SiThemeService } from '@siemens/element-ng/theme';\n\ninterface RegisteredIcon {\n content: SafeHtml | undefined;\n // Count how often an icon was registered to only remove it if it is no longer in use.\n referenceCount: number;\n}\n\nconst parseDataSvgIcon = (icon: string, domSanitizer: DomSanitizer): SafeHtml => {\n const parsed = /^data:image\\/svg\\+xml;utf8,(.*)$/.exec(icon);\n if (!parsed) {\n console.error('Failed to parse icon', icon);\n return '';\n }\n return domSanitizer.bypassSecurityTrustHtml(parsed[1]);\n};\n\nconst registeredIcons = new Map<string, RegisteredIcon>();\n\n/**\n * Adds the provided icons.\n * It requires an Angular InjectionContent.\n * The Icons are available until the component is destroyed.\n * Call this function only in the component which actually uses the icon.\n * Importing all icons on the global level is discouraged.\n *\n * When using a string instead of the object to use an icon,\n * use the kebab-case version of the icon name.\n *\n * @example\n * ```ts\n * import { elementIcon } from '@simpl/element-icons/ionic';\n * import { addIcons } from '@siemens/element-ng/icon'\n *\n * @Component({`<si-icon [icon]=\"icons.elementIcon\"`})\n * class MyComponent {\n * icons = addIcons({ elementIcon })\n * }\n * ```\n */\nexport const addIcons = <T extends string>(icons: Record<T, string>): Record<T, string> => {\n const iconMap = {} as Record<T, string>;\n const domSanitizer = inject(DomSanitizer);\n for (const [key, rawContent] of Object.entries<string>(icons)) {\n const registeredIcon = registeredIcons.get(key) ?? {\n content: parseDataSvgIcon(rawContent, domSanitizer),\n referenceCount: 0\n };\n registeredIcon.referenceCount++;\n registeredIcons.set(key, registeredIcon);\n iconMap[key as T] = key;\n }\n\n // Delete registered Icons after Component is destroyed to optimize memory usage.\n // WeakMap must not be used, as the Icon can only be removed on component destruction.\n // When using a WeakMap it would also get destroyed if it is not referenced, but the component may use it later again.\n inject(DestroyRef).onDestroy(() => {\n for (const key of Object.keys(icons)) {\n const registeredIcon = registeredIcons.get(key);\n if (registeredIcon!.referenceCount === 1) {\n registeredIcons.delete(key);\n } else {\n registeredIcon!.referenceCount--;\n }\n }\n });\n\n return iconMap;\n};\n\nconst getIcon = (key: string): SafeHtml | undefined => registeredIcons.get(key)?.content;\n\n@Injectable({ providedIn: 'root' })\nexport class IconService {\n private themeService = inject(SiThemeService);\n\n getIcon(name: string): SafeHtml | undefined {\n const camelCaseName = this.kebabToCamelCase(name);\n return this.themeService.themeIcons()[camelCaseName] ?? getIcon(camelCaseName);\n }\n\n private kebabToCamelCase(str: string): string {\n return str?.replace(/-./g, match => match.charAt(1).toUpperCase());\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n InjectionToken,\n input,\n Provider\n} from '@angular/core';\n\nimport { IconService } from './si-icons';\n\n/**\n * Global configuration for icons.\n *\n * @experimental\n */\nexport interface IconConfig {\n /**\n * If true, the si-icon component will always render the icon font instead of the svg.\n *\n * @defaultValue true\n */\n disableSvgIcons?: boolean;\n}\n\nconst ICON_CONFIG = new InjectionToken<IconConfig>('ICON_CONFIG', {\n providedIn: 'root',\n factory: () => ({ disableSvgIcons: true })\n});\n\n/**\n * Configure how Element handles icons. Provide only once in your global configuration.\n *\n * @experimental\n */\nexport const provideIconConfig = (config: IconConfig): Provider => ({\n provide: ICON_CONFIG,\n useValue: config\n});\n\n/**\n * Component to render a font or SVG icon depending on the configuration.\n * If no SVG icon is found, the component will fall back to render the icon-font.\n * In that case, an application must ensure that the icon font is loaded.\n * This component will only attach the respective class.\n *\n * The content of this component is hidden in the a11y tree.\n * If needed, the consumer must set proper labels.\n *\n * @experimental\n */\n@Component({\n selector: 'si-icon',\n imports: [NgClass],\n template: ` <div\n aria-hidden=\"true\"\n [ngClass]=\"svgIcon() ? '' : fontIcon()\"\n [innerHTML]=\"svgIcon()\"\n ></div>`,\n styles: `\n :host {\n display: inline-flex;\n font-weight: normal;\n vertical-align: middle;\n line-height: 1;\n\n ::ng-deep svg {\n display: block;\n block-size: 1em;\n fill: currentColor;\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-icon]': 'icon()'\n }\n})\nexport class SiIconComponent {\n /**\n * Define which icon should be rendered.\n * Provide using:\n * - value of the icon map provided by `addIcons`\n * - (not recommended): plain string in kebab-case or camelCase\n *\n * @example\n * ```ts\n * import { elementUser } from '@simpl/element-icons/ionic';\n *\n * @Component({template: `\n * <si-icon [icon]=\"icons.elementUser\" />\n * <si-icon icon=\"element-user\" />\n * <si-icon icon=\"elementUser\" />\n *\n * `})\n * class MyComponent {\n * icons = addIcons(elementUser);\n * }\n * ```\n */\n readonly icon = input.required<string>();\n\n private readonly config = inject(ICON_CONFIG);\n private readonly iconService = inject(IconService);\n\n protected readonly svgIcon = computed(() =>\n this.config.disableSvgIcons ? undefined : this.iconService.getIcon(this.icon())\n );\n\n /** Icon class, which is ensured to be kebab-case. */\n protected readonly fontIcon = computed(() =>\n this.svgIcon() ? undefined : this.camelToKebabCase(this.icon())\n );\n\n private camelToKebabCase(str: string): string {\n return str\n ?.replace(/([a-z])([A-Z0-9])/g, '$1-$2')\n .replace(/([0-9])([A-Z])/g, '$1-$2')\n .toLowerCase();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiIconLegacyComponent } from './si-icon-legacy.component';\nimport { SiIconComponent } from './si-icon.component';\n\n@NgModule({\n imports: [SiIconComponent, SiIconLegacyComponent],\n exports: [SiIconComponent, SiIconLegacyComponent]\n})\nexport class SiIconModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\n/** */\nexport const elementDown2 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M352.79 203.21a12.45 12.45 0 0 1 1.44 15.86l-1.44 1.72-88 88a12.45 12.45 0 0 1-15.86 1.44l-1.72-1.44-88-88a12.43 12.43 0 0 1 15.86-19l1.72 1.44L256 282.42l79.21-79.21a12.45 12.45 0 0 1 15.86-1.44Z' data-name='Arrow/Right-3'/></svg>\";\nexport const elementCancel =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m273 256 87.52-87.51a12 12 0 0 0-17-17L256 239l-87.51-87.52a12 12 0 0 0-17 17L239 256l-87.52 87.51a12 12 0 0 0 17 17L256 273l87.51 87.52a12 12 0 0 0 17-17Z'/></svg>\";\nexport const elementFavoritesFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M427.42 216.46a12 12 0 0 0-9.68-8.17L313.41 193l-46.65-94.47a12 12 0 0 0-21.52 0L198.59 193 94.26 208.29a12 12 0 0 0-6.63 20.47l75.48 73.51-17.82 103.86a12 12 0 0 0 17.42 12.65L256 369.72l93.29 49.06a12 12 0 0 0 17.42-12.65l-17.82-103.86 75.48-73.51a12 12 0 0 0 3.05-12.3Z'/></svg>\";\nexport const elementFavorites =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M427.42 216.46a12 12 0 0 0-9.68-8.17L313.41 193l-46.65-94.47a12 12 0 0 0-21.52 0L198.59 193 94.26 208.29a12 12 0 0 0-6.63 20.47l75.48 73.51-17.82 103.86a12 12 0 0 0 17.42 12.65L256 369.72l93.29 49.06a12 12 0 0 0 17.42-12.65l-17.82-103.86 75.48-73.51a12 12 0 0 0 3.05-12.3Zm-99.79 73a12 12 0 0 0-3.46 10.63l14.77 86.11-77.35-40.68a12 12 0 0 0-11.18 0l-77.35 40.68 14.77-86.11a12 12 0 0 0-3.46-10.63l-62.59-61 86.52-12.65a12 12 0 0 0 9-6.56L256 131l38.68 78.36a12 12 0 0 0 9 6.56l86.52 12.65Z'/></svg>\";\nexport const elementExport =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M364 248a12 12 0 0 0-12 12v96a20 20 0 0 1-20 20H156a20 20 0 0 1-20-20V180a20 20 0 0 1 20-20h96a12 12 0 0 0 0-24h-96a44.05 44.05 0 0 0-44 44v176a44.05 44.05 0 0 0 44 44h176a44.05 44.05 0 0 0 44-44v-96a12 12 0 0 0-12-12Z'/><path d='M423.94 98.82c0-.19-.05-.37-.08-.55s-.05-.41-.09-.61-.1-.41-.15-.61a4.58 4.58 0 0 0-.14-.53c-.06-.2-.13-.39-.2-.58s-.12-.36-.19-.53-.16-.35-.25-.53-.16-.36-.26-.54-.19-.32-.29-.48-.2-.35-.31-.52-.25-.35-.38-.52l-.32-.43c-.24-.29-.5-.58-.77-.85s-.56-.53-.85-.77l-.44-.33c-.17-.12-.33-.25-.51-.37l-.53-.32-.47-.28c-.18-.1-.37-.18-.56-.27l-.51-.24-.55-.2-.55-.19c-.19-.06-.38-.1-.57-.15l-.57-.14-.67-.1-.49-.07q-.6-.06-1.2-.06H316a12 12 0 0 0 0 24h67L227.51 267.51a12 12 0 0 0 17 17L400 129v67a12 12 0 0 0 24 0v-96a10.88 10.88 0 0 0-.06-1.18Z'/></svg>\";\nexport const elementThumbnails =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><circle cx='144' cy='144' r='24'/><circle cx='368' cy='144' r='24'/><circle cx='256' cy='144' r='24'/><circle cx='144' cy='368' r='24'/><circle cx='368' cy='368' r='24'/><circle cx='256' cy='368' r='24'/><circle cx='144' cy='256' r='24'/><circle cx='368' cy='256' r='24'/><circle cx='256' cy='256' r='24'/></svg>\";\nexport const elementOptionsVertical =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M284 256a28 28 0 1 1-28-28 28 28 0 0 1 28 28ZM284 144a28 28 0 1 1-28-28 28 28 0 0 1 28 28ZM284 368a28 28 0 1 1-28-28 28 28 0 0 1 28 28Z'/></svg>\";\nexport const elementMenu =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M400 244H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24ZM400 148H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24ZM400 340H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24Z'/></svg>\";\nexport const elementMinus =\n \"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M356 268H156a12 12 0 0 1 0-24h200a12 12 0 0 1 0 24Z'/></svg>\";\nexport const elementCircleFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64Z'/></svg>\";\nexport const elementOctagonFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M320.2 77H191.8a24 24 0 0 0-17 7L84 174.83a24 24 0 0 0-7 17V320.2a24 24 0 0 0 7 17l90.8 90.8a24 24 0 0 0 17 7h128.4a24 24 0 0 0 17-7l90.8-90.8a24 24 0 0 0 7-17V191.8a24 24 0 0 0-7-17L337.17 84a24 24 0 0 0-16.97-7Z'/></svg>\";\nexport const elementPlus =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M356 244h-88v-88a12 12 0 0 0-24 0v88h-88a12 12 0 0 0 0 24h88v88a12 12 0 0 0 24 0v-88h88a12 12 0 0 0 0-24Z'/></svg>\";\nexport const elementSoundMute =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m393 256 39.52-39.51a12 12 0 0 0-17-17L376 239l-39.51-39.52a12 12 0 0 0-17 17L359 256l-39.52 39.51a12 12 0 0 0 17 17L376 273l39.51 39.52a12 12 0 0 0 17-17ZM238 394a12 12 0 0 1-7.5-2.63L143.8 322H76a12 12 0 0 1-12-12V202a12 12 0 0 1 12-12h67.8l86.72-69.37A12 12 0 0 1 250 130v252a12 12 0 0 1-12 12ZM88 298h60a11.93 11.93 0 0 1 7.49 2.63L226 357.05V155l-70.5 56.36A11.93 11.93 0 0 1 148 214H88Z' /></svg>\";\nexport const elementSoundOn =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M238 394a12 12 0 0 1-7.5-2.63L143.8 322H76a12 12 0 0 1-12-12V202a12 12 0 0 1 12-12h67.8l86.72-69.37A12 12 0 0 1 250 130v252a12 12 0 0 1-12 12ZM88 298h60a11.93 11.93 0 0 1 7.49 2.63L226 357.05V155l-70.5 56.36A11.93 11.93 0 0 1 148 214H88ZM383.29 395.27a12 12 0 0 1-8.48-20.48c65.48-65.5 65.48-172.08 0-237.58a12 12 0 1 1 17-17c74.83 74.86 74.83 196.66 0 271.52a12 12 0 0 1-8.52 3.54Zm-63.54-63.72a12 12 0 0 1-8.49-20.49 78.1 78.1 0 0 0 0-110.3 12 12 0 1 1 17-17 102.12 102.12 0 0 1 0 144.24 12 12 0 0 1-8.51 3.55Z' /></svg>\";\nexport const elementSquare45Filled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><rect x='113.17' y='113.17' width='285.65' height='285.65' rx='24' transform='rotate(-45 256 256.002)'/></svg>\";\nexport const elementSquareFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><rect x='88' y='88' width='336' height='336' rx='48'/></svg>\";\nexport const elementStateExclamationMark =\n \"data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 279.12c-11.05 0-20-8.95-20-20v-89.8c0-11.05 8.95-20 20-20s20 8.95 20 20v89.8c0 11.05-8.95 20-20 20ZM256.17 359.03h-.34c-13.16 0-23.83-10.75-23.83-24s10.67-24 23.83-24h.34c13.16 0 23.83 10.75 23.83 24s-10.67 24-23.83 24Z'/></svg>\";\nexport const elementStateInfo =\n \"data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 356c-11.05 0-20-8.95-20-20v-80c0-11.05 8.95-20 20-20s20 8.95 20 20v80c0 11.05-8.95 20-20 20ZM256.17 156.32h-.34c-13.16 0-23.83 10.75-23.83 24s10.67 24 23.83 24h.34c13.16 0 23.83-10.75 23.83-24s-10.67-24-23.83-24Z'/></svg>\";\nexport const elementStatePause =\n \"data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M222 349.5c-11.05 0-20-8.95-20-20v-147c0-11.05 8.95-20 20-20s20 8.95 20 20v147c0 11.05-8.95 20-20 20ZM290 349.5c-11.05 0-20-8.95-20-20v-147c0-11.05 8.95-20 20-20s20 8.95 20 20v147c0 11.05-8.95 20-20 20Z'/></svg>\";\nexport const elementStateProgress =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M270.43 253.68V114.43c69.75 0 127.15 62.86 127.15 139.26 0 38.04-14.23 74.47-39.36 100.74l-87.79-100.74Z'/></svg>\";\nexport const elementStateQuestionMark =\n \"data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 311c-11.05 0-20-8.95-20-20v-29.22a19.994 19.994 0 0 1 13.63-18.96c10.43-3.62 33.09-15.84 33.09-28.82.02-11.91-7.5-22.54-18.71-26.49-14.56-5.12-30.58 2.56-35.7 17.12-3.67 10.42-15.08 15.9-25.5 12.23s-15.9-15.08-12.23-25.5c12.44-35.37 51.34-54.02 86.71-41.58 27.22 9.58 45.48 35.4 45.44 64.25 0 13.92-5.57 34.34-32.11 52.4-5.12 3.49-10.2 6.31-14.61 8.5V291c0 11.05-8.95 20-20 20ZM256.16 375h-.32c-13.17 0-23.84-10.75-23.84-24s10.67-24 23.84-24h.32c13.17 0 23.84 10.75 23.84 24s-10.67 24-23.84 24Z'/></svg>\";\nexport const elementStateTick =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M222.25 345.88c-5.12 0-10.24-1.95-14.14-5.86l-56.25-56.25c-7.81-7.81-7.81-20.47 0-28.29s20.47-7.81 28.28 0l42.11 42.11 109.61-109.61c7.81-7.81 20.47-7.81 28.28 0s7.81 20.47 0 28.29L236.39 340.02a19.92 19.92 0 0 1-14.14 5.86Z' style='stroke-width:0'/></svg>\";\nexport const elementTriangleFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m441.77 338.25-.1-.17L295.72 94.42a46.45 46.45 0 0 0-79.44 0 .21.21 0 0 0 0 .06L70.32 338.08l-.1.17a46.45 46.45 0 0 0 39.72 69.68h292.11a46.46 46.46 0 0 0 39.72-69.68Z'/></svg>\";\nexport const elementRight2 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M203.21 159.21a12.45 12.45 0 0 1 15.86-1.44l1.72 1.44 88 88a12.45 12.45 0 0 1 1.44 15.86l-1.44 1.72-88 88a12.43 12.43 0 0 1-19-15.86l1.44-1.72L282.42 256l-79.21-79.21a12.45 12.45 0 0 1-1.44-15.86Z' data-name='Arrow/Right-3'/></svg>\";\nexport const elementRecordFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 408c-41.88 0-78.06-14.95-107.55-44.44S104 297.87 104 256s15-78 44.45-107.55S214.13 104 256 104s78 15 107.54 44.45S408 214.15 408 256s-15 78.05-44.45 107.55S297.87 408 256 408Z'/></svg>\";\nexport const elementOk =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m379.51 156.76-173 173-74-74a12 12 0 1 0-17 17l82.5 82.5a12 12 0 0 0 17 0l181.5-181.5a12 12 0 0 0-17-17Z'/></svg>\";\nexport const elementOutOfService =\n \"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 436a179.4 179.4 0 0 0 126.28-51.86 12.27 12.27 0 0 0 1.86-1.86A179.4 179.4 0 0 0 436 256c0-99.25-80.75-180-180-180a179.4 179.4 0 0 0-126.28 51.86 12.27 12.27 0 0 0-1.86 1.86A179.4 179.4 0 0 0 76 256c0 99.25 80.75 180 180 180ZM100 256a155.29 155.29 0 0 1 37.59-101.44l219.85 219.85A155.29 155.29 0 0 1 256 412c-86 0-156-70-156-156Zm312 0a155.29 155.29 0 0 1-37.59 101.44L154.56 137.59A155.29 155.29 0 0 1 256 100c86 0 156 70 156 156Z' /></svg>\";\nexport const elementLeft3 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M319.39 106.22a11.1 11.1 0 0 1-2.09 6.51L219.49 256l97.82 143.29a11.05 11.05 0 0 1 2.08 6.49 11.24 11.24 0 0 1-4.7 9.13 11.12 11.12 0 0 1-6.51 2.09 11.24 11.24 0 0 1-9.13-4.69L192.61 256 299 99.71a11.24 11.24 0 0 1 9.18-4.71 11.12 11.12 0 0 1 6.51 2.09 11.24 11.24 0 0 1 4.7 9.13Z'/></svg>\";\nexport const elementRight3 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M192.61 106.22a11.1 11.1 0 0 0 2.09 6.51L292.51 256l-97.82 143.29a11.05 11.05 0 0 0-2.08 6.49 11.24 11.24 0 0 0 4.7 9.13 11.12 11.12 0 0 0 6.51 2.09 11.24 11.24 0 0 0 9.13-4.69L319.39 256 213 99.71a11.24 11.24 0 0 0-9.18-4.71 11.12 11.12 0 0 0-6.51 2.09 11.24 11.24 0 0 0-4.7 9.13Z'/></svg>\";\nexport const elementHide =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M254.85 173.58c42.57 0 84.25 14.94 123.9 44.4a278.05 278.05 0 0 1 41.59 38 278.05 278.05 0 0 1-41.59 38 260.79 260.79 0 0 1-25.17 16.59l17.48 17.48q11.49-7 22.63-15.27c32.57-24.34 51.1-48.55 51.87-49.57a12 12 0 0 0 0-14.5c-.77-1-19.3-25.23-51.87-49.57-43.43-32.45-91.44-49.6-138.84-49.6a204.56 204.56 0 0 0-54.72 7.58L220 177a180.12 180.12 0 0 1 34.85-3.42ZM436.49 427.51 349 340l-18-18-28.36-28.36-17.12-17.12-50.09-50.09-17.12-17.12-25-25-18.47-18.47-90.35-90.33a12 12 0 0 0-17 17l84.29 84.28a267.53 267.53 0 0 0-34.72 22.47c-32 24.38-50 48.64-50.75 49.66a12 12 0 0 0 0 14.2c.75 1 18.72 25.28 50.75 49.66 42.69 32.49 90.33 49.66 137.77 49.66a210.29 210.29 0 0 0 70.2-12.4l94.46 94.47a12 12 0 0 0 17-17Zm-215.15-181.2 44.35 44.35a36 36 0 0 1-44.35-44.35Zm33.51 92.11c-42.52 0-83.79-14.91-122.65-44.32A268.8 268.8 0 0 1 91.46 256a268.29 268.29 0 0 1 40.74-38.1 242.38 242.38 0 0 1 37.32-23.41L203 228a59.95 59.95 0 0 0 81 81l22 22.05a183.47 183.47 0 0 1-51.15 7.37Z'/><path d='m291.13 248.16 22.94 22.94a60 60 0 0 0-73.17-73.17l22.94 22.94a36.1 36.1 0 0 1 27.29 27.29Z'/></svg>\";\nexport const elementShow =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M254.85 362.42c-47.44 0-95.08-17.17-137.77-49.66-32-24.38-50-48.64-50.75-49.66a12 12 0 0 1 0-14.2c.75-1 18.72-25.28 50.75-49.66 42.69-32.49 90.33-49.66 137.77-49.66s95.41 17.15 138.84 49.6c32.57 24.34 51.1 48.55 51.87 49.57a12 12 0 0 1 0 14.5c-.77 1-19.3 25.23-51.87 49.57-43.43 32.45-91.44 49.6-138.84 49.6ZM91.46 256a268.8 268.8 0 0 0 40.74 38.1c38.86 29.41 80.13 44.32 122.65 44.32s84.25-14.94 123.9-44.4a278.05 278.05 0 0 0 41.59-38 278.05 278.05 0 0 0-41.59-38c-39.65-29.46-81.33-44.4-123.9-44.4s-83.79 14.87-122.65 44.28A268.29 268.29 0 0 0 91.46 256Z'/><path d='M256 316a60 60 0 1 1 60-60 60.07 60.07 0 0 1-60 60Zm0-96a36 36 0 1 0 36 36 36 36 0 0 0-36-36Z'/></svg>\";\nexport const elementBreadcrumbRoot =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m300.35 157.77 1.72 1.44 88 88a12.43 12.43 0 0 1 1.44 15.86l-1.44 1.72-88 88a12.43 12.43 0 0 1-19-15.86l1.44-1.72 79.2-79.21-79.21-79.21a12.43 12.43 0 0 1-1.44-15.86l1.44-1.72a12.44 12.44 0 0 1 15.85-1.44Z'/><path d='M186.29 364h-56a12 12 0 0 1-12-12V160a12 12 0 0 1 12-12h56a12 12 0 0 1 8.48 3.51l96 96a12 12 0 0 1 0 17l-96 96a12 12 0 0 1-8.48 3.49Zm-44-24h39l84-84-84-84h-39Z'/></svg>\";\nexport const elementSortDown =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M234.39 267.4 190 311.81V176a10 10 0 0 0-9.92-10h-.14a10 10 0 0 0-9.94 10v135.81l-44.4-44.41a10 10 0 0 0-14.13 14.13l60.35 60.34a9.53 9.53 0 0 0 1 1.21 10.24 10.24 0 0 0 14.32 0 9.53 9.53 0 0 0 1-1.21l60.35-60.34a10 10 0 0 0-14.13-14.13ZM369.48 324.45h-71.61a7.17 7.17 0 1 0 0 14.33h71.61a7.17 7.17 0 0 0 0-14.33ZM398.13 248.84H297.87a7.16 7.16 0 1 0 0 14.32h100.26a7.16 7.16 0 1 0 0-14.32ZM441.1 173.22H297.87a7.17 7.17 0 1 0 0 14.33H441.1a7.17 7.17 0 0 0 0-14.33Z'/></svg>\";\nexport const elementSortUp =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M217.69 300v-.27h-.2ZM369.48 324.45h-71.61a7.17 7.17 0 1 0 0 14.33h71.61a7.17 7.17 0 0 0 0-14.33ZM398.13 248.84H297.87a7.16 7.16 0 1 0 0 14.32h100.26a7.16 7.16 0 1 0 0-14.32ZM441.1 173.22H297.87a7.17 7.17 0 1 0 0 14.33H441.1a7.17 7.17 0 0 0 0-14.33ZM188.17 170.13a9.53 9.53 0 0 0-1-1.21 10.24 10.24 0 0 0-14.32 0 9.53 9.53 0 0 0-1 1.21l-60.35 60.34a10 10 0 0 0 14.13 14.13L170 200.19V336a10 10 0 0 0 9.92 10h.14a10 10 0 0 0 9.94-10V200.19l44.4 44.41a10 10 0 0 0 14.13-14.13Z'/></svg>\";\nexport const elementSearch =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m420.49 403.51-76.88-76.87A139.39 139.39 0 0 0 377 236c0-77.2-62.8-140-140-140S97 158.8 97 236s62.8 140 140 140a139.33 139.33 0 0 0 89.55-32.48l77 77a12 12 0 0 0 17-17ZM121 236a116 116 0 1 1 116 116 116.13 116.13 0 0 1-116-116Z' /></svg>\";\nexport const elementChecked =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 76c-99.25 0-180 80.75-180 180s80.75 180 180 180 180-80.75 180-180S355.25 76 256 76Zm0 336c-86 0-156-70-156-156s70-156 156-156 156 70 156 156-70 156-156 156Z'/><path d='M218.5 336.75a12 12 0 0 1-8.49-3.51l-62.5-62.5a12 12 0 0 1 17-17l54 54 129-129a12 12 0 0 1 17 17L227 333.24a12 12 0 0 1-8.5 3.51Z'/></svg>\";\nexport const elementCheckedFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 76c-99.25 0-180 80.75-180 180s80.75 180 180 180 180-80.75 180-180S355.25 76 256 76Zm108.49 119.74L227 333.24a12 12 0 0 1-17 0l-62.5-62.5a12 12 0 0 1 17-17l54 54 129-129a12 12 0 0 1 17 17Z'/></svg>\";\nexport const elementLeft4 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M391 244H150.09l78.51-78.51a12 12 0 1 0-17-17l-98.09 98.09a12 12 0 0 0 0 18.78l98.09 98.09a12 12 0 1 0 17-17L150.09 268H391a12 12 0 0 0 0-24Z'/></svg>\";\nexport const elementNotChecked =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 76c-99.25 0-180 80.75-180 180s80.75 180 180 180 180-80.75 180-180S355.25 76 256 76Zm0 336c-86 0-156-70-156-156s70-156 156-156 156 70 156 156-70 156-156 156Z'/></svg>\";\nexport const elementRight4 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M403 256a12 12 0 0 0-4.54-9.39l-98.09-98.09a12 12 0 1 0-17 17L361.91 244H121a12 12 0 0 0 0 24h240.91l-78.51 78.51a12 12 0 1 0 17 17l98.09-98.09A12 12 0 0 0 403 256Z'/></svg>\";\nexport const elementRadioChecked =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 436c-99.25 0-180-80.75-180-180S156.75 76 256 76s180 80.75 180 180-80.75 180-180 180Zm0-336c-86.02 0-156 69.98-156 156s69.98 156 156 156 156-69.98 156-156-69.98-156-156-156Z'/><circle cx='256' cy='256' r='86'/></svg>\";\nexport const elementWarningFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m441.77 354.25-.09-.16-146-243.66a46.45 46.45 0 0 0-79.44 0v.06L70.33 354.09l-.1.16A46.47 46.47 0 0 0 110 423.94h292.1a46.45 46.45 0 0 0 39.72-69.69ZM244 205.2a12 12 0 0 1 24 0v68.92a12 12 0 0 1-24 0ZM256.2 360h-.2a16 16 0 0 1 0-32h.22a16 16 0 0 1 0 32Z'/></svg>\";\nexport const elementCalendar =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M368 113h-36V93a12 12 0 0 0-24 0v20H204V93a12 12 0 0 0-24 0v20h-36a44.05 44.05 0 0 0-44 44v224a44.05 44.05 0 0 0 44 44h224a44.05 44.05 0 0 0 44-44V157a44.05 44.05 0 0 0-44-44Zm-224 24h36v20a12 12 0 0 0 24 0v-20h104v20a12 12 0 0 0 24 0v-20h36a20 20 0 0 1 20 20v52H124v-52a20 20 0 0 1 20-20Zm224 264H144a20 20 0 0 1-20-20V233h264v148a20 20 0 0 1-20 20Z'/><path d='M335.19 263.36a20 20 0 1 1-20 20.11 20 20 0 0 1 20-20.11ZM256.21 263.36a20 20 0 1 1-20 20.11 20 20 0 0 1 20-20.11ZM256.21 326.54a20 20 0 1 1-20 20.11 20 20 0 0 1 20-20.11ZM177.24 326.54a20 20 0 1 1-20 20.11 20 20 0 0 1 20-20.11Z'/></svg>\";\nexport const elementLeft2 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M308.79 352.79a12.45 12.45 0 0 1-15.86 1.44l-1.72-1.44-88-88a12.45 12.45 0 0 1-1.44-15.86l1.44-1.72 88-88a12.43 12.43 0 0 1 19 15.86l-1.44 1.72L229.58 256l79.21 79.21a12.45 12.45 0 0 1 1.44 15.86Z' data-name='Arrow/Right-3'/></svg>\";\nexport const elementUpload =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M377.33 424H134.67A46.72 46.72 0 0 1 88 377.33V308a12 12 0 0 1 24 0v69.33A22.7 22.7 0 0 0 134.67 400h242.66A22.7 22.7 0 0 0 400 377.33V308a12 12 0 0 1 24 0v69.33A46.72 46.72 0 0 1 377.33 424Z'></path><path d='m351.15 178.18-86.66-86.67-.06-.05c-.27-.26-.54-.5-.82-.74l-.47-.35-.47-.35c-.18-.12-.37-.22-.56-.33s-.29-.19-.45-.27l-.57-.28-.49-.22c-.19-.08-.38-.14-.57-.21s-.36-.14-.54-.19-.38-.1-.58-.15l-.56-.14-.67-.1-.49-.07a11.83 11.83 0 0 0-2.38 0l-.49.07-.67.1-.56.14c-.2 0-.39.09-.58.15s-.36.12-.54.19l-.57.21-.49.22-.57.28c-.16.08-.3.18-.46.27s-.37.21-.55.33-.32.24-.48.36l-.46.34c-.28.24-.55.48-.82.74l-.06.05-86.66 86.67a12 12 0 1 0 17 17L244 129v179a12 12 0 0 0 24 0V129l66.18 66.18a12 12 0 0 0 17-17Z' /></svg>\";\nexport const elementDelete =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M400 144h-72v-12a44.05 44.05 0 0 0-44-44h-56a44.05 44.05 0 0 0-44 44v12h-72a12 12 0 0 0 0 24h20v212a44.05 44.05 0 0 0 44 44h160a44.05 44.05 0 0 0 44-44V168h20a12 12 0 0 0 0-24Zm-192-12a20 20 0 0 1 20-20h56a20 20 0 0 1 20 20v12h-96Zm148 248a20 20 0 0 1-20 20H176a20 20 0 0 1-20-20V168h200Z'></path><path d='M224 344a12 12 0 0 0 12-12v-96a12 12 0 0 0-24 0v96a12 12 0 0 0 12 12ZM288 344a12 12 0 0 0 12-12v-96a12 12 0 0 0-24 0v96a12 12 0 0 0 12 12Z' /></svg>\";\nexport const elementRedo =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M411.91 112.2a12 12 0 0 0-12 12v45.09A167.89 167.89 0 0 0 256 88c-92.64 0-168 75.36-168 168s75.36 168 168 168a168 168 0 0 0 166.06-142.43 12 12 0 0 0-23.72-3.63A144 144 0 0 1 256 400c-79.4 0-144-64.6-144-144s64.6-144 144-144a144.55 144.55 0 0 1 124.83 72.2h-40.92a12 12 0 0 0 0 24h72a12 12 0 0 0 12-12v-72a12 12 0 0 0-12-12Z' /></svg>\";\nexport const elementDocument =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M162.4 424h187.2a43.25 43.25 0 0 0 43.2-43.2V209.2q0-.6-.06-1.2c0-.29-.08-.58-.13-.86 0-.1 0-.2-.05-.3a8.28 8.28 0 0 0-.25-1v-.13c-.1-.34-.23-.67-.36-1a.49.49 0 0 0 0-.11 9.3 9.3 0 0 0-.43-.9.77.77 0 0 0-.07-.16c-.15-.27-.31-.53-.47-.79l-.14-.22c-.16-.24-.33-.46-.51-.69l-.19-.26a10.41 10.41 0 0 0-.71-.78l-.07-.09-109.27-109.2-.09-.07a10.41 10.41 0 0 0-.78-.71l-.25-.19c-.23-.18-.46-.35-.7-.51l-.22-.14c-.26-.16-.52-.32-.79-.47l-.15-.07c-.3-.16-.6-.3-.91-.43h-.09c-.33-.13-.67-.25-1-.36H275a9.09 9.09 0 0 0-1-.25h-.29c-.29 0-.58-.1-.87-.13S272 88 271.6 88H162.4a43.25 43.25 0 0 0-43.2 43.2v249.6a43.25 43.25 0 0 0 43.2 43.2Zm121.2-295 68.23 68.23H283.6Zm-140.4 2.2a19.22 19.22 0 0 1 19.2-19.2h97.2v97.2a12 12 0 0 0 12 12h97.2v159.6a19.22 19.22 0 0 1-19.2 19.2H162.4a19.22 19.22 0 0 1-19.2-19.2Z' /></svg>\";\nexport const elementLock =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M280 305.5a24 24 0 1 0-36 20.78V363a12 12 0 0 0 24 0v-36.72a24 24 0 0 0 12-20.78Z' /><path d='M358.67 224H348v-52a92 92 0 0 0-184 0v52h-10.67c-22.79 0-41.33 19.74-41.33 44v112c0 24.26 18.54 44 41.33 44h205.34c22.79 0 41.33-19.74 41.33-44V268c0-24.26-18.54-44-41.33-44ZM188 172a68 68 0 0 1 136 0v52H188Zm188 208c0 11-7.78 20-17.33 20H153.33c-9.55 0-17.33-9-17.33-20V268c0-11 7.78-20 17.33-20h205.34c9.55 0 17.33 9 17.33 20Z'/></svg>\";\nexport const elementDoubleLeft =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m234.77 248.93 1.44-1.72 110-110a12.43 12.43 0 0 1 19 15.86l-1.44 1.72L262.59 256l101.2 101.21a12.45 12.45 0 0 1 1.44 15.86l-1.44 1.72a12.45 12.45 0 0 1-15.86 1.44l-1.72-1.44-110-110a12.45 12.45 0 0 1-1.44-15.86Z'/><path d='m146.77 248.93 1.44-1.72 88-88a12.43 12.43 0 0 1 19 15.86l-1.44 1.72L174.59 256l79.2 79.21a12.45 12.45 0 0 1 1.44 15.86l-1.44 1.72a12.45 12.45 0 0 1-15.86 1.44l-1.72-1.44-88-88a12.45 12.45 0 0 1-1.44-15.86Z'/></svg>\";\nexport const elementDoubleRight =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m277.23 263.07-1.44 1.72-110 110a12.43 12.43 0 0 1-19-15.86l1.44-1.72L249.41 256l-101.2-101.21a12.45 12.45 0 0 1-1.44-15.86l1.44-1.72a12.45 12.45 0 0 1 15.86-1.44l1.72 1.44 110 110a12.45 12.45 0 0 1 1.44 15.86Z'/><path d='m365.23 263.07-1.44 1.72-88 88a12.43 12.43 0 0 1-19-15.86l1.44-1.72L337.41 256l-79.2-79.21a12.45 12.45 0 0 1-1.44-15.86l1.44-1.72a12.45 12.45 0 0 1 15.86-1.44l1.72 1.44 88 88a12.45 12.45 0 0 1 1.44 15.86Z'/></svg>\";\nexport const element2dEditor =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M436.13 235.87a40.53 40.53 0 0 0-57.32 0L242.64 372a12.06 12.06 0 0 0-3.09 5.33l-15.13 55.47A12 12 0 0 0 236 448a12.26 12.26 0 0 0 3.16-.42l55.47-15.13a12.06 12.06 0 0 0 5.33-3.09l136.17-136.17a40.53 40.53 0 0 0 0-57.32Zm-177.4 162.38a58.16 58.16 0 0 1 7.94 6.51 46.44 46.44 0 0 1 6.75 8.6l-20.32 5.54Zm160.43-122-125 125a71 71 0 0 0-10.6-13.53A82.22 82.22 0 0 0 271 377.61l124.78-124.77a16.53 16.53 0 0 1 23.38 23.38ZM412 348a12 12 0 0 0-12 12v40h-40a12 12 0 0 0 0 24h48a16 16 0 0 0 16-16v-48a12 12 0 0 0-12-12Z'/><path d='M188 159a12 12 0 0 0 12-12v-35h72.39v88a12 12 0 0 0 12 12h66a12 12 0 0 0 0-24h-54v-76H400v88a12 12 0 0 0 24 0v-96a16 16 0 0 0-16-16H104a16 16 0 0 0-16 16v304a16 16 0 0 0 16 16h84a12 12 0 0 0 12-12v-45a12 12 0 0 0-24 0v33h-64V268h64v32a12 12 0 0 0 24 0v-88a12 12 0 0 0-24 0v32h-64V112h64v35a12 12 0 0 0 12 12Z'/></svg>\";\nexport const elementAlarmFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M294.06 406.05A12 12 0 0 0 273.3 394a20 20 0 0 1-34.6 0 12 12 0 0 0-20.76 12.05 44 44 0 0 0 76.12 0ZM419.92 326.79c-.35-.31-35.26-32.34-57.55-128.33A198.52 198.52 0 0 0 342 144.89c-20.71-36.52-50-56.08-84.8-56.6h-1.16a11.23 11.23 0 0 0-1.16 0c-34.79.52-64.09 20.08-84.8 56.6a198.33 198.33 0 0 0-20.4 53.57c-22.3 96-57.21 128-57.49 128.27a12 12 0 0 0 7.81 21.08h312a12 12 0 0 0 7.92-21Z'/></svg>\";\nexport const elementAlarmTick =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M427.72 116.64 279.19 277.47l-73.9-73.9a12 12 0 0 0-17 17l82.73 82.73a12 12 0 0 0 8.48 3.51h.24a12 12 0 0 0 8.58-3.86l157-170a12 12 0 0 0-17.63-16.28Z'/></svg>\";\nexport const elementUser =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 252a76 76 0 1 0-76-76 76.08 76.08 0 0 0 76 76Zm0-128a52 52 0 1 1-52 52 52.06 52.06 0 0 1 52-52ZM124 360.14a12 12 0 0 0 6.71-2.06c.61-.41 61.54-41.08 126.14-41.08 75.3 0 122.86 39.84 123.3 40.23a12 12 0 0 0 15.68-18.18c-2.19-1.88-54.39-46.05-139-46.05C185 293 120 336.35 117.28 338.19a12 12 0 0 0 6.72 21.95Z'/></svg>\";\nexport const elementHelp =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64Zm0 360c-92.64 0-168-75.36-168-168S163.36 88 256 88s168 75.36 168 168-75.36 168-168 168Z'/><path d='M256 305a12 12 0 0 1-12-12v-29.22a12 12 0 0 1 6.51-10.67 11.63 11.63 0 0 1 1.67-.71c1.14-.4 38.54-14.05 38.54-36.4a36 36 0 0 0-70-12 12 12 0 1 1-22.64-8 60 60 0 0 1 116.6 20c0 31-31.39 48.92-46.72 55.84V293A12 12 0 0 1 256 305ZM256.11 360h-.22a16 16 0 0 1 0-32h.22a16 16 0 0 1 0 32Z'/></svg>\";\nexport const elementPinch =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M248.46 275.15c0-.19-.05-.37-.07-.55s-.06-.41-.1-.61a6 6 0 0 0-.15-.61c0-.18-.08-.36-.13-.53s-.14-.39-.2-.58-.13-.36-.2-.53-.16-.35-.24-.53-.17-.36-.26-.53-.19-.33-.29-.49-.2-.35-.32-.52-.25-.35-.38-.52-.2-.29-.32-.43c-.24-.29-.5-.58-.77-.85-.28-.27-.56-.52-.86-.77-.14-.12-.29-.22-.44-.33l-.5-.37-.53-.32-.48-.28c-.18-.1-.37-.18-.55-.27l-.51-.23c-.18-.08-.37-.14-.55-.21l-.56-.19-.56-.15-.58-.14-.66-.1-.5-.07a11.85 11.85 0 0 0-1.19-.06h-120a12 12 0 0 0 0 24h91L108 387.84a12 12 0 1 0 17 17l99.51-99.51v91a12 12 0 0 0 24 0v-120a10.88 10.88 0 0 0-.05-1.18ZM405.1 106.75a12 12 0 0 0-17 0l-99.51 99.51v-91a12 12 0 0 0-24 0v120a10.88 10.88 0 0 0 .06 1.14c0 .18.05.36.08.54s.05.41.09.62.1.4.15.6.08.36.14.54.13.38.2.58.12.35.19.52.17.36.25.53.16.36.26.54.19.33.29.49.2.35.31.52l.38.51.32.43c.25.3.5.58.77.86.27.27.56.53.85.77l.44.33a6 6 0 0 0 .51.37 5.74 5.74 0 0 0 .53.32l.47.29.55.26c.17.08.34.17.52.24l.54.2c.19.07.37.14.57.2l.54.14.6.14.63.1c.17 0 .35.06.53.07a11.66 11.66 0 0 0 1.18.06h120a12 12 0 0 0 0-24h-91l99.51-99.51a12 12 0 0 0 .05-16.91Z'/></svg>\";\nexport const elementZoom =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M423.94 98.82c0-.19-.05-.37-.08-.55s-.05-.41-.09-.61-.1-.41-.15-.61a4.58 4.58 0 0 0-.14-.53c-.06-.2-.13-.39-.2-.58s-.12-.36-.19-.53-.16-.35-.25-.53-.16-.36-.26-.54-.19-.32-.29-.48-.2-.35-.31-.52-.25-.35-.38-.52l-.32-.43c-.24-.29-.5-.58-.77-.85s-.56-.53-.85-.77l-.44-.33c-.17-.12-.33-.25-.51-.37l-.53-.32-.47-.28c-.18-.1-.37-.18-.56-.27l-.51-.24-.55-.2-.55-.19c-.19-.06-.38-.1-.57-.15l-.57-.14-.67-.1-.49-.07q-.6-.06-1.2-.06H308a12 12 0 0 0 0 24h75l-100.82 100.8a12 12 0 0 0 17 17L400 129v75a12 12 0 0 0 24 0V100a10.88 10.88 0 0 0-.06-1.18ZM212.85 282.18 112 383v-75a12 12 0 0 0-24 0v104a10.88 10.88 0 0 0 .06 1.14c0 .19 0 .37.08.55s0 .41.09.61.1.41.15.61a4.58 4.58 0 0 0 .14.53c.06.2.13.39.2.58s.12.36.19.53.17.35.25.53.16.36.26.54.19.32.29.48.2.35.31.52.25.35.38.52l.32.43c.24.29.5.58.77.85s.56.53.85.77l.44.33c.17.12.33.25.51.37l.52.32.48.28c.18.1.37.18.55.27l.52.24.54.19c.19.07.37.14.57.2a5.36 5.36 0 0 0 .54.14c.2.05.39.11.6.15s.42.06.63.09l.53.08a11.51 11.51 0 0 0 1.23.15h104a12 12 0 0 0 0-24h-75l100.82-100.85a12 12 0 1 0-17-17Z'/></svg>\";\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\nimport { EntityStatusType, StatusIcon } from '@siemens/element-ng/common';\nimport { t } from '@siemens/element-translate-ng/translate';\n\nimport {\n elementCircleFilled,\n elementOctagonFilled,\n elementSquare45Filled,\n elementSquareFilled,\n elementStateExclamationMark,\n elementStateInfo,\n elementStatePause,\n elementStateProgress,\n elementStateQuestionMark,\n elementStateTick,\n elementTriangleFilled\n} from './element-icons';\nimport { addIcons } from './si-icons';\n\n/**\n * The status icon configuration.\n *\n * @experimental\n */\nexport const STATUS_ICON_CONFIG = new InjectionToken<{ [key in EntityStatusType]: StatusIcon }>(\n 'STATUS_ICON_CONFIG',\n {\n providedIn: 'root',\n factory: () => {\n addIcons({\n elementCircleFilled,\n elementOctagonFilled,\n elementSquare45Filled,\n elementSquareFilled,\n elementStateExclamationMark,\n elementStateInfo,\n elementStatePause,\n elementStateProgress,\n elementStateQuestionMark,\n elementStateTick,\n elementTriangleFilled\n });\n return {\n success: {\n icon: 'elementCircleFilled',\n color: 'status-success',\n stacked: 'elementStateTick',\n stackedColor: 'status-success-contrast',\n background: 'bg-base-success',\n severity: 5,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.SUCCESS:Success`)\n },\n info: {\n icon: 'elementSquareFilled',\n color: 'status-info',\n stacked: 'elementStateInfo',\n stackedColor: 'status-info-contrast',\n background: 'bg-base-info',\n severity: 4,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.INFO:Info`)\n },\n caution: {\n icon: 'elementSquare45Filled',\n color: 'status-caution',\n stacked: 'elementStateExclamationMark',\n stackedColor: 'status-caution-contrast',\n background: 'bg-base-caution',\n severity: 3,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.CAUTION:Caution`)\n },\n warning: {\n icon: 'elementTriangleFilled',\n color: 'status-warning',\n stacked: 'elementStateExclamationMark',\n stackedColor: 'status-warning-contrast',\n background: 'bg-base-warning',\n severity: 2,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.WARNING:Warning`)\n },\n danger: {\n icon: 'elementCircleFilled',\n color: 'status-danger',\n stacked: 'elementStateExclamationMark',\n stackedColor: 'status-danger-contrast',\n background: 'bg-base-danger',\n severity: 1,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.DANGER:Danger`)\n },\n critical: {\n icon: 'elementOctagonFilled',\n color: 'status-critical',\n stacked: 'elementStateExclamationMark',\n stackedColor: 'status-critical-contrast',\n background: 'bg-base-critical',\n severity: 0,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.CRITICAL:Critical`)\n },\n progress: {\n icon: 'elementCircleFilled',\n color: 'status-info',\n stacked: 'elementStateProgress',\n stackedColor: 'status-info-contrast',\n background: 'bg-base-info',\n severity: 7,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.PROGRESS:Progress`)\n },\n pending: {\n icon: 'elementCircleFilled',\n color: 'status-caution',\n stacked: 'elementStatePause',\n stackedColor: 'status-caution-contrast',\n background: 'bg-base-caution',\n severity: 6,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.PENDING:Pending`)\n },\n unknown: {\n icon: 'elementCircleFilled',\n color: 'status-neutral',\n stacked: 'elementStateQuestionMark',\n stackedColor: 'text-body',\n background: 'bg-base-0',\n severity: 8,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.UNKNOWN:Unknown`)\n }\n };\n }\n }\n);\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { EntityStatusType } from '@siemens/element-ng/common';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiIconComponent } from './si-icon.component';\nimport { STATUS_ICON_CONFIG } from './status-icon';\n\n@Component({\n selector: 'si-status-icon',\n imports: [NgClass, SiIconComponent, SiTranslatePipe],\n template: `\n @let iconValue = statusIcon();\n @if (iconValue) {\n <si-icon [ngClass]=\"iconValue.color\" [icon]=\"iconValue.icon\" />\n <si-icon [ngClass]=\"iconValue.stackedColor\" [icon]=\"iconValue.stacked\" />\n <span class=\"visually-hidden\">{{ iconValue.ariaLabel | translate }}</span>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'icon-stack' }\n})\nexport class SiStatusIconComponent {\n private readonly statusIcons = inject(STATUS_ICON_CONFIG);\n\n readonly status = input.required<EntityStatusType>();\n\n protected readonly statusIcon = computed(() => this.statusIcons[this.status()]);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-icon.module';\nexport * from './status-icon';\nexport { addIcons } from './si-icons';\nexport * from './si-icon.component';\nexport * from './si-icon-legacy.component';\nexport * from './si-status-icon.component';\nexport * from './element-icons';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-icon.mjs","sources":["../../../../projects/element-ng/icon/si-icon-legacy.component.ts","../../../../projects/element-ng/icon/si-icon-legacy.component.html","../../../../projects/element-ng/icon/si-icons.ts","../../../../projects/element-ng/icon/si-icon.component.ts","../../../../projects/element-ng/icon/si-icon.module.ts","../../../../projects/element-ng/icon/element-icons.ts","../../../../projects/element-ng/icon/status-icon.ts","../../../../projects/element-ng/icon/si-status-icon.component.ts","../../../../projects/element-ng/icon/index.ts","../../../../projects/element-ng/icon/siemens-element-ng-icon.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\n/**\n * @deprecated This component should no longer be used.\n * Use the {@link SiIconComponent} instead.\n * Existing usages can be replaced as follows:\n *\n * ```html\n * <!-- before -->\n * <si-icon icon=\"element-user\" color=\"text-danger\" />\n * <!-- after -->\n * <si-icon icon=\"element-user\" class=\"icon text-danger\" />\n * ```\n *\n * **Important:** Previously, the class `icon` was automatically applied. Unless not needed,\n * it must now be applied manually.\n * The icon class scales up the icon compared to its surrounding text.\n *\n * Stacked icons need to be constructed in HTML directly.\n * If applicable, the `si-status-icon` component should be used instead.\n *\n * ```html\n * <!-- before -->\n * <si-icon\n * icon=\"element-circle-filled\"\n * color=\"status-success\"\n * stackedIcon=\"element-state-tick\"\n * stackedColor=\"status-success-contrast\"\n * alt=\"Success\"\n * />\n *\n * <!-- after -->\n * <div class=\"icon-stack icon\" aria-label=\"Success\">\n * <si-icon icon=\"element-circle-filled\" class=\"status-success\" />\n * <si-icon icon=\"element-state-tick\" class=\"status-success-contrast\" />\n * </div>\n * ```\n */\n@Component({\n selector: 'si-icon-legacy',\n imports: [NgClass, SiTranslatePipe],\n templateUrl: './si-icon-legacy.component.html',\n styles: ':host, span { line-height: 1; }',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiIconLegacyComponent {\n /** Icon token, see {@link https://element.siemens.io/icons/element} */\n readonly icon = input<string>();\n /** Color class, see {@link https://element.siemens.io/fundamentals/typography/#color-variants-classes} */\n readonly color = input<string>();\n /** Icon token, see {@link https://element.siemens.io/fundamentals/icons/} */\n readonly stackedIcon = input<string>();\n /** Color class, see {@link https://element.siemens.io/fundamentals/icons/} */\n readonly stackedColor = input<string>();\n /** Alternative name or translation key for icon. Used for A11y. */\n readonly alt = input<TranslatableString>();\n /**\n * Text-size class for icon size, see {@link https://element.siemens.io/fundamentals/typography/#type-styles-classes}\n *\n * @defaultValue 'icon'\n */\n readonly size = input<string>('icon');\n\n protected readonly altText = computed(() => {\n return this.alt() ?? this.icon()?.replace('element-', '').split('-').join(' ') ?? '';\n });\n}\n","<span\n class=\"d-inline-block position-relative\"\n [attr.aria-label]=\"altText() ? (altText() | translate) : null\"\n [attr.aria-hidden]=\"!altText()\"\n [attr.role]=\"altText() ? 'img' : 'presentation'\"\n [ngClass]=\"[icon() ?? '', color() ?? '', size()]\"\n>\n @if (stackedIcon()) {\n <i\n class=\"position-absolute start-0\"\n aria-hidden=\"true\"\n [ngClass]=\"[stackedIcon(), stackedColor() ?? '']\"\n ></i>\n }\n</span>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { DestroyRef, inject, Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { SiThemeService } from '@siemens/element-ng/theme';\n\ninterface RegisteredIcon {\n content: SafeHtml | undefined;\n // Count how often an icon was registered to only remove it if it is no longer in use.\n referenceCount: number;\n}\n\nconst parseDataSvgIcon = (icon: string, domSanitizer: DomSanitizer): SafeHtml => {\n const parsed = /^data:image\\/svg\\+xml;utf8,(.*)$/.exec(icon);\n if (!parsed) {\n console.error('Failed to parse icon', icon);\n return '';\n }\n return domSanitizer.bypassSecurityTrustHtml(parsed[1]);\n};\n\nconst registeredIcons = new Map<string, RegisteredIcon>();\n\n/**\n * Adds the provided icons.\n * It requires an Angular InjectionContent.\n * The Icons are available until the component is destroyed.\n * Call this function only in the component which actually uses the icon.\n * Importing all icons on the global level is discouraged.\n *\n * When using a string instead of the object to use an icon,\n * use the kebab-case version of the icon name.\n *\n * @example\n * ```ts\n * import { elementIcon } from '@simpl/element-icons/ionic';\n * import { addIcons } from '@siemens/element-ng/icon'\n *\n * @Component({`<si-icon [icon]=\"icons.elementIcon\"`})\n * class MyComponent {\n * icons = addIcons({ elementIcon })\n * }\n * ```\n */\nexport const addIcons = <T extends string>(icons: Record<T, string>): Record<T, string> => {\n const iconMap = {} as Record<T, string>;\n const domSanitizer = inject(DomSanitizer);\n for (const [key, rawContent] of Object.entries<string>(icons)) {\n const registeredIcon = registeredIcons.get(key) ?? {\n content: parseDataSvgIcon(rawContent, domSanitizer),\n referenceCount: 0\n };\n registeredIcon.referenceCount++;\n registeredIcons.set(key, registeredIcon);\n iconMap[key as T] = key;\n }\n\n // Delete registered Icons after Component is destroyed to optimize memory usage.\n // WeakMap must not be used, as the Icon can only be removed on component destruction.\n // When using a WeakMap it would also get destroyed if it is not referenced, but the component may use it later again.\n inject(DestroyRef).onDestroy(() => {\n for (const key of Object.keys(icons)) {\n const registeredIcon = registeredIcons.get(key);\n if (registeredIcon!.referenceCount === 1) {\n registeredIcons.delete(key);\n } else {\n registeredIcon!.referenceCount--;\n }\n }\n });\n\n return iconMap;\n};\n\nconst getIcon = (key: string): SafeHtml | undefined => registeredIcons.get(key)?.content;\n\n@Injectable({ providedIn: 'root' })\nexport class IconService {\n private themeService = inject(SiThemeService);\n\n getIcon(name: string): SafeHtml | undefined {\n const camelCaseName = this.kebabToCamelCase(name);\n return this.themeService.themeIcons()[camelCaseName] ?? getIcon(camelCaseName);\n }\n\n private kebabToCamelCase(str: string): string {\n return str?.replace(/-./g, match => match.charAt(1).toUpperCase());\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n InjectionToken,\n input,\n Provider\n} from '@angular/core';\n\nimport { IconService } from './si-icons';\n\n/**\n * Global configuration for icons.\n *\n * @experimental\n */\nexport interface IconConfig {\n /**\n * If true, the si-icon component will always render the icon font instead of the svg.\n *\n * @defaultValue true\n */\n disableSvgIcons?: boolean;\n}\n\nconst ICON_CONFIG = new InjectionToken<IconConfig>('ICON_CONFIG', {\n providedIn: 'root',\n factory: () => ({ disableSvgIcons: true })\n});\n\n/**\n * Configure how Element handles icons. Provide only once in your global configuration.\n *\n * @experimental\n */\nexport const provideIconConfig = (config: IconConfig): Provider => ({\n provide: ICON_CONFIG,\n useValue: config\n});\n\n/**\n * Component to render a font or SVG icon depending on the configuration.\n * If no SVG icon is found, the component will fall back to render the icon-font.\n * In that case, an application must ensure that the icon font is loaded.\n * This component will only attach the respective class.\n *\n * The content of this component is hidden in the a11y tree.\n * If needed, the consumer must set proper labels.\n *\n * @experimental\n */\n@Component({\n selector: 'si-icon',\n imports: [NgClass],\n template: ` <div\n aria-hidden=\"true\"\n [ngClass]=\"svgIcon() ? '' : fontIcon()\"\n [innerHTML]=\"svgIcon()\"\n ></div>`,\n styles: `\n :host {\n display: inline-flex;\n font-weight: normal;\n vertical-align: middle;\n line-height: 1;\n\n ::ng-deep svg {\n display: block;\n block-size: 1em;\n fill: currentColor;\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-icon]': 'icon()'\n }\n})\nexport class SiIconComponent {\n /**\n * Define which icon should be rendered.\n * Provide using:\n * - value of the icon map provided by `addIcons`\n * - (not recommended): plain string in kebab-case or camelCase\n *\n * @example\n * ```ts\n * import { elementUser } from '@simpl/element-icons/ionic';\n *\n * @Component({template: `\n * <si-icon [icon]=\"icons.elementUser\" />\n * <si-icon icon=\"element-user\" />\n * <si-icon icon=\"elementUser\" />\n *\n * `})\n * class MyComponent {\n * icons = addIcons(elementUser);\n * }\n * ```\n */\n readonly icon = input.required<string>();\n\n private readonly config = inject(ICON_CONFIG);\n private readonly iconService = inject(IconService);\n\n protected readonly svgIcon = computed(() =>\n this.config.disableSvgIcons ? undefined : this.iconService.getIcon(this.icon())\n );\n\n /** Icon class, which is ensured to be kebab-case. */\n protected readonly fontIcon = computed(() =>\n this.svgIcon() ? undefined : this.camelToKebabCase(this.icon())\n );\n\n private camelToKebabCase(str: string): string {\n return str\n ?.replace(/([a-z])([A-Z0-9])/g, '$1-$2')\n .replace(/([0-9])([A-Z])/g, '$1-$2')\n .toLowerCase();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiIconLegacyComponent } from './si-icon-legacy.component';\nimport { SiIconComponent } from './si-icon.component';\n\n@NgModule({\n imports: [SiIconComponent, SiIconLegacyComponent],\n exports: [SiIconComponent, SiIconLegacyComponent]\n})\nexport class SiIconModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\n/** */\nexport const elementDown2 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M352.79 203.21a12.45 12.45 0 0 1 1.44 15.86l-1.44 1.72-88 88a12.45 12.45 0 0 1-15.86 1.44l-1.72-1.44-88-88a12.43 12.43 0 0 1 15.86-19l1.72 1.44L256 282.42l79.21-79.21a12.45 12.45 0 0 1 15.86-1.44Z' data-name='Arrow/Right-3'/></svg>\";\nexport const elementCancel =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m273 256 87.52-87.51a12 12 0 0 0-17-17L256 239l-87.51-87.52a12 12 0 0 0-17 17L239 256l-87.52 87.51a12 12 0 0 0 17 17L256 273l87.51 87.52a12 12 0 0 0 17-17Z'/></svg>\";\nexport const elementFavoritesFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M427.42 216.46a12 12 0 0 0-9.68-8.17L313.41 193l-46.65-94.47a12 12 0 0 0-21.52 0L198.59 193 94.26 208.29a12 12 0 0 0-6.63 20.47l75.48 73.51-17.82 103.86a12 12 0 0 0 17.42 12.65L256 369.72l93.29 49.06a12 12 0 0 0 17.42-12.65l-17.82-103.86 75.48-73.51a12 12 0 0 0 3.05-12.3Z'/></svg>\";\nexport const elementFavorites =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M427.42 216.46a12 12 0 0 0-9.68-8.17L313.41 193l-46.65-94.47a12 12 0 0 0-21.52 0L198.59 193 94.26 208.29a12 12 0 0 0-6.63 20.47l75.48 73.51-17.82 103.86a12 12 0 0 0 17.42 12.65L256 369.72l93.29 49.06a12 12 0 0 0 17.42-12.65l-17.82-103.86 75.48-73.51a12 12 0 0 0 3.05-12.3Zm-99.79 73a12 12 0 0 0-3.46 10.63l14.77 86.11-77.35-40.68a12 12 0 0 0-11.18 0l-77.35 40.68 14.77-86.11a12 12 0 0 0-3.46-10.63l-62.59-61 86.52-12.65a12 12 0 0 0 9-6.56L256 131l38.68 78.36a12 12 0 0 0 9 6.56l86.52 12.65Z'/></svg>\";\nexport const elementExport =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M364 248a12 12 0 0 0-12 12v96a20 20 0 0 1-20 20H156a20 20 0 0 1-20-20V180a20 20 0 0 1 20-20h96a12 12 0 0 0 0-24h-96a44.05 44.05 0 0 0-44 44v176a44.05 44.05 0 0 0 44 44h176a44.05 44.05 0 0 0 44-44v-96a12 12 0 0 0-12-12Z'/><path d='M423.94 98.82c0-.19-.05-.37-.08-.55s-.05-.41-.09-.61-.1-.41-.15-.61a4.58 4.58 0 0 0-.14-.53c-.06-.2-.13-.39-.2-.58s-.12-.36-.19-.53-.16-.35-.25-.53-.16-.36-.26-.54-.19-.32-.29-.48-.2-.35-.31-.52-.25-.35-.38-.52l-.32-.43c-.24-.29-.5-.58-.77-.85s-.56-.53-.85-.77l-.44-.33c-.17-.12-.33-.25-.51-.37l-.53-.32-.47-.28c-.18-.1-.37-.18-.56-.27l-.51-.24-.55-.2-.55-.19c-.19-.06-.38-.1-.57-.15l-.57-.14-.67-.1-.49-.07q-.6-.06-1.2-.06H316a12 12 0 0 0 0 24h67L227.51 267.51a12 12 0 0 0 17 17L400 129v67a12 12 0 0 0 24 0v-96a10.88 10.88 0 0 0-.06-1.18Z'/></svg>\";\nexport const elementThumbnails =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><circle cx='144' cy='144' r='24'/><circle cx='368' cy='144' r='24'/><circle cx='256' cy='144' r='24'/><circle cx='144' cy='368' r='24'/><circle cx='368' cy='368' r='24'/><circle cx='256' cy='368' r='24'/><circle cx='144' cy='256' r='24'/><circle cx='368' cy='256' r='24'/><circle cx='256' cy='256' r='24'/></svg>\";\nexport const elementOptionsVertical =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M284 256a28 28 0 1 1-28-28 28 28 0 0 1 28 28ZM284 144a28 28 0 1 1-28-28 28 28 0 0 1 28 28ZM284 368a28 28 0 1 1-28-28 28 28 0 0 1 28 28Z'/></svg>\";\nexport const elementMenu =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M400 244H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24ZM400 148H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24ZM400 340H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24Z'/></svg>\";\nexport const elementMinus =\n \"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M356 268H156a12 12 0 0 1 0-24h200a12 12 0 0 1 0 24Z'/></svg>\";\nexport const elementCircleFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64Z'/></svg>\";\nexport const elementOctagonFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M320.2 77H191.8a24 24 0 0 0-17 7L84 174.83a24 24 0 0 0-7 17V320.2a24 24 0 0 0 7 17l90.8 90.8a24 24 0 0 0 17 7h128.4a24 24 0 0 0 17-7l90.8-90.8a24 24 0 0 0 7-17V191.8a24 24 0 0 0-7-17L337.17 84a24 24 0 0 0-16.97-7Z'/></svg>\";\nexport const elementPlus =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M356 244h-88v-88a12 12 0 0 0-24 0v88h-88a12 12 0 0 0 0 24h88v88a12 12 0 0 0 24 0v-88h88a12 12 0 0 0 0-24Z'/></svg>\";\nexport const elementSoundMute =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m393 256 39.52-39.51a12 12 0 0 0-17-17L376 239l-39.51-39.52a12 12 0 0 0-17 17L359 256l-39.52 39.51a12 12 0 0 0 17 17L376 273l39.51 39.52a12 12 0 0 0 17-17ZM238 394a12 12 0 0 1-7.5-2.63L143.8 322H76a12 12 0 0 1-12-12V202a12 12 0 0 1 12-12h67.8l86.72-69.37A12 12 0 0 1 250 130v252a12 12 0 0 1-12 12ZM88 298h60a11.93 11.93 0 0 1 7.49 2.63L226 357.05V155l-70.5 56.36A11.93 11.93 0 0 1 148 214H88Z' /></svg>\";\nexport const elementSoundOn =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M238 394a12 12 0 0 1-7.5-2.63L143.8 322H76a12 12 0 0 1-12-12V202a12 12 0 0 1 12-12h67.8l86.72-69.37A12 12 0 0 1 250 130v252a12 12 0 0 1-12 12ZM88 298h60a11.93 11.93 0 0 1 7.49 2.63L226 357.05V155l-70.5 56.36A11.93 11.93 0 0 1 148 214H88ZM383.29 395.27a12 12 0 0 1-8.48-20.48c65.48-65.5 65.48-172.08 0-237.58a12 12 0 1 1 17-17c74.83 74.86 74.83 196.66 0 271.52a12 12 0 0 1-8.52 3.54Zm-63.54-63.72a12 12 0 0 1-8.49-20.49 78.1 78.1 0 0 0 0-110.3 12 12 0 1 1 17-17 102.12 102.12 0 0 1 0 144.24 12 12 0 0 1-8.51 3.55Z' /></svg>\";\nexport const elementSquare45Filled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><rect x='113.17' y='113.17' width='285.65' height='285.65' rx='24' transform='rotate(-45 256 256.002)'/></svg>\";\nexport const elementSquareFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><rect x='88' y='88' width='336' height='336' rx='48'/></svg>\";\nexport const elementStateExclamationMark =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 279.12c-11.05 0-20-8.95-20-20v-89.8c0-11.05 8.95-20 20-20s20 8.95 20 20v89.8c0 11.05-8.95 20-20 20ZM256.17 359.03h-.34c-13.16 0-23.83-10.75-23.83-24s10.67-24 23.83-24h.34c13.16 0 23.83 10.75 23.83 24s-10.67 24-23.83 24Z'/></svg>\";\nexport const elementStateInfo =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 356c-11.05 0-20-8.95-20-20v-80c0-11.05 8.95-20 20-20s20 8.95 20 20v80c0 11.05-8.95 20-20 20ZM256.17 156.32h-.34c-13.16 0-23.83 10.75-23.83 24s10.67 24 23.83 24h.34c13.16 0 23.83-10.75 23.83-24s-10.67-24-23.83-24Z'/></svg>\";\nexport const elementStatePause =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M222 349.5c-11.05 0-20-8.95-20-20v-147c0-11.05 8.95-20 20-20s20 8.95 20 20v147c0 11.05-8.95 20-20 20ZM290 349.5c-11.05 0-20-8.95-20-20v-147c0-11.05 8.95-20 20-20s20 8.95 20 20v147c0 11.05-8.95 20-20 20Z'/></svg>\";\nexport const elementStateProgress =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M270.43 253.68V114.43c69.75 0 127.15 62.86 127.15 139.26 0 38.04-14.23 74.47-39.36 100.74l-87.79-100.74Z'/></svg>\";\nexport const elementStateQuestionMark =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 311c-11.05 0-20-8.95-20-20v-29.22a19.994 19.994 0 0 1 13.63-18.96c10.43-3.62 33.09-15.84 33.09-28.82.02-11.91-7.5-22.54-18.71-26.49-14.56-5.12-30.58 2.56-35.7 17.12-3.67 10.42-15.08 15.9-25.5 12.23s-15.9-15.08-12.23-25.5c12.44-35.37 51.34-54.02 86.71-41.58 27.22 9.58 45.48 35.4 45.44 64.25 0 13.92-5.57 34.34-32.11 52.4-5.12 3.49-10.2 6.31-14.61 8.5V291c0 11.05-8.95 20-20 20ZM256.16 375h-.32c-13.17 0-23.84-10.75-23.84-24s10.67-24 23.84-24h.32c13.17 0 23.84 10.75 23.84 24s-10.67 24-23.84 24Z'/></svg>\";\nexport const elementStateTick =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M222.25 345.88c-5.12 0-10.24-1.95-14.14-5.86l-56.25-56.25c-7.81-7.81-7.81-20.47 0-28.29s20.47-7.81 28.28 0l42.11 42.11 109.61-109.61c7.81-7.81 20.47-7.81 28.28 0s7.81 20.47 0 28.29L236.39 340.02a19.92 19.92 0 0 1-14.14 5.86Z' style='stroke-width:0'/></svg>\";\nexport const elementTriangleFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m441.77 338.25-.1-.17L295.72 94.42a46.45 46.45 0 0 0-79.44 0 .21.21 0 0 0 0 .06L70.32 338.08l-.1.17a46.45 46.45 0 0 0 39.72 69.68h292.11a46.46 46.46 0 0 0 39.72-69.68Z'/></svg>\";\nexport const elementRight2 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M203.21 159.21a12.45 12.45 0 0 1 15.86-1.44l1.72 1.44 88 88a12.45 12.45 0 0 1 1.44 15.86l-1.44 1.72-88 88a12.43 12.43 0 0 1-19-15.86l1.44-1.72L282.42 256l-79.21-79.21a12.45 12.45 0 0 1-1.44-15.86Z' data-name='Arrow/Right-3'/></svg>\";\nexport const elementRecordFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 408c-41.88 0-78.06-14.95-107.55-44.44S104 297.87 104 256s15-78 44.45-107.55S214.13 104 256 104s78 15 107.54 44.45S408 214.15 408 256s-15 78.05-44.45 107.55S297.87 408 256 408Z'/></svg>\";\nexport const elementOk =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m379.51 156.76-173 173-74-74a12 12 0 1 0-17 17l82.5 82.5a12 12 0 0 0 17 0l181.5-181.5a12 12 0 0 0-17-17Z'/></svg>\";\nexport const elementOutOfService =\n \"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 436a179.4 179.4 0 0 0 126.28-51.86 12.27 12.27 0 0 0 1.86-1.86A179.4 179.4 0 0 0 436 256c0-99.25-80.75-180-180-180a179.4 179.4 0 0 0-126.28 51.86 12.27 12.27 0 0 0-1.86 1.86A179.4 179.4 0 0 0 76 256c0 99.25 80.75 180 180 180ZM100 256a155.29 155.29 0 0 1 37.59-101.44l219.85 219.85A155.29 155.29 0 0 1 256 412c-86 0-156-70-156-156Zm312 0a155.29 155.29 0 0 1-37.59 101.44L154.56 137.59A155.29 155.29 0 0 1 256 100c86 0 156 70 156 156Z' /></svg>\";\nexport const elementLeft3 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M319.39 106.22a11.1 11.1 0 0 1-2.09 6.51L219.49 256l97.82 143.29a11.05 11.05 0 0 1 2.08 6.49 11.24 11.24 0 0 1-4.7 9.13 11.12 11.12 0 0 1-6.51 2.09 11.24 11.24 0 0 1-9.13-4.69L192.61 256 299 99.71a11.24 11.24 0 0 1 9.18-4.71 11.12 11.12 0 0 1 6.51 2.09 11.24 11.24 0 0 1 4.7 9.13Z'/></svg>\";\nexport const elementRight3 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M192.61 106.22a11.1 11.1 0 0 0 2.09 6.51L292.51 256l-97.82 143.29a11.05 11.05 0 0 0-2.08 6.49 11.24 11.24 0 0 0 4.7 9.13 11.12 11.12 0 0 0 6.51 2.09 11.24 11.24 0 0 0 9.13-4.69L319.39 256 213 99.71a11.24 11.24 0 0 0-9.18-4.71 11.12 11.12 0 0 0-6.51 2.09 11.24 11.24 0 0 0-4.7 9.13Z'/></svg>\";\nexport const elementHide =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M254.85 173.58c42.57 0 84.25 14.94 123.9 44.4a278.05 278.05 0 0 1 41.59 38 278.05 278.05 0 0 1-41.59 38 260.79 260.79 0 0 1-25.17 16.59l17.48 17.48q11.49-7 22.63-15.27c32.57-24.34 51.1-48.55 51.87-49.57a12 12 0 0 0 0-14.5c-.77-1-19.3-25.23-51.87-49.57-43.43-32.45-91.44-49.6-138.84-49.6a204.56 204.56 0 0 0-54.72 7.58L220 177a180.12 180.12 0 0 1 34.85-3.42ZM436.49 427.51 349 340l-18-18-28.36-28.36-17.12-17.12-50.09-50.09-17.12-17.12-25-25-18.47-18.47-90.35-90.33a12 12 0 0 0-17 17l84.29 84.28a267.53 267.53 0 0 0-34.72 22.47c-32 24.38-50 48.64-50.75 49.66a12 12 0 0 0 0 14.2c.75 1 18.72 25.28 50.75 49.66 42.69 32.49 90.33 49.66 137.77 49.66a210.29 210.29 0 0 0 70.2-12.4l94.46 94.47a12 12 0 0 0 17-17Zm-215.15-181.2 44.35 44.35a36 36 0 0 1-44.35-44.35Zm33.51 92.11c-42.52 0-83.79-14.91-122.65-44.32A268.8 268.8 0 0 1 91.46 256a268.29 268.29 0 0 1 40.74-38.1 242.38 242.38 0 0 1 37.32-23.41L203 228a59.95 59.95 0 0 0 81 81l22 22.05a183.47 183.47 0 0 1-51.15 7.37Z'/><path d='m291.13 248.16 22.94 22.94a60 60 0 0 0-73.17-73.17l22.94 22.94a36.1 36.1 0 0 1 27.29 27.29Z'/></svg>\";\nexport const elementShow =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M254.85 362.42c-47.44 0-95.08-17.17-137.77-49.66-32-24.38-50-48.64-50.75-49.66a12 12 0 0 1 0-14.2c.75-1 18.72-25.28 50.75-49.66 42.69-32.49 90.33-49.66 137.77-49.66s95.41 17.15 138.84 49.6c32.57 24.34 51.1 48.55 51.87 49.57a12 12 0 0 1 0 14.5c-.77 1-19.3 25.23-51.87 49.57-43.43 32.45-91.44 49.6-138.84 49.6ZM91.46 256a268.8 268.8 0 0 0 40.74 38.1c38.86 29.41 80.13 44.32 122.65 44.32s84.25-14.94 123.9-44.4a278.05 278.05 0 0 0 41.59-38 278.05 278.05 0 0 0-41.59-38c-39.65-29.46-81.33-44.4-123.9-44.4s-83.79 14.87-122.65 44.28A268.29 268.29 0 0 0 91.46 256Z'/><path d='M256 316a60 60 0 1 1 60-60 60.07 60.07 0 0 1-60 60Zm0-96a36 36 0 1 0 36 36 36 36 0 0 0-36-36Z'/></svg>\";\nexport const elementBreadcrumbRoot =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m300.35 157.77 1.72 1.44 88 88a12.43 12.43 0 0 1 1.44 15.86l-1.44 1.72-88 88a12.43 12.43 0 0 1-19-15.86l1.44-1.72 79.2-79.21-79.21-79.21a12.43 12.43 0 0 1-1.44-15.86l1.44-1.72a12.44 12.44 0 0 1 15.85-1.44Z'/><path d='M186.29 364h-56a12 12 0 0 1-12-12V160a12 12 0 0 1 12-12h56a12 12 0 0 1 8.48 3.51l96 96a12 12 0 0 1 0 17l-96 96a12 12 0 0 1-8.48 3.49Zm-44-24h39l84-84-84-84h-39Z'/></svg>\";\nexport const elementSortDown =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M234.39 267.4 190 311.81V176a10 10 0 0 0-9.92-10h-.14a10 10 0 0 0-9.94 10v135.81l-44.4-44.41a10 10 0 0 0-14.13 14.13l60.35 60.34a9.53 9.53 0 0 0 1 1.21 10.24 10.24 0 0 0 14.32 0 9.53 9.53 0 0 0 1-1.21l60.35-60.34a10 10 0 0 0-14.13-14.13ZM369.48 324.45h-71.61a7.17 7.17 0 1 0 0 14.33h71.61a7.17 7.17 0 0 0 0-14.33ZM398.13 248.84H297.87a7.16 7.16 0 1 0 0 14.32h100.26a7.16 7.16 0 1 0 0-14.32ZM441.1 173.22H297.87a7.17 7.17 0 1 0 0 14.33H441.1a7.17 7.17 0 0 0 0-14.33Z'/></svg>\";\nexport const elementSortUp =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M217.69 300v-.27h-.2ZM369.48 324.45h-71.61a7.17 7.17 0 1 0 0 14.33h71.61a7.17 7.17 0 0 0 0-14.33ZM398.13 248.84H297.87a7.16 7.16 0 1 0 0 14.32h100.26a7.16 7.16 0 1 0 0-14.32ZM441.1 173.22H297.87a7.17 7.17 0 1 0 0 14.33H441.1a7.17 7.17 0 0 0 0-14.33ZM188.17 170.13a9.53 9.53 0 0 0-1-1.21 10.24 10.24 0 0 0-14.32 0 9.53 9.53 0 0 0-1 1.21l-60.35 60.34a10 10 0 0 0 14.13 14.13L170 200.19V336a10 10 0 0 0 9.92 10h.14a10 10 0 0 0 9.94-10V200.19l44.4 44.41a10 10 0 0 0 14.13-14.13Z'/></svg>\";\nexport const elementSearch =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m420.49 403.51-76.88-76.87A139.39 139.39 0 0 0 377 236c0-77.2-62.8-140-140-140S97 158.8 97 236s62.8 140 140 140a139.33 139.33 0 0 0 89.55-32.48l77 77a12 12 0 0 0 17-17ZM121 236a116 116 0 1 1 116 116 116.13 116.13 0 0 1-116-116Z' /></svg>\";\nexport const elementChecked =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 76c-99.25 0-180 80.75-180 180s80.75 180 180 180 180-80.75 180-180S355.25 76 256 76Zm0 336c-86 0-156-70-156-156s70-156 156-156 156 70 156 156-70 156-156 156Z'/><path d='M218.5 336.75a12 12 0 0 1-8.49-3.51l-62.5-62.5a12 12 0 0 1 17-17l54 54 129-129a12 12 0 0 1 17 17L227 333.24a12 12 0 0 1-8.5 3.51Z'/></svg>\";\nexport const elementCheckedFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 76c-99.25 0-180 80.75-180 180s80.75 180 180 180 180-80.75 180-180S355.25 76 256 76Zm108.49 119.74L227 333.24a12 12 0 0 1-17 0l-62.5-62.5a12 12 0 0 1 17-17l54 54 129-129a12 12 0 0 1 17 17Z'/></svg>\";\nexport const elementLeft4 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M391 244H150.09l78.51-78.51a12 12 0 1 0-17-17l-98.09 98.09a12 12 0 0 0 0 18.78l98.09 98.09a12 12 0 1 0 17-17L150.09 268H391a12 12 0 0 0 0-24Z'/></svg>\";\nexport const elementNotChecked =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 76c-99.25 0-180 80.75-180 180s80.75 180 180 180 180-80.75 180-180S355.25 76 256 76Zm0 336c-86 0-156-70-156-156s70-156 156-156 156 70 156 156-70 156-156 156Z'/></svg>\";\nexport const elementRight4 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M403 256a12 12 0 0 0-4.54-9.39l-98.09-98.09a12 12 0 1 0-17 17L361.91 244H121a12 12 0 0 0 0 24h240.91l-78.51 78.51a12 12 0 1 0 17 17l98.09-98.09A12 12 0 0 0 403 256Z'/></svg>\";\nexport const elementRadioChecked =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 436c-99.25 0-180-80.75-180-180S156.75 76 256 76s180 80.75 180 180-80.75 180-180 180Zm0-336c-86.02 0-156 69.98-156 156s69.98 156 156 156 156-69.98 156-156-69.98-156-156-156Z'/><circle cx='256' cy='256' r='86'/></svg>\";\nexport const elementWarningFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m441.77 354.25-.09-.16-146-243.66a46.45 46.45 0 0 0-79.44 0v.06L70.33 354.09l-.1.16A46.47 46.47 0 0 0 110 423.94h292.1a46.45 46.45 0 0 0 39.72-69.69ZM244 205.2a12 12 0 0 1 24 0v68.92a12 12 0 0 1-24 0ZM256.2 360h-.2a16 16 0 0 1 0-32h.22a16 16 0 0 1 0 32Z'/></svg>\";\nexport const elementCalendar =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M368 113h-36V93a12 12 0 0 0-24 0v20H204V93a12 12 0 0 0-24 0v20h-36a44.05 44.05 0 0 0-44 44v224a44.05 44.05 0 0 0 44 44h224a44.05 44.05 0 0 0 44-44V157a44.05 44.05 0 0 0-44-44Zm-224 24h36v20a12 12 0 0 0 24 0v-20h104v20a12 12 0 0 0 24 0v-20h36a20 20 0 0 1 20 20v52H124v-52a20 20 0 0 1 20-20Zm224 264H144a20 20 0 0 1-20-20V233h264v148a20 20 0 0 1-20 20Z'/><path d='M335.19 263.36a20 20 0 1 1-20 20.11 20 20 0 0 1 20-20.11ZM256.21 263.36a20 20 0 1 1-20 20.11 20 20 0 0 1 20-20.11ZM256.21 326.54a20 20 0 1 1-20 20.11 20 20 0 0 1 20-20.11ZM177.24 326.54a20 20 0 1 1-20 20.11 20 20 0 0 1 20-20.11Z'/></svg>\";\nexport const elementLeft2 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M308.79 352.79a12.45 12.45 0 0 1-15.86 1.44l-1.72-1.44-88-88a12.45 12.45 0 0 1-1.44-15.86l1.44-1.72 88-88a12.43 12.43 0 0 1 19 15.86l-1.44 1.72L229.58 256l79.21 79.21a12.45 12.45 0 0 1 1.44 15.86Z' data-name='Arrow/Right-3'/></svg>\";\nexport const elementUpload =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M377.33 424H134.67A46.72 46.72 0 0 1 88 377.33V308a12 12 0 0 1 24 0v69.33A22.7 22.7 0 0 0 134.67 400h242.66A22.7 22.7 0 0 0 400 377.33V308a12 12 0 0 1 24 0v69.33A46.72 46.72 0 0 1 377.33 424Z'></path><path d='m351.15 178.18-86.66-86.67-.06-.05c-.27-.26-.54-.5-.82-.74l-.47-.35-.47-.35c-.18-.12-.37-.22-.56-.33s-.29-.19-.45-.27l-.57-.28-.49-.22c-.19-.08-.38-.14-.57-.21s-.36-.14-.54-.19-.38-.1-.58-.15l-.56-.14-.67-.1-.49-.07a11.83 11.83 0 0 0-2.38 0l-.49.07-.67.1-.56.14c-.2 0-.39.09-.58.15s-.36.12-.54.19l-.57.21-.49.22-.57.28c-.16.08-.3.18-.46.27s-.37.21-.55.33-.32.24-.48.36l-.46.34c-.28.24-.55.48-.82.74l-.06.05-86.66 86.67a12 12 0 1 0 17 17L244 129v179a12 12 0 0 0 24 0V129l66.18 66.18a12 12 0 0 0 17-17Z' /></svg>\";\nexport const elementDelete =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M400 144h-72v-12a44.05 44.05 0 0 0-44-44h-56a44.05 44.05 0 0 0-44 44v12h-72a12 12 0 0 0 0 24h20v212a44.05 44.05 0 0 0 44 44h160a44.05 44.05 0 0 0 44-44V168h20a12 12 0 0 0 0-24Zm-192-12a20 20 0 0 1 20-20h56a20 20 0 0 1 20 20v12h-96Zm148 248a20 20 0 0 1-20 20H176a20 20 0 0 1-20-20V168h200Z'></path><path d='M224 344a12 12 0 0 0 12-12v-96a12 12 0 0 0-24 0v96a12 12 0 0 0 12 12ZM288 344a12 12 0 0 0 12-12v-96a12 12 0 0 0-24 0v96a12 12 0 0 0 12 12Z' /></svg>\";\nexport const elementRedo =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M411.91 112.2a12 12 0 0 0-12 12v45.09A167.89 167.89 0 0 0 256 88c-92.64 0-168 75.36-168 168s75.36 168 168 168a168 168 0 0 0 166.06-142.43 12 12 0 0 0-23.72-3.63A144 144 0 0 1 256 400c-79.4 0-144-64.6-144-144s64.6-144 144-144a144.55 144.55 0 0 1 124.83 72.2h-40.92a12 12 0 0 0 0 24h72a12 12 0 0 0 12-12v-72a12 12 0 0 0-12-12Z' /></svg>\";\nexport const elementDocument =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M162.4 424h187.2a43.25 43.25 0 0 0 43.2-43.2V209.2q0-.6-.06-1.2c0-.29-.08-.58-.13-.86 0-.1 0-.2-.05-.3a8.28 8.28 0 0 0-.25-1v-.13c-.1-.34-.23-.67-.36-1a.49.49 0 0 0 0-.11 9.3 9.3 0 0 0-.43-.9.77.77 0 0 0-.07-.16c-.15-.27-.31-.53-.47-.79l-.14-.22c-.16-.24-.33-.46-.51-.69l-.19-.26a10.41 10.41 0 0 0-.71-.78l-.07-.09-109.27-109.2-.09-.07a10.41 10.41 0 0 0-.78-.71l-.25-.19c-.23-.18-.46-.35-.7-.51l-.22-.14c-.26-.16-.52-.32-.79-.47l-.15-.07c-.3-.16-.6-.3-.91-.43h-.09c-.33-.13-.67-.25-1-.36H275a9.09 9.09 0 0 0-1-.25h-.29c-.29 0-.58-.1-.87-.13S272 88 271.6 88H162.4a43.25 43.25 0 0 0-43.2 43.2v249.6a43.25 43.25 0 0 0 43.2 43.2Zm121.2-295 68.23 68.23H283.6Zm-140.4 2.2a19.22 19.22 0 0 1 19.2-19.2h97.2v97.2a12 12 0 0 0 12 12h97.2v159.6a19.22 19.22 0 0 1-19.2 19.2H162.4a19.22 19.22 0 0 1-19.2-19.2Z' /></svg>\";\nexport const elementLock =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M280 305.5a24 24 0 1 0-36 20.78V363a12 12 0 0 0 24 0v-36.72a24 24 0 0 0 12-20.78Z' /><path d='M358.67 224H348v-52a92 92 0 0 0-184 0v52h-10.67c-22.79 0-41.33 19.74-41.33 44v112c0 24.26 18.54 44 41.33 44h205.34c22.79 0 41.33-19.74 41.33-44V268c0-24.26-18.54-44-41.33-44ZM188 172a68 68 0 0 1 136 0v52H188Zm188 208c0 11-7.78 20-17.33 20H153.33c-9.55 0-17.33-9-17.33-20V268c0-11 7.78-20 17.33-20h205.34c9.55 0 17.33 9 17.33 20Z'/></svg>\";\nexport const elementDoubleLeft =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m234.77 248.93 1.44-1.72 110-110a12.43 12.43 0 0 1 19 15.86l-1.44 1.72L262.59 256l101.2 101.21a12.45 12.45 0 0 1 1.44 15.86l-1.44 1.72a12.45 12.45 0 0 1-15.86 1.44l-1.72-1.44-110-110a12.45 12.45 0 0 1-1.44-15.86Z'/><path d='m146.77 248.93 1.44-1.72 88-88a12.43 12.43 0 0 1 19 15.86l-1.44 1.72L174.59 256l79.2 79.21a12.45 12.45 0 0 1 1.44 15.86l-1.44 1.72a12.45 12.45 0 0 1-15.86 1.44l-1.72-1.44-88-88a12.45 12.45 0 0 1-1.44-15.86Z'/></svg>\";\nexport const elementDoubleRight =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m277.23 263.07-1.44 1.72-110 110a12.43 12.43 0 0 1-19-15.86l1.44-1.72L249.41 256l-101.2-101.21a12.45 12.45 0 0 1-1.44-15.86l1.44-1.72a12.45 12.45 0 0 1 15.86-1.44l1.72 1.44 110 110a12.45 12.45 0 0 1 1.44 15.86Z'/><path d='m365.23 263.07-1.44 1.72-88 88a12.43 12.43 0 0 1-19-15.86l1.44-1.72L337.41 256l-79.2-79.21a12.45 12.45 0 0 1-1.44-15.86l1.44-1.72a12.45 12.45 0 0 1 15.86-1.44l1.72 1.44 88 88a12.45 12.45 0 0 1 1.44 15.86Z'/></svg>\";\nexport const element2dEditor =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M436.13 235.87a40.53 40.53 0 0 0-57.32 0L242.64 372a12.06 12.06 0 0 0-3.09 5.33l-15.13 55.47A12 12 0 0 0 236 448a12.26 12.26 0 0 0 3.16-.42l55.47-15.13a12.06 12.06 0 0 0 5.33-3.09l136.17-136.17a40.53 40.53 0 0 0 0-57.32Zm-177.4 162.38a58.16 58.16 0 0 1 7.94 6.51 46.44 46.44 0 0 1 6.75 8.6l-20.32 5.54Zm160.43-122-125 125a71 71 0 0 0-10.6-13.53A82.22 82.22 0 0 0 271 377.61l124.78-124.77a16.53 16.53 0 0 1 23.38 23.38ZM412 348a12 12 0 0 0-12 12v40h-40a12 12 0 0 0 0 24h48a16 16 0 0 0 16-16v-48a12 12 0 0 0-12-12Z'/><path d='M188 159a12 12 0 0 0 12-12v-35h72.39v88a12 12 0 0 0 12 12h66a12 12 0 0 0 0-24h-54v-76H400v88a12 12 0 0 0 24 0v-96a16 16 0 0 0-16-16H104a16 16 0 0 0-16 16v304a16 16 0 0 0 16 16h84a12 12 0 0 0 12-12v-45a12 12 0 0 0-24 0v33h-64V268h64v32a12 12 0 0 0 24 0v-88a12 12 0 0 0-24 0v32h-64V112h64v35a12 12 0 0 0 12 12Z'/></svg>\";\nexport const elementAlarmFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M294.06 406.05A12 12 0 0 0 273.3 394a20 20 0 0 1-34.6 0 12 12 0 0 0-20.76 12.05 44 44 0 0 0 76.12 0ZM419.92 326.79c-.35-.31-35.26-32.34-57.55-128.33A198.52 198.52 0 0 0 342 144.89c-20.71-36.52-50-56.08-84.8-56.6h-1.16a11.23 11.23 0 0 0-1.16 0c-34.79.52-64.09 20.08-84.8 56.6a198.33 198.33 0 0 0-20.4 53.57c-22.3 96-57.21 128-57.49 128.27a12 12 0 0 0 7.81 21.08h312a12 12 0 0 0 7.92-21Z'/></svg>\";\nexport const elementAlarmTick =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M427.72 116.64 279.19 277.47l-73.9-73.9a12 12 0 0 0-17 17l82.73 82.73a12 12 0 0 0 8.48 3.51h.24a12 12 0 0 0 8.58-3.86l157-170a12 12 0 0 0-17.63-16.28Z'/></svg>\";\nexport const elementUser =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 252a76 76 0 1 0-76-76 76.08 76.08 0 0 0 76 76Zm0-128a52 52 0 1 1-52 52 52.06 52.06 0 0 1 52-52ZM124 360.14a12 12 0 0 0 6.71-2.06c.61-.41 61.54-41.08 126.14-41.08 75.3 0 122.86 39.84 123.3 40.23a12 12 0 0 0 15.68-18.18c-2.19-1.88-54.39-46.05-139-46.05C185 293 120 336.35 117.28 338.19a12 12 0 0 0 6.72 21.95Z'/></svg>\";\nexport const elementHelp =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64Zm0 360c-92.64 0-168-75.36-168-168S163.36 88 256 88s168 75.36 168 168-75.36 168-168 168Z'/><path d='M256 305a12 12 0 0 1-12-12v-29.22a12 12 0 0 1 6.51-10.67 11.63 11.63 0 0 1 1.67-.71c1.14-.4 38.54-14.05 38.54-36.4a36 36 0 0 0-70-12 12 12 0 1 1-22.64-8 60 60 0 0 1 116.6 20c0 31-31.39 48.92-46.72 55.84V293A12 12 0 0 1 256 305ZM256.11 360h-.22a16 16 0 0 1 0-32h.22a16 16 0 0 1 0 32Z'/></svg>\";\nexport const elementPinch =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M248.46 275.15c0-.19-.05-.37-.07-.55s-.06-.41-.1-.61a6 6 0 0 0-.15-.61c0-.18-.08-.36-.13-.53s-.14-.39-.2-.58-.13-.36-.2-.53-.16-.35-.24-.53-.17-.36-.26-.53-.19-.33-.29-.49-.2-.35-.32-.52-.25-.35-.38-.52-.2-.29-.32-.43c-.24-.29-.5-.58-.77-.85-.28-.27-.56-.52-.86-.77-.14-.12-.29-.22-.44-.33l-.5-.37-.53-.32-.48-.28c-.18-.1-.37-.18-.55-.27l-.51-.23c-.18-.08-.37-.14-.55-.21l-.56-.19-.56-.15-.58-.14-.66-.1-.5-.07a11.85 11.85 0 0 0-1.19-.06h-120a12 12 0 0 0 0 24h91L108 387.84a12 12 0 1 0 17 17l99.51-99.51v91a12 12 0 0 0 24 0v-120a10.88 10.88 0 0 0-.05-1.18ZM405.1 106.75a12 12 0 0 0-17 0l-99.51 99.51v-91a12 12 0 0 0-24 0v120a10.88 10.88 0 0 0 .06 1.14c0 .18.05.36.08.54s.05.41.09.62.1.4.15.6.08.36.14.54.13.38.2.58.12.35.19.52.17.36.25.53.16.36.26.54.19.33.29.49.2.35.31.52l.38.51.32.43c.25.3.5.58.77.86.27.27.56.53.85.77l.44.33a6 6 0 0 0 .51.37 5.74 5.74 0 0 0 .53.32l.47.29.55.26c.17.08.34.17.52.24l.54.2c.19.07.37.14.57.2l.54.14.6.14.63.1c.17 0 .35.06.53.07a11.66 11.66 0 0 0 1.18.06h120a12 12 0 0 0 0-24h-91l99.51-99.51a12 12 0 0 0 .05-16.91Z'/></svg>\";\nexport const elementZoom =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M423.94 98.82c0-.19-.05-.37-.08-.55s-.05-.41-.09-.61-.1-.41-.15-.61a4.58 4.58 0 0 0-.14-.53c-.06-.2-.13-.39-.2-.58s-.12-.36-.19-.53-.16-.35-.25-.53-.16-.36-.26-.54-.19-.32-.29-.48-.2-.35-.31-.52-.25-.35-.38-.52l-.32-.43c-.24-.29-.5-.58-.77-.85s-.56-.53-.85-.77l-.44-.33c-.17-.12-.33-.25-.51-.37l-.53-.32-.47-.28c-.18-.1-.37-.18-.56-.27l-.51-.24-.55-.2-.55-.19c-.19-.06-.38-.1-.57-.15l-.57-.14-.67-.1-.49-.07q-.6-.06-1.2-.06H308a12 12 0 0 0 0 24h75l-100.82 100.8a12 12 0 0 0 17 17L400 129v75a12 12 0 0 0 24 0V100a10.88 10.88 0 0 0-.06-1.18ZM212.85 282.18 112 383v-75a12 12 0 0 0-24 0v104a10.88 10.88 0 0 0 .06 1.14c0 .19 0 .37.08.55s0 .41.09.61.1.41.15.61a4.58 4.58 0 0 0 .14.53c.06.2.13.39.2.58s.12.36.19.53.17.35.25.53.16.36.26.54.19.32.29.48.2.35.31.52.25.35.38.52l.32.43c.24.29.5.58.77.85s.56.53.85.77l.44.33c.17.12.33.25.51.37l.52.32.48.28c.18.1.37.18.55.27l.52.24.54.19c.19.07.37.14.57.2a5.36 5.36 0 0 0 .54.14c.2.05.39.11.6.15s.42.06.63.09l.53.08a11.51 11.51 0 0 0 1.23.15h104a12 12 0 0 0 0-24h-75l100.82-100.85a12 12 0 1 0-17-17Z'/></svg>\";\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\nimport { EntityStatusType, StatusIcon } from '@siemens/element-ng/common';\nimport { t } from '@siemens/element-translate-ng/translate';\n\nimport {\n elementCircleFilled,\n elementOctagonFilled,\n elementSquare45Filled,\n elementSquareFilled,\n elementStateExclamationMark,\n elementStateInfo,\n elementStatePause,\n elementStateProgress,\n elementStateQuestionMark,\n elementStateTick,\n elementTriangleFilled\n} from './element-icons';\nimport { addIcons } from './si-icons';\n\n/**\n * The status icon configuration.\n *\n * @experimental\n */\nexport const STATUS_ICON_CONFIG = new InjectionToken<{ [key in EntityStatusType]: StatusIcon }>(\n 'STATUS_ICON_CONFIG',\n {\n providedIn: 'root',\n factory: () => {\n addIcons({\n elementCircleFilled,\n elementOctagonFilled,\n elementSquare45Filled,\n elementSquareFilled,\n elementStateExclamationMark,\n elementStateInfo,\n elementStatePause,\n elementStateProgress,\n elementStateQuestionMark,\n elementStateTick,\n elementTriangleFilled\n });\n return {\n success: {\n icon: 'elementCircleFilled',\n color: 'status-success',\n stacked: 'elementStateTick',\n stackedColor: 'status-success-contrast',\n background: 'bg-base-success',\n severity: 5,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.SUCCESS:Success`)\n },\n info: {\n icon: 'elementSquareFilled',\n color: 'status-info',\n stacked: 'elementStateInfo',\n stackedColor: 'status-info-contrast',\n background: 'bg-base-info',\n severity: 4,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.INFO:Info`)\n },\n caution: {\n icon: 'elementSquare45Filled',\n color: 'status-caution',\n stacked: 'elementStateExclamationMark',\n stackedColor: 'status-caution-contrast',\n background: 'bg-base-caution',\n severity: 3,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.CAUTION:Caution`)\n },\n warning: {\n icon: 'elementTriangleFilled',\n color: 'status-warning',\n stacked: 'elementStateExclamationMark',\n stackedColor: 'status-warning-contrast',\n background: 'bg-base-warning',\n severity: 2,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.WARNING:Warning`)\n },\n danger: {\n icon: 'elementCircleFilled',\n color: 'status-danger',\n stacked: 'elementStateExclamationMark',\n stackedColor: 'status-danger-contrast',\n background: 'bg-base-danger',\n severity: 1,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.DANGER:Danger`)\n },\n critical: {\n icon: 'elementOctagonFilled',\n color: 'status-critical',\n stacked: 'elementStateExclamationMark',\n stackedColor: 'status-critical-contrast',\n background: 'bg-base-critical',\n severity: 0,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.CRITICAL:Critical`)\n },\n progress: {\n icon: 'elementCircleFilled',\n color: 'status-info',\n stacked: 'elementStateProgress',\n stackedColor: 'status-info-contrast',\n background: 'bg-base-info',\n severity: 7,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.PROGRESS:Progress`)\n },\n pending: {\n icon: 'elementCircleFilled',\n color: 'status-caution',\n stacked: 'elementStatePause',\n stackedColor: 'status-caution-contrast',\n background: 'bg-base-caution',\n severity: 6,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.PENDING:Pending`)\n },\n unknown: {\n icon: 'elementCircleFilled',\n color: 'status-neutral',\n stacked: 'elementStateQuestionMark',\n stackedColor: 'text-body',\n background: 'bg-base-0',\n severity: 8,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.UNKNOWN:Unknown`)\n }\n };\n }\n }\n);\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { EntityStatusType } from '@siemens/element-ng/common';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiIconComponent } from './si-icon.component';\nimport { STATUS_ICON_CONFIG } from './status-icon';\n\n@Component({\n selector: 'si-status-icon',\n imports: [NgClass, SiIconComponent, SiTranslatePipe],\n template: `\n @let iconValue = statusIcon();\n @if (iconValue) {\n <si-icon [ngClass]=\"iconValue.color\" [icon]=\"iconValue.icon\" />\n <si-icon [ngClass]=\"iconValue.stackedColor\" [icon]=\"iconValue.stacked\" />\n <span class=\"visually-hidden\">{{ iconValue.ariaLabel | translate }}</span>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'icon-stack' }\n})\nexport class SiStatusIconComponent {\n private readonly statusIcons = inject(STATUS_ICON_CONFIG);\n\n readonly status = input.required<EntityStatusType>();\n\n protected readonly statusIcon = computed(() => this.statusIcons[this.status()]);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-icon.module';\nexport * from './status-icon';\nexport { addIcons } from './si-icons';\nexport * from './si-icon.component';\nexport * from './si-icon-legacy.component';\nexport * from './si-status-icon.component';\nexport * from './element-icons';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { NgClass } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, input, inject, HostBinding, ChangeDetectionStrategy, Component, booleanAttribute, ElementRef, ViewContainerRef, computed, Injector, Directive, Injectable, NgModule } from '@angular/core';
3
+ import { InjectionToken, input, inject, HostBinding, ChangeDetectionStrategy, Component, booleanAttribute, ElementRef, ViewContainerRef, ChangeDetectorRef, computed, Injector, Directive, Injectable, NgModule } from '@angular/core';
4
4
  import { t, SiTranslatePipe } from '@siemens/element-translate-ng/translate';
5
5
  import { trigger, transition, style, animate } from '@angular/animations';
6
6
  import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';
@@ -126,6 +126,7 @@ class SiLoadingSpinnerDirective {
126
126
  initialDelay = input(true, { transform: booleanAttribute });
127
127
  el = inject(ElementRef);
128
128
  viewRef = inject(ViewContainerRef);
129
+ cdRef = inject(ChangeDetectorRef);
129
130
  sub;
130
131
  progressSubject = new BehaviorSubject(false);
131
132
  off$ = this.progressSubject.pipe(filter(val => !val));
@@ -159,6 +160,7 @@ class SiLoadingSpinnerDirective {
159
160
  else if (this.compPortal.isAttached) {
160
161
  this.compPortal.detach();
161
162
  }
163
+ this.cdRef.markForCheck();
162
164
  });
163
165
  }
164
166
  ngOnChanges() {
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-loading-spinner.mjs","sources":["../../../../projects/element-ng/loading-spinner/si-loading-spinner.component.ts","../../../../projects/element-ng/loading-spinner/si-loading-spinner.component.html","../../../../projects/element-ng/loading-spinner/si-loading-button.component.ts","../../../../projects/element-ng/loading-spinner/si-loading-button.component.html","../../../../projects/element-ng/loading-spinner/si-loading-spinner.directive.ts","../../../../projects/element-ng/loading-spinner/si-loading-spinner.service.ts","../../../../projects/element-ng/loading-spinner/si-loading-spinner.module.ts","../../../../projects/element-ng/loading-spinner/index.ts","../../../../projects/element-ng/loading-spinner/siemens-element-ng-loading-spinner.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n inject,\n InjectionToken,\n input\n} from '@angular/core';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nexport const LOADING_SPINNER_BLOCKING = new InjectionToken<boolean>('isBlockingSpinner');\nexport const LOADING_SPINNER_OVERLAY = new InjectionToken<boolean>('isSpinnerOverlay');\n\n@Component({\n selector: 'si-loading-spinner',\n imports: [SiTranslatePipe],\n templateUrl: './si-loading-spinner.component.html',\n styleUrl: './si-loading-spinner.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('fadeAnimation', [\n transition(':enter', [style({ opacity: 0 }), animate('200ms ease-in')]),\n transition(':leave', animate('200ms ease-out', style({ opacity: 0 })))\n ])\n ]\n})\nexport class SiLoadingSpinnerComponent {\n @HostBinding('@fadeAnimation') protected fadeAnimation = '';\n /**\n * @defaultValue\n * ```\n * inject(LOADING_SPINNER_BLOCKING, { optional: true })\n * ```\n */\n readonly isBlockingSpinner = input(inject(LOADING_SPINNER_BLOCKING, { optional: true }));\n /**\n * @defaultValue\n * ```\n * inject(LOADING_SPINNER_OVERLAY, { optional: true })\n * ```\n */\n readonly isSpinnerOverlay = input(inject(LOADING_SPINNER_OVERLAY, { optional: true }));\n /**\n * Needed for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOADING_SPINNER.LABEL:Loading`)\n * ```\n */\n readonly ariaLabel = input(t(() => $localize`:@@SI_LOADING_SPINNER.LABEL:Loading`));\n}\n","<div\n class=\"loading\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n [class.blocking-spinner]=\"isBlockingSpinner()\"\n [class.spinner-overlay]=\"isSpinnerOverlay()\"\n>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <title>{{ ariaLabel() | translate }}</title>\n <g>\n <path d=\"M256,156a16,16,0,0,1-16-16V80a16,16,0,0,1,32,0v60A16,16,0,0,1,256,156Z\" />\n <path\n d=\"M314.78,175.1a16,16,0,0,1-3.54-22.35l35.27-48.54A16,16,0,1,1,372.39,123l-35.26,48.54A16,16,0,0,1,314.78,175.1Z\"\n />\n <path\n d=\"M351.11,225.1a16,16,0,0,1,10.27-20.16l57.06-18.54a16,16,0,1,1,9.89,30.43l-57.06,18.54A16,16,0,0,1,351.11,225.1Z\"\n />\n <path\n d=\"M351.11,286.9a16,16,0,0,1,20.16-10.27l57.06,18.54a16,16,0,1,1-9.89,30.43l-57.06-18.54A16,16,0,0,1,351.11,286.9Z\"\n />\n <path\n d=\"M314.78,336.9a16,16,0,0,1,22.35,3.54L372.39,389a16,16,0,1,1-25.88,18.81l-35.27-48.54A16,16,0,0,1,314.78,336.9Z\"\n />\n <path d=\"M256,356a16,16,0,0,1,16,16v60a16,16,0,0,1-32,0V372A16,16,0,0,1,256,356Z\" />\n <path\n d=\"M197.22,336.9a16,16,0,0,1,3.54,22.35l-35.27,48.54A16,16,0,1,1,139.61,389l35.26-48.54A16,16,0,0,1,197.22,336.9Z\"\n />\n <path\n d=\"M160.89,286.9a16,16,0,0,1-10.27,20.16L93.56,325.6a16,16,0,0,1-9.89-30.43l57.06-18.54A16,16,0,0,1,160.89,286.9Z\"\n />\n <path\n d=\"M160.89,225.1a16,16,0,0,1-20.16,10.27L83.67,216.83a16,16,0,1,1,9.89-30.43l57.06,18.54A16,16,0,0,1,160.89,225.1Z\"\n />\n <path\n d=\"M197.22,175.1a16,16,0,0,1-22.35-3.54L139.61,123a16,16,0,1,1,25.88-18.81l35.27,48.54A16,16,0,0,1,197.22,175.1Z\"\n />\n </g>\n </svg>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiLoadingSpinnerComponent } from './si-loading-spinner.component';\n\n@Component({\n selector: 'si-loading-button',\n imports: [SiLoadingSpinnerComponent, NgClass, SiTranslatePipe],\n templateUrl: './si-loading-button.component.html',\n styleUrl: './si-loading-button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.pe-none]': 'disabled()'\n }\n})\nexport class SiLoadingButtonComponent {\n /**\n * Whether the button is disabled.\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n /**\n * Whether the loading state should be displayed.\n * @defaultValue false\n */\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Type of the button.\n * @defaultValue 'button'\n **/\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n /** aria-label for the button */\n readonly ariaLabel = input<TranslatableString>();\n /** aria-labelledby for the button */\n readonly ariaLabelledBy = input<string>();\n /**\n * CSS class for the button.\n * @defaultValue ''\n */\n readonly buttonClass = input('');\n\n protected handleClick(event: Event): void {\n if (this.disabled() || this.loading()) {\n event.stopPropagation();\n }\n }\n}\n","<button\n [type]=\"type()\"\n [ngClass]=\"buttonClass()\"\n [class.loading]=\"loading()\"\n [class.disabled]=\"loading()\"\n [disabled]=\"disabled()\"\n [attr.aria-disabled]=\"disabled() || loading()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.tabindex]=\"loading() ? '-1' : null\"\n (click)=\"handleClick($event)\"\n>\n <div class=\"button-wrapper\">\n <ng-content />\n </div>\n</button>\n@if (loading()) {\n <div class=\"spinner-wrapper\" (click)=\"$event.stopPropagation()\">\n <si-loading-spinner />\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n Injector,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { BehaviorSubject, combineLatest, merge, Subscription, timer } from 'rxjs';\nimport { filter, map, switchMap, takeUntil } from 'rxjs/operators';\n\nimport {\n LOADING_SPINNER_BLOCKING,\n LOADING_SPINNER_OVERLAY,\n SiLoadingSpinnerComponent\n} from './si-loading-spinner.component';\n@Directive({\n selector: '[siLoading]',\n host: {\n class: 'position-relative'\n }\n})\nexport class SiLoadingSpinnerDirective implements OnInit, OnChanges, OnDestroy {\n /**\n * Displays the loading spinner when the value is either true or non-zero.\n */\n readonly siLoading = input.required<boolean | number>();\n\n /**\n * Displays semi-transparent backdrop for the spinner, default is false.\n *\n * @defaultValue false\n */\n readonly blocking = input(false, { transform: booleanAttribute });\n\n /**\n * Specifies if the spinner should be displayed after a delay, default is true.\n *\n * @defaultValue true\n */\n readonly initialDelay = input(true, { transform: booleanAttribute });\n\n private el = inject(ElementRef);\n private readonly viewRef = inject(ViewContainerRef);\n\n private sub?: Subscription;\n private progressSubject = new BehaviorSubject(false);\n private off$ = this.progressSubject.pipe(filter(val => !val));\n private on$ = this.progressSubject.pipe(filter(val => val));\n private readonly initialWaitTime = computed(() => (this.initialDelay() ? 500 : 0));\n private minSpinTime = 500;\n private portalOutlet?: DomPortalOutlet;\n private readonly compPortal = new ComponentPortal(\n SiLoadingSpinnerComponent,\n this.viewRef,\n Injector.create({\n providers: [\n { provide: LOADING_SPINNER_BLOCKING, useFactory: () => this.blocking() },\n {\n provide: LOADING_SPINNER_OVERLAY,\n useValue: true\n }\n ]\n })\n );\n\n // this makes sure the spinner only displays with a delay of 500ms and stays for 500ms so\n // that it doesn't flicker\n protected readonly spinner$ = this.on$.pipe(\n switchMap(() =>\n merge(\n timer(this.initialWaitTime()).pipe(\n map(() => true),\n takeUntil(this.off$)\n ),\n combineLatest([this.off$, timer(this.initialWaitTime() + this.minSpinTime)]).pipe(\n map(() => false)\n )\n )\n )\n );\n\n private createPortal(): void {\n this.portalOutlet ??= new DomPortalOutlet(this.el.nativeElement);\n this.compPortal.attach(this.portalOutlet);\n }\n\n ngOnInit(): void {\n this.sub = this.spinner$.subscribe(val => {\n if (val) {\n if (!this.compPortal.isAttached) {\n this.createPortal();\n }\n } else if (this.compPortal.isAttached) {\n this.compPortal.detach();\n }\n });\n }\n\n ngOnChanges(): void {\n const newState = !!this.siLoading();\n if (newState !== this.progressSubject.value) {\n this.progressSubject.next(newState);\n }\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n if (this.compPortal.isAttached) {\n this.compPortal.detach();\n }\n this.portalOutlet?.dispose();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SiLoadingService {\n /**\n * Counts the number of loads active, is `0` when all loading is finished (or hasn't started).\n */\n readonly counter: BehaviorSubject<number> = new BehaviorSubject<number>(0);\n\n /**\n * Start the loading.\n */\n startLoad(): void {\n this.counter.next(this.counter.value + 1);\n }\n\n /**\n * Stop the loading.\n */\n stopLoad(): void {\n if (this.counter.value > 0) {\n this.counter.next(this.counter.value - 1);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLoadingSpinnerComponent } from './si-loading-spinner.component';\nimport { SiLoadingSpinnerDirective } from './si-loading-spinner.directive';\n\n@NgModule({\n imports: [SiLoadingSpinnerComponent, SiLoadingSpinnerDirective],\n exports: [SiLoadingSpinnerComponent, SiLoadingSpinnerDirective]\n})\nexport class SiLoadingSpinnerModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-loading-button.component';\nexport * from './si-loading-spinner.component';\nexport * from './si-loading-spinner.directive';\nexport * from './si-loading-spinner.service';\nexport * from './si-loading-spinner.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAAA;;;AAGG;MAYU,wBAAwB,GAAG,IAAI,cAAc,CAAU,mBAAmB;MAC1E,uBAAuB,GAAG,IAAI,cAAc,CAAU,kBAAkB;MAexE,yBAAyB,CAAA;IACK,aAAa,GAAG,EAAE;AAC3D;;;;;AAKG;AACM,IAAA,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACxF;;;;;AAKG;AACM,IAAA,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACtF;;;;;;;AAOG;AACM,IAAA,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,mCAAA,CAAqC,CAAC,CAAC;uGAxBxE,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BtC,2rDAuCA,EAAA,MAAA,EAAA,CAAA,u0CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDnBY,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,UAAA,EAIb;YACV,OAAO,CAAC,eAAe,EAAE;AACvB,gBAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AACvE,gBAAA,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;aACtE;AACF,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAbrC,SAAS;+BACE,oBAAoB,EAAA,OAAA,EACrB,CAAC,eAAe,CAAC,mBAGT,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC;wBACV,OAAO,CAAC,eAAe,EAAE;AACvB,4BAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AACvE,4BAAA,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;yBACtE;AACF,qBAAA,EAAA,QAAA,EAAA,2rDAAA,EAAA,MAAA,EAAA,CAAA,u0CAAA,CAAA,EAAA;8BAGwC,aAAa,EAAA,CAAA;sBAArD,WAAW;uBAAC,gBAAgB;;;AEhC/B;;;AAGG;MAiBU,wBAAwB,CAAA;AACnC;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACjE;;;AAGG;IACM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAChE;;;AAGI;AACK,IAAA,IAAI,GAAG,KAAK,CAAgC,QAAQ,CAAC;;IAErD,SAAS,GAAG,KAAK,EAAsB;;IAEvC,cAAc,GAAG,KAAK,EAAU;AACzC;;;AAGG;AACM,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;AAEtB,IAAA,WAAW,CAAC,KAAY,EAAA;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YACrC,KAAK,CAAC,eAAe,EAAE;;;uGA5BhB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,u6BCpBrC,ulBAqBA,EAAA,MAAA,EAAA,CAAA,++BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDTY,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,kBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,+EAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAQlD,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAVpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,OAAA,EACpB,CAAC,yBAAyB,EAAE,OAAO,EAAE,eAAe,CAAC,EAAA,eAAA,EAG7C,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,iBAAiB,EAAE;AACpB,qBAAA,EAAA,QAAA,EAAA,ulBAAA,EAAA,MAAA,EAAA,CAAA,++BAAA,CAAA,EAAA;;;AElBH;;;AAGG;MA6BU,yBAAyB,CAAA;AACpC;;AAEG;AACM,IAAA,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAoB;AAEvD;;;;AAIG;IACM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAEjE;;;;AAIG;IACM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAE5D,IAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACd,IAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAE3C,IAAA,GAAG;AACH,IAAA,eAAe,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;AAC5C,IAAA,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,IAAA,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAC1C,eAAe,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1E,WAAW,GAAG,GAAG;AACjB,IAAA,YAAY;AACH,IAAA,UAAU,GAAG,IAAI,eAAe,CAC/C,yBAAyB,EACzB,IAAI,CAAC,OAAO,EACZ,QAAQ,CAAC,MAAM,CAAC;AACd,QAAA,SAAS,EAAE;AACT,YAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE;AACxE,YAAA;AACE,gBAAA,OAAO,EAAE,uBAAuB;AAChC,gBAAA,QAAQ,EAAE;AACX;AACF;AACF,KAAA,CAAC,CACH;;;AAIkB,IAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CACzC,SAAS,CAAC,MACR,KAAK,CACH,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAChC,GAAG,CAAC,MAAM,IAAI,CAAC,EACf,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CACrB,EACD,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/E,GAAG,CAAC,MAAM,KAAK,CAAC,CACjB,CACF,CACF,CACF;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,KAAK,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;;IAG3C,QAAQ,GAAA;QACN,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAG;YACvC,IAAI,GAAG,EAAE;AACP,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;oBAC/B,IAAI,CAAC,YAAY,EAAE;;;AAEhB,iBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;AACrC,gBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;;AAE5B,SAAC,CAAC;;IAGJ,WAAW,GAAA;QACT,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE;QACnC,IAAI,QAAQ,KAAK,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC3C,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;;;IAIvC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;AAC9B,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;;AAE1B,QAAA,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;;uGAzFnB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;AACR;AACF,iBAAA;;;AC/BD;;;AAGG;MAOU,gBAAgB,CAAA;AAC3B;;AAEG;AACM,IAAA,OAAO,GAA4B,IAAI,eAAe,CAAS,CAAC,CAAC;AAE1E;;AAEG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;;AAG3C;;AAEG;IACH,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;;;uGAlBlC,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA;;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACTD;;;AAGG;MAUU,sBAAsB,CAAA;uGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAHvB,yBAAyB,EAAE,yBAAyB,CAAA,EAAA,OAAA,EAAA,CACpD,yBAAyB,EAAE,yBAAyB,CAAA,EAAA,CAAA;wGAEnD,sBAAsB,EAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;AAC/D,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,yBAAyB;AAC/D,iBAAA;;;ACZD;;;AAGG;;ACHH;;AAEG;;;;"}
1
+ {"version":3,"file":"siemens-element-ng-loading-spinner.mjs","sources":["../../../../projects/element-ng/loading-spinner/si-loading-spinner.component.ts","../../../../projects/element-ng/loading-spinner/si-loading-spinner.component.html","../../../../projects/element-ng/loading-spinner/si-loading-button.component.ts","../../../../projects/element-ng/loading-spinner/si-loading-button.component.html","../../../../projects/element-ng/loading-spinner/si-loading-spinner.directive.ts","../../../../projects/element-ng/loading-spinner/si-loading-spinner.service.ts","../../../../projects/element-ng/loading-spinner/si-loading-spinner.module.ts","../../../../projects/element-ng/loading-spinner/index.ts","../../../../projects/element-ng/loading-spinner/siemens-element-ng-loading-spinner.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n inject,\n InjectionToken,\n input\n} from '@angular/core';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nexport const LOADING_SPINNER_BLOCKING = new InjectionToken<boolean>('isBlockingSpinner');\nexport const LOADING_SPINNER_OVERLAY = new InjectionToken<boolean>('isSpinnerOverlay');\n\n@Component({\n selector: 'si-loading-spinner',\n imports: [SiTranslatePipe],\n templateUrl: './si-loading-spinner.component.html',\n styleUrl: './si-loading-spinner.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('fadeAnimation', [\n transition(':enter', [style({ opacity: 0 }), animate('200ms ease-in')]),\n transition(':leave', animate('200ms ease-out', style({ opacity: 0 })))\n ])\n ]\n})\nexport class SiLoadingSpinnerComponent {\n @HostBinding('@fadeAnimation') protected fadeAnimation = '';\n /**\n * @defaultValue\n * ```\n * inject(LOADING_SPINNER_BLOCKING, { optional: true })\n * ```\n */\n readonly isBlockingSpinner = input(inject(LOADING_SPINNER_BLOCKING, { optional: true }));\n /**\n * @defaultValue\n * ```\n * inject(LOADING_SPINNER_OVERLAY, { optional: true })\n * ```\n */\n readonly isSpinnerOverlay = input(inject(LOADING_SPINNER_OVERLAY, { optional: true }));\n /**\n * Needed for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOADING_SPINNER.LABEL:Loading`)\n * ```\n */\n readonly ariaLabel = input(t(() => $localize`:@@SI_LOADING_SPINNER.LABEL:Loading`));\n}\n","<div\n class=\"loading\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n [class.blocking-spinner]=\"isBlockingSpinner()\"\n [class.spinner-overlay]=\"isSpinnerOverlay()\"\n>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <title>{{ ariaLabel() | translate }}</title>\n <g>\n <path d=\"M256,156a16,16,0,0,1-16-16V80a16,16,0,0,1,32,0v60A16,16,0,0,1,256,156Z\" />\n <path\n d=\"M314.78,175.1a16,16,0,0,1-3.54-22.35l35.27-48.54A16,16,0,1,1,372.39,123l-35.26,48.54A16,16,0,0,1,314.78,175.1Z\"\n />\n <path\n d=\"M351.11,225.1a16,16,0,0,1,10.27-20.16l57.06-18.54a16,16,0,1,1,9.89,30.43l-57.06,18.54A16,16,0,0,1,351.11,225.1Z\"\n />\n <path\n d=\"M351.11,286.9a16,16,0,0,1,20.16-10.27l57.06,18.54a16,16,0,1,1-9.89,30.43l-57.06-18.54A16,16,0,0,1,351.11,286.9Z\"\n />\n <path\n d=\"M314.78,336.9a16,16,0,0,1,22.35,3.54L372.39,389a16,16,0,1,1-25.88,18.81l-35.27-48.54A16,16,0,0,1,314.78,336.9Z\"\n />\n <path d=\"M256,356a16,16,0,0,1,16,16v60a16,16,0,0,1-32,0V372A16,16,0,0,1,256,356Z\" />\n <path\n d=\"M197.22,336.9a16,16,0,0,1,3.54,22.35l-35.27,48.54A16,16,0,1,1,139.61,389l35.26-48.54A16,16,0,0,1,197.22,336.9Z\"\n />\n <path\n d=\"M160.89,286.9a16,16,0,0,1-10.27,20.16L93.56,325.6a16,16,0,0,1-9.89-30.43l57.06-18.54A16,16,0,0,1,160.89,286.9Z\"\n />\n <path\n d=\"M160.89,225.1a16,16,0,0,1-20.16,10.27L83.67,216.83a16,16,0,1,1,9.89-30.43l57.06,18.54A16,16,0,0,1,160.89,225.1Z\"\n />\n <path\n d=\"M197.22,175.1a16,16,0,0,1-22.35-3.54L139.61,123a16,16,0,1,1,25.88-18.81l35.27,48.54A16,16,0,0,1,197.22,175.1Z\"\n />\n </g>\n </svg>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiLoadingSpinnerComponent } from './si-loading-spinner.component';\n\n@Component({\n selector: 'si-loading-button',\n imports: [SiLoadingSpinnerComponent, NgClass, SiTranslatePipe],\n templateUrl: './si-loading-button.component.html',\n styleUrl: './si-loading-button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.pe-none]': 'disabled()'\n }\n})\nexport class SiLoadingButtonComponent {\n /**\n * Whether the button is disabled.\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n /**\n * Whether the loading state should be displayed.\n * @defaultValue false\n */\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Type of the button.\n * @defaultValue 'button'\n **/\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n /** aria-label for the button */\n readonly ariaLabel = input<TranslatableString>();\n /** aria-labelledby for the button */\n readonly ariaLabelledBy = input<string>();\n /**\n * CSS class for the button.\n * @defaultValue ''\n */\n readonly buttonClass = input('');\n\n protected handleClick(event: Event): void {\n if (this.disabled() || this.loading()) {\n event.stopPropagation();\n }\n }\n}\n","<button\n [type]=\"type()\"\n [ngClass]=\"buttonClass()\"\n [class.loading]=\"loading()\"\n [class.disabled]=\"loading()\"\n [disabled]=\"disabled()\"\n [attr.aria-disabled]=\"disabled() || loading()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.tabindex]=\"loading() ? '-1' : null\"\n (click)=\"handleClick($event)\"\n>\n <div class=\"button-wrapper\">\n <ng-content />\n </div>\n</button>\n@if (loading()) {\n <div class=\"spinner-wrapper\" (click)=\"$event.stopPropagation()\">\n <si-loading-spinner />\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport {\n booleanAttribute,\n ChangeDetectorRef,\n computed,\n Directive,\n ElementRef,\n inject,\n Injector,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { BehaviorSubject, combineLatest, merge, Subscription, timer } from 'rxjs';\nimport { filter, map, switchMap, takeUntil } from 'rxjs/operators';\n\nimport {\n LOADING_SPINNER_BLOCKING,\n LOADING_SPINNER_OVERLAY,\n SiLoadingSpinnerComponent\n} from './si-loading-spinner.component';\n@Directive({\n selector: '[siLoading]',\n host: {\n class: 'position-relative'\n }\n})\nexport class SiLoadingSpinnerDirective implements OnInit, OnChanges, OnDestroy {\n /**\n * Displays the loading spinner when the value is either true or non-zero.\n */\n readonly siLoading = input.required<boolean | number>();\n\n /**\n * Displays semi-transparent backdrop for the spinner, default is false.\n *\n * @defaultValue false\n */\n readonly blocking = input(false, { transform: booleanAttribute });\n\n /**\n * Specifies if the spinner should be displayed after a delay, default is true.\n *\n * @defaultValue true\n */\n readonly initialDelay = input(true, { transform: booleanAttribute });\n\n private el = inject(ElementRef);\n private readonly viewRef = inject(ViewContainerRef);\n private cdRef = inject(ChangeDetectorRef);\n\n private sub?: Subscription;\n private progressSubject = new BehaviorSubject(false);\n private off$ = this.progressSubject.pipe(filter(val => !val));\n private on$ = this.progressSubject.pipe(filter(val => val));\n private readonly initialWaitTime = computed(() => (this.initialDelay() ? 500 : 0));\n private minSpinTime = 500;\n private portalOutlet?: DomPortalOutlet;\n private readonly compPortal = new ComponentPortal(\n SiLoadingSpinnerComponent,\n this.viewRef,\n Injector.create({\n providers: [\n { provide: LOADING_SPINNER_BLOCKING, useFactory: () => this.blocking() },\n {\n provide: LOADING_SPINNER_OVERLAY,\n useValue: true\n }\n ]\n })\n );\n\n // this makes sure the spinner only displays with a delay of 500ms and stays for 500ms so\n // that it doesn't flicker\n protected readonly spinner$ = this.on$.pipe(\n switchMap(() =>\n merge(\n timer(this.initialWaitTime()).pipe(\n map(() => true),\n takeUntil(this.off$)\n ),\n combineLatest([this.off$, timer(this.initialWaitTime() + this.minSpinTime)]).pipe(\n map(() => false)\n )\n )\n )\n );\n\n private createPortal(): void {\n this.portalOutlet ??= new DomPortalOutlet(this.el.nativeElement);\n this.compPortal.attach(this.portalOutlet);\n }\n\n ngOnInit(): void {\n this.sub = this.spinner$.subscribe(val => {\n if (val) {\n if (!this.compPortal.isAttached) {\n this.createPortal();\n }\n } else if (this.compPortal.isAttached) {\n this.compPortal.detach();\n }\n this.cdRef.markForCheck();\n });\n }\n\n ngOnChanges(): void {\n const newState = !!this.siLoading();\n if (newState !== this.progressSubject.value) {\n this.progressSubject.next(newState);\n }\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n if (this.compPortal.isAttached) {\n this.compPortal.detach();\n }\n this.portalOutlet?.dispose();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SiLoadingService {\n /**\n * Counts the number of loads active, is `0` when all loading is finished (or hasn't started).\n */\n readonly counter: BehaviorSubject<number> = new BehaviorSubject<number>(0);\n\n /**\n * Start the loading.\n */\n startLoad(): void {\n this.counter.next(this.counter.value + 1);\n }\n\n /**\n * Stop the loading.\n */\n stopLoad(): void {\n if (this.counter.value > 0) {\n this.counter.next(this.counter.value - 1);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLoadingSpinnerComponent } from './si-loading-spinner.component';\nimport { SiLoadingSpinnerDirective } from './si-loading-spinner.directive';\n\n@NgModule({\n imports: [SiLoadingSpinnerComponent, SiLoadingSpinnerDirective],\n exports: [SiLoadingSpinnerComponent, SiLoadingSpinnerDirective]\n})\nexport class SiLoadingSpinnerModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-loading-button.component';\nexport * from './si-loading-spinner.component';\nexport * from './si-loading-spinner.directive';\nexport * from './si-loading-spinner.service';\nexport * from './si-loading-spinner.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -104,6 +104,16 @@ const transformMarkdownText = (html, keepAdditionalNewlines = true, sanitizer) =
104
104
  const codePlaceholder = `--INLINE-CODE-${Math.random().toString(36).substring(2, 15)}--`;
105
105
  codeSectionPlaceholderMap.set(codePlaceholder, code);
106
106
  return codePlaceholder;
107
+ })
108
+ // Images ![alt](url)
109
+ .replace(/!\[([^\]]*)\]\(([^)]+)\)/g, (_match, alt, url) => {
110
+ const sanitizedUrl = sanitizeUrl(url, sanitizer);
111
+ const escapedAlt = alt
112
+ .replace(/&/g, '&amp;')
113
+ .replace(/"/g, '&quot;')
114
+ .replace(/</g, '&lt;')
115
+ .replace(/>/g, '&gt;');
116
+ return `<img src="${sanitizedUrl}" alt="${escapedAlt}">`;
107
117
  })
108
118
  // Links [text](url)
109
119
  .replace(/\[([^\]]+)\]\(([^)]+)\)/g, (_match, text, url) => {
@@ -124,7 +134,7 @@ const transformMarkdownText = (html, keepAdditionalNewlines = true, sanitizer) =
124
134
  .replace(/\*(.*?)\*/g, '<em>$1</em>')
125
135
  .replace(/_(.*?)_/g, '<em>$1</em>')
126
136
  .replace(new RegExp(escapedAsteriskPlaceholder, 'g'), '*')
127
- .replace(new RegExp(escapedUnderscorePlaceholder, 'g'), '*')
137
+ .replace(new RegExp(escapedUnderscorePlaceholder, 'g'), '_')
128
138
  // Headings #, ##, ###, etc.
129
139
  .replace(/^###### (.*$)/gm, '<strong>$1</strong>')
130
140
  .replace(/^##### (.*$)/gm, '<h5>$1</h5>')
@@ -136,6 +146,7 @@ const transformMarkdownText = (html, keepAdditionalNewlines = true, sanitizer) =
136
146
  // Bullet points - handle each type separately (• gets converted to &#8226; by sanitizer)
137
147
  .replace(/^&#8226; (.*$)/gm, '<li class="unordered">$1</li>')
138
148
  .replace(/^- (.*$)/gm, '<li class="unordered">$1</li>')
149
+ .replace(/^\* (.*$)/gm, '<li class="unordered">$1</li>')
139
150
  // Ordered list items (1., 2., 3., etc.)
140
151
  .replace(/^\d+\. (.*$)/gm, '<li class="ordered">$1</li>');
141
152
  html = html.replace(/^\s*(?:>|&gt;)\s*(.*)$/gm, '<blockquote>$1</blockquote>');
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-markdown-renderer.mjs","sources":["../../../../projects/element-ng/markdown-renderer/markdown-renderer.ts","../../../../projects/element-ng/markdown-renderer/si-markdown-renderer.component.ts","../../../../projects/element-ng/markdown-renderer/index.ts","../../../../projects/element-ng/markdown-renderer/siemens-element-ng-markdown-renderer.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * Returns a markdown renderer function which_\n * - Transforms markdown text into formatted HTML.\n * - Returns a DOM node containing the formatted content.\n *\n * **Warning:** The returned Node is inserted without additional sanitization.\n * Input content is sanitized before processing.\n *\n * @experimental\n * @param sanitizer - Angular DomSanitizer instance\n * @returns A function taking the markdown text to transform and returning a DOM div element containing the formatted HTML\n */\nexport const getMarkdownRenderer = (sanitizer: DomSanitizer): ((text: string) => Node) => {\n return (text: string): Node => {\n const div = document.createElement('div');\n div.className = 'markdown-content text-break';\n\n if (!text) {\n return div;\n }\n\n // Generate a random placeholder for newlines to preserve them during HTML sanitization\n const newlinePlaceholder = `--NEWLINE-${Math.random().toString(36).substring(2, 15)}--`;\n\n // Replace newlines with placeholder before sanitization\n const valueWithPlaceholders = text.replace(/\\n/g, newlinePlaceholder);\n\n // Sanitize the input using Angular's HTML sanitizer\n const sanitizedInput = sanitizer.sanitize(SecurityContext.HTML, valueWithPlaceholders) ?? '';\n\n // Restore newlines from placeholder for markdown processing.\n let html = sanitizedInput.replace(new RegExp(newlinePlaceholder, 'g'), '\\n');\n\n // Process tables first\n html = html\n // Remove table separator lines first\n .replace(/^\\|\\s*[-:]+.*\\|\\s*$/gm, '')\n // Process table rows\n .replace(/^\\|(.+)\\|\\s*$/gm, (_match, htmlContent) => {\n // Handle escaped pipes by temporarily replacing them\n const escapedPipePlaceholder = `--ESCAPED-PIPE-${Math.random().toString(36).substring(2, 15)}--`;\n const contentWithPlaceholders = htmlContent.replace(/\\\\\\|/g, escapedPipePlaceholder);\n const cells = contentWithPlaceholders.split('|').map((cell: string) => {\n const trimmedCell = cell.trim();\n // Restore escaped pipes\n const cellWithPipes = trimmedCell.replace(new RegExp(escapedPipePlaceholder, 'g'), '|');\n\n return cellWithPipes;\n });\n // Make cell ready for markdown processing by replacing code blocks with inline code and <br> with newlines\n const cellsWithNewlines = cells.map((cell: string) => {\n // Replace multiline code blocks with single line code blocks\n const cellWithoutMultilineCode = cell.replace(\n /```([\\s\\S]*?)```/g,\n (_innerMatch, inlineCodeContent) => {\n return '`' + inlineCodeContent.replace(/`/g, '') + '`';\n }\n );\n // Temporarily replace single line code blocks to avoid replacing <br> inside them\n const tableInlineCodeBrPlaceholder = `--INLINE-CODE-BR--${Math.random().toString(36).substring(2, 15)}--`;\n const cellWithPlaceholders = cellWithoutMultilineCode.replace(\n /(`[^`]*`)/g,\n inlineCodeMatch => {\n return inlineCodeMatch.replace(/<br>/g, tableInlineCodeBrPlaceholder);\n }\n );\n // Replace <br> with newlines\n const cellWithNewlines = cellWithPlaceholders.replace(/<br\\s*\\/?>/gi, '\\n');\n // Restore <br> in inline code placeholders\n const preProcessedCell = cellWithNewlines.replace(\n new RegExp(tableInlineCodeBrPlaceholder, 'g'),\n '<br>'\n );\n return preProcessedCell;\n });\n\n // Recursively process cell content for markdown formatting\n const processedCells = cellsWithNewlines.map((cell: string) => {\n return transformMarkdownText(cell, false, sanitizer);\n });\n\n return `<tr>${processedCells.map((cell: string) => `<td>${cell}</td>`).join('')}</tr>`;\n })\n // Wrap table rows in table elements\n .replace(/(<tr>.*?<\\/tr>)/gs, '<table class=\"table table-hover\">$1</table>')\n // Remove duplicate table tags\n .replace(/<\\/table>\\s*<table class=\"table table-hover\">/g, '');\n\n html = transformMarkdownText(html, true, sanitizer);\n\n div.innerHTML = html;\n return div;\n };\n};\n\nconst transformMarkdownText = (\n html: string,\n keepAdditionalNewlines = true,\n sanitizer: DomSanitizer\n): string => {\n // Generate a random placeholder for inner code blocks to prevent markdown processing inside them\n const innerCodeQuotePlaceholder = `--INNER-CODE-${Math.random().toString(36).substring(2, 15)}--`;\n const codeSectionPlaceholderMap = new Map<string, string>();\n\n const escapedAsteriskPlaceholder = `--ASTERISK-${Math.random().toString(36).substring(2, 15)}--`;\n const escapedUnderscorePlaceholder = `--UNDERSCORE-${Math.random().toString(36).substring(2, 15)}--`;\n\n // Apply markdown transformations to the sanitized content\n html = html\n // Multiline code blocks ```code``` with placeholder\n .replace(/```[^\\n]*\\n?([\\s\\S]*?)\\n?```/g, (match, content) => {\n // Escape HTML special characters in code blocks (not for security, but for correct display) and preserve inner backticks\n const code = `<pre><code>${content.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/`/g, innerCodeQuotePlaceholder)}</code></pre>`;\n const codePlaceholder = `--CODE-BLOCK-${Math.random().toString(36).substring(2, 15)}--`;\n codeSectionPlaceholderMap.set(codePlaceholder, code);\n return codePlaceholder;\n })\n\n // Inline code `text`\n .replace(/`(.*?)`/g, (match, content) => {\n // Escape HTML special characters in inline code (not for security, but for correct display)\n const code = `<code>${content.replace(/</g, '&lt;').replace(/>/g, '&gt;')}</code>`;\n const codePlaceholder = `--INLINE-CODE-${Math.random().toString(36).substring(2, 15)}--`;\n codeSectionPlaceholderMap.set(codePlaceholder, code);\n return codePlaceholder;\n })\n\n // Links [text](url)\n .replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, (_match, text, url) => {\n const sanitizedUrl = sanitizeUrl(url, sanitizer);\n return `<a href=\"${sanitizedUrl}\" target=\"_blank\" rel=\"noopener noreferrer\">${text}</a>`;\n })\n\n // Auto-detect URLs and convert to links\n .replace(/(?<![\"'=(])\\b(https?:\\/\\/[^\\s<]+[^\\s<.,;!?\"')\\]])/g, match => {\n const sanitizedUrl = sanitizeUrl(match, sanitizer);\n return `<a href=\"${sanitizedUrl}\" target=\"_blank\" rel=\"noopener noreferrer\">${match}</a>`;\n })\n\n .replace(/(?<!\\\\)\\\\\\*/g, escapedAsteriskPlaceholder)\n .replace(/(?<!\\\\)\\\\_/g, escapedUnderscorePlaceholder)\n\n // Bold **text** or __text__\n .replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>')\n .replace(/__(.*?)__/g, '<strong>$1</strong>')\n\n // Italic *text* or _text_\n .replace(/\\*(.*?)\\*/g, '<em>$1</em>')\n .replace(/_(.*?)_/g, '<em>$1</em>')\n\n .replace(new RegExp(escapedAsteriskPlaceholder, 'g'), '*')\n .replace(new RegExp(escapedUnderscorePlaceholder, 'g'), '*')\n\n // Headings #, ##, ###, etc.\n .replace(/^###### (.*$)/gm, '<strong>$1</strong>')\n .replace(/^##### (.*$)/gm, '<h5>$1</h5>')\n .replace(/^#### (.*$)/gm, '<h4>$1</h4>')\n .replace(/^### (.*$)/gm, '<h3>$1</h3>')\n .replace(/^## (.*$)/gm, '<h2>$1</h2>')\n .replace(/^# (.*$)/gm, '<h2><strong>$1</strong></h2>');\n\n html = html\n // Bullet points - handle each type separately (• gets converted to &#8226; by sanitizer)\n .replace(/^&#8226; (.*$)/gm, '<li class=\"unordered\">$1</li>')\n .replace(/^- (.*$)/gm, '<li class=\"unordered\">$1</li>')\n\n // Ordered list items (1., 2., 3., etc.)\n .replace(/^\\d+\\. (.*$)/gm, '<li class=\"ordered\">$1</li>');\n\n html = html.replace(/^\\s*(?:>|&gt;)\\s*(.*)$/gm, '<blockquote>$1</blockquote>');\n\n // Generate a random placeholder for newlines to differentiate them from those used for paragraphs\n const finalNewlinePlaceholder = `--NEWLINE-${Math.random().toString(36).substring(2, 15)}--`;\n\n html = html\n // Wrap ordered lists\n .replace(/(<li class=\"ordered\">.*?<\\/li>)/gs, '<ol>$1</ol>')\n\n // Wrap unordered lists\n .replace(/(<li class=\"unordered\">.*?<\\/li>)/gs, '<ul>$1</ul>')\n\n // Remove duplicate ol/ul tags\n .replace(/<\\/ol>\\s*<ol>/g, '')\n .replace(/<\\/ul>\\s*<ul>/g, '')\n\n // Clean up class attributes\n .replace(/ class=\"ordered\"/g, '')\n .replace(/ class=\"unordered\"/g, '');\n\n html = html\n // Convert double newlines to paragraphs (before single line breaks)\n .split(/\\n{2}/g)\n // Wrap non-block elements in <p> tags\n .map(segment => {\n // If the segment starts with a block element, return as is\n if (!segment.trim() || /^\\s*<(h[1-6]|pre|blockquote|ul|ol)/.test(segment.trim())) {\n // Replace newlines inside blocks with the placeholder\n return segment.replace(/\\n/g, finalNewlinePlaceholder);\n }\n // Otherwise, wrap in <p> tags\n return `<p>${segment}</p>`;\n })\n // Use newline placeholder again so as not to replace newlines between blocks\n .join(finalNewlinePlaceholder)\n // Convert remaining newlines to line breaks (do this LAST)\n .replace(/\\n/g, '<br>')\n // Restore newline placeholders\n .replace(new RegExp(finalNewlinePlaceholder, 'g'), keepAdditionalNewlines ? '\\n' : ' ');\n\n // Restore code placeholders\n codeSectionPlaceholderMap.forEach((code, placeholder) => {\n html = html.replace(new RegExp(placeholder, 'g'), code);\n });\n\n // Restore inner code block placeholders\n html = html.replace(new RegExp(innerCodeQuotePlaceholder, 'g'), '`');\n\n return html;\n};\n\n/**\n * Sanitizes a URL to prevent XSS attacks\n * @param url - The URL to sanitize\n * @param sanitizer - Angular DomSanitizer instance\n * @returns The sanitized URL or '#' if invalid\n */\nconst sanitizeUrl = (url: string, sanitizer: DomSanitizer): string => {\n // Remove any whitespace\n url = url.trim();\n\n // Allow only http, https, and mailto protocols\n const allowed = /^(https?:\\/\\/|mailto:|\\/(?!\\/)|\\.{1,2}\\/|#)/i;\n\n // Sanitize the URL using Angular's sanitizer\n if (!allowed.test(url)) {\n return '#';\n }\n\n // Sanitize the URL using Angular's sanitizer\n const sanitized = sanitizer.sanitize(SecurityContext.URL, url);\n\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return sanitized || '#';\n};\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { CommonModule } from '@angular/common';\nimport { Component, effect, inject, input, ElementRef } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { getMarkdownRenderer } from './markdown-renderer';\n\n/**\n * Component to display markdown text, uses the {@link getMarkdownRenderer} function internally, relies on `markdown-content` theme class.\n * @experimental\n */\n@Component({\n selector: 'si-markdown-renderer',\n imports: [CommonModule],\n template: ``\n})\nexport class SiMarkdownRendererComponent {\n private sanitizer = inject(DomSanitizer);\n private hostElement = inject(ElementRef<HTMLElement>);\n private markdownRenderer = getMarkdownRenderer(this.sanitizer);\n\n /**\n * The markdown text to transform and display\n * @defaultValue ''\n */\n readonly text = input<string>('');\n\n constructor() {\n effect(() => {\n const contentValue = this.text();\n const containerEl = this.hostElement.nativeElement;\n\n if (containerEl) {\n const formattedNode = this.markdownRenderer(contentValue);\n containerEl.innerHTML = '';\n containerEl.appendChild(formattedNode);\n }\n });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-markdown-renderer.component';\nexport * from './markdown-renderer';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-markdown-renderer.mjs","sources":["../../../../projects/element-ng/markdown-renderer/markdown-renderer.ts","../../../../projects/element-ng/markdown-renderer/si-markdown-renderer.component.ts","../../../../projects/element-ng/markdown-renderer/index.ts","../../../../projects/element-ng/markdown-renderer/siemens-element-ng-markdown-renderer.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * Returns a markdown renderer function which_\n * - Transforms markdown text into formatted HTML.\n * - Returns a DOM node containing the formatted content.\n *\n * **Warning:** The returned Node is inserted without additional sanitization.\n * Input content is sanitized before processing.\n *\n * @experimental\n * @param sanitizer - Angular DomSanitizer instance\n * @returns A function taking the markdown text to transform and returning a DOM div element containing the formatted HTML\n */\nexport const getMarkdownRenderer = (sanitizer: DomSanitizer): ((text: string) => Node) => {\n return (text: string): Node => {\n const div = document.createElement('div');\n div.className = 'markdown-content text-break';\n\n if (!text) {\n return div;\n }\n\n // Generate a random placeholder for newlines to preserve them during HTML sanitization\n const newlinePlaceholder = `--NEWLINE-${Math.random().toString(36).substring(2, 15)}--`;\n\n // Replace newlines with placeholder before sanitization\n const valueWithPlaceholders = text.replace(/\\n/g, newlinePlaceholder);\n\n // Sanitize the input using Angular's HTML sanitizer\n const sanitizedInput = sanitizer.sanitize(SecurityContext.HTML, valueWithPlaceholders) ?? '';\n\n // Restore newlines from placeholder for markdown processing.\n let html = sanitizedInput.replace(new RegExp(newlinePlaceholder, 'g'), '\\n');\n\n // Process tables first\n html = html\n // Remove table separator lines first\n .replace(/^\\|\\s*[-:]+.*\\|\\s*$/gm, '')\n // Process table rows\n .replace(/^\\|(.+)\\|\\s*$/gm, (_match, htmlContent) => {\n // Handle escaped pipes by temporarily replacing them\n const escapedPipePlaceholder = `--ESCAPED-PIPE-${Math.random().toString(36).substring(2, 15)}--`;\n const contentWithPlaceholders = htmlContent.replace(/\\\\\\|/g, escapedPipePlaceholder);\n const cells = contentWithPlaceholders.split('|').map((cell: string) => {\n const trimmedCell = cell.trim();\n // Restore escaped pipes\n const cellWithPipes = trimmedCell.replace(new RegExp(escapedPipePlaceholder, 'g'), '|');\n\n return cellWithPipes;\n });\n // Make cell ready for markdown processing by replacing code blocks with inline code and <br> with newlines\n const cellsWithNewlines = cells.map((cell: string) => {\n // Replace multiline code blocks with single line code blocks\n const cellWithoutMultilineCode = cell.replace(\n /```([\\s\\S]*?)```/g,\n (_innerMatch, inlineCodeContent) => {\n return '`' + inlineCodeContent.replace(/`/g, '') + '`';\n }\n );\n // Temporarily replace single line code blocks to avoid replacing <br> inside them\n const tableInlineCodeBrPlaceholder = `--INLINE-CODE-BR--${Math.random().toString(36).substring(2, 15)}--`;\n const cellWithPlaceholders = cellWithoutMultilineCode.replace(\n /(`[^`]*`)/g,\n inlineCodeMatch => {\n return inlineCodeMatch.replace(/<br>/g, tableInlineCodeBrPlaceholder);\n }\n );\n // Replace <br> with newlines\n const cellWithNewlines = cellWithPlaceholders.replace(/<br\\s*\\/?>/gi, '\\n');\n // Restore <br> in inline code placeholders\n const preProcessedCell = cellWithNewlines.replace(\n new RegExp(tableInlineCodeBrPlaceholder, 'g'),\n '<br>'\n );\n return preProcessedCell;\n });\n\n // Recursively process cell content for markdown formatting\n const processedCells = cellsWithNewlines.map((cell: string) => {\n return transformMarkdownText(cell, false, sanitizer);\n });\n\n return `<tr>${processedCells.map((cell: string) => `<td>${cell}</td>`).join('')}</tr>`;\n })\n // Wrap table rows in table elements\n .replace(/(<tr>.*?<\\/tr>)/gs, '<table class=\"table table-hover\">$1</table>')\n // Remove duplicate table tags\n .replace(/<\\/table>\\s*<table class=\"table table-hover\">/g, '');\n\n html = transformMarkdownText(html, true, sanitizer);\n\n div.innerHTML = html;\n return div;\n };\n};\n\nconst transformMarkdownText = (\n html: string,\n keepAdditionalNewlines = true,\n sanitizer: DomSanitizer\n): string => {\n // Generate a random placeholder for inner code blocks to prevent markdown processing inside them\n const innerCodeQuotePlaceholder = `--INNER-CODE-${Math.random().toString(36).substring(2, 15)}--`;\n const codeSectionPlaceholderMap = new Map<string, string>();\n\n const escapedAsteriskPlaceholder = `--ASTERISK-${Math.random().toString(36).substring(2, 15)}--`;\n const escapedUnderscorePlaceholder = `--UNDERSCORE-${Math.random().toString(36).substring(2, 15)}--`;\n\n // Apply markdown transformations to the sanitized content\n html = html\n // Multiline code blocks ```code``` with placeholder\n .replace(/```[^\\n]*\\n?([\\s\\S]*?)\\n?```/g, (match, content) => {\n // Escape HTML special characters in code blocks (not for security, but for correct display) and preserve inner backticks\n const code = `<pre><code>${content.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/`/g, innerCodeQuotePlaceholder)}</code></pre>`;\n const codePlaceholder = `--CODE-BLOCK-${Math.random().toString(36).substring(2, 15)}--`;\n codeSectionPlaceholderMap.set(codePlaceholder, code);\n return codePlaceholder;\n })\n\n // Inline code `text`\n .replace(/`(.*?)`/g, (match, content) => {\n // Escape HTML special characters in inline code (not for security, but for correct display)\n const code = `<code>${content.replace(/</g, '&lt;').replace(/>/g, '&gt;')}</code>`;\n const codePlaceholder = `--INLINE-CODE-${Math.random().toString(36).substring(2, 15)}--`;\n codeSectionPlaceholderMap.set(codePlaceholder, code);\n return codePlaceholder;\n })\n\n // Images ![alt](url)\n .replace(/!\\[([^\\]]*)\\]\\(([^)]+)\\)/g, (_match, alt, url) => {\n const sanitizedUrl = sanitizeUrl(url, sanitizer);\n const escapedAlt = alt\n .replace(/&/g, '&amp;')\n .replace(/\"/g, '&quot;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;');\n return `<img src=\"${sanitizedUrl}\" alt=\"${escapedAlt}\">`;\n })\n\n // Links [text](url)\n .replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, (_match, text, url) => {\n const sanitizedUrl = sanitizeUrl(url, sanitizer);\n return `<a href=\"${sanitizedUrl}\" target=\"_blank\" rel=\"noopener noreferrer\">${text}</a>`;\n })\n\n // Auto-detect URLs and convert to links\n .replace(/(?<![\"'=(])\\b(https?:\\/\\/[^\\s<]+[^\\s<.,;!?\"')\\]])/g, match => {\n const sanitizedUrl = sanitizeUrl(match, sanitizer);\n return `<a href=\"${sanitizedUrl}\" target=\"_blank\" rel=\"noopener noreferrer\">${match}</a>`;\n })\n\n .replace(/(?<!\\\\)\\\\\\*/g, escapedAsteriskPlaceholder)\n .replace(/(?<!\\\\)\\\\_/g, escapedUnderscorePlaceholder)\n\n // Bold **text** or __text__\n .replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>')\n .replace(/__(.*?)__/g, '<strong>$1</strong>')\n\n // Italic *text* or _text_\n .replace(/\\*(.*?)\\*/g, '<em>$1</em>')\n .replace(/_(.*?)_/g, '<em>$1</em>')\n\n .replace(new RegExp(escapedAsteriskPlaceholder, 'g'), '*')\n .replace(new RegExp(escapedUnderscorePlaceholder, 'g'), '_')\n\n // Headings #, ##, ###, etc.\n .replace(/^###### (.*$)/gm, '<strong>$1</strong>')\n .replace(/^##### (.*$)/gm, '<h5>$1</h5>')\n .replace(/^#### (.*$)/gm, '<h4>$1</h4>')\n .replace(/^### (.*$)/gm, '<h3>$1</h3>')\n .replace(/^## (.*$)/gm, '<h2>$1</h2>')\n .replace(/^# (.*$)/gm, '<h2><strong>$1</strong></h2>');\n\n html = html\n // Bullet points - handle each type separately (• gets converted to &#8226; by sanitizer)\n .replace(/^&#8226; (.*$)/gm, '<li class=\"unordered\">$1</li>')\n .replace(/^- (.*$)/gm, '<li class=\"unordered\">$1</li>')\n .replace(/^\\* (.*$)/gm, '<li class=\"unordered\">$1</li>')\n\n // Ordered list items (1., 2., 3., etc.)\n .replace(/^\\d+\\. (.*$)/gm, '<li class=\"ordered\">$1</li>');\n\n html = html.replace(/^\\s*(?:>|&gt;)\\s*(.*)$/gm, '<blockquote>$1</blockquote>');\n\n // Generate a random placeholder for newlines to differentiate them from those used for paragraphs\n const finalNewlinePlaceholder = `--NEWLINE-${Math.random().toString(36).substring(2, 15)}--`;\n\n html = html\n // Wrap ordered lists\n .replace(/(<li class=\"ordered\">.*?<\\/li>)/gs, '<ol>$1</ol>')\n\n // Wrap unordered lists\n .replace(/(<li class=\"unordered\">.*?<\\/li>)/gs, '<ul>$1</ul>')\n\n // Remove duplicate ol/ul tags\n .replace(/<\\/ol>\\s*<ol>/g, '')\n .replace(/<\\/ul>\\s*<ul>/g, '')\n\n // Clean up class attributes\n .replace(/ class=\"ordered\"/g, '')\n .replace(/ class=\"unordered\"/g, '');\n\n html = html\n // Convert double newlines to paragraphs (before single line breaks)\n .split(/\\n{2}/g)\n // Wrap non-block elements in <p> tags\n .map(segment => {\n // If the segment starts with a block element, return as is\n if (!segment.trim() || /^\\s*<(h[1-6]|pre|blockquote|ul|ol)/.test(segment.trim())) {\n // Replace newlines inside blocks with the placeholder\n return segment.replace(/\\n/g, finalNewlinePlaceholder);\n }\n // Otherwise, wrap in <p> tags\n return `<p>${segment}</p>`;\n })\n // Use newline placeholder again so as not to replace newlines between blocks\n .join(finalNewlinePlaceholder)\n // Convert remaining newlines to line breaks (do this LAST)\n .replace(/\\n/g, '<br>')\n // Restore newline placeholders\n .replace(new RegExp(finalNewlinePlaceholder, 'g'), keepAdditionalNewlines ? '\\n' : ' ');\n\n // Restore code placeholders\n codeSectionPlaceholderMap.forEach((code, placeholder) => {\n html = html.replace(new RegExp(placeholder, 'g'), code);\n });\n\n // Restore inner code block placeholders\n html = html.replace(new RegExp(innerCodeQuotePlaceholder, 'g'), '`');\n\n return html;\n};\n\n/**\n * Sanitizes a URL to prevent XSS attacks\n * @param url - The URL to sanitize\n * @param sanitizer - Angular DomSanitizer instance\n * @returns The sanitized URL or '#' if invalid\n */\nconst sanitizeUrl = (url: string, sanitizer: DomSanitizer): string => {\n // Remove any whitespace\n url = url.trim();\n\n // Allow only http, https, and mailto protocols\n const allowed = /^(https?:\\/\\/|mailto:|\\/(?!\\/)|\\.{1,2}\\/|#)/i;\n\n // Sanitize the URL using Angular's sanitizer\n if (!allowed.test(url)) {\n return '#';\n }\n\n // Sanitize the URL using Angular's sanitizer\n const sanitized = sanitizer.sanitize(SecurityContext.URL, url);\n\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return sanitized || '#';\n};\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { CommonModule } from '@angular/common';\nimport { Component, effect, inject, input, ElementRef } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { getMarkdownRenderer } from './markdown-renderer';\n\n/**\n * Component to display markdown text, uses the {@link getMarkdownRenderer} function internally, relies on `markdown-content` theme class.\n * @experimental\n */\n@Component({\n selector: 'si-markdown-renderer',\n imports: [CommonModule],\n template: ``\n})\nexport class SiMarkdownRendererComponent {\n private sanitizer = inject(DomSanitizer);\n private hostElement = inject(ElementRef<HTMLElement>);\n private markdownRenderer = getMarkdownRenderer(this.sanitizer);\n\n /**\n * The markdown text to transform and display\n * @defaultValue ''\n */\n readonly text = input<string>('');\n\n constructor() {\n effect(() => {\n const contentValue = this.text();\n const containerEl = this.hostElement.nativeElement;\n\n if (containerEl) {\n const formattedNode = this.markdownRenderer(contentValue);\n containerEl.innerHTML = '';\n containerEl.appendChild(formattedNode);\n }\n });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-markdown-renderer.component';\nexport * from './markdown-renderer';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}