@techextensor/tab-core-utility 2.2.132 → 2.2.134
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/esm2022/index.mjs +2 -1
- package/esm2022/lib/tab-core-utility/app/constants/api-constants.mjs +3 -1
- package/esm2022/lib/tab-core-utility/app/crud/tab-formio.service.mjs +12 -7
- package/esm2022/lib/tab-core-utility/app/crud/tab-release.service.mjs +38 -0
- package/esm2022/lib/tab-core-utility/app/enums/common.enum.mjs +23 -0
- package/esm2022/lib/tab-core-utility/app/enums/dsq.enum.mjs +17 -1
- package/esm2022/lib/tab-core-utility/app/enums/permission.enum.mjs +8 -1
- package/esm2022/lib/tab-core-utility/app/helpers/common/meta-data.helpers.mjs +161 -608
- package/esm2022/lib/tab-core-utility/app/interfaces/schema.interface.mjs +1 -2
- package/esm2022/lib/tab-core-utility/app/models/app-field.model.mjs +72 -0
- package/esm2022/lib/tab-core-utility/app/models/app-object.class.mjs +1 -1
- package/esm2022/lib/tab-core-utility/app/models/app-object.model.mjs +186 -0
- package/esm2022/lib/tab-core-utility/app/models/app-screen.model.mjs +37 -0
- package/esm2022/lib/tab-core-utility/app/models/common.class.mjs +1 -1
- package/esm2022/lib/tab-core-utility/app/models/data-source-queries.class.mjs +1 -1
- package/esm2022/lib/tab-core-utility/app/models/data-source-query.model.mjs +123 -0
- package/esm2022/lib/tab-core-utility/app/models/filter.model.mjs +24 -0
- package/esm2022/lib/tab-core-utility/app/models/orgInfo.model.mjs +38 -0
- package/esm2022/lib/tab-core-utility/app/models/parameter.model.mjs +18 -0
- package/esm2022/lib/tab-core-utility/app/models/sort.model.mjs +18 -0
- package/index.d.ts +1 -0
- package/lib/tab-core-utility/app/constants/api-constants.d.ts +2 -0
- package/lib/tab-core-utility/app/crud/tab-formio.service.d.ts +10 -5
- package/lib/tab-core-utility/app/crud/tab-release.service.d.ts +20 -0
- package/lib/tab-core-utility/app/enums/common.enum.d.ts +18 -0
- package/lib/tab-core-utility/app/enums/dsq.enum.d.ts +14 -0
- package/lib/tab-core-utility/app/enums/permission.enum.d.ts +6 -0
- package/lib/tab-core-utility/app/helpers/common/meta-data.helpers.d.ts +84 -320
- package/lib/tab-core-utility/app/interfaces/schema.interface.d.ts +1 -2
- package/lib/tab-core-utility/app/models/app-field.model.d.ts +56 -0
- package/lib/tab-core-utility/app/models/app-object.class.d.ts +11 -8
- package/lib/tab-core-utility/app/models/app-object.model.d.ts +124 -0
- package/lib/tab-core-utility/app/models/app-screen.model.d.ts +27 -0
- package/lib/tab-core-utility/app/models/common.class.d.ts +3 -0
- package/lib/tab-core-utility/app/models/data-source-queries.class.d.ts +8 -4
- package/lib/tab-core-utility/app/models/data-source-query.model.d.ts +69 -0
- package/lib/tab-core-utility/app/models/filter.model.d.ts +21 -0
- package/lib/tab-core-utility/app/models/orgInfo.model.d.ts +23 -0
- package/lib/tab-core-utility/app/models/parameter.model.d.ts +14 -0
- package/lib/tab-core-utility/app/models/sort.model.d.ts +15 -0
- package/lib/tab-core-utility/store/auth.store.d.ts +2 -2
- package/package.json +1 -1
|
@@ -4,6 +4,5 @@ export var MetadataEntityType;
|
|
|
4
4
|
MetadataEntityType["APP_FIELDS"] = "AppFields";
|
|
5
5
|
MetadataEntityType["DATA_SOURCE_QUERIES"] = "DataSourceQueries";
|
|
6
6
|
MetadataEntityType["APP_SCREENS"] = "AppScreens";
|
|
7
|
-
MetadataEntityType["APP_MENUS"] = "AppMenus";
|
|
8
7
|
})(MetadataEntityType || (MetadataEntityType = {}));
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL3NjaGVtYS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBLE1BQU0sQ0FBTixJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDNUIsZ0RBQTBCLENBQUE7SUFDMUIsOENBQXdCLENBQUE7SUFDeEIsK0RBQXlDLENBQUE7SUFDekMsZ0RBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUxXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFLN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNjaGVtYVJlc3BvbnNlIHtcbiAgUmVxdWVzdElkOiBzdHJpbmdcbiAgSXNTdWNjZXNzOiBib29sZWFuXG4gIFJlc3VsdDogc3RyaW5nXG4gIFN0YXR1c0NvZGU6IHN0cmluZ1xuICBSZWNvcmRBZmZlY3R0ZWQ6IG51bWJlclxuICBUb3RhbFJlY29yZHM6IG51bWJlclxuICBUb3RhbEV4ZWN1dGlvblRpbWU6IG51bWJlclxuICBMb2c6IGFueVtdXG4gIEVycm9yczogYW55W11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcmdJbmZvIHtcbiAgSUQ6IHN0cmluZztcbiAgT3JnYW5pemF0aW9uTmFtZTogc3RyaW5nO1xuICBQcmltYXJ5Q29udGFjdDogYW55O1xuICBBZGRyZXNzOiBhbnk7XG4gIExvY2FsZVNldHRpbmdzOiBzdHJpbmcgfCBudWxsO1xuICBTdWJkb21haW46IHN0cmluZztcbiAgVGVuYW50Q29kZTogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGVudW0gTWV0YWRhdGFFbnRpdHlUeXBlIHtcbiAgQVBQX09CSkVDVFMgPSAnQXBwT2JqZWN0cycsXG4gIEFQUF9GSUVMRFMgPSAnQXBwRmllbGRzJyxcbiAgREFUQV9TT1VSQ0VfUVVFUklFUyA9ICdEYXRhU291cmNlUXVlcmllcycsXG4gIEFQUF9TQ1JFRU5TID0gJ0FwcFNjcmVlbnMnXG59Il19
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { DataTypes } from "../enums/controllers.enum";
|
|
2
|
+
export class AppFieldModel {
|
|
3
|
+
constructor(raw) {
|
|
4
|
+
this.raw = raw;
|
|
5
|
+
this.ID = raw.ID;
|
|
6
|
+
this.ObjectID = raw.ObjectID ?? null;
|
|
7
|
+
this.ObjectID_Tosave = raw.ObjectID_Tosave;
|
|
8
|
+
this.FieldName = raw.FieldName;
|
|
9
|
+
this.DisplayName = raw.DisplayName;
|
|
10
|
+
this.Description = raw.Description ?? '';
|
|
11
|
+
this.FieldType = raw.FieldType;
|
|
12
|
+
this.CreationType = raw.CreationType;
|
|
13
|
+
this.FieldBase = raw.FieldBase;
|
|
14
|
+
this.BaseField = raw.BaseField ?? null;
|
|
15
|
+
this.IsRequired = !!raw.IsRequired;
|
|
16
|
+
this.IsUnique = !!raw.IsUnique;
|
|
17
|
+
this.IsSearchable = !!raw.IsSearchable;
|
|
18
|
+
this.IsUpdatable = !!raw.IsUpdatable;
|
|
19
|
+
this.IsConfidential = !!raw.IsConfidential;
|
|
20
|
+
this.SystemDBFieldName = raw.SystemDBFieldName;
|
|
21
|
+
this.IsSystem = !!raw.IsSystem;
|
|
22
|
+
this.IsVisible = !!raw.IsVisible;
|
|
23
|
+
this.IsPrimaryKey = !!raw.IsPrimaryKey;
|
|
24
|
+
this.IsDeprecated = !!raw.IsDeprecated;
|
|
25
|
+
this.IsDisplayField = !!raw.IsDisplayField;
|
|
26
|
+
this.LookUpDetails = raw.LookUpDetails ?? null;
|
|
27
|
+
this.IsLookup = !!raw.LookUpDetails;
|
|
28
|
+
this.AccessList = raw.AccessList ?? [];
|
|
29
|
+
this.Data = raw.Data ?? null;
|
|
30
|
+
this.FieldValidatorConfiguration = raw.FieldValidatorConfiguration ?? {};
|
|
31
|
+
this.FieldConfiguration = this.parseFieldConfiguration(raw.FieldConfiguration);
|
|
32
|
+
}
|
|
33
|
+
parseFieldConfiguration(config) {
|
|
34
|
+
try {
|
|
35
|
+
return typeof config === 'string' ? JSON.parse(config) : (config ?? {});
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return {};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Gets the data type name of the field as a string.
|
|
43
|
+
* The data type name is obtained from the DataTypes enum.
|
|
44
|
+
* @returns {string} The data type name.
|
|
45
|
+
*/
|
|
46
|
+
get dataTypeName() {
|
|
47
|
+
return DataTypes[this.FieldType?.DataType] ?? '';
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Searches for the given search term in the properties of the current AppFieldModel instance.
|
|
51
|
+
* The search is case-insensitive and is performed on the following properties:
|
|
52
|
+
* - ID
|
|
53
|
+
* - FieldName
|
|
54
|
+
* - DisplayName
|
|
55
|
+
* - SystemDBFieldName
|
|
56
|
+
* @param {string} term The search term.
|
|
57
|
+
* @returns {boolean} Whether the search term is present in any of the properties.
|
|
58
|
+
*/
|
|
59
|
+
search(term) {
|
|
60
|
+
const searchTerm = term.toLowerCase();
|
|
61
|
+
return [this.ID, this.FieldName, this.DisplayName, this.SystemDBFieldName]
|
|
62
|
+
.some(val => val === searchTerm || val?.toLowerCase().includes(searchTerm));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Converts the AppFieldModel instance to a JSON representation.
|
|
66
|
+
* @returns {any} The raw data of the instance.
|
|
67
|
+
*/
|
|
68
|
+
toJSON() {
|
|
69
|
+
return this.raw;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWZpZWxkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9hcHAtZmllbGQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXRELE1BQU0sT0FBTyxhQUFhO0lBNkJ4QixZQUE2QixHQUFRO1FBQVIsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUNuQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztRQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEdBQUcsQ0FBQywyQkFBMkIsSUFBSSxFQUFFLENBQUM7UUFDekUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU8sdUJBQXVCLENBQUMsTUFBVztRQUN6QyxJQUFJLENBQUM7WUFDSCxPQUFPLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILE1BQU0sQ0FBQyxJQUFZO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQ3ZFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxVQUFVLElBQUksR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFUeXBlcyB9IGZyb20gXCIuLi9lbnVtcy9jb250cm9sbGVycy5lbnVtXCI7XG5pbXBvcnQgeyBEYXRhU291cmNlUXVlcnlGaWVsZFR5cGUsIE9iamVjdENyZWF0aW9uVHlwZSB9IGZyb20gXCIuLi9lbnVtcy9kc3EuZW51bVwiO1xuaW1wb3J0IHsgRmllbGRBY2Nlc3MsIEZpZWxkVHlwZSwgTG9va1VwRGV0YWlscyB9IGZyb20gXCIuL2RhdGEtc291cmNlLXF1ZXJpZXMuY2xhc3NcIjtcblxuZXhwb3J0IGNsYXNzIEFwcEZpZWxkTW9kZWwge1xuICByZWFkb25seSBJRDogc3RyaW5nO1xuICByZWFkb25seSBPYmplY3RJRDogc3RyaW5nIHwgbnVsbDtcbiAgcmVhZG9ubHkgT2JqZWN0SURfVG9zYXZlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IEZpZWxkTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBEaXNwbGF5TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBEZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBGaWVsZFR5cGU6IEZpZWxkVHlwZTtcbiAgcmVhZG9ubHkgQ3JlYXRpb25UeXBlOiBPYmplY3RDcmVhdGlvblR5cGU7XG4gIHJlYWRvbmx5IEZpZWxkQmFzZTogRGF0YVNvdXJjZVF1ZXJ5RmllbGRUeXBlO1xuICByZWFkb25seSBJc1JlcXVpcmVkOiBib29sZWFuO1xuICByZWFkb25seSBJc1VuaXF1ZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgQmFzZUZpZWxkOiBzdHJpbmcgfCBudWxsO1xuICByZWFkb25seSBJc1NlYXJjaGFibGU6IGJvb2xlYW47XG4gIHJlYWRvbmx5IElzVXBkYXRhYmxlOiBib29sZWFuO1xuICByZWFkb25seSBJc0NvbmZpZGVudGlhbDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgU3lzdGVtREJGaWVsZE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgSXNTeXN0ZW06IGJvb2xlYW47XG4gIHJlYWRvbmx5IElzVmlzaWJsZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgSXNQcmltYXJ5S2V5OiBib29sZWFuO1xuICByZWFkb25seSBJc0RlcHJlY2F0ZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IElzRGlzcGxheUZpZWxkOiBib29sZWFuO1xuICByZWFkb25seSBMb29rVXBEZXRhaWxzOiBMb29rVXBEZXRhaWxzO1xuICByZWFkb25seSBJc0xvb2t1cDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgQWNjZXNzTGlzdDogRmllbGRBY2Nlc3NbXTtcbiAgcmVhZG9ubHkgRGF0YTogc3RyaW5nIHwgbnVsbDtcbiAgcmVhZG9ubHkgRmllbGRDb25maWd1cmF0aW9uOiBhbnk7XG4gIHJlYWRvbmx5IEZpZWxkVmFsaWRhdG9yQ29uZmlndXJhdGlvbjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmF3OiBhbnkpIHtcbiAgICB0aGlzLklEID0gcmF3LklEO1xuICAgIHRoaXMuT2JqZWN0SUQgPSByYXcuT2JqZWN0SUQgPz8gbnVsbDtcbiAgICB0aGlzLk9iamVjdElEX1Rvc2F2ZSA9IHJhdy5PYmplY3RJRF9Ub3NhdmU7XG4gICAgdGhpcy5GaWVsZE5hbWUgPSByYXcuRmllbGROYW1lO1xuICAgIHRoaXMuRGlzcGxheU5hbWUgPSByYXcuRGlzcGxheU5hbWU7XG4gICAgdGhpcy5EZXNjcmlwdGlvbiA9IHJhdy5EZXNjcmlwdGlvbiA/PyAnJztcbiAgICB0aGlzLkZpZWxkVHlwZSA9IHJhdy5GaWVsZFR5cGU7XG4gICAgdGhpcy5DcmVhdGlvblR5cGUgPSByYXcuQ3JlYXRpb25UeXBlO1xuICAgIHRoaXMuRmllbGRCYXNlID0gcmF3LkZpZWxkQmFzZTtcbiAgICB0aGlzLkJhc2VGaWVsZCA9IHJhdy5CYXNlRmllbGQgPz8gbnVsbDtcbiAgICB0aGlzLklzUmVxdWlyZWQgPSAhIXJhdy5Jc1JlcXVpcmVkO1xuICAgIHRoaXMuSXNVbmlxdWUgPSAhIXJhdy5Jc1VuaXF1ZTtcbiAgICB0aGlzLklzU2VhcmNoYWJsZSA9ICEhcmF3LklzU2VhcmNoYWJsZTtcbiAgICB0aGlzLklzVXBkYXRhYmxlID0gISFyYXcuSXNVcGRhdGFibGU7XG4gICAgdGhpcy5Jc0NvbmZpZGVudGlhbCA9ICEhcmF3LklzQ29uZmlkZW50aWFsO1xuICAgIHRoaXMuU3lzdGVtREJGaWVsZE5hbWUgPSByYXcuU3lzdGVtREJGaWVsZE5hbWU7XG4gICAgdGhpcy5Jc1N5c3RlbSA9ICEhcmF3LklzU3lzdGVtO1xuICAgIHRoaXMuSXNWaXNpYmxlID0gISFyYXcuSXNWaXNpYmxlO1xuICAgIHRoaXMuSXNQcmltYXJ5S2V5ID0gISFyYXcuSXNQcmltYXJ5S2V5O1xuICAgIHRoaXMuSXNEZXByZWNhdGVkID0gISFyYXcuSXNEZXByZWNhdGVkO1xuICAgIHRoaXMuSXNEaXNwbGF5RmllbGQgPSAhIXJhdy5Jc0Rpc3BsYXlGaWVsZDtcbiAgICB0aGlzLkxvb2tVcERldGFpbHMgPSByYXcuTG9va1VwRGV0YWlscyA/PyBudWxsO1xuICAgIHRoaXMuSXNMb29rdXAgPSAhIXJhdy5Mb29rVXBEZXRhaWxzO1xuICAgIHRoaXMuQWNjZXNzTGlzdCA9IHJhdy5BY2Nlc3NMaXN0ID8/IFtdO1xuICAgIHRoaXMuRGF0YSA9IHJhdy5EYXRhID8/IG51bGw7XG4gICAgdGhpcy5GaWVsZFZhbGlkYXRvckNvbmZpZ3VyYXRpb24gPSByYXcuRmllbGRWYWxpZGF0b3JDb25maWd1cmF0aW9uID8/IHt9O1xuICAgIHRoaXMuRmllbGRDb25maWd1cmF0aW9uID0gdGhpcy5wYXJzZUZpZWxkQ29uZmlndXJhdGlvbihyYXcuRmllbGRDb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VGaWVsZENvbmZpZ3VyYXRpb24oY29uZmlnOiBhbnkpOiBhbnkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGNvbmZpZykgOiAoY29uZmlnID8/IHt9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGF0YSB0eXBlIG5hbWUgb2YgdGhlIGZpZWxkIGFzIGEgc3RyaW5nLlxuICAgKiBUaGUgZGF0YSB0eXBlIG5hbWUgaXMgb2J0YWluZWQgZnJvbSB0aGUgRGF0YVR5cGVzIGVudW0uXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBkYXRhIHR5cGUgbmFtZS5cbiAgICovXG4gIGdldCBkYXRhVHlwZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRGF0YVR5cGVzW3RoaXMuRmllbGRUeXBlPy5EYXRhVHlwZV0gPz8gJyc7XG4gIH1cblxuICAvKipcbiAgICogU2VhcmNoZXMgZm9yIHRoZSBnaXZlbiBzZWFyY2ggdGVybSBpbiB0aGUgcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBBcHBGaWVsZE1vZGVsIGluc3RhbmNlLlxuICAgKiBUaGUgc2VhcmNoIGlzIGNhc2UtaW5zZW5zaXRpdmUgYW5kIGlzIHBlcmZvcm1lZCBvbiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gICAqIC0gSURcbiAgICogLSBGaWVsZE5hbWVcbiAgICogLSBEaXNwbGF5TmFtZVxuICAgKiAtIFN5c3RlbURCRmllbGROYW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXJtIFRoZSBzZWFyY2ggdGVybS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIHNlYXJjaCB0ZXJtIGlzIHByZXNlbnQgaW4gYW55IG9mIHRoZSBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgc2VhcmNoKHRlcm06IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlYXJjaFRlcm0gPSB0ZXJtLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIFt0aGlzLklELCB0aGlzLkZpZWxkTmFtZSwgdGhpcy5EaXNwbGF5TmFtZSwgdGhpcy5TeXN0ZW1EQkZpZWxkTmFtZV1cbiAgICAgIC5zb21lKHZhbCA9PiB2YWwgPT09IHNlYXJjaFRlcm0gfHwgdmFsPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgQXBwRmllbGRNb2RlbCBpbnN0YW5jZSB0byBhIEpTT04gcmVwcmVzZW50YXRpb24uXG4gICAqIEByZXR1cm5zIHthbnl9IFRoZSByYXcgZGF0YSBvZiB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICB0b0pTT04oKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5yYXc7XG4gIH1cbn0iXX0=
|
|
@@ -27,4 +27,4 @@ export class AppMenu {
|
|
|
27
27
|
}
|
|
28
28
|
export class AppScreen {
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW9iamVjdC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvYXBwLW9iamVjdC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFjdkQsTUFBTSxPQUFPLFdBQVc7SUFBeEI7UUFPRSxlQUFVLEdBQWdCLEVBQUUsQ0FBQztRQUM3QixlQUFVLEdBQWdCLEVBQUUsQ0FBQztRQUM3QixhQUFRLEdBQWMsRUFBRSxDQUFDO1FBQ3pCLHNCQUFpQixHQUFxQixFQUFFLENBQUM7UUFDekMsVUFBSyxHQUFZLEVBQUUsQ0FBQztRQUNwQixhQUFRLEdBQWUsRUFBRSxDQUFDO1FBQzFCLGNBQVMsR0FBVSxFQUFFLENBQUM7UUFDdEIsWUFBTyxHQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQVlFLFdBQU0sR0FBZ0IsRUFBRSxDQUFDO1FBQ3pCLHVCQUFrQixHQUF3QixFQUFFLENBQUM7UUFDN0Msc0JBQWlCLEdBQXdCLEVBQUUsQ0FBQztRQUU1QyxlQUFVLEdBQW1CLEVBQUUsQ0FBQztRQUNoQyxtQkFBYyxHQUFvQixFQUFFLENBQUM7UUFDckMsY0FBUyxHQUFnQixFQUFFLENBQUM7SUFLOUIsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLFlBQVk7Q0FXeEI7QUFFRCxNQUFNLE9BQU8sT0FBTztDQVVuQjtBQUVELE1BQU0sT0FBTyxTQUFTO0NBUXJCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuaW1wb3J0IHsgT2JqZWN0Q3JlYXRpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvZHNxLmVudW0nO1xyXG5pbXBvcnQgeyBEYXRhQWNjZXNzU2V0LCBEZXBsb3ltZW50U3RhdHVzIH0gZnJvbSAnLi4vZW51bXMvcGVybWlzc2lvbi5lbnVtJztcclxuaW1wb3J0IHsgQ2hpbGRSZWxhdGlvblNoaXAgfSBmcm9tICcuL2FwaS1xdWVyeS5jbGFzcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29uZmlndXJhdGlvbnMsXHJcbiAgRW1haWxUZW1wbGF0ZSxcclxuICBQcm9maWxlLFxyXG4gIFJlc291cmNlcyxcclxuICBSb2xlLFxyXG59IGZyb20gJy4vY29tbW9uLmNsYXNzJztcclxuaW1wb3J0IHsgQXBwRmllbGRzLCBEYXRhU291cmNlUXVlcmllcywgRmllbGRBY2Nlc3MgfSBmcm9tICcuL2RhdGEtc291cmNlLXF1ZXJpZXMuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uIHtcclxuICBJRDogc3RyaW5nIHwgYW55O1xyXG4gIEFwcE5hbWU6IHN0cmluZyB8IGFueTtcclxuICBEaXNwbGF5TmFtZTogc3RyaW5nIHwgYW55O1xyXG4gIFBsYXRmb3JtVmVyc2lvbjogc3RyaW5nIHwgYW55O1xyXG4gIEFwcFZlcnNpb246IHN0cmluZyB8IGFueTtcclxuICBEZXNjcmlwdGlvbjogc3RyaW5nIHwgYW55O1xyXG4gIEFwcE9iamVjdHM6IEFwcE9iamVjdFtdID0gW107XHJcbiAgQXBwU2NyZWVuczogQXBwU2NyZWVuW10gPSBbXTtcclxuICBBcHBNZW51czogQXBwTWVudVtdID0gW107XHJcbiAgQXBwQ29uZmlndXJhdGlvbnM6IENvbmZpZ3VyYXRpb25zW10gPSBbXTtcclxuICBSb2xlcz86IFJvbGVbXSA9IFtdO1xyXG4gIFByb2ZpbGVzPzogUHJvZmlsZVtdID0gW107XHJcbiAgV29ya0Zsb3dzOiBhbnlbXSA9IFtdO1xyXG4gIFBsdWdpbnM6IGFueVtdID0gW107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBcHBPYmplY3Qge1xyXG4gIElEOiBzdHJpbmcgfCBhbnk7XHJcbiAgT2JqZWN0TmFtZTogc3RyaW5nIHwgYW55O1xyXG4gIERpc3BsYXlOYW1lOiBzdHJpbmcgfCBhbnk7XHJcbiAgRGVzY3JpcHRpb246IHN0cmluZyB8IGFueTtcclxuICBFbmFibGVUcmFja2luZyE6IGJvb2xlYW4gfCBmYWxzZTtcclxuICBBbGxvd1NlYXJjaGFibGUhOiBib29sZWFuIHwgZmFsc2U7XHJcbiAgQ3JlYXRpb25UeXBlOiBPYmplY3RDcmVhdGlvblR5cGUgfCBhbnk7XHJcbiAgQWxsb3dSZXBvcnRzITogYm9vbGVhbiB8IGZhbHNlO1xyXG4gIEFsbG93QWN0aXZpdGllcyE6IGJvb2xlYW4gfCBmYWxzZTtcclxuICBBbGxvd1NoYXJpbmchOiBib29sZWFuIHwgZmFsc2U7XHJcbiAgRGVwbG95bWVudFN0YXR1czogRGVwbG95bWVudFN0YXR1cyB8IGFueTtcclxuICBGaWVsZHM6IEFwcEZpZWxkc1tdID0gW107XHJcbiAgQ2hpbGRSZWxhdGlvblNoaXBzOiBDaGlsZFJlbGF0aW9uU2hpcFtdID0gW107XHJcbiAgRGF0YVNvdXJjZVF1ZXJpZXM6IERhdGFTb3VyY2VRdWVyaWVzW10gPSBbXTtcclxuICBTeXN0ZW1EQlRhYmxlTmFtZTogc3RyaW5nIHwgYW55O1xyXG4gIEFjY2Vzc0xpc3Q6IE9iamVjdEFjY2Vzc1tdID0gW107XHJcbiAgRW1haWxUZW1wbGF0ZXM6IEVtYWlsVGVtcGxhdGVbXSA9IFtdO1xyXG4gIFJlc291cmNlczogUmVzb3VyY2VzW10gPSBbXTtcclxuICBJc1N5c3RlbSE6IGJvb2xlYW4gfCBmYWxzZTtcclxuICBJc1Zpc2libGUhOiBib29sZWFuIHwgZmFsc2U7XHJcbiAgSXNEZXByZWNhdGVkITogYm9vbGVhbiB8IGZhbHNlO1xyXG4gIE9iamVjdElEX1Rvc2F2ZTogc3RyaW5nIHwgYW55O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgT2JqZWN0QWNjZXNzIHtcclxuICBJRCE6IHN0cmluZztcclxuICBSb2xlSUQhOiBzdHJpbmc7XHJcbiAgSXNFbmFibGVkITogc3RyaW5nO1xyXG4gIFJFQUQhOiBEYXRhQWNjZXNzU2V0O1xyXG4gIENSRUFURSE6IERhdGFBY2Nlc3NTZXQ7XHJcbiAgVVBEQVRFITogRGF0YUFjY2Vzc1NldDtcclxuICBERUxFVEUhOiBEYXRhQWNjZXNzU2V0O1xyXG4gIEF1dGhGaWx0ZXJzITogYW55O1xyXG4gIGZpZWxkQWNjZXNzZXMhOiBBcnJheTxGaWVsZEFjY2Vzcz47XHJcbiAgT2JqZWN0SUQhOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFwcE1lbnUge1xyXG4gIElEOiBzdHJpbmcgfCBhbnk7XHJcbiAgTWVudU5hbWU6IHN0cmluZyB8IGFueTtcclxuICBEaXNwbGF5TmFtZTogc3RyaW5nIHwgYW55O1xyXG4gIFNjcmVlbklEOiBzdHJpbmcgfCBhbnk7XHJcbiAgU2hvcnRDdXQ6IHN0cmluZyB8IGFueTtcclxuICBJY29uOiBzdHJpbmcgfCBhbnk7XHJcbiAgUGFyZW50SUQ/OiBudW1iZXI7XHJcbiAgU2VxdWVuY2U/OiBudW1iZXI7XHJcbiAgVXJsOiBzdHJpbmcgfCBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBcHBTY3JlZW4ge1xyXG4gIElEOiBzdHJpbmcgfCBhbnk7XHJcbiAgTmFtZTogc3RyaW5nIHwgYW55O1xyXG4gIERlc2NyaXB0aW9uOiBzdHJpbmcgfCBhbnk7XHJcbiAgRGF0YVNvdXJjZVF1ZXJ5OiBEYXRhU291cmNlUXVlcmllcyB8IGFueTtcclxuICBDb250YWluZXI6IHN0cmluZyB8IGFueTtcclxuICBTY3JlZW5UeXBlOiBudW1iZXIgfCBhbnk7XHJcbiAgRGF0YVNvdXJjZVF1ZXJ5SUQ6IHN0cmluZyB8IGFueTtcclxufSJdfQ==
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { AppFieldModel } from './app-field.model';
|
|
2
|
+
import { DataSourceQueryModel } from './data-source-query.model';
|
|
3
|
+
export class AppObjectModel {
|
|
4
|
+
constructor(raw) {
|
|
5
|
+
this.raw = raw;
|
|
6
|
+
// Cache maps
|
|
7
|
+
this.fieldMap = new Map();
|
|
8
|
+
this.dsqMap = new Map();
|
|
9
|
+
this.allFields = [];
|
|
10
|
+
this.allDSQs = [];
|
|
11
|
+
this.ID = raw?.ID;
|
|
12
|
+
this.ObjectName = raw?.ObjectName;
|
|
13
|
+
this.DisplayName = raw?.DisplayName;
|
|
14
|
+
this.Description = raw?.Description;
|
|
15
|
+
this.SystemDBTableName = raw?.SystemDBTableName;
|
|
16
|
+
this.IsSystem = raw?.IsSystem;
|
|
17
|
+
this.IsVisible = raw?.IsVisible;
|
|
18
|
+
this.IsDeprecated = raw?.IsDeprecated;
|
|
19
|
+
this.IsSupportBluePrint = raw?.IsSupportBluePrint;
|
|
20
|
+
this.IsLocationTracking = raw?.IsLocationTracking;
|
|
21
|
+
this.ObjectType = raw?.ObjectType;
|
|
22
|
+
this.DeploymentStatus = raw?.DeploymentStatus;
|
|
23
|
+
this.CreationType = raw?.CreationType;
|
|
24
|
+
this.AllowVersioning = raw?.AllowVersioning;
|
|
25
|
+
this.EnableTracking = raw?.EnableTracking;
|
|
26
|
+
this.AllowSearchable = raw?.AllowSearchable;
|
|
27
|
+
this.AllowReports = raw?.AllowReports;
|
|
28
|
+
this.AllowActivities = raw?.AllowActivities;
|
|
29
|
+
this.AllowSharing = raw?.AllowSharing;
|
|
30
|
+
this.AllowSoftDelete = raw?.AllowSoftDelete;
|
|
31
|
+
this.IsReplicationNeeded = raw?.IsReplicationNeeded;
|
|
32
|
+
this.IsCacheEnable = raw?.IsCacheEnable;
|
|
33
|
+
this.CacheTtl = raw?.CacheTtl;
|
|
34
|
+
this.AppObjectConfiguration = raw?.AppObjectConfiguration;
|
|
35
|
+
this.CRUDAppObjectId = raw?.CRUDAppObjectId;
|
|
36
|
+
this.ConnectionId = raw?.ConnectionId;
|
|
37
|
+
this.IsSupportLayout = raw?.IsSupportLayout;
|
|
38
|
+
this.AccessList = raw?.AccessList;
|
|
39
|
+
this.Resources = raw?.Resources;
|
|
40
|
+
try {
|
|
41
|
+
this.parsedAppObjectConfiguration = JSON.parse(this.AppObjectConfiguration || '{}');
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
console.warn('Invalid AppObjectConfiguration JSON', e);
|
|
45
|
+
this.parsedAppObjectConfiguration = {};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Returns all fields associated with this AppObject. The fields are cached so that subsequent calls
|
|
50
|
+
* are faster. The cache is stored in a map by ID.
|
|
51
|
+
*
|
|
52
|
+
* @returns {AppFieldModel[]} An array of AppFieldModel objects.
|
|
53
|
+
*/
|
|
54
|
+
fields() {
|
|
55
|
+
if (!this.allFields?.length) {
|
|
56
|
+
this.allFields = (this.raw?.Fields ?? []).map((field) => {
|
|
57
|
+
const model = new AppFieldModel(field);
|
|
58
|
+
// Cache the field in a map by ID
|
|
59
|
+
this.fieldMap.set(field?.ID, model);
|
|
60
|
+
return model;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return this.allFields;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Retrieves a field by its ID or name.
|
|
67
|
+
* If the field is cached, it returns it from the cache.
|
|
68
|
+
* Otherwise, it searches through all fields.
|
|
69
|
+
*
|
|
70
|
+
* @param {string} idOrName - The ID or name of the field to retrieve.
|
|
71
|
+
* @returns {AppFieldModel | undefined} - The field model if found, otherwise undefined.
|
|
72
|
+
*/
|
|
73
|
+
field(idOrName) {
|
|
74
|
+
// Ensure all fields are loaded and cached
|
|
75
|
+
this.fields();
|
|
76
|
+
// Check if the field is available in the cache map
|
|
77
|
+
if (this.fieldMap.has(idOrName)) {
|
|
78
|
+
return this.fieldMap.get(idOrName);
|
|
79
|
+
}
|
|
80
|
+
// Convert the idOrName to lowercase for case-insensitive search
|
|
81
|
+
const idLower = idOrName.toLowerCase();
|
|
82
|
+
// Find the field by matching ID or name, case-insensitively
|
|
83
|
+
return this.allFields?.find(f => f.FieldName?.toLowerCase() === idLower || f.DisplayName?.toLowerCase() === idLower);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Retrieves all fields of the app object that are lookup fields.
|
|
87
|
+
* A lookup field is a field that has a relationship with another field.
|
|
88
|
+
* It is used to perform lookups, such as retrieving a list of values
|
|
89
|
+
* from a related field.
|
|
90
|
+
*
|
|
91
|
+
* @returns {AppFieldModel[]} - An array of AppFieldModel objects that are lookup fields.
|
|
92
|
+
*/
|
|
93
|
+
lookupFields() {
|
|
94
|
+
return this.fields().filter(field => field.IsLookup);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Finds and returns the fields for the app object that satisfy the given filter function.
|
|
98
|
+
* The filter function is called with each field as an argument, and should return true if the field
|
|
99
|
+
* should be included in the result.
|
|
100
|
+
* @param {function} filterFn The filter function to apply to the fields.
|
|
101
|
+
* @returns {AppFieldModel[]} The array of fields that satisfy the filter function.
|
|
102
|
+
*/
|
|
103
|
+
findFields(filterFn) {
|
|
104
|
+
return this.fields().filter(filterFn);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Retrieves all data source queries associated with this AppObject.
|
|
108
|
+
* The queries are cached for faster subsequent access. The cache is stored in a map by ID, QueryName, and DisplayName.
|
|
109
|
+
*
|
|
110
|
+
* @returns {DataSourceQueryModel[]} An array of DataSourceQueryModel objects.
|
|
111
|
+
*/
|
|
112
|
+
dataSourceQueries() {
|
|
113
|
+
// Check if allDSQs is empty or undefined
|
|
114
|
+
if (!this.allDSQs?.length) {
|
|
115
|
+
// Map the raw DataSourceQueries to DataSourceQueryModel instances
|
|
116
|
+
this.allDSQs = (this.raw?.DataSourceQueries ?? []).map((dsq) => {
|
|
117
|
+
const model = new DataSourceQueryModel(dsq, this);
|
|
118
|
+
// Cache the DataSourceQuery in a map by ID, QueryName, and DisplayName
|
|
119
|
+
this.dsqMap.set(dsq?.ID, model);
|
|
120
|
+
this.dsqMap.set(dsq?.QueryName, model);
|
|
121
|
+
this.dsqMap.set(dsq?.DisplayName, model);
|
|
122
|
+
return model;
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
return this.allDSQs;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Retrieves a data source query by its ID or name.
|
|
129
|
+
* If the query is cached, it returns it from the cache.
|
|
130
|
+
* Otherwise, it searches through all data source queries.
|
|
131
|
+
*
|
|
132
|
+
* @param {string} idOrName - The ID or name of the data source query to retrieve.
|
|
133
|
+
* @returns {DataSourceQueryModel | undefined} - The data source query model if found, otherwise undefined.
|
|
134
|
+
*/
|
|
135
|
+
dataSourceQuery(idOrName) {
|
|
136
|
+
// Ensure all data source queries are loaded and cached
|
|
137
|
+
this.dataSourceQueries();
|
|
138
|
+
// Check if the data source query is available in the cache map
|
|
139
|
+
if (this.dsqMap.has(idOrName)) {
|
|
140
|
+
return this.dsqMap.get(idOrName);
|
|
141
|
+
}
|
|
142
|
+
// Convert the idOrName to lowercase for case-insensitive search
|
|
143
|
+
const idLower = idOrName.toLowerCase();
|
|
144
|
+
// Find the data source query by matching QueryName or DisplayName, case-insensitively
|
|
145
|
+
return this.allDSQs?.find(dsq => dsq.QueryName?.toLowerCase() === idLower || dsq.DisplayName?.toLowerCase() === idLower);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Finds and returns the data source queries that satisfy the given filter function.
|
|
149
|
+
* The filter function is called with each data source query as an argument.
|
|
150
|
+
* If the filter function returns true, the data source query is included in the result.
|
|
151
|
+
*
|
|
152
|
+
* @param {function} filterFn - The filter function to apply to the data source queries.
|
|
153
|
+
* @returns {DataSourceQueryModel[]} - The array of data source queries that satisfy the filter function.
|
|
154
|
+
*/
|
|
155
|
+
findDataSourceQueries(filterFn) {
|
|
156
|
+
return this.dataSourceQueries().filter(filterFn);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Searches for the given term in the fields and data source queries of this AppObject.
|
|
160
|
+
* The search is case-insensitive and performed on the following fields:
|
|
161
|
+
* - Field name and description
|
|
162
|
+
* - Data source query name, display name, and description
|
|
163
|
+
*
|
|
164
|
+
* @param {string} term - The search term to search for.
|
|
165
|
+
* @returns {{ fields: AppFieldModel[]; dsqs: DataSourceQueryModel[] }} - An object with the search results.
|
|
166
|
+
* The `fields` property contains an array of AppFieldModel objects that match the search term.
|
|
167
|
+
* The `dsqs` property contains an array of DataSourceQueryModel objects that match the search term.
|
|
168
|
+
*/
|
|
169
|
+
search(term) {
|
|
170
|
+
// Search for the term in the fields
|
|
171
|
+
const fields = this.fields().filter(field => field.search(term));
|
|
172
|
+
// Search for the term in the data source queries
|
|
173
|
+
const dsqs = this.dataSourceQueries().filter(dsq => dsq.search(term));
|
|
174
|
+
// Return the search results
|
|
175
|
+
return { fields, dsqs };
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Converts the current object to a JSON object.
|
|
179
|
+
*
|
|
180
|
+
* @returns {any} The raw data as a JSON object.
|
|
181
|
+
*/
|
|
182
|
+
toJSON() {
|
|
183
|
+
return this.raw;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW9iamVjdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvYXBwLW9iamVjdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakUsTUFBTSxPQUFPLGNBQWM7SUF1Q3pCLFlBQTZCLEdBQVE7UUFBUixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBTnJDLGFBQWE7UUFDSSxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7UUFDNUMsV0FBTSxHQUFHLElBQUksR0FBRyxFQUFnQyxDQUFDO1FBQzFELGNBQVMsR0FBb0IsRUFBRSxDQUFDO1FBQ2hDLFlBQU8sR0FBMkIsRUFBRSxDQUFDO1FBRzNDLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLEVBQUUsV0FBVyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxFQUFFLGlCQUFpQixDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRSxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLEVBQUUsa0JBQWtCLENB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QUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFakUsaURBQWlEO1FBQ2pELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV0RSw0QkFBNEI7UUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gYXBwLW9iamVjdC5tb2RlbC50c1xuaW1wb3J0IHsgT2JqZWN0VHlwZSB9IGZyb20gJy4uL2VudW1zL2NvbW1vbi5lbnVtJztcbmltcG9ydCB7IE9iamVjdENyZWF0aW9uVHlwZSB9IGZyb20gJy4uL2VudW1zL2RzcS5lbnVtJztcbmltcG9ydCB7IERlcGxveW1lbnRTdGF0dXMgfSBmcm9tICcuLi9lbnVtcy9wZXJtaXNzaW9uLmVudW0nO1xuaW1wb3J0IHsgQXBwRmllbGRNb2RlbCB9IGZyb20gJy4vYXBwLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IE9iamVjdEFjY2VzcyB9IGZyb20gJy4vYXBwLW9iamVjdC5jbGFzcyc7XG5pbXBvcnQgeyBSZXNvdXJjZXMgfSBmcm9tICcuL2NvbW1vbi5jbGFzcyc7XG5pbXBvcnQgeyBEYXRhU291cmNlUXVlcnlNb2RlbCB9IGZyb20gJy4vZGF0YS1zb3VyY2UtcXVlcnkubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgQXBwT2JqZWN0TW9kZWwge1xuICAvLyBQcm9wZXJ0aWVzXG4gIHJlYWRvbmx5IElEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IE9iamVjdE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgRGlzcGxheU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgRGVzY3JpcHRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgU3lzdGVtREJUYWJsZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgSXNTeXN0ZW06IGJvb2xlYW47XG4gIHJlYWRvbmx5IElzVmlzaWJsZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgSXNEZXByZWNhdGVkOiBib29sZWFuO1xuICByZWFkb25seSBJc1N1cHBvcnRCbHVlUHJpbnQ6IGJvb2xlYW4gfCBudWxsO1xuICByZWFkb25seSBJc0xvY2F0aW9uVHJhY2tpbmc6IGJvb2xlYW4gfCBudWxsO1xuICByZWFkb25seSBPYmplY3RUeXBlOiBPYmplY3RUeXBlO1xuICByZWFkb25seSBEZXBsb3ltZW50U3RhdHVzOiBEZXBsb3ltZW50U3RhdHVzO1xuICByZWFkb25seSBDcmVhdGlvblR5cGU6IE9iamVjdENyZWF0aW9uVHlwZTtcbiAgcmVhZG9ubHkgQWxsb3dWZXJzaW9uaW5nOiBib29sZWFuO1xuICByZWFkb25seSBFbmFibGVUcmFja2luZzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgQWxsb3dTZWFyY2hhYmxlOiBib29sZWFuO1xuICByZWFkb25seSBBbGxvd1JlcG9ydHM6IGJvb2xlYW47XG4gIHJlYWRvbmx5IEFsbG93QWN0aXZpdGllczogYm9vbGVhbjtcbiAgcmVhZG9ubHkgQWxsb3dTaGFyaW5nOiBib29sZWFuO1xuICByZWFkb25seSBBbGxvd1NvZnREZWxldGU6IGJvb2xlYW4gfCBudWxsO1xuICByZWFkb25seSBJc1JlcGxpY2F0aW9uTmVlZGVkOiBib29sZWFuIHwgbnVsbDtcbiAgcmVhZG9ubHkgSXNDYWNoZUVuYWJsZTogYm9vbGVhbiB8IG51bGw7XG4gIHJlYWRvbmx5IENhY2hlVHRsOiBudW1iZXIgfCBudWxsO1xuICByZWFkb25seSBBcHBPYmplY3RDb25maWd1cmF0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IENSVURBcHBPYmplY3RJZDogc3RyaW5nIHwgbnVsbDtcbiAgcmVhZG9ubHkgQ29ubmVjdGlvbklkOiBzdHJpbmcgfCBudWxsO1xuICByZWFkb25seSBJc1N1cHBvcnRMYXlvdXQ6IGJvb2xlYW4gfCBudWxsO1xuICByZWFkb25seSBBY2Nlc3NMaXN0OiBBcnJheTxPYmplY3RBY2Nlc3M+O1xuICByZWFkb25seSBSZXNvdXJjZXM6IEFycmF5PFJlc291cmNlcz47XG4gIHJlYWRvbmx5IHBhcnNlZEFwcE9iamVjdENvbmZpZ3VyYXRpb246IGFueTtcblxuICAvLyBDYWNoZSBtYXBzXG4gIHByaXZhdGUgcmVhZG9ubHkgZmllbGRNYXAgPSBuZXcgTWFwPHN0cmluZywgQXBwRmllbGRNb2RlbD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkc3FNYXAgPSBuZXcgTWFwPHN0cmluZywgRGF0YVNvdXJjZVF1ZXJ5TW9kZWw+KCk7XG4gIHByaXZhdGUgYWxsRmllbGRzOiBBcHBGaWVsZE1vZGVsW10gPSBbXTtcbiAgcHJpdmF0ZSBhbGxEU1FzOiBEYXRhU291cmNlUXVlcnlNb2RlbFtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByYXc6IGFueSkge1xuICAgIHRoaXMuSUQgPSByYXc/LklEO1xuICAgIHRoaXMuT2JqZWN0TmFtZSA9IHJhdz8uT2JqZWN0TmFtZTtcbiAgICB0aGlzLkRpc3BsYXlOYW1lID0gcmF3Py5EaXNwbGF5TmFtZTtcbiAgICB0aGlzLkRlc2NyaXB0aW9uID0gcmF3Py5EZXNjcmlwdGlvbjtcbiAgICB0aGlzLlN5c3RlbURCVGFibGVOYW1lID0gcmF3Py5TeXN0ZW1EQlRhYmxlTmFtZTtcbiAgICB0aGlzLklzU3lzdGVtID0gcmF3Py5Jc1N5c3RlbTtcbiAgICB0aGlzLklzVmlzaWJsZSA9IHJhdz8uSXNWaXNpYmxlO1xuICAgIHRoaXMuSXNEZXByZWNhdGVkID0gcmF3Py5Jc0RlcHJlY2F0ZWQ7XG4gICAgdGhpcy5Jc1N1cHBvcnRCbHVlUHJpbnQgPSByYXc/LklzU3VwcG9ydEJsdWVQcmludDtcbiAgICB0aGlzLklzTG9jYXRpb25UcmFja2luZyA9IHJhdz8uSXNMb2NhdGlvblRyYWNraW5nO1xuICAgIHRoaXMuT2JqZWN0VHlwZSA9IHJhdz8uT2JqZWN0VHlwZTtcbiAgICB0aGlzLkRlcGxveW1lbnRTdGF0dXMgPSByYXc/LkRlcGxveW1lbnRTdGF0dXM7XG4gICAgdGhpcy5DcmVhdGlvblR5cGUgPSByYXc/LkNyZWF0aW9uVHlwZTtcbiAgICB0aGlzLkFsbG93VmVyc2lvbmluZyA9IHJhdz8uQWxsb3dWZXJzaW9uaW5nO1xuICAgIHRoaXMuRW5hYmxlVHJhY2tpbmcgPSByYXc/LkVuYWJsZVRyYWNraW5nO1xuICAgIHRoaXMuQWxsb3dTZWFyY2hhYmxlID0gcmF3Py5BbGxvd1NlYXJjaGFibGU7XG4gICAgdGhpcy5BbGxvd1JlcG9ydHMgPSByYXc/LkFsbG93UmVwb3J0cztcbiAgICB0aGlzLkFsbG93QWN0aXZpdGllcyA9IHJhdz8uQWxsb3dBY3Rpdml0aWVzO1xuICAgIHRoaXMuQWxsb3dTaGFyaW5nID0gcmF3Py5BbGxvd1NoYXJpbmc7XG4gICAgdGhpcy5BbGxvd1NvZnREZWxldGUgPSByYXc/LkFsbG93U29mdERlbGV0ZTtcbiAgICB0aGlzLklzUmVwbGljYXRpb25OZWVkZWQgPSByYXc/LklzUmVwbGljYXRpb25OZWVkZWQ7XG4gICAgdGhpcy5Jc0NhY2hlRW5hYmxlID0gcmF3Py5Jc0NhY2hlRW5hYmxlO1xuICAgIHRoaXMuQ2FjaGVUdGwgPSByYXc/LkNhY2hlVHRsO1xuICAgIHRoaXMuQXBwT2JqZWN0Q29uZmlndXJhdGlvbiA9IHJhdz8uQXBwT2JqZWN0Q29uZmlndXJhdGlvbjtcbiAgICB0aGlzLkNSVURBcHBPYmplY3RJZCA9IHJhdz8uQ1JVREFwcE9iamVjdElkO1xuICAgIHRoaXMuQ29ubmVjdGlvbklkID0gcmF3Py5Db25uZWN0aW9uSWQ7XG4gICAgdGhpcy5Jc1N1cHBvcnRMYXlvdXQgPSByYXc/LklzU3VwcG9ydExheW91dDtcbiAgICB0aGlzLkFjY2Vzc0xpc3QgPSByYXc/LkFjY2Vzc0xpc3Q7XG4gICAgdGhpcy5SZXNvdXJjZXMgPSByYXc/LlJlc291cmNlcztcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnBhcnNlZEFwcE9iamVjdENvbmZpZ3VyYXRpb24gPSBKU09OLnBhcnNlKHRoaXMuQXBwT2JqZWN0Q29uZmlndXJhdGlvbiB8fCAne30nKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgQXBwT2JqZWN0Q29uZmlndXJhdGlvbiBKU09OJywgZSk7XG4gICAgICB0aGlzLnBhcnNlZEFwcE9iamVjdENvbmZpZ3VyYXRpb24gPSB7fTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbGwgZmllbGRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEFwcE9iamVjdC4gVGhlIGZpZWxkcyBhcmUgY2FjaGVkIHNvIHRoYXQgc3Vic2VxdWVudCBjYWxsc1xuICAgKiBhcmUgZmFzdGVyLiBUaGUgY2FjaGUgaXMgc3RvcmVkIGluIGEgbWFwIGJ5IElELlxuICAgKlxuICAgKiBAcmV0dXJucyB7QXBwRmllbGRNb2RlbFtdfSBBbiBhcnJheSBvZiBBcHBGaWVsZE1vZGVsIG9iamVjdHMuXG4gICAqL1xuICBmaWVsZHMoKTogQXBwRmllbGRNb2RlbFtdIHtcbiAgICBpZiAoIXRoaXMuYWxsRmllbGRzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYWxsRmllbGRzID0gKHRoaXMucmF3Py5GaWVsZHMgPz8gW10pLm1hcCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBtb2RlbCA9IG5ldyBBcHBGaWVsZE1vZGVsKGZpZWxkKTtcbiAgICAgICAgLy8gQ2FjaGUgdGhlIGZpZWxkIGluIGEgbWFwIGJ5IElEXG4gICAgICAgIHRoaXMuZmllbGRNYXAuc2V0KGZpZWxkPy5JRCwgbW9kZWwpO1xuICAgICAgICByZXR1cm4gbW9kZWw7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYWxsRmllbGRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGZpZWxkIGJ5IGl0cyBJRCBvciBuYW1lLlxuICAgKiBJZiB0aGUgZmllbGQgaXMgY2FjaGVkLCBpdCByZXR1cm5zIGl0IGZyb20gdGhlIGNhY2hlLlxuICAgKiBPdGhlcndpc2UsIGl0IHNlYXJjaGVzIHRocm91Z2ggYWxsIGZpZWxkcy5cbiAgICogXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZE9yTmFtZSAtIFRoZSBJRCBvciBuYW1lIG9mIHRoZSBmaWVsZCB0byByZXRyaWV2ZS5cbiAgICogQHJldHVybnMge0FwcEZpZWxkTW9kZWwgfCB1bmRlZmluZWR9IC0gVGhlIGZpZWxkIG1vZGVsIGlmIGZvdW5kLCBvdGhlcndpc2UgdW5kZWZpbmVkLlxuICAgKi9cbiAgZmllbGQoaWRPck5hbWU6IHN0cmluZyk6IEFwcEZpZWxkTW9kZWwgfCB1bmRlZmluZWQge1xuICAgIC8vIEVuc3VyZSBhbGwgZmllbGRzIGFyZSBsb2FkZWQgYW5kIGNhY2hlZFxuICAgIHRoaXMuZmllbGRzKCk7XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgZmllbGQgaXMgYXZhaWxhYmxlIGluIHRoZSBjYWNoZSBtYXBcbiAgICBpZiAodGhpcy5maWVsZE1hcC5oYXMoaWRPck5hbWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWVsZE1hcC5nZXQoaWRPck5hbWUpO1xuICAgIH1cblxuICAgIC8vIENvbnZlcnQgdGhlIGlkT3JOYW1lIHRvIGxvd2VyY2FzZSBmb3IgY2FzZS1pbnNlbnNpdGl2ZSBzZWFyY2hcbiAgICBjb25zdCBpZExvd2VyID0gaWRPck5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIC8vIEZpbmQgdGhlIGZpZWxkIGJ5IG1hdGNoaW5nIElEIG9yIG5hbWUsIGNhc2UtaW5zZW5zaXRpdmVseVxuICAgIHJldHVybiB0aGlzLmFsbEZpZWxkcz8uZmluZChcbiAgICAgIGYgPT4gZi5GaWVsZE5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IGlkTG93ZXIgfHwgZi5EaXNwbGF5TmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gaWRMb3dlclxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGFsbCBmaWVsZHMgb2YgdGhlIGFwcCBvYmplY3QgdGhhdCBhcmUgbG9va3VwIGZpZWxkcy5cbiAgICogQSBsb29rdXAgZmllbGQgaXMgYSBmaWVsZCB0aGF0IGhhcyBhIHJlbGF0aW9uc2hpcCB3aXRoIGFub3RoZXIgZmllbGQuXG4gICAqIEl0IGlzIHVzZWQgdG8gcGVyZm9ybSBsb29rdXBzLCBzdWNoIGFzIHJldHJpZXZpbmcgYSBsaXN0IG9mIHZhbHVlc1xuICAgKiBmcm9tIGEgcmVsYXRlZCBmaWVsZC5cbiAgICogXG4gICAqIEByZXR1cm5zIHtBcHBGaWVsZE1vZGVsW119IC0gQW4gYXJyYXkgb2YgQXBwRmllbGRNb2RlbCBvYmplY3RzIHRoYXQgYXJlIGxvb2t1cCBmaWVsZHMuXG4gICAqL1xuICBsb29rdXBGaWVsZHMoKTogQXBwRmllbGRNb2RlbFtdIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZHMoKS5maWx0ZXIoZmllbGQgPT4gZmllbGQuSXNMb29rdXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIGFuZCByZXR1cm5zIHRoZSBmaWVsZHMgZm9yIHRoZSBhcHAgb2JqZWN0IHRoYXQgc2F0aXNmeSB0aGUgZ2l2ZW4gZmlsdGVyIGZ1bmN0aW9uLlxuICAgKiBUaGUgZmlsdGVyIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIGVhY2ggZmllbGQgYXMgYW4gYXJndW1lbnQsIGFuZCBzaG91bGQgcmV0dXJuIHRydWUgaWYgdGhlIGZpZWxkXG4gICAqIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0LlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmaWx0ZXJGbiBUaGUgZmlsdGVyIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIHRoZSBmaWVsZHMuXG4gICAqIEByZXR1cm5zIHtBcHBGaWVsZE1vZGVsW119IFRoZSBhcnJheSBvZiBmaWVsZHMgdGhhdCBzYXRpc2Z5IHRoZSBmaWx0ZXIgZnVuY3Rpb24uXG4gICAqL1xuICBmaW5kRmllbGRzKGZpbHRlckZuOiAoZmllbGQ6IEFwcEZpZWxkTW9kZWwpID0+IGJvb2xlYW4pOiBBcHBGaWVsZE1vZGVsW10ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkcygpLmZpbHRlcihmaWx0ZXJGbik7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGFsbCBkYXRhIHNvdXJjZSBxdWVyaWVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEFwcE9iamVjdC4gXG4gICAqIFRoZSBxdWVyaWVzIGFyZSBjYWNoZWQgZm9yIGZhc3RlciBzdWJzZXF1ZW50IGFjY2Vzcy4gVGhlIGNhY2hlIGlzIHN0b3JlZCBpbiBhIG1hcCBieSBJRCwgUXVlcnlOYW1lLCBhbmQgRGlzcGxheU5hbWUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtEYXRhU291cmNlUXVlcnlNb2RlbFtdfSBBbiBhcnJheSBvZiBEYXRhU291cmNlUXVlcnlNb2RlbCBvYmplY3RzLlxuICAgKi9cbiAgZGF0YVNvdXJjZVF1ZXJpZXMoKTogRGF0YVNvdXJjZVF1ZXJ5TW9kZWxbXSB7XG4gICAgLy8gQ2hlY2sgaWYgYWxsRFNRcyBpcyBlbXB0eSBvciB1bmRlZmluZWRcbiAgICBpZiAoIXRoaXMuYWxsRFNRcz8ubGVuZ3RoKSB7XG4gICAgICAvLyBNYXAgdGhlIHJhdyBEYXRhU291cmNlUXVlcmllcyB0byBEYXRhU291cmNlUXVlcnlNb2RlbCBpbnN0YW5jZXNcbiAgICAgIHRoaXMuYWxsRFNRcyA9ICh0aGlzLnJhdz8uRGF0YVNvdXJjZVF1ZXJpZXMgPz8gW10pLm1hcCgoZHNxOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSBuZXcgRGF0YVNvdXJjZVF1ZXJ5TW9kZWwoZHNxLCB0aGlzKTtcbiAgICAgICAgLy8gQ2FjaGUgdGhlIERhdGFTb3VyY2VRdWVyeSBpbiBhIG1hcCBieSBJRCwgUXVlcnlOYW1lLCBhbmQgRGlzcGxheU5hbWVcbiAgICAgICAgdGhpcy5kc3FNYXAuc2V0KGRzcT8uSUQsIG1vZGVsKTtcbiAgICAgICAgdGhpcy5kc3FNYXAuc2V0KGRzcT8uUXVlcnlOYW1lLCBtb2RlbCk7XG4gICAgICAgIHRoaXMuZHNxTWFwLnNldChkc3E/LkRpc3BsYXlOYW1lLCBtb2RlbCk7XG4gICAgICAgIHJldHVybiBtb2RlbDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hbGxEU1FzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGRhdGEgc291cmNlIHF1ZXJ5IGJ5IGl0cyBJRCBvciBuYW1lLlxuICAgKiBJZiB0aGUgcXVlcnkgaXMgY2FjaGVkLCBpdCByZXR1cm5zIGl0IGZyb20gdGhlIGNhY2hlLlxuICAgKiBPdGhlcndpc2UsIGl0IHNlYXJjaGVzIHRocm91Z2ggYWxsIGRhdGEgc291cmNlIHF1ZXJpZXMuXG4gICAqIFxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWRPck5hbWUgLSBUaGUgSUQgb3IgbmFtZSBvZiB0aGUgZGF0YSBzb3VyY2UgcXVlcnkgdG8gcmV0cmlldmUuXG4gICAqIEByZXR1cm5zIHtEYXRhU291cmNlUXVlcnlNb2RlbCB8IHVuZGVmaW5lZH0gLSBUaGUgZGF0YSBzb3VyY2UgcXVlcnkgbW9kZWwgaWYgZm91bmQsIG90aGVyd2lzZSB1bmRlZmluZWQuXG4gICAqL1xuICBkYXRhU291cmNlUXVlcnkoaWRPck5hbWU6IHN0cmluZyk6IERhdGFTb3VyY2VRdWVyeU1vZGVsIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBFbnN1cmUgYWxsIGRhdGEgc291cmNlIHF1ZXJpZXMgYXJlIGxvYWRlZCBhbmQgY2FjaGVkXG4gICAgdGhpcy5kYXRhU291cmNlUXVlcmllcygpO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIGRhdGEgc291cmNlIHF1ZXJ5IGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FjaGUgbWFwXG4gICAgaWYgKHRoaXMuZHNxTWFwLmhhcyhpZE9yTmFtZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmRzcU1hcC5nZXQoaWRPck5hbWUpO1xuICAgIH1cblxuICAgIC8vIENvbnZlcnQgdGhlIGlkT3JOYW1lIHRvIGxvd2VyY2FzZSBmb3IgY2FzZS1pbnNlbnNpdGl2ZSBzZWFyY2hcbiAgICBjb25zdCBpZExvd2VyID0gaWRPck5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIC8vIEZpbmQgdGhlIGRhdGEgc291cmNlIHF1ZXJ5IGJ5IG1hdGNoaW5nIFF1ZXJ5TmFtZSBvciBEaXNwbGF5TmFtZSwgY2FzZS1pbnNlbnNpdGl2ZWx5XG4gICAgcmV0dXJuIHRoaXMuYWxsRFNRcz8uZmluZChcbiAgICAgIGRzcSA9PiBkc3EuUXVlcnlOYW1lPy50b0xvd2VyQ2FzZSgpID09PSBpZExvd2VyIHx8IGRzcS5EaXNwbGF5TmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gaWRMb3dlclxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgYW5kIHJldHVybnMgdGhlIGRhdGEgc291cmNlIHF1ZXJpZXMgdGhhdCBzYXRpc2Z5IHRoZSBnaXZlbiBmaWx0ZXIgZnVuY3Rpb24uXG4gICAqIFRoZSBmaWx0ZXIgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggZWFjaCBkYXRhIHNvdXJjZSBxdWVyeSBhcyBhbiBhcmd1bWVudC5cbiAgICogSWYgdGhlIGZpbHRlciBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHRoZSBkYXRhIHNvdXJjZSBxdWVyeSBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0LlxuICAgKiBcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZmlsdGVyRm4gLSBUaGUgZmlsdGVyIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIHRoZSBkYXRhIHNvdXJjZSBxdWVyaWVzLlxuICAgKiBAcmV0dXJucyB7RGF0YVNvdXJjZVF1ZXJ5TW9kZWxbXX0gLSBUaGUgYXJyYXkgb2YgZGF0YSBzb3VyY2UgcXVlcmllcyB0aGF0IHNhdGlzZnkgdGhlIGZpbHRlciBmdW5jdGlvbi5cbiAgICovXG4gIGZpbmREYXRhU291cmNlUXVlcmllcyhmaWx0ZXJGbjogKGRzcTogRGF0YVNvdXJjZVF1ZXJ5TW9kZWwpID0+IGJvb2xlYW4pOiBEYXRhU291cmNlUXVlcnlNb2RlbFtdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlUXVlcmllcygpLmZpbHRlcihmaWx0ZXJGbik7XG4gIH1cblxuICAvKipcbiAgICogU2VhcmNoZXMgZm9yIHRoZSBnaXZlbiB0ZXJtIGluIHRoZSBmaWVsZHMgYW5kIGRhdGEgc291cmNlIHF1ZXJpZXMgb2YgdGhpcyBBcHBPYmplY3QuXG4gICAqIFRoZSBzZWFyY2ggaXMgY2FzZS1pbnNlbnNpdGl2ZSBhbmQgcGVyZm9ybWVkIG9uIHRoZSBmb2xsb3dpbmcgZmllbGRzOlxuICAgKiAgIC0gRmllbGQgbmFtZSBhbmQgZGVzY3JpcHRpb25cbiAgICogICAtIERhdGEgc291cmNlIHF1ZXJ5IG5hbWUsIGRpc3BsYXkgbmFtZSwgYW5kIGRlc2NyaXB0aW9uXG4gICAqIFxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGVybSAtIFRoZSBzZWFyY2ggdGVybSB0byBzZWFyY2ggZm9yLlxuICAgKiBAcmV0dXJucyB7eyBmaWVsZHM6IEFwcEZpZWxkTW9kZWxbXTsgZHNxczogRGF0YVNvdXJjZVF1ZXJ5TW9kZWxbXSB9fSAtIEFuIG9iamVjdCB3aXRoIHRoZSBzZWFyY2ggcmVzdWx0cy5cbiAgICogICBUaGUgYGZpZWxkc2AgcHJvcGVydHkgY29udGFpbnMgYW4gYXJyYXkgb2YgQXBwRmllbGRNb2RlbCBvYmplY3RzIHRoYXQgbWF0Y2ggdGhlIHNlYXJjaCB0ZXJtLlxuICAgKiAgIFRoZSBgZHNxc2AgcHJvcGVydHkgY29udGFpbnMgYW4gYXJyYXkgb2YgRGF0YVNvdXJjZVF1ZXJ5TW9kZWwgb2JqZWN0cyB0aGF0IG1hdGNoIHRoZSBzZWFyY2ggdGVybS5cbiAgICovXG4gIHNlYXJjaCh0ZXJtOiBzdHJpbmcpOiB7IGZpZWxkczogQXBwRmllbGRNb2RlbFtdOyBkc3FzOiBEYXRhU291cmNlUXVlcnlNb2RlbFtdIH0ge1xuICAgIC8vIFNlYXJjaCBmb3IgdGhlIHRlcm0gaW4gdGhlIGZpZWxkc1xuICAgIGNvbnN0IGZpZWxkcyA9IHRoaXMuZmllbGRzKCkuZmlsdGVyKGZpZWxkID0+IGZpZWxkLnNlYXJjaCh0ZXJtKSk7XG5cbiAgICAvLyBTZWFyY2ggZm9yIHRoZSB0ZXJtIGluIHRoZSBkYXRhIHNvdXJjZSBxdWVyaWVzXG4gICAgY29uc3QgZHNxcyA9IHRoaXMuZGF0YVNvdXJjZVF1ZXJpZXMoKS5maWx0ZXIoZHNxID0+IGRzcS5zZWFyY2godGVybSkpO1xuXG4gICAgLy8gUmV0dXJuIHRoZSBzZWFyY2ggcmVzdWx0c1xuICAgIHJldHVybiB7IGZpZWxkcywgZHNxcyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBjdXJyZW50IG9iamVjdCB0byBhIEpTT04gb2JqZWN0LlxuICAgKlxuICAgKiBAcmV0dXJucyB7YW55fSBUaGUgcmF3IGRhdGEgYXMgYSBKU09OIG9iamVjdC5cbiAgICovXG4gIHRvSlNPTigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJhdztcbiAgfVxufSJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export class AppScreenModel {
|
|
2
|
+
constructor(raw) {
|
|
3
|
+
this.raw = raw;
|
|
4
|
+
this.ID = raw?.ID;
|
|
5
|
+
this.Name = raw?.Name;
|
|
6
|
+
this.Description = raw?.Description;
|
|
7
|
+
this.ScreenType = raw?.ScreenType;
|
|
8
|
+
this.DataSourceQuery = raw?.DataSourceQuery;
|
|
9
|
+
this.Container = raw?.Container;
|
|
10
|
+
this.ScreenConfiguration = raw?.ScreenConfiguration;
|
|
11
|
+
this.AppId = raw?.AppId;
|
|
12
|
+
this.RecordId = raw?.RecordId;
|
|
13
|
+
this.IsSystemRecord = raw?.IsSystemRecord;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Searches for the given term in the properties of the current app screen
|
|
17
|
+
* @param {string} term The search term
|
|
18
|
+
* @returns {boolean} Whether the search term is present in any field
|
|
19
|
+
*/
|
|
20
|
+
search(term) {
|
|
21
|
+
const lower = term.toLowerCase();
|
|
22
|
+
return Boolean(
|
|
23
|
+
// Search in ID
|
|
24
|
+
(this.ID && this.ID?.toLowerCase()?.includes(lower)) ||
|
|
25
|
+
// Search in Name
|
|
26
|
+
(this.Name && this.Name?.toLowerCase()?.includes(lower)));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Converts the current object to a JSON object.
|
|
30
|
+
*
|
|
31
|
+
* @returns A JSON representation of the current object.
|
|
32
|
+
*/
|
|
33
|
+
toJSON() {
|
|
34
|
+
return this.raw;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNjcmVlbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvYXBwLXNjcmVlbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sY0FBYztJQVl2QixZQUFvQixHQUFRO1FBQVIsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUN4QixJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQUUsZUFBZSxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxFQUFFLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsR0FBRyxFQUFFLG1CQUFtQixDQUFDO1FBQ3BELElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRSxRQUFRLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLEVBQUUsY0FBYyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLElBQVk7UUFDZixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsT0FBTyxPQUFPO1FBQ1YsZUFBZTtRQUNmLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxpQkFBaUI7WUFDakIsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzNELENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU07UUFDRixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NyZWVuVHlwZSB9IGZyb20gXCIuLi9lbnVtcy9jb21tb24uZW51bVwiO1xuXG5leHBvcnQgY2xhc3MgQXBwU2NyZWVuTW9kZWwge1xuICAgIHJlYWRvbmx5IElEOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgTmFtZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IERlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgU2NyZWVuVHlwZTogU2NyZWVuVHlwZTtcbiAgICByZWFkb25seSBEYXRhU291cmNlUXVlcnk6IHN0cmluZztcbiAgICByZWFkb25seSBDb250YWluZXI6IHN0cmluZyB8IG51bGw7XG4gICAgcmVhZG9ubHkgU2NyZWVuQ29uZmlndXJhdGlvbjogc3RyaW5nO1xuICAgIHJlYWRvbmx5IEFwcElkOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgUmVjb3JkSWQ6IHN0cmluZztcbiAgICByZWFkb25seSBJc1N5c3RlbVJlY29yZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmF3OiBhbnkpIHtcbiAgICAgICAgdGhpcy5JRCA9IHJhdz8uSUQ7XG4gICAgICAgIHRoaXMuTmFtZSA9IHJhdz8uTmFtZTtcbiAgICAgICAgdGhpcy5EZXNjcmlwdGlvbiA9IHJhdz8uRGVzY3JpcHRpb247XG4gICAgICAgIHRoaXMuU2NyZWVuVHlwZSA9IHJhdz8uU2NyZWVuVHlwZTtcbiAgICAgICAgdGhpcy5EYXRhU291cmNlUXVlcnkgPSByYXc/LkRhdGFTb3VyY2VRdWVyeTtcbiAgICAgICAgdGhpcy5Db250YWluZXIgPSByYXc/LkNvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5TY3JlZW5Db25maWd1cmF0aW9uID0gcmF3Py5TY3JlZW5Db25maWd1cmF0aW9uO1xuICAgICAgICB0aGlzLkFwcElkID0gcmF3Py5BcHBJZDtcbiAgICAgICAgdGhpcy5SZWNvcmRJZCA9IHJhdz8uUmVjb3JkSWQ7XG4gICAgICAgIHRoaXMuSXNTeXN0ZW1SZWNvcmQgPSByYXc/LklzU3lzdGVtUmVjb3JkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlYXJjaGVzIGZvciB0aGUgZ2l2ZW4gdGVybSBpbiB0aGUgcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBhcHAgc2NyZWVuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRlcm0gVGhlIHNlYXJjaCB0ZXJtXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIHNlYXJjaCB0ZXJtIGlzIHByZXNlbnQgaW4gYW55IGZpZWxkXG4gICAgICovXG4gICAgc2VhcmNoKHRlcm06IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBsb3dlciA9IHRlcm0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgICAgICAvLyBTZWFyY2ggaW4gSURcbiAgICAgICAgICAgICh0aGlzLklEICYmIHRoaXMuSUQ/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKGxvd2VyKSkgfHxcbiAgICAgICAgICAgIC8vIFNlYXJjaCBpbiBOYW1lXG4gICAgICAgICAgICAodGhpcy5OYW1lICYmIHRoaXMuTmFtZT8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMobG93ZXIpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIHRoZSBjdXJyZW50IG9iamVjdCB0byBhIEpTT04gb2JqZWN0LlxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKi9cbiAgICB0b0pTT04oKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -9,4 +9,4 @@ export class Resources {
|
|
|
9
9
|
}
|
|
10
10
|
export class EmailTemplate {
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9jb21tb24uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBSXZELE1BQU0sT0FBTyxJQUFJO0NBS2hCO0FBRUQsTUFBTSxPQUFPLGNBQWM7Q0FJMUI7QUFFRCxNQUFNLE9BQU8sT0FBTztDQUluQjtBQUVELE1BQU0sT0FBTyxTQUFTO0NBS3JCO0FBRUQsTUFBTSxPQUFPLGFBQWE7Q0FHekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcblxyXG5pbXBvcnQgeyBSZXNvdXJjZVR5cGUgfSBmcm9tIFwiLi4vZW51bXMvY29tbW9uLmVudW1cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBSb2xlIHtcclxuICBJRDogc3RyaW5nIHwgYW55O1xyXG4gIFJvbGVOYW1lOiBzdHJpbmcgfCBhbnk7XHJcbiAgRGVzY3JpcHRpb246IHN0cmluZyB8IGFueTtcclxuICBQYXJlbnRSb2xlOiBSb2xlIHwgYW55O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvbnMge1xyXG4gIElEOiBzdHJpbmcgfCBhbnk7XHJcbiAgU2V0dGluZ19LZXk6IHN0cmluZyB8IGFueTtcclxuICBWYWx1ZTogc3RyaW5nIHwgYW55O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUHJvZmlsZSB7XHJcbiAgSUQhOiBzdHJpbmc7XHJcbiAgUHJvZmlsZU5hbWUhOiBzdHJpbmc7XHJcbiAgRGVzY3JpcHRpb24hOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZXMge1xyXG4gIElEITogc3RyaW5nO1xyXG4gIFZhbHVlITogc3RyaW5nO1xyXG4gIFNldHRpbmdfS2V5ITogc3RyaW5nO1xyXG4gIHJlc291cmNlVHlwZSE6IFJlc291cmNlVHlwZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVtYWlsVGVtcGxhdGUge1xyXG4gIElEITogc3RyaW5nO1xyXG4gIFRlbXBsYXRlITogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -28,4 +28,4 @@ export class UpdateQueryParameter {
|
|
|
28
28
|
}
|
|
29
29
|
export class ScreenParameter {
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtcXVlcmllcy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvZGF0YS1zb3VyY2UtcXVlcmllcy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFZdkQsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQU1FLFdBQU0sR0FBK0IsRUFBRSxDQUFDO1FBRXhDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsZUFBVSxHQUFpQixFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtDQVNwQztBQUVELE1BQU0sT0FBTyxVQUFVO0NBS3RCO0FBRUQsTUFBTSxPQUFPLElBQUk7Q0FLaEI7QUFFRCxNQUFNLE9BQU8sY0FBYztDQUcxQjtBQUVELE1BQU0sT0FBTyxNQUFNO0NBU2xCO0FBRUQsTUFBTSxPQUFPLFNBQVM7Q0FxQnJCO0FBRUQsTUFBTSxPQUFPLFNBQVM7Q0FHckI7QUFFRCxNQUFNLE9BQU8sYUFBYTtDQUt6QjtBQUVELE1BQU0sT0FBTyxXQUFXO0NBSXZCO0FBRUQsTUFBTSxPQUFPLG9CQUFvQjtDQUdoQztBQUVELE1BQU0sT0FBTyxlQUFlO0NBTTNCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuaW1wb3J0IHsgRGF0YVR5cGVzIH0gZnJvbSAnLi4vZW51bXMvY29udHJvbGxlcnMuZW51bSc7XHJcbmltcG9ydCB7XHJcbiAgU29ydFNlcXVlbmNlLFxyXG4gIENvbmp1Y3Rpb25DbGF1c2UsXHJcbiAgUmVsYXRpb25hbE9wZXJhdG9yLFxyXG4gIE9iamVjdENyZWF0aW9uVHlwZSxcclxuICBEYXRhU291cmNlUXVlcnlGaWVsZFR5cGUsXHJcbn0gZnJvbSAnLi4vZW51bXMvZHNxLmVudW0nO1xyXG5pbXBvcnQgeyBBcHBPYmplY3QgfSBmcm9tICcuL2FwcC1vYmplY3QuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VRdWVyaWVzIHtcclxuICBJRCE6IHN0cmluZztcclxuICBPYmplY3RJRCE6IEFwcE9iamVjdDtcclxuICBPYmplY3RJRF9Ub3NhdmUhOiBzdHJpbmc7XHJcbiAgUXVlcnlOYW1lITogc3RyaW5nO1xyXG4gIERpc3BsYXlOYW1lITogc3RyaW5nO1xyXG4gIEZpZWxkczogRGF0YVNvdXJjZVF1ZXJpZXNfRmllbGRzW10gPSBbXTtcclxuICBGaWx0ZXJzITogRmlsdGVyQ3JpdGVyaWE7XHJcbiAgU29ydDogU29ydFtdID0gW107XHJcbiAgUGFyYW1ldGVyczogUGFyYW1ldGVyc1tdID0gW107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlUXVlcmllc19GaWVsZHMge1xyXG4gIElEITogc3RyaW5nXHJcbiAgRmllbGQhOiBBcHBGaWVsZHM7XHJcbiAgU2VxTm8hOiBudW1iZXI7XHJcbiAgRmllbGRfR3JpZEF0dHJpYnV0ZXMhOiBzdHJpbmc7XHJcbiAgTG9va3VwRGV0YWlscyE6IHN0cmluZztcclxuICBGaWVsZFR5cGUhOiBEYXRhU291cmNlUXVlcnlGaWVsZFR5cGU7XHJcbiAgRmllbGREZXRhaWxzITogc3RyaW5nO1xyXG4gIEFwcEZpZWxkSUQhOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJzIHtcclxuICBJRCE6IHN0cmluZztcclxuICBQYXJhbWV0ZXJOYW1lITogc3RyaW5nO1xyXG4gIERhdGFTb3VyY2VRdWVyeUlEITogc3RyaW5nO1xyXG4gIE1hcHBpbmdGaWVsZE5hbWUhOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTb3J0IHtcclxuICBJRCE6IHN0cmluZztcclxuICAvLyBGaWVsZCE6IEFwcEZpZWxkcztcclxuICBTb3J0U2VxdWVuY2UhOiBTb3J0U2VxdWVuY2U7XHJcbiAgU2VxdWVuY2UhOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDcml0ZXJpYSB7XHJcbiAgRmlsdGVycyE6IEZpbHRlcjtcclxuICBGaWx0ZXJMb2dpYyE6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpbHRlciB7XHJcbiAgSUQhOiBzdHJpbmc7XHJcbiAgQ29uanVjdGlvbkNsYXVzZSE6IENvbmp1Y3Rpb25DbGF1c2U7XHJcbiAgLy8gRmllbGQhOiBzdHJpbmc7XHJcbiAgUmVsYXRpb25hbE9wZXJhdG9yITogUmVsYXRpb25hbE9wZXJhdG9yO1xyXG4gIFZhbHVlVHlwZTogYW55O1xyXG4gIHZhbHVlITogc3RyaW5nO1xyXG4gIFNlcXVlbmNlITogbnVtYmVyO1xyXG4gIEdyb3VwSUQhOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBcHBGaWVsZHMge1xyXG4gIElEITogc3RyaW5nO1xyXG4gIE9iamVjdElEITogQXBwT2JqZWN0O1xyXG4gIEZpZWxkTmFtZSE6IHN0cmluZztcclxuICBEaXNwbGF5TmFtZSE6IHN0cmluZztcclxuICBGaWVsZFR5cGUhOiBGaWVsZFR5cGU7XHJcbiAgRGVzY3JpcHRpb24hOiBzdHJpbmc7XHJcbiAgQ3JlYXRpb25UeXBlITogT2JqZWN0Q3JlYXRpb25UeXBlO1xyXG4gIElzUmVxdWlyZWQhOiBib29sZWFuO1xyXG4gIElzVW5pcXVlITogYm9vbGVhbjtcclxuICBJc1NlYXJjaGFibGUhOiBib29sZWFuO1xyXG4gIElzQ29uZmlkZW50aWFsITogYm9vbGVhbjtcclxuICBTeXN0ZW1EQkZpZWxkTmFtZSE6IHN0cmluZztcclxuICBJc1N5c3RlbSE6IGJvb2xlYW47XHJcbiAgSXNWaXNpYmxlITogYm9vbGVhbjtcclxuICBJc0RlcHJlY2F0ZWQhOiBib29sZWFuO1xyXG4gIExvb2tVcERldGFpbHMhOiBMb29rVXBEZXRhaWxzO1xyXG4gIEFjY2Vzc0xpc3QhOiBGaWVsZEFjY2Vzc1tdO1xyXG4gIERhdGEhOiBzdHJpbmc7XHJcbiAgSXNQcmltYXJ5S2V5ITogYm9vbGVhbjtcclxuICBGaWVsZCE6IEFwcEZpZWxkcztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkVHlwZSB7XHJcbiAgRGF0YVR5cGUhOiBEYXRhVHlwZXM7XHJcbiAgUmVsYXRpb25hbE9wZXJhdG9yITogUmVsYXRpb25hbE9wZXJhdG9yW107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMb29rVXBEZXRhaWxzIHtcclxuICBMb29rdXBPYmplY3QhOiBzdHJpbmc7XHJcbiAgTG9va3VwRmllbGQhOiBzdHJpbmc7XHJcbiAgRGlzcGxheUZpZWxkITogc3RyaW5nO1xyXG4gIHNlbGVjdFF1ZXJ5ITogYW55O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGRBY2Nlc3Mge1xyXG4gIEZpZWxkSUQhOiBzdHJpbmc7XHJcbiAgSXNWaXNpYmxlITogYm9vbGVhbjtcclxuICBJc1JlYWRPbmx5ITogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVwZGF0ZVF1ZXJ5UGFyYW1ldGVyIHtcclxuICBGaWVsZE5hbWUhOiBzdHJpbmc7XHJcbiAgRmllbGRWYWx1ZSE6IHN0cmluZyB8IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNjcmVlblBhcmFtZXRlciB7XHJcbiAgZXZlbnQ6IGFueTtcclxuICBmb3JtSnNvbjogYW55O1xyXG4gIGZvcm1JT09iamVjdDogYW55O1xyXG4gIHNlcnZpY2VMaXN0OiBhbnk7XHJcbiAgZGFpbG9nUmVmOiBhbnk7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { FilterModel } from './filter.model';
|
|
2
|
+
import { ParameterModel } from './parameter.model';
|
|
3
|
+
import { SortModel } from './sort.model';
|
|
4
|
+
export class DataSourceQueryModel {
|
|
5
|
+
constructor(raw, parentAppObject) {
|
|
6
|
+
this.raw = raw;
|
|
7
|
+
this.parentAppObject = parentAppObject;
|
|
8
|
+
this.enrichedFields = [];
|
|
9
|
+
this.cachedParameters = [];
|
|
10
|
+
this.cachedFilters = [];
|
|
11
|
+
this.cachedSorts = [];
|
|
12
|
+
this.ID = raw.ID;
|
|
13
|
+
this.ObjectID = raw.ObjectID;
|
|
14
|
+
this.ObjectID_Tosave = raw.ObjectID_Tosave;
|
|
15
|
+
this.QueryName = raw.QueryName;
|
|
16
|
+
this.DisplayName = raw.DisplayName;
|
|
17
|
+
this.FilterLogic = raw.FilterLogic;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Gets the fields for the data source query. The fields are enriched with the corresponding `AppFieldModel` objects.
|
|
21
|
+
* @returns {DataSourceQueries_Fields[]} The array of enriched fields.
|
|
22
|
+
*/
|
|
23
|
+
fields() {
|
|
24
|
+
if (!this.enrichedFields?.length) {
|
|
25
|
+
const rawFields = this.raw?.Fields;
|
|
26
|
+
if (rawFields?.length) {
|
|
27
|
+
// Enrich the fields by mapping each field to the corresponding `AppFieldModel` object.
|
|
28
|
+
this.enrichedFields = rawFields.map((field) => ({
|
|
29
|
+
...field,
|
|
30
|
+
// The `Field` property contains the corresponding `AppFieldModel` object.
|
|
31
|
+
Field: this.parentAppObject.field(field.AppFieldID)
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
// If there are no fields, return an empty array.
|
|
36
|
+
this.enrichedFields = [];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Return the enriched fields.
|
|
40
|
+
return this.enrichedFields;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Finds and returns the fields for the data source query that satisfy the given filter function.
|
|
44
|
+
* @param {function} filterFn The filter function to apply to the fields.
|
|
45
|
+
* @returns {DataSourceQueries_Fields[]} The array of fields that satisfy the filter function.
|
|
46
|
+
*/
|
|
47
|
+
findFields(filterFn) {
|
|
48
|
+
return this.fields().filter(filterFn);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Retrieves and caches the parameters for the data source query.
|
|
52
|
+
* @returns {ParameterModel[]} The array of ParameterModel instances.
|
|
53
|
+
*/
|
|
54
|
+
parameters() {
|
|
55
|
+
// Check if parameters have already been cached
|
|
56
|
+
if (!this.cachedParameters) {
|
|
57
|
+
// Map raw parameters to ParameterModel instances and cache them
|
|
58
|
+
this.cachedParameters = (this.raw?.Parameters || []).map((p) => new ParameterModel(p));
|
|
59
|
+
}
|
|
60
|
+
return this.cachedParameters;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Retrieves the mandatory parameters for the data source query.
|
|
64
|
+
* @returns {ParameterModel[]} The array of mandatory ParameterModel instances.
|
|
65
|
+
*/
|
|
66
|
+
mandatoryParameters() {
|
|
67
|
+
return this.parameters().filter(p => p.IsMandatory);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Finds a parameter by its name (case-insensitive).
|
|
71
|
+
* @param {string} name The name of the parameter to find.
|
|
72
|
+
* @returns {ParameterModel | undefined} The parameter model instance if found, otherwise undefined.
|
|
73
|
+
*/
|
|
74
|
+
parameter(name) {
|
|
75
|
+
const nameLower = name.toLowerCase();
|
|
76
|
+
return this.parameters().find(p => p.ParameterName?.toLowerCase() === nameLower);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Retrieves and caches the filters for the data source query.
|
|
80
|
+
* @returns {FilterModel[]} The array of FilterModel instances.
|
|
81
|
+
*/
|
|
82
|
+
filters() {
|
|
83
|
+
// Check if filters have already been cached
|
|
84
|
+
if (!this.cachedFilters) {
|
|
85
|
+
// Map raw filters to FilterModel instances and cache them
|
|
86
|
+
this.cachedFilters = (this.raw.Filters?.Filters || []).map((f) => new FilterModel(f));
|
|
87
|
+
}
|
|
88
|
+
return this.cachedFilters;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Retrieves and caches the sorts for the data source query.
|
|
92
|
+
* @returns {SortModel[]} The array of SortModel instances.
|
|
93
|
+
*/
|
|
94
|
+
sorts() {
|
|
95
|
+
// Check if sorts have already been cached
|
|
96
|
+
if (!this.cachedSorts) {
|
|
97
|
+
// Map raw sorts to SortModel instances and cache them
|
|
98
|
+
this.cachedSorts = (this.raw.Sort || []).map((s) => new SortModel(s));
|
|
99
|
+
}
|
|
100
|
+
// Return the cached sorts
|
|
101
|
+
return this.cachedSorts;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Check if the given search term is present in any of the fields of the
|
|
105
|
+
* current data source query
|
|
106
|
+
* @param {string} term The search term
|
|
107
|
+
* @returns {boolean} Whether the search term is present in any field
|
|
108
|
+
*/
|
|
109
|
+
search(term) {
|
|
110
|
+
const searchTerm = term.toLowerCase();
|
|
111
|
+
return (this.ID?.toLowerCase().includes(searchTerm) ||
|
|
112
|
+
this.QueryName?.toLowerCase().includes(searchTerm) ||
|
|
113
|
+
this.DisplayName?.toLowerCase().includes(searchTerm));
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Converts the DataSourceQueryModel instance to a JSON representation.
|
|
117
|
+
* @returns {any} The raw data in JSON format.
|
|
118
|
+
*/
|
|
119
|
+
toJSON() {
|
|
120
|
+
return this.raw;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtcXVlcnkubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvbW9kZWxzL2RhdGEtc291cmNlLXF1ZXJ5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxNQUFNLE9BQU8sb0JBQW9CO0lBYS9CLFlBQ21CLEdBQVEsRUFDUixlQUErQjtRQUQvQixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQ1Isb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBUDFDLG1CQUFjLEdBQStCLEVBQUUsQ0FBQztRQUNoRCxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBQ3hDLGtCQUFhLEdBQWtCLEVBQUUsQ0FBQztRQUNsQyxnQkFBVyxHQUFnQixFQUFFLENBQUM7UUFNcEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVB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Q0FBQyxJQUFZO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQ0wsSUFBSSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUNsRCxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FDckQsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcE9iamVjdE1vZGVsIH0gZnJvbSAnLi9hcHAtb2JqZWN0Lm1vZGVsJztcbmltcG9ydCB7IERhdGFTb3VyY2VRdWVyaWVzX0ZpZWxkcyB9IGZyb20gJy4vZGF0YS1zb3VyY2UtcXVlcmllcy5jbGFzcyc7XG5pbXBvcnQgeyBGaWx0ZXJNb2RlbCB9IGZyb20gJy4vZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IFBhcmFtZXRlck1vZGVsIH0gZnJvbSAnLi9wYXJhbWV0ZXIubW9kZWwnO1xuaW1wb3J0IHsgU29ydE1vZGVsIH0gZnJvbSAnLi9zb3J0Lm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VRdWVyeU1vZGVsIHtcbiAgcmVhZG9ubHkgSUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgT2JqZWN0SUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgT2JqZWN0SURfVG9zYXZlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IFF1ZXJ5TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBEaXNwbGF5TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBGaWx0ZXJMb2dpYzogc3RyaW5nIHwgbnVsbDtcblxuICBwcml2YXRlIGVucmljaGVkRmllbGRzOiBEYXRhU291cmNlUXVlcmllc19GaWVsZHNbXSA9IFtdO1xuICBwcml2YXRlIGNhY2hlZFBhcmFtZXRlcnM6IFBhcmFtZXRlck1vZGVsW10gPSBbXTtcbiAgcHJpdmF0ZSBjYWNoZWRGaWx0ZXJzOiBGaWx0ZXJNb2RlbFtdID0gW107XG4gIHByaXZhdGUgY2FjaGVkU29ydHM6IFNvcnRNb2RlbFtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByYXc6IGFueSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudEFwcE9iamVjdDogQXBwT2JqZWN0TW9kZWxcbiAgKSB7XG4gICAgdGhpcy5JRCA9IHJhdy5JRDtcbiAgICB0aGlzLk9iamVjdElEID0gcmF3Lk9iamVjdElEO1xuICAgIHRoaXMuT2JqZWN0SURfVG9zYXZlID0gcmF3Lk9iamVjdElEX1Rvc2F2ZTtcbiAgICB0aGlzLlF1ZXJ5TmFtZSA9IHJhdy5RdWVyeU5hbWU7XG4gICAgdGhpcy5EaXNwbGF5TmFtZSA9IHJhdy5EaXNwbGF5TmFtZTtcbiAgICB0aGlzLkZpbHRlckxvZ2ljID0gcmF3LkZpbHRlckxvZ2ljO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGZpZWxkcyBmb3IgdGhlIGRhdGEgc291cmNlIHF1ZXJ5LiBUaGUgZmllbGRzIGFyZSBlbnJpY2hlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGBBcHBGaWVsZE1vZGVsYCBvYmplY3RzLlxuICAgKiBAcmV0dXJucyB7RGF0YVNvdXJjZVF1ZXJpZXNfRmllbGRzW119IFRoZSBhcnJheSBvZiBlbnJpY2hlZCBmaWVsZHMuXG4gICAqL1xuICBmaWVsZHMoKTogRGF0YVNvdXJjZVF1ZXJpZXNfRmllbGRzW10ge1xuICAgIGlmICghdGhpcy5lbnJpY2hlZEZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICBjb25zdCByYXdGaWVsZHMgPSB0aGlzLnJhdz8uRmllbGRzO1xuICAgICAgaWYgKHJhd0ZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICAgIC8vIEVucmljaCB0aGUgZmllbGRzIGJ5IG1hcHBpbmcgZWFjaCBmaWVsZCB0byB0aGUgY29ycmVzcG9uZGluZyBgQXBwRmllbGRNb2RlbGAgb2JqZWN0LlxuICAgICAgICB0aGlzLmVucmljaGVkRmllbGRzID0gcmF3RmllbGRzLm1hcCgoZmllbGQ6IGFueSkgPT4gKHtcbiAgICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgICAvLyBUaGUgYEZpZWxkYCBwcm9wZXJ0eSBjb250YWlucyB0aGUgY29ycmVzcG9uZGluZyBgQXBwRmllbGRNb2RlbGAgb2JqZWN0LlxuICAgICAgICAgIEZpZWxkOiB0aGlzLnBhcmVudEFwcE9iamVjdC5maWVsZChmaWVsZC5BcHBGaWVsZElEKVxuICAgICAgICB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gZmllbGRzLCByZXR1cm4gYW4gZW1wdHkgYXJyYXkuXG4gICAgICAgIHRoaXMuZW5yaWNoZWRGaWVsZHMgPSBbXTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUmV0dXJuIHRoZSBlbnJpY2hlZCBmaWVsZHMuXG4gICAgcmV0dXJuIHRoaXMuZW5yaWNoZWRGaWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgYW5kIHJldHVybnMgdGhlIGZpZWxkcyBmb3IgdGhlIGRhdGEgc291cmNlIHF1ZXJ5IHRoYXQgc2F0aXNmeSB0aGUgZ2l2ZW4gZmlsdGVyIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmaWx0ZXJGbiBUaGUgZmlsdGVyIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIHRoZSBmaWVsZHMuXG4gICAqIEByZXR1cm5zIHtEYXRhU291cmNlUXVlcmllc19GaWVsZHNbXX0gVGhlIGFycmF5IG9mIGZpZWxkcyB0aGF0IHNhdGlzZnkgdGhlIGZpbHRlciBmdW5jdGlvbi5cbiAgICovXG4gIGZpbmRGaWVsZHMoZmlsdGVyRm46IChmaWVsZDogRGF0YVNvdXJjZVF1ZXJpZXNfRmllbGRzKSA9PiBib29sZWFuKTogRGF0YVNvdXJjZVF1ZXJpZXNfRmllbGRzW10ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkcygpLmZpbHRlcihmaWx0ZXJGbik7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGFuZCBjYWNoZXMgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBkYXRhIHNvdXJjZSBxdWVyeS5cbiAgICogQHJldHVybnMge1BhcmFtZXRlck1vZGVsW119IFRoZSBhcnJheSBvZiBQYXJhbWV0ZXJNb2RlbCBpbnN0YW5jZXMuXG4gICAqL1xuICBwYXJhbWV0ZXJzKCk6IFBhcmFtZXRlck1vZGVsW10ge1xuICAgIC8vIENoZWNrIGlmIHBhcmFtZXRlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gY2FjaGVkXG4gICAgaWYgKCF0aGlzLmNhY2hlZFBhcmFtZXRlcnMpIHtcbiAgICAgIC8vIE1hcCByYXcgcGFyYW1ldGVycyB0byBQYXJhbWV0ZXJNb2RlbCBpbnN0YW5jZXMgYW5kIGNhY2hlIHRoZW1cbiAgICAgIHRoaXMuY2FjaGVkUGFyYW1ldGVycyA9ICh0aGlzLnJhdz8uUGFyYW1ldGVycyB8fCBbXSkubWFwKChwOiBhbnkpID0+IG5ldyBQYXJhbWV0ZXJNb2RlbChwKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhY2hlZFBhcmFtZXRlcnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBtYW5kYXRvcnkgcGFyYW1ldGVycyBmb3IgdGhlIGRhdGEgc291cmNlIHF1ZXJ5LlxuICAgKiBAcmV0dXJucyB7UGFyYW1ldGVyTW9kZWxbXX0gVGhlIGFycmF5IG9mIG1hbmRhdG9yeSBQYXJhbWV0ZXJNb2RlbCBpbnN0YW5jZXMuXG4gICAqL1xuICBtYW5kYXRvcnlQYXJhbWV0ZXJzKCk6IFBhcmFtZXRlck1vZGVsW10ge1xuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlcnMoKS5maWx0ZXIocCA9PiBwLklzTWFuZGF0b3J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kcyBhIHBhcmFtZXRlciBieSBpdHMgbmFtZSAoY2FzZS1pbnNlbnNpdGl2ZSkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgdG8gZmluZC5cbiAgICogQHJldHVybnMge1BhcmFtZXRlck1vZGVsIHwgdW5kZWZpbmVkfSBUaGUgcGFyYW1ldGVyIG1vZGVsIGluc3RhbmNlIGlmIGZvdW5kLCBvdGhlcndpc2UgdW5kZWZpbmVkLlxuICAgKi9cbiAgcGFyYW1ldGVyKG5hbWU6IHN0cmluZyk6IFBhcmFtZXRlck1vZGVsIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBuYW1lTG93ZXIgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycygpLmZpbmQocCA9PiBwLlBhcmFtZXRlck5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IG5hbWVMb3dlcik7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGFuZCBjYWNoZXMgdGhlIGZpbHRlcnMgZm9yIHRoZSBkYXRhIHNvdXJjZSBxdWVyeS5cbiAgICogQHJldHVybnMge0ZpbHRlck1vZGVsW119IFRoZSBhcnJheSBvZiBGaWx0ZXJNb2RlbCBpbnN0YW5jZXMuXG4gICAqL1xuICBmaWx0ZXJzKCk6IEZpbHRlck1vZGVsW10ge1xuICAgIC8vIENoZWNrIGlmIGZpbHRlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gY2FjaGVkXG4gICAgaWYgKCF0aGlzLmNhY2hlZEZpbHRlcnMpIHtcbiAgICAgIC8vIE1hcCByYXcgZmlsdGVycyB0byBGaWx0ZXJNb2RlbCBpbnN0YW5jZXMgYW5kIGNhY2hlIHRoZW1cbiAgICAgIHRoaXMuY2FjaGVkRmlsdGVycyA9ICh0aGlzLnJhdy5GaWx0ZXJzPy5GaWx0ZXJzIHx8IFtdKS5tYXAoKGY6IGFueSkgPT4gbmV3IEZpbHRlck1vZGVsKGYpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVkRmlsdGVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYW5kIGNhY2hlcyB0aGUgc29ydHMgZm9yIHRoZSBkYXRhIHNvdXJjZSBxdWVyeS5cbiAgICogQHJldHVybnMge1NvcnRNb2RlbFtdfSBUaGUgYXJyYXkgb2YgU29ydE1vZGVsIGluc3RhbmNlcy5cbiAgICovXG4gIHNvcnRzKCk6IFNvcnRNb2RlbFtdIHtcbiAgICAvLyBDaGVjayBpZiBzb3J0cyBoYXZlIGFscmVhZHkgYmVlbiBjYWNoZWRcbiAgICBpZiAoIXRoaXMuY2FjaGVkU29ydHMpIHtcbiAgICAgIC8vIE1hcCByYXcgc29ydHMgdG8gU29ydE1vZGVsIGluc3RhbmNlcyBhbmQgY2FjaGUgdGhlbVxuICAgICAgdGhpcy5jYWNoZWRTb3J0cyA9ICh0aGlzLnJhdy5Tb3J0IHx8IFtdKS5tYXAoKHM6IGFueSkgPT4gbmV3IFNvcnRNb2RlbChzKSk7XG4gICAgfVxuICAgIC8vIFJldHVybiB0aGUgY2FjaGVkIHNvcnRzXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVkU29ydHM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIGdpdmVuIHNlYXJjaCB0ZXJtIGlzIHByZXNlbnQgaW4gYW55IG9mIHRoZSBmaWVsZHMgb2YgdGhlXG4gICAqIGN1cnJlbnQgZGF0YSBzb3VyY2UgcXVlcnlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRlcm0gVGhlIHNlYXJjaCB0ZXJtXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHRoZSBzZWFyY2ggdGVybSBpcyBwcmVzZW50IGluIGFueSBmaWVsZFxuICAgKi9cbiAgc2VhcmNoKHRlcm06IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlYXJjaFRlcm0gPSB0ZXJtLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuSUQ/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkgfHxcbiAgICAgIHRoaXMuUXVlcnlOYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pIHx8XG4gICAgICB0aGlzLkRpc3BsYXlOYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgRGF0YVNvdXJjZVF1ZXJ5TW9kZWwgaW5zdGFuY2UgdG8gYSBKU09OIHJlcHJlc2VudGF0aW9uLlxuICAgKiBAcmV0dXJucyB7YW55fSBUaGUgcmF3IGRhdGEgaW4gSlNPTiBmb3JtYXQuXG4gICAqL1xuICB0b0pTT04oKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5yYXc7XG4gIH1cbn0iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export class FilterModel {
|
|
2
|
+
constructor(raw) {
|
|
3
|
+
this.raw = raw;
|
|
4
|
+
this.ID = raw?.ID;
|
|
5
|
+
this.ConjuctionClause = raw?.ConjuctionClause;
|
|
6
|
+
this.RelationalOperator = raw?.RelationalOperator;
|
|
7
|
+
this.ValueType = raw?.ValueType;
|
|
8
|
+
this.value = raw?.value;
|
|
9
|
+
this.Sequence = raw?.Sequence;
|
|
10
|
+
this.GroupID = raw?.GroupID;
|
|
11
|
+
this.LookupDetail = raw?.LookupDetail;
|
|
12
|
+
this.FieldType = raw?.FieldType;
|
|
13
|
+
this.FieldID = raw?.FieldID;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Converts the current object to a JSON object.
|
|
17
|
+
*
|
|
18
|
+
* @returns A JSON representation of the current object.
|
|
19
|
+
*/
|
|
20
|
+
toJSON() {
|
|
21
|
+
return this.raw;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL21vZGVscy9maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFdBQVc7SUFZdEIsWUFBNkIsR0FBUTtRQUFSLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFDbkMsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7UUFDOUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRSxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLEVBQUUsWUFBWSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxFQUFFLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmp1Y3Rpb25DbGF1c2UsIERhdGFTb3VyY2VRdWVyeUZpbHRlckZpZWxkVHlwZSwgRmlsdGVyVmFsdWVUeXBlLCBSZWxhdGlvbmFsT3BlcmF0b3IgfSBmcm9tIFwiLi4vZW51bXMvZHNxLmVudW1cIjtcblxuZXhwb3J0IGNsYXNzIEZpbHRlck1vZGVsIHtcbiAgcmVhZG9ubHkgSUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgQ29uanVjdGlvbkNsYXVzZTogQ29uanVjdGlvbkNsYXVzZTtcbiAgcmVhZG9ubHkgUmVsYXRpb25hbE9wZXJhdG9yOiBSZWxhdGlvbmFsT3BlcmF0b3I7XG4gIHJlYWRvbmx5IFZhbHVlVHlwZTogRmlsdGVyVmFsdWVUeXBlO1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuICByZWFkb25seSBTZXF1ZW5jZTogbnVtYmVyO1xuICByZWFkb25seSBHcm91cElEOiBudW1iZXI7XG4gIHJlYWRvbmx5IExvb2t1cERldGFpbDogc3RyaW5nIHwgbnVsbDtcbiAgcmVhZG9ubHkgRmllbGRUeXBlOiBEYXRhU291cmNlUXVlcnlGaWx0ZXJGaWVsZFR5cGU7XG4gIHJlYWRvbmx5IEZpZWxkSUQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJhdzogYW55KSB7XG4gICAgdGhpcy5JRCA9IHJhdz8uSUQ7XG4gICAgdGhpcy5Db25qdWN0aW9uQ2xhdXNlID0gcmF3Py5Db25qdWN0aW9uQ2xhdXNlO1xuICAgIHRoaXMuUmVsYXRpb25hbE9wZXJhdG9yID0gcmF3Py5SZWxhdGlvbmFsT3BlcmF0b3I7XG4gICAgdGhpcy5WYWx1ZVR5cGUgPSByYXc/LlZhbHVlVHlwZTtcbiAgICB0aGlzLnZhbHVlID0gcmF3Py52YWx1ZTtcbiAgICB0aGlzLlNlcXVlbmNlID0gcmF3Py5TZXF1ZW5jZTtcbiAgICB0aGlzLkdyb3VwSUQgPSByYXc/Lkdyb3VwSUQ7XG4gICAgdGhpcy5Mb29rdXBEZXRhaWwgPSByYXc/Lkxvb2t1cERldGFpbDtcbiAgICB0aGlzLkZpZWxkVHlwZSA9IHJhdz8uRmllbGRUeXBlO1xuICAgIHRoaXMuRmllbGRJRCA9IHJhdz8uRmllbGRJRDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgY3VycmVudCBvYmplY3QgdG8gYSBKU09OIG9iamVjdC5cbiAgICpcbiAgICogQHJldHVybnMgQSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICovXG4gIHRvSlNPTigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJhdztcbiAgfVxufSJdfQ==
|