abstract-image 13.0.60 → 13.1.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/CHANGELOG.md +4 -0
- package/README.md +4 -9
- package/lib/__stories__/react-svg-export/example-1.stories.d.ts +2 -2
- package/lib/__stories__/react-svg-export/example-1.stories.d.ts.map +1 -1
- package/lib/__stories__/react-svg-export/example-1.stories.js.map +1 -1
- package/lib/__stories__/svg-export/example-1.stories.d.ts +2 -2
- package/lib/__stories__/svg-export/example-1.stories.d.ts.map +1 -1
- package/lib/__stories__/svg-export/example-1.stories.js.map +1 -1
- package/lib/abstract-image-jsx/index.d.ts +2 -3
- package/lib/abstract-image-jsx/index.d.ts.map +1 -1
- package/lib/abstract-image-jsx/index.js +11 -8
- package/lib/abstract-image-jsx/index.js.map +1 -1
- package/lib/dynamic-image/components.d.ts +1 -1
- package/lib/dynamic-image/components.d.ts.map +1 -1
- package/lib/dynamic-image/components.js +3 -4
- package/lib/dynamic-image/components.js.map +1 -1
- package/lib/dynamic-image/dynamic-image.d.ts.map +1 -1
- package/lib/dynamic-image/dynamic-image.js +3 -7
- package/lib/dynamic-image/dynamic-image.js.map +1 -1
- package/lib/dynamic-image/utils.d.ts +2 -1
- package/lib/dynamic-image/utils.d.ts.map +1 -1
- package/lib/dynamic-image/utils.js.map +1 -1
- package/lib/exporters/dxf2d-export-image.d.ts +3 -2
- package/lib/exporters/dxf2d-export-image.d.ts.map +1 -1
- package/lib/exporters/dxf2d-export-image.js +16 -26
- package/lib/exporters/dxf2d-export-image.js.map +1 -1
- package/lib/exporters/eps-export-image.d.ts +1 -2
- package/lib/exporters/eps-export-image.d.ts.map +1 -1
- package/lib/exporters/eps-export-image.js +6 -29
- package/lib/exporters/eps-export-image.js.map +1 -1
- package/lib/exporters/react-svg-export-image.d.ts.map +1 -1
- package/lib/exporters/react-svg-export-image.js +10 -10
- package/lib/exporters/react-svg-export-image.js.map +1 -1
- package/lib/exporters/svg-export-image.d.ts.map +1 -1
- package/lib/exporters/svg-export-image.js +8 -6
- package/lib/exporters/svg-export-image.js.map +1 -1
- package/lib/model/abstract-image.d.ts +1 -1
- package/lib/model/abstract-image.d.ts.map +1 -1
- package/lib/model/abstract-image.js.map +1 -1
- package/lib/model/color.d.ts.map +1 -1
- package/lib/model/color.js +3 -5
- package/lib/model/color.js.map +1 -1
- package/lib/model/component.d.ts +3 -5
- package/lib/model/component.d.ts.map +1 -1
- package/lib/model/component.js +1 -1
- package/lib/model/component.js.map +1 -1
- package/lib/model/point.js +1 -1
- package/lib/model/size.js +1 -1
- package/package.json +17 -17
- package/src/__stories__/react-svg-export/example-1.stories.tsx +4 -14
- package/src/__stories__/svg-export/example-1.stories.tsx +4 -15
- package/src/abstract-image-jsx/index.ts +27 -32
- package/src/dynamic-image/components.ts +6 -19
- package/src/dynamic-image/dynamic-image.ts +6 -24
- package/src/dynamic-image/utils.ts +7 -5
- package/src/exporters/dxf2d-export-image.ts +26 -69
- package/src/exporters/eps-export-image.ts +19 -31
- package/src/exporters/react-svg-export-image.tsx +26 -51
- package/src/exporters/svg-export-image.ts +11 -16
- package/src/index.ts +1 -1
- package/src/model/abstract-image.ts +2 -7
- package/src/model/color.ts +4 -13
- package/src/model/component.ts +5 -13
- package/src/model/point.ts +1 -1
- package/src/model/size.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
|
5
|
+
## [13.1.0] - 2026-09-06
|
|
6
|
+
|
|
7
|
+
- Internal: activated 39 additional oxlint rules — curly, default-case, eqeqeq, init-declarations, no-alert, no-bitwise, no-case-declarations, no-empty-pattern, no-prototype-builtins, no-restricted-globals, no-restricted-properties, no-shadow, no-throw-literal, no-unused-vars, no-useless-return, node/global-require, one-var, prefer-const, prefer-object-spread, typescript/array-type, typescript/ban-tslint-comment, typescript/dot-notation, typescript/explicit-module-boundary-types, typescript/no-empty-object-type, typescript/no-explicit-any, typescript/no-require-imports, typescript/no-unnecessary-boolean-literal-compare, typescript/no-var-requires, typescript/no-wrapper-object-types, typescript/parameter-properties, typescript/prefer-nullish-coalescing, typescript/prefer-optional-chain, typescript/prefer-readonly, typescript/prefer-reduce-type-parameter, typescript/prefer-string-starts-ends-with, typescript/switch-exhaustiveness-check, typescript/unified-signatures, unicorn/no-array-sort — and upgraded `oxlint-config-divid` to 1.2.0. No functional changes.
|
|
8
|
+
|
|
5
9
|
## [13.0.59] - 2026-09-05
|
|
6
10
|
|
|
7
11
|
- Internal: adopt `verbatimModuleSyntax` and stricter compiler/lint settings (no unused locals/params, no bracket-free index-signature access). No functional changes.
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# abstract-image
|
|
2
2
|
|
|
3
3
|
[![npm version][version-image]][version-url]
|
|
4
|
-
[![code style:
|
|
4
|
+
[![code style: oxfmt][oxfmt-image]][oxfmt-url]
|
|
5
5
|
[![MIT license][license-image]][license-url]
|
|
6
6
|
|
|
7
7
|
Dynamically create images using code or JSX and render to any format
|
|
@@ -24,12 +24,7 @@ import * as AbstractImage from "abstract-image";
|
|
|
24
24
|
|
|
25
25
|
export function AbstractImageExample() {
|
|
26
26
|
const components = [
|
|
27
|
-
AbstractImage.createLine(
|
|
28
|
-
AbstractImage.createPoint(25, 25),
|
|
29
|
-
AbstractImage.createPoint(80, 60),
|
|
30
|
-
AbstractImage.black,
|
|
31
|
-
2
|
|
32
|
-
),
|
|
27
|
+
AbstractImage.createLine(AbstractImage.createPoint(25, 25), AbstractImage.createPoint(80, 60), AbstractImage.black, 2),
|
|
33
28
|
AbstractImage.createRectangle(
|
|
34
29
|
AbstractImage.createPoint(10, 50),
|
|
35
30
|
AbstractImage.createPoint(40, 80),
|
|
@@ -67,7 +62,7 @@ export function AbstractImageExample() {
|
|
|
67
62
|
[version-url]: https://www.npmjs.com/package/abstract-image
|
|
68
63
|
[license-image]: https://img.shields.io/github/license/dividab/abstract-visuals.svg?style=flat
|
|
69
64
|
[license-url]: https://opensource.org/licenses/MIT
|
|
70
|
-
[
|
|
71
|
-
[
|
|
65
|
+
[oxfmt-image]: https://img.shields.io/badge/code_style-oxfmt-ff69b4.svg?style=flat
|
|
66
|
+
[oxfmt-url]: https://oxc.rs/docs/guide/usage/formatter.html
|
|
72
67
|
|
|
73
68
|
dummy
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
1
|
import type { Meta } from "@storybook/react";
|
|
3
|
-
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export declare function ReactSvgExportExample1(): React.ReactElement<object>;
|
|
4
4
|
declare const _default: Meta;
|
|
5
5
|
export default _default;
|
|
6
6
|
//# sourceMappingURL=example-1.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-1.stories.d.ts","sourceRoot":"","sources":["../../../src/__stories__/react-svg-export/example-1.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"example-1.stories.d.ts","sourceRoot":"","sources":["../../../src/__stories__/react-svg-export/example-1.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,wBAAgB,sBAAsB,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAiCnE;wBAKI,IAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-1.stories.js","sourceRoot":"","sources":["../../../src/__stories__/react-svg-export/example-1.stories.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"example-1.stories.js","sourceRoot":"","sources":["../../../src/__stories__/react-svg-export/example-1.stories.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAEhD,MAAM,UAAU,sBAAsB;IACpC,MAAM,UAAU,GAAG;QACjB,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;QACxH,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;QACxH,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EACnC,iBAAiB,EACjB,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,QAAQ,EACR,CAAC,EACD,QAAQ,EACR,SAAS,EACT,MAAM,EACN,CAAC,EACD,aAAa,CAAC,KAAK,EACnB,KAAK,CACN;KACF,CAAC;IACF,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAC7C,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAClC,aAAa,CAAC,KAAK,EACnB,UAAU,CACX,CAAC;IACF,MAAM,GAAG,GAAG,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC;IACrD,OAAO,CACL,0BACE,qCAAkB,EAClB,wBAAM,GAAG,GAAO,IACZ,CACP,CAAC;AACJ,CAAC;AAED,eAAe;IACb,SAAS,EAAE,sBAAsB;IACjC,KAAK,EAAE,wBAAwB;CACxB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
1
|
import type { Meta } from "@storybook/react";
|
|
3
|
-
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export declare function SvgExportExample1(): React.ReactElement<object>;
|
|
4
4
|
declare const _default: Meta;
|
|
5
5
|
export default _default;
|
|
6
6
|
//# sourceMappingURL=example-1.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-1.stories.d.ts","sourceRoot":"","sources":["../../../src/__stories__/svg-export/example-1.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"example-1.stories.d.ts","sourceRoot":"","sources":["../../../src/__stories__/svg-export/example-1.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,wBAAgB,iBAAiB,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAoB9D;wBAKI,IAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-1.stories.js","sourceRoot":"","sources":["../../../src/__stories__/svg-export/example-1.stories.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"example-1.stories.js","sourceRoot":"","sources":["../../../src/__stories__/svg-export/example-1.stories.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAEhD,MAAM,UAAU,iBAAiB;IAC/B,MAAM,UAAU,GAAG;QACjB,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;QACtH,aAAa,CAAC,eAAe,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC;KAC9I,CAAC;IACF,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAC7C,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAClC,aAAa,CAAC,KAAK,EACnB,UAAU,CACX,CAAC;IACF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,CACL,0BACE,+BAAY,EACZ,wBAAM,GAAG,GAAO,EAChB,cAAK,GAAG,EAAE,6BAA6B,MAAM,EAAE,GAAI,IAC/C,CACP,CAAC;AACJ,CAAC;AAED,eAAe;IACb,SAAS,EAAE,iBAAiB;IAC5B,KAAK,EAAE,mBAAmB;CACnB,CAAC"}
|
|
@@ -4,8 +4,7 @@ export interface ChildrenProp {
|
|
|
4
4
|
readonly children?: Child;
|
|
5
5
|
}
|
|
6
6
|
export type Child = React.JSX.Element | Children;
|
|
7
|
-
export
|
|
8
|
-
}
|
|
7
|
+
export type Children = ReadonlyArray<Child>;
|
|
9
8
|
export declare const Group: (props: GroupComponent) => GroupComponent;
|
|
10
9
|
export declare const BinaryImage: (props: BinaryImageComponent) => BinaryImageComponent;
|
|
11
10
|
export declare const Ellipse: (props: EllipseComponent) => EllipseComponent;
|
|
@@ -15,5 +14,5 @@ export declare const Polygon: (props: PolygonComponent) => PolygonComponent;
|
|
|
15
14
|
export declare const Rectangle: (props: RectangleComponent) => RectangleComponent;
|
|
16
15
|
export declare const Text: (props: TextComponent) => TextComponent;
|
|
17
16
|
export declare const SubImage: (props: SubImageComponent) => SubImageComponent;
|
|
18
|
-
export declare function render(element:
|
|
17
|
+
export declare function render(element: unknown): unknown;
|
|
19
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abstract-image-jsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abstract-image-jsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EACV,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,EAC9B,MAAM,uBAAuB,CAAC;AAa/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,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAE5C,eAAO,MAAM,KAAK,UAAW,cAAc,KAAG,cAAyD,CAAC;AACxG,eAAO,MAAM,WAAW,UAAW,oBAAoB,KAAG,oBAC+B,CAAC;AAC1F,eAAO,MAAM,OAAO,UAAW,gBAAgB,KAAG,gBAC2F,CAAC;AAC9I,eAAO,MAAM,IAAI,UAAW,aAAa,KAAG,aACmE,CAAC;AAChH,eAAO,MAAM,QAAQ,UAAW,iBAAiB,KAAG,iBACqD,CAAC;AAC1G,eAAO,MAAM,OAAO,UAAW,gBAAgB,KAAG,gBACuE,CAAC;AAC1H,eAAO,MAAM,SAAS,UAAW,kBAAkB,KAAG,kBAUnD,CAAC;AACJ,eAAO,MAAM,IAAI,UAAW,aAAa,KAAG,aAgBzC,CAAC;AACJ,eAAO,MAAM,QAAQ,UAAW,iBAAiB,KAAG,iBAA2E,CAAC;AAShI,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAQhD"}
|
|
@@ -9,25 +9,28 @@ export const Rectangle = (props) => createRectangle(props.topLeft, props.bottomR
|
|
|
9
9
|
export const Text = (props) => 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);
|
|
10
10
|
export const SubImage = (props) => createSubImage(props.topLeft, props.size, props.image);
|
|
11
11
|
export function render(element) {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
const el = element;
|
|
13
|
+
if (typeof el.type !== "function") {
|
|
14
|
+
return el;
|
|
14
15
|
}
|
|
15
|
-
const props =
|
|
16
|
-
const children = renderChildren(
|
|
17
|
-
return
|
|
16
|
+
const props = el.props ?? {};
|
|
17
|
+
const children = renderChildren(el);
|
|
18
|
+
return el.type({ ...props, children });
|
|
18
19
|
}
|
|
19
20
|
function renderChildren(element) {
|
|
20
|
-
if (!element.props
|
|
21
|
+
if (!element.props?.children) {
|
|
21
22
|
return [];
|
|
22
23
|
}
|
|
23
24
|
if (element.props.type === "group") {
|
|
24
25
|
const children = element.props.children;
|
|
25
26
|
if (Array.isArray(children)) {
|
|
26
27
|
return children.flatMap((c) => {
|
|
27
|
-
if (!c)
|
|
28
|
+
if (!c) {
|
|
28
29
|
return [];
|
|
29
|
-
|
|
30
|
+
}
|
|
31
|
+
if (Array.isArray(c)) {
|
|
30
32
|
return c.map(render);
|
|
33
|
+
}
|
|
31
34
|
return render(c);
|
|
32
35
|
});
|
|
33
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/abstract-image-jsx/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/abstract-image-jsx/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const createComponents: (mutableImageUrls: Array<string>) => Record<string, (...args: any
|
|
1
|
+
export declare const createComponents: (mutableImageUrls: Array<string>) => Record<string, (...args: Array<any>) => any>;
|
|
2
2
|
//# sourceMappingURL=components.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/dynamic-image/components.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/dynamic-image/components.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,gBAAgB,qBAAsB,KAAK,CAAC,MAAM,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAgG5G,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { black, createBinaryImage, createEllipse, createGroup, createLine, createPolygon, createPolyLine, createRectangle, createText, fromString2, solidLine, transparent, white, } from "../model/index.js";
|
|
2
|
+
// oxlint-disable-next-line typescript/no-explicit-any -- component functions receive arbitrary JSX-like template props (jsxpression's own Component type is likewise untyped); typing props precisely would require rewriting every component body
|
|
2
3
|
export const createComponents = (mutableImageUrls) => ({
|
|
3
4
|
AbstractImage: (props) => ({
|
|
4
5
|
topLeft: { x: 0, y: 0 },
|
|
@@ -45,9 +46,7 @@ export const createComponents = (mutableImageUrls) => ({
|
|
|
45
46
|
Text: (props) => {
|
|
46
47
|
const fontWeight = mapFontWeight(props.fontWeight);
|
|
47
48
|
const children = props.children ?? [];
|
|
48
|
-
const filteredChildren = Array.isArray(children)
|
|
49
|
-
? children.flat().filter((c) => c !== null && c !== undefined)
|
|
50
|
-
: [];
|
|
49
|
+
const filteredChildren = Array.isArray(children) ? children.flat().filter((c) => c !== null && c !== undefined) : [];
|
|
51
50
|
const text = filteredChildren.length > 0 ? String(filteredChildren[0]) : "";
|
|
52
51
|
return createText({ x: props.x ?? 0, y: props.y ?? 0 }, text, props.fontFamily ?? "", props.fontSize ?? 12, fromString2(props.fill ?? "#000", black), fontWeight, 0, // clockwiseRotationDegrees
|
|
53
52
|
"left", // textAlignment
|
|
@@ -80,7 +79,7 @@ function mapFontWeight(weight) {
|
|
|
80
79
|
function parsePointsString(pointsString) {
|
|
81
80
|
return pointsString.split(" ").map((tuple) => {
|
|
82
81
|
const [xString, yString] = tuple.split(",");
|
|
83
|
-
return { x: Number(xString
|
|
82
|
+
return { x: Number(xString), y: Number(yString) };
|
|
84
83
|
});
|
|
85
84
|
}
|
|
86
85
|
//# sourceMappingURL=components.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/dynamic-image/components.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,EACL,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,UAAU,EACV,aAAa,EACb,cAAc,EACd,eAAe,EACf,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,KAAK,GACN,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,gBAA+B,
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/dynamic-image/components.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-image.d.ts","sourceRoot":"","sources":["../../src/dynamic-image/dynamic-image.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"dynamic-image.d.ts","sourceRoot":"","sources":["../../src/dynamic-image/dynamic-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,cAAc,EAAE,KAAK,cAAc,EAAe,MAAM,aAAa,CAAC;AAC9H,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAIhE,MAAM,MAAM,kBAAkB,GAC1B;IACE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC3C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACpC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAC1C,kBAAkB,CAsBpB;AAED,MAAM,MAAM,yBAAyB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAE7I,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC3C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAC9C,yBAAyB,CAiB3B;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,kBAAkB,CAsB5I"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { AnalysisError, evaluate, compile, render
|
|
1
|
+
import { AnalysisError, evaluate, compile, render } from "jsxpression";
|
|
2
2
|
import { createComponents } from "./components.js";
|
|
3
3
|
import { baseSchema } from "./schema.js";
|
|
4
|
-
export function dynamicImage(source, data, dataSchema,
|
|
5
|
-
// biome-ignore lint/complexity/noBannedTypes: It's needed.
|
|
6
|
-
functions, funcSchema) {
|
|
4
|
+
export function dynamicImage(source, data, dataSchema, functions, funcSchema) {
|
|
7
5
|
try {
|
|
8
6
|
const imageUrls = [];
|
|
9
7
|
const schema = dataSchema ? { ...baseSchema, data: dataSchema, functions: funcSchema } : baseSchema;
|
|
@@ -38,9 +36,7 @@ export function compileDynamicImage(source, dataSchema, functionSchema) {
|
|
|
38
36
|
error: {
|
|
39
37
|
type: "RENDER_ERROR",
|
|
40
38
|
message: error instanceof Error ? error.message : String(error),
|
|
41
|
-
issues: error instanceof AnalysisError
|
|
42
|
-
? error.report.issues.map((i) => ({ code: i.code, message: i.message }))
|
|
43
|
-
: undefined,
|
|
39
|
+
issues: error instanceof AnalysisError ? error.report.issues.map((i) => ({ code: i.code, message: i.message })) : undefined,
|
|
44
40
|
cause: error,
|
|
45
41
|
},
|
|
46
42
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-image.js","sourceRoot":"","sources":["../../src/dynamic-image/dynamic-image.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"dynamic-image.js","sourceRoot":"","sources":["../../src/dynamic-image/dynamic-image.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import type { PropertySchema } from "jsxpression";
|
|
2
|
+
export declare function generateDataSchema(data: Record<string, unknown>): Record<string, PropertySchema>;
|
|
2
3
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/dynamic-image/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/dynamic-image/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAQhG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/dynamic-image/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/dynamic-image/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,IAA6B;IAC9D,MAAM,MAAM,GAAmC,EAAE,CAAC;IAElD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO;YACL,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO;YACL,IAAI,EAAE,SAAS;SAChB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO;YACL,IAAI,EAAE,UAAU;SACjB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,UAAU,GAAmB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACzG,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,UAAU;SAClB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAmC,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,KAAK,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,KAAK;SACN,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { AbstractImage } from "../model/abstract-image.js";
|
|
|
2
2
|
import type { Optional } from "../model/shared.js";
|
|
3
3
|
export declare const DXF_STANDARD = "AC1015";
|
|
4
4
|
export declare const DXF_DATA_URL = "data:application/dxf,";
|
|
5
|
-
export declare const DXF_ENTITIES: string
|
|
5
|
+
export declare const DXF_ENTITIES: Array<string>;
|
|
6
6
|
export type DxfOptions = {
|
|
7
7
|
readonly imageDataByUrl: Record<string, `${typeof DXF_DATA_URL}${string}` | AbstractImage>;
|
|
8
8
|
readonly fillPolygons: boolean;
|
|
@@ -12,7 +12,8 @@ export type DxfOptions = {
|
|
|
12
12
|
export type DxfSpace = "*Model_Space" | "*Paper_Space";
|
|
13
13
|
export declare function dxf2dExportImageEncoded(root: AbstractImage, options?: Optional<DxfOptions>): Uint8Array;
|
|
14
14
|
/**
|
|
15
|
-
* @deprecated Use `dxf2dExportImageEncoded()` instead. Otherwise the text might not be correctly encoded in some
|
|
15
|
+
* @deprecated Use `dxf2dExportImageEncoded()` instead. Otherwise the text might not be correctly encoded in some
|
|
16
|
+
* languages.
|
|
16
17
|
*/
|
|
17
18
|
export declare function dxf2dExportImage(root: AbstractImage, options?: Optional<DxfOptions>): string;
|
|
18
19
|
//# sourceMappingURL=dxf2d-export-image.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dxf2d-export-image.d.ts","sourceRoot":"","sources":["../../src/exporters/dxf2d-export-image.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAIhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,eAAO,MAAM,YAAY,WAAW,CAAC;AACrC,eAAO,MAAM,YAAY,0BAA0B,CAAC;AACpD,eAAO,MAAM,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"dxf2d-export-image.d.ts","sourceRoot":"","sources":["../../src/exporters/dxf2d-export-image.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAIhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,eAAO,MAAM,YAAY,WAAW,CAAC;AACrC,eAAO,MAAM,YAAY,0BAA0B,CAAC;AACpD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,MAAM,CA6CtC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,YAAY,GAAG,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC;IAC3F,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,cAAc,CAAC;AAoBvD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAEvG;AAOD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CA0E5F"}
|
|
@@ -51,10 +51,12 @@ export function dxf2dExportImageEncoded(root, options) {
|
|
|
51
51
|
return encodeWindows1252(dxf2dExportImage(root, options));
|
|
52
52
|
}
|
|
53
53
|
function encodeWindows1252(str) {
|
|
54
|
+
// oxlint-disable-next-line no-bitwise
|
|
54
55
|
return Uint8Array.from(str, (c) => c.charCodeAt(0) & 0xff);
|
|
55
56
|
}
|
|
56
57
|
/**
|
|
57
|
-
* @deprecated Use `dxf2dExportImageEncoded()` instead. Otherwise the text might not be correctly encoded in some
|
|
58
|
+
* @deprecated Use `dxf2dExportImageEncoded()` instead. Otherwise the text might not be correctly encoded in some
|
|
59
|
+
* languages.
|
|
58
60
|
*/
|
|
59
61
|
export function dxf2dExportImage(root, options) {
|
|
60
62
|
const externalCache = new Map();
|
|
@@ -140,11 +142,7 @@ function componentDxf(c, layer, size, modelSpaceHandle, externalCache, options,
|
|
|
140
142
|
return [entities, blocks, blockRecords];
|
|
141
143
|
}
|
|
142
144
|
const imageData = options.imageDataByUrl[c.data.url];
|
|
143
|
-
const url = imageData === undefined
|
|
144
|
-
? c.data.url
|
|
145
|
-
: typeof imageData === "string"
|
|
146
|
-
? imageData
|
|
147
|
-
: DXF_DATA_URL + dxf2dExportImage(imageData, options);
|
|
145
|
+
const url = imageData === undefined ? c.data.url : typeof imageData === "string" ? imageData : DXF_DATA_URL + dxf2dExportImage(imageData, options);
|
|
148
146
|
if (url === undefined || typeof url !== "string" || !url.startsWith(DXF_DATA_URL)) {
|
|
149
147
|
return [entities, blocks, blockRecords];
|
|
150
148
|
}
|
|
@@ -173,9 +171,7 @@ function componentDxf(c, layer, size, modelSpaceHandle, externalCache, options,
|
|
|
173
171
|
}
|
|
174
172
|
const externalBlockRecords = extractBlockRecords(dxfString);
|
|
175
173
|
const newBlockRecordHandle = newHandle();
|
|
176
|
-
const newName = `EMBEDED_IMAGE_${randomID()}_${scale.x.toPrecision(4).replace(".", "_")}X${scale.y
|
|
177
|
-
.toPrecision(4)
|
|
178
|
-
.replace(".", "_")}`;
|
|
174
|
+
const newName = `EMBEDED_IMAGE_${randomID()}_${scale.x.toPrecision(4).replace(".", "_")}X${scale.y.toPrecision(4).replace(".", "_")}`;
|
|
179
175
|
const initOldHandlesMap = new Map();
|
|
180
176
|
for (const br of externalBlockRecords) {
|
|
181
177
|
if (br.name === "*Model_Space") {
|
|
@@ -275,8 +271,8 @@ function componentDxf(c, layer, size, modelSpaceHandle, externalCache, options,
|
|
|
275
271
|
entities += "10\n0\n20\n0\n30\n0\n";
|
|
276
272
|
entities += "70\n0\n";
|
|
277
273
|
if (options.useStrokeThickness) {
|
|
278
|
-
entities += "40\n" +
|
|
279
|
-
entities += "41\n" +
|
|
274
|
+
entities += "40\n" + c.strokeThickness + "\n";
|
|
275
|
+
entities += "41\n" + c.strokeThickness + "\n";
|
|
280
276
|
}
|
|
281
277
|
const points = [
|
|
282
278
|
{ x: c.start.x, y: invert(c.start.y, size.height) },
|
|
@@ -318,8 +314,8 @@ function componentDxf(c, layer, size, modelSpaceHandle, externalCache, options,
|
|
|
318
314
|
entities += "10\n0\n20\n0\n30\n0\n";
|
|
319
315
|
entities += "70\n0\n";
|
|
320
316
|
if (options.useStrokeThickness) {
|
|
321
|
-
entities += "40\n" +
|
|
322
|
-
entities += "41\n" +
|
|
317
|
+
entities += "40\n" + c.strokeThickness + "\n";
|
|
318
|
+
entities += "41\n" + c.strokeThickness + "\n";
|
|
323
319
|
}
|
|
324
320
|
for (const point of c.points) {
|
|
325
321
|
entities += "0\nVERTEX\n";
|
|
@@ -464,9 +460,7 @@ function extractEntities(dxf) {
|
|
|
464
460
|
return dxf.slice(from, end).trim();
|
|
465
461
|
}
|
|
466
462
|
function extractBlockRecords(dxf) {
|
|
467
|
-
return [
|
|
468
|
-
...dxf.matchAll(/^\s*0\s*\n\s*BLOCK_RECORD[\s\S]*?\n\s*5\s*\n\s*([0-9A-Fa-f]+)[\s\S]*?\n\s*2\s*\n\s*([^\r\n]+)/gm),
|
|
469
|
-
].map((match) => ({
|
|
463
|
+
return [...dxf.matchAll(/^\s*0\s*\n\s*BLOCK_RECORD[\s\S]*?\n\s*5\s*\n\s*([0-9A-Fa-f]+)[\s\S]*?\n\s*2\s*\n\s*([^\r\n]+)/gm)].map((match) => ({
|
|
470
464
|
name: match[2],
|
|
471
465
|
id: match[1],
|
|
472
466
|
}));
|
|
@@ -560,9 +554,6 @@ function scaleDxf(dxfString, sx, sy, _height) {
|
|
|
560
554
|
currentAcDbEntity = valueLine;
|
|
561
555
|
}
|
|
562
556
|
scaledLines.push(codeLine);
|
|
563
|
-
if (valueLine === undefined) {
|
|
564
|
-
continue;
|
|
565
|
-
}
|
|
566
557
|
const code = parseInt(codeLine.trim(), 10);
|
|
567
558
|
let value = valueLine;
|
|
568
559
|
switch (true) {
|
|
@@ -927,8 +918,7 @@ function createObjects(modelSpaceHandle, paperSpaceHandle, root, newHandle) {
|
|
|
927
918
|
objects += "0\nLAYOUT\n5\n" + layoutModelId + "\n102\n{ACAD_REACTORS\n330\n" + layoutDictId + "\n102\n}\n";
|
|
928
919
|
objects += "330\n" + layoutDictId + "\n100\nAcDbPlotSettings\n1\n\n2\nnone_device\n4\n\n6\n\n";
|
|
929
920
|
objects += "40\n0.0\n41\n0.0\n42\n0.0\n43\n0.0\n44\n0.0\n45\n0.0\n46\n0.0\n47\n0.0\n48\n0.0\n49\n0.0\n";
|
|
930
|
-
objects +=
|
|
931
|
-
"140\n0.0\n141\n0.0\n142\n1.0\n143\n1.0\n70\n1712\n72\n0\n73\n0\n74\n0\n7\n\n75\n0\n147\n1.0\n148\n0.0\n149\n0.0\n";
|
|
921
|
+
objects += "140\n0.0\n141\n0.0\n142\n1.0\n143\n1.0\n70\n1712\n72\n0\n73\n0\n74\n0\n7\n\n75\n0\n147\n1.0\n148\n0.0\n149\n0.0\n";
|
|
932
922
|
objects += "100\nAcDbLayout\n1\nModel\n70\n1\n71\n0\n";
|
|
933
923
|
objects += "10\n0.0\n20\n0.0\n11\n" + root.size.width + "\n21\n" + root.size.height + "\n";
|
|
934
924
|
objects += "12\n0.0\n22\n0.0\n32\n0.0\n14\n0.0\n24\n0.0\n34\n0.0\n";
|
|
@@ -939,8 +929,7 @@ function createObjects(modelSpaceHandle, paperSpaceHandle, root, newHandle) {
|
|
|
939
929
|
objects += "0\nLAYOUT\n5\n" + layoutPaperId + "\n102\n{ACAD_REACTORS\n330\n" + layoutDictId + "\n102\n}\n";
|
|
940
930
|
objects += "330\n" + layoutDictId + "\n100\nAcDbPlotSettings\n1\n\n2\nnone_device\n4\n\n6\n\n";
|
|
941
931
|
objects += "40\n0.0\n41\n0.0\n42\n0.0\n43\n0.0\n44\n0.0\n45\n0.0\n46\n0.0\n47\n0.0\n48\n0.0\n49\n0.0\n";
|
|
942
|
-
objects +=
|
|
943
|
-
"140\n0.0\n141\n0.0\n142\n1.0\n143\n1.0\n70\n688\n72\n0\n73\n0\n74\n5\n7\n\n75\n16\n147\n1.0\n148\n0.0\n149\n0.0\n";
|
|
932
|
+
objects += "140\n0.0\n141\n0.0\n142\n1.0\n143\n1.0\n70\n688\n72\n0\n73\n0\n74\n5\n7\n\n75\n16\n147\n1.0\n148\n0.0\n149\n0.0\n";
|
|
944
933
|
objects += "100\nAcDbLayout\n1\nLayout1\n70\n1\n71\n1\n";
|
|
945
934
|
objects += "10\n0.0\n20\n0.0\n11\n" + root.size.width + "\n21\n" + root.size.height + "\n";
|
|
946
935
|
objects += "12\n0.0\n22\n0.0\n32\n0.0\n14\n1.0E+20\n24\n1.0E+20\n34\n1.0E+20\n";
|
|
@@ -1018,7 +1007,7 @@ function createPolygon(modelSpaceHandle, layer, points, strokeColor, fillColor,
|
|
|
1018
1007
|
polygon += "5\n" + handle + "\n";
|
|
1019
1008
|
polygon += "330\n" + modelSpaceHandle + "\n";
|
|
1020
1009
|
polygon += "100\nAcDbEntity\n";
|
|
1021
|
-
polygon += "8\n" + layer
|
|
1010
|
+
polygon += "8\n" + layer + "\n";
|
|
1022
1011
|
if (options.useColor && !isBlack(strokeColor)) {
|
|
1023
1012
|
polygon += "60\n0\n";
|
|
1024
1013
|
polygon += "62\n256\n";
|
|
@@ -1037,7 +1026,7 @@ function createPolygon(modelSpaceHandle, layer, points, strokeColor, fillColor,
|
|
|
1037
1026
|
polygon += "5\n" + newHandle() + "\n";
|
|
1038
1027
|
polygon += "330\n" + handle + "\n";
|
|
1039
1028
|
polygon += "100\nAcDbEntity\n";
|
|
1040
|
-
polygon += "8\n" + layer
|
|
1029
|
+
polygon += "8\n" + layer + "\n";
|
|
1041
1030
|
polygon += "100\nAcDbVertex\n";
|
|
1042
1031
|
polygon += "100\nAcDb2dVertex\n";
|
|
1043
1032
|
polygon += "70\n0\n";
|
|
@@ -1048,7 +1037,7 @@ function createPolygon(modelSpaceHandle, layer, points, strokeColor, fillColor,
|
|
|
1048
1037
|
polygon += "0\nSEQEND\n";
|
|
1049
1038
|
polygon += "5\n" + newHandle() + "\n";
|
|
1050
1039
|
polygon += "100\nAcDbEntity\n";
|
|
1051
|
-
polygon += "8\n" + layer
|
|
1040
|
+
polygon += "8\n" + layer + "\n";
|
|
1052
1041
|
polygon += "330\n" + handle + "\n";
|
|
1053
1042
|
return polygon;
|
|
1054
1043
|
}
|
|
@@ -1066,6 +1055,7 @@ function isBlack(color) {
|
|
|
1066
1055
|
return color.r === 0 && color.g === 0 && color.b === 0;
|
|
1067
1056
|
}
|
|
1068
1057
|
function colorToInteger(color) {
|
|
1058
|
+
// oxlint-disable-next-line no-bitwise
|
|
1069
1059
|
const colorAsInt = (color.r << 16) + (color.g << 8) + color.b;
|
|
1070
1060
|
if (Number.isNaN(colorAsInt)) {
|
|
1071
1061
|
return 0;
|