@factor_ec/ui 4.0.9 → 4.0.11

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.
Files changed (30) hide show
  1. package/esm2022/lib/io/icon/icon.component.mjs +1 -1
  2. package/esm2022/lib/io/image/image.component.mjs +1 -1
  3. package/esm2022/lib/io/rating/rating.component.mjs +16 -3
  4. package/esm2022/lib/{io/message-content → message-content}/message-content.component.mjs +1 -1
  5. package/esm2022/lib/message-dialog/message-dialog.component.mjs +33 -0
  6. package/esm2022/lib/message.service.mjs +9 -7
  7. package/esm2022/lib/models/message-options.mjs +1 -1
  8. package/esm2022/lib/nav/timeline/timeline.component.mjs +102 -0
  9. package/esm2022/lib/observe-intersecting.directive.mjs +12 -11
  10. package/esm2022/public-api.mjs +2 -2
  11. package/fesm2022/factor_ec-ui.mjs +33 -19
  12. package/fesm2022/factor_ec-ui.mjs.map +1 -1
  13. package/lib/io/rating/rating.component.d.ts +2 -1
  14. package/lib/{io/message-dialog → message-dialog}/message-dialog.component.d.ts +0 -1
  15. package/lib/models/message-options.d.ts +4 -5
  16. package/lib/observe-intersecting.directive.d.ts +4 -4
  17. package/package.json +1 -1
  18. package/public-api.d.ts +1 -1
  19. package/scss/components/index.scss +10 -0
  20. package/scss/components/list.scss +0 -2
  21. package/scss/components/progress.scss +119 -0
  22. package/esm2022/lib/io/message-dialog/message-dialog.component.mjs +0 -35
  23. package/esm2022/lib/io/timeline/timeline.component.mjs +0 -102
  24. package/esm2022/lib/models/action.mjs +0 -2
  25. package/esm2022/lib/models/icon.mjs +0 -2
  26. package/lib/models/action.d.ts +0 -14
  27. package/lib/models/icon.d.ts +0 -6
  28. package/scss/components.scss +0 -9
  29. /package/lib/{io/message-content → message-content}/message-content.component.d.ts +0 -0
  30. /package/lib/{io → nav}/timeline/timeline.component.d.ts +0 -0
@@ -0,0 +1,119 @@
1
+ .ft-progress {
2
+ line-height: 0;
3
+ display: inline-block;
4
+
5
+ &--1 {
6
+ font-size: 1rem;
7
+ }
8
+
9
+ &--2 {
10
+ font-size: 1.5rem;
11
+ }
12
+
13
+ &--3 {
14
+ font-size: 2rem;
15
+ }
16
+
17
+ &--4 {
18
+ font-size: 3rem;
19
+ }
20
+
21
+ &--5 {
22
+ font-size: 4.5rem;
23
+ }
24
+
25
+ &--6 {
26
+ font-size: 8rem;
27
+ }
28
+
29
+ &--7 {
30
+ font-size: 16rem;
31
+ }
32
+
33
+ &--8 {
34
+ font-size: 32rem;
35
+ }
36
+
37
+ &--overlay {
38
+ position: fixed;
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ pointer-events: none;
43
+ z-index: 10000;
44
+ top: 0;
45
+ left: 0;
46
+ right: 0;
47
+ bottom: 0;
48
+ font-size: 42px;
49
+
50
+ svg {
51
+ background: rgba(255, 255, 255, 0.6);
52
+ backdrop-filter: saturate(50%) blur(3px);
53
+ box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12);
54
+ border-radius: 100vh;
55
+ padding: 0.3125rem;
56
+ animation: ft-progress-reveal 0.2s;
57
+ animation-fill-mode: forwards;
58
+
59
+ .ft-track {
60
+ display: none;
61
+ }
62
+ }
63
+ }
64
+ }
65
+
66
+ svg {
67
+ width: 1em;
68
+ height: 1em;
69
+ vertical-align: middle;
70
+
71
+ .ft-track {
72
+ fill: none;
73
+ stroke-width: 10;
74
+ stroke: var(--ft-progress-track-color);
75
+ }
76
+
77
+ .ft-bar {
78
+ fill: none;
79
+ stroke-opacity: 0.9;
80
+ stroke-width: 6;
81
+ stroke: var(--ft-progress-bar-color);
82
+
83
+ &--indeterminate {
84
+ animation: ft-progress-rotation 2s infinite linear;
85
+ }
86
+
87
+ &--determinate {
88
+ stroke-dasharray: calc(2 * 3.1415926536 * 40);
89
+ }
90
+ }
91
+ }
92
+
93
+ @keyframes ft-progress-reveal {
94
+ 0% {
95
+ transform: translateY(-100%);
96
+ opacity: 0;
97
+ }
98
+
99
+ 100% {
100
+ transform: translateY(0);
101
+ opacity: 1;
102
+ }
103
+ }
104
+
105
+ @keyframes ft-progress-rotation {
106
+ 0% {
107
+ stroke-dashoffset: 0;
108
+ stroke-dasharray: 150.6 100.4;
109
+ }
110
+
111
+ 50% {
112
+ stroke-dasharray: 1 250;
113
+ }
114
+
115
+ 100% {
116
+ stroke-dashoffset: 502;
117
+ stroke-dasharray: 150.6 100.4;
118
+ }
119
+ }
@@ -1,35 +0,0 @@
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=
@@ -1,102 +0,0 @@
1
- import { Component, HostBinding, Input } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- export class TimelineComponent {
6
- get hostClasses() {
7
- return [
8
- 'ft-timeline',
9
- this.class
10
- ].join(' ');
11
- }
12
- ;
13
- constructor() {
14
- this.startDate = new Date();
15
- this.data = [];
16
- this.dataParsed = {
17
- months: [],
18
- days: [],
19
- weekends: []
20
- };
21
- this.class = '';
22
- }
23
- ngOnInit() {
24
- this.addMonth(this.calcStartDate());
25
- }
26
- addMonth(date) {
27
- const month = this.getMonth(date.getMonth(), date.getFullYear());
28
- const currentDays = this.dataParsed.days.length;
29
- this.dataParsed.months = [...this.dataParsed.months, { date: month.days[0], daysInMonth: month.days.length }];
30
- this.dataParsed.days = [...this.dataParsed.days, ...month.days];
31
- this.dataParsed.weekends = [...this.dataParsed.weekends, ...month.weekends];
32
- if (!this.currentDate && month.currentDate) {
33
- this.currentDate = currentDays + month.currentDate;
34
- }
35
- this.dataParsed.days.some((day, index) => {
36
- if ([0, 6].includes(day.getDay())) {
37
- this.dataParsed.weekendStart = index;
38
- return true;
39
- }
40
- return false;
41
- });
42
- this.parseTasks();
43
- }
44
- calcStartDate() {
45
- return new Date();
46
- }
47
- getMonth(month, year) {
48
- const days = [];
49
- const weekends = [];
50
- let currentDate = null;
51
- let today = new Date();
52
- const date = new Date(year, month + 1, 0);
53
- for (let i = 1; i <= date.getDate(); i++) {
54
- const idate = new Date(year, month, i);
55
- if ([0, 6].includes(idate.getDay())) {
56
- if (idate.getDay() === 6) {
57
- weekends.push([idate]);
58
- }
59
- else {
60
- weekends[weekends.length - 1].push(idate);
61
- }
62
- }
63
- if (idate.getTime() === new Date(today.getFullYear(), today.getMonth(), today.getDate()).getTime()) {
64
- currentDate = i - 1;
65
- }
66
- days.push(idate);
67
- }
68
- const data = { days, weekends };
69
- if (currentDate) {
70
- data.currentDate = currentDate;
71
- }
72
- return data;
73
- }
74
- parseTasks() {
75
- let tasks = this.data.filter(task => task.endAt) /*.sort((a, b) => a.)*/;
76
- this.dataParsed.tasks = tasks.map((task) => {
77
- return {
78
- label: task.label,
79
- start: 10,
80
- type: task.type,
81
- size: 1
82
- };
83
- });
84
- }
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: "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
- }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TimelineComponent, decorators: [{
89
- type: Component,
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
- }], ctorParameters: function () { return []; }, propDecorators: { data: [{
92
- type: Input
93
- }], currentDate: [{
94
- type: HostBinding,
95
- args: ['style.--current-date']
96
- }], class: [{
97
- type: Input
98
- }], hostClasses: [{
99
- type: HostBinding,
100
- args: ['class']
101
- }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pby90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL3RpbWVsaW5lL3RpbWVsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVMvQyxNQUFNLE9BQU8saUJBQWlCO0lBWTVCLElBQTBCLFdBQVc7UUFDbkMsT0FBTztZQUNMLGFBQWE7WUFDYixJQUFJLENBQUMsS0FBSztTQUNYLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUFBLENBQUM7SUFFRjtRQWxCQSxjQUFTLEdBQWtCLElBQUksSUFBSSxFQUFFLENBQUM7UUFDN0IsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUczQixlQUFVLEdBQVE7WUFDaEIsTUFBTSxFQUFFLEVBQUU7WUFDVixJQUFJLEVBQUUsRUFBRTtZQUNSLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUVPLFVBQUssR0FBVyxFQUFFLENBQUM7SUFRWixDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBVTtRQUNqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMs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Q0FBQyxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxJQUFJLEdBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDckMsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztTQUNoQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSx1QkFBdUIsQ0FBQztRQUN4RSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDekMsT0FBTztnQkFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLEtBQUssRUFBRSxFQUFFO2dCQUNULElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixJQUFJLEVBQUUsQ0FBQzthQUNSLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBakZVLGlCQUFpQjtrR0FBakIsaUJBQWlCLG9OQ1Y5Qixrb0NBcUJNLDJDRGRNLFlBQVk7OzJGQUdYLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzBFQUtkLElBQUk7c0JBQVosS0FBSztnQkFFTixXQUFXO3NCQURWLFdBQVc7dUJBQUMsc0JBQXNCO2dCQVExQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ29CLFdBQVc7c0JBQXBDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uL21vZGVscy90YXNrJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnQtdGltZWxpbmUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWVsaW5lLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUaW1lbGluZUNvbXBvbmVudCB7XG4gIHN0YXJ0RGF0ZTogRGF0ZSB8IHN0cmluZyA9IG5ldyBEYXRlKCk7XG4gIEBJbnB1dCgpIGRhdGE6IFRhc2tbXSA9IFtdO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tY3VycmVudC1kYXRlJylcbiAgY3VycmVudERhdGUhOiBudW1iZXI7XG4gIGRhdGFQYXJzZWQ6IGFueSA9IHtcbiAgICBtb250aHM6IFtdLFxuICAgIGRheXM6IFtdLFxuICAgIHdlZWtlbmRzOiBbXVxuICB9O1xuXG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAnZnQtdGltZWxpbmUnLFxuICAgICAgdGhpcy5jbGFzc1xuICAgIF0uam9pbignICcpO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRNb250aCh0aGlzLmNhbGNTdGFydERhdGUoKSk7XG4gIH1cbiAgYWRkTW9udGgoZGF0ZTogRGF0ZSk6IHZvaWQge1xuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5nZXRNb250aChkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RnVsbFllYXIoKSk7XG4gICAgY29uc3QgY3VycmVudERheXMgPSB0aGlzLmRhdGFQYXJzZWQuZGF5cy5sZW5ndGg7XG4gICAgdGhpcy5kYXRhUGFyc2VkLm1vbnRocyA9IFsuLi50aGlzLmRhdGFQYXJzZWQubW9udGhzLCB7IGRhdGU6IG1vbnRoLmRheXNbMF0sIGRheXNJbk1vbnRoOiBtb250aC5kYXlzLmxlbmd0aCB9XTtcbiAgICB0aGlzLmRhdGFQYXJzZWQuZGF5cyA9IFsuLi50aGlzLmRhdGFQYXJzZWQuZGF5cywgLi4ubW9udGguZGF5c107XG4gICAgdGhpcy5kYXRhUGFyc2VkLndlZWtlbmRzID0gWy4uLnRoaXMuZGF0YVBhcnNlZC53ZWVrZW5kcywgLi4ubW9udGgud2Vla2VuZHNdO1xuICAgIGlmICghdGhpcy5jdXJyZW50RGF0ZSAmJiBtb250aC5jdXJyZW50RGF0ZSkge1xuICAgICAgdGhpcy5jdXJyZW50RGF0ZSA9IGN1cnJlbnREYXlzICsgbW9udGguY3VycmVudERhdGU7XG4gICAgfVxuICAgIHRoaXMuZGF0YVBhcnNlZC5kYXlzLnNvbWUoKGRheTogRGF0ZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgaWYgKFswLCA2XS5pbmNsdWRlcyhkYXkuZ2V0RGF5KCkpKSB7XG4gICAgICAgIHRoaXMuZGF0YVBhcnNlZC53ZWVrZW5kU3RhcnQgPSBpbmRleDtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gICAgdGhpcy5wYXJzZVRhc2tzKCk7XG4gIH1cbiAgY2FsY1N0YXJ0RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoKTtcbiAgfVxuICBnZXRNb250aChtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIpOiBhbnkge1xuICAgIGNvbnN0IGRheXMgPSBbXTtcbiAgICBjb25zdCB3ZWVrZW5kcyA9IFtdO1xuICAgIGxldCBjdXJyZW50RGF0ZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCAwKTtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBkYXRlLmdldERhdGUoKTsgaSsrKSB7XG4gICAgICBjb25zdCBpZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBpKTtcbiAgICAgIGlmIChbMCwgNl0uaW5jbHVkZXMoaWRhdGUuZ2V0RGF5KCkpKSB7XG4gICAgICAgIGlmIChpZGF0ZS5nZXREYXkoKSA9PT0gNikge1xuICAgICAgICAgIHdlZWtlbmRzLnB1c2goW2lkYXRlXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2Vla2VuZHNbd2Vla2VuZHMubGVuZ3RoIC0gMV0ucHVzaChpZGF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpZGF0ZS5nZXRUaW1lKCkgPT09IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHRvZGF5LmdldE1vbnRoKCksIHRvZGF5LmdldERhdGUoKSkuZ2V0VGltZSgpKSB7XG4gICAgICAgIGN1cnJlbnREYXRlID0gaSAtIDE7XG4gICAgICB9XG4gICAgICBkYXlzLnB1c2goaWRhdGUpO1xuICAgIH1cbiAgICBjb25zdCBkYXRhOiBhbnkgPSB7IGRheXMsIHdlZWtlbmRzIH07XG4gICAgaWYgKGN1cnJlbnREYXRlKSB7XG4gICAgICBkYXRhLmN1cnJlbnREYXRlID0gY3VycmVudERhdGU7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIHBhcnNlVGFza3MoKTogdm9pZCB7XG4gICAgbGV0IHRhc2tzID0gdGhpcy5kYXRhLmZpbHRlcih0YXNrID0+IHRhc2suZW5kQXQpLyouc29ydCgoYSwgYikgPT4gYS4pKi87XG4gICAgdGhpcy5kYXRhUGFyc2VkLnRhc2tzID0gdGFza3MubWFwKCh0YXNrKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYWJlbDogdGFzay5sYWJlbCxcbiAgICAgICAgc3RhcnQ6IDEwLFxuICAgICAgICB0eXBlOiB0YXNrLnR5cGUsXG4gICAgICAgIHNpemU6IDFcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmdC13ZWVrZW5kc1wiIFtzdHlsZS4tLXN0YXJ0XT1cImRhdGFQYXJzZWQud2Vla2VuZFN0YXJ0XCI+XG4gICAgPGRpdiBjbGFzcz1cImZ0LXdlZWtlbmRzX19pdGVtXCIgW3N0eWxlLi0td2Vla2VuZC1zaXplXT1cIndlZWtlbmQubGVuZ3RoXCIgKm5nRm9yPVwibGV0IHdlZWtlbmQgb2YgZGF0YVBhcnNlZC53ZWVrZW5kc1wiPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZnQtY3VycmVudC1kYXRlXCIgKm5nSWY9XCJjdXJyZW50RGF0ZVwiPjwvZGl2PlxuPGRpdiBjbGFzcz1cImZ0LWhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmdC1oZWFkZXJfX21vbnRoc1wiPlxuICAgICAgICA8ZGl2IFtzdHlsZS4tLWRheXMtaW4tbW9udGhdPVwibW9udGguZGF5c0luTW9udGhcIiAqbmdGb3I9XCJsZXQgbW9udGggb2YgZGF0YVBhcnNlZC5tb250aHM7IGxldCBpID0gaW5kZXhcIj57e1xuICAgICAgICAgICAgbW9udGguZGF0ZVxuICAgICAgICAgICAgfCBkYXRlOiAnTU1NTSwgeXl5eScgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZnQtaGVhZGVyX19kYXlzXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheSBvZiBkYXRhUGFyc2VkLmRheXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwie2FjdGl2ZTogY3VycmVudERhdGUgJiYgY3VycmVudERhdGUgPT09IGl9XCI+e3sgZGF5IHwgZGF0ZTonZCcgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmdC10YXNrc1wiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZnQtdGFza3NfX2l0ZW1cIiBbY2xhc3MudGFza3NfX2l0ZW0tLW1pbGVzdG9uZV09XCJ0YXNrLnR5cGUgPT09ICdtaWxlc3RvbmUnXCJcbiAgICAgICAgW3N0eWxlLi0tc3RhcnRdPVwidGFzay5zdGFydFwiIFtzdHlsZS4tLWRheXNdPVwidGFzay50eXBlID09PSAnbWlsZXN0b25lJyA/IDEgOiB0YXNrLnNpemVcIlxuICAgICAgICBzdHlsZT1cIiAtLWNvbG9yLXJnYjogMTMwLCAxMjEsIDIxMDtcIiAqbmdGb3I9XCJsZXQgdGFzayBvZiBkYXRhUGFyc2VkLnRhc2tzO1wiPnt7IHRhc2subGFiZWwgfX08L2J1dHRvbj5cbjwvZGl2PiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9tb2RlbHMvYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFjdGlvbiB7XG4gICAgY2hpbGRyZW4/OiBBY3Rpb25bXTtcbiAgICBjbGFzcz86IHN0cmluZztcbiAgICBjbGljaz86IChldmVudD86IEV2ZW50KSA9PiB2b2lkO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBpY29uQ29sbGVjdGlvbj86IHN0cmluZztcbiAgICBpY29uTmFtZT86IHN0cmluZztcbiAgICBpZD86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgdHlwZT86IHN0cmluZztcbiAgICBtZXRhZGF0YT86IGFueTtcbiAgICB2YWx1ZT86IGFueTtcbn0iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbW9kZWxzL2ljb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSWNvbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNvbGxlY3Rpb24/OiBzdHJpbmc7XG4gICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgc2l6ZT86IG51bWJlcjtcbn0iXX0=
@@ -1,14 +0,0 @@
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
- }
@@ -1,6 +0,0 @@
1
- export interface Icon {
2
- name: string;
3
- collection?: string;
4
- class?: string;
5
- size?: number;
6
- }
@@ -1,9 +0,0 @@
1
- @import 'components/avatar';
2
- @import 'components/collapsible';
3
- @import 'components/dropdown';
4
- @import 'components/icon';
5
- @import 'components/image';
6
- @import 'components/list';
7
- @import 'components/ph';
8
- @import 'components/popup';
9
- @import 'components/rating';