cbvirtua 1.0.49 → 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.
- 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/package.json +1 -1
- 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
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Point } from '../../typings/types';
|
|
2
|
-
export declare const drawPath: (ctx: CanvasRenderingContext2D, points: Point[]) => void;
|
|
3
|
-
/**
|
|
4
|
-
* Break a path string into a series of canvas path commands
|
|
5
|
-
*
|
|
6
|
-
* Note: only works with the subset of SVG paths used by MakeMeAHanzi data
|
|
7
|
-
* @param pathString
|
|
8
|
-
*/
|
|
9
|
-
export declare const pathStringToCanvas: (pathString: string) => (ctx: CanvasRenderingContext2D) => void;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { RenderTargetInitFunction } from '../../typings/types';
|
|
2
|
-
import HanziWriterRenderer from './HanziWriterRenderer';
|
|
3
|
-
declare const _default: {
|
|
4
|
-
HanziWriterRenderer: typeof HanziWriterRenderer;
|
|
5
|
-
createRenderTarget: RenderTargetInitFunction<HTMLCanvasElement>;
|
|
6
|
-
};
|
|
7
|
-
export default _default;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import StrokeRenderer from './StrokeRenderer';
|
|
2
|
-
import SVGRenderTarget from './RenderTarget';
|
|
3
|
-
import Character from '../../models/Character';
|
|
4
|
-
import { ColorObject } from '../../typings/types';
|
|
5
|
-
import { StrokeRenderState } from '../../RenderState';
|
|
6
|
-
type SvgCharacterRenderProps = {
|
|
7
|
-
opacity: number;
|
|
8
|
-
strokes: Record<number, StrokeRenderState>;
|
|
9
|
-
strokeColor: ColorObject;
|
|
10
|
-
radicalColor?: ColorObject | null;
|
|
11
|
-
};
|
|
12
|
-
export default class CharacterRenderer {
|
|
13
|
-
_oldProps: SvgCharacterRenderProps | undefined;
|
|
14
|
-
_strokeRenderers: StrokeRenderer[];
|
|
15
|
-
_group: SVGElement | SVGSVGElement | undefined;
|
|
16
|
-
constructor(character: Character);
|
|
17
|
-
mount(target: SVGRenderTarget): void;
|
|
18
|
-
render(props: SvgCharacterRenderProps): void;
|
|
19
|
-
}
|
|
20
|
-
export {};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import CharacterRenderer from './CharacterRenderer';
|
|
2
|
-
import UserStrokeRenderer from './UserStrokeRenderer';
|
|
3
|
-
import Character from '../../models/Character';
|
|
4
|
-
import Positioner from '../../Positioner';
|
|
5
|
-
import SVGRenderTarget from './RenderTarget';
|
|
6
|
-
import HanziWriterRendererBase from '../HanziWriterRendererBase';
|
|
7
|
-
import { RenderStateObject } from '../../RenderState';
|
|
8
|
-
export default class HanziWriterRenderer implements HanziWriterRendererBase<SVGElement | SVGSVGElement, SVGRenderTarget> {
|
|
9
|
-
_character: Character;
|
|
10
|
-
_positioner: Positioner;
|
|
11
|
-
_mainCharRenderer: CharacterRenderer;
|
|
12
|
-
_outlineCharRenderer: CharacterRenderer;
|
|
13
|
-
_highlightCharRenderer: CharacterRenderer;
|
|
14
|
-
_userStrokeRenderers: Record<string, UserStrokeRenderer | undefined>;
|
|
15
|
-
_positionedTarget: SVGRenderTarget | undefined;
|
|
16
|
-
constructor(character: Character, positioner: Positioner);
|
|
17
|
-
mount(target: SVGRenderTarget): void;
|
|
18
|
-
render(props: RenderStateObject): void;
|
|
19
|
-
destroy(): void;
|
|
20
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import RenderTargetBase from '../RenderTargetBase';
|
|
2
|
-
export default class RenderTarget extends RenderTargetBase<SVGSVGElement | SVGElement> {
|
|
3
|
-
static init(elmOrId: Element | string, width?: string, height?: string): RenderTarget;
|
|
4
|
-
svg: SVGSVGElement | SVGElement;
|
|
5
|
-
defs: SVGElement;
|
|
6
|
-
_pt: DOMPoint | undefined;
|
|
7
|
-
constructor(svg: SVGElement | SVGSVGElement, defs: SVGElement);
|
|
8
|
-
createSubRenderTarget(): RenderTarget;
|
|
9
|
-
_getMousePoint(evt: MouseEvent): import("../../HanziWriter").Point;
|
|
10
|
-
_getTouchPoint(evt: TouchEvent): import("../../HanziWriter").Point;
|
|
11
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import StrokeRendererBase from '../StrokeRendererBase';
|
|
2
|
-
import Stroke from '../../models/Stroke';
|
|
3
|
-
import SVGRenderTarget from './RenderTarget';
|
|
4
|
-
import { ColorObject } from '../../typings/types';
|
|
5
|
-
type StrokeRenderProps = {
|
|
6
|
-
strokeColor: ColorObject;
|
|
7
|
-
radicalColor: ColorObject | null;
|
|
8
|
-
displayPortion: number;
|
|
9
|
-
opacity: number;
|
|
10
|
-
};
|
|
11
|
-
/** This is a stroke composed of several stroke parts **/
|
|
12
|
-
export default class StrokeRenderer extends StrokeRendererBase {
|
|
13
|
-
_oldProps: StrokeRenderProps | undefined;
|
|
14
|
-
_animationPath: SVGPathElement | undefined;
|
|
15
|
-
_clip: SVGClipPathElement | undefined;
|
|
16
|
-
_strokePath: SVGPathElement | undefined;
|
|
17
|
-
constructor(stroke: Stroke);
|
|
18
|
-
mount(target: SVGRenderTarget): this;
|
|
19
|
-
render(props: StrokeRenderProps): void;
|
|
20
|
-
}
|
|
21
|
-
export {};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ColorObject, Point } from '../../typings/types';
|
|
2
|
-
import SVGRenderTarget from './RenderTarget';
|
|
3
|
-
export type UserStrokeProps = {
|
|
4
|
-
strokeWidth: number;
|
|
5
|
-
strokeColor: ColorObject;
|
|
6
|
-
opacity: number;
|
|
7
|
-
points: Point[];
|
|
8
|
-
};
|
|
9
|
-
export default class UserStrokeRenderer {
|
|
10
|
-
_oldProps: UserStrokeProps | undefined;
|
|
11
|
-
_path: SVGElement | undefined;
|
|
12
|
-
mount(target: SVGRenderTarget): void;
|
|
13
|
-
render(props: UserStrokeProps): void;
|
|
14
|
-
destroy(): void;
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { RenderTargetInitFunction } from '../../typings/types';
|
|
2
|
-
import HanziWriterRenderer from './HanziWriterRenderer';
|
|
3
|
-
declare const _default: {
|
|
4
|
-
HanziWriterRenderer: typeof HanziWriterRenderer;
|
|
5
|
-
createRenderTarget: RenderTargetInitFunction<SVGElement | SVGSVGElement>;
|
|
6
|
-
};
|
|
7
|
-
export default _default;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare function createElm(elmType: string): SVGElement;
|
|
2
|
-
export declare function attr(elm: Element, name: string, value: string): void;
|
|
3
|
-
export declare function attrs(elm: Element, attrsMap: Record<string, string>): void;
|
|
4
|
-
export declare function urlIdRef(id: string): string;
|
|
5
|
-
export declare function removeElm(elm: Element | undefined): void;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import UserStroke from './models/UserStroke';
|
|
2
|
-
import Character from './models/Character';
|
|
3
|
-
export interface StrokeMatchResultMeta {
|
|
4
|
-
isStrokeBackwards: boolean;
|
|
5
|
-
}
|
|
6
|
-
export interface StrokeMatchResult {
|
|
7
|
-
isMatch: boolean;
|
|
8
|
-
meta: StrokeMatchResultMeta;
|
|
9
|
-
}
|
|
10
|
-
export default function strokeMatches(userStroke: UserStroke, character: Character, strokeNum: number, options?: {
|
|
11
|
-
leniency?: number;
|
|
12
|
-
isOutlineVisible?: boolean;
|
|
13
|
-
averageDistanceThreshold?: number;
|
|
14
|
-
}): StrokeMatchResult;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const resolvePromises: (num?: number) => Promise<void>;
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import RenderTargetBase from '../renderers/RenderTargetBase';
|
|
2
|
-
import { HanziWriterRendererConstructor } from '../renderers/HanziWriterRendererBase';
|
|
3
|
-
import type { PositionerOptions } from '../Positioner';
|
|
4
|
-
export type { PositionerOptions };
|
|
5
|
-
export type CharacterJson = {
|
|
6
|
-
strokes: string[];
|
|
7
|
-
medians: number[][][];
|
|
8
|
-
radStrokes?: number[];
|
|
9
|
-
};
|
|
10
|
-
export type CharDataLoaderFn = (char: string, onLoad: (data: CharacterJson) => void, onError: (err?: any) => void) => Promise<CharacterJson> | CharacterJson | void;
|
|
11
|
-
export type Point = {
|
|
12
|
-
x: number;
|
|
13
|
-
y: number;
|
|
14
|
-
};
|
|
15
|
-
export type ColorObject = {
|
|
16
|
-
r: number;
|
|
17
|
-
g: number;
|
|
18
|
-
b: number;
|
|
19
|
-
a: number;
|
|
20
|
-
};
|
|
21
|
-
export type ColorOptions = {
|
|
22
|
-
/** (Hex string, Default: "#555"). The color to draw each stroke. */
|
|
23
|
-
strokeColor: string;
|
|
24
|
-
/** (Hex string, Default: null). The color to draw the radical in the stroke, if radical data is present. Radicals will be drawn the same color as other strokes if this is not set. */
|
|
25
|
-
radicalColor: string | null;
|
|
26
|
-
/** (Hex string, Default: "#AAF"). The color to use for highlighting in quizzes. */
|
|
27
|
-
highlightColor: string;
|
|
28
|
-
/** (Hex string, Default: "#DDD"). The color of the character outline. */
|
|
29
|
-
outlineColor: string;
|
|
30
|
-
/** (Hex string, Default: "#333"). The color of the lines drawn by users during quizzing. */
|
|
31
|
-
drawingColor: string;
|
|
32
|
-
/** (Hex string, Default: null). The color to use when highlighting the character on complete in quizzes. If not set, `highlightColor` will be used instead. Only relevant if `highlightOnComplete` is `true`. */
|
|
33
|
-
highlightCompleteColor: string | null;
|
|
34
|
-
};
|
|
35
|
-
export type OnCompleteFunction = (res: {
|
|
36
|
-
canceled: boolean;
|
|
37
|
-
}) => void;
|
|
38
|
-
/** Creates a render target (e.g. svg, canvas) */
|
|
39
|
-
export type RenderTargetInitFunction<TElement extends HTMLElement | SVGElement | SVGSVGElement | HTMLCanvasElement> = (elmOrId: string | TElement, width?: string | number | null, height?: string | number | null) => RenderTargetBase<TElement>;
|
|
40
|
-
export type StrokeData = {
|
|
41
|
-
character: string;
|
|
42
|
-
drawnPath: {
|
|
43
|
-
pathString: string;
|
|
44
|
-
points: Point[];
|
|
45
|
-
};
|
|
46
|
-
isBackwards: boolean;
|
|
47
|
-
strokeNum: number;
|
|
48
|
-
mistakesOnStroke: number;
|
|
49
|
-
totalMistakes: number;
|
|
50
|
-
strokesRemaining: number;
|
|
51
|
-
};
|
|
52
|
-
export type QuizOptions = {
|
|
53
|
-
/** Default: 1. This can be set to make stroke grading more or less lenient. The closer this is to 0 the more strictly the quiz is graded. */
|
|
54
|
-
leniency: number;
|
|
55
|
-
/** Highlights the correct stroke after a set number of incorrect attempts. Setting `false` disables entirely. Default: 3 */
|
|
56
|
-
showHintAfterMisses: number | false;
|
|
57
|
-
/** After a quiz is completed successfully, the character will flash briefly. Default: true */
|
|
58
|
-
highlightOnComplete: boolean;
|
|
59
|
-
/** Whether to treat strokes which are correct besides their direction as correct. */
|
|
60
|
-
acceptBackwardsStrokes: boolean;
|
|
61
|
-
/** Begin quiz on this stroke number rather than stroke 0 */
|
|
62
|
-
quizStartStrokeNum: number;
|
|
63
|
-
/** After a user makes this many mistakes, just mark the stroke correct and move on. Default: false */
|
|
64
|
-
markStrokeCorrectAfterMisses: number | false;
|
|
65
|
-
/** bigger = more lenient */
|
|
66
|
-
averageDistanceThreshold: number;
|
|
67
|
-
onMistake?: (strokeData: StrokeData) => void;
|
|
68
|
-
onCorrectStroke?: (strokeData: StrokeData) => void;
|
|
69
|
-
/** Callback when the quiz completes */
|
|
70
|
-
onComplete?: (summary: {
|
|
71
|
-
character: string;
|
|
72
|
-
totalMistakes: number;
|
|
73
|
-
}) => void;
|
|
74
|
-
};
|
|
75
|
-
export type LoadingManagerOptions = {
|
|
76
|
-
charDataLoader: CharDataLoaderFn;
|
|
77
|
-
onLoadCharDataSuccess?: null | ((data: CharacterJson) => void);
|
|
78
|
-
onLoadCharDataError?: null | ((error?: Error | string) => void);
|
|
79
|
-
};
|
|
80
|
-
type BaseHanziWriterOptions = {
|
|
81
|
-
showOutline: boolean;
|
|
82
|
-
showCharacter: boolean;
|
|
83
|
-
/** Default: svg */
|
|
84
|
-
renderer: 'svg' | 'canvas';
|
|
85
|
-
/** Default: 1 */
|
|
86
|
-
strokeAnimationSpeed: number;
|
|
87
|
-
/** Default: 400 */
|
|
88
|
-
strokeFadeDuration: number;
|
|
89
|
-
/** Default: 2 */
|
|
90
|
-
strokeHighlightSpeed: number;
|
|
91
|
-
/** Default: 1000 */
|
|
92
|
-
delayBetweenStrokes: number;
|
|
93
|
-
/** Default: 2000 */
|
|
94
|
-
delayBetweenLoops: number;
|
|
95
|
-
/** Default: 300 */
|
|
96
|
-
drawingFadeDuration: number;
|
|
97
|
-
/** Default: 4 */
|
|
98
|
-
drawingWidth: number;
|
|
99
|
-
/** Default: 2 */
|
|
100
|
-
strokeWidth: number;
|
|
101
|
-
/** Default: 2 */
|
|
102
|
-
outlineWidth: number;
|
|
103
|
-
rendererOverride: {
|
|
104
|
-
HanziWriterRenderer?: HanziWriterRendererConstructor;
|
|
105
|
-
createRenderTarget?: RenderTargetInitFunction<any>;
|
|
106
|
-
};
|
|
107
|
-
/** @deprecated Use `strokeAnimationSpeed` */
|
|
108
|
-
strokeAnimationDuration?: number;
|
|
109
|
-
/** @deprecated Use `strokeHighlightSpeed` */
|
|
110
|
-
strokeHighlightDuration: number;
|
|
111
|
-
};
|
|
112
|
-
export type HanziWriterOptions = Partial<PositionerOptions> & QuizOptions & ColorOptions & LoadingManagerOptions & BaseHanziWriterOptions;
|
|
113
|
-
export type DimensionOptions = {
|
|
114
|
-
width: number;
|
|
115
|
-
height: number;
|
|
116
|
-
padding: number;
|
|
117
|
-
};
|
|
118
|
-
export type ParsedHanziWriterOptions = QuizOptions & LoadingManagerOptions & BaseHanziWriterOptions & ColorOptions & DimensionOptions;
|
|
119
|
-
export type RecursivePartial<T> = {
|
|
120
|
-
[P in keyof T]?: RecursivePartial<T[P]>;
|
|
121
|
-
};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ColorObject, RecursivePartial } from './typings/types';
|
|
2
|
-
export declare const performanceNow: any;
|
|
3
|
-
export declare const requestAnimationFrame: any;
|
|
4
|
-
export declare const cancelAnimationFrame: any;
|
|
5
|
-
export declare const _assign: (target: any, ...overrides: any[]) => any;
|
|
6
|
-
export declare const assign: {
|
|
7
|
-
<T extends {}, U>(target: T, source: U): T & U;
|
|
8
|
-
<T_1 extends {}, U_1, V>(target: T_1, source1: U_1, source2: V): T_1 & U_1 & V;
|
|
9
|
-
<T_2 extends {}, U_2, V_1, W>(target: T_2, source1: U_2, source2: V_1, source3: W): T_2 & U_2 & V_1 & W;
|
|
10
|
-
(target: object, ...sources: any[]): any;
|
|
11
|
-
};
|
|
12
|
-
export declare function arrLast<TValue>(arr: Array<TValue>): TValue;
|
|
13
|
-
export declare const fixIndex: (index: number, length: number) => number;
|
|
14
|
-
export declare const selectIndex: <T>(arr: T[], index: number) => T;
|
|
15
|
-
export declare function copyAndMergeDeep<T>(base: T, override: RecursivePartial<T> | undefined): T;
|
|
16
|
-
/** basically a simplified version of lodash.get, selects a key out of an object like 'a.b' from {a: {b: 7}} */
|
|
17
|
-
export declare function inflate(scope: string, obj: any): any;
|
|
18
|
-
export declare function counter(): number;
|
|
19
|
-
export declare function average(arr: number[]): number;
|
|
20
|
-
export declare function timeout(duration?: number): Promise<unknown>;
|
|
21
|
-
export declare function colorStringToVals(colorString: string): ColorObject;
|
|
22
|
-
export declare const trim: (string: string) => string;
|
|
23
|
-
export declare function objRepeat<T>(item: T, times: number): Record<number, T>;
|
|
24
|
-
export declare function objRepeatCb<T>(times: number, cb: (i: number) => T): Record<number, T>;
|
|
25
|
-
export declare const isMsBrowser: boolean;
|
|
26
|
-
export declare const noop: () => void;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hack to allow us to modify jsdom from within tests
|
|
3
|
-
* from https://github.com/facebook/jest/issues/5124#issuecomment-352749005
|
|
4
|
-
* */
|
|
5
|
-
|
|
6
|
-
const JSDOMEnvironment = require('jest-environment-jsdom');
|
|
7
|
-
|
|
8
|
-
module.exports = class JSDOMEnvironmentGlobal extends JSDOMEnvironment {
|
|
9
|
-
constructor(config) {
|
|
10
|
-
super(config);
|
|
11
|
-
|
|
12
|
-
this.global.jsdom = this.dom;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
teardown() {
|
|
16
|
-
this.global.jsdom = null;
|
|
17
|
-
|
|
18
|
-
return super.teardown();
|
|
19
|
-
}
|
|
20
|
-
};
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "hanzi-writer",
|
|
3
|
-
"version": "3.0.0",
|
|
4
|
-
"author": "David Chanin <chanindav@gmail.com> (http://chanind.github.io/hanzi-writer/)",
|
|
5
|
-
"description": "Hanzi Writer is a free and open-source javascript library for both animating simplified Chinese characters and quizzing users on character stroke order.",
|
|
6
|
-
"repository": "chanind/hanzi-writer",
|
|
7
|
-
"main": "dist/index.cjs.js",
|
|
8
|
-
"module": "dist/index.esm.js",
|
|
9
|
-
"types": "dist/types/index.esm.d.ts",
|
|
10
|
-
"license": "MIT",
|
|
11
|
-
"devDependencies": {
|
|
12
|
-
"@babel/core": "^7.12.10",
|
|
13
|
-
"@babel/preset-env": "^7.12.11",
|
|
14
|
-
"@babel/preset-typescript": "^7.12.7",
|
|
15
|
-
"@rollup/plugin-babel": "^5.2.2",
|
|
16
|
-
"@rollup/plugin-node-resolve": "^11.1.0",
|
|
17
|
-
"@sinonjs/fake-timers": "^7.0.2",
|
|
18
|
-
"@types/jest": "^26.0.20",
|
|
19
|
-
"@types/nise": "^1.4.0",
|
|
20
|
-
"@types/sinonjs__fake-timers": "^6.0.2",
|
|
21
|
-
"@typescript-eslint/eslint-plugin": "^4.14.0",
|
|
22
|
-
"@typescript-eslint/parser": "^4.14.0",
|
|
23
|
-
"@wessberg/rollup-plugin-ts": "^1.3.8",
|
|
24
|
-
"codecov": "^3.8.1",
|
|
25
|
-
"eslint": "^7.18.0",
|
|
26
|
-
"hanzi-writer-data": "^2.0.1",
|
|
27
|
-
"jest-canvas-mock": "2.1.0",
|
|
28
|
-
"jest-cli": "^26.6.3",
|
|
29
|
-
"jest-fetch-mock": "^3.0.3",
|
|
30
|
-
"nise": "^4.0.4",
|
|
31
|
-
"prettier": "^2.2.1",
|
|
32
|
-
"rollup": "^2.36.2",
|
|
33
|
-
"rollup-plugin-filesize": "^9.1.0",
|
|
34
|
-
"rollup-plugin-license": "^2.2.0",
|
|
35
|
-
"rollup-plugin-terser": "^7.0.2",
|
|
36
|
-
"semantic-release": "^17.3.3",
|
|
37
|
-
"typescript": "^4.1.3"
|
|
38
|
-
},
|
|
39
|
-
"scripts": {
|
|
40
|
-
"test": "jest",
|
|
41
|
-
"lint-test": "eslint -c .eslintrc src",
|
|
42
|
-
"lint-fix": "eslint --fix --ext .tsx,.ts .",
|
|
43
|
-
"build": "rm -rf dist && rollup -c",
|
|
44
|
-
"prepublishOnly": "rollup -c",
|
|
45
|
-
"semantic-release": "semantic-release",
|
|
46
|
-
"prettier": "prettier -w src",
|
|
47
|
-
"typecheck": "tsc --noEmit --skipLibCheck"
|
|
48
|
-
},
|
|
49
|
-
"files": [
|
|
50
|
-
"dist"
|
|
51
|
-
],
|
|
52
|
-
"jest": {
|
|
53
|
-
"setupFiles": [
|
|
54
|
-
"jest-canvas-mock"
|
|
55
|
-
],
|
|
56
|
-
"setupFilesAfterEnv": [
|
|
57
|
-
"<rootDir>/../jest-setup.js"
|
|
58
|
-
],
|
|
59
|
-
"rootDir": "src",
|
|
60
|
-
"coverageDirectory": "../coverage/",
|
|
61
|
-
"testURL": "https://test.com/url#tag",
|
|
62
|
-
"collectCoverage": true,
|
|
63
|
-
"testEnvironment": "<rootDir>/../jest-jsdom-env"
|
|
64
|
-
},
|
|
65
|
-
"dependencies": {}
|
|
66
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { terser } from 'rollup-plugin-terser';
|
|
2
|
-
import ts from '@wessberg/rollup-plugin-ts';
|
|
3
|
-
import resolve from '@rollup/plugin-node-resolve';
|
|
4
|
-
import babel from '@rollup/plugin-babel';
|
|
5
|
-
import pkg from './package.json';
|
|
6
|
-
import license from 'rollup-plugin-license';
|
|
7
|
-
import filesize from 'rollup-plugin-filesize';
|
|
8
|
-
|
|
9
|
-
const extensions = ['.js', '.ts'];
|
|
10
|
-
|
|
11
|
-
export default [
|
|
12
|
-
{
|
|
13
|
-
input: 'src/HanziWriter.ts',
|
|
14
|
-
output: [
|
|
15
|
-
{
|
|
16
|
-
file: pkg.main,
|
|
17
|
-
format: 'cjs',
|
|
18
|
-
sourcemap: true,
|
|
19
|
-
exports: 'auto',
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
file: 'dist/hanzi-writer.min.js',
|
|
23
|
-
format: 'iife',
|
|
24
|
-
name: 'HanziWriter',
|
|
25
|
-
sourcemap: true,
|
|
26
|
-
plugins: [terser()],
|
|
27
|
-
exports: 'default',
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
file: 'dist/hanzi-writer.js',
|
|
31
|
-
format: 'iife',
|
|
32
|
-
name: 'HanziWriter',
|
|
33
|
-
exports: 'default',
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
file: pkg.module,
|
|
37
|
-
format: 'es',
|
|
38
|
-
sourcemap: true,
|
|
39
|
-
exports: 'default',
|
|
40
|
-
},
|
|
41
|
-
],
|
|
42
|
-
plugins: [
|
|
43
|
-
filesize(),
|
|
44
|
-
ts({
|
|
45
|
-
transpiler: 'babel',
|
|
46
|
-
}),
|
|
47
|
-
resolve({ extensions }),
|
|
48
|
-
babel({
|
|
49
|
-
exclude: 'node_modules/**',
|
|
50
|
-
extensions,
|
|
51
|
-
babelHelpers: 'bundled',
|
|
52
|
-
}),
|
|
53
|
-
license({
|
|
54
|
-
banner: `Hanzi Writer v<%= pkg.version %> | https://chanind.github.io/hanzi-writer`,
|
|
55
|
-
}),
|
|
56
|
-
],
|
|
57
|
-
},
|
|
58
|
-
];
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
/* Visit https://aka.ms/tsconfig.json to read more about this file */
|
|
4
|
-
|
|
5
|
-
"baseUrl": "src",
|
|
6
|
-
/* Basic Options */
|
|
7
|
-
// "incremental": true, /* Enable incremental compilation */
|
|
8
|
-
"target": "ESNEXT" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */,
|
|
9
|
-
"module": "esnext" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,
|
|
10
|
-
"resolveJsonModule": true,
|
|
11
|
-
"lib": [
|
|
12
|
-
"ES2015",
|
|
13
|
-
"DOM",
|
|
14
|
-
"DOM.Iterable"
|
|
15
|
-
] /* Specify library files to be included in the compilation. */,
|
|
16
|
-
|
|
17
|
-
"declaration": true,
|
|
18
|
-
"declarationDir": "dist/types",
|
|
19
|
-
// "allowJs": true, /* Allow javascript files to be compiled. */
|
|
20
|
-
// "checkJs": true, /* Report errors in .js files. */
|
|
21
|
-
// "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
|
|
22
|
-
// "declaration": true, /* Generates corresponding '.d.ts' file. */
|
|
23
|
-
// "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
|
|
24
|
-
// "sourceMap": true, /* Generates corresponding '.map' file. */
|
|
25
|
-
// "outFile": "./", /* Concatenate and emit output to single file. */
|
|
26
|
-
// "outDir": "./", /* Redirect output structure to the directory. */
|
|
27
|
-
// "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
|
|
28
|
-
// "composite": true, /* Enable project compilation */
|
|
29
|
-
// "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */
|
|
30
|
-
// "removeComments": true, /* Do not emit comments to output. */
|
|
31
|
-
// "noEmit": true, /* Do not emit outputs. */
|
|
32
|
-
// "importHelpers": true, /* Import emit helpers from 'tslib'. */
|
|
33
|
-
// "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
|
|
34
|
-
"isolatedModules": true /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */,
|
|
35
|
-
|
|
36
|
-
/* Strict Type-Checking Options */
|
|
37
|
-
"strict": true /* Enable all strict type-checking options. */,
|
|
38
|
-
"noImplicitAny": false /* Raise error on expressions and declarations with an implied 'any' type. */,
|
|
39
|
-
// "strictNullChecks": true, /* Enable strict null checks. */
|
|
40
|
-
// "strictFunctionTypes": true, /* Enable strict checking of function types. */
|
|
41
|
-
// "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
|
|
42
|
-
// "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
|
|
43
|
-
// "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
|
|
44
|
-
// "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
|
|
45
|
-
|
|
46
|
-
/* Additional Checks */
|
|
47
|
-
// "noUnusedLocals": true, /* Report errors on unused locals. */
|
|
48
|
-
// "noUnusedParameters": true, /* Report errors on unused parameters. */
|
|
49
|
-
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
|
|
50
|
-
"noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */,
|
|
51
|
-
|
|
52
|
-
/* Module Resolution Options */
|
|
53
|
-
"moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */,
|
|
54
|
-
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
|
|
55
|
-
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
|
|
56
|
-
// "typeRoots": [], /* List of folders to include type definitions from. */
|
|
57
|
-
// "types": [], /* Type declaration files to be included in compilation. */
|
|
58
|
-
"allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */,
|
|
59
|
-
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
|
|
60
|
-
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
|
|
61
|
-
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
|
|
62
|
-
|
|
63
|
-
/* Source Map Options */
|
|
64
|
-
// "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
|
|
65
|
-
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
|
|
66
|
-
// "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
|
|
67
|
-
// "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
|
|
68
|
-
|
|
69
|
-
/* Experimental Options */
|
|
70
|
-
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
|
|
71
|
-
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
|
|
72
|
-
|
|
73
|
-
/* Advanced Options */
|
|
74
|
-
"skipLibCheck": true /* Skip type checking of declaration files. */,
|
|
75
|
-
"forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */
|
|
76
|
-
},
|
|
77
|
-
"include": ["src"],
|
|
78
|
-
"exclude": ["node_modules", "dist"]
|
|
79
|
-
}
|