@memberjunction/core-actions 2.107.0 → 2.108.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 (79) hide show
  1. package/dist/custom/ai/find-best-agent.action.d.ts +53 -0
  2. package/dist/custom/ai/find-best-agent.action.d.ts.map +1 -0
  3. package/dist/custom/ai/find-best-agent.action.js +194 -0
  4. package/dist/custom/ai/find-best-agent.action.js.map +1 -0
  5. package/dist/custom/ai/summarize-content.action.d.ts +3 -3
  6. package/dist/custom/ai/summarize-content.action.d.ts.map +1 -1
  7. package/dist/custom/ai/summarize-content.action.js +51 -143
  8. package/dist/custom/ai/summarize-content.action.js.map +1 -1
  9. package/dist/custom/code-execution/execute-code.action.d.ts +61 -0
  10. package/dist/custom/code-execution/execute-code.action.d.ts.map +1 -0
  11. package/dist/custom/code-execution/execute-code.action.js +172 -0
  12. package/dist/custom/code-execution/execute-code.action.js.map +1 -0
  13. package/dist/custom/data/csv-parser.action.js +1 -1
  14. package/dist/custom/data/csv-parser.action.js.map +1 -1
  15. package/dist/custom/data/execute-research-query.action.d.ts +36 -18
  16. package/dist/custom/data/execute-research-query.action.d.ts.map +1 -1
  17. package/dist/custom/data/execute-research-query.action.js +221 -114
  18. package/dist/custom/data/execute-research-query.action.js.map +1 -1
  19. package/dist/custom/data/explore-database-schema.action.d.ts +4 -0
  20. package/dist/custom/data/explore-database-schema.action.d.ts.map +1 -1
  21. package/dist/custom/data/explore-database-schema.action.js +101 -8
  22. package/dist/custom/data/explore-database-schema.action.js.map +1 -1
  23. package/dist/custom/data/get-entity-details.action.d.ts +63 -0
  24. package/dist/custom/data/get-entity-details.action.d.ts.map +1 -0
  25. package/dist/custom/data/get-entity-details.action.js +284 -0
  26. package/dist/custom/data/get-entity-details.action.js.map +1 -0
  27. package/dist/custom/data/get-entity-list.action.d.ts +57 -0
  28. package/dist/custom/data/get-entity-list.action.d.ts.map +1 -0
  29. package/dist/custom/data/get-entity-list.action.js +177 -0
  30. package/dist/custom/data/get-entity-list.action.js.map +1 -0
  31. package/dist/custom/visualization/create-svg-chart.action.d.ts +97 -0
  32. package/dist/custom/visualization/create-svg-chart.action.d.ts.map +1 -0
  33. package/dist/custom/visualization/create-svg-chart.action.js +290 -0
  34. package/dist/custom/visualization/create-svg-chart.action.js.map +1 -0
  35. package/dist/custom/visualization/create-svg-diagram.action.d.ts +151 -0
  36. package/dist/custom/visualization/create-svg-diagram.action.d.ts.map +1 -0
  37. package/dist/custom/visualization/create-svg-diagram.action.js +764 -0
  38. package/dist/custom/visualization/create-svg-diagram.action.js.map +1 -0
  39. package/dist/custom/visualization/create-svg-infographic.action.d.ts +72 -0
  40. package/dist/custom/visualization/create-svg-infographic.action.d.ts.map +1 -0
  41. package/dist/custom/visualization/create-svg-infographic.action.js +343 -0
  42. package/dist/custom/visualization/create-svg-infographic.action.js.map +1 -0
  43. package/dist/custom/visualization/create-svg-network.action.d.ts +106 -0
  44. package/dist/custom/visualization/create-svg-network.action.d.ts.map +1 -0
  45. package/dist/custom/visualization/create-svg-network.action.js +651 -0
  46. package/dist/custom/visualization/create-svg-network.action.js.map +1 -0
  47. package/dist/custom/visualization/create-svg-word-cloud.action.d.ts +94 -0
  48. package/dist/custom/visualization/create-svg-word-cloud.action.d.ts.map +1 -0
  49. package/dist/custom/visualization/create-svg-word-cloud.action.js +422 -0
  50. package/dist/custom/visualization/create-svg-word-cloud.action.js.map +1 -0
  51. package/dist/custom/visualization/shared/svg-theming.d.ts +91 -0
  52. package/dist/custom/visualization/shared/svg-theming.d.ts.map +1 -0
  53. package/dist/custom/visualization/shared/svg-theming.js +235 -0
  54. package/dist/custom/visualization/shared/svg-theming.js.map +1 -0
  55. package/dist/custom/visualization/shared/svg-types.d.ts +338 -0
  56. package/dist/custom/visualization/shared/svg-types.d.ts.map +1 -0
  57. package/dist/custom/visualization/shared/svg-types.js +11 -0
  58. package/dist/custom/visualization/shared/svg-types.js.map +1 -0
  59. package/dist/custom/visualization/shared/svg-utils.d.ts +129 -0
  60. package/dist/custom/visualization/shared/svg-utils.d.ts.map +1 -0
  61. package/dist/custom/visualization/shared/svg-utils.js +287 -0
  62. package/dist/custom/visualization/shared/svg-utils.js.map +1 -0
  63. package/dist/custom/web/google-custom-search.action.d.ts +6 -1
  64. package/dist/custom/web/google-custom-search.action.d.ts.map +1 -1
  65. package/dist/custom/web/google-custom-search.action.js +78 -10
  66. package/dist/custom/web/google-custom-search.action.js.map +1 -1
  67. package/dist/custom/web/web-page-content.action.d.ts +24 -0
  68. package/dist/custom/web/web-page-content.action.d.ts.map +1 -1
  69. package/dist/custom/web/web-page-content.action.js +90 -9
  70. package/dist/custom/web/web-page-content.action.js.map +1 -1
  71. package/dist/generated/action_subclasses.d.ts +10 -10
  72. package/dist/generated/action_subclasses.d.ts.map +1 -1
  73. package/dist/generated/action_subclasses.js +29 -29
  74. package/dist/generated/action_subclasses.js.map +1 -1
  75. package/dist/index.d.ts +10 -0
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +28 -0
  78. package/dist/index.js.map +1 -1
  79. package/package.json +29 -12
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Type definitions for server-rendered SVG visualizations.
4
+ * These types support the MemberJunction infographic system and provide
5
+ * consistent interfaces across all visualization actions.
6
+ *
7
+ * @module @memberjunction/actions-core/visualization
8
+ * @since 2.107.0
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ //# sourceMappingURL=svg-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-types.js","sourceRoot":"","sources":["../../../../src/custom/visualization/shared/svg-types.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * @fileoverview Utility functions for SVG creation, manipulation, and sanitization.
3
+ * These utilities provide security, consistency, and convenience for all visualization actions.
4
+ *
5
+ * @module @memberjunction/actions-core/visualization
6
+ * @since 2.107.0
7
+ */
8
+ import { ViewBox, Accessibility } from './svg-types';
9
+ /**
10
+ * Utility class for SVG operations
11
+ */
12
+ export declare class SVGUtils {
13
+ /**
14
+ * Creates a base SVG element with proper namespace and dimensions
15
+ *
16
+ * @param width - SVG width in pixels
17
+ * @param height - SVG height in pixels
18
+ * @param idPrefix - Optional ID prefix for the root SVG element
19
+ * @returns JSDOM Document containing the SVG
20
+ */
21
+ static createSVG(width: number, height: number, idPrefix?: string): Document;
22
+ /**
23
+ * Sanitizes text content to prevent XSS attacks
24
+ *
25
+ * @param text - Raw text content
26
+ * @returns HTML-safe text
27
+ */
28
+ static sanitizeText(text: string): string;
29
+ /**
30
+ * Sanitizes SVG string to remove potentially malicious content
31
+ * - Removes event handlers (on*)
32
+ * - Removes external image references
33
+ * - Removes external use references
34
+ * - Restricts href to # and mailto: only
35
+ *
36
+ * @param svgString - Raw SVG XML string
37
+ * @returns Sanitized SVG string
38
+ */
39
+ static sanitizeSVG(svgString: string): string;
40
+ /**
41
+ * Generates a unique ID with prefix and timestamp
42
+ *
43
+ * @param prefix - ID prefix (e.g., 'flow', 'node')
44
+ * @param index - Index or identifier
45
+ * @returns Unique ID string
46
+ */
47
+ static generateId(prefix: string, index: number | string): string;
48
+ /**
49
+ * Adds accessibility elements to SVG root
50
+ *
51
+ * @param svg - SVG element to enhance
52
+ * @param a11y - Accessibility configuration
53
+ */
54
+ static addA11y(svg: SVGElement, a11y: Accessibility): void;
55
+ /**
56
+ * Injects inline CSS styles into SVG
57
+ *
58
+ * @param svg - SVG element
59
+ * @param css - CSS string to inject
60
+ */
61
+ static addStyles(svg: SVGElement, css: string): void;
62
+ /**
63
+ * Calculates viewBox with padding applied
64
+ *
65
+ * @param viewBox - ViewBox configuration
66
+ * @returns Padding-adjusted dimensions and offsets
67
+ */
68
+ static calculateViewBox(viewBox: ViewBox): {
69
+ x: number;
70
+ y: number;
71
+ width: number;
72
+ height: number;
73
+ contentWidth: number;
74
+ contentHeight: number;
75
+ };
76
+ /**
77
+ * Creates a <defs> element if it doesn't exist in SVG
78
+ *
79
+ * @param svg - SVG element
80
+ * @returns The defs element (existing or newly created)
81
+ */
82
+ static getOrCreateDefs(svg: SVGElement): SVGDefsElement;
83
+ /**
84
+ * Adds an arrowhead marker definition to SVG
85
+ *
86
+ * @param svg - SVG element
87
+ * @param id - Marker ID
88
+ * @param color - Arrow color
89
+ * @returns Marker ID for use in marker-end attribute
90
+ */
91
+ static addArrowMarker(svg: SVGElement, id: string, color?: string): string;
92
+ /**
93
+ * Creates a seeded pseudo-random number generator
94
+ * Uses simple Linear Congruential Generator for deterministic output
95
+ *
96
+ * @param seed - Random seed
97
+ * @returns Function that returns random numbers between 0 and 1
98
+ */
99
+ static seededRandom(seed: number): () => number;
100
+ /**
101
+ * Wraps text to fit within a specified width
102
+ *
103
+ * @param text - Text to wrap
104
+ * @param maxWidth - Maximum width in characters (approximate)
105
+ * @returns Array of text lines
106
+ */
107
+ static wrapText(text: string, maxWidth: number): string[];
108
+ /**
109
+ * Calculates text width (approximate based on character count and font size)
110
+ * More accurate measurement would require actual rendering
111
+ *
112
+ * @param text - Text content
113
+ * @param fontSize - Font size in pixels
114
+ * @returns Estimated width in pixels
115
+ */
116
+ static estimateTextWidth(text: string, fontSize?: number): number;
117
+ /**
118
+ * Creates a rounded rectangle path
119
+ *
120
+ * @param x - X coordinate
121
+ * @param y - Y coordinate
122
+ * @param width - Width
123
+ * @param height - Height
124
+ * @param radius - Corner radius
125
+ * @returns SVG path data string
126
+ */
127
+ static roundedRectPath(x: number, y: number, width: number, height: number, radius: number): string;
128
+ }
129
+ //# sourceMappingURL=svg-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-utils.d.ts","sourceRoot":"","sources":["../../../../src/custom/visualization/shared/svg-utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAW,MAAM,aAAa,CAAC;AAE9D;;GAEG;AACH,qBAAa,QAAQ;IACjB;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ;IAU5E;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IASzC;;;;;;;;;OASG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAmB7C;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAIjE;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAgC1D;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAmBpD;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG;QACvC,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACzB;IA2BD;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,cAAc;IASvD;;;;;;;OAOG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAe,GAAG,MAAM;IA6BlF;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,MAAM;IAQ/C;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAmBzD;;;;;;;OAOG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM;IAKrE;;;;;;;;;OASG;IACH,MAAM,CAAC,eAAe,CAClB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACf,MAAM;CAeZ"}
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Utility functions for SVG creation, manipulation, and sanitization.
4
+ * These utilities provide security, consistency, and convenience for all visualization actions.
5
+ *
6
+ * @module @memberjunction/actions-core/visualization
7
+ * @since 2.107.0
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.SVGUtils = void 0;
11
+ const jsdom_1 = require("jsdom");
12
+ /**
13
+ * Utility class for SVG operations
14
+ */
15
+ class SVGUtils {
16
+ /**
17
+ * Creates a base SVG element with proper namespace and dimensions
18
+ *
19
+ * @param width - SVG width in pixels
20
+ * @param height - SVG height in pixels
21
+ * @param idPrefix - Optional ID prefix for the root SVG element
22
+ * @returns JSDOM Document containing the SVG
23
+ */
24
+ static createSVG(width, height, idPrefix) {
25
+ const svgId = idPrefix ? ` id="${idPrefix}-root"` : '';
26
+ const dom = new jsdom_1.JSDOM(`<svg xmlns="http://www.w3.org/2000/svg"
27
+ width="${width}"
28
+ height="${height}"
29
+ viewBox="0 0 ${width} ${height}"${svgId}
30
+ ></svg>`);
31
+ return dom.window.document;
32
+ }
33
+ /**
34
+ * Sanitizes text content to prevent XSS attacks
35
+ *
36
+ * @param text - Raw text content
37
+ * @returns HTML-safe text
38
+ */
39
+ static sanitizeText(text) {
40
+ return text
41
+ .replace(/&/g, '&amp;')
42
+ .replace(/</g, '&lt;')
43
+ .replace(/>/g, '&gt;')
44
+ .replace(/"/g, '&quot;')
45
+ .replace(/'/g, '&#039;');
46
+ }
47
+ /**
48
+ * Sanitizes SVG string to remove potentially malicious content
49
+ * - Removes event handlers (on*)
50
+ * - Removes external image references
51
+ * - Removes external use references
52
+ * - Restricts href to # and mailto: only
53
+ *
54
+ * @param svgString - Raw SVG XML string
55
+ * @returns Sanitized SVG string
56
+ */
57
+ static sanitizeSVG(svgString) {
58
+ let sanitized = svgString;
59
+ // Remove event handlers
60
+ sanitized = sanitized.replace(/\son\w+="[^"]*"/gi, '');
61
+ sanitized = sanitized.replace(/\son\w+='[^']*'/gi, '');
62
+ // Remove external xlink:href (keep data URIs)
63
+ sanitized = sanitized.replace(/xlink:href="(?!data:)[^"]*"/gi, 'xlink:href=""');
64
+ // Remove external href (keep # anchors and mailto:)
65
+ sanitized = sanitized.replace(/href="(?!#|mailto:)[^"]*"/gi, 'href=""');
66
+ // Remove script tags
67
+ sanitized = sanitized.replace(/<script[\s\S]*?<\/script>/gi, '');
68
+ return sanitized;
69
+ }
70
+ /**
71
+ * Generates a unique ID with prefix and timestamp
72
+ *
73
+ * @param prefix - ID prefix (e.g., 'flow', 'node')
74
+ * @param index - Index or identifier
75
+ * @returns Unique ID string
76
+ */
77
+ static generateId(prefix, index) {
78
+ return `${prefix}-${index}-${Date.now()}`;
79
+ }
80
+ /**
81
+ * Adds accessibility elements to SVG root
82
+ *
83
+ * @param svg - SVG element to enhance
84
+ * @param a11y - Accessibility configuration
85
+ */
86
+ static addA11y(svg, a11y) {
87
+ if (!a11y)
88
+ return;
89
+ const doc = svg.ownerDocument;
90
+ const ns = svg.namespaceURI;
91
+ // Add title
92
+ if (a11y.title) {
93
+ const title = doc.createElementNS(ns, 'title');
94
+ title.textContent = a11y.title;
95
+ svg.insertBefore(title, svg.firstChild);
96
+ }
97
+ // Add description
98
+ if (a11y.desc) {
99
+ const desc = doc.createElementNS(ns, 'desc');
100
+ desc.textContent = a11y.desc;
101
+ // Insert after title if it exists
102
+ const titleEl = svg.querySelector('title');
103
+ if (titleEl && titleEl.nextSibling) {
104
+ svg.insertBefore(desc, titleEl.nextSibling);
105
+ }
106
+ else {
107
+ svg.insertBefore(desc, svg.firstChild);
108
+ }
109
+ }
110
+ // Set ARIA role
111
+ if (a11y.ariaRole) {
112
+ svg.setAttribute('role', a11y.ariaRole);
113
+ }
114
+ }
115
+ /**
116
+ * Injects inline CSS styles into SVG
117
+ *
118
+ * @param svg - SVG element
119
+ * @param css - CSS string to inject
120
+ */
121
+ static addStyles(svg, css) {
122
+ const doc = svg.ownerDocument;
123
+ const ns = svg.namespaceURI;
124
+ const style = doc.createElementNS(ns, 'style');
125
+ style.textContent = css;
126
+ // Insert style after title/desc but before content
127
+ const lastMetaElement = Array.from(svg.children).find((el) => el.tagName === 'desc' || el.tagName === 'title');
128
+ if (lastMetaElement && lastMetaElement.nextSibling) {
129
+ svg.insertBefore(style, lastMetaElement.nextSibling);
130
+ }
131
+ else {
132
+ svg.insertBefore(style, svg.firstChild);
133
+ }
134
+ }
135
+ /**
136
+ * Calculates viewBox with padding applied
137
+ *
138
+ * @param viewBox - ViewBox configuration
139
+ * @returns Padding-adjusted dimensions and offsets
140
+ */
141
+ static calculateViewBox(viewBox) {
142
+ let top = 0, right = 0, bottom = 0, left = 0;
143
+ if (viewBox.padding !== undefined) {
144
+ if (typeof viewBox.padding === 'number') {
145
+ top = right = bottom = left = viewBox.padding;
146
+ }
147
+ else {
148
+ top = viewBox.padding.top || 0;
149
+ right = viewBox.padding.right || 0;
150
+ bottom = viewBox.padding.bottom || 0;
151
+ left = viewBox.padding.left || 0;
152
+ }
153
+ }
154
+ return {
155
+ x: left,
156
+ y: top,
157
+ width: viewBox.width,
158
+ height: viewBox.height,
159
+ contentWidth: viewBox.width - left - right,
160
+ contentHeight: viewBox.height - top - bottom,
161
+ };
162
+ }
163
+ /**
164
+ * Creates a <defs> element if it doesn't exist in SVG
165
+ *
166
+ * @param svg - SVG element
167
+ * @returns The defs element (existing or newly created)
168
+ */
169
+ static getOrCreateDefs(svg) {
170
+ let defs = svg.querySelector('defs');
171
+ if (!defs) {
172
+ defs = svg.ownerDocument.createElementNS(svg.namespaceURI, 'defs');
173
+ svg.insertBefore(defs, svg.firstChild);
174
+ }
175
+ return defs;
176
+ }
177
+ /**
178
+ * Adds an arrowhead marker definition to SVG
179
+ *
180
+ * @param svg - SVG element
181
+ * @param id - Marker ID
182
+ * @param color - Arrow color
183
+ * @returns Marker ID for use in marker-end attribute
184
+ */
185
+ static addArrowMarker(svg, id, color = '#000') {
186
+ const defs = this.getOrCreateDefs(svg);
187
+ const doc = svg.ownerDocument;
188
+ const ns = svg.namespaceURI;
189
+ // Check if marker already exists
190
+ if (defs.querySelector(`#${id}`)) {
191
+ return `url(#${id})`;
192
+ }
193
+ const marker = doc.createElementNS(ns, 'marker');
194
+ marker.setAttribute('id', id);
195
+ marker.setAttribute('markerWidth', '10');
196
+ marker.setAttribute('markerHeight', '10');
197
+ marker.setAttribute('refX', '9');
198
+ marker.setAttribute('refY', '3');
199
+ marker.setAttribute('orient', 'auto');
200
+ marker.setAttribute('markerUnits', 'strokeWidth');
201
+ const path = doc.createElementNS(ns, 'path');
202
+ path.setAttribute('d', 'M0,0 L0,6 L9,3 z');
203
+ path.setAttribute('fill', color);
204
+ marker.appendChild(path);
205
+ defs.appendChild(marker);
206
+ return `url(#${id})`;
207
+ }
208
+ /**
209
+ * Creates a seeded pseudo-random number generator
210
+ * Uses simple Linear Congruential Generator for deterministic output
211
+ *
212
+ * @param seed - Random seed
213
+ * @returns Function that returns random numbers between 0 and 1
214
+ */
215
+ static seededRandom(seed) {
216
+ let s = seed;
217
+ return function () {
218
+ s = (s * 9301 + 49297) % 233280;
219
+ return s / 233280;
220
+ };
221
+ }
222
+ /**
223
+ * Wraps text to fit within a specified width
224
+ *
225
+ * @param text - Text to wrap
226
+ * @param maxWidth - Maximum width in characters (approximate)
227
+ * @returns Array of text lines
228
+ */
229
+ static wrapText(text, maxWidth) {
230
+ const words = text.split(/\s+/);
231
+ const lines = [];
232
+ let currentLine = '';
233
+ for (const word of words) {
234
+ const testLine = currentLine ? `${currentLine} ${word}` : word;
235
+ if (testLine.length <= maxWidth) {
236
+ currentLine = testLine;
237
+ }
238
+ else {
239
+ if (currentLine)
240
+ lines.push(currentLine);
241
+ currentLine = word;
242
+ }
243
+ }
244
+ if (currentLine)
245
+ lines.push(currentLine);
246
+ return lines;
247
+ }
248
+ /**
249
+ * Calculates text width (approximate based on character count and font size)
250
+ * More accurate measurement would require actual rendering
251
+ *
252
+ * @param text - Text content
253
+ * @param fontSize - Font size in pixels
254
+ * @returns Estimated width in pixels
255
+ */
256
+ static estimateTextWidth(text, fontSize = 14) {
257
+ // Average character width is approximately 0.6 of font size
258
+ return text.length * fontSize * 0.6;
259
+ }
260
+ /**
261
+ * Creates a rounded rectangle path
262
+ *
263
+ * @param x - X coordinate
264
+ * @param y - Y coordinate
265
+ * @param width - Width
266
+ * @param height - Height
267
+ * @param radius - Corner radius
268
+ * @returns SVG path data string
269
+ */
270
+ static roundedRectPath(x, y, width, height, radius) {
271
+ radius = Math.min(radius, width / 2, height / 2);
272
+ return `
273
+ M ${x + radius},${y}
274
+ L ${x + width - radius},${y}
275
+ Q ${x + width},${y} ${x + width},${y + radius}
276
+ L ${x + width},${y + height - radius}
277
+ Q ${x + width},${y + height} ${x + width - radius},${y + height}
278
+ L ${x + radius},${y + height}
279
+ Q ${x},${y + height} ${x},${y + height - radius}
280
+ L ${x},${y + radius}
281
+ Q ${x},${y} ${x + radius},${y}
282
+ Z
283
+ `.replace(/\s+/g, ' ').trim();
284
+ }
285
+ }
286
+ exports.SVGUtils = SVGUtils;
287
+ //# sourceMappingURL=svg-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-utils.js","sourceRoot":"","sources":["../../../../src/custom/visualization/shared/svg-utils.ts"],"names":[],"mappings":"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"}
@@ -30,18 +30,23 @@ import { BaseAction } from "@memberjunction/actions";
30
30
  * }, {
31
31
  * Name: 'SiteSearch',
32
32
  * Value: 'europa.eu'
33
+ * }, {
34
+ * Name: 'Verbosity',
35
+ * Value: 'minimal' // 'minimal' | 'standard' (default) | 'detailed'
33
36
  * }]
34
37
  * });
35
38
  * ```
36
39
  */
37
40
  export declare class GoogleCustomSearchAction extends BaseAction {
38
41
  protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
39
- private transformItem;
42
+ private transformItemByVerbosity;
43
+ private buildResultData;
40
44
  private extractFirstString;
41
45
  private normalizeSafeSearch;
42
46
  private normalizeSiteSearchFilter;
43
47
  private normalizeLanguageRestriction;
44
48
  private normalizeSearchType;
49
+ private normalizeVerbosity;
45
50
  private clamp;
46
51
  private getStringParam;
47
52
  private getNumericParam;
@@ -1 +1 @@
1
- {"version":3,"file":"google-custom-search.action.d.ts","sourceRoot":"","sources":["../../../src/custom/web/google-custom-search.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AA6BrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBACa,wBAAyB,SAAQ,UAAU;cAEpC,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6JvF,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,4BAA4B;IAiBpC,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;CAO5B;AAED;;GAEG;AACH,wBAAgB,4BAA4B,SAE3C"}
1
+ {"version":3,"file":"google-custom-search.action.d.ts","sourceRoot":"","sources":["../../../src/custom/web/google-custom-search.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AA6BrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBACa,wBAAyB,SAAQ,UAAU;cAEpC,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyJvF,OAAO,CAAC,wBAAwB;IAyChC,OAAO,CAAC,eAAe;IAmCvB,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,4BAA4B;IAiBpC,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;CAO5B;AAED;;GAEG;AACH,wBAAgB,4BAA4B,SAE3C"}
@@ -44,6 +44,9 @@ const config_1 = require("../../config");
44
44
  * }, {
45
45
  * Name: 'SiteSearch',
46
46
  * Value: 'europa.eu'
47
+ * }, {
48
+ * Name: 'Verbosity',
49
+ * Value: 'minimal' // 'minimal' | 'standard' (default) | 'detailed'
47
50
  * }]
48
51
  * });
49
52
  * ```
@@ -83,6 +86,7 @@ let GoogleCustomSearchAction = class GoogleCustomSearchAction extends actions_1.
83
86
  const searchType = this.normalizeSearchType(this.getStringParam(params, "searchtype"));
84
87
  const fileType = this.getStringParam(params, "filetype");
85
88
  const region = this.getStringParam(params, "region") || this.getStringParam(params, "gl");
89
+ const verbosity = this.normalizeVerbosity(this.getStringParam(params, "verbosity"));
86
90
  const requestParams = {
87
91
  key: apiKey,
88
92
  cx,
@@ -129,19 +133,14 @@ let GoogleCustomSearchAction = class GoogleCustomSearchAction extends actions_1.
129
133
  return this.createErrorResult("Empty response from Google Custom Search API", "EMPTY_RESPONSE");
130
134
  }
131
135
  const data = response.data;
132
- const items = (data.items || []).map(item => this.transformItem(item));
136
+ const items = (data.items || []).map(item => this.transformItemByVerbosity(item, verbosity));
133
137
  const totalResults = Number(data.searchInformation?.totalResults || "0");
134
- const resultData = {
138
+ const resultData = this.buildResultData(data, items, verbosity, {
135
139
  query,
136
140
  maxResults,
137
141
  startIndex,
138
- totalResults,
139
- searchTime: data.searchInformation?.searchTime,
140
- items,
141
- searchInformation: data.searchInformation,
142
- queries: data.queries,
143
- context: data.context
144
- };
142
+ totalResults
143
+ });
145
144
  this.addOutputParam(params, "SearchResultsDetails", resultData);
146
145
  this.addOutputParam(params, "Items", items);
147
146
  this.addOutputParam(params, "ResultCount", items.length);
@@ -167,10 +166,29 @@ let GoogleCustomSearchAction = class GoogleCustomSearchAction extends actions_1.
167
166
  return this.createErrorResult(`Failed to perform Google Custom Search: ${error instanceof Error ? error.message : String(error)}`, "SEARCH_FAILED");
168
167
  }
169
168
  }
170
- transformItem(item) {
169
+ transformItemByVerbosity(item, verbosity) {
171
170
  const pagemap = item.pagemap;
172
171
  const cseImage = this.extractFirstString(pagemap, "cse_image", "src");
173
172
  const cseThumbnail = this.extractFirstString(pagemap, "cse_thumbnail", "src");
173
+ // Minimal: Just the essentials for AI agents needing quick results
174
+ if (verbosity === 'minimal') {
175
+ return {
176
+ title: item.title,
177
+ link: item.link,
178
+ snippet: item.snippet
179
+ };
180
+ }
181
+ // Standard: Balanced result set with most commonly needed fields
182
+ if (verbosity === 'standard') {
183
+ return {
184
+ title: item.title,
185
+ link: item.link,
186
+ snippet: item.snippet,
187
+ image: cseImage,
188
+ thumbnail: cseThumbnail
189
+ };
190
+ }
191
+ // Detailed: Everything including metadata and pagemap
174
192
  return {
175
193
  title: item.title,
176
194
  link: item.link,
@@ -185,6 +203,32 @@ let GoogleCustomSearchAction = class GoogleCustomSearchAction extends actions_1.
185
203
  pagemap
186
204
  };
187
205
  }
206
+ buildResultData(data, items, verbosity, metadata) {
207
+ const baseResult = {
208
+ query: metadata.query,
209
+ maxResults: metadata.maxResults,
210
+ startIndex: metadata.startIndex,
211
+ totalResults: metadata.totalResults,
212
+ items
213
+ };
214
+ if (verbosity === 'minimal') {
215
+ return baseResult;
216
+ }
217
+ if (verbosity === 'standard') {
218
+ return {
219
+ ...baseResult,
220
+ searchTime: data.searchInformation?.searchTime
221
+ };
222
+ }
223
+ // Detailed: Include everything
224
+ return {
225
+ ...baseResult,
226
+ searchTime: data.searchInformation?.searchTime,
227
+ searchInformation: data.searchInformation,
228
+ queries: data.queries,
229
+ context: data.context
230
+ };
231
+ }
188
232
  extractFirstString(pagemap, key, field) {
189
233
  if (!pagemap) {
190
234
  return undefined;
@@ -259,6 +303,30 @@ let GoogleCustomSearchAction = class GoogleCustomSearchAction extends actions_1.
259
303
  }
260
304
  return undefined;
261
305
  }
306
+ normalizeVerbosity(value) {
307
+ if (!value) {
308
+ return 'standard'; // Default
309
+ }
310
+ const normalized = value.trim().toLowerCase();
311
+ switch (normalized) {
312
+ case 'minimal':
313
+ case 'min':
314
+ case 'basic':
315
+ case 'simple':
316
+ return 'minimal';
317
+ case 'detailed':
318
+ case 'detail':
319
+ case 'full':
320
+ case 'complete':
321
+ case 'verbose':
322
+ return 'detailed';
323
+ case 'standard':
324
+ case 'normal':
325
+ case 'default':
326
+ default:
327
+ return 'standard';
328
+ }
329
+ }
262
330
  clamp(value, min, max) {
263
331
  if (isNaN(value)) {
264
332
  return min;
@@ -1 +1 @@
1
- {"version":3,"file":"google-custom-search.action.js","sourceRoot":"","sources":["../../../src/custom/web/google-custom-search.action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"google-custom-search.action.js","sourceRoot":"","sources":["../../../src/custom/web/google-custom-search.action.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAAqD;AACrD,mDAAuD;AACvD,kDAA0B;AAC1B,yCAAwD;AA0BxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEI,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,oBAAU;IAE1C,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACjG,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,iBAAiB,CAAC,6BAA6B,EAAE,eAAe,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,SAAS,GAAG,IAAA,iCAAwB,GAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC;QACtD,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;QAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,iBAAiB,CACzB,8IAA8I,EAC9I,iBAAiB,CACpB,CAAC;QACN,CAAC;QAED,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,OAAO,IAAI,CAAC,iBAAiB,CACzB,oJAAoJ,EACpJ,uBAAuB,CAC1B,CAAC;QACN,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QAC/D,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACtC,UAAU,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,iEAAiE;QACjE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,UAAU,CAAC,CAAC;QACpD,IAAI,UAAU,GAAG,aAAa,EAAE,CAAC;YAC7B,UAAU,GAAG,aAAa,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;QACvF,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7D,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;QACzG,MAAM,mBAAmB,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAC7J,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1F,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAEpF,MAAM,aAAa,GAAoC;YACnD,GAAG,EAAE,MAAM;YACX,EAAE;YACF,CAAC,EAAE,KAAK;YACR,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,UAAU;SACpB,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACb,aAAa,CAAC,IAAI,GAAG,UAAU,CAAC;QACpC,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACb,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC;QAC1C,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACnB,aAAa,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACtD,CAAC;QACD,IAAI,mBAAmB,EAAE,CAAC;YACtB,aAAa,CAAC,EAAE,GAAG,mBAAmB,CAAC;QAC3C,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACb,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC;QAC1C,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACf,aAAa,CAAC,YAAY,GAAG,YAAY,CAAC;QAC9C,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACf,aAAa,CAAC,YAAY,GAAG,YAAY,CAAC;QAC9C,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACb,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC;QAC1C,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACX,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACtC,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACT,aAAa,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAC5B,4CAA4C,EAC5C;gBACI,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,KAAK;aACjB,CACJ,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,iBAAiB,CAAC,8CAA8C,EAAE,gBAAgB,CAAC,CAAC;YACpG,CAAC;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YAC7F,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,IAAI,GAAG,CAAC,CAAC;YAEzE,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;gBAC5D,KAAK;gBACL,UAAU;gBACV,UAAU;gBACV,YAAY;aACf,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,sBAAsB,EAAE,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;YAE1D,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;aAC/C,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACtC,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;gBAE1D,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACjB,OAAO,IAAI,CAAC,iBAAiB,CACzB,+DAA+D,YAAY,IAAI,WAAW,EAAE,EAC5F,WAAW,CACd,CAAC;gBACN,CAAC;gBAED,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACjB,OAAO,IAAI,CAAC,iBAAiB,CACzB,uCAAuC,YAAY,IAAI,aAAa,EAAE,EACtE,aAAa,CAChB,CAAC;gBACN,CAAC;gBAED,OAAO,IAAI,CAAC,iBAAiB,CACzB,mCAAmC,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE,EAClE,WAAW,CACd,CAAC;YACN,CAAC;YAED,OAAO,IAAI,CAAC,iBAAiB,CACzB,2CAA2C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACnG,eAAe,CAClB,CAAC;QACN,CAAC;IACL,CAAC;IAEO,wBAAwB,CAAC,IAAsB,EAAE,SAA8C;QACnG,MAAM,OAAO,GAAG,IAAI,CAAC,OAA8C,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QAE9E,mEAAmE;QACnE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO;gBACH,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC;QACN,CAAC;QAED,iEAAiE;QACjE,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO;gBACH,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,YAAY;aAC1B,CAAC;QACN,CAAC;QAED,sDAAsD;QACtD,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,YAAY;YACvB,OAAO;SACV,CAAC;IACN,CAAC;IAEO,eAAe,CACnB,IAA0B,EAC1B,KAAgB,EAChB,SAA8C,EAC9C,QAAyF;QAEzF,MAAM,UAAU,GAAG;YACf,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,KAAK;SACR,CAAC;QAEF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO;gBACH,GAAG,UAAU;gBACb,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU;aACjD,CAAC;QACN,CAAC;QAED,+BAA+B;QAC/B,OAAO;YACH,GAAG,UAAU;YACb,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU;YAC9C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC;IACN,CAAC;IAEO,kBAAkB,CAAC,OAA4C,EAAE,GAAW,EAAE,KAAa;QAC/F,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;gBACvD,MAAM,UAAU,GAAI,KAAiC,CAAC,KAAK,CAAC,CAAC;gBAC7D,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjE,OAAO,UAAU,CAAC;gBACtB,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,mBAAmB,CAAC,KAAc;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACjC,KAAK,KAAK,CAAC;YACX,KAAK,MAAM,CAAC;YACZ,KAAK,UAAU;gBACX,OAAO,KAAK,CAAC;YACjB,KAAK,QAAQ,CAAC;YACd,KAAK,UAAU;gBACX,OAAO,QAAQ,CAAC;YACpB,KAAK,MAAM,CAAC;YACZ,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ;gBACT,OAAO,MAAM,CAAC;YAClB;gBACI,OAAO,SAAS,CAAC;QACzB,CAAC;IACL,CAAC;IAEO,yBAAyB,CAAC,KAAc;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACjD,OAAO,GAAG,CAAC;QACf,CAAC;QACD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACjD,OAAO,GAAG,CAAC;QACf,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,4BAA4B,CAAC,KAAc;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,OAAO,QAAQ,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QAC3C,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,mBAAmB,CAAC,KAAc;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YACpD,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,kBAAkB,CAAC,KAAc;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,UAAU,CAAC,CAAC,UAAU;QACjC,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,QAAQ,UAAU,EAAE,CAAC;YACjB,KAAK,SAAS,CAAC;YACf,KAAK,KAAK,CAAC;YACX,KAAK,OAAO,CAAC;YACb,KAAK,QAAQ;gBACT,OAAO,SAAS,CAAC;YACrB,KAAK,UAAU,CAAC;YAChB,KAAK,QAAQ,CAAC;YACd,KAAK,MAAM,CAAC;YACZ,KAAK,UAAU,CAAC;YAChB,KAAK,SAAS;gBACV,OAAO,UAAU,CAAC;YACtB,KAAK,UAAU,CAAC;YAChB,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS,CAAC;YACf;gBACI,OAAO,UAAU,CAAC;QAC1B,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;QACjD,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,GAAG,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAEO,cAAc,CAAC,MAAuB,EAAE,SAAiB;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC9D,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;IAEO,eAAe,CAAC,MAAuB,EAAE,SAAiB,EAAE,YAAoB;QACpF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC9D,OAAO,YAAY,CAAC;QACxB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;IACjD,CAAC;IAEO,cAAc,CAAC,MAAuB,EAAE,IAAY,EAAE,KAAc;QACxE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK;SACf,CAAC,CAAC;IACP,CAAC;IAEO,iBAAiB,CAAC,OAAe,EAAE,IAAY;QACnD,OAAO;YACH,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,IAAI;SACnB,CAAC;IACN,CAAC;CACJ,CAAA;AAtYY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,sBAAa,EAAC,oBAAU,EAAE,sBAAsB,CAAC;GACrC,wBAAwB,CAsYpC;AAED;;GAEG;AACH,SAAgB,4BAA4B;IACxC,uIAAuI;AAC3I,CAAC;AAFD,oEAEC"}