kitchen-simulator 2.0.4 → 2.0.6-add-door-window-appliance

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,
@@ -61,7 +61,7 @@ var STYLE_FNT0 = {
61
61
  };
62
62
  var EPSILON = 3;
63
63
  export default {
64
- name: 'Closet',
64
+ name: 'Closet Door',
65
65
  prototype: 'holes',
66
66
  info: {
67
67
  title: 'Closet',
@@ -62,7 +62,7 @@ var STYLE_FNT0 = {
62
62
  };
63
63
  var EPSILON = 3;
64
64
  export default {
65
- name: 'Exterior',
65
+ name: 'Exterior Door',
66
66
  prototype: 'holes',
67
67
  info: {
68
68
  title: 'Exterior',
@@ -62,7 +62,7 @@ var STYLE_FNT0 = {
62
62
  };
63
63
  var EPSILON = 3;
64
64
  export default {
65
- name: 'Interior',
65
+ name: 'Interior Door',
66
66
  prototype: 'holes',
67
67
  info: {
68
68
  title: 'Interior',
@@ -8,7 +8,7 @@ import { loadGLTF } from "../../utils/load-obj";
8
8
  import { OBJTYPE_MESH } from "../../../constants";
9
9
  var cached3DDoor = null;
10
10
  export default {
11
- name: 'Sliding',
11
+ name: 'Sliding Door',
12
12
  prototype: 'holes',
13
13
  info: {
14
14
  tag: ['door'],
@@ -16,7 +16,7 @@ var STYLE_HOLE_SELECTED = {
16
16
  };
17
17
  var EPSILON = 3;
18
18
  export default {
19
- name: 'window-vertical',
19
+ name: 'Vertical Window',
20
20
  prototype: 'holes',
21
21
  info: {
22
22
  tag: ['window'],
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
@@ -653,6 +653,18 @@ export var PROJECT_SETTING_OPTION = {
653
653
  CHANGE_WALL_CABINET_MEASURE: CHANGE_WALL_CABINET_MEASURE,
654
654
  CHANGE_WINDOW_DOOR_MEASURE: CHANGE_WINDOW_DOOR_MEASURE
655
655
  };
656
+ export var HOLE_NAMES = {
657
+ WINDOW_CLEAR: 'Window',
658
+ WINDOW_CROSS: 'Cross Window',
659
+ WINDOW_DOUBLE_HUNG: 'Double Hung Window',
660
+ WINDOW_VERTICAL: 'Vertical Window',
661
+ DOOR_CLOSET: 'Closet Door',
662
+ DOOR_EXTERIOR: 'Exterior Door',
663
+ DOOR_INTERIOR: 'Interior Door',
664
+ DOOR_SLIDING: 'Sliding Door',
665
+ DOOR_FRAMED: 'Framed Doorway',
666
+ DOOR_FRAMELESS: 'FrameLess Doorway'
667
+ };
656
668
 
657
669
  // direction type
658
670
  export var LEFT = 'Left';
@@ -660,6 +672,24 @@ export var RIGHT = 'Right';
660
672
  export var TOP = 'Top';
661
673
  export var BOTTOM = 'Bottom';
662
674
 
675
+ // distance direction angle
676
+ export var LEFT_DIST_ANG = 0;
677
+ export var RIGHT_DIST_ANG = 180;
678
+ export var BACK_DIST_ANG = 90;
679
+ export var FRONT_DIST_ANG = -90;
680
+
681
+ // element attributes
682
+ export var ATT_ITEM_POS = 'pos';
683
+ export var ATT_ITEM_ROTATION = 'rotation';
684
+ export var ATT_LINE_LENGTH = 'lineLength';
685
+ export var ATT_VERTEXT_ONE = 'vertexOne';
686
+ export var ATT_VERTEXT_TWO = 'vertexTwo';
687
+ export var ATT_HOLE_OFFSET_A = 'offsetA';
688
+ export var ATT_HOLE_OFFSET_B = 'offsetB';
689
+ // element properties
690
+ export var PROP_FLIP_DOOR_HANDLE = 'flip_doorhandle';
691
+ export var PROP_OPEN_DOORS = 'open_doors';
692
+
663
693
  // external event type
664
694
  export var EXTERNAL_EVENT_SYNC_SCENE = 'EXTERNAL_EVENT_SYNC_SCENE'; // Host request the scene data to 3DTool for sync : Host -> 3DTool
665
695
  export var INTERNAL_EVENT_SYNC_SCENE = 'INTERNAL_EVENT_SYNC_SCENE'; // 3DTool send the scene data to Host for sync : 3DTool -> HostApp
@@ -672,6 +702,7 @@ export var EXTERNAL_EVENT_TOGGLE_TO_2D = 'EXTERNAL_EVENT_TOGGLE_TO_2D';
672
702
  export var EXTERNAL_EVENT_TOGGLE_TO_ELEVATION = 'EXTERNAL_EVENT_TOGGLE_TO_ELEVATION';
673
703
  export var EXTERNAL_EVENT_ADD_WALL = 'EXTERNAL_EVENT_ADD_WALL';
674
704
  export var EXTERNAL_EVENT_ADD_ITEM = 'EXTERNAL_EVENT_ADD_ITEM';
705
+ export var EXTERNAL_EVENT_ADD_HOLE = 'EXTERNAL_EVENT_ADD_HOLE';
675
706
  export var EXTERNAL_EVENT_MOVE_PAN = 'EXTERNAL_EVENT_MOVE_PAN';
676
707
  export var EXTERNAL_EVENT_NEW_PROJECT = 'EXTERNAL_EVENT_NEW_PROJECT';
677
708
  export var EXTERNAL_EVENT_CHANGE_DOORSTYLE = 'EXTERNAL_EVENT_CHANGE_DOORSTYLE';
@@ -682,7 +713,9 @@ export var EXTERNAL_EVENT_ZOOM_OUT = 'EXTERNAL_EVENT_ZOOM_OUT';
682
713
  export var EXTERNAL_EVENT_UNDO = 'EXTERNAL_EVENT_UNDO';
683
714
  export var EXTERNAL_EVENT_REDO = 'EXTERNAL_EVENT_REDO';
684
715
  export var EXTERNAL_EVENT_SET_MOLDING = 'EXTERNAL_EVENT_SET_MOLDING';
685
- export var EXTERNAL_EVENT_PROJECT_SETTING = 'EXTERNAL_EVENT_PROJECT_SETTING';
716
+ export var EXTERNAL_EVENT_PROJECT_SETTING = 'EXTERNAL_EVENT_PROJECT_SETTING'; // project setting event
717
+ export var EXTERNAL_EVENT_UPDATE_ATTRIBUTE = 'EXTERNAL_EVENT_UPDATE_ATTRIBUTE'; // update the element's attributes (distance, rotation...) in the property window
718
+ export var EXTERNAL_EVENT_UPDATE_PROPERTY = 'EXTERNAL_EVENT_UPDATE_PROPERTY'; // update the element's property (flip_doorhandle, open_doors...) in the property window
686
719
 
687
720
  // internal event type
688
721
  export var INTERNAL_EVENT_SELECT_ELEMENT = 'INTERNAL_EVENT_SELECT_ELEMENT';