kitchen-simulator 1.0.0-alin.2 → 1.0.0-alin.20
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/es/LiteKitchenConfigurator.js +1 -1
- package/es/actions/items-actions.js +1 -2
- package/es/class/item.js +1 -1
- package/es/class/project.js +8 -1
- package/es/components/viewer2d/item.js +5 -1
- package/es/components/viewer2d/layer.js +1 -1
- package/es/components/viewer2d/line.js +20 -17
- package/es/components/viewer2d/viewer2d.js +19 -55
- package/es/components/viewer3d/viewer3d.js +0 -2
- package/es/constants.js +7 -1
- package/es/devLiteRenderer.js +70 -5
- package/es/index.js +15 -2
- package/es/reducers/items-reducer.js +1 -1
- package/es/utils/isolate-event-handler.js +86 -17
- package/lib/LiteKitchenConfigurator.js +1 -1
- package/lib/actions/items-actions.js +1 -2
- package/lib/class/item.js +1 -1
- package/lib/class/project.js +8 -1
- package/lib/components/viewer2d/item.js +5 -1
- package/lib/components/viewer2d/layer.js +1 -1
- package/lib/components/viewer2d/line.js +19 -16
- package/lib/components/viewer2d/viewer2d.js +19 -55
- package/lib/components/viewer3d/viewer3d.js +0 -2
- package/lib/constants.js +11 -5
- package/lib/devLiteRenderer.js +69 -4
- package/lib/index.js +15 -2
- package/lib/reducers/items-reducer.js +1 -1
- package/lib/utils/isolate-event-handler.js +85 -16
- package/package.json +1 -1
package/lib/devLiteRenderer.js
CHANGED
|
@@ -9,6 +9,9 @@ var _mockProps = _interopRequireDefault(require("./mocks/mockProps.json"));
|
|
|
9
9
|
var _categoryData = _interopRequireDefault(require("./mocks/categoryData.json"));
|
|
10
10
|
var _dataBundle = _interopRequireDefault(require("./mocks/dataBundle.json"));
|
|
11
11
|
var _cabinetPayload = _interopRequireDefault(require("./mocks/cabinetPayload.json"));
|
|
12
|
+
var _doorStylePayload = _interopRequireDefault(require("./mocks/doorStylePayload.json"));
|
|
13
|
+
var _oStylePayload = _interopRequireDefault(require("./mocks/oStylePayload.json"));
|
|
14
|
+
var _rectangleShape = _interopRequireDefault(require("./mocks/rectangleShape.json"));
|
|
12
15
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
13
16
|
var _LiteRenderer = _interopRequireDefault(require("./LiteRenderer"));
|
|
14
17
|
var _antd = require("antd");
|
|
@@ -26,6 +29,18 @@ function WorkSpace(props) {
|
|
|
26
29
|
externalEvent = _useState2[0],
|
|
27
30
|
setExternalEvent = _useState2[1];
|
|
28
31
|
var offset = 5;
|
|
32
|
+
(0, _react.useEffect)(function () {
|
|
33
|
+
var evt = {
|
|
34
|
+
type: _constants.EXTERNAL_EVENT_SET_INITIAL_DATA,
|
|
35
|
+
payload: {
|
|
36
|
+
doorStyle: {
|
|
37
|
+
doorStyle: _doorStylePayload["default"],
|
|
38
|
+
oStyle: _oStylePayload["default"]
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
setExternalEvent(evt);
|
|
43
|
+
}, []);
|
|
29
44
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
30
45
|
className: "flex gap-4"
|
|
31
46
|
}, /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
@@ -111,6 +126,28 @@ function WorkSpace(props) {
|
|
|
111
126
|
}
|
|
112
127
|
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
113
128
|
src: "/assets/img/svg/bottombar/arrow-right.svg"
|
|
129
|
+
})), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
130
|
+
actionType: "primary",
|
|
131
|
+
onClick: function onClick() {
|
|
132
|
+
var evt = {
|
|
133
|
+
type: _constants.EXTERNAL_EVENT_ZOOM_IN,
|
|
134
|
+
payload: {}
|
|
135
|
+
};
|
|
136
|
+
setExternalEvent(evt);
|
|
137
|
+
}
|
|
138
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
139
|
+
src: "/assets/img/svg/bottombar/arrow-minus.svg"
|
|
140
|
+
})), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
141
|
+
actionType: "primary",
|
|
142
|
+
onClick: function onClick() {
|
|
143
|
+
var evt = {
|
|
144
|
+
type: _constants.EXTERNAL_EVENT_ZOOM_OUT,
|
|
145
|
+
payload: {}
|
|
146
|
+
};
|
|
147
|
+
setExternalEvent(evt);
|
|
148
|
+
}
|
|
149
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
150
|
+
src: "/assets/img/svg/bottombar/arrow-plus.svg"
|
|
114
151
|
})), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
115
152
|
actionType: "primary",
|
|
116
153
|
onClick: function onClick() {
|
|
@@ -138,9 +175,30 @@ function WorkSpace(props) {
|
|
|
138
175
|
};
|
|
139
176
|
setExternalEvent(evt);
|
|
140
177
|
}
|
|
141
|
-
}, "Add B12 Cabinet"), /*#__PURE__*/_react["default"].createElement(
|
|
142
|
-
|
|
143
|
-
|
|
178
|
+
}, "Add B12 Cabinet"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
179
|
+
actionType: "danger",
|
|
180
|
+
onClick: function onClick() {
|
|
181
|
+
var evt = {
|
|
182
|
+
type: _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE,
|
|
183
|
+
payload: {
|
|
184
|
+
doorStyle: _doorStylePayload["default"],
|
|
185
|
+
isAll: true
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
setExternalEvent(evt);
|
|
189
|
+
}
|
|
190
|
+
}, "DoorStyle (Change into Midtown White Shaker)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
191
|
+
actionType: "danger",
|
|
192
|
+
onClick: function onClick() {
|
|
193
|
+
var evt = {
|
|
194
|
+
type: _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE,
|
|
195
|
+
payload: _rectangleShape["default"]
|
|
196
|
+
};
|
|
197
|
+
setExternalEvent(evt);
|
|
198
|
+
}
|
|
199
|
+
}, "Add Room shape(rectangle)"), /*#__PURE__*/_react["default"].createElement(_LiteRenderer["default"], {
|
|
200
|
+
width: props.width,
|
|
201
|
+
height: props.height,
|
|
144
202
|
projectElement: _mockProps["default"].projectElement,
|
|
145
203
|
categoryData: _categoryData["default"],
|
|
146
204
|
dataBundle: _dataBundle["default"],
|
|
@@ -162,4 +220,11 @@ function WorkSpace(props) {
|
|
|
162
220
|
}
|
|
163
221
|
}));
|
|
164
222
|
}
|
|
165
|
-
_reactDom["default"].render(/*#__PURE__*/_react["default"].createElement(
|
|
223
|
+
_reactDom["default"].render(/*#__PURE__*/_react["default"].createElement(_reactContainerDimensions["default"], null, function (_ref) {
|
|
224
|
+
var width = _ref.width,
|
|
225
|
+
height = _ref.height;
|
|
226
|
+
return /*#__PURE__*/_react["default"].createElement(WorkSpace, {
|
|
227
|
+
width: width,
|
|
228
|
+
height: height
|
|
229
|
+
});
|
|
230
|
+
}), document.getElementById('app'));
|
package/lib/index.js
CHANGED
|
@@ -6,16 +6,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
8
|
exports.renderKitchenSimulator = renderKitchenSimulator;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
10
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
10
11
|
var _react = _interopRequireDefault(require("react"));
|
|
11
12
|
var _LiteRenderer = _interopRequireDefault(require("./LiteRenderer"));
|
|
13
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
15
|
function renderKitchenSimulator(container) {
|
|
13
16
|
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
17
|
+
var currentProps = props;
|
|
18
|
+
|
|
19
|
+
// Initial render
|
|
14
20
|
var root = _reactDom["default"].render(/*#__PURE__*/_react["default"].createElement(_LiteRenderer["default"], props), container);
|
|
15
21
|
return {
|
|
16
22
|
root: root,
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
updateExternalEvent: function updateExternalEvent(newExternalEvent) {
|
|
24
|
+
var prevEvent = currentProps.externalEvent;
|
|
25
|
+
var isSameEvent = prevEvent && newExternalEvent && prevEvent.type === newExternalEvent.type && JSON.stringify(prevEvent.payload) === JSON.stringify(newExternalEvent.payload);
|
|
26
|
+
if (!isSameEvent) {
|
|
27
|
+
currentProps = _objectSpread(_objectSpread({}, currentProps), {}, {
|
|
28
|
+
externalEvent: newExternalEvent
|
|
29
|
+
});
|
|
30
|
+
_reactDom["default"].render(/*#__PURE__*/_react["default"].createElement(_LiteRenderer["default"], currentProps), container);
|
|
31
|
+
}
|
|
19
32
|
}
|
|
20
33
|
};
|
|
21
34
|
}
|
|
@@ -108,7 +108,7 @@ function _default(state, action) {
|
|
|
108
108
|
case _constants.SELECT_TOOL_DRAWING_ITEM_3D:
|
|
109
109
|
return _export.Item.selectToolDrawingItem3D(state, action.sceneComponentType).updatedState;
|
|
110
110
|
case _constants.SET_DOOR_STYLE:
|
|
111
|
-
return _export.Item.setDoorStyle(state, action.doorStyle, action.
|
|
111
|
+
return _export.Item.setDoorStyle(state, action.doorStyle, action.isAll).updatedState;
|
|
112
112
|
case _constants.SET_HANDLE_MATERIAL:
|
|
113
113
|
return _export.Item.setHandleMaterial(state, action.material).updatedState;
|
|
114
114
|
case _constants.SET_DOOR_HANDLE:
|
|
@@ -69,42 +69,46 @@ var loadSVGsByItem = /*#__PURE__*/function () {
|
|
|
69
69
|
return _ref.apply(this, arguments);
|
|
70
70
|
};
|
|
71
71
|
}();
|
|
72
|
-
function
|
|
72
|
+
var compareSVGRect = function compareSVGRect(value) {
|
|
73
|
+
return value.e <= 10 && value.e + value.a * value.SVGWidth + 10 >= value.viewerWidth && value.f <= 80 && value.f + value.d * value.SVGHeight + 10 >= value.viewerHeight ? true : false;
|
|
74
|
+
};
|
|
75
|
+
function handleExternalEvent(_x2) {
|
|
73
76
|
return _handleExternalEvent.apply(this, arguments);
|
|
74
77
|
}
|
|
75
78
|
function _handleExternalEvent() {
|
|
76
|
-
_handleExternalEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(
|
|
77
|
-
var state, sLineCnt, element, catalog, outlineSVGData, catalogInstance, elementJs, _evt$payload, moveType, moveValue, value, defaulTitle, _t2, _t3;
|
|
79
|
+
_handleExternalEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(props) {
|
|
80
|
+
var evt, state, sLineCnt, element, catalog, outlineSVGData, catalogInstance, elementJs, _evt$payload, moveType, moveValue, value, defaulTitle, _evt$payload2, doorStyle, isAll, _doorStyle, _value, _zoomValue, _value2, _zoomValue2, _t2, _t3;
|
|
78
81
|
return _regenerator["default"].wrap(function (_context2) {
|
|
79
82
|
while (1) switch (_context2.prev = _context2.next) {
|
|
80
83
|
case 0:
|
|
81
|
-
|
|
84
|
+
evt = props.externalEvent;
|
|
85
|
+
state = props.state.get('KitchenConfigurator');
|
|
82
86
|
_t2 = evt === null || evt === void 0 ? void 0 : evt.type;
|
|
83
|
-
_context2.next = _t2 === _constants.EXTERNAL_EVENT_TOGGLE_TO_3D ? 1 : _t2 === _constants.EXTERNAL_EVENT_TOGGLE_TO_2D ? 2 : _t2 === _constants.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 3 : _t2 === _constants.EXTERNAL_EVENT_ADD_WALL ? 4 : _t2 === _constants.EXTERNAL_EVENT_ADD_ITEM ? 5 : _t2 === _constants.EXTERNAL_EVENT_MOVE_PAN ? 9 : _t2 === _constants.EXTERNAL_EVENT_NEW_PROJECT ? 15 : 16;
|
|
87
|
+
_context2.next = _t2 === _constants.EXTERNAL_EVENT_TOGGLE_TO_3D ? 1 : _t2 === _constants.EXTERNAL_EVENT_TOGGLE_TO_2D ? 2 : _t2 === _constants.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 3 : _t2 === _constants.EXTERNAL_EVENT_ADD_WALL ? 4 : _t2 === _constants.EXTERNAL_EVENT_ADD_ITEM ? 5 : _t2 === _constants.EXTERNAL_EVENT_MOVE_PAN ? 9 : _t2 === _constants.EXTERNAL_EVENT_NEW_PROJECT ? 15 : _t2 === _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 16 : _t2 === _constants.EXTERNAL_EVENT_SET_INITIAL_DATA ? 17 : _t2 === _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 18 : _t2 === _constants.EXTERNAL_EVENT_ZOOM_IN ? 19 : _t2 === _constants.EXTERNAL_EVENT_ZOOM_OUT ? 22 : 25;
|
|
84
88
|
break;
|
|
85
89
|
case 1:
|
|
86
90
|
props.projectActions.setMode(_constants.MODE_IDLE_3D);
|
|
87
|
-
return _context2.abrupt("continue",
|
|
91
|
+
return _context2.abrupt("continue", 25);
|
|
88
92
|
case 2:
|
|
89
93
|
props.projectActions.setMode(_constants.MODE_IDLE);
|
|
90
|
-
return _context2.abrupt("continue",
|
|
94
|
+
return _context2.abrupt("continue", 25);
|
|
91
95
|
case 3:
|
|
92
|
-
sLineCnt = state.getIn(['
|
|
96
|
+
sLineCnt = state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size;
|
|
93
97
|
if (sLineCnt > 0) props.projectActions.setMode(_constants.MODE_ELEVATION_VIEW);
|
|
94
|
-
return _context2.abrupt("continue",
|
|
98
|
+
return _context2.abrupt("continue", 25);
|
|
95
99
|
case 4:
|
|
96
100
|
if (state.mode === _constants.MODE_IDLE || state.mode === _constants.MODE_2D_PAN) props.linesActions.selectToolDrawingLine('wall');else {
|
|
97
101
|
props.projectActions.setMode(_constants.MODE_IDLE);
|
|
98
102
|
props.linesActions.selectToolDrawingLine('wall');
|
|
99
103
|
}
|
|
100
|
-
return _context2.abrupt("continue",
|
|
104
|
+
return _context2.abrupt("continue", 25);
|
|
101
105
|
case 5:
|
|
102
106
|
if ((0, _helper.isEmpty)(evt === null || evt === void 0 ? void 0 : evt.payload)) {
|
|
103
107
|
_context2.next = 8;
|
|
104
108
|
break;
|
|
105
109
|
}
|
|
106
110
|
element = evt.payload;
|
|
107
|
-
catalog = state.getIn(['
|
|
111
|
+
catalog = state.getIn(['catalog']).toJS(); // add item to catalog of state
|
|
108
112
|
if (!(0, _helper.isEmpty)(catalog === null || catalog === void 0 ? void 0 : catalog.elements[element.name])) {
|
|
109
113
|
_context2.next = 7;
|
|
110
114
|
break;
|
|
@@ -129,10 +133,10 @@ function _handleExternalEvent() {
|
|
|
129
133
|
props.projectActions.pushLastSelectedCatalogElementToHistory(element);
|
|
130
134
|
props.projectActions.setIsCabinetDrawing(true);
|
|
131
135
|
case 8:
|
|
132
|
-
return _context2.abrupt("continue",
|
|
136
|
+
return _context2.abrupt("continue", 25);
|
|
133
137
|
case 9:
|
|
134
138
|
_evt$payload = evt.payload, moveType = _evt$payload.moveType, moveValue = _evt$payload.moveValue;
|
|
135
|
-
value = state.getIn(['
|
|
139
|
+
value = state.getIn(['viewer2D']).toJS();
|
|
136
140
|
_t3 = moveType;
|
|
137
141
|
_context2.next = _t3 === _constants.TOP ? 10 : _t3 === _constants.BOTTOM ? 11 : _t3 === _constants.RIGHT ? 12 : _t3 === _constants.LEFT ? 13 : 14;
|
|
138
142
|
break;
|
|
@@ -149,14 +153,79 @@ function _handleExternalEvent() {
|
|
|
149
153
|
value.e -= moveValue;
|
|
150
154
|
return _context2.abrupt("continue", 14);
|
|
151
155
|
case 14:
|
|
152
|
-
if (value
|
|
153
|
-
return _context2.abrupt("continue",
|
|
156
|
+
if (compareSVGRect(value)) props.viewer2DActions.updateCameraView(value);
|
|
157
|
+
return _context2.abrupt("continue", 25);
|
|
154
158
|
case 15:
|
|
155
159
|
defaulTitle = 'Untitle';
|
|
156
160
|
props.projectActions.newProject();
|
|
157
161
|
props.projectActions.rename(defaulTitle);
|
|
158
|
-
return _context2.abrupt("continue",
|
|
162
|
+
return _context2.abrupt("continue", 25);
|
|
159
163
|
case 16:
|
|
164
|
+
_evt$payload2 = evt.payload, doorStyle = _evt$payload2.doorStyle, isAll = _evt$payload2.isAll;
|
|
165
|
+
props.itemsActions.setDoorStyle(doorStyle, isAll);
|
|
166
|
+
return _context2.abrupt("continue", 25);
|
|
167
|
+
case 17:
|
|
168
|
+
_doorStyle = evt.payload.doorStyle;
|
|
169
|
+
props.itemsActions.setInitialDoorStyle(_doorStyle.doorStyle, _doorStyle.oStyle);
|
|
170
|
+
return _context2.abrupt("continue", 25);
|
|
171
|
+
case 18:
|
|
172
|
+
props.projectActions.loadProject(evt.payload, props.categoryData);
|
|
173
|
+
return _context2.abrupt("continue", 25);
|
|
174
|
+
case 19:
|
|
175
|
+
_value = state.getIn(['viewer2D']).toJS();
|
|
176
|
+
_value.a -= 0.1;
|
|
177
|
+
_value.d -= 0.1;
|
|
178
|
+
_value.e += _value.SVGWidth * 0.1 / 2;
|
|
179
|
+
_value.f += _value.SVGHeight * 0.1 / 2;
|
|
180
|
+
_zoomValue = parseInt((_value.a - 0.5) / _constants.ZOOM_VARIABLE);
|
|
181
|
+
if (!(_zoomValue > 404)) {
|
|
182
|
+
_context2.next = 20;
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
return _context2.abrupt("return");
|
|
186
|
+
case 20:
|
|
187
|
+
if (!(_zoomValue < 35 || Number.isNaN(_zoomValue))) {
|
|
188
|
+
_context2.next = 21;
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
return _context2.abrupt("return");
|
|
192
|
+
case 21:
|
|
193
|
+
while (!(_value.e <= 10)) {
|
|
194
|
+
_value.e -= 0.1;
|
|
195
|
+
}
|
|
196
|
+
while (!(_value.e + _value.a * _value.SVGWidth + 10 >= _value.viewerWidth)) {
|
|
197
|
+
_value.e += 0.1;
|
|
198
|
+
}
|
|
199
|
+
while (!(_value.f <= 80)) {
|
|
200
|
+
_value.f -= 0.1;
|
|
201
|
+
}
|
|
202
|
+
while (!(_value.f + _value.a * _value.SVGHeight + 10 >= _value.viewerHeight)) {
|
|
203
|
+
_value.f += 0.1;
|
|
204
|
+
}
|
|
205
|
+
if (compareSVGRect(_value)) props.viewer2DActions.updateCameraView(_value);
|
|
206
|
+
return _context2.abrupt("continue", 25);
|
|
207
|
+
case 22:
|
|
208
|
+
_value2 = state.getIn(['viewer2D']).toJS();
|
|
209
|
+
_value2.a += 0.1;
|
|
210
|
+
_value2.d += 0.1;
|
|
211
|
+
_value2.e -= _value2.SVGWidth * 0.1 / 2;
|
|
212
|
+
_value2.f -= _value2.SVGHeight * 0.1 / 2;
|
|
213
|
+
_zoomValue2 = parseInt((_value2.a - 0.5) / _constants.ZOOM_VARIABLE);
|
|
214
|
+
if (!(_zoomValue2 > 404)) {
|
|
215
|
+
_context2.next = 23;
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
return _context2.abrupt("return");
|
|
219
|
+
case 23:
|
|
220
|
+
if (!(_zoomValue2 < 35 || Number.isNaN(_zoomValue2))) {
|
|
221
|
+
_context2.next = 24;
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
return _context2.abrupt("return");
|
|
225
|
+
case 24:
|
|
226
|
+
if (compareSVGRect(_value2)) props.viewer2DActions.updateCameraView(_value2);
|
|
227
|
+
return _context2.abrupt("continue", 25);
|
|
228
|
+
case 25:
|
|
160
229
|
case "end":
|
|
161
230
|
return _context2.stop();
|
|
162
231
|
}
|