@memberjunction/core 2.128.0 → 2.129.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 (58) hide show
  1. package/dist/__tests__/mocks/TestMetadataProvider.d.ts +4 -2
  2. package/dist/__tests__/mocks/TestMetadataProvider.d.ts.map +1 -1
  3. package/dist/__tests__/mocks/TestMetadataProvider.js +9 -3
  4. package/dist/__tests__/mocks/TestMetadataProvider.js.map +1 -1
  5. package/dist/generic/RegisterForStartup.d.ts +228 -0
  6. package/dist/generic/RegisterForStartup.d.ts.map +1 -0
  7. package/dist/generic/RegisterForStartup.js +233 -0
  8. package/dist/generic/RegisterForStartup.js.map +1 -0
  9. package/dist/generic/baseEngine.d.ts +191 -8
  10. package/dist/generic/baseEngine.d.ts.map +1 -1
  11. package/dist/generic/baseEngine.js +360 -14
  12. package/dist/generic/baseEngine.js.map +1 -1
  13. package/dist/generic/baseEngineRegistry.d.ts +247 -0
  14. package/dist/generic/baseEngineRegistry.d.ts.map +1 -0
  15. package/dist/generic/baseEngineRegistry.js +470 -0
  16. package/dist/generic/baseEngineRegistry.js.map +1 -0
  17. package/dist/generic/entityInfo.d.ts +50 -0
  18. package/dist/generic/entityInfo.d.ts.map +1 -1
  19. package/dist/generic/entityInfo.js +56 -0
  20. package/dist/generic/entityInfo.js.map +1 -1
  21. package/dist/generic/graphqlTypeNames.d.ts +90 -0
  22. package/dist/generic/graphqlTypeNames.d.ts.map +1 -0
  23. package/dist/generic/graphqlTypeNames.js +119 -0
  24. package/dist/generic/graphqlTypeNames.js.map +1 -0
  25. package/dist/generic/interfaces.d.ts +234 -3
  26. package/dist/generic/interfaces.d.ts.map +1 -1
  27. package/dist/generic/interfaces.js.map +1 -1
  28. package/dist/generic/localCacheManager.d.ts +388 -0
  29. package/dist/generic/localCacheManager.d.ts.map +1 -0
  30. package/dist/generic/localCacheManager.js +856 -0
  31. package/dist/generic/localCacheManager.js.map +1 -0
  32. package/dist/generic/providerBase.d.ts +227 -13
  33. package/dist/generic/providerBase.d.ts.map +1 -1
  34. package/dist/generic/providerBase.js +751 -6
  35. package/dist/generic/providerBase.js.map +1 -1
  36. package/dist/generic/queryInfo.d.ts +18 -0
  37. package/dist/generic/queryInfo.d.ts.map +1 -1
  38. package/dist/generic/queryInfo.js +18 -0
  39. package/dist/generic/queryInfo.js.map +1 -1
  40. package/dist/generic/queryInfoInterfaces.d.ts +17 -0
  41. package/dist/generic/queryInfoInterfaces.d.ts.map +1 -1
  42. package/dist/generic/runQuery.d.ts +30 -0
  43. package/dist/generic/runQuery.d.ts.map +1 -1
  44. package/dist/generic/runQuery.js +13 -0
  45. package/dist/generic/runQuery.js.map +1 -1
  46. package/dist/generic/telemetryManager.d.ts +628 -0
  47. package/dist/generic/telemetryManager.d.ts.map +1 -0
  48. package/dist/generic/telemetryManager.js +1011 -0
  49. package/dist/generic/telemetryManager.js.map +1 -0
  50. package/dist/index.d.ts +5 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +5 -0
  53. package/dist/index.js.map +1 -1
  54. package/dist/views/runView.d.ts +25 -0
  55. package/dist/views/runView.d.ts.map +1 -1
  56. package/dist/views/runView.js +4 -5
  57. package/dist/views/runView.js.map +1 -1
  58. package/package.json +2 -2
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseEngine = exports.BaseEnginePropertyConfig = void 0;
4
4
  const global_1 = require("@memberjunction/global");
5
+ const telemetryManager_1 = require("./telemetryManager");
5
6
  const rxjs_1 = require("rxjs");
6
7
  const operators_1 = require("rxjs/operators");
7
8
  const runView_1 = require("../views/runView");
@@ -10,6 +11,7 @@ const metadata_1 = require("./metadata");
10
11
  const interfaces_1 = require("./interfaces");
11
12
  const baseInfo_1 = require("./baseInfo");
12
13
  const baseEntity_1 = require("./baseEntity");
14
+ const baseEngineRegistry_1 = require("./baseEngineRegistry");
13
15
  /**
14
16
  * Property configuration for the BaseEngine class to automatically load/set properties on the class.
15
17
  */
@@ -57,7 +59,55 @@ class BaseEngine extends global_1.BaseSingleton {
57
59
  this._dataMap = new Map();
58
60
  this._expirationTimers = new Map();
59
61
  this._entityEventSubjects = new Map();
60
- this._entityEventDebounceTime = 5000; // Default debounce time in milliseconds (5 seconds)
62
+ this._dataChange$ = new rxjs_1.Subject();
63
+ this._entityEventDebounceTime = 1500; // Default debounce time in milliseconds (1.5 seconds)
64
+ }
65
+ /**
66
+ * Observable that emits when any data property changes due to a refresh.
67
+ * Subscribe to this to react to engine data updates (e.g., sync Angular observables).
68
+ *
69
+ * Events are emitted after data is refreshed in response to BaseEntity save/delete events.
70
+ * The event includes the full config and the new data array.
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * UserInfoEngine.Instance.DataChange$.subscribe(event => {
75
+ * if (event.config.PropertyName === 'UserApplications') {
76
+ * // Sync local state with engine's updated data
77
+ * this.refreshLocalAppList();
78
+ * }
79
+ * });
80
+ * ```
81
+ */
82
+ get DataChange$() {
83
+ return this._dataChange$.asObservable();
84
+ }
85
+ /**
86
+ * Notify listeners that a data property has changed.
87
+ * Called automatically by HandleSingleViewResult after data refresh and by applyImmediateMutation for array operations.
88
+ * Subclasses can also call this manually when modifying data arrays directly.
89
+ *
90
+ * @param config - The configuration for the property that changed
91
+ * @param data - The current data array
92
+ * @param changeType - The type of change: 'refresh', 'add', 'update', or 'delete'
93
+ * @param affectedEntity - For add/update/delete, the entity that was affected
94
+ */
95
+ NotifyDataChange(config, data, changeType = 'refresh', affectedEntity) {
96
+ const event = {
97
+ config,
98
+ changeType,
99
+ data,
100
+ affectedEntity
101
+ };
102
+ this._dataChange$.next(event);
103
+ }
104
+ /**
105
+ * All BaseEngine sub-classes get an implementation of IStartupSink so they can be set the auto start in their
106
+ * app container, if desired, simply by adding the @see @RegisterForStartup decorator. The BaseEngine implementation
107
+ * of IStartupSink.HandleStartup is to simply call @see Config
108
+ */
109
+ async HandleStartup(contextUser, provider) {
110
+ await this.Config(false, contextUser, provider);
61
111
  }
62
112
  /**
63
113
  * Returns the metadata provider to use for the engine. If a provider is set via the Config method, that provider will be used, otherwise the default provider will be used.
@@ -79,6 +129,27 @@ class BaseEngine extends global_1.BaseSingleton {
79
129
  // do a full deep copy of the array to ensure no tampering
80
130
  return JSON.parse(JSON.stringify(this._metadataConfigs));
81
131
  }
132
+ /**
133
+ * Extended configuration method with object-based options.
134
+ * This provides a more flexible API compared to Config() with positional parameters.
135
+ *
136
+ * Internally calls Config() after setting up options that Load() can access.
137
+ *
138
+ * @param options - Configuration options object
139
+ * @returns Promise that resolves when configuration is complete
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * await MyEngine.Instance.ConfigEx({
144
+ * forceRefresh: true,
145
+ * contextUser: currentUser
146
+ * });
147
+ * ```
148
+ */
149
+ async ConfigEx(options = {}) {
150
+ // Call the abstract Config method which subclasses implement
151
+ return await this.Config(options.forceRefresh ?? false, options.contextUser, options.provider);
152
+ }
82
153
  /**
83
154
  * This method should be called by sub-classes to load up their specific metadata requirements. For more complex metadata
84
155
  * loading or for post-processing of metadata loading done here, overide the AdditionalLoading method to add your logic.
@@ -100,20 +171,39 @@ class BaseEngine extends global_1.BaseSingleton {
100
171
  });
101
172
  }
102
173
  if (!this._loaded || forceRefresh) {
174
+ // Start telemetry tracking for engine load
175
+ const entityNames = configs
176
+ .filter(c => c.Type !== 'dataset' && c.EntityName)
177
+ .map(c => c.EntityName);
178
+ const datasetNames = configs
179
+ .filter(c => c.Type === 'dataset' && c.DatasetName)
180
+ .map(c => c.DatasetName);
181
+ const eventId = telemetryManager_1.TelemetryManager.Instance.StartEvent('Engine', 'Engine.Load', {
182
+ engineClass: this.constructor.name,
183
+ operation: forceRefresh ? 'refresh' : 'initial',
184
+ configCount: configs.length,
185
+ entityNames,
186
+ datasetNames
187
+ }, contextUser?.ID);
103
188
  this._loadingSubject.next(true);
104
189
  try {
105
190
  this.SetProvider(provider);
106
191
  this._contextUser = contextUser;
192
+ // Register with the engine registry
193
+ baseEngineRegistry_1.BaseEngineRegistry.Instance.RegisterEngine(this);
107
194
  await this.LoadConfigs(configs, contextUser);
108
195
  await this.AdditionalLoading(contextUser); // Call the additional loading method
109
196
  await this.SetupGlobalEventListener();
110
197
  this._loaded = true;
198
+ // Notify registry that engine is loaded
199
+ baseEngineRegistry_1.BaseEngineRegistry.Instance.NotifyEngineLoaded(this);
111
200
  }
112
201
  catch (e) {
113
202
  (0, logging_1.LogError)(e);
114
203
  }
115
204
  finally {
116
205
  this._loadingSubject.next(false);
206
+ telemetryManager_1.TelemetryManager.Instance.EndEvent(eventId);
117
207
  }
118
208
  }
119
209
  }
@@ -192,19 +282,35 @@ class BaseEngine extends global_1.BaseSingleton {
192
282
  }
193
283
  }
194
284
  /**
195
- * This method handles the individual base entity event and just checks to see if it is a delete or save event and if so, debounces it.
196
- * Override this method if you want to have a different handling for the filtering of events that are debounced or if you don't want to debounce
197
- * at all you can do that in an override of this method.
285
+ * This method handles the individual base entity event. For events that can use immediate array mutations
286
+ * (no Filter, OrderBy, or AdditionalLoading override), processing happens synchronously without debounce.
287
+ * For events that require full view refresh, debouncing is applied to batch rapid successive changes.
288
+ *
289
+ * Override this method if you want to have a different handling for the filtering of events that are debounced
290
+ * or if you don't want to debounce at all you can do that in an override of this method.
198
291
  * @param event
199
292
  */
200
293
  async HandleIndividualBaseEntityEvent(event) {
201
294
  try {
202
295
  if (event.type === 'delete' || event.type === 'save') {
203
296
  const eName = event.baseEntity.EntityInfo.Name.toLowerCase().trim();
204
- const matchingAutoRefreshConfig = this.Configs.some((config) => {
297
+ const matchingConfigs = this.Configs.filter((config) => {
205
298
  return config.AutoRefresh && config.EntityName && config.EntityName.trim().toLowerCase() === eName;
206
299
  });
207
- if (matchingAutoRefreshConfig) {
300
+ if (matchingConfigs.length === 0) {
301
+ return true;
302
+ }
303
+ // Check if ALL matching configs can use immediate mutation
304
+ const allCanUseImmediate = matchingConfigs.every(config => this.canUseImmediateMutation(config));
305
+ if (allCanUseImmediate) {
306
+ // Process immediately without debounce - synchronous array mutations
307
+ for (const config of matchingConfigs) {
308
+ this.applyImmediateMutation(config, event);
309
+ }
310
+ return true;
311
+ }
312
+ else {
313
+ // At least one config requires full refresh, use debouncing
208
314
  return this.DebounceIndividualBaseEntityEvent(event);
209
315
  }
210
316
  }
@@ -247,7 +353,12 @@ class BaseEngine extends global_1.BaseSingleton {
247
353
  }
248
354
  }
249
355
  /**
250
- * Overridable property to set the debounce time for entity events. Default is 5000 milliseconds (5 seconds).
356
+ * Overridable property to set the debounce time for entity events. Default is 1500 milliseconds (1.5 seconds).
357
+ * This debounce time is used when immediate array mutations cannot be applied (e.g., when Filter, OrderBy,
358
+ * or AdditionalLoading overrides are present) and a full view refresh is required.
359
+ *
360
+ * Note: When immediate mutations ARE possible (no Filter, OrderBy, or AdditionalLoading override),
361
+ * updates happen synchronously without any debounce delay.
251
362
  */
252
363
  get EntityEventDebounceTime() {
253
364
  return this._entityEventDebounceTime;
@@ -265,13 +376,50 @@ class BaseEngine extends global_1.BaseSingleton {
265
376
  let refreshCount = 0;
266
377
  for (const config of this.Configs) {
267
378
  if (config.AutoRefresh && config.Type === 'entity' && config.EntityName?.trim().toLowerCase() === entityName) {
268
- // LogStatus(`>>> Refreshing metadata for ${config.PropertyName} due to BaseEntity ${event.type} event for: ${event.baseEntity.EntityInfo.Name}, pkey: ${event.baseEntity.PrimaryKey.ToString()}`);
269
- await this.LoadSingleConfig(config, this._contextUser);
270
- refreshCount++;
379
+ // For UPDATE events, check if the exact object is already in our array.
380
+ // If so, it's already been mutated in place - no need to refresh.
381
+ if (event.type === 'save' && event.saveSubType === 'update') {
382
+ if (this.isEntityAlreadyInArray(config, event.baseEntity)) {
383
+ // Object already in array and updated in place, skip refresh
384
+ // LogStatus(`>>> Skipping refresh for ${config.PropertyName} - object already in array`);
385
+ continue;
386
+ }
387
+ }
388
+ // For CREATE events, check if the entity was already added to our array
389
+ // (e.g., by engine methods like InstallApplication that manually push).
390
+ if (event.type === 'save' && event.saveSubType === 'create') {
391
+ if (this.isEntityAlreadyInArray(config, event.baseEntity)) {
392
+ // Object already in array (manually added), skip refresh
393
+ // LogStatus(`>>> Skipping refresh for ${config.PropertyName} - newly created object already in array`);
394
+ continue;
395
+ }
396
+ }
397
+ // For DELETE events, check if the entity was already removed from our array
398
+ // (e.g., by engine methods like UninstallApplication that manually splice).
399
+ // Also check by primary key since the object reference may still exist but be removed.
400
+ if (event.type === 'delete') {
401
+ if (!this.isEntityInArrayByRefOrKey(config, event.baseEntity)) {
402
+ // Object not in array (already removed), skip refresh
403
+ // LogStatus(`>>> Skipping refresh for ${config.PropertyName} - deleted object not in array`);
404
+ continue;
405
+ }
406
+ }
407
+ // Check if we can use immediate array mutation instead of running a view
408
+ if (this.canUseImmediateMutation(config)) {
409
+ // LogStatus(`>>> Immediate mutation for ${config.PropertyName} due to BaseEntity ${event.type} event for: ${event.baseEntity.EntityInfo.Name}`);
410
+ this.applyImmediateMutation(config, event);
411
+ }
412
+ else {
413
+ // LogStatus(`>>> Refreshing metadata for ${config.PropertyName} due to BaseEntity ${event.type} event for: ${event.baseEntity.EntityInfo.Name}, pkey: ${event.baseEntity.PrimaryKey.ToString()}`);
414
+ await this.LoadSingleConfig(config, this._contextUser);
415
+ refreshCount++;
416
+ }
271
417
  }
272
418
  }
419
+ // Only call AdditionalLoading if we did full refreshes (not for immediate mutations)
420
+ // Immediate mutations don't require AdditionalLoading since the entity object is already complete
273
421
  if (refreshCount > 0) {
274
- // we need to call AdditionalLoading here - because in many cases engine sub-classes do various kinds of data mashups
422
+ // we need to call AdditionalLoading here - because in many cases engine sub-classes do various kinds of data mashups
275
423
  // after we have loaded - for example the TemplateEngine takes the TemplateContents and TemplateParams and stuffs them
276
424
  // into arrays in each template to make it easier to get Params/Contents for each Template. Such operations are common
277
425
  // and need to be done after the initial load and after any refreshes.
@@ -282,6 +430,186 @@ class BaseEngine extends global_1.BaseSingleton {
282
430
  (0, logging_1.LogError)(e);
283
431
  }
284
432
  }
433
+ /**
434
+ * Checks if the exact entity object reference is already in the config's data array.
435
+ * Used to skip unnecessary refreshes for UPDATE events where the object was mutated in place.
436
+ *
437
+ * @param config - The configuration to check
438
+ * @param entity - The entity to look for
439
+ * @returns true if the exact object reference is already in the array
440
+ */
441
+ isEntityAlreadyInArray(config, entity) {
442
+ const currentData = this[config.PropertyName];
443
+ if (!currentData) {
444
+ return false;
445
+ }
446
+ return currentData.indexOf(entity) >= 0;
447
+ }
448
+ /**
449
+ * Checks if an entity is in the config's data array by object reference OR by primary key match.
450
+ * Used for DELETE events where we need to know if the entity still exists in the array.
451
+ * The object reference may still exist (entity.Delete() just marks it deleted), but if it was
452
+ * manually spliced out by engine code, we check by primary key as fallback.
453
+ *
454
+ * @param config - The configuration to check
455
+ * @param entity - The entity to look for
456
+ * @returns true if the entity is in the array (by reference or by primary key)
457
+ */
458
+ isEntityInArrayByRefOrKey(config, entity) {
459
+ const currentData = this[config.PropertyName];
460
+ if (!currentData) {
461
+ return false;
462
+ }
463
+ // First check by object reference
464
+ if (currentData.indexOf(entity) >= 0) {
465
+ return true;
466
+ }
467
+ // Fallback: check by primary key
468
+ return this.findEntityIndexByPrimaryKeys(currentData, entity) >= 0;
469
+ }
470
+ /**
471
+ * Determines if an immediate array mutation can be used instead of running a full view refresh.
472
+ * Immediate mutations are only safe when:
473
+ * 1. The config has no Filter (no server-side filtering that might exclude the entity)
474
+ * 2. The config has no OrderBy (no server-side ordering that would need to be maintained)
475
+ * 3. The subclass has not overridden AdditionalLoading (no post-processing that depends on full data)
476
+ *
477
+ * @param config - The configuration to check
478
+ * @returns true if immediate mutation is safe, false if a full view refresh is needed
479
+ */
480
+ canUseImmediateMutation(config) {
481
+ // If there's a filter, we can't safely do immediate mutations because:
482
+ // - For creates: the new entity might not match the filter
483
+ // - For updates: the entity might now match or no longer match the filter
484
+ if (config.Filter) {
485
+ return false;
486
+ }
487
+ // If there's an OrderBy, we can't safely do immediate mutations because:
488
+ // - For creates: we'd need to insert at the correct position
489
+ // - For updates: the entity might need to move to a different position
490
+ if (config.OrderBy) {
491
+ return false;
492
+ }
493
+ // Check if AdditionalLoading is overridden in the subclass
494
+ // If it is, we need to run full refresh to ensure post-processing happens
495
+ if (this.hasAdditionalLoadingOverride()) {
496
+ return false;
497
+ }
498
+ return true;
499
+ }
500
+ /**
501
+ * Checks if the current instance has overridden the AdditionalLoading method.
502
+ * We do this by comparing the method to the base class's method.
503
+ *
504
+ * @returns true if AdditionalLoading is overridden, false if using the base implementation
505
+ */
506
+ hasAdditionalLoadingOverride() {
507
+ // Get the prototype chain to find the base class method
508
+ const baseProto = BaseEngine.prototype;
509
+ const instanceProto = Object.getPrototypeOf(this);
510
+ // If the instance's AdditionalLoading is different from the base class's,
511
+ // it means the subclass has overridden it
512
+ return instanceProto.AdditionalLoading !== baseProto.AdditionalLoading;
513
+ }
514
+ /**
515
+ * Applies an immediate array mutation based on the entity event type.
516
+ * This is faster than running a full view refresh for simple add/update/delete operations.
517
+ *
518
+ * @param config - The configuration for the property being mutated
519
+ * @param event - The entity event containing the affected entity and event type
520
+ */
521
+ applyImmediateMutation(config, event) {
522
+ const currentData = this[config.PropertyName];
523
+ if (!currentData) {
524
+ // No existing array, nothing to mutate
525
+ return;
526
+ }
527
+ const entity = event.baseEntity;
528
+ if (event.type === 'save') {
529
+ if (event.saveSubType === 'create') {
530
+ // For create, first check if the exact object is already in the array
531
+ const existsByRef = currentData.indexOf(entity) >= 0;
532
+ if (existsByRef) {
533
+ // Object already in array, nothing to do (already up to date)
534
+ return;
535
+ }
536
+ // Check by composite primary key in case it was added with a different object reference
537
+ const indexByKey = this.findEntityIndexByPrimaryKeys(currentData, entity);
538
+ if (indexByKey >= 0) {
539
+ // Already exists by key, treat as update
540
+ currentData[indexByKey] = entity;
541
+ this._dataMap.set(config.PropertyName, { entityName: config.EntityName, data: currentData });
542
+ this.NotifyDataChange(config, currentData, 'update', entity);
543
+ }
544
+ else {
545
+ // Add the new entity to the array
546
+ currentData.push(entity);
547
+ this._dataMap.set(config.PropertyName, { entityName: config.EntityName, data: currentData });
548
+ this.NotifyDataChange(config, currentData, 'add', entity);
549
+ }
550
+ }
551
+ else {
552
+ // Update: first check if the exact object is already in the array
553
+ const existsByRef = currentData.indexOf(entity) >= 0;
554
+ if (existsByRef) {
555
+ // Object already in array and is the same reference, nothing to do
556
+ return;
557
+ }
558
+ // Find by composite primary key and replace
559
+ const index = this.findEntityIndexByPrimaryKeys(currentData, entity);
560
+ if (index >= 0) {
561
+ currentData[index] = entity;
562
+ this._dataMap.set(config.PropertyName, { entityName: config.EntityName, data: currentData });
563
+ this.NotifyDataChange(config, currentData, 'update', entity);
564
+ }
565
+ else {
566
+ // Entity not found in array - this shouldn't happen normally,
567
+ // but if it does, add it (might have been created before we started listening)
568
+ currentData.push(entity);
569
+ this._dataMap.set(config.PropertyName, { entityName: config.EntityName, data: currentData });
570
+ this.NotifyDataChange(config, currentData, 'add', entity);
571
+ }
572
+ }
573
+ }
574
+ else if (event.type === 'delete') {
575
+ // For delete, first try to find by object reference
576
+ let index = currentData.indexOf(entity);
577
+ if (index < 0) {
578
+ // Not found by reference, search by composite primary key
579
+ index = this.findEntityIndexByPrimaryKeys(currentData, entity);
580
+ }
581
+ if (index >= 0) {
582
+ currentData.splice(index, 1);
583
+ this._dataMap.set(config.PropertyName, { entityName: config.EntityName, data: currentData });
584
+ this.NotifyDataChange(config, currentData, 'delete', entity);
585
+ }
586
+ }
587
+ }
588
+ /**
589
+ * Finds an entity in the array by matching all primary key columns.
590
+ * Supports composite primary keys by comparing all PrimaryKey fields from EntityInfo.
591
+ *
592
+ * @param dataArray - The array of entities to search
593
+ * @param targetEntity - The entity to find (using its primary key values)
594
+ * @returns The index of the matching entity, or -1 if not found
595
+ */
596
+ findEntityIndexByPrimaryKeys(dataArray, targetEntity) {
597
+ const primaryKeys = targetEntity.EntityInfo.PrimaryKeys;
598
+ if (!primaryKeys || primaryKeys.length === 0) {
599
+ // Fallback to single PrimaryKey property if no PrimaryKeys defined
600
+ const pkValue = targetEntity.PrimaryKey.ToString();
601
+ return dataArray.findIndex(e => e.PrimaryKey.ToString() === pkValue);
602
+ }
603
+ // Get target entity's primary key values
604
+ const targetKeyValues = primaryKeys.map(pk => targetEntity[pk.Name]);
605
+ return dataArray.findIndex(e => {
606
+ // Compare all primary key values
607
+ return primaryKeys.every((pk, idx) => {
608
+ const entityValue = e[pk.Name];
609
+ return entityValue === targetKeyValues[idx];
610
+ });
611
+ });
612
+ }
285
613
  /**
286
614
  * Utility method to upgrade an object to a BaseEnginePropertyConfig object.
287
615
  * @param obj
@@ -330,7 +658,10 @@ class BaseEngine extends global_1.BaseSingleton {
330
658
  EntityName: config.EntityName,
331
659
  ResultType: 'entity_object',
332
660
  ExtraFilter: config.Filter,
333
- OrderBy: config.OrderBy
661
+ OrderBy: config.OrderBy,
662
+ _fromEngine: true, // Mark as engine-initiated to avoid false positive telemetry warnings
663
+ CacheLocal: config.CacheLocal,
664
+ CacheLocalTTL: config.CacheLocalTTL
334
665
  }, contextUser);
335
666
  this.HandleSingleViewResult(config, result);
336
667
  }
@@ -345,6 +676,8 @@ class BaseEngine extends global_1.BaseSingleton {
345
676
  this[config.PropertyName] = result.Results;
346
677
  }
347
678
  this._dataMap.set(config.PropertyName, { entityName: config.EntityName, data: result.Results });
679
+ // Notify listeners that this property's data has changed
680
+ this.NotifyDataChange(config, result.Results);
348
681
  if (config.Expiration) {
349
682
  this.SetExpirationTimer(config.PropertyName, config.Expiration);
350
683
  }
@@ -364,13 +697,26 @@ class BaseEngine extends global_1.BaseSingleton {
364
697
  EntityName: c.EntityName,
365
698
  ResultType: 'entity_object',
366
699
  ExtraFilter: c.Filter,
367
- OrderBy: c.OrderBy
700
+ OrderBy: c.OrderBy,
701
+ _fromEngine: true, // Mark as engine-initiated to avoid false positive telemetry warnings
702
+ CacheLocal: c.CacheLocal,
703
+ CacheLocalTTL: c.CacheLocalTTL
368
704
  };
369
705
  });
370
706
  const results = await rv.RunViews(viewConfigs, contextUser);
371
- // now loop through the results and process them
707
+ // Process results and record entity loads for redundancy detection
708
+ const entityNames = [];
372
709
  for (let i = 0; i < configs.length; i++) {
373
710
  this.HandleSingleViewResult(configs[i], results[i]);
711
+ if (configs[i].EntityName) {
712
+ entityNames.push(configs[i].EntityName);
713
+ }
714
+ }
715
+ // Record which entities this engine loaded (for redundancy warnings)
716
+ // Pass 'this' so the registry can use instance identity to prevent false positives
717
+ // when a subclass and base class share the same singleton
718
+ if (entityNames.length > 0) {
719
+ baseEngineRegistry_1.BaseEngineRegistry.Instance.RecordEntityLoads(this, entityNames);
374
720
  }
375
721
  }
376
722
  }
@@ -1 +1 @@
1
- {"version":3,"file":"baseEngine.js","sourceRoot":"","sources":["../../src/generic/baseEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseEngine.js","sourceRoot":"","sources":["../../src/generic/baseEngine.ts"],"names":[],"mappings":";;;AAAA,mDAAuF;AACvF,yDAAsD;AACtD,+BAA4D;AAC5D,8CAA8C;AAG9C,8CAA0D;AAC1D,uCAAgD;AAChD,yCAAsC;AACtC,6CAA0I;AAC1I,yCAAsC;AACtC,6CAA2D;AAC3D,6DAA0D;AAE1D;;GAEG;AACH,MAAa,wBAAyB,SAAQ,mBAAQ;IA4ElD,YAAY,IAAwC;QAChD,KAAK,EAAE,CAAC;QA5EZ;;WAEG;QACH,SAAI,GAAyB,QAAQ,CAAC;QAqBtC;;;;WAIG;QACH,0BAAqB,GAAiD,iBAAiB,CAAC;QAaxF;;;;;WAKG;QACH,gBAAW,GAAa,IAAI,CAAC;QA6BzB,+CAA+C;QAC/C,IAAI,IAAI;YACJ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;CACJ;AAlFD,4DAkFC;AAgDD;;;;GAIG;AACH,MAAsB,UAAc,SAAQ,sBAAgB;IAYxD;;OAEG;IACH;QACI,KAAK,EAAE,CAAC;QAfJ,YAAO,GAAY,KAAK,CAAC;QACzB,oBAAe,GAA6B,IAAI,sBAAe,CAAU,KAAK,CAAC,CAAC;QAEhF,qBAAgB,GAA+B,EAAE,CAAC;QAClD,oBAAe,GAA0C,IAAI,GAAG,EAAE,CAAC;QACnE,aAAQ,GAAgF,IAAI,GAAG,EAAE,CAAC;QAClG,sBAAiB,GAAwB,IAAI,GAAG,EAAE,CAAC;QACnD,yBAAoB,GAA0C,IAAI,GAAG,EAAE,CAAC;QAExE,iBAAY,GAAG,IAAI,cAAO,EAAyB,CAAC;QAyXpD,6BAAwB,GAAW,IAAI,CAAC,CAAC,sDAAsD;IAlXvG,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;;;;;OASG;IACO,gBAAgB,CACtB,MAAgC,EAChC,IAAe,EACf,aAAsD,SAAS,EAC/D,cAA2B;QAE3B,MAAM,KAAK,GAA0B;YACjC,MAAM;YACN,UAAU;YACV,IAAI;YACJ,cAAc;SACjB,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,WAAsB,EAAE,QAA4B;QAC3E,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,SAAS,IAAI,mBAAQ,CAAC,QAAQ,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,IAAW,oBAAoB;QAC3B,OAA8B,IAAI,CAAC,aAAa,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QACd,0DAA0D;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC7D,CAAC;IAWD;;;;;;;;;;;;;;;;OAgBG;IACI,KAAK,CAAC,QAAQ,CAAC,UAA2B,EAAE;QAC/C,6DAA6D;QAC7D,OAAO,MAAM,IAAI,CAAC,MAAM,CACpB,OAAO,CAAC,YAAY,IAAI,KAAK,EAC7B,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,QAAQ,CACnB,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,IAAI,CAAC,OAA4C,EAAE,QAA2B,EAAE,eAAwB,KAAK,EAAE,WAAsB;QACjJ,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,KAAK,yBAAY,CAAC,QAAQ,IAAI,CAAC,WAAW;YACzE,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAA;QAC5G,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACjC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;wBACX,YAAY,CAAC,WAAW,EAAE,CAAC;wBAC3B,OAAO,EAAE,CAAC;oBACd,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,YAAY,EAAE,CAAC;YAChC,2CAA2C;YAC3C,MAAM,WAAW,GAAG,OAAO;iBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC;iBACjD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC5B,MAAM,YAAY,GAAG,OAAO;iBACvB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,CAAC;iBAClD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAE7B,MAAM,OAAO,GAAG,mCAAgB,CAAC,QAAQ,CAAC,UAAU,CAChD,QAAQ,EACR,aAAa,EACb;gBACI,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;gBAClC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBAC/C,WAAW,EAAE,OAAO,CAAC,MAAM;gBAC3B,WAAW;gBACX,YAAY;aACf,EACD,WAAW,EAAE,EAAE,CAClB,CAAC;YAEF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC3B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;gBAEhC,oCAAoC;gBACpC,uCAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAEjD,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC7C,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,qCAAqC;gBAChF,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBAEpB,wCAAwC;gBACxC,uCAAkB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAA,kBAAQ,EAAC,CAAC,CAAC,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACP,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,mCAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;IACL,CAAC;IAaO,MAAM,KAAK,iBAAiB;QAChC,OAAO,UAAU,CAAC,kBAAkB,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,mBAAmB,CAAI,QAA2B,EAAE,mBAA4C;QAC1G,MAAM,aAAa,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,CACnD,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,mBAAmB,KAAK,mBAAmB,CAC5F,CAAC;QAEF,IAAI,aAAa,EAAE,CAAC;YAChB,OAAO,aAAa,CAAC,QAAQ,CAAC;QAClC,CAAC;aACI,CAAC;YACF,iFAAiF;YACjF,MAAM,WAAW,GAAG,IAAI,mBAAmB,EAAE,CAAC;YAC9C,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC9C,6FAA6F;YACjF,8FAA8F;YAE9F,OAAO,WAAW,CAAC;QACvB,CAAC;IACL,CAAC;IAED;;;OAGG;IACO,WAAW,CAAC,QAA2B;QAC7C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAClC,uLAAuL;QAE/K,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC;IAES,2BAA2B,CAAC,QAA2B;QAC7D,MAAM,aAAa,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,CACnD,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,mBAAmB,KAAK,IAAI,CAAC,WAAW,CACzF,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC9B,QAAQ,EAAE,QAAQ;gBAClB,mBAAmB,EAAE,IAAI,CAAC,WAAW;gBACrC,QAAQ,EAAE,IAAI;aACjB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAMD;;;;OAIG;IACO,KAAK,CAAC,wBAAwB;QACpC,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,cAAc,GAAG,iBAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;gBAC/D,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC1C,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,IAAA,kBAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,qBAAqB,CAAC,KAAc;QAChD,8GAA8G;QAC9G,6CAA6C;QAC7C,IAAI,KAAK,CAAC,KAAK,KAAK,oBAAW,CAAC,cAAc,IAAI,KAAK,CAAC,SAAS,KAAK,uBAAU,CAAC,aAAa,EAAE,CAAC;YAC7F,0BAA0B;YAC1B,MAAM,eAAe,GAAoB,KAAK,CAAC,IAAI,CAAC;YACpD,OAAO,MAAM,IAAI,CAAC,+BAA+B,CAAC,eAAe,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACO,KAAK,CAAC,+BAA+B,CAAC,KAAsB;QAClE,IAAI,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;gBACpE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAgC,EAAE,EAAE;oBAC7E,OAAO,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;gBACvG,CAAC,CAAC,CAAC;gBAEH,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC;gBAChB,CAAC;gBAED,2DAA2D;gBAC3D,MAAM,kBAAkB,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAEjG,IAAI,kBAAkB,EAAE,CAAC;oBACrB,qEAAqE;oBACrE,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;wBACnC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBAC/C,CAAC;oBACD,OAAO,IAAI,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,4DAA4D;oBAC5D,OAAO,IAAI,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;gBACzD,CAAC;YACL,CAAC;YAED,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,IAAA,kBAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAGD;;;;;;;;OAQG;IACO,KAAK,CAAC,iCAAiC,CAAC,KAAsB;QACpE,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YAEzE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7C,mDAAmD;gBACnD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACzC,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU,CACpD,CAAC;gBAEF,4DAA4D;gBAC5D,MAAM,iBAAiB,GAAG,cAAc,EAAE,YAAY,IAAI,IAAI,CAAC,uBAAuB,CAAC;gBAEvF,MAAM,OAAO,GAAG,IAAI,cAAO,EAAmB,CAAC;gBAC/C,OAAO,CAAC,IAAI,CACR,IAAA,wBAAY,EAAC,iBAAiB,CAAC,CAClC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;oBACpB,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEtD,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAA,kBAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAGD;;;;;;;OAOG;IACH,IAAc,uBAAuB;QACjC,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,kBAAkB,CAAC,KAAsB;QACrD,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACzE,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE,CAAC;oBAC3G,wEAAwE;oBACxE,kEAAkE;oBAClE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;wBAC1D,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;4BACxD,6DAA6D;4BAC7D,0FAA0F;4BAC1F,SAAS;wBACb,CAAC;oBACL,CAAC;oBAED,wEAAwE;oBACxE,wEAAwE;oBACxE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;wBAC1D,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;4BACxD,yDAAyD;4BACzD,wGAAwG;4BACxG,SAAS;wBACb,CAAC;oBACL,CAAC;oBAED,4EAA4E;oBAC5E,4EAA4E;oBAC5E,uFAAuF;oBACvF,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC1B,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC5D,sDAAsD;4BACtD,8FAA8F;4BAC9F,SAAS;wBACb,CAAC;oBACL,CAAC;oBAED,yEAAyE;oBACzE,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;wBACvC,iJAAiJ;wBACjJ,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBAC/C,CAAC;yBAAM,CAAC;wBACJ,mMAAmM;wBACnM,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;wBACvD,YAAY,EAAE,CAAC;oBACnB,CAAC;gBACL,CAAC;YACL,CAAC;YAED,qFAAqF;YACrF,kGAAkG;YAClG,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACnB,qHAAqH;gBACrH,sHAAsH;gBACtH,sHAAsH;gBACtH,sEAAsE;gBACtE,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,IAAA,kBAAQ,EAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACO,sBAAsB,CAAC,MAAgC,EAAE,MAAkB;QACjF,MAAM,WAAW,GAAI,IAAgC,CAAC,MAAM,CAAC,YAAY,CAA6B,CAAC;QACvG,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;OASG;IACO,yBAAyB,CAAC,MAAgC,EAAE,MAAkB;QACpF,MAAM,WAAW,GAAI,IAAgC,CAAC,MAAM,CAAC,YAAY,CAA6B,CAAC;QACvG,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,kCAAkC;QAClC,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,iCAAiC;QACjC,OAAO,IAAI,CAAC,4BAA4B,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;OASG;IACO,uBAAuB,CAAC,MAAgC;QAC9D,uEAAuE;QACvE,2DAA2D;QAC3D,0EAA0E;QAC1E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,yEAAyE;QACzE,6DAA6D;QAC7D,uEAAuE;QACvE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,2DAA2D;QAC3D,0EAA0E;QAC1E,IAAI,IAAI,CAAC,4BAA4B,EAAE,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACO,4BAA4B;QAClC,wDAAwD;QACxD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACvC,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAElD,0EAA0E;QAC1E,0CAA0C;QAC1C,OAAO,aAAa,CAAC,iBAAiB,KAAK,SAAS,CAAC,iBAAiB,CAAC;IAC3E,CAAC;IAED;;;;;;OAMG;IACO,sBAAsB,CAAC,MAAgC,EAAE,KAAsB;QACrF,MAAM,WAAW,GAAI,IAAgC,CAAC,MAAM,CAAC,YAAY,CAA6B,CAAC;QACvG,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,uCAAuC;YACvC,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;QAEhC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACjC,sEAAsE;gBACtE,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,WAAW,EAAE,CAAC;oBACd,8DAA8D;oBAC9D,OAAO;gBACX,CAAC;gBAED,wFAAwF;gBACxF,MAAM,UAAU,GAAG,IAAI,CAAC,4BAA4B,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAC1E,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;oBAClB,yCAAyC;oBACzC,WAAW,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;oBACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;oBAC7F,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACJ,kCAAkC;oBAClC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;oBAC7F,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC9D,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,kEAAkE;gBAClE,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,WAAW,EAAE,CAAC;oBACd,mEAAmE;oBACnE,OAAO;gBACX,CAAC;gBAED,4CAA4C;gBAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,4BAA4B,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBACrE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;oBACb,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;oBAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;oBAC7F,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACJ,8DAA8D;oBAC9D,+EAA+E;oBAC/E,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;oBAC7F,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC9D,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,oDAAoD;YACpD,IAAI,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,0DAA0D;gBAC1D,KAAK,GAAG,IAAI,CAAC,4BAA4B,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACb,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC7F,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACO,4BAA4B,CAAC,SAAuB,EAAE,YAAwB;QACpF,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,mEAAmE;YACnE,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACnD,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC;QACzE,CAAC;QAED,yCAAyC;QACzC,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAE,YAAmD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAE7G,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3B,iCAAiC;YACjC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;gBACjC,MAAM,WAAW,GAAI,CAAwC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACvE,OAAO,WAAW,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAID;;;;OAIG;IACO,qBAAqB,CAAC,GAAQ;QACpC,4EAA4E;QAC5E,IAAI,GAAG,YAAY,wBAAwB;YACvC,OAAO,GAAG,CAAC;;YAEX,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,WAAW,CAAC,OAA4C,EAAE,WAAqB;QAC3F,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;QAExE,iJAAiJ;QACjJ,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAE/E,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YACxE,IAAI,CAAC,yBAAyB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,gBAAgB,CAAC,MAAgC,EAAE,WAAqB;QACpF,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YACzB,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;;YAE/D,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,sBAAsB,CAAC,MAAgC,EAAE,WAAqB;QAC1F,MAAM,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACpC,MAAM,EAAE,GAAG,IAAI,iBAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC;YAC5B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,eAAe;YAC3B,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,IAAI,EAAG,sEAAsE;YAC1F,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;SACtC,EAAE,WAAW,CAAC,CAAC;QAEhB,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACO,sBAAsB,CAAC,MAAgC,EAAE,MAAqB;QACpF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBAC9B,IAAY,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;YACxD,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAEhG,yDAAyD;YACzD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAE9C,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACpE,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,yBAAyB,CAAC,OAAmC,EAAE,WAAqB;QAChG,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,iBAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAChC,OAAsB;oBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,UAAU,EAAE,eAAe;oBAC3B,WAAW,EAAE,CAAC,CAAC,MAAM;oBACrB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,WAAW,EAAE,IAAI,EAAG,sEAAsE;oBAC1F,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,aAAa,EAAE,CAAC,CAAC,aAAa;iBACjC,CAAC;YACN,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAE5D,mEAAmE;YACnE,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;oBACxB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC;YAED,qEAAqE;YACrE,mFAAmF;YACnF,0DAA0D;YAC1D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,uCAAkB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,uBAAuB,CAAC,MAAgC,EAAE,WAAqB;QAC3F,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QAC7B,MAAM,MAAM,GAAsB,MAAM,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACjH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBAC/B,IAAI,MAAM,CAAC,qBAAqB,KAAK,iBAAiB,EAAE,CAAC;oBACrD,MAAM,YAAY,GAAG,EAAE,CAAC;oBACxB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBAChC,+CAA+C;wBAC/C,iCAAiC;wBACjC,MAAM,QAAQ,GAAiB,EAAE,CAAC;wBAClC,KAAI,MAAM,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;4BACnC,MAAM,MAAM,GAAe,MAAM,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;4BACjF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;4BAC3B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC1B,CAAC;wBAED,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;oBACvC,CAAC;oBACA,IAAY,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;gBACtD,CAAC;qBACI,CAAC;oBACF,iEAAiE;oBACjE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC/B,IAAY,CAAC,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;oBACxE,CAAC;gBACL,CAAC;YACL,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAElG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACpE,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CAAC,YAAoB,EAAE,UAAkB;QAC/D,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3C,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;QAC3E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,KAA0B,CAAC,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,gBAAgB,CAAC,MAAgC,EAAE,WAAsB;QAClF,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACI,mBAAmB,CAAC,YAAoB;QAC3C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3C,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAGD;;;OAGG;IACI,KAAK,CAAC,WAAW,CAAC,YAAoB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1H,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe;QACxB,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACxH,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,iBAAiB,CAAC,WAAsB;QACpD,0EAA0E;IAC9E,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;OAEG;IACO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACjE,CAAC;;AA55BL,gCA65BC;AAttBG;;;;;uEAKuE;AACvE,oHAAoH;AACpH,8GAA8G;AAC9G,4CAA4C;AAC5C,IAAI;AACW,6BAAkB,GAA+E,EAAE,AAAjF,CAAkF"}