@sumaris-net/ngx-components 18.3.8 → 18.3.10
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/doc/changelog.md +6 -0
- package/esm2022/src/app/core/table/table.class.mjs +9 -1
- package/esm2022/src/app/core/table/table.utils.mjs +4 -1
- package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +9 -8
- package/esm2022/src/app/shared/pipes/duration.pipe.mjs +16 -9
- package/fesm2022/sumaris-net.ngx-components.mjs +33 -14
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/table/table.class.d.ts +1 -0
- package/src/app/core/table/table.utils.d.ts +1 -0
- package/src/app/shared/inputs.d.ts +1 -1
- package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +5 -3
- package/src/app/shared/pipes/duration.pipe.d.ts +13 -3
- package/src/assets/manifest.json +1 -1
|
@@ -27,5 +27,8 @@ export class AppTableUtils {
|
|
|
27
27
|
static getEntities(rows) {
|
|
28
28
|
return (rows || []).map((row) => row.currentData).filter(isNotNil);
|
|
29
29
|
}
|
|
30
|
+
static inverseDirection(direction) {
|
|
31
|
+
return direction === 'asc' ? 'desc' : 'asc';
|
|
32
|
+
}
|
|
30
33
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvdGFibGUvdGFibGUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxELE9BQU8sRUFBRSxXQUFXLEVBQVcsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUE4QjtRQUM1QyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQStDLEVBQUUsU0FBa0I7UUFDckYsWUFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUF5RCxHQUEyQztRQUNwSCw4RUFBOEU7UUFDOUUsSUFBSSxHQUFHLENBQUMsU0FBUztZQUFFLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBVyxDQUFDO1FBQzlELE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQXlELElBQWdEO1FBQzFILE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2FBQ2hCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQzthQUM3QixNQUFNLENBQUMsUUFBUSxDQUFDO2FBQ2hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO2FBQ3RCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBeUQsSUFBZ0Q7UUFDekgsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUF5QjtRQUMvQyxPQUFPLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzlDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcFRhYmxlIH0gZnJvbSAnLi90YWJsZS5jbGFzcyc7XG5pbXBvcnQgeyBUYWJsZUVsZW1lbnQgfSBmcm9tICdAZS1pcy9uZ3gtbWF0ZXJpYWwtdGFibGUnO1xuaW1wb3J0IHsgQXBwRm9ybVV0aWxzIH0gZnJvbSAnLi4vZm9ybS9mb3JtLnV0aWxzJztcbmltcG9ydCB7IEFzeW5jVGFibGVFbGVtZW50IH0gZnJvbSAnQGUtaXMvbmd4LW1hdGVyaWFsLXRhYmxlL3NyYy9hcHAvbmd4LW1hdGVyaWFsLXRhYmxlL2FzeW5jL2FzeW5jLXRhYmxlLWVsZW1lbnQnO1xuaW1wb3J0IHsgRW50aXR5VXRpbHMsIElFbnRpdHkgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgaXNOb3ROaWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcblxuZXhwb3J0IGNsYXNzIEFwcFRhYmxlVXRpbHMge1xuICBzdGF0aWMgd2FpdElkbGUodGFibGU6IEFwcFRhYmxlPGFueSwgYW55LCBhbnk+KTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIXRhYmxlIHx8ICF0YWJsZS5kYXRhU291cmNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdGFibGUuIE1pc3NpbmcgdGFibGUgb3IgdGFibGUuZGF0YVNvdXJjZScpO1xuICAgIH1cbiAgICByZXR1cm4gdGFibGUuZGF0YVNvdXJjZS53YWl0SWRsZSgpO1xuICB9XG5cbiAgc3RhdGljIGxvZ1Jvd0Vycm9ycyhyb3c6IFRhYmxlRWxlbWVudDxhbnk+IHwgQXN5bmNUYWJsZUVsZW1lbnQ8YW55PiwgbG9nUHJlZml4Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgQXBwRm9ybVV0aWxzLmxvZ0Zvcm1FcnJvcnMocm93LnZhbGlkYXRvciwgbG9nUHJlZml4KTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRFbnRpdHlJZDxUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4gPSBJRW50aXR5PGFueSwgYW55PiwgSUQgPSBhbnk+KHJvdzogVGFibGVFbGVtZW50PFQ+IHwgQXN5bmNUYWJsZUVsZW1lbnQ8VD4pOiBJRCB7XG4gICAgLy8gV2hlbiB1c2luZyB2YWxpZGF0b3I6IHVzZSB0aGUgY29udHJvbCAoYXZvaWQgdG8gbG9hZCB0aGUgZnVsbCBmb3JtJ3MgdmFsdWUpXG4gICAgaWYgKHJvdy52YWxpZGF0b3IpIHJldHVybiByb3cudmFsaWRhdG9yLmdldCgnaWQnKS52YWx1ZSBhcyBJRDtcbiAgICByZXR1cm4gRW50aXR5VXRpbHMuZ2V0SWQocm93LmN1cnJlbnREYXRhKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRFbnRpdHlJZHM8VCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+ID0gSUVudGl0eTxhbnksIGFueT4sIElEID0gYW55Pihyb3dzOiBUYWJsZUVsZW1lbnQ8VD5bXSB8IEFzeW5jVGFibGVFbGVtZW50PFQ+W10pOiBJRFtdIHtcbiAgICByZXR1cm4gKHJvd3MgfHwgW10pXG4gICAgICAubWFwKChyb3cpID0+IHJvdy5jdXJyZW50RGF0YSlcbiAgICAgIC5maWx0ZXIoaXNOb3ROaWwpXG4gICAgICAubWFwKEVudGl0eVV0aWxzLmdldElkKVxuICAgICAgLmZpbHRlcihpc05vdE5pbCk7XG4gIH1cblxuICBzdGF0aWMgZ2V0RW50aXRpZXM8VCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+ID0gSUVudGl0eTxhbnksIGFueT4sIElEID0gYW55Pihyb3dzOiBUYWJsZUVsZW1lbnQ8VD5bXSB8IEFzeW5jVGFibGVFbGVtZW50PFQ+W10pOiBUW10ge1xuICAgIHJldHVybiAocm93cyB8fCBbXSkubWFwKChyb3cpID0+IHJvdy5jdXJyZW50RGF0YSkuZmlsdGVyKGlzTm90TmlsKTtcbiAgfVxuXG4gIHN0YXRpYyBpbnZlcnNlRGlyZWN0aW9uKGRpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycpIHtcbiAgICByZXR1cm4gZGlyZWN0aW9uID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnO1xuICB9XG59XG4iXX0=
|
|
@@ -6,26 +6,27 @@ import * as i1 from "@angular/material/core";
|
|
|
6
6
|
import * as i2 from "@ngx-translate/core";
|
|
7
7
|
export class DateDiffDurationPipe {
|
|
8
8
|
dateAdapter;
|
|
9
|
-
translate;
|
|
10
9
|
dayUnit;
|
|
11
10
|
constructor(dateAdapter, translate) {
|
|
12
11
|
this.dateAdapter = dateAdapter;
|
|
13
|
-
this.translate = translate;
|
|
14
12
|
this.dayUnit = translate.instant('COMMON.DAY_UNIT');
|
|
15
13
|
translate.get('COMMON.DAY_UNIT').subscribe((dayUnit) => (this.dayUnit = dayUnit));
|
|
16
14
|
}
|
|
17
|
-
transform(value,
|
|
15
|
+
transform(value, opts) {
|
|
18
16
|
if (!value.startValue || !value.endValue)
|
|
19
17
|
return '';
|
|
20
18
|
const startDate = this.dateAdapter.parse(value.startValue, DATE_ISO_PATTERN);
|
|
21
19
|
const endDate = this.dateAdapter.parse(value.endValue, DATE_ISO_PATTERN);
|
|
22
|
-
return this.format(startDate, endDate,
|
|
20
|
+
return this.format(startDate, endDate, opts);
|
|
23
21
|
}
|
|
24
|
-
format(startDate, endDate,
|
|
22
|
+
format(startDate, endDate, opts) {
|
|
25
23
|
const duration = DateUtils.moment.duration(endDate.diff(startDate));
|
|
26
|
-
|
|
24
|
+
// Convert to the expected unit, if any
|
|
25
|
+
if (opts?.unit)
|
|
26
|
+
return '' + duration.as(opts.unit);
|
|
27
|
+
const withSeconds = opts?.seconds;
|
|
28
|
+
if (!withSeconds && duration.asMinutes() < 0)
|
|
27
29
|
return '';
|
|
28
|
-
const withSeconds = args?.seconds;
|
|
29
30
|
const timeDuration = DateUtils.moment(0).hour(duration.hours()).minute(duration.minutes());
|
|
30
31
|
if (withSeconds) {
|
|
31
32
|
timeDuration.second(duration.seconds());
|
|
@@ -46,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
46
47
|
type: Injectable,
|
|
47
48
|
args: [{ providedIn: 'root' }]
|
|
48
49
|
}], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.TranslateService }] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kaWZmLWR1cmF0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9kYXRlLWRpZmYtZHVyYXRpb24ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7QUFPckMsTUFBTSxPQUFPLG9CQUFvQjtJQUlyQjtJQUhBLE9BQU8sQ0FBUztJQUUxQixZQUNVLFdBQWdDLEVBQ3hDLFNBQTJCO1FBRG5CLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUd4QyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwRCxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsU0FBUyxDQUNQLEtBQWlFLEVBQ2pFLElBQW1EO1FBRW5ELElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUVwRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDN0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXpFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBaUIsRUFBRSxPQUFlLEVBQUUsSUFBa0Q7UUFDM0YsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBRXBFLHVDQUF1QztRQUN2QyxJQUFJLElBQUksRUFBRSxJQUFJO1lBQUUsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxFQUFFLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFeEQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUgsQ0FBQzt3R0F2Q1Usb0JBQW9CO3NHQUFwQixvQkFBb0I7NEdBQXBCLG9CQUFvQixjQURQLE1BQU07OzRGQUNuQixvQkFBb0I7a0JBSmhDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGtCQUFrQjtpQkFDekI7O2tCQUNBLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBEQVRFX0lTT19QQVRURVJOIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IERhdGVVdGlscyB9IGZyb20gJy4uL2RhdGVzJztcbmltcG9ydCB7IHVuaXRPZlRpbWUgfSBmcm9tICdtb21lbnQvbW9tZW50JztcblxuQFBpcGUoe1xuICBuYW1lOiAnZGF0ZURpZmZEdXJhdGlvbicsXG59KVxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBEYXRlRGlmZkR1cmF0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcm90ZWN0ZWQgZGF5VW5pdDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPE1vbWVudD4sXG4gICAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZGF5VW5pdCA9IHRyYW5zbGF0ZS5pbnN0YW50KCdDT01NT04uREFZX1VOSVQnKTtcbiAgICB0cmFuc2xhdGUuZ2V0KCdDT01NT04uREFZX1VOSVQnKS5zdWJzY3JpYmUoKGRheVVuaXQpID0+ICh0aGlzLmRheVVuaXQgPSBkYXlVbml0KSk7XG4gIH1cblxuICB0cmFuc2Zvcm0oXG4gICAgdmFsdWU6IHsgc3RhcnRWYWx1ZTogc3RyaW5nIHwgTW9tZW50OyBlbmRWYWx1ZTogc3RyaW5nIHwgTW9tZW50IH0sXG4gICAgb3B0cz86IHsgc2Vjb25kcz86IGJvb2xlYW47IHVuaXQ6IHVuaXRPZlRpbWUuQmFzZSB9XG4gICk6IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCF2YWx1ZS5zdGFydFZhbHVlIHx8ICF2YWx1ZS5lbmRWYWx1ZSkgcmV0dXJuICcnO1xuXG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5kYXRlQWRhcHRlci5wYXJzZSh2YWx1ZS5zdGFydFZhbHVlLCBEQVRFX0lTT19QQVRURVJOKTtcbiAgICBjb25zdCBlbmREYXRlID0gdGhpcy5kYXRlQWRhcHRlci5wYXJzZSh2YWx1ZS5lbmRWYWx1ZSwgREFURV9JU09fUEFUVEVSTik7XG5cbiAgICByZXR1cm4gdGhpcy5mb3JtYXQoc3RhcnREYXRlLCBlbmREYXRlLCBvcHRzKTtcbiAgfVxuXG4gIGZvcm1hdChzdGFydERhdGU6IE1vbWVudCwgZW5kRGF0ZTogTW9tZW50LCBvcHRzOiB7IHNlY29uZHM/OiBib29sZWFuOyB1bml0OiB1bml0T2ZUaW1lLkJhc2UgfSk6IHN0cmluZyB7XG4gICAgY29uc3QgZHVyYXRpb24gPSBEYXRlVXRpbHMubW9tZW50LmR1cmF0aW9uKGVuZERhdGUuZGlmZihzdGFydERhdGUpKTtcblxuICAgIC8vIENvbnZlcnQgdG8gdGhlIGV4cGVjdGVkIHVuaXQsIGlmIGFueVxuICAgIGlmIChvcHRzPy51bml0KSByZXR1cm4gJycgKyBkdXJhdGlvbi5hcyhvcHRzLnVuaXQpO1xuXG4gICAgY29uc3Qgd2l0aFNlY29uZHMgPSBvcHRzPy5zZWNvbmRzO1xuICAgIGlmICghd2l0aFNlY29uZHMgJiYgZHVyYXRpb24uYXNNaW51dGVzKCkgPCAwKSByZXR1cm4gJyc7XG5cbiAgICBjb25zdCB0aW1lRHVyYXRpb24gPSBEYXRlVXRpbHMubW9tZW50KDApLmhvdXIoZHVyYXRpb24uaG91cnMoKSkubWludXRlKGR1cmF0aW9uLm1pbnV0ZXMoKSk7XG4gICAgaWYgKHdpdGhTZWNvbmRzKSB7XG4gICAgICB0aW1lRHVyYXRpb24uc2Vjb25kKGR1cmF0aW9uLnNlY29uZHMoKSk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IoZHVyYXRpb24uYXNEYXlzKCkpO1xuICAgIHJldHVybiAoZGF5cyA+IDAgPyBkYXlzLnRvU3RyaW5nKCkgKyAodGhpcy5kYXlVbml0ICsgJyAnKSA6ICcnKSArIHRpbWVEdXJhdGlvbi5mb3JtYXQod2l0aFNlY29uZHMgPyAnSEg6bW06c3MnIDogJ0hIOm1tJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,24 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Injectable, Pipe } from '@angular/core';
|
|
2
2
|
import { toDuration } from '../dates';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@ngx-translate/core";
|
|
5
5
|
export class DurationPipe {
|
|
6
|
-
translate;
|
|
7
6
|
dayUnit;
|
|
8
7
|
constructor(translate) {
|
|
9
|
-
this.translate = translate;
|
|
10
8
|
this.dayUnit = translate.instant('COMMON.DAY_UNIT');
|
|
11
9
|
}
|
|
12
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Format a diff between two dates.
|
|
12
|
+
*
|
|
13
|
+
* @param value
|
|
14
|
+
* @param opts
|
|
15
|
+
* @param opts.unit allow to convert into a particular unit. If not defined, result will be like `x days HH:MM`
|
|
16
|
+
* @param opts.seconds Should display or ignore the seconds ?
|
|
17
|
+
**/
|
|
18
|
+
transform(value, opts) {
|
|
13
19
|
if (!value)
|
|
14
20
|
return '';
|
|
15
|
-
const unit =
|
|
21
|
+
const unit = opts?.unit || opts || 'hours';
|
|
16
22
|
// try with moment
|
|
17
23
|
const duration = toDuration(value, unit);
|
|
18
24
|
const days = duration.days();
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
|
|
25
|
+
const hours = duration.hours().toString().padStart(2, '0');
|
|
26
|
+
const minutes = duration.minutes().toString().padStart(2, '0');
|
|
27
|
+
const seconds = opts?.seconds ? duration.seconds().toString().padStart(2, '0') : null;
|
|
28
|
+
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hours + ':' + minutes + (seconds ? ':' + seconds : '');
|
|
22
29
|
}
|
|
23
30
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DurationPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
24
31
|
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: DurationPipe, name: "duration" });
|
|
@@ -33,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
33
40
|
type: Injectable,
|
|
34
41
|
args: [{ providedIn: 'root' }]
|
|
35
42
|
}], ctorParameters: () => [{ type: i1.TranslateService }] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2R1cmF0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQVF0QyxNQUFNLE9BQU8sWUFBWTtJQUNiLE9BQU8sQ0FBUztJQUUxQixZQUFZLFNBQTJCO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7OztRQU9JO0lBQ0osU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUEwRztRQUNqSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxHQUFtQyxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxPQUFPLENBQUM7UUFFM0Usa0JBQWtCO1FBQ2xCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFekMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sT0FBTyxHQUFHLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFdEYsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzSCxDQUFDO3dHQTVCVSxZQUFZO3NHQUFaLFlBQVk7NEdBQVosWUFBWSxjQURDLE1BQU07OzRGQUNuQixZQUFZO2tCQUp4QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxVQUFVO2lCQUNqQjs7a0JBQ0EsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b0R1cmF0aW9uIH0gZnJvbSAnLi4vZGF0ZXMnO1xuaW1wb3J0IHsgdW5pdE9mVGltZSB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2R1cmF0aW9uJyxcbn0pXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIER1cmF0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcm90ZWN0ZWQgZGF5VW5pdDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgIHRoaXMuZGF5VW5pdCA9IHRyYW5zbGF0ZS5pbnN0YW50KCdDT01NT04uREFZX1VOSVQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQgYSBkaWZmIGJldHdlZW4gdHdvIGRhdGVzLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICogQHBhcmFtIG9wdHNcbiAgICogQHBhcmFtIG9wdHMudW5pdCBhbGxvdyB0byBjb252ZXJ0IGludG8gYSBwYXJ0aWN1bGFyIHVuaXQuIElmIG5vdCBkZWZpbmVkLCByZXN1bHQgd2lsbCBiZSBsaWtlIGB4IGRheXMgSEg6TU1gXG4gICAqIEBwYXJhbSBvcHRzLnNlY29uZHMgU2hvdWxkIGRpc3BsYXkgb3IgaWdub3JlIHRoZSBzZWNvbmRzID9cbiAgICoqL1xuICB0cmFuc2Zvcm0odmFsdWU6IG51bWJlciwgb3B0cz86IHVuaXRPZlRpbWUuRHVyYXRpb25Db25zdHJ1Y3RvciB8IHsgdW5pdD86IHVuaXRPZlRpbWUuRHVyYXRpb25Db25zdHJ1Y3Rvcjsgc2Vjb25kcz86IGJvb2xlYW4gfSB8IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICAgIGNvbnN0IHVuaXQ6IHVuaXRPZlRpbWUuRHVyYXRpb25Db25zdHJ1Y3RvciA9IG9wdHM/LnVuaXQgfHwgb3B0cyB8fCAnaG91cnMnO1xuXG4gICAgLy8gdHJ5IHdpdGggbW9tZW50XG4gICAgY29uc3QgZHVyYXRpb24gPSB0b0R1cmF0aW9uKHZhbHVlLCB1bml0KTtcblxuICAgIGNvbnN0IGRheXMgPSBkdXJhdGlvbi5kYXlzKCk7XG4gICAgY29uc3QgaG91cnMgPSBkdXJhdGlvbi5ob3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICBjb25zdCBtaW51dGVzID0gZHVyYXRpb24ubWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICBjb25zdCBzZWNvbmRzID0gb3B0cz8uc2Vjb25kcyA/IGR1cmF0aW9uLnNlY29uZHMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgOiBudWxsO1xuXG4gICAgcmV0dXJuIChkYXlzID4gMCA/IGRheXMudG9TdHJpbmcoKSArICh0aGlzLmRheVVuaXQgKyAnICcpIDogJycpICsgaG91cnMgKyAnOicgKyBtaW51dGVzICsgKHNlY29uZHMgPyAnOicgKyBzZWNvbmRzIDogJycpO1xuICB9XG59XG4iXX0=
|
|
@@ -1197,26 +1197,27 @@ function toDuration(value, unit) {
|
|
|
1197
1197
|
|
|
1198
1198
|
class DateDiffDurationPipe {
|
|
1199
1199
|
dateAdapter;
|
|
1200
|
-
translate;
|
|
1201
1200
|
dayUnit;
|
|
1202
1201
|
constructor(dateAdapter, translate) {
|
|
1203
1202
|
this.dateAdapter = dateAdapter;
|
|
1204
|
-
this.translate = translate;
|
|
1205
1203
|
this.dayUnit = translate.instant('COMMON.DAY_UNIT');
|
|
1206
1204
|
translate.get('COMMON.DAY_UNIT').subscribe((dayUnit) => (this.dayUnit = dayUnit));
|
|
1207
1205
|
}
|
|
1208
|
-
transform(value,
|
|
1206
|
+
transform(value, opts) {
|
|
1209
1207
|
if (!value.startValue || !value.endValue)
|
|
1210
1208
|
return '';
|
|
1211
1209
|
const startDate = this.dateAdapter.parse(value.startValue, DATE_ISO_PATTERN);
|
|
1212
1210
|
const endDate = this.dateAdapter.parse(value.endValue, DATE_ISO_PATTERN);
|
|
1213
|
-
return this.format(startDate, endDate,
|
|
1211
|
+
return this.format(startDate, endDate, opts);
|
|
1214
1212
|
}
|
|
1215
|
-
format(startDate, endDate,
|
|
1213
|
+
format(startDate, endDate, opts) {
|
|
1216
1214
|
const duration = DateUtils.moment.duration(endDate.diff(startDate));
|
|
1217
|
-
|
|
1215
|
+
// Convert to the expected unit, if any
|
|
1216
|
+
if (opts?.unit)
|
|
1217
|
+
return '' + duration.as(opts.unit);
|
|
1218
|
+
const withSeconds = opts?.seconds;
|
|
1219
|
+
if (!withSeconds && duration.asMinutes() < 0)
|
|
1218
1220
|
return '';
|
|
1219
|
-
const withSeconds = args?.seconds;
|
|
1220
1221
|
const timeDuration = DateUtils.moment(0).hour(duration.hours()).minute(duration.minutes());
|
|
1221
1222
|
if (withSeconds) {
|
|
1222
1223
|
timeDuration.second(duration.seconds());
|
|
@@ -2005,22 +2006,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
2005
2006
|
}] });
|
|
2006
2007
|
|
|
2007
2008
|
class DurationPipe {
|
|
2008
|
-
translate;
|
|
2009
2009
|
dayUnit;
|
|
2010
2010
|
constructor(translate) {
|
|
2011
|
-
this.translate = translate;
|
|
2012
2011
|
this.dayUnit = translate.instant('COMMON.DAY_UNIT');
|
|
2013
2012
|
}
|
|
2014
|
-
|
|
2013
|
+
/**
|
|
2014
|
+
* Format a diff between two dates.
|
|
2015
|
+
*
|
|
2016
|
+
* @param value
|
|
2017
|
+
* @param opts
|
|
2018
|
+
* @param opts.unit allow to convert into a particular unit. If not defined, result will be like `x days HH:MM`
|
|
2019
|
+
* @param opts.seconds Should display or ignore the seconds ?
|
|
2020
|
+
**/
|
|
2021
|
+
transform(value, opts) {
|
|
2015
2022
|
if (!value)
|
|
2016
2023
|
return '';
|
|
2017
|
-
const unit =
|
|
2024
|
+
const unit = opts?.unit || opts || 'hours';
|
|
2018
2025
|
// try with moment
|
|
2019
2026
|
const duration = toDuration(value, unit);
|
|
2020
2027
|
const days = duration.days();
|
|
2021
|
-
const
|
|
2022
|
-
const
|
|
2023
|
-
|
|
2028
|
+
const hours = duration.hours().toString().padStart(2, '0');
|
|
2029
|
+
const minutes = duration.minutes().toString().padStart(2, '0');
|
|
2030
|
+
const seconds = opts?.seconds ? duration.seconds().toString().padStart(2, '0') : null;
|
|
2031
|
+
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hours + ':' + minutes + (seconds ? ':' + seconds : '');
|
|
2024
2032
|
}
|
|
2025
2033
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DurationPipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
2026
2034
|
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: DurationPipe, name: "duration" });
|
|
@@ -30967,6 +30975,9 @@ class AppTableUtils {
|
|
|
30967
30975
|
static getEntities(rows) {
|
|
30968
30976
|
return (rows || []).map((row) => row.currentData).filter(isNotNil);
|
|
30969
30977
|
}
|
|
30978
|
+
static inverseDirection(direction) {
|
|
30979
|
+
return direction === 'asc' ? 'desc' : 'asc';
|
|
30980
|
+
}
|
|
30970
30981
|
}
|
|
30971
30982
|
|
|
30972
30983
|
// @dynamic
|
|
@@ -31706,6 +31717,14 @@ class AppTable {
|
|
|
31706
31717
|
get sortDirection() {
|
|
31707
31718
|
return (this.sort && this.sort.direction && (this.sort.direction === 'desc' ? 'desc' : 'asc')) || undefined;
|
|
31708
31719
|
}
|
|
31720
|
+
set sortDirection(value) {
|
|
31721
|
+
if (this.sort) {
|
|
31722
|
+
this.sort.direction = value;
|
|
31723
|
+
}
|
|
31724
|
+
else {
|
|
31725
|
+
this.defaultSortDirection = value;
|
|
31726
|
+
}
|
|
31727
|
+
}
|
|
31709
31728
|
_paginator = null;
|
|
31710
31729
|
set paginator(value) {
|
|
31711
31730
|
this._paginator = value;
|