@frybynite/image-cloud 0.5.0 → 0.5.2

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 (70) hide show
  1. package/dist/ImageCloud.d.ts +99 -0
  2. package/dist/ImageCloud.d.ts.map +1 -0
  3. package/dist/config/adapter.d.ts +50 -0
  4. package/dist/config/adapter.d.ts.map +1 -0
  5. package/dist/config/defaults.d.ts +118 -0
  6. package/dist/config/defaults.d.ts.map +1 -0
  7. package/dist/config/types.d.ts +599 -0
  8. package/dist/config/types.d.ts.map +1 -0
  9. package/dist/engines/AnimationEngine.d.ts +82 -0
  10. package/dist/engines/AnimationEngine.d.ts.map +1 -0
  11. package/dist/engines/EntryAnimationEngine.d.ts +161 -0
  12. package/dist/engines/EntryAnimationEngine.d.ts.map +1 -0
  13. package/dist/engines/LayoutEngine.d.ts +68 -0
  14. package/dist/engines/LayoutEngine.d.ts.map +1 -0
  15. package/dist/engines/PathAnimator.d.ts +50 -0
  16. package/dist/engines/PathAnimator.d.ts.map +1 -0
  17. package/dist/engines/SwipeEngine.d.ts +53 -0
  18. package/dist/engines/SwipeEngine.d.ts.map +1 -0
  19. package/dist/engines/ZoomEngine.d.ts +139 -0
  20. package/dist/engines/ZoomEngine.d.ts.map +1 -0
  21. package/dist/image-cloud-auto-init.d.ts +14 -0
  22. package/dist/image-cloud-auto-init.d.ts.map +1 -0
  23. package/dist/image-cloud-auto-init.js +215 -244
  24. package/dist/image-cloud-auto-init.js.map +1 -1
  25. package/dist/image-cloud.js +235 -264
  26. package/dist/image-cloud.js.map +1 -1
  27. package/dist/image-cloud.umd.js +3 -3
  28. package/dist/image-cloud.umd.js.map +1 -1
  29. package/dist/index.d.ts +23 -1637
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/layouts/ClusterPlacementLayout.d.ts +40 -0
  32. package/dist/layouts/ClusterPlacementLayout.d.ts.map +1 -0
  33. package/dist/layouts/GridPlacementLayout.d.ts +27 -0
  34. package/dist/layouts/GridPlacementLayout.d.ts.map +1 -0
  35. package/dist/layouts/RadialPlacementLayout.d.ts +33 -0
  36. package/dist/layouts/RadialPlacementLayout.d.ts.map +1 -0
  37. package/dist/layouts/RandomPlacementLayout.d.ts +26 -0
  38. package/dist/layouts/RandomPlacementLayout.d.ts.map +1 -0
  39. package/dist/layouts/SpiralPlacementLayout.d.ts +43 -0
  40. package/dist/layouts/SpiralPlacementLayout.d.ts.map +1 -0
  41. package/dist/layouts/WavePlacementLayout.d.ts +48 -0
  42. package/dist/layouts/WavePlacementLayout.d.ts.map +1 -0
  43. package/dist/loaders/CompositeLoader.d.ts +37 -0
  44. package/dist/loaders/CompositeLoader.d.ts.map +1 -0
  45. package/dist/loaders/GoogleDriveLoader.d.ts +90 -0
  46. package/dist/loaders/GoogleDriveLoader.d.ts.map +1 -0
  47. package/dist/loaders/ImageFilter.d.ts +26 -0
  48. package/dist/loaders/ImageFilter.d.ts.map +1 -0
  49. package/dist/loaders/StaticImageLoader.d.ts +85 -0
  50. package/dist/loaders/StaticImageLoader.d.ts.map +1 -0
  51. package/dist/react/index.d.ts +16 -0
  52. package/dist/react/index.d.ts.map +1 -0
  53. package/dist/react.d.ts +1 -1637
  54. package/dist/react.js +326 -355
  55. package/dist/react.js.map +1 -1
  56. package/dist/styles/functionalStyles.d.ts +11 -0
  57. package/dist/styles/functionalStyles.d.ts.map +1 -0
  58. package/dist/utils/styleUtils.d.ts +54 -0
  59. package/dist/utils/styleUtils.d.ts.map +1 -0
  60. package/dist/vue/index.d.ts +18 -0
  61. package/dist/vue/index.d.ts.map +1 -0
  62. package/dist/vue.d.ts +1 -1637
  63. package/dist/vue.js +235 -264
  64. package/dist/vue.js.map +1 -1
  65. package/dist/web-component/index.d.ts +15 -0
  66. package/dist/web-component/index.d.ts.map +1 -0
  67. package/dist/web-component.d.ts +1 -1637
  68. package/dist/web-component.js +201 -230
  69. package/dist/web-component.js.map +1 -1
  70. package/package.json +11 -5
@@ -0,0 +1,99 @@
1
+ import { ImageCloudOptions } from './config/types';
2
+ export declare class ImageCloud {
3
+ private containerId;
4
+ private containerRef;
5
+ private fullConfig;
6
+ private imagesLoaded;
7
+ private imageElements;
8
+ private imageLayouts;
9
+ private currentImageHeight;
10
+ private currentFocusIndex;
11
+ private hoveredImage;
12
+ private resizeTimeout;
13
+ private displayQueue;
14
+ private queueInterval;
15
+ private loadGeneration;
16
+ private defaultStyles;
17
+ private hoverStyles;
18
+ private defaultClassName;
19
+ private hoverClassName;
20
+ private animationEngine;
21
+ private entryAnimationEngine;
22
+ private layoutEngine;
23
+ private zoomEngine;
24
+ private swipeEngine;
25
+ private imageLoader;
26
+ private imageFilter;
27
+ private containerEl;
28
+ private loadingEl;
29
+ private errorEl;
30
+ private loadingElAutoCreated;
31
+ private errorElAutoCreated;
32
+ private counterEl;
33
+ private counterElAutoCreated;
34
+ constructor(options?: ImageCloudOptions);
35
+ /**
36
+ * Create image filter based on shared loader config
37
+ */
38
+ private createImageFilter;
39
+ /**
40
+ * Create appropriate image loader based on config
41
+ * Processes loaders array, merges shared config, wraps in CompositeLoader if needed
42
+ */
43
+ private createLoader;
44
+ /**
45
+ * Create a single loader from a LoaderEntry, merging shared config
46
+ */
47
+ private createLoaderFromEntry;
48
+ /**
49
+ * Initialize the gallery
50
+ */
51
+ init(): Promise<void>;
52
+ private setupUI;
53
+ private resolveElement;
54
+ private createDefaultLoadingElement;
55
+ private createDefaultErrorElement;
56
+ private createDefaultCounterElement;
57
+ private setupEventListeners;
58
+ /**
59
+ * Navigate to the next image (Right arrow)
60
+ */
61
+ private navigateToNextImage;
62
+ /**
63
+ * Navigate to the previous image (Left arrow)
64
+ */
65
+ private navigateToPreviousImage;
66
+ /**
67
+ * Navigate to a specific image by index
68
+ */
69
+ private handleResize;
70
+ private getImageHeight;
71
+ /**
72
+ * Get container bounds for layout calculations
73
+ */
74
+ private getContainerBounds;
75
+ /**
76
+ * Load images using the unified loader interface
77
+ */
78
+ private loadImages;
79
+ /**
80
+ * Helper for debug logging
81
+ */
82
+ private logDebug;
83
+ private createImageCloud;
84
+ private handleImageClick;
85
+ /**
86
+ * Clear the image cloud and reset state
87
+ */
88
+ clearImageCloud(): void;
89
+ private showLoading;
90
+ private showError;
91
+ private hideError;
92
+ private updateCounter;
93
+ private hideCounter;
94
+ /**
95
+ * Destroy the gallery and clean up resources
96
+ */
97
+ destroy(): void;
98
+ }
99
+ //# sourceMappingURL=ImageCloud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageCloud.d.ts","sourceRoot":"","sources":["../src/ImageCloud.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAA6K,MAAM,gBAAgB,CAAC;AAenO,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,YAAY,CAAqB;IAGzC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,YAAY,CAA4D;IAChF,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,cAAc,CAAgC;IAGtD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAc;IAGjC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,oBAAoB,CAAU;IACtC,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,oBAAoB,CAAU;gBAE1B,OAAO,GAAE,iBAAsB;IAgE3C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoD3B,OAAO,CAAC,OAAO;IAmCf,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,2BAA2B;IAanC,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,mBAAmB;IAoC3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,cAAc;IA0BtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;YACW,UAAU;IAiDxB;;OAEG;IACH,OAAO,CAAC,QAAQ;YAMF,gBAAgB;YAuUhB,gBAAgB;IA0B9B;;OAEG;IACH,eAAe,IAAI,IAAI;IAsBvB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,IAAI,IAAI;CAqBhB"}
@@ -0,0 +1,50 @@
1
+ import { ImageCloudOptions, LegacyImageGalleryOptions } from './types';
2
+ type NewOptions = Partial<ImageCloudOptions>;
3
+ type OldOptions = LegacyImageGalleryOptions;
4
+ /**
5
+ * Legacy Options Adapter
6
+ * Converts old-style options to new pattern-based options
7
+ */
8
+ export declare class LegacyOptionsAdapter {
9
+ /**
10
+ * Detect if options are in legacy format
11
+ */
12
+ static isLegacyFormat(options: ImageCloudOptions | OldOptions): options is OldOptions;
13
+ /**
14
+ * Convert legacy options to new pattern-based options
15
+ */
16
+ static convert(oldOptions: OldOptions): NewOptions;
17
+ /**
18
+ * Convert loader configuration to new LoaderEntry[] format
19
+ */
20
+ private static convertLoader;
21
+ /**
22
+ * Convert layout configuration to new pattern-based structure
23
+ * Returns both layout and image configs since legacy format combined them
24
+ */
25
+ private static convertLayout;
26
+ /**
27
+ * Convert animation configuration to new pattern-based structure
28
+ */
29
+ private static convertAnimation;
30
+ /**
31
+ * Convert zoom configuration to interaction.focus
32
+ * Note: Old focusScale/mobileScale multipliers don't directly translate to scalePercent.
33
+ * Using default scalePercent of 0.8 for compatibility.
34
+ */
35
+ private static convertZoomToInteraction;
36
+ /**
37
+ * Convert rendering configuration (breakpoints + ui)
38
+ */
39
+ private static convertRendering;
40
+ /**
41
+ * Show a deprecation warning (once per category)
42
+ */
43
+ private static warn;
44
+ /**
45
+ * Clear shown warnings (useful for testing)
46
+ */
47
+ static clearWarnings(): void;
48
+ }
49
+ export {};
50
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/config/adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EAO1B,MAAM,SAAS,CAAC;AAGjB,KAAK,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC7C,KAAK,UAAU,GAAG,yBAAyB,CAAC;AAO5C;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,GAAG,OAAO,IAAI,UAAU;IAarF;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;IA6ClD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAkD5B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAmD5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAuB/B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAWvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IA+B/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,IAAI;IAenB;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;CAG7B"}
@@ -0,0 +1,118 @@
1
+ import { ImageCloudConfig, ImageCloudOptions, ImageStylingConfig, ShadowPreset, WaveAlgorithmConfig, BouncePathConfig, ElasticPathConfig, WavePathConfig, BouncePreset, ElasticPreset, WavePathPreset, EntryPathConfig, EntryRotationConfig, EntryScaleConfig, ImageConfig, ImageSizingConfig, ImageRotationConfig, ResponsiveBreakpoints, SharedLoaderConfig, DebugConfig } from './types';
2
+ /**
3
+ * Shadow presets for image styling
4
+ */
5
+ export declare const SHADOW_PRESETS: Record<ShadowPreset, string>;
6
+ /**
7
+ * Bounce path presets - overshoot and settle animations
8
+ */
9
+ export declare const BOUNCE_PRESETS: Record<BouncePreset, BouncePathConfig>;
10
+ /**
11
+ * Elastic path presets - spring-like oscillation animations
12
+ */
13
+ export declare const ELASTIC_PRESETS: Record<ElasticPreset, ElasticPathConfig>;
14
+ /**
15
+ * Wave path presets - sinusoidal path animations
16
+ */
17
+ export declare const WAVE_PATH_PRESETS: Record<WavePathPreset, WavePathConfig>;
18
+ /**
19
+ * Default path configuration (linear - no special path effects)
20
+ */
21
+ export declare const DEFAULT_PATH_CONFIG: EntryPathConfig;
22
+ /**
23
+ * Default entry rotation configuration (no rotation animation)
24
+ */
25
+ export declare const DEFAULT_ENTRY_ROTATION: EntryRotationConfig;
26
+ /**
27
+ * Default entry scale configuration (no scale animation)
28
+ */
29
+ export declare const DEFAULT_ENTRY_SCALE: EntryScaleConfig;
30
+ /**
31
+ * Entry scale presets for common effects
32
+ */
33
+ export declare const ENTRY_SCALE_PRESETS: Readonly<{
34
+ grow: Readonly<{
35
+ mode: "grow";
36
+ startScale: 0.3;
37
+ }>;
38
+ shrink: Readonly<{
39
+ mode: "shrink";
40
+ startScale: 1.5;
41
+ }>;
42
+ pop: Readonly<{
43
+ mode: "pop";
44
+ pop: Readonly<{
45
+ overshoot: 1.2;
46
+ bounces: 1;
47
+ }>;
48
+ }>;
49
+ randomSubtle: Readonly<{
50
+ mode: "random";
51
+ range: Readonly<{
52
+ min: 0.7;
53
+ max: 1;
54
+ }>;
55
+ }>;
56
+ randomWide: Readonly<{
57
+ mode: "random";
58
+ range: Readonly<{
59
+ min: 0.3;
60
+ max: 1.5;
61
+ }>;
62
+ }>;
63
+ }>;
64
+ /**
65
+ * Default image styling configuration
66
+ */
67
+ export declare const DEFAULT_STYLING: ImageStylingConfig;
68
+ /**
69
+ * Default wave layout configuration
70
+ */
71
+ export declare const DEFAULT_WAVE_CONFIG: WaveAlgorithmConfig;
72
+ /**
73
+ * Default responsive breakpoints for layout
74
+ */
75
+ export declare const DEFAULT_RESPONSIVE_BREAKPOINTS: ResponsiveBreakpoints;
76
+ /**
77
+ * Default image sizing configuration
78
+ */
79
+ export declare const DEFAULT_IMAGE_SIZING: ImageSizingConfig;
80
+ /**
81
+ * Default image rotation configuration
82
+ */
83
+ export declare const DEFAULT_IMAGE_ROTATION: ImageRotationConfig;
84
+ /**
85
+ * Default image configuration
86
+ */
87
+ export declare const DEFAULT_IMAGE_CONFIG: ImageConfig;
88
+ /**
89
+ * Default configuration object
90
+ * Frozen to prevent accidental modifications
91
+ */
92
+ /**
93
+ * Default shared loader configuration
94
+ */
95
+ export declare const DEFAULT_SHARED_LOADER_CONFIG: SharedLoaderConfig;
96
+ /**
97
+ * Default debug configuration
98
+ */
99
+ export declare const DEFAULT_DEBUG_CONFIG: DebugConfig;
100
+ export declare const DEFAULT_CONFIG: ImageCloudConfig;
101
+ export declare function mergeConfig(userConfig?: ImageCloudOptions): ImageCloudConfig;
102
+ /**
103
+ * Resolve bounce path config from preset and overrides
104
+ */
105
+ export declare function resolveBounceConfig(preset?: BouncePreset, overrides?: Partial<BouncePathConfig>): BouncePathConfig;
106
+ /**
107
+ * Resolve elastic path config from preset and overrides
108
+ */
109
+ export declare function resolveElasticConfig(preset?: ElasticPreset, overrides?: Partial<ElasticPathConfig>): ElasticPathConfig;
110
+ /**
111
+ * Resolve wave path config from preset and overrides
112
+ */
113
+ export declare function resolveWavePathConfig(preset?: WavePathPreset, overrides?: Partial<WavePathConfig>): WavePathConfig;
114
+ /**
115
+ * Debug logger
116
+ */
117
+ export declare function debugLog(config: ImageCloudConfig, ...args: unknown[]): void;
118
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAe,kBAAkB,EAAmB,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAuB,qBAAqB,EAAE,kBAAkB,EAA8B,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhd;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAMtD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAIhE,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAKnE,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,cAAc,CAKnE,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAEhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,mBAEnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAEhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,kBAyB5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,mBAOhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,qBAG3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAQjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,mBAMnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAGjC,CAAC;AAEH;;;GAGG;AACH;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,kBAKzC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAIjC,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,gBA4G3B,CAAC;AA2LH,wBAAgB,WAAW,CACzB,UAAU,GAAE,iBAAsB,GACjC,gBAAgB,CA6NlB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,CAAC,EAAE,YAAY,EACrB,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACpC,gBAAgB,CAGlB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,CAAC,EAAE,aAAa,EACtB,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACrC,iBAAiB,CAGnB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,CAAC,EAAE,cAAc,EACvB,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAClC,cAAc,CAGhB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAI3E"}