@angular-generic-table/core 5.0.0-rc.14 → 5.0.0-rc.15
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/esm2020/lib/gt-delta/gt-delta.component.mjs +93 -71
- package/fesm2015/angular-generic-table-core.mjs +91 -68
- package/fesm2015/angular-generic-table-core.mjs.map +1 -1
- package/fesm2020/angular-generic-table-core.mjs +90 -68
- package/fesm2020/angular-generic-table-core.mjs.map +1 -1
- package/lib/gt-delta/gt-delta.component.d.ts +16 -4
- package/package.json +1 -1
- package/scss/index.scss +6 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { NgIf, PercentPipe } from '@angular/common';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
|
|
2
|
+
import { NgIf, NgTemplateOutlet, PercentPipe } from '@angular/common';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class GtDeltaComponent {
|
|
5
5
|
constructor() {
|
|
@@ -13,80 +13,102 @@ export class GtDeltaComponent {
|
|
|
13
13
|
negative: 'text-danger',
|
|
14
14
|
};
|
|
15
15
|
this.key = 'value';
|
|
16
|
-
this.notApplicableValue =
|
|
17
|
-
this.initialValue =
|
|
16
|
+
this.notApplicableValue = null;
|
|
17
|
+
this.initialValue = null;
|
|
18
|
+
}
|
|
19
|
+
get value() {
|
|
20
|
+
return this._value;
|
|
21
|
+
}
|
|
22
|
+
set value(value) {
|
|
23
|
+
this._value = value;
|
|
24
|
+
}
|
|
25
|
+
get deltaTemplate() {
|
|
26
|
+
return this._deltaTemplate;
|
|
27
|
+
}
|
|
28
|
+
set deltaTemplate(deltaTemplate) {
|
|
29
|
+
this._deltaTemplate = deltaTemplate;
|
|
30
|
+
}
|
|
31
|
+
ngOnChanges(changes) {
|
|
32
|
+
if (!changes.data.currentValue) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const data = changes.data?.currentValue;
|
|
36
|
+
const index = changes.index?.currentValue || this.index;
|
|
37
|
+
const baseIndex = changes.baseIndex?.currentValue;
|
|
38
|
+
const key = changes.key?.currentValue || this.key;
|
|
39
|
+
const initialValue = changes.initialValue?.currentValue || this.initialValue;
|
|
40
|
+
const deltaValue = index === 0
|
|
41
|
+
? initialValue
|
|
42
|
+
: data[index][key] -
|
|
43
|
+
(baseIndex === undefined
|
|
44
|
+
? data[index - 1][key]
|
|
45
|
+
: data[baseIndex][key]);
|
|
46
|
+
const baseValue = index === 0
|
|
47
|
+
? 1
|
|
48
|
+
: baseIndex === undefined
|
|
49
|
+
? data[index - 1][key]
|
|
50
|
+
: data[baseIndex][key];
|
|
51
|
+
const relative = index === 0
|
|
52
|
+
? initialValue
|
|
53
|
+
: Math.sign(deltaValue) * Math.abs(deltaValue / baseValue);
|
|
54
|
+
this.value = {
|
|
55
|
+
relative: Number.isFinite(relative)
|
|
56
|
+
? relative
|
|
57
|
+
: index === 0
|
|
58
|
+
? initialValue
|
|
59
|
+
: changes.notApplicableValue?.currentValue || this.notApplicableValue,
|
|
60
|
+
absolute: deltaValue,
|
|
61
|
+
};
|
|
18
62
|
}
|
|
19
63
|
}
|
|
20
64
|
GtDeltaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: GtDeltaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
-
GtDeltaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: GtDeltaComponent, isStandalone: true, selector: "gt-delta", inputs: { data: "data", index: "index", baseIndex: "baseIndex", classes: "classes", key: "key", notApplicableValue: "notApplicableValue", initialValue: "initialValue" }, ngImport: i0, template: `<span
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
: classes.negative
|
|
43
|
-
]"
|
|
44
|
-
[class.gt-delta-positive]="delta.value > 0 && Number.isFinite(delta.value)"
|
|
45
|
-
[class.gt-delta-negative]="delta.value < 0"
|
|
46
|
-
>{{
|
|
47
|
-
Number.isFinite(delta.value)
|
|
48
|
-
? (delta.value | percent)
|
|
49
|
-
: delta.value === initialValue
|
|
50
|
-
? initialValue
|
|
51
|
-
: notApplicableValue
|
|
52
|
-
}}</span
|
|
53
|
-
>`, isInline: true, styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "pipe", type: PercentPipe, name: "percent" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
65
|
+
GtDeltaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: GtDeltaComponent, isStandalone: true, selector: "gt-delta", inputs: { deltaTemplate: "deltaTemplate", data: "data", index: "index", baseIndex: "baseIndex", classes: "classes", key: "key", notApplicableValue: "notApplicableValue", initialValue: "initialValue" }, usesOnChanges: true, ngImport: i0, template: `<span
|
|
66
|
+
*ngIf="value as delta"
|
|
67
|
+
[class]="[
|
|
68
|
+
classes.span,
|
|
69
|
+
delta.absolute > 0
|
|
70
|
+
? classes.positive
|
|
71
|
+
: delta.absolute < 0
|
|
72
|
+
? classes.negative
|
|
73
|
+
: null
|
|
74
|
+
]"
|
|
75
|
+
[class.gt-delta-positive]="delta.absolute > 0"
|
|
76
|
+
[class.gt-delta-negative]="delta.absolute < 0"
|
|
77
|
+
><ng-container
|
|
78
|
+
*ngTemplateOutlet="deltaTemplate || defaultTemplate; context: { delta }"
|
|
79
|
+
></ng-container>
|
|
80
|
+
</span>
|
|
81
|
+
<ng-template #defaultTemplate let-delta="delta">
|
|
82
|
+
<span *ngIf="delta.relative">{{
|
|
83
|
+
delta.relative | percent: '1.0-2'
|
|
84
|
+
}}</span>
|
|
85
|
+
</ng-template>`, isInline: true, styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "pipe", type: PercentPipe, name: "percent" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
54
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: GtDeltaComponent, decorators: [{
|
|
55
87
|
type: Component,
|
|
56
88
|
args: [{ selector: 'gt-delta', template: `<span
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
[class.gt-delta-negative]="delta.value < 0"
|
|
81
|
-
>{{
|
|
82
|
-
Number.isFinite(delta.value)
|
|
83
|
-
? (delta.value | percent)
|
|
84
|
-
: delta.value === initialValue
|
|
85
|
-
? initialValue
|
|
86
|
-
: notApplicableValue
|
|
87
|
-
}}</span
|
|
88
|
-
>`, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [PercentPipe, NgIf], styles: [":host{display:inline-block}\n"] }]
|
|
89
|
-
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
89
|
+
*ngIf="value as delta"
|
|
90
|
+
[class]="[
|
|
91
|
+
classes.span,
|
|
92
|
+
delta.absolute > 0
|
|
93
|
+
? classes.positive
|
|
94
|
+
: delta.absolute < 0
|
|
95
|
+
? classes.negative
|
|
96
|
+
: null
|
|
97
|
+
]"
|
|
98
|
+
[class.gt-delta-positive]="delta.absolute > 0"
|
|
99
|
+
[class.gt-delta-negative]="delta.absolute < 0"
|
|
100
|
+
><ng-container
|
|
101
|
+
*ngTemplateOutlet="deltaTemplate || defaultTemplate; context: { delta }"
|
|
102
|
+
></ng-container>
|
|
103
|
+
</span>
|
|
104
|
+
<ng-template #defaultTemplate let-delta="delta">
|
|
105
|
+
<span *ngIf="delta.relative">{{
|
|
106
|
+
delta.relative | percent: '1.0-2'
|
|
107
|
+
}}</span>
|
|
108
|
+
</ng-template>`, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [PercentPipe, NgIf, NgTemplateOutlet], styles: [":host{display:inline-block}\n"] }]
|
|
109
|
+
}], ctorParameters: function () { return []; }, propDecorators: { deltaTemplate: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}], data: [{
|
|
90
112
|
type: Input
|
|
91
113
|
}], index: [{
|
|
92
114
|
type: Input
|
|
@@ -101,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
101
123
|
}], initialValue: [{
|
|
102
124
|
type: Input
|
|
103
125
|
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtZGVsdGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2d0LWRlbHRhL2d0LWRlbHRhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUF3Q3RFLE1BQU0sT0FBTyxnQkFBZ0I7SUFXM0I7UUFJQSxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNQLFNBQUksR0FBb0IsRUFBRSxDQUFDO1FBQzNCLFVBQUssR0FBVyxDQUFDLENBQUM7UUFFbEIsWUFBTyxHQUFHO1lBQ2pCLElBQUksRUFBRSxVQUFVO1lBQ2hCLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFFBQVEsRUFBRSxhQUFhO1NBQ3hCLENBQUM7UUFDTyxRQUFHLEdBQVcsT0FBTyxDQUFDO1FBQ3RCLHVCQUFrQixHQUFrQixJQUFJLENBQUM7UUFDekMsaUJBQVksR0FBMkIsSUFBSSxDQUFDO0lBaEJ0QyxDQUFDO0lBVmhCLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsS0FBSztRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQWEsYUFBYSxDQUFDLGFBQStCO1FBQ3hELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO0lBQ3RDLENBQUM7SUFnQkQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM5QixPQUFPO1NBQ1I7UUFDRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQztRQUN4QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDO1FBQ2xELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsWUFBWSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDbEQsTUFBTSxZQUFZLEdBQ2hCLE9BQU8sQ0FBQyxZQUFZLEVBQUUsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFMUQsTUFBTSxVQUFVLEdBQ2QsS0FBSyxLQUFLLENBQUM7WUFDVCxDQUFDLENBQUMsWUFBWTtZQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO2dCQUNoQixDQUFDLFNBQVMsS0FBSyxTQUFTO29CQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLFNBQVMsR0FDYixLQUFLLEtBQUssQ0FBQztZQUNULENBQUMsQ0FBQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTO2dCQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0IsTUFBTSxRQUFRLEdBQ1osS0FBSyxLQUFLLENBQUM7WUFDVCxDQUFDLENBQUMsWUFBWTtZQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxRQUFRO2dCQUNWLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQztvQkFDYixDQUFDLENBQUMsWUFBWTtvQkFDZCxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsa0JBQWtCO1lBQ3ZFLFFBQVEsRUFBRSxVQUFVO1NBQ3JCLENBQUM7SUFDSixDQUFDOzs2R0FwRVUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsbVNBaENqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUJBb0JPLGtHQVVQLFdBQVcsZ0RBQUUsSUFBSSw2RkFBRSxnQkFBZ0I7MkZBRWxDLGdCQUFnQjtrQkFsQzVCLFNBQVM7K0JBQ0UsVUFBVSxZQUNWOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttQkFvQk8sbUJBUUEsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixDQUFDOzBFQWNqQyxhQUFhO3NCQUF6QixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVSb3cgfSBmcm9tICcuLi9tb2RlbHMvdGFibGUtcm93LmludGVyZmFjZSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBQZXJjZW50UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3REZWx0YSB7XG4gIHJlbGF0aXZlOiBudW1iZXIgfCBzdHJpbmc7XG4gIGFic29sdXRlOiBudW1iZXI7XG59XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdndC1kZWx0YScsXG4gIHRlbXBsYXRlOiBgPHNwYW5cbiAgICAgICpuZ0lmPVwidmFsdWUgYXMgZGVsdGFcIlxuICAgICAgW2NsYXNzXT1cIltcbiAgICAgICAgY2xhc3Nlcy5zcGFuLFxuICAgICAgICBkZWx0YS5hYnNvbHV0ZSA+IDBcbiAgICAgICAgICA/IGNsYXNzZXMucG9zaXRpdmVcbiAgICAgICAgICA6IGRlbHRhLmFic29sdXRlIDwgMFxuICAgICAgICAgID8gY2xhc3Nlcy5uZWdhdGl2ZVxuICAgICAgICAgIDogbnVsbFxuICAgICAgXVwiXG4gICAgICBbY2xhc3MuZ3QtZGVsdGEtcG9zaXRpdmVdPVwiZGVsdGEuYWJzb2x1dGUgPiAwXCJcbiAgICAgIFtjbGFzcy5ndC1kZWx0YS1uZWdhdGl2ZV09XCJkZWx0YS5hYnNvbHV0ZSA8IDBcIlxuICAgICAgPjxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZWx0YVRlbXBsYXRlIHx8IGRlZmF1bHRUZW1wbGF0ZTsgY29udGV4dDogeyBkZWx0YSB9XCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L3NwYW4+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGUgbGV0LWRlbHRhPVwiZGVsdGFcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiZGVsdGEucmVsYXRpdmVcIj57e1xuICAgICAgICBkZWx0YS5yZWxhdGl2ZSB8IHBlcmNlbnQ6ICcxLjAtMidcbiAgICAgIH19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+YCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtQZXJjZW50UGlwZSwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldF0sXG59KVxuZXhwb3J0IGNsYXNzIEd0RGVsdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBnZXQgZGVsdGFUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVsdGFUZW1wbGF0ZTtcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHt9XG4gIEBJbnB1dCgpIHNldCBkZWx0YVRlbXBsYXRlKGRlbHRhVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9kZWx0YVRlbXBsYXRlID0gZGVsdGFUZW1wbGF0ZTtcbiAgfVxuICBNYXRoID0gTWF0aDtcbiAgTnVtYmVyID0gTnVtYmVyO1xuICBASW5wdXQoKSBkYXRhOiBBcnJheTxUYWJsZVJvdz4gPSBbXTtcbiAgQElucHV0KCkgaW5kZXg6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGJhc2VJbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgY2xhc3NlcyA9IHtcbiAgICBzcGFuOiAnZ3QtZGVsdGEnLFxuICAgIHBvc2l0aXZlOiAndGV4dC1zdWNjZXNzJyxcbiAgICBuZWdhdGl2ZTogJ3RleHQtZGFuZ2VyJyxcbiAgfTtcbiAgQElucHV0KCkga2V5OiBzdHJpbmcgPSAndmFsdWUnO1xuICBASW5wdXQoKSBub3RBcHBsaWNhYmxlVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpbml0aWFsVmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF92YWx1ZT86IEd0RGVsdGE7XG4gIHByaXZhdGUgX2RlbHRhVGVtcGxhdGU/OiBhbnk7XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIWNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGF0YSA9IGNoYW5nZXMuZGF0YT8uY3VycmVudFZhbHVlO1xuICAgIGNvbnN0IGluZGV4ID0gY2hhbmdlcy5pbmRleD8uY3VycmVudFZhbHVlIHx8IHRoaXMuaW5kZXg7XG4gICAgY29uc3QgYmFzZUluZGV4ID0gY2hhbmdlcy5iYXNlSW5kZXg/LmN1cnJlbnRWYWx1ZTtcbiAgICBjb25zdCBrZXkgPSBjaGFuZ2VzLmtleT8uY3VycmVudFZhbHVlIHx8IHRoaXMua2V5O1xuICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9XG4gICAgICBjaGFuZ2VzLmluaXRpYWxWYWx1ZT8uY3VycmVudFZhbHVlIHx8IHRoaXMuaW5pdGlhbFZhbHVlO1xuXG4gICAgY29uc3QgZGVsdGFWYWx1ZSA9XG4gICAgICBpbmRleCA9PT0gMFxuICAgICAgICA/IGluaXRpYWxWYWx1ZVxuICAgICAgICA6IGRhdGFbaW5kZXhdW2tleV0gLVxuICAgICAgICAgIChiYXNlSW5kZXggPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyBkYXRhW2luZGV4IC0gMV1ba2V5XVxuICAgICAgICAgICAgOiBkYXRhW2Jhc2VJbmRleF1ba2V5XSk7XG4gICAgY29uc3QgYmFzZVZhbHVlID1cbiAgICAgIGluZGV4ID09PSAwXG4gICAgICAgID8gMVxuICAgICAgICA6IGJhc2VJbmRleCA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gZGF0YVtpbmRleCAtIDFdW2tleV1cbiAgICAgICAgOiBkYXRhW2Jhc2VJbmRleF1ba2V5XTtcblxuICAgIGNvbnN0IHJlbGF0aXZlID1cbiAgICAgIGluZGV4ID09PSAwXG4gICAgICAgID8gaW5pdGlhbFZhbHVlXG4gICAgICAgIDogTWF0aC5zaWduKGRlbHRhVmFsdWUpICogTWF0aC5hYnMoZGVsdGFWYWx1ZSAvIGJhc2VWYWx1ZSk7XG5cbiAgICB0aGlzLnZhbHVlID0ge1xuICAgICAgcmVsYXRpdmU6IE51bWJlci5pc0Zpbml0ZShyZWxhdGl2ZSlcbiAgICAgICAgPyByZWxhdGl2ZVxuICAgICAgICA6IGluZGV4ID09PSAwXG4gICAgICAgID8gaW5pdGlhbFZhbHVlXG4gICAgICAgIDogY2hhbmdlcy5ub3RBcHBsaWNhYmxlVmFsdWU/LmN1cnJlbnRWYWx1ZSB8fCB0aGlzLm5vdEFwcGxpY2FibGVWYWx1ZSxcbiAgICAgIGFic29sdXRlOiBkZWx0YVZhbHVlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -494,80 +494,103 @@ class GtDeltaComponent {
|
|
|
494
494
|
negative: 'text-danger',
|
|
495
495
|
};
|
|
496
496
|
this.key = 'value';
|
|
497
|
-
this.notApplicableValue =
|
|
498
|
-
this.initialValue =
|
|
497
|
+
this.notApplicableValue = null;
|
|
498
|
+
this.initialValue = null;
|
|
499
|
+
}
|
|
500
|
+
get value() {
|
|
501
|
+
return this._value;
|
|
502
|
+
}
|
|
503
|
+
set value(value) {
|
|
504
|
+
this._value = value;
|
|
505
|
+
}
|
|
506
|
+
get deltaTemplate() {
|
|
507
|
+
return this._deltaTemplate;
|
|
508
|
+
}
|
|
509
|
+
set deltaTemplate(deltaTemplate) {
|
|
510
|
+
this._deltaTemplate = deltaTemplate;
|
|
511
|
+
}
|
|
512
|
+
ngOnChanges(changes) {
|
|
513
|
+
var _a, _b, _c, _d, _e, _f;
|
|
514
|
+
if (!changes.data.currentValue) {
|
|
515
|
+
return;
|
|
516
|
+
}
|
|
517
|
+
const data = (_a = changes.data) === null || _a === void 0 ? void 0 : _a.currentValue;
|
|
518
|
+
const index = ((_b = changes.index) === null || _b === void 0 ? void 0 : _b.currentValue) || this.index;
|
|
519
|
+
const baseIndex = (_c = changes.baseIndex) === null || _c === void 0 ? void 0 : _c.currentValue;
|
|
520
|
+
const key = ((_d = changes.key) === null || _d === void 0 ? void 0 : _d.currentValue) || this.key;
|
|
521
|
+
const initialValue = ((_e = changes.initialValue) === null || _e === void 0 ? void 0 : _e.currentValue) || this.initialValue;
|
|
522
|
+
const deltaValue = index === 0
|
|
523
|
+
? initialValue
|
|
524
|
+
: data[index][key] -
|
|
525
|
+
(baseIndex === undefined
|
|
526
|
+
? data[index - 1][key]
|
|
527
|
+
: data[baseIndex][key]);
|
|
528
|
+
const baseValue = index === 0
|
|
529
|
+
? 1
|
|
530
|
+
: baseIndex === undefined
|
|
531
|
+
? data[index - 1][key]
|
|
532
|
+
: data[baseIndex][key];
|
|
533
|
+
const relative = index === 0
|
|
534
|
+
? initialValue
|
|
535
|
+
: Math.sign(deltaValue) * Math.abs(deltaValue / baseValue);
|
|
536
|
+
this.value = {
|
|
537
|
+
relative: Number.isFinite(relative)
|
|
538
|
+
? relative
|
|
539
|
+
: index === 0
|
|
540
|
+
? initialValue
|
|
541
|
+
: ((_f = changes.notApplicableValue) === null || _f === void 0 ? void 0 : _f.currentValue) || this.notApplicableValue,
|
|
542
|
+
absolute: deltaValue,
|
|
543
|
+
};
|
|
499
544
|
}
|
|
500
545
|
}
|
|
501
546
|
GtDeltaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: GtDeltaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
502
|
-
GtDeltaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: GtDeltaComponent, isStandalone: true, selector: "gt-delta", inputs: { data: "data", index: "index", baseIndex: "baseIndex", classes: "classes", key: "key", notApplicableValue: "notApplicableValue", initialValue: "initialValue" }, ngImport: i0, template: `<span
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
: classes.negative
|
|
524
|
-
]"
|
|
525
|
-
[class.gt-delta-positive]="delta.value > 0 && Number.isFinite(delta.value)"
|
|
526
|
-
[class.gt-delta-negative]="delta.value < 0"
|
|
527
|
-
>{{
|
|
528
|
-
Number.isFinite(delta.value)
|
|
529
|
-
? (delta.value | percent)
|
|
530
|
-
: delta.value === initialValue
|
|
531
|
-
? initialValue
|
|
532
|
-
: notApplicableValue
|
|
533
|
-
}}</span
|
|
534
|
-
>`, isInline: true, styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "pipe", type: PercentPipe, name: "percent" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
547
|
+
GtDeltaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: GtDeltaComponent, isStandalone: true, selector: "gt-delta", inputs: { deltaTemplate: "deltaTemplate", data: "data", index: "index", baseIndex: "baseIndex", classes: "classes", key: "key", notApplicableValue: "notApplicableValue", initialValue: "initialValue" }, usesOnChanges: true, ngImport: i0, template: `<span
|
|
548
|
+
*ngIf="value as delta"
|
|
549
|
+
[class]="[
|
|
550
|
+
classes.span,
|
|
551
|
+
delta.absolute > 0
|
|
552
|
+
? classes.positive
|
|
553
|
+
: delta.absolute < 0
|
|
554
|
+
? classes.negative
|
|
555
|
+
: null
|
|
556
|
+
]"
|
|
557
|
+
[class.gt-delta-positive]="delta.absolute > 0"
|
|
558
|
+
[class.gt-delta-negative]="delta.absolute < 0"
|
|
559
|
+
><ng-container
|
|
560
|
+
*ngTemplateOutlet="deltaTemplate || defaultTemplate; context: { delta }"
|
|
561
|
+
></ng-container>
|
|
562
|
+
</span>
|
|
563
|
+
<ng-template #defaultTemplate let-delta="delta">
|
|
564
|
+
<span *ngIf="delta.relative">{{
|
|
565
|
+
delta.relative | percent: '1.0-2'
|
|
566
|
+
}}</span>
|
|
567
|
+
</ng-template>`, isInline: true, styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "pipe", type: PercentPipe, name: "percent" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
535
568
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: GtDeltaComponent, decorators: [{
|
|
536
569
|
type: Component,
|
|
537
570
|
args: [{ selector: 'gt-delta', template: `<span
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
:
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
[class.gt-delta-negative]="delta.value < 0"
|
|
562
|
-
>{{
|
|
563
|
-
Number.isFinite(delta.value)
|
|
564
|
-
? (delta.value | percent)
|
|
565
|
-
: delta.value === initialValue
|
|
566
|
-
? initialValue
|
|
567
|
-
: notApplicableValue
|
|
568
|
-
}}</span
|
|
569
|
-
>`, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [PercentPipe, NgIf], styles: [":host{display:inline-block}\n"] }]
|
|
570
|
-
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
571
|
+
*ngIf="value as delta"
|
|
572
|
+
[class]="[
|
|
573
|
+
classes.span,
|
|
574
|
+
delta.absolute > 0
|
|
575
|
+
? classes.positive
|
|
576
|
+
: delta.absolute < 0
|
|
577
|
+
? classes.negative
|
|
578
|
+
: null
|
|
579
|
+
]"
|
|
580
|
+
[class.gt-delta-positive]="delta.absolute > 0"
|
|
581
|
+
[class.gt-delta-negative]="delta.absolute < 0"
|
|
582
|
+
><ng-container
|
|
583
|
+
*ngTemplateOutlet="deltaTemplate || defaultTemplate; context: { delta }"
|
|
584
|
+
></ng-container>
|
|
585
|
+
</span>
|
|
586
|
+
<ng-template #defaultTemplate let-delta="delta">
|
|
587
|
+
<span *ngIf="delta.relative">{{
|
|
588
|
+
delta.relative | percent: '1.0-2'
|
|
589
|
+
}}</span>
|
|
590
|
+
</ng-template>`, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [PercentPipe, NgIf, NgTemplateOutlet], styles: [":host{display:inline-block}\n"] }]
|
|
591
|
+
}], ctorParameters: function () { return []; }, propDecorators: { deltaTemplate: [{
|
|
592
|
+
type: Input
|
|
593
|
+
}], data: [{
|
|
571
594
|
type: Input
|
|
572
595
|
}], index: [{
|
|
573
596
|
type: Input
|