@deck.gl-community/graph-layers 9.2.0-beta.5 → 9.2.0-beta.8

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.
Files changed (44) hide show
  1. package/dist/core/graph-engine.d.ts +3 -2
  2. package/dist/core/graph-engine.d.ts.map +1 -1
  3. package/dist/core/graph-engine.js +1 -0
  4. package/dist/core/graph-engine.js.map +1 -1
  5. package/dist/graph-style-schema.cdn.js +1 -1
  6. package/dist/graph-style-schema.json +1 -1
  7. package/dist/index.cjs +307 -202
  8. package/dist/index.cjs.map +4 -4
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/layers/edge-attachment-helper.d.ts.map +1 -1
  13. package/dist/layers/edge-attachment-helper.js.map +1 -1
  14. package/dist/layers/graph-layer.d.ts +4 -3
  15. package/dist/layers/graph-layer.d.ts.map +1 -1
  16. package/dist/layers/graph-layer.js +11 -6
  17. package/dist/layers/graph-layer.js.map +1 -1
  18. package/dist/loaders/dot-graph-loader.js +1 -1
  19. package/dist/loaders/json-graph-loader.js +1 -1
  20. package/dist/style/graph-layer-stylesheet.d.ts +14 -5
  21. package/dist/style/graph-layer-stylesheet.d.ts.map +1 -1
  22. package/dist/style/graph-layer-stylesheet.js +9 -3
  23. package/dist/style/graph-layer-stylesheet.js.map +1 -1
  24. package/dist/style/graph-style-engine.d.ts +4 -4
  25. package/dist/style/graph-style-engine.d.ts.map +1 -1
  26. package/dist/style/graph-style-engine.js +4 -4
  27. package/dist/style/graph-style-engine.js.map +1 -1
  28. package/dist/style/graph-stylesheet-schema.d.ts +13211 -0
  29. package/dist/style/graph-stylesheet-schema.d.ts.map +1 -0
  30. package/dist/style/graph-stylesheet-schema.js +354 -0
  31. package/dist/style/graph-stylesheet-schema.js.map +1 -0
  32. package/package.json +2 -2
  33. package/src/core/graph-engine.ts +7 -2
  34. package/src/index.ts +2 -1
  35. package/src/layers/edge-attachment-helper.ts +2 -5
  36. package/src/layers/graph-layer.ts +25 -19
  37. package/src/style/graph-layer-stylesheet.ts +16 -9
  38. package/src/style/graph-style-engine.ts +21 -13
  39. package/src/style/graph-stylesheet-schema.ts +538 -0
  40. package/dist/style/graph-stylesheet.schema.d.ts +0 -311
  41. package/dist/style/graph-stylesheet.schema.d.ts.map +0 -1
  42. package/dist/style/graph-stylesheet.schema.js +0 -238
  43. package/dist/style/graph-stylesheet.schema.js.map +0 -1
  44. package/src/style/graph-stylesheet.schema.ts +0 -344
@@ -1,311 +0,0 @@
1
- import { z } from 'zod';
2
- /**
3
- * Supported scale identifiers for mapping data values to visual encodings.
4
- */
5
- export declare const GraphStyleScaleTypeEnum: z.ZodEnum<{
6
- linear: "linear";
7
- log: "log";
8
- pow: "pow";
9
- sqrt: "sqrt";
10
- quantize: "quantize";
11
- quantile: "quantile";
12
- ordinal: "ordinal";
13
- }>;
14
- /**
15
- * TypeScript union of {@link GraphStyleScaleTypeEnum} values.
16
- */
17
- export type GraphStyleScaleType = z.infer<typeof GraphStyleScaleTypeEnum>;
18
- /**
19
- * Configuration for data-driven style scaling. Supports deck.gl compatible numeric and
20
- * categorical scaling with optional d3-scale like parameters.
21
- */
22
- export declare const GraphStyleScaleSchema: z.ZodObject<{
23
- type: z.ZodOptional<z.ZodEnum<{
24
- linear: "linear";
25
- log: "log";
26
- pow: "pow";
27
- sqrt: "sqrt";
28
- quantize: "quantize";
29
- quantile: "quantile";
30
- ordinal: "ordinal";
31
- }>>;
32
- domain: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
33
- range: z.ZodOptional<z.ZodArray<z.ZodAny>>;
34
- clamp: z.ZodOptional<z.ZodBoolean>;
35
- nice: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber]>>;
36
- base: z.ZodOptional<z.ZodNumber>;
37
- exponent: z.ZodOptional<z.ZodNumber>;
38
- unknown: z.ZodOptional<z.ZodAny>;
39
- }, z.core.$strict>;
40
- /**
41
- * TypeScript view of {@link GraphStyleScaleSchema} after parsing.
42
- */
43
- export type GraphStyleScale = z.infer<typeof GraphStyleScaleSchema>;
44
- /**
45
- * Reference to node/edge attributes, optionally including fallback values and scale
46
- * configuration for data-driven styling.
47
- */
48
- export declare const GraphStyleAttributeReferenceSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
49
- attribute: z.ZodString;
50
- fallback: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>>;
51
- scale: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
52
- type: z.ZodOptional<z.ZodEnum<{
53
- linear: "linear";
54
- log: "log";
55
- pow: "pow";
56
- sqrt: "sqrt";
57
- quantize: "quantize";
58
- quantile: "quantile";
59
- ordinal: "ordinal";
60
- }>>;
61
- domain: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
62
- range: z.ZodOptional<z.ZodArray<z.ZodAny>>;
63
- clamp: z.ZodOptional<z.ZodBoolean>;
64
- nice: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber]>>;
65
- base: z.ZodOptional<z.ZodNumber>;
66
- exponent: z.ZodOptional<z.ZodNumber>;
67
- unknown: z.ZodOptional<z.ZodAny>;
68
- }, z.core.$strict>, z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>]>>;
69
- }, z.core.$strict>]>;
70
- /**
71
- * Parsed value produced by {@link GraphStyleAttributeReferenceSchema}.
72
- */
73
- export type GraphStyleAttributeReference = z.infer<typeof GraphStyleAttributeReferenceSchema>;
74
- /**
75
- * Primitive value allowed in stylesheet definitions. Supports literal values, attribute
76
- * references and imperative resolver functions.
77
- */
78
- export declare const GraphStyleLeafValueSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
79
- attribute: z.ZodString;
80
- fallback: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>>;
81
- scale: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
82
- type: z.ZodOptional<z.ZodEnum<{
83
- linear: "linear";
84
- log: "log";
85
- pow: "pow";
86
- sqrt: "sqrt";
87
- quantize: "quantize";
88
- quantile: "quantile";
89
- ordinal: "ordinal";
90
- }>>;
91
- domain: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
92
- range: z.ZodOptional<z.ZodArray<z.ZodAny>>;
93
- clamp: z.ZodOptional<z.ZodBoolean>;
94
- nice: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber]>>;
95
- base: z.ZodOptional<z.ZodNumber>;
96
- exponent: z.ZodOptional<z.ZodNumber>;
97
- unknown: z.ZodOptional<z.ZodAny>;
98
- }, z.core.$strict>, z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>]>>;
99
- }, z.core.$strict>]>, z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>]>;
100
- /**
101
- * Union of literal, attribute-driven and functional style values.
102
- */
103
- export type GraphStyleLeafValue = z.infer<typeof GraphStyleLeafValueSchema>;
104
- /**
105
- * Mapping of interaction or application state keys to leaf style values.
106
- */
107
- export declare const GraphStyleStateMapSchema: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
108
- attribute: z.ZodString;
109
- fallback: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>>;
110
- scale: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
111
- type: z.ZodOptional<z.ZodEnum<{
112
- linear: "linear";
113
- log: "log";
114
- pow: "pow";
115
- sqrt: "sqrt";
116
- quantize: "quantize";
117
- quantile: "quantile";
118
- ordinal: "ordinal";
119
- }>>;
120
- domain: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
121
- range: z.ZodOptional<z.ZodArray<z.ZodAny>>;
122
- clamp: z.ZodOptional<z.ZodBoolean>;
123
- nice: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber]>>;
124
- base: z.ZodOptional<z.ZodNumber>;
125
- exponent: z.ZodOptional<z.ZodNumber>;
126
- unknown: z.ZodOptional<z.ZodAny>;
127
- }, z.core.$strict>, z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>]>>;
128
- }, z.core.$strict>]>, z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>]>>;
129
- /**
130
- * Style value that may be either a simple leaf value or a keyed map of overrides.
131
- */
132
- export declare const GraphStyleValueSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
133
- attribute: z.ZodString;
134
- fallback: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>>;
135
- scale: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
136
- type: z.ZodOptional<z.ZodEnum<{
137
- linear: "linear";
138
- log: "log";
139
- pow: "pow";
140
- sqrt: "sqrt";
141
- quantize: "quantize";
142
- quantile: "quantile";
143
- ordinal: "ordinal";
144
- }>>;
145
- domain: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
146
- range: z.ZodOptional<z.ZodArray<z.ZodAny>>;
147
- clamp: z.ZodOptional<z.ZodBoolean>;
148
- nice: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber]>>;
149
- base: z.ZodOptional<z.ZodNumber>;
150
- exponent: z.ZodOptional<z.ZodNumber>;
151
- unknown: z.ZodOptional<z.ZodAny>;
152
- }, z.core.$strict>, z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>]>>;
153
- }, z.core.$strict>]>, z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>]>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
154
- attribute: z.ZodString;
155
- fallback: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>]>>;
156
- scale: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
157
- type: z.ZodOptional<z.ZodEnum<{
158
- linear: "linear";
159
- log: "log";
160
- pow: "pow";
161
- sqrt: "sqrt";
162
- quantize: "quantize";
163
- quantile: "quantile";
164
- ordinal: "ordinal";
165
- }>>;
166
- domain: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
167
- range: z.ZodOptional<z.ZodArray<z.ZodAny>>;
168
- clamp: z.ZodOptional<z.ZodBoolean>;
169
- nice: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber]>>;
170
- base: z.ZodOptional<z.ZodNumber>;
171
- exponent: z.ZodOptional<z.ZodNumber>;
172
- unknown: z.ZodOptional<z.ZodAny>;
173
- }, z.core.$strict>, z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>]>>;
174
- }, z.core.$strict>]>, z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>]>>]>;
175
- /**
176
- * Parsed style property value that may include state overrides.
177
- */
178
- export type GraphStyleValue = z.infer<typeof GraphStyleValueSchema>;
179
- /**
180
- * Translation table between graph style properties and the underlying deck.gl accessors for
181
- * each supported style primitive type.
182
- */
183
- export declare const GRAPH_DECKGL_ACCESSOR_MAP: {
184
- readonly circle: {
185
- readonly getFillColor: "fill";
186
- readonly getLineColor: "stroke";
187
- readonly getLineWidth: "strokeWidth";
188
- readonly getRadius: "radius";
189
- readonly getOffset: "offset";
190
- readonly opacity: "opacity";
191
- };
192
- readonly rectangle: {
193
- readonly getWidth: "width";
194
- readonly getHeight: "height";
195
- readonly getFillColor: "fill";
196
- readonly getLineColor: "stroke";
197
- readonly getLineWidth: "strokeWidth";
198
- readonly getOffset: "offset";
199
- readonly opacity: "opacity";
200
- };
201
- readonly 'rounded-rectangle': {
202
- readonly getCornerRadius: "cornerRadius";
203
- readonly getRadius: "radius";
204
- readonly getWidth: "width";
205
- readonly getHeight: "height";
206
- readonly getFillColor: "fill";
207
- readonly getLineColor: "stroke";
208
- readonly getLineWidth: "strokeWidth";
209
- readonly getOffset: "offset";
210
- readonly opacity: "opacity";
211
- };
212
- readonly 'path-rounded-rectangle': {
213
- readonly getWidth: "width";
214
- readonly getHeight: "height";
215
- readonly getFillColor: "fill";
216
- readonly getLineColor: "stroke";
217
- readonly getLineWidth: "strokeWidth";
218
- readonly getCornerRadius: "cornerRadius";
219
- readonly getOffset: "offset";
220
- readonly opacity: "opacity";
221
- };
222
- readonly label: {
223
- readonly getColor: "color";
224
- readonly getText: "text";
225
- readonly getSize: "fontSize";
226
- readonly getTextAnchor: "textAnchor";
227
- readonly getAlignmentBaseline: "alignmentBaseline";
228
- readonly getAngle: "angle";
229
- readonly scaleWithZoom: "scaleWithZoom";
230
- readonly textMaxWidth: "textMaxWidth";
231
- readonly textWordBreak: "textWordBreak";
232
- readonly textSizeMinPixels: "textSizeMinPixels";
233
- readonly getOffset: "offset";
234
- readonly opacity: "opacity";
235
- };
236
- readonly marker: {
237
- readonly getColor: "fill";
238
- readonly getSize: "size";
239
- readonly getMarker: "marker";
240
- readonly scaleWithZoom: "scaleWithZoom";
241
- readonly getOffset: "offset";
242
- readonly opacity: "opacity";
243
- };
244
- readonly Edge: {
245
- readonly getColor: "stroke";
246
- readonly getWidth: "strokeWidth";
247
- };
248
- readonly edge: {
249
- readonly getColor: "stroke";
250
- readonly getWidth: "strokeWidth";
251
- };
252
- readonly 'edge-label': {
253
- readonly getColor: "color";
254
- readonly getText: "text";
255
- readonly getSize: "fontSize";
256
- readonly getTextAnchor: "textAnchor";
257
- readonly getAlignmentBaseline: "alignmentBaseline";
258
- readonly scaleWithZoom: "scaleWithZoom";
259
- readonly textMaxWidth: "textMaxWidth";
260
- readonly textWordBreak: "textWordBreak";
261
- readonly textSizeMinPixels: "textSizeMinPixels";
262
- };
263
- readonly flow: {
264
- readonly getColor: "color";
265
- readonly getWidth: "width";
266
- readonly getSpeed: "speed";
267
- readonly getTailLength: "tailLength";
268
- };
269
- readonly arrow: {
270
- readonly getColor: "color";
271
- readonly getSize: "size";
272
- readonly getOffset: "offset";
273
- };
274
- };
275
- /**
276
- * Supported graph style primitive identifiers (e.g. `circle`, `edge`).
277
- */
278
- export type GraphStyleType = keyof typeof GRAPH_DECKGL_ACCESSOR_MAP;
279
- /**
280
- * CSS-like pseudo selector supported by the stylesheet for state overrides.
281
- */
282
- export type GraphStyleSelector = `:${string}`;
283
- type GraphStylePropertyKey<TType extends GraphStyleType> = Extract<(typeof GRAPH_DECKGL_ACCESSOR_MAP)[TType][keyof (typeof GRAPH_DECKGL_ACCESSOR_MAP)[TType]], PropertyKey>;
284
- type GraphStyleStatefulValue<TValue> = TValue | {
285
- [state: string]: TValue;
286
- };
287
- type GraphStylePropertyMap<TType extends GraphStyleType, TValue> = Partial<Record<GraphStylePropertyKey<TType>, GraphStyleStatefulValue<TValue>>>;
288
- /**
289
- * Typed representation of a stylesheet definition for a specific graph primitive.
290
- */
291
- export type GraphStylesheet<TType extends GraphStyleType = GraphStyleType, TValue = GraphStyleLeafValue> = {
292
- type: TType;
293
- } & GraphStylePropertyMap<TType, TValue> & Partial<Record<GraphStyleSelector, GraphStylePropertyMap<TType, TValue>>>;
294
- /**
295
- * Schema that validates stylesheet definitions for all graph style primitives.
296
- */
297
- export declare const GraphStylesheetSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
298
- [x: string]: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
299
- }, z.core.$catchall<z.ZodUnknown>>, ...z.ZodObject<{
300
- [x: string]: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
301
- }, z.core.$catchall<z.ZodUnknown>>[]], "type">;
302
- /**
303
- * Runtime type accepted by {@link GraphStylesheetSchema} before validation.
304
- */
305
- export type GraphStylesheetInput = z.input<typeof GraphStylesheetSchema>;
306
- /**
307
- * Type returned by {@link GraphStylesheetSchema} after successful parsing.
308
- */
309
- export type GraphStylesheetParsed = z.infer<typeof GraphStylesheetSchema>;
310
- export {};
311
- //# sourceMappingURL=graph-stylesheet.schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph-stylesheet.schema.d.ts","sourceRoot":"","sources":["../../src/style/graph-stylesheet.schema.ts"],"names":[],"mappings":"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"}
@@ -1,238 +0,0 @@
1
- // deck.gl-community
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
- /* eslint-disable no-continue */
5
- import { z } from 'zod';
6
- const GraphStylePrimitiveSchema = z.union([
7
- z.string(),
8
- z.number(),
9
- z.boolean(),
10
- z.null(),
11
- z.array(z.union([z.string(), z.number(), z.boolean(), z.null()]))
12
- ]);
13
- const GraphStyleFunctionSchema = z.custom((value) => typeof value === 'function', {
14
- message: 'Style functions must be callable.'
15
- });
16
- /**
17
- * Supported scale identifiers for mapping data values to visual encodings.
18
- */
19
- export const GraphStyleScaleTypeEnum = z.enum([
20
- 'linear',
21
- 'log',
22
- 'pow',
23
- 'sqrt',
24
- 'quantize',
25
- 'quantile',
26
- 'ordinal'
27
- ]);
28
- /**
29
- * Configuration for data-driven style scaling. Supports deck.gl compatible numeric and
30
- * categorical scaling with optional d3-scale like parameters.
31
- */
32
- export const GraphStyleScaleSchema = z
33
- .object({
34
- type: GraphStyleScaleTypeEnum.optional(),
35
- domain: z.array(z.union([z.number(), z.string()])).optional(),
36
- range: z.array(z.any()).optional(),
37
- clamp: z.boolean().optional(),
38
- nice: z.union([z.boolean(), z.number()]).optional(),
39
- base: z.number().optional(),
40
- exponent: z.number().optional(),
41
- unknown: z.any().optional()
42
- })
43
- .strict();
44
- /**
45
- * Reference to node/edge attributes, optionally including fallback values and scale
46
- * configuration for data-driven styling.
47
- */
48
- export const GraphStyleAttributeReferenceSchema = z.union([
49
- z
50
- .string()
51
- .regex(/^@.+/, 'Attribute reference strings must start with "@" and include an attribute name.'),
52
- z
53
- .object({
54
- attribute: z.string().min(1, 'Attribute name is required.'),
55
- fallback: GraphStylePrimitiveSchema.optional(),
56
- scale: z.union([GraphStyleScaleSchema, GraphStyleFunctionSchema]).optional()
57
- })
58
- .strict()
59
- ]);
60
- /**
61
- * Primitive value allowed in stylesheet definitions. Supports literal values, attribute
62
- * references and imperative resolver functions.
63
- */
64
- export const GraphStyleLeafValueSchema = z.union([
65
- GraphStylePrimitiveSchema,
66
- GraphStyleAttributeReferenceSchema,
67
- GraphStyleFunctionSchema
68
- ]);
69
- const RESERVED_STATE_KEYS = new Set(['attribute', 'fallback', 'scale']);
70
- /**
71
- * Mapping of interaction or application state keys to leaf style values.
72
- */
73
- export const GraphStyleStateMapSchema = z.record(z
74
- .string()
75
- .refine((key) => !RESERVED_STATE_KEYS.has(key), 'State overrides must not use reserved keys.'), GraphStyleLeafValueSchema);
76
- /**
77
- * Style value that may be either a simple leaf value or a keyed map of overrides.
78
- */
79
- export const GraphStyleValueSchema = z.union([
80
- GraphStyleLeafValueSchema,
81
- GraphStyleStateMapSchema
82
- ]);
83
- const COMMON_DECKGL_PROPS = {
84
- getOffset: 'offset',
85
- opacity: 'opacity'
86
- };
87
- /**
88
- * Translation table between graph style properties and the underlying deck.gl accessors for
89
- * each supported style primitive type.
90
- */
91
- export const GRAPH_DECKGL_ACCESSOR_MAP = {
92
- circle: {
93
- ...COMMON_DECKGL_PROPS,
94
- getFillColor: 'fill',
95
- getLineColor: 'stroke',
96
- getLineWidth: 'strokeWidth',
97
- getRadius: 'radius'
98
- },
99
- rectangle: {
100
- ...COMMON_DECKGL_PROPS,
101
- getWidth: 'width',
102
- getHeight: 'height',
103
- getFillColor: 'fill',
104
- getLineColor: 'stroke',
105
- getLineWidth: 'strokeWidth'
106
- },
107
- 'rounded-rectangle': {
108
- ...COMMON_DECKGL_PROPS,
109
- getCornerRadius: 'cornerRadius',
110
- getRadius: 'radius',
111
- getWidth: 'width',
112
- getHeight: 'height',
113
- getFillColor: 'fill',
114
- getLineColor: 'stroke',
115
- getLineWidth: 'strokeWidth'
116
- },
117
- 'path-rounded-rectangle': {
118
- ...COMMON_DECKGL_PROPS,
119
- getWidth: 'width',
120
- getHeight: 'height',
121
- getFillColor: 'fill',
122
- getLineColor: 'stroke',
123
- getLineWidth: 'strokeWidth',
124
- getCornerRadius: 'cornerRadius'
125
- },
126
- label: {
127
- ...COMMON_DECKGL_PROPS,
128
- getColor: 'color',
129
- getText: 'text',
130
- getSize: 'fontSize',
131
- getTextAnchor: 'textAnchor',
132
- getAlignmentBaseline: 'alignmentBaseline',
133
- getAngle: 'angle',
134
- scaleWithZoom: 'scaleWithZoom',
135
- textMaxWidth: 'textMaxWidth',
136
- textWordBreak: 'textWordBreak',
137
- textSizeMinPixels: 'textSizeMinPixels'
138
- },
139
- marker: {
140
- ...COMMON_DECKGL_PROPS,
141
- getColor: 'fill',
142
- getSize: 'size',
143
- getMarker: 'marker',
144
- scaleWithZoom: 'scaleWithZoom'
145
- },
146
- Edge: {
147
- getColor: 'stroke',
148
- getWidth: 'strokeWidth'
149
- },
150
- edge: {
151
- getColor: 'stroke',
152
- getWidth: 'strokeWidth'
153
- },
154
- 'edge-label': {
155
- getColor: 'color',
156
- getText: 'text',
157
- getSize: 'fontSize',
158
- getTextAnchor: 'textAnchor',
159
- getAlignmentBaseline: 'alignmentBaseline',
160
- scaleWithZoom: 'scaleWithZoom',
161
- textMaxWidth: 'textMaxWidth',
162
- textWordBreak: 'textWordBreak',
163
- textSizeMinPixels: 'textSizeMinPixels'
164
- },
165
- flow: {
166
- getColor: 'color',
167
- getWidth: 'width',
168
- getSpeed: 'speed',
169
- getTailLength: 'tailLength'
170
- },
171
- arrow: {
172
- getColor: 'color',
173
- getSize: 'size',
174
- getOffset: 'offset'
175
- }
176
- };
177
- const GraphStyleSelectorKeySchema = z.string().regex(/^:[^\s]+/, 'Selectors must start with ":".');
178
- function createPropertiesSchema(keys) {
179
- const shape = keys.reduce((acc, key) => {
180
- acc[key] = GraphStyleValueSchema.optional();
181
- return acc;
182
- }, {});
183
- return z.object(shape).partial().strict();
184
- }
185
- const GraphStylesheetVariants = Object.entries(GRAPH_DECKGL_ACCESSOR_MAP).map(([type, accessors]) => {
186
- const propertyKeys = Object.values(accessors);
187
- const propertyKeySet = new Set(propertyKeys);
188
- const propertiesSchema = createPropertiesSchema(propertyKeys);
189
- const baseShape = {
190
- type: z.literal(type)
191
- };
192
- for (const key of propertyKeys) {
193
- baseShape[key] = GraphStyleValueSchema.optional();
194
- }
195
- return z
196
- .object(baseShape)
197
- .catchall(z.unknown())
198
- .superRefine((value, ctx) => {
199
- for (const key of Object.keys(value)) {
200
- if (key === 'type') {
201
- continue;
202
- }
203
- if (propertyKeySet.has(key)) {
204
- continue;
205
- }
206
- if (!key.startsWith(':')) {
207
- ctx.addIssue({
208
- code: z.ZodIssueCode.custom,
209
- path: [key],
210
- message: `Unknown style property "${key}".`
211
- });
212
- continue;
213
- }
214
- if (!GraphStyleSelectorKeySchema.safeParse(key).success) {
215
- ctx.addIssue({
216
- code: z.ZodIssueCode.custom,
217
- path: [key],
218
- message: 'Selectors must start with ":".'
219
- });
220
- continue;
221
- }
222
- const selectorResult = propertiesSchema.safeParse(value[key]);
223
- if (!selectorResult.success) {
224
- for (const issue of selectorResult.error.issues) {
225
- ctx.addIssue({
226
- ...issue,
227
- path: [key, ...(issue.path ?? [])]
228
- });
229
- }
230
- }
231
- }
232
- });
233
- });
234
- /**
235
- * Schema that validates stylesheet definitions for all graph style primitives.
236
- */
237
- export const GraphStylesheetSchema = z.discriminatedUnion('type', GraphStylesheetVariants);
238
- //# sourceMappingURL=graph-stylesheet.schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph-stylesheet.schema.js","sourceRoot":"","sources":["../../src/style/graph-stylesheet.schema.ts"],"names":[],"mappings":"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"}