@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
package/README.md
CHANGED
|
@@ -0,0 +1,75 @@
|
|
|
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 "@factor_ec/utils";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
export class AvatarComponent {
|
|
7
|
+
set src(value) {
|
|
8
|
+
if (value && value.trim() != '') {
|
|
9
|
+
this._src = value;
|
|
10
|
+
let image = new Image();
|
|
11
|
+
image.src = value;
|
|
12
|
+
image.onload = () => {
|
|
13
|
+
if ("decode" in image) {
|
|
14
|
+
image.decode().then(() => {
|
|
15
|
+
this.loaded = true;
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
console.error('Image.decode not available.');
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
set label(value) {
|
|
25
|
+
this._label = value;
|
|
26
|
+
this.initials = this.getInitials(value);
|
|
27
|
+
}
|
|
28
|
+
get backgroundColor() {
|
|
29
|
+
return this.color || this.colorService.hex(this._label);
|
|
30
|
+
}
|
|
31
|
+
get backgroundImage() {
|
|
32
|
+
return this._src ? `url(${this._src})` : '';
|
|
33
|
+
}
|
|
34
|
+
get hostClasses() {
|
|
35
|
+
return [
|
|
36
|
+
'ft-avatar',
|
|
37
|
+
this.class
|
|
38
|
+
].join(' ');
|
|
39
|
+
}
|
|
40
|
+
constructor(colorService) {
|
|
41
|
+
this.colorService = colorService;
|
|
42
|
+
this.class = '';
|
|
43
|
+
}
|
|
44
|
+
ngOnInit() {
|
|
45
|
+
}
|
|
46
|
+
getInitials(value) {
|
|
47
|
+
let allInitials = value.match(/\b\w/g) || [];
|
|
48
|
+
let initials = ((allInitials.shift() || '') + (allInitials.pop() || '')).toUpperCase();
|
|
49
|
+
return initials;
|
|
50
|
+
}
|
|
51
|
+
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 }); }
|
|
52
|
+
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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
53
|
+
}
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
55
|
+
type: Component,
|
|
56
|
+
args: [{ selector: 'ft-avatar', standalone: true, imports: [CommonModule], template: "<div *ngIf=\"!loaded\">{{ initials }}</div>" }]
|
|
57
|
+
}], ctorParameters: function () { return [{ type: i1.ColorService }]; }, propDecorators: { color: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], src: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], label: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], backgroundColor: [{
|
|
64
|
+
type: HostBinding,
|
|
65
|
+
args: ['style.background-color']
|
|
66
|
+
}], backgroundImage: [{
|
|
67
|
+
type: HostBinding,
|
|
68
|
+
args: ['style.background-image']
|
|
69
|
+
}], class: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], hostClasses: [{
|
|
72
|
+
type: HostBinding,
|
|
73
|
+
args: ['class']
|
|
74
|
+
}] } });
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW8vYXZhdGFyL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL2F2YXRhci9hdmF0YXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVUvQyxNQUFNLE9BQU8sZUFBZTtJQU0xQixJQUFhLEdBQUcsQ0FBQyxLQUF5QjtRQUN4QyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7WUFDbEIsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ2xCLElBQUksUUFBUSxJQUFJLEtBQUssRUFBRTtvQkFDckIsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUNyQixDQUFDLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7aUJBQzlDO1lBQ0gsQ0FBQyxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBQ0QsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELElBQTJDLGVBQWU7UUFDeEQsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsSUFBMkMsZUFBZTtRQUN4RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQTBCLFdBQVc7UUFDbkMsT0FBTztZQUNMLFdBQVc7WUFDWCxJQUFJLENBQUMsS0FBSztTQUNYLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQ1UsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFUM0IsVUFBSyxHQUFXLEVBQUUsQ0FBQztJQVV4QixDQUFDO0lBRUwsUUFBUTtJQUVSLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLFdBQVcsR0FBYSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2RCxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0YsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs4R0FuRFUsZUFBZTtrR0FBZixlQUFlLHdTQ1g1Qiw2Q0FBeUMsMkNEUTdCLFlBQVk7OzJGQUdYLGVBQWU7a0JBTjNCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzttR0FNZCxLQUFLO3NCQUFiLEtBQUs7Z0JBR08sR0FBRztzQkFBZixLQUFLO2dCQWdCTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlxQyxlQUFlO3NCQUF6RCxXQUFXO3VCQUFDLHdCQUF3QjtnQkFHTSxlQUFlO3NCQUF6RCxXQUFXO3VCQUFDLHdCQUF3QjtnQkFHNUIsS0FBSztzQkFBYixLQUFLO2dCQUNvQixXQUFXO3NCQUFwQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgQ29sb3JTZXJ2aWNlIH0gZnJvbSAnQGZhY3Rvcl9lYy91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z0LWF2YXRhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJDb21wb25lbnQge1xuICBfbGFiZWwhOiBzdHJpbmc7XG4gIF9zcmMhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNvbG9yITogc3RyaW5nO1xuICBpbml0aWFscyE6IHN0cmluZztcbiAgbG9hZGVkITogYm9vbGVhbjtcbiAgQElucHV0KCkgc2V0IHNyYyh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLnRyaW0oKSAhPSAnJykge1xuICAgICAgdGhpcy5fc3JjID0gdmFsdWU7XG4gICAgICBsZXQgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICAgIGltYWdlLnNyYyA9IHZhbHVlO1xuICAgICAgaW1hZ2Uub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBpZiAoXCJkZWNvZGVcIiBpbiBpbWFnZSkge1xuICAgICAgICAgIGltYWdlLmRlY29kZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkZWQgPSB0cnVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ltYWdlLmRlY29kZSBub3QgYXZhaWxhYmxlLicpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBzZXQgbGFiZWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2xhYmVsID0gdmFsdWU7XG4gICAgdGhpcy5pbml0aWFscyA9IHRoaXMuZ2V0SW5pdGlhbHModmFsdWUpO1xuICB9XG4gIEBIb3N0QmluZGluZygnc3R5bGUuYmFja2dyb3VuZC1jb2xvcicpIGdldCBiYWNrZ3JvdW5kQ29sb3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb2xvciB8fCB0aGlzLmNvbG9yU2VydmljZS5oZXgodGhpcy5fbGFiZWwpO1xuICB9XG4gIEBIb3N0QmluZGluZygnc3R5bGUuYmFja2dyb3VuZC1pbWFnZScpIGdldCBiYWNrZ3JvdW5kSW1hZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3JjID8gYHVybCgke3RoaXMuX3NyY30pYCA6ICcnO1xuICB9XG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAnZnQtYXZhdGFyJyxcbiAgICAgIHRoaXMuY2xhc3NcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29sb3JTZXJ2aWNlOiBDb2xvclNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcblxuICB9XG4gIGdldEluaXRpYWxzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBhbGxJbml0aWFsczogc3RyaW5nW10gPSB2YWx1ZS5tYXRjaCgvXFxiXFx3L2cpIHx8IFtdO1xuICAgIGxldCBpbml0aWFsczogc3RyaW5nID0gKChhbGxJbml0aWFscy5zaGlmdCgpIHx8ICcnKSArIChhbGxJbml0aWFscy5wb3AoKSB8fCAnJykpLnRvVXBwZXJDYXNlKCk7XG4gICAgcmV0dXJuIGluaXRpYWxzO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIWxvYWRlZFwiPnt7IGluaXRpYWxzIH19PC9kaXY+Il19
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Component, HostBinding, Inject, 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 IconComponent {
|
|
6
|
+
set collection(collection) {
|
|
7
|
+
this._collection = collection;
|
|
8
|
+
this.update();
|
|
9
|
+
}
|
|
10
|
+
set mode(mode) {
|
|
11
|
+
this._mode = mode;
|
|
12
|
+
this.update();
|
|
13
|
+
}
|
|
14
|
+
set name(name) {
|
|
15
|
+
this._name = name;
|
|
16
|
+
this.update();
|
|
17
|
+
}
|
|
18
|
+
set path(path) {
|
|
19
|
+
this._path = path;
|
|
20
|
+
this.update();
|
|
21
|
+
}
|
|
22
|
+
get hostClasses() {
|
|
23
|
+
return [
|
|
24
|
+
'ft-icon',
|
|
25
|
+
this.class
|
|
26
|
+
].join(' ');
|
|
27
|
+
}
|
|
28
|
+
constructor(configuration) {
|
|
29
|
+
this.configuration = configuration;
|
|
30
|
+
this.class = '';
|
|
31
|
+
}
|
|
32
|
+
ngOnInit() {
|
|
33
|
+
this.update();
|
|
34
|
+
}
|
|
35
|
+
update() {
|
|
36
|
+
// Set the default collection if the mode is external
|
|
37
|
+
if (!this._collection) {
|
|
38
|
+
if (this.configuration.icon && this.configuration.icon.collection) {
|
|
39
|
+
this._collection = this.configuration.icon.collection;
|
|
40
|
+
}
|
|
41
|
+
else if (this._mode === 'external') {
|
|
42
|
+
this._collection = 'icons';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (!this._mode) {
|
|
46
|
+
if (this.configuration.icon && this.configuration.icon.mode) {
|
|
47
|
+
this._mode = this.configuration.icon.mode;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this._mode = 'external';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (this._mode === 'external') {
|
|
54
|
+
// If the icon mode is external
|
|
55
|
+
if (!this._path) {
|
|
56
|
+
if (this.configuration.icon && this.configuration.icon.path) {
|
|
57
|
+
this._path = this.configuration.icon.path;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this._path = 'assets';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
this.url = `${this._path}/${this._collection}.svg#${this._name}`;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// If the icon mode is inline
|
|
67
|
+
const name = this._collection && this._collection !== 'unset' ? `${this._collection}--${this._name}` : this._name;
|
|
68
|
+
this.url = `#${name}`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IconComponent, deps: [{ token: 'FactorUiConfiguration' }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
72
|
+
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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
73
|
+
}
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IconComponent, decorators: [{
|
|
75
|
+
type: Component,
|
|
76
|
+
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>" }]
|
|
77
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
78
|
+
type: Inject,
|
|
79
|
+
args: ['FactorUiConfiguration']
|
|
80
|
+
}] }]; }, propDecorators: { collection: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], mode: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], name: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], path: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], src: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], class: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], hostClasses: [{
|
|
93
|
+
type: HostBinding,
|
|
94
|
+
args: ['class']
|
|
95
|
+
}] } });
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL2ljb24vaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL2ljb24vaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUy9DLE1BQU0sT0FBTyxhQUFhO0lBS3hCLElBQWEsVUFBVSxDQUFDLFVBQWtCO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBYSxJQUFJLENBQUMsSUFBMkI7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxJQUFhLElBQUksQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBYSxJQUFJLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUtELElBQTBCLFdBQVc7UUFDbkMsT0FBTztZQUNMLFNBQVM7WUFDVCxJQUFJLENBQUMsS0FBSztTQUNYLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQzJDLGFBQThCO1FBQTlCLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQVRoRSxVQUFLLEdBQVcsRUFBRSxDQUFDO0lBVXhCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxNQUFNO1FBQ1oscURBQXFEO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNqRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQzthQUN2RDtpQkFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQzthQUM1QjtTQUNGO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDM0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDM0M7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7YUFDekI7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUU7WUFDN0IsK0JBQStCO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNmLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUMzRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDM0M7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7aUJBQ3ZCO2FBQ0Y7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNsRTthQUFNO1lBQ0wsNkJBQTZCO1lBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDbEgsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQzs4R0F0RVUsYUFBYSxrQkFpQ2QsdUJBQXVCO2tHQWpDdEIsYUFBYSxzT0NWMUIsOExBS2MsMkNERUYsWUFBWTs7MkZBR1gsYUFBYTtrQkFOekIsU0FBUzsrQkFDRSxTQUFTLGNBQ1AsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzswQkFvQ3BCLE1BQU07MkJBQUMsdUJBQXVCOzRDQTVCcEIsVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxJQUFJO3NCQUFoQixLQUFLO2dCQUlPLElBQUk7c0JBQWhCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFJRyxHQUFHO3NCQUFYLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUNvQixXQUFXO3NCQUFwQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVWlDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VpLWNvbmZpZ3VyYXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdC1pY29uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9pY29uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBJY29uQ29tcG9uZW50IHtcbiAgX2NvbGxlY3Rpb24hOiBzdHJpbmc7XG4gIF9uYW1lITogc3RyaW5nO1xuICBfbW9kZSE6ICdpbmxpbmUnIHwgJ2V4dGVybmFsJztcbiAgX3BhdGghOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNldCBjb2xsZWN0aW9uKGNvbGxlY3Rpb246IHN0cmluZykge1xuICAgIHRoaXMuX2NvbGxlY3Rpb24gPSBjb2xsZWN0aW9uO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cbiAgQElucHV0KCkgc2V0IG1vZGUobW9kZTogJ2lubGluZScgfCAnZXh0ZXJuYWwnKSB7XG4gICAgdGhpcy5fbW9kZSA9IG1vZGU7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuICBASW5wdXQoKSBzZXQgbmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9uYW1lID0gbmFtZTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG4gIEBJbnB1dCgpIHNldCBwYXRoKHBhdGg6IHN0cmluZykge1xuICAgIHRoaXMuX3BhdGggPSBwYXRoO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cbiAgQElucHV0KCkgc3JjITogc3RyaW5nO1xuICB1cmwhOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdmdC1pY29uJyxcbiAgICAgIHRoaXMuY2xhc3NcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ0ZhY3RvclVpQ29uZmlndXJhdGlvbicpIHByaXZhdGUgY29uZmlndXJhdGlvbjogVWlDb25maWd1cmF0aW9uXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuICBwcml2YXRlIHVwZGF0ZSgpIHtcbiAgICAvLyBTZXQgdGhlIGRlZmF1bHQgY29sbGVjdGlvbiBpZiB0aGUgbW9kZSBpcyBleHRlcm5hbFxuICAgIGlmICghdGhpcy5fY29sbGVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5pY29uICYmIHRoaXMuY29uZmlndXJhdGlvbi5pY29uLmNvbGxlY3Rpb24pIHtcbiAgICAgICAgdGhpcy5fY29sbGVjdGlvbiA9IHRoaXMuY29uZmlndXJhdGlvbi5pY29uLmNvbGxlY3Rpb247XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX21vZGUgPT09ICdleHRlcm5hbCcpIHtcbiAgICAgICAgdGhpcy5fY29sbGVjdGlvbiA9ICdpY29ucyc7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghdGhpcy5fbW9kZSkge1xuICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5pY29uICYmIHRoaXMuY29uZmlndXJhdGlvbi5pY29uLm1vZGUpIHtcbiAgICAgICAgdGhpcy5fbW9kZSA9IHRoaXMuY29uZmlndXJhdGlvbi5pY29uLm1vZGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9tb2RlID0gJ2V4dGVybmFsJztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuX21vZGUgPT09ICdleHRlcm5hbCcpIHtcbiAgICAgIC8vIElmIHRoZSBpY29uIG1vZGUgaXMgZXh0ZXJuYWxcbiAgICAgIGlmICghdGhpcy5fcGF0aCkge1xuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmljb24gJiYgdGhpcy5jb25maWd1cmF0aW9uLmljb24ucGF0aCkge1xuICAgICAgICAgIHRoaXMuX3BhdGggPSB0aGlzLmNvbmZpZ3VyYXRpb24uaWNvbi5wYXRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3BhdGggPSAnYXNzZXRzJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy51cmwgPSBgJHt0aGlzLl9wYXRofS8ke3RoaXMuX2NvbGxlY3Rpb259LnN2ZyMke3RoaXMuX25hbWV9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgdGhlIGljb24gbW9kZSBpcyBpbmxpbmVcbiAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLl9jb2xsZWN0aW9uICYmIHRoaXMuX2NvbGxlY3Rpb24gIT09ICd1bnNldCcgPyBgJHt0aGlzLl9jb2xsZWN0aW9ufS0tJHt0aGlzLl9uYW1lfWAgOiB0aGlzLl9uYW1lO1xuICAgICAgdGhpcy51cmwgPSBgIyR7bmFtZX1gO1xuICAgIH1cbiAgfVxufVxuIiwiPHN2ZyAqbmdJZj1cIiFzcmM7IGVsc2UgaW1hZ2VUZW1wbGF0ZVwiPlxuICAgIDx1c2UgYXR0ci54bGluazpocmVmPVwie3sgdXJsIH19XCIgYXR0ci5ocmVmPVwie3sgdXJsIH19XCIgLz5cbjwvc3ZnPlxuPG5nLXRlbXBsYXRlICNpbWFnZVRlbXBsYXRlPlxuICAgIDxpbWcgW3NyY109XCJzcmNcIiAvPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { IconComponent } from '../icon/icon.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
export class ImageComponent {
|
|
7
|
+
constructor(element) {
|
|
8
|
+
this.element = element;
|
|
9
|
+
this.class = '';
|
|
10
|
+
this.loading = false;
|
|
11
|
+
this.shown = false;
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
if ("IntersectionObserver" in window) {
|
|
15
|
+
let elementObserver = new IntersectionObserver((entries, observer) => {
|
|
16
|
+
entries.forEach((entry) => {
|
|
17
|
+
if (entry.isIntersecting) {
|
|
18
|
+
let image = new Image();
|
|
19
|
+
image.src = this.src;
|
|
20
|
+
setTimeout(() => {
|
|
21
|
+
if (!this.shown && !this.error) {
|
|
22
|
+
this.loading = true;
|
|
23
|
+
}
|
|
24
|
+
}, 100);
|
|
25
|
+
image.onerror = () => {
|
|
26
|
+
this.error = true;
|
|
27
|
+
this.loading = false;
|
|
28
|
+
};
|
|
29
|
+
image.onload = () => {
|
|
30
|
+
if ("decode" in image) {
|
|
31
|
+
image.decode().then(() => {
|
|
32
|
+
this.loading = false;
|
|
33
|
+
this.shown = true;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.loading = false;
|
|
38
|
+
this.shown = true;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
elementObserver.unobserve(this.element.nativeElement);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}, {
|
|
45
|
+
rootMargin: "0px 0px 200px 0px"
|
|
46
|
+
});
|
|
47
|
+
elementObserver.observe(this.element.nativeElement);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
console.error('IntersectionObserver not available.');
|
|
51
|
+
this.loading = false;
|
|
52
|
+
this.shown = true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
get hostClasses() {
|
|
56
|
+
return [
|
|
57
|
+
'ft-image',
|
|
58
|
+
this.class
|
|
59
|
+
].join(' ');
|
|
60
|
+
}
|
|
61
|
+
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 }); }
|
|
62
|
+
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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "ft-icon", inputs: ["collection", "mode", "name", "path", "src", "class"] }] }); }
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ImageComponent, decorators: [{
|
|
65
|
+
type: Component,
|
|
66
|
+
args: [{ selector: 'ft-image', standalone: true, imports: [
|
|
67
|
+
CommonModule,
|
|
68
|
+
IconComponent
|
|
69
|
+
], template: "<img *ngIf=\"shown\" [src]=\"src\" />\n<ft-icon name=\"warning\" size=\"2\" *ngIf=\"error\"></ft-icon>\n" }]
|
|
70
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { class: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], error: [{
|
|
73
|
+
type: HostBinding,
|
|
74
|
+
args: ['class.ft-image--error']
|
|
75
|
+
}], loading: [{
|
|
76
|
+
type: HostBinding,
|
|
77
|
+
args: ['class.ft-image--loading']
|
|
78
|
+
}], src: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], hostClasses: [{
|
|
81
|
+
type: HostBinding,
|
|
82
|
+
args: ['class']
|
|
83
|
+
}] } });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pby9pbWFnZS9pbWFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL2ltYWdlL2ltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFXdkQsTUFBTSxPQUFPLGNBQWM7SUFPekIsWUFDVSxPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBUHBCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFWSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBRWpFLFVBQUssR0FBWSxLQUFLLENBQUM7SUFJbkIsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLHNCQUFzQixJQUFJLE1BQU0sRUFBRTtZQUNwQyxJQUFJLGVBQWUsR0FBRyxJQUFJLG9CQUFvQixDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUNuRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ3hCLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRTt3QkFDeEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQzt3QkFDeEIsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO3dCQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFOzRCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQ0FDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7NkJBQ3JCO3dCQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDUixLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTs0QkFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7NEJBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUN2QixDQUFDLENBQUM7d0JBQ0YsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7NEJBQ2xCLElBQUksUUFBUSxJQUFJLEtBQUssRUFBRTtnQ0FDckIsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7b0NBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29DQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQ0FDcEIsQ0FBQyxDQUFDLENBQUM7NkJBQ0o7aUNBQU07Z0NBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0NBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDOzZCQUNuQjt3QkFDSCxDQUFDLENBQUM7d0JBQ0YsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3FCQUN2RDtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsRUFBRTtnQkFDRCxVQUFVLEVBQUUsbUJBQW1CO2FBQ2hDLENBQUMsQ0FBQztZQUNILGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUNELElBQTBCLFdBQVc7UUFDbkMsT0FBTztZQUNMLFVBQVU7WUFDVixJQUFJLENBQUMsS0FBSztTQUNYLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQzs4R0F4RFUsY0FBYztrR0FBZCxjQUFjLHFQQ2IzQiwwR0FFQSwyQ0RNSSxZQUFZLG1JQUNaLGFBQWE7OzJGQUlKLGNBQWM7a0JBVDFCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7cUJBQ2Q7aUdBSVEsS0FBSztzQkFBYixLQUFLO2dCQUNnQyxLQUFLO3NCQUExQyxXQUFXO3VCQUFDLHVCQUF1QjtnQkFDSSxPQUFPO3NCQUE5QyxXQUFXO3VCQUFDLHlCQUF5QjtnQkFDN0IsR0FBRztzQkFBWCxLQUFLO2dCQStDb0IsV0FBVztzQkFBcEMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z0LWltYWdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VDb21wb25lbnQge1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnQtaW1hZ2UtLWVycm9yJykgZXJyb3IhOiBib29sZWFuO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZ0LWltYWdlLS1sb2FkaW5nJykgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzcmMhOiBzdHJpbmc7XG4gIHNob3duOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKFwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXJcIiBpbiB3aW5kb3cpIHtcbiAgICAgIGxldCBlbGVtZW50T2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMsIG9ic2VydmVyKSA9PiB7XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgICAgIGxldCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgICAgICAgICAgaW1hZ2Uuc3JjID0gdGhpcy5zcmM7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLnNob3duICYmICF0aGlzLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgIGltYWdlLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpbWFnZS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcImRlY29kZVwiIGluIGltYWdlKSB7XG4gICAgICAgICAgICAgICAgaW1hZ2UuZGVjb2RlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd24gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd24gPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZWxlbWVudE9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sIHtcbiAgICAgICAgcm9vdE1hcmdpbjogXCIwcHggMHB4IDIwMHB4IDBweFwiXG4gICAgICB9KTtcbiAgICAgIGVsZW1lbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgbm90IGF2YWlsYWJsZS4nKTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5zaG93biA9IHRydWU7XG4gICAgfVxuICB9XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2Z0LWltYWdlJyxcbiAgICAgIHRoaXMuY2xhc3NcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxufVxuIiwiPGltZyAqbmdJZj1cInNob3duXCIgW3NyY109XCJzcmNcIiAvPlxuPGZ0LWljb24gbmFtZT1cIndhcm5pbmdcIiBzaXplPVwiMlwiICpuZ0lmPVwiZXJyb3JcIj48L2Z0LWljb24+XG4iXX0=
|
|
@@ -0,0 +1,43 @@
|
|
|
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 ProgressComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.class = '';
|
|
8
|
+
this.mode = 'indeterminate';
|
|
9
|
+
this.overlay = false;
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
this.value = 0;
|
|
13
|
+
}
|
|
14
|
+
get hostClasses() {
|
|
15
|
+
return [
|
|
16
|
+
'ft-progress',
|
|
17
|
+
this.overlay ? 'ft-progress--overlay' : '',
|
|
18
|
+
this.class
|
|
19
|
+
].join(' ');
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: ProgressComponent, isStandalone: true, selector: "lib-progress", inputs: { class: "class", color: "color", mode: "mode", overlay: "overlay", size: "size", value: "value" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ProgressComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'lib-progress', standalone: true, imports: [CommonModule], template: "<svg [ngStyle]=\"{'--ft-bar-color': color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode=='determinate'? 'calc((3.14159265 * 40 * 2 * (100 - '+value+')) / 100)' : null}\">\n </circle>\n</svg>" }]
|
|
27
|
+
}], ctorParameters: function () { return []; }, propDecorators: { class: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], color: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], mode: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], overlay: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], size: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], value: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], hostClasses: [{
|
|
40
|
+
type: HostBinding,
|
|
41
|
+
args: ['class']
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pby9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVEvQyxNQUFNLE9BQU8saUJBQWlCO0lBUTVCO1FBUFMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixTQUFJLEdBQW9DLGVBQWUsQ0FBQztRQUN4RCxZQUFPLEdBQVksS0FBSyxDQUFDO0lBSWxCLENBQUM7SUFFakIsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsYUFBYTtZQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxLQUFLO1NBQ1gsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZCxDQUFDOzhHQXBCVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwyT0NUOUIsdWdCQU9NLDJDRERNLFlBQVk7OzJGQUdYLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzBFQUlkLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wcm9ncmVzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjb2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgbW9kZTogJ2RldGVybWluYXRlJyB8ICdpbmRldGVybWluYXRlJyA9ICdpbmRldGVybWluYXRlJztcbiAgQElucHV0KCkgb3ZlcmxheTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaXplITogbnVtYmVyO1xuICBASW5wdXQoKSB2YWx1ZSE6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmFsdWUgPSAwO1xuICB9XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2Z0LXByb2dyZXNzJyxcbiAgICAgIHRoaXMub3ZlcmxheSA/ICdmdC1wcm9ncmVzcy0tb3ZlcmxheScgOiAnJyxcbiAgICAgIHRoaXMuY2xhc3NcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxufVxuIiwiPHN2ZyBbbmdTdHlsZV09XCJ7Jy0tZnQtYmFyLWNvbG9yJzogY29sb3J9XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiXG4gICAgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkXCI+XG4gICAgPGNpcmNsZSBjbGFzcz1cImZ0LXRyYWNrXCIgY3g9XCI1MFwiIGN5PVwiNTBcIiByPVwiNDBcIiAvPlxuICAgIDxjaXJjbGUgY2xhc3M9XCJmdC1iYXJcIiBbbmdDbGFzc109XCJtb2RlID09PSAnZGV0ZXJtaW5hdGUnID8gJ2Z0LWJhci0tZGV0ZXJtaW5hdGUnIDogJ2Z0LWJhci0taW5kZXRlcm1pbmF0ZSdcIiBjeD1cIjUwXCJcbiAgICAgICAgY3k9XCI1MFwiIHI9XCI0MFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsnc3Ryb2tlLWRhc2hvZmZzZXQnOiBtb2RlPT0nZGV0ZXJtaW5hdGUnPyAnY2FsYygoMy4xNDE1OTI2NSAqIDQwICogMiAqICgxMDAgLSAnK3ZhbHVlKycpKSAvIDEwMCknIDogbnVsbH1cIj5cbiAgICA8L2NpcmNsZT5cbjwvc3ZnPiJdfQ==
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Component, 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 RatingComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.disabled = false;
|
|
8
|
+
this.propagateChange = (_) => { };
|
|
9
|
+
this.readOnly = false;
|
|
10
|
+
this.stars = [
|
|
11
|
+
{ value: 1 },
|
|
12
|
+
{ value: 2 },
|
|
13
|
+
{ value: 3 },
|
|
14
|
+
{ value: 4 },
|
|
15
|
+
{ value: 5 }
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
}
|
|
20
|
+
get value() {
|
|
21
|
+
return this._value;
|
|
22
|
+
}
|
|
23
|
+
set value(value) {
|
|
24
|
+
this._value = value;
|
|
25
|
+
this.propagateChange(this._value);
|
|
26
|
+
}
|
|
27
|
+
registerOnChange(fn) {
|
|
28
|
+
this.propagateChange = fn;
|
|
29
|
+
}
|
|
30
|
+
registerOnTouched(fn) {
|
|
31
|
+
//this.propagateChange = fn;
|
|
32
|
+
}
|
|
33
|
+
setDisabledState(isDisabled) {
|
|
34
|
+
this.disabled = isDisabled;
|
|
35
|
+
}
|
|
36
|
+
setRate(value, isHover) {
|
|
37
|
+
if (isHover) {
|
|
38
|
+
this.hoverValue = value;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this.value = value;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
updateValue(event) {
|
|
45
|
+
this.value = event.target.value;
|
|
46
|
+
}
|
|
47
|
+
writeValue(value) {
|
|
48
|
+
this.value = value;
|
|
49
|
+
}
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: RatingComponent, isStandalone: true, selector: "lib-rating", inputs: { readOnly: "readOnly", value: "value" }, ngImport: i0, template: "<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
52
|
+
}
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RatingComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'lib-rating', standalone: true, imports: [CommonModule], template: "<ng-container *ngFor=\"let star of stars\">\n <ng-container *ngTemplateOutlet=\"!readOnly? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n</ng-container>\n<ng-template #buttonTemplate let-star=\"star\">\n <button type=\"button\" class=\"ft-rating__item\" *ngIf=\"!readOnly; else starTemplate\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>" }]
|
|
56
|
+
}], ctorParameters: function () { return []; }, propDecorators: { readOnly: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], value: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}] } });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW8vcmF0aW5nL3JhdGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL3JhdGluZy9yYXRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFRL0MsTUFBTSxPQUFPLGVBQWU7SUFjMUI7UUFiQSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ25DLFVBQUssR0FBVTtZQUNiLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNaLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNaLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNaLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNaLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtTQUNiLENBQUM7SUFHYyxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFhLEtBQUssQ0FBQyxLQUFVO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUFvQjtRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBb0I7UUFDcEMsNEJBQTRCO0lBQzlCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQWEsRUFBRSxPQUFpQjtRQUN0QyxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUNwQjtJQUNILENBQUM7SUFDRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDOzhHQTlDVSxlQUFlO2tHQUFmLGVBQWUsd0hDVDVCLHV2Q0FnQmMsMkNEVkYsWUFBWTs7MkZBR1gsZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzBFQU9kLFFBQVE7c0JBQWhCLEtBQUs7Z0JBaUJPLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcmF0aW5nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yYXRpbmcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFJhdGluZ0NvbXBvbmVudCB7XG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGhvdmVyVmFsdWUhOiBudW1iZXI7XG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcbiAgQElucHV0KCkgcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3RhcnM6IGFueVtdID0gW1xuICAgIHsgdmFsdWU6IDEgfSxcbiAgICB7IHZhbHVlOiAyIH0sXG4gICAgeyB2YWx1ZTogMyB9LFxuICAgIHsgdmFsdWU6IDQgfSxcbiAgICB7IHZhbHVlOiA1IH1cbiAgXTtcbiAgX3ZhbHVlITogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5fdmFsdWUpO1xuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoXzogYW55KSA9PiB2b2lkKSB7XG4gICAgLy90aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG4gIHNldFJhdGUodmFsdWU6IG51bWJlciwgaXNIb3Zlcj86IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNIb3Zlcikge1xuICAgICAgdGhpcy5ob3ZlclZhbHVlID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgdXBkYXRlVmFsdWUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gIH1cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdGFyIG9mIHN0YXJzXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIiFyZWFkT25seT8gYnV0dG9uVGVtcGxhdGUgOiBzdGFyVGVtcGxhdGU7IGNvbnRleHQ6e3N0YXI6c3Rhcn1cIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNidXR0b25UZW1wbGF0ZSBsZXQtc3Rhcj1cInN0YXJcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImZ0LXJhdGluZ19faXRlbVwiICpuZ0lmPVwiIXJlYWRPbmx5OyBlbHNlIHN0YXJUZW1wbGF0ZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChtb3VzZW92ZXIpPVwic2V0UmF0ZShzdGFyLnZhbHVlLCB0cnVlKVwiIChmb2N1cyk9XCJzZXRSYXRlKHN0YXIudmFsdWUsIHRydWUpXCIgKGJsdXIpPVwic2V0UmF0ZSgwLCB0cnVlKVwiXG4gICAgICAgIChtb3VzZW91dCk9XCJzZXRSYXRlKDAsIHRydWUpXCIgKGNsaWNrKT1cInNldFJhdGUoc3Rhci52YWx1ZSlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXJUZW1wbGF0ZTsgY29udGV4dDp7c3RhcjpzdGFyfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjc3RhclRlbXBsYXRlIGxldC1zdGFyPVwic3RhclwiPlxuICAgIDxzdmcgW25nQ2xhc3NdPVwieydmdC1yYXRpbmdfX2l0ZW0taWNvbi0taG92ZXInOiBob3ZlclZhbHVlID49IHN0YXIudmFsdWUsICdmdC1yYXRpbmdfX2l0ZW0taWNvbi0tYWN0aXZlJzogdmFsdWUgPj0gc3Rhci52YWx1ZX1cIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTE3LjkzIDIxLjMxNWMtLjUzNC40MDgtNS4yMi0zLjE4Ni01Ljg4MS0zLjE4MS0uNjYzIDAtNS4zMDcgMy42NTYtNS44NDYgMy4yNTQtLjUzNy0uNDAzIDEuMjktNi4xNjUgMS4wODEtNi44MjItLjIwOS0uNjU2LTQuOTcyLTQuMTM4LTQuNzcyLTQuNzk2LjIwMS0uNjU4IDYuMDE1LS42MjcgNi41NS0xLjAzNi41MzMtLjQxIDIuMjMzLTYuMjE1IDIuODk1LTYuMjE5LjY2MyAwIDIuNDMgNS43NzkgMi45NjggNi4xODIuNTM5LjQwMyA2LjM1Mi4yOTcgNi41Ni45NTMuMjEuNjU2LTQuNTEzIDQuMTk3LTQuNzE0IDQuODU2LS4yLjY1OCAxLjY5MiA2LjM5OCAxLjE1OSA2LjgwOHpcIiAvPlxuICAgIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -0,0 +1,102 @@
|
|
|
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: "lib-timeline", inputs: { data: "data", class: "class" }, host: { properties: { "style.--current-date": "this.currentDate", "class": "this.hostClasses" } }, ngImport: i0, template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] }); }
|
|
87
|
+
}
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TimelineComponent, decorators: [{
|
|
89
|
+
type: Component,
|
|
90
|
+
args: [{ selector: 'lib-timeline', standalone: true, imports: [CommonModule], template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>" }]
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pby90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lvL3RpbWVsaW5lL3RpbWVsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVMvQyxNQUFNLE9BQU8saUJBQWlCO0lBWTVCLElBQTBCLFdBQVc7UUFDbkMsT0FBTztZQUNMLGFBQWE7WUFDYixJQUFJLENBQUMsS0FBSztTQUNYLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUFBLENBQUM7SUFFRjtRQWxCQSxjQUFTLEdBQWtCLElBQUksSUFBSSxFQUFFLENBQUM7UUFDN0IsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUczQixlQUFVLEdBQVE7WUFDaEIsTUFBTSxFQUFFLEVBQUU7WUFDVixJQUFJLEVBQUUsRUFBRTtZQUNSLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUVPLFVBQUssR0FBVyxFQUFFLENBQUM7SUFRWixDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBVTtRQUNqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM5RyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztTQUNwRDtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQVMsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtnQkFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2dCQUNyQyxPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsYUFBYTtRQUNYLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQWEsRUFBRSxJQUFZO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxXQUFXLEdBQWtCLElBQUksQ0FBQztRQUN0QyxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUN4QixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDeEI7cUJBQU07b0JBQ0wsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUMzQzthQUNGO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDbEcsV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDckI7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxJQUFJLEdBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDckMsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztTQUNoQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQSx1QkFBdUIsQ0FBQztRQUN4RSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDekMsT0FBTztnQkFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLEtBQUssRUFBRSxFQUFFO2dCQUNULElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixJQUFJLEVBQUUsQ0FBQzthQUNSLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBakZVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFOQ1Y5Qixrb0NBcUJNLDJDRGRNLFlBQVk7OzJGQUdYLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzBFQUtkLElBQUk7c0JBQVosS0FBSztnQkFFTixXQUFXO3NCQURWLFdBQVc7dUJBQUMsc0JBQXNCO2dCQVExQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ29CLFdBQVc7c0JBQXBDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uL21vZGVscy90YXNrJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRpbWVsaW5lJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lbGluZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVDb21wb25lbnQge1xuICBzdGFydERhdGU6IERhdGUgfCBzdHJpbmcgPSBuZXcgRGF0ZSgpO1xuICBASW5wdXQoKSBkYXRhOiBUYXNrW10gPSBbXTtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWN1cnJlbnQtZGF0ZScpXG4gIGN1cnJlbnREYXRlITogbnVtYmVyO1xuICBkYXRhUGFyc2VkOiBhbnkgPSB7XG4gICAgbW9udGhzOiBbXSxcbiAgICBkYXlzOiBbXSxcbiAgICB3ZWVrZW5kczogW11cbiAgfTtcblxuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2Z0LXRpbWVsaW5lJyxcbiAgICAgIHRoaXMuY2xhc3NcbiAgICBdLmpvaW4oJyAnKTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRkTW9udGgodGhpcy5jYWxjU3RhcnREYXRlKCkpO1xuICB9XG4gIGFkZE1vbnRoKGRhdGU6IERhdGUpOiB2b2lkIHtcbiAgICBjb25zdCBtb250aCA9IHRoaXMuZ2V0TW9udGgoZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldEZ1bGxZZWFyKCkpO1xuICAgIGNvbnN0IGN1cnJlbnREYXlzID0gdGhpcy5kYXRhUGFyc2VkLmRheXMubGVuZ3RoO1xuICAgIHRoaXMuZGF0YVBhcnNlZC5tb250aHMgPSBbLi4udGhpcy5kYXRhUGFyc2VkLm1vbnRocywgeyBkYXRlOiBtb250aC5kYXlzWzBdLCBkYXlzSW5Nb250aDogbW9udGguZGF5cy5sZW5ndGggfV07XG4gICAgdGhpcy5kYXRhUGFyc2VkLmRheXMgPSBbLi4udGhpcy5kYXRhUGFyc2VkLmRheXMsIC4uLm1vbnRoLmRheXNdO1xuICAgIHRoaXMuZGF0YVBhcnNlZC53ZWVrZW5kcyA9IFsuLi50aGlzLmRhdGFQYXJzZWQud2Vla2VuZHMsIC4uLm1vbnRoLndlZWtlbmRzXTtcbiAgICBpZiAoIXRoaXMuY3VycmVudERhdGUgJiYgbW9udGguY3VycmVudERhdGUpIHtcbiAgICAgIHRoaXMuY3VycmVudERhdGUgPSBjdXJyZW50RGF5cyArIG1vbnRoLmN1cnJlbnREYXRlO1xuICAgIH1cbiAgICB0aGlzLmRhdGFQYXJzZWQuZGF5cy5zb21lKChkYXk6IERhdGUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChbMCwgNl0uaW5jbHVkZXMoZGF5LmdldERheSgpKSkge1xuICAgICAgICB0aGlzLmRhdGFQYXJzZWQud2Vla2VuZFN0YXJ0ID0gaW5kZXg7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMucGFyc2VUYXNrcygpO1xuICB9XG4gIGNhbGNTdGFydERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKCk7XG4gIH1cbiAgZ2V0TW9udGgobW9udGg6IG51bWJlciwgeWVhcjogbnVtYmVyKTogYW55IHtcbiAgICBjb25zdCBkYXlzID0gW107XG4gICAgY29uc3Qgd2Vla2VuZHMgPSBbXTtcbiAgICBsZXQgY3VycmVudERhdGU6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGxldCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgMCk7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gZGF0ZS5nZXREYXRlKCk7IGkrKykge1xuICAgICAgY29uc3QgaWRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgaSk7XG4gICAgICBpZiAoWzAsIDZdLmluY2x1ZGVzKGlkYXRlLmdldERheSgpKSkge1xuICAgICAgICBpZiAoaWRhdGUuZ2V0RGF5KCkgPT09IDYpIHtcbiAgICAgICAgICB3ZWVrZW5kcy5wdXNoKFtpZGF0ZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdlZWtlbmRzW3dlZWtlbmRzLmxlbmd0aCAtIDFdLnB1c2goaWRhdGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaWRhdGUuZ2V0VGltZSgpID09PSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpLCB0b2RheS5nZXRNb250aCgpLCB0b2RheS5nZXREYXRlKCkpLmdldFRpbWUoKSkge1xuICAgICAgICBjdXJyZW50RGF0ZSA9IGkgLSAxO1xuICAgICAgfVxuICAgICAgZGF5cy5wdXNoKGlkYXRlKTtcbiAgICB9XG4gICAgY29uc3QgZGF0YTogYW55ID0geyBkYXlzLCB3ZWVrZW5kcyB9O1xuICAgIGlmIChjdXJyZW50RGF0ZSkge1xuICAgICAgZGF0YS5jdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBwYXJzZVRhc2tzKCk6IHZvaWQge1xuICAgIGxldCB0YXNrcyA9IHRoaXMuZGF0YS5maWx0ZXIodGFzayA9PiB0YXNrLmVuZEF0KS8qLnNvcnQoKGEsIGIpID0+IGEuKSovO1xuICAgIHRoaXMuZGF0YVBhcnNlZC50YXNrcyA9IHRhc2tzLm1hcCgodGFzaykgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGFiZWw6IHRhc2subGFiZWwsXG4gICAgICAgIHN0YXJ0OiAxMCxcbiAgICAgICAgdHlwZTogdGFzay50eXBlLFxuICAgICAgICBzaXplOiAxXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZnQtd2Vla2VuZHNcIiBbc3R5bGUuLS1zdGFydF09XCJkYXRhUGFyc2VkLndlZWtlbmRTdGFydFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmdC13ZWVrZW5kc19faXRlbVwiIFtzdHlsZS4tLXdlZWtlbmQtc2l6ZV09XCJ3ZWVrZW5kLmxlbmd0aFwiICpuZ0Zvcj1cImxldCB3ZWVrZW5kIG9mIGRhdGFQYXJzZWQud2Vla2VuZHNcIj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImZ0LWN1cnJlbnQtZGF0ZVwiICpuZ0lmPVwiY3VycmVudERhdGVcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmdC1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZnQtaGVhZGVyX19tb250aHNcIj5cbiAgICAgICAgPGRpdiBbc3R5bGUuLS1kYXlzLWluLW1vbnRoXT1cIm1vbnRoLmRheXNJbk1vbnRoXCIgKm5nRm9yPVwibGV0IG1vbnRoIG9mIGRhdGFQYXJzZWQubW9udGhzOyBsZXQgaSA9IGluZGV4XCI+e3tcbiAgICAgICAgICAgIG1vbnRoLmRhdGVcbiAgICAgICAgICAgIHwgZGF0ZTogJ01NTU0sIHl5eXknIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZ0LWhlYWRlcl9fZGF5c1wiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkYXkgb2YgZGF0YVBhcnNlZC5kYXlzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInthY3RpdmU6IGN1cnJlbnREYXRlICYmIGN1cnJlbnREYXRlID09PSBpfVwiPnt7IGRheSB8IGRhdGU6J2QnIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZnQtdGFza3NcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImZ0LXRhc2tzX19pdGVtXCIgW2NsYXNzLnRhc2tzX19pdGVtLS1taWxlc3RvbmVdPVwidGFzay50eXBlID09PSAnbWlsZXN0b25lJ1wiXG4gICAgICAgIFtzdHlsZS4tLXN0YXJ0XT1cInRhc2suc3RhcnRcIiBbc3R5bGUuLS1kYXlzXT1cInRhc2sudHlwZSA9PT0gJ21pbGVzdG9uZScgPyAxIDogdGFzay5zaXplXCJcbiAgICAgICAgc3R5bGU9XCIgLS1jb2xvci1yZ2I6IDEzMCwgMTIxLCAyMTA7XCIgKm5nRm9yPVwibGV0IHRhc2sgb2YgZGF0YVBhcnNlZC50YXNrcztcIj57eyB0YXNrLmxhYmVsIH19PC9idXR0b24+XG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { Directive, EventEmitter, Inject, Input, Output, PLATFORM_ID } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ObserveInersectingDirective {
|
|
5
|
+
constructor(element, platformId) {
|
|
6
|
+
this.element = element;
|
|
7
|
+
this.platformId = platformId;
|
|
8
|
+
this.event = new EventEmitter();
|
|
9
|
+
}
|
|
10
|
+
ngOnInit() {
|
|
11
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
12
|
+
if ("IntersectionObserver" in window) {
|
|
13
|
+
const elementObserver = new IntersectionObserver((entries, observer) => {
|
|
14
|
+
entries.forEach((entry) => {
|
|
15
|
+
this.event.emit(entry.isIntersecting);
|
|
16
|
+
});
|
|
17
|
+
}, this.options);
|
|
18
|
+
elementObserver.observe(this.element.nativeElement);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
console.error('ftObserveIntersecting not available in this browser.');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
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 }); }
|
|
26
|
+
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 }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ObserveInersectingDirective, decorators: [{
|
|
29
|
+
type: Directive,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: '[ftObserveInersecting]'
|
|
32
|
+
}]
|
|
33
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Object, decorators: [{
|
|
34
|
+
type: Inject,
|
|
35
|
+
args: [PLATFORM_ID]
|
|
36
|
+
}] }]; }, propDecorators: { options: [{
|
|
37
|
+
type: Input,
|
|
38
|
+
args: ['ftObserveIntersectingOptions']
|
|
39
|
+
}], event: [{
|
|
40
|
+
type: Output,
|
|
41
|
+
args: ['ftObserveIntersecting']
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1pbmVyc2VjdGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL29ic2VydmUtaW5lcnNlY3RpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLeEcsTUFBTSxPQUFPLDJCQUEyQjtJQUl0QyxZQUNVLE9BQW1CLEVBQ0UsVUFBa0I7UUFEdkMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNFLGVBQVUsR0FBVixVQUFVLENBQVE7UUFKaEIsVUFBSyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBSy9FLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxzQkFBc0IsSUFBSSxNQUFNLEVBQUU7Z0JBQ3BDLE1BQU0sZUFBZSxHQUFHLElBQUksb0JBQW9CLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7b0JBQ3JFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUN4QyxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqQixlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDckQ7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO2FBQ3ZFO1NBQ0Y7SUFDSCxDQUFDOzhHQXRCVSwyQkFBMkIsNENBTTVCLFdBQVc7a0dBTlYsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7aUJBQ25DOzswQkFPSSxNQUFNOzJCQUFDLFdBQVc7NENBTGtCLE9BQU87c0JBQTdDLEtBQUs7dUJBQUMsOEJBQThCO2dCQUNKLEtBQUs7c0JBQXJDLE1BQU07dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE91dHB1dCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Z0T2JzZXJ2ZUluZXJzZWN0aW5nXSdcbn0pXG5leHBvcnQgY2xhc3MgT2JzZXJ2ZUluZXJzZWN0aW5nRGlyZWN0aXZlIHtcbiAgQElucHV0KCdmdE9ic2VydmVJbnRlcnNlY3RpbmdPcHRpb25zJykgb3B0aW9ucyE6IHsgcm9vdDogYW55LCByb290TWFyZ2luOiBhbnksIHRocmVzaG9sZDogYW55IH07XG4gIEBPdXRwdXQoJ2Z0T2JzZXJ2ZUludGVyc2VjdGluZycpIGV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0XG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGlmIChcIkludGVyc2VjdGlvbk9ic2VydmVyXCIgaW4gd2luZG93KSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRPYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcywgb2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICBlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50LmVtaXQoZW50cnkuaXNJbnRlcnNlY3RpbmcpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICBlbGVtZW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdmdE9ic2VydmVJbnRlcnNlY3Rpbmcgbm90IGF2YWlsYWJsZSBpbiB0aGlzIGJyb3dzZXIuJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|