@siemens/element-ng 47.1.0 → 47.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/index.d.ts +9 -0
- package/accordion/package.json +3 -0
- package/accordion/si-accordion-hcollapse.service.d.ts +17 -0
- package/accordion/si-accordion.component.d.ts +37 -0
- package/accordion/si-accordion.module.d.ts +8 -0
- package/accordion/si-accordion.service.d.ts +17 -0
- package/accordion/si-collapsible-panel.component.d.ts +89 -0
- package/action-modal/index.d.ts +6 -0
- package/action-modal/package.json +3 -0
- package/action-modal/si-action-dialog.service.d.ts +49 -0
- package/action-modal/si-action-dialog.types.d.ts +92 -0
- package/action-modal/si-alert-dialog/si-alert-dialog.component.d.ts +32 -0
- package/action-modal/si-confirmation-dialog/si-confirmation-dialog.component.d.ts +40 -0
- package/action-modal/si-delete-confirmation-dialog/si-delete-confirmation-dialog.component.d.ts +45 -0
- package/action-modal/si-edit-discard-dialog/si-edit-discard-dialog.component.d.ts +68 -0
- package/auto-collapsable-list/index.d.ts +10 -0
- package/auto-collapsable-list/package.json +3 -0
- package/auto-collapsable-list/si-auto-collapsable-list-additional-content.directive.d.ts +6 -0
- package/auto-collapsable-list/si-auto-collapsable-list-item.directive.d.ts +29 -0
- package/auto-collapsable-list/si-auto-collapsable-list-measurable.class.d.ts +16 -0
- package/auto-collapsable-list/si-auto-collapsable-list-overflow-item.directive.d.ts +12 -0
- package/auto-collapsable-list/si-auto-collapsable-list.directive.d.ts +47 -0
- package/auto-collapsable-list/si-auto-collapsable-list.module.d.ts +10 -0
- package/color-picker/index.d.ts +5 -0
- package/color-picker/package.json +3 -0
- package/color-picker/si-color-picker.component.d.ts +61 -0
- package/common/models/menu.model.d.ts +2 -2
- package/connection-strength/index.d.ts +6 -0
- package/connection-strength/package.json +3 -0
- package/connection-strength/si-connection-strength.component.d.ts +19 -0
- package/connection-strength/si-connection-strength.module.d.ts +7 -0
- package/copyright-notice/index.d.ts +7 -0
- package/copyright-notice/package.json +3 -0
- package/copyright-notice/si-copyright-notice.component.d.ts +18 -0
- package/copyright-notice/si-copyright-notice.d.ts +23 -0
- package/copyright-notice/si-copyright-notice.module.d.ts +7 -0
- package/empty-state/index.d.ts +6 -0
- package/empty-state/package.json +3 -0
- package/empty-state/si-empty-state.component.d.ts +18 -0
- package/empty-state/si-empty-state.module.d.ts +7 -0
- package/fesm2022/siemens-element-ng-accordion.mjs +314 -0
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-action-modal.mjs +363 -0
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +312 -0
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-color-picker.mjs +176 -0
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-connection-strength.mjs +58 -0
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-copyright-notice.mjs +71 -0
- package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-empty-state.mjs +59 -0
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-footer.mjs +55 -0
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-icon.mjs +8 -1
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs +82 -0
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +248 -0
- package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-menu.mjs +350 -0
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-modal.mjs +345 -0
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-pagination.mjs +145 -0
- package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-password-toggle.mjs +88 -0
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-summary-chip.mjs +77 -0
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-tooltip.mjs +233 -0
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/footer/index.d.ts +6 -0
- package/footer/package.json +3 -0
- package/footer/si-footer.component.d.ts +14 -0
- package/footer/si-footer.module.d.ts +7 -0
- package/icon/element-icons.d.ts +7 -0
- package/inline-notification/index.d.ts +6 -0
- package/inline-notification/package.json +3 -0
- package/inline-notification/si-inline-notification.component.d.ts +42 -0
- package/inline-notification/si-inline-notification.module.d.ts +7 -0
- package/loading-spinner/index.d.ts +9 -0
- package/loading-spinner/package.json +3 -0
- package/loading-spinner/si-loading-button.component.d.ts +31 -0
- package/loading-spinner/si-loading-spinner.component.d.ts +32 -0
- package/loading-spinner/si-loading-spinner.directive.d.ts +36 -0
- package/loading-spinner/si-loading-spinner.module.d.ts +8 -0
- package/loading-spinner/si-loading-spinner.service.d.ts +18 -0
- package/menu/index.d.ts +15 -0
- package/menu/package.json +3 -0
- package/menu/si-menu-action.service.d.ts +13 -0
- package/menu/si-menu-bar.directive.d.ts +12 -0
- package/menu/si-menu-divider.directive.d.ts +5 -0
- package/menu/si-menu-factory-item-guard.directive.d.ts +11 -0
- package/menu/si-menu-factory.component.d.ts +15 -0
- package/menu/si-menu-header.directive.d.ts +5 -0
- package/menu/si-menu-item-base.directive.d.ts +16 -0
- package/menu/si-menu-item-checkbox.component.d.ts +10 -0
- package/menu/si-menu-item-radio.component.d.ts +10 -0
- package/menu/si-menu-item.component.d.ts +10 -0
- package/menu/si-menu-model.d.ts +91 -0
- package/menu/si-menu.directive.d.ts +6 -0
- package/menu/si-menu.module.d.ts +14 -0
- package/modal/index.d.ts +7 -0
- package/modal/modal.helpers.d.ts +8 -0
- package/modal/modalref.d.ts +64 -0
- package/modal/package.json +3 -0
- package/modal/si-modal.component.d.ts +32 -0
- package/modal/si-modal.service.d.ts +57 -0
- package/package.json +67 -3
- package/pagination/index.d.ts +6 -0
- package/pagination/package.json +3 -0
- package/pagination/si-pagination.component.d.ts +65 -0
- package/pagination/si-pagination.module.d.ts +7 -0
- package/password-toggle/index.d.ts +6 -0
- package/password-toggle/package.json +3 -0
- package/password-toggle/si-password-toggle.component.d.ts +39 -0
- package/password-toggle/si-password-toggle.module.d.ts +7 -0
- package/summary-chip/index.d.ts +5 -0
- package/summary-chip/package.json +3 -0
- package/summary-chip/si-summary-chip.component.d.ts +44 -0
- package/template-i18n.json +19 -1
- package/tooltip/index.d.ts +7 -0
- package/tooltip/package.json +3 -0
- package/tooltip/si-tooltip.component.d.ts +25 -0
- package/tooltip/si-tooltip.directive.d.ts +45 -0
- package/tooltip/si-tooltip.module.d.ts +7 -0
- package/tooltip/si-tooltip.service.d.ts +44 -0
- package/translate/si-translatable-keys.interface.d.ts +18 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { inject, input, booleanAttribute, computed, Component, NgModule } from '@angular/core';
|
|
4
|
+
import { STATUS_ICON_CONFIG, SiIconNextComponent } from '@siemens/element-ng/icon';
|
|
5
|
+
import { SiLinkDirective } from '@siemens/element-ng/link';
|
|
6
|
+
import * as i1 from '@siemens/element-translate-ng/translate';
|
|
7
|
+
import { SiTranslateModule } from '@siemens/element-translate-ng/translate';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Copyright Siemens 2016 - 2025.
|
|
11
|
+
* SPDX-License-Identifier: MIT
|
|
12
|
+
*/
|
|
13
|
+
class SiInlineNotificationComponent {
|
|
14
|
+
statusIcons = inject(STATUS_ICON_CONFIG);
|
|
15
|
+
/**
|
|
16
|
+
* Status of inline notification.
|
|
17
|
+
*/
|
|
18
|
+
severity = input.required();
|
|
19
|
+
/**
|
|
20
|
+
* Heading of the message.
|
|
21
|
+
*/
|
|
22
|
+
heading = input();
|
|
23
|
+
/**
|
|
24
|
+
* Main message of this inline notification.
|
|
25
|
+
*/
|
|
26
|
+
message = input.required();
|
|
27
|
+
/**
|
|
28
|
+
* Optional link action for inline notification events.
|
|
29
|
+
*/
|
|
30
|
+
action = input();
|
|
31
|
+
/**
|
|
32
|
+
* Params passed to the translation pipe
|
|
33
|
+
*
|
|
34
|
+
* @defaultValue
|
|
35
|
+
* ```
|
|
36
|
+
* {}
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
translationParams = input({});
|
|
40
|
+
/**
|
|
41
|
+
* Displays in embedded style, w/o radius and indicator bar
|
|
42
|
+
*
|
|
43
|
+
* @defaultValue false
|
|
44
|
+
*/
|
|
45
|
+
embedded = input(false, { transform: booleanAttribute });
|
|
46
|
+
icon = computed(() => this.statusIcons[this.severity()] ?? this.statusIcons.info);
|
|
47
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiInlineNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiInlineNotificationComponent, isStandalone: true, selector: "si-inline-notification", inputs: { severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: true, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null }, translationParams: { classPropertyName: "translationParams", publicName: "translationParams", isSignal: true, isRequired: false, transformFunction: null }, embedded: { classPropertyName: "embedded", publicName: "embedded", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"alert d-flex align-items-start\"\n role=\"alert\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n [ngClass]=\"'alert-' + severity()\"\n [hidden]=\"!severity()\"\n>\n @let iconValue = icon();\n <span class=\"icon icon-stack me-4 flex-shrink-0\">\n <si-icon-next [ngClass]=\"iconValue.color\" [icon]=\"iconValue.icon\" />\n <si-icon-next [ngClass]=\"iconValue.stackedColor\" [icon]=\"iconValue.stacked\" />\n </span>\n <div class=\"d-flex flex-grow-1 flex-wrap mt-1\">\n @if (heading()) {\n <strong class=\"pe-2\">{{ heading() | translate: translationParams() }}: </strong>\n }\n <span>{{ message() | translate: translationParams() }}</span>\n </div>\n @if (action() && action()?.title) {\n <a class=\"alert-link ms-4 flex-shrink-0 mt-1\" [siLink]=\"action()\">\n {{ action()?.title | translate: translationParams() }}\n </a>\n }\n</div>\n", styles: [":host{display:block;overflow:hidden;flex-shrink:0;border-radius:var(--element-button-radius)}.alert :is(div,a){padding-block-start:1px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }] });
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiInlineNotificationComponent, decorators: [{
|
|
51
|
+
type: Component,
|
|
52
|
+
args: [{ selector: 'si-inline-notification', imports: [NgClass, SiLinkDirective, SiIconNextComponent, SiTranslateModule], template: "<div\n class=\"alert d-flex align-items-start\"\n role=\"alert\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n [ngClass]=\"'alert-' + severity()\"\n [hidden]=\"!severity()\"\n>\n @let iconValue = icon();\n <span class=\"icon icon-stack me-4 flex-shrink-0\">\n <si-icon-next [ngClass]=\"iconValue.color\" [icon]=\"iconValue.icon\" />\n <si-icon-next [ngClass]=\"iconValue.stackedColor\" [icon]=\"iconValue.stacked\" />\n </span>\n <div class=\"d-flex flex-grow-1 flex-wrap mt-1\">\n @if (heading()) {\n <strong class=\"pe-2\">{{ heading() | translate: translationParams() }}: </strong>\n }\n <span>{{ message() | translate: translationParams() }}</span>\n </div>\n @if (action() && action()?.title) {\n <a class=\"alert-link ms-4 flex-shrink-0 mt-1\" [siLink]=\"action()\">\n {{ action()?.title | translate: translationParams() }}\n </a>\n }\n</div>\n", styles: [":host{display:block;overflow:hidden;flex-shrink:0;border-radius:var(--element-button-radius)}.alert :is(div,a){padding-block-start:1px}\n"] }]
|
|
53
|
+
}] });
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Copyright Siemens 2016 - 2025.
|
|
57
|
+
* SPDX-License-Identifier: MIT
|
|
58
|
+
*/
|
|
59
|
+
class SiInlineNotificationModule {
|
|
60
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiInlineNotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
61
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiInlineNotificationModule, imports: [SiInlineNotificationComponent], exports: [SiInlineNotificationComponent] });
|
|
62
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiInlineNotificationModule, imports: [SiInlineNotificationComponent] });
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiInlineNotificationModule, decorators: [{
|
|
65
|
+
type: NgModule,
|
|
66
|
+
args: [{
|
|
67
|
+
imports: [SiInlineNotificationComponent],
|
|
68
|
+
exports: [SiInlineNotificationComponent]
|
|
69
|
+
}]
|
|
70
|
+
}] });
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Copyright Siemens 2016 - 2025.
|
|
74
|
+
* SPDX-License-Identifier: MIT
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Generated bundle index. Do not edit.
|
|
79
|
+
*/
|
|
80
|
+
|
|
81
|
+
export { SiInlineNotificationComponent, SiInlineNotificationModule };
|
|
82
|
+
//# sourceMappingURL=siemens-element-ng-inline-notification.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-inline-notification.mjs","sources":["../../../../projects/element-ng/inline-notification/si-inline-notification.component.ts","../../../../projects/element-ng/inline-notification/si-inline-notification.component.html","../../../../projects/element-ng/inline-notification/si-inline-notification.module.ts","../../../../projects/element-ng/inline-notification/index.ts","../../../../projects/element-ng/inline-notification/siemens-element-ng-inline-notification.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { booleanAttribute, Component, computed, inject, input } from '@angular/core';\nimport { StatusType } from '@siemens/element-ng/common';\nimport { SiIconNextComponent, STATUS_ICON_CONFIG } from '@siemens/element-ng/icon';\nimport { Link, SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-inline-notification',\n templateUrl: './si-inline-notification.component.html',\n styleUrl: './si-inline-notification.component.scss',\n imports: [NgClass, SiLinkDirective, SiIconNextComponent, SiTranslateModule]\n})\nexport class SiInlineNotificationComponent {\n private readonly statusIcons = inject(STATUS_ICON_CONFIG);\n /**\n * Status of inline notification.\n */\n readonly severity = input.required<StatusType>();\n\n /**\n * Heading of the message.\n */\n readonly heading = input<string>();\n\n /**\n * Main message of this inline notification.\n */\n readonly message = input.required<string>();\n\n /**\n * Optional link action for inline notification events.\n */\n readonly action = input<Link>();\n\n /**\n * Params passed to the translation pipe\n *\n * @defaultValue\n * ```\n * {}\n * ```\n */\n readonly translationParams = input<{ [key: string]: any } | undefined>({});\n\n /**\n * Displays in embedded style, w/o radius and indicator bar\n *\n * @defaultValue false\n */\n readonly embedded = input(false, { transform: booleanAttribute });\n\n protected readonly icon = computed(\n () => this.statusIcons[this.severity()] ?? this.statusIcons.info\n );\n}\n","<div\n class=\"alert d-flex align-items-start\"\n role=\"alert\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n [ngClass]=\"'alert-' + severity()\"\n [hidden]=\"!severity()\"\n>\n @let iconValue = icon();\n <span class=\"icon icon-stack me-4 flex-shrink-0\">\n <si-icon-next [ngClass]=\"iconValue.color\" [icon]=\"iconValue.icon\" />\n <si-icon-next [ngClass]=\"iconValue.stackedColor\" [icon]=\"iconValue.stacked\" />\n </span>\n <div class=\"d-flex flex-grow-1 flex-wrap mt-1\">\n @if (heading()) {\n <strong class=\"pe-2\">{{ heading() | translate: translationParams() }}: </strong>\n }\n <span>{{ message() | translate: translationParams() }}</span>\n </div>\n @if (action() && action()?.title) {\n <a class=\"alert-link ms-4 flex-shrink-0 mt-1\" [siLink]=\"action()\">\n {{ action()?.title | translate: translationParams() }}\n </a>\n }\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiInlineNotificationComponent } from './si-inline-notification.component';\n\n@NgModule({\n imports: [SiInlineNotificationComponent],\n exports: [SiInlineNotificationComponent]\n})\nexport class SiInlineNotificationModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-inline-notification.component';\nexport * from './si-inline-notification.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { InjectionToken, input, inject, HostBinding, ChangeDetectionStrategy, Component, booleanAttribute, ElementRef, ApplicationRef, computed, Injector, Directive, Injectable, NgModule } from '@angular/core';
|
|
4
|
+
import * as i1 from '@siemens/element-translate-ng/translate';
|
|
5
|
+
import { SiTranslateModule } from '@siemens/element-translate-ng/translate';
|
|
6
|
+
import { trigger, transition, style, animate } from '@angular/animations';
|
|
7
|
+
import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';
|
|
8
|
+
import { BehaviorSubject, merge, timer, combineLatest } from 'rxjs';
|
|
9
|
+
import { filter, switchMap, map, takeUntil } from 'rxjs/operators';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Copyright Siemens 2016 - 2025.
|
|
13
|
+
* SPDX-License-Identifier: MIT
|
|
14
|
+
*/
|
|
15
|
+
const LOADING_SPINNER_BLOCKING = new InjectionToken('isBlockingSpinner');
|
|
16
|
+
const LOADING_SPINNER_OVERLAY = new InjectionToken('isSpinnerOverlay');
|
|
17
|
+
class SiLoadingSpinnerComponent {
|
|
18
|
+
fadeAnimation = '';
|
|
19
|
+
/**
|
|
20
|
+
* @defaultValue
|
|
21
|
+
* ```
|
|
22
|
+
* inject(LOADING_SPINNER_BLOCKING, { optional: true })
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
isBlockingSpinner = input(inject(LOADING_SPINNER_BLOCKING, { optional: true }));
|
|
26
|
+
/**
|
|
27
|
+
* @defaultValue
|
|
28
|
+
* ```
|
|
29
|
+
* inject(LOADING_SPINNER_OVERLAY, { optional: true })
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
isSpinnerOverlay = input(inject(LOADING_SPINNER_OVERLAY, { optional: true }));
|
|
33
|
+
/**
|
|
34
|
+
* Needed for a11y
|
|
35
|
+
*
|
|
36
|
+
* @defaultValue
|
|
37
|
+
* ```
|
|
38
|
+
* $localize`:@@SI_LOADING_SPINNER.LABEL:Loading`
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
ariaLabel = input($localize `:@@SI_LOADING_SPINNER.LABEL:Loading`);
|
|
42
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: SiLoadingSpinnerComponent, isStandalone: true, selector: "si-loading-spinner", inputs: { isBlockingSpinner: { classPropertyName: "isBlockingSpinner", publicName: "isBlockingSpinner", isSignal: true, isRequired: false, transformFunction: null }, isSpinnerOverlay: { classPropertyName: "isSpinnerOverlay", publicName: "isSpinnerOverlay", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "@fadeAnimation": "this.fadeAnimation" } }, ngImport: i0, template: "<div\n class=\"loading\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n [class.blocking-spinner]=\"isBlockingSpinner()\"\n [class.spinner-overlay]=\"isSpinnerOverlay()\"\n>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <title>{{ ariaLabel() | translate }}</title>\n <g>\n <path d=\"M256,156a16,16,0,0,1-16-16V80a16,16,0,0,1,32,0v60A16,16,0,0,1,256,156Z\" />\n <path\n d=\"M314.78,175.1a16,16,0,0,1-3.54-22.35l35.27-48.54A16,16,0,1,1,372.39,123l-35.26,48.54A16,16,0,0,1,314.78,175.1Z\"\n />\n <path\n d=\"M351.11,225.1a16,16,0,0,1,10.27-20.16l57.06-18.54a16,16,0,1,1,9.89,30.43l-57.06,18.54A16,16,0,0,1,351.11,225.1Z\"\n />\n <path\n d=\"M351.11,286.9a16,16,0,0,1,20.16-10.27l57.06,18.54a16,16,0,1,1-9.89,30.43l-57.06-18.54A16,16,0,0,1,351.11,286.9Z\"\n />\n <path\n d=\"M314.78,336.9a16,16,0,0,1,22.35,3.54L372.39,389a16,16,0,1,1-25.88,18.81l-35.27-48.54A16,16,0,0,1,314.78,336.9Z\"\n />\n <path d=\"M256,356a16,16,0,0,1,16,16v60a16,16,0,0,1-32,0V372A16,16,0,0,1,256,356Z\" />\n <path\n d=\"M197.22,336.9a16,16,0,0,1,3.54,22.35l-35.27,48.54A16,16,0,1,1,139.61,389l35.26-48.54A16,16,0,0,1,197.22,336.9Z\"\n />\n <path\n d=\"M160.89,286.9a16,16,0,0,1-10.27,20.16L93.56,325.6a16,16,0,0,1-9.89-30.43l57.06-18.54A16,16,0,0,1,160.89,286.9Z\"\n />\n <path\n d=\"M160.89,225.1a16,16,0,0,1-20.16,10.27L83.67,216.83a16,16,0,1,1,9.89-30.43l57.06,18.54A16,16,0,0,1,160.89,225.1Z\"\n />\n <path\n d=\"M197.22,175.1a16,16,0,0,1-22.35-3.54L139.61,123a16,16,0,1,1,25.88-18.81l35.27,48.54A16,16,0,0,1,197.22,175.1Z\"\n />\n </g>\n </svg>\n</div>\n", styles: ["@keyframes spinner-fade{0%{opacity:1}to{opacity:.05}}.loading{display:block;text-align:center}.blocking-spinner{background:var(--element-base-translucent-1)}.spinner-overlay{position:absolute;inset:0;z-index:1090;display:flex;justify-content:center;align-items:center}svg{inline-size:var(--loading-spinner-size, 64px);block-size:var(--loading-spinner-size, 64px)}path{fill:var(--loading-spinner-color, var(--element-ui-2));animation:spinner-fade calc(1s * var(--element-animations-enabled, 1)) infinite linear}path:nth-child(1){animation-delay:0s;opacity:1}path:nth-child(2){animation-delay:.1s;opacity:.9}path:nth-child(3){animation-delay:.2s;opacity:.8}path:nth-child(4){animation-delay:.3s;opacity:.7}path:nth-child(5){animation-delay:.4s;opacity:.6}path:nth-child(6){animation-delay:.5s;opacity:.5}path:nth-child(7){animation-delay:.6s;opacity:.4}path:nth-child(8){animation-delay:.7s;opacity:.3}path:nth-child(9){animation-delay:.8s;opacity:.2}path:nth-child(10){animation-delay:.9s;opacity:.1}\n"], dependencies: [{ kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }], animations: [
|
|
44
|
+
trigger('fadeAnimation', [
|
|
45
|
+
transition(':enter', [style({ opacity: 0 }), animate('200ms ease-in')]),
|
|
46
|
+
transition(':leave', animate('200ms ease-out', style({ opacity: 0 })))
|
|
47
|
+
])
|
|
48
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingSpinnerComponent, decorators: [{
|
|
51
|
+
type: Component,
|
|
52
|
+
args: [{ selector: 'si-loading-spinner', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
|
|
53
|
+
trigger('fadeAnimation', [
|
|
54
|
+
transition(':enter', [style({ opacity: 0 }), animate('200ms ease-in')]),
|
|
55
|
+
transition(':leave', animate('200ms ease-out', style({ opacity: 0 })))
|
|
56
|
+
])
|
|
57
|
+
], imports: [SiTranslateModule], template: "<div\n class=\"loading\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n [class.blocking-spinner]=\"isBlockingSpinner()\"\n [class.spinner-overlay]=\"isSpinnerOverlay()\"\n>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <title>{{ ariaLabel() | translate }}</title>\n <g>\n <path d=\"M256,156a16,16,0,0,1-16-16V80a16,16,0,0,1,32,0v60A16,16,0,0,1,256,156Z\" />\n <path\n d=\"M314.78,175.1a16,16,0,0,1-3.54-22.35l35.27-48.54A16,16,0,1,1,372.39,123l-35.26,48.54A16,16,0,0,1,314.78,175.1Z\"\n />\n <path\n d=\"M351.11,225.1a16,16,0,0,1,10.27-20.16l57.06-18.54a16,16,0,1,1,9.89,30.43l-57.06,18.54A16,16,0,0,1,351.11,225.1Z\"\n />\n <path\n d=\"M351.11,286.9a16,16,0,0,1,20.16-10.27l57.06,18.54a16,16,0,1,1-9.89,30.43l-57.06-18.54A16,16,0,0,1,351.11,286.9Z\"\n />\n <path\n d=\"M314.78,336.9a16,16,0,0,1,22.35,3.54L372.39,389a16,16,0,1,1-25.88,18.81l-35.27-48.54A16,16,0,0,1,314.78,336.9Z\"\n />\n <path d=\"M256,356a16,16,0,0,1,16,16v60a16,16,0,0,1-32,0V372A16,16,0,0,1,256,356Z\" />\n <path\n d=\"M197.22,336.9a16,16,0,0,1,3.54,22.35l-35.27,48.54A16,16,0,1,1,139.61,389l35.26-48.54A16,16,0,0,1,197.22,336.9Z\"\n />\n <path\n d=\"M160.89,286.9a16,16,0,0,1-10.27,20.16L93.56,325.6a16,16,0,0,1-9.89-30.43l57.06-18.54A16,16,0,0,1,160.89,286.9Z\"\n />\n <path\n d=\"M160.89,225.1a16,16,0,0,1-20.16,10.27L83.67,216.83a16,16,0,1,1,9.89-30.43l57.06,18.54A16,16,0,0,1,160.89,225.1Z\"\n />\n <path\n d=\"M197.22,175.1a16,16,0,0,1-22.35-3.54L139.61,123a16,16,0,1,1,25.88-18.81l35.27,48.54A16,16,0,0,1,197.22,175.1Z\"\n />\n </g>\n </svg>\n</div>\n", styles: ["@keyframes spinner-fade{0%{opacity:1}to{opacity:.05}}.loading{display:block;text-align:center}.blocking-spinner{background:var(--element-base-translucent-1)}.spinner-overlay{position:absolute;inset:0;z-index:1090;display:flex;justify-content:center;align-items:center}svg{inline-size:var(--loading-spinner-size, 64px);block-size:var(--loading-spinner-size, 64px)}path{fill:var(--loading-spinner-color, var(--element-ui-2));animation:spinner-fade calc(1s * var(--element-animations-enabled, 1)) infinite linear}path:nth-child(1){animation-delay:0s;opacity:1}path:nth-child(2){animation-delay:.1s;opacity:.9}path:nth-child(3){animation-delay:.2s;opacity:.8}path:nth-child(4){animation-delay:.3s;opacity:.7}path:nth-child(5){animation-delay:.4s;opacity:.6}path:nth-child(6){animation-delay:.5s;opacity:.5}path:nth-child(7){animation-delay:.6s;opacity:.4}path:nth-child(8){animation-delay:.7s;opacity:.3}path:nth-child(9){animation-delay:.8s;opacity:.2}path:nth-child(10){animation-delay:.9s;opacity:.1}\n"] }]
|
|
58
|
+
}], propDecorators: { fadeAnimation: [{
|
|
59
|
+
type: HostBinding,
|
|
60
|
+
args: ['@fadeAnimation']
|
|
61
|
+
}] } });
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Copyright Siemens 2016 - 2025.
|
|
65
|
+
* SPDX-License-Identifier: MIT
|
|
66
|
+
*/
|
|
67
|
+
class SiLoadingButtonComponent {
|
|
68
|
+
/**
|
|
69
|
+
* Whether the button is disabled.
|
|
70
|
+
* @defaultValue false
|
|
71
|
+
*/
|
|
72
|
+
disabled = input(false, { transform: booleanAttribute });
|
|
73
|
+
/**
|
|
74
|
+
* Whether the loading state should be displayed.
|
|
75
|
+
* @defaultValue false
|
|
76
|
+
*/
|
|
77
|
+
loading = input(false, { transform: booleanAttribute });
|
|
78
|
+
/**
|
|
79
|
+
* Type of the button.
|
|
80
|
+
* @defaultValue 'button'
|
|
81
|
+
**/
|
|
82
|
+
type = input('button');
|
|
83
|
+
/** aria-label for the button */
|
|
84
|
+
ariaLabel = input();
|
|
85
|
+
/** aria-labelledby for the button */
|
|
86
|
+
ariaLabelledBy = input();
|
|
87
|
+
/**
|
|
88
|
+
* CSS class for the button.
|
|
89
|
+
* @defaultValue ''
|
|
90
|
+
*/
|
|
91
|
+
buttonClass = input('');
|
|
92
|
+
handleClick(event) {
|
|
93
|
+
if (this.disabled() || this.loading()) {
|
|
94
|
+
event.stopPropagation();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
98
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiLoadingButtonComponent, isStandalone: true, selector: "si-loading-button", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, buttonClass: { classPropertyName: "buttonClass", publicName: "buttonClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.pe-none": "disabled()" } }, ngImport: i0, template: "<button\n [type]=\"type()\"\n [ngClass]=\"buttonClass()\"\n [class.loading]=\"loading()\"\n [class.disabled]=\"loading()\"\n [disabled]=\"disabled()\"\n [attr.aria-disabled]=\"disabled() || loading()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.tabindex]=\"loading() ? '-1' : null\"\n (click)=\"handleClick($event)\"\n>\n <div class=\"button-wrapper\">\n <ng-content />\n </div>\n</button>\n@if (loading()) {\n <div class=\"spinner-wrapper\" (click)=\"$event.stopPropagation()\">\n <si-loading-spinner />\n </div>\n}\n", styles: [":host{position:relative;display:inline-flex;align-items:center;justify-content:center}button{inline-size:100%}button.loading .button-wrapper,button.loading:before{opacity:0}.button-wrapper,.spinner-wrapper{display:flex;align-items:center;justify-content:center}.spinner-wrapper{--loading-spinner-size: 24px;--loading-spinner-color: var(--element-ui-6);position:absolute;inset:0}:is(.btn-secondary,.btn-tertiary)+.spinner-wrapper{--loading-spinner-color: var(--element-action-secondary-text)}.btn-danger+.spinner-wrapper{--loading-spinner-color: var(--element-action-danger-text)}.btn-warning+.spinner-wrapper{--loading-spinner-color: var(--element-action-warning-text)}.btn-ghost+.spinner-wrapper{--loading-spinner-color: var(--element-ui-2)}:is(.btn-secondary-warning,.btn-tertiary-warning)+.spinner-wrapper{--loading-spinner-color: var(--element-action-secondary-warning)}:is(.btn-secondary-danger,.btn-tertiary-danger)+.spinner-wrapper{--loading-spinner-color: var(--element-action-secondary-danger)}\n"], dependencies: [{ kind: "component", type: SiLoadingSpinnerComponent, selector: "si-loading-spinner", inputs: ["isBlockingSpinner", "isSpinnerOverlay", "ariaLabel"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
99
|
+
}
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingButtonComponent, decorators: [{
|
|
101
|
+
type: Component,
|
|
102
|
+
args: [{ selector: 'si-loading-button', imports: [SiLoadingSpinnerComponent, NgClass, SiTranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
103
|
+
'[class.pe-none]': 'disabled()'
|
|
104
|
+
}, template: "<button\n [type]=\"type()\"\n [ngClass]=\"buttonClass()\"\n [class.loading]=\"loading()\"\n [class.disabled]=\"loading()\"\n [disabled]=\"disabled()\"\n [attr.aria-disabled]=\"disabled() || loading()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.tabindex]=\"loading() ? '-1' : null\"\n (click)=\"handleClick($event)\"\n>\n <div class=\"button-wrapper\">\n <ng-content />\n </div>\n</button>\n@if (loading()) {\n <div class=\"spinner-wrapper\" (click)=\"$event.stopPropagation()\">\n <si-loading-spinner />\n </div>\n}\n", styles: [":host{position:relative;display:inline-flex;align-items:center;justify-content:center}button{inline-size:100%}button.loading .button-wrapper,button.loading:before{opacity:0}.button-wrapper,.spinner-wrapper{display:flex;align-items:center;justify-content:center}.spinner-wrapper{--loading-spinner-size: 24px;--loading-spinner-color: var(--element-ui-6);position:absolute;inset:0}:is(.btn-secondary,.btn-tertiary)+.spinner-wrapper{--loading-spinner-color: var(--element-action-secondary-text)}.btn-danger+.spinner-wrapper{--loading-spinner-color: var(--element-action-danger-text)}.btn-warning+.spinner-wrapper{--loading-spinner-color: var(--element-action-warning-text)}.btn-ghost+.spinner-wrapper{--loading-spinner-color: var(--element-ui-2)}:is(.btn-secondary-warning,.btn-tertiary-warning)+.spinner-wrapper{--loading-spinner-color: var(--element-action-secondary-warning)}:is(.btn-secondary-danger,.btn-tertiary-danger)+.spinner-wrapper{--loading-spinner-color: var(--element-action-secondary-danger)}\n"] }]
|
|
105
|
+
}] });
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Copyright Siemens 2016 - 2025.
|
|
109
|
+
* SPDX-License-Identifier: MIT
|
|
110
|
+
*/
|
|
111
|
+
class SiLoadingSpinnerDirective {
|
|
112
|
+
/**
|
|
113
|
+
* Displays the loading spinner when the value is either true or non-zero.
|
|
114
|
+
*/
|
|
115
|
+
siLoading = input.required();
|
|
116
|
+
/**
|
|
117
|
+
* Displays semi-transparent backdrop for the spinner, default is false.
|
|
118
|
+
*
|
|
119
|
+
* @defaultValue false
|
|
120
|
+
*/
|
|
121
|
+
blocking = input(false, { transform: booleanAttribute });
|
|
122
|
+
/**
|
|
123
|
+
* Specifies if the spinner should be displayed after a delay, default is true.
|
|
124
|
+
*
|
|
125
|
+
* @defaultValue true
|
|
126
|
+
*/
|
|
127
|
+
initialDelay = input(true, { transform: booleanAttribute });
|
|
128
|
+
el = inject(ElementRef);
|
|
129
|
+
appRef = inject(ApplicationRef);
|
|
130
|
+
sub;
|
|
131
|
+
progressSubject = new BehaviorSubject(false);
|
|
132
|
+
off$ = this.progressSubject.pipe(filter(val => !val));
|
|
133
|
+
on$ = this.progressSubject.pipe(filter(val => val));
|
|
134
|
+
initialWaitTime = computed(() => (this.initialDelay() ? 500 : 0));
|
|
135
|
+
minSpinTime = 500;
|
|
136
|
+
compPortal = new ComponentPortal(SiLoadingSpinnerComponent);
|
|
137
|
+
// this makes sure the spinner only displays with a delay of 500ms and stays for 500ms so
|
|
138
|
+
// that it doesn't flicker
|
|
139
|
+
spinner$ = this.on$.pipe(switchMap(() => merge(timer(this.initialWaitTime()).pipe(map(() => true), takeUntil(this.off$)), combineLatest([this.off$, timer(this.initialWaitTime() + this.minSpinTime)]).pipe(map(() => false)))));
|
|
140
|
+
createPortal() {
|
|
141
|
+
const providers = [
|
|
142
|
+
{ provide: LOADING_SPINNER_BLOCKING, useValue: this.blocking() },
|
|
143
|
+
{
|
|
144
|
+
provide: LOADING_SPINNER_OVERLAY,
|
|
145
|
+
useValue: true
|
|
146
|
+
}
|
|
147
|
+
];
|
|
148
|
+
const outlet = new DomPortalOutlet(this.el.nativeElement, undefined, this.appRef, Injector.create({ providers }));
|
|
149
|
+
this.compPortal.attach(outlet);
|
|
150
|
+
}
|
|
151
|
+
ngOnInit() {
|
|
152
|
+
this.sub = this.spinner$.subscribe(val => {
|
|
153
|
+
if (val) {
|
|
154
|
+
if (!this.compPortal.isAttached) {
|
|
155
|
+
this.createPortal();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else if (this.compPortal.isAttached) {
|
|
159
|
+
this.compPortal.detach();
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
ngOnChanges() {
|
|
164
|
+
const newState = !!this.siLoading();
|
|
165
|
+
if (newState !== this.progressSubject.value) {
|
|
166
|
+
this.progressSubject.next(newState);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
ngOnDestroy() {
|
|
170
|
+
this.sub?.unsubscribe();
|
|
171
|
+
if (this.compPortal.isAttached) {
|
|
172
|
+
this.compPortal.detach();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingSpinnerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
176
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: SiLoadingSpinnerDirective, isStandalone: true, selector: "[siLoading]", inputs: { siLoading: { classPropertyName: "siLoading", publicName: "siLoading", isSignal: true, isRequired: true, transformFunction: null }, blocking: { classPropertyName: "blocking", publicName: "blocking", isSignal: true, isRequired: false, transformFunction: null }, initialDelay: { classPropertyName: "initialDelay", publicName: "initialDelay", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "position-relative" }, usesOnChanges: true, ngImport: i0 });
|
|
177
|
+
}
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingSpinnerDirective, decorators: [{
|
|
179
|
+
type: Directive,
|
|
180
|
+
args: [{
|
|
181
|
+
selector: '[siLoading]',
|
|
182
|
+
host: {
|
|
183
|
+
class: 'position-relative'
|
|
184
|
+
}
|
|
185
|
+
}]
|
|
186
|
+
}] });
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Copyright Siemens 2016 - 2025.
|
|
190
|
+
* SPDX-License-Identifier: MIT
|
|
191
|
+
*/
|
|
192
|
+
class SiLoadingService {
|
|
193
|
+
/**
|
|
194
|
+
* Counts the number of loads active, is `0` when all loading is finished (or hasn't started).
|
|
195
|
+
*/
|
|
196
|
+
counter = new BehaviorSubject(0);
|
|
197
|
+
/**
|
|
198
|
+
* Start the loading.
|
|
199
|
+
*/
|
|
200
|
+
startLoad() {
|
|
201
|
+
this.counter.next(this.counter.value + 1);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Stop the loading.
|
|
205
|
+
*/
|
|
206
|
+
stopLoad() {
|
|
207
|
+
if (this.counter.value > 0) {
|
|
208
|
+
this.counter.next(this.counter.value - 1);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
212
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingService, providedIn: 'root' });
|
|
213
|
+
}
|
|
214
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingService, decorators: [{
|
|
215
|
+
type: Injectable,
|
|
216
|
+
args: [{
|
|
217
|
+
providedIn: 'root'
|
|
218
|
+
}]
|
|
219
|
+
}] });
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Copyright Siemens 2016 - 2025.
|
|
223
|
+
* SPDX-License-Identifier: MIT
|
|
224
|
+
*/
|
|
225
|
+
class SiLoadingSpinnerModule {
|
|
226
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingSpinnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
227
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingSpinnerModule, imports: [SiLoadingSpinnerComponent, SiLoadingSpinnerDirective], exports: [SiLoadingSpinnerComponent, SiLoadingSpinnerDirective] });
|
|
228
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingSpinnerModule, imports: [SiLoadingSpinnerComponent] });
|
|
229
|
+
}
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLoadingSpinnerModule, decorators: [{
|
|
231
|
+
type: NgModule,
|
|
232
|
+
args: [{
|
|
233
|
+
imports: [SiLoadingSpinnerComponent, SiLoadingSpinnerDirective],
|
|
234
|
+
exports: [SiLoadingSpinnerComponent, SiLoadingSpinnerDirective]
|
|
235
|
+
}]
|
|
236
|
+
}] });
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Copyright Siemens 2016 - 2025.
|
|
240
|
+
* SPDX-License-Identifier: MIT
|
|
241
|
+
*/
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Generated bundle index. Do not edit.
|
|
245
|
+
*/
|
|
246
|
+
|
|
247
|
+
export { LOADING_SPINNER_BLOCKING, LOADING_SPINNER_OVERLAY, SiLoadingButtonComponent, SiLoadingService, SiLoadingSpinnerComponent, SiLoadingSpinnerDirective, SiLoadingSpinnerModule };
|
|
248
|
+
//# sourceMappingURL=siemens-element-ng-loading-spinner.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-loading-spinner.mjs","sources":["../../../../projects/element-ng/loading-spinner/si-loading-spinner.component.ts","../../../../projects/element-ng/loading-spinner/si-loading-spinner.component.html","../../../../projects/element-ng/loading-spinner/si-loading-button.component.ts","../../../../projects/element-ng/loading-spinner/si-loading-button.component.html","../../../../projects/element-ng/loading-spinner/si-loading-spinner.directive.ts","../../../../projects/element-ng/loading-spinner/si-loading-spinner.service.ts","../../../../projects/element-ng/loading-spinner/si-loading-spinner.module.ts","../../../../projects/element-ng/loading-spinner/index.ts","../../../../projects/element-ng/loading-spinner/siemens-element-ng-loading-spinner.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n inject,\n InjectionToken,\n input\n} from '@angular/core';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\nexport const LOADING_SPINNER_BLOCKING = new InjectionToken<boolean>('isBlockingSpinner');\nexport const LOADING_SPINNER_OVERLAY = new InjectionToken<boolean>('isSpinnerOverlay');\n\n@Component({\n selector: 'si-loading-spinner',\n templateUrl: './si-loading-spinner.component.html',\n styleUrl: './si-loading-spinner.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('fadeAnimation', [\n transition(':enter', [style({ opacity: 0 }), animate('200ms ease-in')]),\n transition(':leave', animate('200ms ease-out', style({ opacity: 0 })))\n ])\n ],\n imports: [SiTranslateModule]\n})\nexport class SiLoadingSpinnerComponent {\n @HostBinding('@fadeAnimation') protected fadeAnimation = '';\n /**\n * @defaultValue\n * ```\n * inject(LOADING_SPINNER_BLOCKING, { optional: true })\n * ```\n */\n readonly isBlockingSpinner = input(inject(LOADING_SPINNER_BLOCKING, { optional: true }));\n /**\n * @defaultValue\n * ```\n * inject(LOADING_SPINNER_OVERLAY, { optional: true })\n * ```\n */\n readonly isSpinnerOverlay = input(inject(LOADING_SPINNER_OVERLAY, { optional: true }));\n /**\n * Needed for a11y\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_LOADING_SPINNER.LABEL:Loading`\n * ```\n */\n readonly ariaLabel = input($localize`:@@SI_LOADING_SPINNER.LABEL:Loading`);\n}\n","<div\n class=\"loading\"\n aria-atomic=\"true\"\n aria-live=\"assertive\"\n [class.blocking-spinner]=\"isBlockingSpinner()\"\n [class.spinner-overlay]=\"isSpinnerOverlay()\"\n>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <title>{{ ariaLabel() | translate }}</title>\n <g>\n <path d=\"M256,156a16,16,0,0,1-16-16V80a16,16,0,0,1,32,0v60A16,16,0,0,1,256,156Z\" />\n <path\n d=\"M314.78,175.1a16,16,0,0,1-3.54-22.35l35.27-48.54A16,16,0,1,1,372.39,123l-35.26,48.54A16,16,0,0,1,314.78,175.1Z\"\n />\n <path\n d=\"M351.11,225.1a16,16,0,0,1,10.27-20.16l57.06-18.54a16,16,0,1,1,9.89,30.43l-57.06,18.54A16,16,0,0,1,351.11,225.1Z\"\n />\n <path\n d=\"M351.11,286.9a16,16,0,0,1,20.16-10.27l57.06,18.54a16,16,0,1,1-9.89,30.43l-57.06-18.54A16,16,0,0,1,351.11,286.9Z\"\n />\n <path\n d=\"M314.78,336.9a16,16,0,0,1,22.35,3.54L372.39,389a16,16,0,1,1-25.88,18.81l-35.27-48.54A16,16,0,0,1,314.78,336.9Z\"\n />\n <path d=\"M256,356a16,16,0,0,1,16,16v60a16,16,0,0,1-32,0V372A16,16,0,0,1,256,356Z\" />\n <path\n d=\"M197.22,336.9a16,16,0,0,1,3.54,22.35l-35.27,48.54A16,16,0,1,1,139.61,389l35.26-48.54A16,16,0,0,1,197.22,336.9Z\"\n />\n <path\n d=\"M160.89,286.9a16,16,0,0,1-10.27,20.16L93.56,325.6a16,16,0,0,1-9.89-30.43l57.06-18.54A16,16,0,0,1,160.89,286.9Z\"\n />\n <path\n d=\"M160.89,225.1a16,16,0,0,1-20.16,10.27L83.67,216.83a16,16,0,1,1,9.89-30.43l57.06,18.54A16,16,0,0,1,160.89,225.1Z\"\n />\n <path\n d=\"M197.22,175.1a16,16,0,0,1-22.35-3.54L139.61,123a16,16,0,1,1,25.88-18.81l35.27,48.54A16,16,0,0,1,197.22,175.1Z\"\n />\n </g>\n </svg>\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { SiTranslateModule, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiLoadingSpinnerComponent } from './si-loading-spinner.component';\n\n@Component({\n selector: 'si-loading-button',\n templateUrl: './si-loading-button.component.html',\n styleUrl: './si-loading-button.component.scss',\n imports: [SiLoadingSpinnerComponent, NgClass, SiTranslateModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.pe-none]': 'disabled()'\n }\n})\nexport class SiLoadingButtonComponent {\n /**\n * Whether the button is disabled.\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n /**\n * Whether the loading state should be displayed.\n * @defaultValue false\n */\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Type of the button.\n * @defaultValue 'button'\n **/\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n /** aria-label for the button */\n readonly ariaLabel = input<TranslatableString>();\n /** aria-labelledby for the button */\n readonly ariaLabelledBy = input<string>();\n /**\n * CSS class for the button.\n * @defaultValue ''\n */\n readonly buttonClass = input('');\n\n protected handleClick(event: Event): void {\n if (this.disabled() || this.loading()) {\n event.stopPropagation();\n }\n }\n}\n","<button\n [type]=\"type()\"\n [ngClass]=\"buttonClass()\"\n [class.loading]=\"loading()\"\n [class.disabled]=\"loading()\"\n [disabled]=\"disabled()\"\n [attr.aria-disabled]=\"disabled() || loading()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.tabindex]=\"loading() ? '-1' : null\"\n (click)=\"handleClick($event)\"\n>\n <div class=\"button-wrapper\">\n <ng-content />\n </div>\n</button>\n@if (loading()) {\n <div class=\"spinner-wrapper\" (click)=\"$event.stopPropagation()\">\n <si-loading-spinner />\n </div>\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport {\n ApplicationRef,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n Injector,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n StaticProvider\n} from '@angular/core';\nimport { BehaviorSubject, combineLatest, merge, Subscription, timer } from 'rxjs';\nimport { filter, map, switchMap, takeUntil } from 'rxjs/operators';\n\nimport {\n LOADING_SPINNER_BLOCKING,\n LOADING_SPINNER_OVERLAY,\n SiLoadingSpinnerComponent\n} from './si-loading-spinner.component';\n@Directive({\n selector: '[siLoading]',\n host: {\n class: 'position-relative'\n }\n})\nexport class SiLoadingSpinnerDirective implements OnInit, OnChanges, OnDestroy {\n /**\n * Displays the loading spinner when the value is either true or non-zero.\n */\n readonly siLoading = input.required<boolean | number>();\n\n /**\n * Displays semi-transparent backdrop for the spinner, default is false.\n *\n * @defaultValue false\n */\n readonly blocking = input(false, { transform: booleanAttribute });\n\n /**\n * Specifies if the spinner should be displayed after a delay, default is true.\n *\n * @defaultValue true\n */\n readonly initialDelay = input(true, { transform: booleanAttribute });\n\n private el = inject(ElementRef);\n private appRef = inject(ApplicationRef);\n\n private sub?: Subscription;\n private progressSubject = new BehaviorSubject(false);\n private off$ = this.progressSubject.pipe(filter(val => !val));\n private on$ = this.progressSubject.pipe(filter(val => val));\n private readonly initialWaitTime = computed(() => (this.initialDelay() ? 500 : 0));\n private minSpinTime = 500;\n private compPortal = new ComponentPortal(SiLoadingSpinnerComponent);\n\n // this makes sure the spinner only displays with a delay of 500ms and stays for 500ms so\n // that it doesn't flicker\n protected readonly spinner$ = this.on$.pipe(\n switchMap(() =>\n merge(\n timer(this.initialWaitTime()).pipe(\n map(() => true),\n takeUntil(this.off$)\n ),\n combineLatest([this.off$, timer(this.initialWaitTime() + this.minSpinTime)]).pipe(\n map(() => false)\n )\n )\n )\n );\n\n private createPortal(): void {\n const providers: StaticProvider[] = [\n { provide: LOADING_SPINNER_BLOCKING, useValue: this.blocking() },\n {\n provide: LOADING_SPINNER_OVERLAY,\n useValue: true\n }\n ];\n const outlet = new DomPortalOutlet(\n this.el.nativeElement,\n undefined,\n this.appRef,\n Injector.create({ providers })\n );\n this.compPortal.attach(outlet);\n }\n\n ngOnInit(): void {\n this.sub = this.spinner$.subscribe(val => {\n if (val) {\n if (!this.compPortal.isAttached) {\n this.createPortal();\n }\n } else if (this.compPortal.isAttached) {\n this.compPortal.detach();\n }\n });\n }\n\n ngOnChanges(): void {\n const newState = !!this.siLoading();\n if (newState !== this.progressSubject.value) {\n this.progressSubject.next(newState);\n }\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n if (this.compPortal.isAttached) {\n this.compPortal.detach();\n }\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SiLoadingService {\n /**\n * Counts the number of loads active, is `0` when all loading is finished (or hasn't started).\n */\n readonly counter: BehaviorSubject<number> = new BehaviorSubject<number>(0);\n\n /**\n * Start the loading.\n */\n startLoad(): void {\n this.counter.next(this.counter.value + 1);\n }\n\n /**\n * Stop the loading.\n */\n stopLoad(): void {\n if (this.counter.value > 0) {\n this.counter.next(this.counter.value - 1);\n }\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLoadingSpinnerComponent } from './si-loading-spinner.component';\nimport { SiLoadingSpinnerDirective } from './si-loading-spinner.directive';\n\n@NgModule({\n imports: [SiLoadingSpinnerComponent, SiLoadingSpinnerDirective],\n exports: [SiLoadingSpinnerComponent, SiLoadingSpinnerDirective]\n})\nexport class SiLoadingSpinnerModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-loading-button.component';\nexport * from './si-loading-spinner.component';\nexport * from './si-loading-spinner.directive';\nexport * from './si-loading-spinner.service';\nexport * from './si-loading-spinner.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|