@realsee/dnalogel 0.1.7-alpha.1 → 0.1.7-alpha.10
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/components/GLTFView/index.d.ts +30 -1
- package/components/GLTFView/index.js +35 -3
- package/data/81zxMaeVKLQU93OZMG.d.ts +49 -0
- package/data/81zxMaeVKLQU93OZMG.js +633 -0
- package/data/PrXel3aqGbp34JQn.js +139 -1
- package/data/_vLykj3NWrllMrG06.d.ts +95 -0
- package/data/_vLykj3NWrllMrG06.js +1 -0
- package/data/vLykj3NWrllMrG06.js +335 -71
- package/libs/gltf-viewer/coordsToDirection.d.ts +1 -1
- package/libs/gltf-viewer/index.d.ts +25 -3
- package/libs/gltf-viewer/index.js +169 -52
- package/package.json +3 -3
- package/plugins/CSS3DRenderPlugin/index.js +15 -10
- package/plugins/CSS3DRenderPlugin/utils/createResizeObserver.d.ts +7 -0
- package/plugins/CSS3DRenderPlugin/utils/createResizeObserver.js +34 -0
- package/plugins/ModelChassisCompassPlugin/index.d.ts +1 -1
- package/plugins/ModelChassisCompassPlugin/index.js +2 -1
- package/plugins/ModelEntryDoorGuidePlugin/index.d.ts +4 -0
- package/plugins/ModelEntryDoorGuidePlugin/index.js +13 -7
- package/plugins/ModelRoomLabelPlugin/Controller.js +1 -0
- package/plugins/ModelRoomLabelPlugin/RoomLabelItem.js +5 -5
- package/plugins/ModelRoomLabelPlugin/index.d.ts +4 -0
- package/plugins/ModelRoomLabelPlugin/index.js +7 -2
- package/plugins/PanoMaskSelectorPlugin/fragmentShader.d.ts +1 -1
- package/plugins/PanoMaskSelectorPlugin/fragmentShader.js +1 -1
- package/plugins/PanoMeasurePlugin/Controller/BaseController.d.ts +36 -0
- package/plugins/PanoMeasurePlugin/Controller/BaseController.js +103 -0
- package/plugins/PanoMeasurePlugin/Controller/EditController.d.ts +52 -0
- package/plugins/PanoMeasurePlugin/Controller/EditController.js +341 -0
- package/plugins/PanoMeasurePlugin/Controller/ShortcutKeyController.d.ts +12 -0
- package/plugins/PanoMeasurePlugin/Controller/ShortcutKeyController.js +69 -0
- package/plugins/PanoMeasurePlugin/Controller/WatchController.d.ts +25 -0
- package/plugins/PanoMeasurePlugin/Controller/WatchController.js +371 -0
- package/plugins/PanoMeasurePlugin/Controller/index.d.ts +61 -0
- package/plugins/PanoMeasurePlugin/Controller/index.js +230 -0
- package/plugins/PanoMeasurePlugin/Model/index.d.ts +38 -0
- package/plugins/PanoMeasurePlugin/Model/index.js +235 -0
- package/plugins/PanoMeasurePlugin/Model/line.d.ts +30 -0
- package/plugins/PanoMeasurePlugin/Model/line.js +121 -0
- package/plugins/PanoMeasurePlugin/Model/point.d.ts +16 -0
- package/plugins/PanoMeasurePlugin/Model/point.js +68 -0
- package/plugins/PanoMeasurePlugin/Model/polyline.d.ts +16 -0
- package/plugins/PanoMeasurePlugin/Model/polyline.js +109 -0
- package/plugins/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete.svg.d.ts +2 -0
- package/plugins/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete.svg.js +11 -0
- package/plugins/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_bg.png.d.ts +2 -0
- package/plugins/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_bg.png.js +11 -0
- package/plugins/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_hover_bg.png.d.ts +2 -0
- package/plugins/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_hover_bg.png.js +11 -0
- package/plugins/PanoMeasurePlugin/Modules/DeleteDom/index.d.ts +22 -0
- package/plugins/PanoMeasurePlugin/Modules/DeleteDom/index.js +182 -0
- package/plugins/PanoMeasurePlugin/Modules/FiveHelper.d.ts +11 -0
- package/plugins/PanoMeasurePlugin/Modules/FiveHelper.js +66 -0
- package/plugins/PanoMeasurePlugin/Modules/GuideController.d.ts +18 -0
- package/plugins/PanoMeasurePlugin/Modules/GuideController.js +107 -0
- package/plugins/PanoMeasurePlugin/Modules/Magnifier.d.ts +24 -0
- package/plugins/PanoMeasurePlugin/Modules/Magnifier.js +139 -0
- package/plugins/PanoMeasurePlugin/Modules/UIController/HTML.d.ts +6 -0
- package/plugins/PanoMeasurePlugin/Modules/UIController/HTML.js +26 -0
- package/plugins/PanoMeasurePlugin/Modules/UIController/MainBtnController.d.ts +18 -0
- package/plugins/PanoMeasurePlugin/Modules/UIController/MainBtnController.js +169 -0
- package/plugins/PanoMeasurePlugin/Modules/UIController/Revoke/index.d.ts +12 -0
- package/plugins/PanoMeasurePlugin/Modules/UIController/Revoke/index.js +59 -0
- package/plugins/PanoMeasurePlugin/Modules/UIController/index.d.ts +16 -0
- package/plugins/PanoMeasurePlugin/Modules/UIController/index.js +123 -0
- package/plugins/PanoMeasurePlugin/Modules/UIController/style.d.ts +17 -0
- package/plugins/PanoMeasurePlugin/Modules/UIController/style.js +103 -0
- package/plugins/PanoMeasurePlugin/index.d.ts +7 -0
- package/plugins/PanoMeasurePlugin/index.js +20 -0
- package/plugins/PanoMeasurePlugin/typings/data.d.ts +28 -0
- package/plugins/PanoMeasurePlugin/typings/data.js +7 -0
- package/plugins/PanoMeasurePlugin/typings/event.type.d.ts +28 -0
- package/plugins/PanoMeasurePlugin/typings/event.type.js +7 -0
- package/plugins/PanoMeasurePlugin/typings/utils.type.d.ts +1 -0
- package/plugins/PanoMeasurePlugin/typings/utils.type.js +7 -0
- package/plugins/PanoMeasurePlugin/utils/clearGroup.d.ts +2 -0
- package/plugins/PanoMeasurePlugin/utils/clearGroup.js +16 -0
- package/plugins/PanoMeasurePlugin/utils/constants.d.ts +4 -0
- package/plugins/PanoMeasurePlugin/utils/constants.js +47 -0
- package/plugins/PanoMeasurePlugin/utils/distanceDom.d.ts +28 -0
- package/plugins/PanoMeasurePlugin/utils/distanceDom.js +147 -0
- package/plugins/PanoMeasurePlugin/utils/findAssociatedLines.d.ts +2 -0
- package/plugins/PanoMeasurePlugin/utils/findAssociatedLines.js +37 -0
- package/plugins/PanoMeasurePlugin/utils/findClosestPoint.d.ts +10 -0
- package/plugins/PanoMeasurePlugin/utils/findClosestPoint.js +49 -0
- package/plugins/PanoMeasurePlugin/utils/getIntersectionFromEvent.d.ts +4 -0
- package/plugins/PanoMeasurePlugin/utils/getIntersectionFromEvent.js +20 -0
- package/plugins/PanoMeasurePlugin/utils/getPointFromHammerEvent.d.ts +10 -0
- package/plugins/PanoMeasurePlugin/utils/getPointFromHammerEvent.js +33 -0
- package/plugins/PanoMeasurePlugin/utils/ironbox.d.ts +1 -0
- package/plugins/PanoMeasurePlugin/utils/ironbox.js +14 -0
- package/plugins/PanoMeasurePlugin/utils/isNDCPointInScreen.d.ts +2 -0
- package/plugins/PanoMeasurePlugin/utils/isNDCPointInScreen.js +16 -0
- package/plugins/PanoMeasurePlugin/utils/line.d.ts +17 -0
- package/plugins/PanoMeasurePlugin/utils/line.js +61 -0
- package/plugins/PanoMeasurePlugin/utils/math.d.ts +17 -0
- package/plugins/PanoMeasurePlugin/utils/math.js +57 -0
- package/plugins/PanoMeasurePlugin/utils/mouseGroup.d.ts +2 -0
- package/plugins/PanoMeasurePlugin/utils/mouseGroup.js +42 -0
- package/plugins/PanoMeasurePlugin/utils/ndc2Screen.d.ts +5 -0
- package/plugins/PanoMeasurePlugin/utils/ndc2Screen.js +16 -0
- package/plugins/PanoRulerPlugin/index.d.ts +4 -0
- package/plugins/PanoRulerPlugin/index.js +6 -1
- package/plugins/floorplan/Assets/floorplanExtraObject.d.ts +1 -1
- package/plugins/floorplan/Assets/floorplanExtraObject.js +3 -3
- package/plugins/floorplan/ModelFloorplanPlugin/Controller.d.ts +5 -2
- package/plugins/floorplan/ModelFloorplanPlugin/Controller.js +22 -11
- package/plugins/floorplan/ModelFloorplanPlugin/components/Camera.js +4 -4
- package/plugins/floorplan/ModelFloorplanPlugin/components/Compass.js +5 -5
- package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RoomLabels.js +2 -2
- package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RoomMaterial.d.ts +11 -0
- package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RoomMaterial.js +174 -0
- package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RuleLabels.d.ts +8 -0
- package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/RuleLabels.js +178 -0
- package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/index.d.ts +2 -0
- package/plugins/floorplan/ModelFloorplanPlugin/components/NowFloor/index.js +14 -2
- package/plugins/floorplan/ModelFloorplanPlugin/components/index.d.ts +3 -0
- package/plugins/floorplan/ModelFloorplanPlugin/components/index.js +1 -1
- package/plugins/floorplan/ModelFloorplanPlugin/typings/utility.d.ts +2 -0
- package/plugins/floorplan/ModelFloorplanPlugin/typings/utility.js +7 -0
- package/plugins/floorplan/ModelFloorplanPlugin/utils/constant.d.ts +1 -1
- package/plugins/floorplan/ModelFloorplanPlugin/utils/constant.js +1 -1
- package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/Camera.js +1 -0
- package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/Camera.style.js +4 -4
- package/plugins/floorplan/PanoFloorplanRadarPlugin/Content/NowFloor/ExtraObjects.js +2 -2
- package/plugins/floorplan/PanoFloorplanRadarPlugin/Controller.d.ts +1 -1
- package/plugins/floorplan/PanoFloorplanRadarPlugin/Controller.js +3 -3
- package/plugins/floorplan/TopviewFloorplanPlugin/Controller.d.ts +3 -0
- package/plugins/floorplan/TopviewFloorplanPlugin/Controller.js +16 -6
- package/plugins/floorplan/index.d.ts +4 -0
- package/plugins/floorplan/index.js +13 -0
- package/plugins/floorplan/typings/floorplanData.d.ts +2 -0
- package/plugins/floorplan/typings/floorplanServerData.d.ts +3 -1
- package/plugins/floorplan/typings/floorplanServerData.js +3 -3
- package/plugins/floorplan/utils/formatData.js +3 -2
- package/shared-utils/changeModelCanvasOpacity.d.ts +2 -0
- package/shared-utils/{changeModelCanvansOpacity.js → changeModelCanvasOpacity.js} +2 -2
- package/shared-utils/math/evenNumber.d.ts +3 -1
- package/shared-utils/math/evenNumber.js +4 -2
- package/shared-utils/removeArrayItem.d.ts +7 -0
- package/shared-utils/removeArrayItem.js +22 -0
- package/shared-utils/three/loadTexture.d.ts +2 -2
- package/shared-utils/three/loadTexture.js +21 -2
- package/shared-utils/changeModelCanvansOpacity.d.ts +0 -2
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.GuideController = void 0;
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
|
|
18
|
+
var GuideController = /*#__PURE__*/function () {
|
|
19
|
+
function GuideController(measureController, params) {
|
|
20
|
+
var _this = this;
|
|
21
|
+
|
|
22
|
+
(0, _classCallCheck2["default"])(this, GuideController);
|
|
23
|
+
(0, _defineProperty2["default"])(this, "textDom", document.createElement('span'));
|
|
24
|
+
(0, _defineProperty2["default"])(this, "container", document.createElement('div'));
|
|
25
|
+
(0, _defineProperty2["default"])(this, "hasAnchor", false);
|
|
26
|
+
(0, _defineProperty2["default"])(this, "onModelChange", function (mode) {
|
|
27
|
+
if (mode === 'Watch') {
|
|
28
|
+
_this.textDom.innerText = "";
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
_this.textDom.innerText = "\u8BF7\u9009\u62E9\u7B2C\u4E00\u4E2A\u6D4B\u91CF\u70B9\uFF0CEsc\u6216\u5355\u51FB\u9F20\u6807\u53F3\u952E\u53EF\u53D6\u6D88\u9009\u62E9";
|
|
33
|
+
});
|
|
34
|
+
(0, _defineProperty2["default"])(this, "anchorChange", function (anchor) {
|
|
35
|
+
if (!_this.hasAnchor && !!anchor) {
|
|
36
|
+
_this.hasAnchor = true;
|
|
37
|
+
_this.textDom.innerText = "\u9009\u62E9\u4E0B\u4E00\u4E2A\u6D4B\u91CF\u70B9\uFF0CEsc\u6216\u5355\u51FB\u9F20\u6807\u53F3\u952E\u53D6\u6D88\u9009\u62E9";
|
|
38
|
+
} else if (!anchor) {
|
|
39
|
+
_this.hasAnchor = false;
|
|
40
|
+
_this.textDom.innerText = "\u8BF7\u9009\u62E9\u7B2C\u4E00\u4E2A\u6D4B\u91CF\u70B9\uFF0CEsc\u6216\u5355\u51FB\u9F20\u6807\u53F3\u952E\u53EF\u53D6\u6D88\u9009\u62E9";
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
(0, _defineProperty2["default"])(this, "onEditedLineChange", function (lines) {
|
|
44
|
+
if (lines.length === 1) {
|
|
45
|
+
_this.textDom.innerText = "\u53EF\u4EE5\u8FDE\u7EED\u9009\u62E9\u6D4B\u91CF\u70B9\uFF0C\u6216\u70B9\u51FB\u4E0B\u65B9\u201C\u5B8C\u6210\u201D\u7ED3\u675F\u6D4B\u91CF\uFF08Esc\u53D6\u6D88\uFF0CCommand+S\u4FDD\u5B58\uFF09";
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
this.initDom();
|
|
49
|
+
params.container.append(this.container);
|
|
50
|
+
this.measureController = measureController;
|
|
51
|
+
measureController.hook.on('modeChange', this.onModelChange);
|
|
52
|
+
measureController.hook.on('anchorChange', this.anchorChange);
|
|
53
|
+
measureController.hook.on('editedLineChange', this.onEditedLineChange);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
(0, _createClass2["default"])(GuideController, [{
|
|
57
|
+
key: "dispose",
|
|
58
|
+
value: function dispose() {
|
|
59
|
+
this.hide();
|
|
60
|
+
this.container.remove();
|
|
61
|
+
}
|
|
62
|
+
}, {
|
|
63
|
+
key: "show",
|
|
64
|
+
value: function show() {
|
|
65
|
+
this.container.style.opacity = '1';
|
|
66
|
+
this.container.style.transform = 'translate(0, 0)';
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
}, {
|
|
70
|
+
key: "hide",
|
|
71
|
+
value: function hide() {
|
|
72
|
+
this.container.style.opacity = '0';
|
|
73
|
+
this.container.style.transform = 'translate(0, -10px)';
|
|
74
|
+
this.measureController.hook.off('modeChange', this.onModelChange);
|
|
75
|
+
this.measureController.hook.off('anchorChange', this.anchorChange);
|
|
76
|
+
this.measureController.hook.off('editedLineChange', this.onEditedLineChange);
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
}, {
|
|
80
|
+
key: "initDom",
|
|
81
|
+
value: function initDom() {
|
|
82
|
+
var container = this.container;
|
|
83
|
+
var textDom = this.textDom;
|
|
84
|
+
container.classList.add('fpm__guide-container');
|
|
85
|
+
container.style.position = 'absolute';
|
|
86
|
+
container.style.top = '0px';
|
|
87
|
+
container.style.left = '0px';
|
|
88
|
+
container.style.width = '100%';
|
|
89
|
+
container.style.height = '110px';
|
|
90
|
+
container.style.display = 'flex';
|
|
91
|
+
container.style.alignItems = 'center';
|
|
92
|
+
container.style.justifyContent = 'center';
|
|
93
|
+
container.style.transform = 'translate(0, -10px)';
|
|
94
|
+
container.style.background = "linear-gradient(180deg, rgba(0,0,0,0.40) 0%, rgba(0,0,0,0.00) 100%)";
|
|
95
|
+
container.style.transition = 'opacity 500ms ease-in-out, transform 500ms ease-in-out';
|
|
96
|
+
container.style.opacity = '0';
|
|
97
|
+
textDom.classList.add('fpm__guide-text');
|
|
98
|
+
textDom.style.color = '#fff';
|
|
99
|
+
textDom.style.fontSize = '20px';
|
|
100
|
+
textDom.innerText = "\u70B9\u51FB\u4E0B\u65B9\u201C\u6DFB\u52A0\u201D\u5F00\u59CB\u6D4B\u8DDD";
|
|
101
|
+
container.appendChild(textDom);
|
|
102
|
+
}
|
|
103
|
+
}]);
|
|
104
|
+
return GuideController;
|
|
105
|
+
}();
|
|
106
|
+
|
|
107
|
+
exports.GuideController = GuideController;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Five } from '@realsee/five';
|
|
2
|
+
import { Vector3 } from 'three';
|
|
3
|
+
export interface MagnifierOptions {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
scale: number;
|
|
7
|
+
}
|
|
8
|
+
export default class Magnifier {
|
|
9
|
+
private five;
|
|
10
|
+
private scale;
|
|
11
|
+
private width;
|
|
12
|
+
private height;
|
|
13
|
+
private pixelRatio;
|
|
14
|
+
private originWidth;
|
|
15
|
+
private originHeight;
|
|
16
|
+
private context;
|
|
17
|
+
private canvas;
|
|
18
|
+
private container?;
|
|
19
|
+
constructor(five: Five, options: MagnifierOptions);
|
|
20
|
+
dispose(): void;
|
|
21
|
+
clear(): void;
|
|
22
|
+
appendTo(element: Element): void;
|
|
23
|
+
updateWithPoint(point: Vector3): void;
|
|
24
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
require("core-js/modules/es.date.to-string.js");
|
|
13
|
+
|
|
14
|
+
require("core-js/modules/es.object.to-string.js");
|
|
15
|
+
|
|
16
|
+
require("core-js/modules/es.regexp.to-string.js");
|
|
17
|
+
|
|
18
|
+
require("core-js/modules/es.array.concat.js");
|
|
19
|
+
|
|
20
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
21
|
+
|
|
22
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
23
|
+
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
26
|
+
var _three = require("three");
|
|
27
|
+
|
|
28
|
+
/** 交换数组元素 */
|
|
29
|
+
function exchange(array, index1, index2) {
|
|
30
|
+
var value = array[index1];
|
|
31
|
+
array[index1] = array[index2];
|
|
32
|
+
array[index2] = value;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var Magnifier = /*#__PURE__*/function () {
|
|
36
|
+
function Magnifier(five, options) {
|
|
37
|
+
(0, _classCallCheck2["default"])(this, Magnifier);
|
|
38
|
+
(0, _defineProperty2["default"])(this, "canvas", document.createElement('canvas'));
|
|
39
|
+
if (!five.renderer) throw new Error('Five Render 未初始化');
|
|
40
|
+
this.five = five;
|
|
41
|
+
var scale = options.scale;
|
|
42
|
+
var pixelRatio = five.renderer.getPixelRatio();
|
|
43
|
+
var originWidth = options.width;
|
|
44
|
+
var originHeight = options.height;
|
|
45
|
+
var width = originWidth * pixelRatio;
|
|
46
|
+
var height = originHeight * pixelRatio;
|
|
47
|
+
var magnifier = this.canvas;
|
|
48
|
+
var context = this.canvas.getContext('2d');
|
|
49
|
+
if (!context) throw new Error('CANNOT CREATE CONTEXT2D');
|
|
50
|
+
this.scale = scale;
|
|
51
|
+
this.context = context;
|
|
52
|
+
this.width = width;
|
|
53
|
+
this.height = height;
|
|
54
|
+
this.originWidth = originWidth;
|
|
55
|
+
this.originHeight = originHeight;
|
|
56
|
+
this.pixelRatio = pixelRatio;
|
|
57
|
+
magnifier.classList.add('plugin-measure-magnifier');
|
|
58
|
+
magnifier.style.position = 'absolute';
|
|
59
|
+
magnifier.style.pointerEvents = 'none';
|
|
60
|
+
magnifier.style.borderRadius = '50%';
|
|
61
|
+
magnifier.style.left = -width / 2 + 'px';
|
|
62
|
+
magnifier.style.top = -height - 90 + 'px';
|
|
63
|
+
magnifier.setAttribute('width', width.toString());
|
|
64
|
+
magnifier.setAttribute('height', height.toString());
|
|
65
|
+
this.canvas.style.width = originWidth + 'px';
|
|
66
|
+
this.canvas.style.height = originHeight + 'px';
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
(0, _createClass2["default"])(Magnifier, [{
|
|
70
|
+
key: "dispose",
|
|
71
|
+
value: function dispose() {
|
|
72
|
+
this.clear();
|
|
73
|
+
this.canvas.remove();
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
key: "clear",
|
|
77
|
+
value: function clear() {
|
|
78
|
+
this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
|
79
|
+
}
|
|
80
|
+
}, {
|
|
81
|
+
key: "appendTo",
|
|
82
|
+
value: function appendTo(element) {
|
|
83
|
+
this.container = element;
|
|
84
|
+
element.append(this.canvas);
|
|
85
|
+
}
|
|
86
|
+
}, {
|
|
87
|
+
key: "updateWithPoint",
|
|
88
|
+
value: function updateWithPoint(point) {
|
|
89
|
+
if (!this.five.renderer || !this.container) return;
|
|
90
|
+
var scale = this.scale,
|
|
91
|
+
pixelRatio = this.pixelRatio,
|
|
92
|
+
context = this.context,
|
|
93
|
+
originWidth = this.originWidth,
|
|
94
|
+
originHeight = this.originHeight,
|
|
95
|
+
width = this.width,
|
|
96
|
+
height = this.height;
|
|
97
|
+
var position2d = point.clone().project(this.five.camera);
|
|
98
|
+
var left = (position2d.x + 1) / 2 * this.container.clientWidth;
|
|
99
|
+
var right = -(position2d.x - 1) / 2 * this.container.clientWidth;
|
|
100
|
+
var top = -(position2d.y - 1) / 2 * this.container.clientHeight;
|
|
101
|
+
|
|
102
|
+
if (left < 183) {
|
|
103
|
+
this.canvas.style.top = -originHeight / 2 + 'px';
|
|
104
|
+
this.canvas.style.left = 90 + 'px';
|
|
105
|
+
} else if (top < 183) {
|
|
106
|
+
this.canvas.style.top = 90 + 'px';
|
|
107
|
+
this.canvas.style.left = -originWidth / 2 + 'px';
|
|
108
|
+
} else if (right < 183) {
|
|
109
|
+
this.canvas.style.top = -originHeight / 2 + 'px';
|
|
110
|
+
this.canvas.style.left = -originWidth - 90 + 'px';
|
|
111
|
+
} else {
|
|
112
|
+
this.canvas.style.left = -originWidth / 2 + 'px';
|
|
113
|
+
this.canvas.style.top = -originHeight - 90 + 'px';
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
this.canvas.style.transform = "translate3d(".concat(left, "px, ").concat(top, "px, 10px)");
|
|
117
|
+
var renderSize = this.five.renderer.getSize(new _three.Vector2());
|
|
118
|
+
var x = (position2d.x + 1) / 2 * renderSize.x;
|
|
119
|
+
var y = (position2d.y + 1) / 2 * renderSize.y;
|
|
120
|
+
var pixels = this.five.getPixels(x - originWidth / scale / 2, y - originHeight / scale / 2, originWidth / scale, originHeight / scale, pixelRatio * scale);
|
|
121
|
+
var length = width * height / 2;
|
|
122
|
+
|
|
123
|
+
for (var index = 0; index < length; index++) {
|
|
124
|
+
var targetIndex = (height - Math.floor(index / width) - 1) * width + index % width;
|
|
125
|
+
exchange(pixels, index * 4 + 0, targetIndex * 4 + 0);
|
|
126
|
+
exchange(pixels, index * 4 + 1, targetIndex * 4 + 1);
|
|
127
|
+
exchange(pixels, index * 4 + 2, targetIndex * 4 + 2);
|
|
128
|
+
exchange(pixels, index * 4 + 3, targetIndex * 4 + 3);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
var imageData = context.createImageData(width, height);
|
|
132
|
+
imageData.data.set(pixels);
|
|
133
|
+
context.putImageData(imageData, 0, 0);
|
|
134
|
+
}
|
|
135
|
+
}]);
|
|
136
|
+
return Magnifier;
|
|
137
|
+
}();
|
|
138
|
+
|
|
139
|
+
exports["default"] = Magnifier;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const MAIN_NORMAL_PATH = "M31.379 15.466a1.045 1.045 0 0 1-.92 1.076l-11.276.607a1.6 1.6 0 0 0-1.512 1.511l-.599 11.113a1.045 1.045 0 0 1-.92 1.075l-.164.008a1.183 1.183 0 0 1-1.123-.975l-.016-.164-.221-10.768a1.6 1.6 0 0 0-1.567-1.567l-11.3-.231-.165-.016a1.187 1.187 0 0 1-.964-.996l-.01-.127.007-.164c.061-.496.455-.876.958-.917l.118-.003 11.112-.599a1.6 1.6 0 0 0 1.498-1.37l.014-.142.607-11.276a1.045 1.045 0 0 1 1.076-.92c.573.015 1.055.46 1.13 1.019l.009.121.221 10.766a1.6 1.6 0 0 0 1.567 1.566l11.3.234a1.181 1.181 0 0 1 1.14 1.139z";
|
|
2
|
+
export declare const MAIN_DONE_PATH = "M27.1772552,8.15828895 C27.8664561,7.48070421 28.5574369,7.81156875 28.8336646,8.04968716 C29.1098924,8.28780557 29.3990219,9.110014 28.8256559,9.79263351 L28.7110903,9.9165024 L13.9697229,25.1399531 C13.3288458,25.7700285 12.3239388,25.8070917 11.6402346,25.2511429 L11.5159715,25.1399531 L3.7056151,18.0063788 C3.01641417,17.3287941 3.00699739,16.2207954 3.68458213,15.5315945 C4.32230894,14.8829348 5.3413021,14.8364368 6.03356826,15.3981178 L6.15936649,15.5105615 L12.6856594,21.9049888 L27.1772552,8.15828895 Z";
|
|
3
|
+
export declare const MAIN_MOUSE_ENTER_FILL = "url(#fpm__main-b)";
|
|
4
|
+
export declare const MAIN_MOUSE_LEAVE_FILL = "url(#fpm__main-c)";
|
|
5
|
+
declare const _default: string;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.MAIN_NORMAL_PATH = exports.MAIN_MOUSE_LEAVE_FILL = exports.MAIN_MOUSE_ENTER_FILL = exports.MAIN_DONE_PATH = void 0;
|
|
9
|
+
|
|
10
|
+
require("core-js/modules/es.array.concat.js");
|
|
11
|
+
|
|
12
|
+
var MAIN_NORMAL_PATH = 'M31.379 15.466a1.045 1.045 0 0 1-.92 1.076l-11.276.607a1.6 1.6 0 0 0-1.512 1.511l-.599 11.113a1.045 1.045 0 0 1-.92 1.075l-.164.008a1.183 1.183 0 0 1-1.123-.975l-.016-.164-.221-10.768a1.6 1.6 0 0 0-1.567-1.567l-11.3-.231-.165-.016a1.187 1.187 0 0 1-.964-.996l-.01-.127.007-.164c.061-.496.455-.876.958-.917l.118-.003 11.112-.599a1.6 1.6 0 0 0 1.498-1.37l.014-.142.607-11.276a1.045 1.045 0 0 1 1.076-.92c.573.015 1.055.46 1.13 1.019l.009.121.221 10.766a1.6 1.6 0 0 0 1.567 1.566l11.3.234a1.181 1.181 0 0 1 1.14 1.139z';
|
|
13
|
+
exports.MAIN_NORMAL_PATH = MAIN_NORMAL_PATH;
|
|
14
|
+
var MAIN_DONE_PATH = 'M27.1772552,8.15828895 C27.8664561,7.48070421 28.5574369,7.81156875 28.8336646,8.04968716 C29.1098924,8.28780557 29.3990219,9.110014 28.8256559,9.79263351 L28.7110903,9.9165024 L13.9697229,25.1399531 C13.3288458,25.7700285 12.3239388,25.8070917 11.6402346,25.2511429 L11.5159715,25.1399531 L3.7056151,18.0063788 C3.01641417,17.3287941 3.00699739,16.2207954 3.68458213,15.5315945 C4.32230894,14.8829348 5.3413021,14.8364368 6.03356826,15.3981178 L6.15936649,15.5105615 L12.6856594,21.9049888 L27.1772552,8.15828895 Z';
|
|
15
|
+
exports.MAIN_DONE_PATH = MAIN_DONE_PATH;
|
|
16
|
+
var MAIN_MOUSE_ENTER_FILL = 'url(#fpm__main-b)';
|
|
17
|
+
exports.MAIN_MOUSE_ENTER_FILL = MAIN_MOUSE_ENTER_FILL;
|
|
18
|
+
var MAIN_MOUSE_LEAVE_FILL = 'url(#fpm__main-c)';
|
|
19
|
+
exports.MAIN_MOUSE_LEAVE_FILL = MAIN_MOUSE_LEAVE_FILL;
|
|
20
|
+
var revokeSvg = "\n <svg class=\"fpm__revoke-icon\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\">\n <defs>\n <linearGradient x1=\"47.631%\" y1=\"55.183%\" x2=\"2.967%\" y2=\"86.323%\" id=\"fpm__revoke-a\">\n <stop stop-color=\"#FFF\" offset=\"0%\" />\n <stop stop-color=\"#FFF\" stop-opacity=\".5\" offset=\"100%\" />\n </linearGradient>\n <linearGradient x1=\"5.297%\" y1=\"43.016%\" x2=\"38.238%\" y2=\"79.932%\" id=\"fpm__revoke-b\">\n <stop stop-color=\"#FFF\" offset=\"0%\" />\n <stop stop-color=\"#FFF\" stop-opacity=\"0\" offset=\"100%\" />\n </linearGradient>\n </defs>\n <path\n d=\"M13.388 7.108c.552 0 1.005.42 1.06.957l.006.11v1.224c0 .921.745 1.667 1.666 1.667h7.184c5.804 0 10.509 4.616 10.509 10.309 0 5.595-4.544 10.15-10.21 10.305l-.3.004H8.924c-.917 0-1.66-.729-1.66-1.628 0-.846.658-1.541 1.5-1.62l.16-.008h14.38c3.972 0 7.191-3.158 7.191-7.053 0-3.81-3.08-6.916-6.933-7.049l-.257-.004H10.029l-.109-.005H8.212c-.245 0-.482-.085-.67-.237l-.09-.082a1.066 1.066 0 0 1-.065-1.422l.079-.086 5.175-5.077c.2-.195.468-.305.747-.305z\"\n fill=\"url(#fpm__revoke-a)\"\n fill-rule=\"nonzero\"\n stroke=\"url(#fpm__revoke-b)\"\n stroke-width=\".5\"\n />\n </svg>\n";
|
|
21
|
+
var exitSvg = "\n <svg class=\"fpm__exit-icon width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\">\n <defs>\n <linearGradient x1=\"36.288%\" y1=\"73.736%\" x2=\"54.242%\" y2=\"97.166%\" id=\"fpm__exit-a\">\n <stop stop-color=\"#FFF\" offset=\"0%\" />\n <stop stop-color=\"#FFF\" stop-opacity=\".5\" offset=\"100%\" />\n </linearGradient>\n <linearGradient x1=\"100%\" y1=\"47.234%\" x2=\"24.047%\" y2=\"47.234%\" id=\"fpm__exit-b\">\n <stop stop-color=\"#FFF\" offset=\"0%\" />\n <stop stop-color=\"#FFF\" stop-opacity=\".005\" offset=\"99.535%\" />\n <stop stop-color=\"#FFF\" stop-opacity=\"0\" offset=\"100%\" />\n </linearGradient>\n </defs>\n <path\n d=\"M22 7a1.5 1.5 0 0 1 .144 2.993L22 10h-9a1.5 1.5 0 0 0-1.493 1.356l-.007.144v17a1.5 1.5 0 0 0 1.356 1.493L13 30h9a1.5 1.5 0 0 1 .144 2.993L22 33h-9a4.5 4.5 0 0 1-4.495-4.288L8.5 28.5v-17a4.5 4.5 0 0 1 4.288-4.495L13 7h9zm6.317 7.755a1 1 0 0 1 .7.286l4.856 4.764a1 1 0 0 1-.7 1.713h-5.856V21.5h-8.032a1.5 1.5 0 1 1 0-3h6.365c.92 0 1.666-.746 1.667-1.667v-1.078a1 1 0 0 1 1-1z\"\n fill=\"url(#fpm__exit-a)\"\n fill-rule=\"nonzero\"\n stroke=\"url(#fpm__exit-b)\"\n stroke-width=\".5\"\n />\n </svg>\n";
|
|
22
|
+
var mainSvg = "\n <svg class=\"fpm__main-icon\" width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" xmlns=\"http://www.w3.org/2000/svg\">\n <defs>\n <mask id=\"fpm__main-icon-mask\">\n <rect id=\"fpm__main-icon-mask-black\" x=\"0\" y=\"0\" width=\"30\" height=\"30\" fill=\"black\"></rect>\n <rect id=\"fpm__main-icon-mask-white\" x=\"0\" y=\"0\" width=\"0\" height=\"30\" fill=\"white\"></rect>\n </mask>\n <linearGradient id=\"fpm__main-a\" x1=\"25.371%\" y1=\"0%\" x2=\"109.587%\" y2=\"172.268%\">\n <stop stop-color=\"#FFF\" offset=\"0%\" />\n <stop stop-color=\"#FFF\" stop-opacity=\".77\" offset=\"44.051%\" />\n <stop stop-color=\"#FFF\" stop-opacity=\".201\" offset=\"100%\" />\n </linearGradient>\n <radialGradient id=\"fpm__main-b\" fx=\"50%\" fy=\"50%\" r=\"50.864%\" gradientTransform=\"matrix(-.98302 0 0 -1 .992 1)\">\n <stop stop-color=\"#2D7CFF\" offset=\"0%\" />\n <stop stop-color=\"#2D7CFF\" stop-opacity=\".3\" offset=\"100%\" />\n </radialGradient>\n <radialGradient id=\"fpm__main-c\" fx=\"50%\" fy=\"50%\" r=\"50.864%\" gradientTransform=\"matrix(-.98302 0 0 -1 .992 1)\">\n <stop stop-opacity=\".4\" offset=\"0%\" />\n <stop stop-opacity=\".12\" offset=\"100%\" />\n </radialGradient>\n </defs>\n <g fill=\"none\" fill-rule=\"evenodd\">\n <circle fill=\"url(#fpm__main-a)\" cx=\"30\" cy=\"30\" r=\"30\" />\n <path\n class=\"fpm__main-icon-path\"\n d=\"".concat(MAIN_NORMAL_PATH, "\"\n fill=\"").concat(MAIN_MOUSE_LEAVE_FILL, "\"\n fill-rule=\"nonzero\"\n transform=\"translate(14 14)\"\n />\n </g>\n </svg>\n");
|
|
23
|
+
|
|
24
|
+
var _default = "\n <style>\n .fpm__revoke {\n opacity: 0.3;\n }\n \n .fpm__revoke.enabled {\n opacity: 0.7;\n }\n \n .fpm__revoke.enabled:hover {\n opacity: 1;\n }\n \n .fpm__revoke-icon {\n width: 40px;\n height: 40px;\n margin-top: 10px;\n cursor: pointer;\n } \n </style>\n <div class=\"fpm_ui-bg\"></div>\n <div class=\"fpm_operating-space\">\n <div class=\"fpm__ui-item fpm__revoke\">\n ".concat(revokeSvg, "\n <span class=\"fpm__text fpm__revoke-text\">\u64A4\u9500</span>\n </div>\n <div class=\"fpm__ui-item fpm__main\">\n ").concat(mainSvg, "\n <span class=\"fpm__text fpm__main-text\">\u6DFB\u52A0</span>\n </div>\n <div class=\"fpm__ui-item fpm__exit\">\n ").concat(exitSvg, "\n <span class=\"fpm__text fpm__exit-text\">\u9000\u51FA</span>\n </div>\n </div>\n");
|
|
25
|
+
|
|
26
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import MeasureController from '../../Controller';
|
|
2
|
+
export declare class MainBtnController {
|
|
3
|
+
private container;
|
|
4
|
+
private measureController;
|
|
5
|
+
private mainIconMaskTween?;
|
|
6
|
+
private mainElement;
|
|
7
|
+
constructor(measureController: MeasureController, container: Element);
|
|
8
|
+
dispose(): void;
|
|
9
|
+
private getMainElement;
|
|
10
|
+
private change2Add;
|
|
11
|
+
private change2Cancel;
|
|
12
|
+
private change2Done;
|
|
13
|
+
private onMouseEnter;
|
|
14
|
+
private onMouseLeave;
|
|
15
|
+
private onClick;
|
|
16
|
+
private editedLineChangeHandler;
|
|
17
|
+
private modeChangeHandler;
|
|
18
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.MainBtnController = void 0;
|
|
11
|
+
|
|
12
|
+
require("core-js/modules/es.object.assign.js");
|
|
13
|
+
|
|
14
|
+
require("core-js/modules/es.date.to-string.js");
|
|
15
|
+
|
|
16
|
+
require("core-js/modules/es.object.to-string.js");
|
|
17
|
+
|
|
18
|
+
require("core-js/modules/es.regexp.to-string.js");
|
|
19
|
+
|
|
20
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
21
|
+
|
|
22
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
23
|
+
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
26
|
+
var _tween = _interopRequireDefault(require("@tweenjs/tween.js"));
|
|
27
|
+
|
|
28
|
+
var _style = require("./style");
|
|
29
|
+
|
|
30
|
+
var _BetterTween = require("../../../../shared-utils/animationFrame/BetterTween");
|
|
31
|
+
|
|
32
|
+
var _HTML = require("./HTML");
|
|
33
|
+
|
|
34
|
+
var MainBtnController = /*#__PURE__*/function () {
|
|
35
|
+
function MainBtnController(measureController, container) {
|
|
36
|
+
var _this = this;
|
|
37
|
+
|
|
38
|
+
(0, _classCallCheck2["default"])(this, MainBtnController);
|
|
39
|
+
(0, _defineProperty2["default"])(this, "onMouseEnter", function () {
|
|
40
|
+
var _this$mainElement = _this.mainElement,
|
|
41
|
+
mainItem = _this$mainElement.mainItem,
|
|
42
|
+
pathDom = _this$mainElement.pathDom;
|
|
43
|
+
mainItem.style.opacity = '1';
|
|
44
|
+
pathDom.setAttribute('fill', _HTML.MAIN_MOUSE_ENTER_FILL);
|
|
45
|
+
});
|
|
46
|
+
(0, _defineProperty2["default"])(this, "onMouseLeave", function () {
|
|
47
|
+
var _this$mainElement2 = _this.mainElement,
|
|
48
|
+
mainItem = _this$mainElement2.mainItem,
|
|
49
|
+
pathDom = _this$mainElement2.pathDom;
|
|
50
|
+
mainItem.style.opacity = '0.7';
|
|
51
|
+
pathDom.setAttribute('fill', _HTML.MAIN_MOUSE_LEAVE_FILL);
|
|
52
|
+
});
|
|
53
|
+
(0, _defineProperty2["default"])(this, "onClick", function () {
|
|
54
|
+
var mode = _this.measureController.getCurrentMode();
|
|
55
|
+
|
|
56
|
+
mode === 'Watch' ? _this.measureController.changeMode('Edit') : _this.measureController.save().changeMode('Watch');
|
|
57
|
+
});
|
|
58
|
+
(0, _defineProperty2["default"])(this, "editedLineChangeHandler", function (lines) {
|
|
59
|
+
// 线的数量大于 1 时,没有状态的变化
|
|
60
|
+
if (lines.length > 1) return; // 因为撤销导致的状态变更 -> 取消
|
|
61
|
+
|
|
62
|
+
if (lines.length === 0) return _this.change2Cancel(false);
|
|
63
|
+
|
|
64
|
+
_this.change2Done();
|
|
65
|
+
});
|
|
66
|
+
(0, _defineProperty2["default"])(this, "modeChangeHandler", function (mode) {
|
|
67
|
+
mode === 'Watch' ? _this.change2Add() : _this.change2Cancel();
|
|
68
|
+
});
|
|
69
|
+
this.measureController = measureController;
|
|
70
|
+
this.container = container;
|
|
71
|
+
this.mainElement = this.getMainElement();
|
|
72
|
+
Object.assign(this.mainElement.mainIcon.style, _style.mainIconStyle);
|
|
73
|
+
Object.assign(this.mainElement.mainItem.style, _style.mainItemStyle);
|
|
74
|
+
this.change2Add();
|
|
75
|
+
this.measureController.hook.on('modeChange', this.modeChangeHandler);
|
|
76
|
+
this.mainElement.mainIcon.addEventListener('click', this.onClick);
|
|
77
|
+
this.mainElement.mainIcon.addEventListener('mouseenter', this.onMouseEnter);
|
|
78
|
+
this.mainElement.mainIcon.addEventListener('mouseleave', this.onMouseLeave);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
(0, _createClass2["default"])(MainBtnController, [{
|
|
82
|
+
key: "dispose",
|
|
83
|
+
value: function dispose() {
|
|
84
|
+
this.measureController.hook.off('modeChange', this.modeChangeHandler);
|
|
85
|
+
this.measureController.hook.off('editedLineChange', this.editedLineChangeHandler);
|
|
86
|
+
this.mainElement.mainIcon.removeEventListener('click', this.onClick);
|
|
87
|
+
this.mainElement.mainIcon.removeEventListener('mouseenter', this.onMouseEnter);
|
|
88
|
+
this.mainElement.mainIcon.removeEventListener('mouseleave', this.onMouseLeave);
|
|
89
|
+
}
|
|
90
|
+
}, {
|
|
91
|
+
key: "getMainElement",
|
|
92
|
+
value: function getMainElement() {
|
|
93
|
+
var mainTextDom = this.container.querySelector('.fpm__main-text');
|
|
94
|
+
var mainItem = this.container.querySelector('.fpm__main');
|
|
95
|
+
var mainIcon = this.container.querySelector('.fpm__main-icon');
|
|
96
|
+
var pathDom = mainItem === null || mainItem === void 0 ? void 0 : mainItem.querySelector('.fpm__main-icon-path');
|
|
97
|
+
var maskWhiteRect = mainIcon === null || mainIcon === void 0 ? void 0 : mainIcon.querySelector('#fpm__main-icon-mask-white');
|
|
98
|
+
if (!mainItem || !mainTextDom || !mainIcon || !pathDom || !maskWhiteRect) throw new Error('cannot find dom');
|
|
99
|
+
return {
|
|
100
|
+
mainTextDom: mainTextDom,
|
|
101
|
+
mainItem: mainItem,
|
|
102
|
+
mainIcon: mainIcon,
|
|
103
|
+
pathDom: pathDom,
|
|
104
|
+
maskWhiteRect: maskWhiteRect
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}, {
|
|
108
|
+
key: "change2Add",
|
|
109
|
+
value: function change2Add() {
|
|
110
|
+
this.measureController.hook.off('editedLineChange', this.editedLineChangeHandler);
|
|
111
|
+
var _this$mainElement3 = this.mainElement,
|
|
112
|
+
mainIcon = _this$mainElement3.mainIcon,
|
|
113
|
+
mainTextDom = _this$mainElement3.mainTextDom,
|
|
114
|
+
pathDom = _this$mainElement3.pathDom;
|
|
115
|
+
mainIcon.style.transition = mainTextDom.innerText === '完成' ? 'none' : 'transform 300ms ease-in-out';
|
|
116
|
+
mainIcon.style.transform = 'rotate(0deg)';
|
|
117
|
+
mainTextDom.innerText = '添加';
|
|
118
|
+
pathDom === null || pathDom === void 0 ? void 0 : pathDom.setAttribute('d', _HTML.MAIN_NORMAL_PATH);
|
|
119
|
+
}
|
|
120
|
+
}, {
|
|
121
|
+
key: "change2Cancel",
|
|
122
|
+
value: function change2Cancel() {
|
|
123
|
+
var withAnime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
124
|
+
var _this$mainElement4 = this.mainElement,
|
|
125
|
+
mainIcon = _this$mainElement4.mainIcon,
|
|
126
|
+
mainTextDom = _this$mainElement4.mainTextDom,
|
|
127
|
+
pathDom = _this$mainElement4.pathDom;
|
|
128
|
+
pathDom.setAttribute('d', _HTML.MAIN_NORMAL_PATH);
|
|
129
|
+
pathDom.setAttribute('mask', '');
|
|
130
|
+
mainIcon.style.transition = withAnime ? 'transform 300ms ease-in-out' : 'none';
|
|
131
|
+
mainIcon.style.transform = 'rotate(45deg)';
|
|
132
|
+
mainTextDom && (mainTextDom.innerText = '取消');
|
|
133
|
+
this.measureController.hook.on('editedLineChange', this.editedLineChangeHandler);
|
|
134
|
+
}
|
|
135
|
+
}, {
|
|
136
|
+
key: "change2Done",
|
|
137
|
+
value: function change2Done() {
|
|
138
|
+
var _this$mainIconMaskTwe,
|
|
139
|
+
_this2 = this;
|
|
140
|
+
|
|
141
|
+
var _this$getMainElement = this.getMainElement(),
|
|
142
|
+
mainTextDom = _this$getMainElement.mainTextDom,
|
|
143
|
+
mainIcon = _this$getMainElement.mainIcon,
|
|
144
|
+
pathDom = _this$getMainElement.pathDom,
|
|
145
|
+
maskWhiteRect = _this$getMainElement.maskWhiteRect;
|
|
146
|
+
|
|
147
|
+
if (mainTextDom.innerText === '完成') return;
|
|
148
|
+
mainIcon.style.transition = 'none';
|
|
149
|
+
mainIcon.style.transform = 'rotate(0deg)';
|
|
150
|
+
mainTextDom.innerText = '完成';
|
|
151
|
+
pathDom.setAttribute('d', _HTML.MAIN_DONE_PATH);
|
|
152
|
+
pathDom.setAttribute('mask', "url(#fpm__main-icon-mask)");
|
|
153
|
+
(_this$mainIconMaskTwe = this.mainIconMaskTween) === null || _this$mainIconMaskTwe === void 0 ? void 0 : _this$mainIconMaskTwe.dispose();
|
|
154
|
+
this.mainIconMaskTween = (0, _BetterTween.tweenProgress)().easing(_tween["default"].Easing.Quartic.InOut).onUpdate(function (_ref) {
|
|
155
|
+
var progress = _ref.progress;
|
|
156
|
+
maskWhiteRect.setAttribute('width', (progress * 30).toString());
|
|
157
|
+
}).onComplete(function () {
|
|
158
|
+
var _this2$mainIconMaskTw;
|
|
159
|
+
|
|
160
|
+
return (_this2$mainIconMaskTw = _this2.mainIconMaskTween) === null || _this2$mainIconMaskTw === void 0 ? void 0 : _this2$mainIconMaskTw.dispose();
|
|
161
|
+
}).play();
|
|
162
|
+
}
|
|
163
|
+
/* 鼠标移入时变成蓝色 */
|
|
164
|
+
|
|
165
|
+
}]);
|
|
166
|
+
return MainBtnController;
|
|
167
|
+
}();
|
|
168
|
+
|
|
169
|
+
exports.MainBtnController = MainBtnController;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import MeasureController, { Mode } from '../../../Controller';
|
|
2
|
+
export default class Revoke {
|
|
3
|
+
private container;
|
|
4
|
+
private revokeIcon;
|
|
5
|
+
private revokeItem;
|
|
6
|
+
private measureController;
|
|
7
|
+
constructor(measureController: MeasureController, container: Element);
|
|
8
|
+
dispose(): void;
|
|
9
|
+
onClick: () => void;
|
|
10
|
+
onModeChange: (mode: Mode) => void;
|
|
11
|
+
handleRevoke: () => () => void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
|
|
18
|
+
var Revoke = /*#__PURE__*/function () {
|
|
19
|
+
function Revoke(measureController, container) {
|
|
20
|
+
var _this = this;
|
|
21
|
+
|
|
22
|
+
(0, _classCallCheck2["default"])(this, Revoke);
|
|
23
|
+
(0, _defineProperty2["default"])(this, "onClick", function () {
|
|
24
|
+
_this.measureController.revoke();
|
|
25
|
+
});
|
|
26
|
+
(0, _defineProperty2["default"])(this, "onModeChange", function (mode) {
|
|
27
|
+
if (mode !== 'Edit') {
|
|
28
|
+
_this.revokeItem.classList.remove('enabled');
|
|
29
|
+
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
_this.revokeItem.classList.add('enabled');
|
|
34
|
+
});
|
|
35
|
+
(0, _defineProperty2["default"])(this, "handleRevoke", function () {
|
|
36
|
+
return function () {};
|
|
37
|
+
});
|
|
38
|
+
this.measureController = measureController;
|
|
39
|
+
this.container = container;
|
|
40
|
+
var revokeIcon = this.container.querySelector('.fpm__revoke-icon');
|
|
41
|
+
var revokeItem = this.container.querySelector('.fpm__revoke');
|
|
42
|
+
if (!revokeIcon || !revokeItem) throw new Error('不正确的选择器');
|
|
43
|
+
this.revokeIcon = revokeIcon;
|
|
44
|
+
this.revokeItem = revokeItem;
|
|
45
|
+
this.revokeIcon.addEventListener('click', this.onClick);
|
|
46
|
+
measureController.hook.on('modeChange', this.onModeChange);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
(0, _createClass2["default"])(Revoke, [{
|
|
50
|
+
key: "dispose",
|
|
51
|
+
value: function dispose() {
|
|
52
|
+
this.revokeIcon.removeEventListener('click', this.onClick);
|
|
53
|
+
this.measureController.hook.off('modeChange', this.onModeChange);
|
|
54
|
+
}
|
|
55
|
+
}]);
|
|
56
|
+
return Revoke;
|
|
57
|
+
}();
|
|
58
|
+
|
|
59
|
+
exports["default"] = Revoke;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import MeasureController from '../../Controller';
|
|
2
|
+
export interface UIControllerParams {
|
|
3
|
+
container: Element;
|
|
4
|
+
}
|
|
5
|
+
export declare class UIController {
|
|
6
|
+
private revoke?;
|
|
7
|
+
private container;
|
|
8
|
+
private mainController?;
|
|
9
|
+
private disposers;
|
|
10
|
+
private measureController;
|
|
11
|
+
constructor(measureController: MeasureController, params: UIControllerParams);
|
|
12
|
+
dispose(): void;
|
|
13
|
+
show(): this;
|
|
14
|
+
hide(): this;
|
|
15
|
+
private handleExit;
|
|
16
|
+
}
|