@nmmty/lazycanvas 0.5.3 → 0.6.0-dev.1a1f37

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.
@@ -24,113 +24,79 @@ function isColor(v) {
24
24
  }
25
25
  exports.isColor = isColor;
26
26
  function parseToNormal(v, ctx, canvas, layer = { width: 0, height: 0 }, options = { vertical: false, layer: false }, manager) {
27
- if (typeof v === 'number') {
27
+ if (typeof v === 'number')
28
28
  return v;
29
- }
30
- else if (typeof v === 'string') {
29
+ if (typeof v === 'string') {
31
30
  if (percentReg.test(v)) {
32
- console.log(options, layer, canvas.width, canvas.height, parseFloat(v));
33
- return (parseFloat(v) / 100) * (options.layer ? (options.vertical ? layer.height : layer.width) : (options.vertical ? canvas.height : canvas.width));
31
+ const base = options.layer
32
+ ? options.vertical ? layer.height : layer.width
33
+ : options.vertical ? canvas.height : canvas.width;
34
+ return (parseFloat(v) / 100) * base;
34
35
  }
35
- else if (pxReg.test(v)) {
36
+ if (pxReg.test(v))
36
37
  return parseFloat(v);
37
- }
38
- else if (canvasReg.test(v)) {
39
- if (v === 'vw') {
40
- return (options.layer ? layer.width : canvas.width);
41
- }
42
- else if (v === 'vh') {
43
- return (options.layer ? layer.height : canvas.height);
44
- }
45
- else if (v === 'vmin') {
46
- return (options.layer ? Math.max(layer.width, layer.height) : Math.min(canvas.width, canvas.height));
47
- }
48
- else if (v === 'vmax') {
49
- return (options.layer ? Math.max(layer.width, layer.height) : Math.max(canvas.width, canvas.height));
38
+ if (canvasReg.test(v)) {
39
+ const base = options.layer ? layer : canvas;
40
+ switch (v) {
41
+ case 'vw': return base.width;
42
+ case 'vh': return base.height;
43
+ case 'vmin': return Math.min(base.width, base.height);
44
+ case 'vmax': return Math.max(base.width, base.height);
50
45
  }
51
46
  }
52
- else if (linkReg.test(v)) {
53
- let match = v.match(linkReg);
47
+ if (linkReg.test(v)) {
48
+ const match = v.match(linkReg);
54
49
  if (!manager)
55
50
  return 0;
56
- let anyLayer = manager.get(match[2], true);
51
+ const anyLayer = manager.get(match[2], true);
57
52
  if (!anyLayer || anyLayer instanceof components_1.Group || anyLayer instanceof components_1.Path2DLayer)
58
53
  return 0;
59
- const parcer = parser(ctx, canvas, manager);
54
+ const parserInstance = parser(ctx, canvas, manager);
55
+ const additionalSpacing = parseInt(match[3]) || 0;
60
56
  switch (match[1]) {
61
- case 'link-w':
62
- if (anyLayer instanceof components_1.LineLayer || anyLayer instanceof components_1.BezierLayer || anyLayer instanceof components_1.QuadraticLayer) {
63
- return anyLayer.getBoundingBox(ctx, canvas, manager).width + (parseInt(match[3]) || 0);
64
- }
65
- else if (anyLayer instanceof components_1.TextLayer) {
66
- return anyLayer.measureText(ctx, canvas).width + (parseInt(match[3]) || 0);
67
- }
68
- else {
69
- return (parcer.parse(anyLayer.props.size.width) || 0) + (parseInt(match[3]) || 0);
70
- }
71
- case 'link-h':
72
- if (anyLayer instanceof components_1.LineLayer || anyLayer instanceof components_1.BezierLayer || anyLayer instanceof components_1.QuadraticLayer) {
73
- return anyLayer.getBoundingBox(ctx, canvas, manager).height + (parseInt(match[3]) || 0);
74
- }
75
- else if (anyLayer instanceof components_1.TextLayer) {
76
- return anyLayer.measureText(ctx, canvas).height + (parseInt(match[3]) || 0);
77
- }
78
- else {
79
- return (parcer.parse(anyLayer.props.size.height, LazyUtil_1.defaultArg.wh(parcer.parse(anyLayer.props.size.width)), LazyUtil_1.defaultArg.vl(true)) || 0) + (parseInt(match[3]) || 0);
80
- }
81
- case 'link-x':
82
- return (parcer.parse(anyLayer.props.x) || 0) + (parseInt(match[3]) || 0);
83
- case 'link-y':
84
- return (parcer.parse(anyLayer.props.y, LazyUtil_1.defaultArg.wh(), LazyUtil_1.defaultArg.vl(true)) || 0) + (parseInt(match[3]) || 0);
57
+ case 'link-w': return getLayerWidth(anyLayer, ctx, canvas, manager, parserInstance) + additionalSpacing;
58
+ case 'link-h': return getLayerHeight(anyLayer, ctx, canvas, manager, parserInstance) + additionalSpacing;
59
+ case 'link-x': return parserInstance.parse(anyLayer.props.x) + additionalSpacing;
60
+ case 'link-y': return parserInstance.parse(anyLayer.props.y) + additionalSpacing;
85
61
  }
86
62
  }
87
63
  }
88
- else if (v instanceof helpers_1.Link) {
64
+ if (v instanceof helpers_1.Link) {
89
65
  if (!manager)
90
66
  return 0;
91
- let anyLayer = manager.get(v.source, true);
67
+ const anyLayer = manager.get(v.source, true);
92
68
  if (!anyLayer || anyLayer instanceof components_1.Group || anyLayer instanceof components_1.Path2DLayer)
93
69
  return 0;
94
- const parcer = parser(ctx, canvas, manager);
70
+ const parserInstance = parser(ctx, canvas, manager);
71
+ const additionalSpacing = parserInstance.parse(v.additionalSpacing, LazyUtil_1.defaultArg.wh(layer.width, layer.height), LazyUtil_1.defaultArg.vl(options.vertical, options.layer)) || 0;
95
72
  switch (v.type) {
96
- case types_1.LinkType.Width:
97
- case 'width':
98
- if (anyLayer instanceof components_1.LineLayer || anyLayer instanceof components_1.BezierLayer || anyLayer instanceof components_1.QuadraticLayer) {
99
- return anyLayer.getBoundingBox(ctx, canvas, manager).width + (parcer.parse(v.additionalSpacing, LazyUtil_1.defaultArg.wh(layer.width, layer.height), LazyUtil_1.defaultArg.vl(options.vertical, options.layer)) || 0);
100
- }
101
- else if (anyLayer instanceof components_1.TextLayer) {
102
- return anyLayer.measureText(ctx, canvas).width + (parcer.parse(v.additionalSpacing, LazyUtil_1.defaultArg.wh(layer.width, layer.height), LazyUtil_1.defaultArg.vl(options.vertical, options.layer)) || 0);
103
- }
104
- else {
105
- return (parcer.parse(anyLayer.props.size.width) || 0) + (parcer.parse(v.additionalSpacing, LazyUtil_1.defaultArg.wh(layer.width, layer.height), LazyUtil_1.defaultArg.vl(options.vertical, options.layer)) || 0);
106
- }
107
- case types_1.LinkType.Height:
108
- case 'height':
109
- if (anyLayer instanceof components_1.LineLayer || anyLayer instanceof components_1.BezierLayer || anyLayer instanceof components_1.QuadraticLayer) {
110
- return anyLayer.getBoundingBox(ctx, canvas, manager).height + (parcer.parse(v.additionalSpacing, LazyUtil_1.defaultArg.wh(layer.width, layer.height), LazyUtil_1.defaultArg.vl(options.vertical, options.layer)) || 0);
111
- }
112
- else if (anyLayer instanceof components_1.TextLayer) {
113
- return anyLayer.measureText(ctx, canvas).height + (parcer.parse(v.additionalSpacing, LazyUtil_1.defaultArg.wh(layer.width, layer.height), LazyUtil_1.defaultArg.vl(options.vertical, options.layer)) || 0);
114
- }
115
- else {
116
- return (parcer.parse(anyLayer.props.size.height, LazyUtil_1.defaultArg.wh(parcer.parse(anyLayer.props.size.width)), LazyUtil_1.defaultArg.vl(true)) || 0) + (parcer.parse(v.additionalSpacing, LazyUtil_1.defaultArg.wh(layer.width, layer.height), LazyUtil_1.defaultArg.vl(options.vertical, options.layer)) || 0);
117
- }
118
- case types_1.LinkType.X:
119
- case 'x':
120
- return (parcer.parse(anyLayer.props.x) || 0) + (parcer.parse(v.additionalSpacing, LazyUtil_1.defaultArg.wh(layer.width, layer.height), LazyUtil_1.defaultArg.vl(options.vertical, options.layer)) || 0);
121
- case types_1.LinkType.Y:
122
- case 'y':
123
- return (parcer.parse(anyLayer.props.y) || 0) + (parcer.parse(v.additionalSpacing, LazyUtil_1.defaultArg.wh(layer.width, layer.height), LazyUtil_1.defaultArg.vl(options.vertical, options.layer)) || 0);
124
- default:
125
- return 0;
73
+ case types_1.LinkType.Width: return getLayerWidth(anyLayer, ctx, canvas, manager, parserInstance) + additionalSpacing;
74
+ case types_1.LinkType.Height: return getLayerHeight(anyLayer, ctx, canvas, manager, parserInstance) + additionalSpacing;
75
+ case types_1.LinkType.X: return parserInstance.parse(anyLayer.props.x) + additionalSpacing;
76
+ case types_1.LinkType.Y: return parserInstance.parse(anyLayer.props.y) + additionalSpacing;
126
77
  }
127
78
  }
128
- else {
129
- return 0;
130
- }
131
79
  return 0;
132
80
  }
133
81
  exports.parseToNormal = parseToNormal;
82
+ function getLayerWidth(anyLayer, ctx, canvas, manager, parserInstance) {
83
+ if (anyLayer instanceof components_1.LineLayer || anyLayer instanceof components_1.BezierLayer || anyLayer instanceof components_1.QuadraticLayer) {
84
+ return anyLayer.getBoundingBox(ctx, canvas, manager).width;
85
+ }
86
+ if (anyLayer instanceof components_1.TextLayer) {
87
+ return anyLayer.measureText(ctx, canvas).width;
88
+ }
89
+ return anyLayer instanceof components_1.Path2DLayer ? 0 : parserInstance.parse(anyLayer.props.size.width) || 0;
90
+ }
91
+ function getLayerHeight(anyLayer, ctx, canvas, manager, parserInstance) {
92
+ if (anyLayer instanceof components_1.LineLayer || anyLayer instanceof components_1.BezierLayer || anyLayer instanceof components_1.QuadraticLayer) {
93
+ return anyLayer.getBoundingBox(ctx, canvas, manager).height;
94
+ }
95
+ if (anyLayer instanceof components_1.TextLayer) {
96
+ return anyLayer.measureText(ctx, canvas).height;
97
+ }
98
+ return anyLayer instanceof components_1.Path2DLayer ? 0 : parserInstance.parse(anyLayer.props.size.height) || 0;
99
+ }
134
100
  function parser(ctx, canvas, manager) {
135
101
  return {
136
102
  parse(v, layer = LazyUtil_1.defaultArg.wh(), options = LazyUtil_1.defaultArg.vl()) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nmmty/lazycanvas",
3
- "version": "0.5.3",
3
+ "version": "0.6.0-dev.1a1f37",
4
4
  "description": "A simple way to interact with @napi-rs/canvas in an advanced way!",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -11,6 +11,7 @@
11
11
  "text": "tsc ./test/text.ts && node ./test/text.js",
12
12
  "animation": "tsc ./test/animation.ts && node ./test/animation.js",
13
13
  "iotest": "tsc ./test/iotest.ts && node ./test/iotest.js",
14
+ "gradient": "tsc ./test/gradient.ts && node ./test/gradient.js",
14
15
  "doc": "tsx docgen.ts",
15
16
  "font": "tsc ./scripts/font-gen.ts && node ./scripts/font-gen.js",
16
17
  "build": "tsc"
@@ -33,7 +34,7 @@
33
34
  },
34
35
  "homepage": "https://github.com/NMMTY/LazyCanvas#readme",
35
36
  "dependencies": {
36
- "@napi-rs/canvas": "^0.1.68",
37
+ "@napi-rs/canvas": "^0.1.72",
37
38
  "gifenc": "^1.0.3",
38
39
  "js-yaml": "^4.1.0",
39
40
  "path": "^0.12.7",
package/animation.gif DELETED
Binary file
package/test.png DELETED
Binary file