@kep-platform/basic-component 0.0.36 → 0.0.38
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/ViewPort/ViewPort.d.ts +60 -11
- package/dist/ViewPort/ViewPort.js +218 -55
- package/dist/ViewPort/test.d.ts +2 -1
- package/dist/ViewPort/test.js +19 -29
- package/dist/Window/Window.d.ts +2 -4
- package/dist/Window/Window.js +31 -10
- package/dist/Window/WindowStore.d.ts +26 -14
- package/dist/Window/WindowStore.js +84 -26
- package/dist/Window/test.js +9 -16
- package/package.json +3 -3
@@ -1,10 +1,13 @@
|
|
1
1
|
import { Transform } from '@dnd-kit/utilities';
|
2
2
|
import React, { HtmlHTMLAttributes, ReactNode } from 'react';
|
3
|
+
import { WindowStore } from '../Window';
|
4
|
+
import { WindowProps } from '../Window/Window';
|
5
|
+
import { WindowControllerType } from '../Window/WindowController';
|
3
6
|
type ViewPortProps = {
|
4
7
|
children?: ReactNode;
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
+
viewPortStore: ViewPortStore;
|
9
|
+
onScale?: (left: number, top: number, scale: number, ratio: number) => void;
|
10
|
+
onScroll?: (left: number, top: number, scale: number, ratio: number) => void;
|
8
11
|
} & HtmlHTMLAttributes<HTMLDivElement>;
|
9
12
|
export declare class ViewPortStore {
|
10
13
|
transform: {
|
@@ -19,8 +22,12 @@ export declare class ViewPortStore {
|
|
19
22
|
width: number;
|
20
23
|
height: number;
|
21
24
|
ratio: number;
|
22
|
-
|
25
|
+
isMoving: boolean;
|
26
|
+
maxZIndex: number;
|
27
|
+
constructor(width?: number, height?: number, ratio?: number);
|
23
28
|
increaseScale(): void;
|
29
|
+
setScale(scale: number): void;
|
30
|
+
focus(left: number, top: number): void;
|
24
31
|
decreaseScale(): void;
|
25
32
|
move(transform: Transform): void;
|
26
33
|
endMove(): void;
|
@@ -34,26 +41,68 @@ export declare class ViewPortStore {
|
|
34
41
|
min: number;
|
35
42
|
};
|
36
43
|
};
|
37
|
-
|
44
|
+
formatedTransform(left: number, top: number): {
|
38
45
|
left: number;
|
39
46
|
top: number;
|
40
47
|
};
|
41
|
-
get minScale(): number;
|
42
|
-
get maxScale(): number;
|
43
48
|
get formatedScale(): number;
|
44
49
|
get contentStyle(): {
|
45
|
-
left: string;
|
46
|
-
top: string;
|
47
50
|
transform: string;
|
48
51
|
width: string;
|
49
52
|
height: string;
|
50
53
|
transformOrigin: string;
|
54
|
+
backgroundColor: string;
|
55
|
+
transition: string;
|
51
56
|
};
|
52
57
|
get containerStyle(): {
|
53
58
|
width: string;
|
54
59
|
height: string;
|
55
60
|
overflow: string;
|
56
61
|
};
|
62
|
+
get info(): string;
|
63
|
+
}
|
64
|
+
declare function ViewPort(props: ViewPortProps): React.JSX.Element;
|
65
|
+
declare namespace ViewPort {
|
66
|
+
var Window: React.FunctionComponent<WindowProps & {
|
67
|
+
viewPortStore: ViewPortStore;
|
68
|
+
window: ViewPortWindowStore;
|
69
|
+
}>;
|
70
|
+
}
|
71
|
+
export default ViewPort;
|
72
|
+
export declare class ViewPortWindowStore extends WindowStore {
|
73
|
+
scale: number;
|
74
|
+
get style(): {
|
75
|
+
left: string;
|
76
|
+
top: string;
|
77
|
+
width: string;
|
78
|
+
height: string;
|
79
|
+
zIndex: number;
|
80
|
+
transform: string;
|
81
|
+
transition: string;
|
82
|
+
transformOrigin?: undefined;
|
83
|
+
} | {
|
84
|
+
left: string;
|
85
|
+
top: string;
|
86
|
+
width: number;
|
87
|
+
height: number;
|
88
|
+
zIndex: number;
|
89
|
+
transform: string;
|
90
|
+
transition: string;
|
91
|
+
transformOrigin?: undefined;
|
92
|
+
} | {
|
93
|
+
left: string;
|
94
|
+
top: string;
|
95
|
+
width: string;
|
96
|
+
height: string;
|
97
|
+
zIndex: number;
|
98
|
+
transform: string;
|
99
|
+
transformOrigin: string;
|
100
|
+
transition: string;
|
101
|
+
};
|
102
|
+
calculateTransform(transform: Transform): {
|
103
|
+
x: number;
|
104
|
+
y: number;
|
105
|
+
};
|
106
|
+
controll(transform: Transform, type: WindowControllerType): void;
|
107
|
+
constructor(id: string, onClosedHandler?: (id: string) => void);
|
57
108
|
}
|
58
|
-
export default function ViewPort(props: ViewPortProps): React.JSX.Element;
|
59
|
-
export {};
|
@@ -1,10 +1,15 @@
|
|
1
|
+
var _excluded = ["children", "viewPortStore"],
|
2
|
+
_excluded2 = ["viewPortStore", "window"];
|
1
3
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
2
|
-
function
|
3
|
-
function
|
4
|
-
function
|
5
|
-
function
|
6
|
-
function
|
7
|
-
function
|
4
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
5
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
6
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
7
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
8
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
9
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
10
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
11
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
12
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
8
13
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
9
14
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
10
15
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
@@ -13,22 +18,23 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
13
18
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
14
19
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
15
20
|
import { DndContext, useDraggable } from '@dnd-kit/core';
|
16
|
-
import { makeAutoObservable, runInAction } from 'mobx';
|
21
|
+
import { makeAutoObservable, makeObservable, observable, override, runInAction } from 'mobx';
|
17
22
|
import { observer } from 'mobx-react-lite';
|
18
|
-
import React, { useEffect, useRef
|
23
|
+
import React, { useEffect, useRef } from 'react';
|
19
24
|
import styled from 'styled-components';
|
25
|
+
import { WindowStore } from "../Window";
|
26
|
+
import { default as Window } from "../Window/Window";
|
20
27
|
import { GlobalStyles } from "../__styles";
|
21
28
|
var Container = styled.div.withConfig({
|
22
29
|
displayName: "Container",
|
23
30
|
componentId: "basic-component-347b__sc-1qpmpop-0"
|
24
|
-
})(["position:relative;border:1px solid #eee;"]);
|
31
|
+
})(["position:relative;border:1px solid #eee;box-shadow:0 0 7px 0 inset #fefefe;"]);
|
25
32
|
var Content = styled.div.withConfig({
|
26
33
|
displayName: "Content",
|
27
34
|
componentId: "basic-component-347b__sc-1qpmpop-1"
|
28
35
|
})(["position:absolute;"]);
|
29
36
|
export var ViewPortStore = /*#__PURE__*/function () {
|
30
|
-
|
31
|
-
function ViewPortStore(ratio) {
|
37
|
+
function ViewPortStore(width, height, ratio) {
|
32
38
|
_classCallCheck(this, ViewPortStore);
|
33
39
|
_defineProperty(this, "transform", {
|
34
40
|
left: 0,
|
@@ -39,10 +45,15 @@ export var ViewPortStore = /*#__PURE__*/function () {
|
|
39
45
|
y: 0
|
40
46
|
});
|
41
47
|
_defineProperty(this, "scale", 1);
|
42
|
-
_defineProperty(this, "width",
|
43
|
-
_defineProperty(this, "height",
|
48
|
+
_defineProperty(this, "width", 600);
|
49
|
+
_defineProperty(this, "height", 600);
|
44
50
|
_defineProperty(this, "ratio", 5);
|
51
|
+
//缩放比例
|
52
|
+
_defineProperty(this, "isMoving", false);
|
53
|
+
_defineProperty(this, "maxZIndex", 1);
|
45
54
|
if (ratio) this.ratio = ratio;
|
55
|
+
if (width) this.width = width;
|
56
|
+
if (height) this.height = height;
|
46
57
|
makeAutoObservable(this);
|
47
58
|
}
|
48
59
|
_createClass(ViewPortStore, [{
|
@@ -50,16 +61,30 @@ export var ViewPortStore = /*#__PURE__*/function () {
|
|
50
61
|
value: function increaseScale() {
|
51
62
|
if (this.scale < 1) this.scale += 0.03125;else this.scale = 1;
|
52
63
|
}
|
64
|
+
}, {
|
65
|
+
key: "setScale",
|
66
|
+
value: function setScale(scale) {
|
67
|
+
this.scale = scale;
|
68
|
+
}
|
69
|
+
}, {
|
70
|
+
key: "focus",
|
71
|
+
value: function focus(left, top) {
|
72
|
+
this.scale = 0.8;
|
73
|
+
this.transform = {
|
74
|
+
left: (1 - this.ratio) * left,
|
75
|
+
top: (1 - this.ratio) * top
|
76
|
+
};
|
77
|
+
}
|
53
78
|
}, {
|
54
79
|
key: "decreaseScale",
|
55
80
|
value: function decreaseScale() {
|
56
|
-
if (this.scale > this.
|
81
|
+
if (this.scale > parseFloat((1 / this.ratio).toFixed(1))) this.scale -= 0.03125;
|
57
82
|
}
|
58
83
|
}, {
|
59
84
|
key: "move",
|
60
85
|
value: function move(transform) {
|
61
|
-
this.
|
62
|
-
this.transform
|
86
|
+
this.isMoving = true;
|
87
|
+
this.transform = this.formatedTransform(transform.x - this.offset.x + this.transform.left, transform.y - this.offset.y + this.transform.top);
|
63
88
|
this.offset.x = transform.x;
|
64
89
|
this.offset.y = transform.y;
|
65
90
|
}
|
@@ -68,6 +93,7 @@ export var ViewPortStore = /*#__PURE__*/function () {
|
|
68
93
|
value: function endMove() {
|
69
94
|
this.offset.x = 0;
|
70
95
|
this.offset.y = 0;
|
96
|
+
this.isMoving = false;
|
71
97
|
}
|
72
98
|
}, {
|
73
99
|
key: "transformLimit",
|
@@ -85,37 +111,28 @@ export var ViewPortStore = /*#__PURE__*/function () {
|
|
85
111
|
}
|
86
112
|
}, {
|
87
113
|
key: "formatedTransform",
|
88
|
-
|
114
|
+
value: function formatedTransform(left, top) {
|
89
115
|
return {
|
90
|
-
left: Math.max(this.transformLimit.left.min, Math.min(
|
91
|
-
top: Math.max(this.transformLimit.top.min, Math.min(
|
116
|
+
left: Math.max(this.transformLimit.left.min, Math.min(left, this.transformLimit.left.max)),
|
117
|
+
top: Math.max(this.transformLimit.top.min, Math.min(top, this.transformLimit.top.max))
|
92
118
|
};
|
93
119
|
}
|
94
|
-
}, {
|
95
|
-
key: "minScale",
|
96
|
-
get: function get() {
|
97
|
-
return parseFloat((1 / this.ratio).toFixed(1));
|
98
|
-
}
|
99
|
-
}, {
|
100
|
-
key: "maxScale",
|
101
|
-
get: function get() {
|
102
|
-
return 1;
|
103
|
-
}
|
104
120
|
}, {
|
105
121
|
key: "formatedScale",
|
106
122
|
get: function get() {
|
107
|
-
return Math.min(
|
123
|
+
return Math.min(1, Math.max(1 / this.ratio, this.scale));
|
108
124
|
}
|
109
125
|
}, {
|
110
126
|
key: "contentStyle",
|
111
127
|
get: function get() {
|
128
|
+
var transform = this.formatedTransform(this.transform.left, this.transform.top);
|
112
129
|
return {
|
113
|
-
|
114
|
-
top: this.formatedTransform.top + 'px',
|
115
|
-
transform: "scale(".concat(this.formatedScale, ")"),
|
130
|
+
transform: "translate(".concat(transform.left, "px,").concat(transform.top, "px) scale(").concat(this.formatedScale, ")"),
|
116
131
|
width: this.width * this.ratio + 'px',
|
117
132
|
height: this.height * this.ratio + 'px',
|
118
|
-
transformOrigin:
|
133
|
+
transformOrigin: "0 0",
|
134
|
+
backgroundColor: 'pink',
|
135
|
+
transition: this.isMoving ? 'none' : 'all 0.5s'
|
119
136
|
};
|
120
137
|
}
|
121
138
|
}, {
|
@@ -127,12 +144,19 @@ export var ViewPortStore = /*#__PURE__*/function () {
|
|
127
144
|
overflow: 'hidden'
|
128
145
|
};
|
129
146
|
}
|
147
|
+
}, {
|
148
|
+
key: "info",
|
149
|
+
get: function get() {
|
150
|
+
return JSON.stringify(this.formatedTransform(this.transform.left, this.transform.top), null, 4);
|
151
|
+
}
|
130
152
|
}]);
|
131
153
|
return ViewPortStore;
|
132
154
|
}();
|
133
155
|
var ViewPortEntity = observer(function (props) {
|
134
156
|
var children = props.children,
|
135
|
-
viewPortStore = props.viewPortStore
|
157
|
+
viewPortStore = props.viewPortStore,
|
158
|
+
onScroll = props.onScroll,
|
159
|
+
onScale = props.onScale;
|
136
160
|
var _useDraggable = useDraggable({
|
137
161
|
id: 'ViewPortEntity'
|
138
162
|
}),
|
@@ -145,6 +169,7 @@ var ViewPortEntity = observer(function (props) {
|
|
145
169
|
useEffect(function () {
|
146
170
|
if (transform) {
|
147
171
|
viewPortStore.move(transform);
|
172
|
+
onScroll === null || onScroll === void 0 || onScroll(viewPortStore.transform.left, viewPortStore.transform.top, viewPortStore.scale, viewPortStore.ratio);
|
148
173
|
} else {
|
149
174
|
viewPortStore.endMove();
|
150
175
|
}
|
@@ -159,6 +184,7 @@ var ViewPortEntity = observer(function (props) {
|
|
159
184
|
} else {
|
160
185
|
viewPortStore.decreaseScale();
|
161
186
|
}
|
187
|
+
onScale === null || onScale === void 0 || onScale(viewPortStore.transform.left, viewPortStore.transform.top, viewPortStore.scale, viewPortStore.ratio);
|
162
188
|
}
|
163
189
|
(_ref$current = _ref.current) === null || _ref$current === void 0 || _ref$current.addEventListener('wheel', scaleHandler, {
|
164
190
|
passive: false
|
@@ -169,7 +195,18 @@ var ViewPortEntity = observer(function (props) {
|
|
169
195
|
};
|
170
196
|
}, []);
|
171
197
|
return /*#__PURE__*/React.createElement(Container, {
|
172
|
-
style: viewPortStore.containerStyle
|
198
|
+
style: viewPortStore.containerStyle,
|
199
|
+
onDoubleClick: function onDoubleClick(e) {
|
200
|
+
var container = e.target;
|
201
|
+
var _container$getBoundin = container.getBoundingClientRect(),
|
202
|
+
left = _container$getBoundin.left,
|
203
|
+
top = _container$getBoundin.top;
|
204
|
+
var offsetLeft = e.clientX - left;
|
205
|
+
var offsetTop = e.clientY - top;
|
206
|
+
if (viewPortStore.formatedScale > 0.5) {
|
207
|
+
viewPortStore.setScale(1 / viewPortStore.ratio);
|
208
|
+
} else viewPortStore.focus(offsetLeft, offsetTop);
|
209
|
+
}
|
173
210
|
}, /*#__PURE__*/React.createElement(Content, _extends({
|
174
211
|
ref: function ref(dom) {
|
175
212
|
_ref.current = dom;
|
@@ -178,28 +215,154 @@ var ViewPortEntity = observer(function (props) {
|
|
178
215
|
}
|
179
216
|
}, attributes, listeners, {
|
180
217
|
style: viewPortStore.contentStyle
|
181
|
-
}),
|
218
|
+
}), children));
|
182
219
|
});
|
183
220
|
export default function ViewPort(props) {
|
184
221
|
var children = props.children,
|
185
|
-
|
186
|
-
|
187
|
-
height = props.height;
|
188
|
-
var _useState = useState(function () {
|
189
|
-
return new ViewPortStore(ratio);
|
190
|
-
}),
|
191
|
-
_useState2 = _slicedToArray(_useState, 1),
|
192
|
-
viewPortStore = _useState2[0];
|
193
|
-
useEffect(function () {
|
194
|
-
runInAction(function () {
|
195
|
-
if (ratio) viewPortStore.ratio = ratio;
|
196
|
-
if (width) viewPortStore.width = width;
|
197
|
-
if (height) viewPortStore.height = height;
|
198
|
-
});
|
199
|
-
}, [ratio, width, height]);
|
222
|
+
viewPortStore = props.viewPortStore,
|
223
|
+
rest = _objectWithoutProperties(props, _excluded);
|
200
224
|
return /*#__PURE__*/React.createElement(DndContext, null, /*#__PURE__*/React.createElement(GlobalStyles, {
|
201
225
|
$css: []
|
202
|
-
}), /*#__PURE__*/React.createElement(ViewPortEntity, {
|
226
|
+
}), /*#__PURE__*/React.createElement(ViewPortEntity, _extends({
|
203
227
|
viewPortStore: viewPortStore
|
204
|
-
}, children));
|
205
|
-
}
|
228
|
+
}, rest), children));
|
229
|
+
}
|
230
|
+
export var ViewPortWindowStore = /*#__PURE__*/function (_WindowStore) {
|
231
|
+
_inherits(ViewPortWindowStore, _WindowStore);
|
232
|
+
var _super = _createSuper(ViewPortWindowStore);
|
233
|
+
function ViewPortWindowStore(id, onClosedHandler) {
|
234
|
+
var _this;
|
235
|
+
_classCallCheck(this, ViewPortWindowStore);
|
236
|
+
_this = _super.call(this, id, onClosedHandler);
|
237
|
+
_defineProperty(_assertThisInitialized(_this), "scale", 1);
|
238
|
+
makeObservable(_assertThisInitialized(_this), {
|
239
|
+
style: override,
|
240
|
+
scale: observable,
|
241
|
+
controll: override
|
242
|
+
});
|
243
|
+
return _this;
|
244
|
+
}
|
245
|
+
_createClass(ViewPortWindowStore, [{
|
246
|
+
key: "style",
|
247
|
+
get: function get() {
|
248
|
+
if (this.isClosed) {
|
249
|
+
return {
|
250
|
+
left: this.left + 'px',
|
251
|
+
top: this.top + 'px',
|
252
|
+
width: this.width + 'px',
|
253
|
+
height: this.height + 'px',
|
254
|
+
zIndex: this.zIndex,
|
255
|
+
transform: 'scale(0)',
|
256
|
+
transition: 'all 0.5s ease-out'
|
257
|
+
};
|
258
|
+
}
|
259
|
+
if (this.isMinimize && this.minimizePos) {
|
260
|
+
return {
|
261
|
+
left: this.minimizePos.left + 'px',
|
262
|
+
top: this.minimizePos.top + 'px',
|
263
|
+
width: 0,
|
264
|
+
height: 0,
|
265
|
+
zIndex: this.zIndex,
|
266
|
+
transform: 'scale(0)',
|
267
|
+
transition: 'all 0.5s ease-out'
|
268
|
+
};
|
269
|
+
}
|
270
|
+
if (this.fullscreen) {
|
271
|
+
return {
|
272
|
+
left: this.fullscreenPos.left / this.scale + 'px',
|
273
|
+
top: this.fullscreenPos.top / this.scale + 'px',
|
274
|
+
width: this.fullscreenPos.width + 'px',
|
275
|
+
height: this.fullscreenPos.height + 'px',
|
276
|
+
zIndex: this.zIndex,
|
277
|
+
transform: "scale(".concat(1 / this.scale, ") "),
|
278
|
+
transformOrigin: 'left top',
|
279
|
+
transition: 'width height 0.5s ease-out'
|
280
|
+
};
|
281
|
+
}
|
282
|
+
if (this.isMoving || this.isResizing) {
|
283
|
+
return {
|
284
|
+
left: this.left + 'px',
|
285
|
+
top: this.top + 'px',
|
286
|
+
width: this.width + 'px',
|
287
|
+
height: this.height + 'px',
|
288
|
+
zIndex: this.zIndex,
|
289
|
+
transform: 'none',
|
290
|
+
transition: 'none'
|
291
|
+
};
|
292
|
+
}
|
293
|
+
return {
|
294
|
+
left: this.left + 'px',
|
295
|
+
top: this.top + 'px',
|
296
|
+
width: this.width + 'px',
|
297
|
+
height: this.height + 'px',
|
298
|
+
zIndex: this.zIndex,
|
299
|
+
transform: 'none',
|
300
|
+
transition: 'all 0.5s ease-out'
|
301
|
+
};
|
302
|
+
}
|
303
|
+
}, {
|
304
|
+
key: "calculateTransform",
|
305
|
+
value: function calculateTransform(transform) {
|
306
|
+
var _this$transform, _this$transform2;
|
307
|
+
return {
|
308
|
+
x: (transform.x - (((_this$transform = this.transform) === null || _this$transform === void 0 ? void 0 : _this$transform.x) || 0)) / this.scale,
|
309
|
+
y: (transform.y - (((_this$transform2 = this.transform) === null || _this$transform2 === void 0 ? void 0 : _this$transform2.y) || 0)) / this.scale
|
310
|
+
};
|
311
|
+
}
|
312
|
+
}, {
|
313
|
+
key: "controll",
|
314
|
+
value: function controll(transform, type) {
|
315
|
+
var offsetTransform = this.calculateTransform(transform);
|
316
|
+
if (type === 'move') {
|
317
|
+
this.isMoving = true;
|
318
|
+
this.isResizing = false;
|
319
|
+
} else {
|
320
|
+
this.isMoving = false;
|
321
|
+
this.isResizing = true;
|
322
|
+
}
|
323
|
+
if (type.includes('left')) {
|
324
|
+
this.left = Math.round(this.left + offsetTransform.x);
|
325
|
+
this.width = Math.round(this.width - offsetTransform.x);
|
326
|
+
}
|
327
|
+
if (type.includes('right')) {
|
328
|
+
this.width = Math.round(this.width + offsetTransform.x);
|
329
|
+
}
|
330
|
+
if (type.includes('top')) {
|
331
|
+
this.top = Math.round(this.top + offsetTransform.y);
|
332
|
+
this.height = Math.round(this.height - offsetTransform.y);
|
333
|
+
}
|
334
|
+
if (type.includes('bottom')) {
|
335
|
+
this.height = Math.round(this.height + offsetTransform.y);
|
336
|
+
}
|
337
|
+
if (type.includes('move')) {
|
338
|
+
this.left = Math.round(this.left + offsetTransform.x);
|
339
|
+
this.top = Math.round(this.top + offsetTransform.y);
|
340
|
+
}
|
341
|
+
this.transform = transform;
|
342
|
+
}
|
343
|
+
}]);
|
344
|
+
return ViewPortWindowStore;
|
345
|
+
}(WindowStore);
|
346
|
+
ViewPort.Window = observer(function ViewPortWindow(props) {
|
347
|
+
var viewPortStore = props.viewPortStore,
|
348
|
+
window = props.window,
|
349
|
+
rest = _objectWithoutProperties(props, _excluded2);
|
350
|
+
useEffect(function () {
|
351
|
+
runInAction(function () {
|
352
|
+
var transform = viewPortStore.formatedTransform(viewPortStore.transform.left, viewPortStore.transform.top);
|
353
|
+
window.fullscreenPos.left = -transform.left;
|
354
|
+
window.fullscreenPos.top = -transform.top;
|
355
|
+
window.fullscreenPos.width = viewPortStore.width;
|
356
|
+
window.fullscreenPos.height = viewPortStore.height;
|
357
|
+
window.scale = viewPortStore.formatedScale;
|
358
|
+
});
|
359
|
+
}, [viewPortStore.transform.left, viewPortStore.transform.top, viewPortStore.scale, viewPortStore.ratio, viewPortStore.width, viewPortStore.height]);
|
360
|
+
return /*#__PURE__*/React.createElement(Window, _extends({
|
361
|
+
window: window
|
362
|
+
}, rest, {
|
363
|
+
onFocusHandler: function onFocusHandler() {
|
364
|
+
viewPortStore.maxZIndex++;
|
365
|
+
window.zIndex = viewPortStore.maxZIndex;
|
366
|
+
}
|
367
|
+
}));
|
368
|
+
});
|
package/dist/ViewPort/test.d.ts
CHANGED
package/dist/ViewPort/test.js
CHANGED
@@ -1,24 +1,18 @@
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
2
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
3
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
4
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
5
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
6
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
7
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
8
2
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
9
3
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
10
4
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
11
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
12
6
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
13
7
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
14
|
-
import { makeAutoObservable } from 'mobx';
|
15
|
-
import
|
16
|
-
import {
|
17
|
-
import ViewPort from "./ViewPort";
|
8
|
+
import { makeAutoObservable, runInAction } from 'mobx';
|
9
|
+
import { observer, useLocalObservable } from 'mobx-react-lite';
|
10
|
+
import React, { useEffect } from 'react';
|
11
|
+
import ViewPort, { ViewPortStore, ViewPortWindowStore } from "./ViewPort";
|
18
12
|
var WindowManager = /*#__PURE__*/function () {
|
19
13
|
function WindowManager() {
|
20
14
|
_classCallCheck(this, WindowManager);
|
21
|
-
_defineProperty(this, "windows", [new
|
15
|
+
_defineProperty(this, "windows", [new ViewPortWindowStore('jss', this.closeWindowHanlder.bind(this)), new ViewPortWindowStore('jss12', this.closeWindowHanlder.bind(this))]);
|
22
16
|
makeAutoObservable(this);
|
23
17
|
}
|
24
18
|
_createClass(WindowManager, [{
|
@@ -39,19 +33,16 @@ var WindowManager = /*#__PURE__*/function () {
|
|
39
33
|
return WindowManager;
|
40
34
|
}();
|
41
35
|
var windowManager = new WindowManager();
|
42
|
-
export default function Test() {
|
43
|
-
var
|
44
|
-
|
45
|
-
|
46
|
-
setWidth = _useState2[1];
|
47
|
-
var _useState3 = useState(0),
|
48
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
49
|
-
height = _useState4[0],
|
50
|
-
setHeight = _useState4[1];
|
36
|
+
export default observer(function Test() {
|
37
|
+
var viewPortStore = useLocalObservable(function () {
|
38
|
+
return new ViewPortStore(600, 600, 5);
|
39
|
+
});
|
51
40
|
useEffect(function () {
|
52
41
|
function setWidthHeight() {
|
53
|
-
|
54
|
-
|
42
|
+
runInAction(function () {
|
43
|
+
viewPortStore.width = 800;
|
44
|
+
viewPortStore.height = 800;
|
45
|
+
});
|
55
46
|
}
|
56
47
|
window.addEventListener('resize', setWidthHeight);
|
57
48
|
setWidthHeight();
|
@@ -60,14 +51,13 @@ export default function Test() {
|
|
60
51
|
};
|
61
52
|
}, []);
|
62
53
|
return /*#__PURE__*/React.createElement(ViewPort, {
|
63
|
-
|
64
|
-
width: width,
|
65
|
-
height: height
|
54
|
+
viewPortStore: viewPortStore
|
66
55
|
}, windowManager.windows.map(function (windowStore) {
|
67
|
-
return /*#__PURE__*/React.createElement(Window, {
|
56
|
+
return /*#__PURE__*/React.createElement(ViewPort.Window, {
|
68
57
|
window: windowStore,
|
69
58
|
key: windowStore.id,
|
70
|
-
title: 'xixi'
|
71
|
-
|
59
|
+
title: 'xixi',
|
60
|
+
viewPortStore: viewPortStore
|
61
|
+
}, /*#__PURE__*/React.createElement("br", null));
|
72
62
|
}));
|
73
|
-
}
|
63
|
+
});
|
package/dist/Window/Window.d.ts
CHANGED
@@ -4,10 +4,8 @@ export type WindowProps = {
|
|
4
4
|
window: WindowStore;
|
5
5
|
children: ReactNode;
|
6
6
|
title: ReactNode;
|
7
|
-
|
8
|
-
|
9
|
-
top: number;
|
10
|
-
};
|
7
|
+
onFullscreenHandler?: () => void;
|
8
|
+
onFocusHandler?: () => void;
|
11
9
|
};
|
12
10
|
declare const Window: ((props: WindowProps) => React.JSX.Element) & {
|
13
11
|
displayName: string;
|
package/dist/Window/Window.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { CloseCircleOutlined, FullscreenExitOutlined, FullscreenOutlined, MinusCircleOutlined } from '@ant-design/icons';
|
2
2
|
import { observer } from 'mobx-react-lite';
|
3
|
-
import React from 'react';
|
3
|
+
import React, { useEffect, useRef } from 'react';
|
4
4
|
import styled, { css } from 'styled-components';
|
5
5
|
import { Space } from "../Space";
|
6
6
|
import WindowController from "./WindowController";
|
@@ -75,11 +75,21 @@ var Window = observer(function (props) {
|
|
75
75
|
var window = props.window,
|
76
76
|
title = props.title,
|
77
77
|
children = props.children,
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
78
|
+
onFullscreenHandler = props.onFullscreenHandler,
|
79
|
+
onFocusHandler = props.onFocusHandler;
|
80
|
+
var windowContainerRef = useRef(null);
|
81
|
+
useEffect(function () {
|
82
|
+
var _windowContainerRef$c;
|
83
|
+
function stopWheel(e) {
|
84
|
+
e.stopPropagation();
|
85
|
+
e.preventDefault();
|
86
|
+
}
|
87
|
+
(_windowContainerRef$c = windowContainerRef.current) === null || _windowContainerRef$c === void 0 || _windowContainerRef$c.addEventListener('wheel', stopWheel);
|
88
|
+
return function () {
|
89
|
+
var _windowContainerRef$c2;
|
90
|
+
(_windowContainerRef$c2 = windowContainerRef.current) === null || _windowContainerRef$c2 === void 0 || _windowContainerRef$c2.removeEventListener('wheel', stopWheel);
|
91
|
+
};
|
92
|
+
}, []);
|
83
93
|
/* style 的原因是因为性能问题 */
|
84
94
|
return /*#__PURE__*/React.createElement(WindowContainer, {
|
85
95
|
style: window.style,
|
@@ -92,7 +102,9 @@ var Window = observer(function (props) {
|
|
92
102
|
},
|
93
103
|
onPointerDown: function onPointerDown(e) {
|
94
104
|
e.stopPropagation();
|
95
|
-
|
105
|
+
onFocusHandler === null || onFocusHandler === void 0 || onFocusHandler();
|
106
|
+
},
|
107
|
+
ref: windowContainerRef
|
96
108
|
}, /*#__PURE__*/React.createElement(WindowControllerLeft, {
|
97
109
|
window: window,
|
98
110
|
type: "left"
|
@@ -121,7 +133,16 @@ var Window = observer(function (props) {
|
|
121
133
|
window: window,
|
122
134
|
type: "move"
|
123
135
|
}, /*#__PURE__*/React.createElement(WindowHeader, {
|
124
|
-
isDragging: window.isMoving
|
136
|
+
isDragging: window.isMoving,
|
137
|
+
onDoubleClick: function onDoubleClick(e) {
|
138
|
+
e.stopPropagation();
|
139
|
+
e.preventDefault();
|
140
|
+
if (window.fullscreen) {
|
141
|
+
window.fullscreenExitWindow();
|
142
|
+
} else {
|
143
|
+
window.fullscreenWindow(onFullscreenHandler);
|
144
|
+
}
|
145
|
+
}
|
125
146
|
}, /*#__PURE__*/React.createElement("h5", null, title), /*#__PURE__*/React.createElement(WindowHeaderOptions, {
|
126
147
|
onPointerDown: function onPointerDown(e) {
|
127
148
|
e.stopPropagation();
|
@@ -130,7 +151,7 @@ var Window = observer(function (props) {
|
|
130
151
|
color: "var(--kep-platform-orange-4)",
|
131
152
|
icon: /*#__PURE__*/React.createElement(FullscreenOutlined, null),
|
132
153
|
onClick: function onClick() {
|
133
|
-
|
154
|
+
window.fullscreenWindow(onFullscreenHandler);
|
134
155
|
}
|
135
156
|
}) : /*#__PURE__*/React.createElement(WindowOption, {
|
136
157
|
color: "var(--kep-platform-orange-4)",
|
@@ -142,7 +163,7 @@ var Window = observer(function (props) {
|
|
142
163
|
color: "var(--kep-platform-green-3)",
|
143
164
|
icon: /*#__PURE__*/React.createElement(MinusCircleOutlined, null),
|
144
165
|
onClick: function onClick() {
|
145
|
-
window.minimizeWindow(
|
166
|
+
window.minimizeWindow();
|
146
167
|
}
|
147
168
|
}), /*#__PURE__*/React.createElement(WindowOption, {
|
148
169
|
onClick: function onClick() {
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { Transform } from '@dnd-kit/utilities';
|
2
2
|
import { WindowControllerType } from './WindowController';
|
3
3
|
export default class WindowStore {
|
4
|
-
width:
|
5
|
-
height:
|
6
|
-
left:
|
7
|
-
top:
|
4
|
+
width: number;
|
5
|
+
height: number;
|
6
|
+
left: number;
|
7
|
+
top: number;
|
8
8
|
zIndex: number;
|
9
9
|
fullscreen: boolean;
|
10
10
|
id: string;
|
@@ -17,12 +17,18 @@ export default class WindowStore {
|
|
17
17
|
minimizePos: {
|
18
18
|
left: number;
|
19
19
|
top: number;
|
20
|
-
}
|
20
|
+
};
|
21
|
+
fullscreenPos: {
|
22
|
+
left: number;
|
23
|
+
top: number;
|
24
|
+
width: number;
|
25
|
+
height: number;
|
26
|
+
};
|
21
27
|
isMinimize: boolean;
|
22
28
|
isClosed: boolean;
|
23
29
|
onClosedHandler: ((id: string) => void) | undefined;
|
24
30
|
constructor(id: string, onClosedHandler?: (id: string) => void);
|
25
|
-
fullscreenWindow(): void;
|
31
|
+
fullscreenWindow(func?: () => void): void;
|
26
32
|
fullscreenExitWindow(): void;
|
27
33
|
resetState(): void;
|
28
34
|
calculateTransform(transform: Transform): {
|
@@ -31,19 +37,25 @@ export default class WindowStore {
|
|
31
37
|
};
|
32
38
|
controll(transform: Transform, type: WindowControllerType): void;
|
33
39
|
endControll(): void;
|
34
|
-
minimizeWindow(
|
35
|
-
left: number;
|
36
|
-
top: number;
|
37
|
-
}): void;
|
40
|
+
minimizeWindow(): void;
|
38
41
|
normalizeWindow(): void;
|
39
42
|
closeWindow(): void;
|
40
43
|
get style(): {
|
41
|
-
left: string
|
42
|
-
top: string
|
43
|
-
width: string
|
44
|
-
height: string
|
44
|
+
left: string;
|
45
|
+
top: string;
|
46
|
+
width: string;
|
47
|
+
height: string;
|
48
|
+
zIndex: number;
|
49
|
+
transform: string;
|
50
|
+
transition: string;
|
51
|
+
} | {
|
52
|
+
left: string;
|
53
|
+
top: string;
|
54
|
+
width: number;
|
55
|
+
height: number;
|
45
56
|
zIndex: number;
|
46
57
|
transform: string;
|
47
58
|
transition: string;
|
48
59
|
};
|
60
|
+
get info(): string;
|
49
61
|
}
|
@@ -9,17 +9,26 @@ import { action, computed, makeObservable, observable } from 'mobx';
|
|
9
9
|
var WindowStore = /*#__PURE__*/function () {
|
10
10
|
function WindowStore(id, onClosedHandler) {
|
11
11
|
_classCallCheck(this, WindowStore);
|
12
|
-
_defineProperty(this, "width",
|
13
|
-
_defineProperty(this, "height",
|
14
|
-
_defineProperty(this, "left",
|
15
|
-
_defineProperty(this, "top",
|
12
|
+
_defineProperty(this, "width", 400);
|
13
|
+
_defineProperty(this, "height", 400);
|
14
|
+
_defineProperty(this, "left", 0);
|
15
|
+
_defineProperty(this, "top", 0);
|
16
16
|
_defineProperty(this, "zIndex", 1);
|
17
17
|
_defineProperty(this, "fullscreen", false);
|
18
18
|
_defineProperty(this, "id", '');
|
19
19
|
_defineProperty(this, "transform", null);
|
20
20
|
_defineProperty(this, "isMoving", false);
|
21
21
|
_defineProperty(this, "isResizing", false);
|
22
|
-
_defineProperty(this, "minimizePos",
|
22
|
+
_defineProperty(this, "minimizePos", {
|
23
|
+
left: 0,
|
24
|
+
top: 0
|
25
|
+
});
|
26
|
+
_defineProperty(this, "fullscreenPos", {
|
27
|
+
left: 0,
|
28
|
+
top: 0,
|
29
|
+
width: 1000,
|
30
|
+
height: 1000
|
31
|
+
});
|
23
32
|
_defineProperty(this, "isMinimize", false);
|
24
33
|
_defineProperty(this, "isClosed", false);
|
25
34
|
_defineProperty(this, "onClosedHandler", void 0);
|
@@ -41,19 +50,22 @@ var WindowStore = /*#__PURE__*/function () {
|
|
41
50
|
style: computed.struct,
|
42
51
|
isMinimize: observable,
|
43
52
|
minimizePos: observable.struct,
|
53
|
+
fullscreenPos: observable.struct,
|
44
54
|
minimizeWindow: action,
|
45
55
|
normalizeWindow: action,
|
46
56
|
closeWindow: action,
|
47
|
-
resetState: action
|
57
|
+
resetState: action,
|
58
|
+
info: computed
|
48
59
|
});
|
49
60
|
this.id = id;
|
50
61
|
this.onClosedHandler = onClosedHandler;
|
51
62
|
}
|
52
63
|
_createClass(WindowStore, [{
|
53
64
|
key: "fullscreenWindow",
|
54
|
-
value: function fullscreenWindow() {
|
65
|
+
value: function fullscreenWindow(func) {
|
55
66
|
this.resetState();
|
56
67
|
this.fullscreen = true;
|
68
|
+
func === null || func === void 0 || func();
|
57
69
|
}
|
58
70
|
}, {
|
59
71
|
key: "fullscreenExitWindow",
|
@@ -87,22 +99,22 @@ var WindowStore = /*#__PURE__*/function () {
|
|
87
99
|
this.isResizing = true;
|
88
100
|
}
|
89
101
|
if (type.includes('left')) {
|
90
|
-
this.left = Math.round(
|
91
|
-
this.width = Math.round(
|
102
|
+
this.left = Math.round(this.left + offsetTransform.x);
|
103
|
+
this.width = Math.round(this.width - offsetTransform.x);
|
92
104
|
}
|
93
105
|
if (type.includes('right')) {
|
94
|
-
this.width = Math.round(
|
106
|
+
this.width = Math.round(this.width + offsetTransform.x);
|
95
107
|
}
|
96
108
|
if (type.includes('top')) {
|
97
|
-
this.top = Math.round(
|
98
|
-
this.height = Math.round(
|
109
|
+
this.top = Math.round(this.top + offsetTransform.y);
|
110
|
+
this.height = Math.round(this.height - offsetTransform.y);
|
99
111
|
}
|
100
112
|
if (type.includes('bottom')) {
|
101
|
-
this.height = Math.round(
|
113
|
+
this.height = Math.round(this.height + offsetTransform.y);
|
102
114
|
}
|
103
115
|
if (type.includes('move')) {
|
104
|
-
this.left = Math.round(
|
105
|
-
this.top = Math.round(
|
116
|
+
this.left = Math.round(this.left + offsetTransform.x);
|
117
|
+
this.top = Math.round(this.top + offsetTransform.y);
|
106
118
|
}
|
107
119
|
this.transform = transform;
|
108
120
|
}
|
@@ -115,8 +127,7 @@ var WindowStore = /*#__PURE__*/function () {
|
|
115
127
|
}
|
116
128
|
}, {
|
117
129
|
key: "minimizeWindow",
|
118
|
-
value: function minimizeWindow(
|
119
|
-
this.minimizePos = minimize;
|
130
|
+
value: function minimizeWindow() {
|
120
131
|
this.isMinimize = true;
|
121
132
|
this.fullscreen = false;
|
122
133
|
this.resetState();
|
@@ -124,7 +135,6 @@ var WindowStore = /*#__PURE__*/function () {
|
|
124
135
|
}, {
|
125
136
|
key: "normalizeWindow",
|
126
137
|
value: function normalizeWindow() {
|
127
|
-
this.minimizePos = null;
|
128
138
|
this.isMinimize = false;
|
129
139
|
this.fullscreen = false;
|
130
140
|
this.resetState();
|
@@ -138,16 +148,64 @@ var WindowStore = /*#__PURE__*/function () {
|
|
138
148
|
}, {
|
139
149
|
key: "style",
|
140
150
|
get: function get() {
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
151
|
+
if (this.isClosed) {
|
152
|
+
return {
|
153
|
+
left: this.left + 'px',
|
154
|
+
top: this.top + 'px',
|
155
|
+
width: this.width + 'px',
|
156
|
+
height: this.height + 'px',
|
157
|
+
zIndex: this.zIndex,
|
158
|
+
transform: 'scale(0)',
|
159
|
+
transition: 'all 0.5s ease-out'
|
160
|
+
};
|
161
|
+
}
|
162
|
+
if (this.isMinimize && this.minimizePos) {
|
163
|
+
return {
|
164
|
+
left: this.minimizePos.left + 'px',
|
165
|
+
top: this.minimizePos.top + 'px',
|
166
|
+
width: 0,
|
167
|
+
height: 0,
|
168
|
+
zIndex: this.zIndex,
|
169
|
+
transform: 'scale(0)',
|
170
|
+
transition: 'all 0.5s ease-out'
|
171
|
+
};
|
172
|
+
}
|
173
|
+
if (this.fullscreen) {
|
174
|
+
return {
|
175
|
+
left: this.fullscreenPos.left + 'px',
|
176
|
+
top: this.fullscreenPos.top + 'px',
|
177
|
+
width: this.fullscreenPos.width + 'px',
|
178
|
+
height: this.fullscreenPos.height + 'px',
|
179
|
+
zIndex: this.zIndex,
|
180
|
+
transform: 'none',
|
181
|
+
transition: 'all 0.5s ease-out'
|
182
|
+
};
|
183
|
+
}
|
184
|
+
if (this.isMoving || this.isResizing) {
|
185
|
+
return {
|
186
|
+
left: this.left + 'px',
|
187
|
+
top: this.top + 'px',
|
188
|
+
width: this.width + 'px',
|
189
|
+
height: this.height + 'px',
|
190
|
+
zIndex: this.zIndex,
|
191
|
+
transform: 'none',
|
192
|
+
transition: 'none'
|
193
|
+
};
|
194
|
+
}
|
195
|
+
return {
|
196
|
+
left: this.left + 'px',
|
197
|
+
top: this.top + 'px',
|
198
|
+
width: this.width + 'px',
|
199
|
+
height: this.height + 'px',
|
146
200
|
zIndex: this.zIndex,
|
147
|
-
transform:
|
148
|
-
transition:
|
201
|
+
transform: 'none',
|
202
|
+
transition: 'all 0.5s ease-out'
|
149
203
|
};
|
150
|
-
|
204
|
+
}
|
205
|
+
}, {
|
206
|
+
key: "info",
|
207
|
+
get: function get() {
|
208
|
+
return JSON.stringify(this.fullscreenPos, null, 4);
|
151
209
|
}
|
152
210
|
}]);
|
153
211
|
return WindowStore;
|
package/dist/Window/test.js
CHANGED
@@ -7,11 +7,9 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
7
7
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
8
8
|
import { DndContext } from '@dnd-kit/core';
|
9
9
|
import { makeAutoObservable } from 'mobx';
|
10
|
-
import { observer } from 'mobx-react-lite';
|
10
|
+
import { observer, useLocalObservable } from 'mobx-react-lite';
|
11
11
|
import React from 'react';
|
12
|
-
import {
|
13
|
-
import { Space } from "../Space";
|
14
|
-
import { ViewPort } from "../ViewPort";
|
12
|
+
import { ViewPort, ViewPortStore } from "../ViewPort";
|
15
13
|
import { GlobalStyles } from "../__styles";
|
16
14
|
import Window from "./Window";
|
17
15
|
import { WindowStore } from "./index";
|
@@ -40,23 +38,18 @@ var WindowManager = /*#__PURE__*/function () {
|
|
40
38
|
}();
|
41
39
|
var windowManager = new WindowManager();
|
42
40
|
export default observer(function Test() {
|
41
|
+
var viewPortStore = useLocalObservable(function () {
|
42
|
+
return new ViewPortStore();
|
43
|
+
});
|
43
44
|
return /*#__PURE__*/React.createElement(DndContext, null, /*#__PURE__*/React.createElement(GlobalStyles, {
|
44
45
|
$css: []
|
45
|
-
}), /*#__PURE__*/React.createElement(ViewPort,
|
46
|
-
|
47
|
-
|
48
|
-
window.normalizeWindow();
|
49
|
-
});
|
50
|
-
}
|
51
|
-
}, "\u5C55\u5F00")), windowManager.windows.map(function (windowStore) {
|
46
|
+
}), /*#__PURE__*/React.createElement(ViewPort, {
|
47
|
+
viewPortStore: viewPortStore
|
48
|
+
}, windowManager.windows.map(function (windowStore) {
|
52
49
|
return /*#__PURE__*/React.createElement(Window, {
|
53
50
|
window: windowStore,
|
54
51
|
key: windowStore.id,
|
55
52
|
title: 'xixi'
|
56
|
-
},
|
57
|
-
onClick: function onClick() {
|
58
|
-
alert('jss好帅');
|
59
|
-
}
|
60
|
-
}, "123"));
|
53
|
+
}, "123");
|
61
54
|
})));
|
62
55
|
});
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@kep-platform/basic-component",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.38",
|
4
4
|
"description": "A react library developed with dumi",
|
5
5
|
"license": "MIT",
|
6
6
|
"module": "dist/index.js",
|
@@ -47,7 +47,7 @@
|
|
47
47
|
},
|
48
48
|
"dependencies": {
|
49
49
|
"@ant-design/icons": "^5.3.7",
|
50
|
-
"@kep-platform/hooks": "^0.0.
|
50
|
+
"@kep-platform/hooks": "^0.0.38",
|
51
51
|
"color": "^4.2.3",
|
52
52
|
"rc-pagination": "^4.1.0",
|
53
53
|
"styled-components": "^6.1.11"
|
@@ -87,5 +87,5 @@
|
|
87
87
|
"authors": [
|
88
88
|
"lee-step-jss 1599925910@qq.com"
|
89
89
|
],
|
90
|
-
"gitHead": "
|
90
|
+
"gitHead": "8e28a8926ce994e43661454098fac1f15d7e9ead"
|
91
91
|
}
|