@educarehq/solaris-components 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, Renderer2, Directive, TemplateRef, Injectable, ViewContainerRef, DestroyRef, Input, ContentChild, ViewEncapsulation, Component, EventEmitter, Output, HostBinding, ChangeDetectionStrategy, ViewChildren, ContentChildren, ApplicationRef, signal, computed, effect, HostListener, Optional, EnvironmentInjector, createComponent, input, booleanAttribute, InjectionToken, makeEnvironmentProviders, PLATFORM_ID, viewChild, numberAttribute, afterNextRender,
|
|
2
|
+
import { inject, ElementRef, Renderer2, Directive, TemplateRef, Injectable, ViewContainerRef, DestroyRef, Input, ContentChild, ViewEncapsulation, Component, EventEmitter, Output, HostBinding, ChangeDetectionStrategy, ViewChildren, ContentChildren, ApplicationRef, signal, computed, effect, HostListener, Optional, EnvironmentInjector, createComponent, input, booleanAttribute, InjectionToken, makeEnvironmentProviders, PLATFORM_ID, viewChild, numberAttribute, afterNextRender, Injector, ViewChild, output, forwardRef, Host } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { Overlay } from '@angular/cdk/overlay';
|
|
5
5
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
@@ -8,7 +8,7 @@ import { filter } from 'rxjs/operators';
|
|
|
8
8
|
import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';
|
|
9
9
|
import { RouterLink } from '@angular/router';
|
|
10
10
|
import * as i1 from '@angular/common';
|
|
11
|
-
import { NgClass, NgTemplateOutlet, CommonModule, NgStyle, isPlatformBrowser, DOCUMENT, NgOptimizedImage } from '@angular/common';
|
|
11
|
+
import { NgClass, NgTemplateOutlet, CommonModule, NgStyle, isPlatformBrowser, NgComponentOutlet, DOCUMENT, NgOptimizedImage } from '@angular/common';
|
|
12
12
|
import { SolarisTranslationPipe, SOLARIS_TRANSLATION, SOLARIS_TRANSLATION_CONFIGURATION } from '@educarehq/solaris-services';
|
|
13
13
|
import * as i1$1 from '@angular/forms';
|
|
14
14
|
import { NG_VALUE_ACCESSOR, FormsModule, NG_VALIDATORS, NgForm, FormGroupDirective, NgControl } from '@angular/forms';
|
|
@@ -3039,6 +3039,277 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
3039
3039
|
args: ['attr.aria-orientation']
|
|
3040
3040
|
}] } });
|
|
3041
3041
|
|
|
3042
|
+
const SOLARIS_DIALOG_STEP_DATA = new InjectionToken('SOLARIS_DIALOG_STEP_DATA');
|
|
3043
|
+
|
|
3044
|
+
const SOLARIS_DIALOG_DATA = new InjectionToken('SOLARIS_DIALOG_DATA');
|
|
3045
|
+
|
|
3046
|
+
class SolarisDialogRef {
|
|
3047
|
+
actionSubject = new Subject();
|
|
3048
|
+
closedSubject = new Subject();
|
|
3049
|
+
closeFn;
|
|
3050
|
+
updateActionsFn;
|
|
3051
|
+
updateHeaderFn;
|
|
3052
|
+
afterClosed() {
|
|
3053
|
+
return this.closedSubject.asObservable();
|
|
3054
|
+
}
|
|
3055
|
+
afterAction() {
|
|
3056
|
+
return this.actionSubject.asObservable();
|
|
3057
|
+
}
|
|
3058
|
+
close(result) {
|
|
3059
|
+
this.closeFn?.(result);
|
|
3060
|
+
}
|
|
3061
|
+
updateActions(actions) {
|
|
3062
|
+
this.updateActionsFn?.(actions);
|
|
3063
|
+
}
|
|
3064
|
+
updateHeader(header) {
|
|
3065
|
+
this.updateHeaderFn?.(header);
|
|
3066
|
+
}
|
|
3067
|
+
_attachCloseFn(fn) {
|
|
3068
|
+
this.closeFn = fn;
|
|
3069
|
+
}
|
|
3070
|
+
_attachActionsUpdateFn(fn) {
|
|
3071
|
+
this.updateActionsFn = fn;
|
|
3072
|
+
}
|
|
3073
|
+
_attachHeaderUpdateFn(fn) {
|
|
3074
|
+
this.updateHeaderFn = fn;
|
|
3075
|
+
}
|
|
3076
|
+
_emitAction(action) {
|
|
3077
|
+
this.actionSubject.next(action);
|
|
3078
|
+
}
|
|
3079
|
+
_finishClose(result) {
|
|
3080
|
+
this.closedSubject.next(result);
|
|
3081
|
+
this.closedSubject.complete();
|
|
3082
|
+
this.actionSubject.complete();
|
|
3083
|
+
}
|
|
3084
|
+
}
|
|
3085
|
+
|
|
3086
|
+
class SolarisDialogStepsContainer {
|
|
3087
|
+
destroyRef = inject(DestroyRef);
|
|
3088
|
+
injector = inject(Injector);
|
|
3089
|
+
configuration = inject(SOLARIS_DIALOG_DATA);
|
|
3090
|
+
dialogRef = inject(SolarisDialogRef);
|
|
3091
|
+
loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
|
|
3092
|
+
transitioning = signal(false, ...(ngDevMode ? [{ debugName: "transitioning" }] : []));
|
|
3093
|
+
transitionHalfway = signal(false, ...(ngDevMode ? [{ debugName: "transitionHalfway" }] : []));
|
|
3094
|
+
currentStepIndex = signal(this.resolveInitialStepIndex(), ...(ngDevMode ? [{ debugName: "currentStepIndex" }] : []));
|
|
3095
|
+
showProgress = this.configuration.showProgress ?? true;
|
|
3096
|
+
transitionBlur = this.configuration.transitionBlur ?? true;
|
|
3097
|
+
contentMinHeight = this.configuration.contentMinHeight ?? '0';
|
|
3098
|
+
steps = this.configuration.steps ?? [];
|
|
3099
|
+
transitionDurationMs = this.configuration.transitionDurationMs ?? 360;
|
|
3100
|
+
halfwayTimer = 0;
|
|
3101
|
+
transitionTimer = 0;
|
|
3102
|
+
stepInjectors = this.steps.map(step => Injector.create({
|
|
3103
|
+
providers: [
|
|
3104
|
+
{
|
|
3105
|
+
provide: SOLARIS_DIALOG_STEP_DATA,
|
|
3106
|
+
useValue: step.data,
|
|
3107
|
+
},
|
|
3108
|
+
],
|
|
3109
|
+
parent: this.injector,
|
|
3110
|
+
}));
|
|
3111
|
+
trackTransform = computed(() => {
|
|
3112
|
+
return `translate3d(-${this.currentStepIndex() * 100}%, 0, 0)`;
|
|
3113
|
+
}, ...(ngDevMode ? [{ debugName: "trackTransform" }] : []));
|
|
3114
|
+
isFirstStep = computed(() => this.currentStepIndex() === 0, ...(ngDevMode ? [{ debugName: "isFirstStep" }] : []));
|
|
3115
|
+
isLastStep = computed(() => {
|
|
3116
|
+
return this.currentStepIndex() === this.steps.length - 1;
|
|
3117
|
+
}, ...(ngDevMode ? [{ debugName: "isLastStep" }] : []));
|
|
3118
|
+
transitionDuration = computed(() => {
|
|
3119
|
+
return `${this.transitionDurationMs}ms`;
|
|
3120
|
+
}, ...(ngDevMode ? [{ debugName: "transitionDuration" }] : []));
|
|
3121
|
+
constructor() {
|
|
3122
|
+
this.dialogRef.afterAction().pipe(takeUntilDestroyed(this.destroyRef))
|
|
3123
|
+
.subscribe(action => {
|
|
3124
|
+
void this.handleAction(action.value);
|
|
3125
|
+
});
|
|
3126
|
+
effect(() => {
|
|
3127
|
+
this.currentStepIndex();
|
|
3128
|
+
this.loading();
|
|
3129
|
+
this.updateDialogHeader();
|
|
3130
|
+
this.updateDialogActions();
|
|
3131
|
+
});
|
|
3132
|
+
queueMicrotask(() => {
|
|
3133
|
+
void this.runBeforeEnter(this.currentStepIndex(), 'initial');
|
|
3134
|
+
});
|
|
3135
|
+
}
|
|
3136
|
+
stepInjector(index) {
|
|
3137
|
+
return this.stepInjectors[index];
|
|
3138
|
+
}
|
|
3139
|
+
async handleAction(value) {
|
|
3140
|
+
switch (value) {
|
|
3141
|
+
case 'cancel':
|
|
3142
|
+
this.dialogRef.close();
|
|
3143
|
+
return;
|
|
3144
|
+
case 'back':
|
|
3145
|
+
await this.goToStep(this.currentStepIndex() - 1, 'backward');
|
|
3146
|
+
return;
|
|
3147
|
+
case 'next':
|
|
3148
|
+
await this.goToStep(this.currentStepIndex() + 1, 'forward');
|
|
3149
|
+
return;
|
|
3150
|
+
case 'finish':
|
|
3151
|
+
await this.finish();
|
|
3152
|
+
return;
|
|
3153
|
+
}
|
|
3154
|
+
}
|
|
3155
|
+
async goToStep(targetIndex, direction) {
|
|
3156
|
+
if (this.loading())
|
|
3157
|
+
return;
|
|
3158
|
+
if (targetIndex < 0 || targetIndex >= this.steps.length)
|
|
3159
|
+
return;
|
|
3160
|
+
const fromIndex = this.currentStepIndex();
|
|
3161
|
+
const canLeave = await this.runBeforeLeave(fromIndex, targetIndex, direction);
|
|
3162
|
+
if (!canLeave)
|
|
3163
|
+
return;
|
|
3164
|
+
const canEnter = await this.runBeforeEnter(targetIndex, direction, fromIndex);
|
|
3165
|
+
if (!canEnter)
|
|
3166
|
+
return;
|
|
3167
|
+
this.runTransitionTo(targetIndex);
|
|
3168
|
+
}
|
|
3169
|
+
async finish() {
|
|
3170
|
+
if (this.loading())
|
|
3171
|
+
return;
|
|
3172
|
+
const index = this.currentStepIndex();
|
|
3173
|
+
const canLeave = await this.runBeforeLeave(index, index, 'forward');
|
|
3174
|
+
if (!canLeave)
|
|
3175
|
+
return;
|
|
3176
|
+
this.dialogRef.close(this.configuration.finishValue);
|
|
3177
|
+
}
|
|
3178
|
+
async runBeforeEnter(toIndex, direction, fromIndex = toIndex) {
|
|
3179
|
+
const step = this.steps[toIndex];
|
|
3180
|
+
if (!step?.beforeEnter) {
|
|
3181
|
+
return true;
|
|
3182
|
+
}
|
|
3183
|
+
this.loading.set(true);
|
|
3184
|
+
try {
|
|
3185
|
+
const result = await step.beforeEnter({
|
|
3186
|
+
fromIndex,
|
|
3187
|
+
toIndex,
|
|
3188
|
+
direction,
|
|
3189
|
+
});
|
|
3190
|
+
return result !== false;
|
|
3191
|
+
}
|
|
3192
|
+
finally {
|
|
3193
|
+
this.loading.set(false);
|
|
3194
|
+
}
|
|
3195
|
+
}
|
|
3196
|
+
async runBeforeLeave(fromIndex, toIndex, direction) {
|
|
3197
|
+
const step = this.steps[fromIndex];
|
|
3198
|
+
if (!step?.beforeLeave) {
|
|
3199
|
+
return true;
|
|
3200
|
+
}
|
|
3201
|
+
this.loading.set(true);
|
|
3202
|
+
try {
|
|
3203
|
+
const result = await step.beforeLeave({
|
|
3204
|
+
fromIndex,
|
|
3205
|
+
toIndex,
|
|
3206
|
+
direction,
|
|
3207
|
+
});
|
|
3208
|
+
return result !== false;
|
|
3209
|
+
}
|
|
3210
|
+
finally {
|
|
3211
|
+
this.loading.set(false);
|
|
3212
|
+
}
|
|
3213
|
+
}
|
|
3214
|
+
updateDialogActions() {
|
|
3215
|
+
if (!this.steps.length) {
|
|
3216
|
+
this.dialogRef.updateActions([]);
|
|
3217
|
+
return;
|
|
3218
|
+
}
|
|
3219
|
+
const step = this.steps[this.currentStepIndex()];
|
|
3220
|
+
if (step?.actions?.length) {
|
|
3221
|
+
this.dialogRef.updateActions(step.actions.map(action => ({
|
|
3222
|
+
...action,
|
|
3223
|
+
disabled: action.disabled || this.loading(),
|
|
3224
|
+
})));
|
|
3225
|
+
return;
|
|
3226
|
+
}
|
|
3227
|
+
const leftAction = this.isFirstStep()
|
|
3228
|
+
? {
|
|
3229
|
+
label: this.configuration.cancelLabel ?? 'Cancelar',
|
|
3230
|
+
labelKey: this.configuration.cancelLabelKey,
|
|
3231
|
+
value: 'cancel',
|
|
3232
|
+
variant: 'outline',
|
|
3233
|
+
color: 'surface',
|
|
3234
|
+
closesDialog: false,
|
|
3235
|
+
disabled: this.loading(),
|
|
3236
|
+
}
|
|
3237
|
+
: {
|
|
3238
|
+
label: this.configuration.backLabel ?? 'Voltar',
|
|
3239
|
+
labelKey: this.configuration.backLabelKey,
|
|
3240
|
+
value: 'back',
|
|
3241
|
+
variant: 'outline',
|
|
3242
|
+
color: 'surface',
|
|
3243
|
+
closesDialog: false,
|
|
3244
|
+
disabled: this.loading(),
|
|
3245
|
+
};
|
|
3246
|
+
const rightAction = this.isLastStep()
|
|
3247
|
+
? {
|
|
3248
|
+
label: this.configuration.finishLabel ?? 'Finalizar',
|
|
3249
|
+
labelKey: this.configuration.finishLabelKey,
|
|
3250
|
+
value: 'finish',
|
|
3251
|
+
variant: 'solid',
|
|
3252
|
+
color: 'primary',
|
|
3253
|
+
closesDialog: false,
|
|
3254
|
+
loading: this.loading(),
|
|
3255
|
+
}
|
|
3256
|
+
: {
|
|
3257
|
+
label: this.configuration.nextLabel ?? 'Continuar',
|
|
3258
|
+
labelKey: this.configuration.nextLabelKey,
|
|
3259
|
+
value: 'next',
|
|
3260
|
+
variant: 'solid',
|
|
3261
|
+
color: 'primary',
|
|
3262
|
+
closesDialog: false,
|
|
3263
|
+
loading: this.loading(),
|
|
3264
|
+
};
|
|
3265
|
+
this.dialogRef.updateActions([leftAction, rightAction]);
|
|
3266
|
+
}
|
|
3267
|
+
resolveInitialStepIndex() {
|
|
3268
|
+
if (!this.steps.length) {
|
|
3269
|
+
return 0;
|
|
3270
|
+
}
|
|
3271
|
+
const index = this.configuration.initialStepIndex ?? 0;
|
|
3272
|
+
return Math.max(0, Math.min(index, this.steps.length - 1));
|
|
3273
|
+
}
|
|
3274
|
+
runTransitionTo(targetIndex) {
|
|
3275
|
+
globalThis.clearTimeout(this.halfwayTimer);
|
|
3276
|
+
globalThis.clearTimeout(this.transitionTimer);
|
|
3277
|
+
this.transitioning.set(true);
|
|
3278
|
+
this.transitionHalfway.set(false);
|
|
3279
|
+
this.currentStepIndex.set(targetIndex);
|
|
3280
|
+
if (this.transitionBlur) {
|
|
3281
|
+
this.halfwayTimer = globalThis.setTimeout(() => {
|
|
3282
|
+
if (this.transitioning()) {
|
|
3283
|
+
this.transitionHalfway.set(true);
|
|
3284
|
+
}
|
|
3285
|
+
}, Math.round(this.transitionDurationMs / 2));
|
|
3286
|
+
}
|
|
3287
|
+
this.transitionTimer = globalThis.setTimeout(() => {
|
|
3288
|
+
this.transitioning.set(false);
|
|
3289
|
+
this.transitionHalfway.set(false);
|
|
3290
|
+
}, this.transitionDurationMs);
|
|
3291
|
+
}
|
|
3292
|
+
updateDialogHeader() {
|
|
3293
|
+
const step = this.steps[this.currentStepIndex()];
|
|
3294
|
+
this.dialogRef.updateHeader({
|
|
3295
|
+
title: step?.title ?? this.configuration.title,
|
|
3296
|
+
titleKey: step?.titleKey ?? this.configuration.titleKey,
|
|
3297
|
+
titleParams: step?.titleParams ?? this.configuration.titleParams,
|
|
3298
|
+
description: step?.description ?? this.configuration.description,
|
|
3299
|
+
descriptionKey: step?.descriptionKey ?? this.configuration.descriptionKey,
|
|
3300
|
+
descriptionParams: step?.descriptionParams ?? this.configuration.descriptionParams,
|
|
3301
|
+
});
|
|
3302
|
+
}
|
|
3303
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisDialogStepsContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3304
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: SolarisDialogStepsContainer, isStandalone: true, selector: "solaris-dialog-steps-container", ngImport: i0, template: "<div class=\"solaris-dialog-steps\" [class.is-transitioning]=\"transitioning()\" [class.is-halfway]=\"transitionHalfway()\"\r\n [class.has-transition-blur]=\"transitionBlur\" [style.--solaris-dialog-steps-min-height]=\"contentMinHeight\">\r\n @if (showProgress) {\r\n <div class=\"solaris-dialog-steps__progress\" aria-hidden=\"true\">\r\n @for (step of steps; track step.key; let index = $index) {\r\n <span class=\"solaris-dialog-steps__dot\" [class.is-active]=\"index === currentStepIndex()\"\r\n [class.is-complete]=\"index < currentStepIndex()\"></span>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"solaris-dialog-steps__viewport\">\r\n <div class=\"solaris-dialog-steps__track\" [style.transform]=\"trackTransform()\"\r\n [style.--solaris-dialog-steps-transition-duration]=\"transitionDuration()\">\r\n @for (step of steps; track step.key; let index = $index) {\r\n <section class=\"solaris-dialog-steps__step\" [class.is-active]=\"index === currentStepIndex()\"\r\n [class.is-before]=\"index < currentStepIndex()\" [class.is-after]=\"index > currentStepIndex()\">\r\n <div class=\"solaris-dialog-steps__step-inner\">\r\n <ng-container *ngComponentOutlet=\"step.component; injector: stepInjector(index)\"></ng-container>\r\n </div>\r\n </section>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;min-inline-size:0}.solaris-dialog-steps{--solaris-dialog-steps-min-height: 0;--solaris-dialog-steps-transition-duration: .42s;display:grid;min-inline-size:0;gap:var(--solaris-space-5)}.solaris-dialog-steps__viewport{overflow:hidden;inline-size:100%;min-inline-size:0;min-block-size:var(--solaris-dialog-steps-min-height)}.solaris-dialog-steps__track{display:flex;inline-size:100%;min-inline-size:0;align-items:stretch;will-change:transform;transition:transform var(--solaris-dialog-steps-transition-duration) cubic-bezier(.22,1,.36,1)}.solaris-dialog-steps__step{flex:0 0 100%;inline-size:100%;min-inline-size:100%;min-block-size:var(--solaris-dialog-steps-min-height);display:grid;align-content:center;overflow:visible}.solaris-dialog-steps__progress{display:flex;justify-content:center;align-items:center;gap:var(--solaris-space-2)}.solaris-dialog-steps__dot{inline-size:.8rem;block-size:.8rem;border-radius:var(--solaris-radius-full);background:color-mix(in srgb,var(--solaris-color-text-muted) 35%,transparent);transition:background-color .18s ease,transform .18s ease}.solaris-dialog-steps__dot.is-active{background:var(--solaris-color-primary);transform:scale(1.2)}.solaris-dialog-steps__dot.is-complete{background:color-mix(in srgb,var(--solaris-color-primary) 72%,white)}.solaris-dialog-steps__step-inner{inline-size:100%;min-inline-size:0;transition:filter calc(var(--solaris-dialog-steps-transition-duration) * .45) ease,opacity calc(var(--solaris-dialog-steps-transition-duration) * .45) ease,transform calc(var(--solaris-dialog-steps-transition-duration) * .45) ease}.solaris-dialog-steps.has-transition-blur.is-transitioning.is-halfway .solaris-dialog-steps__step:not(.is-active) .solaris-dialog-steps__step-inner{filter:blur(.18rem);opacity:.58;transform:scale(.985)}.solaris-dialog-steps.has-transition-blur.is-transitioning.is-halfway .solaris-dialog-steps__step.is-active .solaris-dialog-steps__step-inner{filter:blur(0);opacity:1;transform:scale(1)}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3305
|
+
}
|
|
3306
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisDialogStepsContainer, decorators: [{
|
|
3307
|
+
type: Component,
|
|
3308
|
+
args: [{ selector: 'solaris-dialog-steps-container', standalone: true, imports: [
|
|
3309
|
+
NgComponentOutlet
|
|
3310
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"solaris-dialog-steps\" [class.is-transitioning]=\"transitioning()\" [class.is-halfway]=\"transitionHalfway()\"\r\n [class.has-transition-blur]=\"transitionBlur\" [style.--solaris-dialog-steps-min-height]=\"contentMinHeight\">\r\n @if (showProgress) {\r\n <div class=\"solaris-dialog-steps__progress\" aria-hidden=\"true\">\r\n @for (step of steps; track step.key; let index = $index) {\r\n <span class=\"solaris-dialog-steps__dot\" [class.is-active]=\"index === currentStepIndex()\"\r\n [class.is-complete]=\"index < currentStepIndex()\"></span>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"solaris-dialog-steps__viewport\">\r\n <div class=\"solaris-dialog-steps__track\" [style.transform]=\"trackTransform()\"\r\n [style.--solaris-dialog-steps-transition-duration]=\"transitionDuration()\">\r\n @for (step of steps; track step.key; let index = $index) {\r\n <section class=\"solaris-dialog-steps__step\" [class.is-active]=\"index === currentStepIndex()\"\r\n [class.is-before]=\"index < currentStepIndex()\" [class.is-after]=\"index > currentStepIndex()\">\r\n <div class=\"solaris-dialog-steps__step-inner\">\r\n <ng-container *ngComponentOutlet=\"step.component; injector: stepInjector(index)\"></ng-container>\r\n </div>\r\n </section>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;min-inline-size:0}.solaris-dialog-steps{--solaris-dialog-steps-min-height: 0;--solaris-dialog-steps-transition-duration: .42s;display:grid;min-inline-size:0;gap:var(--solaris-space-5)}.solaris-dialog-steps__viewport{overflow:hidden;inline-size:100%;min-inline-size:0;min-block-size:var(--solaris-dialog-steps-min-height)}.solaris-dialog-steps__track{display:flex;inline-size:100%;min-inline-size:0;align-items:stretch;will-change:transform;transition:transform var(--solaris-dialog-steps-transition-duration) cubic-bezier(.22,1,.36,1)}.solaris-dialog-steps__step{flex:0 0 100%;inline-size:100%;min-inline-size:100%;min-block-size:var(--solaris-dialog-steps-min-height);display:grid;align-content:center;overflow:visible}.solaris-dialog-steps__progress{display:flex;justify-content:center;align-items:center;gap:var(--solaris-space-2)}.solaris-dialog-steps__dot{inline-size:.8rem;block-size:.8rem;border-radius:var(--solaris-radius-full);background:color-mix(in srgb,var(--solaris-color-text-muted) 35%,transparent);transition:background-color .18s ease,transform .18s ease}.solaris-dialog-steps__dot.is-active{background:var(--solaris-color-primary);transform:scale(1.2)}.solaris-dialog-steps__dot.is-complete{background:color-mix(in srgb,var(--solaris-color-primary) 72%,white)}.solaris-dialog-steps__step-inner{inline-size:100%;min-inline-size:0;transition:filter calc(var(--solaris-dialog-steps-transition-duration) * .45) ease,opacity calc(var(--solaris-dialog-steps-transition-duration) * .45) ease,transform calc(var(--solaris-dialog-steps-transition-duration) * .45) ease}.solaris-dialog-steps.has-transition-blur.is-transitioning.is-halfway .solaris-dialog-steps__step:not(.is-active) .solaris-dialog-steps__step-inner{filter:blur(.18rem);opacity:.58;transform:scale(.985)}.solaris-dialog-steps.has-transition-blur.is-transitioning.is-halfway .solaris-dialog-steps__step.is-active .solaris-dialog-steps__step-inner{filter:blur(0);opacity:1;transform:scale(1)}\n"] }]
|
|
3311
|
+
}], ctorParameters: () => [] });
|
|
3312
|
+
|
|
3042
3313
|
class SolarisDialogContainer {
|
|
3043
3314
|
contentHost;
|
|
3044
3315
|
title;
|
|
@@ -3051,6 +3322,7 @@ class SolarisDialogContainer {
|
|
|
3051
3322
|
showCloseButton = true;
|
|
3052
3323
|
actionSize;
|
|
3053
3324
|
actions = [];
|
|
3325
|
+
actionAlignment = 'end';
|
|
3054
3326
|
ariaLabel;
|
|
3055
3327
|
ariaLabelledBy;
|
|
3056
3328
|
ariaDescribedBy;
|
|
@@ -3119,13 +3391,13 @@ class SolarisDialogContainer {
|
|
|
3119
3391
|
}
|
|
3120
3392
|
}
|
|
3121
3393
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisDialogContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3122
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: SolarisDialogContainer, isStandalone: true, selector: "solaris-dialog-container", inputs: { title: "title", titleKey: "titleKey", titleParams: "titleParams", description: "description", descriptionKey: "descriptionKey", descriptionParams: "descriptionParams", size: "size", showCloseButton: "showCloseButton", actionSize: "actionSize", actions: "actions", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy" }, outputs: { closeClick: "closeClick", actionClick: "actionClick" }, viewQueries: [{ propertyName: "contentHost", first: true, predicate: ["contentHost"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<section class=\"solaris-dialog\" [attr.data-size]=\"size\" role=\"dialog\" aria-modal=\"true\" [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"resolvedAriaLabelledBy\" [attr.aria-describedby]=\"resolvedAriaDescribedBy\">\r\n @if (hasHeader) {\r\n <header class=\"solaris-dialog__header\">\r\n <div class=\"solaris-dialog__heading\">\r\n @if (title || titleKey) {\r\n <h2 class=\"solaris-dialog__title\" [id]=\"titleId\">\r\n @if (titleKey) {\r\n {{ titleKey }}\r\n } @else {\r\n {{ title }}\r\n }\r\n </h2>\r\n }\r\n\r\n @if (hasDescription) {\r\n <p class=\"solaris-dialog__description\" [id]=\"descriptionId\">\r\n @if (descriptionKey) {\r\n {{ descriptionKey }}\r\n } @else {\r\n {{ description }}\r\n }\r\n </p>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <button type=\"button\" class=\"solaris-dialog__close\" aria-label=\"Fechar\" (click)=\"closeClick.emit()\">\r\n <i class=\"ph ph-x\"></i>\r\n </button>\r\n }\r\n </header>\r\n }\r\n\r\n <div class=\"solaris-dialog__body\">\r\n <ng-template #contentHost></ng-template>\r\n </div>\r\n\r\n @if (hasActions) {\r\n <footer class=\"solaris-dialog__footer\">\r\n @for (action of actions; track action.label ?? action.labelKey ?? $index) {\r\n <button type=\"button\" solaris-button class=\"solaris-dialog__action\" [size]=\"resolveActionSize(action)\"\r\n [variant]=\"resolveActionVariant(action)\" [color]=\"resolveActionColor(action)\" [disabled]=\"action.disabled\"\r\n [loading]=\"action.loading\" [fullWidth]=\"action.fullWidth\" (click)=\"actionClick.emit(action)\">\r\n @if (action.labelKey) {\r\n {{ action.labelKey }}\r\n } @else {\r\n {{ action.label }}\r\n }\r\n </button>\r\n }\r\n </footer>\r\n }\r\n</section>\r\n", styles: [":host{display:grid;inline-size:100%;block-size:100%;pointer-events:none;max-inline-size:100%}:host>.solaris-dialog{pointer-events:auto}.solaris-dialog{--solaris-dialog-max-width: 56rem;--solaris-dialog-max-height: min(88vh, 72rem);--solaris-dialog-fg: var(--solaris-color-text);--solaris-dialog-padding: var(--solaris-space-5);--solaris-dialog-bg: var(--solaris-color-surface);--solaris-dialog-radius: var(--solaris-radius-lg);--solaris-dialog-shadow: var(--solaris-shadow-lg);--solaris-dialog-border: color-mix(in srgb, var(--solaris-color-border) 82%, transparent);inline-size:min(100vw - 3.2rem,var(--solaris-dialog-max-width));max-block-size:var(--solaris-dialog-max-height);display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:var(--solaris-dialog-fg);background:var(--solaris-dialog-bg);border:1px solid var(--solaris-dialog-border);border-radius:var(--solaris-dialog-radius);box-shadow:var(--solaris-dialog-shadow);overflow:hidden;animation:solaris-dialog-in .14s ease}.solaris-dialog[data-size=sm]{--solaris-dialog-max-width: 40rem}.solaris-dialog[data-size=md]{--solaris-dialog-max-width: 56rem}.solaris-dialog[data-size=lg]{--solaris-dialog-max-width: 72rem}.solaris-dialog[data-size=xl]{--solaris-dialog-max-width: 96rem}.solaris-dialog[data-size=fullscreen]{inline-size:calc(100vw - 3.2rem);block-size:calc(100vh - 3.2rem);--solaris-dialog-max-width: none;--solaris-dialog-max-height: none}.solaris-dialog__header{display:grid;min-inline-size:0;align-items:start;gap:var(--solaris-space-4);padding:var(--solaris-dialog-padding);grid-template-columns:minmax(0,1fr) auto;border-block-end:1px solid var(--solaris-dialog-border)}.solaris-dialog__heading{display:grid;min-inline-size:0;gap:var(--solaris-space-1)}.solaris-dialog__title{margin:0;font-weight:750;font-size:var(--solaris-fs-18);color:var(--solaris-color-text);line-height:var(--solaris-lh-tight)}.solaris-dialog__description{margin:0;font-size:var(--solaris-fs-13);line-height:var(--solaris-lh-normal);color:var(--solaris-color-text-muted)}.solaris-dialog__close{padding:0;border:0;outline:none;cursor:pointer;block-size:3.2rem;inline-size:3.2rem;place-items:center;display:inline-grid;background:transparent;color:var(--solaris-color-text-muted);border-radius:var(--solaris-radius-full);transition:background-color .12s ease,color .12s ease,box-shadow .12s ease}.solaris-dialog__close:hover,.solaris-dialog__close:focus-visible{color:var(--solaris-color-text);background:var(--solaris-color-surface-2)}.solaris-dialog__close:focus-visible{box-shadow:0 0 0 .3rem color-mix(in srgb,var(--solaris-color-primary) 24%,transparent)}.solaris-dialog__close i{line-height:1;font-size:var(--solaris-fs-18)}.solaris-dialog__body{overflow:auto;min-block-size:0;padding:var(--solaris-dialog-padding)}.solaris-dialog__footer{display:flex;flex-wrap:wrap;align-items:center;
|
|
3394
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: SolarisDialogContainer, isStandalone: true, selector: "solaris-dialog-container", inputs: { title: "title", titleKey: "titleKey", titleParams: "titleParams", description: "description", descriptionKey: "descriptionKey", descriptionParams: "descriptionParams", size: "size", showCloseButton: "showCloseButton", actionSize: "actionSize", actions: "actions", actionAlignment: "actionAlignment", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy" }, outputs: { closeClick: "closeClick", actionClick: "actionClick" }, viewQueries: [{ propertyName: "contentHost", first: true, predicate: ["contentHost"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<section class=\"solaris-dialog\" [attr.data-size]=\"size\" role=\"dialog\" aria-modal=\"true\" [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"resolvedAriaLabelledBy\" [attr.aria-describedby]=\"resolvedAriaDescribedBy\">\r\n @if (hasHeader) {\r\n <header class=\"solaris-dialog__header\">\r\n <div class=\"solaris-dialog__heading\">\r\n @if (title || titleKey) {\r\n <h2 class=\"solaris-dialog__title\" [id]=\"titleId\">\r\n @if (titleKey) {\r\n {{ titleKey }}\r\n } @else {\r\n {{ title }}\r\n }\r\n </h2>\r\n }\r\n\r\n @if (hasDescription) {\r\n <p class=\"solaris-dialog__description\" [id]=\"descriptionId\">\r\n @if (descriptionKey) {\r\n {{ descriptionKey }}\r\n } @else {\r\n {{ description }}\r\n }\r\n </p>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <button type=\"button\" class=\"solaris-dialog__close\" aria-label=\"Fechar\" (click)=\"closeClick.emit()\">\r\n <i class=\"ph ph-x\"></i>\r\n </button>\r\n }\r\n </header>\r\n }\r\n\r\n <div class=\"solaris-dialog__body\">\r\n <ng-template #contentHost></ng-template>\r\n </div>\r\n\r\n @if (hasActions) {\r\n <footer class=\"solaris-dialog__footer\" [attr.data-action-alignment]=\"actionAlignment\">\r\n @for (action of actions; track action.label ?? action.labelKey ?? $index) {\r\n <button type=\"button\" solaris-button class=\"solaris-dialog__action\" [size]=\"resolveActionSize(action)\"\r\n [variant]=\"resolveActionVariant(action)\" [color]=\"resolveActionColor(action)\" [disabled]=\"action.disabled\"\r\n [loading]=\"action.loading\" [fullWidth]=\"action.fullWidth\" (click)=\"actionClick.emit(action)\">\r\n @if (action.labelKey) {\r\n {{ action.labelKey }}\r\n } @else {\r\n {{ action.label }}\r\n }\r\n </button>\r\n }\r\n </footer>\r\n }\r\n</section>\r\n", styles: [":host{display:grid;inline-size:100%;block-size:100%;pointer-events:none;max-inline-size:100%}:host>.solaris-dialog{pointer-events:auto}.solaris-dialog{--solaris-dialog-max-width: 56rem;--solaris-dialog-max-height: min(88vh, 72rem);--solaris-dialog-fg: var(--solaris-color-text);--solaris-dialog-padding: var(--solaris-space-5);--solaris-dialog-bg: var(--solaris-color-surface);--solaris-dialog-radius: var(--solaris-radius-lg);--solaris-dialog-shadow: var(--solaris-shadow-lg);--solaris-dialog-border: color-mix(in srgb, var(--solaris-color-border) 82%, transparent);inline-size:min(100vw - 3.2rem,var(--solaris-dialog-max-width));max-block-size:var(--solaris-dialog-max-height);display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:var(--solaris-dialog-fg);background:var(--solaris-dialog-bg);border:1px solid var(--solaris-dialog-border);border-radius:var(--solaris-dialog-radius);box-shadow:var(--solaris-dialog-shadow);overflow:hidden;animation:solaris-dialog-in .14s ease}.solaris-dialog[data-size=sm]{--solaris-dialog-max-width: 40rem}.solaris-dialog[data-size=md]{--solaris-dialog-max-width: 56rem}.solaris-dialog[data-size=lg]{--solaris-dialog-max-width: 72rem}.solaris-dialog[data-size=xl]{--solaris-dialog-max-width: 96rem}.solaris-dialog[data-size=fullscreen]{inline-size:calc(100vw - 3.2rem);block-size:calc(100vh - 3.2rem);--solaris-dialog-max-width: none;--solaris-dialog-max-height: none}.solaris-dialog__header{display:grid;min-inline-size:0;align-items:start;gap:var(--solaris-space-4);padding:var(--solaris-dialog-padding);grid-template-columns:minmax(0,1fr) auto;border-block-end:1px solid var(--solaris-dialog-border)}.solaris-dialog__heading{display:grid;min-inline-size:0;gap:var(--solaris-space-1)}.solaris-dialog__title{margin:0;font-weight:750;font-size:var(--solaris-fs-18);color:var(--solaris-color-text);line-height:var(--solaris-lh-tight)}.solaris-dialog__description{margin:0;font-size:var(--solaris-fs-13);line-height:var(--solaris-lh-normal);color:var(--solaris-color-text-muted)}.solaris-dialog__close{padding:0;border:0;outline:none;cursor:pointer;block-size:3.2rem;inline-size:3.2rem;place-items:center;display:inline-grid;background:transparent;color:var(--solaris-color-text-muted);border-radius:var(--solaris-radius-full);transition:background-color .12s ease,color .12s ease,box-shadow .12s ease}.solaris-dialog__close:hover,.solaris-dialog__close:focus-visible{color:var(--solaris-color-text);background:var(--solaris-color-surface-2)}.solaris-dialog__close:focus-visible{box-shadow:0 0 0 .3rem color-mix(in srgb,var(--solaris-color-primary) 24%,transparent)}.solaris-dialog__close i{line-height:1;font-size:var(--solaris-fs-18)}.solaris-dialog__body{overflow:auto;min-block-size:0;padding:var(--solaris-dialog-padding)}.solaris-dialog__footer{display:flex;flex-wrap:wrap;align-items:center;gap:var(--solaris-space-3);border-block-start:1px solid var(--solaris-dialog-border);padding:var(--solaris-space-4) var(--solaris-dialog-padding);background:color-mix(in srgb,var(--solaris-color-surface-2) 45%,transparent)}.solaris-dialog__footer[data-action-alignment=start]{justify-content:flex-start}.solaris-dialog__footer[data-action-alignment=center]{justify-content:center}.solaris-dialog__footer[data-action-alignment=end]{justify-content:flex-end}.solaris-dialog__footer[data-action-alignment=space-between]{justify-content:space-between}.solaris-dialog__action{white-space:nowrap}@keyframes solaris-dialog-in{0%{opacity:0;transform:translateY(.8rem) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}\n"], dependencies: [{ kind: "directive", type: SolarisButtonDirective, selector: "button[solaris-button], a[solaris-button]", inputs: ["size", "variant", "color", "textColor", "radius", "loading", "iconOnly", "disabled", "fullWidth", "badgeOverlay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3123
3395
|
}
|
|
3124
3396
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisDialogContainer, decorators: [{
|
|
3125
3397
|
type: Component,
|
|
3126
3398
|
args: [{ selector: 'solaris-dialog-container', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
3127
3399
|
SolarisButtonDirective
|
|
3128
|
-
], template: "<section class=\"solaris-dialog\" [attr.data-size]=\"size\" role=\"dialog\" aria-modal=\"true\" [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"resolvedAriaLabelledBy\" [attr.aria-describedby]=\"resolvedAriaDescribedBy\">\r\n @if (hasHeader) {\r\n <header class=\"solaris-dialog__header\">\r\n <div class=\"solaris-dialog__heading\">\r\n @if (title || titleKey) {\r\n <h2 class=\"solaris-dialog__title\" [id]=\"titleId\">\r\n @if (titleKey) {\r\n {{ titleKey }}\r\n } @else {\r\n {{ title }}\r\n }\r\n </h2>\r\n }\r\n\r\n @if (hasDescription) {\r\n <p class=\"solaris-dialog__description\" [id]=\"descriptionId\">\r\n @if (descriptionKey) {\r\n {{ descriptionKey }}\r\n } @else {\r\n {{ description }}\r\n }\r\n </p>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <button type=\"button\" class=\"solaris-dialog__close\" aria-label=\"Fechar\" (click)=\"closeClick.emit()\">\r\n <i class=\"ph ph-x\"></i>\r\n </button>\r\n }\r\n </header>\r\n }\r\n\r\n <div class=\"solaris-dialog__body\">\r\n <ng-template #contentHost></ng-template>\r\n </div>\r\n\r\n @if (hasActions) {\r\n <footer class=\"solaris-dialog__footer\">\r\n @for (action of actions; track action.label ?? action.labelKey ?? $index) {\r\n <button type=\"button\" solaris-button class=\"solaris-dialog__action\" [size]=\"resolveActionSize(action)\"\r\n [variant]=\"resolveActionVariant(action)\" [color]=\"resolveActionColor(action)\" [disabled]=\"action.disabled\"\r\n [loading]=\"action.loading\" [fullWidth]=\"action.fullWidth\" (click)=\"actionClick.emit(action)\">\r\n @if (action.labelKey) {\r\n {{ action.labelKey }}\r\n } @else {\r\n {{ action.label }}\r\n }\r\n </button>\r\n }\r\n </footer>\r\n }\r\n</section>\r\n", styles: [":host{display:grid;inline-size:100%;block-size:100%;pointer-events:none;max-inline-size:100%}:host>.solaris-dialog{pointer-events:auto}.solaris-dialog{--solaris-dialog-max-width: 56rem;--solaris-dialog-max-height: min(88vh, 72rem);--solaris-dialog-fg: var(--solaris-color-text);--solaris-dialog-padding: var(--solaris-space-5);--solaris-dialog-bg: var(--solaris-color-surface);--solaris-dialog-radius: var(--solaris-radius-lg);--solaris-dialog-shadow: var(--solaris-shadow-lg);--solaris-dialog-border: color-mix(in srgb, var(--solaris-color-border) 82%, transparent);inline-size:min(100vw - 3.2rem,var(--solaris-dialog-max-width));max-block-size:var(--solaris-dialog-max-height);display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:var(--solaris-dialog-fg);background:var(--solaris-dialog-bg);border:1px solid var(--solaris-dialog-border);border-radius:var(--solaris-dialog-radius);box-shadow:var(--solaris-dialog-shadow);overflow:hidden;animation:solaris-dialog-in .14s ease}.solaris-dialog[data-size=sm]{--solaris-dialog-max-width: 40rem}.solaris-dialog[data-size=md]{--solaris-dialog-max-width: 56rem}.solaris-dialog[data-size=lg]{--solaris-dialog-max-width: 72rem}.solaris-dialog[data-size=xl]{--solaris-dialog-max-width: 96rem}.solaris-dialog[data-size=fullscreen]{inline-size:calc(100vw - 3.2rem);block-size:calc(100vh - 3.2rem);--solaris-dialog-max-width: none;--solaris-dialog-max-height: none}.solaris-dialog__header{display:grid;min-inline-size:0;align-items:start;gap:var(--solaris-space-4);padding:var(--solaris-dialog-padding);grid-template-columns:minmax(0,1fr) auto;border-block-end:1px solid var(--solaris-dialog-border)}.solaris-dialog__heading{display:grid;min-inline-size:0;gap:var(--solaris-space-1)}.solaris-dialog__title{margin:0;font-weight:750;font-size:var(--solaris-fs-18);color:var(--solaris-color-text);line-height:var(--solaris-lh-tight)}.solaris-dialog__description{margin:0;font-size:var(--solaris-fs-13);line-height:var(--solaris-lh-normal);color:var(--solaris-color-text-muted)}.solaris-dialog__close{padding:0;border:0;outline:none;cursor:pointer;block-size:3.2rem;inline-size:3.2rem;place-items:center;display:inline-grid;background:transparent;color:var(--solaris-color-text-muted);border-radius:var(--solaris-radius-full);transition:background-color .12s ease,color .12s ease,box-shadow .12s ease}.solaris-dialog__close:hover,.solaris-dialog__close:focus-visible{color:var(--solaris-color-text);background:var(--solaris-color-surface-2)}.solaris-dialog__close:focus-visible{box-shadow:0 0 0 .3rem color-mix(in srgb,var(--solaris-color-primary) 24%,transparent)}.solaris-dialog__close i{line-height:1;font-size:var(--solaris-fs-18)}.solaris-dialog__body{overflow:auto;min-block-size:0;padding:var(--solaris-dialog-padding)}.solaris-dialog__footer{display:flex;flex-wrap:wrap;align-items:center;
|
|
3400
|
+
], template: "<section class=\"solaris-dialog\" [attr.data-size]=\"size\" role=\"dialog\" aria-modal=\"true\" [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"resolvedAriaLabelledBy\" [attr.aria-describedby]=\"resolvedAriaDescribedBy\">\r\n @if (hasHeader) {\r\n <header class=\"solaris-dialog__header\">\r\n <div class=\"solaris-dialog__heading\">\r\n @if (title || titleKey) {\r\n <h2 class=\"solaris-dialog__title\" [id]=\"titleId\">\r\n @if (titleKey) {\r\n {{ titleKey }}\r\n } @else {\r\n {{ title }}\r\n }\r\n </h2>\r\n }\r\n\r\n @if (hasDescription) {\r\n <p class=\"solaris-dialog__description\" [id]=\"descriptionId\">\r\n @if (descriptionKey) {\r\n {{ descriptionKey }}\r\n } @else {\r\n {{ description }}\r\n }\r\n </p>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <button type=\"button\" class=\"solaris-dialog__close\" aria-label=\"Fechar\" (click)=\"closeClick.emit()\">\r\n <i class=\"ph ph-x\"></i>\r\n </button>\r\n }\r\n </header>\r\n }\r\n\r\n <div class=\"solaris-dialog__body\">\r\n <ng-template #contentHost></ng-template>\r\n </div>\r\n\r\n @if (hasActions) {\r\n <footer class=\"solaris-dialog__footer\" [attr.data-action-alignment]=\"actionAlignment\">\r\n @for (action of actions; track action.label ?? action.labelKey ?? $index) {\r\n <button type=\"button\" solaris-button class=\"solaris-dialog__action\" [size]=\"resolveActionSize(action)\"\r\n [variant]=\"resolveActionVariant(action)\" [color]=\"resolveActionColor(action)\" [disabled]=\"action.disabled\"\r\n [loading]=\"action.loading\" [fullWidth]=\"action.fullWidth\" (click)=\"actionClick.emit(action)\">\r\n @if (action.labelKey) {\r\n {{ action.labelKey }}\r\n } @else {\r\n {{ action.label }}\r\n }\r\n </button>\r\n }\r\n </footer>\r\n }\r\n</section>\r\n", styles: [":host{display:grid;inline-size:100%;block-size:100%;pointer-events:none;max-inline-size:100%}:host>.solaris-dialog{pointer-events:auto}.solaris-dialog{--solaris-dialog-max-width: 56rem;--solaris-dialog-max-height: min(88vh, 72rem);--solaris-dialog-fg: var(--solaris-color-text);--solaris-dialog-padding: var(--solaris-space-5);--solaris-dialog-bg: var(--solaris-color-surface);--solaris-dialog-radius: var(--solaris-radius-lg);--solaris-dialog-shadow: var(--solaris-shadow-lg);--solaris-dialog-border: color-mix(in srgb, var(--solaris-color-border) 82%, transparent);inline-size:min(100vw - 3.2rem,var(--solaris-dialog-max-width));max-block-size:var(--solaris-dialog-max-height);display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:var(--solaris-dialog-fg);background:var(--solaris-dialog-bg);border:1px solid var(--solaris-dialog-border);border-radius:var(--solaris-dialog-radius);box-shadow:var(--solaris-dialog-shadow);overflow:hidden;animation:solaris-dialog-in .14s ease}.solaris-dialog[data-size=sm]{--solaris-dialog-max-width: 40rem}.solaris-dialog[data-size=md]{--solaris-dialog-max-width: 56rem}.solaris-dialog[data-size=lg]{--solaris-dialog-max-width: 72rem}.solaris-dialog[data-size=xl]{--solaris-dialog-max-width: 96rem}.solaris-dialog[data-size=fullscreen]{inline-size:calc(100vw - 3.2rem);block-size:calc(100vh - 3.2rem);--solaris-dialog-max-width: none;--solaris-dialog-max-height: none}.solaris-dialog__header{display:grid;min-inline-size:0;align-items:start;gap:var(--solaris-space-4);padding:var(--solaris-dialog-padding);grid-template-columns:minmax(0,1fr) auto;border-block-end:1px solid var(--solaris-dialog-border)}.solaris-dialog__heading{display:grid;min-inline-size:0;gap:var(--solaris-space-1)}.solaris-dialog__title{margin:0;font-weight:750;font-size:var(--solaris-fs-18);color:var(--solaris-color-text);line-height:var(--solaris-lh-tight)}.solaris-dialog__description{margin:0;font-size:var(--solaris-fs-13);line-height:var(--solaris-lh-normal);color:var(--solaris-color-text-muted)}.solaris-dialog__close{padding:0;border:0;outline:none;cursor:pointer;block-size:3.2rem;inline-size:3.2rem;place-items:center;display:inline-grid;background:transparent;color:var(--solaris-color-text-muted);border-radius:var(--solaris-radius-full);transition:background-color .12s ease,color .12s ease,box-shadow .12s ease}.solaris-dialog__close:hover,.solaris-dialog__close:focus-visible{color:var(--solaris-color-text);background:var(--solaris-color-surface-2)}.solaris-dialog__close:focus-visible{box-shadow:0 0 0 .3rem color-mix(in srgb,var(--solaris-color-primary) 24%,transparent)}.solaris-dialog__close i{line-height:1;font-size:var(--solaris-fs-18)}.solaris-dialog__body{overflow:auto;min-block-size:0;padding:var(--solaris-dialog-padding)}.solaris-dialog__footer{display:flex;flex-wrap:wrap;align-items:center;gap:var(--solaris-space-3);border-block-start:1px solid var(--solaris-dialog-border);padding:var(--solaris-space-4) var(--solaris-dialog-padding);background:color-mix(in srgb,var(--solaris-color-surface-2) 45%,transparent)}.solaris-dialog__footer[data-action-alignment=start]{justify-content:flex-start}.solaris-dialog__footer[data-action-alignment=center]{justify-content:center}.solaris-dialog__footer[data-action-alignment=end]{justify-content:flex-end}.solaris-dialog__footer[data-action-alignment=space-between]{justify-content:space-between}.solaris-dialog__action{white-space:nowrap}@keyframes solaris-dialog-in{0%{opacity:0;transform:translateY(.8rem) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}\n"] }]
|
|
3129
3401
|
}], propDecorators: { contentHost: [{
|
|
3130
3402
|
type: ViewChild,
|
|
3131
3403
|
args: ['contentHost', { read: ViewContainerRef, static: true }]
|
|
@@ -3149,6 +3421,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
3149
3421
|
type: Input
|
|
3150
3422
|
}], actions: [{
|
|
3151
3423
|
type: Input
|
|
3424
|
+
}], actionAlignment: [{
|
|
3425
|
+
type: Input
|
|
3152
3426
|
}], ariaLabel: [{
|
|
3153
3427
|
type: Input
|
|
3154
3428
|
}], ariaLabelledBy: [{
|
|
@@ -3161,29 +3435,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
3161
3435
|
type: Output
|
|
3162
3436
|
}] } });
|
|
3163
3437
|
|
|
3164
|
-
const SOLARIS_DIALOG_DATA = new InjectionToken('SOLARIS_DIALOG_DATA');
|
|
3165
|
-
|
|
3166
|
-
class SolarisDialogRef {
|
|
3167
|
-
closedSubject = new Subject();
|
|
3168
|
-
closeFn;
|
|
3169
|
-
afterClosed() {
|
|
3170
|
-
return this.closedSubject.asObservable();
|
|
3171
|
-
}
|
|
3172
|
-
close(result) {
|
|
3173
|
-
this.closeFn?.(result);
|
|
3174
|
-
}
|
|
3175
|
-
_attachCloseFn(fn) {
|
|
3176
|
-
this.closeFn = fn;
|
|
3177
|
-
}
|
|
3178
|
-
_finishClose(result) {
|
|
3179
|
-
this.closedSubject.next(result);
|
|
3180
|
-
this.closedSubject.complete();
|
|
3181
|
-
}
|
|
3182
|
-
}
|
|
3183
|
-
|
|
3184
3438
|
class SolarisDialogService {
|
|
3185
|
-
appRef = inject(ApplicationRef);
|
|
3186
3439
|
environmentInjector = inject(EnvironmentInjector);
|
|
3440
|
+
appRef = inject(ApplicationRef);
|
|
3187
3441
|
open(component, configuration = {}) {
|
|
3188
3442
|
const dialogRef = new SolarisDialogRef();
|
|
3189
3443
|
const backdrop = document.createElement('div');
|
|
@@ -3215,12 +3469,26 @@ class SolarisDialogService {
|
|
|
3215
3469
|
containerRef.setInput('descriptionKey', configuration.descriptionKey);
|
|
3216
3470
|
containerRef.setInput('descriptionParams', configuration.descriptionParams);
|
|
3217
3471
|
containerRef.setInput('size', configuration.size ?? 'md');
|
|
3218
|
-
containerRef.setInput('showCloseButton', configuration.showCloseButton ?? !configuration.disableClose);
|
|
3219
3472
|
containerRef.setInput('actions', configuration.actions ?? []);
|
|
3220
3473
|
containerRef.setInput('actionSize', configuration.actionSize);
|
|
3474
|
+
containerRef.setInput('actionAlignment', configuration.actionAlignment ?? 'end');
|
|
3221
3475
|
containerRef.setInput('ariaLabel', configuration.ariaLabel);
|
|
3222
3476
|
containerRef.setInput('ariaLabelledBy', configuration.ariaLabelledBy);
|
|
3223
3477
|
containerRef.setInput('ariaDescribedBy', configuration.ariaDescribedBy);
|
|
3478
|
+
containerRef.setInput('showCloseButton', configuration.showCloseButton ?? !configuration.disableClose);
|
|
3479
|
+
dialogRef._attachActionsUpdateFn(actions => {
|
|
3480
|
+
containerRef.setInput('actions', [...actions]);
|
|
3481
|
+
containerRef.changeDetectorRef.detectChanges();
|
|
3482
|
+
});
|
|
3483
|
+
dialogRef._attachHeaderUpdateFn(header => {
|
|
3484
|
+
containerRef.setInput('title', header.title);
|
|
3485
|
+
containerRef.setInput('titleKey', header.titleKey);
|
|
3486
|
+
containerRef.setInput('titleParams', header.titleParams);
|
|
3487
|
+
containerRef.setInput('description', header.description);
|
|
3488
|
+
containerRef.setInput('descriptionKey', header.descriptionKey);
|
|
3489
|
+
containerRef.setInput('descriptionParams', header.descriptionParams);
|
|
3490
|
+
containerRef.changeDetectorRef.detectChanges();
|
|
3491
|
+
});
|
|
3224
3492
|
this.appRef.attachView(containerRef.hostView);
|
|
3225
3493
|
containerRef.changeDetectorRef.detectChanges();
|
|
3226
3494
|
const contentRef = createComponent(component, {
|
|
@@ -3261,14 +3529,24 @@ class SolarisDialogService {
|
|
|
3261
3529
|
}
|
|
3262
3530
|
});
|
|
3263
3531
|
containerRef.instance.actionClick.subscribe((action) => {
|
|
3264
|
-
if (action.disabled)
|
|
3532
|
+
if (action.disabled || action.loading)
|
|
3265
3533
|
return;
|
|
3534
|
+
dialogRef._emitAction(action);
|
|
3266
3535
|
if (action.closesDialog ?? true) {
|
|
3267
3536
|
dialogRef.close(action.value);
|
|
3268
3537
|
}
|
|
3269
3538
|
});
|
|
3270
3539
|
return dialogRef;
|
|
3271
3540
|
}
|
|
3541
|
+
openSteps(configuration) {
|
|
3542
|
+
return this.open(SolarisDialogStepsContainer, {
|
|
3543
|
+
...configuration,
|
|
3544
|
+
data: configuration,
|
|
3545
|
+
actions: [],
|
|
3546
|
+
actionAlignment: configuration.actionAlignment ?? 'space-between',
|
|
3547
|
+
showCloseButton: configuration.showCloseButton ?? true,
|
|
3548
|
+
});
|
|
3549
|
+
}
|
|
3272
3550
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3273
3551
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisDialogService, providedIn: 'root' });
|
|
3274
3552
|
}
|
|
@@ -8136,5 +8414,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
|
|
|
8136
8414
|
* Generated bundle index. Do not edit.
|
|
8137
8415
|
*/
|
|
8138
8416
|
|
|
8139
|
-
export { ButtonGroupDirective, FieldErrorComponent, FormField, InputTextDirective, PasswordToggle, SOLARIS_CARD_GROUP, SOLARIS_CARD_SLOT_DIRECTIVES, SOLARIS_DIALOG_DATA, SOLARIS_FORM_FIELD_CONTROLLER, SOLARIS_FORM_FIELD_FEATURES, SOLARIS_INPUT, SOLARIS_NOTIFICATION_CONFIG, SOLARIS_NOTIFICATION_DEFAULT_CONFIG, SOLARIS_NOTIFICATION_POSITIONS, SOLARIS_RADIO_GROUP, SolarisAvatar, SolarisAvatarDropdown, SolarisAvatarOverlayDirective, SolarisAvatarStack, SolarisBadge, SolarisBodyDirective, SolarisBreadcrumb, SolarisButtonDirective, SolarisCard, SolarisCardActionsDirective, SolarisCardBadgeDirective, SolarisCardDescriptionDirective, SolarisCardEyebrowDirective, SolarisCardFooterDirective, SolarisCardGroup, SolarisCardMedia, SolarisCardMediaDirective, SolarisCardMediaOverlayDirective, SolarisCardMetaDirective, SolarisCardTitleDirective, SolarisCheckbox, SolarisColumnCellDef, SolarisColumnHeaderDef, SolarisControlBridgeDirective, SolarisDialogContainer, SolarisDialogRef, SolarisDialogService, SolarisDivider, SolarisDrawer, SolarisDrawerFooterDirective, SolarisDrawerHeaderDirective, SolarisDropdownContent, SolarisDropdownContentPanelDirective, SolarisDropdownContentRegistry, SolarisDropdownContentTriggerDirective, SolarisEmailDirective, SolarisFilterBar, SolarisFilterChip, SolarisFilterField, SolarisFilterPanel, SolarisFilterPanelFooterDirective, SolarisFloatingOverlayService, SolarisFooterDirective, SolarisFormFieldController, SolarisHeaderDirective, SolarisIdGenerator, SolarisImageSliderComponent, SolarisLoading, SolarisLoadingOverlay, SolarisNotificationCenterComponent, SolarisNotificationHostComponent, SolarisNotificationIntlService, SolarisNotificationItemComponent, SolarisNotificationService, SolarisPage, SolarisPageHeader, SolarisPageHeaderBreadcrumbDirective, SolarisPageHeaderDescriptionDirective, SolarisPageHeaderTitle, SolarisPageHeaderTitleDirective, SolarisPasswordDirective, SolarisPhoneInput, SolarisPopover, SolarisPopoverPanelDirective, SolarisPopoverTriggerDirective, SolarisPrefixDirective, SolarisPresenceAvatar, SolarisRadio, SolarisRadioGroup, SolarisRichTooltipDirective, SolarisRichTooltipPanel, SolarisRowComponent, SolarisSectionComponent, SolarisSelect, SolarisSelectionCard, SolarisStepper, SolarisStepperItem, SolarisSuffixDirective, SolarisTab, SolarisTable, SolarisTableColumn, SolarisTableFilters, SolarisTableSkeleton, SolarisTabs, SolarisTooltipDirective, SolarisTooltipPanel, computeFloatingPosition, computePopoverPosition, provideSolarisNotifications, repositionTooltipOverlay, uniqueId };
|
|
8417
|
+
export { ButtonGroupDirective, FieldErrorComponent, FormField, InputTextDirective, PasswordToggle, SOLARIS_CARD_GROUP, SOLARIS_CARD_SLOT_DIRECTIVES, SOLARIS_DIALOG_DATA, SOLARIS_DIALOG_STEP_DATA, SOLARIS_FORM_FIELD_CONTROLLER, SOLARIS_FORM_FIELD_FEATURES, SOLARIS_INPUT, SOLARIS_NOTIFICATION_CONFIG, SOLARIS_NOTIFICATION_DEFAULT_CONFIG, SOLARIS_NOTIFICATION_POSITIONS, SOLARIS_RADIO_GROUP, SolarisAvatar, SolarisAvatarDropdown, SolarisAvatarOverlayDirective, SolarisAvatarStack, SolarisBadge, SolarisBodyDirective, SolarisBreadcrumb, SolarisButtonDirective, SolarisCard, SolarisCardActionsDirective, SolarisCardBadgeDirective, SolarisCardDescriptionDirective, SolarisCardEyebrowDirective, SolarisCardFooterDirective, SolarisCardGroup, SolarisCardMedia, SolarisCardMediaDirective, SolarisCardMediaOverlayDirective, SolarisCardMetaDirective, SolarisCardTitleDirective, SolarisCheckbox, SolarisColumnCellDef, SolarisColumnHeaderDef, SolarisControlBridgeDirective, SolarisDialogContainer, SolarisDialogRef, SolarisDialogService, SolarisDialogStepsContainer, SolarisDivider, SolarisDrawer, SolarisDrawerFooterDirective, SolarisDrawerHeaderDirective, SolarisDropdownContent, SolarisDropdownContentPanelDirective, SolarisDropdownContentRegistry, SolarisDropdownContentTriggerDirective, SolarisEmailDirective, SolarisFilterBar, SolarisFilterChip, SolarisFilterField, SolarisFilterPanel, SolarisFilterPanelFooterDirective, SolarisFloatingOverlayService, SolarisFooterDirective, SolarisFormFieldController, SolarisHeaderDirective, SolarisIdGenerator, SolarisImageSliderComponent, SolarisLoading, SolarisLoadingOverlay, SolarisNotificationCenterComponent, SolarisNotificationHostComponent, SolarisNotificationIntlService, SolarisNotificationItemComponent, SolarisNotificationService, SolarisPage, SolarisPageHeader, SolarisPageHeaderBreadcrumbDirective, SolarisPageHeaderDescriptionDirective, SolarisPageHeaderTitle, SolarisPageHeaderTitleDirective, SolarisPasswordDirective, SolarisPhoneInput, SolarisPopover, SolarisPopoverPanelDirective, SolarisPopoverTriggerDirective, SolarisPrefixDirective, SolarisPresenceAvatar, SolarisRadio, SolarisRadioGroup, SolarisRichTooltipDirective, SolarisRichTooltipPanel, SolarisRowComponent, SolarisSectionComponent, SolarisSelect, SolarisSelectionCard, SolarisStepper, SolarisStepperItem, SolarisSuffixDirective, SolarisTab, SolarisTable, SolarisTableColumn, SolarisTableFilters, SolarisTableSkeleton, SolarisTabs, SolarisTooltipDirective, SolarisTooltipPanel, computeFloatingPosition, computePopoverPosition, provideSolarisNotifications, repositionTooltipOverlay, uniqueId };
|
|
8140
8418
|
//# sourceMappingURL=educarehq-solaris-components.mjs.map
|