abstract-image 11.2.10 → 11.2.11
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/lib/abstract-image-jsx/index.d.ts +19 -0
- package/lib/abstract-image-jsx/index.d.ts.map +1 -0
- package/lib/abstract-image-jsx/index.js +54 -0
- package/lib/abstract-image-jsx/index.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +24 -0
- package/lib/index.js.map +1 -1
- package/package.json +2 -2
- package/src/abstract-image-jsx/index.ts +115 -0
- package/src/index.ts +1 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Group as GroupComponent, BinaryImage as BinaryImageComponent, Ellipse as EllipseComponent, Line as LineComponent, PolyLine as PolyLineComponent, Polygon as PolygonComponent, Rectangle as RectangleComponent, Text as TextComponent, SubImage as SubImageComponent } from "../model/component.js";
|
|
3
|
+
export interface ChildrenProp {
|
|
4
|
+
readonly children?: Child;
|
|
5
|
+
}
|
|
6
|
+
export type Child = React.JSX.Element | Children;
|
|
7
|
+
export interface Children extends ReadonlyArray<Child> {
|
|
8
|
+
}
|
|
9
|
+
export declare const Group: (props: GroupComponent) => GroupComponent;
|
|
10
|
+
export declare const BinaryImage: (props: BinaryImageComponent) => BinaryImageComponent;
|
|
11
|
+
export declare const Ellipse: (props: EllipseComponent) => EllipseComponent;
|
|
12
|
+
export declare const Line: (props: LineComponent) => LineComponent;
|
|
13
|
+
export declare const PolyLine: (props: PolyLineComponent) => PolyLineComponent;
|
|
14
|
+
export declare const Polygon: (props: PolygonComponent) => PolygonComponent;
|
|
15
|
+
export declare const Rectangle: (props: RectangleComponent) => RectangleComponent;
|
|
16
|
+
export declare const Text: (props: TextComponent) => TextComponent;
|
|
17
|
+
export declare const SubImage: (props: SubImageComponent) => SubImageComponent;
|
|
18
|
+
export declare function render(element: any): any;
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abstract-image-jsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,KAAK,IAAI,cAAc,EACvB,WAAW,IAAI,oBAAoB,EACnC,OAAO,IAAI,gBAAgB,EAC3B,IAAI,IAAI,aAAa,EACrB,QAAQ,IAAI,iBAAiB,EAC7B,OAAO,IAAI,gBAAgB,EAC3B,SAAS,IAAI,kBAAkB,EAC/B,IAAI,IAAI,aAAa,EACrB,QAAQ,IAAI,iBAAiB,EAU9B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B;AACD,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;AACjD,MAAM,WAAW,QAAS,SAAQ,aAAa,CAAC,KAAK,CAAC;CAAG;AAEzD,eAAO,MAAM,KAAK,GAAI,OAAO,cAAc,KAAG,cAAyD,CAAC;AACxG,eAAO,MAAM,WAAW,GAAI,OAAO,oBAAoB,KAAG,oBAC+B,CAAC;AAC1F,eAAO,MAAM,OAAO,GAAI,OAAO,gBAAgB,KAAG,gBAS/C,CAAC;AACJ,eAAO,MAAM,IAAI,GAAI,OAAO,aAAa,KAAG,aACmE,CAAC;AAChH,eAAO,MAAM,QAAQ,GAAI,OAAO,iBAAiB,KAAG,iBACqD,CAAC;AAC1G,eAAO,MAAM,OAAO,GAAI,OAAO,gBAAgB,KAAG,gBAQ/C,CAAC;AACJ,eAAO,MAAM,SAAS,GAAI,OAAO,kBAAkB,KAAG,kBAUnD,CAAC;AACJ,eAAO,MAAM,IAAI,GAAI,OAAO,aAAa,KAAG,aAgBzC,CAAC;AACJ,eAAO,MAAM,QAAQ,GAAI,OAAO,iBAAiB,KAAG,iBAA+D,CAAC;AAEpH,wBAAgB,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAOxC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SubImage = exports.Text = exports.Rectangle = exports.Polygon = exports.PolyLine = exports.Line = exports.Ellipse = exports.BinaryImage = exports.Group = void 0;
|
|
4
|
+
exports.render = render;
|
|
5
|
+
const component_js_1 = require("../model/component.js");
|
|
6
|
+
const Group = (props) => (0, component_js_1.createGroup)(props.name, props.children);
|
|
7
|
+
exports.Group = Group;
|
|
8
|
+
const BinaryImage = (props) => (0, component_js_1.createBinaryImage)(props.topLeft, props.bottomRight, props.format, props.data, props.id);
|
|
9
|
+
exports.BinaryImage = BinaryImage;
|
|
10
|
+
const Ellipse = (props) => (0, component_js_1.createEllipse)(props.topLeft, props.bottomRight, props.strokeColor, props.strokeThickness, props.fillColor, props.id, props.strokeDashStyle);
|
|
11
|
+
exports.Ellipse = Ellipse;
|
|
12
|
+
const Line = (props) => (0, component_js_1.createLine)(props.start, props.end, props.strokeColor, props.strokeThickness, props.id, props.strokeDashStyle);
|
|
13
|
+
exports.Line = Line;
|
|
14
|
+
const PolyLine = (props) => (0, component_js_1.createPolyLine)(props.points, props.strokeColor, props.strokeThickness, props.id, props.strokeDashStyle);
|
|
15
|
+
exports.PolyLine = PolyLine;
|
|
16
|
+
const Polygon = (props) => (0, component_js_1.createPolygon)(props.points, props.strokeColor, props.strokeThickness, props.fillColor, props.id, props.strokeDashStyle);
|
|
17
|
+
exports.Polygon = Polygon;
|
|
18
|
+
const Rectangle = (props) => (0, component_js_1.createRectangle)(props.topLeft, props.bottomRight, props.strokeColor, props.strokeThickness, props.fillColor, props.id, props.strokeDashStyle, props.radius);
|
|
19
|
+
exports.Rectangle = Rectangle;
|
|
20
|
+
const Text = (props) => (0, component_js_1.createText)(props.position, props.text, props.fontFamily, props.fontSize, props.textColor, props.fontWeight, props.clockwiseRotationDegrees, props.textAlignment, props.horizontalGrowthDirection, props.verticalGrowthDirection, props.strokeThickness, props.strokeColor, props.italic, props.id);
|
|
21
|
+
exports.Text = Text;
|
|
22
|
+
const SubImage = (props) => (0, component_js_1.createSubImage)(props.topLeft, props.image);
|
|
23
|
+
exports.SubImage = SubImage;
|
|
24
|
+
function render(element) {
|
|
25
|
+
if (typeof element.type !== "function") {
|
|
26
|
+
return element;
|
|
27
|
+
}
|
|
28
|
+
const props = element.props || {};
|
|
29
|
+
const children = renderChildren(element);
|
|
30
|
+
return element.type({ ...props, children });
|
|
31
|
+
}
|
|
32
|
+
function renderChildren(element) {
|
|
33
|
+
if (!element.props || !element.props.children) {
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
if (element.props.type === "group") {
|
|
37
|
+
const children = element.props.children;
|
|
38
|
+
if (Array.isArray(children)) {
|
|
39
|
+
return children.flatMap((c) => {
|
|
40
|
+
if (!c)
|
|
41
|
+
return [];
|
|
42
|
+
if (Array.isArray(c))
|
|
43
|
+
return c.map(render);
|
|
44
|
+
return render(c);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const elements = render(children);
|
|
49
|
+
return Array.isArray(elements) ? elements : [elements];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/abstract-image-jsx/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -10,4 +10,5 @@ export * from "./exporters/dxf2d-export-image.js";
|
|
|
10
10
|
export * from "./exporters/react-svg-export-image.js";
|
|
11
11
|
export * from "./exporters/eps-export-image.js";
|
|
12
12
|
export * from "./dynamic-image/index.js";
|
|
13
|
+
export * as AbstractImageJsx from "./abstract-image-jsx/index.js";
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -10,10 +10,33 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
13
18
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
20
|
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
16
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.AbstractImageJsx = void 0;
|
|
17
40
|
__exportStar(require("./model/abstract-image.js"), exports);
|
|
18
41
|
__exportStar(require("./model/color.js"), exports);
|
|
19
42
|
__exportStar(require("./model/component.js"), exports);
|
|
@@ -26,4 +49,5 @@ __exportStar(require("./exporters/dxf2d-export-image.js"), exports);
|
|
|
26
49
|
__exportStar(require("./exporters/react-svg-export-image.js"), exports);
|
|
27
50
|
__exportStar(require("./exporters/eps-export-image.js"), exports);
|
|
28
51
|
__exportStar(require("./dynamic-image/index.js"), exports);
|
|
52
|
+
exports.AbstractImageJsx = __importStar(require("./abstract-image-jsx/index.js"));
|
|
29
53
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,mDAAiC;AACjC,uDAAqC;AACrC,mDAAiC;AACjC,kDAAgC;AAChC,wDAAsC;AACtC,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,wEAAsD;AACtD,kEAAgD;AAChD,2DAAyC;AACzC,kFAAkE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "abstract-image",
|
|
3
|
-
"version": "11.2.
|
|
3
|
+
"version": "11.2.11",
|
|
4
4
|
"description": "Dynamically create images using code or JSX and render to any format",
|
|
5
5
|
"repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-image",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"vite": "^6.0.1",
|
|
35
35
|
"vitest": "^2.1.6"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "dbd51d4be547cc60281c10623b9ab00ec632d55d"
|
|
38
38
|
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
Group as GroupComponent,
|
|
5
|
+
BinaryImage as BinaryImageComponent,
|
|
6
|
+
Ellipse as EllipseComponent,
|
|
7
|
+
Line as LineComponent,
|
|
8
|
+
PolyLine as PolyLineComponent,
|
|
9
|
+
Polygon as PolygonComponent,
|
|
10
|
+
Rectangle as RectangleComponent,
|
|
11
|
+
Text as TextComponent,
|
|
12
|
+
SubImage as SubImageComponent,
|
|
13
|
+
createGroup,
|
|
14
|
+
createBinaryImage,
|
|
15
|
+
createEllipse,
|
|
16
|
+
createLine,
|
|
17
|
+
createPolyLine,
|
|
18
|
+
createPolygon,
|
|
19
|
+
createRectangle,
|
|
20
|
+
createText,
|
|
21
|
+
createSubImage,
|
|
22
|
+
} from "../model/component.js";
|
|
23
|
+
|
|
24
|
+
export interface ChildrenProp {
|
|
25
|
+
readonly children?: Child;
|
|
26
|
+
}
|
|
27
|
+
export type Child = React.JSX.Element | Children;
|
|
28
|
+
export interface Children extends ReadonlyArray<Child> {}
|
|
29
|
+
|
|
30
|
+
export const Group = (props: GroupComponent): GroupComponent => createGroup(props.name, props.children);
|
|
31
|
+
export const BinaryImage = (props: BinaryImageComponent): BinaryImageComponent =>
|
|
32
|
+
createBinaryImage(props.topLeft, props.bottomRight, props.format, props.data, props.id);
|
|
33
|
+
export const Ellipse = (props: EllipseComponent): EllipseComponent =>
|
|
34
|
+
createEllipse(
|
|
35
|
+
props.topLeft,
|
|
36
|
+
props.bottomRight,
|
|
37
|
+
props.strokeColor,
|
|
38
|
+
props.strokeThickness,
|
|
39
|
+
props.fillColor,
|
|
40
|
+
props.id,
|
|
41
|
+
props.strokeDashStyle
|
|
42
|
+
);
|
|
43
|
+
export const Line = (props: LineComponent): LineComponent =>
|
|
44
|
+
createLine(props.start, props.end, props.strokeColor, props.strokeThickness, props.id, props.strokeDashStyle);
|
|
45
|
+
export const PolyLine = (props: PolyLineComponent): PolyLineComponent =>
|
|
46
|
+
createPolyLine(props.points, props.strokeColor, props.strokeThickness, props.id, props.strokeDashStyle);
|
|
47
|
+
export const Polygon = (props: PolygonComponent): PolygonComponent =>
|
|
48
|
+
createPolygon(
|
|
49
|
+
props.points,
|
|
50
|
+
props.strokeColor,
|
|
51
|
+
props.strokeThickness,
|
|
52
|
+
props.fillColor,
|
|
53
|
+
props.id,
|
|
54
|
+
props.strokeDashStyle
|
|
55
|
+
);
|
|
56
|
+
export const Rectangle = (props: RectangleComponent): RectangleComponent =>
|
|
57
|
+
createRectangle(
|
|
58
|
+
props.topLeft,
|
|
59
|
+
props.bottomRight,
|
|
60
|
+
props.strokeColor,
|
|
61
|
+
props.strokeThickness,
|
|
62
|
+
props.fillColor,
|
|
63
|
+
props.id,
|
|
64
|
+
props.strokeDashStyle,
|
|
65
|
+
props.radius
|
|
66
|
+
);
|
|
67
|
+
export const Text = (props: TextComponent): TextComponent =>
|
|
68
|
+
createText(
|
|
69
|
+
props.position,
|
|
70
|
+
props.text,
|
|
71
|
+
props.fontFamily,
|
|
72
|
+
props.fontSize,
|
|
73
|
+
props.textColor,
|
|
74
|
+
props.fontWeight,
|
|
75
|
+
props.clockwiseRotationDegrees,
|
|
76
|
+
props.textAlignment,
|
|
77
|
+
props.horizontalGrowthDirection,
|
|
78
|
+
props.verticalGrowthDirection,
|
|
79
|
+
props.strokeThickness,
|
|
80
|
+
props.strokeColor,
|
|
81
|
+
props.italic,
|
|
82
|
+
props.id
|
|
83
|
+
);
|
|
84
|
+
export const SubImage = (props: SubImageComponent): SubImageComponent => createSubImage(props.topLeft, props.image);
|
|
85
|
+
|
|
86
|
+
export function render(element: any): any {
|
|
87
|
+
if (typeof element.type !== "function") {
|
|
88
|
+
return element;
|
|
89
|
+
}
|
|
90
|
+
const props = element.props || {};
|
|
91
|
+
const children = renderChildren(element);
|
|
92
|
+
return (element.type as any)({ ...props, children });
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function renderChildren(element: React.ReactElement<any>): any {
|
|
96
|
+
if (!element.props || !element.props.children) {
|
|
97
|
+
return [];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (element.props.type === "group") {
|
|
101
|
+
const children = element.props.children;
|
|
102
|
+
if (Array.isArray(children)) {
|
|
103
|
+
return children.flatMap((c: any) => {
|
|
104
|
+
if (!c) return [];
|
|
105
|
+
if (Array.isArray(c)) return c.map(render);
|
|
106
|
+
return render(c);
|
|
107
|
+
});
|
|
108
|
+
} else {
|
|
109
|
+
const elements = render(children);
|
|
110
|
+
return Array.isArray(elements) ? elements : [elements];
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return [];
|
|
115
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -10,3 +10,4 @@ export * from "./exporters/dxf2d-export-image.js";
|
|
|
10
10
|
export * from "./exporters/react-svg-export-image.js";
|
|
11
11
|
export * from "./exporters/eps-export-image.js";
|
|
12
12
|
export * from "./dynamic-image/index.js";
|
|
13
|
+
export * as AbstractImageJsx from "./abstract-image-jsx/index.js";
|