@c8y/ngx-components 1017.0.338 → 1017.0.345
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/core/common/date.pipe.d.ts +2 -2
- package/core/common/stringify-object.pipe.d.ts +2 -1
- package/ecosystem/packages/deploy-application/deploy-application.component.d.ts +6 -5
- package/ecosystem/shared/ecosystem.constants.d.ts +2 -0
- package/ecosystem/shared/ecosystem.model.d.ts +3 -1
- package/ecosystem/shared/ecosystem.service.d.ts +11 -5
- package/esm2020/core/common/date.pipe.mjs +12 -7
- package/esm2020/core/common/stringify-object.pipe.mjs +11 -8
- package/esm2020/ecosystem/application-properties/application-properties.component.mjs +3 -3
- package/esm2020/ecosystem/applications/install-from-package/install-from-package.component.mjs +2 -2
- package/esm2020/ecosystem/packages/deploy-application/deploy-application.component.mjs +26 -81
- package/esm2020/ecosystem/shared/ecosystem.constants.mjs +5 -3
- package/esm2020/ecosystem/shared/ecosystem.model.mjs +3 -1
- package/esm2020/ecosystem/shared/ecosystem.service.mjs +121 -24
- package/fesm2015/c8y-ngx-components-ecosystem-shared.mjs +139 -27
- package/fesm2015/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-ecosystem.mjs +23 -77
- package/fesm2015/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +20 -13
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem-shared.mjs +126 -25
- package/fesm2020/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem.mjs +23 -78
- package/fesm2020/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +20 -13
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/locales/locales.pot +15 -3
- package/package.json +2 -2
|
@@ -22,8 +22,8 @@ export declare const ES_MAX_TIME_MILLISECONDS: number;
|
|
|
22
22
|
*/
|
|
23
23
|
export declare class DatePipe extends NgDatePipe {
|
|
24
24
|
private translateService;
|
|
25
|
-
constructor(locale: string, translateService: TranslateService);
|
|
25
|
+
constructor(locale: string, translateService: TranslateService, defaultTimezone?: string | null);
|
|
26
26
|
transform(value: any, format?: string, timezone?: string, locale?: string): any;
|
|
27
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DatePipe,
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DatePipe, [null, null, { optional: true; }]>;
|
|
28
28
|
static ɵpipe: i0.ɵɵPipeDeclaration<DatePipe, "c8yDate", false>;
|
|
29
29
|
}
|
|
@@ -3,9 +3,10 @@ import { DatePipe } from './date.pipe';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class StringifyObjectPipe implements PipeTransform {
|
|
5
5
|
private c8yDatePipe;
|
|
6
|
+
private readonly isoDateTimeRegex;
|
|
6
7
|
constructor(c8yDatePipe: DatePipe);
|
|
7
8
|
transform(value: any): string;
|
|
8
|
-
|
|
9
|
+
private isDate;
|
|
9
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<StringifyObjectPipe, never>;
|
|
10
11
|
static ɵpipe: i0.ɵɵPipeDeclaration<StringifyObjectPipe, "stringifyObject", false>;
|
|
11
12
|
}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { IApplication, IApplicationVersion } from '@c8y/client';
|
|
3
4
|
import { GainsightService, WizardComponent } from '@c8y/ngx-components';
|
|
4
5
|
import { ApplicationPropertiesFormComponent, EcosystemService } from '@c8y/ngx-components/ecosystem/shared';
|
|
5
6
|
import { TranslateService } from '@ngx-translate/core';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare class DeployApplicationComponent implements OnInit {
|
|
8
9
|
private ecosystemService;
|
|
9
|
-
private applicationService;
|
|
10
10
|
private wizardComponent;
|
|
11
11
|
private translate;
|
|
12
|
-
private inventoryService;
|
|
13
12
|
private gainsightService;
|
|
13
|
+
private router;
|
|
14
14
|
CURRENT_LOCATION: string;
|
|
15
15
|
inProgress: boolean;
|
|
16
16
|
package: IApplication;
|
|
17
17
|
isDeployed: boolean;
|
|
18
18
|
deployedWithSuccess: boolean;
|
|
19
19
|
newAppConfig: IApplication;
|
|
20
|
+
deployedApp: IApplication;
|
|
20
21
|
model: {
|
|
21
22
|
selected: any;
|
|
22
23
|
binary: {
|
|
@@ -30,12 +31,12 @@ export declare class DeployApplicationComponent implements OnInit {
|
|
|
30
31
|
readonly doneLabel: any;
|
|
31
32
|
readonly cancelLabel: any;
|
|
32
33
|
headerText: string;
|
|
33
|
-
constructor(ecosystemService: EcosystemService,
|
|
34
|
+
constructor(ecosystemService: EcosystemService, wizardComponent: WizardComponent, translate: TranslateService, gainsightService: GainsightService, router: Router);
|
|
34
35
|
ngOnInit(): Promise<void>;
|
|
35
36
|
deployApp(): Promise<void>;
|
|
36
|
-
fallbackToCloneLatest(config: any): Promise<void>;
|
|
37
37
|
cancel(): void;
|
|
38
38
|
onAppVersionSelect(appVersion: IApplicationVersion): void;
|
|
39
|
+
open(): void;
|
|
39
40
|
private markAsDeployed;
|
|
40
41
|
private getHeaderText;
|
|
41
42
|
static ɵfac: i0.ɵɵFactoryDeclaration<DeployApplicationComponent, never>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PropertiesListItem } from '@c8y/ngx-components';
|
|
2
2
|
export declare const ERROR_MESSAGES: {
|
|
3
|
+
ALREADY_EXIST: any;
|
|
3
4
|
TYPE_VALIDATION: any;
|
|
4
5
|
ALREADY_SUBSCRIBED: any;
|
|
5
6
|
NO_MANIFEST_FILE: any;
|
|
@@ -9,6 +10,7 @@ export declare const ERROR_MESSAGES: {
|
|
|
9
10
|
MICROSERVICE_NAME_TOO_LONG: any;
|
|
10
11
|
APPLICATION_CREATION_FAILED: any;
|
|
11
12
|
KEY_OR_CONTEXT_PATH_MISMATCH: any;
|
|
13
|
+
VERSION_NOT_FOUND: any;
|
|
12
14
|
};
|
|
13
15
|
export declare const APP_STATE: {
|
|
14
16
|
SUBSCRIBED: {
|
|
@@ -10,13 +10,15 @@ export declare enum Wizards {
|
|
|
10
10
|
export declare enum ERROR_TYPE {
|
|
11
11
|
TYPE_VALIDATION = "TYPE_VALIDATION",
|
|
12
12
|
ALREADY_SUBSCRIBED = "ALREADY_SUBSCRIBED",
|
|
13
|
+
ALREADY_EXIST = "ALREADY_EXIST",
|
|
13
14
|
INTERNAL_ERROR = "INTERNAL_ERROR",
|
|
14
15
|
NO_MANIFEST_FILE = "NO_MANIFEST_FILE",
|
|
15
16
|
INVALID_PACKAGE = "INVALID_PACKAGE",
|
|
16
17
|
INVALID_APPLICATION = "INVALID_APPLICATION",
|
|
17
18
|
MICROSERVICE_NAME_TOO_LONG = "MICROSERVICE_NAME_TOO_LONG",
|
|
18
19
|
APPLICATION_CREATION_FAILED = "APPLICATION_CREATION_FAILED",
|
|
19
|
-
KEY_OR_CONTEXT_PATH_MISMATCH = "KEY_OR_CONTEXT_PATH_MISMATCH"
|
|
20
|
+
KEY_OR_CONTEXT_PATH_MISMATCH = "KEY_OR_CONTEXT_PATH_MISMATCH",
|
|
21
|
+
VERSION_NOT_FOUND = "VERSION_NOT_FOUND"
|
|
20
22
|
}
|
|
21
23
|
export declare const PRODUCT_EXPERIENCE: {
|
|
22
24
|
APPLICATIONS: {
|
|
@@ -49,6 +49,8 @@ export declare class EcosystemService {
|
|
|
49
49
|
getWebApplications(customFilter?: any): Promise<IApplication[]>;
|
|
50
50
|
getFeatureApplications(customFilter?: any): Promise<IApplication[]>;
|
|
51
51
|
getPackageApplications(customFilter?: any): Promise<IApplication[]>;
|
|
52
|
+
getHostedAndPackageApplications(customFilter?: any): Promise<IApplication[]>;
|
|
53
|
+
getApplicationsFiltered(customFilter?: any, filterCallback?: (app: IApplication) => boolean): Promise<IApplication[]>;
|
|
52
54
|
isMicroserviceHostingAllowed(): Promise<boolean>;
|
|
53
55
|
canOpenAppInBrowser(app: IApplication): boolean;
|
|
54
56
|
openApp(app: any): void;
|
|
@@ -72,10 +74,6 @@ export declare class EcosystemService {
|
|
|
72
74
|
}>;
|
|
73
75
|
getHumanizedAppName(app: IApplication): Promise<string>;
|
|
74
76
|
createConfig(app: IApplication, formGroupValue: FormGroup): Partial<IApplication>;
|
|
75
|
-
updateAppManifest(application: IApplication, sourcePackage: IApplication): Promise<{
|
|
76
|
-
res: IFetchResponse;
|
|
77
|
-
data: any;
|
|
78
|
-
}>;
|
|
79
77
|
listArchives(appId: string | number | IApplication): Promise<IApplicationBinary[]>;
|
|
80
78
|
deleteArchive(archive: IApplicationBinary, app: IApplication): Promise<void>;
|
|
81
79
|
getArchiveManagedObject(binaryId: string): Promise<IManagedObject>;
|
|
@@ -92,6 +90,9 @@ export declare class EcosystemService {
|
|
|
92
90
|
createAppForArchive(archive: any, isPackageTypeArchive?: boolean): Promise<IApplication>;
|
|
93
91
|
reactivateArchive(app: IApplication): Promise<void>;
|
|
94
92
|
removeOldestArchive(app: IApplication, archives: IApplicationBinary[]): Promise<void>;
|
|
93
|
+
deployApp(selectedPackage: IApplication, formGroupValue: any, model: any): Promise<IApplication>;
|
|
94
|
+
fallbackToClone(application: IApplication, selectedPackage: IApplication, requestedVersion?: string): Promise<boolean>;
|
|
95
|
+
uploadBinaryFromOtherPackage(selectedPackage: IApplication, applicationToUploadBinaryTo: IApplication, binaryId: string, requestedVersion?: string, useBinariesFrom?: IApplication): Promise<void>;
|
|
95
96
|
getAppState(app: IApplication): ApplicationState;
|
|
96
97
|
isPackageBlueprint(app: IApplication): boolean;
|
|
97
98
|
isPluginsPackage(app: IApplication): boolean;
|
|
@@ -112,6 +113,12 @@ export declare class EcosystemService {
|
|
|
112
113
|
*/
|
|
113
114
|
alertError(error: Error | EcosystemError): void;
|
|
114
115
|
validatePackageKeyAndContextPath(manifest: IManifest, app: IApplication): Promise<void>;
|
|
116
|
+
filterContainString(name: string, filterTerm: string): boolean;
|
|
117
|
+
updateAppManifest(application: IApplication, selectedPackage: IApplication, requestedVersion?: string): Promise<{
|
|
118
|
+
res: IFetchResponse;
|
|
119
|
+
data: any;
|
|
120
|
+
}>;
|
|
121
|
+
private checkIfAppNameKeyPathExists;
|
|
115
122
|
private getAppKey;
|
|
116
123
|
private getContextPath;
|
|
117
124
|
private removeForbiddenCharacters;
|
|
@@ -119,7 +126,6 @@ export declare class EcosystemService {
|
|
|
119
126
|
private getCumulocityJson$;
|
|
120
127
|
private getAppType;
|
|
121
128
|
private getBaseNameFromArchiveOrAppModel;
|
|
122
|
-
private checkIfAppNameKeyPathExists;
|
|
123
129
|
private removeAppProperties;
|
|
124
130
|
private getUploadOverrides;
|
|
125
131
|
private removeVersionFromName;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DatePipe as NgDatePipe } from '@angular/common';
|
|
2
|
-
import { Inject, LOCALE_ID, Pipe } from '@angular/core';
|
|
1
|
+
import { DatePipe as NgDatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';
|
|
2
|
+
import { Inject, LOCALE_ID, Optional, Pipe } from '@angular/core';
|
|
3
3
|
import { TranslateService } from '@ngx-translate/core';
|
|
4
4
|
import { gettext } from '../i18n/gettext';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -24,8 +24,8 @@ export const ES_MAX_TIME_MILLISECONDS = 8640000000000000;
|
|
|
24
24
|
* <span>{{ 8640000000000000 + 1 | c8yDate }}</span> <!-- e.g. after 13 Sep 275760, 03:00:00 --> ```
|
|
25
25
|
*/
|
|
26
26
|
export class DatePipe extends NgDatePipe {
|
|
27
|
-
constructor(locale, translateService) {
|
|
28
|
-
super(locale);
|
|
27
|
+
constructor(locale, translateService, defaultTimezone) {
|
|
28
|
+
super(locale, defaultTimezone);
|
|
29
29
|
this.translateService = translateService;
|
|
30
30
|
}
|
|
31
31
|
transform(value, format = 'medium', timezone, locale) {
|
|
@@ -48,7 +48,7 @@ export class DatePipe extends NgDatePipe {
|
|
|
48
48
|
return result;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
DatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
51
|
+
DatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: i1.TranslateService }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
52
52
|
DatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: DatePipe, name: "c8yDate" });
|
|
53
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DatePipe, decorators: [{
|
|
54
54
|
type: Pipe,
|
|
@@ -56,5 +56,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
56
56
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
57
57
|
type: Inject,
|
|
58
58
|
args: [LOCALE_ID]
|
|
59
|
-
}] }, { type: i1.TranslateService }
|
|
60
|
-
|
|
59
|
+
}] }, { type: i1.TranslateService }, { type: undefined, decorators: [{
|
|
60
|
+
type: Inject,
|
|
61
|
+
args: [DATE_PIPE_DEFAULT_TIMEZONE]
|
|
62
|
+
}, {
|
|
63
|
+
type: Optional
|
|
64
|
+
}] }]; } });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vZGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLElBQUksVUFBVSxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckYsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUUxQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBVyxnQkFBZ0IsQ0FBQztBQUVqRTs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsTUFBTSxPQUFPLFFBQVMsU0FBUSxVQUFVO0lBQ3RDLFlBQ3FCLE1BQWMsRUFDekIsZ0JBQWtDLEVBQ00sZUFBK0I7UUFFL0UsS0FBSyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUh2QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBSTVDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVSxFQUFFLFNBQWlCLFFBQVEsRUFBRSxRQUFpQixFQUFFLE1BQWU7UUFDakYsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksV0FBVyxHQUFZLEtBQUssQ0FBQztRQUNqQyxJQUFJLFdBQVcsR0FBWSxLQUFLLENBQUM7UUFFakMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLHdCQUF3QixDQUFDLENBQUM7WUFDMUQsYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUVuRSxXQUFXLEdBQUcsS0FBSyxHQUFHLENBQUMsd0JBQXdCLENBQUM7WUFDaEQsV0FBVyxHQUFHLEtBQUssR0FBRyx3QkFBd0IsQ0FBQztTQUNoRDtRQUNELElBQUksTUFBTSxHQUFXLEtBQUssQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFOUUsSUFBSSxXQUFXLEVBQUU7WUFDZixNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3RGO2FBQU0sSUFBSSxXQUFXLEVBQUU7WUFDdEIsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUNyRjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O3FHQTlCVSxRQUFRLGtCQUVULFNBQVMsNkNBRVQsMEJBQTBCO21HQUp6QixRQUFROzJGQUFSLFFBQVE7a0JBRHBCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFOzswQkFHcEIsTUFBTTsyQkFBQyxTQUFTOzswQkFFaEIsTUFBTTsyQkFBQywwQkFBMEI7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSBhcyBOZ0RhdGVQaXBlLCBEQVRFX1BJUEVfREVGQVVMVF9USU1FWk9ORSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIExPQ0FMRV9JRCwgT3B0aW9uYWwsIFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi9pMThuL2dldHRleHQnO1xuXG4vKipcbiAqIFRoZSByYW5nZSBvZiB0aW1lcyBzdXBwb3J0ZWQgYnkgRUNNQVNjcmlwdCBEYXRlIG9iamVjdHMgaW4gbWlsbGlzZWNvbmRzLlxuICogQHNlZSBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNS4xLyNzZWMtMTUuOS4xLjFcbiAqL1xuZXhwb3J0IGNvbnN0IEVTX01BWF9USU1FX01JTExJU0VDT05EUzogbnVtYmVyID0gODY0MDAwMDAwMDAwMDAwMDtcblxuLyoqXG4gKiBGb3JtYXRzIGEgZGF0ZSB2YWx1ZSBhY2NvcmRpbmcgdG8gbG9jYWxlIHJ1bGVzLiBJZiBubyBvdGhlciBmb3JtYXQgc3BlY2lmaWVkIGl0IGRlZmF1bHRzIHRvIGBtZWRpdW1gXG4gKiB1c2VkIGFzIHN0YW5kYXJkIGRhdGUvdGltZSBmb3JtYXQuXG4gKlxuICogRXh0ZW5kcyBBbmd1bGFyJ3MgRGF0ZVBpcGUgaW4gYSB3YXkgc28gdGhhdCBkYXRlIHZhbHVlcyBleGNlZWRpbmcgdGhlIHJhbmdlIHN1cHBvcnRlZCBieSBFQ01BU2NyaXB0XG4gKiBhcmUgZGlzcGxheWVkIGFzIGVhcmxpZXN0L2xhdGVzdCBzdXBwb3J0ZWQgcG9pbnQgaW4gdGltZSBwcmludGVkIGluIHRoZSBkZXNpcmVkIGZvcm1hdCBwcmUtIG9yIHBvc3RmaXhlZFxuICogYnkgdGhlIHdvcmQgYGJlZm9yZWAgb3IgYGFmdGVyYCwgcmVzcGVjdGl2ZWx5LlxuICogSW4gYWxsIG90aGVyIGNhc2VzIHRoZSBwaXBlIGJlaGF2ZXMgYXMgdGhlIHN0YW5kYXJkIFtEYXRlUGlwZV17QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb21tb24vRGF0ZVBpcGV9LlxuICpcbiAqIGBgYGh0bWxcbiAqIDxzcGFuIGNsYXNzPVwiaGlnaGxpZ2h0XCI+e3sgZGVhZGxpbmUgfCBjOHlEYXRlIH19PC9zcGFuPiA8IS0tIGUuZy4gNyBNYXkgMjAyMCwgMTc6NDU6MTkgKGVuLUdCKSBvciAwNy4wNS4yMDIwLCAxNzo0NToxOSAoZGUpIC0tPlxuICogPHNwYW4+e3sgbGFzdFVwZGF0ZWQgfCBjOHlEYXRlOiAnYSBoOk1NOnNzJyB9fTwvc3Bhbj4gPCEtLSBlLmcuIHBtIDU6NDU6MTkgLS0+XG4gKiA8c3Bhbj57eyA4NjQwMDAwMDAwMDAwMDAwICsgMSB8IGM4eURhdGUgfX08L3NwYW4+IDwhLS0gZS5nLiBhZnRlciAxMyBTZXAgMjc1NzYwLCAwMzowMDowMCAtLT4gYGBgXG4gKi9cbkBQaXBlKHsgbmFtZTogJ2M4eURhdGUnIH0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpcGUgZXh0ZW5kcyBOZ0RhdGVQaXBlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZTogc3RyaW5nLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBASW5qZWN0KERBVEVfUElQRV9ERUZBVUxUX1RJTUVaT05FKSBAT3B0aW9uYWwoKSBkZWZhdWx0VGltZXpvbmU/OiBzdHJpbmcgfCBudWxsXG4gICkge1xuICAgIHN1cGVyKGxvY2FsZSwgZGVmYXVsdFRpbWV6b25lKTtcbiAgfVxuXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBmb3JtYXQ6IHN0cmluZyA9ICdtZWRpdW0nLCB0aW1lem9uZT86IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKTogYW55IHtcbiAgICBsZXQgdmFsdWVJbkJvdW5kcyA9IHZhbHVlO1xuICAgIGxldCB2YWx1ZUJlZm9yZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGxldCB2YWx1ZUJleW9uZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbHVlKSkge1xuICAgICAgdmFsdWVJbkJvdW5kcyA9IE1hdGgubWluKHZhbHVlLCBFU19NQVhfVElNRV9NSUxMSVNFQ09ORFMpO1xuICAgICAgdmFsdWVJbkJvdW5kcyA9IE1hdGgubWF4KHZhbHVlSW5Cb3VuZHMsIC1FU19NQVhfVElNRV9NSUxMSVNFQ09ORFMpO1xuXG4gICAgICB2YWx1ZUJlZm9yZSA9IHZhbHVlIDwgLUVTX01BWF9USU1FX01JTExJU0VDT05EUztcbiAgICAgIHZhbHVlQmV5b25kID0gdmFsdWUgPiBFU19NQVhfVElNRV9NSUxMSVNFQ09ORFM7XG4gICAgfVxuICAgIGxldCByZXN1bHQ6IHN0cmluZyA9IHN1cGVyLnRyYW5zZm9ybSh2YWx1ZUluQm91bmRzLCBmb3JtYXQsIHRpbWV6b25lLCBsb2NhbGUpO1xuXG4gICAgaWYgKHZhbHVlQmVmb3JlKSB7XG4gICAgICByZXN1bHQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KGBiZWZvcmUge3tkYXRlfX1gKSwgeyBkYXRlOiByZXN1bHQgfSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZUJleW9uZCkge1xuICAgICAgcmVzdWx0ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dChgYWZ0ZXIge3tkYXRlfX1gKSwgeyBkYXRlOiByZXN1bHQgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
|
|
@@ -1,30 +1,33 @@
|
|
|
1
1
|
import { Pipe } from '@angular/core';
|
|
2
|
+
import { isDate as _isDate } from 'lodash-es';
|
|
2
3
|
import { DatePipe } from './date.pipe';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "./date.pipe";
|
|
5
6
|
export class StringifyObjectPipe {
|
|
6
7
|
constructor(c8yDatePipe) {
|
|
7
8
|
this.c8yDatePipe = c8yDatePipe;
|
|
9
|
+
this.isoDateTimeRegex = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)(([+-](\d{2}):(\d{2})|Z)?)$/;
|
|
8
10
|
}
|
|
9
11
|
transform(value) {
|
|
10
12
|
if (!value) {
|
|
11
13
|
return '';
|
|
12
14
|
}
|
|
13
|
-
if (typeof value === 'object') {
|
|
15
|
+
if (typeof value === 'object' && !_isDate(value)) {
|
|
14
16
|
return JSON.stringify(value);
|
|
15
17
|
}
|
|
16
|
-
if (this.
|
|
18
|
+
if (this.isDate(value)) {
|
|
17
19
|
return this.c8yDatePipe.transform(value);
|
|
18
20
|
}
|
|
19
21
|
return value;
|
|
20
22
|
}
|
|
21
|
-
|
|
23
|
+
isDate(value) {
|
|
22
24
|
if (!value)
|
|
23
25
|
return false;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
if (_isDate(value))
|
|
27
|
+
return !isNaN(value);
|
|
28
|
+
if (typeof value === 'string')
|
|
29
|
+
return this.isoDateTimeRegex.test(value);
|
|
30
|
+
return false;
|
|
28
31
|
}
|
|
29
32
|
}
|
|
30
33
|
StringifyObjectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: StringifyObjectPipe, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
@@ -33,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
33
36
|
type: Pipe,
|
|
34
37
|
args: [{ name: 'stringifyObject' }]
|
|
35
38
|
}], ctorParameters: function () { return [{ type: i1.DatePipe }]; } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LW9iamVjdC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vc3RyaW5naWZ5LW9iamVjdC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUd2QyxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQW9CLFdBQXFCO1FBQXJCLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBRnhCLHFCQUFnQixHQUMvQix1RkFBdUYsQ0FBQztJQUM5QyxDQUFDO0lBQzdDLFNBQVMsQ0FBQyxLQUFVO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxNQUFNLENBQUMsS0FBSztRQUNsQixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3pCLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7Z0hBdkJVLG1CQUFtQjs4R0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc0RhdGUgYXMgX2lzRGF0ZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJy4vZGF0ZS5waXBlJztcblxuQFBpcGUoeyBuYW1lOiAnc3RyaW5naWZ5T2JqZWN0JyB9KVxuZXhwb3J0IGNsYXNzIFN0cmluZ2lmeU9iamVjdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpc29EYXRlVGltZVJlZ2V4ID1cbiAgICAvXihcXGR7NH0pLShcXGR7Mn0pLShcXGR7Mn0pVChcXGR7Mn0pOihcXGR7Mn0pOihcXGR7Mn0oPzpcXC5cXGQqKT8pKChbKy1dKFxcZHsyfSk6KFxcZHsyfSl8Wik/KSQvO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGM4eURhdGVQaXBlOiBEYXRlUGlwZSkge31cbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIV9pc0RhdGUodmFsdWUpKSB7XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0RhdGUodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5jOHlEYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGlzRGF0ZSh2YWx1ZSk6IGJvb2xlYW4ge1xuICAgIGlmICghdmFsdWUpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoX2lzRGF0ZSh2YWx1ZSkpIHJldHVybiAhaXNOYU4odmFsdWUpO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdGhpcy5pc29EYXRlVGltZVJlZ2V4LnRlc3QodmFsdWUpO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
|