cbvirtua 1.0.50 → 1.0.51

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.
Files changed (137) hide show
  1. package/canvas-demo-master/canvas-demo-master/README.md +7 -0
  2. package/canvas-demo-master/canvas-demo-master/countShowBall/README.md +7 -0
  3. package/canvas-demo-master/canvas-demo-master/countShowBall/countdown.js +227 -0
  4. package/canvas-demo-master/canvas-demo-master/countShowBall/digit.js +135 -0
  5. package/canvas-demo-master/canvas-demo-master/countShowBall/index.html +23 -0
  6. package/canvas-demo-master/canvas-demo-master/write/README.md +17 -0
  7. package/canvas-demo-master/canvas-demo-master/write/css/write.css +40 -0
  8. package/canvas-demo-master/canvas-demo-master/write/index.html +26 -0
  9. package/canvas-demo-master/canvas-demo-master/write/js/controller.js +43 -0
  10. package/canvas-demo-master/canvas-demo-master/write/js/index.js +10 -0
  11. package/canvas-demo-master/canvas-demo-master/write/js/paper.js +63 -0
  12. package/canvas-demo-master/canvas-demo-master/write/js/require.js +36 -0
  13. package/canvas-demo-master/canvas-demo-master/write/js/write.js +143 -0
  14. package/canvas-demo-master/canvas-demo-master/writeRxJS/README.md +17 -0
  15. package/canvas-demo-master/canvas-demo-master/writeRxJS/css/write.css +40 -0
  16. package/canvas-demo-master/canvas-demo-master/writeRxJS/index.html +27 -0
  17. package/canvas-demo-master/canvas-demo-master/writeRxJS/js/controller.js +43 -0
  18. package/canvas-demo-master/canvas-demo-master/writeRxJS/js/index.js +10 -0
  19. package/canvas-demo-master/canvas-demo-master/writeRxJS/js/paper.js +65 -0
  20. package/canvas-demo-master/canvas-demo-master/writeRxJS/js/require.js +36 -0
  21. package/canvas-demo-master/canvas-demo-master/writeRxJS/js/write.js +107 -0
  22. package/drawingBoard-main/drawingBoard-main/README.md +32 -0
  23. package/drawingBoard-main/drawingBoard-main/index.html +13 -0
  24. package/drawingBoard-main/drawingBoard-main/package.json +31 -0
  25. package/drawingBoard-main/drawingBoard-main/pnpm-lock.yaml +2378 -0
  26. package/drawingBoard-main/drawingBoard-main/public/vite.svg +1 -0
  27. package/drawingBoard-main/drawingBoard-main/src/App.vue +64 -0
  28. package/drawingBoard-main/drawingBoard-main/src/assets/huabi.svg +1 -0
  29. package/drawingBoard-main/drawingBoard-main/src/assets/huabigongju-juxing.svg +1 -0
  30. package/drawingBoard-main/drawingBoard-main/src/assets/huabigongju-tuoyuan.svg +1 -0
  31. package/drawingBoard-main/drawingBoard-main/src/assets/huabigongju-wenben.svg +1 -0
  32. package/drawingBoard-main/drawingBoard-main/src/assets/jiantougongju-hover.svg +1 -0
  33. package/drawingBoard-main/drawingBoard-main/src/assets/layer.svg +1 -0
  34. package/drawingBoard-main/drawingBoard-main/src/assets/layer_1.svg +1 -0
  35. package/drawingBoard-main/drawingBoard-main/src/assets/tuceng.svg +1 -0
  36. package/drawingBoard-main/drawingBoard-main/src/assets/tuceng_1.svg +1 -0
  37. package/drawingBoard-main/drawingBoard-main/src/assets/wujiaoxing.svg +1 -0
  38. package/drawingBoard-main/drawingBoard-main/src/assets/xiangpigongju.svg +1 -0
  39. package/drawingBoard-main/drawingBoard-main/src/assets/xuanzegongju.svg +1 -0
  40. package/drawingBoard-main/drawingBoard-main/src/assets/zhixiangongju.svg +1 -0
  41. package/drawingBoard-main/drawingBoard-main/src/components/plugins/LayerOptions.tsx +67 -0
  42. package/drawingBoard-main/drawingBoard-main/src/components/plugins/LineSegmentBackgroundColorPlugin.tsx +25 -0
  43. package/drawingBoard-main/drawingBoard-main/src/components/plugins/LineSegmentColorPlugin.tsx +25 -0
  44. package/drawingBoard-main/drawingBoard-main/src/components/plugins/LineSegmentSizePlugin.tsx +26 -0
  45. package/drawingBoard-main/drawingBoard-main/src/components/plugins/TextColor.tsx +25 -0
  46. package/drawingBoard-main/drawingBoard-main/src/components/plugins/TextSize.tsx +27 -0
  47. package/drawingBoard-main/drawingBoard-main/src/components/tools/Menu.scss +10 -0
  48. package/drawingBoard-main/drawingBoard-main/src/components/tools/Menu.tsx +33 -0
  49. package/drawingBoard-main/drawingBoard-main/src/components/tools/Tips.scss +16 -0
  50. package/drawingBoard-main/drawingBoard-main/src/components/tools/Tips.tsx +5 -0
  51. package/drawingBoard-main/drawingBoard-main/src/components/tools/Toolbar.scss +26 -0
  52. package/drawingBoard-main/drawingBoard-main/src/components/tools/Toolbar.tsx +39 -0
  53. package/drawingBoard-main/drawingBoard-main/src/components/tools/ToolbarMenu.scss +45 -0
  54. package/drawingBoard-main/drawingBoard-main/src/components/tools/ToolbarMenu.tsx +61 -0
  55. package/drawingBoard-main/drawingBoard-main/src/components/tools/index.tsx +22 -0
  56. package/drawingBoard-main/drawingBoard-main/src/main.scss +4 -0
  57. package/drawingBoard-main/drawingBoard-main/src/main.ts +11 -0
  58. package/drawingBoard-main/drawingBoard-main/src/shims-vue.d.ts +5 -0
  59. package/drawingBoard-main/drawingBoard-main/src/utils/App.ts +24 -0
  60. package/drawingBoard-main/drawingBoard-main/src/utils/DrawingBoard.ts +213 -0
  61. package/drawingBoard-main/drawingBoard-main/src/utils/History.ts +70 -0
  62. package/drawingBoard-main/drawingBoard-main/src/utils/Tools.ts +241 -0
  63. package/drawingBoard-main/drawingBoard-main/src/utils/types.ts +55 -0
  64. package/drawingBoard-main/drawingBoard-main/src/vite-env.d.ts +1 -0
  65. package/drawingBoard-main/drawingBoard-main/tsconfig.app.json +36 -0
  66. package/drawingBoard-main/drawingBoard-main/tsconfig.json +7 -0
  67. package/drawingBoard-main/drawingBoard-main/tsconfig.node.json +23 -0
  68. package/drawingBoard-main/drawingBoard-main/vite.config.ts +16 -0
  69. package/package.json +1 -1
  70. package/canvas-example-main.zip +0 -0
  71. package/hanzi-writer/.prettierrc.json +0 -7
  72. package/hanzi-writer/COPYING.md +0 -11
  73. package/hanzi-writer/LICENSE +0 -20
  74. package/hanzi-writer/README.md +0 -37
  75. package/hanzi-writer/babel.config.js +0 -14
  76. package/hanzi-writer/dist/types/HanziWriter.d.ts +0 -108
  77. package/hanzi-writer/dist/types/LoadingManager.d.ts +0 -20
  78. package/hanzi-writer/dist/types/Positioner.d.ts +0 -22
  79. package/hanzi-writer/dist/types/Quiz.d.ts +0 -40
  80. package/hanzi-writer/dist/types/RenderState.d.ts +0 -74
  81. package/hanzi-writer/dist/types/__tests__/HanziWriter-test.d.ts +0 -1
  82. package/hanzi-writer/dist/types/__tests__/LoadingManager-test.d.ts +0 -1
  83. package/hanzi-writer/dist/types/__tests__/Mutation-test.d.ts +0 -1
  84. package/hanzi-writer/dist/types/__tests__/Positioner-test.d.ts +0 -1
  85. package/hanzi-writer/dist/types/__tests__/Quiz-test.d.ts +0 -1
  86. package/hanzi-writer/dist/types/__tests__/RenderState-test.d.ts +0 -1
  87. package/hanzi-writer/dist/types/__tests__/defaultCharDataLoader-test.d.ts +0 -1
  88. package/hanzi-writer/dist/types/__tests__/geometry-test.d.ts +0 -1
  89. package/hanzi-writer/dist/types/__tests__/parseCharData-test.d.ts +0 -1
  90. package/hanzi-writer/dist/types/__tests__/strokeMatches-test.d.ts +0 -1
  91. package/hanzi-writer/dist/types/__tests__/utils-test.d.ts +0 -1
  92. package/hanzi-writer/dist/types/characterActions.d.ts +0 -18
  93. package/hanzi-writer/dist/types/defaultCharDataLoader.d.ts +0 -3
  94. package/hanzi-writer/dist/types/defaultOptions.d.ts +0 -3
  95. package/hanzi-writer/dist/types/geometry.d.ts +0 -38
  96. package/hanzi-writer/dist/types/models/Character.d.ts +0 -6
  97. package/hanzi-writer/dist/types/models/Stroke.d.ts +0 -17
  98. package/hanzi-writer/dist/types/models/UserStroke.d.ts +0 -8
  99. package/hanzi-writer/dist/types/parseCharData.d.ts +0 -3
  100. package/hanzi-writer/dist/types/quizActions.d.ts +0 -10
  101. package/hanzi-writer/dist/types/renderers/HanziWriterRendererBase.d.ts +0 -14
  102. package/hanzi-writer/dist/types/renderers/RenderTargetBase.d.ts +0 -22
  103. package/hanzi-writer/dist/types/renderers/StrokeRendererBase.d.ts +0 -13
  104. package/hanzi-writer/dist/types/renderers/canvas/CharacterRenderer.d.ts +0 -14
  105. package/hanzi-writer/dist/types/renderers/canvas/HanziWriterRenderer.d.ts +0 -19
  106. package/hanzi-writer/dist/types/renderers/canvas/RenderTarget.d.ts +0 -6
  107. package/hanzi-writer/dist/types/renderers/canvas/StrokeRenderer.d.ts +0 -16
  108. package/hanzi-writer/dist/types/renderers/canvas/__tests__/CharacterRenderer-test.d.ts +0 -1
  109. package/hanzi-writer/dist/types/renderers/canvas/__tests__/HanziWriterRenderer-test.d.ts +0 -1
  110. package/hanzi-writer/dist/types/renderers/canvas/__tests__/RenderTarget-test.d.ts +0 -1
  111. package/hanzi-writer/dist/types/renderers/canvas/__tests__/StrokeRenderer-test.d.ts +0 -1
  112. package/hanzi-writer/dist/types/renderers/canvas/__tests__/canvasUtils-test.d.ts +0 -1
  113. package/hanzi-writer/dist/types/renderers/canvas/__tests__/renderUserStroke-test.d.ts +0 -1
  114. package/hanzi-writer/dist/types/renderers/canvas/canvasUtils.d.ts +0 -9
  115. package/hanzi-writer/dist/types/renderers/canvas/index.d.ts +0 -7
  116. package/hanzi-writer/dist/types/renderers/canvas/renderUserStroke.d.ts +0 -7
  117. package/hanzi-writer/dist/types/renderers/svg/CharacterRenderer.d.ts +0 -20
  118. package/hanzi-writer/dist/types/renderers/svg/HanziWriterRenderer.d.ts +0 -20
  119. package/hanzi-writer/dist/types/renderers/svg/RenderTarget.d.ts +0 -11
  120. package/hanzi-writer/dist/types/renderers/svg/StrokeRenderer.d.ts +0 -21
  121. package/hanzi-writer/dist/types/renderers/svg/UserStrokeRenderer.d.ts +0 -15
  122. package/hanzi-writer/dist/types/renderers/svg/__tests__/CharacterRenderer-test.d.ts +0 -1
  123. package/hanzi-writer/dist/types/renderers/svg/__tests__/HanziWriterRenderer-test.d.ts +0 -1
  124. package/hanzi-writer/dist/types/renderers/svg/__tests__/StrokeRenderer-test.d.ts +0 -1
  125. package/hanzi-writer/dist/types/renderers/svg/__tests__/svgUtils-test.d.ts +0 -1
  126. package/hanzi-writer/dist/types/renderers/svg/index.d.ts +0 -7
  127. package/hanzi-writer/dist/types/renderers/svg/svgUtils.d.ts +0 -5
  128. package/hanzi-writer/dist/types/strokeMatches.d.ts +0 -14
  129. package/hanzi-writer/dist/types/testUtils.d.ts +0 -1
  130. package/hanzi-writer/dist/types/typings/types.d.ts +0 -121
  131. package/hanzi-writer/dist/types/utils.d.ts +0 -26
  132. package/hanzi-writer/jest-jsdom-env.js +0 -20
  133. package/hanzi-writer/package.json +0 -66
  134. package/hanzi-writer/rollup.config.js +0 -58
  135. package/hanzi-writer/tsconfig.json +0 -79
  136. package/progress-master.zip +0 -0
  137. package/xbossdebug-wechat-master.zip +0 -0
@@ -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.
@@ -1,37 +0,0 @@
1
-
2
- Hanzi Writer
3
- =====================
4
-
5
- [![CircleCI](https://img.shields.io/circleci/project/github/chanind/hanzi-writer/master.svg)](https://circleci.com/gh/chanind/hanzi-writer/tree/master)
6
- [![Codecov](https://img.shields.io/codecov/c/github/chanind/hanzi-writer/master.svg)](https://codecov.io/gh/chanind/hanzi-writer)
7
- [![npm](https://img.shields.io/npm/v/hanzi-writer.svg)](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,14 +0,0 @@
1
- module.exports = {
2
- presets: [
3
- [
4
- '@babel/preset-env',
5
- {
6
- targets: {
7
- browsers: '>2%',
8
- node: '12',
9
- },
10
- },
11
- ],
12
- '@babel/preset-typescript',
13
- ],
14
- };
@@ -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,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,3 +0,0 @@
1
- import { CharacterJson } from './typings/types';
2
- declare const defaultCharDataLoader: (char: string, onLoad: (parsedJson: CharacterJson) => void, onError: (error?: any, context?: any) => void) => void;
3
- export default defaultCharDataLoader;
@@ -1,3 +0,0 @@
1
- import { HanziWriterOptions } from './typings/types';
2
- declare const defaultOptions: HanziWriterOptions;
3
- export default defaultOptions;
@@ -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,6 +0,0 @@
1
- import Stroke from './Stroke';
2
- export default class Character {
3
- symbol: string;
4
- strokes: Stroke[];
5
- constructor(symbol: string, strokes: Stroke[]);
6
- }
@@ -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,3 +0,0 @@
1
- import Character from './models/Character';
2
- import { CharacterJson } from './typings/types';
3
- export default function parseCharData(symbol: string, charJson: CharacterJson): Character;
@@ -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
- }
@@ -1,19 +0,0 @@
1
- import Character from '../../models/Character';
2
- import Positioner from '../../Positioner';
3
- import HanziWriterRendererBase from '../HanziWriterRendererBase';
4
- import CanvasRenderTarget from '../canvas/RenderTarget';
5
- import CharacterRenderer from './CharacterRenderer';
6
- import { RenderStateObject } from '../../RenderState';
7
- export default class HanziWriterRenderer implements HanziWriterRendererBase<HTMLCanvasElement, CanvasRenderTarget> {
8
- _character: Character;
9
- _positioner: Positioner;
10
- _mainCharRenderer: CharacterRenderer;
11
- _outlineCharRenderer: CharacterRenderer;
12
- _highlightCharRenderer: CharacterRenderer;
13
- _target: CanvasRenderTarget | undefined;
14
- constructor(character: Character, positioner: Positioner);
15
- mount(target: CanvasRenderTarget): void;
16
- destroy: () => void;
17
- _animationFrame(cb: (ctx: CanvasRenderingContext2D) => void): void;
18
- render(props: RenderStateObject): void;
19
- }
@@ -1,6 +0,0 @@
1
- import RenderTargetBase from '../RenderTargetBase';
2
- export default class RenderTarget extends RenderTargetBase<HTMLCanvasElement> {
3
- constructor(canvas: HTMLCanvasElement);
4
- static init(elmOrId: string | HTMLCanvasElement, width?: string, height?: string): RenderTarget;
5
- getContext(): CanvasRenderingContext2D | null;
6
- }
@@ -1,16 +0,0 @@
1
- import StrokeRendererBase from '../StrokeRendererBase';
2
- import Stroke from '../../models/Stroke';
3
- import { ColorObject, Point } from '../../typings/types';
4
- /** this is a stroke composed of several stroke parts */
5
- export default class StrokeRenderer extends StrokeRendererBase {
6
- _extendedMaskPoints: Point[];
7
- _path2D: Path2D | undefined;
8
- _pathCmd: ((ctx: CanvasRenderingContext2D) => void) | undefined;
9
- constructor(stroke: Stroke, usePath2D?: boolean);
10
- render(ctx: CanvasRenderingContext2D, props: {
11
- opacity: number;
12
- strokeColor: ColorObject;
13
- radicalColor?: ColorObject | null;
14
- displayPortion: number;
15
- }): void;
16
- }