cbvirtua 1.0.50 → 1.0.52
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/canvas-demo-master/canvas-demo-master/README.md +7 -0
- package/canvas-demo-master/canvas-demo-master/countShowBall/README.md +7 -0
- package/canvas-demo-master/canvas-demo-master/countShowBall/countdown.js +227 -0
- package/canvas-demo-master/canvas-demo-master/countShowBall/digit.js +135 -0
- package/canvas-demo-master/canvas-demo-master/countShowBall/index.html +23 -0
- package/canvas-demo-master/canvas-demo-master/write/README.md +17 -0
- package/canvas-demo-master/canvas-demo-master/write/css/write.css +40 -0
- package/canvas-demo-master/canvas-demo-master/write/index.html +26 -0
- package/canvas-demo-master/canvas-demo-master/write/js/controller.js +43 -0
- package/canvas-demo-master/canvas-demo-master/write/js/index.js +10 -0
- package/canvas-demo-master/canvas-demo-master/write/js/paper.js +63 -0
- package/canvas-demo-master/canvas-demo-master/write/js/require.js +36 -0
- package/canvas-demo-master/canvas-demo-master/write/js/write.js +143 -0
- package/canvas-demo-master/canvas-demo-master/writeRxJS/README.md +17 -0
- package/canvas-demo-master/canvas-demo-master/writeRxJS/css/write.css +40 -0
- package/canvas-demo-master/canvas-demo-master/writeRxJS/index.html +27 -0
- package/canvas-demo-master/canvas-demo-master/writeRxJS/js/controller.js +43 -0
- package/canvas-demo-master/canvas-demo-master/writeRxJS/js/index.js +10 -0
- package/canvas-demo-master/canvas-demo-master/writeRxJS/js/paper.js +65 -0
- package/canvas-demo-master/canvas-demo-master/writeRxJS/js/require.js +36 -0
- package/canvas-demo-master/canvas-demo-master/writeRxJS/js/write.js +107 -0
- package/drawingBoard-main/drawingBoard-main/README.md +32 -0
- package/drawingBoard-main/drawingBoard-main/index.html +13 -0
- package/drawingBoard-main/drawingBoard-main/package.json +31 -0
- package/drawingBoard-main/drawingBoard-main/pnpm-lock.yaml +2378 -0
- package/drawingBoard-main/drawingBoard-main/public/vite.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/App.vue +64 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/huabi.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/huabigongju-juxing.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/huabigongju-tuoyuan.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/huabigongju-wenben.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/jiantougongju-hover.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/layer.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/layer_1.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/tuceng.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/tuceng_1.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/wujiaoxing.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/xiangpigongju.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/xuanzegongju.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/assets/zhixiangongju.svg +1 -0
- package/drawingBoard-main/drawingBoard-main/src/components/plugins/LayerOptions.tsx +67 -0
- package/drawingBoard-main/drawingBoard-main/src/components/plugins/LineSegmentBackgroundColorPlugin.tsx +25 -0
- package/drawingBoard-main/drawingBoard-main/src/components/plugins/LineSegmentColorPlugin.tsx +25 -0
- package/drawingBoard-main/drawingBoard-main/src/components/plugins/LineSegmentSizePlugin.tsx +26 -0
- package/drawingBoard-main/drawingBoard-main/src/components/plugins/TextColor.tsx +25 -0
- package/drawingBoard-main/drawingBoard-main/src/components/plugins/TextSize.tsx +27 -0
- package/drawingBoard-main/drawingBoard-main/src/components/tools/Menu.scss +10 -0
- package/drawingBoard-main/drawingBoard-main/src/components/tools/Menu.tsx +33 -0
- package/drawingBoard-main/drawingBoard-main/src/components/tools/Tips.scss +16 -0
- package/drawingBoard-main/drawingBoard-main/src/components/tools/Tips.tsx +5 -0
- package/drawingBoard-main/drawingBoard-main/src/components/tools/Toolbar.scss +26 -0
- package/drawingBoard-main/drawingBoard-main/src/components/tools/Toolbar.tsx +39 -0
- package/drawingBoard-main/drawingBoard-main/src/components/tools/ToolbarMenu.scss +45 -0
- package/drawingBoard-main/drawingBoard-main/src/components/tools/ToolbarMenu.tsx +61 -0
- package/drawingBoard-main/drawingBoard-main/src/components/tools/index.tsx +22 -0
- package/drawingBoard-main/drawingBoard-main/src/main.scss +4 -0
- package/drawingBoard-main/drawingBoard-main/src/main.ts +11 -0
- package/drawingBoard-main/drawingBoard-main/src/shims-vue.d.ts +5 -0
- package/drawingBoard-main/drawingBoard-main/src/utils/App.ts +24 -0
- package/drawingBoard-main/drawingBoard-main/src/utils/DrawingBoard.ts +213 -0
- package/drawingBoard-main/drawingBoard-main/src/utils/History.ts +70 -0
- package/drawingBoard-main/drawingBoard-main/src/utils/Tools.ts +241 -0
- package/drawingBoard-main/drawingBoard-main/src/utils/types.ts +55 -0
- package/drawingBoard-main/drawingBoard-main/src/vite-env.d.ts +1 -0
- package/drawingBoard-main/drawingBoard-main/tsconfig.app.json +36 -0
- package/drawingBoard-main/drawingBoard-main/tsconfig.json +7 -0
- package/drawingBoard-main/drawingBoard-main/tsconfig.node.json +23 -0
- package/drawingBoard-main/drawingBoard-main/vite.config.ts +16 -0
- package/hidpi-canvas-polyfill-master.zip +0 -0
- package/package.json +1 -1
- package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243.txt" +53 -0
- package/canvas-example-main.zip +0 -0
- package/hanzi-writer/.prettierrc.json +0 -7
- package/hanzi-writer/COPYING.md +0 -11
- package/hanzi-writer/LICENSE +0 -20
- package/hanzi-writer/README.md +0 -37
- package/hanzi-writer/babel.config.js +0 -14
- package/hanzi-writer/dist/types/HanziWriter.d.ts +0 -108
- package/hanzi-writer/dist/types/LoadingManager.d.ts +0 -20
- package/hanzi-writer/dist/types/Positioner.d.ts +0 -22
- package/hanzi-writer/dist/types/Quiz.d.ts +0 -40
- package/hanzi-writer/dist/types/RenderState.d.ts +0 -74
- package/hanzi-writer/dist/types/__tests__/HanziWriter-test.d.ts +0 -1
- package/hanzi-writer/dist/types/__tests__/LoadingManager-test.d.ts +0 -1
- package/hanzi-writer/dist/types/__tests__/Mutation-test.d.ts +0 -1
- package/hanzi-writer/dist/types/__tests__/Positioner-test.d.ts +0 -1
- package/hanzi-writer/dist/types/__tests__/Quiz-test.d.ts +0 -1
- package/hanzi-writer/dist/types/__tests__/RenderState-test.d.ts +0 -1
- package/hanzi-writer/dist/types/__tests__/defaultCharDataLoader-test.d.ts +0 -1
- package/hanzi-writer/dist/types/__tests__/geometry-test.d.ts +0 -1
- package/hanzi-writer/dist/types/__tests__/parseCharData-test.d.ts +0 -1
- package/hanzi-writer/dist/types/__tests__/strokeMatches-test.d.ts +0 -1
- package/hanzi-writer/dist/types/__tests__/utils-test.d.ts +0 -1
- package/hanzi-writer/dist/types/characterActions.d.ts +0 -18
- package/hanzi-writer/dist/types/defaultCharDataLoader.d.ts +0 -3
- package/hanzi-writer/dist/types/defaultOptions.d.ts +0 -3
- package/hanzi-writer/dist/types/geometry.d.ts +0 -38
- package/hanzi-writer/dist/types/models/Character.d.ts +0 -6
- package/hanzi-writer/dist/types/models/Stroke.d.ts +0 -17
- package/hanzi-writer/dist/types/models/UserStroke.d.ts +0 -8
- package/hanzi-writer/dist/types/parseCharData.d.ts +0 -3
- package/hanzi-writer/dist/types/quizActions.d.ts +0 -10
- package/hanzi-writer/dist/types/renderers/HanziWriterRendererBase.d.ts +0 -14
- package/hanzi-writer/dist/types/renderers/RenderTargetBase.d.ts +0 -22
- package/hanzi-writer/dist/types/renderers/StrokeRendererBase.d.ts +0 -13
- package/hanzi-writer/dist/types/renderers/canvas/CharacterRenderer.d.ts +0 -14
- package/hanzi-writer/dist/types/renderers/canvas/HanziWriterRenderer.d.ts +0 -19
- package/hanzi-writer/dist/types/renderers/canvas/RenderTarget.d.ts +0 -6
- package/hanzi-writer/dist/types/renderers/canvas/StrokeRenderer.d.ts +0 -16
- package/hanzi-writer/dist/types/renderers/canvas/__tests__/CharacterRenderer-test.d.ts +0 -1
- package/hanzi-writer/dist/types/renderers/canvas/__tests__/HanziWriterRenderer-test.d.ts +0 -1
- package/hanzi-writer/dist/types/renderers/canvas/__tests__/RenderTarget-test.d.ts +0 -1
- package/hanzi-writer/dist/types/renderers/canvas/__tests__/StrokeRenderer-test.d.ts +0 -1
- package/hanzi-writer/dist/types/renderers/canvas/__tests__/canvasUtils-test.d.ts +0 -1
- package/hanzi-writer/dist/types/renderers/canvas/__tests__/renderUserStroke-test.d.ts +0 -1
- package/hanzi-writer/dist/types/renderers/canvas/canvasUtils.d.ts +0 -9
- package/hanzi-writer/dist/types/renderers/canvas/index.d.ts +0 -7
- package/hanzi-writer/dist/types/renderers/canvas/renderUserStroke.d.ts +0 -7
- package/hanzi-writer/dist/types/renderers/svg/CharacterRenderer.d.ts +0 -20
- package/hanzi-writer/dist/types/renderers/svg/HanziWriterRenderer.d.ts +0 -20
- package/hanzi-writer/dist/types/renderers/svg/RenderTarget.d.ts +0 -11
- package/hanzi-writer/dist/types/renderers/svg/StrokeRenderer.d.ts +0 -21
- package/hanzi-writer/dist/types/renderers/svg/UserStrokeRenderer.d.ts +0 -15
- package/hanzi-writer/dist/types/renderers/svg/__tests__/CharacterRenderer-test.d.ts +0 -1
- package/hanzi-writer/dist/types/renderers/svg/__tests__/HanziWriterRenderer-test.d.ts +0 -1
- package/hanzi-writer/dist/types/renderers/svg/__tests__/StrokeRenderer-test.d.ts +0 -1
- package/hanzi-writer/dist/types/renderers/svg/__tests__/svgUtils-test.d.ts +0 -1
- package/hanzi-writer/dist/types/renderers/svg/index.d.ts +0 -7
- package/hanzi-writer/dist/types/renderers/svg/svgUtils.d.ts +0 -5
- package/hanzi-writer/dist/types/strokeMatches.d.ts +0 -14
- package/hanzi-writer/dist/types/testUtils.d.ts +0 -1
- package/hanzi-writer/dist/types/typings/types.d.ts +0 -121
- package/hanzi-writer/dist/types/utils.d.ts +0 -26
- package/hanzi-writer/jest-jsdom-env.js +0 -20
- package/hanzi-writer/package.json +0 -66
- package/hanzi-writer/rollup.config.js +0 -58
- package/hanzi-writer/tsconfig.json +0 -79
- package/progress-master.zip +0 -0
- package/xbossdebug-wechat-master.zip +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// 方法一:放大画布之后,直接用 scale 放大整个坐标系
|
|
2
|
+
// * 但是你要知道我们一直是在放大的坐标系上绘制的,可能不知道什么时候(比如重新设置画布宽高),scale 可能就会被重置成 1 了,从而造成画面错乱
|
|
3
|
+
adaptDPR() { // 在初始化 canvas 的时候就要调用该方法
|
|
4
|
+
const dpr = window.devicePixelRatio;
|
|
5
|
+
const { width, height } = this.canvas;
|
|
6
|
+
// 重新设置 canvas 自身宽高大小和 css 大小。放大 canvas;css 保持不变,因为我们需要那么多的点
|
|
7
|
+
this.canvas.width = Math.round(width * dpr);
|
|
8
|
+
this.canvas.height = Math.round(height * dpr);
|
|
9
|
+
this.canvas.style.width = width + 'px';
|
|
10
|
+
this.canvas.style.height = height + 'px';
|
|
11
|
+
// 直接用 scale 放大整个坐标系,相对来说就是放大了每个绘制操作
|
|
12
|
+
this.ctx2d.scale(dpr, dpr);
|
|
13
|
+
// 接下来的绘制操作和往常一样,比如画个矩形 ctx2d.strokeRect(x, y, w, h);原来该怎么算就怎么算,该怎么调用还是怎么调用
|
|
14
|
+
}
|
|
15
|
+
// 方法二:放大画布之后,需要把每一个绘制的 api 都乘以 dpr
|
|
16
|
+
// * 这样一来使用的时候就会很麻烦,所以我们需要把所有的绘制操作进行统一封装
|
|
17
|
+
// 可以参考这个库:https://github.com/jondavidjohn/hidpi-canvas-polyfill,不过这个库也不是所有 api 都覆盖
|
|
18
|
+
adaptDPR() { // 在初始化 canvas 的时候就要调用该方法
|
|
19
|
+
const dpr = window.devicePixelRatio;
|
|
20
|
+
const { width, height } = this.canvas;
|
|
21
|
+
// 重新设置 canvas 自身宽高大小和 css 大小。放大 canvas;css 保持不变,因为我们需要那么多的点
|
|
22
|
+
this.canvas.width = Math.round(width * dpr);
|
|
23
|
+
this.canvas.height = Math.round(height * dpr);
|
|
24
|
+
this.canvas.style.width = width + 'px';
|
|
25
|
+
this.canvas.style.height = height + 'px';
|
|
26
|
+
// 注意这里没有用 scale
|
|
27
|
+
}
|
|
28
|
+
// 接下来在每个涉及绘制的 api 时都乘以 dpr,比如绘制矩形的时候
|
|
29
|
+
strokeRect(x: number, y: number, w: number, h: number) {
|
|
30
|
+
const { ctx2d, dpr } = this;
|
|
31
|
+
if (!ctx2d) return;
|
|
32
|
+
x = x * dpr;
|
|
33
|
+
y = y * dpr;
|
|
34
|
+
w = w * dpr;
|
|
35
|
+
h = h * dpr;
|
|
36
|
+
ctx2d.strokeRect(x, y, w, h);
|
|
37
|
+
}
|
|
38
|
+
function createHDCanvas (canvas, w, h) {
|
|
39
|
+
const ratio = window.devicePixelRatio || 1;
|
|
40
|
+
canvas.width = w * ratio; // 实际渲染像素
|
|
41
|
+
canvas.height = h * ratio; // 实际渲染像素
|
|
42
|
+
canvas.style.width = `${w}px`; // 控制显示大小
|
|
43
|
+
canvas.style.height = `${h}px`; // 控制显示大小
|
|
44
|
+
const ctx = canvas.getContext('2d')
|
|
45
|
+
ctx.scale(ratio, ratio)
|
|
46
|
+
// canvas 绘制
|
|
47
|
+
return canvas;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
作者:李彦辉Jacky
|
|
51
|
+
链接:https://juejin.cn/post/7014765000916992036
|
|
52
|
+
来源:稀土掘金
|
|
53
|
+
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
|
package/canvas-example-main.zip
DELETED
|
Binary file
|
package/hanzi-writer/COPYING.md
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
Hanzi Writer uses data from the excellent [Make Me a Hanzi](https://github.com/skishore/makemeahanzi) project and fonts from [Arphic](http://www.arphic.com.tw/en/home/index). You can redistribute and/or modify the font data under the terms of the Arphic Public License as published by Arphic Technology Co., Ltd. You should have
|
|
2
|
-
received a copy of this license (the directory "APL") in the data folder of this repository;
|
|
3
|
-
if not, see <http://ftp.gnu.org/non-gnu/chinese-fonts-truetype/LICENSE>.
|
|
4
|
-
|
|
5
|
-
Arphic PL KaitiM GB and UKai
|
|
6
|
-
Copyright 1999 Arphic Technology Co., Ltd.; licensed under the Arphic Public License
|
|
7
|
-
http://www.arphic.com.tw/en/home/index
|
|
8
|
-
|
|
9
|
-
Make Me a Hanzi
|
|
10
|
-
Copyright 1999 Arphic Technology Co., Ltd., copyright 2016 Shaunak Kishore; licensed under the Arphic Public License
|
|
11
|
-
https://github.com/skishore/makemeahanzi
|
package/hanzi-writer/LICENSE
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2014 David Chanin
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
6
|
-
this software and associated documentation files (the "Software"), to deal in
|
|
7
|
-
the Software without restriction, including without limitation the rights to
|
|
8
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
-
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
10
|
-
subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
17
|
-
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
18
|
-
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
19
|
-
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
20
|
-
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/hanzi-writer/README.md
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
Hanzi Writer
|
|
3
|
-
=====================
|
|
4
|
-
|
|
5
|
-
[](https://circleci.com/gh/chanind/hanzi-writer/tree/master)
|
|
6
|
-
[](https://codecov.io/gh/chanind/hanzi-writer)
|
|
7
|
-
[](https://www.npmjs.com/package/hanzi-writer)
|
|
8
|
-
|
|
9
|
-
https://chanind.github.io/hanzi-writer
|
|
10
|
-
|
|
11
|
-
Hanzi Writer is a free and open-source javascript library for Chinese character stroke order animations and stroke order practice quizzes. Works with both simplified and traditional characters.
|
|
12
|
-
|
|
13
|
-
[Live demo](https://chanind.github.io/hanzi-writer/demo.html)
|
|
14
|
-
|
|
15
|
-
## Getting Started and Documentation
|
|
16
|
-
|
|
17
|
-
For more info and instructions on getting started check out https://chanind.github.io/hanzi-writer
|
|
18
|
-
|
|
19
|
-
## Data source
|
|
20
|
-
|
|
21
|
-
The chinese character svg and stroke order data used by Hanzi Writer is derived from the [Make me a Hanzi](https://github.com/skishore/makemeahanzi) project with some slight tweaks. The data can be found in the [Hanzi Writer Data](https://github.com/chanind/hanzi-writer-data) repo. There's a visualizer for this data [here](https://chanind.github.io/hanzi-writer-data).
|
|
22
|
-
|
|
23
|
-
## Contributing
|
|
24
|
-
|
|
25
|
-
Pull requests are welcome! If you would like to contribute code, you'll need to be able to build the project locally. After cloning the Hanzi Writer repo, you can get it set up by running:
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
yarn install
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
You can run tests with `yarn test` and you can build the project with `yarn build`.
|
|
32
|
-
|
|
33
|
-
## License
|
|
34
|
-
|
|
35
|
-
Hanzi Writer is released under an [MIT](https://raw.githubusercontent.com/chanind/hanzi-writer/master/LICENSE) license.
|
|
36
|
-
|
|
37
|
-
The Hanzi Writer data comes from the [Make Me A Hanzi](https://github.com/skishore/makemeahanzi) project, which extracted the data from fonts by [Arphic Technology](http://www.arphic.com/), a Taiwanese font forge that released their work under a permissive license in 1999. You can redistribute and/or modify this data under the terms of the Arphic Public License as published by Arphic Technology Co., Ltd. A copy of this license can be found in [ARPHICPL.TXT](https://raw.githubusercontent.com/chanind/hanzi-writer-data/master/ARPHICPL.TXT).
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import RenderState from './RenderState';
|
|
2
|
-
import Positioner from './Positioner';
|
|
3
|
-
import Quiz from './Quiz';
|
|
4
|
-
import LoadingManager from './LoadingManager';
|
|
5
|
-
import Character from './models/Character';
|
|
6
|
-
import HanziWriterRendererBase, { HanziWriterRendererConstructor } from './renderers/HanziWriterRendererBase';
|
|
7
|
-
import RenderTargetBase from './renderers/RenderTargetBase';
|
|
8
|
-
import { ColorOptions, DimensionOptions, HanziWriterOptions, LoadingManagerOptions, OnCompleteFunction, ParsedHanziWriterOptions, QuizOptions, RenderTargetInitFunction } from './typings/types';
|
|
9
|
-
export * from './typings/types';
|
|
10
|
-
export default class HanziWriter {
|
|
11
|
-
_options: ParsedHanziWriterOptions;
|
|
12
|
-
_loadingManager: LoadingManager;
|
|
13
|
-
/** Only set when calling .setCharacter() */
|
|
14
|
-
_char: string | undefined;
|
|
15
|
-
/** Only set when calling .setCharacter() */
|
|
16
|
-
_renderState: RenderState | undefined;
|
|
17
|
-
/** Only set when calling .setCharacter() */
|
|
18
|
-
_character: Character | undefined;
|
|
19
|
-
/** Only set when calling .setCharacter() */
|
|
20
|
-
_positioner: Positioner | undefined;
|
|
21
|
-
/** Only set when calling .setCharacter() */
|
|
22
|
-
_hanziWriterRenderer: HanziWriterRendererBase<HTMLElement, any> | null | undefined;
|
|
23
|
-
/** Only set when calling .setCharacter() */
|
|
24
|
-
_withDataPromise: Promise<void> | undefined;
|
|
25
|
-
_quiz: Quiz | undefined;
|
|
26
|
-
_renderer: {
|
|
27
|
-
HanziWriterRenderer: HanziWriterRendererConstructor;
|
|
28
|
-
createRenderTarget: RenderTargetInitFunction<any>;
|
|
29
|
-
};
|
|
30
|
-
target: RenderTargetBase;
|
|
31
|
-
/** Main entry point */
|
|
32
|
-
static create(element: string | HTMLElement, character: string, options?: Partial<HanziWriterOptions>): HanziWriter;
|
|
33
|
-
/** Singleton instance of LoadingManager. Only set in `loadCharacterData` */
|
|
34
|
-
static _loadingManager: LoadingManager | null;
|
|
35
|
-
/** Singleton loading options. Only set in `loadCharacterData` */
|
|
36
|
-
static _loadingOptions: Partial<HanziWriterOptions> | null;
|
|
37
|
-
static loadCharacterData(character: string, options?: Partial<LoadingManagerOptions>): Promise<void | import("./typings/types").CharacterJson>;
|
|
38
|
-
static getScalingTransform(width: number, height: number, padding?: number): {
|
|
39
|
-
x: number;
|
|
40
|
-
y: number;
|
|
41
|
-
scale: number;
|
|
42
|
-
transform: string;
|
|
43
|
-
};
|
|
44
|
-
constructor(element: string | HTMLElement, options?: Partial<HanziWriterOptions>);
|
|
45
|
-
showCharacter(options?: {
|
|
46
|
-
onComplete?: OnCompleteFunction;
|
|
47
|
-
duration?: number;
|
|
48
|
-
}): Promise<Promise<{
|
|
49
|
-
canceled: boolean;
|
|
50
|
-
}> | undefined>;
|
|
51
|
-
hideCharacter(options?: {
|
|
52
|
-
onComplete?: OnCompleteFunction;
|
|
53
|
-
duration?: number;
|
|
54
|
-
}): Promise<Promise<{
|
|
55
|
-
canceled: boolean;
|
|
56
|
-
}> | undefined>;
|
|
57
|
-
animateCharacter(options?: {
|
|
58
|
-
onComplete?: OnCompleteFunction;
|
|
59
|
-
}): Promise<Promise<{
|
|
60
|
-
canceled: boolean;
|
|
61
|
-
}> | undefined>;
|
|
62
|
-
animateStroke(strokeNum: number, options?: {
|
|
63
|
-
onComplete?: OnCompleteFunction;
|
|
64
|
-
}): Promise<Promise<{
|
|
65
|
-
canceled: boolean;
|
|
66
|
-
}> | undefined>;
|
|
67
|
-
highlightStroke(strokeNum: number, options?: {
|
|
68
|
-
onComplete?: OnCompleteFunction;
|
|
69
|
-
}): Promise<Promise<{
|
|
70
|
-
canceled: boolean;
|
|
71
|
-
}> | undefined>;
|
|
72
|
-
loopCharacterAnimation(): Promise<{
|
|
73
|
-
canceled: boolean;
|
|
74
|
-
} | undefined>;
|
|
75
|
-
pauseAnimation(): Promise<void | undefined>;
|
|
76
|
-
resumeAnimation(): Promise<void | undefined>;
|
|
77
|
-
showOutline(options?: {
|
|
78
|
-
duration?: number;
|
|
79
|
-
onComplete?: OnCompleteFunction;
|
|
80
|
-
}): Promise<Promise<{
|
|
81
|
-
canceled: boolean;
|
|
82
|
-
}> | undefined>;
|
|
83
|
-
hideOutline(options?: {
|
|
84
|
-
duration?: number;
|
|
85
|
-
onComplete?: OnCompleteFunction;
|
|
86
|
-
}): Promise<Promise<{
|
|
87
|
-
canceled: boolean;
|
|
88
|
-
}> | undefined>;
|
|
89
|
-
/** Updates the size of the writer instance without resetting render state */
|
|
90
|
-
updateDimensions({ width, height, padding }: Partial<DimensionOptions>): void;
|
|
91
|
-
updateColor(colorName: keyof ColorOptions, colorVal: string | null, options?: {
|
|
92
|
-
duration?: number;
|
|
93
|
-
onComplete?: OnCompleteFunction;
|
|
94
|
-
}): Promise<Promise<{
|
|
95
|
-
canceled: boolean;
|
|
96
|
-
}> | undefined>;
|
|
97
|
-
quiz(quizOptions?: Partial<QuizOptions>): Promise<Promise<void> | undefined>;
|
|
98
|
-
skipQuizStroke(): void;
|
|
99
|
-
cancelQuiz(): void;
|
|
100
|
-
setCharacter(char: string): Promise<void>;
|
|
101
|
-
_initAndMountHanziWriterRenderer(character: Character): HanziWriterRendererBase<any, any>;
|
|
102
|
-
getCharacterData(): Promise<Character>;
|
|
103
|
-
_assignOptions(options: Partial<HanziWriterOptions>): ParsedHanziWriterOptions;
|
|
104
|
-
/** returns a new options object with width and height filled in if missing */
|
|
105
|
-
_fillWidthAndHeight(options: HanziWriterOptions): ParsedHanziWriterOptions;
|
|
106
|
-
_withData<T>(func: () => T): Promise<T | undefined>;
|
|
107
|
-
_setupListeners(): void;
|
|
108
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { CharacterJson, LoadingManagerOptions } from './typings/types';
|
|
2
|
-
type CustomError = Error & {
|
|
3
|
-
reason: string;
|
|
4
|
-
};
|
|
5
|
-
export default class LoadingManager {
|
|
6
|
-
_loadCounter: number;
|
|
7
|
-
_isLoading: boolean;
|
|
8
|
-
_resolve: ((data: CharacterJson) => void) | undefined;
|
|
9
|
-
_reject: ((error?: Error | CustomError | string) => void) | undefined;
|
|
10
|
-
_options: LoadingManagerOptions;
|
|
11
|
-
/** Set when calling LoadingManager.loadCharData */
|
|
12
|
-
_loadingChar: string | undefined;
|
|
13
|
-
/** use this to attribute to determine if there was a problem with loading */
|
|
14
|
-
loadingFailed: boolean;
|
|
15
|
-
constructor(options: LoadingManagerOptions);
|
|
16
|
-
_debouncedLoad(char: string, count: number): void;
|
|
17
|
-
_setupLoadingPromise(): Promise<void | CharacterJson>;
|
|
18
|
-
loadCharData(char: string): Promise<void | CharacterJson>;
|
|
19
|
-
}
|
|
20
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Point } from './typings/types';
|
|
2
|
-
export type PositionerOptions = {
|
|
3
|
-
/** Default: 0 */
|
|
4
|
-
width: number;
|
|
5
|
-
/** Default: 0 */
|
|
6
|
-
height: number;
|
|
7
|
-
/** Default: 20 */
|
|
8
|
-
padding: number;
|
|
9
|
-
};
|
|
10
|
-
export default class Positioner {
|
|
11
|
-
padding: number;
|
|
12
|
-
width: number;
|
|
13
|
-
height: number;
|
|
14
|
-
xOffset: number;
|
|
15
|
-
yOffset: number;
|
|
16
|
-
scale: number;
|
|
17
|
-
constructor(options: PositionerOptions);
|
|
18
|
-
convertExternalPoint(point: Point): {
|
|
19
|
-
x: number;
|
|
20
|
-
y: number;
|
|
21
|
-
};
|
|
22
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { StrokeMatchResultMeta } from './strokeMatches';
|
|
2
|
-
import UserStroke from './models/UserStroke';
|
|
3
|
-
import Positioner from './Positioner';
|
|
4
|
-
import Character from './models/Character';
|
|
5
|
-
import { ParsedHanziWriterOptions, Point, StrokeData } from './typings/types';
|
|
6
|
-
import RenderState from './RenderState';
|
|
7
|
-
export default class Quiz {
|
|
8
|
-
_character: Character;
|
|
9
|
-
_renderState: RenderState;
|
|
10
|
-
_isActive: boolean;
|
|
11
|
-
_positioner: Positioner;
|
|
12
|
-
/** Set on startQuiz */
|
|
13
|
-
_options: ParsedHanziWriterOptions | undefined;
|
|
14
|
-
_currentStrokeIndex: number;
|
|
15
|
-
_mistakesOnStroke: number;
|
|
16
|
-
_totalMistakes: number;
|
|
17
|
-
_userStroke: UserStroke | undefined;
|
|
18
|
-
_userStrokesIds: Array<number> | undefined;
|
|
19
|
-
constructor(character: Character, renderState: RenderState, positioner: Positioner);
|
|
20
|
-
startQuiz(options: ParsedHanziWriterOptions): Promise<{
|
|
21
|
-
canceled: boolean;
|
|
22
|
-
}>;
|
|
23
|
-
startUserStroke(externalPoint: Point): void | Promise<{
|
|
24
|
-
canceled: boolean;
|
|
25
|
-
}> | null;
|
|
26
|
-
continueUserStroke(externalPoint: Point): Promise<void> | Promise<{
|
|
27
|
-
canceled: boolean;
|
|
28
|
-
}>;
|
|
29
|
-
setPositioner(positioner: Positioner): void;
|
|
30
|
-
endUserStroke(): void;
|
|
31
|
-
cancel(): void;
|
|
32
|
-
_getStrokeData({ isCorrect, meta, }: {
|
|
33
|
-
isCorrect: boolean;
|
|
34
|
-
meta: StrokeMatchResultMeta;
|
|
35
|
-
}): StrokeData;
|
|
36
|
-
nextStroke(): void;
|
|
37
|
-
_handleSuccess(meta: StrokeMatchResultMeta): void;
|
|
38
|
-
_handleFailure(meta: StrokeMatchResultMeta): void;
|
|
39
|
-
_getCurrentStroke(): import("./models/Stroke").default;
|
|
40
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import Character from './models/Character';
|
|
2
|
-
import { GenericMutation } from './Mutation';
|
|
3
|
-
import { ColorObject, OnCompleteFunction, Point, RecursivePartial } from './typings/types';
|
|
4
|
-
export type StrokeRenderState = {
|
|
5
|
-
opacity: number;
|
|
6
|
-
displayPortion: number;
|
|
7
|
-
};
|
|
8
|
-
export type CharacterRenderState = {
|
|
9
|
-
opacity: number;
|
|
10
|
-
strokes: Record<number | string, StrokeRenderState>;
|
|
11
|
-
};
|
|
12
|
-
export type RenderStateObject = {
|
|
13
|
-
options: {
|
|
14
|
-
drawingFadeDuration: number;
|
|
15
|
-
drawingWidth: number;
|
|
16
|
-
drawingColor: ColorObject;
|
|
17
|
-
strokeColor: ColorObject;
|
|
18
|
-
outlineColor: ColorObject;
|
|
19
|
-
radicalColor: ColorObject;
|
|
20
|
-
highlightColor: ColorObject;
|
|
21
|
-
};
|
|
22
|
-
character: {
|
|
23
|
-
main: CharacterRenderState;
|
|
24
|
-
outline: CharacterRenderState;
|
|
25
|
-
highlight: CharacterRenderState;
|
|
26
|
-
};
|
|
27
|
-
userStrokes: Record<string, {
|
|
28
|
-
points: Point[];
|
|
29
|
-
opacity: number;
|
|
30
|
-
} | undefined> | null;
|
|
31
|
-
};
|
|
32
|
-
export type CharacterName = keyof RenderStateObject['character'];
|
|
33
|
-
type OnStateChangeCallback = (nextState: RenderStateObject, currentState: RenderStateObject) => void;
|
|
34
|
-
type MutationChain = {
|
|
35
|
-
_isActive: boolean;
|
|
36
|
-
_index: number;
|
|
37
|
-
_resolve: OnCompleteFunction;
|
|
38
|
-
_mutations: GenericMutation[];
|
|
39
|
-
_loop: boolean | undefined;
|
|
40
|
-
_scopes: string[];
|
|
41
|
-
};
|
|
42
|
-
export type RenderStateOptions = {
|
|
43
|
-
strokeColor: string;
|
|
44
|
-
radicalColor: string | null;
|
|
45
|
-
highlightColor: string;
|
|
46
|
-
outlineColor: string;
|
|
47
|
-
drawingColor: string;
|
|
48
|
-
drawingFadeDuration: number;
|
|
49
|
-
drawingWidth: number;
|
|
50
|
-
outlineWidth: number;
|
|
51
|
-
showCharacter: boolean;
|
|
52
|
-
showOutline: boolean;
|
|
53
|
-
};
|
|
54
|
-
export default class RenderState {
|
|
55
|
-
_mutationChains: MutationChain[];
|
|
56
|
-
_onStateChange: OnStateChangeCallback;
|
|
57
|
-
state: RenderStateObject;
|
|
58
|
-
constructor(character: Character, options: RenderStateOptions, onStateChange?: OnStateChangeCallback);
|
|
59
|
-
overwriteOnStateChange(onStateChange: OnStateChangeCallback): void;
|
|
60
|
-
updateState(stateChanges: RecursivePartial<RenderStateObject>): void;
|
|
61
|
-
run(mutations: GenericMutation[], options?: {
|
|
62
|
-
loop?: boolean;
|
|
63
|
-
}): Promise<{
|
|
64
|
-
canceled: boolean;
|
|
65
|
-
}>;
|
|
66
|
-
_run(mutationChain: MutationChain): void;
|
|
67
|
-
_getActiveMutations(): GenericMutation<RenderState>[];
|
|
68
|
-
pauseAll(): void;
|
|
69
|
-
resumeAll(): void;
|
|
70
|
-
cancelMutations(scopesToCancel: string[]): void;
|
|
71
|
-
cancelAll(): void;
|
|
72
|
-
_cancelMutationChain(mutationChain: MutationChain): void;
|
|
73
|
-
}
|
|
74
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import Stroke from './models/Stroke';
|
|
2
|
-
import { ColorObject, RecursivePartial } from './typings/types';
|
|
3
|
-
import Character from './models/Character';
|
|
4
|
-
import Mutation, { GenericMutation } from './Mutation';
|
|
5
|
-
import { CharacterName } from './RenderState';
|
|
6
|
-
export declare const showStrokes: (charName: CharacterName, character: Character, duration: number) => GenericMutation[];
|
|
7
|
-
export declare const showCharacter: (charName: CharacterName, character: Character, duration: number) => GenericMutation[];
|
|
8
|
-
export declare const hideCharacter: (charName: CharacterName, character: Character, duration?: number) => GenericMutation[];
|
|
9
|
-
export declare const updateColor: (colorName: string, colorVal: ColorObject | null, duration: number) => Mutation<{
|
|
10
|
-
state: any;
|
|
11
|
-
updateState(changes: RecursivePartial<any>): void;
|
|
12
|
-
}, any>[];
|
|
13
|
-
export declare const highlightStroke: (stroke: Stroke, color: ColorObject | null, speed: number) => GenericMutation[];
|
|
14
|
-
export declare const animateStroke: (charName: CharacterName, stroke: Stroke, speed: number) => GenericMutation[];
|
|
15
|
-
export declare const animateSingleStroke: (charName: CharacterName, character: Character, strokeNum: number, speed: number) => GenericMutation[];
|
|
16
|
-
export declare const showStroke: (charName: CharacterName, strokeNum: number, duration: number) => GenericMutation[];
|
|
17
|
-
export declare const animateCharacter: (charName: CharacterName, character: Character, fadeDuration: number, speed: number, delayBetweenStrokes: number) => GenericMutation[];
|
|
18
|
-
export declare const animateCharacterLoop: (charName: CharacterName, character: Character, fadeDuration: number, speed: number, delayBetweenStrokes: number, delayBetweenLoops: number) => GenericMutation[];
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Point } from './typings/types';
|
|
2
|
-
export declare const subtract: (p1: Point, p2: Point) => {
|
|
3
|
-
x: number;
|
|
4
|
-
y: number;
|
|
5
|
-
};
|
|
6
|
-
export declare const magnitude: (point: Point) => number;
|
|
7
|
-
export declare const distance: (point1: Point, point2: Point) => number;
|
|
8
|
-
export declare const equals: (point1: Point, point2: Point) => boolean;
|
|
9
|
-
export declare const round: (point: Point, precision?: number) => {
|
|
10
|
-
x: number;
|
|
11
|
-
y: number;
|
|
12
|
-
};
|
|
13
|
-
export declare const length: (points: Point[]) => number;
|
|
14
|
-
export declare const cosineSimilarity: (point1: Point, point2: Point) => number;
|
|
15
|
-
/**
|
|
16
|
-
* return a new point, p3, which is on the same line as p1 and p2, but distance away
|
|
17
|
-
* from p2. p1, p2, p3 will always lie on the line in that order
|
|
18
|
-
*/
|
|
19
|
-
export declare const _extendPointOnLine: (p1: Point, p2: Point, dist: number) => {
|
|
20
|
-
x: number;
|
|
21
|
-
y: number;
|
|
22
|
-
};
|
|
23
|
-
/** based on http://www.kr.tuwien.ac.at/staff/eiter/et-archive/cdtr9464.pdf */
|
|
24
|
-
export declare const frechetDist: (curve1: Point[], curve2: Point[]) => number;
|
|
25
|
-
/** break up long segments in the curve into smaller segments of len maxLen or smaller */
|
|
26
|
-
export declare const subdivideCurve: (curve: Point[], maxLen?: number) => Point[];
|
|
27
|
-
/** redraw the curve using numPoints equally spaced out along the length of the curve */
|
|
28
|
-
export declare const outlineCurve: (curve: Point[], numPoints?: number) => Point[];
|
|
29
|
-
/** translate and scale from https://en.wikipedia.org/wiki/Procrustes_analysis */
|
|
30
|
-
export declare const normalizeCurve: (curve: Point[]) => Point[];
|
|
31
|
-
export declare const rotate: (curve: Point[], theta: number) => {
|
|
32
|
-
x: number;
|
|
33
|
-
y: number;
|
|
34
|
-
}[];
|
|
35
|
-
export declare const _filterParallelPoints: (points: Point[]) => Point[];
|
|
36
|
-
export declare function getPathString(points: Point[], close?: boolean): string;
|
|
37
|
-
/** take points on a path and move their start point backwards by distance */
|
|
38
|
-
export declare const extendStart: (points: Point[], dist: number) => Point[];
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Point } from '../typings/types';
|
|
2
|
-
export default class Stroke {
|
|
3
|
-
path: string;
|
|
4
|
-
points: Point[];
|
|
5
|
-
strokeNum: number;
|
|
6
|
-
isInRadical: boolean;
|
|
7
|
-
constructor(path: string, points: Point[], strokeNum: number, isInRadical?: boolean);
|
|
8
|
-
getStartingPoint(): Point;
|
|
9
|
-
getEndingPoint(): Point;
|
|
10
|
-
getLength(): number;
|
|
11
|
-
getVectors(): {
|
|
12
|
-
x: number;
|
|
13
|
-
y: number;
|
|
14
|
-
}[];
|
|
15
|
-
getDistance(point: Point): number;
|
|
16
|
-
getAverageDistance(points: Point[]): number;
|
|
17
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Point } from '../typings/types';
|
|
2
|
-
export default class UserStroke {
|
|
3
|
-
id: number;
|
|
4
|
-
points: Point[];
|
|
5
|
-
externalPoints: Point[];
|
|
6
|
-
constructor(id: number, startingPoint: Point, startingExternalPoint: Point);
|
|
7
|
-
appendPoint(point: Point, externalPoint: Point): void;
|
|
8
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { GenericMutation } from './Mutation';
|
|
2
|
-
import Character from './models/Character';
|
|
3
|
-
import { ColorObject, Point } from './typings/types';
|
|
4
|
-
export declare const startQuiz: (character: Character, fadeDuration: number, startStrokeNum: number) => GenericMutation[];
|
|
5
|
-
export declare const startUserStroke: (id: string | number, point: Point) => GenericMutation[];
|
|
6
|
-
export declare const updateUserStroke: (userStrokeId: string | number, points: Point[]) => GenericMutation[];
|
|
7
|
-
export declare const hideUserStroke: (userStrokeId: string | number, duration: number) => GenericMutation[];
|
|
8
|
-
export declare const removeAllUserStrokes: (userStrokeIds: Array<number>) => GenericMutation[];
|
|
9
|
-
export declare const highlightCompleteChar: (character: Character, color: ColorObject | null, duration: number) => GenericMutation[];
|
|
10
|
-
export declare const highlightStroke: (stroke: import("./models/Stroke").default, color: ColorObject | null, speed: number) => GenericMutation<import("./RenderState").default>[];
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import Character from '../models/Character';
|
|
2
|
-
import Positioner from '../Positioner';
|
|
3
|
-
import { RenderStateObject } from '../RenderState';
|
|
4
|
-
import RenderTargetBase from './RenderTargetBase';
|
|
5
|
-
export default interface HanziWriterRendererBase<TElementType extends HTMLElement | HTMLCanvasElement | SVGElement | SVGSVGElement, TRenderTarget extends RenderTargetBase<TElementType>> {
|
|
6
|
-
_character: Character;
|
|
7
|
-
_positioner: Positioner;
|
|
8
|
-
mount(target: TRenderTarget): void;
|
|
9
|
-
render(props: RenderStateObject): void;
|
|
10
|
-
destroy(): void;
|
|
11
|
-
}
|
|
12
|
-
export interface HanziWriterRendererConstructor {
|
|
13
|
-
new (character: Character, positioner: Positioner): HanziWriterRendererBase<any, any>;
|
|
14
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Point } from '../typings/types';
|
|
2
|
-
type BoundEvent = {
|
|
3
|
-
getPoint(): Point;
|
|
4
|
-
preventDefault(): void;
|
|
5
|
-
};
|
|
6
|
-
/** Generic render target */
|
|
7
|
-
export default class RenderTargetBase<TElement extends HTMLElement | SVGElement | SVGSVGElement | HTMLCanvasElement = HTMLElement> {
|
|
8
|
-
node: TElement;
|
|
9
|
-
constructor(node: TElement);
|
|
10
|
-
addPointerStartListener(callback: (arg: BoundEvent) => void): void;
|
|
11
|
-
addPointerMoveListener(callback: (arg: BoundEvent) => void): void;
|
|
12
|
-
addPointerEndListener(callback: () => void): void;
|
|
13
|
-
getBoundingClientRect(): DOMRect;
|
|
14
|
-
updateDimensions(width: string | number, height: string | number): void;
|
|
15
|
-
_eventify<TEvent extends Event>(evt: TEvent, pointFunc: (event: TEvent) => Point): {
|
|
16
|
-
getPoint: () => Point;
|
|
17
|
-
preventDefault: () => void;
|
|
18
|
-
};
|
|
19
|
-
_getMousePoint(evt: MouseEvent): Point;
|
|
20
|
-
_getTouchPoint(evt: TouchEvent): Point;
|
|
21
|
-
}
|
|
22
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import Stroke from '../models/Stroke';
|
|
2
|
-
import { ColorObject } from '../typings/types';
|
|
3
|
-
export default class StrokeRendererBase {
|
|
4
|
-
_pathLength: number;
|
|
5
|
-
stroke: Stroke;
|
|
6
|
-
static STROKE_WIDTH: number;
|
|
7
|
-
constructor(stroke: Stroke);
|
|
8
|
-
_getStrokeDashoffset(displayPortion: number): number;
|
|
9
|
-
_getColor({ strokeColor, radicalColor, }: {
|
|
10
|
-
strokeColor: ColorObject;
|
|
11
|
-
radicalColor?: ColorObject | null;
|
|
12
|
-
}): ColorObject;
|
|
13
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import Character from '../../models/Character';
|
|
2
|
-
import { StrokeRenderState } from '../../RenderState';
|
|
3
|
-
import { ColorObject } from '../../typings/types';
|
|
4
|
-
import StrokeRenderer from './StrokeRenderer';
|
|
5
|
-
export default class CharacterRenderer {
|
|
6
|
-
_strokeRenderers: StrokeRenderer[];
|
|
7
|
-
constructor(character: Character);
|
|
8
|
-
render(ctx: CanvasRenderingContext2D, props: {
|
|
9
|
-
opacity: number;
|
|
10
|
-
strokes: Record<number, StrokeRenderState>;
|
|
11
|
-
strokeColor: ColorObject;
|
|
12
|
-
radicalColor?: ColorObject | null;
|
|
13
|
-
}): void;
|
|
14
|
-
}
|