svg-table 0.0.1

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 (62) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -0
  3. package/d3types.ts +17 -0
  4. package/dist/d3types.d.ts +12 -0
  5. package/dist/d3types.d.ts.map +1 -0
  6. package/dist/d3types.js +3 -0
  7. package/dist/d3types.js.map +1 -0
  8. package/dist/index.d.ts +10 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +36 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/stylings.d.ts +206 -0
  13. package/dist/stylings.d.ts.map +1 -0
  14. package/dist/stylings.js +123 -0
  15. package/dist/stylings.js.map +1 -0
  16. package/dist/tableData.d.ts +168 -0
  17. package/dist/tableData.d.ts.map +1 -0
  18. package/dist/tableData.js +329 -0
  19. package/dist/tableData.js.map +1 -0
  20. package/dist/tableData.test.d.ts +2 -0
  21. package/dist/tableData.test.d.ts.map +1 -0
  22. package/dist/tableData.test.js +259 -0
  23. package/dist/tableData.test.js.map +1 -0
  24. package/dist/tableFormatter.d.ts +179 -0
  25. package/dist/tableFormatter.d.ts.map +1 -0
  26. package/dist/tableFormatter.js +298 -0
  27. package/dist/tableFormatter.js.map +1 -0
  28. package/dist/tableFormatter.test.d.ts +2 -0
  29. package/dist/tableFormatter.test.d.ts.map +1 -0
  30. package/dist/tableFormatter.test.js +101 -0
  31. package/dist/tableFormatter.test.js.map +1 -0
  32. package/dist/tableStyler.d.ts +310 -0
  33. package/dist/tableStyler.d.ts.map +1 -0
  34. package/dist/tableStyler.js +665 -0
  35. package/dist/tableStyler.js.map +1 -0
  36. package/dist/tableStyler.test.d.ts +2 -0
  37. package/dist/tableStyler.test.d.ts.map +1 -0
  38. package/dist/tableStyler.test.js +225 -0
  39. package/dist/tableStyler.test.js.map +1 -0
  40. package/dist/tableSvg.d.ts +41 -0
  41. package/dist/tableSvg.d.ts.map +1 -0
  42. package/dist/tableSvg.js +634 -0
  43. package/dist/tableSvg.js.map +1 -0
  44. package/dist/tableUtils.d.ts +14 -0
  45. package/dist/tableUtils.d.ts.map +1 -0
  46. package/dist/tableUtils.js +18 -0
  47. package/dist/tableUtils.js.map +1 -0
  48. package/eslint.config.js +23 -0
  49. package/index.ts +82 -0
  50. package/jest.config.js +5 -0
  51. package/package.json +44 -0
  52. package/stylings.ts +311 -0
  53. package/svg-table-0.0.1-snapshot.tgz +0 -0
  54. package/tableData.test.ts +290 -0
  55. package/tableData.ts +359 -0
  56. package/tableFormatter.test.ts +122 -0
  57. package/tableFormatter.ts +306 -0
  58. package/tableStyler.test.ts +268 -0
  59. package/tableStyler.ts +798 -0
  60. package/tableSvg.ts +820 -0
  61. package/tableUtils.ts +20 -0
  62. package/tsconfig.json +102 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableSvg.js","sourceRoot":"","sources":["../tableSvg.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type Selection } from 'd3';
2
+ /**
3
+ * Calculates the width of an SVG text element, based on its bounding box
4
+ * @param elem The SVG text element
5
+ * @return The width in pixels, or 0 if SVG text element has not children
6
+ */
7
+ export declare const textWidthOf: (elem: Selection<SVGTextElement, any, any, any>) => number;
8
+ /**
9
+ * Calculates the height of an SVG text element, based on its bounding box
10
+ * @param elem The SVG text element
11
+ * @return The height in pixels, or 0 if SVG text element has not children
12
+ */
13
+ export declare const textHeightOf: (elem: Selection<SVGTextElement, any, any, any>) => number;
14
+ //# sourceMappingURL=tableUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableUtils.d.ts","sourceRoot":"","sources":["../tableUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,IAAI,CAAC;AAElC;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACnB,MAAM,SAAS,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAG,MACZ,CAAA;AAE1C;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACpB,MAAM,SAAS,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAG,MACX,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.textHeightOf = exports.textWidthOf = void 0;
4
+ /**
5
+ * Calculates the width of an SVG text element, based on its bounding box
6
+ * @param elem The SVG text element
7
+ * @return The width in pixels, or 0 if SVG text element has not children
8
+ */
9
+ var textWidthOf = function (elem) { var _a, _b; return ((_b = (_a = elem.node()) === null || _a === void 0 ? void 0 : _a.getBBox()) === null || _b === void 0 ? void 0 : _b.width) || 0; };
10
+ exports.textWidthOf = textWidthOf;
11
+ /**
12
+ * Calculates the height of an SVG text element, based on its bounding box
13
+ * @param elem The SVG text element
14
+ * @return The height in pixels, or 0 if SVG text element has not children
15
+ */
16
+ var textHeightOf = function (elem) { var _a, _b; return ((_b = (_a = elem.node()) === null || _a === void 0 ? void 0 : _a.getBBox()) === null || _b === void 0 ? void 0 : _b.height) || 0; };
17
+ exports.textHeightOf = textHeightOf;
18
+ //# sourceMappingURL=tableUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableUtils.js","sourceRoot":"","sources":["../tableUtils.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACI,IAAM,WAAW,GACpB,UAAC,IAA8C,gBAC3C,OAAA,CAAA,MAAA,MAAA,IAAI,CAAC,IAAI,EAAE,0CAAE,OAAO,EAAE,0CAAE,KAAK,KAAI,CAAC,CAAA,EAAA,CAAA;AAF7B,QAAA,WAAW,eAEkB;AAE1C;;;;GAIG;AACI,IAAM,YAAY,GACrB,UAAC,IAA8C,gBAC3C,OAAA,CAAA,MAAA,MAAA,IAAI,CAAC,IAAI,EAAE,0CAAE,OAAO,EAAE,0CAAE,MAAM,KAAI,CAAC,CAAA,EAAA,CAAA;AAF9B,QAAA,YAAY,gBAEkB"}
@@ -0,0 +1,23 @@
1
+ import js from '@eslint/js'
2
+ import globals from 'globals'
3
+ import reactHooks from 'eslint-plugin-react-hooks'
4
+ import reactRefresh from 'eslint-plugin-react-refresh'
5
+ import tseslint from 'typescript-eslint'
6
+ import { globalIgnores } from 'eslint/config'
7
+
8
+ export default tseslint.config([
9
+ globalIgnores(['dist']),
10
+ {
11
+ files: ['**/*.{ts,tsx}'],
12
+ extends: [
13
+ js.configs.recommended,
14
+ tseslint.configs.recommended,
15
+ reactHooks.configs['recommended-latest'],
16
+ reactRefresh.configs.vite,
17
+ ],
18
+ languageOptions: {
19
+ ecmaVersion: 2020,
20
+ globals: globals.browser,
21
+ },
22
+ },
23
+ ])
package/index.ts ADDED
@@ -0,0 +1,82 @@
1
+ export type {
2
+ GroupSelection,
3
+ TextSelection,
4
+ RectSelection,
5
+ LineSelection,
6
+ BorderSelection
7
+ } from './d3types'
8
+
9
+ export type {
10
+ Styling,
11
+ TableStylerProps,
12
+ TableFont,
13
+ Background,
14
+ Padding,
15
+ Margin,
16
+ BorderElement,
17
+ Border,
18
+ Dimension,
19
+ ColumnStyle,
20
+ RowStyle,
21
+ TextAlignment,
22
+ VerticalTextAlignment,
23
+ CellStyle,
24
+ ColumnHeaderStyle,
25
+ RowHeaderStyle,
26
+ FooterStyle,
27
+ Stylings,
28
+ } from './stylings';
29
+ export {
30
+ stylingFor,
31
+ TableStyleType,
32
+ defaultTableFont,
33
+ defaultTableBackground,
34
+ defaultTablePadding,
35
+ defaultTableMargin,
36
+ defaultBorderElement,
37
+ defaultBorder,
38
+ defaultDimension,
39
+ defaultColumnStyle,
40
+ defaultRowStyle,
41
+ defaultCellStyle,
42
+ defaultColumnHeaderStyle,
43
+ defaultRowHeaderStyle,
44
+ defaultFooterStyle,
45
+ } from './stylings';
46
+
47
+ export {
48
+ TableData,
49
+ TableTagType
50
+ } from './tableData';
51
+
52
+ export type {
53
+ Formatter,
54
+ Formatting,
55
+ } from './tableFormatter';
56
+
57
+ export {
58
+ defaultFormatter,
59
+ defaultFormatting,
60
+ TableFormatterType,
61
+ isFormattingTag,
62
+ TableFormatter
63
+ } from './tableFormatter';
64
+
65
+ export {
66
+ StyledTable,
67
+ TableStyler
68
+ } from './tableStyler';
69
+
70
+ export type {
71
+ ElementPlacementInfo,
72
+ TextAnchor,
73
+ DominantBaseline,
74
+ CellRenderingDimensions,
75
+ TableRenderingInfo
76
+ } from './tableSvg';
77
+
78
+ export {
79
+ elementInfoFrom,
80
+ createTable,
81
+ tableId,
82
+ } from './tableSvg';
package/jest.config.js ADDED
@@ -0,0 +1,5 @@
1
+ /** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
2
+ module.exports = {
3
+ preset: 'ts-jest',
4
+ testEnvironment: 'node',
5
+ };
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "svg-table",
3
+ "version": "0.0.1",
4
+ "author": "Rob Philipp",
5
+ "homepage": "https://github.com/robphilipp/svg-table",
6
+ "license": "MIT",
7
+ "repository": "git@github.com:robphilipp/svg-table.git",
8
+ "main": "dist/index.js",
9
+ "types": "dist/index.d.ts",
10
+ "scripts": {
11
+ "lint": "eslint .",
12
+ "prepare": "npm run build",
13
+ "build": "tsc",
14
+ "test": "jest"
15
+ },
16
+ "browserslist": {
17
+ "production": [
18
+ ">0.2%",
19
+ "not dead",
20
+ "not op_mini all"
21
+ ],
22
+ "development": [
23
+ "last 1 chrome version",
24
+ "last 1 firefox version",
25
+ "last 1 safari version"
26
+ ]
27
+ },
28
+ "dependencies": {
29
+ "d3": "^7.9.0",
30
+ "result-fn": "^0.2.1",
31
+ "data-frame-ts": "^1.0.2"
32
+ },
33
+ "devDependencies": {
34
+ "@eslint/js": "^9.33.0",
35
+ "@types/d3": "^7.4.3",
36
+ "@types/jest": "^30.0.0",
37
+ "eslint": "^9.33.0",
38
+ "globals": "^16.3.0",
39
+ "typescript": "~5.8.3",
40
+ "typescript-eslint": "^8.39.1",
41
+ "jest": "^30.1.3",
42
+ "ts-jest": "^29.4.1"
43
+ }
44
+ }
package/stylings.ts ADDED
@@ -0,0 +1,311 @@
1
+ import type {DataFrame} from "data-frame-ts";
2
+
3
+ /**
4
+ * Represents a styling configuration with a priority level.
5
+ * Higher priority styles will override lower priority styles when multiple styles are applied.
6
+ */
7
+ export type Styling<S> = {
8
+ style: S
9
+ priority: number
10
+ }
11
+
12
+ /**
13
+ * Creates a Styling object with the given style and priority.
14
+ * @param style The style to apply
15
+ * @param defaultStyle The default style that is used to fill in missing style attributes
16
+ * @param priority The priority level of the style (higher values take precedence)
17
+ * @returns A Styling object containing the style and priority
18
+ */
19
+ export function stylingFor<S>(style: Partial<S>, defaultStyle: S, priority: number = 0): Styling<S> {
20
+ return {style: {...defaultStyle, ...style}, priority}
21
+ }
22
+
23
+
24
+ /**
25
+ * Enum representing different types of table styling elements.
26
+ * Used as identifiers when tagging different parts of the table with styles.
27
+ */
28
+ export enum TableStyleType {
29
+ COLUMN_HEADER = "column_header_style",
30
+ ROW_HEADER = "row_header_style",
31
+ FOOTER = "footer_style",
32
+ ROW = "row_style",
33
+ COLUMN = "column_style",
34
+ CELL = "cell_style"
35
+ }
36
+
37
+ /**
38
+ * Properties for the TableStyler class.
39
+ * Contains all the styling information and data for a table.
40
+ */
41
+ export type TableStylerProps<V> = {
42
+ dataFrame: DataFrame<V>
43
+ readonly font: TableFont
44
+ border: Border
45
+ background: Background
46
+ dimension: Pick<Dimension, "width" | "height">
47
+ padding: Padding
48
+ margin: Margin
49
+ readonly errors: Array<string>
50
+ }
51
+
52
+ /**
53
+ * Defines the font properties for table text.
54
+ */
55
+ export type TableFont = {
56
+ size: number
57
+ color: string
58
+ family: string
59
+ weight: number
60
+ }
61
+
62
+ export const defaultTableFont: TableFont = {
63
+ size: 13,
64
+ color: '#d2933f',
65
+ family: 'sans-serif',
66
+ weight: 450,
67
+ }
68
+
69
+ /**
70
+ * Defines the background properties for table elements.
71
+ */
72
+ export type Background = {
73
+ color: string
74
+ opacity: number
75
+ }
76
+ export const defaultTableBackground: Background = {color: '#fff', opacity: 0}
77
+
78
+ /**
79
+ * Defines the padding properties for table elements.
80
+ * Specifies the space between the content and the border.
81
+ */
82
+ export type Padding = {
83
+ left: number
84
+ right: number
85
+ top: number
86
+ bottom: number
87
+ }
88
+ export const defaultTablePadding: Padding = {left: 0, right: 0, top: 0, bottom: 0}
89
+
90
+ /**
91
+ * Defines the margin properties for table elements.
92
+ * Specifies the space outside the border.
93
+ */
94
+ export type Margin = {
95
+ left: number
96
+ right: number
97
+ top: number
98
+ bottom: number
99
+ }
100
+ export const defaultTableMargin: Margin = {left: 0, right: 0, top: 0, bottom: 0}
101
+
102
+ /**
103
+ * Defines the border properties for table elements.
104
+ * Controls the appearance of the border around table elements.
105
+ */
106
+ export type BorderElement = {
107
+ color: string
108
+ opacity: number
109
+ width: number
110
+ radius: number
111
+ }
112
+ export const defaultBorderElement: BorderElement = {color: 'black', radius: 0, width: 0, opacity: 0}
113
+
114
+ export enum BorderLocation {
115
+ TOP = 'top',
116
+ BOTTOM = 'bottom',
117
+ LEFT = 'left',
118
+ RIGHT = 'right'
119
+ }
120
+
121
+ export type Border = {
122
+ top: BorderElement
123
+ bottom: BorderElement
124
+ left: BorderElement
125
+ right: BorderElement
126
+ }
127
+
128
+ export const defaultBorder: Border = {
129
+ top: defaultBorderElement,
130
+ bottom: defaultBorderElement,
131
+ left: defaultBorderElement,
132
+ right: defaultBorderElement,
133
+ }
134
+
135
+ /**
136
+ * Defines the dimension properties for table elements.
137
+ * Controls the size constraints including width and height with their minimum,
138
+ * maximum, and default values.
139
+ */
140
+ export type Dimension = {
141
+ width: number
142
+ defaultWidth: number
143
+ minWidth: number
144
+ maxWidth: number
145
+
146
+ height: number
147
+ defaultHeight: number
148
+ minHeight: number
149
+ maxHeight: number
150
+ }
151
+
152
+ export const defaultDimension: Dimension = {
153
+ width: 60,
154
+ defaultWidth: 70,
155
+ minWidth: 50,
156
+ maxWidth: 100,
157
+
158
+ height: 15,
159
+ defaultHeight: 20,
160
+ minHeight: 10,
161
+ maxHeight: 50
162
+ }
163
+
164
+ /**
165
+ * The style for each column (for what is not determined by each row's style).
166
+ */
167
+ export type ColumnStyle = {
168
+ alignText: TextAlignment
169
+ verticalAlignText: VerticalTextAlignment
170
+ dimension: Pick<Dimension, "defaultWidth" | "minWidth" | "maxWidth">
171
+ padding: Pick<Padding, "left" | "right">
172
+ border: Border
173
+ }
174
+
175
+ export const defaultColumnStyle: ColumnStyle = {
176
+ alignText: "left",
177
+ verticalAlignText: "middle",
178
+ dimension: {...defaultDimension, defaultWidth: 60, minWidth: 40, maxWidth: 80},
179
+ padding: {...defaultTablePadding, left: 0, right: 0},
180
+ border: defaultBorder
181
+ }
182
+
183
+ /**
184
+ * Note that the {@link ColumnStyle} determines the text alignment for
185
+ * each column. Therefore, the alignment of the text in a row is determined
186
+ * by the alignment for all the rows in the column.
187
+ */
188
+ export type RowStyle = {
189
+ font: TableFont
190
+ background: Background
191
+ dimension: Pick<Dimension, "defaultHeight" | "minHeight" | "maxHeight">
192
+ padding: Pick<Padding, "top" | "bottom">
193
+ border: Border
194
+ }
195
+
196
+ export const defaultRowStyle: RowStyle = {
197
+ font: defaultTableFont,
198
+ background: defaultTableBackground,
199
+ dimension: {defaultHeight: 20, minHeight: 15, maxHeight: 50},
200
+ padding: {top: 0, bottom: 0},
201
+ border: defaultBorder
202
+ }
203
+
204
+ export type TextAlignment = "left" | "center" | "right"
205
+
206
+ export type VerticalTextAlignment = "top" | "middle" | "bottom"
207
+
208
+ export type CellStyle = {
209
+ font: TableFont
210
+ alignText: TextAlignment
211
+ verticalAlignText: VerticalTextAlignment
212
+ background: Background
213
+ dimension: Dimension
214
+ padding: Padding
215
+ border: Border
216
+ }
217
+
218
+ export const defaultCellStyle: CellStyle = {
219
+ font: defaultTableFont,
220
+ alignText: "left",
221
+ verticalAlignText: "middle",
222
+ background: defaultTableBackground,
223
+ dimension: defaultDimension,
224
+ padding: defaultTablePadding,
225
+ border: defaultBorder
226
+ }
227
+
228
+ /**
229
+ * Confusing as it may be, this is the style for the **row** that holds the
230
+ * headers for each column. The styling for this row may differ from the
231
+ * other rows in the table.
232
+ */
233
+ export type ColumnHeaderStyle = {
234
+ font: TableFont
235
+ alignText: TextAlignment
236
+ verticalAlignText: VerticalTextAlignment
237
+ dimension: Pick<Dimension, "height" | "maxHeight" | "minHeight">
238
+ padding: Pick<Padding, "top" | "bottom">
239
+ background: Background
240
+ border: Border
241
+ }
242
+
243
+ export const defaultColumnHeaderStyle: ColumnHeaderStyle = {
244
+ font: {...defaultTableFont, weight: 600},
245
+ alignText: "left",
246
+ verticalAlignText: "middle",
247
+ dimension: {...defaultDimension, height: 20, maxHeight: 50, minHeight: 15},
248
+ padding: {...defaultTablePadding, top: 0, bottom: 0},
249
+ background: defaultTableBackground,
250
+ border: defaultBorder
251
+
252
+ }
253
+
254
+ /**
255
+ * Confusing as it may be, this is the style for the **column** that holds
256
+ * the headers for each row. The styling for this column may differ from the
257
+ * columns in the table.
258
+ */
259
+ export type RowHeaderStyle = {
260
+ font: TableFont
261
+ alignText: TextAlignment
262
+ verticalAlignText: VerticalTextAlignment
263
+ dimension: Pick<Dimension, "width" | "maxWidth" | "minWidth">
264
+ padding: Pick<Padding, "left" | "right">
265
+ background: Background
266
+ border: Border
267
+ }
268
+
269
+ export const defaultRowHeaderStyle: RowHeaderStyle = {
270
+ font: defaultTableFont,
271
+ alignText: "left",
272
+ verticalAlignText: "middle",
273
+ dimension: {...defaultDimension, width: 60, minWidth: 15, maxWidth: 100},
274
+ padding: {...defaultTablePadding, left: 0, right: 0},
275
+ background: defaultTableBackground,
276
+ border: defaultBorder
277
+
278
+ }
279
+
280
+ /**
281
+ * Defines the style for the footer row of the table.
282
+ * Controls the appearance of the footer including font, text alignment,
283
+ * height, padding, and background.
284
+ */
285
+ export type FooterStyle = {
286
+ font: TableFont
287
+ alignText: TextAlignment
288
+ verticalAlignText: VerticalTextAlignment
289
+ dimension: Pick<Dimension, "height">
290
+ padding: Pick<Padding, "top" | "bottom">
291
+ background: Background
292
+ border: Border
293
+ }
294
+
295
+ export const defaultFooterStyle: FooterStyle = {
296
+ font: defaultTableFont,
297
+ alignText: "left",
298
+ verticalAlignText: "middle",
299
+ dimension: {height: 20},
300
+ padding: {...defaultTablePadding, top: 0, bottom: 0},
301
+ background: defaultTableBackground,
302
+ border: defaultBorder
303
+
304
+ }
305
+
306
+ export type Stylings = Styling<RowHeaderStyle> |
307
+ Styling<ColumnHeaderStyle> |
308
+ Styling<FooterStyle> |
309
+ Styling<RowStyle> |
310
+ Styling<ColumnStyle> |
311
+ Styling<CellStyle>
Binary file