kitchen-simulator 3.0.3 → 3.1.0-alpha.13
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 +52 -29
- package/es/LiteRenderer.js +5 -8
- package/es/actions/lines-actions.js +3 -1
- package/es/assets/img/png/helper/video_preview_start.png +0 -0
- package/es/catalog/factories/area-factory-3d.js +17 -17
- package/es/catalog/holes/window-clear/planner-element.js +2 -2
- package/es/catalog/utils/item-loader.js +198 -197
- package/es/class/item.js +8 -0
- package/es/class/line.js +14 -2
- package/es/components/viewer2d/item.js +36 -12
- package/es/components/viewer2d/utils.js +2 -2
- package/es/components/viewer2d/viewer2d.js +12 -10
- package/es/components/viewer3d/viewer3d.js +66 -74
- package/es/constants.js +6 -2
- package/es/devLiteRenderer.js +192 -98
- package/es/index.js +104 -14
- package/es/reducers/lines-reducer.js +1 -1
- package/es/utils/geometry.js +161 -0
- package/es/utils/isolate-event-handler.js +268 -114
- package/es/utils/molding.js +234 -2
- package/lib/LiteKitchenConfigurator.js +52 -29
- package/lib/LiteRenderer.js +5 -8
- package/lib/actions/lines-actions.js +3 -1
- package/lib/assets/img/png/helper/video_preview_start.png +0 -0
- package/lib/catalog/factories/area-factory-3d.js +14 -14
- package/lib/catalog/holes/window-clear/planner-element.js +2 -2
- package/lib/catalog/utils/item-loader.js +195 -194
- package/lib/class/item.js +8 -0
- package/lib/class/line.js +13 -1
- package/lib/components/viewer2d/item.js +36 -12
- package/lib/components/viewer2d/utils.js +2 -2
- package/lib/components/viewer2d/viewer2d.js +12 -10
- package/lib/components/viewer3d/viewer3d.js +66 -74
- package/lib/constants.js +11 -7
- package/lib/devLiteRenderer.js +186 -92
- package/lib/index.js +104 -14
- package/lib/reducers/lines-reducer.js +1 -1
- package/lib/utils/geometry.js +162 -0
- package/lib/utils/isolate-event-handler.js +267 -113
- package/lib/utils/molding.js +233 -0
- package/package.json +1 -1
package/es/devLiteRenderer.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
3
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
-
import React, { useState, useEffect } from
|
|
5
|
-
import { Map } from
|
|
6
|
-
import ContainerDimensions from
|
|
4
|
+
import React, { useState, useEffect } from "react";
|
|
5
|
+
import { Map } from "immutable";
|
|
6
|
+
import ContainerDimensions from "react-container-dimensions";
|
|
7
7
|
import projectItemsCatalog from "./mocks/projectItemsCatalog.json";
|
|
8
8
|
import mockProps from "./mocks/mockProps.json";
|
|
9
9
|
import cabinetPaylod from "./mocks/cabinetPayload2.json";
|
|
10
|
+
import cabinetW0940Payload from "./mocks/cabinetPayload.json";
|
|
10
11
|
import appliancePaylod from "./mocks/appliancePayload.json";
|
|
11
12
|
import doorStylePaylod2 from "./mocks/doorStylePayload2.json";
|
|
12
13
|
import roomShapePayload from "./mocks/roomShapePayload.json";
|
|
@@ -16,14 +17,15 @@ import furnishingPayload from "./mocks/furnishingPayload.json";
|
|
|
16
17
|
import rectangleData from "./mocks/rectangleShape.json";
|
|
17
18
|
import moldingPayload from "./mocks/moldingPayload.json";
|
|
18
19
|
import replaceCabinetPayload from "./mocks/replaceCabinetPayload.json";
|
|
19
|
-
import ReactDOM from
|
|
20
|
+
import ReactDOM from "react-dom";
|
|
20
21
|
import LiteRenderer from "./LiteRenderer";
|
|
21
|
-
import { Button } from
|
|
22
|
-
import { LEFT, RIGHT, TOP, BOTTOM, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, BACK_DIST_ANG, ATT_ITEM_POS, ATT_ITEM_ROTATION, ATT_LINE_LENGTH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, HOLE_NAMES, EXTERNAL_EVENT_CENTERING_2D, PROP_ALTITUDE, EXTERNAL_EVENT_DUPLICATE_ELEMENT, ELEMENT_ITEM, EXTERNAL_EVENT_DELETE_ELEMENT, PROP_RESIZE_WIDTH, EXTERNAL_EVENT_REPLACE_CABINET, EXTERNAL_EVENT_SET_FINISHING, FINISHING_TYPE } from "./constants";
|
|
22
|
+
import { Button } from "antd";
|
|
23
|
+
import { LEFT, RIGHT, TOP, BOTTOM, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, BACK_DIST_ANG, ATT_ITEM_POS, ATT_ITEM_ROTATION, ATT_LINE_LENGTH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, HOLE_NAMES, EXTERNAL_EVENT_CENTERING_2D, PROP_ALTITUDE, EXTERNAL_EVENT_DUPLICATE_ELEMENT, ELEMENT_ITEM, EXTERNAL_EVENT_DELETE_ELEMENT, PROP_RESIZE_WIDTH, EXTERNAL_EVENT_REPLACE_CABINET, EXTERNAL_EVENT_SET_FINISHING, FINISHING_TYPE, EXTERNAL_EVENT_ROTATE_PAN } from "./constants";
|
|
24
|
+
import { convert } from "./utils/convert-units-lite";
|
|
23
25
|
|
|
24
26
|
// --- renderer props ---
|
|
25
27
|
var options = {
|
|
26
|
-
unit:
|
|
28
|
+
unit: "in",
|
|
27
29
|
enable3D: true
|
|
28
30
|
};
|
|
29
31
|
var onInternalEvent = /*#__PURE__*/function () {
|
|
@@ -32,7 +34,7 @@ var onInternalEvent = /*#__PURE__*/function () {
|
|
|
32
34
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
33
35
|
while (1) switch (_context.prev = _context.next) {
|
|
34
36
|
case 0:
|
|
35
|
-
console.log(
|
|
37
|
+
console.log("EVENT:", evt.type, evt.value);
|
|
36
38
|
_t = evt.type;
|
|
37
39
|
_context.next = _t === INTERNAL_EVENT_ITEMS_CATALOG ? 1 : 3;
|
|
38
40
|
break;
|
|
@@ -51,7 +53,7 @@ var onInternalEvent = /*#__PURE__*/function () {
|
|
|
51
53
|
return _ref.apply(this, arguments);
|
|
52
54
|
};
|
|
53
55
|
}();
|
|
54
|
-
document.getElementById(
|
|
56
|
+
document.getElementById("app").style.display = "block";
|
|
55
57
|
function WorkSpace(props) {
|
|
56
58
|
var _useState = useState(null),
|
|
57
59
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -213,6 +215,15 @@ function WorkSpace(props) {
|
|
|
213
215
|
setExternalEvent(evt);
|
|
214
216
|
}
|
|
215
217
|
}, "Add B12 Cabinet"), /*#__PURE__*/React.createElement(Button, {
|
|
218
|
+
actionType: "danger",
|
|
219
|
+
onClick: function onClick() {
|
|
220
|
+
var evt = {
|
|
221
|
+
type: EXTERNAL_EVENT_ADD_ITEM,
|
|
222
|
+
payload: cabinetW0940Payload
|
|
223
|
+
};
|
|
224
|
+
setExternalEvent(evt);
|
|
225
|
+
}
|
|
226
|
+
}, "Add W0930 Cabinet"), /*#__PURE__*/React.createElement(Button, {
|
|
216
227
|
actionType: "danger",
|
|
217
228
|
onClick: function onClick() {
|
|
218
229
|
var evt = {
|
|
@@ -231,91 +242,91 @@ function WorkSpace(props) {
|
|
|
231
242
|
var evt = {
|
|
232
243
|
type: EXTERNAL_EVENT_ADD_ROOM_SHAPE,
|
|
233
244
|
payload: {
|
|
234
|
-
roomShapeType:
|
|
245
|
+
roomShapeType: "rectangle",
|
|
235
246
|
width: 250,
|
|
236
247
|
height: 100,
|
|
237
248
|
doorStyle: {
|
|
238
249
|
id: 36,
|
|
239
|
-
type:
|
|
240
|
-
name:
|
|
241
|
-
thumbnail:
|
|
242
|
-
texture:
|
|
243
|
-
color:
|
|
250
|
+
type: "door",
|
|
251
|
+
name: "Brilliant White Shaker",
|
|
252
|
+
thumbnail: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/thumbnail/Brilliant%20White%20Shaker%20-%20RTA.jpg",
|
|
253
|
+
texture: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
254
|
+
color: "#ffffff",
|
|
244
255
|
glossness: 1,
|
|
245
256
|
door_style_id: 42,
|
|
246
257
|
brightness: 1,
|
|
247
|
-
sku:
|
|
248
|
-
color_family:
|
|
249
|
-
color_sku_alias:
|
|
250
|
-
door_style_name:
|
|
251
|
-
install:
|
|
258
|
+
sku: "SW",
|
|
259
|
+
color_family: ",10,",
|
|
260
|
+
color_sku_alias: "SW",
|
|
261
|
+
door_style_name: "Shaker",
|
|
262
|
+
install: "",
|
|
252
263
|
doorStyles: {
|
|
253
|
-
base:
|
|
254
|
-
counttop:
|
|
255
|
-
interior:
|
|
256
|
-
base_door_1:
|
|
257
|
-
base_fixed_drawer_door_1:
|
|
258
|
-
base_drawer_1:
|
|
259
|
-
base_drawer_door_1:
|
|
260
|
-
door_handle_1:
|
|
261
|
-
fixed_drawer_door_handle_1:
|
|
262
|
-
drawer_door_handle_1:
|
|
263
|
-
base_door_2:
|
|
264
|
-
base_fixed_drawer_door_2:
|
|
265
|
-
base_drawer_2:
|
|
266
|
-
base_drawer_door_2:
|
|
267
|
-
door_handle_2:
|
|
268
|
-
fixed_drawer_door_handle_2:
|
|
269
|
-
drawer_door_handle_2:
|
|
270
|
-
base_door_3:
|
|
271
|
-
base_fixed_drawer_door_3:
|
|
272
|
-
base_drawer_3:
|
|
273
|
-
base_drawer_door_3:
|
|
274
|
-
door_handle_3:
|
|
275
|
-
fixed_drawer_door_handle_3:
|
|
276
|
-
drawer_door_handle_3:
|
|
277
|
-
base_door_4:
|
|
278
|
-
base_fixed_drawer_door_4:
|
|
279
|
-
base_drawer_4:
|
|
280
|
-
base_drawer_door_4:
|
|
281
|
-
door_handle_4:
|
|
282
|
-
fixed_drawer_door_handle_4:
|
|
283
|
-
drawer_door_handle_4:
|
|
284
|
-
base_door_5:
|
|
285
|
-
base_fixed_drawer_door_5:
|
|
286
|
-
base_drawer_5:
|
|
287
|
-
base_drawer_door_5:
|
|
288
|
-
door_handle_5:
|
|
289
|
-
fixed_drawer_door_handle_5:
|
|
290
|
-
drawer_door_handle_5:
|
|
291
|
-
base_door_6:
|
|
292
|
-
base_fixed_drawer_door_6:
|
|
293
|
-
base_drawer_6:
|
|
294
|
-
base_drawer_door_6:
|
|
295
|
-
door_handle_6:
|
|
296
|
-
fixed_drawer_door_handle_6:
|
|
297
|
-
drawer_door_handle_6:
|
|
298
|
-
base_door_7:
|
|
299
|
-
base_fixed_drawer_door_7:
|
|
300
|
-
base_drawer_7:
|
|
301
|
-
base_drawer_door_7:
|
|
302
|
-
door_handle_7:
|
|
303
|
-
fixed_drawer_door_handle_7:
|
|
304
|
-
drawer_door_handle_7:
|
|
305
|
-
base_door_8:
|
|
306
|
-
base_fixed_drawer_door_8:
|
|
307
|
-
base_drawer_8:
|
|
308
|
-
base_drawer_door_8:
|
|
309
|
-
door_handle_8:
|
|
310
|
-
fixed_drawer_door_handle_8:
|
|
311
|
-
drawer_door_handle_8:
|
|
312
|
-
base_door_9:
|
|
313
|
-
base_fixed_drawer_door_9:
|
|
314
|
-
base_drawer_9:
|
|
315
|
-
base_drawer_door_9:
|
|
316
|
-
door_handle_9:
|
|
317
|
-
fixed_drawer_door_handle_9:
|
|
318
|
-
drawer_door_handle_9:
|
|
264
|
+
base: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
265
|
+
counttop: "https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg",
|
|
266
|
+
interior: "http://127.0.0.1:4002/uploads/assets/default/maple.jpg",
|
|
267
|
+
base_door_1: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
268
|
+
base_fixed_drawer_door_1: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
269
|
+
base_drawer_1: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
270
|
+
base_drawer_door_1: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
271
|
+
door_handle_1: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
272
|
+
fixed_drawer_door_handle_1: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
273
|
+
drawer_door_handle_1: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
274
|
+
base_door_2: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
275
|
+
base_fixed_drawer_door_2: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
276
|
+
base_drawer_2: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
277
|
+
base_drawer_door_2: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
278
|
+
door_handle_2: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
279
|
+
fixed_drawer_door_handle_2: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
280
|
+
drawer_door_handle_2: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
281
|
+
base_door_3: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
282
|
+
base_fixed_drawer_door_3: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
283
|
+
base_drawer_3: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
284
|
+
base_drawer_door_3: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
285
|
+
door_handle_3: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
286
|
+
fixed_drawer_door_handle_3: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
287
|
+
drawer_door_handle_3: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
288
|
+
base_door_4: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
289
|
+
base_fixed_drawer_door_4: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
290
|
+
base_drawer_4: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
291
|
+
base_drawer_door_4: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
292
|
+
door_handle_4: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
293
|
+
fixed_drawer_door_handle_4: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
294
|
+
drawer_door_handle_4: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
295
|
+
base_door_5: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
296
|
+
base_fixed_drawer_door_5: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
297
|
+
base_drawer_5: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
298
|
+
base_drawer_door_5: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
299
|
+
door_handle_5: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
300
|
+
fixed_drawer_door_handle_5: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
301
|
+
drawer_door_handle_5: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
302
|
+
base_door_6: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
303
|
+
base_fixed_drawer_door_6: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
304
|
+
base_drawer_6: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
305
|
+
base_drawer_door_6: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
306
|
+
door_handle_6: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
307
|
+
fixed_drawer_door_handle_6: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
308
|
+
drawer_door_handle_6: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
309
|
+
base_door_7: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
310
|
+
base_fixed_drawer_door_7: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
311
|
+
base_drawer_7: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
312
|
+
base_drawer_door_7: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
313
|
+
door_handle_7: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
314
|
+
fixed_drawer_door_handle_7: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
315
|
+
drawer_door_handle_7: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
316
|
+
base_door_8: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
317
|
+
base_fixed_drawer_door_8: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
318
|
+
base_drawer_8: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
319
|
+
base_drawer_door_8: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
320
|
+
door_handle_8: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
321
|
+
fixed_drawer_door_handle_8: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
322
|
+
drawer_door_handle_8: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
323
|
+
base_door_9: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
324
|
+
base_fixed_drawer_door_9: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
325
|
+
base_drawer_9: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
326
|
+
base_drawer_door_9: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
327
|
+
door_handle_9: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
328
|
+
fixed_drawer_door_handle_9: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
329
|
+
drawer_door_handle_9: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg"
|
|
319
330
|
},
|
|
320
331
|
installation_types: [125, 124]
|
|
321
332
|
}
|
|
@@ -474,7 +485,7 @@ function WorkSpace(props) {
|
|
|
474
485
|
// cm
|
|
475
486
|
_length: 10,
|
|
476
487
|
// inch
|
|
477
|
-
_unit:
|
|
488
|
+
_unit: "in"
|
|
478
489
|
})
|
|
479
490
|
}
|
|
480
491
|
};
|
|
@@ -487,7 +498,7 @@ function WorkSpace(props) {
|
|
|
487
498
|
type: EXTERNAL_EVENT_DUPLICATE_ELEMENT,
|
|
488
499
|
payload: {
|
|
489
500
|
elementPrototype: ELEMENT_ITEM,
|
|
490
|
-
elementId:
|
|
501
|
+
elementId: "" // id of current operating element
|
|
491
502
|
}
|
|
492
503
|
};
|
|
493
504
|
setExternalEvent(evt);
|
|
@@ -499,7 +510,7 @@ function WorkSpace(props) {
|
|
|
499
510
|
type: EXTERNAL_EVENT_DELETE_ELEMENT,
|
|
500
511
|
payload: {
|
|
501
512
|
elementPrototype: ELEMENT_ITEM,
|
|
502
|
-
elementId:
|
|
513
|
+
elementId: "" // id of current operating element
|
|
503
514
|
}
|
|
504
515
|
};
|
|
505
516
|
setExternalEvent(evt);
|
|
@@ -560,7 +571,7 @@ function WorkSpace(props) {
|
|
|
560
571
|
type: EXTERNAL_EVENT_SET_FINISHING,
|
|
561
572
|
payload: {
|
|
562
573
|
category: FINISHING_TYPE.COUNTER_TOP,
|
|
563
|
-
texture:
|
|
574
|
+
texture: "https://media.test.diydesignspace.com/uploads/CountTop/202111302746_7/texture/Arabescato_texture.jpg"
|
|
564
575
|
}
|
|
565
576
|
};
|
|
566
577
|
setExternalEvent(evt);
|
|
@@ -572,7 +583,7 @@ function WorkSpace(props) {
|
|
|
572
583
|
type: EXTERNAL_EVENT_SET_FINISHING,
|
|
573
584
|
payload: {
|
|
574
585
|
category: FINISHING_TYPE.BACKSPLASH,
|
|
575
|
-
texture:
|
|
586
|
+
texture: "https://media.test.diydesignspace.com/uploads/CountTop/202305225249_14/texture/Unique_Marquina_texture.jpg"
|
|
576
587
|
}
|
|
577
588
|
};
|
|
578
589
|
setExternalEvent(evt);
|
|
@@ -584,7 +595,7 @@ function WorkSpace(props) {
|
|
|
584
595
|
type: EXTERNAL_EVENT_SET_FINISHING,
|
|
585
596
|
payload: {
|
|
586
597
|
category: FINISHING_TYPE.FLOOR_STYLE,
|
|
587
|
-
texture:
|
|
598
|
+
texture: "https://media.test.diydesignspace.com/uploads/CountTop/202203163338_3/texture/oak-chestnut.webp"
|
|
588
599
|
}
|
|
589
600
|
};
|
|
590
601
|
setExternalEvent(evt);
|
|
@@ -596,7 +607,7 @@ function WorkSpace(props) {
|
|
|
596
607
|
type: EXTERNAL_EVENT_SET_FINISHING,
|
|
597
608
|
payload: {
|
|
598
609
|
category: FINISHING_TYPE.WALL_COLOR,
|
|
599
|
-
color:
|
|
610
|
+
color: "#bab863"
|
|
600
611
|
}
|
|
601
612
|
};
|
|
602
613
|
setExternalEvent(evt);
|
|
@@ -608,7 +619,7 @@ function WorkSpace(props) {
|
|
|
608
619
|
type: EXTERNAL_EVENT_SET_FINISHING,
|
|
609
620
|
payload: {
|
|
610
621
|
category: FINISHING_TYPE.DOOR_HANDLE,
|
|
611
|
-
gltf:
|
|
622
|
+
gltf: "https://media.test.diydesignspace.com/uploads/DoorHandle/202107294150_29/gltf/Handle1.gltf"
|
|
612
623
|
}
|
|
613
624
|
};
|
|
614
625
|
setExternalEvent(evt);
|
|
@@ -635,7 +646,7 @@ function WorkSpace(props) {
|
|
|
635
646
|
// cm
|
|
636
647
|
_length: 27,
|
|
637
648
|
// inch
|
|
638
|
-
_unit:
|
|
649
|
+
_unit: "in"
|
|
639
650
|
})
|
|
640
651
|
}
|
|
641
652
|
};
|
|
@@ -659,7 +670,90 @@ function WorkSpace(props) {
|
|
|
659
670
|
};
|
|
660
671
|
setExternalEvent(evt);
|
|
661
672
|
}
|
|
662
|
-
}, "Add room shape from width, height")
|
|
673
|
+
}, "Add room shape from width, height"), /*#__PURE__*/React.createElement(Button, {
|
|
674
|
+
actionType: "danger",
|
|
675
|
+
onClick: function onClick() {
|
|
676
|
+
var _tl = Math.floor(Math.random() * 50);
|
|
677
|
+
var tl = convert(_tl).from("in").to("cm");
|
|
678
|
+
var evt = {
|
|
679
|
+
type: EXTERNAL_EVENT_UPDATE_PROPERTY,
|
|
680
|
+
payload: {
|
|
681
|
+
propertyName: PROP_RESIZE_WIDTH,
|
|
682
|
+
value: new Map({
|
|
683
|
+
_length: _tl,
|
|
684
|
+
// inch
|
|
685
|
+
_unit: "in",
|
|
686
|
+
length: tl // cm
|
|
687
|
+
})
|
|
688
|
+
}
|
|
689
|
+
};
|
|
690
|
+
setExternalEvent(evt);
|
|
691
|
+
}
|
|
692
|
+
}, "random width"), /*#__PURE__*/React.createElement(Button, {
|
|
693
|
+
actionType: "primary",
|
|
694
|
+
onClick: function onClick() {
|
|
695
|
+
var evt = {
|
|
696
|
+
type: EXTERNAL_EVENT_ROTATE_PAN,
|
|
697
|
+
payload: {
|
|
698
|
+
rotateType: RIGHT
|
|
699
|
+
}
|
|
700
|
+
};
|
|
701
|
+
setExternalEvent(evt);
|
|
702
|
+
}
|
|
703
|
+
}, /*#__PURE__*/React.createElement("img", {
|
|
704
|
+
src: "/assets/img/svg/bottombar/spin-right.svg"
|
|
705
|
+
})), /*#__PURE__*/React.createElement(Button, {
|
|
706
|
+
actionType: "primary",
|
|
707
|
+
onClick: function onClick() {
|
|
708
|
+
var evt = {
|
|
709
|
+
type: EXTERNAL_EVENT_ROTATE_PAN,
|
|
710
|
+
payload: {
|
|
711
|
+
rotateType: LEFT
|
|
712
|
+
}
|
|
713
|
+
};
|
|
714
|
+
setExternalEvent(evt);
|
|
715
|
+
}
|
|
716
|
+
}, /*#__PURE__*/React.createElement("img", {
|
|
717
|
+
src: "/assets/img/svg/bottombar/spin-left.svg"
|
|
718
|
+
})), /*#__PURE__*/React.createElement(Button, {
|
|
719
|
+
actionType: "primary",
|
|
720
|
+
onClick: function onClick() {
|
|
721
|
+
var evt = {
|
|
722
|
+
type: EXTERNAL_EVENT_ROTATE_PAN,
|
|
723
|
+
payload: {
|
|
724
|
+
rotateType: TOP
|
|
725
|
+
}
|
|
726
|
+
};
|
|
727
|
+
setExternalEvent(evt);
|
|
728
|
+
}
|
|
729
|
+
}, /*#__PURE__*/React.createElement("img", {
|
|
730
|
+
src: "/assets/img/svg/bottombar/spin-up.svg"
|
|
731
|
+
})), /*#__PURE__*/React.createElement(Button, {
|
|
732
|
+
actionType: "primary",
|
|
733
|
+
onClick: function onClick() {
|
|
734
|
+
var evt = {
|
|
735
|
+
type: EXTERNAL_EVENT_ROTATE_PAN,
|
|
736
|
+
payload: {
|
|
737
|
+
rotateType: BOTTOM
|
|
738
|
+
}
|
|
739
|
+
};
|
|
740
|
+
setExternalEvent(evt);
|
|
741
|
+
}
|
|
742
|
+
}, /*#__PURE__*/React.createElement("img", {
|
|
743
|
+
src: "/assets/img/svg/bottombar/spin-down.svg"
|
|
744
|
+
})), /*#__PURE__*/React.createElement(Button, {
|
|
745
|
+
actionType: "danger",
|
|
746
|
+
onClick: function onClick() {
|
|
747
|
+
var evt = {
|
|
748
|
+
type: EXTERNAL_EVENT_PROJECT_SETTING,
|
|
749
|
+
payload: {
|
|
750
|
+
option: PROJECT_SETTING_OPTION.CHANGE_MEASUREMENT_UNIT,
|
|
751
|
+
value: "cm"
|
|
752
|
+
}
|
|
753
|
+
};
|
|
754
|
+
setExternalEvent(evt);
|
|
755
|
+
}
|
|
756
|
+
}, "Setting-MeasurementUnit-'cm'")), /*#__PURE__*/React.createElement(LiteRenderer, {
|
|
663
757
|
width: props.width,
|
|
664
758
|
height: props.height,
|
|
665
759
|
configData: mockProps.configData,
|
|
@@ -677,7 +771,7 @@ function WorkSpace(props) {
|
|
|
677
771
|
// externalEvent: { id?, type, payload } | null,
|
|
678
772
|
// meta?: { filename?, lineno?, colno? }
|
|
679
773
|
// }
|
|
680
|
-
console.error(
|
|
774
|
+
console.error("TOOL ERROR:", payload);
|
|
681
775
|
}
|
|
682
776
|
}));
|
|
683
777
|
}
|
|
@@ -688,4 +782,4 @@ ReactDOM.render(/*#__PURE__*/React.createElement(ContainerDimensions, null, func
|
|
|
688
782
|
width: width,
|
|
689
783
|
height: height
|
|
690
784
|
});
|
|
691
|
-
}), document.getElementById(
|
|
785
|
+
}), document.getElementById("app") && document.getElementById("app"));
|
package/es/index.js
CHANGED
|
@@ -4,52 +4,142 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
|
4
4
|
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
5
5
|
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
6
6
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
7
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
8
|
+
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; }
|
|
9
|
+
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) { _defineProperty(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; }
|
|
7
10
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
8
11
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
9
12
|
import React from 'react';
|
|
10
13
|
import ReactDOM from 'react-dom';
|
|
11
14
|
import LiteRenderer from "./LiteRenderer";
|
|
15
|
+
import { createRoot } from 'react-dom/client';
|
|
12
16
|
export function renderKitchenSimulator(container) {
|
|
13
17
|
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
// Internal wrapper that exposes a state setter
|
|
18
|
+
var apiRef = null;
|
|
19
|
+
var idSeq = 0;
|
|
17
20
|
var Wrapper = /*#__PURE__*/function (_React$Component) {
|
|
18
21
|
function Wrapper(p) {
|
|
19
22
|
var _this;
|
|
20
23
|
_classCallCheck(this, Wrapper);
|
|
21
24
|
_this = _callSuper(this, Wrapper, [p]);
|
|
25
|
+
_defineProperty(_this, "onExternalEventProcessed", function (eventId) {
|
|
26
|
+
// Resolve only if it matches the current event in flight
|
|
27
|
+
if (eventId === _this._currentId) {
|
|
28
|
+
try {
|
|
29
|
+
var _this$_currentResolve, _this2;
|
|
30
|
+
(_this$_currentResolve = (_this2 = _this)._currentResolve) === null || _this$_currentResolve === void 0 || _this$_currentResolve.call(_this2);
|
|
31
|
+
} finally {
|
|
32
|
+
_this._currentResolve = null;
|
|
33
|
+
_this._currentId = null;
|
|
34
|
+
_this.processing = false;
|
|
35
|
+
_this.processNext();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
22
39
|
_this.state = {
|
|
23
|
-
externalEvent:
|
|
40
|
+
externalEvent: null
|
|
41
|
+
};
|
|
42
|
+
_this.queue = [];
|
|
43
|
+
_this.processing = false;
|
|
44
|
+
_this._currentResolve = null;
|
|
45
|
+
_this._currentId = null;
|
|
46
|
+
apiRef = {
|
|
47
|
+
enqueueExternalEvent: function enqueueExternalEvent(ev) {
|
|
48
|
+
return _this.enqueue(ev);
|
|
49
|
+
}
|
|
24
50
|
};
|
|
25
|
-
setExternalEventFn = _this.setExternalEvent.bind(_this);
|
|
26
51
|
return _this;
|
|
27
52
|
}
|
|
28
53
|
_inherits(Wrapper, _React$Component);
|
|
29
54
|
return _createClass(Wrapper, [{
|
|
30
|
-
key: "
|
|
31
|
-
value: function
|
|
55
|
+
key: "enqueue",
|
|
56
|
+
value: function enqueue(ev) {
|
|
57
|
+
var _ev$waitForAckMs,
|
|
58
|
+
_this3 = this;
|
|
59
|
+
if (!ev) return Promise.resolve();
|
|
60
|
+
var id = ++idSeq;
|
|
61
|
+
var _resolve;
|
|
62
|
+
var promise = new Promise(function (res) {
|
|
63
|
+
return _resolve = res;
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// failsafe: resolve after X ms no matter what (avoid host deadlock)
|
|
67
|
+
var timeoutMs = (_ev$waitForAckMs = ev === null || ev === void 0 ? void 0 : ev.waitForAckMs) !== null && _ev$waitForAckMs !== void 0 ? _ev$waitForAckMs : 15000;
|
|
68
|
+
var t = setTimeout(function () {
|
|
69
|
+
if (_this3._currentId === id) {
|
|
70
|
+
console.warn('External event ack timeout', id, ev);
|
|
71
|
+
_this3.onExternalEventProcessed(id); // force-drain
|
|
72
|
+
}
|
|
73
|
+
}, timeoutMs);
|
|
74
|
+
this.queue.push({
|
|
75
|
+
id: id,
|
|
76
|
+
ev: ev,
|
|
77
|
+
resolve: function resolve() {
|
|
78
|
+
clearTimeout(t);
|
|
79
|
+
_resolve();
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
if (!this.processing) this.processNext();
|
|
83
|
+
return promise;
|
|
84
|
+
}
|
|
85
|
+
}, {
|
|
86
|
+
key: "processNext",
|
|
87
|
+
value: function processNext() {
|
|
88
|
+
var _this4 = this;
|
|
89
|
+
var next = this.queue.shift();
|
|
90
|
+
if (!next) {
|
|
91
|
+
this.processing = false;
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
this.processing = true;
|
|
95
|
+
|
|
96
|
+
// Tool assigns __eventId (do NOT rely on host for this)
|
|
97
|
+
var payload = _objectSpread(_objectSpread({}, next.ev), {}, {
|
|
98
|
+
__eventId: next.id
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
// Edge trigger: clear then set so downstream sees prop change reliably
|
|
32
102
|
this.setState({
|
|
33
|
-
externalEvent:
|
|
103
|
+
externalEvent: null
|
|
104
|
+
}, function () {
|
|
105
|
+
_this4._currentResolve = next.resolve;
|
|
106
|
+
_this4._currentId = next.id;
|
|
107
|
+
_this4.setState({
|
|
108
|
+
externalEvent: payload
|
|
109
|
+
});
|
|
34
110
|
});
|
|
35
111
|
}
|
|
36
112
|
}, {
|
|
37
113
|
key: "render",
|
|
38
114
|
value: function render() {
|
|
39
115
|
return /*#__PURE__*/React.createElement(LiteRenderer, _extends({}, this.props, {
|
|
40
|
-
externalEvent: this.state.externalEvent
|
|
116
|
+
externalEvent: this.state.externalEvent,
|
|
117
|
+
onExternalEventProcessed: this.onExternalEventProcessed
|
|
41
118
|
}));
|
|
42
119
|
}
|
|
43
120
|
}]);
|
|
44
|
-
}(React.Component);
|
|
45
|
-
|
|
121
|
+
}(React.Component);
|
|
122
|
+
var ROOT_KEY = '__kitchenSimulatorRoot__';
|
|
123
|
+
var root = container[ROOT_KEY];
|
|
124
|
+
if (!root) {
|
|
125
|
+
root = createRoot(container);
|
|
126
|
+
container[ROOT_KEY] = root;
|
|
127
|
+
}
|
|
128
|
+
root.render(/*#__PURE__*/React.createElement(Wrapper, props), container);
|
|
46
129
|
return {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
130
|
+
// ✅ Promise-based API (use this from host)
|
|
131
|
+
enqueueExternalEvent: function enqueueExternalEvent(ev) {
|
|
132
|
+
var _apiRef$enqueueExtern, _apiRef, _apiRef$enqueueExtern2;
|
|
133
|
+
return (_apiRef$enqueueExtern = (_apiRef = apiRef) === null || _apiRef === void 0 || (_apiRef$enqueueExtern2 = _apiRef.enqueueExternalEvent) === null || _apiRef$enqueueExtern2 === void 0 ? void 0 : _apiRef$enqueueExtern2.call(_apiRef, ev)) !== null && _apiRef$enqueueExtern !== void 0 ? _apiRef$enqueueExtern : Promise.resolve();
|
|
134
|
+
},
|
|
135
|
+
// old API still works, but no await possible
|
|
136
|
+
updateExternalEvent: function updateExternalEvent(ev) {
|
|
137
|
+
var _apiRef2, _apiRef2$enqueueExter;
|
|
138
|
+
(_apiRef2 = apiRef) === null || _apiRef2 === void 0 || (_apiRef2$enqueueExter = _apiRef2.enqueueExternalEvent) === null || _apiRef2$enqueueExter === void 0 || _apiRef2$enqueueExter.call(_apiRef2, ev);
|
|
50
139
|
},
|
|
51
140
|
unmount: function unmount() {
|
|
52
141
|
ReactDOM.unmountComponentAtNode(container);
|
|
142
|
+
apiRef = null;
|
|
53
143
|
}
|
|
54
144
|
};
|
|
55
145
|
}
|
|
@@ -13,7 +13,7 @@ export default function (state, action) {
|
|
|
13
13
|
state = state.merge({
|
|
14
14
|
sceneHistory: history.historyPush(state.sceneHistory, state.scene)
|
|
15
15
|
});
|
|
16
|
-
return Line.beginDrawingLine(state, action.layerID, action.x, action.y).updatedState;
|
|
16
|
+
return Line.beginDrawingLine(state, action.layerID, action.x, action.y, action.onInternalEvent).updatedState;
|
|
17
17
|
case UPDATE_DRAWING_LINE:
|
|
18
18
|
return Line.updateDrawingLine(state, action.x, action.y, action.relatedLines).updatedState;
|
|
19
19
|
case STOP_DRAWING_LINE:
|