kitchen-simulator 2.0.3 → 2.0.4-op-event

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.
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
5
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
@@ -8,7 +7,7 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
8
7
  import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
9
8
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
10
9
  import _inherits from "@babel/runtime/helpers/esm/inherits";
11
- var _excluded = ["width", "height", "projectElement", "dataBundle", "configData", "options", "user", "auth", "featureFlags", "sentry", "analytics", "externalEvent", "onInternalEvent", "onError"];
10
+ var _excluded = ["width", "height", "projectElement", "configData", "options", "user", "auth", "featureFlags", "sentry", "analytics", "externalEvent", "onInternalEvent", "onError"];
12
11
  import _regeneratorRuntime from "@babel/runtime/regenerator";
13
12
  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
13
  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; }
@@ -24,16 +23,13 @@ import PlannerReducer from "./reducers/reducer";
24
23
  import AppContext from "./AppContext";
25
24
  import Catalog from "./catalog/catalog";
26
25
  import { SVGLoader } from 'three/addons/loaders/SVGLoader';
27
- import { isEmpty } from "./utils/helper";
28
26
  import { TOE_KICK_MOLDING } from "./constants";
29
27
  import * as Areas from "./catalog/areas/area/planner-element";
30
28
  import * as Lines from "./catalog/lines/wall/planner-element";
31
29
  import * as Holes from "./catalog/holes/export";
32
- import { render2DItem, render3DApplianceItem, render3DItem, render3DLightingItem } from "./catalog/utils/item-loader";
33
30
  import { ConsoleDebugger, Keyboard } from "./plugins/export";
34
31
  import { Map } from 'immutable';
35
32
  import * as Sentry from '@sentry/react';
36
- import exporter from "./catalog/utils/exporter";
37
33
  import * as THREE from 'three';
38
34
  import LiteKitchenConfigurator from "./LiteKitchenConfigurator";
39
35
  if (typeof window !== 'undefined') window.THREE = THREE;
@@ -144,7 +140,6 @@ export default function LiteRenderer(props) {
144
140
  var width = props.width,
145
141
  height = props.height,
146
142
  projectElement = props.projectElement,
147
- dataBundle = props.dataBundle,
148
143
  configData = props.configData,
149
144
  options = props.options,
150
145
  user = props.user,
@@ -243,25 +238,12 @@ export default function LiteRenderer(props) {
243
238
  emit(lastExternalEventRef.current, last.errors);
244
239
  }
245
240
  }, [externalEvent, emit]);
246
- var _ref = dataBundle || {},
247
- _ref$data = _ref.data,
248
- data = _ref$data === void 0 ? [] : _ref$data,
249
- _ref$appliances = _ref.appliances,
250
- appliances = _ref$appliances === void 0 ? [] : _ref$appliances,
251
- _ref$furnishing = _ref.furnishing,
252
- furnishing = _ref$furnishing === void 0 ? [] : _ref$furnishing,
253
- _ref$lighting = _ref.lighting,
254
- lighting = _ref$lighting === void 0 ? [] : _ref$lighting;
255
241
  var id = configData.id,
256
242
  logoImg = configData.logoImg,
257
243
  companyUrl = configData.companyUrl;
258
- var _React$useState = React.useState([]),
259
- _React$useState2 = _slicedToArray(_React$useState, 2),
260
- outlineSVGData = _React$useState2[0],
261
- setOutlineSVGData = _React$useState2[1];
262
244
  useEffect(function () {
263
245
  var initMyCatalog = /*#__PURE__*/function () {
264
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
246
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
265
247
  var x, _x, _x2;
266
248
  return _regeneratorRuntime.wrap(function (_context) {
267
249
  while (1) switch (_context.prev = _context.next) {
@@ -278,11 +260,11 @@ export default function LiteRenderer(props) {
278
260
  }, _callee);
279
261
  }));
280
262
  return function initMyCatalog() {
281
- return _ref2.apply(this, arguments);
263
+ return _ref.apply(this, arguments);
282
264
  };
283
265
  }();
284
266
  var loadMoldings = /*#__PURE__*/function () {
285
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
267
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
286
268
  var molding, toeMoldingData, moldingData, promises;
287
269
  return _regeneratorRuntime.wrap(function (_context2) {
288
270
  while (1) switch (_context2.prev = _context2.next) {
@@ -318,144 +300,32 @@ export default function LiteRenderer(props) {
318
300
  }, _callee2);
319
301
  }));
320
302
  return function loadMoldings() {
321
- return _ref3.apply(this, arguments);
322
- };
323
- }();
324
- var loadSVGs = /*#__PURE__*/function () {
325
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
326
- var svgLoadPromises, outlineData;
327
- return _regeneratorRuntime.wrap(function (_context4) {
328
- while (1) switch (_context4.prev = _context4.next) {
329
- case 0:
330
- svgLoadPromises = data.map(/*#__PURE__*/function () {
331
- var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(item) {
332
- var _parsed$xml$viewBox, _parsed$xml$viewBox2, response, svgText, loader, parsed, _t;
333
- return _regeneratorRuntime.wrap(function (_context3) {
334
- while (1) switch (_context3.prev = _context3.next) {
335
- case 0:
336
- if (item.outline) {
337
- _context3.next = 1;
338
- break;
339
- }
340
- return _context3.abrupt("return", null);
341
- case 1:
342
- _context3.prev = 1;
343
- _context3.next = 2;
344
- return fetch(item.outline, {
345
- cache: 'no-store'
346
- });
347
- case 2:
348
- response = _context3.sent;
349
- _context3.next = 3;
350
- return response.text();
351
- case 3:
352
- svgText = _context3.sent;
353
- loader = new SVGLoader();
354
- parsed = loader.parse(svgText);
355
- if (!isEmpty(parsed.paths)) {
356
- _context3.next = 4;
357
- break;
358
- }
359
- return _context3.abrupt("return", null);
360
- case 4:
361
- return _context3.abrupt("return", {
362
- paths: parsed.paths,
363
- svgWidth: parseFloat(parsed.xml.getAttribute('width')) || ((_parsed$xml$viewBox = parsed.xml.viewBox) === null || _parsed$xml$viewBox === void 0 || (_parsed$xml$viewBox = _parsed$xml$viewBox.animVal) === null || _parsed$xml$viewBox === void 0 ? void 0 : _parsed$xml$viewBox.width) || 0,
364
- svgHeight: parseFloat(parsed.xml.getAttribute('height')) || ((_parsed$xml$viewBox2 = parsed.xml.viewBox) === null || _parsed$xml$viewBox2 === void 0 || (_parsed$xml$viewBox2 = _parsed$xml$viewBox2.animVal) === null || _parsed$xml$viewBox2 === void 0 ? void 0 : _parsed$xml$viewBox2.height) || 0,
365
- reverse: !parseFloat(parsed.xml.getAttribute('height'))
366
- });
367
- case 5:
368
- _context3.prev = 5;
369
- _t = _context3["catch"](1);
370
- console.error('Failed to load SVG:', item.outline, _t);
371
- return _context3.abrupt("return", null);
372
- case 6:
373
- case "end":
374
- return _context3.stop();
375
- }
376
- }, _callee3, null, [[1, 5]]);
377
- }));
378
- return function (_x3) {
379
- return _ref5.apply(this, arguments);
380
- };
381
- }());
382
- _context4.next = 1;
383
- return Promise.all(svgLoadPromises);
384
- case 1:
385
- outlineData = _context4.sent;
386
- setOutlineSVGData(outlineData);
387
- case 2:
388
- case "end":
389
- return _context4.stop();
390
- }
391
- }, _callee4);
392
- }));
393
- return function loadSVGs() {
394
- return _ref4.apply(this, arguments);
303
+ return _ref2.apply(this, arguments);
395
304
  };
396
305
  }();
397
306
  var initCatalog = /*#__PURE__*/function () {
398
- var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
399
- return _regeneratorRuntime.wrap(function (_context5) {
400
- while (1) switch (_context5.prev = _context5.next) {
307
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
308
+ return _regeneratorRuntime.wrap(function (_context3) {
309
+ while (1) switch (_context3.prev = _context3.next) {
401
310
  case 0:
402
- _context5.next = 1;
311
+ _context3.next = 1;
403
312
  return initMyCatalog();
404
313
  case 1:
405
- _context5.next = 2;
314
+ _context3.next = 2;
406
315
  return loadMoldings();
407
316
  case 2:
408
- _context5.next = 3;
409
- return loadSVGs();
410
- case 3:
411
317
  case "end":
412
- return _context5.stop();
318
+ return _context3.stop();
413
319
  }
414
- }, _callee5);
320
+ }, _callee3);
415
321
  }));
416
322
  return function initCatalog() {
417
- return _ref6.apply(this, arguments);
323
+ return _ref3.apply(this, arguments);
418
324
  };
419
325
  }();
420
326
  initCatalog();
421
327
  // eslint-disable-next-line react-hooks/exhaustive-deps
422
- }, [data, id]);
423
-
424
- // Register items once SVGs are loaded
425
- useEffect(function () {
426
- if (!outlineSVGData.length) return;
427
- var Item = [];
428
- data.forEach(function (obj, index) {
429
- Item.push(exporter(_objectSpread(_objectSpread({}, obj), {}, {
430
- type: 'cabinet',
431
- outlineSVGData: outlineSVGData[index],
432
- render2DItem: render2DItem,
433
- render3DItem: render3DItem
434
- })));
435
- });
436
- appliances.forEach(function (obj) {
437
- Item.push(exporter(_objectSpread(_objectSpread({}, obj), {}, {
438
- render2DItem: render2DItem,
439
- render3DItem: render3DApplianceItem,
440
- type: 'appliance'
441
- })));
442
- });
443
- lighting.forEach(function (obj) {
444
- Item.push(exporter(_objectSpread(_objectSpread({}, obj), {}, {
445
- type: 'lighting',
446
- render2DItem: render2DItem,
447
- render3DItem: render3DLightingItem
448
- })));
449
- });
450
- furnishing.forEach(function (obj) {
451
- Item.push(exporter(_objectSpread(_objectSpread({}, obj), {}, {
452
- type: 'furnishing',
453
- render2DItem: render2DItem,
454
- render3DItem: render3DApplianceItem
455
- })));
456
- });
457
- for (var x in Item) MyCatalog.registerElement(Item[x]);
458
- }, [outlineSVGData, data, appliances, furnishing, lighting]);
328
+ }, [id]);
459
329
  return /*#__PURE__*/React.createElement(AppContext.Provider, null, /*#__PURE__*/React.createElement(Provider, {
460
330
  store: store
461
331
  }, /*#__PURE__*/React.createElement(ToolErrorBoundary, {
@@ -470,7 +340,6 @@ export default function LiteRenderer(props) {
470
340
  stateExtractor: function stateExtractor(state) {
471
341
  return state.get('KitchenConfigurator');
472
342
  },
473
- data: data,
474
343
  configData: configData,
475
344
  externalEvent: externalEvent,
476
345
  onInternalEvent: onInternalEvent
@@ -483,7 +352,6 @@ LiteRenderer.propTypes = {
483
352
  width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
484
353
  height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
485
354
  projectElement: PropTypes.arrayOf(PropTypes.object),
486
- dataBundle: PropTypes.any,
487
355
  configData: PropTypes.any,
488
356
  catalog: PropTypes.oneOfType([PropTypes.object, PropTypes.instanceOf(Models.Catalog)]),
489
357
  logoImg: PropTypes.any,
@@ -231,12 +231,6 @@ export function setDoorStyle(doorStyle, itemCDS, isAll) {
231
231
  isAll: isAll
232
232
  };
233
233
  }
234
- export function changeDistance(distancePayload) {
235
- return {
236
- type: CHANGE_DISTANCE,
237
- distancePayload: distancePayload
238
- };
239
- }
240
234
  export function setCounterTop(counterTop) {
241
235
  return {
242
236
  type: SET_COUNTER_TOP,
package/es/class/item.js CHANGED
@@ -1265,42 +1265,11 @@ var Item = /*#__PURE__*/function () {
1265
1265
  updatedState: state
1266
1266
  };
1267
1267
  }
1268
- }, {
1269
- key: "changeDistance",
1270
- value: function changeDistance(state, distancePayload) {
1271
- var _state9 = state,
1272
- scene = _state9.scene;
1273
- var Left = distancePayload.distanceLeft;
1274
- var Right = distancePayload.distanceRight;
1275
- var Back = distancePayload.distanceBack;
1276
- var Front = distancePayload.distanceFront;
1277
- var LeftRotRad = Left ? 180 : null;
1278
- var RightRotRad = Right ? 0 : null;
1279
- var BackRotRad = Back ? -90 : null;
1280
- var FrontRotRad = Front ? 90 : null;
1281
- var directR = LeftRotRad || RightRotRad || BackRotRad || FrontRotRad;
1282
- var dist = Left || Right || Back || Front;
1283
- var layerID = scene.get('selectedLayer');
1284
- var layer = scene.layers.get(layerID).toJS();
1285
- var selectedItemId = layer.selected.items[0];
1286
- var selectedItem = layer.items[selectedItemId];
1287
- if (selectedItem) {
1288
- var renderedR = selectedItem.rotation || 0;
1289
- var rotRad = (directR + renderedR) / 180 * Math.PI;
1290
- var newX = selectedItem.x + convert(dist * Math.cos(rotRad)).from('in').to('cm');
1291
- var newY = selectedItem.y + convert(dist * Math.sin(rotRad)).from('in').to('cm');
1292
- state = state.setIn(['scene', 'layers', layerID, 'items', layer.selected.items[0], 'x'], newX);
1293
- state = state.setIn(['scene', 'layers', layerID, 'items', layer.selected.items[0], 'y'], newY);
1294
- }
1295
- return {
1296
- updatedState: state
1297
- };
1298
- }
1299
1268
  }, {
1300
1269
  key: "setCounterTop",
1301
1270
  value: function setCounterTop(state, counterTop) {
1302
- var _state0 = state,
1303
- scene = _state0.scene;
1271
+ var _state9 = state,
1272
+ scene = _state9.scene;
1304
1273
  var layerID = scene.get('selectedLayer');
1305
1274
  var layers = scene.layers.get(layerID);
1306
1275
  layers = layers.mergeIn(['counterTop'], counterTop);
@@ -1344,8 +1313,8 @@ var Item = /*#__PURE__*/function () {
1344
1313
  }, {
1345
1314
  key: "setDoorHandle",
1346
1315
  value: function setDoorHandle(state, doorHandle) {
1347
- var _state1 = state,
1348
- scene = _state1.scene;
1316
+ var _state0 = state,
1317
+ scene = _state0.scene;
1349
1318
  var layerID = scene.get('selectedLayer');
1350
1319
  var layer = scene.layers.get(layerID);
1351
1320
  layer = layer.mergeIn(['doorHandle'], doorHandle);
@@ -1369,8 +1338,8 @@ var Item = /*#__PURE__*/function () {
1369
1338
  }, {
1370
1339
  key: "setHandleMaterial",
1371
1340
  value: function setHandleMaterial(state, material) {
1372
- var _state10 = state,
1373
- scene = _state10.scene;
1341
+ var _state1 = state,
1342
+ scene = _state1.scene;
1374
1343
  var layerID = scene.get('selectedLayer');
1375
1344
  var layers = scene.layers.get(layerID);
1376
1345
  var items = layers.items;
@@ -1395,8 +1364,8 @@ var Item = /*#__PURE__*/function () {
1395
1364
  }, {
1396
1365
  key: "setWallColor",
1397
1366
  value: function setWallColor(state, wallColor) {
1398
- var _state11 = state,
1399
- scene = _state11.scene;
1367
+ var _state10 = state,
1368
+ scene = _state10.scene;
1400
1369
  var layerID = scene.get('selectedLayer');
1401
1370
  var layer = scene.layers.get(layerID);
1402
1371
  layer = layer.merge({
@@ -1422,8 +1391,8 @@ var Item = /*#__PURE__*/function () {
1422
1391
  }, {
1423
1392
  key: "setBacksplash",
1424
1393
  value: function setBacksplash(state, backsplash) {
1425
- var _state12 = state,
1426
- scene = _state12.scene;
1394
+ var _state11 = state,
1395
+ scene = _state11.scene;
1427
1396
  var layerID = scene.get('selectedLayer');
1428
1397
  var layer = scene.layers.get(layerID);
1429
1398
  var dataJSON = layer.toJS();
@@ -1451,8 +1420,8 @@ var Item = /*#__PURE__*/function () {
1451
1420
  }, {
1452
1421
  key: "setMolding",
1453
1422
  value: function setMolding(state, molding, isAll) {
1454
- var _state13 = state,
1455
- scene = _state13.scene;
1423
+ var _state12 = state,
1424
+ scene = _state12.scene;
1456
1425
  var layerID = scene.get('selectedLayer');
1457
1426
  var layer = scene.layers.get(layerID);
1458
1427
  if (isAll) {
@@ -1541,8 +1510,8 @@ var Item = /*#__PURE__*/function () {
1541
1510
  }, {
1542
1511
  key: "updateMolding",
1543
1512
  value: function updateMolding(state) {
1544
- var _state14 = state,
1545
- scene = _state14.scene;
1513
+ var _state13 = state,
1514
+ scene = _state13.scene;
1546
1515
  var layerID = scene.get('selectedLayer');
1547
1516
  var layer = scene.layers.get(layerID);
1548
1517
  var selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
@@ -1663,8 +1632,8 @@ var Item = /*#__PURE__*/function () {
1663
1632
  }, {
1664
1633
  key: "setBacksplashVisible",
1665
1634
  value: function setBacksplashVisible(state, itemID, backsplashVisible) {
1666
- var _state15 = state,
1667
- scene = _state15.scene;
1635
+ var _state14 = state,
1636
+ scene = _state14.scene;
1668
1637
  var layerID = scene.get('selectedLayer');
1669
1638
  var layer = scene.layers.get(layerID);
1670
1639
  layer = layer.mergeIn(['items', itemID, 'backsplashVisible'], backsplashVisible);
@@ -1684,8 +1653,8 @@ var Item = /*#__PURE__*/function () {
1684
1653
  }, {
1685
1654
  key: "setApplianceMaterial",
1686
1655
  value: function setApplianceMaterial(state, material) {
1687
- var _state16 = state,
1688
- scene = _state16.scene;
1656
+ var _state15 = state,
1657
+ scene = _state15.scene;
1689
1658
  var layerID = scene.get('selectedLayer');
1690
1659
  var layers = scene.layers.get(layerID);
1691
1660
  var items = layers.items;
@@ -1709,8 +1678,8 @@ var Item = /*#__PURE__*/function () {
1709
1678
  }, {
1710
1679
  key: "setModelling",
1711
1680
  value: function setModelling(state, molding) {
1712
- var _state17 = state,
1713
- scene = _state17.scene;
1681
+ var _state16 = state,
1682
+ scene = _state16.scene;
1714
1683
  var layerID = scene.get('selectedLayer');
1715
1684
  var layers = scene.layers.get(layerID);
1716
1685
  var items = layers.items;
@@ -1820,8 +1789,8 @@ var Item = /*#__PURE__*/function () {
1820
1789
  }, {
1821
1790
  key: "toggleLoadingCabinet",
1822
1791
  value: function toggleLoadingCabinet(state) {
1823
- var _state18 = state,
1824
- scene = _state18.scene;
1792
+ var _state17 = state,
1793
+ scene = _state17.scene;
1825
1794
  console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);
1826
1795
  // scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);
1827
1796
  // state = state.set('scene', scene);
@@ -1833,8 +1802,8 @@ var Item = /*#__PURE__*/function () {
1833
1802
  }, {
1834
1803
  key: "endLoading",
1835
1804
  value: function endLoading(state) {
1836
- var _state19 = state,
1837
- scene = _state19.scene;
1805
+ var _state18 = state,
1806
+ scene = _state18.scene;
1838
1807
  state = state.setIn(['scene', 'loadFlag'], true);
1839
1808
  return {
1840
1809
  updatedState: state
package/es/constants.js CHANGED
@@ -172,15 +172,12 @@ export var END_DRAGGING_HOLE_3D = 'END_DRAGGING_HOLE_3D';
172
172
  export var UPDATE_DRAGGING_HOLE_3D = 'UPDATE_DRAGGING_HOLE_3D';
173
173
  export var SET_RELATED_LINE = 'SET_RELATED_LINE';
174
174
  export var EXTERNAL_EVENT_CHANGE_DISTANCE = 'EXTERNAL_EVENT_CHANGE_DISTANCE';
175
- export var EXTERNAL_EVENT_SYNC_SCENE = 'EXTERNAL_EVENT_SYNC_SCENE'; //External event for sync scene data : HostApp -> 3DTool
175
+
176
176
  //ACTIONS vertices
177
177
  export var BEGIN_DRAGGING_VERTEX = 'BEGIN_DRAGGING_VERTEX';
178
178
  export var UPDATE_DRAGGING_VERTEX = 'UPDATE_DRAGGING_VERTEX';
179
179
  export var END_DRAGGING_VERTEX = 'END_DRAGGING_VERTEX';
180
180
 
181
- //Interanl Event Types
182
- export var INTERNAL_EVENT_SYNC_SCENE = 'INTERNAL_EVENT_SYNC_SCENE'; //Internal event for sync scene data : 3DTool -> HostApp
183
-
184
181
  //ACTIONS scene
185
182
  export var SET_LAYER_PROPERTIES = 'SET_LAYER_PROPERTIES';
186
183
  export var ADD_LAYER = 'ADD_LAYER';
@@ -663,6 +660,26 @@ export var RIGHT = 'Right';
663
660
  export var TOP = 'Top';
664
661
  export var BOTTOM = 'Bottom';
665
662
 
663
+ // distance direction angle
664
+ export var LEFT_DIST_ANG = 0;
665
+ export var RIGHT_DIST_ANG = 180;
666
+ export var BACK_DIST_ANG = 90;
667
+ export var FRONT_DIST_ANG = -90;
668
+
669
+ // element attributes
670
+ export var ATT_ITEM_POS = 'pos';
671
+ export var ATT_ITEM_ROTATION = 'rotation';
672
+ export var ATT_LINE_LENGTH = 'lineLength';
673
+ export var ATT_VERTEXT_ONE = 'vertexOne';
674
+ export var ATT_VERTEXT_TWO = 'vertexTwo';
675
+ export var ATT_HOLE_OFFSET_A = 'offsetA';
676
+ export var ATT_HOLE_OFFSET_B = 'offsetB';
677
+
678
+ // external event type
679
+ export var EXTERNAL_EVENT_SYNC_SCENE = 'EXTERNAL_EVENT_SYNC_SCENE'; // Host request the scene data to 3DTool for sync : Host -> 3DTool
680
+ export var INTERNAL_EVENT_SYNC_SCENE = 'INTERNAL_EVENT_SYNC_SCENE'; // 3DTool send the scene data to Host for sync : 3DTool -> HostApp
681
+ export var INTERNAL_EVENT_ITEMS_CATALOG = 'INTERNAL_EVENT_ITEMS_CATALOG'; // Request item's catalog data to Host
682
+
666
683
  // external event type
667
684
  export var EXTERNAL_EVENT_LOAD_PROJECT = 'EXTERNAL_EVENT_LOAD_PROJECT';
668
685
  export var EXTERNAL_EVENT_TOGGLE_TO_3D = 'EXTERNAL_EVENT_TOGGLE_TO_3D';
@@ -680,7 +697,8 @@ export var EXTERNAL_EVENT_ZOOM_OUT = 'EXTERNAL_EVENT_ZOOM_OUT';
680
697
  export var EXTERNAL_EVENT_UNDO = 'EXTERNAL_EVENT_UNDO';
681
698
  export var EXTERNAL_EVENT_REDO = 'EXTERNAL_EVENT_REDO';
682
699
  export var EXTERNAL_EVENT_SET_MOLDING = 'EXTERNAL_EVENT_SET_MOLDING';
683
- export var EXTERNAL_EVENT_PROJECT_SETTING = 'EXTERNAL_EVENT_PROJECT_SETTING';
700
+ export var EXTERNAL_EVENT_PROJECT_SETTING = 'EXTERNAL_EVENT_PROJECT_SETTING'; // project setting event
701
+ export var EXTERNAL_EVENT_UPDATE_ATTRIBUTE = 'EXTERNAL_EVENT_UPDATE_ATTRIBUTE'; // update the element's attributes (distance, rotation...) in the property window
684
702
 
685
703
  // internal event type
686
704
  export var INTERNAL_EVENT_SELECT_ELEMENT = 'INTERNAL_EVENT_SELECT_ELEMENT';
@@ -1,11 +1,12 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
2
4
  import React, { useState, useEffect } from 'react';
3
5
  import ContainerDimensions from 'react-container-dimensions';
4
6
  import projectItemsCatalog from "./mocks/projectItemsCatalog.json";
5
7
  import mockProps from "./mocks/mockProps.json";
6
8
  import mockDataBundle from "./mocks/dataBundle2.json";
7
9
  import cabinetPaylod from "./mocks/cabinetPayload2.json";
8
- import doorStylePaylod from "./mocks/doorStylePayload.json";
9
10
  import doorStylePaylod2 from "./mocks/doorStylePayload2.json";
10
11
  import itemCDSPayload from "./mocks/itemCDSPayload.json";
11
12
  import rectangleData from "./mocks/rectangleShape.json";
@@ -14,16 +15,38 @@ import distancePayload from "./mocks/distancePayload.json";
14
15
  import ReactDOM from 'react-dom';
15
16
  import LiteRenderer from "./LiteRenderer";
16
17
  import { Button } from 'antd';
17
- 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_SET_INITIAL_DATA, 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_CHANGE_DISTANCE, EXTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_LOAD_PROJECT } from "./constants";
18
+ 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_SET_INITIAL_DATA, 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_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, BACK_DIST_ANG, ATT_ITEM_POS, ATT_ITEM_ROTATION, ATT_LINE_LENGTH } from "./constants";
18
19
 
19
20
  // --- renderer props ---
20
21
  var options = {
21
22
  unit: 'in',
22
23
  enable3D: true
23
24
  };
24
- var onInternalEvent = function onInternalEvent(evt) {
25
- console.log('EVENT:', evt.type, evt.value);
26
- };
25
+ var onInternalEvent = /*#__PURE__*/function () {
26
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(evt, callback) {
27
+ var _t;
28
+ return _regeneratorRuntime.wrap(function (_context) {
29
+ while (1) switch (_context.prev = _context.next) {
30
+ case 0:
31
+ console.log('EVENT:', evt.type, evt.value);
32
+ _t = evt.type;
33
+ _context.next = _t === INTERNAL_EVENT_ITEMS_CATALOG ? 1 : 3;
34
+ break;
35
+ case 1:
36
+ _context.next = 2;
37
+ return callback(projectItemsCatalog);
38
+ case 2:
39
+ return _context.abrupt("continue", 3);
40
+ case 3:
41
+ case "end":
42
+ return _context.stop();
43
+ }
44
+ }, _callee);
45
+ }));
46
+ return function onInternalEvent(_x, _x2) {
47
+ return _ref.apply(this, arguments);
48
+ };
49
+ }();
27
50
  document.getElementById('app').style.display = 'block';
28
51
  function WorkSpace(props) {
29
52
  var _useState = useState(null),
@@ -36,7 +59,7 @@ function WorkSpace(props) {
36
59
  type: EXTERNAL_EVENT_SET_INITIAL_DATA,
37
60
  payload: {
38
61
  doorStyle: {
39
- doorStyle: doorStylePaylod
62
+ doorStyle: doorStylePaylod2
40
63
  }
41
64
  }
42
65
  };
@@ -44,16 +67,23 @@ function WorkSpace(props) {
44
67
  }, []);
45
68
  return /*#__PURE__*/React.createElement("div", {
46
69
  className: "flex gap-4"
47
- }, /*#__PURE__*/React.createElement(Button, {
70
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
71
+ actionType: "danger",
72
+ onClick: function onClick() {
73
+ var evt = {
74
+ type: EXTERNAL_EVENT_SYNC_SCENE,
75
+ // send request for sync scene data to 3DTool
76
+ payload: {}
77
+ };
78
+ setExternalEvent(evt);
79
+ }
80
+ }, "Event-sync"), /*#__PURE__*/React.createElement(Button, {
48
81
  actionType: "danger",
49
82
  onClick: function onClick() {
50
83
  var evt = {
51
84
  type: EXTERNAL_EVENT_LOAD_PROJECT,
52
85
  // send request for sync scene data to 3DTool
53
- payload: {
54
- sceneData: JSON.parse(mockProps.projectElement[0].project_data),
55
- catalogItems: projectItemsCatalog
56
- }
86
+ payload: JSON.parse(mockProps.projectElement[0].project_data)
57
87
  };
58
88
  setExternalEvent(evt);
59
89
  }
@@ -281,26 +311,46 @@ function WorkSpace(props) {
281
311
  actionType: "danger",
282
312
  onClick: function onClick() {
283
313
  var evt = {
284
- type: EXTERNAL_EVENT_CHANGE_DISTANCE,
285
- payload: distancePayload
314
+ type: EXTERNAL_EVENT_UPDATE_ATTRIBUTE,
315
+ payload: {
316
+ attributeName: ATT_ITEM_POS,
317
+ value: {
318
+ directionAng: BACK_DIST_ANG,
319
+ oldDistance: 0,
320
+ newDistance: 10
321
+ }
322
+ }
286
323
  };
287
324
  setExternalEvent(evt);
288
325
  }
289
- }, "Setting-Distance"), /*#__PURE__*/React.createElement(Button, {
326
+ }, "OP-Cabinet Back Distance to 10"), /*#__PURE__*/React.createElement(Button, {
290
327
  actionType: "danger",
291
328
  onClick: function onClick() {
292
329
  var evt = {
293
- type: EXTERNAL_EVENT_SYNC_SCENE,
294
- // send request for sync scene data to 3DTool
295
- payload: {}
330
+ type: EXTERNAL_EVENT_UPDATE_ATTRIBUTE,
331
+ payload: {
332
+ attributeName: ATT_ITEM_ROTATION,
333
+ value: 45
334
+ }
335
+ };
336
+ setExternalEvent(evt);
337
+ }
338
+ }, "OP-Cabinet Rotation to 45"), /*#__PURE__*/React.createElement(Button, {
339
+ actionType: "danger",
340
+ onClick: function onClick() {
341
+ var evt = {
342
+ type: EXTERNAL_EVENT_UPDATE_ATTRIBUTE,
343
+ payload: {
344
+ attributeName: ATT_LINE_LENGTH,
345
+ value: 100
346
+ }
296
347
  };
297
348
  setExternalEvent(evt);
298
349
  }
299
- }, "Event-sync"), /*#__PURE__*/React.createElement(LiteRenderer, {
350
+ }, "OP-Wall Length to 100")), /*#__PURE__*/React.createElement(LiteRenderer, {
300
351
  width: props.width,
301
352
  height: props.height,
302
353
  projectElement: mockProps.projectElement,
303
- dataBundle: mockDataBundle,
304
354
  configData: mockProps.configData,
305
355
  options: options,
306
356
  logoImg: "/assets/logo.png",
@@ -320,9 +370,9 @@ function WorkSpace(props) {
320
370
  }
321
371
  }));
322
372
  }
323
- ReactDOM.render(/*#__PURE__*/React.createElement(ContainerDimensions, null, function (_ref) {
324
- var width = _ref.width,
325
- height = _ref.height;
373
+ ReactDOM.render(/*#__PURE__*/React.createElement(ContainerDimensions, null, function (_ref2) {
374
+ var width = _ref2.width,
375
+ height = _ref2.height;
326
376
  return /*#__PURE__*/React.createElement(WorkSpace, {
327
377
  width: width,
328
378
  height: height