@rippling/rippling-sdk 0.2.0-alpha.38 → 0.2.0-alpha.39

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 (132) hide show
  1. package/lib/manifest/app.d.mts +11 -1
  2. package/lib/manifest/app.d.mts.map +1 -1
  3. package/lib/manifest/app.d.ts +11 -1
  4. package/lib/manifest/app.d.ts.map +1 -1
  5. package/lib/manifest/app.js +42 -1
  6. package/lib/manifest/app.js.map +1 -1
  7. package/lib/manifest/app.mjs +42 -1
  8. package/lib/manifest/app.mjs.map +1 -1
  9. package/lib/manifest/category.d.mts +10 -1
  10. package/lib/manifest/category.d.mts.map +1 -1
  11. package/lib/manifest/category.d.ts +10 -1
  12. package/lib/manifest/category.d.ts.map +1 -1
  13. package/lib/manifest/category.js +23 -1
  14. package/lib/manifest/category.js.map +1 -1
  15. package/lib/manifest/category.mjs +23 -1
  16. package/lib/manifest/category.mjs.map +1 -1
  17. package/lib/manifest/custom-object-field-section.d.mts +13 -0
  18. package/lib/manifest/custom-object-field-section.d.mts.map +1 -1
  19. package/lib/manifest/custom-object-field-section.d.ts +13 -0
  20. package/lib/manifest/custom-object-field-section.d.ts.map +1 -1
  21. package/lib/manifest/custom-object-field-section.js +22 -1
  22. package/lib/manifest/custom-object-field-section.js.map +1 -1
  23. package/lib/manifest/custom-object-field-section.mjs +22 -1
  24. package/lib/manifest/custom-object-field-section.mjs.map +1 -1
  25. package/lib/manifest/custom-object-page-layout.d.mts +21 -0
  26. package/lib/manifest/custom-object-page-layout.d.mts.map +1 -1
  27. package/lib/manifest/custom-object-page-layout.d.ts +21 -0
  28. package/lib/manifest/custom-object-page-layout.d.ts.map +1 -1
  29. package/lib/manifest/custom-object-page-layout.js +41 -1
  30. package/lib/manifest/custom-object-page-layout.js.map +1 -1
  31. package/lib/manifest/custom-object-page-layout.mjs +41 -1
  32. package/lib/manifest/custom-object-page-layout.mjs.map +1 -1
  33. package/lib/manifest/custom-object.d.mts +11 -1
  34. package/lib/manifest/custom-object.d.mts.map +1 -1
  35. package/lib/manifest/custom-object.d.ts +11 -1
  36. package/lib/manifest/custom-object.d.ts.map +1 -1
  37. package/lib/manifest/custom-object.js +55 -2
  38. package/lib/manifest/custom-object.js.map +1 -1
  39. package/lib/manifest/custom-object.mjs +55 -2
  40. package/lib/manifest/custom-object.mjs.map +1 -1
  41. package/lib/manifest/existing-manifest-context.d.mts +87 -0
  42. package/lib/manifest/existing-manifest-context.d.mts.map +1 -0
  43. package/lib/manifest/existing-manifest-context.d.ts +87 -0
  44. package/lib/manifest/existing-manifest-context.d.ts.map +1 -0
  45. package/lib/manifest/existing-manifest-context.js +511 -0
  46. package/lib/manifest/existing-manifest-context.js.map +1 -0
  47. package/lib/manifest/existing-manifest-context.mjs +506 -0
  48. package/lib/manifest/existing-manifest-context.mjs.map +1 -0
  49. package/lib/manifest/field.d.mts +24 -0
  50. package/lib/manifest/field.d.mts.map +1 -1
  51. package/lib/manifest/field.d.ts +24 -0
  52. package/lib/manifest/field.d.ts.map +1 -1
  53. package/lib/manifest/field.js +114 -1
  54. package/lib/manifest/field.js.map +1 -1
  55. package/lib/manifest/field.mjs +114 -1
  56. package/lib/manifest/field.mjs.map +1 -1
  57. package/lib/manifest/index.d.mts +8 -7
  58. package/lib/manifest/index.d.mts.map +1 -1
  59. package/lib/manifest/index.d.ts +8 -7
  60. package/lib/manifest/index.d.ts.map +1 -1
  61. package/lib/manifest/index.js +3 -1
  62. package/lib/manifest/index.js.map +1 -1
  63. package/lib/manifest/index.mjs +5 -4
  64. package/lib/manifest/index.mjs.map +1 -1
  65. package/lib/manifest/list-view.d.mts +17 -0
  66. package/lib/manifest/list-view.d.mts.map +1 -1
  67. package/lib/manifest/list-view.d.ts +17 -0
  68. package/lib/manifest/list-view.d.ts.map +1 -1
  69. package/lib/manifest/list-view.js +38 -1
  70. package/lib/manifest/list-view.js.map +1 -1
  71. package/lib/manifest/list-view.mjs +38 -1
  72. package/lib/manifest/list-view.mjs.map +1 -1
  73. package/lib/manifest/manifest-builder.d.mts +59 -6
  74. package/lib/manifest/manifest-builder.d.mts.map +1 -1
  75. package/lib/manifest/manifest-builder.d.ts +59 -6
  76. package/lib/manifest/manifest-builder.d.ts.map +1 -1
  77. package/lib/manifest/manifest-builder.js +61 -3
  78. package/lib/manifest/manifest-builder.js.map +1 -1
  79. package/lib/manifest/manifest-builder.mjs +61 -3
  80. package/lib/manifest/manifest-builder.mjs.map +1 -1
  81. package/lib/manifest/manifest-function.d.mts +10 -1
  82. package/lib/manifest/manifest-function.d.mts.map +1 -1
  83. package/lib/manifest/manifest-function.d.ts +10 -1
  84. package/lib/manifest/manifest-function.d.ts.map +1 -1
  85. package/lib/manifest/manifest-function.js +36 -1
  86. package/lib/manifest/manifest-function.js.map +1 -1
  87. package/lib/manifest/manifest-function.mjs +36 -1
  88. package/lib/manifest/manifest-function.mjs.map +1 -1
  89. package/lib/manifest/rule.d.mts +17 -0
  90. package/lib/manifest/rule.d.mts.map +1 -1
  91. package/lib/manifest/rule.d.ts +17 -0
  92. package/lib/manifest/rule.d.ts.map +1 -1
  93. package/lib/manifest/rule.js +45 -1
  94. package/lib/manifest/rule.js.map +1 -1
  95. package/lib/manifest/rule.mjs +45 -1
  96. package/lib/manifest/rule.mjs.map +1 -1
  97. package/lib/manifest/sdui-page.d.mts +10 -1
  98. package/lib/manifest/sdui-page.d.mts.map +1 -1
  99. package/lib/manifest/sdui-page.d.ts +10 -1
  100. package/lib/manifest/sdui-page.d.ts.map +1 -1
  101. package/lib/manifest/sdui-page.js +28 -1
  102. package/lib/manifest/sdui-page.js.map +1 -1
  103. package/lib/manifest/sdui-page.mjs +28 -1
  104. package/lib/manifest/sdui-page.mjs.map +1 -1
  105. package/lib/manifest/validation.d.mts +17 -0
  106. package/lib/manifest/validation.d.mts.map +1 -1
  107. package/lib/manifest/validation.d.ts +17 -0
  108. package/lib/manifest/validation.d.ts.map +1 -1
  109. package/lib/manifest/validation.js +31 -1
  110. package/lib/manifest/validation.js.map +1 -1
  111. package/lib/manifest/validation.mjs +31 -1
  112. package/lib/manifest/validation.mjs.map +1 -1
  113. package/package.json +1 -1
  114. package/src/lib/manifest/app.ts +46 -2
  115. package/src/lib/manifest/category.ts +28 -2
  116. package/src/lib/manifest/custom-object-field-section.ts +37 -1
  117. package/src/lib/manifest/custom-object-page-layout.ts +61 -1
  118. package/src/lib/manifest/custom-object.ts +58 -3
  119. package/src/lib/manifest/existing-manifest-context.ts +673 -0
  120. package/src/lib/manifest/field.ts +140 -1
  121. package/src/lib/manifest/index.ts +39 -4
  122. package/src/lib/manifest/list-view.ts +50 -1
  123. package/src/lib/manifest/manifest-builder.ts +114 -4
  124. package/src/lib/manifest/manifest-function.ts +36 -2
  125. package/src/lib/manifest/rule.ts +60 -1
  126. package/src/lib/manifest/sdui-page.ts +37 -2
  127. package/src/lib/manifest/validation.ts +48 -1
  128. package/src/version.ts +1 -1
  129. package/version.d.mts +1 -1
  130. package/version.d.ts +1 -1
  131. package/version.js +1 -1
  132. package/version.mjs +1 -1
@@ -0,0 +1,511 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExistingManifestContext = void 0;
4
+ exports.getExistingManifestContext = getExistingManifestContext;
5
+ const app_1 = require("./app.js");
6
+ const category_1 = require("./category.js");
7
+ const custom_object_1 = require("./custom-object.js");
8
+ const custom_object_field_section_1 = require("./custom-object-field-section.js");
9
+ const custom_object_page_layout_1 = require("./custom-object-page-layout.js");
10
+ const field_1 = require("./field.js");
11
+ const list_view_1 = require("./list-view.js");
12
+ const manifest_builder_1 = require("./manifest-builder.js");
13
+ const manifest_function_1 = require("./manifest-function.js");
14
+ const rule_1 = require("./rule.js");
15
+ const sdui_page_1 = require("./sdui-page.js");
16
+ const validation_1 = require("./validation.js");
17
+ class ExistingRawComponent {
18
+ constructor(component) {
19
+ this.component = component;
20
+ }
21
+ toDict() {
22
+ return cloneJson(this.component);
23
+ }
24
+ }
25
+ function cloneJson(value) {
26
+ if (value == null)
27
+ return value;
28
+ return JSON.parse(JSON.stringify(value));
29
+ }
30
+ function parseExistingManifest(source) {
31
+ const parsed = typeof source === 'string' ? JSON.parse(source) : source;
32
+ if (Array.isArray(parsed)) {
33
+ return { components: parsed };
34
+ }
35
+ if (parsed == null || typeof parsed !== 'object') {
36
+ throw new TypeError('Existing manifest JSON must be an object with a components array.');
37
+ }
38
+ const components = parsed.components;
39
+ if (!Array.isArray(components)) {
40
+ throw new TypeError('Existing manifest JSON must include a components array.');
41
+ }
42
+ const manifest = { components };
43
+ const metadata = parsed.metadata;
44
+ if (metadata !== undefined)
45
+ manifest.metadata = metadata;
46
+ return manifest;
47
+ }
48
+ function splitQualifiedId(value) {
49
+ if (value == null)
50
+ return {};
51
+ const separatorIndex = value.indexOf('.');
52
+ if (separatorIndex < 0)
53
+ return { childId: value };
54
+ return {
55
+ parentId: value.slice(0, separatorIndex),
56
+ childId: value.slice(separatorIndex + 1),
57
+ };
58
+ }
59
+ function componentLabel(component) {
60
+ const type = component['type'] ?? 'UNKNOWN';
61
+ const id = component['api_name'] ??
62
+ component['layout_id'] ??
63
+ component['view_id'] ??
64
+ component['rule_id'] ??
65
+ component['flow_id'] ??
66
+ component['sdui_page_id'] ??
67
+ component['field_api_name'] ??
68
+ component['section_id'] ??
69
+ 'unknown';
70
+ return `${type}:${id}`;
71
+ }
72
+ function getExistingManifestContext(options) {
73
+ if (options?.context != null) {
74
+ return options.context;
75
+ }
76
+ return ExistingManifestContext.active();
77
+ }
78
+ class ExistingManifestContext {
79
+ constructor(source) {
80
+ this.componentsByType = new Map();
81
+ this.componentIndexes = new WeakMap();
82
+ this.cache = new Map();
83
+ this.loading = new Set();
84
+ this.manifest = parseExistingManifest(source);
85
+ this.components = this.manifest.components;
86
+ this.components.forEach((component, index) => {
87
+ this.componentIndexes.set(component, index);
88
+ const type = component['type'];
89
+ if (typeof type !== 'string')
90
+ return;
91
+ const bucket = this.componentsByType.get(type) ?? [];
92
+ bucket.push(component);
93
+ this.componentsByType.set(type, bucket);
94
+ });
95
+ }
96
+ static fromJson(source) {
97
+ const context = new ExistingManifestContext(source);
98
+ ExistingManifestContext._active = context;
99
+ return context;
100
+ }
101
+ static active() {
102
+ if (ExistingManifestContext._active == null) {
103
+ throw new Error('No existing manifest JSON has been loaded. Call ManifestBuilder.useExistingJson(json) first.');
104
+ }
105
+ return ExistingManifestContext._active;
106
+ }
107
+ static clearActive() {
108
+ ExistingManifestContext._active = undefined;
109
+ }
110
+ getManifestBuilder() {
111
+ if (this.builder == null) {
112
+ const metadata = this.manifest.metadata ?? {};
113
+ const key = metadata['key'];
114
+ if (typeof key !== 'string' || key.length === 0) {
115
+ throw new Error('Existing manifest metadata.key is required to create a ManifestBuilder.');
116
+ }
117
+ const props = {
118
+ key,
119
+ name: typeof metadata['name'] === 'string' ? metadata['name'] : key,
120
+ };
121
+ if (typeof metadata['description'] === 'string') {
122
+ props['description'] = metadata['description'];
123
+ }
124
+ this.builder = new manifest_builder_1.ManifestBuilder(props);
125
+ }
126
+ return this.builder;
127
+ }
128
+ loadManifestBuilder() {
129
+ const builder = this.getManifestBuilder();
130
+ this.loadAll();
131
+ return builder;
132
+ }
133
+ loadAll() {
134
+ this.getManifestBuilder();
135
+ for (const component of this.components) {
136
+ this.loadComponent(component);
137
+ }
138
+ }
139
+ loadCategory(apiName) {
140
+ const component = this.findUnique('CUSTOM_CATEGORY', (candidate) => candidate['api_name'] === apiName, `CUSTOM_CATEGORY ${apiName}`);
141
+ return this.loadCategoryComponent(component);
142
+ }
143
+ loadCustomObject(apiName) {
144
+ const component = this.findUnique('CUSTOM_OBJECT', (candidate) => candidate['api_name'] === apiName, `CUSTOM_OBJECT ${apiName}`);
145
+ return this.loadCustomObjectComponent(component);
146
+ }
147
+ loadFieldSection(sectionIdOrQualifiedId, options = {}) {
148
+ const qualified = splitQualifiedId(sectionIdOrQualifiedId);
149
+ const sectionId = qualified.childId ?? sectionIdOrQualifiedId;
150
+ const modelApiName = options.customObjectApiName ?? qualified.parentId;
151
+ const component = this.findUnique('CUSTOM_OBJECT_FIELD_SECTION', (candidate) => candidate['section_id'] === sectionId &&
152
+ (modelApiName == null || candidate['model_name'] === modelApiName), `CUSTOM_OBJECT_FIELD_SECTION ${modelApiName != null ? `${modelApiName}.` : ''}${sectionId}`);
153
+ return this.loadFieldSectionComponent(component);
154
+ }
155
+ loadField(fieldApiNameOrQualifiedId, options = {}) {
156
+ const qualified = splitQualifiedId(fieldApiNameOrQualifiedId);
157
+ const fieldApiName = qualified.childId ?? fieldApiNameOrQualifiedId;
158
+ const customObjectApiName = options.customObjectApiName ?? qualified.parentId;
159
+ return this.loadFieldByObjectAndApi(customObjectApiName, fieldApiName);
160
+ }
161
+ loadListView(viewId, options = {}) {
162
+ const objectApiName = options.customObjectApiName;
163
+ const component = this.findUnique('CUSTOM_OBJECT_LIST_VIEW', (candidate) => candidate['view_id'] === viewId &&
164
+ (objectApiName == null || candidate['object_rql_name'] === objectApiName), `CUSTOM_OBJECT_LIST_VIEW ${objectApiName != null ? `${objectApiName}.` : ''}${viewId}`);
165
+ return this.loadListViewComponent(component);
166
+ }
167
+ loadPageLayout(layoutIdOrApiName, options = {}) {
168
+ const objectApiName = options.customObjectApiName;
169
+ const component = this.findUnique('CUSTOM_OBJECT_PAGE_LAYOUT', (candidate) => (candidate['layout_id'] === layoutIdOrApiName || candidate['api_name'] === layoutIdOrApiName) &&
170
+ (objectApiName == null || candidate['object_rql_name'] === objectApiName), `CUSTOM_OBJECT_PAGE_LAYOUT ${objectApiName != null ? `${objectApiName}.` : ''}${layoutIdOrApiName}`);
171
+ return this.loadPageLayoutComponent(component);
172
+ }
173
+ loadValidation(ruleId, options = {}) {
174
+ const objectApiName = options.customObjectApiName;
175
+ const component = this.findUnique('CUSTOM_OBJECT_VALIDATION_RULE', (candidate) => candidate['rule_id'] === ruleId &&
176
+ (objectApiName == null || candidate['model_rql_name'] === objectApiName), `CUSTOM_OBJECT_VALIDATION_RULE ${objectApiName != null ? `${objectApiName}.` : ''}${ruleId}`);
177
+ return this.loadValidationComponent(component);
178
+ }
179
+ loadRule(flowId, options = {}) {
180
+ const objectApiName = options.customObjectApiName;
181
+ const component = this.findUnique('CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW', (candidate) => candidate['flow_id'] === flowId &&
182
+ (objectApiName == null || candidate['model_rql_name'] === objectApiName), `CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW ${objectApiName != null ? `${objectApiName}.` : ''}${flowId}`);
183
+ return this.loadRuleComponent(component);
184
+ }
185
+ loadFunction(apiName) {
186
+ const component = this.findUnique('FUNCTION', (candidate) => candidate['api_name'] === apiName, `FUNCTION ${apiName}`);
187
+ return this.loadFunctionComponent(component);
188
+ }
189
+ loadSduiPage(sduiPageId) {
190
+ const component = this.findUnique('SDUI_PAGE', (candidate) => candidate['sdui_page_id'] === sduiPageId, `SDUI_PAGE ${sduiPageId}`);
191
+ return this.loadSduiPageComponent(component);
192
+ }
193
+ loadApp(apiName) {
194
+ const component = this.findUnique('CUSTOM_APP', (candidate) => candidate['api_name'] === apiName, `CUSTOM_APP ${apiName}`);
195
+ return this.loadAppComponent(component);
196
+ }
197
+ loadComponent(component) {
198
+ switch (component['type']) {
199
+ case 'CUSTOM_CATEGORY':
200
+ return this.loadCategoryComponent(component);
201
+ case 'CUSTOM_OBJECT':
202
+ return this.loadCustomObjectComponent(component);
203
+ case 'CUSTOM_OBJECT_FIELD_SECTION':
204
+ return this.loadFieldSectionComponent(component);
205
+ case 'CUSTOM_OBJECT_FIELD':
206
+ return this.loadFieldComponent(component);
207
+ case 'CUSTOM_OBJECT_LIST_VIEW':
208
+ return this.loadListViewComponent(component);
209
+ case 'CUSTOM_OBJECT_PAGE_LAYOUT':
210
+ return this.loadPageLayoutComponent(component);
211
+ case 'CUSTOM_OBJECT_VALIDATION_RULE':
212
+ return this.loadValidationComponent(component);
213
+ case 'CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW':
214
+ return this.loadRuleComponent(component);
215
+ case 'FUNCTION':
216
+ return this.loadFunctionComponent(component);
217
+ case 'SDUI_PAGE':
218
+ return this.loadSduiPageComponent(component);
219
+ case 'CUSTOM_APP':
220
+ return this.loadAppComponent(component);
221
+ default:
222
+ return this.loadRawComponent(component);
223
+ }
224
+ }
225
+ loadCategoryComponent(component) {
226
+ const cacheKey = this.cacheKey('CUSTOM_CATEGORY', component['api_name']);
227
+ return this.getOrLoad(cacheKey, () => category_1.Category._fromExistingComponent(this.getManifestBuilder(), component));
228
+ }
229
+ loadCustomObjectComponent(component) {
230
+ const cacheKey = this.cacheKey('CUSTOM_OBJECT', component['api_name']);
231
+ return this.getOrLoad(cacheKey, () => {
232
+ return custom_object_1.CustomObject._fromExistingComponent(this.getManifestBuilder(), component, (categoryApiName) => this.hasComponent('CUSTOM_CATEGORY', (c) => c['api_name'] === categoryApiName) ?
233
+ this.loadCategory(categoryApiName)
234
+ : categoryApiName);
235
+ });
236
+ }
237
+ loadFieldSectionComponent(component) {
238
+ const cacheKey = this.cacheKey('CUSTOM_OBJECT_FIELD_SECTION', `${component['model_name']}.${component['section_id']}`);
239
+ return this.getOrLoad(cacheKey, () => {
240
+ const customObject = this.loadCustomObject(component['model_name']);
241
+ return custom_object_field_section_1.CustomObjectFieldSection._fromExistingComponent(customObject, component);
242
+ });
243
+ }
244
+ loadFieldComponent(component) {
245
+ const customObjectApiName = component['custom_object_api_name'];
246
+ const fieldApiName = component['field_api_name'];
247
+ if (component['is_standard'] === true) {
248
+ this.loadCustomObject(customObjectApiName);
249
+ return this.loadFieldReferenceComponent(component);
250
+ }
251
+ const cacheKey = this.cacheKey('CUSTOM_OBJECT_FIELD', `${customObjectApiName}.${fieldApiName}`);
252
+ return this.getOrLoad(cacheKey, () => {
253
+ const customObject = this.loadCustomObject(customObjectApiName);
254
+ const sectionId = component['section'];
255
+ if (typeof sectionId === 'string') {
256
+ this.loadFieldSectionIfPresent(customObjectApiName, sectionId);
257
+ }
258
+ this.loadFieldRelationshipDependencies(component);
259
+ return field_1.Field._fromExistingComponent(customObject, component);
260
+ });
261
+ }
262
+ loadListViewComponent(component) {
263
+ const cacheKey = this.cacheKey('CUSTOM_OBJECT_LIST_VIEW', `${component['object_rql_name']}.${component['view_id']}`);
264
+ return this.getOrLoad(cacheKey, () => {
265
+ const customObjectApiName = component['object_rql_name'];
266
+ const customObject = this.loadCustomObject(customObjectApiName);
267
+ return list_view_1.ListViewDef._fromExistingComponent(customObject, component, (fieldApiName) => this.loadFieldByObjectAndApi(customObjectApiName, fieldApiName));
268
+ });
269
+ }
270
+ loadPageLayoutComponent(component) {
271
+ const cacheKey = this.cacheKey('CUSTOM_OBJECT_PAGE_LAYOUT', component['layout_id'] ?? `${component['object_rql_name']}.${component['api_name']}`);
272
+ return this.getOrLoad(cacheKey, () => {
273
+ const customObjectApiName = component['object_rql_name'];
274
+ const customObject = this.loadCustomObject(customObjectApiName);
275
+ this.loadPageLayoutDependencies(customObjectApiName, component);
276
+ return custom_object_page_layout_1.CustomObjectPageLayout._fromExistingComponent(customObject, component);
277
+ });
278
+ }
279
+ loadValidationComponent(component) {
280
+ const cacheKey = this.cacheKey('CUSTOM_OBJECT_VALIDATION_RULE', `${component['model_rql_name']}.${component['rule_id']}`);
281
+ return this.getOrLoad(cacheKey, () => {
282
+ const customObjectApiName = component['model_rql_name'];
283
+ const customObject = this.loadCustomObject(customObjectApiName);
284
+ return validation_1.Validation._fromExistingComponent(customObject, component, (fieldApiName) => this.loadFieldByObjectAndApi(customObjectApiName, fieldApiName));
285
+ });
286
+ }
287
+ loadRuleComponent(component) {
288
+ const cacheKey = this.cacheKey('CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW', `${component['model_rql_name']}.${component['flow_id']}`);
289
+ return this.getOrLoad(cacheKey, () => {
290
+ const customObjectApiName = component['model_rql_name'];
291
+ const customObject = this.loadCustomObject(customObjectApiName);
292
+ return rule_1.Rule._fromExistingComponent(customObject, component, (fieldApiName) => this.loadFieldByObjectAndApi(customObjectApiName, fieldApiName));
293
+ });
294
+ }
295
+ loadFunctionComponent(component) {
296
+ const cacheKey = this.cacheKey('FUNCTION', component['api_name']);
297
+ return this.getOrLoad(cacheKey, () => manifest_function_1.ManifestFunction._fromExistingComponent(this.getManifestBuilder(), component));
298
+ }
299
+ loadSduiPageComponent(component) {
300
+ const cacheKey = this.cacheKey('SDUI_PAGE', component['sdui_page_id']);
301
+ return this.getOrLoad(cacheKey, () => {
302
+ return sdui_page_1.SduiPage._fromExistingComponent(this.getManifestBuilder(), component, (functionApiName) => this.hasComponent('FUNCTION', (c) => c['api_name'] === functionApiName) ?
303
+ this.loadFunction(functionApiName)
304
+ : functionApiName);
305
+ });
306
+ }
307
+ loadAppComponent(component) {
308
+ const cacheKey = this.cacheKey('CUSTOM_APP', component['api_name']);
309
+ return this.getOrLoad(cacheKey, () => {
310
+ this.loadAppDependencies(component);
311
+ return app_1.App._fromExistingComponent(this.getManifestBuilder(), component);
312
+ });
313
+ }
314
+ loadRawComponent(component) {
315
+ const index = this.componentIndexes.get(component) ?? -1;
316
+ const cacheKey = this.cacheKey('RAW', `${index}:${componentLabel(component)}`);
317
+ return this.getOrLoad(cacheKey, () => {
318
+ const raw = new ExistingRawComponent(component);
319
+ this.getManifestBuilder()._register(raw);
320
+ return raw;
321
+ });
322
+ }
323
+ loadFieldByObjectAndApi(customObjectApiName, fieldApiName) {
324
+ const component = this.findFieldComponent(customObjectApiName, fieldApiName);
325
+ if (component != null) {
326
+ return this.loadFieldComponent(component);
327
+ }
328
+ if (customObjectApiName != null) {
329
+ this.loadCustomObject(customObjectApiName);
330
+ }
331
+ if (fieldApiName.endsWith('__c')) {
332
+ const prefix = customObjectApiName != null ? `${customObjectApiName}.` : '';
333
+ throw new Error(`Could not find CUSTOM_OBJECT_FIELD ${prefix}${fieldApiName}.`);
334
+ }
335
+ return this.loadSyntheticFieldReference(customObjectApiName ?? '', fieldApiName);
336
+ }
337
+ findFieldComponent(customObjectApiName, fieldApiName) {
338
+ const matches = this.ofType('CUSTOM_OBJECT_FIELD').filter((candidate) => candidate['field_api_name'] === fieldApiName &&
339
+ (customObjectApiName == null || candidate['custom_object_api_name'] === customObjectApiName));
340
+ if (matches.length > 1) {
341
+ throw new Error(`Ambiguous CUSTOM_OBJECT_FIELD ${fieldApiName}; pass customObjectApiName to choose one.`);
342
+ }
343
+ return matches[0];
344
+ }
345
+ loadFieldReferenceComponent(component) {
346
+ const cacheKey = this.cacheKey('CUSTOM_OBJECT_FIELD_REF', `${component['custom_object_api_name']}.${component['field_api_name']}`);
347
+ return this.getOrLoad(cacheKey, () => field_1.Field._referenceFromExistingComponent(component));
348
+ }
349
+ loadSyntheticFieldReference(customObjectApiName, fieldApiName) {
350
+ const cacheKey = this.cacheKey('CUSTOM_OBJECT_FIELD_REF', `${customObjectApiName}.${fieldApiName}`);
351
+ return this.getOrLoad(cacheKey, () => field_1.Field._syntheticReference(customObjectApiName, fieldApiName));
352
+ }
353
+ loadFieldRelationshipDependencies(component) {
354
+ const dataType = component['data_type'] ?? {};
355
+ const targetApiName = dataType['og_model_rql_name'];
356
+ if (typeof targetApiName === 'string' &&
357
+ this.hasComponent('CUSTOM_OBJECT', (c) => c['api_name'] === targetApiName)) {
358
+ this.loadCustomObject(targetApiName);
359
+ }
360
+ const summary = component['derived_aggregated_field'];
361
+ if (summary == null || typeof summary !== 'object')
362
+ return;
363
+ const childModel = summary['child_model_name'];
364
+ if (typeof childModel === 'string' &&
365
+ this.hasComponent('CUSTOM_OBJECT', (c) => c['api_name'] === childModel)) {
366
+ this.loadCustomObject(childModel);
367
+ this.loadSummaryFieldDependency(childModel, summary['field_to_aggregate']);
368
+ this.loadSummaryFieldDependency(childModel, summary['lookup_field_api_name']);
369
+ for (const filter of summary['filters'] ?? []) {
370
+ this.loadSummaryFieldDependency(childModel, filter['field_name']);
371
+ }
372
+ }
373
+ }
374
+ loadSummaryFieldDependency(childModel, fieldApiName) {
375
+ if (typeof fieldApiName === 'string') {
376
+ this.loadFieldByObjectAndApi(childModel, fieldApiName);
377
+ }
378
+ }
379
+ loadPageLayoutDependencies(customObjectApiName, component) {
380
+ this.loadHeaderDependencies(customObjectApiName, component['header_edits']);
381
+ this.loadTabDependencies(customObjectApiName, component['tab_edits']);
382
+ }
383
+ loadHeaderDependencies(customObjectApiName, headerEdits) {
384
+ if (headerEdits == null || typeof headerEdits !== 'object')
385
+ return;
386
+ const edits = headerEdits;
387
+ this.loadFieldDependencyIfString(customObjectApiName, edits['newTitleField']);
388
+ this.loadFieldDependencyIfString(customObjectApiName, edits['newDescriptionField']);
389
+ for (const field of edits['newFields'] ?? []) {
390
+ this.loadFieldDependencyIfString(customObjectApiName, field['rqlName']);
391
+ }
392
+ for (const systemEdit of Object.values(edits['systemFieldEdits'] ?? {})) {
393
+ if (systemEdit != null && typeof systemEdit === 'object') {
394
+ this.loadFieldDependencyIfString(customObjectApiName, systemEdit['newRqlField']);
395
+ }
396
+ }
397
+ }
398
+ loadTabDependencies(customObjectApiName, tabEdits) {
399
+ if (tabEdits == null || typeof tabEdits !== 'object')
400
+ return;
401
+ const edits = tabEdits;
402
+ for (const tab of edits['newTabs'] ?? []) {
403
+ this.loadTabEntryDependencies(customObjectApiName, tab);
404
+ }
405
+ for (const tabEdit of Object.values(edits['systemTabEdits'] ?? {})) {
406
+ if (tabEdit == null || typeof tabEdit !== 'object')
407
+ continue;
408
+ const edit = tabEdit;
409
+ for (const section of edit['newSections'] ?? []) {
410
+ this.loadSectionDependencies(customObjectApiName, section);
411
+ }
412
+ for (const sectionEdit of Object.values(edit['systemSectionEdits'] ?? {})) {
413
+ if (sectionEdit == null || typeof sectionEdit !== 'object')
414
+ continue;
415
+ for (const field of sectionEdit['newFields'] ?? []) {
416
+ this.loadSerializedFieldDependency(customObjectApiName, field);
417
+ }
418
+ }
419
+ }
420
+ }
421
+ loadTabEntryDependencies(customObjectApiName, tab) {
422
+ if (tab == null || typeof tab !== 'object')
423
+ return;
424
+ if (tab['type'] !== 'tab_with_sections')
425
+ return;
426
+ for (const section of tab['sections'] ?? []) {
427
+ this.loadSectionDependencies(customObjectApiName, section);
428
+ }
429
+ }
430
+ loadSectionDependencies(customObjectApiName, section) {
431
+ if (section == null || typeof section !== 'object')
432
+ return;
433
+ const sectionRecord = section;
434
+ this.loadFieldSectionIfPresent(customObjectApiName, sectionRecord['key']);
435
+ for (const field of sectionRecord['fields'] ?? []) {
436
+ this.loadSerializedFieldDependency(customObjectApiName, field);
437
+ }
438
+ }
439
+ loadSerializedFieldDependency(customObjectApiName, field) {
440
+ if (typeof field === 'string') {
441
+ this.loadFieldByObjectAndApi(customObjectApiName, field);
442
+ return;
443
+ }
444
+ if (field == null || typeof field !== 'object')
445
+ return;
446
+ const record = field;
447
+ this.loadFieldDependencyIfString(customObjectApiName, record['fieldRqlName'] ?? record['field_rql_name']);
448
+ }
449
+ loadFieldDependencyIfString(customObjectApiName, fieldApiName) {
450
+ if (typeof fieldApiName === 'string' && fieldApiName.length > 0) {
451
+ this.loadFieldByObjectAndApi(customObjectApiName, fieldApiName);
452
+ }
453
+ }
454
+ loadFieldSectionIfPresent(customObjectApiName, sectionId) {
455
+ if (typeof sectionId !== 'string')
456
+ return;
457
+ const component = this.ofType('CUSTOM_OBJECT_FIELD_SECTION').find((candidate) => candidate['model_name'] === customObjectApiName && candidate['section_id'] === sectionId);
458
+ if (component != null) {
459
+ this.loadFieldSectionComponent(component);
460
+ }
461
+ }
462
+ loadAppDependencies(component) {
463
+ for (const page of component['pages'] ?? []) {
464
+ if (page == null || typeof page !== 'object')
465
+ continue;
466
+ const pageRecord = page;
467
+ if (pageRecord['page_type'] === 'object_page' && typeof pageRecord['object_rql_name'] === 'string') {
468
+ this.loadCustomObject(pageRecord['object_rql_name']);
469
+ }
470
+ if (pageRecord['page_type'] === 'sdui_page' && typeof pageRecord['sdui_page_id'] === 'string') {
471
+ this.loadSduiPage(pageRecord['sdui_page_id']);
472
+ }
473
+ }
474
+ }
475
+ ofType(type) {
476
+ return this.componentsByType.get(type) ?? [];
477
+ }
478
+ hasComponent(type, predicate) {
479
+ return this.ofType(type).some(predicate);
480
+ }
481
+ findUnique(type, predicate, label) {
482
+ const matches = this.ofType(type).filter(predicate);
483
+ if (matches.length === 0)
484
+ throw new Error(`Could not find ${label}.`);
485
+ if (matches.length > 1)
486
+ throw new Error(`Ambiguous ${label}; pass a more specific identifier.`);
487
+ return matches[0];
488
+ }
489
+ cacheKey(type, id) {
490
+ return `${type}:${id}`;
491
+ }
492
+ getOrLoad(cacheKey, load) {
493
+ const cached = this.cache.get(cacheKey);
494
+ if (cached != null)
495
+ return cached;
496
+ if (this.loading.has(cacheKey)) {
497
+ throw new Error(`Circular dependency while loading ${cacheKey}.`);
498
+ }
499
+ this.loading.add(cacheKey);
500
+ try {
501
+ const value = load();
502
+ this.cache.set(cacheKey, value);
503
+ return value;
504
+ }
505
+ finally {
506
+ this.loading.delete(cacheKey);
507
+ }
508
+ }
509
+ }
510
+ exports.ExistingManifestContext = ExistingManifestContext;
511
+ //# sourceMappingURL=existing-manifest-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"existing-manifest-context.js","sourceRoot":"","sources":["../../src/lib/manifest/existing-manifest-context.ts"],"names":[],"mappings":";;;AAoFA,gEAOC;AA3FD,kCAA4B;AAC5B,4CAAsC;AACtC,sDAA+C;AAC/C,kFAAyE;AACzE,8EAAqE;AACrE,sCAAgC;AAChC,8CAA0C;AAC1C,4DAA6E;AAC7E,8DAAuD;AACvD,oCAA8B;AAC9B,8CAAuC;AACvC,gDAA0C;AAiB1C,MAAM,oBAAoB;IACxB,YAA6B,SAA8B;QAA9B,cAAS,GAAT,SAAS,CAAqB;IAAG,CAAC;IAE/D,MAAM;QACJ,OAAO,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;CACF;AAED,SAAS,SAAS,CAAI,KAAQ;IAC5B,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAM,CAAC;AAChD,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA8B;IAC3D,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,UAAU,GAAI,MAA2B,CAAC,UAAU,CAAC;IAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,QAAQ,GAAqB,EAAE,UAAU,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAI,MAA2B,CAAC,QAAQ,CAAC;IACvD,IAAI,QAAQ,KAAK,SAAS;QAAE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAyB;IACjD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,cAAc,GAAG,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClD,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC;QACxC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,SAA8B;IACpD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;IAC5C,MAAM,EAAE,GACN,SAAS,CAAC,UAAU,CAAC;QACrB,SAAS,CAAC,WAAW,CAAC;QACtB,SAAS,CAAC,SAAS,CAAC;QACpB,SAAS,CAAC,SAAS,CAAC;QACpB,SAAS,CAAC,SAAS,CAAC;QACpB,SAAS,CAAC,cAAc,CAAC;QACzB,SAAS,CAAC,gBAAgB,CAAC;QAC3B,SAAS,CAAC,YAAY,CAAC;QACvB,SAAS,CAAC;IACZ,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AACzB,CAAC;AAED,SAAgB,0BAA0B,CACxC,OAAwC;IAExC,IAAI,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IACD,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC;AAC1C,CAAC;AAED,MAAa,uBAAuB;IAWlC,YAAY,MAA8B;QANzB,qBAAgB,GAAG,IAAI,GAAG,EAAiC,CAAC;QAC5D,qBAAgB,GAAG,IAAI,OAAO,EAA+B,CAAC;QAC9D,UAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;QACnC,YAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAI3C,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YAC3C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAA8B;QAC5C,MAAM,OAAO,GAAG,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACpD,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,MAAM;QACX,IAAI,uBAAuB,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;QACJ,CAAC;QACD,OAAO,uBAAuB,CAAC,OAAO,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,uBAAuB,CAAC,OAAO,GAAG,SAAS,CAAC;IAC9C,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC7F,CAAC;YACD,MAAM,KAAK,GAAG;gBACZ,GAAG;gBACH,IAAI,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;aACpE,CAAC;YACF,IAAI,OAAO,QAAQ,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC/C,KAA6B,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,kCAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,mBAAmB;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,iBAAiB,EACjB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,OAAO,EAChD,mBAAmB,OAAO,EAAE,CAC7B,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,eAAe,EACf,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,OAAO,EAChD,iBAAiB,OAAO,EAAE,CAC3B,CAAC;QACF,OAAO,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,gBAAgB,CACd,sBAA8B,EAC9B,UAAyC,EAAE;QAE3C,MAAM,SAAS,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,IAAI,sBAAsB,CAAC;QAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,IAAI,SAAS,CAAC,QAAQ,CAAC;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,6BAA6B,EAC7B,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,YAAY,CAAC,KAAK,SAAS;YACrC,CAAC,YAAY,IAAI,IAAI,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,EACpE,+BAA+B,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,CAC5F,CAAC;QACF,OAAO,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,SAAS,CAAC,yBAAiC,EAAE,UAAyC,EAAE;QACtF,MAAM,SAAS,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,IAAI,yBAAyB,CAAC;QACpE,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,SAAS,CAAC,QAAQ,CAAC;QAC9E,OAAO,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IACzE,CAAC;IAED,YAAY,CAAC,MAAc,EAAE,UAAyC,EAAE;QACtE,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,yBAAyB,EACzB,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,SAAS,CAAC,KAAK,MAAM;YAC/B,CAAC,aAAa,IAAI,IAAI,IAAI,SAAS,CAAC,iBAAiB,CAAC,KAAK,aAAa,CAAC,EAC3E,2BAA2B,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CACvF,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,cAAc,CACZ,iBAAyB,EACzB,UAAyC,EAAE;QAE3C,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,2BAA2B,EAC3B,CAAC,SAAS,EAAE,EAAE,CACZ,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,iBAAiB,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,iBAAiB,CAAC;YAC7F,CAAC,aAAa,IAAI,IAAI,IAAI,SAAS,CAAC,iBAAiB,CAAC,KAAK,aAAa,CAAC,EAC3E,6BAA6B,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,EAAE,CACpG,CAAC;QACF,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,cAAc,CAAC,MAAc,EAAE,UAAyC,EAAE;QACxE,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,+BAA+B,EAC/B,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,SAAS,CAAC,KAAK,MAAM;YAC/B,CAAC,aAAa,IAAI,IAAI,IAAI,SAAS,CAAC,gBAAgB,CAAC,KAAK,aAAa,CAAC,EAC1E,iCAAiC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAC7F,CAAC;QACF,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,UAAyC,EAAE;QAClE,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,qCAAqC,EACrC,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,SAAS,CAAC,KAAK,MAAM;YAC/B,CAAC,aAAa,IAAI,IAAI,IAAI,SAAS,CAAC,gBAAgB,CAAC,KAAK,aAAa,CAAC,EAC1E,uCAAuC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CACnG,CAAC;QACF,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,UAAU,EACV,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,OAAO,EAChD,YAAY,OAAO,EAAE,CACtB,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,YAAY,CAAC,UAAkB;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,WAAW,EACX,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,UAAU,EACvD,aAAa,UAAU,EAAE,CAC1B,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,YAAY,EACZ,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,OAAO,EAChD,cAAc,OAAO,EAAE,CACxB,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAEO,aAAa,CAAC,SAA8B;QAClD,QAAQ,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,KAAK,iBAAiB;gBACpB,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC/C,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;YACnD,KAAK,6BAA6B;gBAChC,OAAO,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;YACnD,KAAK,qBAAqB;gBACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC5C,KAAK,yBAAyB;gBAC5B,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC/C,KAAK,2BAA2B;gBAC9B,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACjD,KAAK,+BAA+B;gBAClC,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACjD,KAAK,qCAAqC;gBACxC,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC3C,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC/C,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC/C,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC1C;gBACE,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,SAA8B;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CACnC,mBAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,SAAS,CAAC,CACtE,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAAC,SAA8B;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnC,OAAO,4BAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,CAAC,eAAe,EAAE,EAAE,CACnG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC;gBAC9E,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;gBACpC,CAAC,CAAC,eAAe,CAClB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,yBAAyB,CAAC,SAA8B;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAC5B,6BAA6B,EAC7B,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE,CACxD,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YACpE,OAAO,sDAAwB,CAAC,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,SAA8B;QACvD,MAAM,mBAAmB,GAAG,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACjD,IAAI,SAAS,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,mBAAmB,IAAI,YAAY,EAAE,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,CAAC,iCAAiC,CAAC,SAAS,CAAC,CAAC;YAClD,OAAO,aAAK,CAAC,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,SAA8B;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAC5B,yBAAyB,EACzB,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAC1D,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnC,MAAM,mBAAmB,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACzD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAChE,OAAO,uBAAW,CAAC,sBAAsB,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,EAAE,CAClF,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAAC,SAA8B;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAC5B,2BAA2B,EAC3B,SAAS,CAAC,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CACrF,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnC,MAAM,mBAAmB,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACzD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAChE,IAAI,CAAC,0BAA0B,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YAChE,OAAO,kDAAsB,CAAC,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAAC,SAA8B;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAC5B,+BAA+B,EAC/B,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CACzD,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnC,MAAM,mBAAmB,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAChE,OAAO,uBAAU,CAAC,sBAAsB,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,EAAE,CACjF,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,SAA8B;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAC5B,qCAAqC,EACrC,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CACzD,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnC,MAAM,mBAAmB,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAChE,OAAO,WAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,EAAE,CAC3E,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,SAA8B;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CACnC,oCAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,SAAS,CAAC,CAC9E,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,SAA8B;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnC,OAAO,oBAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,CAAC,eAAe,EAAE,EAAE,CAC/F,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;gBACpC,CAAC,CAAC,eAAe,CAClB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,SAA8B;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YACpC,OAAO,SAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,SAAS,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,SAA8B;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACzC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAAC,mBAAuC,EAAE,YAAoB;QAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;QAC7E,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,mBAAmB,IAAI,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,mBAAmB,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,mBAAmB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,GAAG,YAAY,GAAG,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;IACnF,CAAC;IAEO,kBAAkB,CACxB,mBAAuC,EACvC,YAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,MAAM,CACvD,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,gBAAgB,CAAC,KAAK,YAAY;YAC5C,CAAC,mBAAmB,IAAI,IAAI,IAAI,SAAS,CAAC,wBAAwB,CAAC,KAAK,mBAAmB,CAAC,CAC/F,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,iCAAiC,YAAY,2CAA2C,CACzF,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAwB,CAAC;IAC3C,CAAC;IAEO,2BAA2B,CAAC,SAA8B;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAC5B,yBAAyB,EACzB,GAAG,SAAS,CAAC,wBAAwB,CAAC,IAAI,SAAS,CAAC,gBAAgB,CAAC,EAAE,CACxE,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1F,CAAC;IAEO,2BAA2B,CAAC,mBAA2B,EAAE,YAAoB;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,EAAE,GAAG,mBAAmB,IAAI,YAAY,EAAE,CAAC,CAAC;QACpG,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC;IACtG,CAAC;IAEO,iCAAiC,CAAC,SAA8B;QACtE,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACpD,IACE,OAAO,aAAa,KAAK,QAAQ;YACjC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,aAAa,CAAC,EAC1E,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACtD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO;QAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC/C,IACE,OAAO,UAAU,KAAK,QAAQ;YAC9B,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC,EACvE,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAClC,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAC9E,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC9C,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,0BAA0B,CAAC,UAAkB,EAAE,YAAqB;QAC1E,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,0BAA0B,CAAC,mBAA2B,EAAE,SAA8B;QAC5F,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IACxE,CAAC;IAEO,sBAAsB,CAAC,mBAA2B,EAAE,WAAoB;QAC9E,IAAI,WAAW,IAAI,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ;YAAE,OAAO;QACnE,MAAM,KAAK,GAAG,WAAkC,CAAC;QACjD,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACpF,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACxE,IAAI,UAAU,IAAI,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACzD,IAAI,CAAC,2BAA2B,CAC9B,mBAAmB,EAClB,UAAkC,CAAC,aAAa,CAAC,CACnD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,mBAA2B,EAAE,QAAiB;QACxE,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,OAAO;QAC7D,MAAM,KAAK,GAAG,QAA+B,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACnE,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,SAAS;YAC7D,MAAM,IAAI,GAAG,OAA8B,CAAC;YAC5C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChD,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;YAC7D,CAAC;YACD,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC1E,IAAI,WAAW,IAAI,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ;oBAAE,SAAS;gBACrE,KAAK,MAAM,KAAK,IAAK,WAAmC,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC5E,IAAI,CAAC,6BAA6B,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,wBAAwB,CAAC,mBAA2B,EAAE,GAAY;QACxE,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO;QACnD,IAAK,GAA2B,CAAC,MAAM,CAAC,KAAK,mBAAmB;YAAE,OAAO;QACzE,KAAK,MAAM,OAAO,IAAK,GAA2B,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACrE,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,mBAA2B,EAAE,OAAgB;QAC3E,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO;QAC3D,MAAM,aAAa,GAAG,OAA8B,CAAC;QACrD,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,6BAA6B,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEO,6BAA6B,CAAC,mBAA2B,EAAE,KAAc;QAC/E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QACD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO;QACvD,MAAM,MAAM,GAAG,KAA4B,CAAC;QAC5C,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5G,CAAC;IAEO,2BAA2B,CAAC,mBAA2B,EAAE,YAAqB;QACpF,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,yBAAyB,CAAC,mBAA2B,EAAE,SAAkB;QAC/E,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,OAAO;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,IAAI,CAC/D,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,mBAAmB,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,SAAS,CACxG,CAAC;QACF,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,SAA8B;QACxD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACvD,MAAM,UAAU,GAAG,IAA2B,CAAC;YAC/C,IAAI,UAAU,CAAC,WAAW,CAAC,KAAK,aAAa,IAAI,OAAO,UAAU,CAAC,iBAAiB,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACnG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,UAAU,CAAC,WAAW,CAAC,KAAK,WAAW,IAAI,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC9F,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAEO,YAAY,CAAC,IAAY,EAAE,SAAsD;QACvF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAEO,UAAU,CAChB,IAAY,EACZ,SAAsD,EACtD,KAAa;QAEb,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,GAAG,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,oCAAoC,CAAC,CAAC;QAChG,OAAO,OAAO,CAAC,CAAC,CAAwB,CAAC;IAC3C,CAAC;IAEO,QAAQ,CAAC,IAAY,EAAE,EAAU;QACvC,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;IACzB,CAAC;IAEO,SAAS,CAAI,QAAgB,EAAE,IAAa;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,MAAW,CAAC;QACvC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,GAAG,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;CACF;AAnkBD,0DAmkBC"}