@siemens/element-ng 51.0.0-rc.9 → 51.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/siemens-element-ng-accordion.mjs +2 -2
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs +125 -125
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +4 -4
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs +5 -5
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +2 -2
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +2 -2
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-carousel.mjs +2 -2
- package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs +129 -29
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs +2 -2
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs +18 -18
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-connection-strength.mjs +2 -2
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +2 -2
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +8 -8
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +2 -2
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +8 -8
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +2 -2
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +2 -2
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs +2 -2
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +4 -4
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +4 -4
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-footer.mjs +2 -2
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +17 -4
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs +2 -2
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs +2 -2
- package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs +2 -2
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs +64 -18
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +4 -4
- package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +72 -24
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-maplibre.mjs +21 -21
- package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs +2 -2
- package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs +2 -2
- package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +6 -6
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +8 -8
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +6 -6
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +2 -4
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs +2 -2
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-strength.mjs +2 -2
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs +2 -2
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +4 -4
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +2 -2
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +2 -2
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +2 -2
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +46 -7
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +48 -13
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +2 -2
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-slider.mjs +2 -2
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-source-chip.mjs +2 -2
- package/fesm2022/siemens-element-ng-source-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs +21 -19
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +4 -4
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-counter.mjs +2 -2
- package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +2 -2
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs +2 -2
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-widget.mjs +2 -2
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-system-banner.mjs +2 -2
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs +2 -2
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +95 -73
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +2 -2
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +2 -2
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +4 -4
- package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +4 -4
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +2 -2
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/maplibre/styles/maplibre-gl.scss +22 -22
- package/package.json +4 -4
- package/schematics/migration.json +5 -0
- package/schematics/migrations/data/css-custom-properties.js +204 -12
- package/schematics/migrations/data/element-class-changes.js +8 -7
- package/schematics/migrations/data/element-migration-data.js +13 -1
- package/schematics/migrations/data/index.js +1 -1
- package/schematics/ng-update/index.js +1 -0
- package/schematics/ng-update/migrate-list-details-units.js +86 -0
- package/schematics/ng-update/migrate-main-detail-units.js +89 -0
- package/schematics/ng-update/migrate-split-collapse.js +1 -32
- package/schematics/ng-update/migrate-split-scale.js +524 -0
- package/schematics/ng-update/migrate-split-sizes.js +5 -3
- package/schematics/ng-update/migrate-to-v51-0-1.js +12 -0
- package/schematics/ng-update/migrate-to-v51.js +6 -0
- package/schematics/utils/index.js +1 -0
- package/schematics/utils/template-edit-utils.js +35 -0
- package/schematics/utils/template-utils.js +31 -45
- package/schematics/utils/testing.js +13 -1
- package/types/siemens-element-ng-avatar.d.ts +1 -1
- package/types/siemens-element-ng-chat-messages.d.ts +81 -17
- package/types/siemens-element-ng-form.d.ts +3 -0
- package/types/siemens-element-ng-list-details.d.ts +25 -3
- package/types/siemens-element-ng-main-detail-container.d.ts +23 -3
- package/types/siemens-element-ng-notification-item.d.ts +0 -12
- package/types/siemens-element-ng-select.d.ts +31 -4
- package/types/siemens-element-ng-side-panel.d.ts +17 -3
- package/types/siemens-element-ng-split.d.ts +3 -10
|
@@ -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/status-icon.ts","../../../../projects/element-ng/icon/si-status-icon.component.ts","../../../../projects/element-ng/icon/element-icons.ts","../../../../projects/element-ng/icon/index.ts","../../../../projects/element-ng/icon/siemens-element-ng-icon.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { 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: [SiTranslatePipe],\n templateUrl: './si-icon-legacy.component.html',\n styles: ':host, span { line-height: 1; }'\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 ${icon() ?? ''} ${color() ?? ''} ${size()}`\"\n [attr.aria-label]=\"altText() ? (altText() | translate) : null\"\n [attr.aria-hidden]=\"!altText()\"\n [attr.role]=\"altText() ? 'img' : 'presentation'\"\n>\n @if (stackedIcon()) {\n <i\n aria-hidden=\"true\"\n [class]=\"`position-absolute start-0 ${stackedIcon()} ${stackedColor() ?? ''}`\"\n ></i>\n }\n</span>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { DestroyRef, inject, Injectable } from '@angular/core';\nimport { SiThemeService } from '@siemens/element-ng/theme';\n\ninterface RegisteredIcon {\n content: string | 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 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 '@siemens/element-icons';\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 for (const [key, content] of Object.entries<string>(icons)) {\n const registeredIcon = registeredIcons.get(key) ?? {\n content,\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): string | undefined => registeredIcons.get(key)?.content;\n\n@Injectable({ providedIn: 'root' })\nexport class IconService {\n private themeService = inject(SiThemeService);\n\n getIcon(name: string): string | 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 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, inject, input } from '@angular/core';\n\nimport { IconService } from './si-icons';\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@Component({\n selector: 'si-icon',\n template: ` <div aria-hidden=\"true\" [class]=\"svgIcon() ? 'svg-element-icon' : fontIcon()\"></div>`,\n styleUrl: './si-icon.component.scss',\n host: {\n '[attr.data-icon]': 'icon()',\n '[style.--svg-element-icon]': 'svgIcon()'\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 '@siemens/element-icons';\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 iconService = inject(IconService);\n\n protected readonly svgIcon = computed(() => {\n const icon = this.iconService.getIcon(this.icon());\n if (!icon) {\n return undefined;\n }\n\n return `url(\"${icon.replace(/\"/g, '\\\\\"')}\")`;\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 isKebabCase(str: string): boolean {\n return /^[a-z0-9]+(-[a-z0-9]+)*$/.test(str);\n }\n\n /**\n * Converts a camelCase string to kebab-case.\n * If the string is already in kebab-case, it returns it unchanged.\n *\n * Note: This conversion has limitations with mixed alphanumeric cases.\n * Complex number-letter combinations may not convert as expected.\n */\n private camelToKebabCase(str: string): string {\n return this.isKebabCase(str)\n ? str\n : 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 - 2026\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 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\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 '@siemens/element-icons';\nimport { EntityStatusType, StatusIcon } from '@siemens/element-ng/common';\nimport { t } from '@siemens/element-translate-ng/translate';\n\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: 'background-success-subtle',\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: 'background-information-subtle',\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: 'background-caution-subtle',\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: 'background-warning-subtle',\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: 'background-danger-subtle',\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: 'background-critical-subtle',\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: 'background-information-subtle',\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: 'background-caution-subtle',\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-primary',\n background: 'background-0',\n severity: 8,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.UNKNOWN:Unknown`)\n }\n };\n }\n }\n);\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { 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: [SiIconComponent, SiTranslatePipe],\n template: `\n @let iconValue = statusIcon();\n @if (iconValue) {\n <si-icon [class]=\"iconValue.color\" [icon]=\"iconValue.icon\" />\n <si-icon [class]=\"iconValue.stackedColor\" [icon]=\"iconValue.stacked\" />\n <span class=\"visually-hidden\">{{ iconValue.ariaLabel | translate }}</span>\n }\n `,\n host: { class: 'icon-stack' }\n})\nexport class SiStatusIconComponent {\n private readonly statusIcons = inject(STATUS_ICON_CONFIG);\n\n /** Status that determines the rendered stacked icon and accessible label. */\n readonly status = input.required<EntityStatusType>();\n\n protected readonly statusIcon = computed(() => this.statusIcons[this.status()]);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\nexport const elementCheckedImageShape =\n 'data:image/svg+xml;base64,PHN2ZyBpZD0iSWNvbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+CiAgPHRpdGxlPm9rPC90aXRsZT4KICA8cGF0aCBkPSJNMzc5LjUxLDE1Ni43NmwtMTczLDE3My03NC03NGExMiwxMiwwLDEsMC0xNywxN2w4Mi41LDgyLjVhMTIsMTIsMCwwLDAsMTcsMGwxODEuNS0xODEuNWExMiwxMiwwLDAsMC0xNy0xN1oiLz4KPC9zdmc+Cg==';\n","/**\n * Copyright (c) Siemens 2016 - 2026\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 { elementCheckedImageShape } 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/status-icon.ts","../../../../projects/element-ng/icon/si-status-icon.component.ts","../../../../projects/element-ng/icon/element-icons.ts","../../../../projects/element-ng/icon/index.ts","../../../../projects/element-ng/icon/siemens-element-ng-icon.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { 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: [SiTranslatePipe],\n templateUrl: './si-icon-legacy.component.html',\n styles: ':host, span { line-height: 1; }'\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 ${icon() ?? ''} ${color() ?? ''} ${size()}`\"\n [attr.aria-label]=\"altText() ? (altText() | translate) : null\"\n [attr.aria-hidden]=\"!altText()\"\n [attr.role]=\"altText() ? 'img' : 'presentation'\"\n>\n @if (stackedIcon()) {\n <i\n aria-hidden=\"true\"\n [class]=\"`position-absolute start-0 ${stackedIcon()} ${stackedColor() ?? ''}`\"\n ></i>\n }\n</span>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { DestroyRef, inject, Injectable } from '@angular/core';\nimport { SiThemeService } from '@siemens/element-ng/theme';\n\ninterface RegisteredIcon {\n content: string | 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 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 '@siemens/element-icons';\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 for (const [key, content] of Object.entries<string>(icons)) {\n const registeredIcon = registeredIcons.get(key) ?? {\n content,\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): string | undefined => registeredIcons.get(key)?.content;\n\n@Injectable({ providedIn: 'root' })\nexport class IconService {\n private themeService = inject(SiThemeService);\n\n getIcon(name: string): string | 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 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, inject, input } from '@angular/core';\n\nimport { IconService } from './si-icons';\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@Component({\n selector: 'si-icon',\n template: ` <div aria-hidden=\"true\" [class]=\"svgIcon() ? 'svg-element-icon' : fontIcon()\"></div>`,\n styleUrl: './si-icon.component.scss',\n host: {\n '[attr.data-icon]': 'icon()',\n '[style.--svg-element-icon]': 'svgIcon()'\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 '@siemens/element-icons';\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 iconService = inject(IconService);\n\n protected readonly svgIcon = computed(() => {\n const icon = this.iconService.getIcon(this.icon());\n if (!icon) {\n return undefined;\n }\n\n return `url(\"${icon.replace(/\"/g, '\\\\\"')}\")`;\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 isKebabCase(str: string): boolean {\n return /^[a-z0-9]+(-[a-z0-9]+)*$/.test(str);\n }\n\n /**\n * Converts a camelCase string to kebab-case.\n * If the string is already in kebab-case, it returns it unchanged.\n *\n * Note: This conversion has limitations with mixed alphanumeric cases.\n * Complex number-letter combinations may not convert as expected.\n */\n private camelToKebabCase(str: string): string {\n return this.isKebabCase(str)\n ? str\n : 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 - 2026\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 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\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 '@siemens/element-icons';\nimport { EntityStatusType, StatusIcon } from '@siemens/element-ng/common';\nimport { t } from '@siemens/element-translate-ng/translate';\n\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: 'background-success-subtle',\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: 'background-information-subtle',\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: 'background-caution-subtle',\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: 'background-warning-subtle',\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: 'background-danger-subtle',\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: 'background-critical-subtle',\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: 'background-information-subtle',\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: 'background-caution-subtle',\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: 'status-neutral-contrast',\n background: 'background-0',\n severity: 8,\n ariaLabel: t(() => $localize`:@@SI_ICON_STATUS.UNKNOWN:Unknown`)\n }\n };\n }\n }\n);\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { 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: [SiIconComponent, SiTranslatePipe],\n template: `\n @let iconValue = statusIcon();\n @if (iconValue) {\n <si-icon [class]=\"iconValue.color\" [icon]=\"iconValue.icon\" />\n <si-icon [class]=\"iconValue.stackedColor\" [icon]=\"iconValue.stacked\" />\n <span class=\"visually-hidden\">{{ iconValue.ariaLabel | translate }}</span>\n }\n `,\n host: { class: 'icon-stack' }\n})\nexport class SiStatusIconComponent {\n private readonly statusIcons = inject(STATUS_ICON_CONFIG);\n\n /** Status that determines the rendered stacked icon and accessible label. */\n readonly status = input.required<EntityStatusType>();\n\n protected readonly statusIcon = computed(() => this.statusIcons[this.status()]);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\nexport const elementCheckedImageShape =\n 'data:image/svg+xml;base64,PHN2ZyBpZD0iSWNvbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+CiAgPHRpdGxlPm9rPC90aXRsZT4KICA8cGF0aCBkPSJNMzc5LjUxLDE1Ni43NmwtMTczLDE3My03NC03NGExMiwxMiwwLDEsMC0xNywxN2w4Mi41LDgyLjVhMTIsMTIsMCwwLDAsMTcsMGwxODEuNS0xODEuNWExMiwxMiwwLDAsMC0xNy0xN1oiLz4KPC9zdmc+Cg==';\n","/**\n * Copyright (c) Siemens 2016 - 2026\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 { elementCheckedImageShape } from './element-icons';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -149,7 +149,7 @@ class SiLandingPageComponent {
|
|
|
149
149
|
isFullHeightSection = signal(false, /* @ts-ignore */
|
|
150
150
|
...(ngDevMode ? [{ debugName: "isFullHeightSection" }] : /* istanbul ignore next */ []));
|
|
151
151
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiLandingPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
152
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiLandingPageComponent, isStandalone: true, selector: "si-landing-page", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: true, transformFunction: null }, subheading: { classPropertyName: "subheading", publicName: "subheading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: true, transformFunction: null }, links: { classPropertyName: "links", publicName: "links", isSignal: true, isRequired: false, transformFunction: null }, backgroundImageUrl: { classPropertyName: "backgroundImageUrl", publicName: "backgroundImageUrl", isSignal: true, isRequired: false, transformFunction: null }, logoUrl: { classPropertyName: "logoUrl", publicName: "logoUrl", isSignal: true, isRequired: false, transformFunction: null }, translationKey: { classPropertyName: "translationKey", publicName: "translationKey", isSignal: true, isRequired: false, transformFunction: null }, availableLanguages: { classPropertyName: "availableLanguages", publicName: "availableLanguages", isSignal: true, isRequired: false, transformFunction: null }, announcement: { classPropertyName: "announcement", publicName: "announcement", isSignal: true, isRequired: false, transformFunction: null }, loginAlert: { classPropertyName: "loginAlert", publicName: "loginAlert", isSignal: true, isRequired: false, transformFunction: null }, liveDataWarning: { classPropertyName: "liveDataWarning", publicName: "liveDataWarning", isSignal: true, isRequired: false, transformFunction: null }, implicitLegalAcknowledge: { classPropertyName: "implicitLegalAcknowledge", publicName: "implicitLegalAcknowledge", isSignal: true, isRequired: false, transformFunction: null }, version: { classPropertyName: "version", publicName: "version", isSignal: true, isRequired: false, transformFunction: null }, copyrightDetails: { classPropertyName: "copyrightDetails", publicName: "copyrightDetails", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let announcement = this.announcement();\n@let availableLanguages = this.availableLanguages();\n@let loginAlert = this.loginAlert();\n@let implicitLegalAcknowledge = this.implicitLegalAcknowledge();\n@let liveDataWarning = this.liveDataWarning();\n@let isFullHeightSection = this.isFullHeightSection();\n\n@if (announcement) {\n <si-inline-notification\n class=\"rounded-0\"\n [severity]=\"announcement.severity\"\n [heading]=\"announcement.heading\"\n [message]=\"announcement.message\"\n [action]=\"announcement.action\"\n [translationParams]=\"announcement.translationParams\"\n />\n}\n<div class=\"landing-page\">\n <div\n class=\"landing-page-background d-none d-md-block\"\n [style.background-image]=\"'url(' + backgroundImageUrl() + ')'\"\n >\n </div>\n <div class=\"landing-page-content\">\n <div class=\"landing-page-content-inner\">\n @if (!isFullHeightSection) {\n <div class=\"d-flex justify-content-between align-items-center pb-9\">\n @if (!logoUrl()) {\n <span role=\"img\" class=\"landing-page-logo\"></span>\n } @else {\n <img\n class=\"landing-page-logo landing-page-custom-logo\"\n [src]=\"logoUrl()\"\n [alt]=\"heading() + '\\'s Background'\"\n />\n }\n @if (availableLanguages.length > 1) {\n <div class=\"landing-page-language-switcher\">\n <si-language-switcher\n [translationKey]=\"translationKey()\"\n [availableLanguages]=\"availableLanguages\"\n />\n </div>\n }\n </div>\n }\n <div class=\"landing-page-main\">\n @if (!isFullHeightSection) {\n @if (subheading()) {\n <div class=\"si-h2\">{{ subheading() | translate }}</div>\n }\n <h1 class=\"si-h1 my-2\">{{ heading() | translate }}</h1>\n <div class=\"position-relative\">\n <h2 class=\"mt-13 si-h2\" [class.invisible]=\"loginAlert\">{{ subtitle() | translate }}</h2>\n @if (loginAlert) {\n <si-inline-notification\n class=\"landing-page-alert w-100\"\n [severity]=\"loginAlert.severity || 'danger'\"\n [heading]=\"loginAlert.heading\"\n [message]=\"loginAlert.message\"\n [action]=\"loginAlert.action\"\n [translationParams]=\"loginAlert.translationParams\"\n />\n }\n </div>\n }\n <div class=\"landing-page-custom-content\">\n <ng-content />\n @if (!isFullHeightSection) {\n @if (implicitLegalAcknowledge) {\n @if (typeof implicitLegalAcknowledge === 'string') {\n <div class=\"text-secondary mt-8\" [innerHTML]=\"implicitLegalAcknowledge\"></div>\n } @else {\n <div class=\"text-secondary mt-8\">\n <ng-container [ngTemplateOutlet]=\"implicitLegalAcknowledge\" />\n </div>\n }\n }\n @if (liveDataWarning) {\n <div class=\"text-secondary mt-8\">\n <div class=\"si-h5\">{{ liveDataWarning.title | translate }}</div>\n <div class=\"si-body my-4\">{{ liveDataWarning.content | translate }}</div>\n </div>\n }\n }\n </div>\n </div>\n @if (!isFullHeightSection) {\n <footer>\n <div>\n <div class=\"d-flex justify-content-start flex-row flex-wrap mt-6\">\n @for (link of links(); track $index) {\n <span>\n <a siLinkDefaultTarget=\"_blank\" class=\"si-body me-6\" [siLink]=\"link\">\n {{ link.title | translate }}\n </a>\n </span>\n }\n </div>\n <div class=\"si-body-sm mt-4 mb-6 text-secondary d-flex flex-wrap\">\n @if (version()) {\n <span class=\"me-6\">{{ version() }}</span>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n </div>\n </footer>\n }\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;block-size:100%;padding-block-start:calc(var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px))}.landing-page{display:flex;flex-direction:row-reverse;flex-grow:1}.landing-page-background{background-size:cover;background-position:center;inline-size:60%}.landing-page-content{block-size:100vb;overflow-y:auto;inline-size:40%;background-color:var(--si-sys-background-0);padding-block:var(--si-sys-sizing-spacing-y-90) var(--si-sys-sizing-spacing-y-90);padding-inline:var(--si-sys-sizing-spacing-y-140)}.landing-page-content:has(si-explicit-legal-acknowledge,si-change-password){block-size:100%}.landing-page-content-inner{block-size:100%;min-block-size:min-content;display:flex;flex-direction:column;justify-content:space-between}.landing-page-main:has(si-explicit-legal-acknowledge,si-change-password){block-size:100%}.landing-page-logo{block-size:var(--landing-page-logo-height, var(--element-brand-logo-height));inline-size:var(--landing-page-logo-width, var(--element-brand-logo-width));content:var(--landing-page-logo, var(--element-brand-logo))/var(--element-brand-logo-text);box-sizing:content-box}.landing-page-custom-logo{block-size:var(--landing-page-logo-height);inline-size:var(--landing-page-logo-width, 180px);content:none}.landing-page-alert{position:absolute;inset-block-end:-20px}.landing-page-custom-content{margin-block:28px;margin-inline:0}.landing-page-custom-content:has(si-explicit-legal-acknowledge,si-change-password){margin-block:0;block-size:100%}.landing-page-links a{font-size:12px}footer{color:var(--si-sys-text-secondary)}@media(max-width:1199.98px){.landing-page-background{padding:var(--si-sys-sizing-spacing-y-130)}.landing-page-content{padding-block:var(--si-sys-sizing-spacing-y-90) var(--si-sys-sizing-spacing-y-90);padding-inline:var(--si-sys-sizing-spacing-y-130)}}@media(max-width:991.98px){.landing-page-background{padding:var(--si-sys-sizing-spacing-y-90)}.landing-page-content{padding-block:var(--si-sys-sizing-spacing-y-90) var(--si-sys-sizing-spacing-y-90);padding-inline:var(--si-sys-sizing-spacing-y-90)}}@media(max-width:767.98px){.landing-page{flex-direction:column}.landing-page-custom-logo{transform:scale(.6);transform-origin:top left}.landing-page-content{inline-size:100%;flex-grow:1;padding:var(--si-sys-sizing-spacing-y-90)}}\n"], dependencies: [{ kind: "component", type: SiCopyrightNoticeComponent, selector: "si-copyright-notice", inputs: ["copyright"] }, { kind: "component", type: SiLanguageSwitcherComponent, selector: "si-language-switcher", inputs: ["translationKey", "languageSwitcherLabel", "availableLanguages"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "component", type: SiInlineNotificationComponent, selector: "si-inline-notification", inputs: ["severity", "heading", "message", "action", "translationParams", "embedded"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
152
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiLandingPageComponent, isStandalone: true, selector: "si-landing-page", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: true, transformFunction: null }, subheading: { classPropertyName: "subheading", publicName: "subheading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: true, transformFunction: null }, links: { classPropertyName: "links", publicName: "links", isSignal: true, isRequired: false, transformFunction: null }, backgroundImageUrl: { classPropertyName: "backgroundImageUrl", publicName: "backgroundImageUrl", isSignal: true, isRequired: false, transformFunction: null }, logoUrl: { classPropertyName: "logoUrl", publicName: "logoUrl", isSignal: true, isRequired: false, transformFunction: null }, translationKey: { classPropertyName: "translationKey", publicName: "translationKey", isSignal: true, isRequired: false, transformFunction: null }, availableLanguages: { classPropertyName: "availableLanguages", publicName: "availableLanguages", isSignal: true, isRequired: false, transformFunction: null }, announcement: { classPropertyName: "announcement", publicName: "announcement", isSignal: true, isRequired: false, transformFunction: null }, loginAlert: { classPropertyName: "loginAlert", publicName: "loginAlert", isSignal: true, isRequired: false, transformFunction: null }, liveDataWarning: { classPropertyName: "liveDataWarning", publicName: "liveDataWarning", isSignal: true, isRequired: false, transformFunction: null }, implicitLegalAcknowledge: { classPropertyName: "implicitLegalAcknowledge", publicName: "implicitLegalAcknowledge", isSignal: true, isRequired: false, transformFunction: null }, version: { classPropertyName: "version", publicName: "version", isSignal: true, isRequired: false, transformFunction: null }, copyrightDetails: { classPropertyName: "copyrightDetails", publicName: "copyrightDetails", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let announcement = this.announcement();\n@let availableLanguages = this.availableLanguages();\n@let loginAlert = this.loginAlert();\n@let implicitLegalAcknowledge = this.implicitLegalAcknowledge();\n@let liveDataWarning = this.liveDataWarning();\n@let isFullHeightSection = this.isFullHeightSection();\n\n@if (announcement) {\n <si-inline-notification\n class=\"rounded-0\"\n [severity]=\"announcement.severity\"\n [heading]=\"announcement.heading\"\n [message]=\"announcement.message\"\n [action]=\"announcement.action\"\n [translationParams]=\"announcement.translationParams\"\n />\n}\n<div class=\"landing-page\">\n <div\n class=\"landing-page-background d-none d-md-block\"\n [style.background-image]=\"'url(' + backgroundImageUrl() + ')'\"\n >\n </div>\n <div class=\"landing-page-content\">\n <div class=\"landing-page-content-inner\">\n @if (!isFullHeightSection) {\n <div class=\"d-flex justify-content-between align-items-center pb-9\">\n @if (!logoUrl()) {\n <span role=\"img\" class=\"landing-page-logo\"></span>\n } @else {\n <img\n class=\"landing-page-logo landing-page-custom-logo\"\n [src]=\"logoUrl()\"\n [alt]=\"heading() + '\\'s Background'\"\n />\n }\n @if (availableLanguages.length > 1) {\n <div class=\"landing-page-language-switcher\">\n <si-language-switcher\n [translationKey]=\"translationKey()\"\n [availableLanguages]=\"availableLanguages\"\n />\n </div>\n }\n </div>\n }\n <div class=\"landing-page-main\">\n @if (!isFullHeightSection) {\n @if (subheading()) {\n <div class=\"si-h2\">{{ subheading() | translate }}</div>\n }\n <h1 class=\"si-h1 my-2\">{{ heading() | translate }}</h1>\n <div class=\"position-relative\">\n <h2 class=\"mt-13 si-h2\" [class.invisible]=\"loginAlert\">{{ subtitle() | translate }}</h2>\n @if (loginAlert) {\n <si-inline-notification\n class=\"landing-page-alert w-100\"\n [severity]=\"loginAlert.severity || 'danger'\"\n [heading]=\"loginAlert.heading\"\n [message]=\"loginAlert.message\"\n [action]=\"loginAlert.action\"\n [translationParams]=\"loginAlert.translationParams\"\n />\n }\n </div>\n }\n <div class=\"landing-page-custom-content\">\n <ng-content />\n @if (!isFullHeightSection) {\n @if (implicitLegalAcknowledge) {\n @if (typeof implicitLegalAcknowledge === 'string') {\n <div class=\"text-secondary mt-8\" [innerHTML]=\"implicitLegalAcknowledge\"></div>\n } @else {\n <div class=\"text-secondary mt-8\">\n <ng-container [ngTemplateOutlet]=\"implicitLegalAcknowledge\" />\n </div>\n }\n }\n @if (liveDataWarning) {\n <div class=\"text-secondary mt-8\">\n <div class=\"si-h5\">{{ liveDataWarning.title | translate }}</div>\n <div class=\"si-body my-4\">{{ liveDataWarning.content | translate }}</div>\n </div>\n }\n }\n </div>\n </div>\n @if (!isFullHeightSection) {\n <footer>\n <div>\n <div class=\"d-flex justify-content-start flex-row flex-wrap mt-6\">\n @for (link of links(); track $index) {\n <span>\n <a siLinkDefaultTarget=\"_blank\" class=\"si-body me-6\" [siLink]=\"link\">\n {{ link.title | translate }}\n </a>\n </span>\n }\n </div>\n <div class=\"si-body-sm mt-4 mb-6 text-secondary d-flex flex-wrap\">\n @if (version()) {\n <span class=\"me-6\">{{ version() }}</span>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n </div>\n </footer>\n }\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;block-size:100%;padding-block-start:calc(var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px))}.landing-page{display:flex;flex-direction:row-reverse;flex-grow:1}.landing-page-background{background-size:cover;background-position:center;inline-size:60%}.landing-page-content{block-size:100vb;overflow-y:auto;inline-size:40%;background-color:var(--si-sys-color-background-0);padding-block:var(--si-sys-sizing-spacing-y-90) var(--si-sys-sizing-spacing-y-90);padding-inline:var(--si-sys-sizing-spacing-y-140)}.landing-page-content:has(si-explicit-legal-acknowledge,si-change-password){block-size:100%}.landing-page-content-inner{block-size:100%;min-block-size:min-content;display:flex;flex-direction:column;justify-content:space-between}.landing-page-main:has(si-explicit-legal-acknowledge,si-change-password){block-size:100%}.landing-page-logo{block-size:var(--landing-page-logo-height, var(--element-brand-logo-height));inline-size:var(--landing-page-logo-width, var(--element-brand-logo-width));content:var(--landing-page-logo, var(--element-brand-logo))/var(--element-brand-logo-text);box-sizing:content-box}.landing-page-custom-logo{block-size:var(--landing-page-logo-height);inline-size:var(--landing-page-logo-width, 180px);content:none}.landing-page-alert{position:absolute;inset-block-end:-20px}.landing-page-custom-content{margin-block:28px;margin-inline:0}.landing-page-custom-content:has(si-explicit-legal-acknowledge,si-change-password){margin-block:0;block-size:100%}.landing-page-links a{font-size:12px}footer{color:var(--si-sys-color-text-secondary)}@media(max-width:1199.98px){.landing-page-background{padding:var(--si-sys-sizing-spacing-y-130)}.landing-page-content{padding-block:var(--si-sys-sizing-spacing-y-90) var(--si-sys-sizing-spacing-y-90);padding-inline:var(--si-sys-sizing-spacing-y-130)}}@media(max-width:991.98px){.landing-page-background{padding:var(--si-sys-sizing-spacing-y-90)}.landing-page-content{padding-block:var(--si-sys-sizing-spacing-y-90) var(--si-sys-sizing-spacing-y-90);padding-inline:var(--si-sys-sizing-spacing-y-90)}}@media(max-width:767.98px){.landing-page{flex-direction:column}.landing-page-custom-logo{transform:scale(.6);transform-origin:top left}.landing-page-content{inline-size:100%;flex-grow:1;padding:var(--si-sys-sizing-spacing-y-90)}}\n"], dependencies: [{ kind: "component", type: SiCopyrightNoticeComponent, selector: "si-copyright-notice", inputs: ["copyright"] }, { kind: "component", type: SiLanguageSwitcherComponent, selector: "si-language-switcher", inputs: ["translationKey", "languageSwitcherLabel", "availableLanguages"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "component", type: SiInlineNotificationComponent, selector: "si-inline-notification", inputs: ["severity", "heading", "message", "action", "translationParams", "embedded"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
153
153
|
}
|
|
154
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiLandingPageComponent, decorators: [{
|
|
155
155
|
type: Component,
|
|
@@ -160,7 +160,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
160
160
|
SiInlineNotificationComponent,
|
|
161
161
|
SiTranslatePipe,
|
|
162
162
|
NgTemplateOutlet
|
|
163
|
-
], template: "@let announcement = this.announcement();\n@let availableLanguages = this.availableLanguages();\n@let loginAlert = this.loginAlert();\n@let implicitLegalAcknowledge = this.implicitLegalAcknowledge();\n@let liveDataWarning = this.liveDataWarning();\n@let isFullHeightSection = this.isFullHeightSection();\n\n@if (announcement) {\n <si-inline-notification\n class=\"rounded-0\"\n [severity]=\"announcement.severity\"\n [heading]=\"announcement.heading\"\n [message]=\"announcement.message\"\n [action]=\"announcement.action\"\n [translationParams]=\"announcement.translationParams\"\n />\n}\n<div class=\"landing-page\">\n <div\n class=\"landing-page-background d-none d-md-block\"\n [style.background-image]=\"'url(' + backgroundImageUrl() + ')'\"\n >\n </div>\n <div class=\"landing-page-content\">\n <div class=\"landing-page-content-inner\">\n @if (!isFullHeightSection) {\n <div class=\"d-flex justify-content-between align-items-center pb-9\">\n @if (!logoUrl()) {\n <span role=\"img\" class=\"landing-page-logo\"></span>\n } @else {\n <img\n class=\"landing-page-logo landing-page-custom-logo\"\n [src]=\"logoUrl()\"\n [alt]=\"heading() + '\\'s Background'\"\n />\n }\n @if (availableLanguages.length > 1) {\n <div class=\"landing-page-language-switcher\">\n <si-language-switcher\n [translationKey]=\"translationKey()\"\n [availableLanguages]=\"availableLanguages\"\n />\n </div>\n }\n </div>\n }\n <div class=\"landing-page-main\">\n @if (!isFullHeightSection) {\n @if (subheading()) {\n <div class=\"si-h2\">{{ subheading() | translate }}</div>\n }\n <h1 class=\"si-h1 my-2\">{{ heading() | translate }}</h1>\n <div class=\"position-relative\">\n <h2 class=\"mt-13 si-h2\" [class.invisible]=\"loginAlert\">{{ subtitle() | translate }}</h2>\n @if (loginAlert) {\n <si-inline-notification\n class=\"landing-page-alert w-100\"\n [severity]=\"loginAlert.severity || 'danger'\"\n [heading]=\"loginAlert.heading\"\n [message]=\"loginAlert.message\"\n [action]=\"loginAlert.action\"\n [translationParams]=\"loginAlert.translationParams\"\n />\n }\n </div>\n }\n <div class=\"landing-page-custom-content\">\n <ng-content />\n @if (!isFullHeightSection) {\n @if (implicitLegalAcknowledge) {\n @if (typeof implicitLegalAcknowledge === 'string') {\n <div class=\"text-secondary mt-8\" [innerHTML]=\"implicitLegalAcknowledge\"></div>\n } @else {\n <div class=\"text-secondary mt-8\">\n <ng-container [ngTemplateOutlet]=\"implicitLegalAcknowledge\" />\n </div>\n }\n }\n @if (liveDataWarning) {\n <div class=\"text-secondary mt-8\">\n <div class=\"si-h5\">{{ liveDataWarning.title | translate }}</div>\n <div class=\"si-body my-4\">{{ liveDataWarning.content | translate }}</div>\n </div>\n }\n }\n </div>\n </div>\n @if (!isFullHeightSection) {\n <footer>\n <div>\n <div class=\"d-flex justify-content-start flex-row flex-wrap mt-6\">\n @for (link of links(); track $index) {\n <span>\n <a siLinkDefaultTarget=\"_blank\" class=\"si-body me-6\" [siLink]=\"link\">\n {{ link.title | translate }}\n </a>\n </span>\n }\n </div>\n <div class=\"si-body-sm mt-4 mb-6 text-secondary d-flex flex-wrap\">\n @if (version()) {\n <span class=\"me-6\">{{ version() }}</span>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n </div>\n </footer>\n }\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;block-size:100%;padding-block-start:calc(var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px))}.landing-page{display:flex;flex-direction:row-reverse;flex-grow:1}.landing-page-background{background-size:cover;background-position:center;inline-size:60%}.landing-page-content{block-size:100vb;overflow-y:auto;inline-size:40%;background-color:var(--si-sys-background-0);padding-block:var(--si-sys-sizing-spacing-y-90) var(--si-sys-sizing-spacing-y-90);padding-inline:var(--si-sys-sizing-spacing-y-140)}.landing-page-content:has(si-explicit-legal-acknowledge,si-change-password){block-size:100%}.landing-page-content-inner{block-size:100%;min-block-size:min-content;display:flex;flex-direction:column;justify-content:space-between}.landing-page-main:has(si-explicit-legal-acknowledge,si-change-password){block-size:100%}.landing-page-logo{block-size:var(--landing-page-logo-height, var(--element-brand-logo-height));inline-size:var(--landing-page-logo-width, var(--element-brand-logo-width));content:var(--landing-page-logo, var(--element-brand-logo))/var(--element-brand-logo-text);box-sizing:content-box}.landing-page-custom-logo{block-size:var(--landing-page-logo-height);inline-size:var(--landing-page-logo-width, 180px);content:none}.landing-page-alert{position:absolute;inset-block-end:-20px}.landing-page-custom-content{margin-block:28px;margin-inline:0}.landing-page-custom-content:has(si-explicit-legal-acknowledge,si-change-password){margin-block:0;block-size:100%}.landing-page-links a{font-size:12px}footer{color:var(--si-sys-text-secondary)}@media(max-width:1199.98px){.landing-page-background{padding:var(--si-sys-sizing-spacing-y-130)}.landing-page-content{padding-block:var(--si-sys-sizing-spacing-y-90) var(--si-sys-sizing-spacing-y-90);padding-inline:var(--si-sys-sizing-spacing-y-130)}}@media(max-width:991.98px){.landing-page-background{padding:var(--si-sys-sizing-spacing-y-90)}.landing-page-content{padding-block:var(--si-sys-sizing-spacing-y-90) var(--si-sys-sizing-spacing-y-90);padding-inline:var(--si-sys-sizing-spacing-y-90)}}@media(max-width:767.98px){.landing-page{flex-direction:column}.landing-page-custom-logo{transform:scale(.6);transform-origin:top left}.landing-page-content{inline-size:100%;flex-grow:1;padding:var(--si-sys-sizing-spacing-y-90)}}\n"] }]
|
|
163
|
+
], template: "@let announcement = this.announcement();\n@let availableLanguages = this.availableLanguages();\n@let loginAlert = this.loginAlert();\n@let implicitLegalAcknowledge = this.implicitLegalAcknowledge();\n@let liveDataWarning = this.liveDataWarning();\n@let isFullHeightSection = this.isFullHeightSection();\n\n@if (announcement) {\n <si-inline-notification\n class=\"rounded-0\"\n [severity]=\"announcement.severity\"\n [heading]=\"announcement.heading\"\n [message]=\"announcement.message\"\n [action]=\"announcement.action\"\n [translationParams]=\"announcement.translationParams\"\n />\n}\n<div class=\"landing-page\">\n <div\n class=\"landing-page-background d-none d-md-block\"\n [style.background-image]=\"'url(' + backgroundImageUrl() + ')'\"\n >\n </div>\n <div class=\"landing-page-content\">\n <div class=\"landing-page-content-inner\">\n @if (!isFullHeightSection) {\n <div class=\"d-flex justify-content-between align-items-center pb-9\">\n @if (!logoUrl()) {\n <span role=\"img\" class=\"landing-page-logo\"></span>\n } @else {\n <img\n class=\"landing-page-logo landing-page-custom-logo\"\n [src]=\"logoUrl()\"\n [alt]=\"heading() + '\\'s Background'\"\n />\n }\n @if (availableLanguages.length > 1) {\n <div class=\"landing-page-language-switcher\">\n <si-language-switcher\n [translationKey]=\"translationKey()\"\n [availableLanguages]=\"availableLanguages\"\n />\n </div>\n }\n </div>\n }\n <div class=\"landing-page-main\">\n @if (!isFullHeightSection) {\n @if (subheading()) {\n <div class=\"si-h2\">{{ subheading() | translate }}</div>\n }\n <h1 class=\"si-h1 my-2\">{{ heading() | translate }}</h1>\n <div class=\"position-relative\">\n <h2 class=\"mt-13 si-h2\" [class.invisible]=\"loginAlert\">{{ subtitle() | translate }}</h2>\n @if (loginAlert) {\n <si-inline-notification\n class=\"landing-page-alert w-100\"\n [severity]=\"loginAlert.severity || 'danger'\"\n [heading]=\"loginAlert.heading\"\n [message]=\"loginAlert.message\"\n [action]=\"loginAlert.action\"\n [translationParams]=\"loginAlert.translationParams\"\n />\n }\n </div>\n }\n <div class=\"landing-page-custom-content\">\n <ng-content />\n @if (!isFullHeightSection) {\n @if (implicitLegalAcknowledge) {\n @if (typeof implicitLegalAcknowledge === 'string') {\n <div class=\"text-secondary mt-8\" [innerHTML]=\"implicitLegalAcknowledge\"></div>\n } @else {\n <div class=\"text-secondary mt-8\">\n <ng-container [ngTemplateOutlet]=\"implicitLegalAcknowledge\" />\n </div>\n }\n }\n @if (liveDataWarning) {\n <div class=\"text-secondary mt-8\">\n <div class=\"si-h5\">{{ liveDataWarning.title | translate }}</div>\n <div class=\"si-body my-4\">{{ liveDataWarning.content | translate }}</div>\n </div>\n }\n }\n </div>\n </div>\n @if (!isFullHeightSection) {\n <footer>\n <div>\n <div class=\"d-flex justify-content-start flex-row flex-wrap mt-6\">\n @for (link of links(); track $index) {\n <span>\n <a siLinkDefaultTarget=\"_blank\" class=\"si-body me-6\" [siLink]=\"link\">\n {{ link.title | translate }}\n </a>\n </span>\n }\n </div>\n <div class=\"si-body-sm mt-4 mb-6 text-secondary d-flex flex-wrap\">\n @if (version()) {\n <span class=\"me-6\">{{ version() }}</span>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n </div>\n </footer>\n }\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;block-size:100%;padding-block-start:calc(var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px))}.landing-page{display:flex;flex-direction:row-reverse;flex-grow:1}.landing-page-background{background-size:cover;background-position:center;inline-size:60%}.landing-page-content{block-size:100vb;overflow-y:auto;inline-size:40%;background-color:var(--si-sys-color-background-0);padding-block:var(--si-sys-sizing-spacing-y-90) var(--si-sys-sizing-spacing-y-90);padding-inline:var(--si-sys-sizing-spacing-y-140)}.landing-page-content:has(si-explicit-legal-acknowledge,si-change-password){block-size:100%}.landing-page-content-inner{block-size:100%;min-block-size:min-content;display:flex;flex-direction:column;justify-content:space-between}.landing-page-main:has(si-explicit-legal-acknowledge,si-change-password){block-size:100%}.landing-page-logo{block-size:var(--landing-page-logo-height, var(--element-brand-logo-height));inline-size:var(--landing-page-logo-width, var(--element-brand-logo-width));content:var(--landing-page-logo, var(--element-brand-logo))/var(--element-brand-logo-text);box-sizing:content-box}.landing-page-custom-logo{block-size:var(--landing-page-logo-height);inline-size:var(--landing-page-logo-width, 180px);content:none}.landing-page-alert{position:absolute;inset-block-end:-20px}.landing-page-custom-content{margin-block:28px;margin-inline:0}.landing-page-custom-content:has(si-explicit-legal-acknowledge,si-change-password){margin-block:0;block-size:100%}.landing-page-links a{font-size:12px}footer{color:var(--si-sys-color-text-secondary)}@media(max-width:1199.98px){.landing-page-background{padding:var(--si-sys-sizing-spacing-y-130)}.landing-page-content{padding-block:var(--si-sys-sizing-spacing-y-90) var(--si-sys-sizing-spacing-y-90);padding-inline:var(--si-sys-sizing-spacing-y-130)}}@media(max-width:991.98px){.landing-page-background{padding:var(--si-sys-sizing-spacing-y-90)}.landing-page-content{padding-block:var(--si-sys-sizing-spacing-y-90) var(--si-sys-sizing-spacing-y-90);padding-inline:var(--si-sys-sizing-spacing-y-90)}}@media(max-width:767.98px){.landing-page{flex-direction:column}.landing-page-custom-logo{transform:scale(.6);transform-origin:top left}.landing-page-content{inline-size:100%;flex-grow:1;padding:var(--si-sys-sizing-spacing-y-90)}}\n"] }]
|
|
164
164
|
}], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: true }] }], subheading: [{ type: i0.Input, args: [{ isSignal: true, alias: "subheading", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: true }] }], links: [{ type: i0.Input, args: [{ isSignal: true, alias: "links", required: false }] }], backgroundImageUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "backgroundImageUrl", required: false }] }], logoUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "logoUrl", required: false }] }], translationKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "translationKey", required: false }] }], availableLanguages: [{ type: i0.Input, args: [{ isSignal: true, alias: "availableLanguages", required: false }] }], announcement: [{ type: i0.Input, args: [{ isSignal: true, alias: "announcement", required: false }] }], loginAlert: [{ type: i0.Input, args: [{ isSignal: true, alias: "loginAlert", required: false }] }], liveDataWarning: [{ type: i0.Input, args: [{ isSignal: true, alias: "liveDataWarning", required: false }] }], implicitLegalAcknowledge: [{ type: i0.Input, args: [{ isSignal: true, alias: "implicitLegalAcknowledge", required: false }] }], version: [{ type: i0.Input, args: [{ isSignal: true, alias: "version", required: false }] }], copyrightDetails: [{ type: i0.Input, args: [{ isSignal: true, alias: "copyrightDetails", required: false }] }] } });
|
|
165
165
|
|
|
166
166
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-landing-page.mjs","sources":["../../../../projects/element-ng/landing-page/si-landing-page.component.ts","../../../../projects/element-ng/landing-page/si-landing-page.component.html","../../../../projects/element-ng/landing-page/si-landing-page.module.ts","../../../../projects/element-ng/landing-page/login-basic/si-login-basic.component.ts","../../../../projects/element-ng/landing-page/login-basic/si-login-basic.component.html","../../../../projects/element-ng/landing-page/login-single-sign-on/si-login-single-sign-on.component.ts","../../../../projects/element-ng/landing-page/login-single-sign-on/si-login-single-sign-on.component.html","../../../../projects/element-ng/landing-page/explicit-legal-acknowledge/si-explicit-legal-acknowledge.component.ts","../../../../projects/element-ng/landing-page/explicit-legal-acknowledge/si-explicit-legal-acknowledge.component.html","../../../../projects/element-ng/landing-page/change-password/si-change-password.component.ts","../../../../projects/element-ng/landing-page/change-password/si-change-password.component.html","../../../../projects/element-ng/landing-page/index.ts","../../../../projects/element-ng/landing-page/siemens-element-ng-landing-page.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Component, input, TemplateRef, signal } from '@angular/core';\nimport { CopyrightDetails, SiCopyrightNoticeComponent } from '@siemens/element-ng/copyright-notice';\nimport { SiInlineNotificationComponent } from '@siemens/element-ng/inline-notification';\nimport {\n IsoLanguageValue,\n SiLanguageSwitcherComponent\n} from '@siemens/element-ng/language-switcher';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { AlertConfig } from './alert-config.model';\nimport { LandingPageWarning } from './si-landing-page.model';\n\n/**\n * A comprehensive landing page component that provides a standardized layout for authentication flows.\n *\n * This component serves as a container for various authentication-related components and provides\n * a consistent layout with support for branding, internationalization, legal acknowledgments,\n * and various notification types. It includes slots for custom content and handles responsive\n * layout adjustments.\n *\n * The component supports:\n * - Custom branding and background images\n * - Multi-language support with language switcher\n * - Legal acknowledgments and terms display\n * - Alert and notification systems\n * - Copyright information display\n * - Responsive layout with full-height section option\n *\n * @example\n * ```html\n * <si-landing-page\n * [heading]=\"appTitle\"\n * [subtitle]=\"appDescription\"\n * [availableLanguages]=\"languages\"\n * [copyrightDetails]=\"copyright\"\n * [announcement]=\"announcementConfig\"\n * [loginAlert]=\"loginErrorConfig\">\n *\n * <si-login-basic\n * (login)=\"handleLogin($event)\"\n * (usernameValidation)=\"validateUsername($event)\">\n * </si-login-basic>\n\n * </si-landing-page>\n * ```\n */\n@Component({\n selector: 'si-landing-page',\n imports: [\n SiCopyrightNoticeComponent,\n SiLanguageSwitcherComponent,\n SiLinkDirective,\n SiInlineNotificationComponent,\n SiTranslatePipe,\n NgTemplateOutlet\n ],\n templateUrl: './si-landing-page.component.html',\n styleUrl: './si-landing-page.component.scss'\n})\nexport class SiLandingPageComponent {\n /**\n * Heading of the application.\n */\n readonly heading = input.required<TranslatableString>();\n /**\n * Secondary heading of the application.\n */\n readonly subheading = input<TranslatableString>();\n /**\n * Short description of the application.\n */\n readonly subtitle = input.required<TranslatableString>();\n /**\n * List of links (e.g. Corporate information)\n *\n * @defaultValue []\n */\n readonly links = input<Link[]>([]);\n\n /**\n * URL to custom background image\n *\n * @defaultValue './assets/images/landing-page-steel.webp'\n */\n readonly backgroundImageUrl = input('./assets/images/landing-page-steel.webp');\n\n /**\n * URL to custom brand image.\n *\n * @deprecated By default the logo provided in the theme will be used.\n * For a different logo use the respective CSS variables:\n * ```html\n * <si-landing-page style=\"--landing-page-logo: url('https://example.com'); --landing-page-logo-width: 100px; --landing-page-logo-height: 100px\" />\n * ```\n */\n readonly logoUrl = input<string>();\n\n /**\n * Input of si-language-switcher: Key for translation.\n * If your languages are already translated, you may display them without any\n * manipulation by passing in an empty string.\n *\n * @defaultValue 'LANGUAGE'\n */\n readonly translationKey = input('LANGUAGE');\n /**\n * Input of si-language-switcher: List of all available languages in this\n * application.\n *\n * @defaultValue []\n */\n readonly availableLanguages = input<string[] | IsoLanguageValue[]>([]);\n\n /**\n *\n * Config to enable/disable general alerts on landing page\n */\n readonly announcement = input<AlertConfig>();\n\n /**\n *\n * Config to enable/disable login related error/alerts\n */\n readonly loginAlert = input<AlertConfig>();\n\n /**\n * Warning text for Live Data. Can be shown, if there is no legal artifact which needs immediate user attention.\n */\n readonly liveDataWarning = input<LandingPageWarning>();\n /**\n * Text for some legal artifacts (e.g. Terms of Use) that needs more attention before the login.\n */\n readonly implicitLegalAcknowledge = input<string | TemplateRef<unknown>>();\n /**\n * Version of the application.\n */\n readonly version = input<string>();\n\n /**\n * Copyright information to be displayed. Alternatively, you can use the {@link SI_COPYRIGHT_DETAILS} global inject.\n */\n readonly copyrightDetails = input<CopyrightDetails>();\n /**\n * Option to display the landing page content in full height.\n *\n * @defaultValue false\n */\n readonly isFullHeightSection = signal(false);\n}\n","@let announcement = this.announcement();\n@let availableLanguages = this.availableLanguages();\n@let loginAlert = this.loginAlert();\n@let implicitLegalAcknowledge = this.implicitLegalAcknowledge();\n@let liveDataWarning = this.liveDataWarning();\n@let isFullHeightSection = this.isFullHeightSection();\n\n@if (announcement) {\n <si-inline-notification\n class=\"rounded-0\"\n [severity]=\"announcement.severity\"\n [heading]=\"announcement.heading\"\n [message]=\"announcement.message\"\n [action]=\"announcement.action\"\n [translationParams]=\"announcement.translationParams\"\n />\n}\n<div class=\"landing-page\">\n <div\n class=\"landing-page-background d-none d-md-block\"\n [style.background-image]=\"'url(' + backgroundImageUrl() + ')'\"\n >\n </div>\n <div class=\"landing-page-content\">\n <div class=\"landing-page-content-inner\">\n @if (!isFullHeightSection) {\n <div class=\"d-flex justify-content-between align-items-center pb-9\">\n @if (!logoUrl()) {\n <span role=\"img\" class=\"landing-page-logo\"></span>\n } @else {\n <img\n class=\"landing-page-logo landing-page-custom-logo\"\n [src]=\"logoUrl()\"\n [alt]=\"heading() + '\\'s Background'\"\n />\n }\n @if (availableLanguages.length > 1) {\n <div class=\"landing-page-language-switcher\">\n <si-language-switcher\n [translationKey]=\"translationKey()\"\n [availableLanguages]=\"availableLanguages\"\n />\n </div>\n }\n </div>\n }\n <div class=\"landing-page-main\">\n @if (!isFullHeightSection) {\n @if (subheading()) {\n <div class=\"si-h2\">{{ subheading() | translate }}</div>\n }\n <h1 class=\"si-h1 my-2\">{{ heading() | translate }}</h1>\n <div class=\"position-relative\">\n <h2 class=\"mt-13 si-h2\" [class.invisible]=\"loginAlert\">{{ subtitle() | translate }}</h2>\n @if (loginAlert) {\n <si-inline-notification\n class=\"landing-page-alert w-100\"\n [severity]=\"loginAlert.severity || 'danger'\"\n [heading]=\"loginAlert.heading\"\n [message]=\"loginAlert.message\"\n [action]=\"loginAlert.action\"\n [translationParams]=\"loginAlert.translationParams\"\n />\n }\n </div>\n }\n <div class=\"landing-page-custom-content\">\n <ng-content />\n @if (!isFullHeightSection) {\n @if (implicitLegalAcknowledge) {\n @if (typeof implicitLegalAcknowledge === 'string') {\n <div class=\"text-secondary mt-8\" [innerHTML]=\"implicitLegalAcknowledge\"></div>\n } @else {\n <div class=\"text-secondary mt-8\">\n <ng-container [ngTemplateOutlet]=\"implicitLegalAcknowledge\" />\n </div>\n }\n }\n @if (liveDataWarning) {\n <div class=\"text-secondary mt-8\">\n <div class=\"si-h5\">{{ liveDataWarning.title | translate }}</div>\n <div class=\"si-body my-4\">{{ liveDataWarning.content | translate }}</div>\n </div>\n }\n }\n </div>\n </div>\n @if (!isFullHeightSection) {\n <footer>\n <div>\n <div class=\"d-flex justify-content-start flex-row flex-wrap mt-6\">\n @for (link of links(); track $index) {\n <span>\n <a siLinkDefaultTarget=\"_blank\" class=\"si-body me-6\" [siLink]=\"link\">\n {{ link.title | translate }}\n </a>\n </span>\n }\n </div>\n <div class=\"si-body-sm mt-4 mb-6 text-secondary d-flex flex-wrap\">\n @if (version()) {\n <span class=\"me-6\">{{ version() }}</span>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n </div>\n </footer>\n }\n </div>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLandingPageComponent } from './si-landing-page.component';\n\n@NgModule({\n imports: [SiLandingPageComponent],\n exports: [SiLandingPageComponent]\n})\nexport class SiLandingPageModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n OnInit,\n output,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiLoadingButtonComponent } from '@siemens/element-ng/loading-spinner';\nimport { SiPasswordToggleComponent } from '@siemens/element-ng/password-toggle';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { UsernamePassword, UsernameValidationPayload } from '../si-landing-page.model';\n\n/**\n * A basic login component that supports both single-step and two-step authentication flows.\n *\n * This component provides a standard login form with username and password fields.\n * It can be configured to work in two-step mode where username validation happens first,\n * followed by password entry.\n *\n * @example\n * ```html\n * <si-login-basic\n * [forgotPasswordLink]=\"forgotPasswordLink\"\n * [registerNowLink]=\"registerNowLink\"\n * [twoStep]=\"true\"\n * [loading]=\"isLoading\"\n * (login)=\"handleLogin($event)\"\n * (usernameValidation)=\"handleUsernameValidation($event)\">\n * </si-login-basic>\n * ```\n */\n@Component({\n selector: 'si-login-basic',\n imports: [\n ReactiveFormsModule,\n SiTranslatePipe,\n SiLinkDirective,\n SiPasswordToggleComponent,\n SiLoadingButtonComponent\n ],\n templateUrl: './si-login-basic.component.html',\n styleUrl: './si-login-basic.component.scss',\n host: {\n 'animate.enter': 'component-enter'\n }\n})\nexport class SiLoginBasicComponent implements OnInit {\n private static idCounter = 0;\n /**\n * Label for username input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.USERNAME:Username`)\n * ```\n */\n readonly usernameLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.USERNAME:Username`));\n /**\n * Label for password input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.PASSWORD:Password`)\n * ```\n */\n readonly passwordLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.PASSWORD:Password`));\n /**\n * Config for Forgot Password link.\n * If `title` is omitted, a default translated label is used.\n */\n readonly forgotPasswordLink = input<Link>();\n /**\n * Config for Register Now link.\n * If `title` is omitted, a default translated label is used.\n */\n readonly registerNowLink = input<Link>();\n /**\n * Label for login button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.LOGIN:Log in`)\n * ```\n */\n readonly loginButtonLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.LOGIN:Log in`));\n /**\n * Disables the login button.\n *\n * @defaultValue false\n */\n readonly disableLogin = input(false);\n /**\n * Enables the two-step login flow.\n *\n * @defaultValue false\n */\n readonly twoStep = input(false, { transform: booleanAttribute });\n\n /**\n * Indicates whether the login button should show a loading state.\n *\n * @defaultValue false\n */\n readonly loading = input(false);\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.BACK:Back`)\n * ```\n */\n readonly backButtonLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.BACK:Back`));\n /**\n * Description of next button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.NEXT:Next`)\n * ```\n */\n readonly nextButtonLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.NEXT:Next`));\n /**\n * Emits username when user clicks on next button.\n */\n readonly usernameValidation = output<UsernameValidationPayload>();\n /**\n * Emits username and password on value change.\n */\n readonly valueChanged = output<UsernamePassword>();\n /**\n * Emits username and password on login event.\n */\n readonly login = output<UsernamePassword>();\n\n private destroyRef = inject(DestroyRef);\n protected readonly secondStepVisible = signal(false);\n protected readonly loadingNext = signal(false);\n\n private readonly defaultForgotPasswordTitle = t(\n () => $localize`:@@SI_LOGIN_BASIC.FORGOT_PASSWORD:Forgot password`\n );\n private readonly defaultRegisterNowTitle = t(\n () => $localize`:@@SI_LOGIN_BASIC.REGISTER_NOW:Register now`\n );\n\n protected readonly effectiveForgotPasswordLink = computed(() => {\n const link = this.forgotPasswordLink();\n return !!link && link.title ? link : { ...link, title: this.defaultForgotPasswordTitle };\n });\n\n protected readonly effectiveRegisterNowLink = computed(() => {\n const link = this.registerNowLink();\n return !!link && link.title ? link : { ...link, title: this.defaultRegisterNowTitle };\n });\n\n private readonly index = SiLoginBasicComponent.idCounter++;\n protected usernameId = `__si-login-basic-username-${this.index}`;\n protected passwordId = `__si-login-basic-password-${this.index}`;\n\n protected loginCredentials = new FormGroup({\n username: new FormControl('', Validators.required),\n password: new FormControl('', Validators.required)\n });\n\n ngOnInit(): void {\n this.loginCredentials.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.handleValueChanges();\n });\n\n this.loginCredentials.controls.username.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.secondStepVisible() && this.goBack());\n }\n\n protected submit(): void {\n if (this.twoStep() && !this.secondStepVisible()) {\n this.validateUsername();\n return;\n }\n this.login.emit(this.getLoginFormValues());\n }\n\n protected handleValueChanges(): void {\n this.valueChanged.emit(this.getLoginFormValues());\n }\n\n protected validateUsername(): void {\n if (this.loginCredentials.controls.username.valid) {\n this.loadingNext.set(true);\n }\n const activateArgs = {\n ...this.getLoginFormValues(),\n validate: (isValid: boolean): void => {\n if (isValid) {\n this.nextStep();\n } else {\n this.loadingNext.set(false);\n this.loginCredentials.controls.username.setErrors({ invalid: true });\n }\n }\n };\n this.usernameValidation.emit(activateArgs);\n }\n\n private getLoginFormValues(): UsernamePassword {\n const { username: username, password } = this.loginCredentials.value;\n return { username: username, password };\n }\n\n protected goBack(): void {\n this.secondStepVisible.set(false);\n this.loginCredentials.controls.password.reset();\n }\n\n private nextStep(): void {\n if (this.twoStep() && !this.secondStepVisible()) {\n this.loadingNext.set(false);\n this.secondStepVisible.set(true);\n }\n }\n}\n","@let forgotPasswordLink = this.effectiveForgotPasswordLink();\n@let registerNowLink = this.effectiveRegisterNowLink();\n@let secondStepVisible = this.secondStepVisible();\n\n<form #loginForm [formGroup]=\"loginCredentials\" (ngSubmit)=\"submit()\">\n <div class=\"my-4\">\n <label class=\"form-label\" [for]=\"usernameId\">{{ usernameLabel() | translate }}</label>\n <input type=\"email\" class=\"form-control\" formControlName=\"username\" [id]=\"usernameId\" />\n </div>\n <div class=\"login-basic-second-step--container\" [class.active]=\"!twoStep() || secondStepVisible\">\n <div class=\"login-basic-second-step--content\">\n <div class=\"mb-4\">\n <label class=\"form-label\" [for]=\"passwordId\">{{ passwordLabel() | translate }}</label>\n <si-password-toggle #toggle>\n <input\n class=\"form-control\"\n formControlName=\"password\"\n [id]=\"passwordId\"\n [type]=\"toggle.inputType\"\n />\n </si-password-toggle>\n </div>\n @if (forgotPasswordLink) {\n <a class=\"si-h5 mb-4\" [siLink]=\"forgotPasswordLink\">{{\n forgotPasswordLink.title | translate\n }}</a>\n }\n <div class=\"d-flex align-items-center gap-6 mt-8\">\n @if (twoStep()) {\n <button type=\"button\" class=\"btn btn-secondary w-100\" (click)=\"goBack()\">\n {{ backButtonLabel() | translate }}\n </button>\n }\n <si-loading-button\n type=\"submit\"\n class=\"w-100\"\n buttonClass=\"btn btn-primary\"\n [disabled]=\"disableLogin()\"\n [loading]=\"loading()\"\n >\n {{ loginButtonLabel() | translate }}\n </si-loading-button>\n </div>\n </div>\n </div>\n @if (twoStep()) {\n <div\n class=\"login-basic-next-button--container\"\n [attr.aria-hidden]=\"secondStepVisible\"\n [class.active]=\"!secondStepVisible\"\n >\n <si-loading-button\n class=\"login-basic-next-button w-100\"\n buttonClass=\"btn btn-primary\"\n [loading]=\"loadingNext()\"\n (click)=\"validateUsername()\"\n >\n {{ nextButtonLabel() | translate }}\n </si-loading-button>\n </div>\n }\n</form>\n@if (registerNowLink) {\n <div class=\"si-body mt-8\">\n <a class=\"si-h5\" [siLink]=\"registerNowLink\">{{ registerNowLink.title | translate }}</a>\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input, output } from '@angular/core';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\n/**\n * A single sign-on (SSO) login component that provides a button for SSO authentication.\n *\n * This component renders a simple button that users can click to initiate\n * single sign-on authentication flow.\n *\n * @example\n * ```html\n * <si-login-single-sign-on\n * [ssoButtonLabel]=\"customLabel\"\n * [disableSso]=\"isLoading\"\n * (ssoEvent)=\"handleSsoLogin()\">\n * </si-login-single-sign-on>\n * ```\n */\n@Component({\n selector: 'si-login-single-sign-on',\n imports: [SiTranslatePipe],\n templateUrl: './si-login-single-sign-on.component.html'\n})\nexport class SiLoginSingleSignOnComponent {\n /**\n * Label for login button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP:Login / Sign un`)\n * ```\n */\n readonly ssoButtonLabel = input(\n t(() => $localize`:@@SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP:Login / Sign un`)\n );\n /**\n * Disables the sso button.\n *\n * @defaultValue false\n */\n readonly disableSso = input(false);\n /**\n * Emits username and password on login event.\n */\n readonly ssoEvent = output<void>();\n\n protected ssoClick(): void {\n this.ssoEvent.emit();\n }\n}\n","<button\n type=\"button\"\n class=\"btn btn-primary mt-4 w-100\"\n [disabled]=\"disableSso()\"\n (click)=\"ssoClick()\"\n>\n {{ ssoButtonLabel() | translate }}\n</button>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, inject, input, OnInit, output, OnDestroy } from '@angular/core';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiLandingPageComponent } from '../si-landing-page.component';\n\n/**\n * A component for displaying legal agreements that require explicit user acknowledgment.\n *\n * This component provides a standardized interface for presenting legal documents,\n * terms of service, privacy policies, or other agreements that users must\n * explicitly accept before proceeding.\n *\n * @example\n * ```html\n * <si-explicit-legal-acknowledge\n * [heading]=\"agreementTitle\"\n * [subheading]=\"agreementDescription\"\n * [disableAcceptance]=\"isProcessing\"\n * (accept)=\"handleAcceptance()\"\n * (back)=\"handleBack()\">\n * <div>\n * <h3>Terms of Service</h3>\n * <p>Please read and accept our terms before continuing.</p>\n * <ul>\n * <li>Term 1: You agree to ...</li>\n * <li>Term 2: You acknowledge ...</li>\n * </ul>\n * </div>\n * </si-explicit-legal-acknowledge>\n * ```\n */\n@Component({\n selector: 'si-explicit-legal-acknowledge',\n imports: [SiTranslatePipe],\n templateUrl: './si-explicit-legal-acknowledge.component.html',\n styleUrl: './si-explicit-legal-acknowledge.component.scss'\n})\nexport class SiExplicitLegalAcknowledgeComponent implements OnInit, OnDestroy {\n /**\n * Heading of the agreement.\n */\n readonly heading = input.required<TranslatableString>();\n /**\n * Short description of the agreement.\n */\n readonly subheading = input.required<TranslatableString>();\n /**\n * Label for accept button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT:Accept`)\n * ```\n */\n readonly acceptButtonLabel = input(\n t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT:Accept`)\n );\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK:Back`)\n * ```\n */\n readonly backButtonLabel = input(t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK:Back`));\n /**\n * Disables the acceptance button.\n *\n * @defaultValue false\n */\n readonly disableAcceptance = input(false);\n /**\n * Emits end user license agreement on acceptance event.\n */\n readonly accept = output<void>();\n /**\n * Emits on back click.\n */\n readonly back = output<void>();\n /**\n * Reference to the landing page parent component.\n */\n protected landingPage = inject(SiLandingPageComponent, { skipSelf: true, optional: true });\n\n protected handleBack(): void {\n this.back.emit();\n }\n\n protected handleAccept(): void {\n this.accept.emit();\n }\n\n ngOnInit(): void {\n this.landingPage?.isFullHeightSection.set(true);\n }\n\n ngOnDestroy(): void {\n this.landingPage?.isFullHeightSection.set(false);\n }\n}\n","<div class=\"d-flex flex-column py-8 h-100\">\n <h2 class=\"si-h2 mb-4\">{{ heading() | translate }}</h2>\n <div class=\"si-body mb-6\">{{ subheading() | translate }}</div>\n\n <div class=\"card card-outline flex-grow-1\">\n <div tabindex=\"0\" class=\"card-body si-body-paragraph text-secondary overflow-auto\">\n <ng-content />\n </div>\n </div>\n <div class=\"d-flex align-items-center gap-6 mt-6\">\n <button type=\"button\" class=\"btn btn-secondary w-100\" (click)=\"handleBack()\">\n {{ backButtonLabel() | translate }}\n </button>\n <button\n type=\"button\"\n class=\"btn btn-primary w-100\"\n [disabled]=\"disableAcceptance()\"\n (click)=\"handleAccept()\"\n >\n {{ acceptButtonLabel() | translate }}\n </button>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n input,\n OnInit,\n output,\n TemplateRef,\n OnDestroy,\n inject,\n DestroyRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { SiInlineNotificationComponent } from '@siemens/element-ng/inline-notification';\nimport {\n PasswordPolicy,\n SiPasswordStrengthComponent,\n SiPasswordStrengthDirective\n} from '@siemens/element-ng/password-strength';\nimport { SiPasswordToggleComponent } from '@siemens/element-ng/password-toggle';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { AlertConfig } from '../alert-config.model';\nimport { SiLandingPageComponent } from '../si-landing-page.component';\nimport { ChangePassword } from '../si-landing-page.model';\n\n/**\n * A component for changing user passwords with strength validation and policy enforcement.\n *\n * This component provides a form for users to change their password, including\n * password strength indicators, policy validation, and confirmation fields.\n * It supports custom password policies and displays inline notifications for alerts.\n *\n * @example\n * ```html\n * <si-change-password\n * [passwordStrength]=\"passwordPolicy\"\n * [passwordPolicyContent]=\"policyTemplate\"\n * [changePasswordAlert]=\"alertConfig\"\n * (changePasswordRequested)=\"handlePasswordChange($event)\"\n * (back)=\"handleBack()\">\n * </si-change-password>\n * ```\n */\n@Component({\n selector: 'si-change-password',\n imports: [\n ReactiveFormsModule,\n SiTranslatePipe,\n SiPasswordToggleComponent,\n NgTemplateOutlet,\n SiInlineNotificationComponent,\n SiPasswordStrengthComponent,\n SiPasswordStrengthDirective\n ],\n templateUrl: './si-change-password.component.html'\n})\nexport class SiChangePasswordComponent implements OnInit, OnDestroy {\n private static idCounter = 0;\n /**\n * Change password heading.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE_PASSWORD:Change password`)\n * ```\n */\n readonly heading = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE_PASSWORD:Change password`)\n );\n /**\n * Short description of the action to perform.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD:Default password must be changed`)\n * ```\n */\n readonly subheading = input(\n t(\n () =>\n $localize`:@@SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD:Default password must be changed`\n )\n );\n /**\n * Label for new password input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.NEW_PASSWORD:New password`)\n * ```\n */\n readonly newPasswordLabel = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.NEW_PASSWORD:New password`)\n );\n /**\n * Label for confirm password input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CONFIRM_PASSWORD:Confirm password`)\n * ```\n */\n readonly confirmPasswordLabel = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.CONFIRM_PASSWORD:Confirm password`)\n );\n /**\n * Label for change password button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE:Change`)\n * ```\n */\n readonly changeButtonLabel = input(t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE:Change`));\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.BACK:Back`)\n * ```\n */\n readonly backButtonLabel = input(t(() => $localize`:@@SI_CHANGE_PASSWORD.BACK:Back`));\n /**\n * Disables the change password button.\n *\n * @defaultValue false\n */\n readonly disableChange = input(false);\n /**\n * Title of the password policy.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.PASSWORD_POLICY:Password policy`)\n * ```\n */\n readonly passwordPolicyTitle = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.PASSWORD_POLICY:Password policy`)\n );\n /**\n * Description of the password policy requirements.\n */\n readonly passwordPolicyContent = input.required<string | TemplateRef<unknown>>();\n /**\n * Description of the password policy requirements.\n */\n readonly passwordStrength = input.required<PasswordPolicy>();\n /**\n * Config to enable/disable password related error/alerts.\n */\n readonly changePasswordAlert = input<AlertConfig>();\n /**\n * Emits password on value change.\n */\n readonly valueChanged = output<ChangePassword>();\n /**\n * Emits password on change event.\n */\n readonly changePasswordRequested = output<ChangePassword>();\n /**\n * The number indicating the number of rules which still can be met. (`-2` --\\> 2 rules are\n * still unmet, `0` --\\> all met)\n */\n readonly passwordStrengthChanged = output<number | void>();\n /**\n * Emits on back click.\n */\n readonly back = output<void>();\n /**\n * Reference to the landing page parent component.\n */\n protected landingPage = inject(SiLandingPageComponent, { skipSelf: true, optional: true });\n\n private readonly index = SiChangePasswordComponent.idCounter++;\n protected newPasswordId = `__si-change-password-new-password-${this.index}`;\n protected confirmPasswordId = `__si-change-password-confirm-password-${this.index}`;\n\n protected changePasswordForm = new FormGroup({\n newPassword: new FormControl(''),\n confirmPassword: new FormControl('')\n });\n protected passwordPolicyContentTemplate: TemplateRef<any> | null = null;\n\n private destroyRef = inject(DestroyRef);\n\n ngOnInit(): void {\n this.landingPage?.isFullHeightSection.set(true);\n const passwordPolicy = this.passwordPolicyContent();\n if (passwordPolicy instanceof TemplateRef) {\n this.passwordPolicyContentTemplate = passwordPolicy;\n }\n this.changePasswordForm.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.handleValueChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.landingPage?.isFullHeightSection.set(false);\n }\n\n protected submit(): void {\n this.changePasswordRequested.emit(this.getPasswordFormValues());\n }\n\n protected handleValueChanges(): void {\n this.valueChanged.emit(this.getPasswordFormValues());\n }\n\n protected handlePasswordStrengthChanged(data: number | void): void {\n this.passwordStrengthChanged.emit(data);\n }\n\n private getPasswordFormValues(): ChangePassword {\n const { newPassword: newPassword, confirmPassword } = this.changePasswordForm.value;\n return { newPassword: newPassword, confirmPassword };\n }\n\n protected handleBackClick(): void {\n this.back.emit();\n this.changePasswordForm.reset();\n }\n}\n","@let changePasswordAlert = this.changePasswordAlert();\n@let passwordPolicyContent = this.passwordPolicyContent();\n\n<div class=\"d-flex flex-column justify-content-center py-8 h-100\">\n <div class=\"position-relative\">\n <h2 class=\"si-h2\" [class.invisible]=\"changePasswordAlert\">{{ heading() | translate }}</h2>\n <div class=\"si-body mb-4\" [class.invisible]=\"changePasswordAlert\">{{\n subheading() | translate\n }}</div>\n @if (changePasswordAlert) {\n <si-inline-notification\n class=\"position-absolute bottom-0 w-100\"\n [severity]=\"changePasswordAlert.severity || 'danger'\"\n [heading]=\"changePasswordAlert.heading\"\n [message]=\"changePasswordAlert.message\"\n />\n }\n </div>\n <form [formGroup]=\"changePasswordForm\" (ngSubmit)=\"submit()\">\n <div class=\"my-4\">\n <label class=\"form-label\" [for]=\"newPasswordId\">{{ newPasswordLabel() | translate }}</label>\n <si-password-strength>\n <input\n type=\"password\"\n class=\"form-control\"\n formControlName=\"newPassword\"\n [id]=\"newPasswordId\"\n [siPasswordStrength]=\"passwordStrength()\"\n (passwordStrengthChanged)=\"handlePasswordStrengthChanged($event)\"\n />\n </si-password-strength>\n </div>\n <div class=\"mb-4\">\n <label class=\"form-label\" [for]=\"confirmPasswordId\">{{\n confirmPasswordLabel() | translate\n }}</label>\n <si-password-toggle #toggleConfirmPassword>\n <input\n class=\"form-control\"\n formControlName=\"confirmPassword\"\n [id]=\"confirmPasswordId\"\n [type]=\"toggleConfirmPassword.inputType\"\n />\n </si-password-toggle>\n </div>\n <div class=\"d-flex align-items-center gap-6 mt-6\">\n <button type=\"button\" class=\"btn btn-secondary w-100 back-button\" (click)=\"handleBackClick()\">\n {{ backButtonLabel() | translate }}\n </button>\n <button type=\"submit\" class=\"btn btn-primary w-100\" [disabled]=\"disableChange()\">\n {{ changeButtonLabel() | translate }}\n </button>\n </div>\n </form>\n <div class=\"text-secondary mt-8\">\n <div class=\"si-h5\">{{ passwordPolicyTitle() | translate }}</div>\n @if (!passwordPolicyContentTemplate) {\n <div class=\"my-4\" [innerHTML]=\"passwordPolicyContent\"></div>\n } @else {\n <div class=\"my-4\">\n <ng-container [ngTemplateOutlet]=\"passwordPolicyContentTemplate\" />\n </div>\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-landing-page.module';\nexport * from './si-landing-page.component';\nexport * from './login-basic/si-login-basic.component';\nexport * from './login-single-sign-on/si-login-single-sign-on.component';\nexport * from './explicit-legal-acknowledge/si-explicit-legal-acknowledge.component';\nexport * from './change-password/si-change-password.component';\nexport * from './alert-config.model';\nexport * from './si-landing-page.model';\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-landing-page.mjs","sources":["../../../../projects/element-ng/landing-page/si-landing-page.component.ts","../../../../projects/element-ng/landing-page/si-landing-page.component.html","../../../../projects/element-ng/landing-page/si-landing-page.module.ts","../../../../projects/element-ng/landing-page/login-basic/si-login-basic.component.ts","../../../../projects/element-ng/landing-page/login-basic/si-login-basic.component.html","../../../../projects/element-ng/landing-page/login-single-sign-on/si-login-single-sign-on.component.ts","../../../../projects/element-ng/landing-page/login-single-sign-on/si-login-single-sign-on.component.html","../../../../projects/element-ng/landing-page/explicit-legal-acknowledge/si-explicit-legal-acknowledge.component.ts","../../../../projects/element-ng/landing-page/explicit-legal-acknowledge/si-explicit-legal-acknowledge.component.html","../../../../projects/element-ng/landing-page/change-password/si-change-password.component.ts","../../../../projects/element-ng/landing-page/change-password/si-change-password.component.html","../../../../projects/element-ng/landing-page/index.ts","../../../../projects/element-ng/landing-page/siemens-element-ng-landing-page.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Component, input, TemplateRef, signal } from '@angular/core';\nimport { CopyrightDetails, SiCopyrightNoticeComponent } from '@siemens/element-ng/copyright-notice';\nimport { SiInlineNotificationComponent } from '@siemens/element-ng/inline-notification';\nimport {\n IsoLanguageValue,\n SiLanguageSwitcherComponent\n} from '@siemens/element-ng/language-switcher';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { AlertConfig } from './alert-config.model';\nimport { LandingPageWarning } from './si-landing-page.model';\n\n/**\n * A comprehensive landing page component that provides a standardized layout for authentication flows.\n *\n * This component serves as a container for various authentication-related components and provides\n * a consistent layout with support for branding, internationalization, legal acknowledgments,\n * and various notification types. It includes slots for custom content and handles responsive\n * layout adjustments.\n *\n * The component supports:\n * - Custom branding and background images\n * - Multi-language support with language switcher\n * - Legal acknowledgments and terms display\n * - Alert and notification systems\n * - Copyright information display\n * - Responsive layout with full-height section option\n *\n * @example\n * ```html\n * <si-landing-page\n * [heading]=\"appTitle\"\n * [subtitle]=\"appDescription\"\n * [availableLanguages]=\"languages\"\n * [copyrightDetails]=\"copyright\"\n * [announcement]=\"announcementConfig\"\n * [loginAlert]=\"loginErrorConfig\">\n *\n * <si-login-basic\n * (login)=\"handleLogin($event)\"\n * (usernameValidation)=\"validateUsername($event)\">\n * </si-login-basic>\n\n * </si-landing-page>\n * ```\n */\n@Component({\n selector: 'si-landing-page',\n imports: [\n SiCopyrightNoticeComponent,\n SiLanguageSwitcherComponent,\n SiLinkDirective,\n SiInlineNotificationComponent,\n SiTranslatePipe,\n NgTemplateOutlet\n ],\n templateUrl: './si-landing-page.component.html',\n styleUrl: './si-landing-page.component.scss'\n})\nexport class SiLandingPageComponent {\n /**\n * Heading of the application.\n */\n readonly heading = input.required<TranslatableString>();\n /**\n * Secondary heading of the application.\n */\n readonly subheading = input<TranslatableString>();\n /**\n * Short description of the application.\n */\n readonly subtitle = input.required<TranslatableString>();\n /**\n * List of links (e.g. Corporate information)\n *\n * @defaultValue []\n */\n readonly links = input<Link[]>([]);\n\n /**\n * URL to custom background image\n *\n * @defaultValue './assets/images/landing-page-steel.webp'\n */\n readonly backgroundImageUrl = input('./assets/images/landing-page-steel.webp');\n\n /**\n * URL to custom brand image.\n *\n * @deprecated By default the logo provided in the theme will be used.\n * For a different logo use the respective CSS variables:\n * ```html\n * <si-landing-page style=\"--landing-page-logo: url('https://example.com'); --landing-page-logo-width: 100px; --landing-page-logo-height: 100px\" />\n * ```\n */\n readonly logoUrl = input<string>();\n\n /**\n * Input of si-language-switcher: Key for translation.\n * If your languages are already translated, you may display them without any\n * manipulation by passing in an empty string.\n *\n * @defaultValue 'LANGUAGE'\n */\n readonly translationKey = input('LANGUAGE');\n /**\n * Input of si-language-switcher: List of all available languages in this\n * application.\n *\n * @defaultValue []\n */\n readonly availableLanguages = input<string[] | IsoLanguageValue[]>([]);\n\n /**\n *\n * Config to enable/disable general alerts on landing page\n */\n readonly announcement = input<AlertConfig>();\n\n /**\n *\n * Config to enable/disable login related error/alerts\n */\n readonly loginAlert = input<AlertConfig>();\n\n /**\n * Warning text for Live Data. Can be shown, if there is no legal artifact which needs immediate user attention.\n */\n readonly liveDataWarning = input<LandingPageWarning>();\n /**\n * Text for some legal artifacts (e.g. Terms of Use) that needs more attention before the login.\n */\n readonly implicitLegalAcknowledge = input<string | TemplateRef<unknown>>();\n /**\n * Version of the application.\n */\n readonly version = input<string>();\n\n /**\n * Copyright information to be displayed. Alternatively, you can use the {@link SI_COPYRIGHT_DETAILS} global inject.\n */\n readonly copyrightDetails = input<CopyrightDetails>();\n /**\n * Option to display the landing page content in full height.\n *\n * @defaultValue false\n */\n readonly isFullHeightSection = signal(false);\n}\n","@let announcement = this.announcement();\n@let availableLanguages = this.availableLanguages();\n@let loginAlert = this.loginAlert();\n@let implicitLegalAcknowledge = this.implicitLegalAcknowledge();\n@let liveDataWarning = this.liveDataWarning();\n@let isFullHeightSection = this.isFullHeightSection();\n\n@if (announcement) {\n <si-inline-notification\n class=\"rounded-0\"\n [severity]=\"announcement.severity\"\n [heading]=\"announcement.heading\"\n [message]=\"announcement.message\"\n [action]=\"announcement.action\"\n [translationParams]=\"announcement.translationParams\"\n />\n}\n<div class=\"landing-page\">\n <div\n class=\"landing-page-background d-none d-md-block\"\n [style.background-image]=\"'url(' + backgroundImageUrl() + ')'\"\n >\n </div>\n <div class=\"landing-page-content\">\n <div class=\"landing-page-content-inner\">\n @if (!isFullHeightSection) {\n <div class=\"d-flex justify-content-between align-items-center pb-9\">\n @if (!logoUrl()) {\n <span role=\"img\" class=\"landing-page-logo\"></span>\n } @else {\n <img\n class=\"landing-page-logo landing-page-custom-logo\"\n [src]=\"logoUrl()\"\n [alt]=\"heading() + '\\'s Background'\"\n />\n }\n @if (availableLanguages.length > 1) {\n <div class=\"landing-page-language-switcher\">\n <si-language-switcher\n [translationKey]=\"translationKey()\"\n [availableLanguages]=\"availableLanguages\"\n />\n </div>\n }\n </div>\n }\n <div class=\"landing-page-main\">\n @if (!isFullHeightSection) {\n @if (subheading()) {\n <div class=\"si-h2\">{{ subheading() | translate }}</div>\n }\n <h1 class=\"si-h1 my-2\">{{ heading() | translate }}</h1>\n <div class=\"position-relative\">\n <h2 class=\"mt-13 si-h2\" [class.invisible]=\"loginAlert\">{{ subtitle() | translate }}</h2>\n @if (loginAlert) {\n <si-inline-notification\n class=\"landing-page-alert w-100\"\n [severity]=\"loginAlert.severity || 'danger'\"\n [heading]=\"loginAlert.heading\"\n [message]=\"loginAlert.message\"\n [action]=\"loginAlert.action\"\n [translationParams]=\"loginAlert.translationParams\"\n />\n }\n </div>\n }\n <div class=\"landing-page-custom-content\">\n <ng-content />\n @if (!isFullHeightSection) {\n @if (implicitLegalAcknowledge) {\n @if (typeof implicitLegalAcknowledge === 'string') {\n <div class=\"text-secondary mt-8\" [innerHTML]=\"implicitLegalAcknowledge\"></div>\n } @else {\n <div class=\"text-secondary mt-8\">\n <ng-container [ngTemplateOutlet]=\"implicitLegalAcknowledge\" />\n </div>\n }\n }\n @if (liveDataWarning) {\n <div class=\"text-secondary mt-8\">\n <div class=\"si-h5\">{{ liveDataWarning.title | translate }}</div>\n <div class=\"si-body my-4\">{{ liveDataWarning.content | translate }}</div>\n </div>\n }\n }\n </div>\n </div>\n @if (!isFullHeightSection) {\n <footer>\n <div>\n <div class=\"d-flex justify-content-start flex-row flex-wrap mt-6\">\n @for (link of links(); track $index) {\n <span>\n <a siLinkDefaultTarget=\"_blank\" class=\"si-body me-6\" [siLink]=\"link\">\n {{ link.title | translate }}\n </a>\n </span>\n }\n </div>\n <div class=\"si-body-sm mt-4 mb-6 text-secondary d-flex flex-wrap\">\n @if (version()) {\n <span class=\"me-6\">{{ version() }}</span>\n }\n <si-copyright-notice [copyright]=\"copyrightDetails()\" />\n </div>\n </div>\n </footer>\n }\n </div>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLandingPageComponent } from './si-landing-page.component';\n\n@NgModule({\n imports: [SiLandingPageComponent],\n exports: [SiLandingPageComponent]\n})\nexport class SiLandingPageModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n OnInit,\n output,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiLoadingButtonComponent } from '@siemens/element-ng/loading-spinner';\nimport { SiPasswordToggleComponent } from '@siemens/element-ng/password-toggle';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { UsernamePassword, UsernameValidationPayload } from '../si-landing-page.model';\n\n/**\n * A basic login component that supports both single-step and two-step authentication flows.\n *\n * This component provides a standard login form with username and password fields.\n * It can be configured to work in two-step mode where username validation happens first,\n * followed by password entry.\n *\n * @example\n * ```html\n * <si-login-basic\n * [forgotPasswordLink]=\"forgotPasswordLink\"\n * [registerNowLink]=\"registerNowLink\"\n * [twoStep]=\"true\"\n * [loading]=\"isLoading\"\n * (login)=\"handleLogin($event)\"\n * (usernameValidation)=\"handleUsernameValidation($event)\">\n * </si-login-basic>\n * ```\n */\n@Component({\n selector: 'si-login-basic',\n imports: [\n ReactiveFormsModule,\n SiTranslatePipe,\n SiLinkDirective,\n SiPasswordToggleComponent,\n SiLoadingButtonComponent\n ],\n templateUrl: './si-login-basic.component.html',\n styleUrl: './si-login-basic.component.scss',\n host: {\n 'animate.enter': 'component-enter'\n }\n})\nexport class SiLoginBasicComponent implements OnInit {\n private static idCounter = 0;\n /**\n * Label for username input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.USERNAME:Username`)\n * ```\n */\n readonly usernameLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.USERNAME:Username`));\n /**\n * Label for password input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.PASSWORD:Password`)\n * ```\n */\n readonly passwordLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.PASSWORD:Password`));\n /**\n * Config for Forgot Password link.\n * If `title` is omitted, a default translated label is used.\n */\n readonly forgotPasswordLink = input<Link>();\n /**\n * Config for Register Now link.\n * If `title` is omitted, a default translated label is used.\n */\n readonly registerNowLink = input<Link>();\n /**\n * Label for login button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.LOGIN:Log in`)\n * ```\n */\n readonly loginButtonLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.LOGIN:Log in`));\n /**\n * Disables the login button.\n *\n * @defaultValue false\n */\n readonly disableLogin = input(false);\n /**\n * Enables the two-step login flow.\n *\n * @defaultValue false\n */\n readonly twoStep = input(false, { transform: booleanAttribute });\n\n /**\n * Indicates whether the login button should show a loading state.\n *\n * @defaultValue false\n */\n readonly loading = input(false);\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.BACK:Back`)\n * ```\n */\n readonly backButtonLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.BACK:Back`));\n /**\n * Description of next button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_BASIC.NEXT:Next`)\n * ```\n */\n readonly nextButtonLabel = input(t(() => $localize`:@@SI_LOGIN_BASIC.NEXT:Next`));\n /**\n * Emits username when user clicks on next button.\n */\n readonly usernameValidation = output<UsernameValidationPayload>();\n /**\n * Emits username and password on value change.\n */\n readonly valueChanged = output<UsernamePassword>();\n /**\n * Emits username and password on login event.\n */\n readonly login = output<UsernamePassword>();\n\n private destroyRef = inject(DestroyRef);\n protected readonly secondStepVisible = signal(false);\n protected readonly loadingNext = signal(false);\n\n private readonly defaultForgotPasswordTitle = t(\n () => $localize`:@@SI_LOGIN_BASIC.FORGOT_PASSWORD:Forgot password`\n );\n private readonly defaultRegisterNowTitle = t(\n () => $localize`:@@SI_LOGIN_BASIC.REGISTER_NOW:Register now`\n );\n\n protected readonly effectiveForgotPasswordLink = computed(() => {\n const link = this.forgotPasswordLink();\n return !!link && link.title ? link : { ...link, title: this.defaultForgotPasswordTitle };\n });\n\n protected readonly effectiveRegisterNowLink = computed(() => {\n const link = this.registerNowLink();\n return !!link && link.title ? link : { ...link, title: this.defaultRegisterNowTitle };\n });\n\n private readonly index = SiLoginBasicComponent.idCounter++;\n protected usernameId = `__si-login-basic-username-${this.index}`;\n protected passwordId = `__si-login-basic-password-${this.index}`;\n\n protected loginCredentials = new FormGroup({\n username: new FormControl('', Validators.required),\n password: new FormControl('', Validators.required)\n });\n\n ngOnInit(): void {\n this.loginCredentials.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.handleValueChanges();\n });\n\n this.loginCredentials.controls.username.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.secondStepVisible() && this.goBack());\n }\n\n protected submit(): void {\n if (this.twoStep() && !this.secondStepVisible()) {\n this.validateUsername();\n return;\n }\n this.login.emit(this.getLoginFormValues());\n }\n\n protected handleValueChanges(): void {\n this.valueChanged.emit(this.getLoginFormValues());\n }\n\n protected validateUsername(): void {\n if (this.loginCredentials.controls.username.valid) {\n this.loadingNext.set(true);\n }\n const activateArgs = {\n ...this.getLoginFormValues(),\n validate: (isValid: boolean): void => {\n if (isValid) {\n this.nextStep();\n } else {\n this.loadingNext.set(false);\n this.loginCredentials.controls.username.setErrors({ invalid: true });\n }\n }\n };\n this.usernameValidation.emit(activateArgs);\n }\n\n private getLoginFormValues(): UsernamePassword {\n const { username: username, password } = this.loginCredentials.value;\n return { username: username, password };\n }\n\n protected goBack(): void {\n this.secondStepVisible.set(false);\n this.loginCredentials.controls.password.reset();\n }\n\n private nextStep(): void {\n if (this.twoStep() && !this.secondStepVisible()) {\n this.loadingNext.set(false);\n this.secondStepVisible.set(true);\n }\n }\n}\n","@let forgotPasswordLink = this.effectiveForgotPasswordLink();\n@let registerNowLink = this.effectiveRegisterNowLink();\n@let secondStepVisible = this.secondStepVisible();\n\n<form #loginForm [formGroup]=\"loginCredentials\" (ngSubmit)=\"submit()\">\n <div class=\"my-4\">\n <label class=\"form-label\" [for]=\"usernameId\">{{ usernameLabel() | translate }}</label>\n <input type=\"email\" class=\"form-control\" formControlName=\"username\" [id]=\"usernameId\" />\n </div>\n <div class=\"login-basic-second-step--container\" [class.active]=\"!twoStep() || secondStepVisible\">\n <div class=\"login-basic-second-step--content\">\n <div class=\"mb-4\">\n <label class=\"form-label\" [for]=\"passwordId\">{{ passwordLabel() | translate }}</label>\n <si-password-toggle #toggle>\n <input\n class=\"form-control\"\n formControlName=\"password\"\n [id]=\"passwordId\"\n [type]=\"toggle.inputType\"\n />\n </si-password-toggle>\n </div>\n @if (forgotPasswordLink) {\n <a class=\"si-h5 mb-4\" [siLink]=\"forgotPasswordLink\">{{\n forgotPasswordLink.title | translate\n }}</a>\n }\n <div class=\"d-flex align-items-center gap-6 mt-8\">\n @if (twoStep()) {\n <button type=\"button\" class=\"btn btn-secondary w-100\" (click)=\"goBack()\">\n {{ backButtonLabel() | translate }}\n </button>\n }\n <si-loading-button\n type=\"submit\"\n class=\"w-100\"\n buttonClass=\"btn btn-primary\"\n [disabled]=\"disableLogin()\"\n [loading]=\"loading()\"\n >\n {{ loginButtonLabel() | translate }}\n </si-loading-button>\n </div>\n </div>\n </div>\n @if (twoStep()) {\n <div\n class=\"login-basic-next-button--container\"\n [attr.aria-hidden]=\"secondStepVisible\"\n [class.active]=\"!secondStepVisible\"\n >\n <si-loading-button\n class=\"login-basic-next-button w-100\"\n buttonClass=\"btn btn-primary\"\n [loading]=\"loadingNext()\"\n (click)=\"validateUsername()\"\n >\n {{ nextButtonLabel() | translate }}\n </si-loading-button>\n </div>\n }\n</form>\n@if (registerNowLink) {\n <div class=\"si-body mt-8\">\n <a class=\"si-h5\" [siLink]=\"registerNowLink\">{{ registerNowLink.title | translate }}</a>\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input, output } from '@angular/core';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\n/**\n * A single sign-on (SSO) login component that provides a button for SSO authentication.\n *\n * This component renders a simple button that users can click to initiate\n * single sign-on authentication flow.\n *\n * @example\n * ```html\n * <si-login-single-sign-on\n * [ssoButtonLabel]=\"customLabel\"\n * [disableSso]=\"isLoading\"\n * (ssoEvent)=\"handleSsoLogin()\">\n * </si-login-single-sign-on>\n * ```\n */\n@Component({\n selector: 'si-login-single-sign-on',\n imports: [SiTranslatePipe],\n templateUrl: './si-login-single-sign-on.component.html'\n})\nexport class SiLoginSingleSignOnComponent {\n /**\n * Label for login button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP:Login / Sign un`)\n * ```\n */\n readonly ssoButtonLabel = input(\n t(() => $localize`:@@SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP:Login / Sign un`)\n );\n /**\n * Disables the sso button.\n *\n * @defaultValue false\n */\n readonly disableSso = input(false);\n /**\n * Emits username and password on login event.\n */\n readonly ssoEvent = output<void>();\n\n protected ssoClick(): void {\n this.ssoEvent.emit();\n }\n}\n","<button\n type=\"button\"\n class=\"btn btn-primary mt-4 w-100\"\n [disabled]=\"disableSso()\"\n (click)=\"ssoClick()\"\n>\n {{ ssoButtonLabel() | translate }}\n</button>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, inject, input, OnInit, output, OnDestroy } from '@angular/core';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiLandingPageComponent } from '../si-landing-page.component';\n\n/**\n * A component for displaying legal agreements that require explicit user acknowledgment.\n *\n * This component provides a standardized interface for presenting legal documents,\n * terms of service, privacy policies, or other agreements that users must\n * explicitly accept before proceeding.\n *\n * @example\n * ```html\n * <si-explicit-legal-acknowledge\n * [heading]=\"agreementTitle\"\n * [subheading]=\"agreementDescription\"\n * [disableAcceptance]=\"isProcessing\"\n * (accept)=\"handleAcceptance()\"\n * (back)=\"handleBack()\">\n * <div>\n * <h3>Terms of Service</h3>\n * <p>Please read and accept our terms before continuing.</p>\n * <ul>\n * <li>Term 1: You agree to ...</li>\n * <li>Term 2: You acknowledge ...</li>\n * </ul>\n * </div>\n * </si-explicit-legal-acknowledge>\n * ```\n */\n@Component({\n selector: 'si-explicit-legal-acknowledge',\n imports: [SiTranslatePipe],\n templateUrl: './si-explicit-legal-acknowledge.component.html',\n styleUrl: './si-explicit-legal-acknowledge.component.scss'\n})\nexport class SiExplicitLegalAcknowledgeComponent implements OnInit, OnDestroy {\n /**\n * Heading of the agreement.\n */\n readonly heading = input.required<TranslatableString>();\n /**\n * Short description of the agreement.\n */\n readonly subheading = input.required<TranslatableString>();\n /**\n * Label for accept button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT:Accept`)\n * ```\n */\n readonly acceptButtonLabel = input(\n t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT:Accept`)\n );\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK:Back`)\n * ```\n */\n readonly backButtonLabel = input(t(() => $localize`:@@SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK:Back`));\n /**\n * Disables the acceptance button.\n *\n * @defaultValue false\n */\n readonly disableAcceptance = input(false);\n /**\n * Emits end user license agreement on acceptance event.\n */\n readonly accept = output<void>();\n /**\n * Emits on back click.\n */\n readonly back = output<void>();\n /**\n * Reference to the landing page parent component.\n */\n protected landingPage = inject(SiLandingPageComponent, { skipSelf: true, optional: true });\n\n protected handleBack(): void {\n this.back.emit();\n }\n\n protected handleAccept(): void {\n this.accept.emit();\n }\n\n ngOnInit(): void {\n this.landingPage?.isFullHeightSection.set(true);\n }\n\n ngOnDestroy(): void {\n this.landingPage?.isFullHeightSection.set(false);\n }\n}\n","<div class=\"d-flex flex-column py-8 h-100\">\n <h2 class=\"si-h2 mb-4\">{{ heading() | translate }}</h2>\n <div class=\"si-body mb-6\">{{ subheading() | translate }}</div>\n\n <div class=\"card card-outline flex-grow-1\">\n <div tabindex=\"0\" class=\"card-body si-body-paragraph text-secondary overflow-auto\">\n <ng-content />\n </div>\n </div>\n <div class=\"d-flex align-items-center gap-6 mt-6\">\n <button type=\"button\" class=\"btn btn-secondary w-100\" (click)=\"handleBack()\">\n {{ backButtonLabel() | translate }}\n </button>\n <button\n type=\"button\"\n class=\"btn btn-primary w-100\"\n [disabled]=\"disableAcceptance()\"\n (click)=\"handleAccept()\"\n >\n {{ acceptButtonLabel() | translate }}\n </button>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n input,\n OnInit,\n output,\n TemplateRef,\n OnDestroy,\n inject,\n DestroyRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { SiInlineNotificationComponent } from '@siemens/element-ng/inline-notification';\nimport {\n PasswordPolicy,\n SiPasswordStrengthComponent,\n SiPasswordStrengthDirective\n} from '@siemens/element-ng/password-strength';\nimport { SiPasswordToggleComponent } from '@siemens/element-ng/password-toggle';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { AlertConfig } from '../alert-config.model';\nimport { SiLandingPageComponent } from '../si-landing-page.component';\nimport { ChangePassword } from '../si-landing-page.model';\n\n/**\n * A component for changing user passwords with strength validation and policy enforcement.\n *\n * This component provides a form for users to change their password, including\n * password strength indicators, policy validation, and confirmation fields.\n * It supports custom password policies and displays inline notifications for alerts.\n *\n * @example\n * ```html\n * <si-change-password\n * [passwordStrength]=\"passwordPolicy\"\n * [passwordPolicyContent]=\"policyTemplate\"\n * [changePasswordAlert]=\"alertConfig\"\n * (changePasswordRequested)=\"handlePasswordChange($event)\"\n * (back)=\"handleBack()\">\n * </si-change-password>\n * ```\n */\n@Component({\n selector: 'si-change-password',\n imports: [\n ReactiveFormsModule,\n SiTranslatePipe,\n SiPasswordToggleComponent,\n NgTemplateOutlet,\n SiInlineNotificationComponent,\n SiPasswordStrengthComponent,\n SiPasswordStrengthDirective\n ],\n templateUrl: './si-change-password.component.html'\n})\nexport class SiChangePasswordComponent implements OnInit, OnDestroy {\n private static idCounter = 0;\n /**\n * Change password heading.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE_PASSWORD:Change password`)\n * ```\n */\n readonly heading = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE_PASSWORD:Change password`)\n );\n /**\n * Short description of the action to perform.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD:Default password must be changed`)\n * ```\n */\n readonly subheading = input(\n t(\n () =>\n $localize`:@@SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD:Default password must be changed`\n )\n );\n /**\n * Label for new password input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.NEW_PASSWORD:New password`)\n * ```\n */\n readonly newPasswordLabel = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.NEW_PASSWORD:New password`)\n );\n /**\n * Label for confirm password input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CONFIRM_PASSWORD:Confirm password`)\n * ```\n */\n readonly confirmPasswordLabel = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.CONFIRM_PASSWORD:Confirm password`)\n );\n /**\n * Label for change password button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE:Change`)\n * ```\n */\n readonly changeButtonLabel = input(t(() => $localize`:@@SI_CHANGE_PASSWORD.CHANGE:Change`));\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.BACK:Back`)\n * ```\n */\n readonly backButtonLabel = input(t(() => $localize`:@@SI_CHANGE_PASSWORD.BACK:Back`));\n /**\n * Disables the change password button.\n *\n * @defaultValue false\n */\n readonly disableChange = input(false);\n /**\n * Title of the password policy.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CHANGE_PASSWORD.PASSWORD_POLICY:Password policy`)\n * ```\n */\n readonly passwordPolicyTitle = input(\n t(() => $localize`:@@SI_CHANGE_PASSWORD.PASSWORD_POLICY:Password policy`)\n );\n /**\n * Description of the password policy requirements.\n */\n readonly passwordPolicyContent = input.required<string | TemplateRef<unknown>>();\n /**\n * Description of the password policy requirements.\n */\n readonly passwordStrength = input.required<PasswordPolicy>();\n /**\n * Config to enable/disable password related error/alerts.\n */\n readonly changePasswordAlert = input<AlertConfig>();\n /**\n * Emits password on value change.\n */\n readonly valueChanged = output<ChangePassword>();\n /**\n * Emits password on change event.\n */\n readonly changePasswordRequested = output<ChangePassword>();\n /**\n * The number indicating the number of rules which still can be met. (`-2` --\\> 2 rules are\n * still unmet, `0` --\\> all met)\n */\n readonly passwordStrengthChanged = output<number | void>();\n /**\n * Emits on back click.\n */\n readonly back = output<void>();\n /**\n * Reference to the landing page parent component.\n */\n protected landingPage = inject(SiLandingPageComponent, { skipSelf: true, optional: true });\n\n private readonly index = SiChangePasswordComponent.idCounter++;\n protected newPasswordId = `__si-change-password-new-password-${this.index}`;\n protected confirmPasswordId = `__si-change-password-confirm-password-${this.index}`;\n\n protected changePasswordForm = new FormGroup({\n newPassword: new FormControl(''),\n confirmPassword: new FormControl('')\n });\n protected passwordPolicyContentTemplate: TemplateRef<any> | null = null;\n\n private destroyRef = inject(DestroyRef);\n\n ngOnInit(): void {\n this.landingPage?.isFullHeightSection.set(true);\n const passwordPolicy = this.passwordPolicyContent();\n if (passwordPolicy instanceof TemplateRef) {\n this.passwordPolicyContentTemplate = passwordPolicy;\n }\n this.changePasswordForm.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.handleValueChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.landingPage?.isFullHeightSection.set(false);\n }\n\n protected submit(): void {\n this.changePasswordRequested.emit(this.getPasswordFormValues());\n }\n\n protected handleValueChanges(): void {\n this.valueChanged.emit(this.getPasswordFormValues());\n }\n\n protected handlePasswordStrengthChanged(data: number | void): void {\n this.passwordStrengthChanged.emit(data);\n }\n\n private getPasswordFormValues(): ChangePassword {\n const { newPassword: newPassword, confirmPassword } = this.changePasswordForm.value;\n return { newPassword: newPassword, confirmPassword };\n }\n\n protected handleBackClick(): void {\n this.back.emit();\n this.changePasswordForm.reset();\n }\n}\n","@let changePasswordAlert = this.changePasswordAlert();\n@let passwordPolicyContent = this.passwordPolicyContent();\n\n<div class=\"d-flex flex-column justify-content-center py-8 h-100\">\n <div class=\"position-relative\">\n <h2 class=\"si-h2\" [class.invisible]=\"changePasswordAlert\">{{ heading() | translate }}</h2>\n <div class=\"si-body mb-4\" [class.invisible]=\"changePasswordAlert\">{{\n subheading() | translate\n }}</div>\n @if (changePasswordAlert) {\n <si-inline-notification\n class=\"position-absolute bottom-0 w-100\"\n [severity]=\"changePasswordAlert.severity || 'danger'\"\n [heading]=\"changePasswordAlert.heading\"\n [message]=\"changePasswordAlert.message\"\n />\n }\n </div>\n <form [formGroup]=\"changePasswordForm\" (ngSubmit)=\"submit()\">\n <div class=\"my-4\">\n <label class=\"form-label\" [for]=\"newPasswordId\">{{ newPasswordLabel() | translate }}</label>\n <si-password-strength>\n <input\n type=\"password\"\n class=\"form-control\"\n formControlName=\"newPassword\"\n [id]=\"newPasswordId\"\n [siPasswordStrength]=\"passwordStrength()\"\n (passwordStrengthChanged)=\"handlePasswordStrengthChanged($event)\"\n />\n </si-password-strength>\n </div>\n <div class=\"mb-4\">\n <label class=\"form-label\" [for]=\"confirmPasswordId\">{{\n confirmPasswordLabel() | translate\n }}</label>\n <si-password-toggle #toggleConfirmPassword>\n <input\n class=\"form-control\"\n formControlName=\"confirmPassword\"\n [id]=\"confirmPasswordId\"\n [type]=\"toggleConfirmPassword.inputType\"\n />\n </si-password-toggle>\n </div>\n <div class=\"d-flex align-items-center gap-6 mt-6\">\n <button type=\"button\" class=\"btn btn-secondary w-100 back-button\" (click)=\"handleBackClick()\">\n {{ backButtonLabel() | translate }}\n </button>\n <button type=\"submit\" class=\"btn btn-primary w-100\" [disabled]=\"disableChange()\">\n {{ changeButtonLabel() | translate }}\n </button>\n </div>\n </form>\n <div class=\"text-secondary mt-8\">\n <div class=\"si-h5\">{{ passwordPolicyTitle() | translate }}</div>\n @if (!passwordPolicyContentTemplate) {\n <div class=\"my-4\" [innerHTML]=\"passwordPolicyContent\"></div>\n } @else {\n <div class=\"my-4\">\n <ng-container [ngTemplateOutlet]=\"passwordPolicyContentTemplate\" />\n </div>\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-landing-page.module';\nexport * from './si-landing-page.component';\nexport * from './login-basic/si-login-basic.component';\nexport * from './login-single-sign-on/si-login-single-sign-on.component';\nexport * from './explicit-legal-acknowledge/si-explicit-legal-acknowledge.component';\nexport * from './change-password/si-change-password.component';\nexport * from './alert-config.model';\nexport * from './si-landing-page.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -56,11 +56,11 @@ class SiLanguageSwitcherComponent {
|
|
|
56
56
|
this.translate.setCurrentLanguage(language);
|
|
57
57
|
}
|
|
58
58
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiLanguageSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiLanguageSwitcherComponent, isStandalone: true, selector: "si-language-switcher", inputs: { translationKey: { classPropertyName: "translationKey", publicName: "translationKey", isSignal: true, isRequired: false, transformFunction: null }, languageSwitcherLabel: { classPropertyName: "languageSwitcherLabel", publicName: "languageSwitcherLabel", isSignal: true, isRequired: false, transformFunction: null }, availableLanguages: { classPropertyName: "availableLanguages", publicName: "availableLanguages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<select\n class=\"si-h5 language-switcher-select\"\n [attr.aria-label]=\"languageSwitcherLabel() | translate\"\n (change)=\"switchLanguage($event.target)\"\n>\n @for (language of availableIsoLanguages(); track language.value) {\n <option [value]=\"language.value\" [selected]=\"language.value === translate.currentLanguage\">\n {{ language.name | translate }}\n </option>\n }\n</select>\n", styles: [":host{--language-switcher-color: var(--si-sys-text-accent)}.language-switcher-select{inline-size:100%;background-color:transparent;border:0;border-block-end:1px solid var(--input-border-color);padding:var(--si-sys-sizing-spacing-y-30) var(--si-sys-sizing-spacing-x-30);cursor:pointer;color:var(--language-switcher-color)}@media(min-width:768px){.language-switcher-select{max-inline-size:200px}}.language-switcher-select option{background-color:var(--si-sys-background-1)}\n"], dependencies: [{ kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
|
|
59
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiLanguageSwitcherComponent, isStandalone: true, selector: "si-language-switcher", inputs: { translationKey: { classPropertyName: "translationKey", publicName: "translationKey", isSignal: true, isRequired: false, transformFunction: null }, languageSwitcherLabel: { classPropertyName: "languageSwitcherLabel", publicName: "languageSwitcherLabel", isSignal: true, isRequired: false, transformFunction: null }, availableLanguages: { classPropertyName: "availableLanguages", publicName: "availableLanguages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<select\n class=\"si-h5 language-switcher-select\"\n [attr.aria-label]=\"languageSwitcherLabel() | translate\"\n (change)=\"switchLanguage($event.target)\"\n>\n @for (language of availableIsoLanguages(); track language.value) {\n <option [value]=\"language.value\" [selected]=\"language.value === translate.currentLanguage\">\n {{ language.name | translate }}\n </option>\n }\n</select>\n", styles: [":host{--language-switcher-color: var(--si-sys-color-text-accent)}.language-switcher-select{inline-size:100%;background-color:transparent;border:0;border-block-end:1px solid var(--input-border-color);padding:var(--si-sys-sizing-spacing-y-30) var(--si-sys-sizing-spacing-x-30);cursor:pointer;color:var(--language-switcher-color)}@media(min-width:768px){.language-switcher-select{max-inline-size:200px}}.language-switcher-select option{background-color:var(--si-sys-color-background-1)}\n"], dependencies: [{ kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
|
|
60
60
|
}
|
|
61
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiLanguageSwitcherComponent, decorators: [{
|
|
62
62
|
type: Component,
|
|
63
|
-
args: [{ selector: 'si-language-switcher', imports: [SiTranslatePipe], changeDetection: ChangeDetectionStrategy.Eager, template: "<select\n class=\"si-h5 language-switcher-select\"\n [attr.aria-label]=\"languageSwitcherLabel() | translate\"\n (change)=\"switchLanguage($event.target)\"\n>\n @for (language of availableIsoLanguages(); track language.value) {\n <option [value]=\"language.value\" [selected]=\"language.value === translate.currentLanguage\">\n {{ language.name | translate }}\n </option>\n }\n</select>\n", styles: [":host{--language-switcher-color: var(--si-sys-text-accent)}.language-switcher-select{inline-size:100%;background-color:transparent;border:0;border-block-end:1px solid var(--input-border-color);padding:var(--si-sys-sizing-spacing-y-30) var(--si-sys-sizing-spacing-x-30);cursor:pointer;color:var(--language-switcher-color)}@media(min-width:768px){.language-switcher-select{max-inline-size:200px}}.language-switcher-select option{background-color:var(--si-sys-background-1)}\n"] }]
|
|
63
|
+
args: [{ selector: 'si-language-switcher', imports: [SiTranslatePipe], changeDetection: ChangeDetectionStrategy.Eager, template: "<select\n class=\"si-h5 language-switcher-select\"\n [attr.aria-label]=\"languageSwitcherLabel() | translate\"\n (change)=\"switchLanguage($event.target)\"\n>\n @for (language of availableIsoLanguages(); track language.value) {\n <option [value]=\"language.value\" [selected]=\"language.value === translate.currentLanguage\">\n {{ language.name | translate }}\n </option>\n }\n</select>\n", styles: [":host{--language-switcher-color: var(--si-sys-color-text-accent)}.language-switcher-select{inline-size:100%;background-color:transparent;border:0;border-block-end:1px solid var(--input-border-color);padding:var(--si-sys-sizing-spacing-y-30) var(--si-sys-sizing-spacing-x-30);cursor:pointer;color:var(--language-switcher-color)}@media(min-width:768px){.language-switcher-select{max-inline-size:200px}}.language-switcher-select option{background-color:var(--si-sys-color-background-1)}\n"] }]
|
|
64
64
|
}], propDecorators: { translationKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "translationKey", required: false }] }], languageSwitcherLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "languageSwitcherLabel", required: false }] }], availableLanguages: [{ type: i0.Input, args: [{ isSignal: true, alias: "availableLanguages", required: false }] }] } });
|
|
65
65
|
|
|
66
66
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-language-switcher.mjs","sources":["../../../../projects/element-ng/language-switcher/si-language-switcher.component.ts","../../../../projects/element-ng/language-switcher/si-language-switcher.component.html","../../../../projects/element-ng/language-switcher/si-language-switcher.module.ts","../../../../projects/element-ng/language-switcher/index.ts","../../../../projects/element-ng/language-switcher/siemens-element-ng-language-switcher.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport {\n injectSiTranslateService,\n SiTranslatePipe,\n t\n} from '@siemens/element-translate-ng/translate';\n\nimport { IsoLanguageValue } from './iso-language-value';\n\n@Component({\n selector: 'si-language-switcher',\n imports: [SiTranslatePipe],\n templateUrl: './si-language-switcher.component.html',\n styleUrl: './si-language-switcher.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager\n})\nexport class SiLanguageSwitcherComponent {\n /**\n * Key for translation.\n * If the key is set to an empty string, the language of the underlying translation framework will not be switched.\n *\n * @defaultValue 'LANGUAGE'\n */\n readonly translationKey = input('LANGUAGE');\n /**\n * Text for aria label for the language selector. Needed for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`)\n * ```\n */\n readonly languageSwitcherLabel = input(\n t(() => $localize`:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`)\n );\n\n /**\n * List of all available languages in this application.\n *\n * @defaultValue null\n */\n readonly availableLanguages = input<(string | IsoLanguageValue)[] | null>(null);\n\n protected readonly translate = injectSiTranslateService();\n\n protected readonly availableIsoLanguages = computed(() => {\n let languages = this.availableLanguages() ?? this.translate.availableLanguages;\n if (typeof languages[0] !== 'object') {\n languages = (languages as string[]).map(languageValue => {\n const translationKey = this.translationKey();\n return {\n value: languageValue,\n name: translationKey ? `${translationKey}.${languageValue.toUpperCase()}` : languageValue\n };\n });\n }\n return languages as IsoLanguageValue[];\n });\n\n protected switchLanguage(target: EventTarget | null): void {\n const language = (target as HTMLSelectElement)?.value;\n const translationKey = this.translationKey();\n if (!language || !translationKey?.length) {\n return;\n }\n this.translate.setCurrentLanguage(language);\n }\n}\n","<select\n class=\"si-h5 language-switcher-select\"\n [attr.aria-label]=\"languageSwitcherLabel() | translate\"\n (change)=\"switchLanguage($event.target)\"\n>\n @for (language of availableIsoLanguages(); track language.value) {\n <option [value]=\"language.value\" [selected]=\"language.value === translate.currentLanguage\">\n {{ language.name | translate }}\n </option>\n }\n</select>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLanguageSwitcherComponent } from './si-language-switcher.component';\n\n@NgModule({\n imports: [SiLanguageSwitcherComponent],\n exports: [SiLanguageSwitcherComponent]\n})\nexport class SiLanguageSwitcherModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-language-switcher.component';\nexport * from './si-language-switcher.module';\nexport * from './iso-language-value';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;AAGG;MAiBU,2BAA2B,CAAA;AACtC;;;;;AAKG;IACM,cAAc,GAAG,KAAK,CAAC,UAAU;uFAAC;AAC3C;;;;;;;AAOG;IACM,qBAAqB,GAAG,KAAK,CACpC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,+CAAA,CAAiD,CAAC;8FACpE;AAED;;;;AAIG;IACM,kBAAkB,GAAG,KAAK,CAAuC,IAAI;2FAAC;IAE5D,SAAS,GAAG,wBAAwB,EAAE;AAEtC,IAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAK;AACvD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB;QAC9E,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACpC,YAAA,SAAS,GAAI,SAAsB,CAAC,GAAG,CAAC,aAAa,IAAG;AACtD,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;gBAC5C,OAAO;AACL,oBAAA,KAAK,EAAE,aAAa;AACpB,oBAAA,IAAI,EAAE,cAAc,GAAG,GAAG,cAAc,CAAA,CAAA,EAAI,aAAa,CAAC,WAAW,EAAE,CAAA,CAAE,GAAG;iBAC7E;AACH,YAAA,CAAC,CAAC;QACJ;AACA,QAAA,OAAO,SAA+B;IACxC,CAAC;8FAAC;AAEQ,IAAA,cAAc,CAAC,MAA0B,EAAA;AACjD,QAAA,MAAM,QAAQ,GAAI,MAA4B,EAAE,KAAK;AACrD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;QAC5C,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;YACxC;QACF;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC;IAC7C;uGAlDW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBxC,sZAWA,EAAA,MAAA,EAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-language-switcher.mjs","sources":["../../../../projects/element-ng/language-switcher/si-language-switcher.component.ts","../../../../projects/element-ng/language-switcher/si-language-switcher.component.html","../../../../projects/element-ng/language-switcher/si-language-switcher.module.ts","../../../../projects/element-ng/language-switcher/index.ts","../../../../projects/element-ng/language-switcher/siemens-element-ng-language-switcher.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport {\n injectSiTranslateService,\n SiTranslatePipe,\n t\n} from '@siemens/element-translate-ng/translate';\n\nimport { IsoLanguageValue } from './iso-language-value';\n\n@Component({\n selector: 'si-language-switcher',\n imports: [SiTranslatePipe],\n templateUrl: './si-language-switcher.component.html',\n styleUrl: './si-language-switcher.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager\n})\nexport class SiLanguageSwitcherComponent {\n /**\n * Key for translation.\n * If the key is set to an empty string, the language of the underlying translation framework will not be switched.\n *\n * @defaultValue 'LANGUAGE'\n */\n readonly translationKey = input('LANGUAGE');\n /**\n * Text for aria label for the language selector. Needed for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`)\n * ```\n */\n readonly languageSwitcherLabel = input(\n t(() => $localize`:@@SI_LANGUAGE_SWITCHER.LABEL:Language switcher`)\n );\n\n /**\n * List of all available languages in this application.\n *\n * @defaultValue null\n */\n readonly availableLanguages = input<(string | IsoLanguageValue)[] | null>(null);\n\n protected readonly translate = injectSiTranslateService();\n\n protected readonly availableIsoLanguages = computed(() => {\n let languages = this.availableLanguages() ?? this.translate.availableLanguages;\n if (typeof languages[0] !== 'object') {\n languages = (languages as string[]).map(languageValue => {\n const translationKey = this.translationKey();\n return {\n value: languageValue,\n name: translationKey ? `${translationKey}.${languageValue.toUpperCase()}` : languageValue\n };\n });\n }\n return languages as IsoLanguageValue[];\n });\n\n protected switchLanguage(target: EventTarget | null): void {\n const language = (target as HTMLSelectElement)?.value;\n const translationKey = this.translationKey();\n if (!language || !translationKey?.length) {\n return;\n }\n this.translate.setCurrentLanguage(language);\n }\n}\n","<select\n class=\"si-h5 language-switcher-select\"\n [attr.aria-label]=\"languageSwitcherLabel() | translate\"\n (change)=\"switchLanguage($event.target)\"\n>\n @for (language of availableIsoLanguages(); track language.value) {\n <option [value]=\"language.value\" [selected]=\"language.value === translate.currentLanguage\">\n {{ language.name | translate }}\n </option>\n }\n</select>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLanguageSwitcherComponent } from './si-language-switcher.component';\n\n@NgModule({\n imports: [SiLanguageSwitcherComponent],\n exports: [SiLanguageSwitcherComponent]\n})\nexport class SiLanguageSwitcherModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-language-switcher.component';\nexport * from './si-language-switcher.module';\nexport * from './iso-language-value';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|