@factor_ec/ui 4.0.10 → 5.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 +49 -10
- package/fesm2022/factor_ec-ui.mjs +617 -532
- package/fesm2022/factor_ec-ui.mjs.map +1 -1
- package/lib/avatar/avatar.component.d.ts +17 -0
- package/lib/chart.service.d.ts +18 -0
- package/lib/icon/icon.component.d.ts +14 -0
- package/lib/message.service.d.ts +14 -4
- package/lib/models/chart.d.ts +12 -0
- package/lib/models/ui-options.d.ts +9 -0
- package/lib/observe-intersecting.directive.d.ts +8 -9
- package/lib/progress/progress.component.d.ts +10 -0
- package/lib/ui.service.d.ts +9 -0
- package/package.json +7 -7
- package/public-api.d.ts +8 -8
- package/esm2022/factor_ec-ui.mjs +0 -5
- package/esm2022/lib/io/avatar/avatar.component.mjs +0 -75
- package/esm2022/lib/io/icon/icon.component.mjs +0 -96
- package/esm2022/lib/io/image/image.component.mjs +0 -84
- package/esm2022/lib/io/progress/progress.component.mjs +0 -43
- package/esm2022/lib/io/rating/rating.component.mjs +0 -74
- package/esm2022/lib/message-content/message-content.component.mjs +0 -20
- package/esm2022/lib/message-dialog/message-dialog.component.mjs +0 -33
- package/esm2022/lib/message.service.mjs +0 -60
- package/esm2022/lib/models/message-content.mjs +0 -2
- package/esm2022/lib/models/message-options.mjs +0 -2
- package/esm2022/lib/models/task.mjs +0 -2
- package/esm2022/lib/models/ui-configuration.mjs +0 -2
- package/esm2022/lib/nav/timeline/timeline.component.mjs +0 -102
- package/esm2022/lib/observe-intersecting.directive.mjs +0 -44
- package/esm2022/lib/progress.service.mjs +0 -48
- package/esm2022/public-api.mjs +0 -13
- package/lib/io/avatar/avatar.component.d.ts +0 -21
- package/lib/io/icon/icon.component.d.ts +0 -22
- package/lib/io/image/image.component.d.ts +0 -15
- package/lib/io/progress/progress.component.d.ts +0 -14
- package/lib/io/rating/rating.component.d.ts +0 -22
- package/lib/message-content/message-content.component.d.ts +0 -7
- package/lib/message-dialog/message-dialog.component.d.ts +0 -10
- package/lib/models/task.d.ts +0 -10
- package/lib/models/ui-configuration.d.ts +0 -7
- package/lib/nav/timeline/timeline.component.d.ts +0 -18
- package/lib/progress.service.d.ts +0 -15
- 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/image.scss +0 -62
- package/scss/components/index.scss +0 -10
- package/scss/components/list.scss +0 -63
- package/scss/components/ph.scss +0 -27
- package/scss/components/popup.scss +0 -7
- package/scss/components/progress.scss +0 -119
- package/scss/components/rating.scss +0 -61
- package/scss/index.scss +0 -5
- 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
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
export class TimelineComponent {
|
|
6
|
-
get hostClasses() {
|
|
7
|
-
return [
|
|
8
|
-
'ft-timeline',
|
|
9
|
-
this.class
|
|
10
|
-
].join(' ');
|
|
11
|
-
}
|
|
12
|
-
;
|
|
13
|
-
constructor() {
|
|
14
|
-
this.startDate = new Date();
|
|
15
|
-
this.data = [];
|
|
16
|
-
this.dataParsed = {
|
|
17
|
-
months: [],
|
|
18
|
-
days: [],
|
|
19
|
-
weekends: []
|
|
20
|
-
};
|
|
21
|
-
this.class = '';
|
|
22
|
-
}
|
|
23
|
-
ngOnInit() {
|
|
24
|
-
this.addMonth(this.calcStartDate());
|
|
25
|
-
}
|
|
26
|
-
addMonth(date) {
|
|
27
|
-
const month = this.getMonth(date.getMonth(), date.getFullYear());
|
|
28
|
-
const currentDays = this.dataParsed.days.length;
|
|
29
|
-
this.dataParsed.months = [...this.dataParsed.months, { date: month.days[0], daysInMonth: month.days.length }];
|
|
30
|
-
this.dataParsed.days = [...this.dataParsed.days, ...month.days];
|
|
31
|
-
this.dataParsed.weekends = [...this.dataParsed.weekends, ...month.weekends];
|
|
32
|
-
if (!this.currentDate && month.currentDate) {
|
|
33
|
-
this.currentDate = currentDays + month.currentDate;
|
|
34
|
-
}
|
|
35
|
-
this.dataParsed.days.some((day, index) => {
|
|
36
|
-
if ([0, 6].includes(day.getDay())) {
|
|
37
|
-
this.dataParsed.weekendStart = index;
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
return false;
|
|
41
|
-
});
|
|
42
|
-
this.parseTasks();
|
|
43
|
-
}
|
|
44
|
-
calcStartDate() {
|
|
45
|
-
return new Date();
|
|
46
|
-
}
|
|
47
|
-
getMonth(month, year) {
|
|
48
|
-
const days = [];
|
|
49
|
-
const weekends = [];
|
|
50
|
-
let currentDate = null;
|
|
51
|
-
let today = new Date();
|
|
52
|
-
const date = new Date(year, month + 1, 0);
|
|
53
|
-
for (let i = 1; i <= date.getDate(); i++) {
|
|
54
|
-
const idate = new Date(year, month, i);
|
|
55
|
-
if ([0, 6].includes(idate.getDay())) {
|
|
56
|
-
if (idate.getDay() === 6) {
|
|
57
|
-
weekends.push([idate]);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
weekends[weekends.length - 1].push(idate);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
if (idate.getTime() === new Date(today.getFullYear(), today.getMonth(), today.getDate()).getTime()) {
|
|
64
|
-
currentDate = i - 1;
|
|
65
|
-
}
|
|
66
|
-
days.push(idate);
|
|
67
|
-
}
|
|
68
|
-
const data = { days, weekends };
|
|
69
|
-
if (currentDate) {
|
|
70
|
-
data.currentDate = currentDate;
|
|
71
|
-
}
|
|
72
|
-
return data;
|
|
73
|
-
}
|
|
74
|
-
parseTasks() {
|
|
75
|
-
let tasks = this.data.filter(task => task.endAt) /*.sort((a, b) => a.)*/;
|
|
76
|
-
this.dataParsed.tasks = tasks.map((task) => {
|
|
77
|
-
return {
|
|
78
|
-
label: task.label,
|
|
79
|
-
start: 10,
|
|
80
|
-
type: task.type,
|
|
81
|
-
size: 1
|
|
82
|
-
};
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: TimelineComponent, isStandalone: true, selector: "ft-timeline", inputs: { data: "data", class: "class" }, host: { properties: { "style.--current-date": "this.currentDate", "class": "this.hostClasses" } }, ngImport: i0, template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] }); }
|
|
87
|
-
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TimelineComponent, decorators: [{
|
|
89
|
-
type: Component,
|
|
90
|
-
args: [{ selector: 'ft-timeline', standalone: true, imports: [CommonModule], template: "<div class=\"ft-weekends\" [style.--start]=\"dataParsed.weekendStart\">\n <div class=\"ft-weekends__item\" [style.--weekend-size]=\"weekend.length\" *ngFor=\"let weekend of dataParsed.weekends\">\n </div>\n</div>\n<div class=\"ft-current-date\" *ngIf=\"currentDate\"></div>\n<div class=\"ft-header\">\n <div class=\"ft-header__months\">\n <div [style.--days-in-month]=\"month.daysInMonth\" *ngFor=\"let month of dataParsed.months; let i = index\">{{\n month.date\n | date: 'MMMM, yyyy' }}</div>\n </div>\n <div class=\"ft-header__days\">\n <div *ngFor=\"let day of dataParsed.days; let i = index\">\n <div [ngClass]=\"{active: currentDate && currentDate === i}\">{{ day | date:'d' }}</div>\n </div>\n </div>\n</div>\n<div class=\"ft-tasks\">\n <button type=\"button\" class=\"ft-tasks__item\" [class.tasks__item--milestone]=\"task.type === 'milestone'\"\n [style.--start]=\"task.start\" [style.--days]=\"task.type === 'milestone' ? 1 : task.size\"\n style=\" --color-rgb: 130, 121, 210;\" *ngFor=\"let task of dataParsed.tasks;\">{{ task.label }}</button>\n</div>" }]
|
|
91
|
-
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], currentDate: [{
|
|
94
|
-
type: HostBinding,
|
|
95
|
-
args: ['style.--current-date']
|
|
96
|
-
}], class: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], hostClasses: [{
|
|
99
|
-
type: HostBinding,
|
|
100
|
-
args: ['class']
|
|
101
|
-
}] } });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9uYXYvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9uYXYvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUy9DLE1BQU0sT0FBTyxpQkFBaUI7SUFZNUIsSUFBMEIsV0FBVztRQUNuQyxPQUFPO1lBQ0wsYUFBYTtZQUNiLElBQUksQ0FBQyxLQUFLO1NBQ1gsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBQUEsQ0FBQztJQUVGO1FBbEJBLGNBQVMsR0FBa0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM3QixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRzNCLGVBQVUsR0FBUTtZQUNoQixNQUFNLEVBQUUsRUFBRTtZQUNWLElBQUksRUFBRSxFQUFFO1lBQ1IsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDO1FBRU8sVUFBSyxHQUFXLEVBQUUsQ0FBQztJQVFaLENBQUM7SUFFakIsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFVO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FB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SyxDQUFDLENBQUM7U0FDbEI7UUFDRCxNQUFNLElBQUksR0FBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNyQyxJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLHVCQUF1QixDQUFDO1FBQ3hFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN6QyxPQUFPO2dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLElBQUksRUFBRSxDQUFDO2FBQ1IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FqRlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsb05DVjlCLGtvQ0FxQk0sMkNEZE0sWUFBWTs7MkZBR1gsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7MEVBS2QsSUFBSTtzQkFBWixLQUFLO2dCQUVOLFdBQVc7c0JBRFYsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBUTFCLEtBQUs7c0JBQWIsS0FBSztnQkFDb0IsV0FBVztzQkFBcEMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Rhc2snO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdC10aW1lbGluZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZWxpbmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVsaW5lQ29tcG9uZW50IHtcbiAgc3RhcnREYXRlOiBEYXRlIHwgc3RyaW5nID0gbmV3IERhdGUoKTtcbiAgQElucHV0KCkgZGF0YTogVGFza1tdID0gW107XG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS1jdXJyZW50LWRhdGUnKVxuICBjdXJyZW50RGF0ZSE6IG51bWJlcjtcbiAgZGF0YVBhcnNlZDogYW55ID0ge1xuICAgIG1vbnRoczogW10sXG4gICAgZGF5czogW10sXG4gICAgd2Vla2VuZHM6IFtdXG4gIH07XG5cbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdmdC10aW1lbGluZScsXG4gICAgICB0aGlzLmNsYXNzXG4gICAgXS5qb2luKCcgJyk7XG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFkZE1vbnRoKHRoaXMuY2FsY1N0YXJ0RGF0ZSgpKTtcbiAgfVxuICBhZGRNb250aChkYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgY29uc3QgbW9udGggPSB0aGlzLmdldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXRGdWxsWWVhcigpKTtcbiAgICBjb25zdCBjdXJyZW50RGF5cyA9IHRoaXMuZGF0YVBhcnNlZC5kYXlzLmxlbmd0aDtcbiAgICB0aGlzLmRhdGFQYXJzZWQubW9udGhzID0gWy4uLnRoaXMuZGF0YVBhcnNlZC5tb250aHMsIHsgZGF0ZTogbW9udGguZGF5c1swXSwgZGF5c0luTW9udGg6IG1vbnRoLmRheXMubGVuZ3RoIH1dO1xuICAgIHRoaXMuZGF0YVBhcnNlZC5kYXlzID0gWy4uLnRoaXMuZGF0YVBhcnNlZC5kYXlzLCAuLi5tb250aC5kYXlzXTtcbiAgICB0aGlzLmRhdGFQYXJzZWQud2Vla2VuZHMgPSBbLi4udGhpcy5kYXRhUGFyc2VkLndlZWtlbmRzLCAuLi5tb250aC53ZWVrZW5kc107XG4gICAgaWYgKCF0aGlzLmN1cnJlbnREYXRlICYmIG1vbnRoLmN1cnJlbnREYXRlKSB7XG4gICAgICB0aGlzLmN1cnJlbnREYXRlID0gY3VycmVudERheXMgKyBtb250aC5jdXJyZW50RGF0ZTtcbiAgICB9XG4gICAgdGhpcy5kYXRhUGFyc2VkLmRheXMuc29tZSgoZGF5OiBEYXRlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoWzAsIDZdLmluY2x1ZGVzKGRheS5nZXREYXkoKSkpIHtcbiAgICAgICAgdGhpcy5kYXRhUGFyc2VkLndlZWtlbmRTdGFydCA9IGluZGV4O1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcnNlVGFza3MoKTtcbiAgfVxuICBjYWxjU3RhcnREYXRlKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZSgpO1xuICB9XG4gIGdldE1vbnRoKG1vbnRoOiBudW1iZXIsIHllYXI6IG51bWJlcik6IGFueSB7XG4gICAgY29uc3QgZGF5cyA9IFtdO1xuICAgIGNvbnN0IHdlZWtlbmRzID0gW107XG4gICAgbGV0IGN1cnJlbnREYXRlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIDApO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGRhdGUuZ2V0RGF0ZSgpOyBpKyspIHtcbiAgICAgIGNvbnN0IGlkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGkpO1xuICAgICAgaWYgKFswLCA2XS5pbmNsdWRlcyhpZGF0ZS5nZXREYXkoKSkpIHtcbiAgICAgICAgaWYgKGlkYXRlLmdldERheSgpID09PSA2KSB7XG4gICAgICAgICAgd2Vla2VuZHMucHVzaChbaWRhdGVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3ZWVrZW5kc1t3ZWVrZW5kcy5sZW5ndGggLSAxXS5wdXNoKGlkYXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlkYXRlLmdldFRpbWUoKSA9PT0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgdG9kYXkuZ2V0TW9udGgoKSwgdG9kYXkuZ2V0RGF0ZSgpKS5nZXRUaW1lKCkpIHtcbiAgICAgICAgY3VycmVudERhdGUgPSBpIC0gMTtcbiAgICAgIH1cbiAgICAgIGRheXMucHVzaChpZGF0ZSk7XG4gICAgfVxuICAgIGNvbnN0IGRhdGE6IGFueSA9IHsgZGF5cywgd2Vla2VuZHMgfTtcbiAgICBpZiAoY3VycmVudERhdGUpIHtcbiAgICAgIGRhdGEuY3VycmVudERhdGUgPSBjdXJyZW50RGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgcGFyc2VUYXNrcygpOiB2b2lkIHtcbiAgICBsZXQgdGFza3MgPSB0aGlzLmRhdGEuZmlsdGVyKHRhc2sgPT4gdGFzay5lbmRBdCkvKi5zb3J0KChhLCBiKSA9PiBhLikqLztcbiAgICB0aGlzLmRhdGFQYXJzZWQudGFza3MgPSB0YXNrcy5tYXAoKHRhc2spID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxhYmVsOiB0YXNrLmxhYmVsLFxuICAgICAgICBzdGFydDogMTAsXG4gICAgICAgIHR5cGU6IHRhc2sudHlwZSxcbiAgICAgICAgc2l6ZTogMVxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZ0LXdlZWtlbmRzXCIgW3N0eWxlLi0tc3RhcnRdPVwiZGF0YVBhcnNlZC53ZWVrZW5kU3RhcnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZnQtd2Vla2VuZHNfX2l0ZW1cIiBbc3R5bGUuLS13ZWVrZW5kLXNpemVdPVwid2Vla2VuZC5sZW5ndGhcIiAqbmdGb3I9XCJsZXQgd2Vla2VuZCBvZiBkYXRhUGFyc2VkLndlZWtlbmRzXCI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmdC1jdXJyZW50LWRhdGVcIiAqbmdJZj1cImN1cnJlbnREYXRlXCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwiZnQtaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZ0LWhlYWRlcl9fbW9udGhzXCI+XG4gICAgICAgIDxkaXYgW3N0eWxlLi0tZGF5cy1pbi1tb250aF09XCJtb250aC5kYXlzSW5Nb250aFwiICpuZ0Zvcj1cImxldCBtb250aCBvZiBkYXRhUGFyc2VkLm1vbnRoczsgbGV0IGkgPSBpbmRleFwiPnt7XG4gICAgICAgICAgICBtb250aC5kYXRlXG4gICAgICAgICAgICB8IGRhdGU6ICdNTU1NLCB5eXl5JyB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmdC1oZWFkZXJfX2RheXNcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5IG9mIGRhdGFQYXJzZWQuZGF5czsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7YWN0aXZlOiBjdXJyZW50RGF0ZSAmJiBjdXJyZW50RGF0ZSA9PT0gaX1cIj57eyBkYXkgfCBkYXRlOidkJyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImZ0LXRhc2tzXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJmdC10YXNrc19faXRlbVwiIFtjbGFzcy50YXNrc19faXRlbS0tbWlsZXN0b25lXT1cInRhc2sudHlwZSA9PT0gJ21pbGVzdG9uZSdcIlxuICAgICAgICBbc3R5bGUuLS1zdGFydF09XCJ0YXNrLnN0YXJ0XCIgW3N0eWxlLi0tZGF5c109XCJ0YXNrLnR5cGUgPT09ICdtaWxlc3RvbmUnID8gMSA6IHRhc2suc2l6ZVwiXG4gICAgICAgIHN0eWxlPVwiIC0tY29sb3ItcmdiOiAxMzAsIDEyMSwgMjEwO1wiICpuZ0Zvcj1cImxldCB0YXNrIG9mIGRhdGFQYXJzZWQudGFza3M7XCI+e3sgdGFzay5sYWJlbCB9fTwvYnV0dG9uPlxuPC9kaXY+Il19
|
|
@@ -1,44 +0,0 @@
|
|
|
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 ObserveIntersectingDirective {
|
|
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: ObserveIntersectingDirective, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.2", type: ObserveIntersectingDirective, isStandalone: true, selector: "[ftObserveIntersecting]", inputs: { options: ["ftObserveIntersectingOptions", "options"] }, outputs: { event: "ftObserveIntersecting" }, ngImport: i0 }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ObserveIntersectingDirective, decorators: [{
|
|
29
|
-
type: Directive,
|
|
30
|
-
args: [{
|
|
31
|
-
selector: '[ftObserveIntersecting]',
|
|
32
|
-
standalone: true
|
|
33
|
-
}]
|
|
34
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
35
|
-
type: Inject,
|
|
36
|
-
args: [PLATFORM_ID]
|
|
37
|
-
}] }]; }, propDecorators: { options: [{
|
|
38
|
-
type: Input,
|
|
39
|
-
args: ['ftObserveIntersectingOptions']
|
|
40
|
-
}], event: [{
|
|
41
|
-
type: Output,
|
|
42
|
-
args: ['ftObserveIntersecting']
|
|
43
|
-
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1pbnRlcnNlY3RpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9vYnNlcnZlLWludGVyc2VjdGluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1oSCxNQUFNLE9BQU8sNEJBQTRCO0lBSXZDLFlBQ1UsT0FBbUIsRUFDVyxhQUFxQixFQUFFO1FBRHJELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDVyxlQUFVLEdBQVYsVUFBVSxDQUFhO1FBSjlCLFVBQUssR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUsvRSxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3RDLElBQUksc0JBQXNCLElBQUksTUFBTSxFQUFFO2dCQUNwQyxNQUFNLGVBQWUsR0FBRyxJQUFJLG9CQUFvQixDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFO29CQUNyRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDeEMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakIsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ3JEO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQzthQUN2RTtTQUNGO0lBQ0gsQ0FBQzs4R0F0QlUsNEJBQTRCLDRDQU03QixXQUFXO2tHQU5WLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFKeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQU9JLE1BQU07MkJBQUMsV0FBVzs0Q0FMa0IsT0FBTztzQkFBN0MsS0FBSzt1QkFBQyw4QkFBOEI7Z0JBQ0osS0FBSztzQkFBckMsTUFBTTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmdE9ic2VydmVJbnRlcnNlY3RpbmddJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBPYnNlcnZlSW50ZXJzZWN0aW5nRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdmdE9ic2VydmVJbnRlcnNlY3RpbmdPcHRpb25zJykgb3B0aW9ucyE6IHsgcm9vdD86IGFueSwgcm9vdE1hcmdpbj86IGFueSwgdGhyZXNob2xkPzogYW55IH07XG4gIEBPdXRwdXQoJ2Z0T2JzZXJ2ZUludGVyc2VjdGluZycpIGV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZDogb2JqZWN0ID0ge31cbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgaWYgKFwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXJcIiBpbiB3aW5kb3cpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudE9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzLCBvYnNlcnZlcikgPT4ge1xuICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnQuZW1pdChlbnRyeS5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIGVsZW1lbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Z0T2JzZXJ2ZUludGVyc2VjdGluZyBub3QgYXZhaWxhYmxlIGluIHRoaXMgYnJvd3Nlci4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { ApplicationRef, Injectable } from '@angular/core';
|
|
2
|
-
import { ProgressComponent } from './io//progress/progress.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ProgressService {
|
|
5
|
-
constructor(viewContainerRef, injector) {
|
|
6
|
-
this.viewContainerRef = viewContainerRef;
|
|
7
|
-
this.injector = injector;
|
|
8
|
-
}
|
|
9
|
-
show() {
|
|
10
|
-
if (!this.componentRef) {
|
|
11
|
-
this.appRef = this.injector.get(ApplicationRef);
|
|
12
|
-
// 1. Create a component reference from the component
|
|
13
|
-
this.componentRef = this.viewContainerRef.createComponent(ProgressComponent);
|
|
14
|
-
// 2. Attach component to the appRef so that it's inside the ng component tree
|
|
15
|
-
this.appRef.attachView(this.componentRef.hostView);
|
|
16
|
-
this.componentRef.instance.overlay = true;
|
|
17
|
-
// 3. Get DOM element from component
|
|
18
|
-
const domElem = this.componentRef.hostView
|
|
19
|
-
.rootNodes[0];
|
|
20
|
-
// 4. Append DOM element to the body
|
|
21
|
-
document.body.appendChild(domElem);
|
|
22
|
-
return true;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
hide() {
|
|
29
|
-
if (this.componentRef) {
|
|
30
|
-
this.appRef.detachView(this.componentRef.hostView);
|
|
31
|
-
this.componentRef.destroy();
|
|
32
|
-
this.componentRef = null;
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ProgressService, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
40
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ProgressService, providedIn: 'root' }); }
|
|
41
|
-
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: ProgressService, decorators: [{
|
|
43
|
-
type: Injectable,
|
|
44
|
-
args: [{
|
|
45
|
-
providedIn: 'root'
|
|
46
|
-
}]
|
|
47
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }]; } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvcHJvZ3Jlc3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFpQyxVQUFVLEVBQThCLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUt0RSxNQUFNLE9BQU8sZUFBZTtJQUsxQixZQUNVLGdCQUFrQyxFQUNsQyxRQUFrQjtRQURsQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDeEIsQ0FBQztJQUVMLElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2hELHNEQUFzRDtZQUN0RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUU3RSw4RUFBOEU7WUFDOUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBRTFDLG9DQUFvQztZQUNwQyxNQUFNLE9BQU8sR0FBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQWlDO2lCQUNqRSxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1lBRS9CLG9DQUFvQztZQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDOzhHQXhDVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRSZWYsIEVtYmVkZGVkVmlld1JlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9pby8vcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NTZXJ2aWNlIHtcbiAgYXBwUmVmITogQXBwbGljYXRpb25SZWY7XG4gIGNvbXBvbmVudFJlZiE6IENvbXBvbmVudFJlZjxQcm9ncmVzc0NvbXBvbmVudD4gfCBudWxsO1xuICBkb21FbGVtITogSFRNTEVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICkgeyB9XG5cbiAgc2hvdygpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmFwcFJlZiA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uUmVmKTtcbiAgICAgIC8vIDEuIENyZWF0ZSBhIGNvbXBvbmVudCByZWZlcmVuY2UgZnJvbSB0aGUgY29tcG9uZW50IFxuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFByb2dyZXNzQ29tcG9uZW50KTtcblxuICAgICAgLy8gMi4gQXR0YWNoIGNvbXBvbmVudCB0byB0aGUgYXBwUmVmIHNvIHRoYXQgaXQncyBpbnNpZGUgdGhlIG5nIGNvbXBvbmVudCB0cmVlXG4gICAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLm92ZXJsYXkgPSB0cnVlO1xuXG4gICAgICAvLyAzLiBHZXQgRE9NIGVsZW1lbnQgZnJvbSBjb21wb25lbnRcbiAgICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pXG4gICAgICAgIC5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIC8vIDQuIEFwcGVuZCBET00gZWxlbWVudCB0byB0aGUgYm9keVxuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIGhpZGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of ui
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/io/avatar/avatar.component';
|
|
5
|
-
export * from './lib/io/icon/icon.component';
|
|
6
|
-
export * from './lib/io/image/image.component';
|
|
7
|
-
export * from './lib/io/progress/progress.component';
|
|
8
|
-
export * from './lib/io/rating/rating.component';
|
|
9
|
-
export * from './lib/nav/timeline/timeline.component';
|
|
10
|
-
export * from './lib/observe-intersecting.directive';
|
|
11
|
-
export * from './lib/message.service';
|
|
12
|
-
export * from './lib/progress.service';
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHVpXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW8vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW8vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pby9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW8vcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lvL3JhdGluZy9yYXRpbmcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25hdi90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JzZXJ2ZS1pbnRlcnNlY3RpbmcuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm9ncmVzcy5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ColorService } from '@factor_ec/utils';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class AvatarComponent {
|
|
4
|
-
private colorService;
|
|
5
|
-
_label: string;
|
|
6
|
-
_src: string;
|
|
7
|
-
color: string;
|
|
8
|
-
initials: string;
|
|
9
|
-
loaded: boolean;
|
|
10
|
-
set src(value: string | undefined);
|
|
11
|
-
set label(value: string);
|
|
12
|
-
get backgroundColor(): string;
|
|
13
|
-
get backgroundImage(): string;
|
|
14
|
-
class: string;
|
|
15
|
-
get hostClasses(): string;
|
|
16
|
-
constructor(colorService: ColorService);
|
|
17
|
-
ngOnInit(): void;
|
|
18
|
-
getInitials(value: string): string;
|
|
19
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AvatarComponent, never>;
|
|
20
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AvatarComponent, "ft-avatar", never, { "color": { "alias": "color"; "required": false; }; "src": { "alias": "src"; "required": false; }; "label": { "alias": "label"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
|
|
21
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { UiConfiguration } from '../../models/ui-configuration';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class IconComponent {
|
|
4
|
-
private configuration;
|
|
5
|
-
_collection: string;
|
|
6
|
-
_name: string;
|
|
7
|
-
_mode: 'inline' | 'external';
|
|
8
|
-
_path: string;
|
|
9
|
-
set collection(collection: string);
|
|
10
|
-
set mode(mode: 'inline' | 'external');
|
|
11
|
-
set name(name: string);
|
|
12
|
-
set path(path: string);
|
|
13
|
-
src: string;
|
|
14
|
-
url: string;
|
|
15
|
-
class: string;
|
|
16
|
-
get hostClasses(): string;
|
|
17
|
-
constructor(configuration: UiConfiguration);
|
|
18
|
-
ngOnInit(): void;
|
|
19
|
-
private update;
|
|
20
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<IconComponent, never>;
|
|
21
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "ft-icon", never, { "collection": { "alias": "collection"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "name": { "alias": "name"; "required": false; }; "path": { "alias": "path"; "required": false; }; "src": { "alias": "src"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
|
|
22
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ElementRef } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class ImageComponent {
|
|
4
|
-
private element;
|
|
5
|
-
class: string;
|
|
6
|
-
error: boolean;
|
|
7
|
-
loading: boolean;
|
|
8
|
-
src: string;
|
|
9
|
-
shown: boolean;
|
|
10
|
-
constructor(element: ElementRef);
|
|
11
|
-
ngOnInit(): void;
|
|
12
|
-
get hostClasses(): string;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ImageComponent, never>;
|
|
14
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ImageComponent, "ft-image", never, { "class": { "alias": "class"; "required": false; }; "src": { "alias": "src"; "required": false; }; }, {}, never, never, true, never>;
|
|
15
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class ProgressComponent {
|
|
3
|
-
class: string;
|
|
4
|
-
color: string;
|
|
5
|
-
mode: 'determinate' | 'indeterminate';
|
|
6
|
-
overlay: boolean;
|
|
7
|
-
size: number;
|
|
8
|
-
value: number;
|
|
9
|
-
constructor();
|
|
10
|
-
ngOnInit(): void;
|
|
11
|
-
get hostClasses(): string;
|
|
12
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ProgressComponent, never>;
|
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ProgressComponent, "ft-progress", never, { "class": { "alias": "class"; "required": false; }; "color": { "alias": "color"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "overlay": { "alias": "overlay"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
|
|
14
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ControlValueAccessor } from '@angular/forms';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class RatingComponent implements ControlValueAccessor {
|
|
4
|
-
disabled: boolean;
|
|
5
|
-
hoverValue: number;
|
|
6
|
-
propagateChange: (_: any) => void;
|
|
7
|
-
readOnly: boolean;
|
|
8
|
-
stars: any[];
|
|
9
|
-
_value: number;
|
|
10
|
-
constructor();
|
|
11
|
-
ngOnInit(): void;
|
|
12
|
-
get value(): any;
|
|
13
|
-
set value(value: any);
|
|
14
|
-
registerOnChange(fn: (_: any) => void): void;
|
|
15
|
-
registerOnTouched(fn: (_: any) => void): void;
|
|
16
|
-
setDisabledState(isDisabled: boolean): void;
|
|
17
|
-
setRate(value: number, isHover?: boolean): void;
|
|
18
|
-
updateValue(event: any): void;
|
|
19
|
-
writeValue(value: string): void;
|
|
20
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RatingComponent, never>;
|
|
21
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RatingComponent, "ft-rating", never, { "readOnly": { "alias": "readOnly"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
|
|
22
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class MessageContentComponent {
|
|
3
|
-
data: any;
|
|
4
|
-
constructor(data: any);
|
|
5
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MessageContentComponent, never>;
|
|
6
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MessageContentComponent, "ft-message-content", never, {}, {}, never, never, true, never>;
|
|
7
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class MessageDialogComponent {
|
|
4
|
-
data: any;
|
|
5
|
-
beforeSelect: EventEmitter<any>;
|
|
6
|
-
constructor(data: any);
|
|
7
|
-
select(value: string): void;
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MessageDialogComponent, never>;
|
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MessageDialogComponent, "ft-message-dialog", never, {}, { "beforeSelect": "beforeSelect"; }, never, never, true, never>;
|
|
10
|
-
}
|
package/lib/models/task.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Task } from '../../models/task';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class TimelineComponent {
|
|
4
|
-
startDate: Date | string;
|
|
5
|
-
data: Task[];
|
|
6
|
-
currentDate: number;
|
|
7
|
-
dataParsed: any;
|
|
8
|
-
class: string;
|
|
9
|
-
get hostClasses(): string;
|
|
10
|
-
constructor();
|
|
11
|
-
ngOnInit(): void;
|
|
12
|
-
addMonth(date: Date): void;
|
|
13
|
-
calcStartDate(): Date;
|
|
14
|
-
getMonth(month: number, year: number): any;
|
|
15
|
-
parseTasks(): void;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TimelineComponent, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TimelineComponent, "ft-timeline", never, { "data": { "alias": "data"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
|
|
18
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ApplicationRef, ComponentRef, Injector, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { ProgressComponent } from './io//progress/progress.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class ProgressService {
|
|
5
|
-
private viewContainerRef;
|
|
6
|
-
private injector;
|
|
7
|
-
appRef: ApplicationRef;
|
|
8
|
-
componentRef: ComponentRef<ProgressComponent> | null;
|
|
9
|
-
domElem: HTMLElement;
|
|
10
|
-
constructor(viewContainerRef: ViewContainerRef, injector: Injector);
|
|
11
|
-
show(): boolean;
|
|
12
|
-
hide(): boolean;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ProgressService, never>;
|
|
14
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<ProgressService>;
|
|
15
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
.ft-avatar {
|
|
2
|
-
display: inline-flex;
|
|
3
|
-
align-items: center;
|
|
4
|
-
justify-content: center;
|
|
5
|
-
color: #fff;
|
|
6
|
-
background-color: var(--ft-avatar-bg);
|
|
7
|
-
background-size: cover;
|
|
8
|
-
background-repeat: no-repeat;
|
|
9
|
-
border-radius: calc(var(--ft-avatar-size) / 2);
|
|
10
|
-
font-size: calc(var(--ft-avatar-size) - (var(--ft-avatar-size) * 0.6));
|
|
11
|
-
min-width: var(--ft-avatar-size);
|
|
12
|
-
min-height: var(--ft-avatar-size);
|
|
13
|
-
cursor: default;
|
|
14
|
-
user-select: none;
|
|
15
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
.ft-collapsible {
|
|
2
|
-
transition: max-height 0.2s;
|
|
3
|
-
max-height: 100vh;
|
|
4
|
-
display: flex;
|
|
5
|
-
flex-direction: column;
|
|
6
|
-
&.ft-collapsible--show {
|
|
7
|
-
.ft-collapsible__header {
|
|
8
|
-
.ft-item__toggle {
|
|
9
|
-
transform: rotate(180deg);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
&:not(.ft-collapsible--show) {
|
|
14
|
-
.ft-collapsible__content {
|
|
15
|
-
max-height: 0;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
&__header {
|
|
19
|
-
&.ft-button {
|
|
20
|
-
font-weight: 600;
|
|
21
|
-
text-align: left;
|
|
22
|
-
}
|
|
23
|
-
.ft-item__label {
|
|
24
|
-
flex-grow: 1;
|
|
25
|
-
}
|
|
26
|
-
.ft-item__toggle {
|
|
27
|
-
transition: transform 0.2s;
|
|
28
|
-
}
|
|
29
|
-
&:focus {
|
|
30
|
-
box-shadow: 0 0 0;
|
|
31
|
-
}
|
|
32
|
-
&:not(:hover):not(:disabled) {
|
|
33
|
-
.ft-item__label {
|
|
34
|
-
color: var(--ft-text-muted-color);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
.ft-item {
|
|
38
|
-
display: flex;
|
|
39
|
-
align-items: center;
|
|
40
|
-
flex-grow: 1;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
&__content {
|
|
44
|
-
overflow: hidden;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
.ft-dropdown {
|
|
2
|
-
position: relative;
|
|
3
|
-
display: flex;
|
|
4
|
-
&--right {
|
|
5
|
-
.ft-dropdown__menu {
|
|
6
|
-
right: 0;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
&:focus-within {
|
|
10
|
-
&::before {
|
|
11
|
-
display: block;
|
|
12
|
-
content: "";
|
|
13
|
-
position: fixed;
|
|
14
|
-
top: 0;
|
|
15
|
-
left: 0;
|
|
16
|
-
right: 0;
|
|
17
|
-
bottom: 0;
|
|
18
|
-
z-index: 1;
|
|
19
|
-
}
|
|
20
|
-
.ft-dropdown__menu {
|
|
21
|
-
display: block;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
&__menu {
|
|
25
|
-
--ft-button-bg: #fff;
|
|
26
|
-
--ft-button-color: var(--ft-text-color);
|
|
27
|
-
--ft-button-border-radius: 0;
|
|
28
|
-
position: absolute;
|
|
29
|
-
display: none;
|
|
30
|
-
transition: display 0.2s linear 0.2s;
|
|
31
|
-
box-shadow: var(--ft-popup-box-shadow);
|
|
32
|
-
background-color: #fff;
|
|
33
|
-
border-radius: 0.25rem;
|
|
34
|
-
top: calc(100% + 0.125rem);
|
|
35
|
-
padding-top: 0.25rem;
|
|
36
|
-
padding-bottom: 0.25rem;
|
|
37
|
-
z-index: 2;
|
|
38
|
-
width: max-content;
|
|
39
|
-
max-width: 250px;
|
|
40
|
-
@include media-breakpoint-down(sm) {
|
|
41
|
-
position: fixed;
|
|
42
|
-
top: auto;
|
|
43
|
-
left: 0;
|
|
44
|
-
right: 0;
|
|
45
|
-
bottom: 0;
|
|
46
|
-
min-width: unset;
|
|
47
|
-
max-height: 60vh;
|
|
48
|
-
width: 100%;
|
|
49
|
-
max-width: 100vw;
|
|
50
|
-
border-bottom-left-radius: 0;
|
|
51
|
-
border-bottom-right-radius: 0;
|
|
52
|
-
transform: initial;
|
|
53
|
-
overflow-y: auto;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
.ft-icon {
|
|
2
|
-
line-height: 0;
|
|
3
|
-
display: inline-block;
|
|
4
|
-
&--1 {
|
|
5
|
-
font-size: 1rem;
|
|
6
|
-
}
|
|
7
|
-
&--2 {
|
|
8
|
-
font-size: 1.5rem;
|
|
9
|
-
}
|
|
10
|
-
&--3 {
|
|
11
|
-
font-size: 2rem;
|
|
12
|
-
}
|
|
13
|
-
&--4 {
|
|
14
|
-
font-size: 3rem;
|
|
15
|
-
}
|
|
16
|
-
&--5 {
|
|
17
|
-
font-size: 4.5rem;
|
|
18
|
-
}
|
|
19
|
-
&--6 {
|
|
20
|
-
font-size: 8rem;
|
|
21
|
-
}
|
|
22
|
-
&--7 {
|
|
23
|
-
font-size: 16rem;
|
|
24
|
-
}
|
|
25
|
-
&--8 {
|
|
26
|
-
font-size: 32rem;
|
|
27
|
-
}
|
|
28
|
-
svg {
|
|
29
|
-
width: 1em;
|
|
30
|
-
height: 1em;
|
|
31
|
-
vertical-align: middle;
|
|
32
|
-
fill: currentColor;
|
|
33
|
-
display: inline-block;
|
|
34
|
-
}
|
|
35
|
-
img {
|
|
36
|
-
height: 1em;
|
|
37
|
-
vertical-align: middle;
|
|
38
|
-
display: inline-block;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
.ft-image {
|
|
2
|
-
display: inline-block;
|
|
3
|
-
overflow: hidden;
|
|
4
|
-
display: flex;
|
|
5
|
-
align-items: center;
|
|
6
|
-
justify-content: center;
|
|
7
|
-
|
|
8
|
-
&.ft-image--loading {
|
|
9
|
-
background-color: rgba(0, 0, 0, .03);
|
|
10
|
-
position: relative;
|
|
11
|
-
overflow: hidden;
|
|
12
|
-
|
|
13
|
-
&::after {
|
|
14
|
-
content: '';
|
|
15
|
-
display: block;
|
|
16
|
-
background-color: rgba(0, 0, 0, .02);
|
|
17
|
-
position: absolute;
|
|
18
|
-
top: 0;
|
|
19
|
-
bottom: 0;
|
|
20
|
-
width: 100%;
|
|
21
|
-
height: 100%;
|
|
22
|
-
transform: translateX(0);
|
|
23
|
-
animation: 1.5s ft-image-loading ease-in-out infinite;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
&.ft-image--error {
|
|
28
|
-
background-color: rgba(255, 0, 0, .03);
|
|
29
|
-
|
|
30
|
-
ft-icon {
|
|
31
|
-
color: var(--ft-danger-color);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
img {
|
|
37
|
-
position: relative;
|
|
38
|
-
z-index: 1;
|
|
39
|
-
max-width: 100%;
|
|
40
|
-
max-height: 100%;
|
|
41
|
-
animation: ft-image-show .3s;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@keyframes ft-image-show {
|
|
45
|
-
from {
|
|
46
|
-
opacity: 0;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
to {
|
|
50
|
-
opacity: 1;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@keyframes ft-image-loading {
|
|
55
|
-
0% {
|
|
56
|
-
transform: translateX(-100%);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
100% {
|
|
60
|
-
transform: translateX(100%);
|
|
61
|
-
}
|
|
62
|
-
}
|