@factor_ec/ui 4.0.11 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +49 -10
  2. package/fesm2022/factor_ec-ui.mjs +725 -461
  3. package/fesm2022/factor_ec-ui.mjs.map +1 -1
  4. package/lib/avatar/avatar.component.d.ts +17 -0
  5. package/lib/chart.service.d.ts +18 -0
  6. package/lib/icon/icon.component.d.ts +14 -0
  7. package/lib/{io/image → image}/image.component.d.ts +4 -5
  8. package/lib/message.service.d.ts +14 -4
  9. package/lib/models/chart.d.ts +12 -0
  10. package/lib/models/ui-options.d.ts +9 -0
  11. package/lib/observe-intersecting.directive.d.ts +8 -9
  12. package/lib/progress/progress.component.d.ts +10 -0
  13. package/lib/{io/rating → rating}/rating.component.d.ts +2 -4
  14. package/lib/ui.module.d.ts +13 -0
  15. package/lib/ui.service.d.ts +8 -0
  16. package/package.json +7 -7
  17. package/public-api.d.ts +12 -8
  18. package/esm2022/factor_ec-ui.mjs +0 -5
  19. package/esm2022/lib/io/avatar/avatar.component.mjs +0 -75
  20. package/esm2022/lib/io/icon/icon.component.mjs +0 -96
  21. package/esm2022/lib/io/image/image.component.mjs +0 -84
  22. package/esm2022/lib/io/progress/progress.component.mjs +0 -43
  23. package/esm2022/lib/io/rating/rating.component.mjs +0 -74
  24. package/esm2022/lib/message-content/message-content.component.mjs +0 -20
  25. package/esm2022/lib/message-dialog/message-dialog.component.mjs +0 -33
  26. package/esm2022/lib/message.service.mjs +0 -60
  27. package/esm2022/lib/models/message-content.mjs +0 -2
  28. package/esm2022/lib/models/message-options.mjs +0 -2
  29. package/esm2022/lib/models/task.mjs +0 -2
  30. package/esm2022/lib/models/ui-configuration.mjs +0 -2
  31. package/esm2022/lib/nav/timeline/timeline.component.mjs +0 -102
  32. package/esm2022/lib/observe-intersecting.directive.mjs +0 -44
  33. package/esm2022/lib/progress.service.mjs +0 -48
  34. package/esm2022/public-api.mjs +0 -13
  35. package/lib/io/avatar/avatar.component.d.ts +0 -21
  36. package/lib/io/icon/icon.component.d.ts +0 -22
  37. package/lib/io/progress/progress.component.d.ts +0 -14
  38. package/lib/message-content/message-content.component.d.ts +0 -7
  39. package/lib/message-dialog/message-dialog.component.d.ts +0 -10
  40. package/lib/models/task.d.ts +0 -10
  41. package/lib/models/ui-configuration.d.ts +0 -7
  42. package/lib/nav/timeline/timeline.component.d.ts +0 -18
  43. package/lib/progress.service.d.ts +0 -15
  44. package/scss/components/avatar.scss +0 -15
  45. package/scss/components/collapsible.scss +0 -46
  46. package/scss/components/dropdown.scss +0 -56
  47. package/scss/components/icon.scss +0 -40
  48. package/scss/components/image.scss +0 -62
  49. package/scss/components/index.scss +0 -10
  50. package/scss/components/list.scss +0 -63
  51. package/scss/components/ph.scss +0 -27
  52. package/scss/components/popup.scss +0 -7
  53. package/scss/components/progress.scss +0 -119
  54. package/scss/components/rating.scss +0 -61
  55. package/scss/index.scss +0 -5
  56. package/scss/mixins/breakpoints.scss +0 -123
  57. package/scss/mixins.scss +0 -1
  58. package/scss/reboot.scss +0 -586
  59. package/scss/root.scss +0 -52
  60. 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=
@@ -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,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,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
- }
@@ -1,10 +0,0 @@
1
- export interface Task {
2
- id: string;
3
- label: string;
4
- type: 'task' | 'milestone';
5
- startAt?: Date | string;
6
- endAt?: Date | string;
7
- class?: string;
8
- color?: string;
9
- children?: Task[];
10
- }
@@ -1,7 +0,0 @@
1
- export interface UiConfiguration {
2
- icon: {
3
- mode?: 'external' | null;
4
- collection: string;
5
- path: string;
6
- };
7
- }
@@ -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
- }
@@ -1,10 +0,0 @@
1
- @import 'avatar';
2
- @import 'collapsible';
3
- @import 'dropdown';
4
- @import 'icon';
5
- @import 'image';
6
- @import 'list';
7
- @import 'ph';
8
- @import 'popup';
9
- @import 'progress';
10
- @import 'rating';