@siemens/element-ng 47.5.0 → 47.6.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/breadcrumb-router/index.d.ts +8 -0
- package/breadcrumb-router/package.json +3 -0
- package/breadcrumb-router/si-breadcrumb-default-resolver.service.d.ts +23 -0
- package/breadcrumb-router/si-breadcrumb-router.component.d.ts +30 -0
- package/breadcrumb-router/si-breadcrumb-router.model.d.ts +53 -0
- package/breadcrumb-router/si-breadcrumb-router.module.d.ts +7 -0
- package/date-range-filter/si-date-range-filter.component.d.ts +5 -1
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +263 -0
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +26 -5
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs +2 -2
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +8 -22
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +269 -0
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-modal.mjs +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +802 -0
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-resize-observer.mjs +6 -3
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-next.mjs +29 -164
- package/fesm2022/siemens-element-ng-tabs-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +319 -0
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-tour.mjs +384 -0
- package/fesm2022/siemens-element-ng-tour.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/icon/si-status-icon.component.d.ts +1 -6
- package/main-detail-container/index.d.ts +6 -0
- package/main-detail-container/package.json +3 -0
- package/main-detail-container/si-main-detail-container.component.d.ts +151 -0
- package/main-detail-container/si-main-detail-container.module.d.ts +7 -0
- package/navbar-vertical/index.d.ts +7 -0
- package/navbar-vertical/package.json +3 -0
- package/navbar-vertical/si-navbar-vertical-divider.component.d.ts +5 -0
- package/navbar-vertical/si-navbar-vertical-group-trigger.directive.d.ts +38 -0
- package/navbar-vertical/si-navbar-vertical-group.component.d.ts +16 -0
- package/navbar-vertical/si-navbar-vertical-header.component.d.ts +6 -0
- package/navbar-vertical/si-navbar-vertical-item-legacy.component.d.ts +17 -0
- package/navbar-vertical/si-navbar-vertical-item.component.d.ts +21 -0
- package/navbar-vertical/si-navbar-vertical.component.d.ts +148 -0
- package/navbar-vertical/si-navbar-vertical.model.d.ts +77 -0
- package/navbar-vertical/si-navbar-vertical.module.d.ts +7 -0
- package/navbar-vertical/si-navbar-vertical.provider.d.ts +7 -0
- package/package.json +24 -4
- package/resize-observer/si-resize-observer.directive.d.ts +3 -1
- package/tabs-next/si-tab-next-base.directive.d.ts +2 -5
- package/tabs-next/si-tab-next-link.component.d.ts +0 -2
- package/tabs-next/si-tabset-next.component.d.ts +3 -18
- package/template-i18n.json +16 -0
- package/threshold/index.d.ts +6 -0
- package/threshold/package.json +3 -0
- package/threshold/si-readonly-threshold-option.component.d.ts +11 -0
- package/threshold/si-threshold.component.d.ts +147 -0
- package/threshold/si-threshold.module.d.ts +7 -0
- package/tour/index.d.ts +6 -0
- package/tour/package.json +3 -0
- package/tour/si-tour-highlight.component.d.ts +15 -0
- package/tour/si-tour-token.model.d.ts +27 -0
- package/tour/si-tour.component.d.ts +31 -0
- package/tour/si-tour.model.d.ts +51 -0
- package/tour/si-tour.service.d.ts +62 -0
- package/translate/si-translatable-keys.interface.d.ts +16 -0
- package/tree-view/si-tree-view.component.d.ts +1 -1
|
@@ -411,7 +411,7 @@ class SiWizardComponent {
|
|
|
411
411
|
}
|
|
412
412
|
}
|
|
413
413
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiWizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
414
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiWizardComponent, isStandalone: true, selector: "si-wizard", inputs: { backText: { classPropertyName: "backText", publicName: "backText", isSignal: true, isRequired: false, transformFunction: null }, nextText: { classPropertyName: "nextText", publicName: "nextText", isSignal: true, isRequired: false, transformFunction: null }, hasNavigation: { classPropertyName: "hasNavigation", publicName: "hasNavigation", isSignal: true, isRequired: false, transformFunction: null }, hideNavigation: { classPropertyName: "hideNavigation", publicName: "hideNavigation", isSignal: true, isRequired: false, transformFunction: null }, saveText: { classPropertyName: "saveText", publicName: "saveText", isSignal: true, isRequired: false, transformFunction: null }, hideSave: { classPropertyName: "hideSave", publicName: "hideSave", isSignal: true, isRequired: false, transformFunction: null }, completionText: { classPropertyName: "completionText", publicName: "completionText", isSignal: true, isRequired: false, transformFunction: null }, cancelText: { classPropertyName: "cancelText", publicName: "cancelText", isSignal: true, isRequired: false, transformFunction: null }, hasCancel: { classPropertyName: "hasCancel", publicName: "hasCancel", isSignal: true, isRequired: false, transformFunction: null }, enableCompletionPage: { classPropertyName: "enableCompletionPage", publicName: "enableCompletionPage", isSignal: true, isRequired: false, transformFunction: null }, completionPageVisibleTime: { classPropertyName: "completionPageVisibleTime", publicName: "completionPageVisibleTime", isSignal: true, isRequired: false, transformFunction: null }, stepIcon: { classPropertyName: "stepIcon", publicName: "stepIcon", isSignal: true, isRequired: false, transformFunction: null }, stepActiveIcon: { classPropertyName: "stepActiveIcon", publicName: "stepActiveIcon", isSignal: true, isRequired: false, transformFunction: null }, stepCompletedIcon: { classPropertyName: "stepCompletedIcon", publicName: "stepCompletedIcon", isSignal: true, isRequired: false, transformFunction: null }, stepFailedIcon: { classPropertyName: "stepFailedIcon", publicName: "stepFailedIcon", isSignal: true, isRequired: false, transformFunction: null }, verticalLayout: { classPropertyName: "verticalLayout", publicName: "verticalLayout", isSignal: true, isRequired: false, transformFunction: null }, inlineNavigation: { classPropertyName: "inlineNavigation", publicName: "inlineNavigation", isSignal: true, isRequired: false, transformFunction: null }, showStepNumbers: { classPropertyName: "showStepNumbers", publicName: "showStepNumbers", isSignal: true, isRequired: false, transformFunction: null }, showVerticalDivider: { classPropertyName: "showVerticalDivider", publicName: "showVerticalDivider", isSignal: true, isRequired: false, transformFunction: null }, verticalMinSize: { classPropertyName: "verticalMinSize", publicName: "verticalMinSize", isSignal: true, isRequired: false, transformFunction: null }, verticalMaxSize: { classPropertyName: "verticalMaxSize", publicName: "verticalMaxSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { completionAction: "completionAction", wizardCancel: "wizardCancel" }, host: { properties: { "class.vertical": "verticalLayout()", "style.--wizard-vertical-min-size": "verticalMinSize()", "style.--wizard-vertical-max-size": "verticalMaxSize()" }, classAttribute: "py-6 px-8 d-flex flex-column" }, queries: [{ propertyName: "wizardSteps", predicate: SiWizardStepComponent }], viewQueries: [{ propertyName: "containerSteps", first: true, predicate: ["containerSteps"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (!showCompletionPage()) {\n @if (!verticalLayout()) {\n <div class=\"container-wizard\" [class.justify-content-center]=\"!inlineNavigation()\">\n @if (inlineNavigation()) {\n <ng-container *ngTemplateOutlet=\"cancelBtnHorizontal\" />\n <ng-container *ngTemplateOutlet=\"backBtnHorizontal\" />\n }\n <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n @if (inlineNavigation()) {\n <ng-container *ngTemplateOutlet=\"nextBtnHorizontal\" />\n }\n </div>\n\n <ng-container *ngTemplateOutlet=\"stepContent\" />\n @if (inlineNavigation()) {\n <ng-container *ngTemplateOutlet=\"saveBtn\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"footer\" />\n }\n } @else {\n @if (showVerticalDivider()) {\n <div class=\"container-wizard vertical\">\n <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n <div class=\"vertical-divider\"></div>\n <div class=\"d-flex flex-column w-100\">\n <div class=\"steps-content\">\n <ng-container *ngTemplateOutlet=\"stepContent\" />\n </div>\n <ng-container *ngTemplateOutlet=\"footer\" />\n </div>\n </div>\n } @else {\n <div class=\"container-wizard vertical\">\n <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n <div class=\"steps-content\">\n <ng-container *ngTemplateOutlet=\"stepContent\" />\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"footer\" />\n }\n }\n} @else {\n <div class=\"text-center\">\n <si-icon-next class=\"completion-icon-size text-success\" [icon]=\"icons.elementChecked\" />\n <p class=\"si-title-1\"> {{ completionText() | translate }}</p>\n </div>\n}\n\n<ng-template #stepsTemplate>\n <div\n #containerSteps\n class=\"container-steps\"\n [class.vertical]=\"verticalLayout()\"\n [class.mx-4]=\"inlineNavigation()\"\n [class.mt-4]=\"!verticalLayout() && inlineNavigation()\"\n (siResizeObserver)=\"calculateNumberOfVisibleSteps()\"\n >\n @for (item of activeSteps(); track item.index) {\n <div class=\"step\">\n <div\n class=\"line previous\"\n [class.dashed]=\"$first && item.index > 0\"\n [class.vertical]=\"verticalLayout()\"\n [class.spacer]=\"$first && item.index === 0\"\n [ngClass]=\"getStateClass(item.index)\"\n ></div>\n <a\n class=\"focus-none\"\n [ngClass]=\"getStateClass(item.index)\"\n [attr.aria-current]=\"getAriaCurrent(item.index)\"\n [attr.href]=\"!canActivate(item.index) || !currentStep?.isNextNavigable() ? null : '#'\"\n (click)=\"activateStep($event, item.index)\"\n >\n @if (showStepNumbers() && !item.step.failed()) {\n <div\n class=\"step-icon number-step d-flex justify-content-center align-items-center px-1\"\n >\n <div class=\"circle\" [class.status-warning]=\"item.step.failed()\">\n <span class=\"si-title-2 px-2\" [class.completed-color]=\"item.index < index\">\n {{ item.index + 1 }}\n </span>\n </div>\n </div>\n } @else {\n <si-icon-next\n class=\"icon step-icon\"\n [class.status-warning]=\"item.step.failed()\"\n [icon]=\"getState(item.step!, item.index)\"\n />\n }\n <div\n class=\"title si-title-2\"\n [class.text-center]=\"!verticalLayout()\"\n [class.px-6]=\"!verticalLayout()\"\n [attr.aria-disabled]=\"getAriaDisabled(item.index)\"\n >{{ item.step.heading() | translate }}</div\n >\n </a>\n @if (item.index + 1 < stepCount) {\n <div\n class=\"line\"\n [class.vertical]=\"verticalLayout()\"\n [ngClass]=\"getStateClass(item.index + 1)\"\n [class.dashed]=\"$last\"\n ></div>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #stepContent>\n <div [class.flex-grow-1]=\"!verticalLayout()\" [class.h-100]=\"verticalLayout()\">\n <ng-content />\n </div>\n</ng-template>\n\n<ng-template #cancelBtnHorizontal>\n @if (hasCancel()) {\n <div class=\"me-7\">\n <div class=\"wizard-btn-container\" (click)=\"wizardCancel.emit()\">\n <button\n type=\"button\"\n class=\"btn btn-sm btn-circle btn-secondary mt-2 mb-4\"\n [attr.aria-label]=\"cancelText() | translate\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n <div class=\"si-title-2 text-primary\">{{ cancelText() | translate }}</div>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #footer>\n <div class=\"wizard-footer pt-6\">\n <div class=\"wizard-footer-inner\" [class.ms-6]=\"showVerticalDivider()\">\n @if (hasCancel()) {\n <button\n type=\"button\"\n class=\"btn btn-tertiary\"\n [attr.aria-label]=\"cancelText() | translate\"\n (click)=\"wizardCancel.emit()\"\n >\n {{ cancelText() | translate }}\n </button>\n }\n @if (!shouldHideNavigation()) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [class.d-none]=\"index === 0\"\n [class.end]=\"index !== 0\"\n [attr.aria-label]=\"backText() | translate\"\n (click)=\"back(1)\"\n >\n {{ backText() | translate }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [attr.aria-label]=\"nextText() | translate\"\n [disabled]=\"!currentStep?.isValid()\"\n [class.d-none]=\"index === steps.length - 1\"\n [class.end]=\"index === 0\"\n (click)=\"next(1)\"\n >\n {{ nextText() | translate }}\n </button>\n }\n\n @if (!hideSave()) {\n @if (index === steps.length - 1) {\n <button\n type=\"button\"\n class=\"btn btn-primary save\"\n [disabled]=\"!currentStep?.isValid() || !currentStep?.isNextNavigable()\"\n (click)=\"save()\"\n >{{ saveText() | translate }}</button\n >\n }\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #backBtnHorizontal>\n <div class=\"wizard-btn-container\">\n @if (!shouldHideNavigation()) {\n <div class=\"back\" [class.invisible]=\"index === 0\" (click)=\"back(1)\">\n <button\n type=\"button\"\n class=\"btn btn-secondary btn-circle mb-2\"\n [attr.aria-label]=\"backText() | translate\"\n >\n <si-icon-next class=\"flip-rtl\" [icon]=\"icons.elementLeft4\" />\n </button>\n <div class=\"si-title-2 text-primary\">{{ backText() | translate }}</div>\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #nextBtnHorizontal>\n <div class=\"wizard-btn-container\" [class.wizard-text-deactivate]=\"!currentStep?.isValid()\">\n @if (!shouldHideNavigation()) {\n <div class=\"next\" [class.invisible]=\"index === steps.length - 1\" (click)=\"next(1)\">\n <button\n type=\"button\"\n class=\"btn btn-primary btn-circle mb-2\"\n [disabled]=\"!currentStep?.isValid()\"\n [attr.aria-label]=\"nextText() | translate\"\n >\n <si-icon-next class=\"flip-rtl\" [icon]=\"icons.elementRight4\" />\n </button>\n <div\n class=\"si-title-2 text-primary\"\n [class.disabled]=\"!currentStep?.isValid()\"\n [attr.aria-disabled]=\"!currentStep?.isValid()\"\n >{{ nextText() | translate }}</div\n >\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #saveBtn>\n @if (!hideSave()) {\n <div [class.center-save]=\"!verticalLayout() && inlineNavigation()\">\n @if (index === steps.length - 1) {\n <button\n type=\"button\"\n class=\"btn btn-primary save\"\n [disabled]=\"!currentStep?.isValid() || !currentStep?.isNextNavigable()\"\n (click)=\"save()\"\n >{{ saveText() | translate }}</button\n >\n }\n </div>\n }\n</ng-template>\n", styles: [":host.vertical{display:flex;flex-direction:column;block-size:100%}.container-steps{display:flex}.container-steps .step{display:grid}.container-steps:not(.vertical){inline-size:100%;justify-content:center;align-items:flex-start;padding-block:0}.container-steps:not(.vertical) .step{grid-template-columns:1fr auto 1fr;grid-template-rows:auto auto}.container-steps:not(.vertical) .step .step-icon{grid-row:1/2;grid-column:2/3;justify-self:center}.container-steps:not(.vertical) .step .title{margin-block-start:12px}.container-steps.vertical{flex-direction:column;block-size:100%;padding-block-start:32px;min-inline-size:var(--wizard-vertical-min-size, 180px);max-inline-size:var(--wizard-vertical-max-size, initial)}.container-steps.vertical .step{grid-template-columns:24px 1fr;grid-template-rows:auto auto auto;align-items:center;flex:0 1 auto}.container-steps.vertical .step .step-icon{grid-row:2/3;grid-column:1/2;justify-self:center}.container-steps.vertical .step .title{grid-row:2/3;grid-column:2/3;padding-inline-start:8px}.container-steps .completed-color{color:var(--element-text-inverse)}.line{grid-row:1;justify-self:stretch}.line.vertical{grid-column:1/2;align-self:stretch;justify-self:center;border-inline-start-color:var(--element-ui-2);border-inline-start-width:2px;border-inline-start-style:solid;min-block-size:12px}.line.vertical.dashed{border-inline-start-style:dashed}.line.vertical.spacer{block-size:12px;border:0}.line.vertical:not(.previous){grid-row:3}.line:not(.vertical){grid-column:3/4;border-block-start-width:2px;border-block-start-style:solid;border-block-start-color:var(--element-ui-2);align-self:center}.line:not(.vertical).previous{grid-column:1/2}.line:not(.vertical).dashed{inline-size:32px;border-block-start-style:dashed}.line:not(.vertical).spacer{display:none}.line:not(.vertical).dashed.previous{justify-self:end}.line.active,.line.completed{border-color:var(--element-ui-0)}.line.disabled{opacity:.5}.line.dashed.vertical{min-block-size:12px;inline-size:auto}.step{inline-size:100%;flex-shrink:1}.step a{display:grid;grid-template-columns:subgrid;grid-template-rows:subgrid;grid-row:1/-1;grid-column:1/-1;align-items:center;justify-self:center;color:var(--element-ui-2)}.step a:hover{text-decoration:none}.step a:focus-visible .step-icon{outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:calc(-1 * var(--element-button-focus-width));border-radius:12px}.step a:focus-visible .step-icon.number-step{outline:none}.step a:focus-visible .step-icon.number-step .circle{outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:var(--element-button-focus-overlay-width)}.step .title{grid-row:2/3;grid-column:1/-1;color:var(--element-text-secondary);display:-webkit-box;overflow:hidden;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical}.step .active,.step .active .title{color:var(--element-ui-0);cursor:default}.step .disabled,.step .disabled:hover,.step a.disabled>*{cursor:default;opacity:.5}.step a:not(.disabled):hover,.step a:not(.disabled):hover .step-icon,.step a:not(.disabled):hover .title{color:var(--element-ui-0-hover)!important}.step .completed .title{color:var(--element-text-primary)}.step .completed .step-icon{color:var(--element-ui-0)}.step .completed .circle{background-color:currentColor}.container-wizard{inline-size:100%;display:flex;flex-wrap:nowrap}.container-wizard:not(.vertical){justify-content:center;padding-block-end:16px}.container-wizard.vertical{justify-content:start;block-size:100%}.container-wizard.vertical .steps-content{flex:100%;padding-inline-start:16px}.container-wizard .vertical-divider{border-inline-end:1px solid var(--element-ui-4);margin-block:-16px}.center-save{display:flex;justify-content:center;padding-block-start:16px}.wizard-btn-container{max-inline-size:50px;min-inline-size:40px;text-align:center;cursor:pointer}.wizard-btn-container.wizard-text-deactivate:hover{cursor:not-allowed;color:var(--element-text-secondary)}.wizard-btn-container .disabled{opacity:.5}.wizard-btn-container:hover .text-primary{color:var(--element-ui-0-hover)!important}.completion-icon-size{font-size:96px}.circle{min-inline-size:18px;min-block-size:18px;border-radius:9px;border-width:1px;border-style:solid;border-color:currentColor;color:currentColor}.number-step{min-inline-size:24px;min-block-size:24px}.wizard-footer{container-type:inline-size}.wizard-footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:start;gap:16px}.wizard-footer-inner>.end{margin-inline-start:auto}@container (max-width: 400px){.wizard-footer-inner{flex-direction:column;align-items:stretch}.wizard-footer-inner>.end{margin-inline-start:unset}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "directive", type: SiResizeObserverDirective, selector: "[siResizeObserver]", inputs: ["resizeThrottle"], outputs: ["siResizeObserver"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
414
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiWizardComponent, isStandalone: true, selector: "si-wizard", inputs: { backText: { classPropertyName: "backText", publicName: "backText", isSignal: true, isRequired: false, transformFunction: null }, nextText: { classPropertyName: "nextText", publicName: "nextText", isSignal: true, isRequired: false, transformFunction: null }, hasNavigation: { classPropertyName: "hasNavigation", publicName: "hasNavigation", isSignal: true, isRequired: false, transformFunction: null }, hideNavigation: { classPropertyName: "hideNavigation", publicName: "hideNavigation", isSignal: true, isRequired: false, transformFunction: null }, saveText: { classPropertyName: "saveText", publicName: "saveText", isSignal: true, isRequired: false, transformFunction: null }, hideSave: { classPropertyName: "hideSave", publicName: "hideSave", isSignal: true, isRequired: false, transformFunction: null }, completionText: { classPropertyName: "completionText", publicName: "completionText", isSignal: true, isRequired: false, transformFunction: null }, cancelText: { classPropertyName: "cancelText", publicName: "cancelText", isSignal: true, isRequired: false, transformFunction: null }, hasCancel: { classPropertyName: "hasCancel", publicName: "hasCancel", isSignal: true, isRequired: false, transformFunction: null }, enableCompletionPage: { classPropertyName: "enableCompletionPage", publicName: "enableCompletionPage", isSignal: true, isRequired: false, transformFunction: null }, completionPageVisibleTime: { classPropertyName: "completionPageVisibleTime", publicName: "completionPageVisibleTime", isSignal: true, isRequired: false, transformFunction: null }, stepIcon: { classPropertyName: "stepIcon", publicName: "stepIcon", isSignal: true, isRequired: false, transformFunction: null }, stepActiveIcon: { classPropertyName: "stepActiveIcon", publicName: "stepActiveIcon", isSignal: true, isRequired: false, transformFunction: null }, stepCompletedIcon: { classPropertyName: "stepCompletedIcon", publicName: "stepCompletedIcon", isSignal: true, isRequired: false, transformFunction: null }, stepFailedIcon: { classPropertyName: "stepFailedIcon", publicName: "stepFailedIcon", isSignal: true, isRequired: false, transformFunction: null }, verticalLayout: { classPropertyName: "verticalLayout", publicName: "verticalLayout", isSignal: true, isRequired: false, transformFunction: null }, inlineNavigation: { classPropertyName: "inlineNavigation", publicName: "inlineNavigation", isSignal: true, isRequired: false, transformFunction: null }, showStepNumbers: { classPropertyName: "showStepNumbers", publicName: "showStepNumbers", isSignal: true, isRequired: false, transformFunction: null }, showVerticalDivider: { classPropertyName: "showVerticalDivider", publicName: "showVerticalDivider", isSignal: true, isRequired: false, transformFunction: null }, verticalMinSize: { classPropertyName: "verticalMinSize", publicName: "verticalMinSize", isSignal: true, isRequired: false, transformFunction: null }, verticalMaxSize: { classPropertyName: "verticalMaxSize", publicName: "verticalMaxSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { completionAction: "completionAction", wizardCancel: "wizardCancel" }, host: { properties: { "class.vertical": "verticalLayout()", "style.--wizard-vertical-min-size": "verticalMinSize()", "style.--wizard-vertical-max-size": "verticalMaxSize()" }, classAttribute: "py-6 px-8 d-flex flex-column" }, queries: [{ propertyName: "wizardSteps", predicate: SiWizardStepComponent }], viewQueries: [{ propertyName: "containerSteps", first: true, predicate: ["containerSteps"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (!showCompletionPage()) {\n @if (!verticalLayout()) {\n <div class=\"container-wizard\" [class.justify-content-center]=\"!inlineNavigation()\">\n @if (inlineNavigation()) {\n <ng-container *ngTemplateOutlet=\"cancelBtnHorizontal\" />\n <ng-container *ngTemplateOutlet=\"backBtnHorizontal\" />\n }\n <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n @if (inlineNavigation()) {\n <ng-container *ngTemplateOutlet=\"nextBtnHorizontal\" />\n }\n </div>\n\n <ng-container *ngTemplateOutlet=\"stepContent\" />\n @if (inlineNavigation()) {\n <ng-container *ngTemplateOutlet=\"saveBtn\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"footer\" />\n }\n } @else {\n @if (showVerticalDivider()) {\n <div class=\"container-wizard vertical\">\n <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n <div class=\"vertical-divider\"></div>\n <div class=\"d-flex flex-column w-100\">\n <div class=\"steps-content\">\n <ng-container *ngTemplateOutlet=\"stepContent\" />\n </div>\n <ng-container *ngTemplateOutlet=\"footer\" />\n </div>\n </div>\n } @else {\n <div class=\"container-wizard vertical\">\n <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n <div class=\"steps-content\">\n <ng-container *ngTemplateOutlet=\"stepContent\" />\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"footer\" />\n }\n }\n} @else {\n <div class=\"text-center\">\n <si-icon-next class=\"completion-icon-size text-success\" [icon]=\"icons.elementChecked\" />\n <p class=\"si-title-1\"> {{ completionText() | translate }}</p>\n </div>\n}\n\n<ng-template #stepsTemplate>\n <div\n #containerSteps\n class=\"container-steps\"\n [class.vertical]=\"verticalLayout()\"\n [class.mx-4]=\"inlineNavigation()\"\n [class.mt-4]=\"!verticalLayout() && inlineNavigation()\"\n (siResizeObserver)=\"calculateNumberOfVisibleSteps()\"\n >\n @for (item of activeSteps(); track item.index) {\n <div class=\"step\">\n <div\n class=\"line previous\"\n [class.dashed]=\"$first && item.index > 0\"\n [class.vertical]=\"verticalLayout()\"\n [class.spacer]=\"$first && item.index === 0\"\n [ngClass]=\"getStateClass(item.index)\"\n ></div>\n <a\n class=\"focus-none\"\n [ngClass]=\"getStateClass(item.index)\"\n [attr.aria-current]=\"getAriaCurrent(item.index)\"\n [attr.href]=\"!canActivate(item.index) || !currentStep?.isNextNavigable() ? null : '#'\"\n (click)=\"activateStep($event, item.index)\"\n >\n @if (showStepNumbers() && !item.step.failed()) {\n <div\n class=\"step-icon number-step d-flex justify-content-center align-items-center px-1\"\n >\n <div class=\"circle\" [class.status-warning]=\"item.step.failed()\">\n <span class=\"si-title-2 px-2\" [class.completed-color]=\"item.index < index\">\n {{ item.index + 1 }}\n </span>\n </div>\n </div>\n } @else {\n <si-icon-next\n class=\"icon step-icon\"\n [class.status-warning]=\"item.step.failed()\"\n [icon]=\"getState(item.step!, item.index)\"\n />\n }\n <div\n class=\"title si-title-2\"\n [class.text-center]=\"!verticalLayout()\"\n [class.px-6]=\"!verticalLayout()\"\n [attr.aria-disabled]=\"getAriaDisabled(item.index)\"\n >{{ item.step.heading() | translate }}</div\n >\n </a>\n @if (item.index + 1 < stepCount) {\n <div\n class=\"line\"\n [class.vertical]=\"verticalLayout()\"\n [ngClass]=\"getStateClass(item.index + 1)\"\n [class.dashed]=\"$last\"\n ></div>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #stepContent>\n <div [class.flex-grow-1]=\"!verticalLayout()\" [class.h-100]=\"verticalLayout()\">\n <ng-content />\n </div>\n</ng-template>\n\n<ng-template #cancelBtnHorizontal>\n @if (hasCancel()) {\n <div class=\"me-7\">\n <div class=\"wizard-btn-container\" (click)=\"wizardCancel.emit()\">\n <button\n type=\"button\"\n class=\"btn btn-sm btn-circle btn-secondary mt-2 mb-4\"\n [attr.aria-label]=\"cancelText() | translate\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n <div class=\"si-title-2 text-primary\">{{ cancelText() | translate }}</div>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #footer>\n <div class=\"wizard-footer pt-6\">\n <div class=\"wizard-footer-inner\" [class.ms-6]=\"showVerticalDivider()\">\n @if (hasCancel()) {\n <button\n type=\"button\"\n class=\"btn btn-tertiary\"\n [attr.aria-label]=\"cancelText() | translate\"\n (click)=\"wizardCancel.emit()\"\n >\n {{ cancelText() | translate }}\n </button>\n }\n @if (!shouldHideNavigation()) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [class.d-none]=\"index === 0\"\n [class.end]=\"index !== 0\"\n [attr.aria-label]=\"backText() | translate\"\n (click)=\"back(1)\"\n >\n {{ backText() | translate }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [attr.aria-label]=\"nextText() | translate\"\n [disabled]=\"!currentStep?.isValid()\"\n [class.d-none]=\"index === steps.length - 1\"\n [class.end]=\"index === 0\"\n (click)=\"next(1)\"\n >\n {{ nextText() | translate }}\n </button>\n }\n\n @if (!hideSave()) {\n @if (index === steps.length - 1) {\n <button\n type=\"button\"\n class=\"btn btn-primary save\"\n [disabled]=\"!currentStep?.isValid() || !currentStep?.isNextNavigable()\"\n (click)=\"save()\"\n >{{ saveText() | translate }}</button\n >\n }\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #backBtnHorizontal>\n <div class=\"wizard-btn-container\">\n @if (!shouldHideNavigation()) {\n <div class=\"back\" [class.invisible]=\"index === 0\" (click)=\"back(1)\">\n <button\n type=\"button\"\n class=\"btn btn-secondary btn-circle mb-2\"\n [attr.aria-label]=\"backText() | translate\"\n >\n <si-icon-next class=\"flip-rtl\" [icon]=\"icons.elementLeft4\" />\n </button>\n <div class=\"si-title-2 text-primary\">{{ backText() | translate }}</div>\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #nextBtnHorizontal>\n <div class=\"wizard-btn-container\" [class.wizard-text-deactivate]=\"!currentStep?.isValid()\">\n @if (!shouldHideNavigation()) {\n <div class=\"next\" [class.invisible]=\"index === steps.length - 1\" (click)=\"next(1)\">\n <button\n type=\"button\"\n class=\"btn btn-primary btn-circle mb-2\"\n [disabled]=\"!currentStep?.isValid()\"\n [attr.aria-label]=\"nextText() | translate\"\n >\n <si-icon-next class=\"flip-rtl\" [icon]=\"icons.elementRight4\" />\n </button>\n <div\n class=\"si-title-2 text-primary\"\n [class.disabled]=\"!currentStep?.isValid()\"\n [attr.aria-disabled]=\"!currentStep?.isValid()\"\n >{{ nextText() | translate }}</div\n >\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #saveBtn>\n @if (!hideSave()) {\n <div [class.center-save]=\"!verticalLayout() && inlineNavigation()\">\n @if (index === steps.length - 1) {\n <button\n type=\"button\"\n class=\"btn btn-primary save\"\n [disabled]=\"!currentStep?.isValid() || !currentStep?.isNextNavigable()\"\n (click)=\"save()\"\n >{{ saveText() | translate }}</button\n >\n }\n </div>\n }\n</ng-template>\n", styles: [":host.vertical{display:flex;flex-direction:column;block-size:100%}.container-steps{display:flex}.container-steps .step{display:grid}.container-steps:not(.vertical){inline-size:100%;justify-content:center;align-items:flex-start;padding-block:0}.container-steps:not(.vertical) .step{grid-template-columns:1fr auto 1fr;grid-template-rows:auto auto}.container-steps:not(.vertical) .step .step-icon{grid-row:1/2;grid-column:2/3;justify-self:center}.container-steps:not(.vertical) .step .title{margin-block-start:12px}.container-steps.vertical{flex-direction:column;block-size:100%;padding-block-start:32px;min-inline-size:var(--wizard-vertical-min-size, 180px);max-inline-size:var(--wizard-vertical-max-size, initial)}.container-steps.vertical .step{grid-template-columns:24px 1fr;grid-template-rows:auto auto auto;align-items:center;flex:0 1 auto}.container-steps.vertical .step .step-icon{grid-row:2/3;grid-column:1/2;justify-self:center}.container-steps.vertical .step .title{grid-row:2/3;grid-column:2/3;padding-inline-start:8px}.container-steps .completed-color{color:var(--element-text-inverse)}.line{grid-row:1;justify-self:stretch}.line.vertical{grid-column:1/2;align-self:stretch;justify-self:center;border-inline-start-color:var(--element-ui-2);border-inline-start-width:2px;border-inline-start-style:solid;min-block-size:12px}.line.vertical.dashed{border-inline-start-style:dashed}.line.vertical.spacer{block-size:12px;border:0}.line.vertical:not(.previous){grid-row:3}.line:not(.vertical){grid-column:3/4;border-block-start-width:2px;border-block-start-style:solid;border-block-start-color:var(--element-ui-2);align-self:center}.line:not(.vertical).previous{grid-column:1/2}.line:not(.vertical).dashed{inline-size:32px;border-block-start-style:dashed}.line:not(.vertical).spacer{display:none}.line:not(.vertical).dashed.previous{justify-self:end}.line.active,.line.completed{border-color:var(--element-ui-0)}.line.disabled{opacity:.5}.line.dashed.vertical{min-block-size:12px;inline-size:auto}.step{inline-size:100%;flex-shrink:1}.step a{display:grid;grid-template-columns:subgrid;grid-template-rows:subgrid;grid-row:1/-1;grid-column:1/-1;align-items:center;justify-self:center;color:var(--element-ui-2)}.step a:hover{text-decoration:none}.step a:focus-visible .step-icon{outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:calc(-1 * var(--element-button-focus-width));border-radius:12px}.step a:focus-visible .step-icon.number-step{outline:none}.step a:focus-visible .step-icon.number-step .circle{outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:var(--element-button-focus-overlay-width)}.step .title{grid-row:2/3;grid-column:1/-1;color:var(--element-text-secondary);display:-webkit-box;overflow:hidden;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical}.step .active,.step .active .title{color:var(--element-ui-0);cursor:default}.step .disabled,.step .disabled:hover,.step a.disabled>*{cursor:default;opacity:.5}.step a:not(.disabled):hover,.step a:not(.disabled):hover .step-icon,.step a:not(.disabled):hover .title{color:var(--element-ui-0-hover)!important}.step .completed .title{color:var(--element-text-primary)}.step .completed .step-icon{color:var(--element-ui-0)}.step .completed .circle{background-color:currentColor}.container-wizard{inline-size:100%;display:flex;flex-wrap:nowrap}.container-wizard:not(.vertical){justify-content:center;padding-block-end:16px}.container-wizard.vertical{justify-content:start;block-size:100%}.container-wizard.vertical .steps-content{flex:100%;padding-inline-start:16px}.container-wizard .vertical-divider{border-inline-end:1px solid var(--element-ui-4);margin-block:-16px}.center-save{display:flex;justify-content:center;padding-block-start:16px}.wizard-btn-container{max-inline-size:50px;min-inline-size:40px;text-align:center;cursor:pointer}.wizard-btn-container.wizard-text-deactivate:hover{cursor:not-allowed;color:var(--element-text-secondary)}.wizard-btn-container .disabled{opacity:.5}.wizard-btn-container:hover .text-primary{color:var(--element-ui-0-hover)!important}.completion-icon-size{font-size:96px}.circle{min-inline-size:18px;min-block-size:18px;border-radius:9px;border-width:1px;border-style:solid;border-color:currentColor;color:currentColor}.number-step{min-inline-size:24px;min-block-size:24px}.wizard-footer{container-type:inline-size}.wizard-footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:start;gap:16px}.wizard-footer-inner>.end{margin-inline-start:auto}@container (max-width: 400px){.wizard-footer-inner{flex-direction:column;align-items:stretch}.wizard-footer-inner>.end{margin-inline-start:unset}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "directive", type: SiResizeObserverDirective, selector: "[siResizeObserver]", inputs: ["resizeThrottle", "emitInitial"], outputs: ["siResizeObserver"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
415
415
|
}
|
|
416
416
|
__decorate([
|
|
417
417
|
WebComponentContentChildren(SiWizardStepComponent)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-wizard.mjs","sources":["../../../../projects/element-ng/wizard/si-wizard-step.component.ts","../../../../projects/element-ng/wizard/si-wizard-step.component.html","../../../../projects/element-ng/wizard/si-wizard.component.ts","../../../../projects/element-ng/wizard/si-wizard.component.html","../../../../projects/element-ng/wizard/si-wizard.module.ts","../../../../projects/element-ng/wizard/index.ts","../../../../projects/element-ng/wizard/siemens-element-ng-wizard.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n signal\n} from '@angular/core';\n\n@Component({\n selector: 'si-wizard-step',\n templateUrl: './si-wizard-step.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiWizardStepComponent {\n /** @defaultValue '' */\n readonly heading = input('');\n /** @defaultValue true */\n readonly isValid = input(true, { transform: booleanAttribute });\n /** @defaultValue true */\n readonly isNextNavigable = input(true, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly failed = input(false, { transform: booleanAttribute });\n\n readonly next = output();\n readonly back = output();\n readonly save = output();\n\n /**\n * Whether this step is currently active or not.\n * @defaultValue false\n */\n readonly isActive = signal(false);\n}\n","@if (isActive()) {\n <div class=\"h-100\">\n <ng-content />\n </div>\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n ElementRef,\n input,\n OnDestroy,\n output,\n QueryList,\n signal,\n viewChild\n} from '@angular/core';\nimport { WebComponentContentChildren } from '@siemens/element-ng/common';\nimport {\n addIcons,\n elementCancel,\n elementChecked,\n elementCheckedFilled,\n elementLeft4,\n elementNotChecked,\n elementRadioChecked,\n elementRight4,\n elementWarningFilled,\n SiIconNextComponent\n} from '@siemens/element-ng/icon';\nimport { SiResizeObserverDirective } from '@siemens/element-ng/resize-observer';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SiWizardStepComponent } from './si-wizard-step.component';\n\ninterface StepItem {\n index: number;\n step: SiWizardStepComponent;\n}\n\n@Component({\n selector: 'si-wizard',\n templateUrl: './si-wizard.component.html',\n styleUrl: './si-wizard.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n SiIconNextComponent,\n SiResizeObserverDirective,\n SiTranslateModule,\n NgTemplateOutlet\n ],\n host: {\n class: 'py-6 px-8 d-flex flex-column',\n '[class.vertical]': 'verticalLayout()',\n '[style.--wizard-vertical-min-size]': 'verticalMinSize()',\n '[style.--wizard-vertical-max-size]': 'verticalMaxSize()'\n }\n})\nexport class SiWizardComponent implements AfterContentInit, OnDestroy {\n @WebComponentContentChildren(SiWizardStepComponent)\n @ContentChildren(SiWizardStepComponent)\n private wizardSteps!: QueryList<SiWizardStepComponent>;\n\n protected readonly containerSteps = viewChild<ElementRef<HTMLDivElement>>('containerSteps');\n\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_WIZARD.BACK:Back`\n * ```\n */\n readonly backText = input($localize`:@@SI_WIZARD.BACK:Back`);\n /**\n * Description of next button.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_WIZARD.NEXT:Next`\n * ```\n */\n readonly nextText = input($localize`:@@SI_WIZARD.NEXT:Next`);\n\n /**\n * @deprecated Use {@link hideNavigation} instead.\n *\n * @defaultValue true\n */\n readonly hasNavigation = input(true, { transform: booleanAttribute });\n\n /**\n * Hide the navigation buttons previous/next.\n *\n * @defaultValue false\n */\n readonly hideNavigation = input(false, { transform: booleanAttribute });\n /**\n * Description of save button.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_WIZARD.SAVE:Save`\n * ```\n */\n readonly saveText = input($localize`:@@SI_WIZARD.SAVE:Save`);\n /**\n * Hide the save button.\n *\n * @defaultValue false\n */\n readonly hideSave = input(false, { transform: booleanAttribute });\n /**\n * Text shown if you complete the wizard.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_WIZARD.COMPLETED:Wizard completed!`\n * ```\n */\n readonly completionText = input($localize`:@@SI_WIZARD.COMPLETED:Wizard completed!`);\n /**\n * Description of cancel button.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_WIZARD.CANCEL:Cancel`\n * ```\n */\n readonly cancelText = input($localize`:@@SI_WIZARD.CANCEL:Cancel`);\n /**\n * Show the cancel button\n *\n * @defaultValue false\n */\n readonly hasCancel = input(false, { transform: booleanAttribute });\n /**\n * Display a predefined page by the end of the wizard.\n *\n * @defaultValue false\n */\n readonly enableCompletionPage = input(false, { transform: booleanAttribute });\n /**\n * Define how many milliseconds the completion page is visible.\n *\n * @defaultValue 3000\n */\n readonly completionPageVisibleTime = input(3000);\n /**\n * Class name of icon shown for current and upcoming steps.\n *\n * @defaultValue 'elementNotChecked'\n */\n readonly stepIcon = input('elementNotChecked');\n /**\n * Class name of icon shown for the active step.\n *\n * @defaultValue 'elementRadioChecked'\n */\n readonly stepActiveIcon = input('elementRadioChecked');\n /**\n * Class name of icon shown when a step was completed.\n *\n * @defaultValue 'elementCheckedFilled'\n */\n readonly stepCompletedIcon = input('elementCheckedFilled');\n /**\n * Class name of icon shown when a step had an error.\n *\n * @defaultValue 'elementWarningFilled'\n */\n readonly stepFailedIcon = input('elementWarningFilled');\n /**\n * Set the orientation of the wizard to vertical.\n *\n * @defaultValue false\n */\n readonly verticalLayout = input(false, { transform: booleanAttribute });\n /**\n * Set false to show navigation buttons in footer instead of inline.\n *\n * @defaultValue true\n */\n readonly inlineNavigation = input(true, { transform: booleanAttribute });\n /**\n * Use number representation for steps.\n *\n * @defaultValue false\n */\n readonly showStepNumbers = input(false, { transform: booleanAttribute });\n /**\n * Set to true to display a divider between the steps and the content in the vertical\n *\n * @defaultValue false\n */\n readonly showVerticalDivider = input(false, { transform: booleanAttribute });\n /** Set the wizard step container min size in vertical layout. */\n readonly verticalMinSize = input<string>();\n /** Set the wizard step container max size in vertical layout. */\n readonly verticalMaxSize = input<string>();\n\n /** Callback function triggered after the wizard has been completed. */\n readonly completionAction = output();\n\n /** Callback function triggered if the wizard has been canceled. */\n readonly wizardCancel = output();\n\n /**\n * Callback function triggered if the wizard has been canceled.\n * @deprecated use {@link wizardCancel} instead\n */\n readonly cancel = this.wizardCancel;\n\n /** Get the current step wizard step index. */\n get index(): number {\n return this._index();\n }\n\n /** Get number of wizard steps. */\n get stepCount(): number {\n return this.steps.length;\n }\n\n /** Get current visible wizard step. */\n get currentStep(): SiWizardStepComponent | undefined {\n return this._currentStep();\n }\n\n protected steps: SiWizardStepComponent[] = [];\n protected visibleSteps = 0;\n protected readonly showCompletionPage = signal(false);\n /** The list of visible steps. */\n protected readonly activeSteps = signal<StepItem[]>([]);\n protected readonly shouldHideNavigation = computed(() => {\n return this.hideNavigation() || !this.hasNavigation();\n });\n\n private readonly _index = signal(0);\n private readonly _currentStep = signal<SiWizardStepComponent | undefined>(undefined);\n protected readonly icons = addIcons({\n elementCancel,\n elementChecked,\n elementCheckedFilled,\n elementLeft4,\n elementNotChecked,\n elementRight4,\n elementRadioChecked,\n elementWarningFilled\n });\n private destroyer = new Subject<void>();\n\n ngAfterContentInit(): void {\n this.updateSteps();\n this._currentStep.set(this.steps[0]);\n queueMicrotask(() => {\n if (this.steps.length > 0) {\n this.steps[0].isActive.set(true);\n }\n });\n\n this.wizardSteps.changes.pipe(takeUntil(this.destroyer)).subscribe(() => {\n this.updateSteps();\n if (!this.wizardSteps.some(step => step === this.currentStep)) {\n this._currentStep.set(this.wizardSteps.first);\n this._index.set(0);\n } else {\n const updatedIndex = this.currentStep ? this.steps.indexOf(this.currentStep) : 0;\n this._index.set(updatedIndex);\n }\n queueMicrotask(() => {\n if (this.currentStep) {\n this.activate(this.currentStep);\n }\n this.calculateNumberOfVisibleSteps();\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroyer.next();\n this.destroyer.complete();\n }\n\n protected canActivate(stepIndex: number): boolean {\n if (stepIndex < 0) {\n return false;\n }\n // Can always activate previous steps\n if (stepIndex < this.index) {\n return true;\n }\n // We are already in the step. Nothing to activate.\n if (stepIndex === this.index) {\n return false;\n }\n // Fast-forward: check all steps if they are valid\n for (let i = this.index; i < stepIndex; i++) {\n const theStep = this.steps[i];\n if (!theStep.isValid()) {\n return false;\n }\n }\n return true;\n }\n\n protected activateStep(event: Event, stepIndex: number): void {\n event.preventDefault();\n if (this.canActivate(stepIndex)) {\n if (stepIndex > this.index) {\n this.next(stepIndex - this.index);\n }\n if (stepIndex < this.index) {\n this.back(this.index - stepIndex);\n }\n }\n }\n\n protected getStateClass(stepIndex: number): string {\n if (stepIndex === this.index) {\n return 'active';\n }\n if (!this.canActivate(stepIndex)) {\n return 'disabled';\n }\n if (stepIndex < this.index) {\n return 'completed';\n }\n return '';\n }\n\n protected getAriaDisabled(stepIndex: number): string {\n if (!this.canActivate(stepIndex)) {\n return 'true';\n }\n return 'false';\n }\n\n protected getAriaCurrent(stepIndex: number): string {\n if (stepIndex === this.index) {\n return 'step';\n }\n return 'false';\n }\n\n /**\n * Go to the next wizard step.\n * @param delta - optional number of steps to move forward.\n */\n next(delta: number = 1): void {\n if (this.index === this.steps.length) {\n return;\n }\n const stepIndex = this.index + delta;\n const nextStep = this.steps[stepIndex];\n if (this.canActivate(stepIndex)) {\n this.currentStep?.next.emit();\n if (this.currentStep?.isNextNavigable()) {\n this.activate(nextStep);\n }\n }\n }\n\n /**\n * Go to the previous wizard step.\n * @param delta - optional number of steps to move backwards.\n */\n back(delta: number = 1): void {\n if (this.index === 0) {\n return;\n }\n this.currentStep?.back.emit();\n this.activate(this.steps[this.index - delta]);\n }\n\n /** Triggers the save action to complete the wizard. */\n save(): void {\n this.currentStep?.save.emit();\n\n if (this.enableCompletionPage() && this.completionPageVisibleTime() > 0) {\n this.showCompletionPage.set(true);\n setTimeout(() => {\n this.showCompletionPage.set(false);\n this.completionAction.emit();\n }, this.completionPageVisibleTime());\n } else {\n this.completionAction.emit();\n }\n }\n\n protected getState(step: SiWizardStepComponent, stepIndex: number): string {\n if (step.failed() === true) {\n return this.stepFailedIcon();\n }\n const txtStyle = step.isActive() ? this.stepActiveIcon() : this.stepIcon();\n return stepIndex >= this.index ? txtStyle : this.stepCompletedIcon();\n }\n\n private activate(step: SiWizardStepComponent): void {\n if (this.currentStep) {\n this.currentStep.isActive.set(false);\n }\n\n step.isActive.set(true);\n this._currentStep.set(step);\n this._index.set(this.steps.indexOf(step));\n this.updateVisibleSteps();\n }\n\n protected calculateNumberOfVisibleSteps(): void {\n const containerSteps = this.containerSteps();\n if (!containerSteps) {\n return;\n }\n if (this.verticalLayout()) {\n const computedStyle = getComputedStyle(containerSteps.nativeElement);\n const clientHeight =\n containerSteps.nativeElement.clientHeight -\n parseInt(computedStyle.paddingBlockStart) -\n parseInt(computedStyle.paddingBlockEnd);\n this.visibleSteps = Math.max(Math.floor(clientHeight / 48), 1);\n } else {\n const clientWidth = containerSteps.nativeElement.clientWidth;\n this.visibleSteps = Math.max(Math.floor(clientWidth / 150), 1);\n }\n this.updateVisibleSteps();\n }\n\n private updateSteps(): void {\n this.steps = this.wizardSteps.toArray();\n this.updateVisibleSteps();\n }\n\n private updateVisibleSteps(): void {\n const create = (index: number): StepItem => ({ index, step: this.steps[index] });\n if (this.steps.length === 0) {\n this.activeSteps.set([]);\n } else if (this.visibleSteps <= 1) {\n this.activeSteps.set([create(this.index)]);\n } else if (this.stepCount <= this.visibleSteps) {\n this.activeSteps.set(this.steps.map((_, i) => create(i)));\n } else {\n const steps = [this.index];\n for (\n let i = 1, left = this.index - 1, right = this.index + 1;\n i < this.visibleSteps;\n right++, left--\n ) {\n // Iterate in both directions to check current step is in visible range.\n if (right < this.stepCount) {\n steps.push(right);\n i++;\n }\n if (left >= 0 && i < this.visibleSteps) {\n steps.push(left);\n i++;\n }\n }\n\n this.activeSteps.set(steps.sort((l, r) => l - r).map(i => create(i)));\n }\n }\n}\n","@if (!showCompletionPage()) {\n @if (!verticalLayout()) {\n <div class=\"container-wizard\" [class.justify-content-center]=\"!inlineNavigation()\">\n @if (inlineNavigation()) {\n <ng-container *ngTemplateOutlet=\"cancelBtnHorizontal\" />\n <ng-container *ngTemplateOutlet=\"backBtnHorizontal\" />\n }\n <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n @if (inlineNavigation()) {\n <ng-container *ngTemplateOutlet=\"nextBtnHorizontal\" />\n }\n </div>\n\n <ng-container *ngTemplateOutlet=\"stepContent\" />\n @if (inlineNavigation()) {\n <ng-container *ngTemplateOutlet=\"saveBtn\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"footer\" />\n }\n } @else {\n @if (showVerticalDivider()) {\n <div class=\"container-wizard vertical\">\n <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n <div class=\"vertical-divider\"></div>\n <div class=\"d-flex flex-column w-100\">\n <div class=\"steps-content\">\n <ng-container *ngTemplateOutlet=\"stepContent\" />\n </div>\n <ng-container *ngTemplateOutlet=\"footer\" />\n </div>\n </div>\n } @else {\n <div class=\"container-wizard vertical\">\n <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n <div class=\"steps-content\">\n <ng-container *ngTemplateOutlet=\"stepContent\" />\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"footer\" />\n }\n }\n} @else {\n <div class=\"text-center\">\n <si-icon-next class=\"completion-icon-size text-success\" [icon]=\"icons.elementChecked\" />\n <p class=\"si-title-1\"> {{ completionText() | translate }}</p>\n </div>\n}\n\n<ng-template #stepsTemplate>\n <div\n #containerSteps\n class=\"container-steps\"\n [class.vertical]=\"verticalLayout()\"\n [class.mx-4]=\"inlineNavigation()\"\n [class.mt-4]=\"!verticalLayout() && inlineNavigation()\"\n (siResizeObserver)=\"calculateNumberOfVisibleSteps()\"\n >\n @for (item of activeSteps(); track item.index) {\n <div class=\"step\">\n <div\n class=\"line previous\"\n [class.dashed]=\"$first && item.index > 0\"\n [class.vertical]=\"verticalLayout()\"\n [class.spacer]=\"$first && item.index === 0\"\n [ngClass]=\"getStateClass(item.index)\"\n ></div>\n <a\n class=\"focus-none\"\n [ngClass]=\"getStateClass(item.index)\"\n [attr.aria-current]=\"getAriaCurrent(item.index)\"\n [attr.href]=\"!canActivate(item.index) || !currentStep?.isNextNavigable() ? null : '#'\"\n (click)=\"activateStep($event, item.index)\"\n >\n @if (showStepNumbers() && !item.step.failed()) {\n <div\n class=\"step-icon number-step d-flex justify-content-center align-items-center px-1\"\n >\n <div class=\"circle\" [class.status-warning]=\"item.step.failed()\">\n <span class=\"si-title-2 px-2\" [class.completed-color]=\"item.index < index\">\n {{ item.index + 1 }}\n </span>\n </div>\n </div>\n } @else {\n <si-icon-next\n class=\"icon step-icon\"\n [class.status-warning]=\"item.step.failed()\"\n [icon]=\"getState(item.step!, item.index)\"\n />\n }\n <div\n class=\"title si-title-2\"\n [class.text-center]=\"!verticalLayout()\"\n [class.px-6]=\"!verticalLayout()\"\n [attr.aria-disabled]=\"getAriaDisabled(item.index)\"\n >{{ item.step.heading() | translate }}</div\n >\n </a>\n @if (item.index + 1 < stepCount) {\n <div\n class=\"line\"\n [class.vertical]=\"verticalLayout()\"\n [ngClass]=\"getStateClass(item.index + 1)\"\n [class.dashed]=\"$last\"\n ></div>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #stepContent>\n <div [class.flex-grow-1]=\"!verticalLayout()\" [class.h-100]=\"verticalLayout()\">\n <ng-content />\n </div>\n</ng-template>\n\n<ng-template #cancelBtnHorizontal>\n @if (hasCancel()) {\n <div class=\"me-7\">\n <div class=\"wizard-btn-container\" (click)=\"wizardCancel.emit()\">\n <button\n type=\"button\"\n class=\"btn btn-sm btn-circle btn-secondary mt-2 mb-4\"\n [attr.aria-label]=\"cancelText() | translate\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n <div class=\"si-title-2 text-primary\">{{ cancelText() | translate }}</div>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #footer>\n <div class=\"wizard-footer pt-6\">\n <div class=\"wizard-footer-inner\" [class.ms-6]=\"showVerticalDivider()\">\n @if (hasCancel()) {\n <button\n type=\"button\"\n class=\"btn btn-tertiary\"\n [attr.aria-label]=\"cancelText() | translate\"\n (click)=\"wizardCancel.emit()\"\n >\n {{ cancelText() | translate }}\n </button>\n }\n @if (!shouldHideNavigation()) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [class.d-none]=\"index === 0\"\n [class.end]=\"index !== 0\"\n [attr.aria-label]=\"backText() | translate\"\n (click)=\"back(1)\"\n >\n {{ backText() | translate }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [attr.aria-label]=\"nextText() | translate\"\n [disabled]=\"!currentStep?.isValid()\"\n [class.d-none]=\"index === steps.length - 1\"\n [class.end]=\"index === 0\"\n (click)=\"next(1)\"\n >\n {{ nextText() | translate }}\n </button>\n }\n\n @if (!hideSave()) {\n @if (index === steps.length - 1) {\n <button\n type=\"button\"\n class=\"btn btn-primary save\"\n [disabled]=\"!currentStep?.isValid() || !currentStep?.isNextNavigable()\"\n (click)=\"save()\"\n >{{ saveText() | translate }}</button\n >\n }\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #backBtnHorizontal>\n <div class=\"wizard-btn-container\">\n @if (!shouldHideNavigation()) {\n <div class=\"back\" [class.invisible]=\"index === 0\" (click)=\"back(1)\">\n <button\n type=\"button\"\n class=\"btn btn-secondary btn-circle mb-2\"\n [attr.aria-label]=\"backText() | translate\"\n >\n <si-icon-next class=\"flip-rtl\" [icon]=\"icons.elementLeft4\" />\n </button>\n <div class=\"si-title-2 text-primary\">{{ backText() | translate }}</div>\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #nextBtnHorizontal>\n <div class=\"wizard-btn-container\" [class.wizard-text-deactivate]=\"!currentStep?.isValid()\">\n @if (!shouldHideNavigation()) {\n <div class=\"next\" [class.invisible]=\"index === steps.length - 1\" (click)=\"next(1)\">\n <button\n type=\"button\"\n class=\"btn btn-primary btn-circle mb-2\"\n [disabled]=\"!currentStep?.isValid()\"\n [attr.aria-label]=\"nextText() | translate\"\n >\n <si-icon-next class=\"flip-rtl\" [icon]=\"icons.elementRight4\" />\n </button>\n <div\n class=\"si-title-2 text-primary\"\n [class.disabled]=\"!currentStep?.isValid()\"\n [attr.aria-disabled]=\"!currentStep?.isValid()\"\n >{{ nextText() | translate }}</div\n >\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #saveBtn>\n @if (!hideSave()) {\n <div [class.center-save]=\"!verticalLayout() && inlineNavigation()\">\n @if (index === steps.length - 1) {\n <button\n type=\"button\"\n class=\"btn btn-primary save\"\n [disabled]=\"!currentStep?.isValid() || !currentStep?.isNextNavigable()\"\n (click)=\"save()\"\n >{{ saveText() | translate }}</button\n >\n }\n </div>\n }\n</ng-template>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiWizardStepComponent } from './si-wizard-step.component';\nimport { SiWizardComponent } from './si-wizard.component';\n\n@NgModule({\n imports: [SiWizardComponent, SiWizardStepComponent],\n exports: [SiWizardComponent, SiWizardStepComponent]\n})\nexport class SiWizardModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-wizard-step.component';\nexport * from './si-wizard.component';\nexport * from './si-wizard.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;AAGG;MAeU,qBAAqB,CAAA;;AAEvB,IAAA,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;;IAEnB,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;;IAEtD,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;;IAE9D,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAEtD,IAAI,GAAG,MAAM,EAAE;IACf,IAAI,GAAG,MAAM,EAAE;IACf,IAAI,GAAG,MAAM,EAAE;AAExB;;;AAGG;AACM,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;uGAlBtB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,0pBClBlC,gFAKA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDaa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,gBAAgB,EAAA,eAAA,EAET,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,gFAAA,EAAA;;;MEgDpC,iBAAiB,CAAA;AAGpB,IAAA,WAAW;AAEA,IAAA,cAAc,GAAG,SAAS,CAA6B,gBAAgB,CAAC;AAE3F;;;;;;;AAOG;AACM,IAAA,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAA,CAAA,sBAAA,CAAwB,CAAC;AAC5D;;;;;;;AAOG;AACM,IAAA,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAA,CAAA,sBAAA,CAAwB,CAAC;AAE5D;;;;AAIG;IACM,aAAa,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAErE;;;;AAIG;IACM,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACvE;;;;;;;AAOG;AACM,IAAA,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAA,CAAA,sBAAA,CAAwB,CAAC;AAC5D;;;;AAIG;IACM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACjE;;;;;;;AAOG;AACM,IAAA,cAAc,GAAG,KAAK,CAAC,SAAS,CAAA,CAAA,wCAAA,CAA0C,CAAC;AACpF;;;;;;;AAOG;AACM,IAAA,UAAU,GAAG,KAAK,CAAC,SAAS,CAAA,CAAA,0BAAA,CAA4B,CAAC;AAClE;;;;AAIG;IACM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAClE;;;;AAIG;IACM,oBAAoB,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC7E;;;;AAIG;AACM,IAAA,yBAAyB,GAAG,KAAK,CAAC,IAAI,CAAC;AAChD;;;;AAIG;AACM,IAAA,QAAQ,GAAG,KAAK,CAAC,mBAAmB,CAAC;AAC9C;;;;AAIG;AACM,IAAA,cAAc,GAAG,KAAK,CAAC,qBAAqB,CAAC;AACtD;;;;AAIG;AACM,IAAA,iBAAiB,GAAG,KAAK,CAAC,sBAAsB,CAAC;AAC1D;;;;AAIG;AACM,IAAA,cAAc,GAAG,KAAK,CAAC,sBAAsB,CAAC;AACvD;;;;AAIG;IACM,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACvE;;;;AAIG;IACM,gBAAgB,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACxE;;;;AAIG;IACM,eAAe,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACxE;;;;AAIG;IACM,mBAAmB,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;;IAEnE,eAAe,GAAG,KAAK,EAAU;;IAEjC,eAAe,GAAG,KAAK,EAAU;;IAGjC,gBAAgB,GAAG,MAAM,EAAE;;IAG3B,YAAY,GAAG,MAAM,EAAE;AAEhC;;;AAGG;AACM,IAAA,MAAM,GAAG,IAAI,CAAC,YAAY;;AAGnC,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE;;;AAItB,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;;;AAI1B,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE;;IAGlB,KAAK,GAA4B,EAAE;IACnC,YAAY,GAAG,CAAC;AACP,IAAA,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC;;AAElC,IAAA,WAAW,GAAG,MAAM,CAAa,EAAE,CAAC;AACpC,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;QACtD,OAAO,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvD,KAAC,CAAC;AAEe,IAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AAClB,IAAA,YAAY,GAAG,MAAM,CAAoC,SAAS,CAAC;IACjE,KAAK,GAAG,QAAQ,CAAC;QAClC,aAAa;QACb,cAAc;QACd,oBAAoB;QACpB,YAAY;QACZ,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB;AACD,KAAA,CAAC;AACM,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ;IAEvC,kBAAkB,GAAA;QAChB,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,cAAc,CAAC,MAAK;YAClB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;;AAEpC,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACtE,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE;gBAC7D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC7C,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;;iBACb;gBACL,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AAChF,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;;YAE/B,cAAc,CAAC,MAAK;AAClB,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;;gBAEjC,IAAI,CAAC,6BAA6B,EAAE;AACtC,aAAC,CAAC;AACJ,SAAC,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;;AAGjB,IAAA,WAAW,CAAC,SAAiB,EAAA;AACrC,QAAA,IAAI,SAAS,GAAG,CAAC,EAAE;AACjB,YAAA,OAAO,KAAK;;;AAGd,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,OAAO,IAAI;;;AAGb,QAAA,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,EAAE;AAC5B,YAAA,OAAO,KAAK;;;AAGd,QAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;AACtB,gBAAA,OAAO,KAAK;;;AAGhB,QAAA,OAAO,IAAI;;IAGH,YAAY,CAAC,KAAY,EAAE,SAAiB,EAAA;QACpD,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;AAC/B,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;;AAEnC,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;;;;AAK7B,IAAA,aAAa,CAAC,SAAiB,EAAA;AACvC,QAAA,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,EAAE;AAC5B,YAAA,OAAO,QAAQ;;QAEjB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;AAChC,YAAA,OAAO,UAAU;;AAEnB,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,OAAO,WAAW;;AAEpB,QAAA,OAAO,EAAE;;AAGD,IAAA,eAAe,CAAC,SAAiB,EAAA;QACzC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;AAChC,YAAA,OAAO,MAAM;;AAEf,QAAA,OAAO,OAAO;;AAGN,IAAA,cAAc,CAAC,SAAiB,EAAA;AACxC,QAAA,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,EAAE;AAC5B,YAAA,OAAO,MAAM;;AAEf,QAAA,OAAO,OAAO;;AAGhB;;;AAGG;IACH,IAAI,CAAC,QAAgB,CAAC,EAAA;QACpB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACpC;;AAEF,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AACtC,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE;AAC7B,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE;AACvC,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;;;;AAK7B;;;AAGG;IACH,IAAI,CAAC,QAAgB,CAAC,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;YACpB;;AAEF,QAAA,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;;;IAI/C,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE;AAE7B,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC,EAAE;AACvE,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;YACjC,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;AAClC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAC9B,aAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,CAAC;;aAC/B;AACL,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;;;IAItB,QAAQ,CAAC,IAA2B,EAAE,SAAiB,EAAA;AAC/D,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAC,cAAc,EAAE;;QAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC1E,QAAA,OAAO,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE;;AAG9D,IAAA,QAAQ,CAAC,IAA2B,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;;AAGtC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,kBAAkB,EAAE;;IAGjB,6BAA6B,GAAA;AACrC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;QAC5C,IAAI,CAAC,cAAc,EAAE;YACnB;;AAEF,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzB,MAAM,aAAa,GAAG,gBAAgB,CAAC,cAAc,CAAC,aAAa,CAAC;AACpE,YAAA,MAAM,YAAY,GAChB,cAAc,CAAC,aAAa,CAAC,YAAY;AACzC,gBAAA,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC;AACzC,gBAAA,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC;AACzC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;;aACzD;AACL,YAAA,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,WAAW;AAC5D,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;;QAEhE,IAAI,CAAC,kBAAkB,EAAE;;IAGnB,WAAW,GAAA;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;QACvC,IAAI,CAAC,kBAAkB,EAAE;;IAGnB,kBAAkB,GAAA;QACxB,MAAM,MAAM,GAAG,CAAC,KAAa,MAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAChF,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;;AACnB,aAAA,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;;aACrC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE;YAC9C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;;aACpD;AACL,YAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,YAAA,KACE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EACxD,CAAC,GAAG,IAAI,CAAC,YAAY,EACrB,KAAK,EAAE,EAAE,IAAI,EAAE,EACf;;AAEA,gBAAA,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC1B,oBAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACjB,oBAAA,CAAC,EAAE;;gBAEL,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE;AACtC,oBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAChB,oBAAA,CAAC,EAAE;;;AAIP,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;;;uGAhZ9D,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAEX,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,yBAAA,EAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kCAAA,EAAA,mBAAA,EAAA,kCAAA,EAAA,mBAAA,EAAA,EAAA,cAAA,EAAA,8BAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,qBAAqB,EClExC,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,smQAkPA,ED/LI,MAAA,EAAA,CAAA,imJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EACP,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,yBAAyB,EACzB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,8FACjB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;AAYV,UAAA,CAAA;IAFP,2BAA2B,CAAC,qBAAqB;AAEK,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;2FAH5C,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAnB7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGJ,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACP,OAAO;wBACP,mBAAmB;wBACnB,yBAAyB;wBACzB,iBAAiB;wBACjB;qBACD,EACK,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,8BAA8B;AACrC,wBAAA,kBAAkB,EAAE,kBAAkB;AACtC,wBAAA,oCAAoC,EAAE,mBAAmB;AACzD,wBAAA,oCAAoC,EAAE;AACvC,qBAAA,EAAA,QAAA,EAAA,smQAAA,EAAA,MAAA,EAAA,CAAA,imJAAA,CAAA,EAAA;8BAKO,WAAW,EAAA,CAAA;sBADlB,eAAe;uBAAC,qBAAqB;;;AElExC;;;AAGG;MAUU,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAHf,iBAAiB,EAAE,qBAAqB,CACxC,EAAA,OAAA,EAAA,CAAA,iBAAiB,EAAE,qBAAqB,CAAA,EAAA,CAAA;AAEvC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAHf,iBAAiB,CAAA,EAAA,CAAA;;2FAGhB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;AACnD,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,qBAAqB;AACnD,iBAAA;;;ACZD;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-wizard.mjs","sources":["../../../../projects/element-ng/wizard/si-wizard-step.component.ts","../../../../projects/element-ng/wizard/si-wizard-step.component.html","../../../../projects/element-ng/wizard/si-wizard.component.ts","../../../../projects/element-ng/wizard/si-wizard.component.html","../../../../projects/element-ng/wizard/si-wizard.module.ts","../../../../projects/element-ng/wizard/index.ts","../../../../projects/element-ng/wizard/siemens-element-ng-wizard.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n signal\n} from '@angular/core';\n\n@Component({\n selector: 'si-wizard-step',\n templateUrl: './si-wizard-step.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiWizardStepComponent {\n /** @defaultValue '' */\n readonly heading = input('');\n /** @defaultValue true */\n readonly isValid = input(true, { transform: booleanAttribute });\n /** @defaultValue true */\n readonly isNextNavigable = input(true, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly failed = input(false, { transform: booleanAttribute });\n\n readonly next = output();\n readonly back = output();\n readonly save = output();\n\n /**\n * Whether this step is currently active or not.\n * @defaultValue false\n */\n readonly isActive = signal(false);\n}\n","@if (isActive()) {\n <div class=\"h-100\">\n <ng-content />\n </div>\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n ElementRef,\n input,\n OnDestroy,\n output,\n QueryList,\n signal,\n viewChild\n} from '@angular/core';\nimport { WebComponentContentChildren } from '@siemens/element-ng/common';\nimport {\n addIcons,\n elementCancel,\n elementChecked,\n elementCheckedFilled,\n elementLeft4,\n elementNotChecked,\n elementRadioChecked,\n elementRight4,\n elementWarningFilled,\n SiIconNextComponent\n} from '@siemens/element-ng/icon';\nimport { SiResizeObserverDirective } from '@siemens/element-ng/resize-observer';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SiWizardStepComponent } from './si-wizard-step.component';\n\ninterface StepItem {\n index: number;\n step: SiWizardStepComponent;\n}\n\n@Component({\n selector: 'si-wizard',\n templateUrl: './si-wizard.component.html',\n styleUrl: './si-wizard.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n SiIconNextComponent,\n SiResizeObserverDirective,\n SiTranslateModule,\n NgTemplateOutlet\n ],\n host: {\n class: 'py-6 px-8 d-flex flex-column',\n '[class.vertical]': 'verticalLayout()',\n '[style.--wizard-vertical-min-size]': 'verticalMinSize()',\n '[style.--wizard-vertical-max-size]': 'verticalMaxSize()'\n }\n})\nexport class SiWizardComponent implements AfterContentInit, OnDestroy {\n @WebComponentContentChildren(SiWizardStepComponent)\n @ContentChildren(SiWizardStepComponent)\n private wizardSteps!: QueryList<SiWizardStepComponent>;\n\n protected readonly containerSteps = viewChild<ElementRef<HTMLDivElement>>('containerSteps');\n\n /**\n * Description of back button.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_WIZARD.BACK:Back`\n * ```\n */\n readonly backText = input($localize`:@@SI_WIZARD.BACK:Back`);\n /**\n * Description of next button.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_WIZARD.NEXT:Next`\n * ```\n */\n readonly nextText = input($localize`:@@SI_WIZARD.NEXT:Next`);\n\n /**\n * @deprecated Use {@link hideNavigation} instead.\n *\n * @defaultValue true\n */\n readonly hasNavigation = input(true, { transform: booleanAttribute });\n\n /**\n * Hide the navigation buttons previous/next.\n *\n * @defaultValue false\n */\n readonly hideNavigation = input(false, { transform: booleanAttribute });\n /**\n * Description of save button.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_WIZARD.SAVE:Save`\n * ```\n */\n readonly saveText = input($localize`:@@SI_WIZARD.SAVE:Save`);\n /**\n * Hide the save button.\n *\n * @defaultValue false\n */\n readonly hideSave = input(false, { transform: booleanAttribute });\n /**\n * Text shown if you complete the wizard.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_WIZARD.COMPLETED:Wizard completed!`\n * ```\n */\n readonly completionText = input($localize`:@@SI_WIZARD.COMPLETED:Wizard completed!`);\n /**\n * Description of cancel button.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_WIZARD.CANCEL:Cancel`\n * ```\n */\n readonly cancelText = input($localize`:@@SI_WIZARD.CANCEL:Cancel`);\n /**\n * Show the cancel button\n *\n * @defaultValue false\n */\n readonly hasCancel = input(false, { transform: booleanAttribute });\n /**\n * Display a predefined page by the end of the wizard.\n *\n * @defaultValue false\n */\n readonly enableCompletionPage = input(false, { transform: booleanAttribute });\n /**\n * Define how many milliseconds the completion page is visible.\n *\n * @defaultValue 3000\n */\n readonly completionPageVisibleTime = input(3000);\n /**\n * Class name of icon shown for current and upcoming steps.\n *\n * @defaultValue 'elementNotChecked'\n */\n readonly stepIcon = input('elementNotChecked');\n /**\n * Class name of icon shown for the active step.\n *\n * @defaultValue 'elementRadioChecked'\n */\n readonly stepActiveIcon = input('elementRadioChecked');\n /**\n * Class name of icon shown when a step was completed.\n *\n * @defaultValue 'elementCheckedFilled'\n */\n readonly stepCompletedIcon = input('elementCheckedFilled');\n /**\n * Class name of icon shown when a step had an error.\n *\n * @defaultValue 'elementWarningFilled'\n */\n readonly stepFailedIcon = input('elementWarningFilled');\n /**\n * Set the orientation of the wizard to vertical.\n *\n * @defaultValue false\n */\n readonly verticalLayout = input(false, { transform: booleanAttribute });\n /**\n * Set false to show navigation buttons in footer instead of inline.\n *\n * @defaultValue true\n */\n readonly inlineNavigation = input(true, { transform: booleanAttribute });\n /**\n * Use number representation for steps.\n *\n * @defaultValue false\n */\n readonly showStepNumbers = input(false, { transform: booleanAttribute });\n /**\n * Set to true to display a divider between the steps and the content in the vertical\n *\n * @defaultValue false\n */\n readonly showVerticalDivider = input(false, { transform: booleanAttribute });\n /** Set the wizard step container min size in vertical layout. */\n readonly verticalMinSize = input<string>();\n /** Set the wizard step container max size in vertical layout. */\n readonly verticalMaxSize = input<string>();\n\n /** Callback function triggered after the wizard has been completed. */\n readonly completionAction = output();\n\n /** Callback function triggered if the wizard has been canceled. */\n readonly wizardCancel = output();\n\n /**\n * Callback function triggered if the wizard has been canceled.\n * @deprecated use {@link wizardCancel} instead\n */\n readonly cancel = this.wizardCancel;\n\n /** Get the current step wizard step index. */\n get index(): number {\n return this._index();\n }\n\n /** Get number of wizard steps. */\n get stepCount(): number {\n return this.steps.length;\n }\n\n /** Get current visible wizard step. */\n get currentStep(): SiWizardStepComponent | undefined {\n return this._currentStep();\n }\n\n protected steps: SiWizardStepComponent[] = [];\n protected visibleSteps = 0;\n protected readonly showCompletionPage = signal(false);\n /** The list of visible steps. */\n protected readonly activeSteps = signal<StepItem[]>([]);\n protected readonly shouldHideNavigation = computed(() => {\n return this.hideNavigation() || !this.hasNavigation();\n });\n\n private readonly _index = signal(0);\n private readonly _currentStep = signal<SiWizardStepComponent | undefined>(undefined);\n protected readonly icons = addIcons({\n elementCancel,\n elementChecked,\n elementCheckedFilled,\n elementLeft4,\n elementNotChecked,\n elementRight4,\n elementRadioChecked,\n elementWarningFilled\n });\n private destroyer = new Subject<void>();\n\n ngAfterContentInit(): void {\n this.updateSteps();\n this._currentStep.set(this.steps[0]);\n queueMicrotask(() => {\n if (this.steps.length > 0) {\n this.steps[0].isActive.set(true);\n }\n });\n\n this.wizardSteps.changes.pipe(takeUntil(this.destroyer)).subscribe(() => {\n this.updateSteps();\n if (!this.wizardSteps.some(step => step === this.currentStep)) {\n this._currentStep.set(this.wizardSteps.first);\n this._index.set(0);\n } else {\n const updatedIndex = this.currentStep ? this.steps.indexOf(this.currentStep) : 0;\n this._index.set(updatedIndex);\n }\n queueMicrotask(() => {\n if (this.currentStep) {\n this.activate(this.currentStep);\n }\n this.calculateNumberOfVisibleSteps();\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroyer.next();\n this.destroyer.complete();\n }\n\n protected canActivate(stepIndex: number): boolean {\n if (stepIndex < 0) {\n return false;\n }\n // Can always activate previous steps\n if (stepIndex < this.index) {\n return true;\n }\n // We are already in the step. Nothing to activate.\n if (stepIndex === this.index) {\n return false;\n }\n // Fast-forward: check all steps if they are valid\n for (let i = this.index; i < stepIndex; i++) {\n const theStep = this.steps[i];\n if (!theStep.isValid()) {\n return false;\n }\n }\n return true;\n }\n\n protected activateStep(event: Event, stepIndex: number): void {\n event.preventDefault();\n if (this.canActivate(stepIndex)) {\n if (stepIndex > this.index) {\n this.next(stepIndex - this.index);\n }\n if (stepIndex < this.index) {\n this.back(this.index - stepIndex);\n }\n }\n }\n\n protected getStateClass(stepIndex: number): string {\n if (stepIndex === this.index) {\n return 'active';\n }\n if (!this.canActivate(stepIndex)) {\n return 'disabled';\n }\n if (stepIndex < this.index) {\n return 'completed';\n }\n return '';\n }\n\n protected getAriaDisabled(stepIndex: number): string {\n if (!this.canActivate(stepIndex)) {\n return 'true';\n }\n return 'false';\n }\n\n protected getAriaCurrent(stepIndex: number): string {\n if (stepIndex === this.index) {\n return 'step';\n }\n return 'false';\n }\n\n /**\n * Go to the next wizard step.\n * @param delta - optional number of steps to move forward.\n */\n next(delta: number = 1): void {\n if (this.index === this.steps.length) {\n return;\n }\n const stepIndex = this.index + delta;\n const nextStep = this.steps[stepIndex];\n if (this.canActivate(stepIndex)) {\n this.currentStep?.next.emit();\n if (this.currentStep?.isNextNavigable()) {\n this.activate(nextStep);\n }\n }\n }\n\n /**\n * Go to the previous wizard step.\n * @param delta - optional number of steps to move backwards.\n */\n back(delta: number = 1): void {\n if (this.index === 0) {\n return;\n }\n this.currentStep?.back.emit();\n this.activate(this.steps[this.index - delta]);\n }\n\n /** Triggers the save action to complete the wizard. */\n save(): void {\n this.currentStep?.save.emit();\n\n if (this.enableCompletionPage() && this.completionPageVisibleTime() > 0) {\n this.showCompletionPage.set(true);\n setTimeout(() => {\n this.showCompletionPage.set(false);\n this.completionAction.emit();\n }, this.completionPageVisibleTime());\n } else {\n this.completionAction.emit();\n }\n }\n\n protected getState(step: SiWizardStepComponent, stepIndex: number): string {\n if (step.failed() === true) {\n return this.stepFailedIcon();\n }\n const txtStyle = step.isActive() ? this.stepActiveIcon() : this.stepIcon();\n return stepIndex >= this.index ? txtStyle : this.stepCompletedIcon();\n }\n\n private activate(step: SiWizardStepComponent): void {\n if (this.currentStep) {\n this.currentStep.isActive.set(false);\n }\n\n step.isActive.set(true);\n this._currentStep.set(step);\n this._index.set(this.steps.indexOf(step));\n this.updateVisibleSteps();\n }\n\n protected calculateNumberOfVisibleSteps(): void {\n const containerSteps = this.containerSteps();\n if (!containerSteps) {\n return;\n }\n if (this.verticalLayout()) {\n const computedStyle = getComputedStyle(containerSteps.nativeElement);\n const clientHeight =\n containerSteps.nativeElement.clientHeight -\n parseInt(computedStyle.paddingBlockStart) -\n parseInt(computedStyle.paddingBlockEnd);\n this.visibleSteps = Math.max(Math.floor(clientHeight / 48), 1);\n } else {\n const clientWidth = containerSteps.nativeElement.clientWidth;\n this.visibleSteps = Math.max(Math.floor(clientWidth / 150), 1);\n }\n this.updateVisibleSteps();\n }\n\n private updateSteps(): void {\n this.steps = this.wizardSteps.toArray();\n this.updateVisibleSteps();\n }\n\n private updateVisibleSteps(): void {\n const create = (index: number): StepItem => ({ index, step: this.steps[index] });\n if (this.steps.length === 0) {\n this.activeSteps.set([]);\n } else if (this.visibleSteps <= 1) {\n this.activeSteps.set([create(this.index)]);\n } else if (this.stepCount <= this.visibleSteps) {\n this.activeSteps.set(this.steps.map((_, i) => create(i)));\n } else {\n const steps = [this.index];\n for (\n let i = 1, left = this.index - 1, right = this.index + 1;\n i < this.visibleSteps;\n right++, left--\n ) {\n // Iterate in both directions to check current step is in visible range.\n if (right < this.stepCount) {\n steps.push(right);\n i++;\n }\n if (left >= 0 && i < this.visibleSteps) {\n steps.push(left);\n i++;\n }\n }\n\n this.activeSteps.set(steps.sort((l, r) => l - r).map(i => create(i)));\n }\n }\n}\n","@if (!showCompletionPage()) {\n @if (!verticalLayout()) {\n <div class=\"container-wizard\" [class.justify-content-center]=\"!inlineNavigation()\">\n @if (inlineNavigation()) {\n <ng-container *ngTemplateOutlet=\"cancelBtnHorizontal\" />\n <ng-container *ngTemplateOutlet=\"backBtnHorizontal\" />\n }\n <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n @if (inlineNavigation()) {\n <ng-container *ngTemplateOutlet=\"nextBtnHorizontal\" />\n }\n </div>\n\n <ng-container *ngTemplateOutlet=\"stepContent\" />\n @if (inlineNavigation()) {\n <ng-container *ngTemplateOutlet=\"saveBtn\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"footer\" />\n }\n } @else {\n @if (showVerticalDivider()) {\n <div class=\"container-wizard vertical\">\n <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n <div class=\"vertical-divider\"></div>\n <div class=\"d-flex flex-column w-100\">\n <div class=\"steps-content\">\n <ng-container *ngTemplateOutlet=\"stepContent\" />\n </div>\n <ng-container *ngTemplateOutlet=\"footer\" />\n </div>\n </div>\n } @else {\n <div class=\"container-wizard vertical\">\n <ng-container *ngTemplateOutlet=\"stepsTemplate\" />\n <div class=\"steps-content\">\n <ng-container *ngTemplateOutlet=\"stepContent\" />\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"footer\" />\n }\n }\n} @else {\n <div class=\"text-center\">\n <si-icon-next class=\"completion-icon-size text-success\" [icon]=\"icons.elementChecked\" />\n <p class=\"si-title-1\"> {{ completionText() | translate }}</p>\n </div>\n}\n\n<ng-template #stepsTemplate>\n <div\n #containerSteps\n class=\"container-steps\"\n [class.vertical]=\"verticalLayout()\"\n [class.mx-4]=\"inlineNavigation()\"\n [class.mt-4]=\"!verticalLayout() && inlineNavigation()\"\n (siResizeObserver)=\"calculateNumberOfVisibleSteps()\"\n >\n @for (item of activeSteps(); track item.index) {\n <div class=\"step\">\n <div\n class=\"line previous\"\n [class.dashed]=\"$first && item.index > 0\"\n [class.vertical]=\"verticalLayout()\"\n [class.spacer]=\"$first && item.index === 0\"\n [ngClass]=\"getStateClass(item.index)\"\n ></div>\n <a\n class=\"focus-none\"\n [ngClass]=\"getStateClass(item.index)\"\n [attr.aria-current]=\"getAriaCurrent(item.index)\"\n [attr.href]=\"!canActivate(item.index) || !currentStep?.isNextNavigable() ? null : '#'\"\n (click)=\"activateStep($event, item.index)\"\n >\n @if (showStepNumbers() && !item.step.failed()) {\n <div\n class=\"step-icon number-step d-flex justify-content-center align-items-center px-1\"\n >\n <div class=\"circle\" [class.status-warning]=\"item.step.failed()\">\n <span class=\"si-title-2 px-2\" [class.completed-color]=\"item.index < index\">\n {{ item.index + 1 }}\n </span>\n </div>\n </div>\n } @else {\n <si-icon-next\n class=\"icon step-icon\"\n [class.status-warning]=\"item.step.failed()\"\n [icon]=\"getState(item.step!, item.index)\"\n />\n }\n <div\n class=\"title si-title-2\"\n [class.text-center]=\"!verticalLayout()\"\n [class.px-6]=\"!verticalLayout()\"\n [attr.aria-disabled]=\"getAriaDisabled(item.index)\"\n >{{ item.step.heading() | translate }}</div\n >\n </a>\n @if (item.index + 1 < stepCount) {\n <div\n class=\"line\"\n [class.vertical]=\"verticalLayout()\"\n [ngClass]=\"getStateClass(item.index + 1)\"\n [class.dashed]=\"$last\"\n ></div>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #stepContent>\n <div [class.flex-grow-1]=\"!verticalLayout()\" [class.h-100]=\"verticalLayout()\">\n <ng-content />\n </div>\n</ng-template>\n\n<ng-template #cancelBtnHorizontal>\n @if (hasCancel()) {\n <div class=\"me-7\">\n <div class=\"wizard-btn-container\" (click)=\"wizardCancel.emit()\">\n <button\n type=\"button\"\n class=\"btn btn-sm btn-circle btn-secondary mt-2 mb-4\"\n [attr.aria-label]=\"cancelText() | translate\"\n >\n <si-icon-next [icon]=\"icons.elementCancel\" />\n </button>\n <div class=\"si-title-2 text-primary\">{{ cancelText() | translate }}</div>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #footer>\n <div class=\"wizard-footer pt-6\">\n <div class=\"wizard-footer-inner\" [class.ms-6]=\"showVerticalDivider()\">\n @if (hasCancel()) {\n <button\n type=\"button\"\n class=\"btn btn-tertiary\"\n [attr.aria-label]=\"cancelText() | translate\"\n (click)=\"wizardCancel.emit()\"\n >\n {{ cancelText() | translate }}\n </button>\n }\n @if (!shouldHideNavigation()) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [class.d-none]=\"index === 0\"\n [class.end]=\"index !== 0\"\n [attr.aria-label]=\"backText() | translate\"\n (click)=\"back(1)\"\n >\n {{ backText() | translate }}\n </button>\n\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n [attr.aria-label]=\"nextText() | translate\"\n [disabled]=\"!currentStep?.isValid()\"\n [class.d-none]=\"index === steps.length - 1\"\n [class.end]=\"index === 0\"\n (click)=\"next(1)\"\n >\n {{ nextText() | translate }}\n </button>\n }\n\n @if (!hideSave()) {\n @if (index === steps.length - 1) {\n <button\n type=\"button\"\n class=\"btn btn-primary save\"\n [disabled]=\"!currentStep?.isValid() || !currentStep?.isNextNavigable()\"\n (click)=\"save()\"\n >{{ saveText() | translate }}</button\n >\n }\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #backBtnHorizontal>\n <div class=\"wizard-btn-container\">\n @if (!shouldHideNavigation()) {\n <div class=\"back\" [class.invisible]=\"index === 0\" (click)=\"back(1)\">\n <button\n type=\"button\"\n class=\"btn btn-secondary btn-circle mb-2\"\n [attr.aria-label]=\"backText() | translate\"\n >\n <si-icon-next class=\"flip-rtl\" [icon]=\"icons.elementLeft4\" />\n </button>\n <div class=\"si-title-2 text-primary\">{{ backText() | translate }}</div>\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #nextBtnHorizontal>\n <div class=\"wizard-btn-container\" [class.wizard-text-deactivate]=\"!currentStep?.isValid()\">\n @if (!shouldHideNavigation()) {\n <div class=\"next\" [class.invisible]=\"index === steps.length - 1\" (click)=\"next(1)\">\n <button\n type=\"button\"\n class=\"btn btn-primary btn-circle mb-2\"\n [disabled]=\"!currentStep?.isValid()\"\n [attr.aria-label]=\"nextText() | translate\"\n >\n <si-icon-next class=\"flip-rtl\" [icon]=\"icons.elementRight4\" />\n </button>\n <div\n class=\"si-title-2 text-primary\"\n [class.disabled]=\"!currentStep?.isValid()\"\n [attr.aria-disabled]=\"!currentStep?.isValid()\"\n >{{ nextText() | translate }}</div\n >\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #saveBtn>\n @if (!hideSave()) {\n <div [class.center-save]=\"!verticalLayout() && inlineNavigation()\">\n @if (index === steps.length - 1) {\n <button\n type=\"button\"\n class=\"btn btn-primary save\"\n [disabled]=\"!currentStep?.isValid() || !currentStep?.isNextNavigable()\"\n (click)=\"save()\"\n >{{ saveText() | translate }}</button\n >\n }\n </div>\n }\n</ng-template>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiWizardStepComponent } from './si-wizard-step.component';\nimport { SiWizardComponent } from './si-wizard.component';\n\n@NgModule({\n imports: [SiWizardComponent, SiWizardStepComponent],\n exports: [SiWizardComponent, SiWizardStepComponent]\n})\nexport class SiWizardModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-wizard-step.component';\nexport * from './si-wizard.component';\nexport * from './si-wizard.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import { OnChanges } from '@angular/core';
|
|
2
1
|
import { EntityStatusType } from '@siemens/element-ng/common';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class SiStatusIconComponent
|
|
3
|
+
export declare class SiStatusIconComponent {
|
|
5
4
|
private readonly statusIcons;
|
|
6
|
-
private readonly translate;
|
|
7
|
-
private readonly destroyRef;
|
|
8
5
|
readonly status: import("@angular/core").InputSignal<EntityStatusType>;
|
|
9
6
|
protected readonly statusIcon: import("@angular/core").Signal<import("@siemens/element-ng/common").StatusIcon>;
|
|
10
|
-
protected readonly ariaLabel: import("@angular/core").WritableSignal<string | null>;
|
|
11
|
-
ngOnChanges(): void;
|
|
12
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<SiStatusIconComponent, never>;
|
|
13
8
|
static ɵcmp: i0.ɵɵComponentDeclaration<SiStatusIconComponent, "si-status-icon", never, { "status": { "alias": "status"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
14
9
|
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class SiMainDetailContainerComponent implements OnInit, OnChanges, OnDestroy {
|
|
4
|
+
private animationDuration;
|
|
5
|
+
private resizeSubs?;
|
|
6
|
+
private elementRef;
|
|
7
|
+
private resizeObserver;
|
|
8
|
+
private changeDetectorRef;
|
|
9
|
+
/**
|
|
10
|
+
* A numeric value defining the minimum width in px, which the container needs
|
|
11
|
+
* to be displayed in its large layout. Whenever smaller than
|
|
12
|
+
* this threshold, the small layout will be used. Default is
|
|
13
|
+
* value is BOOTSTRAP_BREAKPOINTS.mdMinimum.
|
|
14
|
+
*
|
|
15
|
+
* @defaultValue BOOTSTRAP_BREAKPOINTS.mdMinimum
|
|
16
|
+
*/
|
|
17
|
+
readonly largeLayoutBreakpoint: import("@angular/core").InputSignal<number>;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the main-detail layout component has a large size or not,
|
|
20
|
+
* `true` if the container´s width matches or exceeds the `largeLayoutBreakpoint`.
|
|
21
|
+
*/
|
|
22
|
+
hasLargeSize: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Emits whether the components size is large enough to display
|
|
25
|
+
* main and details views next to each other or not.
|
|
26
|
+
*/
|
|
27
|
+
readonly hasLargeSizeChange: import("@angular/core").OutputEmitterRef<boolean>;
|
|
28
|
+
/**
|
|
29
|
+
* Whether the details are currently active or not, mostly relevant in the
|
|
30
|
+
* responsive scenario when the viewport only shows either the main or the detail.
|
|
31
|
+
*
|
|
32
|
+
* @defaultValue false
|
|
33
|
+
*/
|
|
34
|
+
readonly detailsActive: import("@angular/core").ModelSignal<boolean>;
|
|
35
|
+
/**
|
|
36
|
+
* The heading of the main-detail layout component, usually a page heading.
|
|
37
|
+
*
|
|
38
|
+
* @defaultValue ''
|
|
39
|
+
*/
|
|
40
|
+
readonly heading: import("@angular/core").InputSignal<string>;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the heading should be truncated (single line) or not.
|
|
43
|
+
* Default value is `false`.
|
|
44
|
+
*
|
|
45
|
+
* @defaultValue false
|
|
46
|
+
*/
|
|
47
|
+
readonly truncateHeading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
48
|
+
/**
|
|
49
|
+
* The heading of the detail area.
|
|
50
|
+
*
|
|
51
|
+
* @defaultValue ''
|
|
52
|
+
*/
|
|
53
|
+
readonly detailsHeading: import("@angular/core").InputSignal<string>;
|
|
54
|
+
/**
|
|
55
|
+
* Whether the main and detail parts should be resizable by a splitter or not.
|
|
56
|
+
* This is only supported in the 'large' scenario (when `hasLargeSize` is `true`).
|
|
57
|
+
* Default value is `false`.
|
|
58
|
+
*
|
|
59
|
+
* @defaultValue false
|
|
60
|
+
*/
|
|
61
|
+
readonly resizableParts: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
62
|
+
/**
|
|
63
|
+
* You can hide the back button in the mobile view by setting true. Required
|
|
64
|
+
* in add, edit workflows on mobile sizes. During add or edit, the back button
|
|
65
|
+
* should be hidden. Default value is `false`.
|
|
66
|
+
*
|
|
67
|
+
* @defaultValue false
|
|
68
|
+
*/
|
|
69
|
+
readonly hideBackButton: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
70
|
+
/**
|
|
71
|
+
* Details back button text. Required for a11y.
|
|
72
|
+
*
|
|
73
|
+
* @defaultValue
|
|
74
|
+
* ```
|
|
75
|
+
* $localize`:@@SI_MAIN_DETAIL_CONTAINER.BACK:Back`
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
readonly detailsBackButtonText: import("@angular/core").InputSignal<import("@siemens/element-translate-ng/translate").TranslatableString>;
|
|
79
|
+
/**
|
|
80
|
+
* CSS class(es) applied to the outermost container. Per default, Bootstrap classes
|
|
81
|
+
* to handle responsive paddings are applied: `px-6 pt-6 px-md-9`.
|
|
82
|
+
*
|
|
83
|
+
* @defaultValue 'px-6 pt-6 px-md-9'
|
|
84
|
+
*/
|
|
85
|
+
readonly containerClass: import("@angular/core").InputSignal<string>;
|
|
86
|
+
/**
|
|
87
|
+
* CSS class(es) applied to the main container. In combination with `containerClass`,
|
|
88
|
+
* this allows for settings individual padding and margin values on the individual containers.
|
|
89
|
+
*
|
|
90
|
+
* @defaultValue 'pb-6'
|
|
91
|
+
*/
|
|
92
|
+
readonly mainContainerClass: import("@angular/core").InputSignal<string>;
|
|
93
|
+
/**
|
|
94
|
+
* CSS class(es) applied to the detail container. In combination with `containerClass`,
|
|
95
|
+
* this allows for settings individual padding and margin values on the individual containers.
|
|
96
|
+
*
|
|
97
|
+
* @defaultValue 'pb-6'
|
|
98
|
+
*/
|
|
99
|
+
readonly detailContainerClass: import("@angular/core").InputSignal<string>;
|
|
100
|
+
/**
|
|
101
|
+
* The percentage width of the main container from the overall component width.
|
|
102
|
+
* Can be a number or `'default'`, which is 32% when {@link resizableParts} is active, otherwise 50%.
|
|
103
|
+
*
|
|
104
|
+
* @defaultValue 'default'
|
|
105
|
+
*/
|
|
106
|
+
readonly mainContainerWidth: import("@angular/core").ModelSignal<number | "default">;
|
|
107
|
+
/**
|
|
108
|
+
* Sets the minimal width of the main container in pixel.
|
|
109
|
+
*
|
|
110
|
+
* @defaultValue 300
|
|
111
|
+
*/
|
|
112
|
+
readonly minMainSize: import("@angular/core").InputSignal<number>;
|
|
113
|
+
/**
|
|
114
|
+
* Sets the minimal width of the detail container in pixel.
|
|
115
|
+
*
|
|
116
|
+
* @defaultValue 300
|
|
117
|
+
*/
|
|
118
|
+
readonly minDetailSize: import("@angular/core").InputSignal<number>;
|
|
119
|
+
/**
|
|
120
|
+
* An optional stateId to uniquely identify a component instance.
|
|
121
|
+
* Required for persistence of ui state.
|
|
122
|
+
*/
|
|
123
|
+
readonly stateId: import("@angular/core").InputSignal<string | undefined>;
|
|
124
|
+
/**
|
|
125
|
+
* The attribute is set to true when the detail area is not visible to ensure that the user
|
|
126
|
+
* can't tab to details area when it is hidden.
|
|
127
|
+
*/
|
|
128
|
+
protected preventFocusDetails: boolean;
|
|
129
|
+
private readonly actualMainContainerWidth;
|
|
130
|
+
protected splitSizes: [number, number];
|
|
131
|
+
protected maxMainSize: string;
|
|
132
|
+
protected maxDetailSize: string;
|
|
133
|
+
protected readonly mainStateId: import("@angular/core").Signal<string | undefined>;
|
|
134
|
+
protected readonly detailStateId: import("@angular/core").Signal<string | undefined>;
|
|
135
|
+
protected animate: boolean;
|
|
136
|
+
protected opacity: string;
|
|
137
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
138
|
+
ngOnInit(): void;
|
|
139
|
+
ngOnDestroy(): void;
|
|
140
|
+
protected onSplitSizesChange(sizes: number[]): void;
|
|
141
|
+
protected detailsBackClicked(): void;
|
|
142
|
+
/**
|
|
143
|
+
* Get the max size to limit in the static flex layout (if less than 50%), otherwise not set
|
|
144
|
+
*/
|
|
145
|
+
private getMaxSize;
|
|
146
|
+
private determineLayout;
|
|
147
|
+
private doAnimation;
|
|
148
|
+
private updateDetailsFocusable;
|
|
149
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SiMainDetailContainerComponent, never>;
|
|
150
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SiMainDetailContainerComponent, "si-main-detail-container", never, { "largeLayoutBreakpoint": { "alias": "largeLayoutBreakpoint"; "required": false; "isSignal": true; }; "detailsActive": { "alias": "detailsActive"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "truncateHeading": { "alias": "truncateHeading"; "required": false; "isSignal": true; }; "detailsHeading": { "alias": "detailsHeading"; "required": false; "isSignal": true; }; "resizableParts": { "alias": "resizableParts"; "required": false; "isSignal": true; }; "hideBackButton": { "alias": "hideBackButton"; "required": false; "isSignal": true; }; "detailsBackButtonText": { "alias": "detailsBackButtonText"; "required": false; "isSignal": true; }; "containerClass": { "alias": "containerClass"; "required": false; "isSignal": true; }; "mainContainerClass": { "alias": "mainContainerClass"; "required": false; "isSignal": true; }; "detailContainerClass": { "alias": "detailContainerClass"; "required": false; "isSignal": true; }; "mainContainerWidth": { "alias": "mainContainerWidth"; "required": false; "isSignal": true; }; "minMainSize": { "alias": "minMainSize"; "required": false; "isSignal": true; }; "minDetailSize": { "alias": "minDetailSize"; "required": false; "isSignal": true; }; "stateId": { "alias": "stateId"; "required": false; "isSignal": true; }; }, { "hasLargeSizeChange": "hasLargeSizeChange"; "detailsActive": "detailsActiveChange"; "mainContainerWidth": "mainContainerWidthChange"; }, never, ["[slot=mainSearch]", "[slot=mainActions]", "[slot=mainData]", "[slot=detailActions]", "[slot=details]"], true, never>;
|
|
151
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./si-main-detail-container.component";
|
|
3
|
+
export declare class SiMainDetailContainerModule {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SiMainDetailContainerModule, never>;
|
|
5
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SiMainDetailContainerModule, never, [typeof i1.SiMainDetailContainerComponent], [typeof i1.SiMainDetailContainerComponent]>;
|
|
6
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<SiMainDetailContainerModule>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class SiNavbarVerticalDividerComponent {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SiNavbarVerticalDividerComponent, never>;
|
|
4
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SiNavbarVerticalDividerComponent, "si-navbar-vertical-divider", never, {}, {}, never, never, true, never>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { OnInit, TemplateRef } from '@angular/core';
|
|
2
|
+
import { NavbarVerticalItem, NavbarVerticalItemGroup } from './si-navbar-vertical.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SiNavbarVerticalGroupTriggerDirective implements OnInit {
|
|
5
|
+
private static idCounter;
|
|
6
|
+
/** @internal */
|
|
7
|
+
readonly groupId: string;
|
|
8
|
+
readonly id: string;
|
|
9
|
+
readonly groupTemplate: import("@angular/core").InputSignal<TemplateRef<unknown>>;
|
|
10
|
+
readonly groupData: import("@angular/core").InputSignal<{
|
|
11
|
+
item?: NavbarVerticalItem;
|
|
12
|
+
group: NavbarVerticalItemGroup;
|
|
13
|
+
} | undefined>;
|
|
14
|
+
readonly stateId: import("@angular/core").InputSignal<string | undefined>;
|
|
15
|
+
readonly expanded: import("@angular/core").ModelSignal<boolean>;
|
|
16
|
+
/** @internal */
|
|
17
|
+
readonly flyout: import("@angular/core").WritableSignal<boolean>;
|
|
18
|
+
/** @internal */
|
|
19
|
+
readonly active: import("@angular/core").WritableSignal<boolean>;
|
|
20
|
+
protected readonly navbar: import("@siemens/element-ng/navbar-vertical").SiNavbarVerticalComponent;
|
|
21
|
+
private flyoutOutsideClickSubscription?;
|
|
22
|
+
private readonly viewContainer;
|
|
23
|
+
private readonly overlay;
|
|
24
|
+
private readonly injector;
|
|
25
|
+
private readonly overlayRef;
|
|
26
|
+
private groupView;
|
|
27
|
+
private flyoutAnchorComponentRef?;
|
|
28
|
+
private readonly templatePortal;
|
|
29
|
+
ngOnInit(): void;
|
|
30
|
+
/** @internal */
|
|
31
|
+
hideFlyout(): void;
|
|
32
|
+
protected triggered(): void;
|
|
33
|
+
private toggleFlyout;
|
|
34
|
+
private attachInline;
|
|
35
|
+
private attachFlyout;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SiNavbarVerticalGroupTriggerDirective, never>;
|
|
37
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<SiNavbarVerticalGroupTriggerDirective, "button[siNavbarVerticalGroupTriggerFor]", never, { "groupTemplate": { "alias": "siNavbarVerticalGroupTriggerFor"; "required": true; "isSignal": true; }; "groupData": { "alias": "groupData"; "required": false; "isSignal": true; }; "stateId": { "alias": "stateId"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": true; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, never, true, never>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SiNavbarVerticalGroupTriggerDirective } from './si-navbar-vertical-group-trigger.directive';
|
|
2
|
+
import { SiNavbarVerticalItemComponent } from './si-navbar-vertical-item.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SiNavbarVerticalGroupComponent {
|
|
5
|
+
protected readonly navbar: import("@siemens/element-ng/navbar-vertical").SiNavbarVerticalComponent;
|
|
6
|
+
protected readonly groupTrigger: SiNavbarVerticalGroupTriggerDirective;
|
|
7
|
+
readonly groupParent: SiNavbarVerticalItemComponent;
|
|
8
|
+
private readonly routerLinkActive;
|
|
9
|
+
protected flyout: boolean;
|
|
10
|
+
protected readonly visible: import("@angular/core").Signal<boolean>;
|
|
11
|
+
protected readonly state: import("@angular/core").Signal<"flyout" | "collapsed" | "expanded">;
|
|
12
|
+
constructor();
|
|
13
|
+
protected close(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SiNavbarVerticalGroupComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SiNavbarVerticalGroupComponent, "si-navbar-vertical-group", never, {}, {}, never, ["*"], true, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class SiNavbarVerticalHeaderComponent {
|
|
3
|
+
protected navbar: import("@siemens/element-ng/navbar-vertical").SiNavbarVerticalComponent;
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SiNavbarVerticalHeaderComponent, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SiNavbarVerticalHeaderComponent, "si-navbar-vertical-header", never, {}, {}, never, ["*"], true, never>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { MenuItem } from '@siemens/element-ng/common';
|
|
2
|
+
import { SiLinkDirective } from '@siemens/element-ng/link';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SiNavbarVerticalItemLegacyComponent {
|
|
5
|
+
readonly item: import("@angular/core").InputSignal<MenuItem>;
|
|
6
|
+
readonly navbarExpandButtonText: import("@angular/core").InputSignal<unknown>;
|
|
7
|
+
readonly navbarCollapseButtonText: import("@angular/core").InputSignal<unknown>;
|
|
8
|
+
readonly expanded: import("@angular/core").ModelSignal<boolean>;
|
|
9
|
+
protected readonly flyoutItems: import("@angular/core").Signal<MenuItem[] | undefined>;
|
|
10
|
+
protected readonly isLink: import("@angular/core").Signal<boolean>;
|
|
11
|
+
protected readonly toggleButtonLabel: import("@angular/core").Signal<unknown>;
|
|
12
|
+
protected readonly siLinks: import("@angular/core").Signal<readonly SiLinkDirective[]>;
|
|
13
|
+
protected readonly itemActive: import("@angular/core").Signal<boolean>;
|
|
14
|
+
protected navbar: import("@siemens/element-ng/navbar-vertical").SiNavbarVerticalComponent;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SiNavbarVerticalItemLegacyComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SiNavbarVerticalItemLegacyComponent, "si-navbar-vertical-item-legacy", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "navbarExpandButtonText": { "alias": "navbarExpandButtonText"; "required": true; "isSignal": true; }; "navbarCollapseButtonText": { "alias": "navbarCollapseButtonText"; "required": true; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": true; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, never, true, never>;
|
|
17
|
+
}
|