@factor_ec/ui 3.0.1 → 4.0.0
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/README.md +1 -1
- package/esm2022/lib/io/avatar/avatar.component.mjs +75 -0
- package/esm2022/lib/io/icon/icon.component.mjs +96 -0
- package/esm2022/lib/io/image/image.component.mjs +84 -0
- package/esm2022/lib/io/progress/progress.component.mjs +43 -0
- package/esm2022/lib/io/rating/rating.component.mjs +61 -0
- package/esm2022/lib/io/timeline/timeline.component.mjs +102 -0
- package/esm2022/lib/observe-inersecting.directive.mjs +43 -0
- package/esm2022/lib/ui.module.mjs +27 -0
- package/esm2022/public-api.mjs +12 -0
- package/fesm2022/factor_ec-ui.mjs +515 -0
- package/fesm2022/factor_ec-ui.mjs.map +1 -0
- package/lib/io/avatar/avatar.component.d.ts +1 -1
- package/lib/io/icon/icon.component.d.ts +1 -1
- package/lib/io/image/image.component.d.ts +1 -1
- 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/observe-inersecting.directive.d.ts +16 -0
- package/lib/ui.module.d.ts +4 -7
- package/package.json +9 -18
- package/public-api.d.ts +2 -13
- package/esm2020/lib/io/avatar/avatar.component.mjs +0 -74
- package/esm2020/lib/io/expression-builder/expression-builder.component.mjs +0 -72
- package/esm2020/lib/io/icon/icon.component.mjs +0 -95
- package/esm2020/lib/io/image/image.component.mjs +0 -80
- package/esm2020/lib/io/io.module.mjs +0 -81
- package/esm2020/lib/io/message/message.component.mjs +0 -30
- package/esm2020/lib/io/message-content/message-content.component.mjs +0 -19
- package/esm2020/lib/io/message.service.mjs +0 -58
- package/esm2020/lib/io/observe-intersecting.directive.mjs +0 -43
- package/esm2020/lib/io/progress/progress.component.mjs +0 -42
- package/esm2020/lib/io/progress.service.mjs +0 -48
- package/esm2020/lib/io/rating/rating.component.mjs +0 -60
- package/esm2020/lib/io/timeline/timeline.component.mjs +0 -101
- package/esm2020/lib/layout/collapsible/collapsible.component.mjs +0 -37
- package/esm2020/lib/layout/layout.module.mjs +0 -28
- package/esm2020/lib/models/action.mjs +0 -2
- package/esm2020/lib/models/content.mjs +0 -2
- package/esm2020/lib/models/icon.mjs +0 -2
- package/esm2020/lib/models/message-options.mjs +0 -2
- package/esm2020/lib/models/module-configuration.mjs +0 -2
- package/esm2020/lib/navigation/list/list.component.mjs +0 -100
- package/esm2020/lib/navigation/navigation.module.mjs +0 -49
- package/esm2020/lib/navigation/toolbar/toolbar.component.mjs +0 -53
- package/esm2020/lib/ui.module.mjs +0 -47
- package/esm2020/public-api.mjs +0 -23
- package/fesm2015/factor_ec-ui.mjs +0 -1053
- package/fesm2015/factor_ec-ui.mjs.map +0 -1
- package/fesm2020/factor_ec-ui.mjs +0 -1044
- package/fesm2020/factor_ec-ui.mjs.map +0 -1
- package/lib/io/expression-builder/expression-builder.component.d.ts +0 -46
- package/lib/io/io.module.d.ts +0 -20
- package/lib/io/message/message.component.d.ts +0 -11
- package/lib/io/message-content/message-content.component.d.ts +0 -7
- package/lib/io/message.service.d.ts +0 -15
- package/lib/io/observe-intersecting.directive.d.ts +0 -16
- package/lib/io/progress.service.d.ts +0 -15
- package/lib/layout/collapsible/collapsible.component.d.ts +0 -10
- package/lib/layout/layout.module.d.ts +0 -9
- package/lib/models/action.d.ts +0 -14
- package/lib/models/content.d.ts +0 -4
- package/lib/models/icon.d.ts +0 -6
- package/lib/models/message-options.d.ts +0 -13
- package/lib/models/module-configuration.d.ts +0 -6
- package/lib/navigation/list/list.component.d.ts +0 -23
- package/lib/navigation/navigation.module.d.ts +0 -14
- package/lib/navigation/toolbar/toolbar.component.d.ts +0 -17
- package/scss/all.scss +0 -5
- package/scss/components/avatar.scss +0 -15
- package/scss/components/collapsible.scss +0 -46
- package/scss/components/dropdown.scss +0 -56
- package/scss/components/icon.scss +0 -40
- package/scss/components/list.scss +0 -65
- package/scss/components/ph.scss +0 -27
- package/scss/components/popup.scss +0 -7
- package/scss/components/rating.scss +0 -61
- package/scss/components.scss +0 -8
- package/scss/mixins/breakpoints.scss +0 -123
- package/scss/mixins.scss +0 -1
- package/scss/reboot.scss +0 -586
- package/scss/root.scss +0 -52
- package/scss/variables.scss +0 -116
- /package/{esm2020 → esm2022}/factor_ec-ui.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/task.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/ui-configuration.mjs +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { ObserveInersectingDirective } from './observe-inersecting.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class UiModule {
|
|
5
|
+
static forRoot(configuration) {
|
|
6
|
+
return {
|
|
7
|
+
ngModule: UiModule,
|
|
8
|
+
providers: [
|
|
9
|
+
{ provide: 'FactorUiConfiguration', useValue: configuration }
|
|
10
|
+
]
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: UiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.2", ngImport: i0, type: UiModule, declarations: [ObserveInersectingDirective] }); }
|
|
15
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: UiModule }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: UiModule, decorators: [{
|
|
18
|
+
type: NgModule,
|
|
19
|
+
args: [{
|
|
20
|
+
declarations: [
|
|
21
|
+
ObserveInersectingDirective
|
|
22
|
+
],
|
|
23
|
+
imports: [],
|
|
24
|
+
exports: []
|
|
25
|
+
}]
|
|
26
|
+
}] });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi91aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBWTlFLE1BQU0sT0FBTyxRQUFRO0lBQ1osTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUErQjtRQUNuRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLFFBQVE7WUFDbEIsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7YUFDOUQ7U0FDRixDQUFDO0lBQ0osQ0FBQzs4R0FSVSxRQUFROytHQUFSLFFBQVEsaUJBUGpCLDJCQUEyQjsrR0FPbEIsUUFBUTs7MkZBQVIsUUFBUTtrQkFWcEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBRVosMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUUsRUFDUjtvQkFDRCxPQUFPLEVBQUUsRUFDUjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVaUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL21vZGVscy91aS1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IE9ic2VydmVJbmVyc2VjdGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vb2JzZXJ2ZS1pbmVyc2VjdGluZy5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgXG4gICAgT2JzZXJ2ZUluZXJzZWN0aW5nRGlyZWN0aXZlXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgXSxcbiAgZXhwb3J0czogW1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIFVpTW9kdWxlIHsgXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWd1cmF0aW9uPzogVWlDb25maWd1cmF0aW9uKTogTW9kdWxlV2l0aFByb3ZpZGVyczxVaU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVWlNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiAnRmFjdG9yVWlDb25maWd1cmF0aW9uJywgdXNlVmFsdWU6IGNvbmZpZ3VyYXRpb24gfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ui
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/ui.module';
|
|
5
|
+
export * from './lib/io/avatar/avatar.component';
|
|
6
|
+
export * from './lib/io/icon/icon.component';
|
|
7
|
+
export * from './lib/io/image/image.component';
|
|
8
|
+
export * from './lib/io/progress/progress.component';
|
|
9
|
+
export * from './lib/io/rating/rating.component';
|
|
10
|
+
export * from './lib/io/timeline/timeline.component';
|
|
11
|
+
export * from './lib/observe-inersecting.directive';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB1aVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pby9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pby9pY29uL2ljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lvL2ltYWdlL2ltYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pby9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW8vcmF0aW5nL3JhdGluZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW8vdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29ic2VydmUtaW5lcnNlY3RpbmcuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,515 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, PLATFORM_ID, Directive, Inject, Input, Output, NgModule, Component, HostBinding } from '@angular/core';
|
|
3
|
+
import * as i1$1 from '@angular/common';
|
|
4
|
+
import { isPlatformBrowser, CommonModule } from '@angular/common';
|
|
5
|
+
import * as i1 from '@factor_ec/utils';
|
|
6
|
+
|
|
7
|
+
class ObserveInersectingDirective {
|
|
8
|
+
constructor(element, platformId) {
|
|
9
|
+
this.element = element;
|
|
10
|
+
this.platformId = platformId;
|
|
11
|
+
this.event = new EventEmitter();
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
15
|
+
if ("IntersectionObserver" in window) {
|
|
16
|
+
const elementObserver = new IntersectionObserver((entries, observer) => {
|
|
17
|
+
entries.forEach((entry) => {
|
|
18
|
+
this.event.emit(entry.isIntersecting);
|
|
19
|
+
});
|
|
20
|
+
}, this.options);
|
|
21
|
+
elementObserver.observe(this.element.nativeElement);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.error('ftObserveIntersecting not available in this browser.');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ObserveInersectingDirective, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.2", type: ObserveInersectingDirective, selector: "[ftObserveInersecting]", inputs: { options: ["ftObserveIntersectingOptions", "options"] }, outputs: { event: "ftObserveIntersecting" }, ngImport: i0 }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ObserveInersectingDirective, decorators: [{
|
|
32
|
+
type: Directive,
|
|
33
|
+
args: [{
|
|
34
|
+
selector: '[ftObserveInersecting]'
|
|
35
|
+
}]
|
|
36
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Object, decorators: [{
|
|
37
|
+
type: Inject,
|
|
38
|
+
args: [PLATFORM_ID]
|
|
39
|
+
}] }]; }, propDecorators: { options: [{
|
|
40
|
+
type: Input,
|
|
41
|
+
args: ['ftObserveIntersectingOptions']
|
|
42
|
+
}], event: [{
|
|
43
|
+
type: Output,
|
|
44
|
+
args: ['ftObserveIntersecting']
|
|
45
|
+
}] } });
|
|
46
|
+
|
|
47
|
+
class UiModule {
|
|
48
|
+
static forRoot(configuration) {
|
|
49
|
+
return {
|
|
50
|
+
ngModule: UiModule,
|
|
51
|
+
providers: [
|
|
52
|
+
{ provide: 'FactorUiConfiguration', useValue: configuration }
|
|
53
|
+
]
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: UiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
57
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.2", ngImport: i0, type: UiModule, declarations: [ObserveInersectingDirective] }); }
|
|
58
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: UiModule }); }
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: UiModule, decorators: [{
|
|
61
|
+
type: NgModule,
|
|
62
|
+
args: [{
|
|
63
|
+
declarations: [
|
|
64
|
+
ObserveInersectingDirective
|
|
65
|
+
],
|
|
66
|
+
imports: [],
|
|
67
|
+
exports: []
|
|
68
|
+
}]
|
|
69
|
+
}] });
|
|
70
|
+
|
|
71
|
+
class AvatarComponent {
|
|
72
|
+
set src(value) {
|
|
73
|
+
if (value && value.trim() != '') {
|
|
74
|
+
this._src = value;
|
|
75
|
+
let image = new Image();
|
|
76
|
+
image.src = value;
|
|
77
|
+
image.onload = () => {
|
|
78
|
+
if ("decode" in image) {
|
|
79
|
+
image.decode().then(() => {
|
|
80
|
+
this.loaded = true;
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
console.error('Image.decode not available.');
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
set label(value) {
|
|
90
|
+
this._label = value;
|
|
91
|
+
this.initials = this.getInitials(value);
|
|
92
|
+
}
|
|
93
|
+
get backgroundColor() {
|
|
94
|
+
return this.color || this.colorService.hex(this._label);
|
|
95
|
+
}
|
|
96
|
+
get backgroundImage() {
|
|
97
|
+
return this._src ? `url(${this._src})` : '';
|
|
98
|
+
}
|
|
99
|
+
get hostClasses() {
|
|
100
|
+
return [
|
|
101
|
+
'ft-avatar',
|
|
102
|
+
this.class
|
|
103
|
+
].join(' ');
|
|
104
|
+
}
|
|
105
|
+
constructor(colorService) {
|
|
106
|
+
this.colorService = colorService;
|
|
107
|
+
this.class = '';
|
|
108
|
+
}
|
|
109
|
+
ngOnInit() {
|
|
110
|
+
}
|
|
111
|
+
getInitials(value) {
|
|
112
|
+
let allInitials = value.match(/\b\w/g) || [];
|
|
113
|
+
let initials = ((allInitials.shift() || '') + (allInitials.pop() || '')).toUpperCase();
|
|
114
|
+
return initials;
|
|
115
|
+
}
|
|
116
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.ColorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
117
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: AvatarComponent, isStandalone: true, selector: "ft-avatar", inputs: { color: "color", src: "src", label: "label", class: "class" }, host: { properties: { "style.background-color": "this.backgroundColor", "style.background-image": "this.backgroundImage", "class": "this.hostClasses" } }, ngImport: i0, template: "<div *ngIf=\"!loaded\">{{ initials }}</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
118
|
+
}
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
120
|
+
type: Component,
|
|
121
|
+
args: [{ selector: 'ft-avatar', standalone: true, imports: [CommonModule], template: "<div *ngIf=\"!loaded\">{{ initials }}</div>" }]
|
|
122
|
+
}], ctorParameters: function () { return [{ type: i1.ColorService }]; }, propDecorators: { color: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], src: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], label: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], backgroundColor: [{
|
|
129
|
+
type: HostBinding,
|
|
130
|
+
args: ['style.background-color']
|
|
131
|
+
}], backgroundImage: [{
|
|
132
|
+
type: HostBinding,
|
|
133
|
+
args: ['style.background-image']
|
|
134
|
+
}], class: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], hostClasses: [{
|
|
137
|
+
type: HostBinding,
|
|
138
|
+
args: ['class']
|
|
139
|
+
}] } });
|
|
140
|
+
|
|
141
|
+
class IconComponent {
|
|
142
|
+
set collection(collection) {
|
|
143
|
+
this._collection = collection;
|
|
144
|
+
this.update();
|
|
145
|
+
}
|
|
146
|
+
set mode(mode) {
|
|
147
|
+
this._mode = mode;
|
|
148
|
+
this.update();
|
|
149
|
+
}
|
|
150
|
+
set name(name) {
|
|
151
|
+
this._name = name;
|
|
152
|
+
this.update();
|
|
153
|
+
}
|
|
154
|
+
set path(path) {
|
|
155
|
+
this._path = path;
|
|
156
|
+
this.update();
|
|
157
|
+
}
|
|
158
|
+
get hostClasses() {
|
|
159
|
+
return [
|
|
160
|
+
'ft-icon',
|
|
161
|
+
this.class
|
|
162
|
+
].join(' ');
|
|
163
|
+
}
|
|
164
|
+
constructor(configuration) {
|
|
165
|
+
this.configuration = configuration;
|
|
166
|
+
this.class = '';
|
|
167
|
+
}
|
|
168
|
+
ngOnInit() {
|
|
169
|
+
this.update();
|
|
170
|
+
}
|
|
171
|
+
update() {
|
|
172
|
+
// Set the default collection if the mode is external
|
|
173
|
+
if (!this._collection) {
|
|
174
|
+
if (this.configuration.icon && this.configuration.icon.collection) {
|
|
175
|
+
this._collection = this.configuration.icon.collection;
|
|
176
|
+
}
|
|
177
|
+
else if (this._mode === 'external') {
|
|
178
|
+
this._collection = 'icons';
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (!this._mode) {
|
|
182
|
+
if (this.configuration.icon && this.configuration.icon.mode) {
|
|
183
|
+
this._mode = this.configuration.icon.mode;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
this._mode = 'external';
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (this._mode === 'external') {
|
|
190
|
+
// If the icon mode is external
|
|
191
|
+
if (!this._path) {
|
|
192
|
+
if (this.configuration.icon && this.configuration.icon.path) {
|
|
193
|
+
this._path = this.configuration.icon.path;
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
this._path = 'assets';
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
this.url = `${this._path}/${this._collection}.svg#${this._name}`;
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
// If the icon mode is inline
|
|
203
|
+
const name = this._collection && this._collection !== 'unset' ? `${this._collection}--${this._name}` : this._name;
|
|
204
|
+
this.url = `#${name}`;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IconComponent, deps: [{ token: 'FactorUiConfiguration' }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
208
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: IconComponent, isStandalone: true, selector: "ft-icon", inputs: { collection: "collection", mode: "mode", name: "name", path: "path", src: "src", class: "class" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<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>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
209
|
+
}
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IconComponent, decorators: [{
|
|
211
|
+
type: Component,
|
|
212
|
+
args: [{ selector: 'ft-icon', standalone: true, imports: [CommonModule], template: "<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>" }]
|
|
213
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
214
|
+
type: Inject,
|
|
215
|
+
args: ['FactorUiConfiguration']
|
|
216
|
+
}] }]; }, propDecorators: { collection: [{
|
|
217
|
+
type: Input
|
|
218
|
+
}], mode: [{
|
|
219
|
+
type: Input
|
|
220
|
+
}], name: [{
|
|
221
|
+
type: Input
|
|
222
|
+
}], path: [{
|
|
223
|
+
type: Input
|
|
224
|
+
}], src: [{
|
|
225
|
+
type: Input
|
|
226
|
+
}], class: [{
|
|
227
|
+
type: Input
|
|
228
|
+
}], hostClasses: [{
|
|
229
|
+
type: HostBinding,
|
|
230
|
+
args: ['class']
|
|
231
|
+
}] } });
|
|
232
|
+
|
|
233
|
+
class ImageComponent {
|
|
234
|
+
constructor(element) {
|
|
235
|
+
this.element = element;
|
|
236
|
+
this.class = '';
|
|
237
|
+
this.loading = false;
|
|
238
|
+
this.shown = false;
|
|
239
|
+
}
|
|
240
|
+
ngOnInit() {
|
|
241
|
+
if ("IntersectionObserver" in window) {
|
|
242
|
+
let elementObserver = new IntersectionObserver((entries, observer) => {
|
|
243
|
+
entries.forEach((entry) => {
|
|
244
|
+
if (entry.isIntersecting) {
|
|
245
|
+
let image = new Image();
|
|
246
|
+
image.src = this.src;
|
|
247
|
+
setTimeout(() => {
|
|
248
|
+
if (!this.shown && !this.error) {
|
|
249
|
+
this.loading = true;
|
|
250
|
+
}
|
|
251
|
+
}, 100);
|
|
252
|
+
image.onerror = () => {
|
|
253
|
+
this.error = true;
|
|
254
|
+
this.loading = false;
|
|
255
|
+
};
|
|
256
|
+
image.onload = () => {
|
|
257
|
+
if ("decode" in image) {
|
|
258
|
+
image.decode().then(() => {
|
|
259
|
+
this.loading = false;
|
|
260
|
+
this.shown = true;
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
this.loading = false;
|
|
265
|
+
this.shown = true;
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
elementObserver.unobserve(this.element.nativeElement);
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
}, {
|
|
272
|
+
rootMargin: "0px 0px 200px 0px"
|
|
273
|
+
});
|
|
274
|
+
elementObserver.observe(this.element.nativeElement);
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
console.error('IntersectionObserver not available.');
|
|
278
|
+
this.loading = false;
|
|
279
|
+
this.shown = true;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
get hostClasses() {
|
|
283
|
+
return [
|
|
284
|
+
'ft-image',
|
|
285
|
+
this.class
|
|
286
|
+
].join(' ');
|
|
287
|
+
}
|
|
288
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ImageComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
289
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: ImageComponent, isStandalone: true, selector: "ft-image", inputs: { class: "class", src: "src" }, host: { properties: { "class.ft-image--error": "this.error", "class.ft-image--loading": "this.loading", "class": "this.hostClasses" } }, ngImport: i0, template: "<img *ngIf=\"shown\" [src]=\"src\" />\n<ft-icon name=\"warning\" size=\"2\" *ngIf=\"error\"></ft-icon>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "src", "class"] }] }); }
|
|
290
|
+
}
|
|
291
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ImageComponent, decorators: [{
|
|
292
|
+
type: Component,
|
|
293
|
+
args: [{ selector: 'ft-image', standalone: true, imports: [
|
|
294
|
+
CommonModule,
|
|
295
|
+
IconComponent
|
|
296
|
+
], template: "<img *ngIf=\"shown\" [src]=\"src\" />\n<ft-icon name=\"warning\" size=\"2\" *ngIf=\"error\"></ft-icon>\n" }]
|
|
297
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { class: [{
|
|
298
|
+
type: Input
|
|
299
|
+
}], error: [{
|
|
300
|
+
type: HostBinding,
|
|
301
|
+
args: ['class.ft-image--error']
|
|
302
|
+
}], loading: [{
|
|
303
|
+
type: HostBinding,
|
|
304
|
+
args: ['class.ft-image--loading']
|
|
305
|
+
}], src: [{
|
|
306
|
+
type: Input
|
|
307
|
+
}], hostClasses: [{
|
|
308
|
+
type: HostBinding,
|
|
309
|
+
args: ['class']
|
|
310
|
+
}] } });
|
|
311
|
+
|
|
312
|
+
class ProgressComponent {
|
|
313
|
+
constructor() {
|
|
314
|
+
this.class = '';
|
|
315
|
+
this.mode = 'indeterminate';
|
|
316
|
+
this.overlay = false;
|
|
317
|
+
}
|
|
318
|
+
ngOnInit() {
|
|
319
|
+
this.value = 0;
|
|
320
|
+
}
|
|
321
|
+
get hostClasses() {
|
|
322
|
+
return [
|
|
323
|
+
'ft-progress',
|
|
324
|
+
this.overlay ? 'ft-progress--overlay' : '',
|
|
325
|
+
this.class
|
|
326
|
+
].join(' ');
|
|
327
|
+
}
|
|
328
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
329
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: ProgressComponent, isStandalone: true, selector: "lib-progress", inputs: { class: "class", color: "color", mode: "mode", overlay: "overlay", size: "size", value: "value" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
330
|
+
}
|
|
331
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ProgressComponent, decorators: [{
|
|
332
|
+
type: Component,
|
|
333
|
+
args: [{ selector: 'lib-progress', standalone: true, imports: [CommonModule], template: "<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>" }]
|
|
334
|
+
}], ctorParameters: function () { return []; }, propDecorators: { class: [{
|
|
335
|
+
type: Input
|
|
336
|
+
}], color: [{
|
|
337
|
+
type: Input
|
|
338
|
+
}], mode: [{
|
|
339
|
+
type: Input
|
|
340
|
+
}], overlay: [{
|
|
341
|
+
type: Input
|
|
342
|
+
}], size: [{
|
|
343
|
+
type: Input
|
|
344
|
+
}], value: [{
|
|
345
|
+
type: Input
|
|
346
|
+
}], hostClasses: [{
|
|
347
|
+
type: HostBinding,
|
|
348
|
+
args: ['class']
|
|
349
|
+
}] } });
|
|
350
|
+
|
|
351
|
+
class RatingComponent {
|
|
352
|
+
constructor() {
|
|
353
|
+
this.disabled = false;
|
|
354
|
+
this.propagateChange = (_) => { };
|
|
355
|
+
this.readOnly = false;
|
|
356
|
+
this.stars = [
|
|
357
|
+
{ value: 1 },
|
|
358
|
+
{ value: 2 },
|
|
359
|
+
{ value: 3 },
|
|
360
|
+
{ value: 4 },
|
|
361
|
+
{ value: 5 }
|
|
362
|
+
];
|
|
363
|
+
}
|
|
364
|
+
ngOnInit() {
|
|
365
|
+
}
|
|
366
|
+
get value() {
|
|
367
|
+
return this._value;
|
|
368
|
+
}
|
|
369
|
+
set value(value) {
|
|
370
|
+
this._value = value;
|
|
371
|
+
this.propagateChange(this._value);
|
|
372
|
+
}
|
|
373
|
+
registerOnChange(fn) {
|
|
374
|
+
this.propagateChange = fn;
|
|
375
|
+
}
|
|
376
|
+
registerOnTouched(fn) {
|
|
377
|
+
//this.propagateChange = fn;
|
|
378
|
+
}
|
|
379
|
+
setDisabledState(isDisabled) {
|
|
380
|
+
this.disabled = isDisabled;
|
|
381
|
+
}
|
|
382
|
+
setRate(value, isHover) {
|
|
383
|
+
if (isHover) {
|
|
384
|
+
this.hoverValue = value;
|
|
385
|
+
}
|
|
386
|
+
else {
|
|
387
|
+
this.value = value;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
updateValue(event) {
|
|
391
|
+
this.value = event.target.value;
|
|
392
|
+
}
|
|
393
|
+
writeValue(value) {
|
|
394
|
+
this.value = value;
|
|
395
|
+
}
|
|
396
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
397
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: RatingComponent, isStandalone: true, selector: "lib-rating", inputs: { readOnly: "readOnly", value: "value" }, ngImport: i0, template: "<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
398
|
+
}
|
|
399
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RatingComponent, decorators: [{
|
|
400
|
+
type: Component,
|
|
401
|
+
args: [{ selector: 'lib-rating', standalone: true, imports: [CommonModule], template: "<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>" }]
|
|
402
|
+
}], ctorParameters: function () { return []; }, propDecorators: { readOnly: [{
|
|
403
|
+
type: Input
|
|
404
|
+
}], value: [{
|
|
405
|
+
type: Input
|
|
406
|
+
}] } });
|
|
407
|
+
|
|
408
|
+
class TimelineComponent {
|
|
409
|
+
get hostClasses() {
|
|
410
|
+
return [
|
|
411
|
+
'ft-timeline',
|
|
412
|
+
this.class
|
|
413
|
+
].join(' ');
|
|
414
|
+
}
|
|
415
|
+
;
|
|
416
|
+
constructor() {
|
|
417
|
+
this.startDate = new Date();
|
|
418
|
+
this.data = [];
|
|
419
|
+
this.dataParsed = {
|
|
420
|
+
months: [],
|
|
421
|
+
days: [],
|
|
422
|
+
weekends: []
|
|
423
|
+
};
|
|
424
|
+
this.class = '';
|
|
425
|
+
}
|
|
426
|
+
ngOnInit() {
|
|
427
|
+
this.addMonth(this.calcStartDate());
|
|
428
|
+
}
|
|
429
|
+
addMonth(date) {
|
|
430
|
+
const month = this.getMonth(date.getMonth(), date.getFullYear());
|
|
431
|
+
const currentDays = this.dataParsed.days.length;
|
|
432
|
+
this.dataParsed.months = [...this.dataParsed.months, { date: month.days[0], daysInMonth: month.days.length }];
|
|
433
|
+
this.dataParsed.days = [...this.dataParsed.days, ...month.days];
|
|
434
|
+
this.dataParsed.weekends = [...this.dataParsed.weekends, ...month.weekends];
|
|
435
|
+
if (!this.currentDate && month.currentDate) {
|
|
436
|
+
this.currentDate = currentDays + month.currentDate;
|
|
437
|
+
}
|
|
438
|
+
this.dataParsed.days.some((day, index) => {
|
|
439
|
+
if ([0, 6].includes(day.getDay())) {
|
|
440
|
+
this.dataParsed.weekendStart = index;
|
|
441
|
+
return true;
|
|
442
|
+
}
|
|
443
|
+
return false;
|
|
444
|
+
});
|
|
445
|
+
this.parseTasks();
|
|
446
|
+
}
|
|
447
|
+
calcStartDate() {
|
|
448
|
+
return new Date();
|
|
449
|
+
}
|
|
450
|
+
getMonth(month, year) {
|
|
451
|
+
const days = [];
|
|
452
|
+
const weekends = [];
|
|
453
|
+
let currentDate = null;
|
|
454
|
+
let today = new Date();
|
|
455
|
+
const date = new Date(year, month + 1, 0);
|
|
456
|
+
for (let i = 1; i <= date.getDate(); i++) {
|
|
457
|
+
const idate = new Date(year, month, i);
|
|
458
|
+
if ([0, 6].includes(idate.getDay())) {
|
|
459
|
+
if (idate.getDay() === 6) {
|
|
460
|
+
weekends.push([idate]);
|
|
461
|
+
}
|
|
462
|
+
else {
|
|
463
|
+
weekends[weekends.length - 1].push(idate);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
if (idate.getTime() === new Date(today.getFullYear(), today.getMonth(), today.getDate()).getTime()) {
|
|
467
|
+
currentDate = i - 1;
|
|
468
|
+
}
|
|
469
|
+
days.push(idate);
|
|
470
|
+
}
|
|
471
|
+
const data = { days, weekends };
|
|
472
|
+
if (currentDate) {
|
|
473
|
+
data.currentDate = currentDate;
|
|
474
|
+
}
|
|
475
|
+
return data;
|
|
476
|
+
}
|
|
477
|
+
parseTasks() {
|
|
478
|
+
let tasks = this.data.filter(task => task.endAt) /*.sort((a, b) => a.)*/;
|
|
479
|
+
this.dataParsed.tasks = tasks.map((task) => {
|
|
480
|
+
return {
|
|
481
|
+
label: task.label,
|
|
482
|
+
start: 10,
|
|
483
|
+
type: task.type,
|
|
484
|
+
size: 1
|
|
485
|
+
};
|
|
486
|
+
});
|
|
487
|
+
}
|
|
488
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
489
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: TimelineComponent, isStandalone: true, selector: "lib-timeline", inputs: { data: "data", class: "class" }, host: { properties: { "style.--current-date": "this.currentDate", "class": "this.hostClasses" } }, ngImport: i0, template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }] }); }
|
|
490
|
+
}
|
|
491
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TimelineComponent, decorators: [{
|
|
492
|
+
type: Component,
|
|
493
|
+
args: [{ selector: 'lib-timeline', standalone: true, imports: [CommonModule], template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>" }]
|
|
494
|
+
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
495
|
+
type: Input
|
|
496
|
+
}], currentDate: [{
|
|
497
|
+
type: HostBinding,
|
|
498
|
+
args: ['style.--current-date']
|
|
499
|
+
}], class: [{
|
|
500
|
+
type: Input
|
|
501
|
+
}], hostClasses: [{
|
|
502
|
+
type: HostBinding,
|
|
503
|
+
args: ['class']
|
|
504
|
+
}] } });
|
|
505
|
+
|
|
506
|
+
/*
|
|
507
|
+
* Public API Surface of ui
|
|
508
|
+
*/
|
|
509
|
+
|
|
510
|
+
/**
|
|
511
|
+
* Generated bundle index. Do not edit.
|
|
512
|
+
*/
|
|
513
|
+
|
|
514
|
+
export { AvatarComponent, IconComponent, ImageComponent, ObserveInersectingDirective, ProgressComponent, RatingComponent, TimelineComponent, UiModule };
|
|
515
|
+
//# sourceMappingURL=factor_ec-ui.mjs.map
|