@memberjunction/react-runtime 2.71.0 → 2.73.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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @memberjunction/react-runtime@2.71.0 build
2
+ > @memberjunction/react-runtime@2.73.0 build
3
3
  > tsc
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @memberjunction/react-runtime
2
2
 
3
+ ## 2.73.0
4
+
5
+ ### Patch Changes
6
+
7
+ - @memberjunction/interactive-component-types@2.73.0
8
+ - @memberjunction/core@2.73.0
9
+ - @memberjunction/global@2.73.0
10
+
11
+ ## 2.72.0
12
+
13
+ ### Patch Changes
14
+
15
+ - @memberjunction/interactive-component-types@2.72.0
16
+ - @memberjunction/core@2.72.0
17
+ - @memberjunction/global@2.72.0
18
+
3
19
  ## 2.71.0
4
20
 
5
21
  ### Minor Changes
package/dist/index.d.ts CHANGED
@@ -8,11 +8,13 @@ export { ComponentRegistry } from './registry';
8
8
  export { ComponentResolver, ComponentSpec, ResolvedComponents } from './registry';
9
9
  export { createErrorBoundary, withErrorBoundary, formatComponentError, createErrorLogger } from './runtime';
10
10
  export { wrapComponent, memoizeComponent, lazyComponent, injectProps, conditionalComponent, withErrorHandler, portalComponent, WrapperOptions } from './runtime';
11
- export { buildComponentProps, normalizeCallbacks, normalizeStyles, validateComponentProps, mergeProps, createPropsTransformer, wrapCallbacksWithLogging, extractPropPaths, PropBuilderOptions } from './runtime';
11
+ export { buildComponentProps, cleanupPropBuilder, normalizeCallbacks, normalizeStyles, validateComponentProps, mergeProps, createPropsTransformer, wrapCallbacksWithLogging, extractPropPaths, PropBuilderOptions } from './runtime';
12
12
  export { ComponentHierarchyRegistrar, registerComponentHierarchy, validateComponentSpec, flattenComponentHierarchy, countComponentsInHierarchy, HierarchyRegistrationResult, ComponentRegistrationError, HierarchyRegistrationOptions } from './runtime';
13
13
  export { RuntimeUtilities, createRuntimeUtilities } from './utilities/runtime-utilities';
14
14
  export { SetupStyles, createDefaultComponentStyles } from './utilities/component-styles';
15
15
  export { STANDARD_LIBRARY_URLS, StandardLibraries, getCoreLibraryUrls, getUILibraryUrls, getCSSUrls, createStandardLibraries } from './utilities/standard-libraries';
16
+ export { LibraryLoader, LibraryLoadOptions, LibraryLoadResult } from './utilities/library-loader';
17
+ export { ComponentErrorAnalyzer, FailedComponentInfo } from './utilities/component-error-analyzer';
16
18
  export declare const VERSION = "2.69.1";
17
19
  export declare const DEFAULT_CONFIGS: {
18
20
  compiler: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,4BAA4B,EAC7B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AAGxC,eAAO,MAAM,OAAO,WAAW,CAAC;AAGhC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAiB3B,CAAC;AAQF,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,GAAG,EAClB,MAAM,CAAC,EAAE;IACP,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,SAAS,EAAE,cAAc,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,SAAS,EAAE,cAAc,CAAC,CAAC;CACtD;;;;;EAcF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,4BAA4B,EAC7B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,sCAAsC,CAAC;AAG9C,eAAO,MAAM,OAAO,WAAW,CAAC;AAGhC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAiB3B,CAAC;AAQF,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,GAAG,EAClB,MAAM,CAAC,EAAE;IACP,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,SAAS,EAAE,cAAc,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,SAAS,EAAE,cAAc,CAAC,CAAC;CACtD;;;;;EAcF"}
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.createReactRuntime = exports.DEFAULT_CONFIGS = exports.VERSION = exports.createStandardLibraries = exports.getCSSUrls = exports.getUILibraryUrls = exports.getCoreLibraryUrls = exports.STANDARD_LIBRARY_URLS = exports.createDefaultComponentStyles = exports.SetupStyles = exports.createRuntimeUtilities = exports.RuntimeUtilities = exports.countComponentsInHierarchy = exports.flattenComponentHierarchy = exports.validateComponentSpec = exports.registerComponentHierarchy = exports.ComponentHierarchyRegistrar = exports.extractPropPaths = exports.wrapCallbacksWithLogging = exports.createPropsTransformer = exports.mergeProps = exports.validateComponentProps = exports.normalizeStyles = exports.normalizeCallbacks = exports.buildComponentProps = exports.portalComponent = exports.withErrorHandler = exports.conditionalComponent = exports.injectProps = exports.lazyComponent = exports.memoizeComponent = exports.wrapComponent = exports.createErrorLogger = exports.formatComponentError = exports.withErrorBoundary = exports.createErrorBoundary = exports.ComponentResolver = exports.ComponentRegistry = exports.getJSXConfig = exports.validateBabelPresets = exports.getBabelConfig = exports.DEVELOPMENT_CONFIG = exports.PRODUCTION_CONFIG = exports.DEFAULT_PLUGINS = exports.DEFAULT_PRESETS = exports.ComponentCompiler = void 0;
17
+ exports.createReactRuntime = exports.DEFAULT_CONFIGS = exports.VERSION = exports.ComponentErrorAnalyzer = exports.LibraryLoader = exports.createStandardLibraries = exports.getCSSUrls = exports.getUILibraryUrls = exports.getCoreLibraryUrls = exports.STANDARD_LIBRARY_URLS = exports.createDefaultComponentStyles = exports.SetupStyles = exports.createRuntimeUtilities = exports.RuntimeUtilities = exports.countComponentsInHierarchy = exports.flattenComponentHierarchy = exports.validateComponentSpec = exports.registerComponentHierarchy = exports.ComponentHierarchyRegistrar = exports.extractPropPaths = exports.wrapCallbacksWithLogging = exports.createPropsTransformer = exports.mergeProps = exports.validateComponentProps = exports.normalizeStyles = exports.normalizeCallbacks = exports.cleanupPropBuilder = exports.buildComponentProps = exports.portalComponent = exports.withErrorHandler = exports.conditionalComponent = exports.injectProps = exports.lazyComponent = exports.memoizeComponent = exports.wrapComponent = exports.createErrorLogger = exports.formatComponentError = exports.withErrorBoundary = exports.createErrorBoundary = exports.ComponentResolver = exports.ComponentRegistry = exports.getJSXConfig = exports.validateBabelPresets = exports.getBabelConfig = exports.DEVELOPMENT_CONFIG = exports.PRODUCTION_CONFIG = exports.DEFAULT_PLUGINS = exports.DEFAULT_PRESETS = exports.ComponentCompiler = void 0;
18
18
  const compiler_1 = require("./compiler");
19
19
  const registry_1 = require("./registry");
20
20
  const registry_2 = require("./registry");
@@ -48,6 +48,7 @@ Object.defineProperty(exports, "withErrorHandler", { enumerable: true, get: func
48
48
  Object.defineProperty(exports, "portalComponent", { enumerable: true, get: function () { return runtime_2.portalComponent; } });
49
49
  var runtime_3 = require("./runtime");
50
50
  Object.defineProperty(exports, "buildComponentProps", { enumerable: true, get: function () { return runtime_3.buildComponentProps; } });
51
+ Object.defineProperty(exports, "cleanupPropBuilder", { enumerable: true, get: function () { return runtime_3.cleanupPropBuilder; } });
51
52
  Object.defineProperty(exports, "normalizeCallbacks", { enumerable: true, get: function () { return runtime_3.normalizeCallbacks; } });
52
53
  Object.defineProperty(exports, "normalizeStyles", { enumerable: true, get: function () { return runtime_3.normalizeStyles; } });
53
54
  Object.defineProperty(exports, "validateComponentProps", { enumerable: true, get: function () { return runtime_3.validateComponentProps; } });
@@ -73,6 +74,10 @@ Object.defineProperty(exports, "getCoreLibraryUrls", { enumerable: true, get: fu
73
74
  Object.defineProperty(exports, "getUILibraryUrls", { enumerable: true, get: function () { return standard_libraries_1.getUILibraryUrls; } });
74
75
  Object.defineProperty(exports, "getCSSUrls", { enumerable: true, get: function () { return standard_libraries_1.getCSSUrls; } });
75
76
  Object.defineProperty(exports, "createStandardLibraries", { enumerable: true, get: function () { return standard_libraries_1.createStandardLibraries; } });
77
+ var library_loader_1 = require("./utilities/library-loader");
78
+ Object.defineProperty(exports, "LibraryLoader", { enumerable: true, get: function () { return library_loader_1.LibraryLoader; } });
79
+ var component_error_analyzer_1 = require("./utilities/component-error-analyzer");
80
+ Object.defineProperty(exports, "ComponentErrorAnalyzer", { enumerable: true, get: function () { return component_error_analyzer_1.ComponentErrorAnalyzer; } });
76
81
  exports.VERSION = '2.69.1';
77
82
  exports.DEFAULT_CONFIGS = {
78
83
  compiler: {
@@ -1,5 +1,5 @@
1
1
  export { createErrorBoundary, withErrorBoundary, formatComponentError, createErrorLogger } from './error-boundary';
2
2
  export { wrapComponent, memoizeComponent, lazyComponent, injectProps, conditionalComponent, withErrorHandler, portalComponent, WrapperOptions } from './component-wrapper';
3
- export { buildComponentProps, normalizeCallbacks, normalizeStyles, validateComponentProps, mergeProps, createPropsTransformer, wrapCallbacksWithLogging, extractPropPaths, PropBuilderOptions } from './prop-builder';
3
+ export { buildComponentProps, cleanupPropBuilder, normalizeCallbacks, normalizeStyles, validateComponentProps, mergeProps, createPropsTransformer, wrapCallbacksWithLogging, extractPropPaths, PropBuilderOptions } from './prop-builder';
4
4
  export { ComponentHierarchyRegistrar, registerComponentHierarchy, validateComponentSpec, flattenComponentHierarchy, countComponentsInHierarchy, HierarchyRegistrationResult, ComponentRegistrationError, HierarchyRegistrationOptions } from './component-hierarchy';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,uBAAuB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.countComponentsInHierarchy = exports.flattenComponentHierarchy = exports.validateComponentSpec = exports.registerComponentHierarchy = exports.ComponentHierarchyRegistrar = exports.extractPropPaths = exports.wrapCallbacksWithLogging = exports.createPropsTransformer = exports.mergeProps = exports.validateComponentProps = exports.normalizeStyles = exports.normalizeCallbacks = exports.buildComponentProps = exports.portalComponent = exports.withErrorHandler = exports.conditionalComponent = exports.injectProps = exports.lazyComponent = exports.memoizeComponent = exports.wrapComponent = exports.createErrorLogger = exports.formatComponentError = exports.withErrorBoundary = exports.createErrorBoundary = void 0;
3
+ exports.countComponentsInHierarchy = exports.flattenComponentHierarchy = exports.validateComponentSpec = exports.registerComponentHierarchy = exports.ComponentHierarchyRegistrar = exports.extractPropPaths = exports.wrapCallbacksWithLogging = exports.createPropsTransformer = exports.mergeProps = exports.validateComponentProps = exports.normalizeStyles = exports.normalizeCallbacks = exports.cleanupPropBuilder = exports.buildComponentProps = exports.portalComponent = exports.withErrorHandler = exports.conditionalComponent = exports.injectProps = exports.lazyComponent = exports.memoizeComponent = exports.wrapComponent = exports.createErrorLogger = exports.formatComponentError = exports.withErrorBoundary = exports.createErrorBoundary = void 0;
4
4
  var error_boundary_1 = require("./error-boundary");
5
5
  Object.defineProperty(exports, "createErrorBoundary", { enumerable: true, get: function () { return error_boundary_1.createErrorBoundary; } });
6
6
  Object.defineProperty(exports, "withErrorBoundary", { enumerable: true, get: function () { return error_boundary_1.withErrorBoundary; } });
@@ -16,6 +16,7 @@ Object.defineProperty(exports, "withErrorHandler", { enumerable: true, get: func
16
16
  Object.defineProperty(exports, "portalComponent", { enumerable: true, get: function () { return component_wrapper_1.portalComponent; } });
17
17
  var prop_builder_1 = require("./prop-builder");
18
18
  Object.defineProperty(exports, "buildComponentProps", { enumerable: true, get: function () { return prop_builder_1.buildComponentProps; } });
19
+ Object.defineProperty(exports, "cleanupPropBuilder", { enumerable: true, get: function () { return prop_builder_1.cleanupPropBuilder; } });
19
20
  Object.defineProperty(exports, "normalizeCallbacks", { enumerable: true, get: function () { return prop_builder_1.normalizeCallbacks; } });
20
21
  Object.defineProperty(exports, "normalizeStyles", { enumerable: true, get: function () { return prop_builder_1.normalizeStyles; } });
21
22
  Object.defineProperty(exports, "validateComponentProps", { enumerable: true, get: function () { return prop_builder_1.validateComponentProps; } });
@@ -4,12 +4,14 @@ export interface PropBuilderOptions {
4
4
  merge?: boolean;
5
5
  transformData?: (data: any) => any;
6
6
  transformState?: (state: any) => any;
7
+ debounceUpdateUserState?: number;
7
8
  }
8
9
  export declare function buildComponentProps(data?: any, userState?: any, utilities?: any, callbacks?: ComponentCallbacks, components?: Record<string, any>, styles?: ComponentStyles, options?: PropBuilderOptions): ComponentProps;
9
- export declare function normalizeCallbacks(callbacks: any): ComponentCallbacks;
10
+ export declare function normalizeCallbacks(callbacks: any, debounceMs?: number): ComponentCallbacks;
10
11
  export declare function normalizeStyles(styles?: any): any;
11
12
  export declare function validateComponentProps(props: ComponentProps): void;
12
13
  export declare function mergeProps(...propsList: Partial<ComponentProps>[]): ComponentProps;
14
+ export declare function cleanupPropBuilder(callbacks: ComponentCallbacks): void;
13
15
  export declare function createPropsTransformer(transformations: Record<string, (value: any) => any>): (props: ComponentProps) => ComponentProps;
14
16
  export declare function wrapCallbacksWithLogging(callbacks: ComponentCallbacks, componentName: string): ComponentCallbacks;
15
17
  export declare function extractPropPaths(componentCode: string): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"prop-builder.d.ts","sourceRoot":"","sources":["../../src/runtime/prop-builder.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAK/E,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAEnC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;CACtC;AAaD,wBAAgB,mBAAmB,CACjC,IAAI,GAAE,GAAQ,EACd,SAAS,GAAE,GAAQ,EACnB,SAAS,GAAE,GAAQ,EACnB,SAAS,GAAE,kBAAuB,EAClC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACpC,MAAM,CAAC,EAAE,eAAe,EACxB,OAAO,GAAE,kBAAuB,GAC/B,cAAc,CA2BhB;AAOD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,kBAAkB,CAqBrE;AAOD,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,CAKjD;AAOD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CA2BlE;AAOD,wBAAgB,UAAU,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,cAAc,CAqClF;AAOD,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,GACnD,CAAC,KAAK,EAAE,cAAc,KAAK,cAAc,CAyB3C;AAQD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,kBAAkB,EAC7B,aAAa,EAAE,MAAM,GACpB,kBAAkB,CAgCpB;AAOD,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAmBhE"}
1
+ {"version":3,"file":"prop-builder.d.ts","sourceRoot":"","sources":["../../src/runtime/prop-builder.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAM/E,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAEnC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAErC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAaD,wBAAgB,mBAAmB,CACjC,IAAI,GAAE,GAAQ,EACd,SAAS,GAAE,GAAQ,EACnB,SAAS,GAAE,GAAQ,EACnB,SAAS,GAAE,kBAAuB,EAClC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACpC,MAAM,CAAC,EAAE,eAAe,EACxB,OAAO,GAAE,kBAAuB,GAC/B,cAAc,CA4BhB;AA0CD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,GAAE,MAAa,GAAG,kBAAkB,CAiFhG;AAOD,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,CAKjD;AAOD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CA2BlE;AAOD,wBAAgB,UAAU,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,cAAc,CAqClF;AAMD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAqBtE;AAOD,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,GACnD,CAAC,KAAK,EAAE,cAAc,KAAK,cAAc,CAyB3C;AAQD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,kBAAkB,EAC7B,aAAa,EAAE,MAAM,GACpB,kBAAkB,CAgCpB;AAOD,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAmBhE"}
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractPropPaths = exports.wrapCallbacksWithLogging = exports.createPropsTransformer = exports.mergeProps = exports.validateComponentProps = exports.normalizeStyles = exports.normalizeCallbacks = exports.buildComponentProps = void 0;
3
+ exports.extractPropPaths = exports.wrapCallbacksWithLogging = exports.createPropsTransformer = exports.cleanupPropBuilder = exports.mergeProps = exports.validateComponentProps = exports.normalizeStyles = exports.normalizeCallbacks = exports.buildComponentProps = void 0;
4
+ const rxjs_1 = require("rxjs");
4
5
  function buildComponentProps(data = {}, userState = {}, utilities = {}, callbacks = {}, components = {}, styles, options = {}) {
5
- const { validate = true, transformData, transformState } = options;
6
+ const { validate = true, transformData, transformState, debounceUpdateUserState = 3000 } = options;
6
7
  const transformedData = transformData ? transformData(data) : data;
7
8
  const transformedState = transformState ? transformState(userState) : userState;
8
9
  const props = {
9
10
  data: transformedData,
10
11
  userState: transformedState,
11
12
  utilities,
12
- callbacks: normalizeCallbacks(callbacks),
13
+ callbacks: normalizeCallbacks(callbacks, debounceUpdateUserState),
13
14
  components,
14
15
  styles: normalizeStyles(styles)
15
16
  };
@@ -19,7 +20,29 @@ function buildComponentProps(data = {}, userState = {}, utilities = {}, callback
19
20
  return props;
20
21
  }
21
22
  exports.buildComponentProps = buildComponentProps;
22
- function normalizeCallbacks(callbacks) {
23
+ const updateUserStateSubjects = new WeakMap();
24
+ const updateUserStateSubscriptions = new WeakMap();
25
+ const loopDetectionStates = new WeakMap();
26
+ function deepEqual(obj1, obj2) {
27
+ if (obj1 === obj2)
28
+ return true;
29
+ if (!obj1 || !obj2)
30
+ return false;
31
+ if (typeof obj1 !== 'object' || typeof obj2 !== 'object')
32
+ return false;
33
+ const keys1 = Object.keys(obj1);
34
+ const keys2 = Object.keys(obj2);
35
+ if (keys1.length !== keys2.length)
36
+ return false;
37
+ for (const key of keys1) {
38
+ if (!keys2.includes(key))
39
+ return false;
40
+ if (!deepEqual(obj1[key], obj2[key]))
41
+ return false;
42
+ }
43
+ return true;
44
+ }
45
+ function normalizeCallbacks(callbacks, debounceMs = 3000) {
23
46
  const normalized = {};
24
47
  if (callbacks.RefreshData && typeof callbacks.RefreshData === 'function') {
25
48
  normalized.RefreshData = callbacks.RefreshData;
@@ -28,7 +51,44 @@ function normalizeCallbacks(callbacks) {
28
51
  normalized.OpenEntityRecord = callbacks.OpenEntityRecord;
29
52
  }
30
53
  if (callbacks.UpdateUserState && typeof callbacks.UpdateUserState === 'function') {
31
- normalized.UpdateUserState = callbacks.UpdateUserState;
54
+ const originalCallback = callbacks.UpdateUserState;
55
+ let subject = updateUserStateSubjects.get(originalCallback);
56
+ if (!subject) {
57
+ subject = new rxjs_1.Subject();
58
+ updateUserStateSubjects.set(originalCallback, subject);
59
+ const subscription = subject.pipe((0, rxjs_1.debounceTime)(debounceMs)).subscribe(state => {
60
+ console.log(`[Skip Component] UpdateUserState called after ${debounceMs}ms debounce`);
61
+ originalCallback(state);
62
+ });
63
+ updateUserStateSubscriptions.set(originalCallback, subscription);
64
+ }
65
+ let loopState = loopDetectionStates.get(originalCallback);
66
+ if (!loopState) {
67
+ loopState = { count: 0, lastUpdate: 0, lastState: null };
68
+ loopDetectionStates.set(originalCallback, loopState);
69
+ }
70
+ normalized.UpdateUserState = (state) => {
71
+ if (loopState.lastState && deepEqual(state, loopState.lastState)) {
72
+ console.log('[Skip Component] Skipping redundant state update');
73
+ return;
74
+ }
75
+ const now = Date.now();
76
+ const timeSinceLastUpdate = now - loopState.lastUpdate;
77
+ if (timeSinceLastUpdate < 100) {
78
+ loopState.count++;
79
+ if (loopState.count > 5) {
80
+ console.error('[Skip Component] Rapid state updates detected - possible infinite loop');
81
+ console.error('Updates in last 100ms:', loopState.count);
82
+ }
83
+ }
84
+ else {
85
+ loopState.count = 0;
86
+ }
87
+ loopState.lastUpdate = now;
88
+ loopState.lastState = JSON.parse(JSON.stringify(state));
89
+ console.log('[Skip Component] Processing state update');
90
+ subject.next(state);
91
+ };
32
92
  }
33
93
  if (callbacks.NotifyEvent && typeof callbacks.NotifyEvent === 'function') {
34
94
  normalized.NotifyEvent = callbacks.NotifyEvent;
@@ -92,6 +152,23 @@ function mergeProps(...propsList) {
92
152
  return merged;
93
153
  }
94
154
  exports.mergeProps = mergeProps;
155
+ function cleanupPropBuilder(callbacks) {
156
+ if (callbacks.UpdateUserState && typeof callbacks.UpdateUserState === 'function') {
157
+ const originalCallback = callbacks.UpdateUserState;
158
+ const subscription = updateUserStateSubscriptions.get(originalCallback);
159
+ if (subscription) {
160
+ subscription.unsubscribe();
161
+ updateUserStateSubscriptions.delete(originalCallback);
162
+ }
163
+ const subject = updateUserStateSubjects.get(originalCallback);
164
+ if (subject) {
165
+ subject.complete();
166
+ updateUserStateSubjects.delete(originalCallback);
167
+ }
168
+ loopDetectionStates.delete(originalCallback);
169
+ }
170
+ }
171
+ exports.cleanupPropBuilder = cleanupPropBuilder;
95
172
  function createPropsTransformer(transformations) {
96
173
  return (props) => {
97
174
  const transformed = { ...props };
@@ -0,0 +1,20 @@
1
+ export interface FailedComponentInfo {
2
+ componentName: string;
3
+ errorType: string;
4
+ errorMessage: string;
5
+ lineNumber?: number;
6
+ context?: string;
7
+ }
8
+ export declare class ComponentErrorAnalyzer {
9
+ private static readonly ERROR_PATTERNS;
10
+ static identifyFailedComponents(errors: string[]): string[];
11
+ static analyzeComponentErrors(errors: string[]): FailedComponentInfo[];
12
+ private static extractComponentsFromError;
13
+ private static analyzeError;
14
+ private static extractComponentsFromStackTrace;
15
+ private static isLikelyComponentName;
16
+ private static extractLineNumber;
17
+ private static extractContext;
18
+ static formatAnalysisResults(failures: FailedComponentInfo[]): string;
19
+ }
20
+ //# sourceMappingURL=component-error-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-error-analyzer.d.ts","sourceRoot":"","sources":["../../src/utilities/component-error-analyzer.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,mBAAmB;IAElC,aAAa,EAAE,MAAM,CAAC;IAEtB,SAAS,EAAE,MAAM,CAAC;IAElB,YAAY,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,qBAAa,sBAAsB;IAIjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CA6DpC;IAOF,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAgB3D,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE;IAuBtE,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAuBzC,OAAO,CAAC,MAAM,CAAC,YAAY;IAsC3B,OAAO,CAAC,MAAM,CAAC,+BAA+B;IA2B9C,OAAO,CAAC,MAAM,CAAC,qBAAqB;IA6BpC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAqBhC,OAAO,CAAC,MAAM,CAAC,cAAc;IAmB7B,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,MAAM;CAqBtE"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ComponentErrorAnalyzer = void 0;
4
+ class ComponentErrorAnalyzer {
5
+ static identifyFailedComponents(errors) {
6
+ const failedComponents = new Set();
7
+ for (const error of errors) {
8
+ const components = this.extractComponentsFromError(error);
9
+ components.forEach(comp => failedComponents.add(comp));
10
+ }
11
+ return Array.from(failedComponents);
12
+ }
13
+ static analyzeComponentErrors(errors) {
14
+ const failures = [];
15
+ for (const error of errors) {
16
+ const failureInfo = this.analyzeError(error);
17
+ failures.push(...failureInfo);
18
+ }
19
+ const uniqueFailures = new Map();
20
+ failures.forEach(failure => {
21
+ const key = `${failure.componentName}-${failure.errorType}`;
22
+ if (!uniqueFailures.has(key)) {
23
+ uniqueFailures.set(key, failure);
24
+ }
25
+ });
26
+ return Array.from(uniqueFailures.values());
27
+ }
28
+ static extractComponentsFromError(error) {
29
+ const components = [];
30
+ for (const errorPattern of this.ERROR_PATTERNS) {
31
+ const match = error.match(errorPattern.pattern);
32
+ if (match) {
33
+ const componentName = errorPattern.extractComponent(match);
34
+ if (componentName && this.isLikelyComponentName(componentName)) {
35
+ components.push(componentName);
36
+ }
37
+ }
38
+ }
39
+ const stackComponents = this.extractComponentsFromStackTrace(error);
40
+ components.push(...stackComponents);
41
+ return components;
42
+ }
43
+ static analyzeError(error) {
44
+ const failures = [];
45
+ for (const errorPattern of this.ERROR_PATTERNS) {
46
+ const match = error.match(errorPattern.pattern);
47
+ if (match) {
48
+ const componentName = errorPattern.extractComponent(match);
49
+ if (componentName && this.isLikelyComponentName(componentName)) {
50
+ failures.push({
51
+ componentName,
52
+ errorType: errorPattern.errorType,
53
+ errorMessage: error,
54
+ lineNumber: this.extractLineNumber(error),
55
+ context: this.extractContext(error)
56
+ });
57
+ }
58
+ }
59
+ }
60
+ if (failures.length === 0) {
61
+ const stackComponents = this.extractComponentsFromStackTrace(error);
62
+ stackComponents.forEach(componentName => {
63
+ failures.push({
64
+ componentName,
65
+ errorType: 'unknown',
66
+ errorMessage: error,
67
+ lineNumber: this.extractLineNumber(error)
68
+ });
69
+ });
70
+ }
71
+ return failures;
72
+ }
73
+ static extractComponentsFromStackTrace(error) {
74
+ const components = [];
75
+ const stackPatterns = [
76
+ /at (\w+Component\w*)/g,
77
+ /at (\w+)\s*\(/g,
78
+ /in (\w+)\s*\(at/g,
79
+ /in (\w+)\s*\(created by/g
80
+ ];
81
+ for (const pattern of stackPatterns) {
82
+ let match;
83
+ while ((match = pattern.exec(error)) !== null) {
84
+ const name = match[1];
85
+ if (this.isLikelyComponentName(name)) {
86
+ components.push(name);
87
+ }
88
+ }
89
+ }
90
+ return [...new Set(components)];
91
+ }
92
+ static isLikelyComponentName(name) {
93
+ const jsBuiltins = new Set([
94
+ 'Object', 'Array', 'String', 'Number', 'Boolean', 'Function',
95
+ 'Promise', 'Error', 'TypeError', 'ReferenceError', 'SyntaxError',
96
+ 'undefined', 'null', 'console', 'window', 'document'
97
+ ]);
98
+ const nonComponents = new Set([
99
+ 'render', 'setState', 'forceUpdate', 'props', 'state', 'context',
100
+ 'componentDidMount', 'componentWillUnmount', 'useEffect', 'useState'
101
+ ]);
102
+ return (name.length > 0 &&
103
+ /^[A-Z]/.test(name) &&
104
+ !jsBuiltins.has(name) &&
105
+ !nonComponents.has(name) &&
106
+ !/^use[A-Z]/.test(name));
107
+ }
108
+ static extractLineNumber(error) {
109
+ const patterns = [
110
+ /:(\d+):\d+/,
111
+ /line (\d+)/i,
112
+ /Line (\d+)/
113
+ ];
114
+ for (const pattern of patterns) {
115
+ const match = error.match(pattern);
116
+ if (match) {
117
+ return parseInt(match[1], 10);
118
+ }
119
+ }
120
+ return undefined;
121
+ }
122
+ static extractContext(error) {
123
+ const fileMatch = error.match(/\(at ([^)]+)\)/);
124
+ if (fileMatch) {
125
+ return fileMatch[1];
126
+ }
127
+ const createdByMatch = error.match(/created by (\w+)/);
128
+ if (createdByMatch) {
129
+ return `Created by ${createdByMatch[1]}`;
130
+ }
131
+ return undefined;
132
+ }
133
+ static formatAnalysisResults(failures) {
134
+ if (failures.length === 0) {
135
+ return 'No component failures detected';
136
+ }
137
+ let result = `Detected ${failures.length} component failure(s):\n`;
138
+ failures.forEach((failure, index) => {
139
+ result += `\n${index + 1}. Component: ${failure.componentName}\n`;
140
+ result += ` Error Type: ${failure.errorType}\n`;
141
+ if (failure.lineNumber) {
142
+ result += ` Line: ${failure.lineNumber}\n`;
143
+ }
144
+ if (failure.context) {
145
+ result += ` Context: ${failure.context}\n`;
146
+ }
147
+ result += ` Message: ${failure.errorMessage.substring(0, 200)}${failure.errorMessage.length > 200 ? '...' : ''}\n`;
148
+ });
149
+ return result;
150
+ }
151
+ }
152
+ exports.ComponentErrorAnalyzer = ComponentErrorAnalyzer;
153
+ ComponentErrorAnalyzer.ERROR_PATTERNS = [
154
+ {
155
+ pattern: /ReferenceError: (\w+) is not defined/,
156
+ errorType: 'not_defined',
157
+ extractComponent: (match) => match[1]
158
+ },
159
+ {
160
+ pattern: /Cannot read propert(?:y|ies) '(\w+)' of undefined/,
161
+ errorType: 'property_error',
162
+ extractComponent: (match) => match[1]
163
+ },
164
+ {
165
+ pattern: /(\w+)\(\.\.\.\): Nothing was returned from render/,
166
+ errorType: 'render_error',
167
+ extractComponent: (match) => match[1]
168
+ },
169
+ {
170
+ pattern: /at (\w+Component\w*)/,
171
+ errorType: 'stack_trace',
172
+ extractComponent: (match) => match[1]
173
+ },
174
+ {
175
+ pattern: /Error: Unable to find node on an unmounted component/,
176
+ errorType: 'unmounted_component',
177
+ extractComponent: () => null
178
+ },
179
+ {
180
+ pattern: /Invalid hook call.*component (\w+)/,
181
+ errorType: 'invalid_hook',
182
+ extractComponent: (match) => match[1]
183
+ },
184
+ {
185
+ pattern: /TypeError:.*in (\w+) \(at/,
186
+ errorType: 'type_error',
187
+ extractComponent: (match) => match[1]
188
+ },
189
+ {
190
+ pattern: /Module not found: Error: Can't resolve '\.\/(\w+)'/,
191
+ errorType: 'missing_import',
192
+ extractComponent: (match) => match[1]
193
+ },
194
+ {
195
+ pattern: /(\w+) is not a function/,
196
+ errorType: 'not_a_function',
197
+ extractComponent: (match) => match[1]
198
+ },
199
+ {
200
+ pattern: /Minified React error.*Visit.*for the full message.*component[: ](\w+)/s,
201
+ errorType: 'react_error',
202
+ extractComponent: (match) => match[1]
203
+ }
204
+ ];
@@ -1,4 +1,6 @@
1
1
  export * from './runtime-utilities';
2
2
  export * from './component-styles';
3
3
  export * from './standard-libraries';
4
+ export * from './library-loader';
5
+ export * from './component-error-analyzer';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAKA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAKA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
@@ -17,3 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./runtime-utilities"), exports);
18
18
  __exportStar(require("./component-styles"), exports);
19
19
  __exportStar(require("./standard-libraries"), exports);
20
+ __exportStar(require("./library-loader"), exports);
21
+ __exportStar(require("./component-error-analyzer"), exports);
@@ -0,0 +1,33 @@
1
+ import { StandardLibraries } from './standard-libraries';
2
+ interface LoadedResource {
3
+ element: HTMLScriptElement | HTMLLinkElement;
4
+ promise: Promise<any>;
5
+ }
6
+ export interface LibraryLoadOptions {
7
+ loadCore?: boolean;
8
+ loadUI?: boolean;
9
+ loadCSS?: boolean;
10
+ customLibraries?: {
11
+ url: string;
12
+ globalName: string;
13
+ }[];
14
+ }
15
+ export interface LibraryLoadResult {
16
+ React: any;
17
+ ReactDOM: any;
18
+ Babel: any;
19
+ libraries: StandardLibraries;
20
+ }
21
+ export declare class LibraryLoader {
22
+ private static loadedResources;
23
+ static loadAllLibraries(): Promise<LibraryLoadResult>;
24
+ static loadLibraries(options: LibraryLoadOptions): Promise<LibraryLoadResult>;
25
+ private static loadScript;
26
+ private static loadCSS;
27
+ private static waitForScriptLoad;
28
+ private static getLibraryNameFromUrl;
29
+ static getLoadedResources(): Map<string, LoadedResource>;
30
+ static clearCache(): void;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=library-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library-loader.d.ts","sourceRoot":"","sources":["../../src/utilities/library-loader.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,iBAAiB,EAIlB,MAAM,sBAAsB,CAAC;AAK9B,UAAU,cAAc;IACtB,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAC7C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;CACvB;AAKD,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,eAAe,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACzD;AAKD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAKD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAqC;WAMtD,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,CAAC;WAW9C,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;mBAqF9D,UAAU;IA+D/B,OAAO,CAAC,MAAM,CAAC,OAAO;IAwBtB,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAwChC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAiBpC,MAAM,CAAC,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAOxD,MAAM,CAAC,UAAU,IAAI,IAAI;CAG1B"}