@wcardinal/wcardinal-ui 0.443.0 → 0.445.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/types/wcardinal/ui/util/index.d.ts +1 -0
- package/dist/types/wcardinal/ui/util/util-extract.d.ts +13 -2
- package/dist/types/wcardinal/ui/util/util-extractor-canvas.d.ts +18 -0
- package/dist/types/wcardinal/ui/util/util-extractor.d.ts +3 -2
- package/dist/wcardinal/ui/shape/variant/e-shape-base.js +1 -0
- package/dist/wcardinal/ui/shape/variant/e-shape-base.js.map +1 -1
- package/dist/wcardinal/ui/util/index.js +1 -0
- package/dist/wcardinal/ui/util/index.js.map +1 -1
- package/dist/wcardinal/ui/util/util-extract.js +34 -10
- package/dist/wcardinal/ui/util/util-extract.js.map +1 -1
- package/dist/wcardinal/ui/util/util-extractor-canvas.js +110 -0
- package/dist/wcardinal/ui/util/util-extractor-canvas.js.map +1 -0
- package/dist/wcardinal/ui/util/util-extractor.js +45 -20
- package/dist/wcardinal/ui/util/util-extractor.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark.js +1 -1
- package/dist/wcardinal-ui-theme-dark.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
- package/dist/wcardinal-ui-theme-white.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +188 -30
- package/dist/wcardinal-ui.js +188 -30
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
var UtilExtractorCanvas = /** @class */ (function () {
|
|
2
|
+
function UtilExtractorCanvas(width, height) {
|
|
3
|
+
var element = document.createElement("canvas");
|
|
4
|
+
this._element = element;
|
|
5
|
+
var context = this._element.getContext("2d", {
|
|
6
|
+
willReadFrequently: true
|
|
7
|
+
});
|
|
8
|
+
this._context = context;
|
|
9
|
+
element.width = width;
|
|
10
|
+
element.height = height;
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "element", {
|
|
13
|
+
get: function () {
|
|
14
|
+
var result = this._element;
|
|
15
|
+
if (result != null) {
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
18
|
+
throw new Error("No Element Available");
|
|
19
|
+
},
|
|
20
|
+
enumerable: false,
|
|
21
|
+
configurable: true
|
|
22
|
+
});
|
|
23
|
+
UtilExtractorCanvas.prototype.getElement = function () {
|
|
24
|
+
return this._element;
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "canvas", {
|
|
27
|
+
get: function () {
|
|
28
|
+
return this.element;
|
|
29
|
+
},
|
|
30
|
+
enumerable: false,
|
|
31
|
+
configurable: true
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "context", {
|
|
34
|
+
get: function () {
|
|
35
|
+
var result = this._context;
|
|
36
|
+
if (result != null) {
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
throw new Error("No Context Available");
|
|
40
|
+
},
|
|
41
|
+
enumerable: false,
|
|
42
|
+
configurable: true
|
|
43
|
+
});
|
|
44
|
+
UtilExtractorCanvas.prototype.getContext = function () {
|
|
45
|
+
return this._context;
|
|
46
|
+
};
|
|
47
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "resolution", {
|
|
48
|
+
get: function () {
|
|
49
|
+
return 1;
|
|
50
|
+
},
|
|
51
|
+
enumerable: false,
|
|
52
|
+
configurable: true
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "width", {
|
|
55
|
+
get: function () {
|
|
56
|
+
var element = this._element;
|
|
57
|
+
if (element != null) {
|
|
58
|
+
return element.width;
|
|
59
|
+
}
|
|
60
|
+
return 0;
|
|
61
|
+
},
|
|
62
|
+
set: function (width) {
|
|
63
|
+
var element = this._element;
|
|
64
|
+
if (element != null) {
|
|
65
|
+
element.width = width;
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
enumerable: false,
|
|
69
|
+
configurable: true
|
|
70
|
+
});
|
|
71
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "height", {
|
|
72
|
+
get: function () {
|
|
73
|
+
var element = this._element;
|
|
74
|
+
if (element != null) {
|
|
75
|
+
return element.height;
|
|
76
|
+
}
|
|
77
|
+
return 0;
|
|
78
|
+
},
|
|
79
|
+
set: function (height) {
|
|
80
|
+
var element = this._element;
|
|
81
|
+
if (element != null) {
|
|
82
|
+
element.height = height;
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
enumerable: false,
|
|
86
|
+
configurable: true
|
|
87
|
+
});
|
|
88
|
+
UtilExtractorCanvas.prototype.clear = function () {
|
|
89
|
+
var element = this._element;
|
|
90
|
+
var context = this._context;
|
|
91
|
+
if (element != null && context != null) {
|
|
92
|
+
context.setTransform(1, 0, 0, 1, 0, 0);
|
|
93
|
+
context.clearRect(0, 0, element.width, element.height);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
UtilExtractorCanvas.prototype.resize = function (width, height) {
|
|
97
|
+
var element = this._element;
|
|
98
|
+
if (element != null) {
|
|
99
|
+
element.width = width;
|
|
100
|
+
element.height = height;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
UtilExtractorCanvas.prototype.destroy = function () {
|
|
104
|
+
this._context = null;
|
|
105
|
+
this._element = null;
|
|
106
|
+
};
|
|
107
|
+
return UtilExtractorCanvas;
|
|
108
|
+
}());
|
|
109
|
+
export { UtilExtractorCanvas };
|
|
110
|
+
//# sourceMappingURL=util-extractor-canvas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util-extractor-canvas.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-extractor-canvas.ts"],"names":[],"mappings":"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","sourcesContent":["export class UtilExtractorCanvas {\n\tprotected _element: HTMLCanvasElement | null;\n\tprotected _context: CanvasRenderingContext2D | null;\n\n\tconstructor(width: number, height: number) {\n\t\tconst element = document.createElement(\"canvas\");\n\t\tthis._element = element;\n\t\tconst context = this._element.getContext(\"2d\", {\n\t\t\twillReadFrequently: true\n\t\t});\n\t\tthis._context = context;\n\t\telement.width = width;\n\t\telement.height = height;\n\t}\n\n\tget element(): HTMLCanvasElement {\n\t\tconst result = this._element;\n\t\tif (result != null) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new Error(\"No Element Available\");\n\t}\n\n\tgetElement(): HTMLCanvasElement | null {\n\t\treturn this._element;\n\t}\n\n\tget canvas(): HTMLCanvasElement {\n\t\treturn this.element;\n\t}\n\n\tget context(): CanvasRenderingContext2D {\n\t\tconst result = this._context;\n\t\tif (result != null) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new Error(\"No Context Available\");\n\t}\n\n\tgetContext(): CanvasRenderingContext2D | null {\n\t\treturn this._context;\n\t}\n\n\tget resolution(): number {\n\t\treturn 1;\n\t}\n\n\tget width(): number {\n\t\tconst element = this._element;\n\t\tif (element != null) {\n\t\t\treturn element.width;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tset width(width: number) {\n\t\tconst element = this._element;\n\t\tif (element != null) {\n\t\t\telement.width = width;\n\t\t}\n\t}\n\n\tget height(): number {\n\t\tconst element = this._element;\n\t\tif (element != null) {\n\t\t\treturn element.height;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tset height(height: number) {\n\t\tconst element = this._element;\n\t\tif (element != null) {\n\t\t\telement.height = height;\n\t\t}\n\t}\n\n\tclear(): void {\n\t\tconst element = this._element;\n\t\tconst context = this._context;\n\t\tif (element != null && context != null) {\n\t\t\tcontext.setTransform(1, 0, 0, 1, 0, 0);\n\t\t\tcontext.clearRect(0, 0, element.width, element.height);\n\t\t}\n\t}\n\n\tresize(width: number, height: number): void {\n\t\tconst element = this._element;\n\t\tif (element != null) {\n\t\t\telement.width = width;\n\t\t\telement.height = height;\n\t\t}\n\t}\n\n\tdestroy(): void {\n\t\tthis._context = null;\n\t\tthis._element = null;\n\t}\n}\n"]}
|
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
* Copyright (C) 2019 Toshiba Corporation
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import { Extract, Matrix, RenderTexture, SCALE_MODES
|
|
5
|
+
import { Extract, Matrix, RenderTexture, SCALE_MODES } from "pixi.js";
|
|
6
6
|
import { DApplications } from "../d-applications";
|
|
7
|
+
import { UtilExtractorCanvas } from "./util-extractor-canvas";
|
|
7
8
|
var UtilExtractor = /** @class */ (function () {
|
|
8
9
|
function UtilExtractor() {
|
|
9
10
|
}
|
|
10
11
|
UtilExtractor.toTexture = function (target, resolution, clear, skipUpdateTransform) {
|
|
11
12
|
var scale = target.transform.scale;
|
|
13
|
+
var width = Math.max(1, Math.ceil(target.width * scale.x));
|
|
14
|
+
var height = Math.max(1, Math.ceil(target.height * scale.y));
|
|
12
15
|
var result = RenderTexture.create({
|
|
13
|
-
width:
|
|
14
|
-
height:
|
|
16
|
+
width: width,
|
|
17
|
+
height: height,
|
|
15
18
|
scaleMode: SCALE_MODES.LINEAR,
|
|
16
19
|
resolution: resolution
|
|
17
20
|
});
|
|
@@ -23,46 +26,68 @@ var UtilExtractor = /** @class */ (function () {
|
|
|
23
26
|
return result;
|
|
24
27
|
};
|
|
25
28
|
UtilExtractor.toPixels = function (renderTexture, renderer) {
|
|
29
|
+
var baseTexture = renderTexture.baseTexture;
|
|
30
|
+
var realWidth = baseTexture.realWidth;
|
|
31
|
+
var realHeight = baseTexture.realHeight;
|
|
26
32
|
var resolution = renderTexture.resolution;
|
|
27
33
|
var frame = renderTexture.frame;
|
|
28
|
-
var
|
|
29
|
-
var
|
|
34
|
+
var x0 = Math.floor(frame.x * resolution);
|
|
35
|
+
var y0 = Math.floor(frame.y * resolution);
|
|
36
|
+
var x1 = Math.floor((frame.x + frame.width) * resolution);
|
|
37
|
+
var y1 = Math.floor((frame.y + frame.height) * resolution);
|
|
38
|
+
var width = Math.min(x1 - x0, realWidth);
|
|
39
|
+
var height = Math.min(y1 - y0, realHeight);
|
|
30
40
|
var pixels = new Uint8Array(4 * width * height);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
41
|
+
if (0 < width && 0 < height) {
|
|
42
|
+
var oldRenderTexture = renderer.renderTexture.current;
|
|
43
|
+
renderer.renderTexture.bind(renderTexture);
|
|
44
|
+
var gl = renderer.gl;
|
|
45
|
+
gl.readPixels(x0, y0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
|
|
46
|
+
renderer.renderTexture.bind(oldRenderTexture);
|
|
47
|
+
}
|
|
36
48
|
return {
|
|
37
49
|
width: width,
|
|
38
50
|
height: height,
|
|
39
51
|
array: pixels
|
|
40
52
|
};
|
|
41
53
|
};
|
|
42
|
-
UtilExtractor.toCanvas = function (pixels, scale, ignorePremutipliedAlpha) {
|
|
54
|
+
UtilExtractor.toCanvas = function (pixels, scale, ignorePremutipliedAlpha, result) {
|
|
43
55
|
var width = pixels.width;
|
|
44
56
|
var height = pixels.height;
|
|
45
57
|
var array = pixels.array;
|
|
46
|
-
|
|
47
|
-
|
|
58
|
+
if (result == null) {
|
|
59
|
+
result = new UtilExtractorCanvas(width, height);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
result.resize(width, height);
|
|
63
|
+
}
|
|
64
|
+
if (width <= 0 || height <= 0) {
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
var context = result.getContext();
|
|
68
|
+
var element = result.getElement();
|
|
69
|
+
if (context == null || element == null) {
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
var imageData = context.getImageData(0, 0, width, height);
|
|
48
73
|
if (ignorePremutipliedAlpha) {
|
|
49
74
|
imageData.data.set(array);
|
|
50
75
|
}
|
|
51
76
|
else {
|
|
52
77
|
Extract.arrayPostDivide(array, imageData.data);
|
|
53
78
|
}
|
|
54
|
-
|
|
79
|
+
context.putImageData(imageData, 0, 0);
|
|
55
80
|
// Scale down
|
|
56
81
|
if (scale != null && scale !== 1) {
|
|
57
|
-
|
|
58
|
-
|
|
82
|
+
context.scale(scale, scale);
|
|
83
|
+
context.drawImage(element, 0, 0);
|
|
59
84
|
var scaledWidth = Math.floor(width * scale);
|
|
60
85
|
var scaledHeight = Math.floor(height * scale);
|
|
61
|
-
var scaledImageData =
|
|
62
|
-
|
|
63
|
-
|
|
86
|
+
var scaledImageData = context.getImageData(0, 0, scaledWidth, scaledHeight);
|
|
87
|
+
result.resize(scaledWidth, scaledHeight);
|
|
88
|
+
context.putImageData(scaledImageData, 0, 0);
|
|
64
89
|
}
|
|
65
|
-
return
|
|
90
|
+
return result;
|
|
66
91
|
};
|
|
67
92
|
UtilExtractor.toBase64 = function (canvas, format, quality) {
|
|
68
93
|
return canvas.toDataURL(format, quality);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util-extractor.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAY,aAAa,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"util-extractor.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-extractor.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Extract, Matrix, Renderer, RenderTexture, SCALE_MODES } from \"pixi.js\";\nimport { DApplications } from \"../d-applications\";\nimport { DBase } from \"../d-base\";\nimport { UtilExtractorPixels } from \"./util-extractor-pixels\";\nimport { UtilExtractorCanvas } from \"./util-extractor-canvas\";\n\nexport class UtilExtractor {\n\tstatic toTexture(\n\t\ttarget: DBase,\n\t\tresolution?: number,\n\t\tclear?: boolean,\n\t\tskipUpdateTransform?: boolean\n\t): RenderTexture {\n\t\tconst scale = target.transform.scale;\n\t\tconst width = Math.max(1, Math.ceil(target.width * scale.x));\n\t\tconst height = Math.max(1, Math.ceil(target.height * scale.y));\n\t\tconst result = RenderTexture.create({\n\t\t\twidth,\n\t\t\theight,\n\t\t\tscaleMode: SCALE_MODES.LINEAR,\n\t\t\tresolution\n\t\t});\n\t\tconst matrix = new Matrix(\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\t-target.position.x,\n\t\t\t-target.position.y\n\t\t);\n\t\tconst layer = DApplications.getLayer(target);\n\t\tif (layer) {\n\t\t\tlayer.renderer.render(target, result, clear, matrix, skipUpdateTransform);\n\t\t}\n\t\treturn result;\n\t}\n\n\tstatic toPixels(renderTexture: RenderTexture, renderer: Renderer): UtilExtractorPixels {\n\t\tconst baseTexture = renderTexture.baseTexture;\n\t\tconst realWidth = baseTexture.realWidth;\n\t\tconst realHeight = baseTexture.realHeight;\n\t\tconst resolution = renderTexture.resolution;\n\t\tconst frame = renderTexture.frame;\n\t\tconst x0 = Math.floor(frame.x * resolution);\n\t\tconst y0 = Math.floor(frame.y * resolution);\n\t\tconst x1 = Math.floor((frame.x + frame.width) * resolution);\n\t\tconst y1 = Math.floor((frame.y + frame.height) * resolution);\n\t\tconst width = Math.min(x1 - x0, realWidth);\n\t\tconst height = Math.min(y1 - y0, realHeight);\n\t\tconst pixels = new Uint8Array(4 * width * height);\n\t\tif (0 < width && 0 < height) {\n\t\t\tconst oldRenderTexture = renderer.renderTexture.current;\n\t\t\trenderer.renderTexture.bind(renderTexture);\n\t\t\tconst gl = renderer.gl;\n\t\t\tgl.readPixels(x0, y0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels);\n\t\t\trenderer.renderTexture.bind(oldRenderTexture);\n\t\t}\n\t\treturn {\n\t\t\twidth,\n\t\t\theight,\n\t\t\tarray: pixels\n\t\t};\n\t}\n\n\tstatic toCanvas(\n\t\tpixels: UtilExtractorPixels,\n\t\tscale?: number,\n\t\tignorePremutipliedAlpha?: boolean,\n\t\tresult?: UtilExtractorCanvas\n\t): UtilExtractorCanvas {\n\t\tconst width = pixels.width;\n\t\tconst height = pixels.height;\n\t\tconst array = pixels.array;\n\t\tif (result == null) {\n\t\t\tresult = new UtilExtractorCanvas(width, height);\n\t\t} else {\n\t\t\tresult.resize(width, height);\n\t\t}\n\t\tif (width <= 0 || height <= 0) {\n\t\t\treturn result;\n\t\t}\n\t\tconst context = result.getContext();\n\t\tconst element = result.getElement();\n\t\tif (context == null || element == null) {\n\t\t\treturn result;\n\t\t}\n\t\tconst imageData = context.getImageData(0, 0, width, height);\n\t\tif (ignorePremutipliedAlpha) {\n\t\t\timageData.data.set(array);\n\t\t} else {\n\t\t\t(Extract as any).arrayPostDivide(array, imageData.data);\n\t\t}\n\t\tcontext.putImageData(imageData, 0, 0);\n\n\t\t// Scale down\n\t\tif (scale != null && scale !== 1) {\n\t\t\tcontext.scale(scale, scale);\n\t\t\tcontext.drawImage(element, 0, 0);\n\t\t\tconst scaledWidth = Math.floor(width * scale);\n\t\t\tconst scaledHeight = Math.floor(height * scale);\n\t\t\tconst scaledImageData = context.getImageData(0, 0, scaledWidth, scaledHeight);\n\t\t\tresult.resize(scaledWidth, scaledHeight);\n\t\t\tcontext.putImageData(scaledImageData, 0, 0);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic toBase64(canvas: HTMLCanvasElement, format?: string, quality?: number): string {\n\t\treturn canvas.toDataURL(format, quality);\n\t}\n}\n"]}
|