@factor_ec/ui 4.0.4 → 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.
- package/esm2022/lib/io/message-content/message-content.component.mjs +20 -0
- package/esm2022/lib/io/message-dialog/message-dialog.component.mjs +35 -0
- package/esm2022/lib/io/progress/progress.component.mjs +3 -3
- package/esm2022/lib/io/rating/rating.component.mjs +3 -3
- package/esm2022/lib/io/timeline/timeline.component.mjs +3 -3
- package/esm2022/lib/message.service.mjs +58 -0
- package/esm2022/lib/models/action.mjs +2 -0
- package/esm2022/lib/models/icon.mjs +2 -0
- package/esm2022/lib/models/message-content.mjs +2 -0
- package/esm2022/lib/models/message-options.mjs +2 -0
- package/esm2022/lib/observe-intersecting.directive.mjs +7 -13
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/factor_ec-ui.mjs +112 -18
- package/fesm2022/factor_ec-ui.mjs.map +1 -1
- package/lib/io/message-content/message-content.component.d.ts +7 -0
- package/lib/io/message-dialog/message-dialog.component.d.ts +11 -0
- package/lib/io/progress/progress.component.d.ts +1 -1
- package/lib/io/rating/rating.component.d.ts +1 -1
- package/lib/io/timeline/timeline.component.d.ts +1 -1
- package/lib/message.service.d.ts +15 -0
- package/lib/models/action.d.ts +14 -0
- package/lib/models/icon.d.ts +6 -0
- package/lib/models/message-content.d.ts +4 -0
- package/lib/models/message-options.d.ts +13 -0
- package/lib/observe-intersecting.directive.d.ts +2 -2
- package/package.json +5 -3
- package/public-api.d.ts +1 -0
|
@@ -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: "
|
|
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: '
|
|
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,
|
|
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: "
|
|
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: '
|
|
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,
|
|
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: "
|
|
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: '
|
|
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,
|
|
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==
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
-
import { Directive, EventEmitter, Inject,
|
|
2
|
+
import { Directive, EventEmitter, Inject, PLATFORM_ID } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class ObserveIntersectingDirective {
|
|
5
5
|
constructor(element, platformId) {
|
|
6
6
|
this.element = element;
|
|
7
7
|
this.platformId = platformId;
|
|
8
|
-
this.
|
|
8
|
+
this.ftObserveIntersecting = new EventEmitter();
|
|
9
9
|
}
|
|
10
10
|
ngOnInit() {
|
|
11
11
|
if (isPlatformBrowser(this.platformId)) {
|
|
12
12
|
if ("IntersectionObserver" in window) {
|
|
13
13
|
const elementObserver = new IntersectionObserver((entries, observer) => {
|
|
14
14
|
entries.forEach((entry) => {
|
|
15
|
-
this.
|
|
15
|
+
this.ftObserveIntersecting.emit(entry.isIntersecting);
|
|
16
16
|
});
|
|
17
17
|
}, this.options);
|
|
18
18
|
elementObserver.observe(this.element.nativeElement);
|
|
@@ -23,24 +23,18 @@ export class ObserveIntersectingDirective {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ObserveIntersectingDirective, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.2", type: ObserveIntersectingDirective, isStandalone: true, selector: "ftObserveIntersecting", inputs: {
|
|
26
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.2", type: ObserveIntersectingDirective, isStandalone: true, selector: "ftObserveIntersecting", inputs: { options: ["ftObserveIntersectingOptions", "options"] }, outputs: { ftObserveIntersecting: "ftObserveIntersecting" }, ngImport: i0 }); }
|
|
27
27
|
}
|
|
28
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ObserveIntersectingDirective, decorators: [{
|
|
29
29
|
type: Directive,
|
|
30
30
|
args: [{
|
|
31
31
|
selector: 'ftObserveIntersecting',
|
|
32
|
-
inputs: ['ftObserveIntersectingOptions'],
|
|
32
|
+
inputs: [{ name: 'options', alias: 'ftObserveIntersectingOptions' }],
|
|
33
33
|
outputs: ['ftObserveIntersecting'],
|
|
34
34
|
standalone: true
|
|
35
35
|
}]
|
|
36
36
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Object, decorators: [{
|
|
37
37
|
type: Inject,
|
|
38
38
|
args: [PLATFORM_ID]
|
|
39
|
-
}] }]; }
|
|
40
|
-
|
|
41
|
-
args: ['ftObserveIntersectingOptions']
|
|
42
|
-
}], event: [{
|
|
43
|
-
type: Output,
|
|
44
|
-
args: ['ftObserveIntersecting']
|
|
45
|
-
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1pbnRlcnNlY3RpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9vYnNlcnZlLWludGVyc2VjdGluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVF4RyxNQUFNLE9BQU8sNEJBQTRCO0lBSXZDLFlBQ1UsT0FBbUIsRUFDRSxVQUFrQjtRQUR2QyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ0UsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUpoQixVQUFLLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7SUFLL0UsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN0QyxJQUFJLHNCQUFzQixJQUFJLE1BQU0sRUFBRTtnQkFDcEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRTtvQkFDckUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQ3hDLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pCLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNyRDtpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7YUFDdkU7U0FDRjtJQUNILENBQUM7OEdBdEJVLDRCQUE0Qiw0Q0FNN0IsV0FBVztrR0FOViw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsTUFBTSxFQUFFLENBQUMsOEJBQThCLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQU9JLE1BQU07MkJBQUMsV0FBVzs0Q0FMa0IsT0FBTztzQkFBN0MsS0FBSzt1QkFBQyw4QkFBOEI7Z0JBQ0osS0FBSztzQkFBckMsTUFBTTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT3V0cHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdmdE9ic2VydmVJbnRlcnNlY3RpbmcnLFxuICBpbnB1dHM6IFsnZnRPYnNlcnZlSW50ZXJzZWN0aW5nT3B0aW9ucyddLFxuICBvdXRwdXRzOiBbJ2Z0T2JzZXJ2ZUludGVyc2VjdGluZyddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE9ic2VydmVJbnRlcnNlY3RpbmdEaXJlY3RpdmUge1xuICBASW5wdXQoJ2Z0T2JzZXJ2ZUludGVyc2VjdGluZ09wdGlvbnMnKSBvcHRpb25zITogeyByb290PzogYW55LCByb290TWFyZ2luPzogYW55LCB0aHJlc2hvbGQ/OiBhbnkgfTtcbiAgQE91dHB1dCgnZnRPYnNlcnZlSW50ZXJzZWN0aW5nJykgZXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3RcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgaWYgKFwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXJcIiBpbiB3aW5kb3cpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudE9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzLCBvYnNlcnZlcikgPT4ge1xuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnQuZW1pdChlbnRyeS5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIGVsZW1lbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Z0T2JzZXJ2ZUludGVyc2VjdGluZyBub3QgYXZhaWxhYmxlIGluIHRoaXMgYnJvd3Nlci4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
39
|
+
}] }]; } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1pbnRlcnNlY3RpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9vYnNlcnZlLWludGVyc2VjdGluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFpQixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUXhHLE1BQU0sT0FBTyw0QkFBNEI7SUFJdkMsWUFDVSxPQUFtQixFQUNFLFVBQWtCO1FBRHZDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDRSxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBSmpELDBCQUFxQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBSzlELENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxzQkFBc0IsSUFBSSxNQUFNLEVBQUU7Z0JBQ3BDLE1BQU0sZUFBZSxHQUFHLElBQUksb0JBQW9CLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7b0JBQ3JFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDeEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQ3hELENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pCLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNyRDtpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7YUFDdkU7U0FDRjtJQUNILENBQUM7OEdBdEJVLDRCQUE0Qiw0Q0FNN0IsV0FBVztrR0FOViw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSw4QkFBOEIsRUFBRSxDQUFDO29CQUNwRSxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDbEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFPSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT3V0cHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdmdE9ic2VydmVJbnRlcnNlY3RpbmcnLFxuICBpbnB1dHM6IFt7IG5hbWU6ICdvcHRpb25zJywgYWxpYXM6ICdmdE9ic2VydmVJbnRlcnNlY3RpbmdPcHRpb25zJyB9XSxcbiAgb3V0cHV0czogWydmdE9ic2VydmVJbnRlcnNlY3RpbmcnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBPYnNlcnZlSW50ZXJzZWN0aW5nRGlyZWN0aXZlIHtcbiAgb3B0aW9ucyE6IHsgcm9vdD86IGFueSwgcm9vdE1hcmdpbj86IGFueSwgdGhyZXNob2xkPzogYW55IH07XG4gIGZ0T2JzZXJ2ZUludGVyc2VjdGluZzogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBpZiAoXCJJbnRlcnNlY3Rpb25PYnNlcnZlclwiIGluIHdpbmRvdykge1xuICAgICAgICBjb25zdCBlbGVtZW50T2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMsIG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mdE9ic2VydmVJbnRlcnNlY3RpbmcuZW1pdChlbnRyeS5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIGVsZW1lbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Z0T2JzZXJ2ZUludGVyc2VjdGluZyBub3QgYXZhaWxhYmxlIGluIHRoaXMgYnJvd3Nlci4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -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
|
-
|
|
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, Output } 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: "
|
|
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: '
|
|
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: "
|
|
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: '
|
|
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: "
|
|
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: '
|
|
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: [{
|
|
@@ -443,14 +450,14 @@ class ObserveIntersectingDirective {
|
|
|
443
450
|
constructor(element, platformId) {
|
|
444
451
|
this.element = element;
|
|
445
452
|
this.platformId = platformId;
|
|
446
|
-
this.
|
|
453
|
+
this.ftObserveIntersecting = new EventEmitter();
|
|
447
454
|
}
|
|
448
455
|
ngOnInit() {
|
|
449
456
|
if (isPlatformBrowser(this.platformId)) {
|
|
450
457
|
if ("IntersectionObserver" in window) {
|
|
451
458
|
const elementObserver = new IntersectionObserver((entries, observer) => {
|
|
452
459
|
entries.forEach((entry) => {
|
|
453
|
-
this.
|
|
460
|
+
this.ftObserveIntersecting.emit(entry.isIntersecting);
|
|
454
461
|
});
|
|
455
462
|
}, this.options);
|
|
456
463
|
elementObserver.observe(this.element.nativeElement);
|
|
@@ -461,27 +468,114 @@ class ObserveIntersectingDirective {
|
|
|
461
468
|
}
|
|
462
469
|
}
|
|
463
470
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ObserveIntersectingDirective, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
464
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.2", type: ObserveIntersectingDirective, isStandalone: true, selector: "ftObserveIntersecting", inputs: {
|
|
471
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.2", type: ObserveIntersectingDirective, isStandalone: true, selector: "ftObserveIntersecting", inputs: { options: ["ftObserveIntersectingOptions", "options"] }, outputs: { ftObserveIntersecting: "ftObserveIntersecting" }, ngImport: i0 }); }
|
|
465
472
|
}
|
|
466
473
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ObserveIntersectingDirective, decorators: [{
|
|
467
474
|
type: Directive,
|
|
468
475
|
args: [{
|
|
469
476
|
selector: 'ftObserveIntersecting',
|
|
470
|
-
inputs: ['ftObserveIntersectingOptions'],
|
|
477
|
+
inputs: [{ name: 'options', alias: 'ftObserveIntersectingOptions' }],
|
|
471
478
|
outputs: ['ftObserveIntersecting'],
|
|
472
479
|
standalone: true
|
|
473
480
|
}]
|
|
474
481
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Object, decorators: [{
|
|
475
482
|
type: Inject,
|
|
476
483
|
args: [PLATFORM_ID]
|
|
477
|
-
}] }]; }
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
484
|
+
}] }]; } });
|
|
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
|
|
483
526
|
}] } });
|
|
484
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
|
+
|
|
485
579
|
/*
|
|
486
580
|
* Public API Surface of ui
|
|
487
581
|
*/
|
|
@@ -490,5 +584,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
490
584
|
* Generated bundle index. Do not edit.
|
|
491
585
|
*/
|
|
492
586
|
|
|
493
|
-
export { AvatarComponent, IconComponent, ImageComponent, ObserveIntersectingDirective, ProgressComponent, RatingComponent, TimelineComponent };
|
|
587
|
+
export { AvatarComponent, IconComponent, ImageComponent, MessageService, ObserveIntersectingDirective, ProgressComponent, RatingComponent, TimelineComponent };
|
|
494
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: ['ftObserveIntersectingOptions'],\n outputs: ['ftObserveIntersecting'],\n standalone: true\n})\nexport class ObserveIntersectingDirective {\n @Input('ftObserveIntersectingOptions') options!: { root?: any, rootMargin?: any, threshold?: any };\n @Output('ftObserveIntersecting') event: 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.event.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":";;;;;;MAWa,eAAe,CAAA;IAM1B,IAAa,GAAG,CAAC,KAAyB,EAAA;QACxC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;AAC/B,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,YAAA,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AACxB,YAAA,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;AAClB,YAAA,KAAK,CAAC,MAAM,GAAG,MAAK;gBAClB,IAAI,QAAQ,IAAI,KAAK,EAAE;AACrB,oBAAA,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAK;AACvB,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACrB,qBAAC,CAAC,CAAC;AACJ,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC9C,iBAAA;AACH,aAAC,CAAC;AACH,SAAA;KACF;IACD,IAAa,KAAK,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzC;AACD,IAAA,IAA2C,eAAe,GAAA;AACxD,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACzD;AACD,IAAA,IAA2C,eAAe,GAAA;AACxD,QAAA,OAAO,IAAI,CAAC,IAAI,GAAG,CAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAG,CAAA,CAAA,GAAG,EAAE,CAAC;KAC7C;AAED,IAAA,IAA0B,WAAW,GAAA;QACnC,OAAO;YACL,WAAW;AACX,YAAA,IAAI,CAAC,KAAK;AACX,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACb;AAED,IAAA,WAAA,CACU,YAA0B,EAAA;QAA1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAT3B,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;KAUvB;IAEL,QAAQ,GAAA;KAEP;AACD,IAAA,WAAW,CAAC,KAAa,EAAA;QACvB,IAAI,WAAW,GAAa,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,QAAQ,GAAW,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;AAC/F,QAAA,OAAO,QAAQ,CAAC;KACjB;8GAnDU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECX5B,6CAAyC,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDQ7B,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EACT,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,6CAAA,EAAA,CAAA;mGAMd,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGO,GAAG,EAAA,CAAA;sBAAf,KAAK;gBAgBO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAIqC,eAAe,EAAA,CAAA;sBAAzD,WAAW;uBAAC,wBAAwB,CAAA;gBAGM,eAAe,EAAA,CAAA;sBAAzD,WAAW;uBAAC,wBAAwB,CAAA;gBAG5B,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACoB,WAAW,EAAA,CAAA;sBAApC,WAAW;uBAAC,OAAO,CAAA;;;MElCT,aAAa,CAAA;IAKxB,IAAa,UAAU,CAAC,UAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IACD,IAAa,IAAI,CAAC,IAA2B,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IACD,IAAa,IAAI,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IACD,IAAa,IAAI,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;AAKD,IAAA,IAA0B,WAAW,GAAA;QACnC,OAAO;YACL,SAAS;AACT,YAAA,IAAI,CAAC,KAAK;AACX,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACb;AAED,IAAA,WAAA,CAC2C,aAA8B,EAAA;QAA9B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAiB;QAThE,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;KAUvB;IAEL,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IACO,MAAM,GAAA;;AAEZ,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE;gBACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;AACvD,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AACpC,gBAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC5B,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACzB,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;;AAE7B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE;oBAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AACvB,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,CAAQ,KAAA,EAAA,IAAI,CAAC,KAAK,EAAE,CAAC;AAClE,SAAA;AAAM,aAAA;;AAEL,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAK,EAAA,EAAA,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI,CAAC,KAAK,CAAC;AAClH,YAAA,IAAI,CAAC,GAAG,GAAG,CAAI,CAAA,EAAA,IAAI,EAAE,CAAC;AACvB,SAAA;KACF;AAtEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAiCd,uBAAuB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAjCtB,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,KAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV1B,8LAKc,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDEF,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EACP,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,8LAAA,EAAA,CAAA;;0BAoCpB,MAAM;2BAAC,uBAAuB,CAAA;4CA5BpB,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAIG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAGG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACoB,WAAW,EAAA,CAAA;sBAApC,WAAW;uBAAC,OAAO,CAAA;;;MEtBT,cAAc,CAAA;AAOzB,IAAA,WAAA,CACU,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAPpB,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QAEY,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QAEjE,IAAK,CAAA,KAAA,GAAY,KAAK,CAAC;KAIlB;IAEL,QAAQ,GAAA;QACN,IAAI,sBAAsB,IAAI,MAAM,EAAE;YACpC,IAAI,eAAe,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,EAAE,QAAQ,KAAI;AACnE,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;oBACxB,IAAI,KAAK,CAAC,cAAc,EAAE;AACxB,wBAAA,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AACxB,wBAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;wBACrB,UAAU,CAAC,MAAK;4BACd,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9B,gCAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,6BAAA;yBACF,EAAE,GAAG,CAAC,CAAC;AACR,wBAAA,KAAK,CAAC,OAAO,GAAG,MAAK;AACnB,4BAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,4BAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB,yBAAC,CAAC;AACF,wBAAA,KAAK,CAAC,MAAM,GAAG,MAAK;4BAClB,IAAI,QAAQ,IAAI,KAAK,EAAE;AACrB,gCAAA,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAK;AACvB,oCAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,oCAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACpB,iCAAC,CAAC,CAAC;AACJ,6BAAA;AAAM,iCAAA;AACL,gCAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,gCAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACnB,6BAAA;AACH,yBAAC,CAAC;wBACF,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACvD,qBAAA;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,EAAE;AACD,gBAAA,UAAU,EAAE,mBAAmB;AAChC,aAAA,CAAC,CAAC;YACH,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACnB,SAAA;KACF;AACD,IAAA,IAA0B,WAAW,GAAA;QACnC,OAAO;YACL,UAAU;AACV,YAAA,IAAI,CAAC,KAAK;AACX,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACb;8GAxDU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,ECb3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0GAEA,EDMI,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,qIACZ,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIJ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;AACd,qBAAA,EAAA,QAAA,EAAA,0GAAA,EAAA,CAAA;iGAIQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACgC,KAAK,EAAA,CAAA;sBAA1C,WAAW;uBAAC,uBAAuB,CAAA;gBACI,OAAO,EAAA,CAAA;sBAA9C,WAAW;uBAAC,yBAAyB,CAAA;gBAC7B,GAAG,EAAA,CAAA;sBAAX,KAAK;gBA+CoB,WAAW,EAAA,CAAA;sBAApC,WAAW;uBAAC,OAAO,CAAA;;;MEvDT,iBAAiB,CAAA;AAQ5B,IAAA,WAAA,GAAA;QAPS,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QAEnB,IAAI,CAAA,IAAA,GAAoC,eAAe,CAAC;QACxD,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;KAIjB;IAEjB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KAChB;AACD,IAAA,IACI,WAAW,GAAA;QACb,OAAO;YACL,aAAa;YACb,IAAI,CAAC,OAAO,GAAG,sBAAsB,GAAG,EAAE;AAC1C,YAAA,IAAI,CAAC,KAAK;AACX,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACb;8GApBU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECT9B,ugBAOM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACZ,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,ugBAAA,EAAA,CAAA;0EAId,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAQF,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO,CAAA;;;MEbT,eAAe,CAAA;AAc1B,IAAA,WAAA,GAAA;QAbA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAE1B,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AACnC,QAAA,IAAA,CAAA,KAAK,GAAU;YACb,EAAE,KAAK,EAAE,CAAC,EAAE;YACZ,EAAE,KAAK,EAAE,CAAC,EAAE;YACZ,EAAE,KAAK,EAAE,CAAC,EAAE;YACZ,EAAE,KAAK,EAAE,CAAC,EAAE;YACZ,EAAE,KAAK,EAAE,CAAC,EAAE;SACb,CAAC;KAGe;IAEjB,QAAQ,GAAA;KACP;AACD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,IAAa,KAAK,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACnC;AACD,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;AACD,IAAA,iBAAiB,CAAC,EAAoB,EAAA;;KAErC;AACD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IACD,OAAO,CAAC,KAAa,EAAE,OAAiB,EAAA;AACtC,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,SAAA;KACF;AACD,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;KACjC;AACD,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;8GA9CU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECT5B,uvCAgBc,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDVF,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,uvCAAA,EAAA,CAAA;0EAOd,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAiBO,KAAK,EAAA,CAAA;sBAAjB,KAAK;;;MEpBK,iBAAiB,CAAA;AAY5B,IAAA,IAA0B,WAAW,GAAA;QACnC,OAAO;YACL,aAAa;AACb,YAAA,IAAI,CAAC,KAAK;AACX,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACb;;AAED,IAAA,WAAA,GAAA;AAlBA,QAAA,IAAA,CAAA,SAAS,GAAkB,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;AAG3B,QAAA,IAAA,CAAA,UAAU,GAAQ;AAChB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,QAAQ,EAAE,EAAE;SACb,CAAC;QAEO,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;KAQX;IAEjB,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;KACrC;AACD,IAAA,QAAQ,CAAC,IAAU,EAAA;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;AAChD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9G,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE;YAC1C,IAAI,CAAC,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AACpD,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAS,EAAE,KAAa,KAAI;AACrD,YAAA,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;AACjC,gBAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;AACrC,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACD,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IACD,aAAa,GAAA;QACX,OAAO,IAAI,IAAI,EAAE,CAAC;KACnB;IACD,QAAQ,CAAC,KAAa,EAAE,IAAY,EAAA;QAClC,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,WAAW,GAAkB,IAAI,CAAC;AACtC,QAAA,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;AACnC,gBAAA,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;AACxB,oBAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACxB,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,iBAAA;AACF,aAAA;YACD,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;AAClG,gBAAA,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;AACrB,aAAA;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClB,SAAA;AACD,QAAA,MAAM,IAAI,GAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACrC,QAAA,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;IACD,UAAU,GAAA;AACR,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,yBAAwB;AACxE,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YACzC,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,gBAAA,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,IAAI,EAAE,CAAC;aACR,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;8GAjFU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV9B,koCAqBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDdM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACZ,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,koCAAA,EAAA,CAAA;0EAKd,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEN,WAAW,EAAA,CAAA;sBADV,WAAW;uBAAC,sBAAsB,CAAA;gBAQ1B,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACoB,WAAW,EAAA,CAAA;sBAApC,WAAW;uBAAC,OAAO,CAAA;;;MEbT,4BAA4B,CAAA;IAIvC,WACU,CAAA,OAAmB,EACE,UAAkB,EAAA;QADvC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QACE,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;AAJhB,QAAA,IAAA,CAAA,KAAK,GAA0B,IAAI,YAAY,EAAE,CAAC;KAK9E;IAEL,QAAQ,GAAA;AACN,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI,sBAAsB,IAAI,MAAM,EAAE;gBACpC,MAAM,eAAe,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,EAAE,QAAQ,KAAI;AACrE,oBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;wBACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACxC,qBAAC,CAAC,CAAC;AACL,iBAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjB,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACrD,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;AACvE,aAAA;AACF,SAAA;KACF;AAtBU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,4CAM7B,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGANV,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;oBACjC,MAAM,EAAE,CAAC,8BAA8B,CAAC;oBACxC,OAAO,EAAE,CAAC,uBAAuB,CAAC;AAClC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;0BAOI,MAAM;2BAAC,WAAW,CAAA;4CALkB,OAAO,EAAA,CAAA;sBAA7C,KAAK;uBAAC,8BAA8B,CAAA;gBACJ,KAAK,EAAA,CAAA;sBAArC,MAAM;uBAAC,uBAAuB,CAAA;;;ACXjC;;AAEG;;ACFH;;AAEG;;;;"}
|
|
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":";;;;;;;;;;;;;MAWa,eAAe,CAAA;IAM1B,IAAa,GAAG,CAAC,KAAyB,EAAA;QACxC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;AAC/B,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,YAAA,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AACxB,YAAA,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;AAClB,YAAA,KAAK,CAAC,MAAM,GAAG,MAAK;gBAClB,IAAI,QAAQ,IAAI,KAAK,EAAE;AACrB,oBAAA,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAK;AACvB,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACrB,qBAAC,CAAC,CAAC;AACJ,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC9C,iBAAA;AACH,aAAC,CAAC;AACH,SAAA;KACF;IACD,IAAa,KAAK,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzC;AACD,IAAA,IAA2C,eAAe,GAAA;AACxD,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACzD;AACD,IAAA,IAA2C,eAAe,GAAA;AACxD,QAAA,OAAO,IAAI,CAAC,IAAI,GAAG,CAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAG,CAAA,CAAA,GAAG,EAAE,CAAC;KAC7C;AAED,IAAA,IAA0B,WAAW,GAAA;QACnC,OAAO;YACL,WAAW;AACX,YAAA,IAAI,CAAC,KAAK;AACX,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACb;AAED,IAAA,WAAA,CACU,YAA0B,EAAA;QAA1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAT3B,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;KAUvB;IAEL,QAAQ,GAAA;KAEP;AACD,IAAA,WAAW,CAAC,KAAa,EAAA;QACvB,IAAI,WAAW,GAAa,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,QAAQ,GAAW,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;AAC/F,QAAA,OAAO,QAAQ,CAAC;KACjB;8GAnDU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECX5B,6CAAyC,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDQ7B,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EACT,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,6CAAA,EAAA,CAAA;mGAMd,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGO,GAAG,EAAA,CAAA;sBAAf,KAAK;gBAgBO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAIqC,eAAe,EAAA,CAAA;sBAAzD,WAAW;uBAAC,wBAAwB,CAAA;gBAGM,eAAe,EAAA,CAAA;sBAAzD,WAAW;uBAAC,wBAAwB,CAAA;gBAG5B,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACoB,WAAW,EAAA,CAAA;sBAApC,WAAW;uBAAC,OAAO,CAAA;;;MElCT,aAAa,CAAA;IAKxB,IAAa,UAAU,CAAC,UAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IACD,IAAa,IAAI,CAAC,IAA2B,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IACD,IAAa,IAAI,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IACD,IAAa,IAAI,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;AAKD,IAAA,IAA0B,WAAW,GAAA;QACnC,OAAO;YACL,SAAS;AACT,YAAA,IAAI,CAAC,KAAK;AACX,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACb;AAED,IAAA,WAAA,CAC2C,aAA8B,EAAA;QAA9B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAiB;QAThE,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;KAUvB;IAEL,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IACO,MAAM,GAAA;;AAEZ,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE;gBACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;AACvD,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AACpC,gBAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC5B,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;AACzB,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;;AAE7B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE;oBAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AACvB,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,CAAQ,KAAA,EAAA,IAAI,CAAC,KAAK,EAAE,CAAC;AAClE,SAAA;AAAM,aAAA;;AAEL,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAK,EAAA,EAAA,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI,CAAC,KAAK,CAAC;AAClH,YAAA,IAAI,CAAC,GAAG,GAAG,CAAI,CAAA,EAAA,IAAI,EAAE,CAAC;AACvB,SAAA;KACF;AAtEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAiCd,uBAAuB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAjCtB,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,KAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV1B,8LAKc,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDEF,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EACP,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,8LAAA,EAAA,CAAA;;0BAoCpB,MAAM;2BAAC,uBAAuB,CAAA;4CA5BpB,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAIG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAGG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACoB,WAAW,EAAA,CAAA;sBAApC,WAAW;uBAAC,OAAO,CAAA;;;MEtBT,cAAc,CAAA;AAOzB,IAAA,WAAA,CACU,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAPpB,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QAEY,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QAEjE,IAAK,CAAA,KAAA,GAAY,KAAK,CAAC;KAIlB;IAEL,QAAQ,GAAA;QACN,IAAI,sBAAsB,IAAI,MAAM,EAAE;YACpC,IAAI,eAAe,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,EAAE,QAAQ,KAAI;AACnE,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;oBACxB,IAAI,KAAK,CAAC,cAAc,EAAE;AACxB,wBAAA,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AACxB,wBAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;wBACrB,UAAU,CAAC,MAAK;4BACd,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9B,gCAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,6BAAA;yBACF,EAAE,GAAG,CAAC,CAAC;AACR,wBAAA,KAAK,CAAC,OAAO,GAAG,MAAK;AACnB,4BAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,4BAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB,yBAAC,CAAC;AACF,wBAAA,KAAK,CAAC,MAAM,GAAG,MAAK;4BAClB,IAAI,QAAQ,IAAI,KAAK,EAAE;AACrB,gCAAA,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAK;AACvB,oCAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,oCAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACpB,iCAAC,CAAC,CAAC;AACJ,6BAAA;AAAM,iCAAA;AACL,gCAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,gCAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACnB,6BAAA;AACH,yBAAC,CAAC;wBACF,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACvD,qBAAA;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,EAAE;AACD,gBAAA,UAAU,EAAE,mBAAmB;AAChC,aAAA,CAAC,CAAC;YACH,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACnB,SAAA;KACF;AACD,IAAA,IAA0B,WAAW,GAAA;QACnC,OAAO;YACL,UAAU;AACV,YAAA,IAAI,CAAC,KAAK;AACX,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACb;8GAxDU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,ECb3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0GAEA,EDMI,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,qIACZ,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIJ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,aAAa;AACd,qBAAA,EAAA,QAAA,EAAA,0GAAA,EAAA,CAAA;iGAIQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACgC,KAAK,EAAA,CAAA;sBAA1C,WAAW;uBAAC,uBAAuB,CAAA;gBACI,OAAO,EAAA,CAAA;sBAA9C,WAAW;uBAAC,yBAAyB,CAAA;gBAC7B,GAAG,EAAA,CAAA;sBAAX,KAAK;gBA+CoB,WAAW,EAAA,CAAA;sBAApC,WAAW;uBAAC,OAAO,CAAA;;;MEvDT,iBAAiB,CAAA;AAQ5B,IAAA,WAAA,GAAA;QAPS,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QAEnB,IAAI,CAAA,IAAA,GAAoC,eAAe,CAAC;QACxD,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;KAIjB;IAEjB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KAChB;AACD,IAAA,IACI,WAAW,GAAA;QACb,OAAO;YACL,aAAa;YACb,IAAI,CAAC,OAAO,GAAG,sBAAsB,GAAG,EAAE;AAC1C,YAAA,IAAI,CAAC,KAAK;AACX,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACb;8GApBU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECT9B,ugBAOM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EACX,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,ugBAAA,EAAA,CAAA;0EAId,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAQF,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO,CAAA;;;MEbT,eAAe,CAAA;AAc1B,IAAA,WAAA,GAAA;QAbA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAE1B,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AACnC,QAAA,IAAA,CAAA,KAAK,GAAU;YACb,EAAE,KAAK,EAAE,CAAC,EAAE;YACZ,EAAE,KAAK,EAAE,CAAC,EAAE;YACZ,EAAE,KAAK,EAAE,CAAC,EAAE;YACZ,EAAE,KAAK,EAAE,CAAC,EAAE;YACZ,EAAE,KAAK,EAAE,CAAC,EAAE;SACb,CAAC;KAGe;IAEjB,QAAQ,GAAA;KACP;AACD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,IAAa,KAAK,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACnC;AACD,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;AACD,IAAA,iBAAiB,CAAC,EAAoB,EAAA;;KAErC;AACD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IACD,OAAO,CAAC,KAAa,EAAE,OAAiB,EAAA;AACtC,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,SAAA;KACF;AACD,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;KACjC;AACD,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;8GA9CU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECT5B,uvCAgBc,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDVF,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EACT,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,uvCAAA,EAAA,CAAA;0EAOd,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAiBO,KAAK,EAAA,CAAA;sBAAjB,KAAK;;;MEpBK,iBAAiB,CAAA;AAY5B,IAAA,IAA0B,WAAW,GAAA;QACnC,OAAO;YACL,aAAa;AACb,YAAA,IAAI,CAAC,KAAK;AACX,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACb;;AAED,IAAA,WAAA,GAAA;AAlBA,QAAA,IAAA,CAAA,SAAS,GAAkB,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;AAG3B,QAAA,IAAA,CAAA,UAAU,GAAQ;AAChB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,QAAQ,EAAE,EAAE;SACb,CAAC;QAEO,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;KAQX;IAEjB,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;KACrC;AACD,IAAA,QAAQ,CAAC,IAAU,EAAA;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;AAChD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9G,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE;YAC1C,IAAI,CAAC,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AACpD,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAS,EAAE,KAAa,KAAI;AACrD,YAAA,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;AACjC,gBAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;AACrC,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACD,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IACD,aAAa,GAAA;QACX,OAAO,IAAI,IAAI,EAAE,CAAC;KACnB;IACD,QAAQ,CAAC,KAAa,EAAE,IAAY,EAAA;QAClC,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,WAAW,GAAkB,IAAI,CAAC;AACtC,QAAA,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;AACnC,gBAAA,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;AACxB,oBAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACxB,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,iBAAA;AACF,aAAA;YACD,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;AAClG,gBAAA,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;AACrB,aAAA;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClB,SAAA;AACD,QAAA,MAAM,IAAI,GAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACrC,QAAA,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;IACD,UAAU,GAAA;AACR,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,yBAAwB;AACxE,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YACzC,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,gBAAA,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,IAAI,EAAE,CAAC;aACR,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;8GAjFU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV9B,koCAqBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDdM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EACX,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,koCAAA,EAAA,CAAA;0EAKd,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEN,WAAW,EAAA,CAAA;sBADV,WAAW;uBAAC,sBAAsB,CAAA;gBAQ1B,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACoB,WAAW,EAAA,CAAA;sBAApC,WAAW;uBAAC,OAAO,CAAA;;;MEbT,4BAA4B,CAAA;IAIvC,WACU,CAAA,OAAmB,EACE,UAAkB,EAAA;QADvC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QACE,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;AAJjD,QAAA,IAAA,CAAA,qBAAqB,GAA0B,IAAI,YAAY,EAAE,CAAC;KAK7D;IAEL,QAAQ,GAAA;AACN,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI,sBAAsB,IAAI,MAAM,EAAE;gBACpC,MAAM,eAAe,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,EAAE,QAAQ,KAAI;AACrE,oBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;wBACxB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACxD,qBAAC,CAAC,CAAC;AACL,iBAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjB,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACrD,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;AACvE,aAAA;AACF,SAAA;KACF;AAtBU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,4CAM7B,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGANV,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,SAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;oBACjC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;oBACpE,OAAO,EAAE,CAAC,uBAAuB,CAAC;AAClC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;0BAOI,MAAM;2BAAC,WAAW,CAAA;;;MCLV,uBAAuB,CAAA;AAClC,IAAA,WAAA,CACqC,IAAS,EAAA;QAAT,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;KACzC;AAHM,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAExB,kBAAkB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAFjB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVpC,kOAGe,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIH,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAClB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,kOAAA,EAAA,CAAA;;0BAKpB,MAAM;2BAAC,kBAAkB,CAAA;;;MEKjB,sBAAsB,CAAA;AAGjC,IAAA,WAAA,CACkC,IAAS,EAAA;QAAT,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;AAHjC,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;KAI1D;IAEL,QAAQ,GAAA;KACP;AACD,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AAXU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBAIvB,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAJd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,wHCjBnC,mtEA+Bc,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpBV,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,4QACf,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIJ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;+BACE,mBAAmB,EAAA,UAAA,EACjB,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,eAAe;wBACf,aAAa;AACd,qBAAA,EAAA,QAAA,EAAA,mtEAAA,EAAA,CAAA;;0BAOE,MAAM;2BAAC,eAAe,CAAA;4CAHf,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MEJI,cAAc,CAAA;IAGzB,WACU,CAAA,QAAqB,EACrB,MAAiB,EAAA;QADjB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;KACtB;IAEL,IAAI,CAAC,OAAgC,EAAE,OAAwB,EAAA;AAC7D,QAAA,IAAI,eAAe,GAA0B,IAAI,aAAa,CAAS,SAAS,CAAC,CAAC;AAClF,QAAA,IAAI,SAAS,GAAuB,eAAe,CAAC,YAAY,EAAE,CAAC;AACnE,QAAA,MAAM,QAAQ,GAAmB;AAC/B,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,cAAc,EAAE,IAAI;SACrB,CAAC;QACF,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC3C,QAAA,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;QAC9G,QAAQ,OAAO,CAAC,IAAI;YAClB,QAAQ;AACR,YAAA,KAAK,cAAc;AACjB,gBAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,uBAAuB,EAAE;oBACvD,IAAI;AACJ,oBAAA,UAAU,EAAE,CAAC,YAAY,EAAE,0BAA0B,CAAC;AACtD,oBAAA,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;AACnC,iBAAA,CAAC,CAAC;gBACH,MAAM;AACR,YAAA,KAAK,OAAO;gBACV,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACzD,oBAAA,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO;oBAC/B,IAAI;AACJ,oBAAA,UAAU,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC;AAC/C,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,YAAY,EAAE,IAAI;AACnB,iBAAA,CAAC,CAAC;gBACH,SAAS,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAa,KAAI;AACnE,oBAAA,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC/B,SAAS,CAAC,KAAK,EAAE,CAAC;AACpB,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM;AACT,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;8GA3CU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACbD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -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, "
|
|
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, "
|
|
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, "
|
|
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,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
|
+
}
|
|
@@ -8,9 +8,9 @@ export declare class ObserveIntersectingDirective {
|
|
|
8
8
|
rootMargin?: any;
|
|
9
9
|
threshold?: any;
|
|
10
10
|
};
|
|
11
|
-
|
|
11
|
+
ftObserveIntersecting: EventEmitter<boolean>;
|
|
12
12
|
constructor(element: ElementRef, platformId: Object);
|
|
13
13
|
ngOnInit(): void;
|
|
14
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<ObserveIntersectingDirective, never>;
|
|
15
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ObserveIntersectingDirective, "ftObserveIntersecting", never, { "
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ObserveIntersectingDirective, "ftObserveIntersecting", never, { "options": { "alias": "ftObserveIntersectingOptions"; "required": false; }; }, { "ftObserveIntersecting": "ftObserveIntersecting"; }, never, never, true, never>;
|
|
16
16
|
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@factor_ec/ui",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.6",
|
|
4
4
|
"license": "CC-BY-NC-ND-4.0",
|
|
5
5
|
"author": "Factor",
|
|
6
6
|
"peerDependencies": {
|
|
7
|
-
"@angular/common": "^
|
|
8
|
-
"@angular/core": "^
|
|
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