@wcardinal/wcardinal-ui 0.267.0 → 0.268.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 -0
- package/dist/types/wcardinal/ui/snapper/e-snapper-target.d.ts +2 -0
- package/dist/types/wcardinal/ui/snapper/e-snapper.d.ts +1 -0
- package/dist/wcardinal/ui/snapper/e-snapper-grid.js +9 -5
- package/dist/wcardinal/ui/snapper/e-snapper-grid.js.map +1 -1
- package/dist/wcardinal/ui/snapper/e-snapper-target.js +6 -4
- package/dist/wcardinal/ui/snapper/e-snapper-target.js.map +1 -1
- package/dist/wcardinal/ui/snapper/e-snapper.js +3 -2
- package/dist/wcardinal/ui/snapper/e-snapper.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +1 -1
- package/dist/wcardinal-ui-theme-dark.min.js +1 -1
- package/dist/wcardinal-ui-theme-white.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +19 -12
- package/dist/wcardinal-ui.js +19 -12
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -13,8 +13,11 @@ export interface EThemeSnapperGrid {
|
|
|
13
13
|
}
|
|
14
14
|
export declare class ESnapperGrid extends utils.EventEmitter {
|
|
15
15
|
protected _isEnabled: boolean;
|
|
16
|
+
protected _isEnabledDefault: boolean;
|
|
16
17
|
protected _size: number;
|
|
18
|
+
protected _sizeDefault: number;
|
|
17
19
|
protected _isVisible: boolean;
|
|
20
|
+
protected _isVisibleDefault: boolean;
|
|
18
21
|
constructor(theme: EThemeSnapperGrid, options?: ESnapperGridOptions);
|
|
19
22
|
get visible(): boolean;
|
|
20
23
|
set visible(visible: boolean);
|
|
@@ -13,7 +13,9 @@ export interface EThemeSnapperTarget {
|
|
|
13
13
|
export declare class ESnapperTarget extends utils.EventEmitter {
|
|
14
14
|
values: ESnapperTargetValue[];
|
|
15
15
|
protected _isVisible: boolean;
|
|
16
|
+
protected _isVisibleDefault: boolean;
|
|
16
17
|
protected _isEnabled: boolean;
|
|
18
|
+
protected _isEnabledDefault: boolean;
|
|
17
19
|
constructor(theme: EThemeSnapperTarget, options?: ESnapperTargetOptions);
|
|
18
20
|
get enable(): boolean;
|
|
19
21
|
set enable(enable: boolean);
|
|
@@ -53,6 +53,7 @@ export declare class ESnapper extends utils.EventEmitter {
|
|
|
53
53
|
protected _workSnapResultY: ESnapperResult;
|
|
54
54
|
protected _parent: ESnapperParent;
|
|
55
55
|
protected _isEnabled: boolean;
|
|
56
|
+
protected _isEnabledDefault: boolean;
|
|
56
57
|
grid: ESnapperGrid;
|
|
57
58
|
target: ESnapperTarget;
|
|
58
59
|
constructor(parent: ESnapperParent, theme: EThemeSnapper, options?: ESnapperOptions);
|
|
@@ -10,9 +10,12 @@ 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.
|
|
14
|
-
_this.
|
|
15
|
-
_this.
|
|
13
|
+
_this._isVisibleDefault = (_a = options === null || options === void 0 ? void 0 : options.visible) !== null && _a !== void 0 ? _a : theme.isSnapperGridVisible();
|
|
14
|
+
_this._isVisible = _this._isVisibleDefault;
|
|
15
|
+
_this._isEnabledDefault = (_b = options === null || options === void 0 ? void 0 : options.enable) !== null && _b !== void 0 ? _b : theme.isSnapperGridEnabled();
|
|
16
|
+
_this._isEnabled = _this._isEnabledDefault;
|
|
17
|
+
_this._sizeDefault = (_c = options === null || options === void 0 ? void 0 : options.size) !== null && _c !== void 0 ? _c : theme.getSnapperGridSize();
|
|
18
|
+
_this._size = _this._sizeDefault;
|
|
16
19
|
return _this;
|
|
17
20
|
}
|
|
18
21
|
Object.defineProperty(ESnapperGrid.prototype, "visible", {
|
|
@@ -61,8 +64,9 @@ var ESnapperGrid = /** @class */ (function (_super) {
|
|
|
61
64
|
}
|
|
62
65
|
};
|
|
63
66
|
ESnapperGrid.prototype.reset = function () {
|
|
64
|
-
this.
|
|
65
|
-
this.
|
|
67
|
+
this._isVisible = this._isVisibleDefault;
|
|
68
|
+
this._isEnabled = this._isEnabledDefault;
|
|
69
|
+
this._size = this._sizeDefault;
|
|
66
70
|
this.emit("change", this);
|
|
67
71
|
};
|
|
68
72
|
ESnapperGrid.prototype.serialize = function () {
|
|
@@ -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;
|
|
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\tisSnapperGridVisible(): boolean;\n\tisSnapperGridEnabled(): boolean;\n\tgetSnapperGridSize(): 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.isSnapperGridVisible();\n\t\tthis._isVisible = this._isVisibleDefault;\n\t\tthis._isEnabledDefault = options?.enable ?? theme.isSnapperGridEnabled();\n\t\tthis._isEnabled = this._isEnabledDefault;\n\t\tthis._sizeDefault = options?.size ?? theme.getSnapperGridSize();\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,8 +12,10 @@ var ESnapperTarget = /** @class */ (function (_super) {
|
|
|
12
12
|
var _a, _b;
|
|
13
13
|
_this = _super.call(this) || this;
|
|
14
14
|
_this.values = [];
|
|
15
|
-
_this.
|
|
16
|
-
_this.
|
|
15
|
+
_this._isVisibleDefault = (_a = options === null || options === void 0 ? void 0 : options.visible) !== null && _a !== void 0 ? _a : theme.isSnapperTargetVisible();
|
|
16
|
+
_this._isVisible = _this._isVisibleDefault;
|
|
17
|
+
_this._isEnabledDefault = (_b = options === null || options === void 0 ? void 0 : options.enable) !== null && _b !== void 0 ? _b : theme.isSnapperTargetEnabled();
|
|
18
|
+
_this._isEnabled = _this._isEnabledDefault;
|
|
17
19
|
return _this;
|
|
18
20
|
}
|
|
19
21
|
Object.defineProperty(ESnapperTarget.prototype, "enable", {
|
|
@@ -99,8 +101,8 @@ var ESnapperTarget = /** @class */ (function (_super) {
|
|
|
99
101
|
}
|
|
100
102
|
};
|
|
101
103
|
ESnapperTarget.prototype.reset = function () {
|
|
102
|
-
this._isEnabled =
|
|
103
|
-
this._isVisible =
|
|
104
|
+
this._isEnabled = this._isEnabledDefault;
|
|
105
|
+
this._isVisible = this._isVisibleDefault;
|
|
104
106
|
this.values.length = 0;
|
|
105
107
|
this.emit("change", this);
|
|
106
108
|
};
|
|
@@ -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;
|
|
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\tisSnapperTargetVisible(): boolean;\n\tisSnapperTargetEnabled(): 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.isSnapperTargetVisible();\n\t\tthis._isVisible = this._isVisibleDefault;\n\t\tthis._isEnabledDefault = options?.enable ?? theme.isSnapperTargetEnabled();\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,8 @@ 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.
|
|
52
|
+
_this._isEnabledDefault = (_a = options === null || options === void 0 ? void 0 : options.enable) !== null && _a !== void 0 ? _a : theme.isSnapperEnabled();
|
|
53
|
+
_this._isEnabled = _this._isEnabledDefault;
|
|
53
54
|
return _this;
|
|
54
55
|
}
|
|
55
56
|
Object.defineProperty(ESnapper.prototype, "enable", {
|
|
@@ -425,7 +426,7 @@ var ESnapper = /** @class */ (function (_super) {
|
|
|
425
426
|
return false;
|
|
426
427
|
};
|
|
427
428
|
ESnapper.prototype.reset = function () {
|
|
428
|
-
this.enable =
|
|
429
|
+
this.enable = this._isEnabledDefault;
|
|
429
430
|
this.target.reset();
|
|
430
431
|
this.grid.reset();
|
|
431
432
|
};
|
|
@@ -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\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._isEnabled = options?.enable ?? theme.isSnapperEnabled();\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 = true;\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\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"]}
|
package/dist/wcardinal-ui.cjs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Winter Cardinal UI v0.
|
|
2
|
+
Winter Cardinal UI v0.268.0
|
|
3
3
|
Copyright (C) 2019 Toshiba Corporation
|
|
4
4
|
SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
|
|
@@ -44095,9 +44095,12 @@ var ESnapperGrid = /** @class */ (function (_super) {
|
|
|
44095
44095
|
var _this = this;
|
|
44096
44096
|
var _a, _b, _c;
|
|
44097
44097
|
_this = _super.call(this) || this;
|
|
44098
|
-
_this.
|
|
44099
|
-
_this.
|
|
44100
|
-
_this.
|
|
44098
|
+
_this._isVisibleDefault = (_a = options === null || options === void 0 ? void 0 : options.visible) !== null && _a !== void 0 ? _a : theme.isSnapperGridVisible();
|
|
44099
|
+
_this._isVisible = _this._isVisibleDefault;
|
|
44100
|
+
_this._isEnabledDefault = (_b = options === null || options === void 0 ? void 0 : options.enable) !== null && _b !== void 0 ? _b : theme.isSnapperGridEnabled();
|
|
44101
|
+
_this._isEnabled = _this._isEnabledDefault;
|
|
44102
|
+
_this._sizeDefault = (_c = options === null || options === void 0 ? void 0 : options.size) !== null && _c !== void 0 ? _c : theme.getSnapperGridSize();
|
|
44103
|
+
_this._size = _this._sizeDefault;
|
|
44101
44104
|
return _this;
|
|
44102
44105
|
}
|
|
44103
44106
|
Object.defineProperty(ESnapperGrid.prototype, "visible", {
|
|
@@ -44146,8 +44149,9 @@ var ESnapperGrid = /** @class */ (function (_super) {
|
|
|
44146
44149
|
}
|
|
44147
44150
|
};
|
|
44148
44151
|
ESnapperGrid.prototype.reset = function () {
|
|
44149
|
-
this.
|
|
44150
|
-
this.
|
|
44152
|
+
this._isVisible = this._isVisibleDefault;
|
|
44153
|
+
this._isEnabled = this._isEnabledDefault;
|
|
44154
|
+
this._size = this._sizeDefault;
|
|
44151
44155
|
this.emit("change", this);
|
|
44152
44156
|
};
|
|
44153
44157
|
ESnapperGrid.prototype.serialize = function () {
|
|
@@ -44237,8 +44241,10 @@ var ESnapperTarget = /** @class */ (function (_super) {
|
|
|
44237
44241
|
var _a, _b;
|
|
44238
44242
|
_this = _super.call(this) || this;
|
|
44239
44243
|
_this.values = [];
|
|
44240
|
-
_this.
|
|
44241
|
-
_this.
|
|
44244
|
+
_this._isVisibleDefault = (_a = options === null || options === void 0 ? void 0 : options.visible) !== null && _a !== void 0 ? _a : theme.isSnapperTargetVisible();
|
|
44245
|
+
_this._isVisible = _this._isVisibleDefault;
|
|
44246
|
+
_this._isEnabledDefault = (_b = options === null || options === void 0 ? void 0 : options.enable) !== null && _b !== void 0 ? _b : theme.isSnapperTargetEnabled();
|
|
44247
|
+
_this._isEnabled = _this._isEnabledDefault;
|
|
44242
44248
|
return _this;
|
|
44243
44249
|
}
|
|
44244
44250
|
Object.defineProperty(ESnapperTarget.prototype, "enable", {
|
|
@@ -44324,8 +44330,8 @@ var ESnapperTarget = /** @class */ (function (_super) {
|
|
|
44324
44330
|
}
|
|
44325
44331
|
};
|
|
44326
44332
|
ESnapperTarget.prototype.reset = function () {
|
|
44327
|
-
this._isEnabled =
|
|
44328
|
-
this._isVisible =
|
|
44333
|
+
this._isEnabled = this._isEnabledDefault;
|
|
44334
|
+
this._isVisible = this._isVisibleDefault;
|
|
44329
44335
|
this.values.length = 0;
|
|
44330
44336
|
this.emit("change", this);
|
|
44331
44337
|
};
|
|
@@ -44400,7 +44406,8 @@ var ESnapper = /** @class */ (function (_super) {
|
|
|
44400
44406
|
_this.grid = new ESnapperGrid(theme, options === null || options === void 0 ? void 0 : options.grid);
|
|
44401
44407
|
_this.target = new ESnapperTarget(theme, options === null || options === void 0 ? void 0 : options.target);
|
|
44402
44408
|
_this._parent = parent;
|
|
44403
|
-
_this.
|
|
44409
|
+
_this._isEnabledDefault = (_a = options === null || options === void 0 ? void 0 : options.enable) !== null && _a !== void 0 ? _a : theme.isSnapperEnabled();
|
|
44410
|
+
_this._isEnabled = _this._isEnabledDefault;
|
|
44404
44411
|
return _this;
|
|
44405
44412
|
}
|
|
44406
44413
|
Object.defineProperty(ESnapper.prototype, "enable", {
|
|
@@ -44776,7 +44783,7 @@ var ESnapper = /** @class */ (function (_super) {
|
|
|
44776
44783
|
return false;
|
|
44777
44784
|
};
|
|
44778
44785
|
ESnapper.prototype.reset = function () {
|
|
44779
|
-
this.enable =
|
|
44786
|
+
this.enable = this._isEnabledDefault;
|
|
44780
44787
|
this.target.reset();
|
|
44781
44788
|
this.grid.reset();
|
|
44782
44789
|
};
|
package/dist/wcardinal-ui.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Winter Cardinal UI v0.
|
|
2
|
+
Winter Cardinal UI v0.268.0
|
|
3
3
|
Copyright (C) 2019 Toshiba Corporation
|
|
4
4
|
SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
|
|
@@ -44092,9 +44092,12 @@
|
|
|
44092
44092
|
var _this = this;
|
|
44093
44093
|
var _a, _b, _c;
|
|
44094
44094
|
_this = _super.call(this) || this;
|
|
44095
|
-
_this.
|
|
44096
|
-
_this.
|
|
44097
|
-
_this.
|
|
44095
|
+
_this._isVisibleDefault = (_a = options === null || options === void 0 ? void 0 : options.visible) !== null && _a !== void 0 ? _a : theme.isSnapperGridVisible();
|
|
44096
|
+
_this._isVisible = _this._isVisibleDefault;
|
|
44097
|
+
_this._isEnabledDefault = (_b = options === null || options === void 0 ? void 0 : options.enable) !== null && _b !== void 0 ? _b : theme.isSnapperGridEnabled();
|
|
44098
|
+
_this._isEnabled = _this._isEnabledDefault;
|
|
44099
|
+
_this._sizeDefault = (_c = options === null || options === void 0 ? void 0 : options.size) !== null && _c !== void 0 ? _c : theme.getSnapperGridSize();
|
|
44100
|
+
_this._size = _this._sizeDefault;
|
|
44098
44101
|
return _this;
|
|
44099
44102
|
}
|
|
44100
44103
|
Object.defineProperty(ESnapperGrid.prototype, "visible", {
|
|
@@ -44143,8 +44146,9 @@
|
|
|
44143
44146
|
}
|
|
44144
44147
|
};
|
|
44145
44148
|
ESnapperGrid.prototype.reset = function () {
|
|
44146
|
-
this.
|
|
44147
|
-
this.
|
|
44149
|
+
this._isVisible = this._isVisibleDefault;
|
|
44150
|
+
this._isEnabled = this._isEnabledDefault;
|
|
44151
|
+
this._size = this._sizeDefault;
|
|
44148
44152
|
this.emit("change", this);
|
|
44149
44153
|
};
|
|
44150
44154
|
ESnapperGrid.prototype.serialize = function () {
|
|
@@ -44234,8 +44238,10 @@
|
|
|
44234
44238
|
var _a, _b;
|
|
44235
44239
|
_this = _super.call(this) || this;
|
|
44236
44240
|
_this.values = [];
|
|
44237
|
-
_this.
|
|
44238
|
-
_this.
|
|
44241
|
+
_this._isVisibleDefault = (_a = options === null || options === void 0 ? void 0 : options.visible) !== null && _a !== void 0 ? _a : theme.isSnapperTargetVisible();
|
|
44242
|
+
_this._isVisible = _this._isVisibleDefault;
|
|
44243
|
+
_this._isEnabledDefault = (_b = options === null || options === void 0 ? void 0 : options.enable) !== null && _b !== void 0 ? _b : theme.isSnapperTargetEnabled();
|
|
44244
|
+
_this._isEnabled = _this._isEnabledDefault;
|
|
44239
44245
|
return _this;
|
|
44240
44246
|
}
|
|
44241
44247
|
Object.defineProperty(ESnapperTarget.prototype, "enable", {
|
|
@@ -44321,8 +44327,8 @@
|
|
|
44321
44327
|
}
|
|
44322
44328
|
};
|
|
44323
44329
|
ESnapperTarget.prototype.reset = function () {
|
|
44324
|
-
this._isEnabled =
|
|
44325
|
-
this._isVisible =
|
|
44330
|
+
this._isEnabled = this._isEnabledDefault;
|
|
44331
|
+
this._isVisible = this._isVisibleDefault;
|
|
44326
44332
|
this.values.length = 0;
|
|
44327
44333
|
this.emit("change", this);
|
|
44328
44334
|
};
|
|
@@ -44397,7 +44403,8 @@
|
|
|
44397
44403
|
_this.grid = new ESnapperGrid(theme, options === null || options === void 0 ? void 0 : options.grid);
|
|
44398
44404
|
_this.target = new ESnapperTarget(theme, options === null || options === void 0 ? void 0 : options.target);
|
|
44399
44405
|
_this._parent = parent;
|
|
44400
|
-
_this.
|
|
44406
|
+
_this._isEnabledDefault = (_a = options === null || options === void 0 ? void 0 : options.enable) !== null && _a !== void 0 ? _a : theme.isSnapperEnabled();
|
|
44407
|
+
_this._isEnabled = _this._isEnabledDefault;
|
|
44401
44408
|
return _this;
|
|
44402
44409
|
}
|
|
44403
44410
|
Object.defineProperty(ESnapper.prototype, "enable", {
|
|
@@ -44773,7 +44780,7 @@
|
|
|
44773
44780
|
return false;
|
|
44774
44781
|
};
|
|
44775
44782
|
ESnapper.prototype.reset = function () {
|
|
44776
|
-
this.enable =
|
|
44783
|
+
this.enable = this._isEnabledDefault;
|
|
44777
44784
|
this.target.reset();
|
|
44778
44785
|
this.grid.reset();
|
|
44779
44786
|
};
|