@factor_ec/ui 4.0.5 → 4.0.6

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.
@@ -0,0 +1,20 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export class MessageContentComponent {
7
+ constructor(data) {
8
+ this.data = data;
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageContentComponent, deps: [{ token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: MessageContentComponent, isStandalone: true, selector: "ft-message-content", ngImport: i0, template: "<ng-container [ngSwitch]=\"data.message?.type\">\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"data.message?.content\"></div>\n <ng-container *ngSwitchDefault>{{ data.message?.content }}</ng-container>\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }] }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageContentComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'ft-message-content', standalone: true, imports: [CommonModule], template: "<ng-container [ngSwitch]=\"data.message?.type\">\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"data.message?.content\"></div>\n <ng-container *ngSwitchDefault>{{ data.message?.content }}</ng-container>\n</ng-container>" }]
16
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
17
+ type: Inject,
18
+ args: [MAT_SNACK_BAR_DATA]
19
+ }] }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW8vbWVzc2FnZS1jb250ZW50L21lc3NhZ2UtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL21lc3NhZ2UtY29udGVudC9tZXNzYWdlLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFRakUsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUNxQyxJQUFTO1FBQVQsU0FBSSxHQUFKLElBQUksQ0FBSztJQUMxQyxDQUFDOzhHQUhNLHVCQUF1QixrQkFFeEIsa0JBQWtCO2tHQUZqQix1QkFBdUIsOEVDVnBDLGtPQUdlLDJDRElILFlBQVk7OzJGQUdYLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzswQkFLcEIsTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1BVF9TTkFDS19CQVJfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z0LW1lc3NhZ2UtY29udGVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZS1jb250ZW50LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlQ29udGVudENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX1NOQUNLX0JBUl9EQVRBKSBwdWJsaWMgZGF0YTogYW55XG4gICkgeyB9XG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJkYXRhLm1lc3NhZ2U/LnR5cGVcIj5cbiAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInaHRtbCdcIiBbaW5uZXJIVE1MXT1cImRhdGEubWVzc2FnZT8uY29udGVudFwiPjwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD57eyBkYXRhLm1lc3NhZ2U/LmNvbnRlbnQgfX08L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { Component, EventEmitter, Inject, Output } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { IconComponent } from '../icon/icon.component';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/material/button";
9
+ export class MessageDialogComponent {
10
+ constructor(data) {
11
+ this.data = data;
12
+ this.beforeSelect = new EventEmitter();
13
+ }
14
+ ngOnInit() {
15
+ }
16
+ select(value) {
17
+ this.beforeSelect.emit(value);
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageDialogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: MessageDialogComponent, isStandalone: true, selector: "ft-message-dialog", outputs: { beforeSelect: "beforeSelect" }, ngImport: i0, template: "<h1 mat-dialog-title class=\"ft-message__title\" *ngIf=\"data.options?.title\">\n <ft-icon *ngIf=\"data.options?.titleIcon\" [name]=\"data.options?.titleIcon?.name\"\n [collection]=\"data.options?.titleIcon?.collection\" [ngClass]=\"data.options?.titleIcon?.class\"></ft-icon>\n <div>{{ data.options?.title }}</div>\n</h1>\n<div mat-dialog-content class=\"ft-message__content\" [ngClass]=\"data.options?.class\">\n <ft-icon *ngIf=\"data.options?.icon\" [name]=\"data.options?.icon?.name\" [collection]=\"data.options?.icon?.collection\"\n [ngClass]=\"data.options?.icon?.class\"></ft-icon>\n <ng-container [ngSwitch]=\"data.message?.type\">\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"data.message?.content\"></div>\n <ng-container *ngSwitchDefault>{{ data.message?.content }}</ng-container>\n </ng-container>\n</div>\n<div mat-dialog-actions class=\"ft-message__actions\" *ngIf=\"data.options.actionsVisible\">\n <ng-container *ngIf=\"data.options?.actions?.length > 0; else acceptTemplate\">\n <ng-container *ngFor=\"let action of data.options?.actions; let i = index\">\n <ng-container [ngSwitch]=\"action.type\">\n <button type=\"button\" *ngSwitchCase=\"'raised'\" mat-raised-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'flat'\" mat-flat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'stroked'\" mat-stroked-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchDefault mat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\">{{ action.label }}</button>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n<ng-template #acceptTemplate>\n <button type=\"button\" mat-stroked-button color=\"primary\" autofocus (click)=\"select('-1')\" i18n>Accept</button>\n</ng-template>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "src", "class"] }] }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageDialogComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'ft-message-dialog', standalone: true, imports: [
25
+ CommonModule,
26
+ MatButtonModule,
27
+ IconComponent
28
+ ], template: "<h1 mat-dialog-title class=\"ft-message__title\" *ngIf=\"data.options?.title\">\n <ft-icon *ngIf=\"data.options?.titleIcon\" [name]=\"data.options?.titleIcon?.name\"\n [collection]=\"data.options?.titleIcon?.collection\" [ngClass]=\"data.options?.titleIcon?.class\"></ft-icon>\n <div>{{ data.options?.title }}</div>\n</h1>\n<div mat-dialog-content class=\"ft-message__content\" [ngClass]=\"data.options?.class\">\n <ft-icon *ngIf=\"data.options?.icon\" [name]=\"data.options?.icon?.name\" [collection]=\"data.options?.icon?.collection\"\n [ngClass]=\"data.options?.icon?.class\"></ft-icon>\n <ng-container [ngSwitch]=\"data.message?.type\">\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"data.message?.content\"></div>\n <ng-container *ngSwitchDefault>{{ data.message?.content }}</ng-container>\n </ng-container>\n</div>\n<div mat-dialog-actions class=\"ft-message__actions\" *ngIf=\"data.options.actionsVisible\">\n <ng-container *ngIf=\"data.options?.actions?.length > 0; else acceptTemplate\">\n <ng-container *ngFor=\"let action of data.options?.actions; let i = index\">\n <ng-container [ngSwitch]=\"action.type\">\n <button type=\"button\" *ngSwitchCase=\"'raised'\" mat-raised-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'flat'\" mat-flat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'stroked'\" mat-stroked-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchDefault mat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\">{{ action.label }}</button>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n<ng-template #acceptTemplate>\n <button type=\"button\" mat-stroked-button color=\"primary\" autofocus (click)=\"select('-1')\" i18n>Accept</button>\n</ng-template>" }]
29
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
30
+ type: Inject,
31
+ args: [MAT_DIALOG_DATA]
32
+ }] }]; }, propDecorators: { beforeSelect: [{
33
+ type: Output
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pby9tZXNzYWdlLWRpYWxvZy9tZXNzYWdlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL21lc3NhZ2UtZGlhbG9nL21lc3NhZ2UtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBWXZELE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFDa0MsSUFBUztRQUFULFNBQUksR0FBSixJQUFJLENBQUs7UUFIakMsaUJBQVksR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUkzRCxDQUFDO0lBRUwsUUFBUTtJQUNSLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBYTtRQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQVhVLHNCQUFzQixrQkFJdkIsZUFBZTtrR0FKZCxzQkFBc0Isd0hDakJuQyxtdEVBK0JjLDJDRHBCVixZQUFZLHltQkFDWixlQUFlLDRRQUNmLGFBQWE7OzJGQUlKLHNCQUFzQjtrQkFWbEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3FCQUNkOzswQkFPRSxNQUFNOzJCQUFDLGVBQWU7NENBSGYsWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuXG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z0LW1lc3NhZ2UtZGlhbG9nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VEaWFsb2dDb21wb25lbnQge1xuICBAT3V0cHV0KCkgYmVmb3JlU2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG4gIHNlbGVjdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5iZWZvcmVTZWxlY3QuZW1pdCh2YWx1ZSk7XG4gIH1cbn1cbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwiZnQtbWVzc2FnZV9fdGl0bGVcIiAqbmdJZj1cImRhdGEub3B0aW9ucz8udGl0bGVcIj5cbiAgICA8ZnQtaWNvbiAqbmdJZj1cImRhdGEub3B0aW9ucz8udGl0bGVJY29uXCIgW25hbWVdPVwiZGF0YS5vcHRpb25zPy50aXRsZUljb24/Lm5hbWVcIlxuICAgICAgICBbY29sbGVjdGlvbl09XCJkYXRhLm9wdGlvbnM/LnRpdGxlSWNvbj8uY29sbGVjdGlvblwiIFtuZ0NsYXNzXT1cImRhdGEub3B0aW9ucz8udGl0bGVJY29uPy5jbGFzc1wiPjwvZnQtaWNvbj5cbiAgICA8ZGl2Pnt7IGRhdGEub3B0aW9ucz8udGl0bGUgfX08L2Rpdj5cbjwvaDE+XG48ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImZ0LW1lc3NhZ2VfX2NvbnRlbnRcIiBbbmdDbGFzc109XCJkYXRhLm9wdGlvbnM/LmNsYXNzXCI+XG4gICAgPGZ0LWljb24gKm5nSWY9XCJkYXRhLm9wdGlvbnM/Lmljb25cIiBbbmFtZV09XCJkYXRhLm9wdGlvbnM/Lmljb24/Lm5hbWVcIiBbY29sbGVjdGlvbl09XCJkYXRhLm9wdGlvbnM/Lmljb24/LmNvbGxlY3Rpb25cIlxuICAgICAgICBbbmdDbGFzc109XCJkYXRhLm9wdGlvbnM/Lmljb24/LmNsYXNzXCI+PC9mdC1pY29uPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImRhdGEubWVzc2FnZT8udHlwZVwiPlxuICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInaHRtbCdcIiBbaW5uZXJIVE1MXT1cImRhdGEubWVzc2FnZT8uY29udGVudFwiPjwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+e3sgZGF0YS5tZXNzYWdlPy5jb250ZW50IH19PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiZnQtbWVzc2FnZV9fYWN0aW9uc1wiICpuZ0lmPVwiZGF0YS5vcHRpb25zLmFjdGlvbnNWaXNpYmxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEub3B0aW9ucz8uYWN0aW9ucz8ubGVuZ3RoID4gMDsgZWxzZSBhY2NlcHRUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgZGF0YS5vcHRpb25zPy5hY3Rpb25zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJhY3Rpb24udHlwZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ1N3aXRjaENhc2U9XCIncmFpc2VkJ1wiIG1hdC1yYWlzZWQtYnV0dG9uIFtjb2xvcl09XCJhY3Rpb24ubWV0YWRhdGE/LmNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdChhY3Rpb24udmFsdWUpXCIgYXV0b2ZvY3VzPnt7IGFjdGlvbi5sYWJlbCB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ1N3aXRjaENhc2U9XCInZmxhdCdcIiBtYXQtZmxhdC1idXR0b24gW2NvbG9yXT1cImFjdGlvbi5tZXRhZGF0YT8uY29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KGFjdGlvbi52YWx1ZSlcIiBhdXRvZm9jdXM+e3sgYWN0aW9uLmxhYmVsIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nU3dpdGNoQ2FzZT1cIidzdHJva2VkJ1wiIG1hdC1zdHJva2VkLWJ1dHRvbiBbY29sb3JdPVwiYWN0aW9uLm1ldGFkYXRhPy5jb2xvclwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3QoYWN0aW9uLnZhbHVlKVwiIGF1dG9mb2N1cz57eyBhY3Rpb24ubGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdTd2l0Y2hEZWZhdWx0IG1hdC1idXR0b24gW2NvbG9yXT1cImFjdGlvbi5tZXRhZGF0YT8uY29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KGFjdGlvbi52YWx1ZSlcIj57eyBhY3Rpb24ubGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNhY2NlcHRUZW1wbGF0ZT5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgYXV0b2ZvY3VzIChjbGljayk9XCJzZWxlY3QoJy0xJylcIiBpMThuPkFjY2VwdDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -19,11 +19,11 @@ export class ProgressComponent {
19
19
  ].join(' ');
20
20
  }
21
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: ProgressComponent, isStandalone: true, selector: "lib-progress", inputs: { class: "class", color: "color", mode: "mode", overlay: "overlay", size: "size", value: "value" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: ProgressComponent, isStandalone: true, selector: "ft-progress", inputs: { class: "class", color: "color", mode: "mode", overlay: "overlay", size: "size", value: "value" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
23
23
  }
24
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ProgressComponent, decorators: [{
25
25
  type: Component,
26
- args: [{ selector: 'lib-progress', standalone: true, imports: [CommonModule], template: "<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>" }]
26
+ args: [{ selector: 'ft-progress', standalone: true, imports: [CommonModule], template: "<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>" }]
27
27
  }], ctorParameters: function () { return []; }, propDecorators: { class: [{
28
28
  type: Input
29
29
  }], color: [{
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
40
40
  type: HostBinding,
41
41
  args: ['class']
42
42
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pby9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVEvQyxNQUFNLE9BQU8saUJBQWlCO0lBUTVCO1FBUFMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixTQUFJLEdBQW9DLGVBQWUsQ0FBQztRQUN4RCxZQUFPLEdBQVksS0FBSyxDQUFDO0lBSWxCLENBQUM7SUFFakIsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsYUFBYTtZQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxLQUFLO1NBQ1gsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZCxDQUFDOzhHQXBCVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwyT0NUOUIsdWdCQU9NLDJDRERNLFlBQVk7OzJGQUdYLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzBFQUlkLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wcm9ncmVzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjb2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgbW9kZTogJ2RldGVybWluYXRlJyB8ICdpbmRldGVybWluYXRlJyA9ICdpbmRldGVybWluYXRlJztcbiAgQElucHV0KCkgb3ZlcmxheTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaXplITogbnVtYmVyO1xuICBASW5wdXQoKSB2YWx1ZSE6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmFsdWUgPSAwO1xuICB9XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2Z0LXByb2dyZXNzJyxcbiAgICAgIHRoaXMub3ZlcmxheSA/ICdmdC1wcm9ncmVzcy0tb3ZlcmxheScgOiAnJyxcbiAgICAgIHRoaXMuY2xhc3NcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxufVxuIiwiPHN2ZyBbbmdTdHlsZV09XCJ7Jy0tZnQtYmFyLWNvbG9yJzogY29sb3J9XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiXG4gICAgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkXCI+XG4gICAgPGNpcmNsZSBjbGFzcz1cImZ0LXRyYWNrXCIgY3g9XCI1MFwiIGN5PVwiNTBcIiByPVwiNDBcIiAvPlxuICAgIDxjaXJjbGUgY2xhc3M9XCJmdC1iYXJcIiBbbmdDbGFzc109XCJtb2RlID09PSAnZGV0ZXJtaW5hdGUnID8gJ2Z0LWJhci0tZGV0ZXJtaW5hdGUnIDogJ2Z0LWJhci0taW5kZXRlcm1pbmF0ZSdcIiBjeD1cIjUwXCJcbiAgICAgICAgY3k9XCI1MFwiIHI9XCI0MFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsnc3Ryb2tlLWRhc2hvZmZzZXQnOiBtb2RlPT0nZGV0ZXJtaW5hdGUnPyAnY2FsYygoMy4xNDE1OTI2NSAqIDQwICogMiAqICgxMDAgLSAnK3ZhbHVlKycpKSAvIDEwMCknIDogbnVsbH1cIj5cbiAgICA8L2NpcmNsZT5cbjwvc3ZnPiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pby9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVEvQyxNQUFNLE9BQU8saUJBQWlCO0lBUTVCO1FBUFMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixTQUFJLEdBQW9DLGVBQWUsQ0FBQztRQUN4RCxZQUFPLEdBQVksS0FBSyxDQUFDO0lBSWxCLENBQUM7SUFFakIsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsYUFBYTtZQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxLQUFLO1NBQ1gsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZCxDQUFDOzhHQXBCVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwwT0NUOUIsdWdCQU9NLDJDRERNLFlBQVk7OzJGQUdYLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzBFQUlkLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z0LXByb2dyZXNzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NDb21wb25lbnQge1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNvbG9yITogc3RyaW5nO1xuICBASW5wdXQoKSBtb2RlOiAnZGV0ZXJtaW5hdGUnIHwgJ2luZGV0ZXJtaW5hdGUnID0gJ2luZGV0ZXJtaW5hdGUnO1xuICBASW5wdXQoKSBvdmVybGF5OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNpemUhOiBudW1iZXI7XG4gIEBJbnB1dCgpIHZhbHVlITogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52YWx1ZSA9IDA7XG4gIH1cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAnZnQtcHJvZ3Jlc3MnLFxuICAgICAgdGhpcy5vdmVybGF5ID8gJ2Z0LXByb2dyZXNzLS1vdmVybGF5JyA6ICcnLFxuICAgICAgdGhpcy5jbGFzc1xuICAgIF0uam9pbignICcpO1xuICB9XG59XG4iLCI8c3ZnIFtuZ1N0eWxlXT1cInsnLS1mdC1iYXItY29sb3InOiBjb2xvcn1cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxMDAgMTAwXCJcbiAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWRcIj5cbiAgICA8Y2lyY2xlIGNsYXNzPVwiZnQtdHJhY2tcIiBjeD1cIjUwXCIgY3k9XCI1MFwiIHI9XCI0MFwiIC8+XG4gICAgPGNpcmNsZSBjbGFzcz1cImZ0LWJhclwiIFtuZ0NsYXNzXT1cIm1vZGUgPT09ICdkZXRlcm1pbmF0ZScgPyAnZnQtYmFyLS1kZXRlcm1pbmF0ZScgOiAnZnQtYmFyLS1pbmRldGVybWluYXRlJ1wiIGN4PVwiNTBcIlxuICAgICAgICBjeT1cIjUwXCIgcj1cIjQwXCJcbiAgICAgICAgW25nU3R5bGVdPVwieydzdHJva2UtZGFzaG9mZnNldCc6IG1vZGU9PSdkZXRlcm1pbmF0ZSc/ICdjYWxjKCgzLjE0MTU5MjY1ICogNDAgKiAyICogKDEwMCAtICcrdmFsdWUrJykpIC8gMTAwKScgOiBudWxsfVwiPlxuICAgIDwvY2lyY2xlPlxuPC9zdmc+Il19
@@ -48,14 +48,14 @@ export class RatingComponent {
48
48
  this.value = value;
49
49
  }
50
50
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: RatingComponent, isStandalone: true, selector: "lib-rating", inputs: { readOnly: "readOnly", value: "value" }, ngImport: i0, template: "<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: RatingComponent, isStandalone: true, selector: "ft-rating", inputs: { readOnly: "readOnly", value: "value" }, ngImport: i0, template: "<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
52
52
  }
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RatingComponent, decorators: [{
54
54
  type: Component,
55
- args: [{ selector: 'lib-rating', standalone: true, imports: [CommonModule], template: "<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>" }]
55
+ args: [{ selector: 'ft-rating', standalone: true, imports: [CommonModule], template: "<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>" }]
56
56
  }], ctorParameters: function () { return []; }, propDecorators: { readOnly: [{
57
57
  type: Input
58
58
  }], value: [{
59
59
  type: Input
60
60
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW8vcmF0aW5nL3JhdGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL3JhdGluZy9yYXRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFRL0MsTUFBTSxPQUFPLGVBQWU7SUFjMUI7UUFiQSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ25DLFVBQUssR0FBVTtZQUNiLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNaLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNaLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNaLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNaLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtTQUNiLENBQUM7SUFHYyxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFhLEtBQUssQ0FBQyxLQUFVO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUFvQjtRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBb0I7UUFDcEMsNEJBQTRCO0lBQzlCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQWEsRUFBRSxPQUFpQjtRQUN0QyxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUNwQjtJQUNILENBQUM7SUFDRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDOzhHQTlDVSxlQUFlO2tHQUFmLGVBQWUsd0hDVDVCLHV2Q0FnQmMsMkNEVkYsWUFBWTs7MkZBR1gsZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzBFQU9kLFFBQVE7c0JBQWhCLEtBQUs7Z0JBaUJPLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcmF0aW5nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yYXRpbmcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFJhdGluZ0NvbXBvbmVudCB7XG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGhvdmVyVmFsdWUhOiBudW1iZXI7XG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcbiAgQElucHV0KCkgcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3RhcnM6IGFueVtdID0gW1xuICAgIHsgdmFsdWU6IDEgfSxcbiAgICB7IHZhbHVlOiAyIH0sXG4gICAgeyB2YWx1ZTogMyB9LFxuICAgIHsgdmFsdWU6IDQgfSxcbiAgICB7IHZhbHVlOiA1IH1cbiAgXTtcbiAgX3ZhbHVlITogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5fdmFsdWUpO1xuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoXzogYW55KSA9PiB2b2lkKSB7XG4gICAgLy90aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG4gIHNldFJhdGUodmFsdWU6IG51bWJlciwgaXNIb3Zlcj86IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNIb3Zlcikge1xuICAgICAgdGhpcy5ob3ZlclZhbHVlID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgdXBkYXRlVmFsdWUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gIH1cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdGFyIG9mIHN0YXJzXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIiFyZWFkT25seT8gYnV0dG9uVGVtcGxhdGUgOiBzdGFyVGVtcGxhdGU7IGNvbnRleHQ6e3N0YXI6c3Rhcn1cIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNidXR0b25UZW1wbGF0ZSBsZXQtc3Rhcj1cInN0YXJcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImZ0LXJhdGluZ19faXRlbVwiICpuZ0lmPVwiIXJlYWRPbmx5OyBlbHNlIHN0YXJUZW1wbGF0ZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChtb3VzZW92ZXIpPVwic2V0UmF0ZShzdGFyLnZhbHVlLCB0cnVlKVwiIChmb2N1cyk9XCJzZXRSYXRlKHN0YXIudmFsdWUsIHRydWUpXCIgKGJsdXIpPVwic2V0UmF0ZSgwLCB0cnVlKVwiXG4gICAgICAgIChtb3VzZW91dCk9XCJzZXRSYXRlKDAsIHRydWUpXCIgKGNsaWNrKT1cInNldFJhdGUoc3Rhci52YWx1ZSlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXJUZW1wbGF0ZTsgY29udGV4dDp7c3RhcjpzdGFyfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjc3RhclRlbXBsYXRlIGxldC1zdGFyPVwic3RhclwiPlxuICAgIDxzdmcgW25nQ2xhc3NdPVwieydmdC1yYXRpbmdfX2l0ZW0taWNvbi0taG92ZXInOiBob3ZlclZhbHVlID49IHN0YXIudmFsdWUsICdmdC1yYXRpbmdfX2l0ZW0taWNvbi0tYWN0aXZlJzogdmFsdWUgPj0gc3Rhci52YWx1ZX1cIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTE3LjkzIDIxLjMxNWMtLjUzNC40MDgtNS4yMi0zLjE4Ni01Ljg4MS0zLjE4MS0uNjYzIDAtNS4zMDcgMy42NTYtNS44NDYgMy4yNTQtLjUzNy0uNDAzIDEuMjktNi4xNjUgMS4wODEtNi44MjItLjIwOS0uNjU2LTQuOTcyLTQuMTM4LTQuNzcyLTQuNzk2LjIwMS0uNjU4IDYuMDE1LS42MjcgNi41NS0xLjAzNi41MzMtLjQxIDIuMjMzLTYuMjE1IDIuODk1LTYuMjE5LjY2MyAwIDIuNDMgNS43NzkgMi45NjggNi4xODIuNTM5LjQwMyA2LjM1Mi4yOTcgNi41Ni45NTMuMjEuNjU2LTQuNTEzIDQuMTk3LTQuNzE0IDQuODU2LS4yLjY1OCAxLjY5MiA2LjM5OCAxLjE1OSA2LjgwOHpcIiAvPlxuICAgIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW8vcmF0aW5nL3JhdGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL3JhdGluZy9yYXRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFRL0MsTUFBTSxPQUFPLGVBQWU7SUFjMUI7UUFiQSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ25DLFVBQUssR0FBVTtZQUNiLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNaLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNaLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNaLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNaLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtTQUNiLENBQUM7SUFHYyxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFhLEtBQUssQ0FBQyxLQUFVO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUFvQjtRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBb0I7UUFDcEMsNEJBQTRCO0lBQzlCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQWEsRUFBRSxPQUFpQjtRQUN0QyxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUNwQjtJQUNILENBQUM7SUFDRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDOzhHQTlDVSxlQUFlO2tHQUFmLGVBQWUsdUhDVDVCLHV2Q0FnQmMsMkNEVkYsWUFBWTs7MkZBR1gsZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzBFQU9kLFFBQVE7c0JBQWhCLEtBQUs7Z0JBaUJPLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdC1yYXRpbmcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhdGluZy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmF0aW5nQ29tcG9uZW50IHtcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaG92ZXJWYWx1ZSE6IG51bWJlcjtcbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xuICBASW5wdXQoKSByZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBzdGFyczogYW55W10gPSBbXG4gICAgeyB2YWx1ZTogMSB9LFxuICAgIHsgdmFsdWU6IDIgfSxcbiAgICB7IHZhbHVlOiAzIH0sXG4gICAgeyB2YWx1ZTogNCB9LFxuICAgIHsgdmFsdWU6IDUgfVxuICBdO1xuICBfdmFsdWUhOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IChfOiBhbnkpID0+IHZvaWQpIHtcbiAgICAvL3RoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cbiAgc2V0UmF0ZSh2YWx1ZTogbnVtYmVyLCBpc0hvdmVyPzogYm9vbGVhbikge1xuICAgIGlmIChpc0hvdmVyKSB7XG4gICAgICB0aGlzLmhvdmVyVmFsdWUgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICB1cGRhdGVWYWx1ZShldmVudDogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgfVxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0YXIgb2Ygc3RhcnNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiIXJlYWRPbmx5PyBidXR0b25UZW1wbGF0ZSA6IHN0YXJUZW1wbGF0ZTsgY29udGV4dDp7c3RhcjpzdGFyfVwiPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI2J1dHRvblRlbXBsYXRlIGxldC1zdGFyPVwic3RhclwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZnQtcmF0aW5nX19pdGVtXCIgKm5nSWY9XCIhcmVhZE9ubHk7IGVsc2Ugc3RhclRlbXBsYXRlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKG1vdXNlb3Zlcik9XCJzZXRSYXRlKHN0YXIudmFsdWUsIHRydWUpXCIgKGZvY3VzKT1cInNldFJhdGUoc3Rhci52YWx1ZSwgdHJ1ZSlcIiAoYmx1cik9XCJzZXRSYXRlKDAsIHRydWUpXCJcbiAgICAgICAgKG1vdXNlb3V0KT1cInNldFJhdGUoMCwgdHJ1ZSlcIiAoY2xpY2spPVwic2V0UmF0ZShzdGFyLnZhbHVlKVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhclRlbXBsYXRlOyBjb250ZXh0OntzdGFyOnN0YXJ9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzdGFyVGVtcGxhdGUgbGV0LXN0YXI9XCJzdGFyXCI+XG4gICAgPHN2ZyBbbmdDbGFzc109XCJ7J2Z0LXJhdGluZ19faXRlbS1pY29uLS1ob3Zlcic6IGhvdmVyVmFsdWUgPj0gc3Rhci52YWx1ZSwgJ2Z0LXJhdGluZ19faXRlbS1pY29uLS1hY3RpdmUnOiB2YWx1ZSA+PSBzdGFyLnZhbHVlfVwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMTcuOTMgMjEuMzE1Yy0uNTM0LjQwOC01LjIyLTMuMTg2LTUuODgxLTMuMTgxLS42NjMgMC01LjMwNyAzLjY1Ni01Ljg0NiAzLjI1NC0uNTM3LS40MDMgMS4yOS02LjE2NSAxLjA4MS02LjgyMi0uMjA5LS42NTYtNC45NzItNC4xMzgtNC43NzItNC43OTYuMjAxLS42NTggNi4wMTUtLjYyNyA2LjU1LTEuMDM2LjUzMy0uNDEgMi4yMzMtNi4yMTUgMi44OTUtNi4yMTkuNjYzIDAgMi40MyA1Ljc3OSAyLjk2OCA2LjE4Mi41MzkuNDAzIDYuMzUyLjI5NyA2LjU2Ljk1My4yMS42NTYtNC41MTMgNC4xOTctNC43MTQgNC44NTYtLjIuNjU4IDEuNjkyIDYuMzk4IDEuMTU5IDYuODA4elwiIC8+XG4gICAgPC9zdmc+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -83,11 +83,11 @@ export class TimelineComponent {
83
83
  });
84
84
  }
85
85
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
86
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: TimelineComponent, isStandalone: true, selector: "lib-timeline", inputs: { data: "data", class: "class" }, host: { properties: { "style.--current-date": "this.currentDate", "class": "this.hostClasses" } }, ngImport: i0, template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] }); }
86
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: TimelineComponent, isStandalone: true, selector: "ft-timeline", inputs: { data: "data", class: "class" }, host: { properties: { "style.--current-date": "this.currentDate", "class": "this.hostClasses" } }, ngImport: i0, template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] }); }
87
87
  }
88
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TimelineComponent, decorators: [{
89
89
  type: Component,
90
- args: [{ selector: 'lib-timeline', standalone: true, imports: [CommonModule], template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>" }]
90
+ args: [{ selector: 'ft-timeline', standalone: true, imports: [CommonModule], template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>" }]
91
91
  }], ctorParameters: function () { return []; }, propDecorators: { data: [{
92
92
  type: Input
93
93
  }], currentDate: [{
@@ -99,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
99
99
  type: HostBinding,
100
100
  args: ['class']
101
101
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pby90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL3RpbWVsaW5lL3RpbWVsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVMvQyxNQUFNLE9BQU8saUJBQWlCO0lBWTVCLElBQTBCLFdBQVc7UUFDbkMsT0FBTztZQUNMLGFBQWE7WUFDYixJQUFJLENBQUMsS0FBSztTQUNYLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUFBLENBQUM7SUFFRjtRQWxCQSxjQUFTLEdBQWtCLElBQUksSUFBSSxFQUFFLENBQUM7UUFDN0IsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUczQixlQUFVLEdBQVE7WUFDaEIsTUFBTSxFQUFFLEVBQUU7WUFDVixJQUFJLEVBQUUsRUFBRTtZQUNSLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUVPLFVBQUssR0FBVyxFQUFFLENBQUM7SUFRWixDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBVTtRQUNqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMs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Q0FBQyxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxJQUFJLEdBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDckMsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztTQUNoQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSx1QkFBdUIsQ0FBQztRQUN4RSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDekMsT0FBTztnQkFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLEtBQUssRUFBRSxFQUFFO2dCQUNULElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixJQUFJLEVBQUUsQ0FBQzthQUNSLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBakZVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFOQ1Y5Qixrb0NBcUJNLDJDRGRNLFlBQVk7OzJGQUdYLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzBFQUtkLElBQUk7c0JBQVosS0FBSztnQkFFTixXQUFXO3NCQURWLFdBQVc7dUJBQUMsc0JBQXNCO2dCQVExQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ29CLFdBQVc7c0JBQXBDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uL21vZGVscy90YXNrJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRpbWVsaW5lJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lbGluZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVDb21wb25lbnQge1xuICBzdGFydERhdGU6IERhdGUgfCBzdHJpbmcgPSBuZXcgRGF0ZSgpO1xuICBASW5wdXQoKSBkYXRhOiBUYXNrW10gPSBbXTtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWN1cnJlbnQtZGF0ZScpXG4gIGN1cnJlbnREYXRlITogbnVtYmVyO1xuICBkYXRhUGFyc2VkOiBhbnkgPSB7XG4gICAgbW9udGhzOiBbXSxcbiAgICBkYXlzOiBbXSxcbiAgICB3ZWVrZW5kczogW11cbiAgfTtcblxuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2Z0LXRpbWVsaW5lJyxcbiAgICAgIHRoaXMuY2xhc3NcbiAgICBdLmpvaW4oJyAnKTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRkTW9udGgodGhpcy5jYWxjU3RhcnREYXRlKCkpO1xuICB9XG4gIGFkZE1vbnRoKGRhdGU6IERhdGUpOiB2b2lkIHtcbiAgICBjb25zdCBtb250aCA9IHRoaXMuZ2V0TW9udGgoZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldEZ1bGxZZWFyKCkpO1xuICAgIGNvbnN0IGN1cnJlbnREYXlzID0gdGhpcy5kYXRhUGFyc2VkLmRheXMubGVuZ3RoO1xuICAgIHRoaXMuZGF0YVBhcnNlZC5tb250aHMgPSBbLi4udGhpcy5kYXRhUGFyc2VkLm1vbnRocywgeyBkYXRlOiBtb250aC5kYXlzWzBdLCBkYXlzSW5Nb250aDogbW9udGguZGF5cy5sZW5ndGggfV07XG4gICAgdGhpcy5kYXRhUGFyc2VkLmRheXMgPSBbLi4udGhpcy5kYXRhUGFyc2VkLmRheXMsIC4uLm1vbnRoLmRheXNdO1xuICAgIHRoaXMuZGF0YVBhcnNlZC53ZWVrZW5kcyA9IFsuLi50aGlzLmRhdGFQYXJzZWQud2Vla2VuZHMsIC4uLm1vbnRoLndlZWtlbmRzXTtcbiAgICBpZiAoIXRoaXMuY3VycmVudERhdGUgJiYgbW9udGguY3VycmVudERhdGUpIHtcbiAgICAgIHRoaXMuY3VycmVudERhdGUgPSBjdXJyZW50RGF5cyArIG1vbnRoLmN1cnJlbnREYXRlO1xuICAgIH1cbiAgICB0aGlzLmRhdGFQYXJzZWQuZGF5cy5zb21lKChkYXk6IERhdGUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChbMCwgNl0uaW5jbHVkZXMoZGF5LmdldERheSgpKSkge1xuICAgICAgICB0aGlzLmRhdGFQYXJzZWQud2Vla2VuZFN0YXJ0ID0gaW5kZXg7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMucGFyc2VUYXNrcygpO1xuICB9XG4gIGNhbGNTdGFydERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKCk7XG4gIH1cbiAgZ2V0TW9udGgobW9udGg6IG51bWJlciwgeWVhcjogbnVtYmVyKTogYW55IHtcbiAgICBjb25zdCBkYXlzID0gW107XG4gICAgY29uc3Qgd2Vla2VuZHMgPSBbXTtcbiAgICBsZXQgY3VycmVudERhdGU6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGxldCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgMCk7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gZGF0ZS5nZXREYXRlKCk7IGkrKykge1xuICAgICAgY29uc3QgaWRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgaSk7XG4gICAgICBpZiAoWzAsIDZdLmluY2x1ZGVzKGlkYXRlLmdldERheSgpKSkge1xuICAgICAgICBpZiAoaWRhdGUuZ2V0RGF5KCkgPT09IDYpIHtcbiAgICAgICAgICB3ZWVrZW5kcy5wdXNoKFtpZGF0ZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdlZWtlbmRzW3dlZWtlbmRzLmxlbmd0aCAtIDFdLnB1c2goaWRhdGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaWRhdGUuZ2V0VGltZSgpID09PSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpLCB0b2RheS5nZXRNb250aCgpLCB0b2RheS5nZXREYXRlKCkpLmdldFRpbWUoKSkge1xuICAgICAgICBjdXJyZW50RGF0ZSA9IGkgLSAxO1xuICAgICAgfVxuICAgICAgZGF5cy5wdXNoKGlkYXRlKTtcbiAgICB9XG4gICAgY29uc3QgZGF0YTogYW55ID0geyBkYXlzLCB3ZWVrZW5kcyB9O1xuICAgIGlmIChjdXJyZW50RGF0ZSkge1xuICAgICAgZGF0YS5jdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBwYXJzZVRhc2tzKCk6IHZvaWQge1xuICAgIGxldCB0YXNrcyA9IHRoaXMuZGF0YS5maWx0ZXIodGFzayA9PiB0YXNrLmVuZEF0KS8qLnNvcnQoKGEsIGIpID0+IGEuKSovO1xuICAgIHRoaXMuZGF0YVBhcnNlZC50YXNrcyA9IHRhc2tzLm1hcCgodGFzaykgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGFiZWw6IHRhc2subGFiZWwsXG4gICAgICAgIHN0YXJ0OiAxMCxcbiAgICAgICAgdHlwZTogdGFzay50eXBlLFxuICAgICAgICBzaXplOiAxXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZnQtd2Vla2VuZHNcIiBbc3R5bGUuLS1zdGFydF09XCJkYXRhUGFyc2VkLndlZWtlbmRTdGFydFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmdC13ZWVrZW5kc19faXRlbVwiIFtzdHlsZS4tLXdlZWtlbmQtc2l6ZV09XCJ3ZWVrZW5kLmxlbmd0aFwiICpuZ0Zvcj1cImxldCB3ZWVrZW5kIG9mIGRhdGFQYXJzZWQud2Vla2VuZHNcIj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImZ0LWN1cnJlbnQtZGF0ZVwiICpuZ0lmPVwiY3VycmVudERhdGVcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmdC1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZnQtaGVhZGVyX19tb250aHNcIj5cbiAgICAgICAgPGRpdiBbc3R5bGUuLS1kYXlzLWluLW1vbnRoXT1cIm1vbnRoLmRheXNJbk1vbnRoXCIgKm5nRm9yPVwibGV0IG1vbnRoIG9mIGRhdGFQYXJzZWQubW9udGhzOyBsZXQgaSA9IGluZGV4XCI+e3tcbiAgICAgICAgICAgIG1vbnRoLmRhdGVcbiAgICAgICAgICAgIHwgZGF0ZTogJ01NTU0sIHl5eXknIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZ0LWhlYWRlcl9fZGF5c1wiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkYXkgb2YgZGF0YVBhcnNlZC5kYXlzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInthY3RpdmU6IGN1cnJlbnREYXRlICYmIGN1cnJlbnREYXRlID09PSBpfVwiPnt7IGRheSB8IGRhdGU6J2QnIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZnQtdGFza3NcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImZ0LXRhc2tzX19pdGVtXCIgW2NsYXNzLnRhc2tzX19pdGVtLS1taWxlc3RvbmVdPVwidGFzay50eXBlID09PSAnbWlsZXN0b25lJ1wiXG4gICAgICAgIFtzdHlsZS4tLXN0YXJ0XT1cInRhc2suc3RhcnRcIiBbc3R5bGUuLS1kYXlzXT1cInRhc2sudHlwZSA9PT0gJ21pbGVzdG9uZScgPyAxIDogdGFzay5zaXplXCJcbiAgICAgICAgc3R5bGU9XCIgLS1jb2xvci1yZ2I6IDEzMCwgMTIxLCAyMTA7XCIgKm5nRm9yPVwibGV0IHRhc2sgb2YgZGF0YVBhcnNlZC50YXNrcztcIj57eyB0YXNrLmxhYmVsIH19PC9idXR0b24+XG48L2Rpdj4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pby90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL3RpbWVsaW5lL3RpbWVsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVMvQyxNQUFNLE9BQU8saUJBQWlCO0lBWTVCLElBQTBCLFdBQVc7UUFDbkMsT0FBTztZQUNMLGFBQWE7WUFDYixJQUFJLENBQUMsS0FBSztTQUNYLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUFBLENBQUM7SUFFRjtRQWxCQSxjQUFTLEdBQWtCLElBQUksSUFBSSxFQUFFLENBQUM7UUFDN0IsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUczQixlQUFVLEdBQVE7WUFDaEIsTUFBTSxFQUFFLEVBQUU7WUFDVixJQUFJLEVBQUUsRUFBRTtZQUNSLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUVPLFVBQUssR0FBVyxFQUFFLENBQUM7SUFRWixDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBVTtRQUNqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMs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Q0FBQyxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxJQUFJLEdBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDckMsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztTQUNoQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSx1QkFBdUIsQ0FBQztRQUN4RSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDekMsT0FBTztnQkFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLEtBQUssRUFBRSxFQUFFO2dCQUNULElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixJQUFJLEVBQUUsQ0FBQzthQUNSLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBakZVLGlCQUFpQjtrR0FBakIsaUJBQWlCLG9OQ1Y5Qixrb0NBcUJNLDJDRGRNLFlBQVk7OzJGQUdYLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzBFQUtkLElBQUk7c0JBQVosS0FBSztnQkFFTixXQUFXO3NCQURWLFdBQVc7dUJBQUMsc0JBQXNCO2dCQVExQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ29CLFdBQVc7c0JBQXBDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uL21vZGVscy90YXNrJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnQtdGltZWxpbmUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWVsaW5lLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUaW1lbGluZUNvbXBvbmVudCB7XG4gIHN0YXJ0RGF0ZTogRGF0ZSB8IHN0cmluZyA9IG5ldyBEYXRlKCk7XG4gIEBJbnB1dCgpIGRhdGE6IFRhc2tbXSA9IFtdO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tY3VycmVudC1kYXRlJylcbiAgY3VycmVudERhdGUhOiBudW1iZXI7XG4gIGRhdGFQYXJzZWQ6IGFueSA9IHtcbiAgICBtb250aHM6IFtdLFxuICAgIGRheXM6IFtdLFxuICAgIHdlZWtlbmRzOiBbXVxuICB9O1xuXG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAnZnQtdGltZWxpbmUnLFxuICAgICAgdGhpcy5jbGFzc1xuICAgIF0uam9pbignICcpO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRNb250aCh0aGlzLmNhbGNTdGFydERhdGUoKSk7XG4gIH1cbiAgYWRkTW9udGgoZGF0ZTogRGF0ZSk6IHZvaWQge1xuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5nZXRNb250aChkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RnVsbFllYXIoKSk7XG4gICAgY29uc3QgY3VycmVudERheXMgPSB0aGlzLmRhdGFQYXJzZWQuZGF5cy5sZW5ndGg7XG4gICAgdGhpcy5kYXRhUGFyc2VkLm1vbnRocyA9IFsuLi50aGlzLmRhdGFQYXJzZWQubW9udGhzLCB7IGRhdGU6IG1vbnRoLmRheXNbMF0sIGRheXNJbk1vbnRoOiBtb250aC5kYXlzLmxlbmd0aCB9XTtcbiAgICB0aGlzLmRhdGFQYXJzZWQuZGF5cyA9IFsuLi50aGlzLmRhdGFQYXJzZWQuZGF5cywgLi4ubW9udGguZGF5c107XG4gICAgdGhpcy5kYXRhUGFyc2VkLndlZWtlbmRzID0gWy4uLnRoaXMuZGF0YVBhcnNlZC53ZWVrZW5kcywgLi4ubW9udGgud2Vla2VuZHNdO1xuICAgIGlmICghdGhpcy5jdXJyZW50RGF0ZSAmJiBtb250aC5jdXJyZW50RGF0ZSkge1xuICAgICAgdGhpcy5jdXJyZW50RGF0ZSA9IGN1cnJlbnREYXlzICsgbW9udGguY3VycmVudERhdGU7XG4gICAgfVxuICAgIHRoaXMuZGF0YVBhcnNlZC5kYXlzLnNvbWUoKGRheTogRGF0ZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgaWYgKFswLCA2XS5pbmNsdWRlcyhkYXkuZ2V0RGF5KCkpKSB7XG4gICAgICAgIHRoaXMuZGF0YVBhcnNlZC53ZWVrZW5kU3RhcnQgPSBpbmRleDtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gICAgdGhpcy5wYXJzZVRhc2tzKCk7XG4gIH1cbiAgY2FsY1N0YXJ0RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoKTtcbiAgfVxuICBnZXRNb250aChtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIpOiBhbnkge1xuICAgIGNvbnN0IGRheXMgPSBbXTtcbiAgICBjb25zdCB3ZWVrZW5kcyA9IFtdO1xuICAgIGxldCBjdXJyZW50RGF0ZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCAwKTtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBkYXRlLmdldERhdGUoKTsgaSsrKSB7XG4gICAgICBjb25zdCBpZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBpKTtcbiAgICAgIGlmIChbMCwgNl0uaW5jbHVkZXMoaWRhdGUuZ2V0RGF5KCkpKSB7XG4gICAgICAgIGlmIChpZGF0ZS5nZXREYXkoKSA9PT0gNikge1xuICAgICAgICAgIHdlZWtlbmRzLnB1c2goW2lkYXRlXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2Vla2VuZHNbd2Vla2VuZHMubGVuZ3RoIC0gMV0ucHVzaChpZGF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpZGF0ZS5nZXRUaW1lKCkgPT09IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHRvZGF5LmdldE1vbnRoKCksIHRvZGF5LmdldERhdGUoKSkuZ2V0VGltZSgpKSB7XG4gICAgICAgIGN1cnJlbnREYXRlID0gaSAtIDE7XG4gICAgICB9XG4gICAgICBkYXlzLnB1c2goaWRhdGUpO1xuICAgIH1cbiAgICBjb25zdCBkYXRhOiBhbnkgPSB7IGRheXMsIHdlZWtlbmRzIH07XG4gICAgaWYgKGN1cnJlbnREYXRlKSB7XG4gICAgICBkYXRhLmN1cnJlbnREYXRlID0gY3VycmVudERhdGU7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIHBhcnNlVGFza3MoKTogdm9pZCB7XG4gICAgbGV0IHRhc2tzID0gdGhpcy5kYXRhLmZpbHRlcih0YXNrID0+IHRhc2suZW5kQXQpLyouc29ydCgoYSwgYikgPT4gYS4pKi87XG4gICAgdGhpcy5kYXRhUGFyc2VkLnRhc2tzID0gdGFza3MubWFwKCh0YXNrKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYWJlbDogdGFzay5sYWJlbCxcbiAgICAgICAgc3RhcnQ6IDEwLFxuICAgICAgICB0eXBlOiB0YXNrLnR5cGUsXG4gICAgICAgIHNpemU6IDFcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmdC13ZWVrZW5kc1wiIFtzdHlsZS4tLXN0YXJ0XT1cImRhdGFQYXJzZWQud2Vla2VuZFN0YXJ0XCI+XG4gICAgPGRpdiBjbGFzcz1cImZ0LXdlZWtlbmRzX19pdGVtXCIgW3N0eWxlLi0td2Vla2VuZC1zaXplXT1cIndlZWtlbmQubGVuZ3RoXCIgKm5nRm9yPVwibGV0IHdlZWtlbmQgb2YgZGF0YVBhcnNlZC53ZWVrZW5kc1wiPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZnQtY3VycmVudC1kYXRlXCIgKm5nSWY9XCJjdXJyZW50RGF0ZVwiPjwvZGl2PlxuPGRpdiBjbGFzcz1cImZ0LWhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmdC1oZWFkZXJfX21vbnRoc1wiPlxuICAgICAgICA8ZGl2IFtzdHlsZS4tLWRheXMtaW4tbW9udGhdPVwibW9udGguZGF5c0luTW9udGhcIiAqbmdGb3I9XCJsZXQgbW9udGggb2YgZGF0YVBhcnNlZC5tb250aHM7IGxldCBpID0gaW5kZXhcIj57e1xuICAgICAgICAgICAgbW9udGguZGF0ZVxuICAgICAgICAgICAgfCBkYXRlOiAnTU1NTSwgeXl5eScgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZnQtaGVhZGVyX19kYXlzXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheSBvZiBkYXRhUGFyc2VkLmRheXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwie2FjdGl2ZTogY3VycmVudERhdGUgJiYgY3VycmVudERhdGUgPT09IGl9XCI+e3sgZGF5IHwgZGF0ZTonZCcgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmdC10YXNrc1wiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZnQtdGFza3NfX2l0ZW1cIiBbY2xhc3MudGFza3NfX2l0ZW0tLW1pbGVzdG9uZV09XCJ0YXNrLnR5cGUgPT09ICdtaWxlc3RvbmUnXCJcbiAgICAgICAgW3N0eWxlLi0tc3RhcnRdPVwidGFzay5zdGFydFwiIFtzdHlsZS4tLWRheXNdPVwidGFzay50eXBlID09PSAnbWlsZXN0b25lJyA/IDEgOiB0YXNrLnNpemVcIlxuICAgICAgICBzdHlsZT1cIiAtLWNvbG9yLXJnYjogMTMwLCAxMjEsIDIxMDtcIiAqbmdGb3I9XCJsZXQgdGFzayBvZiBkYXRhUGFyc2VkLnRhc2tzO1wiPnt7IHRhc2subGFiZWwgfX08L2J1dHRvbj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,58 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ReplaySubject } from 'rxjs';
3
+ import { MessageContentComponent } from './io/message-content/message-content.component';
4
+ import { MessageDialogComponent } from './io/message-dialog/message-dialog.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/snack-bar";
7
+ import * as i2 from "@angular/material/dialog";
8
+ export class MessageService {
9
+ constructor(snackBar, dialog) {
10
+ this.snackBar = snackBar;
11
+ this.dialog = dialog;
12
+ }
13
+ show(message, options) {
14
+ let selectionSource = new ReplaySubject(undefined);
15
+ let selection = selectionSource.asObservable();
16
+ const defaults = {
17
+ type: 'notification',
18
+ duration: 2000,
19
+ actionsVisible: true
20
+ };
21
+ options = Object.assign(defaults, options);
22
+ const data = { message: typeof message === 'string' ? { content: message, type: 'text' } : message, options };
23
+ switch (options.type) {
24
+ default:
25
+ case 'notification':
26
+ this.snackBar.openFromComponent(MessageContentComponent, {
27
+ data,
28
+ panelClass: ['ft-message', 'ft-message--notification'],
29
+ duration: options.duration || 2000,
30
+ });
31
+ break;
32
+ case 'modal':
33
+ const dialogRef = this.dialog.open(MessageDialogComponent, {
34
+ width: options.width || '350px',
35
+ data,
36
+ panelClass: ['ft-message', 'ft-message--modal'],
37
+ autoFocus: false,
38
+ disableClose: true
39
+ });
40
+ dialogRef.componentInstance.beforeSelect.subscribe((response) => {
41
+ selectionSource.next(response);
42
+ dialogRef.close();
43
+ });
44
+ this.snackBar.dismiss();
45
+ break;
46
+ }
47
+ return selection;
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageService, deps: [{ token: i1.MatSnackBar }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
50
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageService, providedIn: 'root' }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageService, decorators: [{
53
+ type: Injectable,
54
+ args: [{
55
+ providedIn: 'root'
56
+ }]
57
+ }], ctorParameters: function () { return [{ type: i1.MatSnackBar }, { type: i2.MatDialog }]; } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBT2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7O0FBS3RGLE1BQU0sT0FBTyxjQUFjO0lBR3pCLFlBQ1UsUUFBcUIsRUFDckIsTUFBaUI7UUFEakIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFXO0lBQ3ZCLENBQUM7SUFFTCxJQUFJLENBQUMsT0FBZ0MsRUFBRSxPQUF3QjtRQUM3RCxJQUFJLGVBQWUsR0FBMEIsSUFBSSxhQUFhLENBQVMsU0FBUyxDQUFDLENBQUM7UUFDbEYsSUFBSSxTQUFTLEdBQXVCLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNuRSxNQUFNLFFBQVEsR0FBbUI7WUFDL0IsSUFBSSxFQUFFLGNBQWM7WUFDcEIsUUFBUSxFQUFFLElBQUk7WUFDZCxjQUFjLEVBQUUsSUFBSTtTQUNyQixDQUFDO1FBQ0YsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE1BQU0sSUFBSSxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzlHLFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRTtZQUNwQixRQUFRO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixFQUFFO29CQUN2RCxJQUFJO29CQUNKLFVBQVUsRUFBRSxDQUFDLFlBQVksRUFBRSwwQkFBMEIsQ0FBQztvQkFDdEQsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSTtpQkFDbkMsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7b0JBQ3pELEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU87b0JBQy9CLElBQUk7b0JBQ0osVUFBVSxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDO29CQUMvQyxTQUFTLEVBQUUsS0FBSztvQkFDaEIsWUFBWSxFQUFFLElBQUk7aUJBQ25CLENBQUMsQ0FBQztnQkFDSCxTQUFTLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO29CQUNuRSxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMvQixTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3BCLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3hCLE1BQU07U0FDVDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7OEdBM0NVLGNBQWM7a0hBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBNZXNzYWdlT3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzL21lc3NhZ2Utb3B0aW9ucyc7XG5pbXBvcnQgeyBNZXNzYWdlQ29udGVudCB9IGZyb20gJy4vbW9kZWxzL21lc3NhZ2UtY29udGVudCc7XG5pbXBvcnQgeyBNZXNzYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vaW8vbWVzc2FnZS1jb250ZW50L21lc3NhZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVzc2FnZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vaW8vbWVzc2FnZS1kaWFsb2cvbWVzc2FnZS1kaWFsb2cuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVNlcnZpY2Uge1xuICBlbGVtZW50OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xuICApIHsgfVxuXG4gIHNob3cobWVzc2FnZTogc3RyaW5nIHwgTWVzc2FnZUNvbnRlbnQsIG9wdGlvbnM/OiBNZXNzYWdlT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlbGVjdGlvblNvdXJjZTogUmVwbGF5U3ViamVjdDxzdHJpbmc+ID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xuICAgIGxldCBzZWxlY3Rpb246IE9ic2VydmFibGU8c3RyaW5nPiA9IHNlbGVjdGlvblNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgICBjb25zdCBkZWZhdWx0czogTWVzc2FnZU9wdGlvbnMgPSB7XG4gICAgICB0eXBlOiAnbm90aWZpY2F0aW9uJyxcbiAgICAgIGR1cmF0aW9uOiAyMDAwLFxuICAgICAgYWN0aW9uc1Zpc2libGU6IHRydWVcbiAgICB9O1xuICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKGRlZmF1bHRzLCBvcHRpb25zKTtcbiAgICBjb25zdCBkYXRhID0geyBtZXNzYWdlOiB0eXBlb2YgbWVzc2FnZSA9PT0gJ3N0cmluZycgPyB7IGNvbnRlbnQ6IG1lc3NhZ2UsIHR5cGU6ICd0ZXh0JyB9IDogbWVzc2FnZSwgb3B0aW9ucyB9O1xuICAgIHN3aXRjaCAob3B0aW9ucy50eXBlKSB7XG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSAnbm90aWZpY2F0aW9uJzpcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuRnJvbUNvbXBvbmVudChNZXNzYWdlQ29udGVudENvbXBvbmVudCwge1xuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydmdC1tZXNzYWdlJywgJ2Z0LW1lc3NhZ2UtLW5vdGlmaWNhdGlvbiddLFxuICAgICAgICAgIGR1cmF0aW9uOiBvcHRpb25zLmR1cmF0aW9uIHx8IDIwMDAsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21vZGFsJzpcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihNZXNzYWdlRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgd2lkdGg6IG9wdGlvbnMud2lkdGggfHwgJzM1MHB4JyxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnZnQtbWVzc2FnZScsICdmdC1tZXNzYWdlLS1tb2RhbCddLFxuICAgICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuYmVmb3JlU2VsZWN0LnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIHNlbGVjdGlvblNvdXJjZS5uZXh0KHJlc3BvbnNlKTtcbiAgICAgICAgICBkaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc25hY2tCYXIuZGlzbWlzcygpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9tb2RlbHMvYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFjdGlvbiB7XG4gICAgY2hpbGRyZW4/OiBBY3Rpb25bXTtcbiAgICBjbGFzcz86IHN0cmluZztcbiAgICBjbGljaz86IChldmVudD86IEV2ZW50KSA9PiB2b2lkO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBpY29uQ29sbGVjdGlvbj86IHN0cmluZztcbiAgICBpY29uTmFtZT86IHN0cmluZztcbiAgICBpZD86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgdHlwZT86IHN0cmluZztcbiAgICBtZXRhZGF0YT86IGFueTtcbiAgICB2YWx1ZT86IGFueTtcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbW9kZWxzL2ljb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSWNvbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNvbGxlY3Rpb24/OiBzdHJpbmc7XG4gICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgc2l6ZT86IG51bWJlcjtcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9tb2RlbHMvbWVzc2FnZS1jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VDb250ZW50IHtcbiAgICBjb250ZW50OiBzdHJpbmc7XG4gICAgdHlwZTogJ3RleHQnIHwgJ2h0bWwnO1xufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9tb2RlbHMvbWVzc2FnZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiLi9hY3Rpb25cIjtcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi9pY29uXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZU9wdGlvbnMge1xuICAgIHR5cGU/OiAnbW9kYWwnIHwgJ25vdGlmaWNhdGlvbic7XG4gICAgYWN0aW9ucz86IEFjdGlvbltdO1xuICAgIGFjdGlvbnNWaXNpYmxlPzogYm9vbGVhbjtcbiAgICBjbGFzcz86IHN0cmluZztcbiAgICBkdXJhdGlvbj86IG51bWJlcjtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICB0aXRsZUljb24/OiBJY29uO1xuICAgIGljb24/OiBJY29uO1xuICAgIHdpZHRoPzogc3RyaW5nO1xufSJdfQ==
@@ -8,4 +8,5 @@ export * from './lib/io/progress/progress.component';
8
8
  export * from './lib/io/rating/rating.component';
9
9
  export * from './lib/io/timeline/timeline.component';
10
10
  export * from './lib/observe-intersecting.directive';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdWlcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pby9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pby9pY29uL2ljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lvL2ltYWdlL2ltYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pby9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW8vcmF0aW5nL3JhdGluZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW8vdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29ic2VydmUtaW50ZXJzZWN0aW5nLmRpcmVjdGl2ZSc7XG4iXX0=
11
+ export * from './lib/message.service';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB1aVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2lvL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lvL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW8vaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lvL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pby9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pby90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JzZXJ2ZS1pbnRlcnNlY3RpbmcuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2Uuc2VydmljZSc7XG4iXX0=
@@ -1,8 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, HostBinding, Inject, EventEmitter, PLATFORM_ID, Directive } from '@angular/core';
2
+ import { Component, Input, HostBinding, Inject, EventEmitter, PLATFORM_ID, Directive, Output, Injectable } from '@angular/core';
3
3
  import * as i1$1 from '@angular/common';
4
4
  import { CommonModule, isPlatformBrowser } from '@angular/common';
5
5
  import * as i1 from '@factor_ec/utils';
6
+ import { ReplaySubject } from 'rxjs';
7
+ import * as i1$2 from '@angular/material/snack-bar';
8
+ import { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
9
+ import * as i2$1 from '@angular/material/dialog';
10
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
11
+ import * as i2 from '@angular/material/button';
12
+ import { MatButtonModule } from '@angular/material/button';
6
13
 
7
14
  class AvatarComponent {
8
15
  set src(value) {
@@ -262,11 +269,11 @@ class ProgressComponent {
262
269
  ].join(' ');
263
270
  }
264
271
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
265
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: ProgressComponent, isStandalone: true, selector: "lib-progress", inputs: { class: "class", color: "color", mode: "mode", overlay: "overlay", size: "size", value: "value" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
272
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: ProgressComponent, isStandalone: true, selector: "ft-progress", inputs: { class: "class", color: "color", mode: "mode", overlay: "overlay", size: "size", value: "value" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
266
273
  }
267
274
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ProgressComponent, decorators: [{
268
275
  type: Component,
269
- args: [{ selector: 'lib-progress', standalone: true, imports: [CommonModule], template: "<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>" }]
276
+ args: [{ selector: 'ft-progress', standalone: true, imports: [CommonModule], template: "<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>" }]
270
277
  }], ctorParameters: function () { return []; }, propDecorators: { class: [{
271
278
  type: Input
272
279
  }], color: [{
@@ -330,11 +337,11 @@ class RatingComponent {
330
337
  this.value = value;
331
338
  }
332
339
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
333
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: RatingComponent, isStandalone: true, selector: "lib-rating", inputs: { readOnly: "readOnly", value: "value" }, ngImport: i0, template: "<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
340
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: RatingComponent, isStandalone: true, selector: "ft-rating", inputs: { readOnly: "readOnly", value: "value" }, ngImport: i0, template: "<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
334
341
  }
335
342
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RatingComponent, decorators: [{
336
343
  type: Component,
337
- args: [{ selector: 'lib-rating', standalone: true, imports: [CommonModule], template: "<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>" }]
344
+ args: [{ selector: 'ft-rating', standalone: true, imports: [CommonModule], template: "<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>" }]
338
345
  }], ctorParameters: function () { return []; }, propDecorators: { readOnly: [{
339
346
  type: Input
340
347
  }], value: [{
@@ -422,11 +429,11 @@ class TimelineComponent {
422
429
  });
423
430
  }
424
431
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
425
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: TimelineComponent, isStandalone: true, selector: "lib-timeline", inputs: { data: "data", class: "class" }, host: { properties: { "style.--current-date": "this.currentDate", "class": "this.hostClasses" } }, ngImport: i0, template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }] }); }
432
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: TimelineComponent, isStandalone: true, selector: "ft-timeline", inputs: { data: "data", class: "class" }, host: { properties: { "style.--current-date": "this.currentDate", "class": "this.hostClasses" } }, ngImport: i0, template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }] }); }
426
433
  }
427
434
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TimelineComponent, decorators: [{
428
435
  type: Component,
429
- args: [{ selector: 'lib-timeline', standalone: true, imports: [CommonModule], template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>" }]
436
+ args: [{ selector: 'ft-timeline', standalone: true, imports: [CommonModule], template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>" }]
430
437
  }], ctorParameters: function () { return []; }, propDecorators: { data: [{
431
438
  type: Input
432
439
  }], currentDate: [{
@@ -476,6 +483,99 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
476
483
  args: [PLATFORM_ID]
477
484
  }] }]; } });
478
485
 
486
+ class MessageContentComponent {
487
+ constructor(data) {
488
+ this.data = data;
489
+ }
490
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageContentComponent, deps: [{ token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
491
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: MessageContentComponent, isStandalone: true, selector: "ft-message-content", ngImport: i0, template: "<ng-container [ngSwitch]=\"data.message?.type\">\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"data.message?.content\"></div>\n <ng-container *ngSwitchDefault>{{ data.message?.content }}</ng-container>\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }] }); }
492
+ }
493
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageContentComponent, decorators: [{
494
+ type: Component,
495
+ args: [{ selector: 'ft-message-content', standalone: true, imports: [CommonModule], template: "<ng-container [ngSwitch]=\"data.message?.type\">\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"data.message?.content\"></div>\n <ng-container *ngSwitchDefault>{{ data.message?.content }}</ng-container>\n</ng-container>" }]
496
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
497
+ type: Inject,
498
+ args: [MAT_SNACK_BAR_DATA]
499
+ }] }]; } });
500
+
501
+ class MessageDialogComponent {
502
+ constructor(data) {
503
+ this.data = data;
504
+ this.beforeSelect = new EventEmitter();
505
+ }
506
+ ngOnInit() {
507
+ }
508
+ select(value) {
509
+ this.beforeSelect.emit(value);
510
+ }
511
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageDialogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
512
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: MessageDialogComponent, isStandalone: true, selector: "ft-message-dialog", outputs: { beforeSelect: "beforeSelect" }, ngImport: i0, template: "<h1 mat-dialog-title class=\"ft-message__title\" *ngIf=\"data.options?.title\">\n <ft-icon *ngIf=\"data.options?.titleIcon\" [name]=\"data.options?.titleIcon?.name\"\n [collection]=\"data.options?.titleIcon?.collection\" [ngClass]=\"data.options?.titleIcon?.class\"></ft-icon>\n <div>{{ data.options?.title }}</div>\n</h1>\n<div mat-dialog-content class=\"ft-message__content\" [ngClass]=\"data.options?.class\">\n <ft-icon *ngIf=\"data.options?.icon\" [name]=\"data.options?.icon?.name\" [collection]=\"data.options?.icon?.collection\"\n [ngClass]=\"data.options?.icon?.class\"></ft-icon>\n <ng-container [ngSwitch]=\"data.message?.type\">\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"data.message?.content\"></div>\n <ng-container *ngSwitchDefault>{{ data.message?.content }}</ng-container>\n </ng-container>\n</div>\n<div mat-dialog-actions class=\"ft-message__actions\" *ngIf=\"data.options.actionsVisible\">\n <ng-container *ngIf=\"data.options?.actions?.length > 0; else acceptTemplate\">\n <ng-container *ngFor=\"let action of data.options?.actions; let i = index\">\n <ng-container [ngSwitch]=\"action.type\">\n <button type=\"button\" *ngSwitchCase=\"'raised'\" mat-raised-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'flat'\" mat-flat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'stroked'\" mat-stroked-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchDefault mat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\">{{ action.label }}</button>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n<ng-template #acceptTemplate>\n <button type=\"button\" mat-stroked-button color=\"primary\" autofocus (click)=\"select('-1')\" i18n>Accept</button>\n</ng-template>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "src", "class"] }] }); }
513
+ }
514
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageDialogComponent, decorators: [{
515
+ type: Component,
516
+ args: [{ selector: 'ft-message-dialog', standalone: true, imports: [
517
+ CommonModule,
518
+ MatButtonModule,
519
+ IconComponent
520
+ ], template: "<h1 mat-dialog-title class=\"ft-message__title\" *ngIf=\"data.options?.title\">\n <ft-icon *ngIf=\"data.options?.titleIcon\" [name]=\"data.options?.titleIcon?.name\"\n [collection]=\"data.options?.titleIcon?.collection\" [ngClass]=\"data.options?.titleIcon?.class\"></ft-icon>\n <div>{{ data.options?.title }}</div>\n</h1>\n<div mat-dialog-content class=\"ft-message__content\" [ngClass]=\"data.options?.class\">\n <ft-icon *ngIf=\"data.options?.icon\" [name]=\"data.options?.icon?.name\" [collection]=\"data.options?.icon?.collection\"\n [ngClass]=\"data.options?.icon?.class\"></ft-icon>\n <ng-container [ngSwitch]=\"data.message?.type\">\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"data.message?.content\"></div>\n <ng-container *ngSwitchDefault>{{ data.message?.content }}</ng-container>\n </ng-container>\n</div>\n<div mat-dialog-actions class=\"ft-message__actions\" *ngIf=\"data.options.actionsVisible\">\n <ng-container *ngIf=\"data.options?.actions?.length > 0; else acceptTemplate\">\n <ng-container *ngFor=\"let action of data.options?.actions; let i = index\">\n <ng-container [ngSwitch]=\"action.type\">\n <button type=\"button\" *ngSwitchCase=\"'raised'\" mat-raised-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'flat'\" mat-flat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'stroked'\" mat-stroked-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchDefault mat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\">{{ action.label }}</button>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n<ng-template #acceptTemplate>\n <button type=\"button\" mat-stroked-button color=\"primary\" autofocus (click)=\"select('-1')\" i18n>Accept</button>\n</ng-template>" }]
521
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
522
+ type: Inject,
523
+ args: [MAT_DIALOG_DATA]
524
+ }] }]; }, propDecorators: { beforeSelect: [{
525
+ type: Output
526
+ }] } });
527
+
528
+ class MessageService {
529
+ constructor(snackBar, dialog) {
530
+ this.snackBar = snackBar;
531
+ this.dialog = dialog;
532
+ }
533
+ show(message, options) {
534
+ let selectionSource = new ReplaySubject(undefined);
535
+ let selection = selectionSource.asObservable();
536
+ const defaults = {
537
+ type: 'notification',
538
+ duration: 2000,
539
+ actionsVisible: true
540
+ };
541
+ options = Object.assign(defaults, options);
542
+ const data = { message: typeof message === 'string' ? { content: message, type: 'text' } : message, options };
543
+ switch (options.type) {
544
+ default:
545
+ case 'notification':
546
+ this.snackBar.openFromComponent(MessageContentComponent, {
547
+ data,
548
+ panelClass: ['ft-message', 'ft-message--notification'],
549
+ duration: options.duration || 2000,
550
+ });
551
+ break;
552
+ case 'modal':
553
+ const dialogRef = this.dialog.open(MessageDialogComponent, {
554
+ width: options.width || '350px',
555
+ data,
556
+ panelClass: ['ft-message', 'ft-message--modal'],
557
+ autoFocus: false,
558
+ disableClose: true
559
+ });
560
+ dialogRef.componentInstance.beforeSelect.subscribe((response) => {
561
+ selectionSource.next(response);
562
+ dialogRef.close();
563
+ });
564
+ this.snackBar.dismiss();
565
+ break;
566
+ }
567
+ return selection;
568
+ }
569
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageService, deps: [{ token: i1$2.MatSnackBar }, { token: i2$1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
570
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageService, providedIn: 'root' }); }
571
+ }
572
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: MessageService, decorators: [{
573
+ type: Injectable,
574
+ args: [{
575
+ providedIn: 'root'
576
+ }]
577
+ }], ctorParameters: function () { return [{ type: i1$2.MatSnackBar }, { type: i2$1.MatDialog }]; } });
578
+
479
579
  /*
480
580
  * Public API Surface of ui
481
581
  */
@@ -484,5 +584,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
484
584
  * Generated bundle index. Do not edit.
485
585
  */
486
586
 
487
- export { AvatarComponent, IconComponent, ImageComponent, ObserveIntersectingDirective, ProgressComponent, RatingComponent, TimelineComponent };
587
+ export { AvatarComponent, IconComponent, ImageComponent, MessageService, ObserveIntersectingDirective, ProgressComponent, RatingComponent, TimelineComponent };
488
588
  //# sourceMappingURL=factor_ec-ui.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"factor_ec-ui.mjs","sources":["../../../projects/ui/src/lib/io/avatar/avatar.component.ts","../../../projects/ui/src/lib/io/avatar/avatar.component.html","../../../projects/ui/src/lib/io/icon/icon.component.ts","../../../projects/ui/src/lib/io/icon/icon.component.html","../../../projects/ui/src/lib/io/image/image.component.ts","../../../projects/ui/src/lib/io/image/image.component.html","../../../projects/ui/src/lib/io/progress/progress.component.ts","../../../projects/ui/src/lib/io/progress/progress.component.html","../../../projects/ui/src/lib/io/rating/rating.component.ts","../../../projects/ui/src/lib/io/rating/rating.component.html","../../../projects/ui/src/lib/io/timeline/timeline.component.ts","../../../projects/ui/src/lib/io/timeline/timeline.component.html","../../../projects/ui/src/lib/observe-intersecting.directive.ts","../../../projects/ui/src/public-api.ts","../../../projects/ui/src/factor_ec-ui.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ColorService } from '@factor_ec/utils';\n\n@Component({\n selector: 'ft-avatar',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './avatar.component.html'\n})\nexport class AvatarComponent {\n _label!: string;\n _src!: string;\n @Input() color!: string;\n initials!: string;\n loaded!: boolean;\n @Input() set src(value: string | undefined) {\n if (value && value.trim() != '') {\n this._src = value;\n let image = new Image();\n image.src = value;\n image.onload = () => {\n if (\"decode\" in image) {\n image.decode().then(() => {\n this.loaded = true;\n });\n } else {\n console.error('Image.decode not available.');\n }\n };\n }\n }\n @Input() set label(value: string) {\n this._label = value;\n this.initials = this.getInitials(value);\n }\n @HostBinding('style.background-color') get backgroundColor(): string {\n return this.color || this.colorService.hex(this._label);\n }\n @HostBinding('style.background-image') get backgroundImage(): string {\n return this._src ? `url(${this._src})` : '';\n }\n @Input() class: string = '';\n @HostBinding('class') get hostClasses(): string {\n return [\n 'ft-avatar',\n this.class\n ].join(' ');\n }\n\n constructor(\n private colorService: ColorService\n ) { }\n\n ngOnInit() {\n\n }\n getInitials(value: string): string {\n let allInitials: string[] = value.match(/\\b\\w/g) || [];\n let initials: string = ((allInitials.shift() || '') + (allInitials.pop() || '')).toUpperCase();\n return initials;\n }\n}\n","<div *ngIf=\"!loaded\">{{ initials }}</div>","import { Component, HostBinding, Inject, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UiConfiguration } from '../../models/ui-configuration';\n\n@Component({\n selector: 'ft-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './icon.component.html'\n})\nexport class IconComponent {\n _collection!: string;\n _name!: string;\n _mode!: 'inline' | 'external';\n _path!: string;\n @Input() set collection(collection: string) {\n this._collection = collection;\n this.update();\n }\n @Input() set mode(mode: 'inline' | 'external') {\n this._mode = mode;\n this.update();\n }\n @Input() set name(name: string) {\n this._name = name;\n this.update();\n }\n @Input() set path(path: string) {\n this._path = path;\n this.update();\n }\n @Input() src!: string;\n url!: string;\n\n @Input() class: string = '';\n @HostBinding('class') get hostClasses(): string {\n return [\n 'ft-icon',\n this.class\n ].join(' ');\n }\n\n constructor(\n @Inject('FactorUiConfiguration') private configuration: UiConfiguration\n ) { }\n\n ngOnInit() {\n this.update();\n }\n private update() {\n // Set the default collection if the mode is external\n if (!this._collection) {\n if (this.configuration.icon && this.configuration.icon.collection) {\n this._collection = this.configuration.icon.collection;\n } else if (this._mode === 'external') {\n this._collection = 'icons';\n }\n }\n if (!this._mode) {\n if (this.configuration.icon && this.configuration.icon.mode) {\n this._mode = this.configuration.icon.mode;\n } else {\n this._mode = 'external';\n }\n }\n if (this._mode === 'external') {\n // If the icon mode is external\n if (!this._path) {\n if (this.configuration.icon && this.configuration.icon.path) {\n this._path = this.configuration.icon.path;\n } else {\n this._path = 'assets';\n }\n }\n this.url = `${this._path}/${this._collection}.svg#${this._name}`;\n } else {\n // If the icon mode is inline\n const name = this._collection && this._collection !== 'unset' ? `${this._collection}--${this._name}` : this._name;\n this.url = `#${name}`;\n }\n }\n}\n","<svg *ngIf=\"!src; else imageTemplate\">\n <use attr.xlink:href=\"{{ url }}\" attr.href=\"{{ url }}\" />\n</svg>\n<ng-template #imageTemplate>\n <img [src]=\"src\" />\n</ng-template>","import { Component, ElementRef, HostBinding, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n selector: 'ft-image',\n standalone: true,\n imports: [\n CommonModule,\n IconComponent\n ],\n templateUrl: './image.component.html'\n})\nexport class ImageComponent {\n @Input() class: string = '';\n @HostBinding('class.ft-image--error') error!: boolean;\n @HostBinding('class.ft-image--loading') loading: boolean = false;\n @Input() src!: string;\n shown: boolean = false;\n\n constructor(\n private element: ElementRef\n ) { }\n\n ngOnInit() {\n if (\"IntersectionObserver\" in window) {\n let elementObserver = new IntersectionObserver((entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n let image = new Image();\n image.src = this.src;\n setTimeout(() => {\n if (!this.shown && !this.error) {\n this.loading = true;\n }\n }, 100);\n image.onerror = () => {\n this.error = true;\n this.loading = false;\n };\n image.onload = () => {\n if (\"decode\" in image) {\n image.decode().then(() => {\n this.loading = false;\n this.shown = true;\n });\n } else {\n this.loading = false;\n this.shown = true;\n }\n };\n elementObserver.unobserve(this.element.nativeElement);\n }\n });\n }, {\n rootMargin: \"0px 0px 200px 0px\"\n });\n elementObserver.observe(this.element.nativeElement);\n } else {\n console.error('IntersectionObserver not available.');\n this.loading = false;\n this.shown = true;\n }\n }\n @HostBinding('class') get hostClasses(): string {\n return [\n 'ft-image',\n this.class\n ].join(' ');\n }\n}\n","<img *ngIf=\"shown\" [src]=\"src\" />\n<ft-icon name=\"warning\" size=\"2\" *ngIf=\"error\"></ft-icon>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'lib-progress',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './progress.component.html'\n})\nexport class ProgressComponent {\n @Input() class: string = '';\n @Input() color!: string;\n @Input() mode: 'determinate' | 'indeterminate' = 'indeterminate';\n @Input() overlay: boolean = false;\n @Input() size!: number;\n @Input() value!: number;\n\n constructor() { }\n\n ngOnInit() {\n this.value = 0;\n }\n @HostBinding('class')\n get hostClasses(): string {\n return [\n 'ft-progress',\n this.overlay ? 'ft-progress--overlay' : '',\n this.class\n ].join(' ');\n }\n}\n","<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'lib-rating',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './rating.component.html'\n})\nexport class RatingComponent {\n disabled: boolean = false;\n hoverValue!: number;\n propagateChange = (_: any) => { };\n @Input() readOnly: boolean = false;\n stars: any[] = [\n { value: 1 },\n { value: 2 },\n { value: 3 },\n { value: 4 },\n { value: 5 }\n ];\n _value!: number;\n\n constructor() { }\n\n ngOnInit() {\n }\n get value() {\n return this._value;\n }\n @Input() set value(value: any) {\n this._value = value;\n this.propagateChange(this._value);\n }\n registerOnChange(fn: (_: any) => void) {\n this.propagateChange = fn;\n }\n registerOnTouched(fn: (_: any) => void) {\n //this.propagateChange = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n setRate(value: number, isHover?: boolean) {\n if (isHover) {\n this.hoverValue = value;\n } else {\n this.value = value;\n }\n }\n updateValue(event: any) {\n this.value = event.target.value;\n }\n writeValue(value: string) {\n this.value = value;\n }\n}\n","<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>","import { Component, HostBinding, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Task } from '../../models/task';\n\n@Component({\n selector: 'lib-timeline',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './timeline.component.html'\n})\nexport class TimelineComponent {\n startDate: Date | string = new Date();\n @Input() data: Task[] = [];\n @HostBinding('style.--current-date')\n currentDate!: number;\n dataParsed: any = {\n months: [],\n days: [],\n weekends: []\n };\n\n @Input() class: string = '';\n @HostBinding('class') get hostClasses(): string {\n return [\n 'ft-timeline',\n this.class\n ].join(' ');\n };\n\n constructor() { }\n\n ngOnInit(): void {\n this.addMonth(this.calcStartDate());\n }\n addMonth(date: Date): void {\n const month = this.getMonth(date.getMonth(), date.getFullYear());\n const currentDays = this.dataParsed.days.length;\n this.dataParsed.months = [...this.dataParsed.months, { date: month.days[0], daysInMonth: month.days.length }];\n this.dataParsed.days = [...this.dataParsed.days, ...month.days];\n this.dataParsed.weekends = [...this.dataParsed.weekends, ...month.weekends];\n if (!this.currentDate && month.currentDate) {\n this.currentDate = currentDays + month.currentDate;\n }\n this.dataParsed.days.some((day: Date, index: number) => {\n if ([0, 6].includes(day.getDay())) {\n this.dataParsed.weekendStart = index;\n return true;\n }\n return false;\n });\n this.parseTasks();\n }\n calcStartDate(): Date {\n return new Date();\n }\n getMonth(month: number, year: number): any {\n const days = [];\n const weekends = [];\n let currentDate: number | null = null;\n let today = new Date();\n const date = new Date(year, month + 1, 0);\n for (let i = 1; i <= date.getDate(); i++) {\n const idate = new Date(year, month, i);\n if ([0, 6].includes(idate.getDay())) {\n if (idate.getDay() === 6) {\n weekends.push([idate]);\n } else {\n weekends[weekends.length - 1].push(idate);\n }\n }\n if (idate.getTime() === new Date(today.getFullYear(), today.getMonth(), today.getDate()).getTime()) {\n currentDate = i - 1;\n }\n days.push(idate);\n }\n const data: any = { days, weekends };\n if (currentDate) {\n data.currentDate = currentDate;\n }\n return data;\n }\n parseTasks(): void {\n let tasks = this.data.filter(task => task.endAt)/*.sort((a, b) => a.)*/;\n this.dataParsed.tasks = tasks.map((task) => {\n return {\n label: task.label,\n start: 10,\n type: task.type,\n size: 1\n };\n });\n }\n}\n","<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, Inject, Input, Output, PLATFORM_ID } from '@angular/core';\n\n@Directive({\n selector: 'ftObserveIntersecting',\n inputs: [{ name: 'options', alias: 'ftObserveIntersectingOptions' }],\n outputs: ['ftObserveIntersecting'],\n standalone: true\n})\nexport class ObserveIntersectingDirective {\n options!: { root?: any, rootMargin?: any, threshold?: any };\n ftObserveIntersecting: EventEmitter<boolean> = new EventEmitter();\n\n constructor(\n private element: ElementRef,\n @Inject(PLATFORM_ID) private platformId: Object\n ) { }\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (\"IntersectionObserver\" in window) {\n const elementObserver = new IntersectionObserver((entries, observer) => {\n entries.forEach((entry) => {\n this.ftObserveIntersecting.emit(entry.isIntersecting);\n });\n }, this.options);\n elementObserver.observe(this.element.nativeElement);\n } else {\n console.error('ftObserveIntersecting not available in this browser.');\n }\n }\n }\n}\n","/*\n * Public API Surface of ui\n */\n\nexport * from './lib/io/avatar/avatar.component';\nexport * from './lib/io/icon/icon.component';\nexport * from './lib/io/image/image.component';\nexport * from './lib/io/progress/progress.component';\nexport * from './lib/io/rating/rating.component';\nexport * from './lib/io/timeline/timeline.component';\nexport * from './lib/observe-intersecting.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1"],"mappings":"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"}
1
+ {"version":3,"file":"factor_ec-ui.mjs","sources":["../../../projects/ui/src/lib/io/avatar/avatar.component.ts","../../../projects/ui/src/lib/io/avatar/avatar.component.html","../../../projects/ui/src/lib/io/icon/icon.component.ts","../../../projects/ui/src/lib/io/icon/icon.component.html","../../../projects/ui/src/lib/io/image/image.component.ts","../../../projects/ui/src/lib/io/image/image.component.html","../../../projects/ui/src/lib/io/progress/progress.component.ts","../../../projects/ui/src/lib/io/progress/progress.component.html","../../../projects/ui/src/lib/io/rating/rating.component.ts","../../../projects/ui/src/lib/io/rating/rating.component.html","../../../projects/ui/src/lib/io/timeline/timeline.component.ts","../../../projects/ui/src/lib/io/timeline/timeline.component.html","../../../projects/ui/src/lib/observe-intersecting.directive.ts","../../../projects/ui/src/lib/io/message-content/message-content.component.ts","../../../projects/ui/src/lib/io/message-content/message-content.component.html","../../../projects/ui/src/lib/io/message-dialog/message-dialog.component.ts","../../../projects/ui/src/lib/io/message-dialog/message-dialog.component.html","../../../projects/ui/src/lib/message.service.ts","../../../projects/ui/src/public-api.ts","../../../projects/ui/src/factor_ec-ui.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ColorService } from '@factor_ec/utils';\n\n@Component({\n selector: 'ft-avatar',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './avatar.component.html'\n})\nexport class AvatarComponent {\n _label!: string;\n _src!: string;\n @Input() color!: string;\n initials!: string;\n loaded!: boolean;\n @Input() set src(value: string | undefined) {\n if (value && value.trim() != '') {\n this._src = value;\n let image = new Image();\n image.src = value;\n image.onload = () => {\n if (\"decode\" in image) {\n image.decode().then(() => {\n this.loaded = true;\n });\n } else {\n console.error('Image.decode not available.');\n }\n };\n }\n }\n @Input() set label(value: string) {\n this._label = value;\n this.initials = this.getInitials(value);\n }\n @HostBinding('style.background-color') get backgroundColor(): string {\n return this.color || this.colorService.hex(this._label);\n }\n @HostBinding('style.background-image') get backgroundImage(): string {\n return this._src ? `url(${this._src})` : '';\n }\n @Input() class: string = '';\n @HostBinding('class') get hostClasses(): string {\n return [\n 'ft-avatar',\n this.class\n ].join(' ');\n }\n\n constructor(\n private colorService: ColorService\n ) { }\n\n ngOnInit() {\n\n }\n getInitials(value: string): string {\n let allInitials: string[] = value.match(/\\b\\w/g) || [];\n let initials: string = ((allInitials.shift() || '') + (allInitials.pop() || '')).toUpperCase();\n return initials;\n }\n}\n","<div *ngIf=\"!loaded\">{{ initials }}</div>","import { Component, HostBinding, Inject, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UiConfiguration } from '../../models/ui-configuration';\n\n@Component({\n selector: 'ft-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './icon.component.html'\n})\nexport class IconComponent {\n _collection!: string;\n _name!: string;\n _mode!: 'inline' | 'external';\n _path!: string;\n @Input() set collection(collection: string) {\n this._collection = collection;\n this.update();\n }\n @Input() set mode(mode: 'inline' | 'external') {\n this._mode = mode;\n this.update();\n }\n @Input() set name(name: string) {\n this._name = name;\n this.update();\n }\n @Input() set path(path: string) {\n this._path = path;\n this.update();\n }\n @Input() src!: string;\n url!: string;\n\n @Input() class: string = '';\n @HostBinding('class') get hostClasses(): string {\n return [\n 'ft-icon',\n this.class\n ].join(' ');\n }\n\n constructor(\n @Inject('FactorUiConfiguration') private configuration: UiConfiguration\n ) { }\n\n ngOnInit() {\n this.update();\n }\n private update() {\n // Set the default collection if the mode is external\n if (!this._collection) {\n if (this.configuration.icon && this.configuration.icon.collection) {\n this._collection = this.configuration.icon.collection;\n } else if (this._mode === 'external') {\n this._collection = 'icons';\n }\n }\n if (!this._mode) {\n if (this.configuration.icon && this.configuration.icon.mode) {\n this._mode = this.configuration.icon.mode;\n } else {\n this._mode = 'external';\n }\n }\n if (this._mode === 'external') {\n // If the icon mode is external\n if (!this._path) {\n if (this.configuration.icon && this.configuration.icon.path) {\n this._path = this.configuration.icon.path;\n } else {\n this._path = 'assets';\n }\n }\n this.url = `${this._path}/${this._collection}.svg#${this._name}`;\n } else {\n // If the icon mode is inline\n const name = this._collection && this._collection !== 'unset' ? `${this._collection}--${this._name}` : this._name;\n this.url = `#${name}`;\n }\n }\n}\n","<svg *ngIf=\"!src; else imageTemplate\">\n <use attr.xlink:href=\"{{ url }}\" attr.href=\"{{ url }}\" />\n</svg>\n<ng-template #imageTemplate>\n <img [src]=\"src\" />\n</ng-template>","import { Component, ElementRef, HostBinding, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n selector: 'ft-image',\n standalone: true,\n imports: [\n CommonModule,\n IconComponent\n ],\n templateUrl: './image.component.html'\n})\nexport class ImageComponent {\n @Input() class: string = '';\n @HostBinding('class.ft-image--error') error!: boolean;\n @HostBinding('class.ft-image--loading') loading: boolean = false;\n @Input() src!: string;\n shown: boolean = false;\n\n constructor(\n private element: ElementRef\n ) { }\n\n ngOnInit() {\n if (\"IntersectionObserver\" in window) {\n let elementObserver = new IntersectionObserver((entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n let image = new Image();\n image.src = this.src;\n setTimeout(() => {\n if (!this.shown && !this.error) {\n this.loading = true;\n }\n }, 100);\n image.onerror = () => {\n this.error = true;\n this.loading = false;\n };\n image.onload = () => {\n if (\"decode\" in image) {\n image.decode().then(() => {\n this.loading = false;\n this.shown = true;\n });\n } else {\n this.loading = false;\n this.shown = true;\n }\n };\n elementObserver.unobserve(this.element.nativeElement);\n }\n });\n }, {\n rootMargin: \"0px 0px 200px 0px\"\n });\n elementObserver.observe(this.element.nativeElement);\n } else {\n console.error('IntersectionObserver not available.');\n this.loading = false;\n this.shown = true;\n }\n }\n @HostBinding('class') get hostClasses(): string {\n return [\n 'ft-image',\n this.class\n ].join(' ');\n }\n}\n","<img *ngIf=\"shown\" [src]=\"src\" />\n<ft-icon name=\"warning\" size=\"2\" *ngIf=\"error\"></ft-icon>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ft-progress',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './progress.component.html'\n})\nexport class ProgressComponent {\n @Input() class: string = '';\n @Input() color!: string;\n @Input() mode: 'determinate' | 'indeterminate' = 'indeterminate';\n @Input() overlay: boolean = false;\n @Input() size!: number;\n @Input() value!: number;\n\n constructor() { }\n\n ngOnInit() {\n this.value = 0;\n }\n @HostBinding('class')\n get hostClasses(): string {\n return [\n 'ft-progress',\n this.overlay ? 'ft-progress--overlay' : '',\n this.class\n ].join(' ');\n }\n}\n","<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ft-rating',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './rating.component.html'\n})\nexport class RatingComponent {\n disabled: boolean = false;\n hoverValue!: number;\n propagateChange = (_: any) => { };\n @Input() readOnly: boolean = false;\n stars: any[] = [\n { value: 1 },\n { value: 2 },\n { value: 3 },\n { value: 4 },\n { value: 5 }\n ];\n _value!: number;\n\n constructor() { }\n\n ngOnInit() {\n }\n get value() {\n return this._value;\n }\n @Input() set value(value: any) {\n this._value = value;\n this.propagateChange(this._value);\n }\n registerOnChange(fn: (_: any) => void) {\n this.propagateChange = fn;\n }\n registerOnTouched(fn: (_: any) => void) {\n //this.propagateChange = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n setRate(value: number, isHover?: boolean) {\n if (isHover) {\n this.hoverValue = value;\n } else {\n this.value = value;\n }\n }\n updateValue(event: any) {\n this.value = event.target.value;\n }\n writeValue(value: string) {\n this.value = value;\n }\n}\n","<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>","import { Component, HostBinding, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Task } from '../../models/task';\n\n@Component({\n selector: 'ft-timeline',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './timeline.component.html'\n})\nexport class TimelineComponent {\n startDate: Date | string = new Date();\n @Input() data: Task[] = [];\n @HostBinding('style.--current-date')\n currentDate!: number;\n dataParsed: any = {\n months: [],\n days: [],\n weekends: []\n };\n\n @Input() class: string = '';\n @HostBinding('class') get hostClasses(): string {\n return [\n 'ft-timeline',\n this.class\n ].join(' ');\n };\n\n constructor() { }\n\n ngOnInit(): void {\n this.addMonth(this.calcStartDate());\n }\n addMonth(date: Date): void {\n const month = this.getMonth(date.getMonth(), date.getFullYear());\n const currentDays = this.dataParsed.days.length;\n this.dataParsed.months = [...this.dataParsed.months, { date: month.days[0], daysInMonth: month.days.length }];\n this.dataParsed.days = [...this.dataParsed.days, ...month.days];\n this.dataParsed.weekends = [...this.dataParsed.weekends, ...month.weekends];\n if (!this.currentDate && month.currentDate) {\n this.currentDate = currentDays + month.currentDate;\n }\n this.dataParsed.days.some((day: Date, index: number) => {\n if ([0, 6].includes(day.getDay())) {\n this.dataParsed.weekendStart = index;\n return true;\n }\n return false;\n });\n this.parseTasks();\n }\n calcStartDate(): Date {\n return new Date();\n }\n getMonth(month: number, year: number): any {\n const days = [];\n const weekends = [];\n let currentDate: number | null = null;\n let today = new Date();\n const date = new Date(year, month + 1, 0);\n for (let i = 1; i <= date.getDate(); i++) {\n const idate = new Date(year, month, i);\n if ([0, 6].includes(idate.getDay())) {\n if (idate.getDay() === 6) {\n weekends.push([idate]);\n } else {\n weekends[weekends.length - 1].push(idate);\n }\n }\n if (idate.getTime() === new Date(today.getFullYear(), today.getMonth(), today.getDate()).getTime()) {\n currentDate = i - 1;\n }\n days.push(idate);\n }\n const data: any = { days, weekends };\n if (currentDate) {\n data.currentDate = currentDate;\n }\n return data;\n }\n parseTasks(): void {\n let tasks = this.data.filter(task => task.endAt)/*.sort((a, b) => a.)*/;\n this.dataParsed.tasks = tasks.map((task) => {\n return {\n label: task.label,\n start: 10,\n type: task.type,\n size: 1\n };\n });\n }\n}\n","<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, Inject, Input, Output, PLATFORM_ID } from '@angular/core';\n\n@Directive({\n selector: 'ftObserveIntersecting',\n inputs: [{ name: 'options', alias: 'ftObserveIntersectingOptions' }],\n outputs: ['ftObserveIntersecting'],\n standalone: true\n})\nexport class ObserveIntersectingDirective {\n options!: { root?: any, rootMargin?: any, threshold?: any };\n ftObserveIntersecting: EventEmitter<boolean> = new EventEmitter();\n\n constructor(\n private element: ElementRef,\n @Inject(PLATFORM_ID) private platformId: Object\n ) { }\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (\"IntersectionObserver\" in window) {\n const elementObserver = new IntersectionObserver((entries, observer) => {\n entries.forEach((entry) => {\n this.ftObserveIntersecting.emit(entry.isIntersecting);\n });\n }, this.options);\n elementObserver.observe(this.element.nativeElement);\n } else {\n console.error('ftObserveIntersecting not available in this browser.');\n }\n }\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\n\n@Component({\n selector: 'ft-message-content',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './message-content.component.html'\n})\nexport class MessageContentComponent {\n constructor(\n @Inject(MAT_SNACK_BAR_DATA) public data: any\n ) { }\n}\n","<ng-container [ngSwitch]=\"data.message?.type\">\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"data.message?.content\"></div>\n <ng-container *ngSwitchDefault>{{ data.message?.content }}</ng-container>\n</ng-container>","import { Component, EventEmitter, Inject, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n selector: 'ft-message-dialog',\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n IconComponent\n ],\n templateUrl: './message-dialog.component.html'\n})\nexport class MessageDialogComponent {\n @Output() beforeSelect: EventEmitter<any> = new EventEmitter();\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any\n ) { }\n\n ngOnInit() {\n }\n select(value: string) {\n this.beforeSelect.emit(value);\n }\n}\n","<h1 mat-dialog-title class=\"ft-message__title\" *ngIf=\"data.options?.title\">\n <ft-icon *ngIf=\"data.options?.titleIcon\" [name]=\"data.options?.titleIcon?.name\"\n [collection]=\"data.options?.titleIcon?.collection\" [ngClass]=\"data.options?.titleIcon?.class\"></ft-icon>\n <div>{{ data.options?.title }}</div>\n</h1>\n<div mat-dialog-content class=\"ft-message__content\" [ngClass]=\"data.options?.class\">\n <ft-icon *ngIf=\"data.options?.icon\" [name]=\"data.options?.icon?.name\" [collection]=\"data.options?.icon?.collection\"\n [ngClass]=\"data.options?.icon?.class\"></ft-icon>\n <ng-container [ngSwitch]=\"data.message?.type\">\n <div *ngSwitchCase=\"'html'\" [innerHTML]=\"data.message?.content\"></div>\n <ng-container *ngSwitchDefault>{{ data.message?.content }}</ng-container>\n </ng-container>\n</div>\n<div mat-dialog-actions class=\"ft-message__actions\" *ngIf=\"data.options.actionsVisible\">\n <ng-container *ngIf=\"data.options?.actions?.length > 0; else acceptTemplate\">\n <ng-container *ngFor=\"let action of data.options?.actions; let i = index\">\n <ng-container [ngSwitch]=\"action.type\">\n <button type=\"button\" *ngSwitchCase=\"'raised'\" mat-raised-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'flat'\" mat-flat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchCase=\"'stroked'\" mat-stroked-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\" autofocus>{{ action.label }}</button>\n <button type=\"button\" *ngSwitchDefault mat-button [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\">{{ action.label }}</button>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n<ng-template #acceptTemplate>\n <button type=\"button\" mat-stroked-button color=\"primary\" autofocus (click)=\"select('-1')\" i18n>Accept</button>\n</ng-template>","import { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\n\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { MessageOptions } from './models/message-options';\nimport { MessageContent } from './models/message-content';\nimport { MessageContentComponent } from './io/message-content/message-content.component';\nimport { MessageDialogComponent } from './io/message-dialog/message-dialog.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageService {\n element: any;\n\n constructor(\n private snackBar: MatSnackBar,\n private dialog: MatDialog\n ) { }\n\n show(message: string | MessageContent, options?: MessageOptions): Observable<any> {\n let selectionSource: ReplaySubject<string> = new ReplaySubject<string>(undefined);\n let selection: Observable<string> = selectionSource.asObservable();\n const defaults: MessageOptions = {\n type: 'notification',\n duration: 2000,\n actionsVisible: true\n };\n options = Object.assign(defaults, options);\n const data = { message: typeof message === 'string' ? { content: message, type: 'text' } : message, options };\n switch (options.type) {\n default:\n case 'notification':\n this.snackBar.openFromComponent(MessageContentComponent, {\n data,\n panelClass: ['ft-message', 'ft-message--notification'],\n duration: options.duration || 2000,\n });\n break;\n case 'modal':\n const dialogRef = this.dialog.open(MessageDialogComponent, {\n width: options.width || '350px',\n data,\n panelClass: ['ft-message', 'ft-message--modal'],\n autoFocus: false,\n disableClose: true\n });\n dialogRef.componentInstance.beforeSelect.subscribe((response: any) => {\n selectionSource.next(response);\n dialogRef.close();\n });\n this.snackBar.dismiss();\n break;\n }\n return selection;\n }\n}\n","/*\n * Public API Surface of ui\n */\n\nexport * from './lib/io/avatar/avatar.component';\nexport * from './lib/io/icon/icon.component';\nexport * from './lib/io/image/image.component';\nexport * from './lib/io/progress/progress.component';\nexport * from './lib/io/rating/rating.component';\nexport * from './lib/io/timeline/timeline.component';\nexport * from './lib/observe-intersecting.directive';\nexport * from './lib/message.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class MessageContentComponent {
3
+ data: any;
4
+ constructor(data: any);
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<MessageContentComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessageContentComponent, "ft-message-content", never, {}, {}, never, never, true, never>;
7
+ }
@@ -0,0 +1,11 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class MessageDialogComponent {
4
+ data: any;
5
+ beforeSelect: EventEmitter<any>;
6
+ constructor(data: any);
7
+ ngOnInit(): void;
8
+ select(value: string): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<MessageDialogComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessageDialogComponent, "ft-message-dialog", never, {}, { "beforeSelect": "beforeSelect"; }, never, never, true, never>;
11
+ }
@@ -10,5 +10,5 @@ export declare class ProgressComponent {
10
10
  ngOnInit(): void;
11
11
  get hostClasses(): string;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ProgressComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<ProgressComponent, "lib-progress", never, { "class": { "alias": "class"; "required": false; }; "color": { "alias": "color"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "overlay": { "alias": "overlay"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProgressComponent, "ft-progress", never, { "class": { "alias": "class"; "required": false; }; "color": { "alias": "color"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "overlay": { "alias": "overlay"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
14
14
  }
@@ -17,5 +17,5 @@ export declare class RatingComponent {
17
17
  updateValue(event: any): void;
18
18
  writeValue(value: string): void;
19
19
  static ɵfac: i0.ɵɵFactoryDeclaration<RatingComponent, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<RatingComponent, "lib-rating", never, { "readOnly": { "alias": "readOnly"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<RatingComponent, "ft-rating", never, { "readOnly": { "alias": "readOnly"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
21
21
  }
@@ -14,5 +14,5 @@ export declare class TimelineComponent {
14
14
  getMonth(month: number, year: number): any;
15
15
  parseTasks(): void;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<TimelineComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<TimelineComponent, "lib-timeline", never, { "data": { "alias": "data"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimelineComponent, "ft-timeline", never, { "data": { "alias": "data"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
18
18
  }
@@ -0,0 +1,15 @@
1
+ import { Observable } from 'rxjs';
2
+ import { MatSnackBar } from '@angular/material/snack-bar';
3
+ import { MatDialog } from '@angular/material/dialog';
4
+ import { MessageOptions } from './models/message-options';
5
+ import { MessageContent } from './models/message-content';
6
+ import * as i0 from "@angular/core";
7
+ export declare class MessageService {
8
+ private snackBar;
9
+ private dialog;
10
+ element: any;
11
+ constructor(snackBar: MatSnackBar, dialog: MatDialog);
12
+ show(message: string | MessageContent, options?: MessageOptions): Observable<any>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<MessageService, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<MessageService>;
15
+ }
@@ -0,0 +1,14 @@
1
+ export interface Action {
2
+ children?: Action[];
3
+ class?: string;
4
+ click?: (event?: Event) => void;
5
+ disabled?: boolean;
6
+ iconCollection?: string;
7
+ iconName?: string;
8
+ id?: string;
9
+ label?: string;
10
+ url?: string;
11
+ type?: string;
12
+ metadata?: any;
13
+ value?: any;
14
+ }
@@ -0,0 +1,6 @@
1
+ export interface Icon {
2
+ name: string;
3
+ collection?: string;
4
+ class?: string;
5
+ size?: number;
6
+ }
@@ -0,0 +1,4 @@
1
+ export interface MessageContent {
2
+ content: string;
3
+ type: 'text' | 'html';
4
+ }
@@ -0,0 +1,13 @@
1
+ import { Action } from "./action";
2
+ import { Icon } from "./icon";
3
+ export interface MessageOptions {
4
+ type?: 'modal' | 'notification';
5
+ actions?: Action[];
6
+ actionsVisible?: boolean;
7
+ class?: string;
8
+ duration?: number;
9
+ title?: string;
10
+ titleIcon?: Icon;
11
+ icon?: Icon;
12
+ width?: string;
13
+ }
package/package.json CHANGED
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "name": "@factor_ec/ui",
3
- "version": "4.0.5",
3
+ "version": "4.0.6",
4
4
  "license": "CC-BY-NC-ND-4.0",
5
5
  "author": "Factor",
6
6
  "peerDependencies": {
7
- "@angular/common": "^16.1.0",
8
- "@angular/core": "^16.1.0"
7
+ "@angular/common": "^15.0.0",
8
+ "@angular/core": "^15.0.0",
9
+ "@angular/material": "^15.0.0",
10
+ "@factor_ec/utils": "^3.0.0"
9
11
  },
10
12
  "dependencies": {
11
13
  "tslib": "^2.3.0"
package/public-api.d.ts CHANGED
@@ -5,3 +5,4 @@ export * from './lib/io/progress/progress.component';
5
5
  export * from './lib/io/rating/rating.component';
6
6
  export * from './lib/io/timeline/timeline.component';
7
7
  export * from './lib/observe-intersecting.directive';
8
+ export * from './lib/message.service';