@acorex/core 17.0.11 → 17.0.13
Sign up to get free protection for your applications and to get access to all the features.
- package/date-time/lib/formatters/time-duration-formatter.d.ts +16 -0
- package/esm2022/date-time/lib/datetime.module.mjs +5 -4
- package/esm2022/date-time/lib/formatters/datetime-formatter.mjs +1 -1
- package/esm2022/date-time/lib/formatters/time-duration-formatter.mjs +52 -0
- package/esm2022/date-time/lib/formatters/timeleft-formatter.mjs +1 -1
- package/esm2022/translation/lib/translation.service.mjs +9 -2
- package/esm2022/utils/lib/html-util.mjs +7 -17
- package/fesm2022/acorex-core-date-time.mjs +52 -2
- package/fesm2022/acorex-core-date-time.mjs.map +1 -1
- package/fesm2022/acorex-core-translation.mjs +8 -1
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-utils.mjs +6 -16
- package/fesm2022/acorex-core-utils.mjs.map +1 -1
- package/package.json +7 -7
- package/translation/lib/translation.service.d.ts +1 -0
- package/utils/lib/html-util.d.ts +1 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
import { AXFormatOptions, AXFormatter } from '@acorex/core/format';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export interface AXTimeDurationFormatterOptions extends AXFormatOptions {
|
4
|
+
format: string;
|
5
|
+
}
|
6
|
+
declare module '@acorex/core/format' {
|
7
|
+
interface AXFormatOptionsMap {
|
8
|
+
duration: AXTimeDurationFormatterOptions;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
export declare class AXTimeDurationFormatter implements AXFormatter {
|
12
|
+
get name(): string;
|
13
|
+
format(value: number, options?: AXTimeDurationFormatterOptions): string;
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXTimeDurationFormatter, never>;
|
15
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXTimeDurationFormatter>;
|
16
|
+
}
|
@@ -1,15 +1,16 @@
|
|
1
1
|
import { AXFormatModule } from '@acorex/core/format';
|
2
2
|
import { NgModule } from '@angular/core';
|
3
|
+
import { AXDateTimePipe } from './datetime.pipe';
|
3
4
|
import { AXDateTimeFormatter } from './formatters/datetime-formatter';
|
5
|
+
import { AXTimeDurationFormatter } from './formatters/time-duration-formatter';
|
4
6
|
import { AXTimeLeftFormatter } from './formatters/timeleft-formatter';
|
5
|
-
import { AXDateTimePipe } from './datetime.pipe';
|
6
7
|
import * as i0 from "@angular/core";
|
7
8
|
import * as i1 from "@acorex/core/format";
|
8
9
|
export class AXDateTimeModule {
|
9
10
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
10
11
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], imports: [i1.AXFormatModule], exports: [AXDateTimePipe] }); }
|
11
12
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeModule, imports: [AXFormatModule.forChild({
|
12
|
-
formatters: [AXDateTimeFormatter, AXTimeLeftFormatter],
|
13
|
+
formatters: [AXDateTimeFormatter, AXTimeLeftFormatter, AXTimeDurationFormatter],
|
13
14
|
})] }); }
|
14
15
|
}
|
15
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeModule, decorators: [{
|
@@ -17,11 +18,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
17
18
|
args: [{
|
18
19
|
imports: [
|
19
20
|
AXFormatModule.forChild({
|
20
|
-
formatters: [AXDateTimeFormatter, AXTimeLeftFormatter],
|
21
|
+
formatters: [AXDateTimeFormatter, AXTimeLeftFormatter, AXTimeDurationFormatter],
|
21
22
|
}),
|
22
23
|
],
|
23
24
|
exports: [AXDateTimePipe],
|
24
25
|
declarations: [AXDateTimePipe],
|
25
26
|
}]
|
26
27
|
}] });
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGUtdGltZS9zcmMvbGliL2RhdGV0aW1lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQVd0RSxNQUFNLE9BQU8sZ0JBQWdCOzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkFGWixjQUFjLDJDQURuQixjQUFjOytHQUdiLGdCQUFnQixZQVB6QixjQUFjLENBQUMsUUFBUSxDQUFDO2dCQUN0QixVQUFVLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBQzthQUNoRixDQUFDOzsyRkFLTyxnQkFBZ0I7a0JBVDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGNBQWMsQ0FBQyxRQUFRLENBQUM7NEJBQ3RCLFVBQVUsRUFBRSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixDQUFDO3lCQUNoRixDQUFDO3FCQUNIO29CQUNELE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDekIsWUFBWSxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRm9ybWF0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEYXRlVGltZVBpcGUgfSBmcm9tICcuL2RhdGV0aW1lLnBpcGUnO1xuaW1wb3J0IHsgQVhEYXRlVGltZUZvcm1hdHRlciB9IGZyb20gJy4vZm9ybWF0dGVycy9kYXRldGltZS1mb3JtYXR0ZXInO1xuaW1wb3J0IHsgQVhUaW1lRHVyYXRpb25Gb3JtYXR0ZXIgfSBmcm9tICcuL2Zvcm1hdHRlcnMvdGltZS1kdXJhdGlvbi1mb3JtYXR0ZXInO1xuaW1wb3J0IHsgQVhUaW1lTGVmdEZvcm1hdHRlciB9IGZyb20gJy4vZm9ybWF0dGVycy90aW1lbGVmdC1mb3JtYXR0ZXInO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQVhGb3JtYXRNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgZm9ybWF0dGVyczogW0FYRGF0ZVRpbWVGb3JtYXR0ZXIsIEFYVGltZUxlZnRGb3JtYXR0ZXIsIEFYVGltZUR1cmF0aW9uRm9ybWF0dGVyXSxcbiAgICB9KSxcbiAgXSxcbiAgZXhwb3J0czogW0FYRGF0ZVRpbWVQaXBlXSxcbiAgZGVjbGFyYXRpb25zOiBbQVhEYXRlVGltZVBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lTW9kdWxlIHt9XG4iXX0=
|
@@ -29,4 +29,4 @@ export class AXDateTimeFormatter {
|
|
29
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeFormatter, decorators: [{
|
30
30
|
type: Injectable
|
31
31
|
}] });
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGUtdGltZS9zcmMvbGliL2Zvcm1hdHRlcnMvZGF0ZXRpbWUtZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWV4RCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRVUsb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQTBCckQ7SUF4QkMsSUFBSSxJQUFJO1FBQ04sT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELE1BQU0sQ0FDSixLQUFjLEVBQ2QsT0FBNkM7UUFFN0MsTUFBTSxnQkFBZ0IsR0FDcEIsT0FBTyxPQUFPLElBQUksUUFBUTtZQUN4QixDQUFDLENBQUM7Z0JBQ0EsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTTtnQkFDaEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7YUFDbkU7WUFDRCxDQUFDLENBQUM7Z0JBQ0EsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTthQUMvQyxDQUFDO1FBRU4sT0FBTyxJQUFJLENBQUMsZUFBZTthQUN4QixNQUFNLENBQUMsS0FBYSxFQUFFLGdCQUFnQixDQUFDLFFBQWtCLENBQUM7YUFDMUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7OEdBMUJVLG1CQUFtQjtrSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGb3JtYXRPcHRpb25zLCBBWEZvcm1hdHRlciB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4uL2NhbGVuZGFyLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYRGF0ZVRpbWVGb3JtYXR0ZXJPcHRpb25zIGV4dGVuZHMgQVhGb3JtYXRPcHRpb25zIHtcbiAgZm9ybWF0Pzogc3RyaW5nO1xuICBjYWxlbmRhcj86IHN0cmluZztcbiAgbG9jYWxlPzogc3RyaW5nO1xufVxuXG5kZWNsYXJlIG1vZHVsZSAnQGFjb3JleC9jb3JlL2Zvcm1hdCcge1xuICBpbnRlcmZhY2UgQVhGb3JtYXRPcHRpb25zTWFwIHtcbiAgICBkYXRldGltZTogQVhEYXRlVGltZUZvcm1hdHRlck9wdGlvbnM7XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYRGF0ZVRpbWVGb3JtYXR0ZXIgaW1wbGVtZW50cyBBWEZvcm1hdHRlciB7XG4gIHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlID0gaW5qZWN0KEFYQ2FsZW5kYXJTZXJ2aWNlKTtcblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZGF0ZXRpbWUnO1xuICB9XG5cbiAgZm9ybWF0KFxuICAgIHZhbHVlOiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBBWERhdGVUaW1lRm9ybWF0dGVyT3B0aW9ucyB8IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGVmZmVjdGl2ZU9wdGlvbnMgPVxuICAgICAgdHlwZW9mIG9wdGlvbnMgPT0gJ29iamVjdCdcbiAgICAgICAgPyB7XG4gICAgICAgICAgZm9ybWF0OiBvcHRpb25zLmZvcm1hdCA/PyAnZGF0ZScsXG4gICAgICAgICAgbG9jYWxlOiBvcHRpb25zLmxvY2FsZSxcbiAgICAgICAgICBjYWxlbmRhcjogb3B0aW9ucy5jYWxlbmRhciA/PyB0aGlzLmNhbGVuZGFyU2VydmljZS5jYWxlbmRhci5uYW1lKCksXG4gICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgZm9ybWF0OiBvcHRpb25zLFxuICAgICAgICAgIGNhbGVuZGFyOiB0aGlzLmNhbGVuZGFyU2VydmljZS5jYWxlbmRhci5uYW1lKCksXG4gICAgICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5jYWxlbmRhclNlcnZpY2VcbiAgICAgIC5jcmVhdGUodmFsdWUgYXMgRGF0ZSwgZWZmZWN0aXZlT3B0aW9ucy5jYWxlbmRhciBhcyBzdHJpbmcpXG4gICAgICAuZm9ybWF0KGVmZmVjdGl2ZU9wdGlvbnMuZm9ybWF0LCB7IGxvY2FsZTogZWZmZWN0aXZlT3B0aW9ucy5sb2NhbGUgfSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,52 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export class AXTimeDurationFormatter {
|
4
|
+
get name() {
|
5
|
+
return 'time-duration';
|
6
|
+
}
|
7
|
+
format(value, options) {
|
8
|
+
const milliseconds = Number(value);
|
9
|
+
if (milliseconds === null || isNaN(milliseconds)) {
|
10
|
+
return '...';
|
11
|
+
}
|
12
|
+
// Convert milliseconds to various units
|
13
|
+
const totalMilliseconds = milliseconds % 1000;
|
14
|
+
const totalSeconds = Math.floor(milliseconds / 1000);
|
15
|
+
const seconds = totalSeconds % 60;
|
16
|
+
const totalMinutes = Math.floor(totalSeconds / 60);
|
17
|
+
const minutes = totalMinutes % 60;
|
18
|
+
const totalHours = Math.floor(totalMinutes / 60);
|
19
|
+
// Helper function for zero-padding
|
20
|
+
const pad = (num, length = 2) => num.toString().padStart(length, '0');
|
21
|
+
// Default format if none provided
|
22
|
+
const format = options?.format || (totalHours >= 0 ? 'HH:mm:ss' : 'mm:ss');
|
23
|
+
const formattedTime = [];
|
24
|
+
// Parse format and build the time string accordingly
|
25
|
+
if (format.includes('HH') || format.includes('H')) {
|
26
|
+
formattedTime.push(pad(totalHours));
|
27
|
+
}
|
28
|
+
if (format.includes('mm')) {
|
29
|
+
formattedTime.push(pad(minutes));
|
30
|
+
}
|
31
|
+
else if (format.includes('m')) {
|
32
|
+
formattedTime.push(minutes.toString());
|
33
|
+
}
|
34
|
+
if (format.includes('ss')) {
|
35
|
+
formattedTime.push(pad(seconds));
|
36
|
+
}
|
37
|
+
else if (format.includes('s')) {
|
38
|
+
formattedTime.push(seconds.toString());
|
39
|
+
}
|
40
|
+
if (format.includes('ms') || format.includes('MS')) {
|
41
|
+
formattedTime.push(pad(totalMilliseconds, 3));
|
42
|
+
}
|
43
|
+
// Join the parts according to the format
|
44
|
+
return formattedTime.join(format.includes('ms') || format.includes('MS') ? ':' : ':');
|
45
|
+
}
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXTimeDurationFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
47
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXTimeDurationFormatter }); }
|
48
|
+
}
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXTimeDurationFormatter, decorators: [{
|
50
|
+
type: Injectable
|
51
|
+
}] });
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1kdXJhdGlvbi1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZGF0ZS10aW1lL3NyYy9saWIvZm9ybWF0dGVycy90aW1lLWR1cmF0aW9uLWZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWEzQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLElBQUksSUFBSTtRQUNOLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYSxFQUFFLE9BQXdDO1FBQzVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLFlBQVksS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDakQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsd0NBQXdDO1FBQ3hDLE1BQU0saUJBQWlCLEdBQUcsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM5QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNyRCxNQUFNLE9BQU8sR0FBRyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sT0FBTyxHQUFHLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDbEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFakQsbUNBQW1DO1FBQ25DLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBVyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTlFLGtDQUFrQztRQUNsQyxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUzRSxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFFekIscURBQXFEO1FBQ3JELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEQsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDO2FBQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDO2FBQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuRCxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCx5Q0FBeUM7UUFDekMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RixDQUFDOzhHQS9DVSx1QkFBdUI7a0hBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRm9ybWF0T3B0aW9ucywgQVhGb3JtYXR0ZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFRpbWVEdXJhdGlvbkZvcm1hdHRlck9wdGlvbnMgZXh0ZW5kcyBBWEZvcm1hdE9wdGlvbnMge1xuICBmb3JtYXQ6IHN0cmluZztcbn1cblxuZGVjbGFyZSBtb2R1bGUgJ0BhY29yZXgvY29yZS9mb3JtYXQnIHtcbiAgaW50ZXJmYWNlIEFYRm9ybWF0T3B0aW9uc01hcCB7XG4gICAgZHVyYXRpb246IEFYVGltZUR1cmF0aW9uRm9ybWF0dGVyT3B0aW9ucztcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhUaW1lRHVyYXRpb25Gb3JtYXR0ZXIgaW1wbGVtZW50cyBBWEZvcm1hdHRlciB7XG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICd0aW1lLWR1cmF0aW9uJztcbiAgfVxuXG4gIGZvcm1hdCh2YWx1ZTogbnVtYmVyLCBvcHRpb25zPzogQVhUaW1lRHVyYXRpb25Gb3JtYXR0ZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBtaWxsaXNlY29uZHMgPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmIChtaWxsaXNlY29uZHMgPT09IG51bGwgfHwgaXNOYU4obWlsbGlzZWNvbmRzKSkge1xuICAgICAgcmV0dXJuICcuLi4nO1xuICAgIH1cblxuICAgIC8vIENvbnZlcnQgbWlsbGlzZWNvbmRzIHRvIHZhcmlvdXMgdW5pdHNcbiAgICBjb25zdCB0b3RhbE1pbGxpc2Vjb25kcyA9IG1pbGxpc2Vjb25kcyAlIDEwMDA7XG4gICAgY29uc3QgdG90YWxTZWNvbmRzID0gTWF0aC5mbG9vcihtaWxsaXNlY29uZHMgLyAxMDAwKTtcbiAgICBjb25zdCBzZWNvbmRzID0gdG90YWxTZWNvbmRzICUgNjA7XG4gICAgY29uc3QgdG90YWxNaW51dGVzID0gTWF0aC5mbG9vcih0b3RhbFNlY29uZHMgLyA2MCk7XG4gICAgY29uc3QgbWludXRlcyA9IHRvdGFsTWludXRlcyAlIDYwO1xuICAgIGNvbnN0IHRvdGFsSG91cnMgPSBNYXRoLmZsb29yKHRvdGFsTWludXRlcyAvIDYwKTtcblxuICAgIC8vIEhlbHBlciBmdW5jdGlvbiBmb3IgemVyby1wYWRkaW5nXG4gICAgY29uc3QgcGFkID0gKG51bTogbnVtYmVyLCBsZW5ndGggPSAyKSA9PiBudW0udG9TdHJpbmcoKS5wYWRTdGFydChsZW5ndGgsICcwJyk7XG5cbiAgICAvLyBEZWZhdWx0IGZvcm1hdCBpZiBub25lIHByb3ZpZGVkXG4gICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucz8uZm9ybWF0IHx8ICh0b3RhbEhvdXJzID49IDAgPyAnSEg6bW06c3MnIDogJ21tOnNzJyk7XG5cbiAgICBjb25zdCBmb3JtYXR0ZWRUaW1lID0gW107XG5cbiAgICAvLyBQYXJzZSBmb3JtYXQgYW5kIGJ1aWxkIHRoZSB0aW1lIHN0cmluZyBhY2NvcmRpbmdseVxuICAgIGlmIChmb3JtYXQuaW5jbHVkZXMoJ0hIJykgfHwgZm9ybWF0LmluY2x1ZGVzKCdIJykpIHtcbiAgICAgIGZvcm1hdHRlZFRpbWUucHVzaChwYWQodG90YWxIb3VycykpO1xuICAgIH1cbiAgICBpZiAoZm9ybWF0LmluY2x1ZGVzKCdtbScpKSB7XG4gICAgICBmb3JtYXR0ZWRUaW1lLnB1c2gocGFkKG1pbnV0ZXMpKTtcbiAgICB9IGVsc2UgaWYgKGZvcm1hdC5pbmNsdWRlcygnbScpKSB7XG4gICAgICBmb3JtYXR0ZWRUaW1lLnB1c2gobWludXRlcy50b1N0cmluZygpKTtcbiAgICB9XG4gICAgaWYgKGZvcm1hdC5pbmNsdWRlcygnc3MnKSkge1xuICAgICAgZm9ybWF0dGVkVGltZS5wdXNoKHBhZChzZWNvbmRzKSk7XG4gICAgfSBlbHNlIGlmIChmb3JtYXQuaW5jbHVkZXMoJ3MnKSkge1xuICAgICAgZm9ybWF0dGVkVGltZS5wdXNoKHNlY29uZHMudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIGlmIChmb3JtYXQuaW5jbHVkZXMoJ21zJykgfHwgZm9ybWF0LmluY2x1ZGVzKCdNUycpKSB7XG4gICAgICBmb3JtYXR0ZWRUaW1lLnB1c2gocGFkKHRvdGFsTWlsbGlzZWNvbmRzLCAzKSk7XG4gICAgfVxuXG4gICAgLy8gSm9pbiB0aGUgcGFydHMgYWNjb3JkaW5nIHRvIHRoZSBmb3JtYXRcbiAgICByZXR1cm4gZm9ybWF0dGVkVGltZS5qb2luKGZvcm1hdC5pbmNsdWRlcygnbXMnKSB8fCBmb3JtYXQuaW5jbHVkZXMoJ01TJykgPyAnOicgOiAnOicpO1xuICB9XG59XG4iXX0=
|
@@ -88,4 +88,4 @@ export class AXTimeLeftFormatter {
|
|
88
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXTimeLeftFormatter, decorators: [{
|
89
89
|
type: Injectable
|
90
90
|
}] });
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxlZnQtZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGUtdGltZS9zcmMvbGliL2Zvcm1hdHRlcnMvdGltZWxlZnQtZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFhbEMsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixJQUFJLElBQUk7UUFDTixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQXNCLEVBQUUsT0FBb0M7UUFDakUsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksWUFBWSxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUM7UUFDRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzFELElBQUksTUFBTSxHQUFHLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFDN0IsOENBQThDO1FBQzlDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbEIsSUFBSSxpQkFBaUIsR0FBRyxFQUFFO2dCQUFFLE1BQU0sR0FBRyxHQUFHLENBQUM7aUJBQ3BDLElBQUksaUJBQWlCLEdBQUcsRUFBRSxHQUFHLEVBQUU7Z0JBQUUsTUFBTSxHQUFHLEdBQUcsQ0FBQztpQkFDOUMsSUFBSSxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7Z0JBQUUsTUFBTSxHQUFHLEdBQUcsQ0FBQztpQkFDbkQsSUFBSSxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxH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QW1CO2tIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZvcm1hdE9wdGlvbnMsIEFYRm9ybWF0dGVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhUaW1lTGVmdEZvcm1hdHRlck9wdGlvbnMgZXh0ZW5kcyBBWEZvcm1hdE9wdGlvbnMge1xuICBmb3JtYXQ6IHN0cmluZztcbn1cblxuZGVjbGFyZSBtb2R1bGUgJ0BhY29yZXgvY29yZS9mb3JtYXQnIHtcbiAgaW50ZXJmYWNlIEFYRm9ybWF0T3B0aW9uc01hcCB7XG4gICAgdGltZWxlZnQ6IEFYVGltZUxlZnRGb3JtYXR0ZXJPcHRpb25zO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFRpbWVMZWZ0Rm9ybWF0dGVyIGltcGxlbWVudHMgQVhGb3JtYXR0ZXIge1xuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAndGltZWxlZnQnO1xuICB9XG5cbiAgZm9ybWF0KHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIG9wdGlvbnM/OiBBWFRpbWVMZWZ0Rm9ybWF0dGVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWlsbGlzZWNvbmRzID0gTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAobWlsbGlzZWNvbmRzID09PSBudWxsIHx8IGlzTmFOKG1pbGxpc2Vjb25kcykpIHtcbiAgICAgIHJldHVybiAnQ2FsY3VsYXRpbmcuLi4nO1xuICAgIH1cbiAgICBjb25zdCBkdXJhdGlvbkluU2Vjb25kcyA9IE1hdGgucm91bmQobWlsbGlzZWNvbmRzIC8gMTAwMCk7XG4gICAgbGV0IGZvcm1hdCA9IG9wdGlvbnM/LmZvcm1hdDtcbiAgICAvLyBEZXRlcm1pbmUgdGhlIGJlc3QgZm9ybWF0IGlmIGZvcm1hdCBpcyBudWxsXG4gICAgaWYgKGlzTmlsKGZvcm1hdCkpIHtcbiAgICAgIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDQ1KSBmb3JtYXQgPSAncyc7XG4gICAgICBlbHNlIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDYwICogNDUpIGZvcm1hdCA9ICdtJztcbiAgICAgIGVsc2UgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDIyKSBmb3JtYXQgPSAnaCc7XG4gICAgICBlbHNlIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDYwICogNjAgKiAyNCAqIDI2KSBmb3JtYXQgPSAnZCc7XG4gICAgICBlbHNlIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDYwICogNjAgKiAyNCAqIDMyMCkgZm9ybWF0ID0gJ00nO1xuICAgICAgZWxzZSBmb3JtYXQgPSAneSc7XG4gICAgfVxuXG4gICAgLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB6ZXJvLXBhZGRpbmdcbiAgICBjb25zdCBwYWQgPSAobnVtOiBudW1iZXIpID0+IG51bS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG5cbiAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgY2FzZSAncyc6XG4gICAgICAgIHJldHVybiBgJHtkdXJhdGlvbkluU2Vjb25kc30gc2Vjb25kcyBsZWZ0YDtcbiAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgcmV0dXJuIGAke3BhZChkdXJhdGlvbkluU2Vjb25kcyl9IHNlY29uZHMgbGVmdGA7XG4gICAgICBjYXNlICdtJzpcbiAgICAgICAgcmV0dXJuIGAke01hdGgucm91bmQoZHVyYXRpb25JblNlY29uZHMgLyA2MCl9IG1pbnV0ZSR7ZHVyYXRpb25JblNlY29uZHMgPj0gMTIwID8gJ3MnIDogJyd9IGxlZnRgO1xuICAgICAgY2FzZSAnbW0nOlxuICAgICAgICByZXR1cm4gYCR7cGFkKE1hdGgucm91bmQoZHVyYXRpb25JblNlY29uZHMgLyA2MCkpfSBtaW51dGVzIGxlZnRgO1xuICAgICAgY2FzZSAnaCc6XG4gICAgICBjYXNlICdIJzpcbiAgICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA4OSkgcmV0dXJuICdhbiBob3VyIGxlZnQnO1xuICAgICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvIDM2MDApfSBob3VyJHtkdXJhdGlvbkluU2Vjb25kcyA+PSA2MCAqIDE4MCA/ICdzJyA6ICcnfSBsZWZ0YDtcbiAgICAgIGNhc2UgJ2hoJzpcbiAgICAgIGNhc2UgJ0hIJzpcbiAgICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA4OSkgcmV0dXJuICcwMSBob3VyIGxlZnQnO1xuICAgICAgICByZXR1cm4gYCR7cGFkKE1hdGgucm91bmQoZHVyYXRpb25JblNlY29uZHMgLyAzNjAwKSl9IGhvdXJzIGxlZnRgO1xuICAgICAgY2FzZSAnZCc6XG4gICAgICBjYXNlICdEJzpcbiAgICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDM1KSByZXR1cm4gJ2EgZGF5IGxlZnQnO1xuICAgICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvICgzNjAwICogMjQpKX0gZGF5JHtkdXJhdGlvbkluU2Vjb25kcyA+PSA2MCAqIDYwICogNzAgPyAncycgOiAnJ30gbGVmdGA7XG4gICAgICBjYXNlICdkZCc6XG4gICAgICBjYXNlICdERCc6XG4gICAgICAgIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDYwICogNjAgKiAzNSkgcmV0dXJuICcwMSBkYXkgbGVmdCc7XG4gICAgICAgIHJldHVybiBgJHtwYWQoTWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvICgzNjAwICogMjQpKSl9IGRheXMgbGVmdGA7XG4gICAgICBjYXNlICdNJzpcbiAgICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDI0ICogNDUpIHJldHVybiAnYSBtb250aCBsZWZ0JztcbiAgICAgICAgcmV0dXJuIGAke01hdGgucm91bmQoZHVyYXRpb25JblNlY29uZHMgLyAoMzYwMCAqIDI0ICogMzApKX0gbW9udGgke2R1cmF0aW9uSW5TZWNvbmRzID49IDYwICogNjAgKiAyNCAqIDkwID8gJ3MnIDogJyd9IGxlZnRgO1xuICAgICAgY2FzZSAnTU0nOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDYwICogMjQgKiA0NSkgcmV0dXJuICcwMSBtb250aCBsZWZ0JztcbiAgICAgICAgcmV0dXJuIGAke3BhZChNYXRoLnJvdW5kKGR1cmF0aW9uSW5TZWNvbmRzIC8gKDM2MDAgKiAyNCAqIDMwKSkpfSBtb250aHMgbGVmdGA7XG4gICAgICBjYXNlICd5JzpcbiAgICAgIGNhc2UgJ1knOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDYwICogMjQgKiA1NDcpIHJldHVybiAnYSB5ZWFyIGxlZnQnO1xuICAgICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvICgzNjAwICogMjQgKiAzNjUpKX0geWVhciR7ZHVyYXRpb25JblNlY29uZHMgPj0gNjAgKiA2MCAqIDI0ICogNzMwID8gJ3MnIDogJyd9IGxlZnRgO1xuICAgICAgY2FzZSAneXknOlxuICAgICAgY2FzZSAnWVknOlxuICAgICAgY2FzZSAneXl5eSc6XG4gICAgICBjYXNlICdZWVlZJzpcbiAgICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDI0ICogNTQ3KSByZXR1cm4gJzAxIHllYXIgbGVmdCc7XG4gICAgICAgIHJldHVybiBgJHtwYWQoTWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvICgzNjAwICogMjQgKiAzNjUpKSl9IHllYXJzIGxlZnRgO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdJbnZhbGlkIGZvcm1hdCc7XG4gICAgfVxuICB9XG59XG4iXX0=
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Injectable, inject } from '@angular/core';
|
2
|
-
import { BehaviorSubject, catchError, finalize, firstValueFrom, forkJoin, map, of, shareReplay, startWith, switchMap, take, tap, } from 'rxjs';
|
2
|
+
import { BehaviorSubject, catchError, finalize, firstValueFrom, forkJoin, lastValueFrom, map, of, shareReplay, startWith, switchMap, take, tap, } from 'rxjs';
|
3
3
|
import { AX_TRANSLATION_LOADER } from './translation.loader';
|
4
4
|
import { set as lodashSet, get as lodashGet } from 'lodash-es';
|
5
5
|
import { AX_TRANSLATION_CONFIG } from './translation.config';
|
@@ -76,6 +76,9 @@ export class AXTranslationService {
|
|
76
76
|
});
|
77
77
|
}
|
78
78
|
}
|
79
|
+
isLangAvailable(lang, scope = null) {
|
80
|
+
return !this.translationCache[lang] && (!scope || !this.translationCache[lang][scope]);
|
81
|
+
}
|
79
82
|
load(key, options = {}) {
|
80
83
|
const { lang = this.getActiveLang(), scope = this.config.defaultScope } = options;
|
81
84
|
// Function to fetch translation
|
@@ -152,12 +155,16 @@ export class AXTranslationService {
|
|
152
155
|
const { lang = this.getActiveLang(), scope = this.config.defaultScope } = options || {};
|
153
156
|
// Check if the translation for the active language is available
|
154
157
|
let translation = lodashGet(this.translationCache, `${lang}.${scope}.${key}`);
|
158
|
+
//
|
159
|
+
const loadLang = () => lastValueFrom(this.getOrLoadTranslations(lang, scope));
|
155
160
|
// If not available, check lastActiveLang
|
156
161
|
if (!translation && this.lastActiveLang) {
|
162
|
+
loadLang();
|
157
163
|
translation = lodashGet(this.translationCache, `${this.lastActiveLang}.${scope}.${key}`);
|
158
164
|
}
|
159
165
|
// If still not available, use the default language
|
160
166
|
if (!translation) {
|
167
|
+
loadLang();
|
161
168
|
translation = lodashGet(this.translationCache, `${this.getDefaultLang()}.${scope}.${key}`);
|
162
169
|
}
|
163
170
|
// Perform parameter replacement
|
@@ -170,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
170
177
|
type: Injectable,
|
171
178
|
args: [{ providedIn: 'root' }]
|
172
179
|
}], ctorParameters: () => [] });
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS90cmFuc2xhdGlvbi9zcmMvbGliL3RyYW5zbGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLGVBQWUsRUFFZixVQUFVLEVBQ1YsUUFBUSxFQUNSLGNBQWMsRUFDZCxRQUFRLEVBQ1IsR0FBRyxFQUNILEVBQUUsRUFDRixXQUFXLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBTWQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsSUFBSSxTQUFTLEVBQUUsR0FBRyxJQUFJLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUVuRSxJQUFJLE9BQTZCLENBQUM7QUFFbEMsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsR0FBVyxFQUNYLE9BQTRCO0lBRTVCLE9BQU8sT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUdELE1BQU0sT0FBTyxvQkFBb0I7SUFnQi9COztPQUVHO0lBQ0g7UUFsQlEsV0FBTSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZDLFdBQU0sR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV2QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV0QyxxQkFBZ0IsR0FB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LEVBQzNCLElBQUksRUFDSixLQUFLLEVBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FDaEIsQ0FBQztJQUNKLENBQUM7OEdBMVJVLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRFAsTUFBTTs7MkZBQ25CLG9CQUFvQjtrQkFEaEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgY2F0Y2hFcnJvcixcbiAgZmluYWxpemUsXG4gIGZpcnN0VmFsdWVGcm9tLFxuICBmb3JrSm9pbixcbiAgbWFwLFxuICBvZixcbiAgc2hhcmVSZXBsYXksXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQVhUcmFuc2xhdGVIYXNoTWFwLFxuICBBWFRyYW5zbGF0ZU9wdGlvbnMsXG4gIEFYVHJhbnNsYXRlUGFyYW1zLFxufSBmcm9tICcuL3RyYW5zbGF0aW9uLnR5cGVzJztcbmltcG9ydCB7IEFYX1RSQU5TTEFUSU9OX0xPQURFUiB9IGZyb20gJy4vdHJhbnNsYXRpb24ubG9hZGVyJztcbmltcG9ydCB7IHNldCBhcyBsb2Rhc2hTZXQsIGdldCBhcyBsb2Rhc2hHZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhfVFJBTlNMQVRJT05fQ09ORklHIH0gZnJvbSAnLi90cmFuc2xhdGlvbi5jb25maWcnO1xuaW1wb3J0IHsgQVhFdmVudFNlcnZpY2UsIEFYRXZlbnRUeXBlcyB9IGZyb20gJ0BhY29yZXgvY29yZS9ldmVudHMnO1xuXG5sZXQgc2VydmljZTogQVhUcmFuc2xhdGlvblNlcnZpY2U7XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVTeW5jKFxuICBrZXk6IHN0cmluZyxcbiAgb3B0aW9ucz86IEFYVHJhbnNsYXRlT3B0aW9uc1xuKTogc3RyaW5nIHtcbiAgcmV0dXJuIHNlcnZpY2UudHJhbnNsYXRlU3luYyhrZXksIG9wdGlvbnMpO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYVHJhbnNsYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBsb2FkZXIgPSBpbmplY3QoQVhfVFJBTlNMQVRJT05fTE9BREVSKTtcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoQVhfVFJBTlNMQVRJT05fQ09ORklHKTtcblxuICBwcml2YXRlIGV2ZW50U2VydmljZSA9IGluamVjdChBWEV2ZW50U2VydmljZSk7XG5cbiAgcHJpdmF0ZSB0cmFuc2xhdGlvbkNhY2hlOiBBWFRyYW5zbGF0ZUhhc2hNYXA8QVhUcmFuc2xhdGVIYXNoTWFwPHN0cmluZz4+ID0ge307XG4gIHByaXZhdGUgb25nb2luZ1JlcXVlc3RzOiBNYXA8c3RyaW5nLCBPYnNlcnZhYmxlPGFueT4+ID0gbmV3IE1hcCgpO1xuXG4gIHByaXZhdGUgYWN0aXZlTGFuZzogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oXG4gICAgdGhpcy5nZXREZWZhdWx0TGFuZygpXG4gICk7XG4gIGxhbmdDaGFuZ2VzJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5hY3RpdmVMYW5nLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgbGFzdEFjdGl2ZUxhbmc6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzZXJ2aWNlID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBsb2FkTGFuZ3VhZ2VzQW5kU2NvcGVzKFxuICAgIGxhbmd1YWdlczogc3RyaW5nW10sXG4gICAgc2NvcGVzOiBzdHJpbmdbXVxuICApOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICBjb25zdCByZXF1ZXN0cyA9IGxhbmd1YWdlcy5mbGF0TWFwKChsYW5nKSA9PlxuICAgICAgc2NvcGVzLm1hcCgoc2NvcGUpID0+IHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdHJhbnNsYXRpb25zIGFyZSBhbHJlYWR5IGNhY2hlZFxuICAgICAgICBpZiAodGhpcy50cmFuc2xhdGlvbkNhY2hlW2xhbmddPy5bc2NvcGVdKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHRoaXMudHJhbnNsYXRpb25DYWNoZVtsYW5nXVtzY29wZV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlIHRoZSBuZXcgbWV0aG9kIHRvIGhhbmRsZSBvbmdvaW5nIHJlcXVlc3RzIGFuZCBsb2FkaW5nXG4gICAgICAgIHJldHVybiB0aGlzLmdldE9yTG9hZFRyYW5zbGF0aW9ucyhsYW5nLCBzY29wZSk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gZm9ya0pvaW4ocmVxdWVzdHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPckxvYWRUcmFuc2xhdGlvbnMoXG4gICAgbGFuZzogc3RyaW5nLFxuICAgIHNjb3BlOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxBWFRyYW5zbGF0ZUhhc2hNYXA8c3RyaW5nPj4ge1xuICAgIGNvbnN0IHJlcXVlc3RLZXkgPSBgJHtsYW5nfV8ke3Njb3BlfWA7XG5cbiAgICAvLyBSZXR1cm4gZXhpc3Rpbmcgb2JzZXJ2YWJsZSBpZiB0aGUgcmVxdWVzdCBpcyBhbHJlYWR5IGluIHByb2dyZXNzXG4gICAgaWYgKHRoaXMub25nb2luZ1JlcXVlc3RzLmhhcyhyZXF1ZXN0S2V5KSkge1xuICAgICAgcmV0dXJuIHRoaXMub25nb2luZ1JlcXVlc3RzLmdldChyZXF1ZXN0S2V5KTtcbiAgICB9XG5cbiAgICAvLyBMb2FkIHRyYW5zbGF0aW9ucyBpZiBub3QgaW4gY2FjaGUgb3Igb25nb2luZyByZXF1ZXN0c1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uT2JzZXJ2YWJsZSA9IHRoaXMubG9hZGVyXG4gICAgICAuZ2V0VHJhbnNsYXRpb24oeyBsYW5nLCBzY29wZSB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgodHJhbnNsYXRpb25zKSA9PlxuICAgICAgICAgIHRoaXMuY2FjaGVUcmFuc2xhdGlvbnMobGFuZywgc2NvcGUsIHRyYW5zbGF0aW9ucylcbiAgICAgICAgKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgYEVycm9yIGxvYWRpbmcgdHJhbnNsYXRpb25zIGZvciBsYW5nOiAke2xhbmd9LCBzY29wZTogJHtzY29wZX1gLFxuICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5lbWl0RXZlbnQoe1xuICAgICAgICAgICAgdHlwZTogQVhFdmVudFR5cGVzLkFYTGFuZ3VhZ2VMb2FkZWQsXG4gICAgICAgICAgICBwYXlsb2FkOiBsYW5nLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25nb2luZ1JlcXVlc3RzLmRlbGV0ZShyZXF1ZXN0S2V5KTtcbiAgICAgICAgfSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICApO1xuXG4gICAgdGhpcy5vbmdvaW5nUmVxdWVzdHMuc2V0KHJlcXVlc3RLZXksIHRyYW5zbGF0aW9uT2JzZXJ2YWJsZSk7XG4gICAgcmV0dXJuIHRyYW5zbGF0aW9uT2JzZXJ2YWJsZTtcbiAgfVxuXG4gIHByaXZhdGUgY2FjaGVUcmFuc2xhdGlvbnMoXG4gICAgbGFuZzogc3RyaW5nLFxuICAgIHNjb3BlOiBzdHJpbmcsXG4gICAgdHJhbnNsYXRpb25zOiBBWFRyYW5zbGF0ZUhhc2hNYXA8c3RyaW5nPlxuICApOiB2b2lkIHtcbiAgICBsb2Rhc2hTZXQodGhpcy50cmFuc2xhdGlvbkNhY2hlLCBgJHtsYW5nfS4ke3Njb3BlfWAsIHRyYW5zbGF0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGVmYXVsdExhbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZGVmYXVsdExhbmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWN0aXZlTGFuZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUxhbmcuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmVMYW5nKGxhbmc6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChsYW5nICE9IHRoaXMuZ2V0QWN0aXZlTGFuZygpKSB7XG4gICAgICB0aGlzLmxhc3RBY3RpdmVMYW5nID0gdGhpcy5nZXRBY3RpdmVMYW5nKCk7IC8vIFVwZGF0ZSBsYXN0IGFjdGl2ZSBsYW5ndWFnZVxuICAgICAgdGhpcy5hY3RpdmVMYW5nLm5leHQobGFuZyk7XG4gICAgICB0aGlzLmV2ZW50U2VydmljZS5lbWl0RXZlbnQoe1xuICAgICAgICB0eXBlOiBBWEV2ZW50VHlwZXMuQVhMYW5ndWFnZUNoYW5nZWQsXG4gICAgICAgIHBheWxvYWQ6IGxhbmcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWQoXG4gICAga2V5OiBzdHJpbmcsXG4gICAgb3B0aW9uczogQVhUcmFuc2xhdGVPcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGxhbmcgPSB0aGlzLmdldEFjdGl2ZUxhbmcoKSwgc2NvcGUgPSB0aGlzLmNvbmZpZy5kZWZhdWx0U2NvcGUgfSA9XG4gICAgICBvcHRpb25zO1xuXG4gICAgLy8gRnVuY3Rpb24gdG8gZmV0Y2ggdHJhbnNsYXRpb25cbiAgICBjb25zdCBmZXRjaFRyYW5zbGF0aW9uID0gKGxhbmd1YWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4gPT4ge1xuICAgICAgLy8gQ2hlY2sgaWYgdHJhbnNsYXRpb25zIGFyZSBhdmFpbGFibGUgaW4gdGhlIGNhY2hlXG4gICAgICBpZiAodGhpcy50cmFuc2xhdGlvbkNhY2hlW2xhbmd1YWdlXT8uW3Njb3BlXSkge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5nZXRUcmFuc2xhdGlvbihrZXksIGxhbmd1YWdlLCBzY29wZSwgb3B0aW9ucy5wYXJhbXMpKTtcbiAgICAgIH1cblxuICAgICAgLy8gVXNlIHRoZSBuZXcgbWV0aG9kIHRvIGhhbmRsZSBvbmdvaW5nIHJlcXVlc3RzIGFuZCBsb2FkaW5nXG4gICAgICByZXR1cm4gdGhpcy5nZXRPckxvYWRUcmFuc2xhdGlvbnMobGFuZ3VhZ2UsIHNjb3BlKS5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID1cbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25DYWNoZVtsYW5ndWFnZV0/LltzY29wZV0/LltrZXldIHx8IGtleTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGlvbihcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uLFxuICAgICAgICAgICAgbGFuZ3VhZ2UsXG4gICAgICAgICAgICBzY29wZSxcbiAgICAgICAgICAgIG9wdGlvbnMucGFyYW1zXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgodHJhbnNsYXRlZFRleHQpID0+IHtcbiAgICAgICAgICBpZiAodHJhbnNsYXRlZFRleHQgPT09IGtleSAmJiBsYW5ndWFnZSAhPT0gdGhpcy5nZXREZWZhdWx0TGFuZygpKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgdHJhbnNsYXRpb24gaXMgbm90IGZvdW5kIGFuZCB0aGUgbGFuZ3VhZ2UgaXMgbm90IGRlZmF1bHQsXG4gICAgICAgICAgICAvLyB0cnkgZmV0Y2hpbmcgZnJvbSB0aGUgZGVmYXVsdCBsYW5ndWFnZVxuICAgICAgICAgICAgcmV0dXJuIGZldGNoVHJhbnNsYXRpb24odGhpcy5nZXREZWZhdWx0TGFuZygpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9mKHRyYW5zbGF0ZWRUZXh0KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfTtcblxuICAgIC8vIEZpcnN0LCB0cnkgdG8gZmV0Y2ggdGhlIHRyYW5zbGF0aW9uIGZvciB0aGUgcmVxdWVzdGVkIGxhbmd1YWdlXG4gICAgY29uc3QgdHJhbnNsYXRpb25Gb3JSZXF1ZXN0ZWRMYW5nID0gZmV0Y2hUcmFuc2xhdGlvbihsYW5nKTtcblxuICAgIC8vIElmIGxhc3RBY3RpdmVMYW5nIGlzIGF2YWlsYWJsZSBhbmQgZGlmZmVyZW50IGZyb20gdGhlIHJlcXVlc3RlZCBsYW5ndWFnZSwgdXNlIGl0IGFzIGEgZmFsbGJhY2tcbiAgICBpZiAodGhpcy5sYXN0QWN0aXZlTGFuZyAmJiB0aGlzLmxhc3RBY3RpdmVMYW5nICE9PSBsYW5nKSB7XG4gICAgICBjb25zdCB0cmFuc2xhdGlvbkZvckxhc3RBY3RpdmVMYW5nID0gdGhpcy5nZXRUcmFuc2xhdGlvbihcbiAgICAgICAga2V5LFxuICAgICAgICB0aGlzLmxhc3RBY3RpdmVMYW5nLFxuICAgICAgICBzY29wZSxcbiAgICAgICAgb3B0aW9ucy5wYXJhbXNcbiAgICAgICk7XG4gICAgICByZXR1cm4gdHJhbnNsYXRpb25Gb3JSZXF1ZXN0ZWRMYW5nLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0cmFuc2xhdGlvbkZvckxhc3RBY3RpdmVMYW5nKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhbnNsYXRpb25Gb3JSZXF1ZXN0ZWRMYW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmFuc2xhdGlvbihcbiAgICBrZXk6IHN0cmluZyxcbiAgICBsYW5nOiBzdHJpbmcsXG4gICAgc2NvcGU6IHN0cmluZyxcbiAgICBwYXJhbXM/OiBBWFRyYW5zbGF0ZVBhcmFtc1xuICApOiBzdHJpbmcge1xuICAgIGxldCB0cmFuc2xhdGlvbjogc3RyaW5nID0gKGxvZGFzaEdldChcbiAgICAgIHRoaXMudHJhbnNsYXRpb25DYWNoZSxcbiAgICAgIGAke2xhbmd9LiR7c2NvcGV9LiR7a2V5fWBcbiAgICApIHx8IGtleSkgYXMgc3RyaW5nO1xuXG4gICAgLy8gUmVwbGFjZSBwYXJhbXMgbGlrZSB7eyBuYW1lIH19XG4gICAgaWYgKHBhcmFtcykge1xuICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKChwYXJhbUtleSkgPT4ge1xuICAgICAgICBjb25zdCBwYXJhbVZhbHVlID0gcGFyYW1zW3BhcmFtS2V5XSBhcyBzdHJpbmc7XG4gICAgICAgIHRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb24ucmVwbGFjZShcbiAgICAgICAgICBuZXcgUmVnRXhwKGB7e1xcXFxzKiR7cGFyYW1LZXl9XFxcXHMqfX1gLCAnZycpLFxuICAgICAgICAgIHBhcmFtVmFsdWVcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFJlcGxhY2UgdHJhbnNsYXRpb25zIGxpa2Uge3sgdCgna2V5JykgfX1cbiAgICBjb25zdCB0cmFuc2xhdGlvblBhdHRlcm4gPSAve3tcXHMqdFxcKCcoW14nXSspJ1xcKVxccyp9fS9nO1xuICAgIHRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb24ucmVwbGFjZSh0cmFuc2xhdGlvblBhdHRlcm4sIChtYXRjaCwgaW5uZXJLZXkpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zbGF0aW9uKGlubmVyS2V5LCBsYW5nLCBzY29wZSwgcGFyYW1zKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdHJhbnNsYXRpb247XG4gIH1cblxuICBwdWJsaWMgdHJhbnNsYXRlKFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBBWFRyYW5zbGF0ZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBpZiAob3B0aW9ucz8ubGFuZykge1xuICAgICAgcmV0dXJuIHRoaXMubG9hZChrZXksIG9wdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sYW5nQ2hhbmdlcyQucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmdldEFjdGl2ZUxhbmcoKSksXG4gICAgICBzd2l0Y2hNYXAoKGxhbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZChrZXksIHsgLi4ub3B0aW9ucywgbGFuZzogbGFuZyB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB0cmFuc2xhdGVBc3luYyhcbiAgICBrZXk6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQVhUcmFuc2xhdGVPcHRpb25zXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBsYW5nID0gdGhpcy5nZXRBY3RpdmVMYW5nKCksIHNjb3BlID0gdGhpcy5jb25maWcuZGVmYXVsdFNjb3BlIH0gPVxuICAgICAgb3B0aW9ucyB8fCB7fTtcbiAgICBsZXQgdHJhbnNsYXRpb24gPSBsb2Rhc2hHZXQoXG4gICAgICB0aGlzLnRyYW5zbGF0aW9uQ2FjaGUsXG4gICAgICBgJHtsYW5nfS4ke3Njb3BlfS4ke2tleX1gXG4gICAgKTtcblxuICAgIGlmICghdHJhbnNsYXRpb24pIHtcbiAgICAgIC8vIElmIHRoZSB0cmFuc2xhdGlvbiBpcyBub3QgaW4gdGhlIGNhY2hlLCBsb2FkIGl0XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmxvYWQoa2V5LCB7IGxhbmcsIHNjb3BlIH0pLnBpcGUodGFrZSgxKSkpO1xuICAgICAgdHJhbnNsYXRpb24gPSBsb2Rhc2hHZXQodGhpcy50cmFuc2xhdGlvbkNhY2hlLCBgJHtsYW5nfS4ke3Njb3BlfS4ke2tleX1gKTtcbiAgICB9XG5cbiAgICAvLyBJZiBzdGlsbCBub3QgYXZhaWxhYmxlLCB0cnkgdGhlIGxhc3QgYWN0aXZlIGxhbmd1YWdlIG9yIGRlZmF1bHQgbGFuZ3VhZ2VcbiAgICBpZiAoIXRyYW5zbGF0aW9uICYmIHRoaXMubGFzdEFjdGl2ZUxhbmcpIHtcbiAgICAgIHRyYW5zbGF0aW9uID0gbG9kYXNoR2V0KFxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uQ2FjaGUsXG4gICAgICAgIGAke3RoaXMubGFzdEFjdGl2ZUxhbmd9LiR7c2NvcGV9LiR7a2V5fWBcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghdHJhbnNsYXRpb24pIHtcbiAgICAgIHRyYW5zbGF0aW9uID0gbG9kYXNoR2V0KFxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uQ2FjaGUsXG4gICAgICAgIGAke3RoaXMuZ2V0RGVmYXVsdExhbmcoKX0uJHtzY29wZX0uJHtrZXl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBQZXJmb3JtIHBhcmFtZXRlciByZXBsYWNlbWVudFxuICAgIHJldHVybiB0aGlzLmdldFRyYW5zbGF0aW9uKFxuICAgICAgKHRyYW5zbGF0aW9uIHx8IGtleSkgYXMgYW55LFxuICAgICAgbGFuZyxcbiAgICAgIHNjb3BlLFxuICAgICAgb3B0aW9ucz8ucGFyYW1zXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2xhdGVTeW5jKGtleTogc3RyaW5nLCBvcHRpb25zPzogQVhUcmFuc2xhdGVPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IGxhbmcgPSB0aGlzLmdldEFjdGl2ZUxhbmcoKSwgc2NvcGUgPSB0aGlzLmNvbmZpZy5kZWZhdWx0U2NvcGUgfSA9XG4gICAgICBvcHRpb25zIHx8IHt9O1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHRyYW5zbGF0aW9uIGZvciB0aGUgYWN0aXZlIGxhbmd1YWdlIGlzIGF2YWlsYWJsZVxuICAgIGxldCB0cmFuc2xhdGlvbiA9IGxvZGFzaEdldChcbiAgICAgIHRoaXMudHJhbnNsYXRpb25DYWNoZSxcbiAgICAgIGAke2xhbmd9LiR7c2NvcGV9LiR7a2V5fWBcbiAgICApO1xuXG4gICAgLy8gSWYgbm90IGF2YWlsYWJsZSwgY2hlY2sgbGFzdEFjdGl2ZUxhbmdcbiAgICBpZiAoIXRyYW5zbGF0aW9uICYmIHRoaXMubGFzdEFjdGl2ZUxhbmcpIHtcbiAgICAgIHRyYW5zbGF0aW9uID0gbG9kYXNoR2V0KFxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uQ2FjaGUsXG4gICAgICAgIGAke3RoaXMubGFzdEFjdGl2ZUxhbmd9LiR7c2NvcGV9LiR7a2V5fWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gSWYgc3RpbGwgbm90IGF2YWlsYWJsZSwgdXNlIHRoZSBkZWZhdWx0IGxhbmd1YWdlXG4gICAgaWYgKCF0cmFuc2xhdGlvbikge1xuICAgICAgdHJhbnNsYXRpb24gPSBsb2Rhc2hHZXQoXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25DYWNoZSxcbiAgICAgICAgYCR7dGhpcy5nZXREZWZhdWx0TGFuZygpfS4ke3Njb3BlfS4ke2tleX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm0gcGFyYW1ldGVyIHJlcGxhY2VtZW50XG4gICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRpb24oXG4gICAgICAodHJhbnNsYXRpb24gfHwga2V5KSBhcyBhbnksXG4gICAgICBsYW5nLFxuICAgICAgc2NvcGUsXG4gICAgICBvcHRpb25zPy5wYXJhbXNcbiAgICApO1xuICB9XG59XG4iXX0=
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS90cmFuc2xhdGlvbi9zcmMvbGliL3RyYW5zbGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLGVBQWUsRUFFZixVQUFVLEVBQ1YsUUFBUSxFQUVSLGNBQWMsRUFDZCxRQUFRLEVBQ1IsYUFBYSxFQUNiLEdBQUcsRUFDSCxFQUFFLEVBQ0YsV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxFQUNKLEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQU1kLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxHQUFHLElBQUksU0FBUyxFQUFFLEdBQUcsSUFBSSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFbkUsSUFBSSxPQUE2QixDQUFDO0FBRWxDLE1BQU0sVUFBVSxhQUFhLENBQzNCLEdBQVcsRUFDWCxPQUE0QjtJQUU1QixPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFHRCxNQUFNLE9BQU8sb0JBQW9CO0lBZ0IvQjs7T0FFRztJQUNIO1FBbEJRLFdBQU0sR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN2QyxXQUFNLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFdkMsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdEMscUJBQWdCLEdBQW1ELEVBQUUsQ0FBQztRQUN0RSxvQkFBZSxHQUFpQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTFELGVBQVUsR0FBNEIsSUFBSSxlQUFlLENBQy9ELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FDdEIsQ0FBQztRQUNGLGlCQUFZLEdBQXVCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFMUQsbUJBQWMsR0FBa0IsSUFBSSxDQUFDO1FBTTNDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDakIsQ0FBQztJQUVNLHNCQUFzQixDQUMzQixTQUFtQixFQUNuQixNQUFnQjtRQUVoQixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDMUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLDJDQUEyQztZQUMzQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2hELENBQUM7WUFFRCw0REFBNEQ7WUFDNUQsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU8scUJBQXFCLENBQzNCLElBQVksRUFDWixLQUFhO1FBRWIsTUFBTSxVQUFVLEdBQUcsR0FBRyxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFFdEMsbUVBQW1FO1FBQ25FLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCx3REFBd0Q7UUFDeEQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsTUFBTTthQUN0QyxjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDL0IsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUNsRCxFQUNELFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQ1gsd0NBQXdDLElBQUksWUFBWSxLQUFLLEVBQUUsRUFDL0QsS0FBSyxDQUNOLENBQUM7WUFDRixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7Z0JBQzFCLElBQUksRUFBRSxZQUFZLENBQUMsZ0JBQWdCO2dCQUNuQyxPQUFPLEVBQUUsSUFBSTthQUNkLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRUosSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDNUQsT0FBTyxxQkFBcUIsQ0FBQztJQUMvQixDQUFDO0lBRU8saUJBQWlCLENBQ3ZCLElBQVksRUFDWixLQUFhLEVBQ2IsWUFBd0M7UUFFeEMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU0sY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sYUFBYSxDQUFDLElBQVk7UUFDL0IsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyw4QkFBOEI7WUFDMUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7Z0JBQzFCLElBQUksRUFBRSxZQUFZLENBQUMsaUJBQWlCO2dCQUNwQyxPQUFPLEVBQUUsSUFBSTthQUNkLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU0sZUFBZSxDQUFDLElBQVksRUFBRSxRQUFnQixJQUFJO1FBQ3ZELE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTyxJQUFJLENBQ1YsR0FBVyxFQUNYLFVBQThCLEVBQUU7UUFFaEMsTUFBTSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBRWxGLGdDQUFnQztRQUNoQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsUUFBZ0IsRUFBc0IsRUFBRTtZQUNoRSxtREFBbUQ7WUFDbkQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLENBQUM7WUFFRCw0REFBNEQ7WUFDNUQsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckQsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDUCxNQUFNLFdBQVcsR0FDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztnQkFDekQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUN4QixXQUFXLEVBQ1gsUUFBUSxFQUNSLEtBQUssRUFDTCxPQUFPLENBQUMsTUFBTSxDQUNmLENBQUM7WUFDSixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtnQkFDM0IsSUFBSSxjQUFjLEtBQUssR0FBRyxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztvQkFDakUsbUVBQW1FO29CQUNuRSx5Q0FBeUM7b0JBQ3pDLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQ2pELENBQUM7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLGlFQUFpRTtRQUNqRSxNQUFNLDJCQUEyQixHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNELGlHQUFpRztRQUNqRyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxNQUFNLDRCQUE0QixHQUFHLElBQUksQ0FBQyxjQUFjLENBQ3RELEdBQUcsRUFDSCxJQUFJLENBQUMsY0FBYyxFQUNuQixLQUFLLEVBQ0wsT0FBTyxDQUFDLE1BQU0sQ0FDZixDQUFDO1lBQ0YsT0FBTywyQkFBMkIsQ0FBQyxJQUFJLENBQ3JDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUN4QyxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sMkJBQTJCLENBQUM7SUFDckMsQ0FBQztJQUVPLGNBQWMsQ0FDcEIsR0FBVyxFQUNYLElBQVksRUFDWixLQUFhLEVBQ2IsTUFBMEI7UUFFMUIsSUFBSSxXQUFXLEdBQVcsQ0FBQyxTQUFTLENBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsR0FBRyxJQUFJLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUMxQixJQUFJLEdBQUcsQ0FBVyxDQUFDO1FBRXBCLGlDQUFpQztRQUNqQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDdkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBVyxDQUFDO2dCQUM5QyxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FDL0IsSUFBSSxNQUFNLENBQUMsU0FBUyxRQUFRLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFDMUMsVUFBVSxDQUNYLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCwyQ0FBMkM7UUFDM0MsTUFBTSxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQztRQUN2RCxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUN4RSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sU0FBUyxDQUNkLEdBQVcsRUFDWCxPQUE0QjtRQUU1QixJQUFJLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQy9CLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjLENBQ3pCLEdBQVcsRUFDWCxPQUE0QjtRQUU1QixNQUFNLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsR0FDckUsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNoQixJQUFJLFdBQVcsR0FBRyxTQUFTLENBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsR0FBRyxJQUFJLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUMxQixDQUFDO1FBRUYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLGtEQUFrRDtZQUNsRCxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLFdBQVcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCwyRUFBMkU7UUFDM0UsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEMsV0FBVyxHQUFHLFNBQVMsQ0FDckIsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUN6QyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixXQUFXLEdBQUcsU0FBUyxDQUNyQixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FDM0MsQ0FBQztRQUNKLENBQUM7UUFFRCxnQ0FBZ0M7UUFDaEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUN4QixDQUFDLFdBQVcsSUFBSSxHQUFHLENBQVEsRUFDM0IsSUFBSSxFQUNKLEtBQUssRUFDTCxPQUFPLEVBQUUsTUFBTSxDQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVNLGFBQWEsQ0FBQyxHQUFXLEVBQUUsT0FBNEI7UUFDNUQsTUFBTSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLEdBQ3JFLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFFaEIsZ0VBQWdFO1FBQ2hFLElBQUksV0FBVyxHQUFHLFNBQVMsQ0FDekIsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixHQUFHLElBQUksSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFLENBQzFCLENBQUM7UUFFRixHQUFHO1FBQ0gsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5RSx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEMsUUFBUSxFQUFFLENBQUM7WUFDWCxXQUFXLEdBQUcsU0FBUyxDQUNyQixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLEdBQUcsSUFBSSxDQUFDLGNBQWMsSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFLENBQ3pDLENBQUM7UUFDSixDQUFDO1FBRUQsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixRQUFRLEVBQUUsQ0FBQztZQUNYLFdBQVcsR0FBRyxTQUFTLENBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUMzQyxDQUFDO1FBQ0osQ0FBQztRQUVELGdDQUFnQztRQUNoQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQ3hCLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBUSxFQUMzQixJQUFJLEVBQ0osS0FBSyxFQUNMLE9BQU8sRUFBRSxNQUFNLENBQ2hCLENBQUM7SUFDSixDQUFDOzhHQWpTVSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQURQLE1BQU07OzJGQUNuQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIGNhdGNoRXJyb3IsXG4gIGZpbmFsaXplLFxuICBmaXJzdCxcbiAgZmlyc3RWYWx1ZUZyb20sXG4gIGZvcmtKb2luLFxuICBsYXN0VmFsdWVGcm9tLFxuICBtYXAsXG4gIG9mLFxuICBzaGFyZVJlcGxheSxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBBWFRyYW5zbGF0ZUhhc2hNYXAsXG4gIEFYVHJhbnNsYXRlT3B0aW9ucyxcbiAgQVhUcmFuc2xhdGVQYXJhbXMsXG59IGZyb20gJy4vdHJhbnNsYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQVhfVFJBTlNMQVRJT05fTE9BREVSIH0gZnJvbSAnLi90cmFuc2xhdGlvbi5sb2FkZXInO1xuaW1wb3J0IHsgc2V0IGFzIGxvZGFzaFNldCwgZ2V0IGFzIGxvZGFzaEdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWF9UUkFOU0xBVElPTl9DT05GSUcgfSBmcm9tICcuL3RyYW5zbGF0aW9uLmNvbmZpZyc7XG5pbXBvcnQgeyBBWEV2ZW50U2VydmljZSwgQVhFdmVudFR5cGVzIH0gZnJvbSAnQGFjb3JleC9jb3JlL2V2ZW50cyc7XG5cbmxldCBzZXJ2aWNlOiBBWFRyYW5zbGF0aW9uU2VydmljZTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZVN5bmMoXG4gIGtleTogc3RyaW5nLFxuICBvcHRpb25zPzogQVhUcmFuc2xhdGVPcHRpb25zXG4pOiBzdHJpbmcge1xuICByZXR1cm4gc2VydmljZS50cmFuc2xhdGVTeW5jKGtleSwgb3B0aW9ucyk7XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhUcmFuc2xhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGxvYWRlciA9IGluamVjdChBWF9UUkFOU0xBVElPTl9MT0FERVIpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChBWF9UUkFOU0xBVElPTl9DT05GSUcpO1xuXG4gIHByaXZhdGUgZXZlbnRTZXJ2aWNlID0gaW5qZWN0KEFYRXZlbnRTZXJ2aWNlKTtcblxuICBwcml2YXRlIHRyYW5zbGF0aW9uQ2FjaGU6IEFYVHJhbnNsYXRlSGFzaE1hcDxBWFRyYW5zbGF0ZUhhc2hNYXA8c3RyaW5nPj4gPSB7fTtcbiAgcHJpdmF0ZSBvbmdvaW5nUmVxdWVzdHM6IE1hcDxzdHJpbmcsIE9ic2VydmFibGU8YW55Pj4gPSBuZXcgTWFwKCk7XG5cbiAgcHJpdmF0ZSBhY3RpdmVMYW5nOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihcbiAgICB0aGlzLmdldERlZmF1bHRMYW5nKClcbiAgKTtcbiAgbGFuZ0NoYW5nZXMkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmFjdGl2ZUxhbmcuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBsYXN0QWN0aXZlTGFuZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHNlcnZpY2UgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIGxvYWRMYW5ndWFnZXNBbmRTY29wZXMoXG4gICAgbGFuZ3VhZ2VzOiBzdHJpbmdbXSxcbiAgICBzY29wZXM6IHN0cmluZ1tdXG4gICk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIGNvbnN0IHJlcXVlc3RzID0gbGFuZ3VhZ2VzLmZsYXRNYXAoKGxhbmcpID0+XG4gICAgICBzY29wZXMubWFwKChzY29wZSkgPT4ge1xuICAgICAgICAvLyBDaGVjayBpZiB0cmFuc2xhdGlvbnMgYXJlIGFscmVhZHkgY2FjaGVkXG4gICAgICAgIGlmICh0aGlzLnRyYW5zbGF0aW9uQ2FjaGVbbGFuZ10/LltzY29wZV0pIHtcbiAgICAgICAgICByZXR1cm4gb2YodGhpcy50cmFuc2xhdGlvbkNhY2hlW2xhbmddW3Njb3BlXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVc2UgdGhlIG5ldyBtZXRob2QgdG8gaGFuZGxlIG9uZ29pbmcgcmVxdWVzdHMgYW5kIGxvYWRpbmdcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3JMb2FkVHJhbnNsYXRpb25zKGxhbmcsIHNjb3BlKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiBmb3JrSm9pbihyZXF1ZXN0cyk7XG4gIH1cblxuICBwcml2YXRlIGdldE9yTG9hZFRyYW5zbGF0aW9ucyhcbiAgICBsYW5nOiBzdHJpbmcsXG4gICAgc2NvcGU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPEFYVHJhbnNsYXRlSGFzaE1hcDxzdHJpbmc+PiB7XG4gICAgY29uc3QgcmVxdWVzdEtleSA9IGAke2xhbmd9XyR7c2NvcGV9YDtcblxuICAgIC8vIFJldHVybiBleGlzdGluZyBvYnNlcnZhYmxlIGlmIHRoZSByZXF1ZXN0IGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3NcbiAgICBpZiAodGhpcy5vbmdvaW5nUmVxdWVzdHMuaGFzKHJlcXVlc3RLZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5vbmdvaW5nUmVxdWVzdHMuZ2V0KHJlcXVlc3RLZXkpO1xuICAgIH1cblxuICAgIC8vIExvYWQgdHJhbnNsYXRpb25zIGlmIG5vdCBpbiBjYWNoZSBvciBvbmdvaW5nIHJlcXVlc3RzXG4gICAgY29uc3QgdHJhbnNsYXRpb25PYnNlcnZhYmxlID0gdGhpcy5sb2FkZXJcbiAgICAgIC5nZXRUcmFuc2xhdGlvbih7IGxhbmcsIHNjb3BlIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCh0cmFuc2xhdGlvbnMpID0+XG4gICAgICAgICAgdGhpcy5jYWNoZVRyYW5zbGF0aW9ucyhsYW5nLCBzY29wZSwgdHJhbnNsYXRpb25zKVxuICAgICAgICApLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBgRXJyb3IgbG9hZGluZyB0cmFuc2xhdGlvbnMgZm9yIGxhbmc6ICR7bGFuZ30sIHNjb3BlOiAke3Njb3BlfWAsXG4gICAgICAgICAgICBlcnJvclxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLmVtaXRFdmVudCh7XG4gICAgICAgICAgICB0eXBlOiBBWEV2ZW50VHlwZXMuQVhMYW5ndWFnZUxvYWRlZCxcbiAgICAgICAgICAgIHBheWxvYWQ6IGxhbmcsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5vbmdvaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RLZXkpO1xuICAgICAgICB9KSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICk7XG5cbiAgICB0aGlzLm9uZ29pbmdSZXF1ZXN0cy5zZXQocmVxdWVzdEtleSwgdHJhbnNsYXRpb25PYnNlcnZhYmxlKTtcbiAgICByZXR1cm4gdHJhbnNsYXRpb25PYnNlcnZhYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWNoZVRyYW5zbGF0aW9ucyhcbiAgICBsYW5nOiBzdHJpbmcsXG4gICAgc2NvcGU6IHN0cmluZyxcbiAgICB0cmFuc2xhdGlvbnM6IEFYVHJhbnNsYXRlSGFzaE1hcDxzdHJpbmc+XG4gICk6IHZvaWQge1xuICAgIGxvZGFzaFNldCh0aGlzLnRyYW5zbGF0aW9uQ2FjaGUsIGAke2xhbmd9LiR7c2NvcGV9YCwgdHJhbnNsYXRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREZWZhdWx0TGFuZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5kZWZhdWx0TGFuZztcbiAgfVxuXG4gIHB1YmxpYyBnZXRBY3RpdmVMYW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlTGFuZy5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEFjdGl2ZUxhbmcobGFuZzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGxhbmcgIT0gdGhpcy5nZXRBY3RpdmVMYW5nKCkpIHtcbiAgICAgIHRoaXMubGFzdEFjdGl2ZUxhbmcgPSB0aGlzLmdldEFjdGl2ZUxhbmcoKTsgLy8gVXBkYXRlIGxhc3QgYWN0aXZlIGxhbmd1YWdlXG4gICAgICB0aGlzLmFjdGl2ZUxhbmcubmV4dChsYW5nKTtcbiAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLmVtaXRFdmVudCh7XG4gICAgICAgIHR5cGU6IEFYRXZlbnRUeXBlcy5BWExhbmd1YWdlQ2hhbmdlZCxcbiAgICAgICAgcGF5bG9hZDogbGFuZyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0xhbmdBdmFpbGFibGUobGFuZzogc3RyaW5nLCBzY29wZTogc3RyaW5nID0gbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy50cmFuc2xhdGlvbkNhY2hlW2xhbmddICYmICghc2NvcGUgfHwgIXRoaXMudHJhbnNsYXRpb25DYWNoZVtsYW5nXVtzY29wZV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkKFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IEFYVHJhbnNsYXRlT3B0aW9ucyA9IHt9XG4gICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBsYW5nID0gdGhpcy5nZXRBY3RpdmVMYW5nKCksIHNjb3BlID0gdGhpcy5jb25maWcuZGVmYXVsdFNjb3BlIH0gPSBvcHRpb25zO1xuXG4gICAgLy8gRnVuY3Rpb24gdG8gZmV0Y2ggdHJhbnNsYXRpb25cbiAgICBjb25zdCBmZXRjaFRyYW5zbGF0aW9uID0gKGxhbmd1YWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4gPT4ge1xuICAgICAgLy8gQ2hlY2sgaWYgdHJhbnNsYXRpb25zIGFyZSBhdmFpbGFibGUgaW4gdGhlIGNhY2hlXG4gICAgICBpZiAodGhpcy50cmFuc2xhdGlvbkNhY2hlW2xhbmd1YWdlXT8uW3Njb3BlXSkge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5nZXRUcmFuc2xhdGlvbihrZXksIGxhbmd1YWdlLCBzY29wZSwgb3B0aW9ucy5wYXJhbXMpKTtcbiAgICAgIH1cblxuICAgICAgLy8gVXNlIHRoZSBuZXcgbWV0aG9kIHRvIGhhbmRsZSBvbmdvaW5nIHJlcXVlc3RzIGFuZCBsb2FkaW5nXG4gICAgICByZXR1cm4gdGhpcy5nZXRPckxvYWRUcmFuc2xhdGlvbnMobGFuZ3VhZ2UsIHNjb3BlKS5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID1cbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25DYWNoZVtsYW5ndWFnZV0/LltzY29wZV0/LltrZXldIHx8IGtleTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGlvbihcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uLFxuICAgICAgICAgICAgbGFuZ3VhZ2UsXG4gICAgICAgICAgICBzY29wZSxcbiAgICAgICAgICAgIG9wdGlvbnMucGFyYW1zXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgodHJhbnNsYXRlZFRleHQpID0+IHtcbiAgICAgICAgICBpZiAodHJhbnNsYXRlZFRleHQgPT09IGtleSAmJiBsYW5ndWFnZSAhPT0gdGhpcy5nZXREZWZhdWx0TGFuZygpKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgdHJhbnNsYXRpb24gaXMgbm90IGZvdW5kIGFuZCB0aGUgbGFuZ3VhZ2UgaXMgbm90IGRlZmF1bHQsXG4gICAgICAgICAgICAvLyB0cnkgZmV0Y2hpbmcgZnJvbSB0aGUgZGVmYXVsdCBsYW5ndWFnZVxuICAgICAgICAgICAgcmV0dXJuIGZldGNoVHJhbnNsYXRpb24odGhpcy5nZXREZWZhdWx0TGFuZygpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9mKHRyYW5zbGF0ZWRUZXh0KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfTtcblxuICAgIC8vIEZpcnN0LCB0cnkgdG8gZmV0Y2ggdGhlIHRyYW5zbGF0aW9uIGZvciB0aGUgcmVxdWVzdGVkIGxhbmd1YWdlXG4gICAgY29uc3QgdHJhbnNsYXRpb25Gb3JSZXF1ZXN0ZWRMYW5nID0gZmV0Y2hUcmFuc2xhdGlvbihsYW5nKTtcblxuICAgIC8vIElmIGxhc3RBY3RpdmVMYW5nIGlzIGF2YWlsYWJsZSBhbmQgZGlmZmVyZW50IGZyb20gdGhlIHJlcXVlc3RlZCBsYW5ndWFnZSwgdXNlIGl0IGFzIGEgZmFsbGJhY2tcbiAgICBpZiAodGhpcy5sYXN0QWN0aXZlTGFuZyAmJiB0aGlzLmxhc3RBY3RpdmVMYW5nICE9PSBsYW5nKSB7XG4gICAgICBjb25zdCB0cmFuc2xhdGlvbkZvckxhc3RBY3RpdmVMYW5nID0gdGhpcy5nZXRUcmFuc2xhdGlvbihcbiAgICAgICAga2V5LFxuICAgICAgICB0aGlzLmxhc3RBY3RpdmVMYW5nLFxuICAgICAgICBzY29wZSxcbiAgICAgICAgb3B0aW9ucy5wYXJhbXNcbiAgICAgICk7XG4gICAgICByZXR1cm4gdHJhbnNsYXRpb25Gb3JSZXF1ZXN0ZWRMYW5nLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0cmFuc2xhdGlvbkZvckxhc3RBY3RpdmVMYW5nKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhbnNsYXRpb25Gb3JSZXF1ZXN0ZWRMYW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmFuc2xhdGlvbihcbiAgICBrZXk6IHN0cmluZyxcbiAgICBsYW5nOiBzdHJpbmcsXG4gICAgc2NvcGU6IHN0cmluZyxcbiAgICBwYXJhbXM/OiBBWFRyYW5zbGF0ZVBhcmFtc1xuICApOiBzdHJpbmcge1xuICAgIGxldCB0cmFuc2xhdGlvbjogc3RyaW5nID0gKGxvZGFzaEdldChcbiAgICAgIHRoaXMudHJhbnNsYXRpb25DYWNoZSxcbiAgICAgIGAke2xhbmd9LiR7c2NvcGV9LiR7a2V5fWBcbiAgICApIHx8IGtleSkgYXMgc3RyaW5nO1xuXG4gICAgLy8gUmVwbGFjZSBwYXJhbXMgbGlrZSB7eyBuYW1lIH19XG4gICAgaWYgKHBhcmFtcykge1xuICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKChwYXJhbUtleSkgPT4ge1xuICAgICAgICBjb25zdCBwYXJhbVZhbHVlID0gcGFyYW1zW3BhcmFtS2V5XSBhcyBzdHJpbmc7XG4gICAgICAgIHRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb24ucmVwbGFjZShcbiAgICAgICAgICBuZXcgUmVnRXhwKGB7e1xcXFxzKiR7cGFyYW1LZXl9XFxcXHMqfX1gLCAnZycpLFxuICAgICAgICAgIHBhcmFtVmFsdWVcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFJlcGxhY2UgdHJhbnNsYXRpb25zIGxpa2Uge3sgdCgna2V5JykgfX1cbiAgICBjb25zdCB0cmFuc2xhdGlvblBhdHRlcm4gPSAve3tcXHMqdFxcKCcoW14nXSspJ1xcKVxccyp9fS9nO1xuICAgIHRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb24ucmVwbGFjZSh0cmFuc2xhdGlvblBhdHRlcm4sIChtYXRjaCwgaW5uZXJLZXkpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zbGF0aW9uKGlubmVyS2V5LCBsYW5nLCBzY29wZSwgcGFyYW1zKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdHJhbnNsYXRpb247XG4gIH1cblxuICBwdWJsaWMgdHJhbnNsYXRlKFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBBWFRyYW5zbGF0ZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBpZiAob3B0aW9ucz8ubGFuZykge1xuICAgICAgcmV0dXJuIHRoaXMubG9hZChrZXksIG9wdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sYW5nQ2hhbmdlcyQucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmdldEFjdGl2ZUxhbmcoKSksXG4gICAgICBzd2l0Y2hNYXAoKGxhbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZChrZXksIHsgLi4ub3B0aW9ucywgbGFuZzogbGFuZyB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB0cmFuc2xhdGVBc3luYyhcbiAgICBrZXk6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQVhUcmFuc2xhdGVPcHRpb25zXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBsYW5nID0gdGhpcy5nZXRBY3RpdmVMYW5nKCksIHNjb3BlID0gdGhpcy5jb25maWcuZGVmYXVsdFNjb3BlIH0gPVxuICAgICAgb3B0aW9ucyB8fCB7fTtcbiAgICBsZXQgdHJhbnNsYXRpb24gPSBsb2Rhc2hHZXQoXG4gICAgICB0aGlzLnRyYW5zbGF0aW9uQ2FjaGUsXG4gICAgICBgJHtsYW5nfS4ke3Njb3BlfS4ke2tleX1gXG4gICAgKTtcblxuICAgIGlmICghdHJhbnNsYXRpb24pIHtcbiAgICAgIC8vIElmIHRoZSB0cmFuc2xhdGlvbiBpcyBub3QgaW4gdGhlIGNhY2hlLCBsb2FkIGl0XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmxvYWQoa2V5LCB7IGxhbmcsIHNjb3BlIH0pLnBpcGUodGFrZSgxKSkpO1xuICAgICAgdHJhbnNsYXRpb24gPSBsb2Rhc2hHZXQodGhpcy50cmFuc2xhdGlvbkNhY2hlLCBgJHtsYW5nfS4ke3Njb3BlfS4ke2tleX1gKTtcbiAgICB9XG5cbiAgICAvLyBJZiBzdGlsbCBub3QgYXZhaWxhYmxlLCB0cnkgdGhlIGxhc3QgYWN0aXZlIGxhbmd1YWdlIG9yIGRlZmF1bHQgbGFuZ3VhZ2VcbiAgICBpZiAoIXRyYW5zbGF0aW9uICYmIHRoaXMubGFzdEFjdGl2ZUxhbmcpIHtcbiAgICAgIHRyYW5zbGF0aW9uID0gbG9kYXNoR2V0KFxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uQ2FjaGUsXG4gICAgICAgIGAke3RoaXMubGFzdEFjdGl2ZUxhbmd9LiR7c2NvcGV9LiR7a2V5fWBcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghdHJhbnNsYXRpb24pIHtcbiAgICAgIHRyYW5zbGF0aW9uID0gbG9kYXNoR2V0KFxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uQ2FjaGUsXG4gICAgICAgIGAke3RoaXMuZ2V0RGVmYXVsdExhbmcoKX0uJHtzY29wZX0uJHtrZXl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBQZXJmb3JtIHBhcmFtZXRlciByZXBsYWNlbWVudFxuICAgIHJldHVybiB0aGlzLmdldFRyYW5zbGF0aW9uKFxuICAgICAgKHRyYW5zbGF0aW9uIHx8IGtleSkgYXMgYW55LFxuICAgICAgbGFuZyxcbiAgICAgIHNjb3BlLFxuICAgICAgb3B0aW9ucz8ucGFyYW1zXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2xhdGVTeW5jKGtleTogc3RyaW5nLCBvcHRpb25zPzogQVhUcmFuc2xhdGVPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IGxhbmcgPSB0aGlzLmdldEFjdGl2ZUxhbmcoKSwgc2NvcGUgPSB0aGlzLmNvbmZpZy5kZWZhdWx0U2NvcGUgfSA9XG4gICAgICBvcHRpb25zIHx8IHt9O1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHRyYW5zbGF0aW9uIGZvciB0aGUgYWN0aXZlIGxhbmd1YWdlIGlzIGF2YWlsYWJsZVxuICAgIGxldCB0cmFuc2xhdGlvbiA9IGxvZGFzaEdldChcbiAgICAgIHRoaXMudHJhbnNsYXRpb25DYWNoZSxcbiAgICAgIGAke2xhbmd9LiR7c2NvcGV9LiR7a2V5fWBcbiAgICApO1xuXG4gICAgLy8gXG4gICAgY29uc3QgbG9hZExhbmcgPSAoKSA9PiBsYXN0VmFsdWVGcm9tKHRoaXMuZ2V0T3JMb2FkVHJhbnNsYXRpb25zKGxhbmcsIHNjb3BlKSk7XG4gICAgLy8gSWYgbm90IGF2YWlsYWJsZSwgY2hlY2sgbGFzdEFjdGl2ZUxhbmdcbiAgICBpZiAoIXRyYW5zbGF0aW9uICYmIHRoaXMubGFzdEFjdGl2ZUxhbmcpIHtcbiAgICAgIGxvYWRMYW5nKCk7XG4gICAgICB0cmFuc2xhdGlvbiA9IGxvZGFzaEdldChcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbkNhY2hlLFxuICAgICAgICBgJHt0aGlzLmxhc3RBY3RpdmVMYW5nfS4ke3Njb3BlfS4ke2tleX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIElmIHN0aWxsIG5vdCBhdmFpbGFibGUsIHVzZSB0aGUgZGVmYXVsdCBsYW5ndWFnZVxuICAgIGlmICghdHJhbnNsYXRpb24pIHtcbiAgICAgIGxvYWRMYW5nKCk7XG4gICAgICB0cmFuc2xhdGlvbiA9IGxvZGFzaEdldChcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbkNhY2hlLFxuICAgICAgICBgJHt0aGlzLmdldERlZmF1bHRMYW5nKCl9LiR7c2NvcGV9LiR7a2V5fWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybSBwYXJhbWV0ZXIgcmVwbGFjZW1lbnRcbiAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGlvbihcbiAgICAgICh0cmFuc2xhdGlvbiB8fCBrZXkpIGFzIGFueSxcbiAgICAgIGxhbmcsXG4gICAgICBzY29wZSxcbiAgICAgIG9wdGlvbnM/LnBhcmFtc1xuICAgICk7XG4gIH1cblxuXG5cbn1cbiJdfQ==
|
@@ -1,14 +1,7 @@
|
|
1
1
|
// @dynamic
|
2
2
|
export class AXHtmlUtil {
|
3
3
|
static focusElement(element) {
|
4
|
-
const list = [
|
5
|
-
'button',
|
6
|
-
'input',
|
7
|
-
'[href]',
|
8
|
-
'select',
|
9
|
-
'textarea',
|
10
|
-
'[tabindex]',
|
11
|
-
].map((c) => c + ':not([tabindex="-1"])');
|
4
|
+
const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map((c) => c + ':not([tabindex="-1"])');
|
12
5
|
const focusable = element.querySelector(list.join(', '));
|
13
6
|
if (focusable) {
|
14
7
|
focusable.focus();
|
@@ -17,14 +10,7 @@ export class AXHtmlUtil {
|
|
17
10
|
return null;
|
18
11
|
}
|
19
12
|
static blurElement(element) {
|
20
|
-
const list = [
|
21
|
-
'button',
|
22
|
-
'input',
|
23
|
-
'[href]',
|
24
|
-
'select',
|
25
|
-
'textarea',
|
26
|
-
'[tabindex]',
|
27
|
-
].map((c) => c + ':not([tabindex="-1"])');
|
13
|
+
const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map((c) => c + ':not([tabindex="-1"])');
|
28
14
|
const focusable = element.querySelector(list.join(', '));
|
29
15
|
if (focusable) {
|
30
16
|
focusable.blur();
|
@@ -35,5 +21,9 @@ export class AXHtmlUtil {
|
|
35
21
|
static hasFocus(element) {
|
36
22
|
return element.matches(':focus-within') || element.matches(':focus');
|
37
23
|
}
|
24
|
+
static isRtl(element) {
|
25
|
+
const rtl = element.classList.contains('ax-rtl') || window.getComputedStyle(element, null).getPropertyValue('direction') === 'rtl';
|
26
|
+
return rtl;
|
27
|
+
}
|
38
28
|
}
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3V0aWxzL3NyYy9saWIvaHRtbC11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxNQUFNLE9BQU8sVUFBVTtJQUNyQixNQUFNLENBQUMsWUFBWSxDQUFDLE9BQW9CO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3ZILE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBb0I7UUFDckMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLHVCQUF1QixDQUFDLENBQUM7UUFDdkgsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFvQjtRQUNsQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFvQjtRQUMvQixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUssQ0FBQztRQUNuSSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgQVhIdG1sVXRpbCB7XG4gIHN0YXRpYyBmb2N1c0VsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgbGlzdCA9IFsnYnV0dG9uJywgJ2lucHV0JywgJ1tocmVmXScsICdzZWxlY3QnLCAndGV4dGFyZWEnLCAnW3RhYmluZGV4XSddLm1hcCgoYykgPT4gYyArICc6bm90KFt0YWJpbmRleD1cIi0xXCJdKScpO1xuICAgIGNvbnN0IGZvY3VzYWJsZSA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4obGlzdC5qb2luKCcsICcpKTtcbiAgICBpZiAoZm9jdXNhYmxlKSB7XG4gICAgICBmb2N1c2FibGUuZm9jdXMoKTtcbiAgICAgIHJldHVybiBmb2N1c2FibGU7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHN0YXRpYyBibHVyRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBsaXN0ID0gWydidXR0b24nLCAnaW5wdXQnLCAnW2hyZWZdJywgJ3NlbGVjdCcsICd0ZXh0YXJlYScsICdbdGFiaW5kZXhdJ10ubWFwKChjKSA9PiBjICsgJzpub3QoW3RhYmluZGV4PVwiLTFcIl0pJyk7XG4gICAgY29uc3QgZm9jdXNhYmxlID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihsaXN0LmpvaW4oJywgJykpO1xuICAgIGlmIChmb2N1c2FibGUpIHtcbiAgICAgIGZvY3VzYWJsZS5ibHVyKCk7XG4gICAgICByZXR1cm4gZm9jdXNhYmxlO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBoYXNGb2N1cyhlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiBlbGVtZW50Lm1hdGNoZXMoJzpmb2N1cy13aXRoaW4nKSB8fCBlbGVtZW50Lm1hdGNoZXMoJzpmb2N1cycpO1xuICB9XG5cbiAgc3RhdGljIGlzUnRsKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgcnRsID0gZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2F4LXJ0bCcpIHx8IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09PSAncnRsJztcbiAgICByZXR1cm4gcnRsO1xuICB9XG59XG4iXX0=
|
@@ -1277,11 +1277,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
1277
1277
|
args: [{ name: 'axDate' }]
|
1278
1278
|
}] });
|
1279
1279
|
|
1280
|
+
class AXTimeDurationFormatter {
|
1281
|
+
get name() {
|
1282
|
+
return 'time-duration';
|
1283
|
+
}
|
1284
|
+
format(value, options) {
|
1285
|
+
const milliseconds = Number(value);
|
1286
|
+
if (milliseconds === null || isNaN(milliseconds)) {
|
1287
|
+
return '...';
|
1288
|
+
}
|
1289
|
+
// Convert milliseconds to various units
|
1290
|
+
const totalMilliseconds = milliseconds % 1000;
|
1291
|
+
const totalSeconds = Math.floor(milliseconds / 1000);
|
1292
|
+
const seconds = totalSeconds % 60;
|
1293
|
+
const totalMinutes = Math.floor(totalSeconds / 60);
|
1294
|
+
const minutes = totalMinutes % 60;
|
1295
|
+
const totalHours = Math.floor(totalMinutes / 60);
|
1296
|
+
// Helper function for zero-padding
|
1297
|
+
const pad = (num, length = 2) => num.toString().padStart(length, '0');
|
1298
|
+
// Default format if none provided
|
1299
|
+
const format = options?.format || (totalHours >= 0 ? 'HH:mm:ss' : 'mm:ss');
|
1300
|
+
const formattedTime = [];
|
1301
|
+
// Parse format and build the time string accordingly
|
1302
|
+
if (format.includes('HH') || format.includes('H')) {
|
1303
|
+
formattedTime.push(pad(totalHours));
|
1304
|
+
}
|
1305
|
+
if (format.includes('mm')) {
|
1306
|
+
formattedTime.push(pad(minutes));
|
1307
|
+
}
|
1308
|
+
else if (format.includes('m')) {
|
1309
|
+
formattedTime.push(minutes.toString());
|
1310
|
+
}
|
1311
|
+
if (format.includes('ss')) {
|
1312
|
+
formattedTime.push(pad(seconds));
|
1313
|
+
}
|
1314
|
+
else if (format.includes('s')) {
|
1315
|
+
formattedTime.push(seconds.toString());
|
1316
|
+
}
|
1317
|
+
if (format.includes('ms') || format.includes('MS')) {
|
1318
|
+
formattedTime.push(pad(totalMilliseconds, 3));
|
1319
|
+
}
|
1320
|
+
// Join the parts according to the format
|
1321
|
+
return formattedTime.join(format.includes('ms') || format.includes('MS') ? ':' : ':');
|
1322
|
+
}
|
1323
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXTimeDurationFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1324
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXTimeDurationFormatter }); }
|
1325
|
+
}
|
1326
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXTimeDurationFormatter, decorators: [{
|
1327
|
+
type: Injectable
|
1328
|
+
}] });
|
1329
|
+
|
1280
1330
|
class AXDateTimeModule {
|
1281
1331
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
1282
1332
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], imports: [i1.AXFormatModule], exports: [AXDateTimePipe] }); }
|
1283
1333
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeModule, imports: [AXFormatModule.forChild({
|
1284
|
-
formatters: [AXDateTimeFormatter, AXTimeLeftFormatter],
|
1334
|
+
formatters: [AXDateTimeFormatter, AXTimeLeftFormatter, AXTimeDurationFormatter],
|
1285
1335
|
})] }); }
|
1286
1336
|
}
|
1287
1337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeModule, decorators: [{
|
@@ -1289,7 +1339,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
1289
1339
|
args: [{
|
1290
1340
|
imports: [
|
1291
1341
|
AXFormatModule.forChild({
|
1292
|
-
formatters: [AXDateTimeFormatter, AXTimeLeftFormatter],
|
1342
|
+
formatters: [AXDateTimeFormatter, AXTimeLeftFormatter, AXTimeDurationFormatter],
|
1293
1343
|
}),
|
1294
1344
|
],
|
1295
1345
|
exports: [AXDateTimePipe],
|