@cratis/components 4.27.0 → 4.28.0

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 (52) hide show
  1. package/compat-manifest.json +11 -11
  2. package/dist/esm/SchemaEditor/SchemaEditor.d.ts +4 -1
  3. package/dist/esm/SchemaEditor/SchemaEditor.d.ts.map +1 -1
  4. package/dist/esm/SchemaEditor/SchemaEditor.js.map +1 -1
  5. package/dist/esm/SchemaEditor/SchemaEditorLabels.d.ts +6 -0
  6. package/dist/esm/SchemaEditor/SchemaEditorLabels.d.ts.map +1 -1
  7. package/dist/esm/SchemaEditor/SchemaEditorLabels.js.map +1 -1
  8. package/dist/esm/SchemaEditor/Tree/GeneratedToggle.d.ts +11 -0
  9. package/dist/esm/SchemaEditor/Tree/GeneratedToggle.d.ts.map +1 -0
  10. package/dist/esm/SchemaEditor/Tree/GeneratedToggle.js +24 -0
  11. package/dist/esm/SchemaEditor/Tree/GeneratedToggle.js.map +1 -0
  12. package/dist/esm/SchemaEditor/Tree/Property.d.ts +6 -0
  13. package/dist/esm/SchemaEditor/Tree/Property.d.ts.map +1 -1
  14. package/dist/esm/SchemaEditor/Tree/Property.js.map +1 -1
  15. package/dist/esm/SchemaEditor/Tree/SchemaEditorContext.d.ts +2 -0
  16. package/dist/esm/SchemaEditor/Tree/SchemaEditorContext.d.ts.map +1 -1
  17. package/dist/esm/SchemaEditor/Tree/SchemaEditorContext.js.map +1 -1
  18. package/dist/esm/SchemaEditor/Tree/SchemaEditorParts.d.ts +2 -0
  19. package/dist/esm/SchemaEditor/Tree/SchemaEditorParts.d.ts.map +1 -1
  20. package/dist/esm/SchemaEditor/Tree/SchemaEditorParts.js.map +1 -1
  21. package/dist/esm/SchemaEditor/Tree/SchemaOrderedProperty.d.ts +12 -0
  22. package/dist/esm/SchemaEditor/Tree/SchemaOrderedProperty.d.ts.map +1 -0
  23. package/dist/esm/SchemaEditor/Tree/SchemaOrderedProperty.js +13 -0
  24. package/dist/esm/SchemaEditor/Tree/SchemaOrderedProperty.js.map +1 -0
  25. package/dist/esm/SchemaEditor/Tree/SchemaPropertyRow.d.ts.map +1 -1
  26. package/dist/esm/SchemaEditor/Tree/SchemaPropertyRow.js +2 -2
  27. package/dist/esm/SchemaEditor/Tree/SchemaPropertyRow.js.map +1 -1
  28. package/dist/esm/SchemaEditor/Tree/TreeSchemaEditor.d.ts +8 -1
  29. package/dist/esm/SchemaEditor/Tree/TreeSchemaEditor.d.ts.map +1 -1
  30. package/dist/esm/SchemaEditor/Tree/TreeSchemaEditor.js +15 -11
  31. package/dist/esm/SchemaEditor/Tree/TreeSchemaEditor.js.map +1 -1
  32. package/dist/esm/SchemaEditor/Tree/schemaConversion.d.ts +15 -3
  33. package/dist/esm/SchemaEditor/Tree/schemaConversion.d.ts.map +1 -1
  34. package/dist/esm/SchemaEditor/Tree/schemaConversion.js +83 -27
  35. package/dist/esm/SchemaEditor/Tree/schemaConversion.js.map +1 -1
  36. package/dist/esm/SchemaEditor/Tree/schemaInOriginalOrder.d.ts +3 -0
  37. package/dist/esm/SchemaEditor/Tree/schemaInOriginalOrder.d.ts.map +1 -0
  38. package/dist/esm/SchemaEditor/Tree/schemaInOriginalOrder.js +7 -0
  39. package/dist/esm/SchemaEditor/Tree/schemaInOriginalOrder.js.map +1 -0
  40. package/dist/esm/SchemaEditor/defaultSchemaEditorLabels.d.ts.map +1 -1
  41. package/dist/esm/SchemaEditor/defaultSchemaEditorLabels.js +3 -0
  42. package/dist/esm/SchemaEditor/defaultSchemaEditorLabels.js.map +1 -1
  43. package/dist/esm/SchemaEditor/index.d.ts +1 -1
  44. package/dist/esm/SchemaEditor/index.d.ts.map +1 -1
  45. package/dist/esm/SchemaEditor/index.js +1 -1
  46. package/dist/esm/styles.SchemaEditor.css +7 -10
  47. package/dist/esm/styles.css +7 -10
  48. package/dist/esm/types/parts.d.ts +2 -1
  49. package/dist/esm/types/parts.d.ts.map +1 -1
  50. package/dist/esm/types/parts.js +2 -1
  51. package/dist/esm/types/parts.js.map +1 -1
  52. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schemaConversion.d.ts","sourceRoot":"","sources":["../../../../SchemaEditor/Tree/schemaConversion.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,2BAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAgB,CAAC;AAI9C;;;;GAIG;AACH,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,WAAW,UAAU,CAAC;AAoEnC;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,EAAE,CAIjF;AA4CD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,UAAU,CAEzE;AAiBD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAE3H;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC5B,UAAU,EAAE,QAAQ,EAAE,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,YAAY,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,MAAM,GACjB,QAAQ,EAAE,CAQZ;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAInF;AASD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAEpG;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAOhI;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAE3F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,QAAQ,EAAE,CAE7G;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAOnF"}
1
+ {"version":3,"file":"schemaConversion.d.ts","sourceRoot":"","sources":["../../../../SchemaEditor/Tree/schemaConversion.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,2BAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAgB,CAAC;AAM9C;;;;GAIG;AACH,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,mGAAmG;AACnG,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AA6F/C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,EAAE,CAIjF;AAuDD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,GAAE,UAAe,GAAG,UAAU,CAGhG;AAiBD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAE3H;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC5B,UAAU,EAAE,QAAQ,EAAE,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,YAAY,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,MAAM,GACjB,QAAQ,EAAE,CAQZ;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAInF;AASD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAEpG;AAgBD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAEhI;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAE3F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,QAAQ,EAAE,CAE7G;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,QAAQ,EAAE,CAQ/G;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAOnF"}
@@ -1,9 +1,12 @@
1
1
  import { PropertyType } from './PropertyType.js';
2
2
  import { uniquePropertyName, conceptPropertyName } from './propertyNaming.js';
3
3
  import { findPropertyById } from './propertyTree.js';
4
+ import { copySchemaKeywordOrder, schemaKeywordOrder, itemSchemaKeywordOrder } from './SchemaOrderedProperty.js';
5
+ import { schemaInOriginalOrder } from './schemaInOriginalOrder.js';
4
6
 
5
7
  const CONCEPT_KEYWORD = 'x-concept';
6
8
  const KEY_KEYWORD = 'x-key';
9
+ const GENERATED_KEYWORD = 'x-generated';
7
10
  const isComplex = (type) => type === PropertyType.Object || type === PropertyType.ObjectArray;
8
11
  const identifier = () => Math.random().toString(36).slice(2, 10) + Math.random().toString(36).slice(2, 6);
9
12
  function schemaPropertyType(value) {
@@ -32,32 +35,57 @@ function schemaPropertyType(value) {
32
35
  return PropertyType.String;
33
36
  }
34
37
  }
38
+ function vendorKeywords(node, isProperty) {
39
+ const entries = Object.entries(node).filter(([name, value]) => {
40
+ if (!name.startsWith('x-'))
41
+ return false;
42
+ if (!isProperty)
43
+ return true;
44
+ return name !== CONCEPT_KEYWORD && name !== KEY_KEYWORD && !(name === GENERATED_KEYWORD && value === true);
45
+ });
46
+ return entries.length > 0 ? Object.fromEntries(entries) : undefined;
47
+ }
48
+ function readItemKeywords(node) {
49
+ if (node.type !== 'array' || typeof node.items !== 'object' || node.items === null)
50
+ return {};
51
+ const items = node.items;
52
+ const keywords = vendorKeywords(items, false);
53
+ return { [itemSchemaKeywordOrder]: Object.keys(items), ...(keywords ? { itemVendorKeywords: keywords } : {}) };
54
+ }
55
+ function readFlags(node, isRequired) {
56
+ const keywords = vendorKeywords(node, true);
57
+ return {
58
+ [schemaKeywordOrder]: Object.keys(node),
59
+ ...readItemKeywords(node),
60
+ ...(keywords ? { vendorKeywords: keywords } : {}),
61
+ ...(node[GENERATED_KEYWORD] === true ? { isGenerated: true } : {}),
62
+ ...(isRequired ? { isRequired: true } : {}),
63
+ ...(node[KEY_KEYWORD] === true ? { isKey: true } : {}),
64
+ };
65
+ }
35
66
  function schemaPropertyToProperty(name, value, required) {
36
67
  const node = value;
37
68
  const type = schemaPropertyType(node);
38
69
  const concept = node[CONCEPT_KEYWORD];
39
- const flags = {
40
- ...(required.has(name) ? { isRequired: true } : {}),
41
- ...(node[KEY_KEYWORD] === true ? { isKey: true } : {}),
42
- };
70
+ const flags = readFlags(node, required.has(name));
43
71
  const container = (type === PropertyType.Object ? node : type === PropertyType.ObjectArray ? node.items : undefined);
44
72
  if (container?.properties) {
45
73
  const childRequired = new Set(container.required ?? []);
46
- return {
74
+ return copySchemaKeywordOrder(flags, {
47
75
  id: identifier(),
48
76
  name,
49
77
  type,
50
78
  ...flags,
51
79
  children: Object.entries(container.properties).map(([childName, child]) => schemaPropertyToProperty(childName, child, childRequired)),
52
- };
80
+ });
53
81
  }
54
- return {
82
+ return copySchemaKeywordOrder(flags, {
55
83
  id: identifier(),
56
84
  name,
57
85
  type,
58
86
  ...flags,
59
87
  ...(typeof concept === 'string' && concept.length > 0 ? { concept } : {}),
60
- };
88
+ });
61
89
  }
62
90
  function jsonSchemaToProperties(schema) {
63
91
  if (!schema?.properties)
@@ -78,22 +106,32 @@ function primitiveSchema(property) {
78
106
  case PropertyType.Object:
79
107
  return { type: 'object', ...objectSchema(property.children ?? []) };
80
108
  case PropertyType.StringArray:
81
- return { type: 'array', items: { type: 'string' } };
109
+ return { type: 'array', items: { type: 'string', ...property.itemVendorKeywords } };
82
110
  case PropertyType.NumberArray:
83
- return { type: 'array', items: { type: 'number' } };
111
+ return { type: 'array', items: { type: 'number', ...property.itemVendorKeywords } };
84
112
  case PropertyType.ObjectArray:
85
- return { type: 'array', items: { type: 'object', ...objectSchema(property.children ?? []) } };
113
+ return { type: 'array', items: { type: 'object', ...objectSchema(property.children ?? []), ...property.itemVendorKeywords } };
86
114
  default:
87
115
  return { type: 'string' };
88
116
  }
89
117
  }
90
- function propertySchema(property) {
118
+ function orderedPrimitiveSchema(property) {
119
+ const schema = primitiveSchema(property);
120
+ if (schema.items)
121
+ schema.items = schemaInOriginalOrder(schema.items, property[itemSchemaKeywordOrder]);
122
+ return schema;
123
+ }
124
+ function propertyAnnotations(property) {
91
125
  return {
92
- ...primitiveSchema(property),
126
+ ...property.vendorKeywords,
127
+ ...(property.isGenerated === true ? { [GENERATED_KEYWORD]: true } : {}),
93
128
  ...(property.concept ? { [CONCEPT_KEYWORD]: property.concept } : {}),
94
129
  ...(property.isKey === true ? { [KEY_KEYWORD]: true } : {}),
95
130
  };
96
131
  }
132
+ function propertySchema(property) {
133
+ return schemaInOriginalOrder({ ...orderedPrimitiveSchema(property), ...propertyAnnotations(property) }, property[schemaKeywordOrder]);
134
+ }
97
135
  function objectSchema(properties) {
98
136
  const schemaProperties = {};
99
137
  for (const property of properties) {
@@ -102,8 +140,9 @@ function objectSchema(properties) {
102
140
  const required = properties.filter(property => property.isRequired === true).map(property => property.name);
103
141
  return { properties: schemaProperties, ...(required.length > 0 ? { required } : {}) };
104
142
  }
105
- function propertiesToJsonSchema(properties) {
106
- return { type: 'object', ...objectSchema(properties) };
143
+ function propertiesToJsonSchema(properties, base = {}) {
144
+ const root = Object.fromEntries(Object.entries(base).filter(([name]) => !['properties', 'required'].includes(name)));
145
+ return schemaInOriginalOrder({ ...root, type: 'object', ...objectSchema(properties) }, Object.keys(base));
107
146
  }
108
147
  function newProperty(siblings, type, existingCount, concept) {
109
148
  const base = isComplex(type) ? 'nested' : 'property';
@@ -124,48 +163,65 @@ function addChildProperty(properties, parentId, type, existingCount, concept) {
124
163
  const child = newProperty(siblings, type, existingCount, concept);
125
164
  const insert = (level) => level.map(property => {
126
165
  if (property.id === parentId)
127
- return { ...property, children: [...(property.children ?? []), child] };
128
- return property.children ? { ...property, children: insert(property.children) } : property;
166
+ return copySchemaKeywordOrder(property, { ...property, children: [...(property.children ?? []), child] });
167
+ return property.children ? copySchemaKeywordOrder(property, { ...property, children: insert(property.children) }) : property;
129
168
  });
130
169
  return insert(properties);
131
170
  }
132
171
  function removeProperty(properties, targetId) {
133
172
  return properties
134
173
  .filter(property => property.id !== targetId)
135
- .map(property => property.children ? { ...property, children: removeProperty(property.children, targetId) } : property);
174
+ .map(property => property.children ? copySchemaKeywordOrder(property, { ...property, children: removeProperty(property.children, targetId) }) : property);
136
175
  }
137
176
  function updateProperty(properties, targetId, update) {
138
177
  return properties.map(property => {
139
178
  if (property.id === targetId)
140
179
  return update(property);
141
- return property.children ? { ...property, children: updateProperty(property.children, targetId, update) } : property;
180
+ return property.children ? copySchemaKeywordOrder(property, { ...property, children: updateProperty(property.children, targetId, update) }) : property;
142
181
  });
143
182
  }
144
183
  function renameProperty(properties, targetId, newName) {
145
- return updateProperty(properties, targetId, property => ({ ...property, name: newName }));
184
+ return updateProperty(properties, targetId, property => copySchemaKeywordOrder(property, { ...property, name: newName }));
146
185
  }
147
- function changePropertyType(properties, targetId, newType, concept) {
148
- return updateProperty(properties, targetId, property => ({
186
+ function retypedProperty(property, newType, concept) {
187
+ const next = copySchemaKeywordOrder(property, {
149
188
  ...property,
150
189
  type: newType,
151
190
  concept,
152
191
  children: isComplex(newType) ? (property.children ?? []) : undefined,
153
- }));
192
+ });
193
+ if (property.type !== newType) {
194
+ delete next.itemVendorKeywords;
195
+ delete next[itemSchemaKeywordOrder];
196
+ }
197
+ return next;
198
+ }
199
+ function changePropertyType(properties, targetId, newType, concept) {
200
+ return updateProperty(properties, targetId, property => retypedProperty(property, newType, concept));
154
201
  }
155
202
  function toggleRequiredProperty(properties, targetId) {
156
- return updateProperty(properties, targetId, property => ({ ...property, isRequired: !property.isRequired || undefined }));
203
+ return updateProperty(properties, targetId, property => copySchemaKeywordOrder(property, { ...property, isRequired: !property.isRequired || undefined }));
157
204
  }
158
205
  function setRequiredProperty(properties, targetId, isRequired) {
159
- return updateProperty(properties, targetId, property => ({ ...property, isRequired }));
206
+ return updateProperty(properties, targetId, property => copySchemaKeywordOrder(property, { ...property, isRequired }));
207
+ }
208
+ function setGeneratedProperty(properties, targetId, isGenerated) {
209
+ return updateProperty(properties, targetId, property => {
210
+ const keywords = Object.fromEntries(Object.entries(property.vendorKeywords ?? {}).filter(([name]) => name !== GENERATED_KEYWORD));
211
+ const next = { ...property };
212
+ delete next.isGenerated;
213
+ delete next.vendorKeywords;
214
+ return copySchemaKeywordOrder(property, { ...next, ...(isGenerated ? { isGenerated: true } : {}), ...(Object.keys(keywords).length > 0 ? { vendorKeywords: keywords } : {}) });
215
+ });
160
216
  }
161
217
  function setKeyProperty(properties, targetId) {
162
218
  const target = properties.find(property => property.id === targetId);
163
- return properties.map(property => ({
219
+ return properties.map(property => copySchemaKeywordOrder(property, {
164
220
  ...property,
165
221
  ...(target ? { isKey: property.id === targetId && target.isKey !== true ? true : undefined } : {}),
166
222
  ...(property.children ? { children: setKeyProperty(property.children, targetId) } : {}),
167
223
  }));
168
224
  }
169
225
 
170
- export { CONCEPT_KEYWORD, KEY_KEYWORD, addChildProperty, addProperty, changePropertyType, jsonSchemaToProperties, propertiesToJsonSchema, removeProperty, renameProperty, setKeyProperty, setRequiredProperty, toggleRequiredProperty };
226
+ export { CONCEPT_KEYWORD, GENERATED_KEYWORD, KEY_KEYWORD, addChildProperty, addProperty, changePropertyType, jsonSchemaToProperties, propertiesToJsonSchema, removeProperty, renameProperty, setGeneratedProperty, setKeyProperty, setRequiredProperty, toggleRequiredProperty };
171
227
  //# sourceMappingURL=schemaConversion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemaConversion.js","sources":["../../../../SchemaEditor/Tree/schemaConversion.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { JsonSchema, JsonSchemaProperty } from '../../types/JsonSchema';\nimport type { Property } from './Property';\nimport { PropertyType } from './PropertyType';\nimport { conceptPropertyName, uniquePropertyName } from './propertyNaming';\nimport { findPropertyById } from './propertyTree';\n\n/**\n * The JSON Schema keyword carrying the concept a property is typed as. It annotates the primitive node the\n * concept wraps rather than replacing it, so anything that does not know about concepts — code generation,\n * an export, another tool — still reads a valid schema of the underlying primitive.\n */\nexport const CONCEPT_KEYWORD = 'x-concept';\n\n/**\n * The JSON Schema keyword marking the property that identifies its parent object. Written as `true` on the\n * property; at most one property of an object carries it.\n */\nexport const KEY_KEYWORD = 'x-key';\n\ntype SchemaNode = Record<string, unknown>;\n\nconst isComplex = (type: PropertyType): boolean => type === PropertyType.Object || type === PropertyType.ObjectArray;\n\nconst identifier = (): string => Math.random().toString(36).slice(2, 10) + Math.random().toString(36).slice(2, 6);\n\n// ── JsonSchema → Property[] ─────────────────────────────────────────\n\nfunction schemaPropertyType(value: SchemaNode): PropertyType {\n const items = value.items as { type?: string } | undefined;\n\n switch (value.type) {\n case 'string':\n if (value.format === 'date') return PropertyType.Date;\n if (value.format === 'time') return PropertyType.Time;\n return PropertyType.String;\n case 'number':\n case 'integer':\n return PropertyType.Number;\n case 'boolean':\n return PropertyType.Boolean;\n case 'object':\n return PropertyType.Object;\n case 'array':\n if (items?.type === 'number' || items?.type === 'integer') return PropertyType.NumberArray;\n if (items?.type === 'object') return PropertyType.ObjectArray;\n return PropertyType.StringArray;\n default:\n return PropertyType.String;\n }\n}\n\nfunction schemaPropertyToProperty(name: string, value: JsonSchemaProperty, required: ReadonlySet<string>): Property {\n const node = value as unknown as SchemaNode;\n const type = schemaPropertyType(node);\n const concept = node[CONCEPT_KEYWORD];\n const flags = {\n ...(required.has(name) ? { isRequired: true } : {}),\n ...(node[KEY_KEYWORD] === true ? { isKey: true } : {}),\n };\n\n const container = (type === PropertyType.Object ? node : type === PropertyType.ObjectArray ? node.items : undefined) as\n | { properties?: Record<string, JsonSchemaProperty>; required?: string[] }\n | undefined;\n\n if (container?.properties) {\n const childRequired = new Set(container.required ?? []);\n return {\n id: identifier(),\n name,\n type,\n ...flags,\n children: Object.entries(container.properties).map(([childName, child]) =>\n schemaPropertyToProperty(childName, child, childRequired)),\n };\n }\n\n return {\n id: identifier(),\n name,\n type,\n ...flags,\n ...(typeof concept === 'string' && concept.length > 0 ? { concept } : {}),\n };\n}\n\n/**\n * Converts a JSON Schema object into a property tree. Generates a new id for every property.\n * @param schema The schema to read; `undefined` and schemas without properties give an empty tree.\n * @returns The root properties.\n */\nexport function jsonSchemaToProperties(schema: JsonSchema | undefined): Property[] {\n if (!schema?.properties) return [];\n const required = new Set(schema.required ?? []);\n return Object.entries(schema.properties).map(([name, value]) => schemaPropertyToProperty(name, value, required));\n}\n\n// ── Property[] → JsonSchema ─────────────────────────────────────────\n\nfunction primitiveSchema(property: Property): SchemaNode {\n switch (property.type) {\n case PropertyType.Number:\n return { type: 'number' };\n case PropertyType.Boolean:\n return { type: 'boolean' };\n case PropertyType.Date:\n return { type: 'string', format: 'date' };\n case PropertyType.Time:\n return { type: 'string', format: 'time' };\n case PropertyType.Object:\n return { type: 'object', ...objectSchema(property.children ?? []) };\n case PropertyType.StringArray:\n return { type: 'array', items: { type: 'string' } };\n case PropertyType.NumberArray:\n return { type: 'array', items: { type: 'number' } };\n case PropertyType.ObjectArray:\n return { type: 'array', items: { type: 'object', ...objectSchema(property.children ?? []) } };\n default:\n return { type: 'string' };\n }\n}\n\nfunction propertySchema(property: Property): JsonSchemaProperty {\n return {\n ...primitiveSchema(property),\n ...(property.concept ? { [CONCEPT_KEYWORD]: property.concept } : {}),\n ...(property.isKey === true ? { [KEY_KEYWORD]: true } : {}),\n } as unknown as JsonSchemaProperty;\n}\n\nfunction objectSchema(properties: Property[]): { properties: Record<string, JsonSchemaProperty>; required?: string[] } {\n const schemaProperties: Record<string, JsonSchemaProperty> = {};\n for (const property of properties) {\n schemaProperties[property.name] = propertySchema(property);\n }\n const required = properties.filter(property => property.isRequired === true).map(property => property.name);\n return { properties: schemaProperties, ...(required.length > 0 ? { required } : {}) };\n}\n\n/**\n * Converts a property tree into a JSON Schema object. Empty `required` lists are omitted, and a property\n * typed as a concept or marked as the key carries the `x-concept` and `x-key` keywords.\n * @param properties The root properties.\n * @returns The schema.\n */\nexport function propertiesToJsonSchema(properties: Property[]): JsonSchema {\n return { type: 'object', ...objectSchema(properties) } as JsonSchema;\n}\n\n// ── Pure tree edits ─────────────────────────────────────────────────\n\nfunction newProperty(siblings: Property[], type: PropertyType, existingCount: number, concept?: string): Property {\n const base = isComplex(type) ? 'nested' : 'property';\n const name = concept ? uniquePropertyName(siblings, conceptPropertyName(concept)) : `${base}${existingCount + 1}`;\n\n return {\n id: identifier(),\n name,\n type,\n ...(concept ? { concept } : {}),\n ...(isComplex(type) ? { children: [] } : {}),\n };\n}\n\n/**\n * Appends a property to the root.\n * @param properties The root properties.\n * @param type The type of the new property.\n * @param existingCount The number of properties already in the tree, used to generate the default name; see {@link totalPropertyCount}.\n * @param concept The concept the property is typed as. When given the property is named after it.\n * @returns The new tree.\n */\nexport function addProperty(properties: Property[], type: PropertyType, existingCount: number, concept?: string): Property[] {\n return [...properties, newProperty(properties, type, existingCount, concept)];\n}\n\n/**\n * Appends a property to a nested object or object list.\n * @param properties The root properties.\n * @param parentId The id of the parent property.\n * @param type The type of the new property.\n * @param existingCount The number of properties already in the tree, used to generate the default name.\n * @param concept The concept the property is typed as.\n * @returns The new tree.\n */\nexport function addChildProperty(\n properties: Property[],\n parentId: string,\n type: PropertyType,\n existingCount: number,\n concept?: string,\n): Property[] {\n const siblings = findPropertyById(properties, parentId)?.children ?? [];\n const child = newProperty(siblings, type, existingCount, concept);\n const insert = (level: Property[]): Property[] => level.map(property => {\n if (property.id === parentId) return { ...property, children: [...(property.children ?? []), child] };\n return property.children ? { ...property, children: insert(property.children) } : property;\n });\n return insert(properties);\n}\n\n/**\n * Removes a property, and everything nested under it.\n * @param properties The root properties.\n * @param targetId The id of the property to remove.\n * @returns The new tree.\n */\nexport function removeProperty(properties: Property[], targetId: string): Property[] {\n return properties\n .filter(property => property.id !== targetId)\n .map(property => property.children ? { ...property, children: removeProperty(property.children, targetId) } : property);\n}\n\nfunction updateProperty(properties: Property[], targetId: string, update: (property: Property) => Property): Property[] {\n return properties.map(property => {\n if (property.id === targetId) return update(property);\n return property.children ? { ...property, children: updateProperty(property.children, targetId, update) } : property;\n });\n}\n\n/**\n * Renames a property. Its requiredness travels with it, because both are stored against the property.\n * @param properties The root properties.\n * @param targetId The id of the property to rename.\n * @param newName The new name.\n * @returns The new tree.\n */\nexport function renameProperty(properties: Property[], targetId: string, newName: string): Property[] {\n return updateProperty(properties, targetId, property => ({ ...property, name: newName }));\n}\n\n/**\n * Changes the type of a property. Choosing a plain primitive drops the concept; choosing an object or\n * object list keeps the children, and any other type drops them.\n * @param properties The root properties.\n * @param targetId The id of the property.\n * @param newType The new type.\n * @param concept The concept the property is now typed as, if any.\n * @returns The new tree.\n */\nexport function changePropertyType(properties: Property[], targetId: string, newType: PropertyType, concept?: string): Property[] {\n return updateProperty(properties, targetId, property => ({\n ...property,\n type: newType,\n concept,\n children: isComplex(newType) ? (property.children ?? []) : undefined,\n }));\n}\n\n/**\n * Flips whether a property is required.\n * @param properties The root properties.\n * @param targetId The id of the property.\n * @returns The new tree.\n */\nexport function toggleRequiredProperty(properties: Property[], targetId: string): Property[] {\n return updateProperty(properties, targetId, property => ({ ...property, isRequired: !property.isRequired || undefined }));\n}\n\n/**\n * Sets whether a property is required. Requiring a nested property does not require its parent.\n * @param properties The root properties.\n * @param targetId The id of the property.\n * @param isRequired Whether the property must be present.\n * @returns The new tree.\n */\nexport function setRequiredProperty(properties: Property[], targetId: string, isRequired: boolean): Property[] {\n return updateProperty(properties, targetId, property => ({ ...property, isRequired }));\n}\n\n/**\n * Makes a property the key of its parent object, moving the key when a sibling held it. Choosing the\n * property that already is the key clears it, so an object can also have no key.\n * @param properties The root properties.\n * @param targetId The id of the property.\n * @returns The new tree.\n */\nexport function setKeyProperty(properties: Property[], targetId: string): Property[] {\n const target = properties.find(property => property.id === targetId);\n return properties.map(property => ({\n ...property,\n ...(target ? { isKey: property.id === targetId && target.isKey !== true ? true : undefined } : {}),\n ...(property.children ? { children: setKeyProperty(property.children, targetId) } : {}),\n }));\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemaConversion.js","sources":["../../../../SchemaEditor/Tree/schemaConversion.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { JsonSchema, JsonSchemaProperty } from '../../types/JsonSchema';\nimport type { Property } from './Property';\nimport { PropertyType } from './PropertyType';\nimport { conceptPropertyName, uniquePropertyName } from './propertyNaming';\nimport { findPropertyById } from './propertyTree';\nimport { copySchemaKeywordOrder, itemSchemaKeywordOrder, schemaKeywordOrder, type SchemaOrderedProperty } from './SchemaOrderedProperty';\nimport { schemaInOriginalOrder } from './schemaInOriginalOrder';\n\n/**\n * The JSON Schema keyword carrying the concept a property is typed as. It annotates the primitive node the\n * concept wraps rather than replacing it, so anything that does not know about concepts — code generation,\n * an export, another tool — still reads a valid schema of the underlying primitive.\n */\nexport const CONCEPT_KEYWORD = 'x-concept';\n\n/**\n * The JSON Schema keyword marking the property that identifies its parent object. Written as `true` on the\n * property; at most one property of an object carries it.\n */\nexport const KEY_KEYWORD = 'x-key';\n\n/** The JSON Schema keyword marking a value generated when the command runs rather than entered. */\nexport const GENERATED_KEYWORD = 'x-generated';\n\ntype SchemaNode = Record<string, unknown>;\n\nconst isComplex = (type: PropertyType): boolean => type === PropertyType.Object || type === PropertyType.ObjectArray;\n\nconst identifier = (): string => Math.random().toString(36).slice(2, 10) + Math.random().toString(36).slice(2, 6);\n\n// ── JsonSchema → Property[] ─────────────────────────────────────────\n\nfunction schemaPropertyType(value: SchemaNode): PropertyType {\n const items = value.items as { type?: string } | undefined;\n\n switch (value.type) {\n case 'string':\n if (value.format === 'date') return PropertyType.Date;\n if (value.format === 'time') return PropertyType.Time;\n return PropertyType.String;\n case 'number':\n case 'integer':\n return PropertyType.Number;\n case 'boolean':\n return PropertyType.Boolean;\n case 'object':\n return PropertyType.Object;\n case 'array':\n if (items?.type === 'number' || items?.type === 'integer') return PropertyType.NumberArray;\n if (items?.type === 'object') return PropertyType.ObjectArray;\n return PropertyType.StringArray;\n default:\n return PropertyType.String;\n }\n}\n\nfunction vendorKeywords(node: SchemaNode, isProperty: boolean): Readonly<Record<string, unknown>> | undefined {\n const entries = Object.entries(node).filter(([name, value]) => {\n if (!name.startsWith('x-')) return false;\n if (!isProperty) return true;\n return name !== CONCEPT_KEYWORD && name !== KEY_KEYWORD && !(name === GENERATED_KEYWORD && value === true);\n });\n return entries.length > 0 ? Object.fromEntries(entries) : undefined;\n}\n\nfunction readItemKeywords(node: SchemaNode): Partial<SchemaOrderedProperty> {\n if (node.type !== 'array' || typeof node.items !== 'object' || node.items === null) return {};\n const items = node.items as SchemaNode;\n const keywords = vendorKeywords(items, false);\n return { [itemSchemaKeywordOrder]: Object.keys(items), ...(keywords ? { itemVendorKeywords: keywords } : {}) };\n}\n\nfunction readFlags(node: SchemaNode, isRequired: boolean): Partial<SchemaOrderedProperty> {\n const keywords = vendorKeywords(node, true);\n return {\n [schemaKeywordOrder]: Object.keys(node),\n ...readItemKeywords(node),\n ...(keywords ? { vendorKeywords: keywords } : {}),\n ...(node[GENERATED_KEYWORD] === true ? { isGenerated: true } : {}),\n ...(isRequired ? { isRequired: true } : {}),\n ...(node[KEY_KEYWORD] === true ? { isKey: true } : {}),\n };\n}\n\nfunction schemaPropertyToProperty(name: string, value: JsonSchemaProperty, required: ReadonlySet<string>): Property {\n const node = value as unknown as SchemaNode;\n const type = schemaPropertyType(node);\n const concept = node[CONCEPT_KEYWORD];\n const flags = readFlags(node, required.has(name));\n\n const container = (type === PropertyType.Object ? node : type === PropertyType.ObjectArray ? node.items : undefined) as\n | { properties?: Record<string, JsonSchemaProperty>; required?: string[] }\n | undefined;\n\n if (container?.properties) {\n const childRequired = new Set(container.required ?? []);\n return copySchemaKeywordOrder(flags, {\n id: identifier(),\n name,\n type,\n ...flags,\n children: Object.entries(container.properties).map(([childName, child]) =>\n schemaPropertyToProperty(childName, child, childRequired)),\n });\n }\n\n return copySchemaKeywordOrder(flags, {\n id: identifier(),\n name,\n type,\n ...flags,\n ...(typeof concept === 'string' && concept.length > 0 ? { concept } : {}),\n });\n}\n\n/**\n * Converts a JSON Schema object into a property tree. Generates a new id for every property.\n * @param schema The schema to read; `undefined` and schemas without properties give an empty tree.\n * @returns The root properties.\n */\nexport function jsonSchemaToProperties(schema: JsonSchema | undefined): Property[] {\n if (!schema?.properties) return [];\n const required = new Set(schema.required ?? []);\n return Object.entries(schema.properties).map(([name, value]) => schemaPropertyToProperty(name, value, required));\n}\n\n// ── Property[] → JsonSchema ─────────────────────────────────────────\n\nfunction primitiveSchema(property: Property): SchemaNode {\n switch (property.type) {\n case PropertyType.Number:\n return { type: 'number' };\n case PropertyType.Boolean:\n return { type: 'boolean' };\n case PropertyType.Date:\n return { type: 'string', format: 'date' };\n case PropertyType.Time:\n return { type: 'string', format: 'time' };\n case PropertyType.Object:\n return { type: 'object', ...objectSchema(property.children ?? []) };\n case PropertyType.StringArray:\n return { type: 'array', items: { type: 'string', ...property.itemVendorKeywords } };\n case PropertyType.NumberArray:\n return { type: 'array', items: { type: 'number', ...property.itemVendorKeywords } };\n case PropertyType.ObjectArray:\n return { type: 'array', items: { type: 'object', ...objectSchema(property.children ?? []), ...property.itemVendorKeywords } };\n default:\n return { type: 'string' };\n }\n}\n\nfunction orderedPrimitiveSchema(property: SchemaOrderedProperty): SchemaNode {\n const schema = primitiveSchema(property);\n if (schema.items) schema.items = schemaInOriginalOrder(schema.items as SchemaNode, property[itemSchemaKeywordOrder]);\n return schema;\n}\n\nfunction propertyAnnotations(property: Property): SchemaNode {\n return {\n ...property.vendorKeywords,\n ...(property.isGenerated === true ? { [GENERATED_KEYWORD]: true } : {}),\n ...(property.concept ? { [CONCEPT_KEYWORD]: property.concept } : {}),\n ...(property.isKey === true ? { [KEY_KEYWORD]: true } : {}),\n };\n}\n\nfunction propertySchema(property: SchemaOrderedProperty): JsonSchemaProperty {\n return schemaInOriginalOrder({ ...orderedPrimitiveSchema(property), ...propertyAnnotations(property) }, property[schemaKeywordOrder]) as unknown as JsonSchemaProperty;\n}\n\nfunction objectSchema(properties: Property[]): { properties: Record<string, JsonSchemaProperty>; required?: string[] } {\n const schemaProperties: Record<string, JsonSchemaProperty> = {};\n for (const property of properties) {\n schemaProperties[property.name] = propertySchema(property);\n }\n const required = properties.filter(property => property.isRequired === true).map(property => property.name);\n return { properties: schemaProperties, ...(required.length > 0 ? { required } : {}) };\n}\n\n/**\n * Converts a property tree into a JSON Schema object. Empty `required` lists are omitted, and a property\n * typed as a concept or marked as the key carries the `x-concept` and `x-key` keywords. Vendor keywords are\n * preserved on properties and array items; generated values carry `x-generated: true`.\n * @param properties The root properties.\n * @param base The incoming schema. Root keys other than type, properties and required are preserved.\n * @returns The schema.\n */\nexport function propertiesToJsonSchema(properties: Property[], base: JsonSchema = {}): JsonSchema {\n const root = Object.fromEntries(Object.entries(base).filter(([name]) => !['properties', 'required'].includes(name)));\n return schemaInOriginalOrder({ ...root, type: 'object', ...objectSchema(properties) }, Object.keys(base)) as JsonSchema;\n}\n\n// ── Pure tree edits ─────────────────────────────────────────────────\n\nfunction newProperty(siblings: Property[], type: PropertyType, existingCount: number, concept?: string): Property {\n const base = isComplex(type) ? 'nested' : 'property';\n const name = concept ? uniquePropertyName(siblings, conceptPropertyName(concept)) : `${base}${existingCount + 1}`;\n\n return {\n id: identifier(),\n name,\n type,\n ...(concept ? { concept } : {}),\n ...(isComplex(type) ? { children: [] } : {}),\n };\n}\n\n/**\n * Appends a property to the root.\n * @param properties The root properties.\n * @param type The type of the new property.\n * @param existingCount The number of properties already in the tree, used to generate the default name; see {@link totalPropertyCount}.\n * @param concept The concept the property is typed as. When given the property is named after it.\n * @returns The new tree.\n */\nexport function addProperty(properties: Property[], type: PropertyType, existingCount: number, concept?: string): Property[] {\n return [...properties, newProperty(properties, type, existingCount, concept)];\n}\n\n/**\n * Appends a property to a nested object or object list.\n * @param properties The root properties.\n * @param parentId The id of the parent property.\n * @param type The type of the new property.\n * @param existingCount The number of properties already in the tree, used to generate the default name.\n * @param concept The concept the property is typed as.\n * @returns The new tree.\n */\nexport function addChildProperty(\n properties: Property[],\n parentId: string,\n type: PropertyType,\n existingCount: number,\n concept?: string,\n): Property[] {\n const siblings = findPropertyById(properties, parentId)?.children ?? [];\n const child = newProperty(siblings, type, existingCount, concept);\n const insert = (level: Property[]): Property[] => level.map(property => {\n if (property.id === parentId) return copySchemaKeywordOrder(property, { ...property, children: [...(property.children ?? []), child] });\n return property.children ? copySchemaKeywordOrder(property, { ...property, children: insert(property.children) }) : property;\n });\n return insert(properties);\n}\n\n/**\n * Removes a property, and everything nested under it.\n * @param properties The root properties.\n * @param targetId The id of the property to remove.\n * @returns The new tree.\n */\nexport function removeProperty(properties: Property[], targetId: string): Property[] {\n return properties\n .filter(property => property.id !== targetId)\n .map(property => property.children ? copySchemaKeywordOrder(property, { ...property, children: removeProperty(property.children, targetId) }) : property);\n}\n\nfunction updateProperty(properties: Property[], targetId: string, update: (property: Property) => Property): Property[] {\n return properties.map(property => {\n if (property.id === targetId) return update(property);\n return property.children ? copySchemaKeywordOrder(property, { ...property, children: updateProperty(property.children, targetId, update) }) : property;\n });\n}\n\n/**\n * Renames a property. Its requiredness travels with it, because both are stored against the property.\n * @param properties The root properties.\n * @param targetId The id of the property to rename.\n * @param newName The new name.\n * @returns The new tree.\n */\nexport function renameProperty(properties: Property[], targetId: string, newName: string): Property[] {\n return updateProperty(properties, targetId, property => copySchemaKeywordOrder(property, { ...property, name: newName }));\n}\n\nfunction retypedProperty(property: Property, newType: PropertyType, concept?: string): Property {\n const next: SchemaOrderedProperty = copySchemaKeywordOrder(property, {\n ...property,\n type: newType,\n concept,\n children: isComplex(newType) ? (property.children ?? []) : undefined,\n });\n if (property.type !== newType) {\n delete next.itemVendorKeywords;\n delete next[itemSchemaKeywordOrder];\n }\n return next;\n}\n\n/**\n * Changes the type of a property. Choosing a plain primitive drops the concept; choosing an object or\n * object list keeps the children, and any other type drops them. A different item kind clears item metadata.\n * @param properties The root properties.\n * @param targetId The id of the property.\n * @param newType The new type.\n * @param concept The concept the property is now typed as, if any.\n * @returns The new tree.\n */\nexport function changePropertyType(properties: Property[], targetId: string, newType: PropertyType, concept?: string): Property[] {\n return updateProperty(properties, targetId, property => retypedProperty(property, newType, concept));\n}\n\n/**\n * Flips whether a property is required.\n * @param properties The root properties.\n * @param targetId The id of the property.\n * @returns The new tree.\n */\nexport function toggleRequiredProperty(properties: Property[], targetId: string): Property[] {\n return updateProperty(properties, targetId, property => copySchemaKeywordOrder(property, { ...property, isRequired: !property.isRequired || undefined }));\n}\n\n/**\n * Sets whether a property is required. Requiring a nested property does not require its parent.\n * @param properties The root properties.\n * @param targetId The id of the property.\n * @param isRequired Whether the property must be present.\n * @returns The new tree.\n */\nexport function setRequiredProperty(properties: Property[], targetId: string, isRequired: boolean): Property[] {\n return updateProperty(properties, targetId, property => copySchemaKeywordOrder(property, { ...property, isRequired }));\n}\n\n/**\n * Sets whether a property's value is generated. An explicit edit replaces any non-true x-generated value.\n * @param properties The root properties.\n * @param targetId The id of the property.\n * @param isGenerated Whether the value is generated.\n * @returns The new tree.\n */\nexport function setGeneratedProperty(properties: Property[], targetId: string, isGenerated: boolean): Property[] {\n return updateProperty(properties, targetId, property => {\n const keywords = Object.fromEntries(Object.entries(property.vendorKeywords ?? {}).filter(([name]) => name !== GENERATED_KEYWORD));\n const next = { ...property };\n delete next.isGenerated;\n delete next.vendorKeywords;\n return copySchemaKeywordOrder(property, { ...next, ...(isGenerated ? { isGenerated: true } : {}), ...(Object.keys(keywords).length > 0 ? { vendorKeywords: keywords } : {}) });\n });\n}\n\n/**\n * Makes a property the key of its parent object, moving the key when a sibling held it. Choosing the\n * property that already is the key clears it, so an object can also have no key.\n * @param properties The root properties.\n * @param targetId The id of the property.\n * @returns The new tree.\n */\nexport function setKeyProperty(properties: Property[], targetId: string): Property[] {\n const target = properties.find(property => property.id === targetId);\n return properties.map(property => copySchemaKeywordOrder(property, {\n ...property,\n ...(target ? { isKey: property.id === targetId && target.isKey !== true ? true : undefined } : {}),\n ...(property.children ? { children: setKeyProperty(property.children, targetId) } : {}),\n }));\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Retains the positions of surviving schema keywords and appends new keywords. */
2
+ export declare function schemaInOriginalOrder(schema: Record<string, unknown>, order?: readonly string[]): Record<string, unknown>;
3
+ //# sourceMappingURL=schemaInOriginalOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaInOriginalOrder.d.ts","sourceRoot":"","sources":["../../../../SchemaEditor/Tree/schemaInOriginalOrder.ts"],"names":[],"mappings":"AAGA,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,GAAE,SAAS,MAAM,EAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG7H"}
@@ -0,0 +1,7 @@
1
+ function schemaInOriginalOrder(schema, order = []) {
2
+ const names = new Set([...order, ...Object.keys(schema)]);
3
+ return Object.fromEntries([...names].filter(name => Object.hasOwn(schema, name)).map(name => [name, schema[name]]));
4
+ }
5
+
6
+ export { schemaInOriginalOrder };
7
+ //# sourceMappingURL=schemaInOriginalOrder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaInOriginalOrder.js","sources":["../../../../SchemaEditor/Tree/schemaInOriginalOrder.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/** Retains the positions of surviving schema keywords and appends new keywords. */\nexport function schemaInOriginalOrder(schema: Record<string, unknown>, order: readonly string[] = []): Record<string, unknown> {\n const names = new Set([...order, ...Object.keys(schema)]);\n return Object.fromEntries([...names].filter(name => Object.hasOwn(schema, name)).map(name => [name, schema[name]]));\n}\n"],"names":[],"mappings":"SAIgB,qBAAqB,CAAC,MAA+B,EAAE,QAA2B,EAAE,EAAA;AAChG,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACzD,IAAA,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaultSchemaEditorLabels.d.ts","sourceRoot":"","sources":["../../../SchemaEditor/defaultSchemaEditorLabels.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAsB,CAAC;AAE/D,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,kBAAkB,CA8CnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,kBAA+C,CAAC"}
1
+ {"version":3,"file":"defaultSchemaEditorLabels.d.ts","sourceRoot":"","sources":["../../../SchemaEditor/defaultSchemaEditorLabels.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAsB,CAAC;AAE/D,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,kBAAkB,CAiDnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,kBAA+C,CAAC"}
@@ -29,6 +29,9 @@ const completeSchemaEditorLabels = {
29
29
  keyProperty: (propertyName) => `Use ${propertyName} as the key property`,
30
30
  setAsKey: 'Use as the key that identifies the object',
31
31
  isKey: 'This is the key that identifies the object. Select it again to clear it.',
32
+ generatedProperty: (propertyName) => `Generated: ${propertyName}`,
33
+ setAsGenerated: 'Mark as generated: the value is created when the command runs, not entered',
34
+ isGenerated: 'The value is generated. Select it again to mark it as entered.',
32
35
  keyColumn: 'Key',
33
36
  requiredColumn: 'Required',
34
37
  protectedProperty: 'This property cannot be renamed or removed.',
@@ -1 +1 @@
1
- {"version":3,"file":"defaultSchemaEditorLabels.js","sources":["../../../SchemaEditor/defaultSchemaEditorLabels.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { SchemaEditorLabels } from './SchemaEditorLabels';\n\n/** Every label with its English default, so the editor never has to guard an unset one. */\nexport const completeSchemaEditorLabels: Required<SchemaEditorLabels> = {\n edit: 'Edit',\n save: 'Save',\n cancel: 'Cancel',\n addProperty: 'Add Property',\n actions: 'Actions',\n navigateBack: 'Navigate back',\n emptyMessage: 'No properties defined',\n navigateToItemDefinition: 'Navigate to item definition',\n navigateToProperties: 'Navigate to object properties',\n propertyName: 'Property name',\n propertyType: 'Property type',\n arrayItemType: 'Array item type',\n deleteProperty: 'Delete property',\n invalidJson: 'The schema must contain valid JSON before it can be edited.',\n schema: 'Schema properties',\n addPropertyTo: (propertyName) => `Add property to ${propertyName}`,\n nestedProperties: (propertyName) => `Properties of ${propertyName}`,\n propertyNameFor: (propertyName) => `Name of ${propertyName}`,\n renameHint: 'Double-click or press F2 to rename',\n deletePropertyFor: (propertyName) => `Delete ${propertyName}`,\n changeType: (propertyName, typeName) => `Change type of ${propertyName}, currently ${typeName}`,\n propertyTypes: 'Property types',\n concepts: 'Concepts',\n noConcepts: 'No concepts defined',\n required: 'Required',\n requiredProperty: (propertyName) => `Required in schema: ${propertyName}`,\n requiredHelp: 'The property must be present in the object. An empty value still counts as present.',\n keyProperty: (propertyName) => `Use ${propertyName} as the key property`,\n setAsKey: 'Use as the key that identifies the object',\n isKey: 'This is the key that identifies the object. Select it again to clear it.',\n keyColumn: 'Key',\n requiredColumn: 'Required',\n protectedProperty: 'This property cannot be renamed or removed.',\n nameRequired: 'Enter a name.',\n nameReserved: (name) => `${name} is reserved and cannot be used as a name.`,\n nameDuplicate: (name) => `Another property is already named ${name}.`,\n typeString: 'Text',\n typeNumber: 'Number',\n typeBoolean: 'Yes or no',\n typeDate: 'Date',\n typeTime: 'Time',\n typeStringArray: 'List of text',\n typeNumberArray: 'List of numbers',\n typeObject: 'Object',\n typeObjectArray: 'List of objects',\n};\n\n/**\n * English defaults for {@link SchemaEditorLabels}. The labels added for the tree layout and the capabilities are\n * optional on the type, and are present here with their English text.\n */\nexport const defaultSchemaEditorLabels: SchemaEditorLabels = completeSchemaEditorLabels;\n"],"names":[],"mappings":"AAMO,MAAM,0BAA0B,GAAiC;AACpE,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,YAAY,EAAE,uBAAuB;AACrC,IAAA,wBAAwB,EAAE,6BAA6B;AACvD,IAAA,oBAAoB,EAAE,+BAA+B;AACrD,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,cAAc,EAAE,iBAAiB;AACjC,IAAA,WAAW,EAAE,6DAA6D;AAC1E,IAAA,MAAM,EAAE,mBAAmB;IAC3B,aAAa,EAAE,CAAC,YAAY,KAAK,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAE;IAClE,gBAAgB,EAAE,CAAC,YAAY,KAAK,CAAA,cAAA,EAAiB,YAAY,CAAA,CAAE;IACnE,eAAe,EAAE,CAAC,YAAY,KAAK,CAAA,QAAA,EAAW,YAAY,CAAA,CAAE;AAC5D,IAAA,UAAU,EAAE,oCAAoC;IAChD,iBAAiB,EAAE,CAAC,YAAY,KAAK,CAAA,OAAA,EAAU,YAAY,CAAA,CAAE;AAC7D,IAAA,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,KAAK,CAAA,eAAA,EAAkB,YAAY,CAAA,YAAA,EAAe,QAAQ,CAAA,CAAE;AAC/F,IAAA,aAAa,EAAE,gBAAgB;AAC/B,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,UAAU,EAAE,qBAAqB;AACjC,IAAA,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,CAAC,YAAY,KAAK,CAAA,oBAAA,EAAuB,YAAY,CAAA,CAAE;AACzE,IAAA,YAAY,EAAE,qFAAqF;IACnG,WAAW,EAAE,CAAC,YAAY,KAAK,CAAA,IAAA,EAAO,YAAY,CAAA,oBAAA,CAAsB;AACxE,IAAA,QAAQ,EAAE,2CAA2C;AACrD,IAAA,KAAK,EAAE,0EAA0E;AACjF,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,iBAAiB,EAAE,6CAA6C;AAChE,IAAA,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,CAAC,IAAI,KAAK,CAAA,EAAG,IAAI,CAAA,0CAAA,CAA4C;IAC3E,aAAa,EAAE,CAAC,IAAI,KAAK,CAAA,kCAAA,EAAqC,IAAI,CAAA,CAAA,CAAG;AACrE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,eAAe,EAAE,cAAc;AAC/B,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,eAAe,EAAE,iBAAiB;;AAO/B,MAAM,yBAAyB,GAAuB;;"}
1
+ {"version":3,"file":"defaultSchemaEditorLabels.js","sources":["../../../SchemaEditor/defaultSchemaEditorLabels.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { SchemaEditorLabels } from './SchemaEditorLabels';\n\n/** Every label with its English default, so the editor never has to guard an unset one. */\nexport const completeSchemaEditorLabels: Required<SchemaEditorLabels> = {\n edit: 'Edit',\n save: 'Save',\n cancel: 'Cancel',\n addProperty: 'Add Property',\n actions: 'Actions',\n navigateBack: 'Navigate back',\n emptyMessage: 'No properties defined',\n navigateToItemDefinition: 'Navigate to item definition',\n navigateToProperties: 'Navigate to object properties',\n propertyName: 'Property name',\n propertyType: 'Property type',\n arrayItemType: 'Array item type',\n deleteProperty: 'Delete property',\n invalidJson: 'The schema must contain valid JSON before it can be edited.',\n schema: 'Schema properties',\n addPropertyTo: (propertyName) => `Add property to ${propertyName}`,\n nestedProperties: (propertyName) => `Properties of ${propertyName}`,\n propertyNameFor: (propertyName) => `Name of ${propertyName}`,\n renameHint: 'Double-click or press F2 to rename',\n deletePropertyFor: (propertyName) => `Delete ${propertyName}`,\n changeType: (propertyName, typeName) => `Change type of ${propertyName}, currently ${typeName}`,\n propertyTypes: 'Property types',\n concepts: 'Concepts',\n noConcepts: 'No concepts defined',\n required: 'Required',\n requiredProperty: (propertyName) => `Required in schema: ${propertyName}`,\n requiredHelp: 'The property must be present in the object. An empty value still counts as present.',\n keyProperty: (propertyName) => `Use ${propertyName} as the key property`,\n setAsKey: 'Use as the key that identifies the object',\n isKey: 'This is the key that identifies the object. Select it again to clear it.',\n generatedProperty: (propertyName) => `Generated: ${propertyName}`,\n setAsGenerated: 'Mark as generated: the value is created when the command runs, not entered',\n isGenerated: 'The value is generated. Select it again to mark it as entered.',\n keyColumn: 'Key',\n requiredColumn: 'Required',\n protectedProperty: 'This property cannot be renamed or removed.',\n nameRequired: 'Enter a name.',\n nameReserved: (name) => `${name} is reserved and cannot be used as a name.`,\n nameDuplicate: (name) => `Another property is already named ${name}.`,\n typeString: 'Text',\n typeNumber: 'Number',\n typeBoolean: 'Yes or no',\n typeDate: 'Date',\n typeTime: 'Time',\n typeStringArray: 'List of text',\n typeNumberArray: 'List of numbers',\n typeObject: 'Object',\n typeObjectArray: 'List of objects',\n};\n\n/**\n * English defaults for {@link SchemaEditorLabels}. The labels added for the tree layout and the capabilities are\n * optional on the type, and are present here with their English text.\n */\nexport const defaultSchemaEditorLabels: SchemaEditorLabels = completeSchemaEditorLabels;\n"],"names":[],"mappings":"AAMO,MAAM,0BAA0B,GAAiC;AACpE,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,YAAY,EAAE,uBAAuB;AACrC,IAAA,wBAAwB,EAAE,6BAA6B;AACvD,IAAA,oBAAoB,EAAE,+BAA+B;AACrD,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,cAAc,EAAE,iBAAiB;AACjC,IAAA,WAAW,EAAE,6DAA6D;AAC1E,IAAA,MAAM,EAAE,mBAAmB;IAC3B,aAAa,EAAE,CAAC,YAAY,KAAK,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAE;IAClE,gBAAgB,EAAE,CAAC,YAAY,KAAK,CAAA,cAAA,EAAiB,YAAY,CAAA,CAAE;IACnE,eAAe,EAAE,CAAC,YAAY,KAAK,CAAA,QAAA,EAAW,YAAY,CAAA,CAAE;AAC5D,IAAA,UAAU,EAAE,oCAAoC;IAChD,iBAAiB,EAAE,CAAC,YAAY,KAAK,CAAA,OAAA,EAAU,YAAY,CAAA,CAAE;AAC7D,IAAA,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,KAAK,CAAA,eAAA,EAAkB,YAAY,CAAA,YAAA,EAAe,QAAQ,CAAA,CAAE;AAC/F,IAAA,aAAa,EAAE,gBAAgB;AAC/B,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,UAAU,EAAE,qBAAqB;AACjC,IAAA,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,CAAC,YAAY,KAAK,CAAA,oBAAA,EAAuB,YAAY,CAAA,CAAE;AACzE,IAAA,YAAY,EAAE,qFAAqF;IACnG,WAAW,EAAE,CAAC,YAAY,KAAK,CAAA,IAAA,EAAO,YAAY,CAAA,oBAAA,CAAsB;AACxE,IAAA,QAAQ,EAAE,2CAA2C;AACrD,IAAA,KAAK,EAAE,0EAA0E;IACjF,iBAAiB,EAAE,CAAC,YAAY,KAAK,CAAA,WAAA,EAAc,YAAY,CAAA,CAAE;AACjE,IAAA,cAAc,EAAE,4EAA4E;AAC5F,IAAA,WAAW,EAAE,gEAAgE;AAC7E,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,iBAAiB,EAAE,6CAA6C;AAChE,IAAA,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,CAAC,IAAI,KAAK,CAAA,EAAG,IAAI,CAAA,0CAAA,CAA4C;IAC3E,aAAa,EAAE,CAAC,IAAI,KAAK,CAAA,kCAAA,EAAqC,IAAI,CAAA,CAAA,CAAG;AACrE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,eAAe,EAAE,cAAc;AAC/B,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,eAAe,EAAE,iBAAiB;;AAO/B,MAAM,yBAAyB,GAAuB;;"}
@@ -10,7 +10,7 @@ export { PropertyType } from './Tree/PropertyType.js';
10
10
  export type { PropertyConcept } from './Tree/PropertyConcept.js';
11
11
  export { PropertyNameProblem, conceptPropertyName, findPropertyNameProblem, uniquePropertyName, } from './Tree/propertyNaming.js';
12
12
  export { findPropertyById, findPropertyByName, findSiblingProperties, totalPropertyCount } from './Tree/propertyTree.js';
13
- export { CONCEPT_KEYWORD, KEY_KEYWORD, addChildProperty, addProperty, changePropertyType, jsonSchemaToProperties, propertiesToJsonSchema, removeProperty, renameProperty, setKeyProperty, setRequiredProperty, toggleRequiredProperty, } from './Tree/schemaConversion.js';
13
+ export { CONCEPT_KEYWORD, KEY_KEYWORD, GENERATED_KEYWORD, addChildProperty, addProperty, changePropertyType, jsonSchemaToProperties, propertiesToJsonSchema, removeProperty, renameProperty, setKeyProperty, setGeneratedProperty, setRequiredProperty, toggleRequiredProperty, } from './Tree/schemaConversion.js';
14
14
  export * from '../types/JsonSchema.js';
15
15
  export * from '../types/TypeFormat.js';
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../SchemaEditor/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAgB,CAAC;AAC/B,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAsB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,6BAA0B,CAAC;AAC9H,YAAY,EAAE,qBAAqB,EAAE,MAAM,iCAA8B,CAAC;AAC1E,YAAY,EAAE,sBAAsB,EAAE,MAAM,kCAA+B,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mCAAgC,CAAC;AAC/F,YAAY,EAAE,6BAA6B,EAAE,MAAM,mCAAgC,CAAC;AACpF,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAqB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,2BAAwB,CAAC;AAC9D,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,GACrB,MAAM,0BAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,wBAAqB,CAAC;AACtH,OAAO,EACH,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,sBAAsB,GACzB,MAAM,4BAAyB,CAAC;AACjC,cAAc,wBAAqB,CAAC;AACpC,cAAc,wBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../SchemaEditor/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAgB,CAAC;AAC/B,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAsB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,6BAA0B,CAAC;AAC9H,YAAY,EAAE,qBAAqB,EAAE,MAAM,iCAA8B,CAAC;AAC1E,YAAY,EAAE,sBAAsB,EAAE,MAAM,kCAA+B,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mCAAgC,CAAC;AAC/F,YAAY,EAAE,6BAA6B,EAAE,MAAM,mCAAgC,CAAC;AACpF,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAqB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,2BAAwB,CAAC;AAC9D,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,GACrB,MAAM,0BAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,wBAAqB,CAAC;AACtH,OAAO,EACH,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,GACzB,MAAM,4BAAyB,CAAC;AACjC,cAAc,wBAAqB,CAAC;AACpC,cAAc,wBAAqB,CAAC"}
@@ -3,7 +3,7 @@ export { PropertyConceptsProvider, usePropertyConcepts } from './Tree/PropertyCo
3
3
  export { PropertyType } from './Tree/PropertyType.js';
4
4
  export { PropertyNameProblem, conceptPropertyName, findPropertyNameProblem, uniquePropertyName } from './Tree/propertyNaming.js';
5
5
  export { findPropertyById, findPropertyByName, findSiblingProperties, totalPropertyCount } from './Tree/propertyTree.js';
6
- export { CONCEPT_KEYWORD, KEY_KEYWORD, addChildProperty, addProperty, changePropertyType, jsonSchemaToProperties, propertiesToJsonSchema, removeProperty, renameProperty, setKeyProperty, setRequiredProperty, toggleRequiredProperty } from './Tree/schemaConversion.js';
6
+ export { CONCEPT_KEYWORD, GENERATED_KEYWORD, KEY_KEYWORD, addChildProperty, addProperty, changePropertyType, jsonSchemaToProperties, propertiesToJsonSchema, removeProperty, renameProperty, setGeneratedProperty, setKeyProperty, setRequiredProperty, toggleRequiredProperty } from './Tree/schemaConversion.js';
7
7
  export { DEFAULT_TYPE_FORMATS } from '../types/TypeFormat.js';
8
8
  export { defaultSchemaEditorLabels } from './defaultSchemaEditorLabels.js';
9
9
  //# sourceMappingURL=index.js.map
@@ -2160,7 +2160,7 @@
2160
2160
  }
2161
2161
 
2162
2162
  .cratis-schema-editor__type-button,
2163
- .cratis-schema-editor__key,
2163
+ .cratis-schema-editor__toggle,
2164
2164
  .cratis-schema-editor__remove,
2165
2165
  .cratis-schema-editor__add {
2166
2166
  display: inline-flex;
@@ -2179,14 +2179,14 @@
2179
2179
  }
2180
2180
 
2181
2181
  .cratis-schema-editor__type-button:hover,
2182
- .cratis-schema-editor__key:hover,
2182
+ button.cratis-schema-editor__toggle:hover,
2183
2183
  .cratis-schema-editor__remove:hover,
2184
2184
  .cratis-schema-editor__add:hover {
2185
2185
  background: var(--cratis-surface-hover);
2186
2186
  }
2187
2187
 
2188
2188
  .cratis-schema-editor__type-button:focus-visible,
2189
- .cratis-schema-editor__key:focus-visible,
2189
+ button.cratis-schema-editor__toggle:focus-visible,
2190
2190
  .cratis-schema-editor__remove:focus-visible,
2191
2191
  .cratis-schema-editor__add:focus-visible {
2192
2192
  outline: none;
@@ -2197,7 +2197,8 @@
2197
2197
  background: var(--cratis-surface-hover);
2198
2198
  }
2199
2199
 
2200
- .cratis-schema-editor__remove {
2200
+ .cratis-schema-editor__remove,
2201
+ .cratis-schema-editor__toggle {
2201
2202
  color: var(--cratis-text-color-secondary);
2202
2203
  }
2203
2204
 
@@ -2205,11 +2206,7 @@
2205
2206
  color: var(--cratis-red-500);
2206
2207
  }
2207
2208
 
2208
- .cratis-schema-editor__key {
2209
- color: var(--cratis-text-color-secondary);
2210
- }
2211
-
2212
- .cratis-schema-editor__key[data-pressed] {
2209
+ .cratis-schema-editor__toggle[data-pressed] {
2213
2210
  border-color: var(--cratis-primary-color);
2214
2211
  background: var(--cratis-highlight-bg);
2215
2212
  color: var(--cratis-highlight-text-color);
@@ -2346,7 +2343,7 @@
2346
2343
  }
2347
2344
 
2348
2345
  .cratis-schema-editor__row[data-selected],
2349
- .cratis-schema-editor__key[data-pressed],
2346
+ .cratis-schema-editor__toggle[data-pressed],
2350
2347
  .cratis-schema-editor__menu-item[data-focused] {
2351
2348
  outline: 2px solid Highlight;
2352
2349
  }
@@ -7766,7 +7766,7 @@
7766
7766
  }
7767
7767
 
7768
7768
  .cratis-schema-editor__type-button,
7769
- .cratis-schema-editor__key,
7769
+ .cratis-schema-editor__toggle,
7770
7770
  .cratis-schema-editor__remove,
7771
7771
  .cratis-schema-editor__add {
7772
7772
  display: inline-flex;
@@ -7785,14 +7785,14 @@
7785
7785
  }
7786
7786
 
7787
7787
  .cratis-schema-editor__type-button:hover,
7788
- .cratis-schema-editor__key:hover,
7788
+ button.cratis-schema-editor__toggle:hover,
7789
7789
  .cratis-schema-editor__remove:hover,
7790
7790
  .cratis-schema-editor__add:hover {
7791
7791
  background: var(--cratis-surface-hover);
7792
7792
  }
7793
7793
 
7794
7794
  .cratis-schema-editor__type-button:focus-visible,
7795
- .cratis-schema-editor__key:focus-visible,
7795
+ button.cratis-schema-editor__toggle:focus-visible,
7796
7796
  .cratis-schema-editor__remove:focus-visible,
7797
7797
  .cratis-schema-editor__add:focus-visible {
7798
7798
  outline: none;
@@ -7803,7 +7803,8 @@
7803
7803
  background: var(--cratis-surface-hover);
7804
7804
  }
7805
7805
 
7806
- .cratis-schema-editor__remove {
7806
+ .cratis-schema-editor__remove,
7807
+ .cratis-schema-editor__toggle {
7807
7808
  color: var(--cratis-text-color-secondary);
7808
7809
  }
7809
7810
 
@@ -7811,11 +7812,7 @@
7811
7812
  color: var(--cratis-red-500);
7812
7813
  }
7813
7814
 
7814
- .cratis-schema-editor__key {
7815
- color: var(--cratis-text-color-secondary);
7816
- }
7817
-
7818
- .cratis-schema-editor__key[data-pressed] {
7815
+ .cratis-schema-editor__toggle[data-pressed] {
7819
7816
  border-color: var(--cratis-primary-color);
7820
7817
  background: var(--cratis-highlight-bg);
7821
7818
  color: var(--cratis-highlight-text-color);
@@ -7952,7 +7949,7 @@
7952
7949
  }
7953
7950
 
7954
7951
  .cratis-schema-editor__row[data-selected],
7955
- .cratis-schema-editor__key[data-pressed],
7952
+ .cratis-schema-editor__toggle[data-pressed],
7956
7953
  .cratis-schema-editor__menu-item[data-focused] {
7957
7954
  outline: 2px solid Highlight;
7958
7955
  }
@@ -65,7 +65,7 @@ export declare const cratisParts: {
65
65
  readonly Chip: readonly ['root', 'icon', 'label', 'remove'];
66
66
  readonly MarkdownEditor: readonly ['root', 'toolbar', 'format', 'toggle', 'textarea', 'preview', 'status', 'suggestions', 'suggestion'];
67
67
  readonly IconPicker: readonly ['root', 'trigger', 'glyph', 'name', 'message', 'popover', 'dialog', 'title', 'close', 'search', 'clear', 'categories', 'category', 'library', 'summary', 'status', 'group', 'groupTitle', 'showAll', 'grid', 'tile', 'tileIcon', 'tileName', 'provider', 'attribution'];
68
- readonly SchemaEditor: readonly ['root', 'header', 'list', 'property', 'row', 'leading', 'name', 'nameInput', 'badge', 'typeButton', 'menu', 'menuItem', 'required', 'key', 'accessory', 'remove', 'protected', 'details', 'add', 'empty', 'message', 'footer'];
68
+ readonly SchemaEditor: readonly ['root', 'header', 'list', 'property', 'row', 'leading', 'name', 'nameInput', 'badge', 'typeButton', 'menu', 'menuItem', 'required', 'key', 'generated', 'accessory', 'remove', 'protected', 'details', 'add', 'empty', 'message', 'footer'];
69
69
  };
70
70
  /** The canonical Components part-name manifest. */
71
71
  export type CratisPartsManifest = typeof cratisParts;
@@ -643,6 +643,7 @@ export declare const cratisPartStates: {
643
643
  readonly menuItem: readonly [];
644
644
  readonly required: readonly [];
645
645
  readonly key: readonly ["pressed"];
646
+ readonly generated: readonly ["pressed"];
646
647
  readonly accessory: readonly [];
647
648
  readonly remove: readonly [];
648
649
  readonly protected: readonly [];
@@ -1 +1 @@
1
- {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../types/parts.ts"],"names":[],"mappings":"AAKA,sEAAsE;AACtE,eAAO,MAAM,WAAW;aACpB,aAAa,YAAG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW;aACnD,WAAW,YAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;aAC/C,gBAAgB,YAAG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW;aACtD,eAAe,YAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW;aAC/D,UAAU,YAAG,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;aAC9C,iBAAiB,YAAG,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;aACxD,WAAW,YAAG,MAAM,EAAE,OAAO,EAAE,OAAO;aACtC,WAAW,YAAG,MAAM,EAAE,OAAO;aAC7B,QAAQ,YAAG,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO;aAC1K,WAAW,YAAG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO;aAC1F,gBAAgB,YAAG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO;aAC/F,gBAAgB,YAAG,MAAM,EAAE,OAAO,EAAE,OAAO;aAC3C,aAAa,YAAG,MAAM,EAAE,OAAO,EAAE,QAAQ;aACzC,cAAc,YAAG,OAAO;aACxB,aAAa,YAAG,UAAU;aAC1B,QAAQ,YAAG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW;aACjH,aAAa,YAAG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW;aACtH,gBAAgB,YAAG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW;aACzH,eAAe,YAAG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO;aACzM,aAAa,YAAG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO;aACvM,MAAM,YAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO;aAC3C,aAAa,YAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO;aAClD,UAAU,YAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO;aAC/C,SAAS,YAAG,MAAM;aAClB,QAAQ,YAAG,MAAM;aACjB,QAAQ,YAAG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO;aACvD,KAAK,YAAG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO;aACpD,MAAM,YAAG,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO;aACtD,OAAO,YAAG,MAAM;aAChB,OAAO,YAAG,SAAS,EAAE,OAAO;aAC5B,WAAW,YAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;aAC/C,IAAI,YAAG,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;aACrC,QAAQ,YAAG,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO;aACnD,WAAW,YAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;aACjD,MAAM,YAAG,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;aACzI,aAAa,YAAG,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;aAChJ,cAAc,YAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO;aACpG,aAAa,YAAG,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM;aACzQ,2BAA2B,YAAG,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM;aACvR,iBAAiB,YAAG,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM;aAC7Q,gBAAgB,YAAG,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB;aACtF,cAAc,YAAG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU;aACrE,OAAO,YAAG,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ;aACzF,UAAU,YAAG,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS;aAC/E,WAAW,YAAG,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;aAC/E,OAAO,YAAG,MAAM;aAChB,aAAa,YAAG,QAAQ,EAAE,MAAM,EAAE,OAAO;aACzC,aAAa,YAAG,gBAAgB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,2BAA2B;aAC3O,iBAAiB,YAAG,aAAa,EAAE,gBAAgB,EAAE,cAAc;aACnE,gBAAgB,YAAG,mBAAmB;aACtC,cAAc,YAAG,iBAAiB,EAAE,iBAAiB;aACrD,YAAY,YAAG,eAAe,EAAE,cAAc,EAAE,uBAAuB,EAAE,uBAAuB;aAChG,aAAa,YAAG,gBAAgB,EAAE,cAAc,EAAE,uBAAuB,EAAE,uBAAuB;aAClG,iBAAiB,YAAG,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;aAC7L,gBAAgB,YAAG,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS;aACxI,QAAQ,YAAG,MAAM;aACjB,OAAO,YAAG,MAAM,EAAE,MAAM,EAAE,MAAM;aAChC,KAAK,YAAG,MAAM;aACd,eAAe,YAAG,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO;aACjD,MAAM,YAAG,MAAM,EAAE,OAAO,EAAE,UAAU;aACpC,GAAG,YAAG,MAAM,EAAE,MAAM,EAAE,OAAO;aAC7B,WAAW,YAAG,MAAM,EAAE,WAAW,EAAE,OAAO;aAC1C,IAAI,YAAG,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;aACxC,cAAc,YAAG,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY;aACpH,UAAU,YAAG,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa;aACnR,YAAY,YAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;CACtO,CAAC;AAEX,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG,OAAO,WAAW,CAAC;AAErD,4EAA4E;AAC5E,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,mBAAmB,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1F,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,YAAI,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAEnJ,gEAAgE;AAChE,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElF;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;iBAErB,IAAM;iBACN,KAAO;iBACP,GAAK;iBACL,SAAW;;;iBAGX,IAAM;iBACN,MAAQ;iBACR,KAAO;iBACP,IAAM;;;iBAGN,IAAM;iBACN,KAAO;iBACP,GAAK;iBACL,SAAW;;;iBAGX,IAAM;iBACN,MAAQ;iBACR,KAAO;iBACP,GAAK;iBACL,SAAW;;;iBAGX,IAAM;iBACN,IAAM;iBACN,MAAQ;iBACR,KAAO;;;iBAGP,IAAM;iBACN,KAAO;iBACP,OAAS;iBACT,MAAQ;;;iBAGR,IAAM;iBACN,KAAO;iBACP,KAAO;;;iBAGP,IAAM;iBACN,KAAO;;;iBAGP,IAAM;iBACN,KAAO;iBACP,OAAS;iBACT,OAAS;iBACT,OAAS;iBACT,MAAQ;iBACR,WAAa;iBACb,iBAAmB;iBACnB,OAAS;iBACT,KAAO;iBACP,OAAS;iBACT,MAAQ;iBACR,WAAa;iBACb,KAAO;;;iBAGP,IAAM;iBACN,KAAO;iBACP,KAAO;iBACP,MAAQ;iBACR,MAAQ;iBACR,IAAM;iBACN,WAAa;iBACb,KAAO;;;iBAGP,IAAM;iBACN,KAAO;iBACP,KAAO;iBACP,MAAQ;iBACR,MAAQ;iBACR,IAAM;iBACN,WAAa;iBACb,KAAO;;;iBAGP,IAAM;iBACN,KAAO;iBACP,KAAO;;;iBAGP,IAAM;iBACN,KAAO;iBACP,MAAQ;;;iBAGR,KAAO;;;iBAGP,QAAU;;;iBAGV,IAAM;iBACN,KAAO;iBACP,MAAQ;iBACR,OAAS;iBACT,KAAO;iBACP,OAAS;iBACT,OAAS;iBACT,MAAQ;iBACR,QAAU;iBACV,SAAW;;;iBAGX,IAAM;iBACN,KAAO;iBACP,MAAQ;iBACR,OAAS;iBACT,KAAO;iBACP,OAAS;iBACT,OAAS;iBACT,MAAQ;iBACR,QAAU;iBACV,SAAW;;;iBAGX,IAAM;iBACN,KAAO;iBACP,MAAQ;iBACR,OAAS;iBACT,KAAO;iBACP,OAAS;iBACT,OAAS;iBACT,MAAQ;iBACR,QAAU;iBACV,SAAW;;;iBAGX,IAAM;iBACN,KAAO;iBACP,KAAO;iBACP,OAAS;iBACT,WAAa;iBACb,OAAS;iBACT,OAAS;iBACT,MAAQ;iBACR,QAAU;iBACV,MAAQ;iBACR,QAAU;iBACV,OAAS;iBACT,IAAM;iBACN,IAAM;iBACN,IAAM;iBACN,YAAY;iBACZ,KAAO;iBACP,KAAO;;;iBAGP,IAAM;iBACN,KAAO;iBACP,KAAO;iBACP,OAAS;iBACT,WAAa;iBACb,OAAS;iBACT,OAAS;iBACT,MAAQ;iBACR,QAAU;iBACV,MAAQ;iBACR,QAAU;iBACV,OAAS;iBACT,IAAM;iBACN,IAAM;iBACN,IAAM;iBACN,YAAY;iBACZ,KAAO;iBACP,KAAO;;;iBAGP,IAAM;iBACN,OAAS;iBACT,IAAM;iBACN,KAAO;;;iBAGP,IAAM;iBACN,OAAS;iBACT,IAAM;iBACN,KAAO;;;iBAGP,IAAM;iBACN,OAAS;iBACT,IAAM;iBACN,KAAO;;;iBAGP,IAAM;;;iBAGN,IAAM;;;iBAGN,IAAM;iBACN,KAAO;iBACP,GAAK;iBACL,SAAW;iBACX,KAAO;;;iBAGP,IAAM;iBACN,KAAO;iBACP,GAAK;iBACL,SAAW;iBACX,KAAO;;;iBAGP,IAAM;iBACN,KAAO;iBACP,OAAS;iBACT,MAAQ;iBACR,KAAO;;;iBAGP,IAAM;;;iBAGN,OAAS;iBACT,KAAO;;;iBAGP,IAAM;iBACN,MAAQ;iBACR,IAAM;iBACN,KAAO;;;iBAGP,IAAM;iBACN,IAAM;iBACN,GAAK;iBACL,KAAO;;;iBAGP,IAAM;iBACN,IAAM;iBACN,GAAK;iBACL,MAAQ;iBACR,KAAO;;;iBAGP,IAAM;iBACN,IAAM;iBACN,IAAM;iBACN,SAAW;;;iBAGX,QAAU;iBACV,UAAY;iBACZ,IAAM;iBACN,MAAQ;iBACR,KAAO;iBACP,QAAU;iBACV,KAAO;iBACP,OAAS;iBACT,YAAY;iBACZ,MAAQ;iBACR,OAAS;iBACT,MAAQ;;;iBAGR,QAAU;iBACV,UAAY;iBACZ,IAAM;iBACN,MAAQ;iBACR,KAAO;iBACP,QAAU;iBACV,KAAO;iBACP,OAAS;iBACT,YAAY;iBACZ,MAAQ;iBACR,OAAS;iBACT,MAAQ;;;iBAGR,IAAM;iBACN,IAAM;iBACN,IAAM;iBACN,MAAQ;iBACR,MAAQ;iBACR,KAAO;iBACP,SAAW;iBACX,MAAQ;iBACR,KAAO;;;iBAGP,IAAM;iBACN,MAAQ;iBACR,cAAc;iBACd,iBAAiB;iBACjB,KAAO;iBACP,IAAM;iBACN,YAAY;iBACZ,aAAa;iBACb,gBAAgB;iBAChB,IAAM;iBACN,YAAY;iBACZ,IAAM;iBACN,WAAW;iBACX,YAAY;iBACZ,aAAa;iBACb,cAAc;iBACd,aAAa;iBACb,cAAc;iBACd,GAAK;iBACL,IAAM;;;iBAGN,IAAM;iBACN,MAAQ;iBACR,cAAc;iBACd,iBAAiB;iBACjB,KAAO;iBACP,IAAM;iBACN,YAAY;iBACZ,aAAa;iBACb,gBAAgB;iBAChB,IAAM;iBACN,YAAY;iBACZ,IAAM;iBACN,WAAW;iBACX,YAAY;iBACZ,aAAa;iBACb,cAAc;iBACd,aAAa;iBACb,cAAc;iBACd,GAAK;iBACL,IAAM;;;iBAGN,IAAM;iBACN,MAAQ;iBACR,cAAc;iBACd,iBAAiB;iBACjB,KAAO;iBACP,IAAM;iBACN,YAAY;iBACZ,aAAa;iBACb,gBAAgB;iBAChB,IAAM;iBACN,YAAY;iBACZ,IAAM;iBACN,WAAW;iBACX,YAAY;iBACZ,aAAa;iBACb,cAAc;iBACd,aAAa;iBACb,cAAc;iBACd,GAAK;iBACL,IAAM;;;iBAGN,gBAAgB;iBAChB,gBAAgB;iBAChB,aAAa;iBACb,gBAAgB;;;iBAGhB,IAAM;iBACN,KAAO;iBACP,IAAM;iBACN,KAAO;iBACP,IAAM;iBACN,QAAU;;;iBAGV,MAAQ;iBACR,KAAO;iBACP,IAAM;iBACN,OAAS;iBACT,KAAO;iBACP,WAAa;iBACb,KAAO;iBACP,MAAQ;;;iBAGR,QAAU;iBACV,KAAO;iBACP,SAAW;iBACX,MAAQ;iBACR,SAAW;iBACX,OAAS;;;iBAGT,QAAU;iBACV,IAAM;iBACN,MAAQ;iBACR,IAAM;iBACN,KAAO;iBACP,KAAO;iBACP,OAAS;;;iBAGT,IAAM;;;iBAGN,MAAQ;iBACR,IAAM;iBACN,KAAO;;;iBAGP,gBAAgB;iBAChB,wBAAwB;iBACxB,sBAAsB;iBACtB,uBAAuB;iBACvB,sBAAsB;iBACtB,sBAAsB;iBACtB,qBAAqB;iBACrB,0BAA0B;iBAC1B,2BAA2B;;;iBAG3B,aAAa;iBACb,gBAAgB;iBAChB,cAAc;;;iBAGd,mBAAmB;;;iBAGnB,iBAAiB;iBACjB,iBAAiB;;;iBAGjB,eAAe;iBACf,cAAc;iBACd,uBAAuB;iBACvB,uBAAuB;;;iBAGvB,gBAAgB;iBAChB,cAAc;iBACd,uBAAuB;iBACvB,uBAAuB;;;iBAGvB,IAAM;iBACN,OAAS;iBACT,YAAc;iBACd,IAAM;iBACN,IAAM;iBACN,MAAQ;iBACR,MAAQ;iBACR,QAAU;iBACV,KAAO;iBACP,IAAM;iBACN,WAAa;iBACb,MAAQ;iBACR,GAAK;iBACL,OAAS;iBACT,KAAO;iBACP,KAAO;iBACP,MAAQ;;;iBAGR,IAAM;iBACN,KAAO;iBACP,UAAY;iBACZ,gBAAkB;iBAClB,QAAU;iBACV,KAAO;iBACP,KAAO;iBACP,KAAO;iBACP,MAAQ;iBACR,IAAM;iBACN,OAAS;;;iBAGT,IAAM;;;iBAGN,IAAM;iBACN,IAAM;iBACN,IAAM;;;iBAGN,IAAM;;;iBAGN,IAAM;iBACN,GAAK;iBACL,KAAO;iBACP,KAAO;;;iBAGP,IAAM;iBACN,KAAO;iBACP,QAAU;;;iBAGV,IAAM;iBACN,IAAM;iBACN,KAAO;;;iBAGP,IAAM;iBACN,SAAW;iBACX,KAAO;;;iBAGP,IAAM;iBACN,IAAM;iBACN,KAAO;iBACP,MAAQ;;;iBAGR,IAAM;iBACN,OAAS;iBACT,MAAQ;iBACR,MAAQ;iBACR,QAAU;iBACV,OAAS;iBACT,MAAQ;iBACR,WAAa;iBACb,UAAY;;;iBAGZ,IAAM;iBACN,OAAS;iBACT,KAAO;iBACP,IAAM;iBACN,OAAS;iBACT,OAAS;iBACT,MAAQ;iBACR,KAAO;iBACP,KAAO;iBACP,MAAQ;iBACR,KAAO;iBACP,UAAY;iBACZ,QAAU;iBACV,OAAS;iBACT,OAAS;iBACT,MAAQ;iBACR,KAAO;iBACP,UAAY;iBACZ,OAAS;iBACT,IAAM;iBACN,IAAM;iBACN,QAAU;iBACV,QAAU;iBACV,QAAU;iBACV,WAAa;;;iBAGb,IAAM;iBACN,MAAQ;iBACR,IAAM;iBACN,QAAU;iBACV,GAAK;iBACL,OAAS;iBACT,IAAM;iBACN,SAAW;iBACX,KAAO;iBACP,UAAY;iBACZ,IAAM;iBACN,QAAU;iBACV,QAAU;iBACV,GAAK;iBACL,SAAW;iBACX,MAAQ;iBACR,SAAW;iBACX,OAAS;iBACT,GAAK;iBACL,KAAO;iBACP,OAAS;iBACT,MAAQ;;CAMf,CAAC;AAEF,mDAAmD;AACnD,MAAM,MAAM,wBAAwB,GAAG,OAAO,gBAAgB,CAAC;AAE/D,6DAA6D;AAC7D,MAAM,MAAM,YAAY,CACpB,SAAS,SAAS,MAAM,wBAAwB,EAChD,IAAI,SAAS,MAAM,wBAAwB,CAAC,SAAS,CAAC,IACtD,wBAAwB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,GACxE,KAAK,GACL,KAAK,CAAC"}
1
+ {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../types/parts.ts"],"names":[],"mappings":"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"}