lucid-extension-sdk 0.0.317 → 0.0.320
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/commandtypes.d.ts +4 -0
- package/core/cardintegration/cardintegrationdefinitions.d.ts +24 -0
- package/core/cardintegration/cardintegrationdefinitions.js +18 -1
- package/core/cardintegration/lucidcardintegration.d.ts +4 -0
- package/core/cardintegration/lucidcardintegrationregistry.d.ts +2 -1
- package/core/cardintegration/lucidcardintegrationregistry.js +10 -0
- package/core/data/datasource/serializeddatasourceproperties.d.ts +1 -0
- package/core/data/datasource/serializedimporteddatasource.d.ts +4 -0
- package/core/data/datasource/serializedsourceforeignkey.d.ts +2 -0
- package/core/data/datasource/serializedsourceforeignkey.js +1 -0
- package/core/data/datasource/sourceforeignkeys.d.ts +1 -0
- package/core/data/datasource/sourceforeignkeys.js +2 -0
- package/core/data/fieldtypedefinition/basefieldtypedefinition.d.ts +3 -2
- package/core/data/fieldtypedefinition/basefieldtypedefinition.js +10 -3
- package/core/data/fieldtypedefinition/deserializedmapenumfieldtype.d.ts +28 -0
- package/core/data/fieldtypedefinition/deserializedmapenumfieldtype.js +60 -0
- package/core/data/fieldtypedefinition/fieldtypearray.d.ts +4 -3
- package/core/data/fieldtypedefinition/fieldtypearray.js +4 -0
- package/core/data/fieldtypedefinition/fieldtypedefinition.js +9 -0
- package/package.json +1 -1
package/commandtypes.d.ts
CHANGED
|
@@ -730,6 +730,10 @@ export type AddCardIntegrationQuery = {
|
|
|
730
730
|
/** Field name -> callback name tuples for searching for legal field values in an enum */
|
|
731
731
|
'fvsc'?: [string, string][] | undefined;
|
|
732
732
|
};
|
|
733
|
+
/** If we can only search for user by their name (and not email) in the card integration. */
|
|
734
|
+
'subn'?: boolean | undefined;
|
|
735
|
+
/** Callback to search for a user in the card integration */
|
|
736
|
+
'usc'?: string | undefined;
|
|
733
737
|
/** Show intro if user has not yet authorized this integration
|
|
734
738
|
* String, not function; this is the name of the client's registered action hook
|
|
735
739
|
*/
|
|
@@ -30,6 +30,30 @@ export interface ExtensionCardFieldDefinition extends FieldDefinition {
|
|
|
30
30
|
*/
|
|
31
31
|
search?: string | undefined;
|
|
32
32
|
}
|
|
33
|
+
export type ExtensionCardUserData = ExtensionCardFieldOption & {
|
|
34
|
+
email: string | undefined;
|
|
35
|
+
};
|
|
36
|
+
/** @ignore */
|
|
37
|
+
export type SerializedExtensionCardUserData = SerializedCardFieldOption & {
|
|
38
|
+
'e'?: string | undefined;
|
|
39
|
+
};
|
|
40
|
+
/** @ignore */
|
|
41
|
+
export declare function serializeCardUserData(userData: ExtensionCardUserData): SerializedExtensionCardUserData;
|
|
42
|
+
/** @ignore */
|
|
43
|
+
export declare function deserializeCardUserData(userData: SerializedExtensionCardUserData): ExtensionCardUserData;
|
|
44
|
+
export declare const isSerializedCardUserData: (subject: unknown) => subject is import("../guards").DestructureGuardedTypeObj<{
|
|
45
|
+
e: (x: unknown) => x is string | undefined;
|
|
46
|
+
l: typeof isString;
|
|
47
|
+
v: typeof isSerializedFieldType;
|
|
48
|
+
i: (x: unknown) => x is string | undefined;
|
|
49
|
+
}>;
|
|
50
|
+
export declare const isSerializedCardUserDataArray: (p1: unknown) => p1 is import("../guards").DestructureGuardedTypeObj<{
|
|
51
|
+
e: (x: unknown) => x is string | undefined;
|
|
52
|
+
l: typeof isString;
|
|
53
|
+
v: typeof isSerializedFieldType;
|
|
54
|
+
i: (x: unknown) => x is string | undefined;
|
|
55
|
+
}>[];
|
|
56
|
+
export type ExtensionCardUserDataSearch = ((searchText: string, inputSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardUserData[]>) | undefined;
|
|
33
57
|
/** @ignore */
|
|
34
58
|
export type SerializedCardFieldOption = {
|
|
35
59
|
'l': string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deserializeCardFieldArrayDefinition = exports.deserializeCardFieldDefinition = exports.isSerializedExtensionCardFieldDefinition = exports.isSerializedFieldOptions = exports.isSerializedFieldOption = exports.deserializeFieldOption = exports.serializeCardFieldArrayDefinition = exports.serializeCardFieldDefinition = exports.serializeCardFieldOption = void 0;
|
|
3
|
+
exports.deserializeCardFieldArrayDefinition = exports.deserializeCardFieldDefinition = exports.isSerializedExtensionCardFieldDefinition = exports.isSerializedFieldOptions = exports.isSerializedFieldOption = exports.deserializeFieldOption = exports.serializeCardFieldArrayDefinition = exports.serializeCardFieldDefinition = exports.serializeCardFieldOption = exports.isSerializedCardUserDataArray = exports.isSerializedCardUserData = exports.deserializeCardUserData = exports.serializeCardUserData = void 0;
|
|
4
4
|
const schemadefinition_1 = require("../../data/schemadefinition");
|
|
5
5
|
const checks_1 = require("../checks");
|
|
6
6
|
const fieldtypedefinition_1 = require("../data/fieldtypedefinition/fieldtypedefinition");
|
|
@@ -8,6 +8,23 @@ const serializedfielddefinition_1 = require("../data/serializedfield/serializedf
|
|
|
8
8
|
const serializedfields_1 = require("../data/serializedfield/serializedfields");
|
|
9
9
|
const validators_1 = require("../validators/validators");
|
|
10
10
|
/** @ignore */
|
|
11
|
+
function serializeCardUserData(userData) {
|
|
12
|
+
return Object.assign({ 'e': userData.email }, serializeCardFieldOption(userData));
|
|
13
|
+
}
|
|
14
|
+
exports.serializeCardUserData = serializeCardUserData;
|
|
15
|
+
/** @ignore */
|
|
16
|
+
function deserializeCardUserData(userData) {
|
|
17
|
+
return Object.assign({ email: userData['e'] }, deserializeFieldOption(userData));
|
|
18
|
+
}
|
|
19
|
+
exports.deserializeCardUserData = deserializeCardUserData;
|
|
20
|
+
exports.isSerializedCardUserData = (0, validators_1.objectValidator)({
|
|
21
|
+
'e': (0, validators_1.option)(checks_1.isString),
|
|
22
|
+
'l': checks_1.isString,
|
|
23
|
+
'v': serializedfields_1.isSerializedFieldType,
|
|
24
|
+
'i': (0, validators_1.option)(checks_1.isString),
|
|
25
|
+
});
|
|
26
|
+
exports.isSerializedCardUserDataArray = (0, validators_1.arrayValidator)(exports.isSerializedCardUserData);
|
|
27
|
+
/** @ignore */
|
|
11
28
|
function serializeCardFieldOption(option) {
|
|
12
29
|
return {
|
|
13
30
|
'l': option.label,
|
|
@@ -76,6 +76,10 @@ export declare abstract class LucidCardIntegration {
|
|
|
76
76
|
*/
|
|
77
77
|
lightIconUrl?: string;
|
|
78
78
|
};
|
|
79
|
+
/** If we are only able to search by name and not email in the card integration (ex: for JDC) */
|
|
80
|
+
searchUserByName?: boolean;
|
|
81
|
+
/** This is used to search for users in the card integration. It returns an additional email field of the user if available.*/
|
|
82
|
+
userSearchCallback?: string;
|
|
79
83
|
/**
|
|
80
84
|
* @deprecated Use AuthorizationFlowHandlerRegistry.registerAuthorizationFlowHandler.
|
|
81
85
|
* WARNING: Currently unused and does nothing.
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { EditorClient } from '../../editorclient';
|
|
2
2
|
import { SerializedFieldType } from '../data/serializedfield/serializedfields';
|
|
3
|
-
import { ExtensionCardFieldOption } from './cardintegrationdefinitions';
|
|
3
|
+
import { ExtensionCardFieldOption, ExtensionCardUserData } from './cardintegrationdefinitions';
|
|
4
4
|
import { LucidCardIntegration } from './lucidcardintegration';
|
|
5
5
|
export declare class LucidCardIntegrationRegistry {
|
|
6
6
|
private static nextHookId;
|
|
7
7
|
private static nextHookName;
|
|
8
8
|
static registerFieldOptionsCallback(client: EditorClient, callback: (inputSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardFieldOption[]>): string;
|
|
9
9
|
static registerFieldSearchCallback(client: EditorClient, callback: (searchText: string, inputSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardFieldOption[]>): string;
|
|
10
|
+
static registerUserSearchCallback(client: EditorClient, callback: (searchText: string, inputSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardUserData[]>): string;
|
|
10
11
|
private static registerDependencyMapping;
|
|
11
12
|
/**
|
|
12
13
|
* Register a card integration.
|
|
@@ -26,6 +26,14 @@ class LucidCardIntegrationRegistry {
|
|
|
26
26
|
});
|
|
27
27
|
return name;
|
|
28
28
|
}
|
|
29
|
+
static registerUserSearchCallback(client, callback) {
|
|
30
|
+
const name = LucidCardIntegrationRegistry.nextHookName();
|
|
31
|
+
client.registerAction(name, async ({ 'i': inputSoFar, 's': searchText }) => {
|
|
32
|
+
const result = await callback(searchText, new Map(inputSoFar));
|
|
33
|
+
return result.map((userData) => (0, cardintegrationdefinitions_1.serializeCardUserData)(userData));
|
|
34
|
+
});
|
|
35
|
+
return name;
|
|
36
|
+
}
|
|
29
37
|
static registerDependencyMapping(client, cardIntegration, serialized) {
|
|
30
38
|
if (cardIntegration.showDependencyMapping) {
|
|
31
39
|
serialized['sdm'] = true;
|
|
@@ -140,6 +148,8 @@ class LucidCardIntegrationRegistry {
|
|
|
140
148
|
? [...cardIntegration.fieldConfiguration.fieldValueSearchCallbacks.entries()]
|
|
141
149
|
: undefined,
|
|
142
150
|
},
|
|
151
|
+
'subn': cardIntegration.searchUserByName,
|
|
152
|
+
'usc': cardIntegration.userSearchCallback,
|
|
143
153
|
'gdc': getDefaultConfigActionName,
|
|
144
154
|
'i': showIntroActionName,
|
|
145
155
|
};
|
|
@@ -20,6 +20,7 @@ export declare const isSerializedDataSourceProperties: (subject: unknown) => sub
|
|
|
20
20
|
SourceForeignKeys: (x: unknown) => x is import("../../guards").DestructureGuardedTypeObj<{
|
|
21
21
|
Id: typeof isString;
|
|
22
22
|
SourceFields: (p1: unknown) => p1 is string[];
|
|
23
|
+
RelationshipType: (x: unknown) => x is string | undefined;
|
|
23
24
|
OutwardLabel: typeof isString;
|
|
24
25
|
InwardLabel: typeof isString;
|
|
25
26
|
}>[] | null | undefined;
|
|
@@ -57,8 +57,10 @@ export declare const isSerializedImportedDataSource: (subject: unknown) => subje
|
|
|
57
57
|
SourceConfig: typeof isObject;
|
|
58
58
|
}> | null | undefined;
|
|
59
59
|
SourceForeignKeys: (x: unknown) => x is import("../../guards").DestructureGuardedTypeObj<{
|
|
60
|
+
/** @ignore until spreadsheet integration is ready for launch (CHART-51946) */
|
|
60
61
|
Id: typeof isString;
|
|
61
62
|
SourceFields: (p1: unknown) => p1 is string[];
|
|
63
|
+
RelationshipType: (x: unknown) => x is string | undefined;
|
|
62
64
|
OutwardLabel: typeof isString;
|
|
63
65
|
InwardLabel: typeof isString;
|
|
64
66
|
}>[] | null | undefined;
|
|
@@ -95,8 +97,10 @@ export declare const isSerializedPreviewData: (subject: unknown) => subject is i
|
|
|
95
97
|
SourceConfig: typeof isObject;
|
|
96
98
|
}> | null | undefined;
|
|
97
99
|
SourceForeignKeys: (x: unknown) => x is import("../../guards").DestructureGuardedTypeObj<{
|
|
100
|
+
/** @ignore until spreadsheet integration is ready for launch (CHART-51946) */
|
|
98
101
|
Id: typeof isString;
|
|
99
102
|
SourceFields: (p1: unknown) => p1 is string[];
|
|
103
|
+
RelationshipType: (x: unknown) => x is string | undefined;
|
|
100
104
|
OutwardLabel: typeof isString;
|
|
101
105
|
InwardLabel: typeof isString;
|
|
102
106
|
}>[] | null | undefined;
|
|
@@ -2,6 +2,7 @@ import { isString } from '../../checks';
|
|
|
2
2
|
export type SerializedSourceForeignKey = {
|
|
3
3
|
'Id': string;
|
|
4
4
|
'SourceFields': string[];
|
|
5
|
+
'RelationshipType'?: string | undefined;
|
|
5
6
|
'Represents'?: string | null | undefined;
|
|
6
7
|
'OutwardLabel': string;
|
|
7
8
|
'InwardLabel': string;
|
|
@@ -14,6 +15,7 @@ export type SerializedSourceForeignKey = {
|
|
|
14
15
|
export declare const isSerializedSourceForeignKey: (subject: unknown) => subject is import("../../guards").DestructureGuardedTypeObj<{
|
|
15
16
|
Id: typeof isString;
|
|
16
17
|
SourceFields: (p1: unknown) => p1 is string[];
|
|
18
|
+
RelationshipType: (x: unknown) => x is string | undefined;
|
|
17
19
|
OutwardLabel: typeof isString;
|
|
18
20
|
InwardLabel: typeof isString;
|
|
19
21
|
}>;
|
|
@@ -6,6 +6,7 @@ const validators_1 = require("../../validators/validators");
|
|
|
6
6
|
exports.isSerializedSourceForeignKey = (0, validators_1.objectValidator)({
|
|
7
7
|
'Id': checks_1.isString,
|
|
8
8
|
'SourceFields': (0, validators_1.arrayValidator)(checks_1.isString),
|
|
9
|
+
'RelationshipType': (0, validators_1.option)(checks_1.isString),
|
|
9
10
|
'OutwardLabel': checks_1.isString,
|
|
10
11
|
'InwardLabel': checks_1.isString,
|
|
11
12
|
});
|
|
@@ -2,6 +2,7 @@ import { SerializedSourceForeignKey } from './serializedsourceforeignkey';
|
|
|
2
2
|
export type SourceForeignKey = {
|
|
3
3
|
'id': string;
|
|
4
4
|
'sourceFields': string[];
|
|
5
|
+
'relationshipType'?: string | undefined;
|
|
5
6
|
'represents'?: string | undefined;
|
|
6
7
|
'outwardLabel': string;
|
|
7
8
|
'inwardLabel': string;
|
|
@@ -5,6 +5,7 @@ function serializeSourceForeignKey(foreignKey) {
|
|
|
5
5
|
return {
|
|
6
6
|
'Id': foreignKey.id,
|
|
7
7
|
'SourceFields': foreignKey.sourceFields,
|
|
8
|
+
'RelationshipType': foreignKey.relationshipType,
|
|
8
9
|
'Represents': foreignKey.represents,
|
|
9
10
|
'OutwardLabel': foreignKey.outwardLabel,
|
|
10
11
|
'InwardLabel': foreignKey.inwardLabel,
|
|
@@ -16,6 +17,7 @@ function deserializeSourceForeignKey(foreignKey) {
|
|
|
16
17
|
return {
|
|
17
18
|
'id': foreignKey['Id'],
|
|
18
19
|
'sourceFields': foreignKey['SourceFields'],
|
|
20
|
+
'relationshipType': foreignKey['RelationshipType'],
|
|
19
21
|
'represents': foreignKey['Represents'] === null ? undefined : foreignKey['Represents'],
|
|
20
22
|
'outwardLabel': foreignKey['OutwardLabel'],
|
|
21
23
|
'inwardLabel': foreignKey['InwardLabel'],
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { CollectionEnumFieldType, SerializedCollectionEnumFieldType } from './collectionenumfieldtype';
|
|
2
|
+
import { DeserializedMapEnumFieldType, SerializedMapEnumFieldType } from './deserializedmapenumfieldtype';
|
|
2
3
|
import { FieldTypeArray, SerializedFieldTypeArray } from './fieldtypearray';
|
|
3
4
|
import { LiteralFieldType, SerializedLiteralFieldType } from './literalfieldtype';
|
|
4
5
|
import { NDimensionalFieldTypeArray, SerializedNDimensionalFieldTypeArray } from './ndimensionalfieldtypearray';
|
|
5
6
|
import { ScalarFieldTypeEnum } from './scalarfieldtype';
|
|
6
7
|
export type AnyFieldTypeArrayDefinition = FieldTypeArray | NDimensionalFieldTypeArray;
|
|
7
|
-
export type BaseFieldTypeDefinition = ScalarFieldTypeEnum | LiteralFieldType | FieldTypeArray<any> | NDimensionalFieldTypeArray | CollectionEnumFieldType;
|
|
8
|
-
export type SerializedBaseFieldTypeDefinition = ScalarFieldTypeEnum | SerializedLiteralFieldType | SerializedFieldTypeArray | SerializedNDimensionalFieldTypeArray | SerializedCollectionEnumFieldType;
|
|
8
|
+
export type BaseFieldTypeDefinition = ScalarFieldTypeEnum | LiteralFieldType | FieldTypeArray<any> | NDimensionalFieldTypeArray | CollectionEnumFieldType | DeserializedMapEnumFieldType;
|
|
9
|
+
export type SerializedBaseFieldTypeDefinition = ScalarFieldTypeEnum | SerializedLiteralFieldType | SerializedFieldTypeArray | SerializedNDimensionalFieldTypeArray | SerializedCollectionEnumFieldType | SerializedMapEnumFieldType;
|
|
9
10
|
export declare function isBaseFieldTypeDefinition(fieldType: any): fieldType is BaseFieldTypeDefinition;
|
|
10
11
|
export declare function serializeBaseFieldTypeDefinition(baseFieldType: BaseFieldTypeDefinition): SerializedBaseFieldTypeDefinition;
|
|
11
12
|
export declare function deserializeBaseFieldTypeDefinition(baseFieldType: SerializedBaseFieldTypeDefinition): BaseFieldTypeDefinition;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.isSerializedBaseFieldTypeDefinition = exports.deserializeBaseFieldTypeDefinition = exports.serializeBaseFieldTypeDefinition = exports.isBaseFieldTypeDefinition = void 0;
|
|
4
4
|
const checks_1 = require("../../checks");
|
|
5
5
|
const collectionenumfieldtype_1 = require("./collectionenumfieldtype");
|
|
6
|
+
const deserializedmapenumfieldtype_1 = require("./deserializedmapenumfieldtype");
|
|
6
7
|
const fieldtypearray_1 = require("./fieldtypearray");
|
|
7
8
|
const literalfieldtype_1 = require("./literalfieldtype");
|
|
8
9
|
const ndimensionalfieldtypearray_1 = require("./ndimensionalfieldtypearray");
|
|
@@ -12,7 +13,8 @@ function isBaseFieldTypeDefinition(fieldType) {
|
|
|
12
13
|
(0, literalfieldtype_1.isLiteralFieldType)(fieldType) ||
|
|
13
14
|
fieldType instanceof fieldtypearray_1.FieldTypeArray ||
|
|
14
15
|
fieldType instanceof ndimensionalfieldtypearray_1.NDimensionalFieldTypeArray ||
|
|
15
|
-
(0, collectionenumfieldtype_1.isCollectionEnumFieldType)(fieldType)
|
|
16
|
+
(0, collectionenumfieldtype_1.isCollectionEnumFieldType)(fieldType) ||
|
|
17
|
+
(0, deserializedmapenumfieldtype_1.isDeserializedMapEnumFieldType)(fieldType));
|
|
16
18
|
}
|
|
17
19
|
exports.isBaseFieldTypeDefinition = isBaseFieldTypeDefinition;
|
|
18
20
|
function serializeBaseFieldTypeDefinition(baseFieldType) {
|
|
@@ -23,7 +25,8 @@ function serializeBaseFieldTypeDefinition(baseFieldType) {
|
|
|
23
25
|
if (baseFieldType instanceof literalfieldtype_1.LiteralFieldType ||
|
|
24
26
|
baseFieldType instanceof fieldtypearray_1.FieldTypeArray ||
|
|
25
27
|
baseFieldType instanceof ndimensionalfieldtypearray_1.NDimensionalFieldTypeArray ||
|
|
26
|
-
baseFieldType instanceof collectionenumfieldtype_1.CollectionEnumFieldType
|
|
28
|
+
baseFieldType instanceof collectionenumfieldtype_1.CollectionEnumFieldType ||
|
|
29
|
+
baseFieldType instanceof deserializedmapenumfieldtype_1.DeserializedMapEnumFieldType) {
|
|
27
30
|
return baseFieldType.toJSON();
|
|
28
31
|
}
|
|
29
32
|
return baseFieldType;
|
|
@@ -42,6 +45,9 @@ function deserializeBaseFieldTypeDefinition(baseFieldType) {
|
|
|
42
45
|
if ((0, ndimensionalfieldtypearray_1.isSerializedNDimensionalFieldTypeArray)(baseFieldType)) {
|
|
43
46
|
return (0, ndimensionalfieldtypearray_1.deserializeNDimensionalFieldTypeArray)(baseFieldType);
|
|
44
47
|
}
|
|
48
|
+
if ((0, deserializedmapenumfieldtype_1.isSerializedMapEnumFieldType)(baseFieldType)) {
|
|
49
|
+
return deserializedmapenumfieldtype_1.DeserializedMapEnumFieldType.fromJSON(baseFieldType);
|
|
50
|
+
}
|
|
45
51
|
return baseFieldType;
|
|
46
52
|
}
|
|
47
53
|
exports.deserializeBaseFieldTypeDefinition = deserializeBaseFieldTypeDefinition;
|
|
@@ -50,6 +56,7 @@ function isSerializedBaseFieldTypeDefinition(definition) {
|
|
|
50
56
|
(0, literalfieldtype_1.isSerializedLiteralFieldType)(definition) ||
|
|
51
57
|
(0, collectionenumfieldtype_1.isSerializedCollectionEnumFieldType)(definition) ||
|
|
52
58
|
(0, fieldtypearray_1.isSerializedFieldTypeArray)(definition, isSerializedBaseFieldTypeDefinition) ||
|
|
53
|
-
(0, ndimensionalfieldtypearray_1.isSerializedNDimensionalFieldTypeArray)(definition)
|
|
59
|
+
(0, ndimensionalfieldtypearray_1.isSerializedNDimensionalFieldTypeArray)(definition) ||
|
|
60
|
+
(0, deserializedmapenumfieldtype_1.isSerializedMapEnumFieldType)(definition));
|
|
54
61
|
}
|
|
55
62
|
exports.isSerializedBaseFieldTypeDefinition = isSerializedBaseFieldTypeDefinition;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare class DeserializedMapEnumFieldType {
|
|
2
|
+
readonly validEntries: ReadonlyMap<EnumKeyType, DeserializedMapEnumFieldTypeEntry>;
|
|
3
|
+
constructor(validEntries: ReadonlyMap<EnumKeyType, DeserializedMapEnumFieldTypeEntry>);
|
|
4
|
+
toJSON(): SerializedMapEnumFieldType;
|
|
5
|
+
static fromJSON(val: SerializedMapEnumFieldType): DeserializedMapEnumFieldType;
|
|
6
|
+
}
|
|
7
|
+
export declare function isDeserializedMapEnumFieldType(val: unknown): val is DeserializedMapEnumFieldType;
|
|
8
|
+
export type SerializedMapEnumFieldType = {
|
|
9
|
+
'ValidItems': SerializedEnumEntry[];
|
|
10
|
+
};
|
|
11
|
+
export declare function isSerializedMapEnumFieldType(fieldType: any): fieldType is SerializedMapEnumFieldType;
|
|
12
|
+
export interface DeserializedMapEnumFieldTypeEntry {
|
|
13
|
+
name?: string | null;
|
|
14
|
+
description?: string | null;
|
|
15
|
+
color?: string | null;
|
|
16
|
+
iconUrl?: string | null;
|
|
17
|
+
}
|
|
18
|
+
export interface SerializedEnumEntry {
|
|
19
|
+
'Id': EnumKeyType;
|
|
20
|
+
'Name'?: string | undefined | null;
|
|
21
|
+
'Description'?: string | undefined | null;
|
|
22
|
+
'Color'?: string | undefined | null;
|
|
23
|
+
'IconUrl'?: string | undefined | null;
|
|
24
|
+
}
|
|
25
|
+
export declare function isSerializedEnumEntry(entry: any): entry is SerializedEnumEntry;
|
|
26
|
+
export declare function serializeEnumEntry(id: EnumKeyType, entry: DeserializedMapEnumFieldTypeEntry): SerializedEnumEntry;
|
|
27
|
+
export declare function deserializeEnumEntry(entry: SerializedEnumEntry): [EnumKeyType, DeserializedMapEnumFieldTypeEntry];
|
|
28
|
+
export type EnumKeyType = string | number;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deserializeEnumEntry = exports.serializeEnumEntry = exports.isSerializedEnumEntry = exports.isSerializedMapEnumFieldType = exports.isDeserializedMapEnumFieldType = exports.DeserializedMapEnumFieldType = void 0;
|
|
4
|
+
const checks_1 = require("../../checks");
|
|
5
|
+
const validators_1 = require("../../validators/validators");
|
|
6
|
+
class DeserializedMapEnumFieldType {
|
|
7
|
+
constructor(validEntries) {
|
|
8
|
+
this.validEntries = validEntries;
|
|
9
|
+
}
|
|
10
|
+
toJSON() {
|
|
11
|
+
return {
|
|
12
|
+
'ValidItems': [...this.validEntries.entries()].map(([key, value]) => serializeEnumEntry(key, value)),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
static fromJSON(val) {
|
|
16
|
+
return new DeserializedMapEnumFieldType(new Map(val['ValidItems'].map(deserializeEnumEntry)));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.DeserializedMapEnumFieldType = DeserializedMapEnumFieldType;
|
|
20
|
+
function isDeserializedMapEnumFieldType(val) {
|
|
21
|
+
return val instanceof DeserializedMapEnumFieldType;
|
|
22
|
+
}
|
|
23
|
+
exports.isDeserializedMapEnumFieldType = isDeserializedMapEnumFieldType;
|
|
24
|
+
function isSerializedMapEnumFieldType(fieldType) {
|
|
25
|
+
return ((0, checks_1.isObjectUnsafe)(fieldType) &&
|
|
26
|
+
Array.isArray(fieldType['ValidItems']) &&
|
|
27
|
+
fieldType['ValidItems'].every(isSerializedEnumEntry));
|
|
28
|
+
}
|
|
29
|
+
exports.isSerializedMapEnumFieldType = isSerializedMapEnumFieldType;
|
|
30
|
+
function isSerializedEnumEntry(entry) {
|
|
31
|
+
return ((0, checks_1.isObjectUnsafe)(entry) &&
|
|
32
|
+
(0, checks_1.isString)(entry['Id']) &&
|
|
33
|
+
(0, validators_1.nullableOption)(checks_1.isString)(entry['Name']) &&
|
|
34
|
+
(0, validators_1.nullableOption)(checks_1.isString)(entry['Description']) &&
|
|
35
|
+
(0, validators_1.nullableOption)(checks_1.isString)(entry['Color']) &&
|
|
36
|
+
(0, validators_1.nullableOption)(checks_1.isString)(entry['IconUrl']));
|
|
37
|
+
}
|
|
38
|
+
exports.isSerializedEnumEntry = isSerializedEnumEntry;
|
|
39
|
+
function serializeEnumEntry(id, entry) {
|
|
40
|
+
return {
|
|
41
|
+
'Id': id,
|
|
42
|
+
'Name': entry.name,
|
|
43
|
+
'Description': entry.description,
|
|
44
|
+
'Color': entry.color,
|
|
45
|
+
'IconUrl': entry.iconUrl,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
exports.serializeEnumEntry = serializeEnumEntry;
|
|
49
|
+
function deserializeEnumEntry(entry) {
|
|
50
|
+
return [
|
|
51
|
+
entry['Id'],
|
|
52
|
+
{
|
|
53
|
+
name: entry['Name'],
|
|
54
|
+
description: entry['Description'],
|
|
55
|
+
color: entry['Color'],
|
|
56
|
+
iconUrl: entry['IconUrl'],
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
exports.deserializeEnumEntry = deserializeEnumEntry;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CollectionEnumFieldType, SerializedCollectionEnumFieldType } from './collectionenumfieldtype';
|
|
2
|
+
import { DeserializedMapEnumFieldType, SerializedMapEnumFieldType } from './deserializedmapenumfieldtype';
|
|
2
3
|
import { LiteralFieldType, SerializedLiteralFieldType } from './literalfieldtype';
|
|
3
4
|
import { ScalarFieldTypeEnum } from './scalarfieldtype';
|
|
4
5
|
export declare abstract class BaseFieldTypeArray<Type> {
|
|
@@ -9,10 +10,10 @@ export declare abstract class BaseFieldTypeArray<Type> {
|
|
|
9
10
|
getInnerNonArrayTypes(): Exclude<Type, BaseFieldTypeArray<Type>>[];
|
|
10
11
|
toJSON(): SerializedFieldTypeArray;
|
|
11
12
|
}
|
|
12
|
-
export type FieldTypeArraySubTypes = ScalarFieldTypeEnum | CollectionEnumFieldType | LiteralFieldType | FieldTypeArray<any>;
|
|
13
|
-
export type SerializedFieldTypeArraySubTypes = ScalarFieldTypeEnum | SerializedLiteralFieldType | SerializedFieldTypeArray | SerializedCollectionEnumFieldType;
|
|
13
|
+
export type FieldTypeArraySubTypes = ScalarFieldTypeEnum | CollectionEnumFieldType | DeserializedMapEnumFieldType | LiteralFieldType | FieldTypeArray<any>;
|
|
14
|
+
export type SerializedFieldTypeArraySubTypes = ScalarFieldTypeEnum | SerializedLiteralFieldType | SerializedFieldTypeArray | SerializedCollectionEnumFieldType | SerializedMapEnumFieldType;
|
|
14
15
|
export declare class FieldTypeArray<SubTypes extends FieldTypeArraySubTypes = FieldTypeArraySubTypes> extends BaseFieldTypeArray<SubTypes> {
|
|
15
|
-
protected serializeType(t: FieldTypeArraySubTypes): string | SerializedCollectionEnumFieldType | ScalarFieldTypeEnum | SerializedFieldTypeArray;
|
|
16
|
+
protected serializeType(t: FieldTypeArraySubTypes): string | SerializedCollectionEnumFieldType | ScalarFieldTypeEnum | SerializedMapEnumFieldType | SerializedFieldTypeArray;
|
|
16
17
|
}
|
|
17
18
|
export type SerializedFieldTypeArray = {
|
|
18
19
|
'ND': false;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.deserializeFieldTypeArray = exports.isSerializedFieldTypeArray = exports.FieldTypeArray = exports.BaseFieldTypeArray = void 0;
|
|
4
4
|
const checks_1 = require("../../checks");
|
|
5
5
|
const collectionenumfieldtype_1 = require("./collectionenumfieldtype");
|
|
6
|
+
const deserializedmapenumfieldtype_1 = require("./deserializedmapenumfieldtype");
|
|
6
7
|
const literalfieldtype_1 = require("./literalfieldtype");
|
|
7
8
|
const scalarfieldtype_1 = require("./scalarfieldtype");
|
|
8
9
|
class BaseFieldTypeArray {
|
|
@@ -47,6 +48,9 @@ function deserializeFieldTypeArray(serializedFieldTypeArray) {
|
|
|
47
48
|
else if ((0, collectionenumfieldtype_1.isSerializedCollectionEnumFieldType)(t)) {
|
|
48
49
|
return (0, collectionenumfieldtype_1.deserializeCollectionEnumFieldType)(t);
|
|
49
50
|
}
|
|
51
|
+
else if ((0, deserializedmapenumfieldtype_1.isSerializedMapEnumFieldType)(t)) {
|
|
52
|
+
return deserializedmapenumfieldtype_1.DeserializedMapEnumFieldType.fromJSON(t);
|
|
53
|
+
}
|
|
50
54
|
else if ((0, checks_1.isObject)(t)) {
|
|
51
55
|
return deserializeFieldTypeArray(t);
|
|
52
56
|
}
|
|
@@ -4,6 +4,7 @@ exports.isSerializedFieldTypeDefinition = exports.deserializeFieldTypeDefinition
|
|
|
4
4
|
const checks_1 = require("../../checks");
|
|
5
5
|
const basefieldtypedefinition_1 = require("./basefieldtypedefinition");
|
|
6
6
|
const collectionenumfieldtype_1 = require("./collectionenumfieldtype");
|
|
7
|
+
const deserializedmapenumfieldtype_1 = require("./deserializedmapenumfieldtype");
|
|
7
8
|
const fieldtypearray_1 = require("./fieldtypearray");
|
|
8
9
|
const literalfieldtype_1 = require("./literalfieldtype");
|
|
9
10
|
const ndimensionalfieldtypearray_1 = require("./ndimensionalfieldtypearray");
|
|
@@ -17,6 +18,14 @@ function fieldTypesEqual(a, b, checkEnumCollectionId = true) {
|
|
|
17
18
|
if ((0, collectionenumfieldtype_1.isCollectionEnumFieldType)(a) && (0, collectionenumfieldtype_1.isCollectionEnumFieldType)(b)) {
|
|
18
19
|
return checkEnumCollectionId ? a.collectionId === b.collectionId : true;
|
|
19
20
|
}
|
|
21
|
+
if ((0, deserializedmapenumfieldtype_1.isDeserializedMapEnumFieldType)(a) && (0, deserializedmapenumfieldtype_1.isDeserializedMapEnumFieldType)(b)) {
|
|
22
|
+
for (const [key, value] of a.validEntries.entries()) {
|
|
23
|
+
if (!b.validEntries.has(key) || b.validEntries.get(key) !== value) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
20
29
|
a = (0, checks_1.isArray)(a) ? a : [a];
|
|
21
30
|
b = (0, checks_1.isArray)(b) ? b : [b];
|
|
22
31
|
const setA = new Set(a);
|