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/lib/devLiteRenderer.js
CHANGED
|
@@ -11,6 +11,7 @@ var _reactContainerDimensions = _interopRequireDefault(require("react-container-
|
|
|
11
11
|
var _projectItemsCatalog = _interopRequireDefault(require("./mocks/projectItemsCatalog.json"));
|
|
12
12
|
var _mockProps = _interopRequireDefault(require("./mocks/mockProps.json"));
|
|
13
13
|
var _cabinetPayload = _interopRequireDefault(require("./mocks/cabinetPayload2.json"));
|
|
14
|
+
var _cabinetPayload2 = _interopRequireDefault(require("./mocks/cabinetPayload.json"));
|
|
14
15
|
var _appliancePayload = _interopRequireDefault(require("./mocks/appliancePayload.json"));
|
|
15
16
|
var _doorStylePayload = _interopRequireDefault(require("./mocks/doorStylePayload2.json"));
|
|
16
17
|
var _roomShapePayload = _interopRequireDefault(require("./mocks/roomShapePayload.json"));
|
|
@@ -24,10 +25,11 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
|
24
25
|
var _LiteRenderer = _interopRequireDefault(require("./LiteRenderer"));
|
|
25
26
|
var _antd = require("antd");
|
|
26
27
|
var _constants = require("./constants");
|
|
28
|
+
var _convertUnitsLite = require("./utils/convert-units-lite");
|
|
27
29
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
28
30
|
// --- renderer props ---
|
|
29
31
|
var options = {
|
|
30
|
-
unit:
|
|
32
|
+
unit: "in",
|
|
31
33
|
enable3D: true
|
|
32
34
|
};
|
|
33
35
|
var onInternalEvent = /*#__PURE__*/function () {
|
|
@@ -36,7 +38,7 @@ var onInternalEvent = /*#__PURE__*/function () {
|
|
|
36
38
|
return _regenerator["default"].wrap(function (_context) {
|
|
37
39
|
while (1) switch (_context.prev = _context.next) {
|
|
38
40
|
case 0:
|
|
39
|
-
console.log(
|
|
41
|
+
console.log("EVENT:", evt.type, evt.value);
|
|
40
42
|
_t = evt.type;
|
|
41
43
|
_context.next = _t === _constants.INTERNAL_EVENT_ITEMS_CATALOG ? 1 : 3;
|
|
42
44
|
break;
|
|
@@ -55,7 +57,7 @@ var onInternalEvent = /*#__PURE__*/function () {
|
|
|
55
57
|
return _ref.apply(this, arguments);
|
|
56
58
|
};
|
|
57
59
|
}();
|
|
58
|
-
document.getElementById(
|
|
60
|
+
document.getElementById("app").style.display = "block";
|
|
59
61
|
function WorkSpace(props) {
|
|
60
62
|
var _useState = (0, _react.useState)(null),
|
|
61
63
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
@@ -217,6 +219,15 @@ function WorkSpace(props) {
|
|
|
217
219
|
setExternalEvent(evt);
|
|
218
220
|
}
|
|
219
221
|
}, "Add B12 Cabinet"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
222
|
+
actionType: "danger",
|
|
223
|
+
onClick: function onClick() {
|
|
224
|
+
var evt = {
|
|
225
|
+
type: _constants.EXTERNAL_EVENT_ADD_ITEM,
|
|
226
|
+
payload: _cabinetPayload2["default"]
|
|
227
|
+
};
|
|
228
|
+
setExternalEvent(evt);
|
|
229
|
+
}
|
|
230
|
+
}, "Add W0930 Cabinet"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
220
231
|
actionType: "danger",
|
|
221
232
|
onClick: function onClick() {
|
|
222
233
|
var evt = {
|
|
@@ -235,91 +246,91 @@ function WorkSpace(props) {
|
|
|
235
246
|
var evt = {
|
|
236
247
|
type: _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE,
|
|
237
248
|
payload: {
|
|
238
|
-
roomShapeType:
|
|
249
|
+
roomShapeType: "rectangle",
|
|
239
250
|
width: 250,
|
|
240
251
|
height: 100,
|
|
241
252
|
doorStyle: {
|
|
242
253
|
id: 36,
|
|
243
|
-
type:
|
|
244
|
-
name:
|
|
245
|
-
thumbnail:
|
|
246
|
-
texture:
|
|
247
|
-
color:
|
|
254
|
+
type: "door",
|
|
255
|
+
name: "Brilliant White Shaker",
|
|
256
|
+
thumbnail: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/thumbnail/Brilliant%20White%20Shaker%20-%20RTA.jpg",
|
|
257
|
+
texture: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
258
|
+
color: "#ffffff",
|
|
248
259
|
glossness: 1,
|
|
249
260
|
door_style_id: 42,
|
|
250
261
|
brightness: 1,
|
|
251
|
-
sku:
|
|
252
|
-
color_family:
|
|
253
|
-
color_sku_alias:
|
|
254
|
-
door_style_name:
|
|
255
|
-
install:
|
|
262
|
+
sku: "SW",
|
|
263
|
+
color_family: ",10,",
|
|
264
|
+
color_sku_alias: "SW",
|
|
265
|
+
door_style_name: "Shaker",
|
|
266
|
+
install: "",
|
|
256
267
|
doorStyles: {
|
|
257
|
-
base:
|
|
258
|
-
counttop:
|
|
259
|
-
interior:
|
|
260
|
-
base_door_1:
|
|
261
|
-
base_fixed_drawer_door_1:
|
|
262
|
-
base_drawer_1:
|
|
263
|
-
base_drawer_door_1:
|
|
264
|
-
door_handle_1:
|
|
265
|
-
fixed_drawer_door_handle_1:
|
|
266
|
-
drawer_door_handle_1:
|
|
267
|
-
base_door_2:
|
|
268
|
-
base_fixed_drawer_door_2:
|
|
269
|
-
base_drawer_2:
|
|
270
|
-
base_drawer_door_2:
|
|
271
|
-
door_handle_2:
|
|
272
|
-
fixed_drawer_door_handle_2:
|
|
273
|
-
drawer_door_handle_2:
|
|
274
|
-
base_door_3:
|
|
275
|
-
base_fixed_drawer_door_3:
|
|
276
|
-
base_drawer_3:
|
|
277
|
-
base_drawer_door_3:
|
|
278
|
-
door_handle_3:
|
|
279
|
-
fixed_drawer_door_handle_3:
|
|
280
|
-
drawer_door_handle_3:
|
|
281
|
-
base_door_4:
|
|
282
|
-
base_fixed_drawer_door_4:
|
|
283
|
-
base_drawer_4:
|
|
284
|
-
base_drawer_door_4:
|
|
285
|
-
door_handle_4:
|
|
286
|
-
fixed_drawer_door_handle_4:
|
|
287
|
-
drawer_door_handle_4:
|
|
288
|
-
base_door_5:
|
|
289
|
-
base_fixed_drawer_door_5:
|
|
290
|
-
base_drawer_5:
|
|
291
|
-
base_drawer_door_5:
|
|
292
|
-
door_handle_5:
|
|
293
|
-
fixed_drawer_door_handle_5:
|
|
294
|
-
drawer_door_handle_5:
|
|
295
|
-
base_door_6:
|
|
296
|
-
base_fixed_drawer_door_6:
|
|
297
|
-
base_drawer_6:
|
|
298
|
-
base_drawer_door_6:
|
|
299
|
-
door_handle_6:
|
|
300
|
-
fixed_drawer_door_handle_6:
|
|
301
|
-
drawer_door_handle_6:
|
|
302
|
-
base_door_7:
|
|
303
|
-
base_fixed_drawer_door_7:
|
|
304
|
-
base_drawer_7:
|
|
305
|
-
base_drawer_door_7:
|
|
306
|
-
door_handle_7:
|
|
307
|
-
fixed_drawer_door_handle_7:
|
|
308
|
-
drawer_door_handle_7:
|
|
309
|
-
base_door_8:
|
|
310
|
-
base_fixed_drawer_door_8:
|
|
311
|
-
base_drawer_8:
|
|
312
|
-
base_drawer_door_8:
|
|
313
|
-
door_handle_8:
|
|
314
|
-
fixed_drawer_door_handle_8:
|
|
315
|
-
drawer_door_handle_8:
|
|
316
|
-
base_door_9:
|
|
317
|
-
base_fixed_drawer_door_9:
|
|
318
|
-
base_drawer_9:
|
|
319
|
-
base_drawer_door_9:
|
|
320
|
-
door_handle_9:
|
|
321
|
-
fixed_drawer_door_handle_9:
|
|
322
|
-
drawer_door_handle_9:
|
|
268
|
+
base: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
269
|
+
counttop: "https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg",
|
|
270
|
+
interior: "http://127.0.0.1:4002/uploads/assets/default/maple.jpg",
|
|
271
|
+
base_door_1: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
272
|
+
base_fixed_drawer_door_1: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
273
|
+
base_drawer_1: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
274
|
+
base_drawer_door_1: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
275
|
+
door_handle_1: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
276
|
+
fixed_drawer_door_handle_1: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
277
|
+
drawer_door_handle_1: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
278
|
+
base_door_2: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
279
|
+
base_fixed_drawer_door_2: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
280
|
+
base_drawer_2: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
281
|
+
base_drawer_door_2: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
282
|
+
door_handle_2: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
283
|
+
fixed_drawer_door_handle_2: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
284
|
+
drawer_door_handle_2: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
285
|
+
base_door_3: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
286
|
+
base_fixed_drawer_door_3: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
287
|
+
base_drawer_3: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
288
|
+
base_drawer_door_3: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
289
|
+
door_handle_3: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
290
|
+
fixed_drawer_door_handle_3: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
291
|
+
drawer_door_handle_3: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
292
|
+
base_door_4: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
293
|
+
base_fixed_drawer_door_4: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
294
|
+
base_drawer_4: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
295
|
+
base_drawer_door_4: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
296
|
+
door_handle_4: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
297
|
+
fixed_drawer_door_handle_4: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
298
|
+
drawer_door_handle_4: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
299
|
+
base_door_5: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
300
|
+
base_fixed_drawer_door_5: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
301
|
+
base_drawer_5: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
302
|
+
base_drawer_door_5: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
303
|
+
door_handle_5: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
304
|
+
fixed_drawer_door_handle_5: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
305
|
+
drawer_door_handle_5: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
306
|
+
base_door_6: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
307
|
+
base_fixed_drawer_door_6: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
308
|
+
base_drawer_6: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
309
|
+
base_drawer_door_6: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
310
|
+
door_handle_6: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
311
|
+
fixed_drawer_door_handle_6: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
312
|
+
drawer_door_handle_6: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
313
|
+
base_door_7: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
314
|
+
base_fixed_drawer_door_7: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
315
|
+
base_drawer_7: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
316
|
+
base_drawer_door_7: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
317
|
+
door_handle_7: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
318
|
+
fixed_drawer_door_handle_7: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
319
|
+
drawer_door_handle_7: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
320
|
+
base_door_8: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
321
|
+
base_fixed_drawer_door_8: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
322
|
+
base_drawer_8: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
323
|
+
base_drawer_door_8: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
324
|
+
door_handle_8: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
325
|
+
fixed_drawer_door_handle_8: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
326
|
+
drawer_door_handle_8: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
327
|
+
base_door_9: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
328
|
+
base_fixed_drawer_door_9: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
329
|
+
base_drawer_9: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
330
|
+
base_drawer_door_9: "https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg",
|
|
331
|
+
door_handle_9: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
332
|
+
fixed_drawer_door_handle_9: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg",
|
|
333
|
+
drawer_door_handle_9: "http://127.0.0.1:4002/uploads/assets/default/steel.jpg"
|
|
323
334
|
},
|
|
324
335
|
installation_types: [125, 124]
|
|
325
336
|
}
|
|
@@ -478,7 +489,7 @@ function WorkSpace(props) {
|
|
|
478
489
|
// cm
|
|
479
490
|
_length: 10,
|
|
480
491
|
// inch
|
|
481
|
-
_unit:
|
|
492
|
+
_unit: "in"
|
|
482
493
|
})
|
|
483
494
|
}
|
|
484
495
|
};
|
|
@@ -491,7 +502,7 @@ function WorkSpace(props) {
|
|
|
491
502
|
type: _constants.EXTERNAL_EVENT_DUPLICATE_ELEMENT,
|
|
492
503
|
payload: {
|
|
493
504
|
elementPrototype: _constants.ELEMENT_ITEM,
|
|
494
|
-
elementId:
|
|
505
|
+
elementId: "" // id of current operating element
|
|
495
506
|
}
|
|
496
507
|
};
|
|
497
508
|
setExternalEvent(evt);
|
|
@@ -503,7 +514,7 @@ function WorkSpace(props) {
|
|
|
503
514
|
type: _constants.EXTERNAL_EVENT_DELETE_ELEMENT,
|
|
504
515
|
payload: {
|
|
505
516
|
elementPrototype: _constants.ELEMENT_ITEM,
|
|
506
|
-
elementId:
|
|
517
|
+
elementId: "" // id of current operating element
|
|
507
518
|
}
|
|
508
519
|
};
|
|
509
520
|
setExternalEvent(evt);
|
|
@@ -564,7 +575,7 @@ function WorkSpace(props) {
|
|
|
564
575
|
type: _constants.EXTERNAL_EVENT_SET_FINISHING,
|
|
565
576
|
payload: {
|
|
566
577
|
category: _constants.FINISHING_TYPE.COUNTER_TOP,
|
|
567
|
-
texture:
|
|
578
|
+
texture: "https://media.test.diydesignspace.com/uploads/CountTop/202111302746_7/texture/Arabescato_texture.jpg"
|
|
568
579
|
}
|
|
569
580
|
};
|
|
570
581
|
setExternalEvent(evt);
|
|
@@ -576,7 +587,7 @@ function WorkSpace(props) {
|
|
|
576
587
|
type: _constants.EXTERNAL_EVENT_SET_FINISHING,
|
|
577
588
|
payload: {
|
|
578
589
|
category: _constants.FINISHING_TYPE.BACKSPLASH,
|
|
579
|
-
texture:
|
|
590
|
+
texture: "https://media.test.diydesignspace.com/uploads/CountTop/202305225249_14/texture/Unique_Marquina_texture.jpg"
|
|
580
591
|
}
|
|
581
592
|
};
|
|
582
593
|
setExternalEvent(evt);
|
|
@@ -588,7 +599,7 @@ function WorkSpace(props) {
|
|
|
588
599
|
type: _constants.EXTERNAL_EVENT_SET_FINISHING,
|
|
589
600
|
payload: {
|
|
590
601
|
category: _constants.FINISHING_TYPE.FLOOR_STYLE,
|
|
591
|
-
texture:
|
|
602
|
+
texture: "https://media.test.diydesignspace.com/uploads/CountTop/202203163338_3/texture/oak-chestnut.webp"
|
|
592
603
|
}
|
|
593
604
|
};
|
|
594
605
|
setExternalEvent(evt);
|
|
@@ -600,7 +611,7 @@ function WorkSpace(props) {
|
|
|
600
611
|
type: _constants.EXTERNAL_EVENT_SET_FINISHING,
|
|
601
612
|
payload: {
|
|
602
613
|
category: _constants.FINISHING_TYPE.WALL_COLOR,
|
|
603
|
-
color:
|
|
614
|
+
color: "#bab863"
|
|
604
615
|
}
|
|
605
616
|
};
|
|
606
617
|
setExternalEvent(evt);
|
|
@@ -612,7 +623,7 @@ function WorkSpace(props) {
|
|
|
612
623
|
type: _constants.EXTERNAL_EVENT_SET_FINISHING,
|
|
613
624
|
payload: {
|
|
614
625
|
category: _constants.FINISHING_TYPE.DOOR_HANDLE,
|
|
615
|
-
gltf:
|
|
626
|
+
gltf: "https://media.test.diydesignspace.com/uploads/DoorHandle/202107294150_29/gltf/Handle1.gltf"
|
|
616
627
|
}
|
|
617
628
|
};
|
|
618
629
|
setExternalEvent(evt);
|
|
@@ -639,7 +650,7 @@ function WorkSpace(props) {
|
|
|
639
650
|
// cm
|
|
640
651
|
_length: 27,
|
|
641
652
|
// inch
|
|
642
|
-
_unit:
|
|
653
|
+
_unit: "in"
|
|
643
654
|
})
|
|
644
655
|
}
|
|
645
656
|
};
|
|
@@ -663,7 +674,90 @@ function WorkSpace(props) {
|
|
|
663
674
|
};
|
|
664
675
|
setExternalEvent(evt);
|
|
665
676
|
}
|
|
666
|
-
}, "Add room shape from width, height")
|
|
677
|
+
}, "Add room shape from width, height"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
678
|
+
actionType: "danger",
|
|
679
|
+
onClick: function onClick() {
|
|
680
|
+
var _tl = Math.floor(Math.random() * 50);
|
|
681
|
+
var tl = (0, _convertUnitsLite.convert)(_tl).from("in").to("cm");
|
|
682
|
+
var evt = {
|
|
683
|
+
type: _constants.EXTERNAL_EVENT_UPDATE_PROPERTY,
|
|
684
|
+
payload: {
|
|
685
|
+
propertyName: _constants.PROP_RESIZE_WIDTH,
|
|
686
|
+
value: new _immutable.Map({
|
|
687
|
+
_length: _tl,
|
|
688
|
+
// inch
|
|
689
|
+
_unit: "in",
|
|
690
|
+
length: tl // cm
|
|
691
|
+
})
|
|
692
|
+
}
|
|
693
|
+
};
|
|
694
|
+
setExternalEvent(evt);
|
|
695
|
+
}
|
|
696
|
+
}, "random width"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
697
|
+
actionType: "primary",
|
|
698
|
+
onClick: function onClick() {
|
|
699
|
+
var evt = {
|
|
700
|
+
type: _constants.EXTERNAL_EVENT_ROTATE_PAN,
|
|
701
|
+
payload: {
|
|
702
|
+
rotateType: _constants.RIGHT
|
|
703
|
+
}
|
|
704
|
+
};
|
|
705
|
+
setExternalEvent(evt);
|
|
706
|
+
}
|
|
707
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
708
|
+
src: "/assets/img/svg/bottombar/spin-right.svg"
|
|
709
|
+
})), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
710
|
+
actionType: "primary",
|
|
711
|
+
onClick: function onClick() {
|
|
712
|
+
var evt = {
|
|
713
|
+
type: _constants.EXTERNAL_EVENT_ROTATE_PAN,
|
|
714
|
+
payload: {
|
|
715
|
+
rotateType: _constants.LEFT
|
|
716
|
+
}
|
|
717
|
+
};
|
|
718
|
+
setExternalEvent(evt);
|
|
719
|
+
}
|
|
720
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
721
|
+
src: "/assets/img/svg/bottombar/spin-left.svg"
|
|
722
|
+
})), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
723
|
+
actionType: "primary",
|
|
724
|
+
onClick: function onClick() {
|
|
725
|
+
var evt = {
|
|
726
|
+
type: _constants.EXTERNAL_EVENT_ROTATE_PAN,
|
|
727
|
+
payload: {
|
|
728
|
+
rotateType: _constants.TOP
|
|
729
|
+
}
|
|
730
|
+
};
|
|
731
|
+
setExternalEvent(evt);
|
|
732
|
+
}
|
|
733
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
734
|
+
src: "/assets/img/svg/bottombar/spin-up.svg"
|
|
735
|
+
})), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
736
|
+
actionType: "primary",
|
|
737
|
+
onClick: function onClick() {
|
|
738
|
+
var evt = {
|
|
739
|
+
type: _constants.EXTERNAL_EVENT_ROTATE_PAN,
|
|
740
|
+
payload: {
|
|
741
|
+
rotateType: _constants.BOTTOM
|
|
742
|
+
}
|
|
743
|
+
};
|
|
744
|
+
setExternalEvent(evt);
|
|
745
|
+
}
|
|
746
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
747
|
+
src: "/assets/img/svg/bottombar/spin-down.svg"
|
|
748
|
+
})), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
749
|
+
actionType: "danger",
|
|
750
|
+
onClick: function onClick() {
|
|
751
|
+
var evt = {
|
|
752
|
+
type: _constants.EXTERNAL_EVENT_PROJECT_SETTING,
|
|
753
|
+
payload: {
|
|
754
|
+
option: _constants.PROJECT_SETTING_OPTION.CHANGE_MEASUREMENT_UNIT,
|
|
755
|
+
value: "cm"
|
|
756
|
+
}
|
|
757
|
+
};
|
|
758
|
+
setExternalEvent(evt);
|
|
759
|
+
}
|
|
760
|
+
}, "Setting-MeasurementUnit-'cm'")), /*#__PURE__*/_react["default"].createElement(_LiteRenderer["default"], {
|
|
667
761
|
width: props.width,
|
|
668
762
|
height: props.height,
|
|
669
763
|
configData: _mockProps["default"].configData,
|
|
@@ -681,7 +775,7 @@ function WorkSpace(props) {
|
|
|
681
775
|
// externalEvent: { id?, type, payload } | null,
|
|
682
776
|
// meta?: { filename?, lineno?, colno? }
|
|
683
777
|
// }
|
|
684
|
-
console.error(
|
|
778
|
+
console.error("TOOL ERROR:", payload);
|
|
685
779
|
}
|
|
686
780
|
}));
|
|
687
781
|
}
|
|
@@ -692,4 +786,4 @@ _reactDom["default"].render(/*#__PURE__*/_react["default"].createElement(_reactC
|
|
|
692
786
|
width: width,
|
|
693
787
|
height: height
|
|
694
788
|
});
|
|
695
|
-
}), document.getElementById(
|
|
789
|
+
}), document.getElementById("app") && document.getElementById("app"));
|
package/lib/index.js
CHANGED
|
@@ -12,52 +12,142 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
12
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
16
|
var _react = _interopRequireDefault(require("react"));
|
|
16
17
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
17
18
|
var _LiteRenderer = _interopRequireDefault(require("./LiteRenderer"));
|
|
19
|
+
var _client = require("react-dom/client");
|
|
20
|
+
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; }
|
|
21
|
+
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; }
|
|
18
22
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
19
23
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
20
24
|
function renderKitchenSimulator(container) {
|
|
21
25
|
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
// Internal wrapper that exposes a state setter
|
|
26
|
+
var apiRef = null;
|
|
27
|
+
var idSeq = 0;
|
|
25
28
|
var Wrapper = /*#__PURE__*/function (_React$Component) {
|
|
26
29
|
function Wrapper(p) {
|
|
27
30
|
var _this;
|
|
28
31
|
(0, _classCallCheck2["default"])(this, Wrapper);
|
|
29
32
|
_this = _callSuper(this, Wrapper, [p]);
|
|
33
|
+
(0, _defineProperty2["default"])(_this, "onExternalEventProcessed", function (eventId) {
|
|
34
|
+
// Resolve only if it matches the current event in flight
|
|
35
|
+
if (eventId === _this._currentId) {
|
|
36
|
+
try {
|
|
37
|
+
var _this$_currentResolve, _this2;
|
|
38
|
+
(_this$_currentResolve = (_this2 = _this)._currentResolve) === null || _this$_currentResolve === void 0 || _this$_currentResolve.call(_this2);
|
|
39
|
+
} finally {
|
|
40
|
+
_this._currentResolve = null;
|
|
41
|
+
_this._currentId = null;
|
|
42
|
+
_this.processing = false;
|
|
43
|
+
_this.processNext();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
});
|
|
30
47
|
_this.state = {
|
|
31
|
-
externalEvent:
|
|
48
|
+
externalEvent: null
|
|
49
|
+
};
|
|
50
|
+
_this.queue = [];
|
|
51
|
+
_this.processing = false;
|
|
52
|
+
_this._currentResolve = null;
|
|
53
|
+
_this._currentId = null;
|
|
54
|
+
apiRef = {
|
|
55
|
+
enqueueExternalEvent: function enqueueExternalEvent(ev) {
|
|
56
|
+
return _this.enqueue(ev);
|
|
57
|
+
}
|
|
32
58
|
};
|
|
33
|
-
setExternalEventFn = _this.setExternalEvent.bind(_this);
|
|
34
59
|
return _this;
|
|
35
60
|
}
|
|
36
61
|
(0, _inherits2["default"])(Wrapper, _React$Component);
|
|
37
62
|
return (0, _createClass2["default"])(Wrapper, [{
|
|
38
|
-
key: "
|
|
39
|
-
value: function
|
|
63
|
+
key: "enqueue",
|
|
64
|
+
value: function enqueue(ev) {
|
|
65
|
+
var _ev$waitForAckMs,
|
|
66
|
+
_this3 = this;
|
|
67
|
+
if (!ev) return Promise.resolve();
|
|
68
|
+
var id = ++idSeq;
|
|
69
|
+
var _resolve;
|
|
70
|
+
var promise = new Promise(function (res) {
|
|
71
|
+
return _resolve = res;
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// failsafe: resolve after X ms no matter what (avoid host deadlock)
|
|
75
|
+
var timeoutMs = (_ev$waitForAckMs = ev === null || ev === void 0 ? void 0 : ev.waitForAckMs) !== null && _ev$waitForAckMs !== void 0 ? _ev$waitForAckMs : 15000;
|
|
76
|
+
var t = setTimeout(function () {
|
|
77
|
+
if (_this3._currentId === id) {
|
|
78
|
+
console.warn('External event ack timeout', id, ev);
|
|
79
|
+
_this3.onExternalEventProcessed(id); // force-drain
|
|
80
|
+
}
|
|
81
|
+
}, timeoutMs);
|
|
82
|
+
this.queue.push({
|
|
83
|
+
id: id,
|
|
84
|
+
ev: ev,
|
|
85
|
+
resolve: function resolve() {
|
|
86
|
+
clearTimeout(t);
|
|
87
|
+
_resolve();
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
if (!this.processing) this.processNext();
|
|
91
|
+
return promise;
|
|
92
|
+
}
|
|
93
|
+
}, {
|
|
94
|
+
key: "processNext",
|
|
95
|
+
value: function processNext() {
|
|
96
|
+
var _this4 = this;
|
|
97
|
+
var next = this.queue.shift();
|
|
98
|
+
if (!next) {
|
|
99
|
+
this.processing = false;
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
this.processing = true;
|
|
103
|
+
|
|
104
|
+
// Tool assigns __eventId (do NOT rely on host for this)
|
|
105
|
+
var payload = _objectSpread(_objectSpread({}, next.ev), {}, {
|
|
106
|
+
__eventId: next.id
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// Edge trigger: clear then set so downstream sees prop change reliably
|
|
40
110
|
this.setState({
|
|
41
|
-
externalEvent:
|
|
111
|
+
externalEvent: null
|
|
112
|
+
}, function () {
|
|
113
|
+
_this4._currentResolve = next.resolve;
|
|
114
|
+
_this4._currentId = next.id;
|
|
115
|
+
_this4.setState({
|
|
116
|
+
externalEvent: payload
|
|
117
|
+
});
|
|
42
118
|
});
|
|
43
119
|
}
|
|
44
120
|
}, {
|
|
45
121
|
key: "render",
|
|
46
122
|
value: function render() {
|
|
47
123
|
return /*#__PURE__*/_react["default"].createElement(_LiteRenderer["default"], (0, _extends2["default"])({}, this.props, {
|
|
48
|
-
externalEvent: this.state.externalEvent
|
|
124
|
+
externalEvent: this.state.externalEvent,
|
|
125
|
+
onExternalEventProcessed: this.onExternalEventProcessed
|
|
49
126
|
}));
|
|
50
127
|
}
|
|
51
128
|
}]);
|
|
52
|
-
}(_react["default"].Component);
|
|
53
|
-
|
|
129
|
+
}(_react["default"].Component);
|
|
130
|
+
var ROOT_KEY = '__kitchenSimulatorRoot__';
|
|
131
|
+
var root = container[ROOT_KEY];
|
|
132
|
+
if (!root) {
|
|
133
|
+
root = (0, _client.createRoot)(container);
|
|
134
|
+
container[ROOT_KEY] = root;
|
|
135
|
+
}
|
|
136
|
+
root.render(/*#__PURE__*/_react["default"].createElement(Wrapper, props), container);
|
|
54
137
|
return {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
138
|
+
// ✅ Promise-based API (use this from host)
|
|
139
|
+
enqueueExternalEvent: function enqueueExternalEvent(ev) {
|
|
140
|
+
var _apiRef$enqueueExtern, _apiRef, _apiRef$enqueueExtern2;
|
|
141
|
+
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();
|
|
142
|
+
},
|
|
143
|
+
// old API still works, but no await possible
|
|
144
|
+
updateExternalEvent: function updateExternalEvent(ev) {
|
|
145
|
+
var _apiRef2, _apiRef2$enqueueExter;
|
|
146
|
+
(_apiRef2 = apiRef) === null || _apiRef2 === void 0 || (_apiRef2$enqueueExter = _apiRef2.enqueueExternalEvent) === null || _apiRef2$enqueueExter === void 0 || _apiRef2$enqueueExter.call(_apiRef2, ev);
|
|
58
147
|
},
|
|
59
148
|
unmount: function unmount() {
|
|
60
149
|
_reactDom["default"].unmountComponentAtNode(container);
|
|
150
|
+
apiRef = null;
|
|
61
151
|
}
|
|
62
152
|
};
|
|
63
153
|
}
|
|
@@ -19,7 +19,7 @@ function _default(state, action) {
|
|
|
19
19
|
state = state.merge({
|
|
20
20
|
sceneHistory: _export2.history.historyPush(state.sceneHistory, state.scene)
|
|
21
21
|
});
|
|
22
|
-
return _export.Line.beginDrawingLine(state, action.layerID, action.x, action.y).updatedState;
|
|
22
|
+
return _export.Line.beginDrawingLine(state, action.layerID, action.x, action.y, action.onInternalEvent).updatedState;
|
|
23
23
|
case _constants.UPDATE_DRAWING_LINE:
|
|
24
24
|
return _export.Line.updateDrawingLine(state, action.x, action.y, action.relatedLines).updatedState;
|
|
25
25
|
case _constants.STOP_DRAWING_LINE:
|