@wcardinal/wcardinal-ui 0.269.0 → 0.270.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/wcardinal/ui/snapper/e-snapper-grid.d.ts +3 -3
- package/dist/types/wcardinal/ui/snapper/e-snapper-target.d.ts +2 -2
- package/dist/types/wcardinal/ui/snapper/e-snapper.d.ts +1 -1
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-diagram-editor.d.ts +6 -6
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-diagram-editor.d.ts +6 -6
- package/dist/wcardinal/ui/snapper/e-snapper-grid.js +3 -3
- package/dist/wcardinal/ui/snapper/e-snapper-grid.js.map +1 -1
- package/dist/wcardinal/ui/snapper/e-snapper-target.js +2 -2
- package/dist/wcardinal/ui/snapper/e-snapper-target.js.map +1 -1
- package/dist/wcardinal/ui/snapper/e-snapper.js +1 -1
- package/dist/wcardinal/ui/snapper/e-snapper.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-diagram-editor.js +6 -6
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-diagram-editor.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-diagram-editor.js +6 -6
- package/dist/wcardinal/ui/theme/white/d-theme-white-diagram-editor.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +7 -7
- package/dist/wcardinal-ui-theme-dark.min.js +2 -2
- package/dist/wcardinal-ui-theme-dark.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-white.js +7 -7
- package/dist/wcardinal-ui-theme-white.min.js +2 -2
- package/dist/wcardinal-ui-theme-white.min.js.map +1 -1
- package/dist/wcardinal-ui.cjs.js +19 -19
- package/dist/wcardinal-ui.js +7 -7
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,9 +7,9 @@ export interface ESnapperGridOptions {
|
|
|
7
7
|
size?: number;
|
|
8
8
|
}
|
|
9
9
|
export interface EThemeSnapperGrid {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
isSnapGridVisible(): boolean;
|
|
11
|
+
isSnapGridEnabled(): boolean;
|
|
12
|
+
getSnapGridSize(): number;
|
|
13
13
|
}
|
|
14
14
|
export declare class ESnapperGrid extends utils.EventEmitter {
|
|
15
15
|
protected _isEnabled: boolean;
|
|
@@ -7,8 +7,8 @@ export interface ESnapperTargetOptions {
|
|
|
7
7
|
enable?: boolean;
|
|
8
8
|
}
|
|
9
9
|
export interface EThemeSnapperTarget {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
isSnapTargetVisible(): boolean;
|
|
11
|
+
isSnapTargetEnabled(): boolean;
|
|
12
12
|
}
|
|
13
13
|
export declare class ESnapperTarget extends utils.EventEmitter {
|
|
14
14
|
values: ESnapperTargetValue[];
|
|
@@ -38,7 +38,7 @@ export interface ESnapperOptions {
|
|
|
38
38
|
target?: ESnapperTargetOptions;
|
|
39
39
|
}
|
|
40
40
|
export interface EThemeSnapper extends EThemeSnapperGrid, EThemeSnapperTarget {
|
|
41
|
-
|
|
41
|
+
isSnapEnabled(): boolean;
|
|
42
42
|
}
|
|
43
43
|
export declare class ESnapper extends utils.EventEmitter {
|
|
44
44
|
protected _points: Point[];
|
|
@@ -4,10 +4,10 @@ export declare class DThemeDarkDiagramEditor extends DThemeDarkDiagramBase imple
|
|
|
4
4
|
isAmbient(): boolean;
|
|
5
5
|
isThumbnailEnabled(): boolean;
|
|
6
6
|
getThumbnailSize(): number | null;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
isSnapEnabled(): boolean;
|
|
8
|
+
isSnapGridVisible(): boolean;
|
|
9
|
+
isSnapGridEnabled(): boolean;
|
|
10
|
+
getSnapGridSize(): number;
|
|
11
|
+
isSnapTargetVisible(): boolean;
|
|
12
|
+
isSnapTargetEnabled(): boolean;
|
|
13
13
|
}
|
|
@@ -4,10 +4,10 @@ export declare class DThemeWhiteDiagramEditor extends DThemeWhiteDiagramBase imp
|
|
|
4
4
|
isAmbient(): boolean;
|
|
5
5
|
isThumbnailEnabled(): boolean;
|
|
6
6
|
getThumbnailSize(): number | null;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
isSnapEnabled(): boolean;
|
|
8
|
+
isSnapGridVisible(): boolean;
|
|
9
|
+
isSnapGridEnabled(): boolean;
|
|
10
|
+
getSnapGridSize(): number;
|
|
11
|
+
isSnapTargetVisible(): boolean;
|
|
12
|
+
isSnapTargetEnabled(): boolean;
|
|
13
13
|
}
|
|
@@ -10,11 +10,11 @@ var ESnapperGrid = /** @class */ (function (_super) {
|
|
|
10
10
|
var _this = this;
|
|
11
11
|
var _a, _b, _c;
|
|
12
12
|
_this = _super.call(this) || this;
|
|
13
|
-
_this._isVisibleDefault = (_a = options === null || options === void 0 ? void 0 : options.visible) !== null && _a !== void 0 ? _a : theme.
|
|
13
|
+
_this._isVisibleDefault = (_a = options === null || options === void 0 ? void 0 : options.visible) !== null && _a !== void 0 ? _a : theme.isSnapGridVisible();
|
|
14
14
|
_this._isVisible = _this._isVisibleDefault;
|
|
15
|
-
_this._isEnabledDefault = (_b = options === null || options === void 0 ? void 0 : options.enable) !== null && _b !== void 0 ? _b : theme.
|
|
15
|
+
_this._isEnabledDefault = (_b = options === null || options === void 0 ? void 0 : options.enable) !== null && _b !== void 0 ? _b : theme.isSnapGridEnabled();
|
|
16
16
|
_this._isEnabled = _this._isEnabledDefault;
|
|
17
|
-
_this._sizeDefault = (_c = options === null || options === void 0 ? void 0 : options.size) !== null && _c !== void 0 ? _c : theme.
|
|
17
|
+
_this._sizeDefault = (_c = options === null || options === void 0 ? void 0 : options.size) !== null && _c !== void 0 ? _c : theme.getSnapGridSize();
|
|
18
18
|
_this._size = _this._sizeDefault;
|
|
19
19
|
return _this;
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-snapper-grid.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/snapper/e-snapper-grid.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAehC;IAAkC,gCAAkB;IAQnD,sBAAY,KAAwB,EAAE,OAA6B;QAAnE,iBAQC;;gBAPA,iBAAO;QACP,KAAI,CAAC,iBAAiB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"e-snapper-grid.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/snapper/e-snapper-grid.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\nimport { DDiagramSerializedSnapGrid } from \"../d-diagram-serialized\";\nimport { ESnapperResult } from \"./e-snapper-result\";\n\nexport interface ESnapperGridOptions {\n\tvisible?: boolean;\n\tenable?: boolean;\n\tsize?: number;\n}\nexport interface EThemeSnapperGrid {\n\tisSnapGridVisible(): boolean;\n\tisSnapGridEnabled(): boolean;\n\tgetSnapGridSize(): number;\n}\n\nexport class ESnapperGrid extends utils.EventEmitter {\n\tprotected _isEnabled: boolean;\n\tprotected _isEnabledDefault: boolean;\n\tprotected _size: number;\n\tprotected _sizeDefault: number;\n\tprotected _isVisible: boolean;\n\tprotected _isVisibleDefault: boolean;\n\n\tconstructor(theme: EThemeSnapperGrid, options?: ESnapperGridOptions) {\n\t\tsuper();\n\t\tthis._isVisibleDefault = options?.visible ?? theme.isSnapGridVisible();\n\t\tthis._isVisible = this._isVisibleDefault;\n\t\tthis._isEnabledDefault = options?.enable ?? theme.isSnapGridEnabled();\n\t\tthis._isEnabled = this._isEnabledDefault;\n\t\tthis._sizeDefault = options?.size ?? theme.getSnapGridSize();\n\t\tthis._size = this._sizeDefault;\n\t}\n\n\tget visible(): boolean {\n\t\treturn this._isVisible;\n\t}\n\n\tset visible(visible: boolean) {\n\t\tif (this._isVisible !== visible) {\n\t\t\tthis._isVisible = visible;\n\t\t\tthis.emit(\"change\", this);\n\t\t}\n\t}\n\n\tget enable(): boolean {\n\t\treturn this._isEnabled;\n\t}\n\n\tset enable(enable: boolean) {\n\t\tif (this._isEnabled !== enable) {\n\t\t\tthis._isEnabled = enable;\n\t\t\tthis.emit(\"change\", this);\n\t\t}\n\t}\n\n\tget size(): number {\n\t\treturn this._size;\n\t}\n\n\tset size(size: number) {\n\t\tif (this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tthis.emit(\"change\", size, this);\n\t\t}\n\t}\n\n\tsnap(value: number, result: ESnapperResult): void {\n\t\tif (this._isEnabled) {\n\t\t\tconst size = this._size;\n\t\t\tresult.set(value, Math.round(value / size) * size);\n\t\t}\n\t}\n\n\treset(): void {\n\t\tthis._isVisible = this._isVisibleDefault;\n\t\tthis._isEnabled = this._isEnabledDefault;\n\t\tthis._size = this._sizeDefault;\n\t\tthis.emit(\"change\", this);\n\t}\n\n\tserialize(): DDiagramSerializedSnapGrid {\n\t\treturn [this._isEnabled ? 1 : 0, this._isVisible ? 1 : 0, this._size];\n\t}\n\n\tdeserialize(serialized: DDiagramSerializedSnapGrid): void {\n\t\tthis.enable = !!serialized[0];\n\t\tif (2 in serialized) {\n\t\t\tthis.visible = !!serialized[1];\n\t\t\tthis.size = (serialized as any)[2];\n\t\t} else {\n\t\t\tthis.visible = false;\n\t\t\tthis.size = serialized[1];\n\t\t}\n\t}\n}\n"]}
|
|
@@ -12,9 +12,9 @@ var ESnapperTarget = /** @class */ (function (_super) {
|
|
|
12
12
|
var _a, _b;
|
|
13
13
|
_this = _super.call(this) || this;
|
|
14
14
|
_this.values = [];
|
|
15
|
-
_this._isVisibleDefault = (_a = options === null || options === void 0 ? void 0 : options.visible) !== null && _a !== void 0 ? _a : theme.
|
|
15
|
+
_this._isVisibleDefault = (_a = options === null || options === void 0 ? void 0 : options.visible) !== null && _a !== void 0 ? _a : theme.isSnapTargetVisible();
|
|
16
16
|
_this._isVisible = _this._isVisibleDefault;
|
|
17
|
-
_this._isEnabledDefault = (_b = options === null || options === void 0 ? void 0 : options.enable) !== null && _b !== void 0 ? _b : theme.
|
|
17
|
+
_this._isEnabledDefault = (_b = options === null || options === void 0 ? void 0 : options.enable) !== null && _b !== void 0 ? _b : theme.isSnapTargetEnabled();
|
|
18
18
|
_this._isEnabled = _this._isEnabledDefault;
|
|
19
19
|
return _this;
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-snapper-target.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/snapper/e-snapper-target.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAMhC,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAYxF;IAAoC,kCAAkB;IAOrD,wBAAY,KAA0B,EAAE,OAA+B;QAAvE,iBAOC;;gBANA,iBAAO;QACP,KAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,KAAI,CAAC,iBAAiB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"e-snapper-target.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/snapper/e-snapper-target.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\nimport {\n\tDDiagramSerializedSnapTarget,\n\tDDiagramSerializedSnapTargetValue\n} from \"../d-diagram-serialized\";\nimport { ESnapperResult } from \"./e-snapper-result\";\nimport { ESnapperTargetValue, ESnapperTargetValueType } from \"./e-snapper-target-value\";\n\nexport interface ESnapperTargetOptions {\n\tvisible?: boolean;\n\tenable?: boolean;\n}\n\nexport interface EThemeSnapperTarget {\n\tisSnapTargetVisible(): boolean;\n\tisSnapTargetEnabled(): boolean;\n}\n\nexport class ESnapperTarget extends utils.EventEmitter {\n\tvalues: ESnapperTargetValue[];\n\tprotected _isVisible: boolean;\n\tprotected _isVisibleDefault: boolean;\n\tprotected _isEnabled: boolean;\n\tprotected _isEnabledDefault: boolean;\n\n\tconstructor(theme: EThemeSnapperTarget, options?: ESnapperTargetOptions) {\n\t\tsuper();\n\t\tthis.values = [];\n\t\tthis._isVisibleDefault = options?.visible ?? theme.isSnapTargetVisible();\n\t\tthis._isVisible = this._isVisibleDefault;\n\t\tthis._isEnabledDefault = options?.enable ?? theme.isSnapTargetEnabled();\n\t\tthis._isEnabled = this._isEnabledDefault;\n\t}\n\n\tget enable(): boolean {\n\t\treturn this._isEnabled;\n\t}\n\n\tset enable(enable: boolean) {\n\t\tif (this._isEnabled !== enable) {\n\t\t\tthis._isEnabled = enable;\n\t\t\tthis.emit(\"change\", this);\n\t\t}\n\t}\n\n\tget visible(): boolean {\n\t\treturn this._isVisible;\n\t}\n\n\tset visible(visible: boolean) {\n\t\tif (this._isVisible !== visible) {\n\t\t\tthis._isVisible = visible;\n\t\t\tthis.emit(\"change\", this);\n\t\t}\n\t}\n\n\tget size(): number {\n\t\treturn this.values.length;\n\t}\n\n\tadd(target: ESnapperTargetValue, index?: number): void {\n\t\tif (index != null) {\n\t\t\tthis.values.splice(index, 0, target);\n\t\t} else {\n\t\t\tthis.values.push(target);\n\t\t}\n\t\tthis.emit(\"change\", this);\n\t}\n\n\tremove(index: number): void {\n\t\tconst values = this.values;\n\t\tif (0 <= index && index < values.length) {\n\t\t\tvalues.splice(index, 1);\n\t\t\tthis.emit(\"change\", this);\n\t\t}\n\t}\n\n\treplace(index: number, value: ESnapperTargetValue): ESnapperTargetValue | null {\n\t\tconst values = this.values;\n\t\tif (0 <= index && index < values.length) {\n\t\t\tconst result = values[index];\n\t\t\tvalues[index] = value;\n\t\t\tthis.emit(\"change\", this);\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tswap(indexA: number, indexB: number): void {\n\t\tif (indexA !== indexB) {\n\t\t\tconst values = this.values;\n\t\t\tconst valueA = values[indexA];\n\t\t\tvalues[indexA] = values[indexB];\n\t\t\tvalues[indexB] = valueA;\n\t\t\tthis.emit(\"change\", this);\n\t\t}\n\t}\n\n\tsnap(px: number, py: number, x: ESnapperResult, y: ESnapperResult): void {\n\t\tif (this._isEnabled) {\n\t\t\tconst values = this.values;\n\t\t\tfor (let i = 0, imax = values.length; i < imax; ++i) {\n\t\t\t\tconst value = values[i];\n\t\t\t\tif (value.type === ESnapperTargetValueType.VERTICAL) {\n\t\t\t\t\tx.set(px, value.position);\n\t\t\t\t} else {\n\t\t\t\t\ty.set(py, value.position);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treset(): void {\n\t\tthis._isEnabled = this._isEnabledDefault;\n\t\tthis._isVisible = this._isVisibleDefault;\n\t\tthis.values.length = 0;\n\t\tthis.emit(\"change\", this);\n\t}\n\n\tserialize(): DDiagramSerializedSnapTarget {\n\t\tconst targets: DDiagramSerializedSnapTargetValue[] = [];\n\t\tconst values = this.values;\n\t\tfor (let i = 0, imax = values.length; i < imax; ++i) {\n\t\t\ttargets.push(values[i].serialize());\n\t\t}\n\t\treturn [this._isEnabled ? 1 : 0, this._isVisible ? 1 : 0, targets];\n\t}\n\n\tdeserialize(serialized: DDiagramSerializedSnapTarget): void {\n\t\t// Availability\n\t\tthis._isEnabled = !!serialized[0];\n\n\t\t// Visibility\n\t\tthis._isVisible = !!serialized[1];\n\n\t\t// Values\n\t\tconst sources = serialized[2];\n\t\tconst values = this.values;\n\t\tvalues.length = 0;\n\t\tfor (let i = 0, imax = sources.length; i < imax; ++i) {\n\t\t\tconst source = sources[i];\n\t\t\tvalues.push(new ESnapperTargetValue(source[0], source[1]));\n\t\t}\n\t\tthis.emit(\"change\", this);\n\t}\n}\n"]}
|
|
@@ -49,7 +49,7 @@ var ESnapper = /** @class */ (function (_super) {
|
|
|
49
49
|
_this.grid = new ESnapperGrid(theme, options === null || options === void 0 ? void 0 : options.grid);
|
|
50
50
|
_this.target = new ESnapperTarget(theme, options === null || options === void 0 ? void 0 : options.target);
|
|
51
51
|
_this._parent = parent;
|
|
52
|
-
_this._isEnabledDefault = (_a = options === null || options === void 0 ? void 0 : options.enable) !== null && _a !== void 0 ? _a : theme.
|
|
52
|
+
_this._isEnabledDefault = (_a = options === null || options === void 0 ? void 0 : options.enable) !== null && _a !== void 0 ? _a : theme.isSnapEnabled();
|
|
53
53
|
_this._isEnabled = _this._isEnabledDefault;
|
|
54
54
|
return _this;
|
|
55
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-snapper.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/snapper/e-snapper.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DisplayObject, IPoint, Matrix, Point, Rectangle, utils } from \"pixi.js\";\nimport { DDiagramSerializedSnap } from \"../d-diagram-serialized\";\nimport { isNaN } from \"../util/is-nan\";\nimport { ESnapperGrid, ESnapperGridOptions, EThemeSnapperGrid } from \"./e-snapper-grid\";\nimport { ESnapperResult } from \"./e-snapper-result\";\nimport { ESnapperResultScale } from \"./e-snapper-result-scale\";\nimport { ESnapperTarget, ESnapperTargetOptions, EThemeSnapperTarget } from \"./e-snapper-target\";\n\nconst EPSILON = 0.00001;\n\nexport interface ESnapperModifier extends DisplayObject {\n\twidth: number;\n\theight: number;\n}\n\nexport const ESnapperModifierAnchor = {\n\tNONE: 0,\n\tTOP_LEFT: 1,\n\tTOP_CENTER: 2,\n\tTOP_RIGHT: 3,\n\tMIDDLE_LEFT: 4,\n\tMIDDLE_RIGHT: 5,\n\tBOTTOM_LEFT: 6,\n\tBOTTOM_CENTER: 7,\n\tBOTTOM_RIGHT: 8,\n\tROTATION: 9\n} as const;\n\nexport type ESnapperModifierAnchor =\n\ttypeof ESnapperModifierAnchor[keyof typeof ESnapperModifierAnchor];\n\nexport interface ESnapperParentCanvas {\n\tscale: {\n\t\tx: number;\n\t\ty: number;\n\t};\n\twidth: number;\n\theight: number;\n}\n\nexport interface ESnapperParent {\n\tcanvas: ESnapperParentCanvas | null;\n}\n\nexport interface ESnapperOptions {\n\tenable?: boolean;\n\tgrid?: ESnapperGridOptions;\n\ttarget?: ESnapperTargetOptions;\n}\n\nexport interface EThemeSnapper extends EThemeSnapperGrid, EThemeSnapperTarget {\n\tisSnapperEnabled(): boolean;\n}\n\nexport class ESnapper extends utils.EventEmitter {\n\tprotected _points: Point[];\n\tprotected _normals: Point[];\n\tprotected _lengths: number[];\n\n\tprotected _workScale: Point;\n\tprotected _workScaleResult: ESnapperResultScale;\n\n\tprotected _workTranslate: Point;\n\n\tprotected _workSnap: Point;\n\tprotected _workSnapRectangle: Rectangle;\n\tprotected _workSnapResultX: ESnapperResult;\n\tprotected _workSnapResultY: ESnapperResult;\n\n\tprotected _parent: ESnapperParent;\n\n\tprotected _isEnabled: boolean;\n\tprotected _isEnabledDefault: boolean;\n\n\tgrid: ESnapperGrid;\n\n\ttarget: ESnapperTarget;\n\n\tconstructor(parent: ESnapperParent, theme: EThemeSnapper, options?: ESnapperOptions) {\n\t\tsuper();\n\n\t\tthis._points = [\n\t\t\tnew Point(), // Top left\n\t\t\tnew Point(), // Top right\n\t\t\tnew Point(), // Bottom left\n\t\t\tnew Point(), // Bottom right\n\t\t\tnew Point() // Center\n\t\t];\n\n\t\tthis._normals = [new Point(), new Point()];\n\n\t\tthis._lengths = [1, 1];\n\n\t\tthis._workScale = new Point();\n\t\tthis._workSnapResultX = new ESnapperResult();\n\t\tthis._workSnapResultY = new ESnapperResult();\n\t\tthis._workScaleResult = {\n\t\t\tdistance: 0,\n\t\t\tscale: new Point()\n\t\t};\n\n\t\tthis._workTranslate = new Point();\n\n\t\tthis._workSnapRectangle = new Rectangle();\n\t\tthis._workSnap = new Point();\n\n\t\tthis.grid = new ESnapperGrid(theme, options?.grid);\n\n\t\tthis.target = new ESnapperTarget(theme, options?.target);\n\n\t\tthis._parent = parent;\n\t\tthis._isEnabledDefault = options?.enable ?? theme.isSnapperEnabled();\n\t\tthis._isEnabled = this._isEnabledDefault;\n\t}\n\n\tget enable(): boolean {\n\t\treturn this._isEnabled;\n\t}\n\n\tset enable(enable: boolean) {\n\t\tif (this._isEnabled !== enable) {\n\t\t\tthis._isEnabled = enable;\n\t\t\tthis.emit(\"change\", this);\n\t\t}\n\t}\n\n\tprotected prepare(modifier: ESnapperModifier): void {\n\t\tmodifier.updateTransform();\n\t\tconst localTransform = modifier.transform.localTransform;\n\t\tconst sx = modifier.width;\n\t\tconst sy = modifier.height;\n\n\t\tconst points = this._points;\n\t\tpoints[0].set(0, 0);\n\t\tpoints[1].set(sx, 0);\n\t\tpoints[2].set(sx, sy);\n\t\tpoints[3].set(0, sy);\n\t\tpoints[4].set(sx * 0.5, sy * 0.5);\n\n\t\tlocalTransform.apply(points[0], points[0]);\n\t\tlocalTransform.apply(points[1], points[1]);\n\t\tlocalTransform.apply(points[2], points[2]);\n\t\tlocalTransform.apply(points[3], points[3]);\n\t\tlocalTransform.apply(points[4], points[4]);\n\t}\n\n\tprepareForTranslate(modifier: ESnapperModifier): void {\n\t\tif (this._isEnabled) {\n\t\t\tthis.prepare(modifier);\n\t\t}\n\t}\n\n\tprotected snap(point: IPoint, result: IPoint): IPoint {\n\t\tconst px = point.x;\n\t\tconst py = point.y;\n\t\tconst canvas = this._parent.canvas;\n\t\tconst x = this._workSnapResultX;\n\t\tconst y = this._workSnapResultY;\n\n\t\t// Canvas\n\t\tif (canvas != null) {\n\t\t\tconst scale = Math.max(canvas.scale.x, canvas.scale.y);\n\t\t\tx.reset(px, scale);\n\t\t\ty.reset(py, scale);\n\t\t\tx.set(px, 0);\n\t\t\tx.set(px, canvas.width);\n\t\t\ty.set(py, 0);\n\t\t\ty.set(py, canvas.height);\n\t\t} else {\n\t\t\tx.reset(px, 1);\n\t\t\ty.reset(py, 1);\n\t\t}\n\n\t\t// Target\n\t\tthis.target.snap(px, py, x, y);\n\n\t\t// Grid\n\t\tthis.grid.snap(px, x);\n\t\tthis.grid.snap(py, y);\n\n\t\t//\n\t\tresult.x = isNaN(x.distance) ? NaN : x.result;\n\t\tresult.y = isNaN(y.distance) ? NaN : y.result;\n\t\treturn result;\n\t}\n\n\ttoSnapped(point: IPoint, result: IPoint): IPoint {\n\t\tconst px = point.x;\n\t\tconst py = point.y;\n\t\tif (this._isEnabled) {\n\t\t\tthis.snap(point, result);\n\t\t\tconst x = result.x;\n\t\t\tconst y = result.y;\n\t\t\tresult.set(isNaN(x) ? px : x, isNaN(y) ? py : y);\n\t\t} else {\n\t\t\tresult.set(px, py);\n\t\t}\n\t\treturn result;\n\t}\n\n\ttoTranslationSnapped(delta: IPoint, result: IPoint): IPoint {\n\t\tconst dx = delta.x;\n\t\tconst dy = delta.y;\n\t\tlet x = NaN;\n\t\tlet y = NaN;\n\t\tif (this._isEnabled) {\n\t\t\tconst workTranslate = this._workTranslate;\n\t\t\tconst points = this._points;\n\t\t\tfor (let i = 0, imax = points.length; i < imax; ++i) {\n\t\t\t\tconst point = points[i];\n\t\t\t\tworkTranslate.set(point.x + dx, point.y + dy);\n\t\t\t\tthis.snap(workTranslate, workTranslate);\n\n\t\t\t\t// X\n\t\t\t\tif (!isNaN(workTranslate.x)) {\n\t\t\t\t\tconst newDx = workTranslate.x - point.x;\n\t\t\t\t\tif (isNaN(x) || Math.abs(newDx - dx) < Math.abs(x - dx)) {\n\t\t\t\t\t\tx = newDx;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Y\n\t\t\t\tif (!isNaN(workTranslate.y)) {\n\t\t\t\t\tconst newDy = workTranslate.y - point.y;\n\t\t\t\t\tif (isNaN(y) || Math.abs(newDy - dy) < Math.abs(y - dy)) {\n\t\t\t\t\t\ty = newDy;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tresult.x = isNaN(x) ? dx : x;\n\t\tresult.y = isNaN(y) ? dy : y;\n\t\treturn result;\n\t}\n\n\tprepareForRotate(modifier: ESnapperModifier): void {\n\t\t//\n\t}\n\n\tprotected getGridSizeRotation(): number {\n\t\treturn 5;\n\t}\n\n\tprotected toRadian(value: number): number {\n\t\treturn (value / 180) * Math.PI;\n\t}\n\n\tprotected toDegree(value: number): number {\n\t\treturn (value / Math.PI) * 180;\n\t}\n\n\ttoRotationSnapped(baseRotation: number, deltaRotation: number): number {\n\t\tif (this._isEnabled) {\n\t\t\tconst gridSize = this.getGridSizeRotation();\n\t\t\tconst newRotation = baseRotation + deltaRotation;\n\t\t\tconst newRotationDegree = Math.round(this.toDegree(newRotation));\n\t\t\tconst newRotationDegreeResidual = newRotationDegree % 90;\n\t\t\tif (Math.abs(newRotationDegreeResidual) <= gridSize) {\n\t\t\t\treturn this.toRadian(newRotationDegree - newRotationDegreeResidual) - baseRotation;\n\t\t\t} else {\n\t\t\t\tif (90 - gridSize <= newRotationDegreeResidual) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tthis.toRadian(newRotationDegree + (90 - newRotationDegreeResidual)) -\n\t\t\t\t\t\tbaseRotation\n\t\t\t\t\t);\n\t\t\t\t} else if (newRotationDegreeResidual <= -90 + gridSize) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tthis.toRadian(newRotationDegree - (90 + newRotationDegreeResidual)) -\n\t\t\t\t\t\tbaseRotation\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturn deltaRotation;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn deltaRotation;\n\t}\n\n\tprotected calcNormalizedVector(p0: IPoint, p1: IPoint, result: Point): number {\n\t\tconst dx = p1.x - p0.x;\n\t\tconst dy = p1.y - p0.y;\n\t\tconst l = Math.sqrt(dx * dx + dy * dy);\n\t\tif (EPSILON < l) {\n\t\t\tconst d = 1 / l;\n\t\t\tresult.x = dx * d;\n\t\t\tresult.y = dy * d;\n\t\t} else {\n\t\t\tresult.x = 1;\n\t\t\tresult.y = 0;\n\t\t}\n\t\treturn l;\n\t}\n\n\tprepareForScale(modifier: ESnapperModifier, anchor: ESnapperModifierAnchor): void {\n\t\tif (this._isEnabled) {\n\t\t\tthis.prepare(modifier);\n\n\t\t\tconst points = this._points;\n\t\t\tconst normals = this._normals;\n\t\t\tconst lengths = this._lengths;\n\t\t\tswitch (anchor) {\n\t\t\t\tcase ESnapperModifierAnchor.TOP_LEFT:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[1], points[0], normals[0]);\n\t\t\t\t\tlengths[1] = this.calcNormalizedVector(points[3], points[0], normals[1]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.TOP_CENTER:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[3], points[0], normals[0]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.TOP_RIGHT:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[0], points[1], normals[0]);\n\t\t\t\t\tlengths[1] = this.calcNormalizedVector(points[2], points[1], normals[1]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.MIDDLE_LEFT:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[1], points[0], normals[0]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.NONE:\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.MIDDLE_RIGHT:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[0], points[1], normals[0]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_LEFT:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[2], points[3], normals[0]);\n\t\t\t\t\tlengths[1] = this.calcNormalizedVector(points[0], points[3], normals[1]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_CENTER:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[0], points[3], normals[0]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_RIGHT:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[3], points[2], normals[0]);\n\t\t\t\t\tlengths[1] = this.calcNormalizedVector(points[1], points[2], normals[1]);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected setScaleSnappedResult(\n\t\tdistance: number,\n\t\tlength: number,\n\t\tmove: number,\n\t\taxis: boolean, // true => x axis, false y axis\n\t\tresult: ESnapperResultScale\n\t): void {\n\t\tif (EPSILON < length) {\n\t\t\tif (isNaN(result.distance) || distance < result.distance) {\n\t\t\t\tresult.distance = distance;\n\t\t\t\tconst newScale = 1 + move / length;\n\t\t\t\tif (axis) {\n\t\t\t\t\tresult.scale.x = newScale;\n\t\t\t\t} else {\n\t\t\t\t\tresult.scale.y = newScale;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected calcScaleSnapped1D(\n\t\ttransform: Matrix,\n\t\tpoint: Point,\n\t\tnormal: IPoint,\n\t\tlength: number,\n\t\taxis: boolean,\n\t\tresult: ESnapperResultScale\n\t): void {\n\t\tconst work = this._workScale;\n\t\ttransform.apply(point, work);\n\t\tconst tx = work.x;\n\t\tconst ty = work.y;\n\t\tthis.snap(work, work);\n\t\tconst x = work.x;\n\t\tconst y = work.y;\n\n\t\t// X coordinate\n\t\tif (!isNaN(x)) {\n\t\t\tconst nx = Math.abs(normal.x);\n\t\t\tif (EPSILON < nx) {\n\t\t\t\tconst dx = (x - tx) / normal.x;\n\t\t\t\tconst distance = Math.abs(dx);\n\t\t\t\tconst mx = (x - point.x) / normal.x;\n\t\t\t\tthis.setScaleSnappedResult(distance, length, mx, axis, result);\n\t\t\t}\n\t\t}\n\n\t\t// Y coordinate\n\t\tif (!isNaN(y)) {\n\t\t\tconst ny = Math.abs(normal.y);\n\t\t\tif (EPSILON < ny) {\n\t\t\t\tconst dy = (y - ty) / normal.y;\n\t\t\t\tconst distance = Math.abs(dy);\n\t\t\t\tconst my = (y - point.y) / normal.y;\n\t\t\t\tthis.setScaleSnappedResult(distance, length, my, axis, result);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected calcScaleSnappedX(\n\t\ttransform: Matrix,\n\t\tpoint: Point,\n\t\tnormal: IPoint,\n\t\tlength: number,\n\t\tresult: ESnapperResultScale\n\t): void {\n\t\tthis.calcScaleSnapped1D(transform, point, normal, length, true, result);\n\t}\n\n\tprotected calcScaleSnappedY(\n\t\ttransform: Matrix,\n\t\tpoint: Point,\n\t\tnormal: IPoint,\n\t\tlength: number,\n\t\tresult: ESnapperResultScale\n\t): void {\n\t\tthis.calcScaleSnapped1D(transform, point, normal, length, false, result);\n\t}\n\n\tcalcScaleSnapped2D(\n\t\ttransform: Matrix,\n\t\tpoint: Point,\n\t\tnormals: IPoint[],\n\t\tlengths: number[],\n\t\tresult: ESnapperResultScale\n\t): void {\n\t\tconst work = this._workScale;\n\t\ttransform.apply(point, work);\n\t\tconst tx = work.x;\n\t\tconst ty = work.y;\n\n\t\tthis.snap(work, work);\n\t\tlet x = work.x;\n\t\tlet y = work.y;\n\t\tif (isNaN(x)) {\n\t\t\tif (isNaN(y)) {\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tx = tx;\n\t\t\t}\n\t\t} else {\n\t\t\tif (isNaN(y)) {\n\t\t\t\ty = ty;\n\t\t\t}\n\t\t}\n\n\t\t// (x, y) = (tx, ty) + normalA * a + normalB * b\n\t\t// dx = x - tx\n\t\t// dy = y - ty\n\t\t// V = ( a, b )^T\n\t\t// D = ( dx, dy )^T\n\t\t// A = | normalA.x normalB.x |\n\t\t// | normalA.y normalB.y |\n\t\t// A V = D\n\t\t// det A = normalA.x * normalB.y - normalB.x * normalA.y\n\t\t// A^-1 = | normalB.y -normalB.x | / det A\n\t\t// | -normalA.y normalA.x |\n\t\tconst detA = normals[0].x * normals[1].y - normals[1].x * normals[0].y;\n\t\tif (EPSILON < Math.abs(detA)) {\n\t\t\tconst dx = x - tx;\n\t\t\tconst dy = y - ty;\n\t\t\tconst distance = Math.abs(dx * dx + dy * dy);\n\t\t\tif (isNaN(result.distance) || distance < result.distance) {\n\t\t\t\tresult.distance = distance;\n\t\t\t\tconst mdx = x - point.x;\n\t\t\t\tconst mdy = y - point.y;\n\t\t\t\tconst mx = (+normals[1].y * mdx - normals[1].x * mdy) / detA;\n\t\t\t\tconst my = (-normals[0].y * mdx + normals[0].x * mdy) / detA;\n\t\t\t\tresult.scale.set(1 + mx / lengths[0], 1 + my / lengths[1]);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected calcScaleSnappedXY(\n\t\ttransform: Matrix,\n\t\tpointO: Point,\n\t\tpointX: Point,\n\t\tpointY: Point,\n\t\tnormals: IPoint[],\n\t\tlengths: number[],\n\t\tresult: ESnapperResultScale\n\t): void {\n\t\tthis.calcScaleSnapped2D(transform, pointO, normals, lengths, result);\n\t\tthis.calcScaleSnappedX(transform, pointY, normals[0], lengths[0], result);\n\t\tthis.calcScaleSnappedY(transform, pointX, normals[1], lengths[1], result);\n\t}\n\n\ttoScaleSnapped(\n\t\ttransform: Matrix,\n\t\tanchor: ESnapperModifierAnchor,\n\t\tkeepRatio: boolean,\n\t\tscale: IPoint\n\t): boolean {\n\t\tif (this._isEnabled) {\n\t\t\tconst points = this._points;\n\t\t\tconst normals = this._normals;\n\t\t\tconst lengths = this._lengths;\n\t\t\tconst work = this._workScaleResult;\n\t\t\twork.distance = NaN;\n\t\t\twork.scale.set(scale.x, scale.y);\n\n\t\t\tswitch (anchor) {\n\t\t\t\tcase ESnapperModifierAnchor.TOP_LEFT:\n\t\t\t\t\tthis.calcScaleSnappedXY(\n\t\t\t\t\t\ttransform,\n\t\t\t\t\t\tpoints[0],\n\t\t\t\t\t\tpoints[1],\n\t\t\t\t\t\tpoints[3],\n\t\t\t\t\t\tnormals,\n\t\t\t\t\t\tlengths,\n\t\t\t\t\t\twork\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.TOP_CENTER:\n\t\t\t\t\tthis.calcScaleSnappedY(transform, points[0], normals[0], lengths[0], work);\n\t\t\t\t\tthis.calcScaleSnappedY(transform, points[1], normals[0], lengths[0], work);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.TOP_RIGHT:\n\t\t\t\t\tthis.calcScaleSnappedXY(\n\t\t\t\t\t\ttransform,\n\t\t\t\t\t\tpoints[1],\n\t\t\t\t\t\tpoints[0],\n\t\t\t\t\t\tpoints[2],\n\t\t\t\t\t\tnormals,\n\t\t\t\t\t\tlengths,\n\t\t\t\t\t\twork\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.MIDDLE_LEFT:\n\t\t\t\t\tthis.calcScaleSnappedX(transform, points[0], normals[0], lengths[0], work);\n\t\t\t\t\tthis.calcScaleSnappedX(transform, points[3], normals[0], lengths[0], work);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.NONE:\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.MIDDLE_RIGHT:\n\t\t\t\t\tthis.calcScaleSnappedX(transform, points[1], normals[0], lengths[0], work);\n\t\t\t\t\tthis.calcScaleSnappedX(transform, points[2], normals[0], lengths[0], work);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_LEFT:\n\t\t\t\t\tthis.calcScaleSnappedXY(\n\t\t\t\t\t\ttransform,\n\t\t\t\t\t\tpoints[3],\n\t\t\t\t\t\tpoints[2],\n\t\t\t\t\t\tpoints[0],\n\t\t\t\t\t\tnormals,\n\t\t\t\t\t\tlengths,\n\t\t\t\t\t\twork\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_CENTER:\n\t\t\t\t\tthis.calcScaleSnappedY(transform, points[2], normals[0], lengths[0], work);\n\t\t\t\t\tthis.calcScaleSnappedY(transform, points[3], normals[0], lengths[0], work);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_RIGHT:\n\t\t\t\t\tthis.calcScaleSnappedXY(\n\t\t\t\t\t\ttransform,\n\t\t\t\t\t\tpoints[2],\n\t\t\t\t\t\tpoints[3],\n\t\t\t\t\t\tpoints[1],\n\t\t\t\t\t\tnormals,\n\t\t\t\t\t\tlengths,\n\t\t\t\t\t\twork\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (!isNaN(work.distance)) {\n\t\t\t\tscale.copyFrom(work.scale);\n\t\t\t\tif (keepRatio) {\n\t\t\t\t\tswitch (anchor) {\n\t\t\t\t\t\tcase ESnapperModifierAnchor.TOP_LEFT:\n\t\t\t\t\t\tcase ESnapperModifierAnchor.TOP_RIGHT:\n\t\t\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_LEFT:\n\t\t\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_RIGHT:\n\t\t\t\t\t\t\tscale.x = scale.y = Math.max(scale.x, scale.y);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ESnapperModifierAnchor.TOP_CENTER:\n\t\t\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_CENTER:\n\t\t\t\t\t\t\tscale.x = scale.y;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ESnapperModifierAnchor.MIDDLE_LEFT:\n\t\t\t\t\t\tcase ESnapperModifierAnchor.MIDDLE_RIGHT:\n\t\t\t\t\t\t\tscale.y = scale.x;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ESnapperModifierAnchor.NONE:\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\treset(): void {\n\t\tthis.enable = this._isEnabledDefault;\n\t\tthis.target.reset();\n\t\tthis.grid.reset();\n\t}\n\n\tserialize(): DDiagramSerializedSnap {\n\t\treturn [this._isEnabled ? 1 : 0, this.target.serialize(), this.grid.serialize()];\n\t}\n\n\tdeserialize(serialized: DDiagramSerializedSnap): void {\n\t\tthis.enable = !!serialized[0];\n\t\tthis.target.deserialize(serialized[1]);\n\t\tthis.grid.deserialize(serialized[2]);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-snapper.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/snapper/e-snapper.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DisplayObject, IPoint, Matrix, Point, Rectangle, utils } from \"pixi.js\";\nimport { DDiagramSerializedSnap } from \"../d-diagram-serialized\";\nimport { isNaN } from \"../util/is-nan\";\nimport { ESnapperGrid, ESnapperGridOptions, EThemeSnapperGrid } from \"./e-snapper-grid\";\nimport { ESnapperResult } from \"./e-snapper-result\";\nimport { ESnapperResultScale } from \"./e-snapper-result-scale\";\nimport { ESnapperTarget, ESnapperTargetOptions, EThemeSnapperTarget } from \"./e-snapper-target\";\n\nconst EPSILON = 0.00001;\n\nexport interface ESnapperModifier extends DisplayObject {\n\twidth: number;\n\theight: number;\n}\n\nexport const ESnapperModifierAnchor = {\n\tNONE: 0,\n\tTOP_LEFT: 1,\n\tTOP_CENTER: 2,\n\tTOP_RIGHT: 3,\n\tMIDDLE_LEFT: 4,\n\tMIDDLE_RIGHT: 5,\n\tBOTTOM_LEFT: 6,\n\tBOTTOM_CENTER: 7,\n\tBOTTOM_RIGHT: 8,\n\tROTATION: 9\n} as const;\n\nexport type ESnapperModifierAnchor =\n\ttypeof ESnapperModifierAnchor[keyof typeof ESnapperModifierAnchor];\n\nexport interface ESnapperParentCanvas {\n\tscale: {\n\t\tx: number;\n\t\ty: number;\n\t};\n\twidth: number;\n\theight: number;\n}\n\nexport interface ESnapperParent {\n\tcanvas: ESnapperParentCanvas | null;\n}\n\nexport interface ESnapperOptions {\n\tenable?: boolean;\n\tgrid?: ESnapperGridOptions;\n\ttarget?: ESnapperTargetOptions;\n}\n\nexport interface EThemeSnapper extends EThemeSnapperGrid, EThemeSnapperTarget {\n\tisSnapEnabled(): boolean;\n}\n\nexport class ESnapper extends utils.EventEmitter {\n\tprotected _points: Point[];\n\tprotected _normals: Point[];\n\tprotected _lengths: number[];\n\n\tprotected _workScale: Point;\n\tprotected _workScaleResult: ESnapperResultScale;\n\n\tprotected _workTranslate: Point;\n\n\tprotected _workSnap: Point;\n\tprotected _workSnapRectangle: Rectangle;\n\tprotected _workSnapResultX: ESnapperResult;\n\tprotected _workSnapResultY: ESnapperResult;\n\n\tprotected _parent: ESnapperParent;\n\n\tprotected _isEnabled: boolean;\n\tprotected _isEnabledDefault: boolean;\n\n\tgrid: ESnapperGrid;\n\n\ttarget: ESnapperTarget;\n\n\tconstructor(parent: ESnapperParent, theme: EThemeSnapper, options?: ESnapperOptions) {\n\t\tsuper();\n\n\t\tthis._points = [\n\t\t\tnew Point(), // Top left\n\t\t\tnew Point(), // Top right\n\t\t\tnew Point(), // Bottom left\n\t\t\tnew Point(), // Bottom right\n\t\t\tnew Point() // Center\n\t\t];\n\n\t\tthis._normals = [new Point(), new Point()];\n\n\t\tthis._lengths = [1, 1];\n\n\t\tthis._workScale = new Point();\n\t\tthis._workSnapResultX = new ESnapperResult();\n\t\tthis._workSnapResultY = new ESnapperResult();\n\t\tthis._workScaleResult = {\n\t\t\tdistance: 0,\n\t\t\tscale: new Point()\n\t\t};\n\n\t\tthis._workTranslate = new Point();\n\n\t\tthis._workSnapRectangle = new Rectangle();\n\t\tthis._workSnap = new Point();\n\n\t\tthis.grid = new ESnapperGrid(theme, options?.grid);\n\n\t\tthis.target = new ESnapperTarget(theme, options?.target);\n\n\t\tthis._parent = parent;\n\t\tthis._isEnabledDefault = options?.enable ?? theme.isSnapEnabled();\n\t\tthis._isEnabled = this._isEnabledDefault;\n\t}\n\n\tget enable(): boolean {\n\t\treturn this._isEnabled;\n\t}\n\n\tset enable(enable: boolean) {\n\t\tif (this._isEnabled !== enable) {\n\t\t\tthis._isEnabled = enable;\n\t\t\tthis.emit(\"change\", this);\n\t\t}\n\t}\n\n\tprotected prepare(modifier: ESnapperModifier): void {\n\t\tmodifier.updateTransform();\n\t\tconst localTransform = modifier.transform.localTransform;\n\t\tconst sx = modifier.width;\n\t\tconst sy = modifier.height;\n\n\t\tconst points = this._points;\n\t\tpoints[0].set(0, 0);\n\t\tpoints[1].set(sx, 0);\n\t\tpoints[2].set(sx, sy);\n\t\tpoints[3].set(0, sy);\n\t\tpoints[4].set(sx * 0.5, sy * 0.5);\n\n\t\tlocalTransform.apply(points[0], points[0]);\n\t\tlocalTransform.apply(points[1], points[1]);\n\t\tlocalTransform.apply(points[2], points[2]);\n\t\tlocalTransform.apply(points[3], points[3]);\n\t\tlocalTransform.apply(points[4], points[4]);\n\t}\n\n\tprepareForTranslate(modifier: ESnapperModifier): void {\n\t\tif (this._isEnabled) {\n\t\t\tthis.prepare(modifier);\n\t\t}\n\t}\n\n\tprotected snap(point: IPoint, result: IPoint): IPoint {\n\t\tconst px = point.x;\n\t\tconst py = point.y;\n\t\tconst canvas = this._parent.canvas;\n\t\tconst x = this._workSnapResultX;\n\t\tconst y = this._workSnapResultY;\n\n\t\t// Canvas\n\t\tif (canvas != null) {\n\t\t\tconst scale = Math.max(canvas.scale.x, canvas.scale.y);\n\t\t\tx.reset(px, scale);\n\t\t\ty.reset(py, scale);\n\t\t\tx.set(px, 0);\n\t\t\tx.set(px, canvas.width);\n\t\t\ty.set(py, 0);\n\t\t\ty.set(py, canvas.height);\n\t\t} else {\n\t\t\tx.reset(px, 1);\n\t\t\ty.reset(py, 1);\n\t\t}\n\n\t\t// Target\n\t\tthis.target.snap(px, py, x, y);\n\n\t\t// Grid\n\t\tthis.grid.snap(px, x);\n\t\tthis.grid.snap(py, y);\n\n\t\t//\n\t\tresult.x = isNaN(x.distance) ? NaN : x.result;\n\t\tresult.y = isNaN(y.distance) ? NaN : y.result;\n\t\treturn result;\n\t}\n\n\ttoSnapped(point: IPoint, result: IPoint): IPoint {\n\t\tconst px = point.x;\n\t\tconst py = point.y;\n\t\tif (this._isEnabled) {\n\t\t\tthis.snap(point, result);\n\t\t\tconst x = result.x;\n\t\t\tconst y = result.y;\n\t\t\tresult.set(isNaN(x) ? px : x, isNaN(y) ? py : y);\n\t\t} else {\n\t\t\tresult.set(px, py);\n\t\t}\n\t\treturn result;\n\t}\n\n\ttoTranslationSnapped(delta: IPoint, result: IPoint): IPoint {\n\t\tconst dx = delta.x;\n\t\tconst dy = delta.y;\n\t\tlet x = NaN;\n\t\tlet y = NaN;\n\t\tif (this._isEnabled) {\n\t\t\tconst workTranslate = this._workTranslate;\n\t\t\tconst points = this._points;\n\t\t\tfor (let i = 0, imax = points.length; i < imax; ++i) {\n\t\t\t\tconst point = points[i];\n\t\t\t\tworkTranslate.set(point.x + dx, point.y + dy);\n\t\t\t\tthis.snap(workTranslate, workTranslate);\n\n\t\t\t\t// X\n\t\t\t\tif (!isNaN(workTranslate.x)) {\n\t\t\t\t\tconst newDx = workTranslate.x - point.x;\n\t\t\t\t\tif (isNaN(x) || Math.abs(newDx - dx) < Math.abs(x - dx)) {\n\t\t\t\t\t\tx = newDx;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Y\n\t\t\t\tif (!isNaN(workTranslate.y)) {\n\t\t\t\t\tconst newDy = workTranslate.y - point.y;\n\t\t\t\t\tif (isNaN(y) || Math.abs(newDy - dy) < Math.abs(y - dy)) {\n\t\t\t\t\t\ty = newDy;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tresult.x = isNaN(x) ? dx : x;\n\t\tresult.y = isNaN(y) ? dy : y;\n\t\treturn result;\n\t}\n\n\tprepareForRotate(modifier: ESnapperModifier): void {\n\t\t//\n\t}\n\n\tprotected getGridSizeRotation(): number {\n\t\treturn 5;\n\t}\n\n\tprotected toRadian(value: number): number {\n\t\treturn (value / 180) * Math.PI;\n\t}\n\n\tprotected toDegree(value: number): number {\n\t\treturn (value / Math.PI) * 180;\n\t}\n\n\ttoRotationSnapped(baseRotation: number, deltaRotation: number): number {\n\t\tif (this._isEnabled) {\n\t\t\tconst gridSize = this.getGridSizeRotation();\n\t\t\tconst newRotation = baseRotation + deltaRotation;\n\t\t\tconst newRotationDegree = Math.round(this.toDegree(newRotation));\n\t\t\tconst newRotationDegreeResidual = newRotationDegree % 90;\n\t\t\tif (Math.abs(newRotationDegreeResidual) <= gridSize) {\n\t\t\t\treturn this.toRadian(newRotationDegree - newRotationDegreeResidual) - baseRotation;\n\t\t\t} else {\n\t\t\t\tif (90 - gridSize <= newRotationDegreeResidual) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tthis.toRadian(newRotationDegree + (90 - newRotationDegreeResidual)) -\n\t\t\t\t\t\tbaseRotation\n\t\t\t\t\t);\n\t\t\t\t} else if (newRotationDegreeResidual <= -90 + gridSize) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tthis.toRadian(newRotationDegree - (90 + newRotationDegreeResidual)) -\n\t\t\t\t\t\tbaseRotation\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturn deltaRotation;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn deltaRotation;\n\t}\n\n\tprotected calcNormalizedVector(p0: IPoint, p1: IPoint, result: Point): number {\n\t\tconst dx = p1.x - p0.x;\n\t\tconst dy = p1.y - p0.y;\n\t\tconst l = Math.sqrt(dx * dx + dy * dy);\n\t\tif (EPSILON < l) {\n\t\t\tconst d = 1 / l;\n\t\t\tresult.x = dx * d;\n\t\t\tresult.y = dy * d;\n\t\t} else {\n\t\t\tresult.x = 1;\n\t\t\tresult.y = 0;\n\t\t}\n\t\treturn l;\n\t}\n\n\tprepareForScale(modifier: ESnapperModifier, anchor: ESnapperModifierAnchor): void {\n\t\tif (this._isEnabled) {\n\t\t\tthis.prepare(modifier);\n\n\t\t\tconst points = this._points;\n\t\t\tconst normals = this._normals;\n\t\t\tconst lengths = this._lengths;\n\t\t\tswitch (anchor) {\n\t\t\t\tcase ESnapperModifierAnchor.TOP_LEFT:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[1], points[0], normals[0]);\n\t\t\t\t\tlengths[1] = this.calcNormalizedVector(points[3], points[0], normals[1]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.TOP_CENTER:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[3], points[0], normals[0]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.TOP_RIGHT:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[0], points[1], normals[0]);\n\t\t\t\t\tlengths[1] = this.calcNormalizedVector(points[2], points[1], normals[1]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.MIDDLE_LEFT:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[1], points[0], normals[0]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.NONE:\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.MIDDLE_RIGHT:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[0], points[1], normals[0]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_LEFT:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[2], points[3], normals[0]);\n\t\t\t\t\tlengths[1] = this.calcNormalizedVector(points[0], points[3], normals[1]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_CENTER:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[0], points[3], normals[0]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_RIGHT:\n\t\t\t\t\tlengths[0] = this.calcNormalizedVector(points[3], points[2], normals[0]);\n\t\t\t\t\tlengths[1] = this.calcNormalizedVector(points[1], points[2], normals[1]);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected setScaleSnappedResult(\n\t\tdistance: number,\n\t\tlength: number,\n\t\tmove: number,\n\t\taxis: boolean, // true => x axis, false y axis\n\t\tresult: ESnapperResultScale\n\t): void {\n\t\tif (EPSILON < length) {\n\t\t\tif (isNaN(result.distance) || distance < result.distance) {\n\t\t\t\tresult.distance = distance;\n\t\t\t\tconst newScale = 1 + move / length;\n\t\t\t\tif (axis) {\n\t\t\t\t\tresult.scale.x = newScale;\n\t\t\t\t} else {\n\t\t\t\t\tresult.scale.y = newScale;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected calcScaleSnapped1D(\n\t\ttransform: Matrix,\n\t\tpoint: Point,\n\t\tnormal: IPoint,\n\t\tlength: number,\n\t\taxis: boolean,\n\t\tresult: ESnapperResultScale\n\t): void {\n\t\tconst work = this._workScale;\n\t\ttransform.apply(point, work);\n\t\tconst tx = work.x;\n\t\tconst ty = work.y;\n\t\tthis.snap(work, work);\n\t\tconst x = work.x;\n\t\tconst y = work.y;\n\n\t\t// X coordinate\n\t\tif (!isNaN(x)) {\n\t\t\tconst nx = Math.abs(normal.x);\n\t\t\tif (EPSILON < nx) {\n\t\t\t\tconst dx = (x - tx) / normal.x;\n\t\t\t\tconst distance = Math.abs(dx);\n\t\t\t\tconst mx = (x - point.x) / normal.x;\n\t\t\t\tthis.setScaleSnappedResult(distance, length, mx, axis, result);\n\t\t\t}\n\t\t}\n\n\t\t// Y coordinate\n\t\tif (!isNaN(y)) {\n\t\t\tconst ny = Math.abs(normal.y);\n\t\t\tif (EPSILON < ny) {\n\t\t\t\tconst dy = (y - ty) / normal.y;\n\t\t\t\tconst distance = Math.abs(dy);\n\t\t\t\tconst my = (y - point.y) / normal.y;\n\t\t\t\tthis.setScaleSnappedResult(distance, length, my, axis, result);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected calcScaleSnappedX(\n\t\ttransform: Matrix,\n\t\tpoint: Point,\n\t\tnormal: IPoint,\n\t\tlength: number,\n\t\tresult: ESnapperResultScale\n\t): void {\n\t\tthis.calcScaleSnapped1D(transform, point, normal, length, true, result);\n\t}\n\n\tprotected calcScaleSnappedY(\n\t\ttransform: Matrix,\n\t\tpoint: Point,\n\t\tnormal: IPoint,\n\t\tlength: number,\n\t\tresult: ESnapperResultScale\n\t): void {\n\t\tthis.calcScaleSnapped1D(transform, point, normal, length, false, result);\n\t}\n\n\tcalcScaleSnapped2D(\n\t\ttransform: Matrix,\n\t\tpoint: Point,\n\t\tnormals: IPoint[],\n\t\tlengths: number[],\n\t\tresult: ESnapperResultScale\n\t): void {\n\t\tconst work = this._workScale;\n\t\ttransform.apply(point, work);\n\t\tconst tx = work.x;\n\t\tconst ty = work.y;\n\n\t\tthis.snap(work, work);\n\t\tlet x = work.x;\n\t\tlet y = work.y;\n\t\tif (isNaN(x)) {\n\t\t\tif (isNaN(y)) {\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tx = tx;\n\t\t\t}\n\t\t} else {\n\t\t\tif (isNaN(y)) {\n\t\t\t\ty = ty;\n\t\t\t}\n\t\t}\n\n\t\t// (x, y) = (tx, ty) + normalA * a + normalB * b\n\t\t// dx = x - tx\n\t\t// dy = y - ty\n\t\t// V = ( a, b )^T\n\t\t// D = ( dx, dy )^T\n\t\t// A = | normalA.x normalB.x |\n\t\t// | normalA.y normalB.y |\n\t\t// A V = D\n\t\t// det A = normalA.x * normalB.y - normalB.x * normalA.y\n\t\t// A^-1 = | normalB.y -normalB.x | / det A\n\t\t// | -normalA.y normalA.x |\n\t\tconst detA = normals[0].x * normals[1].y - normals[1].x * normals[0].y;\n\t\tif (EPSILON < Math.abs(detA)) {\n\t\t\tconst dx = x - tx;\n\t\t\tconst dy = y - ty;\n\t\t\tconst distance = Math.abs(dx * dx + dy * dy);\n\t\t\tif (isNaN(result.distance) || distance < result.distance) {\n\t\t\t\tresult.distance = distance;\n\t\t\t\tconst mdx = x - point.x;\n\t\t\t\tconst mdy = y - point.y;\n\t\t\t\tconst mx = (+normals[1].y * mdx - normals[1].x * mdy) / detA;\n\t\t\t\tconst my = (-normals[0].y * mdx + normals[0].x * mdy) / detA;\n\t\t\t\tresult.scale.set(1 + mx / lengths[0], 1 + my / lengths[1]);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected calcScaleSnappedXY(\n\t\ttransform: Matrix,\n\t\tpointO: Point,\n\t\tpointX: Point,\n\t\tpointY: Point,\n\t\tnormals: IPoint[],\n\t\tlengths: number[],\n\t\tresult: ESnapperResultScale\n\t): void {\n\t\tthis.calcScaleSnapped2D(transform, pointO, normals, lengths, result);\n\t\tthis.calcScaleSnappedX(transform, pointY, normals[0], lengths[0], result);\n\t\tthis.calcScaleSnappedY(transform, pointX, normals[1], lengths[1], result);\n\t}\n\n\ttoScaleSnapped(\n\t\ttransform: Matrix,\n\t\tanchor: ESnapperModifierAnchor,\n\t\tkeepRatio: boolean,\n\t\tscale: IPoint\n\t): boolean {\n\t\tif (this._isEnabled) {\n\t\t\tconst points = this._points;\n\t\t\tconst normals = this._normals;\n\t\t\tconst lengths = this._lengths;\n\t\t\tconst work = this._workScaleResult;\n\t\t\twork.distance = NaN;\n\t\t\twork.scale.set(scale.x, scale.y);\n\n\t\t\tswitch (anchor) {\n\t\t\t\tcase ESnapperModifierAnchor.TOP_LEFT:\n\t\t\t\t\tthis.calcScaleSnappedXY(\n\t\t\t\t\t\ttransform,\n\t\t\t\t\t\tpoints[0],\n\t\t\t\t\t\tpoints[1],\n\t\t\t\t\t\tpoints[3],\n\t\t\t\t\t\tnormals,\n\t\t\t\t\t\tlengths,\n\t\t\t\t\t\twork\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.TOP_CENTER:\n\t\t\t\t\tthis.calcScaleSnappedY(transform, points[0], normals[0], lengths[0], work);\n\t\t\t\t\tthis.calcScaleSnappedY(transform, points[1], normals[0], lengths[0], work);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.TOP_RIGHT:\n\t\t\t\t\tthis.calcScaleSnappedXY(\n\t\t\t\t\t\ttransform,\n\t\t\t\t\t\tpoints[1],\n\t\t\t\t\t\tpoints[0],\n\t\t\t\t\t\tpoints[2],\n\t\t\t\t\t\tnormals,\n\t\t\t\t\t\tlengths,\n\t\t\t\t\t\twork\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.MIDDLE_LEFT:\n\t\t\t\t\tthis.calcScaleSnappedX(transform, points[0], normals[0], lengths[0], work);\n\t\t\t\t\tthis.calcScaleSnappedX(transform, points[3], normals[0], lengths[0], work);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.NONE:\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.MIDDLE_RIGHT:\n\t\t\t\t\tthis.calcScaleSnappedX(transform, points[1], normals[0], lengths[0], work);\n\t\t\t\t\tthis.calcScaleSnappedX(transform, points[2], normals[0], lengths[0], work);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_LEFT:\n\t\t\t\t\tthis.calcScaleSnappedXY(\n\t\t\t\t\t\ttransform,\n\t\t\t\t\t\tpoints[3],\n\t\t\t\t\t\tpoints[2],\n\t\t\t\t\t\tpoints[0],\n\t\t\t\t\t\tnormals,\n\t\t\t\t\t\tlengths,\n\t\t\t\t\t\twork\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_CENTER:\n\t\t\t\t\tthis.calcScaleSnappedY(transform, points[2], normals[0], lengths[0], work);\n\t\t\t\t\tthis.calcScaleSnappedY(transform, points[3], normals[0], lengths[0], work);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_RIGHT:\n\t\t\t\t\tthis.calcScaleSnappedXY(\n\t\t\t\t\t\ttransform,\n\t\t\t\t\t\tpoints[2],\n\t\t\t\t\t\tpoints[3],\n\t\t\t\t\t\tpoints[1],\n\t\t\t\t\t\tnormals,\n\t\t\t\t\t\tlengths,\n\t\t\t\t\t\twork\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (!isNaN(work.distance)) {\n\t\t\t\tscale.copyFrom(work.scale);\n\t\t\t\tif (keepRatio) {\n\t\t\t\t\tswitch (anchor) {\n\t\t\t\t\t\tcase ESnapperModifierAnchor.TOP_LEFT:\n\t\t\t\t\t\tcase ESnapperModifierAnchor.TOP_RIGHT:\n\t\t\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_LEFT:\n\t\t\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_RIGHT:\n\t\t\t\t\t\t\tscale.x = scale.y = Math.max(scale.x, scale.y);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ESnapperModifierAnchor.TOP_CENTER:\n\t\t\t\t\t\tcase ESnapperModifierAnchor.BOTTOM_CENTER:\n\t\t\t\t\t\t\tscale.x = scale.y;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ESnapperModifierAnchor.MIDDLE_LEFT:\n\t\t\t\t\t\tcase ESnapperModifierAnchor.MIDDLE_RIGHT:\n\t\t\t\t\t\t\tscale.y = scale.x;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ESnapperModifierAnchor.NONE:\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\treset(): void {\n\t\tthis.enable = this._isEnabledDefault;\n\t\tthis.target.reset();\n\t\tthis.grid.reset();\n\t}\n\n\tserialize(): DDiagramSerializedSnap {\n\t\treturn [this._isEnabled ? 1 : 0, this.target.serialize(), this.grid.serialize()];\n\t}\n\n\tdeserialize(serialized: DDiagramSerializedSnap): void {\n\t\tthis.enable = !!serialized[0];\n\t\tthis.target.deserialize(serialized[1]);\n\t\tthis.grid.deserialize(serialized[2]);\n\t}\n}\n"]}
|
|
@@ -18,22 +18,22 @@ var DThemeDarkDiagramEditor = /** @class */ (function (_super) {
|
|
|
18
18
|
DThemeDarkDiagramEditor.prototype.getThumbnailSize = function () {
|
|
19
19
|
return null;
|
|
20
20
|
};
|
|
21
|
-
DThemeDarkDiagramEditor.prototype.
|
|
21
|
+
DThemeDarkDiagramEditor.prototype.isSnapEnabled = function () {
|
|
22
22
|
return true;
|
|
23
23
|
};
|
|
24
|
-
DThemeDarkDiagramEditor.prototype.
|
|
24
|
+
DThemeDarkDiagramEditor.prototype.isSnapGridVisible = function () {
|
|
25
25
|
return true;
|
|
26
26
|
};
|
|
27
|
-
DThemeDarkDiagramEditor.prototype.
|
|
27
|
+
DThemeDarkDiagramEditor.prototype.isSnapGridEnabled = function () {
|
|
28
28
|
return true;
|
|
29
29
|
};
|
|
30
|
-
DThemeDarkDiagramEditor.prototype.
|
|
30
|
+
DThemeDarkDiagramEditor.prototype.getSnapGridSize = function () {
|
|
31
31
|
return 10;
|
|
32
32
|
};
|
|
33
|
-
DThemeDarkDiagramEditor.prototype.
|
|
33
|
+
DThemeDarkDiagramEditor.prototype.isSnapTargetVisible = function () {
|
|
34
34
|
return true;
|
|
35
35
|
};
|
|
36
|
-
DThemeDarkDiagramEditor.prototype.
|
|
36
|
+
DThemeDarkDiagramEditor.prototype.isSnapTargetEnabled = function () {
|
|
37
37
|
return true;
|
|
38
38
|
};
|
|
39
39
|
return DThemeDarkDiagramEditor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-theme-dark-diagram-editor.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/theme/dark/d-theme-dark-diagram-editor.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE;IAA6C,2CAAqB;IAAlE;;IAoCA,CAAC;IAnCA,2CAAS,GAAT;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,oDAAkB,GAAlB;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,kDAAgB,GAAhB;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"d-theme-dark-diagram-editor.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/theme/dark/d-theme-dark-diagram-editor.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE;IAA6C,2CAAqB;IAAlE;;IAoCA,CAAC;IAnCA,2CAAS,GAAT;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,oDAAkB,GAAlB;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,kDAAgB,GAAhB;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,+CAAa,GAAb;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,mDAAiB,GAAjB;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,mDAAiB,GAAjB;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,iDAAe,GAAf;QACC,OAAO,EAAE,CAAC;IACX,CAAC;IAED,qDAAmB,GAAnB;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,qDAAmB,GAAnB;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IACF,8BAAC;AAAD,CAAC,AApCD,CAA6C,qBAAqB,GAoCjE","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DThemeDiagramEditor } from \"../../d-diagram-editor\";\nimport { DThemeDarkDiagramBase } from \"./d-theme-dark-diagram-base\";\n\nexport class DThemeDarkDiagramEditor extends DThemeDarkDiagramBase implements DThemeDiagramEditor {\n\tisAmbient(): boolean {\n\t\treturn false;\n\t}\n\n\tisThumbnailEnabled(): boolean {\n\t\treturn false;\n\t}\n\n\tgetThumbnailSize(): number | null {\n\t\treturn null;\n\t}\n\n\tisSnapEnabled(): boolean {\n\t\treturn true;\n\t}\n\n\tisSnapGridVisible(): boolean {\n\t\treturn true;\n\t}\n\n\tisSnapGridEnabled(): boolean {\n\t\treturn true;\n\t}\n\n\tgetSnapGridSize(): number {\n\t\treturn 10;\n\t}\n\n\tisSnapTargetVisible(): boolean {\n\t\treturn true;\n\t}\n\n\tisSnapTargetEnabled(): boolean {\n\t\treturn true;\n\t}\n}\n"]}
|
|
@@ -18,22 +18,22 @@ var DThemeWhiteDiagramEditor = /** @class */ (function (_super) {
|
|
|
18
18
|
DThemeWhiteDiagramEditor.prototype.getThumbnailSize = function () {
|
|
19
19
|
return null;
|
|
20
20
|
};
|
|
21
|
-
DThemeWhiteDiagramEditor.prototype.
|
|
21
|
+
DThemeWhiteDiagramEditor.prototype.isSnapEnabled = function () {
|
|
22
22
|
return true;
|
|
23
23
|
};
|
|
24
|
-
DThemeWhiteDiagramEditor.prototype.
|
|
24
|
+
DThemeWhiteDiagramEditor.prototype.isSnapGridVisible = function () {
|
|
25
25
|
return true;
|
|
26
26
|
};
|
|
27
|
-
DThemeWhiteDiagramEditor.prototype.
|
|
27
|
+
DThemeWhiteDiagramEditor.prototype.isSnapGridEnabled = function () {
|
|
28
28
|
return true;
|
|
29
29
|
};
|
|
30
|
-
DThemeWhiteDiagramEditor.prototype.
|
|
30
|
+
DThemeWhiteDiagramEditor.prototype.getSnapGridSize = function () {
|
|
31
31
|
return 10;
|
|
32
32
|
};
|
|
33
|
-
DThemeWhiteDiagramEditor.prototype.
|
|
33
|
+
DThemeWhiteDiagramEditor.prototype.isSnapTargetVisible = function () {
|
|
34
34
|
return true;
|
|
35
35
|
};
|
|
36
|
-
DThemeWhiteDiagramEditor.prototype.
|
|
36
|
+
DThemeWhiteDiagramEditor.prototype.isSnapTargetEnabled = function () {
|
|
37
37
|
return true;
|
|
38
38
|
};
|
|
39
39
|
return DThemeWhiteDiagramEditor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-theme-white-diagram-editor.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/theme/white/d-theme-white-diagram-editor.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;IACS,4CAAsB;IAD/B;;IAuCA,CAAC;IAnCA,4CAAS,GAAT;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,qDAAkB,GAAlB;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,mDAAgB,GAAhB;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"d-theme-white-diagram-editor.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/theme/white/d-theme-white-diagram-editor.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;IACS,4CAAsB;IAD/B;;IAuCA,CAAC;IAnCA,4CAAS,GAAT;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,qDAAkB,GAAlB;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,mDAAgB,GAAhB;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,gDAAa,GAAb;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,oDAAiB,GAAjB;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,oDAAiB,GAAjB;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,kDAAe,GAAf;QACC,OAAO,EAAE,CAAC;IACX,CAAC;IAED,sDAAmB,GAAnB;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,sDAAmB,GAAnB;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IACF,+BAAC;AAAD,CAAC,AAvCD,CACS,sBAAsB,GAsC9B","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DThemeDiagramEditor } from \"../../d-diagram-editor\";\nimport { DThemeWhiteDiagramBase } from \"./d-theme-white-diagram-base\";\n\nexport class DThemeWhiteDiagramEditor\n\textends DThemeWhiteDiagramBase\n\timplements DThemeDiagramEditor\n{\n\tisAmbient(): boolean {\n\t\treturn false;\n\t}\n\n\tisThumbnailEnabled(): boolean {\n\t\treturn false;\n\t}\n\n\tgetThumbnailSize(): number | null {\n\t\treturn null;\n\t}\n\n\tisSnapEnabled(): boolean {\n\t\treturn true;\n\t}\n\n\tisSnapGridVisible(): boolean {\n\t\treturn true;\n\t}\n\n\tisSnapGridEnabled(): boolean {\n\t\treturn true;\n\t}\n\n\tgetSnapGridSize(): number {\n\t\treturn 10;\n\t}\n\n\tisSnapTargetVisible(): boolean {\n\t\treturn true;\n\t}\n\n\tisSnapTargetEnabled(): boolean {\n\t\treturn true;\n\t}\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Winter Cardinal UI v0.
|
|
2
|
+
Winter Cardinal UI v0.270.0
|
|
3
3
|
Copyright (C) 2019 Toshiba Corporation
|
|
4
4
|
SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
|
|
@@ -3621,22 +3621,22 @@
|
|
|
3621
3621
|
DThemeDarkDiagramEditor.prototype.getThumbnailSize = function () {
|
|
3622
3622
|
return null;
|
|
3623
3623
|
};
|
|
3624
|
-
DThemeDarkDiagramEditor.prototype.
|
|
3624
|
+
DThemeDarkDiagramEditor.prototype.isSnapEnabled = function () {
|
|
3625
3625
|
return true;
|
|
3626
3626
|
};
|
|
3627
|
-
DThemeDarkDiagramEditor.prototype.
|
|
3627
|
+
DThemeDarkDiagramEditor.prototype.isSnapGridVisible = function () {
|
|
3628
3628
|
return true;
|
|
3629
3629
|
};
|
|
3630
|
-
DThemeDarkDiagramEditor.prototype.
|
|
3630
|
+
DThemeDarkDiagramEditor.prototype.isSnapGridEnabled = function () {
|
|
3631
3631
|
return true;
|
|
3632
3632
|
};
|
|
3633
|
-
DThemeDarkDiagramEditor.prototype.
|
|
3633
|
+
DThemeDarkDiagramEditor.prototype.getSnapGridSize = function () {
|
|
3634
3634
|
return 10;
|
|
3635
3635
|
};
|
|
3636
|
-
DThemeDarkDiagramEditor.prototype.
|
|
3636
|
+
DThemeDarkDiagramEditor.prototype.isSnapTargetVisible = function () {
|
|
3637
3637
|
return true;
|
|
3638
3638
|
};
|
|
3639
|
-
DThemeDarkDiagramEditor.prototype.
|
|
3639
|
+
DThemeDarkDiagramEditor.prototype.isSnapTargetEnabled = function () {
|
|
3640
3640
|
return true;
|
|
3641
3641
|
};
|
|
3642
3642
|
return DThemeDarkDiagramEditor;
|