@memberjunction/core-actions 2.106.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.
- package/dist/config.d.ts +112 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +34 -2
- package/dist/config.js.map +1 -1
- package/dist/custom/ai/find-best-agent.action.d.ts +53 -0
- package/dist/custom/ai/find-best-agent.action.d.ts.map +1 -0
- package/dist/custom/ai/find-best-agent.action.js +194 -0
- package/dist/custom/ai/find-best-agent.action.js.map +1 -0
- package/dist/custom/ai/summarize-content.action.d.ts +72 -0
- package/dist/custom/ai/summarize-content.action.d.ts.map +1 -0
- package/dist/custom/ai/summarize-content.action.js +296 -0
- package/dist/custom/ai/summarize-content.action.js.map +1 -0
- package/dist/custom/code-execution/execute-code.action.d.ts +61 -0
- package/dist/custom/code-execution/execute-code.action.d.ts.map +1 -0
- package/dist/custom/code-execution/execute-code.action.js +172 -0
- package/dist/custom/code-execution/execute-code.action.js.map +1 -0
- package/dist/custom/data/csv-parser.action.js +1 -1
- package/dist/custom/data/csv-parser.action.js.map +1 -1
- package/dist/custom/data/execute-research-query.action.d.ts +114 -0
- package/dist/custom/data/execute-research-query.action.d.ts.map +1 -0
- package/dist/custom/data/execute-research-query.action.js +520 -0
- package/dist/custom/data/execute-research-query.action.js.map +1 -0
- package/dist/custom/data/explore-database-schema.action.d.ts +95 -0
- package/dist/custom/data/explore-database-schema.action.d.ts.map +1 -0
- package/dist/custom/data/explore-database-schema.action.js +499 -0
- package/dist/custom/data/explore-database-schema.action.js.map +1 -0
- package/dist/custom/data/get-entity-details.action.d.ts +63 -0
- package/dist/custom/data/get-entity-details.action.d.ts.map +1 -0
- package/dist/custom/data/get-entity-details.action.js +284 -0
- package/dist/custom/data/get-entity-details.action.js.map +1 -0
- package/dist/custom/data/get-entity-list.action.d.ts +57 -0
- package/dist/custom/data/get-entity-list.action.d.ts.map +1 -0
- package/dist/custom/data/get-entity-list.action.js +177 -0
- package/dist/custom/data/get-entity-list.action.js.map +1 -0
- package/dist/custom/files/index.d.ts +2 -0
- package/dist/custom/files/index.d.ts.map +1 -1
- package/dist/custom/files/index.js +5 -1
- package/dist/custom/files/index.js.map +1 -1
- package/dist/custom/files/list-storage-providers.action.d.ts +52 -0
- package/dist/custom/files/list-storage-providers.action.d.ts.map +1 -0
- package/dist/custom/files/list-storage-providers.action.js +175 -0
- package/dist/custom/files/list-storage-providers.action.js.map +1 -0
- package/dist/custom/files/search-storage-files.action.d.ts +61 -0
- package/dist/custom/files/search-storage-files.action.d.ts.map +1 -0
- package/dist/custom/files/search-storage-files.action.js +183 -0
- package/dist/custom/files/search-storage-files.action.js.map +1 -0
- package/dist/custom/visualization/create-svg-chart.action.d.ts +97 -0
- package/dist/custom/visualization/create-svg-chart.action.d.ts.map +1 -0
- package/dist/custom/visualization/create-svg-chart.action.js +290 -0
- package/dist/custom/visualization/create-svg-chart.action.js.map +1 -0
- package/dist/custom/visualization/create-svg-diagram.action.d.ts +151 -0
- package/dist/custom/visualization/create-svg-diagram.action.d.ts.map +1 -0
- package/dist/custom/visualization/create-svg-diagram.action.js +764 -0
- package/dist/custom/visualization/create-svg-diagram.action.js.map +1 -0
- package/dist/custom/visualization/create-svg-infographic.action.d.ts +72 -0
- package/dist/custom/visualization/create-svg-infographic.action.d.ts.map +1 -0
- package/dist/custom/visualization/create-svg-infographic.action.js +343 -0
- package/dist/custom/visualization/create-svg-infographic.action.js.map +1 -0
- package/dist/custom/visualization/create-svg-network.action.d.ts +106 -0
- package/dist/custom/visualization/create-svg-network.action.d.ts.map +1 -0
- package/dist/custom/visualization/create-svg-network.action.js +651 -0
- package/dist/custom/visualization/create-svg-network.action.js.map +1 -0
- package/dist/custom/visualization/create-svg-word-cloud.action.d.ts +94 -0
- package/dist/custom/visualization/create-svg-word-cloud.action.d.ts.map +1 -0
- package/dist/custom/visualization/create-svg-word-cloud.action.js +422 -0
- package/dist/custom/visualization/create-svg-word-cloud.action.js.map +1 -0
- package/dist/custom/visualization/shared/svg-theming.d.ts +91 -0
- package/dist/custom/visualization/shared/svg-theming.d.ts.map +1 -0
- package/dist/custom/visualization/shared/svg-theming.js +235 -0
- package/dist/custom/visualization/shared/svg-theming.js.map +1 -0
- package/dist/custom/visualization/shared/svg-types.d.ts +338 -0
- package/dist/custom/visualization/shared/svg-types.d.ts.map +1 -0
- package/dist/custom/visualization/shared/svg-types.js +11 -0
- package/dist/custom/visualization/shared/svg-types.js.map +1 -0
- package/dist/custom/visualization/shared/svg-utils.d.ts +129 -0
- package/dist/custom/visualization/shared/svg-utils.d.ts.map +1 -0
- package/dist/custom/visualization/shared/svg-utils.js +287 -0
- package/dist/custom/visualization/shared/svg-utils.js.map +1 -0
- package/dist/custom/web/google-custom-search.action.d.ts +60 -0
- package/dist/custom/web/google-custom-search.action.d.ts.map +1 -0
- package/dist/custom/web/google-custom-search.action.js +378 -0
- package/dist/custom/web/google-custom-search.action.js.map +1 -0
- package/dist/custom/web/web-page-content.action.d.ts +24 -0
- package/dist/custom/web/web-page-content.action.d.ts.map +1 -1
- package/dist/custom/web/web-page-content.action.js +90 -9
- package/dist/custom/web/web-page-content.action.js.map +1 -1
- package/dist/generated/action_subclasses.d.ts +51 -3
- package/dist/generated/action_subclasses.d.ts.map +1 -1
- package/dist/generated/action_subclasses.js +174 -90
- package/dist/generated/action_subclasses.js.map +1 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -1
- package/package.json +30 -11
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Theming system for SVG visualizations.
|
|
3
|
+
* Provides color palettes, font stacks, and CSS generation for consistent branding.
|
|
4
|
+
*
|
|
5
|
+
* @module @memberjunction/actions-core/visualization
|
|
6
|
+
* @since 2.107.0
|
|
7
|
+
*/
|
|
8
|
+
import { Palette, Branding, FontSpec } from './svg-types';
|
|
9
|
+
/**
|
|
10
|
+
* Predefined color palettes for visualizations
|
|
11
|
+
*/
|
|
12
|
+
export declare const PALETTES: {
|
|
13
|
+
mjDefault: {
|
|
14
|
+
background: string;
|
|
15
|
+
foreground: string;
|
|
16
|
+
categorical: string[];
|
|
17
|
+
sequential: string[];
|
|
18
|
+
};
|
|
19
|
+
gray: {
|
|
20
|
+
background: string;
|
|
21
|
+
foreground: string;
|
|
22
|
+
categorical: string[];
|
|
23
|
+
sequential: string[];
|
|
24
|
+
};
|
|
25
|
+
pastel: {
|
|
26
|
+
background: string;
|
|
27
|
+
foreground: string;
|
|
28
|
+
categorical: string[];
|
|
29
|
+
sequential: string[];
|
|
30
|
+
};
|
|
31
|
+
highContrast: {
|
|
32
|
+
background: string;
|
|
33
|
+
foreground: string;
|
|
34
|
+
categorical: string[];
|
|
35
|
+
sequential: string[];
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Default font stack with system font fallbacks
|
|
40
|
+
*/
|
|
41
|
+
export declare const DEFAULT_FONT_STACK = "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif";
|
|
42
|
+
/**
|
|
43
|
+
* Retrieves a palette by name or returns manual palette configuration
|
|
44
|
+
*
|
|
45
|
+
* @param palette - Palette configuration
|
|
46
|
+
* @returns Resolved palette colors
|
|
47
|
+
*/
|
|
48
|
+
export declare function getPalette(palette?: Palette): {
|
|
49
|
+
background: string;
|
|
50
|
+
foreground: string;
|
|
51
|
+
categorical: string[];
|
|
52
|
+
sequential: string[];
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Gets a categorical color by index, cycling through the palette
|
|
56
|
+
*
|
|
57
|
+
* @param index - Color index
|
|
58
|
+
* @param palette - Palette configuration
|
|
59
|
+
* @returns Hex color string
|
|
60
|
+
*/
|
|
61
|
+
export declare function getColorForIndex(index: number, palette?: Palette): string;
|
|
62
|
+
/**
|
|
63
|
+
* Gets a sequential color by normalized value (0-1)
|
|
64
|
+
*
|
|
65
|
+
* @param value - Normalized value between 0 and 1
|
|
66
|
+
* @param palette - Palette configuration
|
|
67
|
+
* @returns Hex color string
|
|
68
|
+
*/
|
|
69
|
+
export declare function getSequentialColor(value: number, palette?: Palette): string;
|
|
70
|
+
/**
|
|
71
|
+
* Generates inline CSS from branding configuration
|
|
72
|
+
*
|
|
73
|
+
* @param branding - Branding configuration
|
|
74
|
+
* @returns CSS string for injection into <style> element
|
|
75
|
+
*/
|
|
76
|
+
export declare function generateCSS(branding?: Branding): string;
|
|
77
|
+
/**
|
|
78
|
+
* Gets font specification with defaults applied
|
|
79
|
+
*
|
|
80
|
+
* @param font - Optional font configuration
|
|
81
|
+
* @returns Complete font specification
|
|
82
|
+
*/
|
|
83
|
+
export declare function getFontSpec(font?: FontSpec): Required<FontSpec>;
|
|
84
|
+
/**
|
|
85
|
+
* Gets font stack for CSS font-family property
|
|
86
|
+
*
|
|
87
|
+
* @param font - Optional font configuration
|
|
88
|
+
* @returns Font family stack string
|
|
89
|
+
*/
|
|
90
|
+
export declare function getFontStack(font?: FontSpec): string;
|
|
91
|
+
//# sourceMappingURL=svg-theming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg-theming.d.ts","sourceRoot":"","sources":["../../../../src/custom/visualization/shared/svg-theming.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;CA2FpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,mGACiE,CAAC;AAEjG;;;;;GAKG;AACH,wBAAgB,UAAU,CACtB,OAAO,CAAC,EAAE,OAAO,GAClB;IACC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB,CAaA;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAGzE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAK3E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAoDvD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAO/D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEpD"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Theming system for SVG visualizations.
|
|
4
|
+
* Provides color palettes, font stacks, and CSS generation for consistent branding.
|
|
5
|
+
*
|
|
6
|
+
* @module @memberjunction/actions-core/visualization
|
|
7
|
+
* @since 2.107.0
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.getFontStack = exports.getFontSpec = exports.generateCSS = exports.getSequentialColor = exports.getColorForIndex = exports.getPalette = exports.DEFAULT_FONT_STACK = exports.PALETTES = void 0;
|
|
11
|
+
/**
|
|
12
|
+
* Predefined color palettes for visualizations
|
|
13
|
+
*/
|
|
14
|
+
exports.PALETTES = {
|
|
15
|
+
mjDefault: {
|
|
16
|
+
background: '#FFFFFF',
|
|
17
|
+
foreground: '#1A1A1A',
|
|
18
|
+
categorical: [
|
|
19
|
+
'#2E7D32', // Green
|
|
20
|
+
'#1976D2', // Blue
|
|
21
|
+
'#F57C00', // Orange
|
|
22
|
+
'#7B1FA2', // Purple
|
|
23
|
+
'#C62828', // Red
|
|
24
|
+
'#00796B', // Teal
|
|
25
|
+
'#F9A825', // Yellow
|
|
26
|
+
'#5D4037', // Brown
|
|
27
|
+
'#455A64', // Blue Grey
|
|
28
|
+
'#E91E63', // Pink
|
|
29
|
+
],
|
|
30
|
+
sequential: [
|
|
31
|
+
'#E8F5E9', // Light Green
|
|
32
|
+
'#A5D6A7',
|
|
33
|
+
'#66BB6A',
|
|
34
|
+
'#43A047',
|
|
35
|
+
'#2E7D32',
|
|
36
|
+
'#1B5E20', // Dark Green
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
gray: {
|
|
40
|
+
background: '#FFFFFF',
|
|
41
|
+
foreground: '#212121',
|
|
42
|
+
categorical: [
|
|
43
|
+
'#424242',
|
|
44
|
+
'#616161',
|
|
45
|
+
'#757575',
|
|
46
|
+
'#9E9E9E',
|
|
47
|
+
'#BDBDBD',
|
|
48
|
+
'#E0E0E0',
|
|
49
|
+
],
|
|
50
|
+
sequential: [
|
|
51
|
+
'#FAFAFA',
|
|
52
|
+
'#E0E0E0',
|
|
53
|
+
'#BDBDBD',
|
|
54
|
+
'#9E9E9E',
|
|
55
|
+
'#757575',
|
|
56
|
+
'#424242',
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
pastel: {
|
|
60
|
+
background: '#FAFAFA',
|
|
61
|
+
foreground: '#333333',
|
|
62
|
+
categorical: [
|
|
63
|
+
'#A5D6A7', // Pastel Green
|
|
64
|
+
'#90CAF9', // Pastel Blue
|
|
65
|
+
'#FFCC80', // Pastel Orange
|
|
66
|
+
'#CE93D8', // Pastel Purple
|
|
67
|
+
'#EF9A9A', // Pastel Red
|
|
68
|
+
'#80CBC4', // Pastel Teal
|
|
69
|
+
'#FFF59D', // Pastel Yellow
|
|
70
|
+
'#BCAAA4', // Pastel Brown
|
|
71
|
+
'#B0BEC5', // Pastel Blue Grey
|
|
72
|
+
'#F48FB1', // Pastel Pink
|
|
73
|
+
],
|
|
74
|
+
sequential: [
|
|
75
|
+
'#F1F8E9',
|
|
76
|
+
'#DCEDC8',
|
|
77
|
+
'#C5E1A5',
|
|
78
|
+
'#AED581',
|
|
79
|
+
'#9CCC65',
|
|
80
|
+
'#7CB342',
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
highContrast: {
|
|
84
|
+
background: '#FFFFFF',
|
|
85
|
+
foreground: '#000000',
|
|
86
|
+
categorical: [
|
|
87
|
+
'#000000', // Black
|
|
88
|
+
'#E60000', // Red
|
|
89
|
+
'#0000FF', // Blue
|
|
90
|
+
'#00A000', // Green
|
|
91
|
+
'#FF8C00', // Dark Orange
|
|
92
|
+
'#9400D3', // Dark Violet
|
|
93
|
+
'#FFD700', // Gold
|
|
94
|
+
'#00CED1', // Dark Turquoise
|
|
95
|
+
],
|
|
96
|
+
sequential: [
|
|
97
|
+
'#FFFFFF',
|
|
98
|
+
'#CCCCCC',
|
|
99
|
+
'#999999',
|
|
100
|
+
'#666666',
|
|
101
|
+
'#333333',
|
|
102
|
+
'#000000',
|
|
103
|
+
],
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Default font stack with system font fallbacks
|
|
108
|
+
*/
|
|
109
|
+
exports.DEFAULT_FONT_STACK = '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif';
|
|
110
|
+
/**
|
|
111
|
+
* Retrieves a palette by name or returns manual palette configuration
|
|
112
|
+
*
|
|
113
|
+
* @param palette - Palette configuration
|
|
114
|
+
* @returns Resolved palette colors
|
|
115
|
+
*/
|
|
116
|
+
function getPalette(palette) {
|
|
117
|
+
if (!palette || palette.type === 'named') {
|
|
118
|
+
const paletteName = palette?.type === 'named' ? palette.name : 'mjDefault';
|
|
119
|
+
return exports.PALETTES[paletteName] || exports.PALETTES.mjDefault;
|
|
120
|
+
}
|
|
121
|
+
// Manual palette
|
|
122
|
+
return {
|
|
123
|
+
background: palette.background || '#FFFFFF',
|
|
124
|
+
foreground: palette.foreground || '#1A1A1A',
|
|
125
|
+
categorical: palette.categorical || exports.PALETTES.mjDefault.categorical,
|
|
126
|
+
sequential: palette.sequential || exports.PALETTES.mjDefault.sequential,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
exports.getPalette = getPalette;
|
|
130
|
+
/**
|
|
131
|
+
* Gets a categorical color by index, cycling through the palette
|
|
132
|
+
*
|
|
133
|
+
* @param index - Color index
|
|
134
|
+
* @param palette - Palette configuration
|
|
135
|
+
* @returns Hex color string
|
|
136
|
+
*/
|
|
137
|
+
function getColorForIndex(index, palette) {
|
|
138
|
+
const colors = getPalette(palette).categorical;
|
|
139
|
+
return colors[index % colors.length];
|
|
140
|
+
}
|
|
141
|
+
exports.getColorForIndex = getColorForIndex;
|
|
142
|
+
/**
|
|
143
|
+
* Gets a sequential color by normalized value (0-1)
|
|
144
|
+
*
|
|
145
|
+
* @param value - Normalized value between 0 and 1
|
|
146
|
+
* @param palette - Palette configuration
|
|
147
|
+
* @returns Hex color string
|
|
148
|
+
*/
|
|
149
|
+
function getSequentialColor(value, palette) {
|
|
150
|
+
const colors = getPalette(palette).sequential;
|
|
151
|
+
const clampedValue = Math.max(0, Math.min(1, value));
|
|
152
|
+
const index = Math.floor(clampedValue * (colors.length - 1));
|
|
153
|
+
return colors[index];
|
|
154
|
+
}
|
|
155
|
+
exports.getSequentialColor = getSequentialColor;
|
|
156
|
+
/**
|
|
157
|
+
* Generates inline CSS from branding configuration
|
|
158
|
+
*
|
|
159
|
+
* @param branding - Branding configuration
|
|
160
|
+
* @returns CSS string for injection into <style> element
|
|
161
|
+
*/
|
|
162
|
+
function generateCSS(branding) {
|
|
163
|
+
const pal = getPalette(branding?.palette);
|
|
164
|
+
const font = getFontSpec(branding?.font);
|
|
165
|
+
const css = `
|
|
166
|
+
.bg-default { fill: ${pal.background}; }
|
|
167
|
+
.fg-default { fill: ${pal.foreground}; stroke: ${pal.foreground}; }
|
|
168
|
+
.text-default {
|
|
169
|
+
fill: ${pal.foreground};
|
|
170
|
+
font-family: ${font.family};
|
|
171
|
+
font-size: ${font.size}px;
|
|
172
|
+
font-weight: ${font.weight};
|
|
173
|
+
}
|
|
174
|
+
.node-text {
|
|
175
|
+
fill: ${pal.foreground};
|
|
176
|
+
font-family: ${font.family};
|
|
177
|
+
font-size: ${font.size}px;
|
|
178
|
+
text-anchor: middle;
|
|
179
|
+
dominant-baseline: middle;
|
|
180
|
+
}
|
|
181
|
+
.edge-line {
|
|
182
|
+
fill: none;
|
|
183
|
+
stroke: ${pal.foreground};
|
|
184
|
+
stroke-width: 2;
|
|
185
|
+
}
|
|
186
|
+
.edge-label {
|
|
187
|
+
fill: ${pal.foreground};
|
|
188
|
+
font-family: ${font.family};
|
|
189
|
+
font-size: ${font.size - 2}px;
|
|
190
|
+
text-anchor: middle;
|
|
191
|
+
}
|
|
192
|
+
${pal.categorical
|
|
193
|
+
.map((color, i) => `
|
|
194
|
+
.cat-${i} { fill: ${color}; }
|
|
195
|
+
.cat-${i}-stroke { stroke: ${color}; }
|
|
196
|
+
.cat-${i}-text { fill: ${color}; }
|
|
197
|
+
`)
|
|
198
|
+
.join('')}
|
|
199
|
+
${pal.sequential
|
|
200
|
+
.map((color, i) => `
|
|
201
|
+
.seq-${i} { fill: ${color}; }
|
|
202
|
+
`)
|
|
203
|
+
.join('')}
|
|
204
|
+
`
|
|
205
|
+
.replace(/\n\s+/g, '\n')
|
|
206
|
+
.trim();
|
|
207
|
+
return css;
|
|
208
|
+
}
|
|
209
|
+
exports.generateCSS = generateCSS;
|
|
210
|
+
/**
|
|
211
|
+
* Gets font specification with defaults applied
|
|
212
|
+
*
|
|
213
|
+
* @param font - Optional font configuration
|
|
214
|
+
* @returns Complete font specification
|
|
215
|
+
*/
|
|
216
|
+
function getFontSpec(font) {
|
|
217
|
+
return {
|
|
218
|
+
family: font?.family || exports.DEFAULT_FONT_STACK,
|
|
219
|
+
size: font?.size || 14,
|
|
220
|
+
weight: font?.weight || 400,
|
|
221
|
+
lineHeight: font?.lineHeight || 1.5,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
exports.getFontSpec = getFontSpec;
|
|
225
|
+
/**
|
|
226
|
+
* Gets font stack for CSS font-family property
|
|
227
|
+
*
|
|
228
|
+
* @param font - Optional font configuration
|
|
229
|
+
* @returns Font family stack string
|
|
230
|
+
*/
|
|
231
|
+
function getFontStack(font) {
|
|
232
|
+
return font?.family || exports.DEFAULT_FONT_STACK;
|
|
233
|
+
}
|
|
234
|
+
exports.getFontStack = getFontStack;
|
|
235
|
+
//# sourceMappingURL=svg-theming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg-theming.js","sourceRoot":"","sources":["../../../../src/custom/visualization/shared/svg-theming.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Type definitions for server-rendered SVG visualizations.
|
|
3
|
+
* These types support the MemberJunction infographic system and provide
|
|
4
|
+
* consistent interfaces across all visualization actions.
|
|
5
|
+
*
|
|
6
|
+
* @module @memberjunction/actions-core/visualization
|
|
7
|
+
* @since 2.107.0
|
|
8
|
+
*/
|
|
9
|
+
import { ActionResultSimple } from '@memberjunction/actions-base';
|
|
10
|
+
/**
|
|
11
|
+
* ViewBox configuration for SVG canvas dimensions and padding
|
|
12
|
+
*/
|
|
13
|
+
export interface ViewBox {
|
|
14
|
+
/** Final pixel width of the SVG */
|
|
15
|
+
width: number;
|
|
16
|
+
/** Final pixel height of the SVG */
|
|
17
|
+
height: number;
|
|
18
|
+
/** Padding around content (uniform or per-side) */
|
|
19
|
+
padding?: number | {
|
|
20
|
+
top?: number;
|
|
21
|
+
right?: number;
|
|
22
|
+
bottom?: number;
|
|
23
|
+
left?: number;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Font specification for text rendering
|
|
28
|
+
*/
|
|
29
|
+
export interface FontSpec {
|
|
30
|
+
/** Font family stack (e.g., 'Inter, Arial, sans-serif') */
|
|
31
|
+
family?: string;
|
|
32
|
+
/** Font size in pixels (default: 12-14) */
|
|
33
|
+
size?: number;
|
|
34
|
+
/** Font weight (400, 600, 'bold', etc.) */
|
|
35
|
+
weight?: number | string;
|
|
36
|
+
/** Line height in em units */
|
|
37
|
+
lineHeight?: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Color palette configuration
|
|
41
|
+
*/
|
|
42
|
+
export type Palette = {
|
|
43
|
+
type: 'named';
|
|
44
|
+
name: 'mjDefault' | 'gray' | 'pastel' | 'highContrast';
|
|
45
|
+
} | {
|
|
46
|
+
type: 'manual';
|
|
47
|
+
background?: string;
|
|
48
|
+
foreground?: string;
|
|
49
|
+
categorical?: string[];
|
|
50
|
+
sequential?: string[];
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Branding and visual identity configuration
|
|
54
|
+
*/
|
|
55
|
+
export interface Branding {
|
|
56
|
+
/** Color palette to use */
|
|
57
|
+
palette?: Palette;
|
|
58
|
+
/** Font specification */
|
|
59
|
+
font?: FontSpec;
|
|
60
|
+
/** Optional logo SVG snippet to place in corner */
|
|
61
|
+
logoSvg?: string;
|
|
62
|
+
/** Optional watermark text */
|
|
63
|
+
watermarkText?: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Accessibility configuration for WCAG compliance
|
|
67
|
+
*/
|
|
68
|
+
export interface Accessibility {
|
|
69
|
+
/** Title for <title> element */
|
|
70
|
+
title?: string;
|
|
71
|
+
/** Description for <desc> element */
|
|
72
|
+
desc?: string;
|
|
73
|
+
/** ARIA role for root SVG */
|
|
74
|
+
ariaRole?: 'img' | 'graphics-document';
|
|
75
|
+
/** Include data table for screen readers */
|
|
76
|
+
includeDataTable?: boolean;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Animation configuration (primarily for web display)
|
|
80
|
+
*/
|
|
81
|
+
export interface AnimationOptions {
|
|
82
|
+
/** Enable animations (default: false for print-first) */
|
|
83
|
+
enabled?: boolean;
|
|
84
|
+
/** Prefer CSS animations over inline JS */
|
|
85
|
+
preferCSS?: boolean;
|
|
86
|
+
/** Animation duration in milliseconds */
|
|
87
|
+
durationMs?: number;
|
|
88
|
+
/** Easing function */
|
|
89
|
+
ease?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out';
|
|
90
|
+
/** Stagger delay between items in milliseconds */
|
|
91
|
+
staggerMs?: number;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Interactivity configuration (requires inline JS)
|
|
95
|
+
*/
|
|
96
|
+
export interface InteractivityOptions {
|
|
97
|
+
/** Enable interactivity (default: false) */
|
|
98
|
+
enabled?: boolean;
|
|
99
|
+
/** Show tooltips on hover */
|
|
100
|
+
tooltips?: boolean;
|
|
101
|
+
/** Enable expand/collapse for trees */
|
|
102
|
+
expandCollapse?: boolean;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Export and rendering controls
|
|
106
|
+
*/
|
|
107
|
+
export interface ExportControls {
|
|
108
|
+
/** Inline CSS in <style> tag (default: true) */
|
|
109
|
+
embedCSS?: boolean;
|
|
110
|
+
/** Inline JavaScript in <script> tag (default: false) */
|
|
111
|
+
embedJS?: boolean;
|
|
112
|
+
/** Prefix for element IDs to ensure uniqueness */
|
|
113
|
+
idPrefix?: string;
|
|
114
|
+
/** Seed for deterministic random layouts */
|
|
115
|
+
seed?: number;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Base configuration shared by all SVG actions
|
|
119
|
+
*/
|
|
120
|
+
export interface ActionBase {
|
|
121
|
+
/** ViewBox dimensions and padding */
|
|
122
|
+
viewBox: ViewBox;
|
|
123
|
+
/** Branding and visual identity */
|
|
124
|
+
branding?: Branding;
|
|
125
|
+
/** Accessibility configuration */
|
|
126
|
+
a11y?: Accessibility;
|
|
127
|
+
/** Animation options */
|
|
128
|
+
animation?: AnimationOptions;
|
|
129
|
+
/** Interactivity options */
|
|
130
|
+
interactivity?: InteractivityOptions;
|
|
131
|
+
/** Export controls */
|
|
132
|
+
export?: ExportControls;
|
|
133
|
+
/** Pass-through metadata for tracing/debugging */
|
|
134
|
+
meta?: Record<string, unknown>;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Standardized result from SVG actions
|
|
138
|
+
*/
|
|
139
|
+
export interface SVGActionResult extends ActionResultSimple {
|
|
140
|
+
/** SVG XML string ready to embed */
|
|
141
|
+
svg?: string;
|
|
142
|
+
/** Width in pixels */
|
|
143
|
+
width?: number;
|
|
144
|
+
/** Height in pixels */
|
|
145
|
+
height?: number;
|
|
146
|
+
/** Warnings about rendering issues */
|
|
147
|
+
warnings?: string[];
|
|
148
|
+
/** Diagnostic information */
|
|
149
|
+
diagnostics?: Record<string, unknown>;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Types of nodes in flowcharts
|
|
153
|
+
*/
|
|
154
|
+
export type FlowNodeKind = 'start' | 'end' | 'process' | 'decision' | 'input' | 'output' | 'subprocess';
|
|
155
|
+
/**
|
|
156
|
+
* Node in a flowchart
|
|
157
|
+
*/
|
|
158
|
+
export interface FlowNode {
|
|
159
|
+
/** Unique node identifier */
|
|
160
|
+
id: string;
|
|
161
|
+
/** Node type/shape */
|
|
162
|
+
kind: FlowNodeKind;
|
|
163
|
+
/** Display label */
|
|
164
|
+
label: string;
|
|
165
|
+
/** Optional note/description */
|
|
166
|
+
note?: string;
|
|
167
|
+
/** Optional icon SVG */
|
|
168
|
+
icon?: string;
|
|
169
|
+
/** Override width (auto-calculated if not provided) */
|
|
170
|
+
width?: number;
|
|
171
|
+
/** Override height (auto-calculated if not provided) */
|
|
172
|
+
height?: number;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Edge connecting flowchart nodes
|
|
176
|
+
*/
|
|
177
|
+
export interface FlowEdge {
|
|
178
|
+
/** Source node ID */
|
|
179
|
+
from: string;
|
|
180
|
+
/** Target node ID */
|
|
181
|
+
to: string;
|
|
182
|
+
/** Optional edge label */
|
|
183
|
+
label?: string;
|
|
184
|
+
/** Render as dashed line */
|
|
185
|
+
dashed?: boolean;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Layout configuration for flowcharts
|
|
189
|
+
*/
|
|
190
|
+
export interface FlowLayout {
|
|
191
|
+
/** Layout direction */
|
|
192
|
+
direction?: 'TB' | 'LR' | 'RL' | 'BT';
|
|
193
|
+
/** Vertical spacing between ranks */
|
|
194
|
+
rankSep?: number;
|
|
195
|
+
/** Horizontal spacing between nodes */
|
|
196
|
+
nodeSep?: number;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Node in an org chart
|
|
200
|
+
*/
|
|
201
|
+
export interface OrgNode {
|
|
202
|
+
/** Unique node identifier */
|
|
203
|
+
id: string;
|
|
204
|
+
/** Person/position name */
|
|
205
|
+
label: string;
|
|
206
|
+
/** Job title/role */
|
|
207
|
+
role?: string;
|
|
208
|
+
/** Avatar URL (data URI or omitted) */
|
|
209
|
+
avatarUrl?: string;
|
|
210
|
+
/** Child nodes in hierarchy */
|
|
211
|
+
children?: OrgNode[];
|
|
212
|
+
/** Highlight this node */
|
|
213
|
+
highlight?: boolean;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Attribute in an entity
|
|
217
|
+
*/
|
|
218
|
+
export interface ERAttribute {
|
|
219
|
+
/** Attribute name */
|
|
220
|
+
name: string;
|
|
221
|
+
/** Data type */
|
|
222
|
+
type?: string;
|
|
223
|
+
/** Primary key indicator */
|
|
224
|
+
pk?: boolean;
|
|
225
|
+
/** Foreign key indicator */
|
|
226
|
+
fk?: boolean;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Table/Entity in ER diagram
|
|
230
|
+
*/
|
|
231
|
+
export interface ERTable {
|
|
232
|
+
/** Unique table identifier */
|
|
233
|
+
id: string;
|
|
234
|
+
/** Table display name */
|
|
235
|
+
name: string;
|
|
236
|
+
/** Table attributes/columns */
|
|
237
|
+
attrs: ERAttribute[];
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Relationship between entities
|
|
241
|
+
*/
|
|
242
|
+
export interface ERRelation {
|
|
243
|
+
/** Source table ID */
|
|
244
|
+
from: string;
|
|
245
|
+
/** Target table ID */
|
|
246
|
+
to: string;
|
|
247
|
+
/** Relationship cardinality */
|
|
248
|
+
label?: '1-1' | '1-N' | 'N-M';
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Word with weight for cloud/tag visualization
|
|
252
|
+
*/
|
|
253
|
+
export interface WordItem {
|
|
254
|
+
/** The word/term */
|
|
255
|
+
text: string;
|
|
256
|
+
/** Weight/frequency/importance */
|
|
257
|
+
weight: number;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Word cloud layout configuration
|
|
261
|
+
*/
|
|
262
|
+
export interface CloudLayout {
|
|
263
|
+
/** Rotation strategy */
|
|
264
|
+
rotate?: 'none' | 'few' | 'mixed';
|
|
265
|
+
/** Padding between words */
|
|
266
|
+
padding?: number;
|
|
267
|
+
/** Spiral algorithm type */
|
|
268
|
+
spiral?: 'archimedean' | 'rectangular';
|
|
269
|
+
/** Minimum font size */
|
|
270
|
+
minFont?: number;
|
|
271
|
+
/** Maximum font size */
|
|
272
|
+
maxFont?: number;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Node in a network graph
|
|
276
|
+
*/
|
|
277
|
+
export interface GraphNode {
|
|
278
|
+
/** Unique node identifier */
|
|
279
|
+
id: string;
|
|
280
|
+
/** Display label */
|
|
281
|
+
label?: string;
|
|
282
|
+
/** Group/category for coloring */
|
|
283
|
+
group?: string;
|
|
284
|
+
/** Node size (auto-calculated if not provided) */
|
|
285
|
+
size?: number;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Edge connecting graph nodes
|
|
289
|
+
*/
|
|
290
|
+
export interface GraphEdge {
|
|
291
|
+
/** Optional edge identifier */
|
|
292
|
+
id?: string;
|
|
293
|
+
/** Source node ID */
|
|
294
|
+
source: string;
|
|
295
|
+
/** Target node ID */
|
|
296
|
+
target: string;
|
|
297
|
+
/** Edge weight/strength */
|
|
298
|
+
weight?: number;
|
|
299
|
+
/** Directed edge (arrow) */
|
|
300
|
+
directed?: boolean;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Network layout type
|
|
304
|
+
*/
|
|
305
|
+
export type NetworkLayoutType = 'force' | 'radial' | 'tree' | 'grid';
|
|
306
|
+
/**
|
|
307
|
+
* Physics simulation parameters for force-directed layouts
|
|
308
|
+
*/
|
|
309
|
+
export interface PhysicsParams {
|
|
310
|
+
/** Charge/repulsion strength (negative = repel) */
|
|
311
|
+
charge?: number;
|
|
312
|
+
/** Ideal distance between connected nodes */
|
|
313
|
+
linkDistance?: number;
|
|
314
|
+
/** Number of simulation iterations */
|
|
315
|
+
iterations?: number;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Decision tree node (hierarchical)
|
|
319
|
+
*/
|
|
320
|
+
export interface DecisionNode {
|
|
321
|
+
/** Unique node identifier */
|
|
322
|
+
id: string;
|
|
323
|
+
/** Node label */
|
|
324
|
+
label: string;
|
|
325
|
+
/** Optional value/probability */
|
|
326
|
+
value?: number;
|
|
327
|
+
/** Child nodes in tree */
|
|
328
|
+
children?: DecisionNode[];
|
|
329
|
+
/** Collapsed state (if interactivity enabled) */
|
|
330
|
+
collapsed?: boolean;
|
|
331
|
+
/** Optional note */
|
|
332
|
+
note?: string;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Node shape for decision trees
|
|
336
|
+
*/
|
|
337
|
+
export type NodeShape = 'rect' | 'circle' | 'pill';
|
|
338
|
+
//# sourceMappingURL=svg-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg-types.d.ts","sourceRoot":"","sources":["../../../../src/custom/visualization/shared/svg-types.ts"],"names":[],"mappings":"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"}
|