UNPKG

@xui/components

Version:

xUI Components for Angular

97 lines 11.2 kB
import { ChangeDetectionStrategy, Component, Inject, signal } from '@angular/core'; import { animate, state, style, transition, trigger, useAnimation } from '@angular/animations'; import { fadeInBottom, fadeOutBottom } from '../utils/animations'; import { lastValueFrom, Subject } from 'rxjs'; import { delay } from '../utils'; import { XUI_SNACK_BAR_DATA } from '../snack-bar'; import * as i0 from "@angular/core"; import * as i1 from "../button/button"; import * as i2 from "@ngx-translate/core"; export class SaveResetSnackbar { constructor(data) { this.data = data; this._doneAnimating = new Subject(); this._animation = signal('open'); this.save = () => this.data.save(); this.reset = () => this.data.reset(); } async close() { this._animation.set('close'); return await lastValueFrom(this._doneAnimating.asObservable()); } async alert() { this._animation.set('alert'); await delay(1000); this._animation.set('open'); } _animationDone(event) { if (event.toState === 'close') { this._doneAnimating.next(undefined); this._doneAnimating.complete(); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SaveResetSnackbar, deps: [{ token: XUI_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: SaveResetSnackbar, selector: "xui-settings-snackbar", host: { listeners: { "@fade.done": "_animationDone($event)" }, properties: { "@fade": "_animation()" }, classAttribute: "x-settings-snackbar" }, ngImport: i0, template: ` {{ 'xui.settings.save_changes_text' | translate }} <div> <xui-button size="small" color="minimal" [onClick]="reset">{{ 'xui.settings.reset' | translate }}</xui-button> <xui-button size="small" color="success" type="raised" [onClick]="save"> {{ 'xui.settings.save' | translate }} </xui-button> </div> `, isInline: true, dependencies: [{ kind: "component", type: i1.XuiButton, selector: "xui-button", inputs: ["type", "size", "color", "shine", "disabled", "stateDelay", "onClick"], outputs: ["click"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], animations: [ trigger('fade', [ state('close', style({ display: 'none' })), state('alert', style({ backgroundColor: 'var(--color-error-darker)', transform: 'scale(1.1)' })), transition('open => alert', animate(200)), transition('alert => open', animate(200)), transition('open => close', useAnimation(fadeOutBottom)), transition('void => open', useAnimation(fadeInBottom)) ]) ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SaveResetSnackbar, decorators: [{ type: Component, args: [{ selector: 'xui-settings-snackbar', changeDetection: ChangeDetectionStrategy.OnPush, template: ` {{ 'xui.settings.save_changes_text' | translate }} <div> <xui-button size="small" color="minimal" [onClick]="reset">{{ 'xui.settings.reset' | translate }}</xui-button> <xui-button size="small" color="success" type="raised" [onClick]="save"> {{ 'xui.settings.save' | translate }} </xui-button> </div> `, animations: [ trigger('fade', [ state('close', style({ display: 'none' })), state('alert', style({ backgroundColor: 'var(--color-error-darker)', transform: 'scale(1.1)' })), transition('open => alert', animate(200)), transition('alert => open', animate(200)), transition('open => close', useAnimation(fadeOutBottom)), transition('void => open', useAnimation(fadeInBottom)) ]) ], host: { class: 'x-settings-snackbar', '[@fade]': '_animation()', '(@fade.done)': '_animationDone($event)' } }] }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, args: [XUI_SNACK_BAR_DATA] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Mtc25hY2tiYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3h1aS9zcmMvc2V0dGluZ3Mvc2V0dGluZ3Mtc25hY2tiYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQWtCLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRyxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBeUNsRCxNQUFNLE9BQU8saUJBQWlCO0lBSTVCLFlBQWdELElBQVM7UUFBVCxTQUFJLEdBQUosSUFBSSxDQUFLO1FBSHpELG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMvQixlQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBZTVCLFNBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLFVBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBZDRCLENBQUM7SUFFN0QsS0FBSyxDQUFDLEtBQUs7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixPQUFPLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBS0QsY0FBYyxDQUFDLEtBQXFCO1FBQ2xDLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDOzhHQXpCVSxpQkFBaUIsa0JBSVIsa0JBQWtCO2tHQUozQixpQkFBaUIsOE1BcENsQjs7Ozs7Ozs7R0FRVCxtUkFDVztZQUNWLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2QsS0FBSyxDQUNILE9BQU8sRUFDUCxLQUFLLENBQUM7b0JBQ0osT0FBTyxFQUFFLE1BQU07aUJBQ2hCLENBQUMsQ0FDSDtnQkFDRCxLQUFLLENBQ0gsT0FBTyxFQUNQLEtBQUssQ0FBQztvQkFDSixlQUFlLEVBQUUsMkJBQTJCO29CQUM1QyxTQUFTLEVBQUUsWUFBWTtpQkFDeEIsQ0FBQyxDQUNIO2dCQUNELFVBQVUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QyxVQUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekMsVUFBVSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3hELFVBQVUsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3ZELENBQUM7U0FDSDs7MkZBT1UsaUJBQWlCO2tCQXZDN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7OztHQVFUO29CQUNELFVBQVUsRUFBRTt3QkFDVixPQUFPLENBQUMsTUFBTSxFQUFFOzRCQUNkLEtBQUssQ0FDSCxPQUFPLEVBQ1AsS0FBSyxDQUFDO2dDQUNKLE9BQU8sRUFBRSxNQUFNOzZCQUNoQixDQUFDLENBQ0g7NEJBQ0QsS0FBSyxDQUNILE9BQU8sRUFDUCxLQUFLLENBQUM7Z0NBQ0osZUFBZSxFQUFFLDJCQUEyQjtnQ0FDNUMsU0FBUyxFQUFFLFlBQVk7NkJBQ3hCLENBQUMsQ0FDSDs0QkFDRCxVQUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDekMsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQ3pDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDOzRCQUN4RCxVQUFVLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDdkQsQ0FBQztxQkFDSDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLHFCQUFxQjt3QkFDNUIsU0FBUyxFQUFFLGNBQWM7d0JBQ3pCLGNBQWMsRUFBRSx3QkFBd0I7cUJBQ3pDO2lCQUNGOzswQkFLYyxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25FdmVudCwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyLCB1c2VBbmltYXRpb24gfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IGZhZGVJbkJvdHRvbSwgZmFkZU91dEJvdHRvbSB9IGZyb20gJy4uL3V0aWxzL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBYVUlfU05BQ0tfQkFSX0RBVEEgfSBmcm9tICcuLi9zbmFjay1iYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWktc2V0dGluZ3Mtc25hY2tiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICB7eyAneHVpLnNldHRpbmdzLnNhdmVfY2hhbmdlc190ZXh0JyB8IHRyYW5zbGF0ZSB9fVxuICAgIDxkaXY+XG4gICAgICA8eHVpLWJ1dHRvbiBzaXplPVwic21hbGxcIiBjb2xvcj1cIm1pbmltYWxcIiBbb25DbGlja109XCJyZXNldFwiPnt7ICd4dWkuc2V0dGluZ3MucmVzZXQnIHwgdHJhbnNsYXRlIH19PC94dWktYnV0dG9uPlxuICAgICAgPHh1aS1idXR0b24gc2l6ZT1cInNtYWxsXCIgY29sb3I9XCJzdWNjZXNzXCIgdHlwZT1cInJhaXNlZFwiIFtvbkNsaWNrXT1cInNhdmVcIj5cbiAgICAgICAge3sgJ3h1aS5zZXR0aW5ncy5zYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC94dWktYnV0dG9uPlxuICAgIDwvZGl2PlxuICBgLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignZmFkZScsIFtcbiAgICAgIHN0YXRlKFxuICAgICAgICAnY2xvc2UnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgZGlzcGxheTogJ25vbmUnXG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgc3RhdGUoXG4gICAgICAgICdhbGVydCcsXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1jb2xvci1lcnJvci1kYXJrZXIpJyxcbiAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgxLjEpJ1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIHRyYW5zaXRpb24oJ29wZW4gPT4gYWxlcnQnLCBhbmltYXRlKDIwMCkpLFxuICAgICAgdHJhbnNpdGlvbignYWxlcnQgPT4gb3BlbicsIGFuaW1hdGUoMjAwKSksXG4gICAgICB0cmFuc2l0aW9uKCdvcGVuID0+IGNsb3NlJywgdXNlQW5pbWF0aW9uKGZhZGVPdXRCb3R0b20pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gb3BlbicsIHVzZUFuaW1hdGlvbihmYWRlSW5Cb3R0b20pKVxuICAgIF0pXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3gtc2V0dGluZ3Mtc25hY2tiYXInLFxuICAgICdbQGZhZGVdJzogJ19hbmltYXRpb24oKScsXG4gICAgJyhAZmFkZS5kb25lKSc6ICdfYW5pbWF0aW9uRG9uZSgkZXZlbnQpJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIFNhdmVSZXNldFNuYWNrYmFyIHtcbiAgX2RvbmVBbmltYXRpbmcgPSBuZXcgU3ViamVjdCgpO1xuICBfYW5pbWF0aW9uID0gc2lnbmFsKCdvcGVuJyk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChYVUlfU05BQ0tfQkFSX0RBVEEpIHByaXZhdGUgZGF0YTogYW55KSB7fVxuXG4gIGFzeW5jIGNsb3NlKCkge1xuICAgIHRoaXMuX2FuaW1hdGlvbi5zZXQoJ2Nsb3NlJyk7XG4gICAgcmV0dXJuIGF3YWl0IGxhc3RWYWx1ZUZyb20odGhpcy5fZG9uZUFuaW1hdGluZy5hc09ic2VydmFibGUoKSk7XG4gIH1cblxuICBhc3luYyBhbGVydCgpIHtcbiAgICB0aGlzLl9hbmltYXRpb24uc2V0KCdhbGVydCcpO1xuICAgIGF3YWl0IGRlbGF5KDEwMDApO1xuICAgIHRoaXMuX2FuaW1hdGlvbi5zZXQoJ29wZW4nKTtcbiAgfVxuXG4gIHNhdmUgPSAoKSA9PiB0aGlzLmRhdGEuc2F2ZSgpO1xuICByZXNldCA9ICgpID0+IHRoaXMuZGF0YS5yZXNldCgpO1xuXG4gIF9hbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgIGlmIChldmVudC50b1N0YXRlID09PSAnY2xvc2UnKSB7XG4gICAgICB0aGlzLl9kb25lQW5pbWF0aW5nLm5leHQodW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuX2RvbmVBbmltYXRpbmcuY29tcGxldGUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==