kitchen-simulator 2.0.23 → 2.0.30
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/actions/items-actions.js +3 -1
- package/es/catalog/utils/item-loader.js +10 -8
- package/es/class/item.js +16 -2
- package/es/components/viewer2d/utils.js +6 -0
- package/es/components/viewer2d/viewer2d.js +17 -7
- package/es/components/viewer3d/viewer3d.js +9 -5
- package/es/plugins/keyboard.js +15 -6
- package/es/reducers/items-reducer.js +1 -1
- package/es/utils/isolate-event-handler.js +1 -1
- package/lib/actions/items-actions.js +3 -1
- package/lib/catalog/utils/item-loader.js +10 -8
- package/lib/class/item.js +14 -0
- package/lib/components/viewer2d/utils.js +7 -0
- package/lib/components/viewer2d/viewer2d.js +18 -9
- package/lib/components/viewer3d/viewer3d.js +9 -5
- package/lib/plugins/keyboard.js +15 -6
- package/lib/reducers/items-reducer.js +1 -1
- package/lib/utils/isolate-event-handler.js +1 -1
- package/package.json +1 -1
|
@@ -32,9 +32,11 @@ export function editWidth(newWidth, layerID, itemID) {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
export function duplicateSelected(currentObject) {
|
|
35
|
+
var onInternalEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
35
36
|
return {
|
|
36
37
|
type: DUPLICATE_SELECTED,
|
|
37
|
-
currentObject: currentObject
|
|
38
|
+
currentObject: currentObject,
|
|
39
|
+
onInternalEvent: onInternalEvent
|
|
38
40
|
};
|
|
39
41
|
}
|
|
40
42
|
export function replaceItem(selectedPos, currentObject, selectedObject) {
|
|
@@ -13,6 +13,7 @@ import { Item } from "../../models";
|
|
|
13
13
|
import * as GeomUtils from "./geom-utils";
|
|
14
14
|
import { loadGLTF } from "./load-obj";
|
|
15
15
|
import { animateDoor, isEmpty, translateDrawer } from "../../utils/helper";
|
|
16
|
+
import { isWarningItem } from "../../components/viewer2d/utils";
|
|
16
17
|
var INITIAL_NORMAL_MAP = '';
|
|
17
18
|
|
|
18
19
|
// env Map ///////////////
|
|
@@ -174,7 +175,6 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
|
|
|
174
175
|
var rendered = null;
|
|
175
176
|
var svg_url, svg_width, svg_depth;
|
|
176
177
|
if (shape_svg || el_euro_shape_svg) {
|
|
177
|
-
var _element$toJS$doorSty;
|
|
178
178
|
if (typeof shape_svg == 'string' || typeof el_euro_shape_svg == 'string') {
|
|
179
179
|
if (el_DSN === 'Euro & Frameless' && el_is_euro_cds) {
|
|
180
180
|
svg_url = el_euro_shape_svg;
|
|
@@ -208,12 +208,16 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
|
|
|
208
208
|
},
|
|
209
209
|
onMouseEnter: function onMouseEnter(event) {
|
|
210
210
|
var bbox = event.target.getBoundingClientRect();
|
|
211
|
-
document.getElementById('warning_box_2d')
|
|
212
|
-
|
|
213
|
-
|
|
211
|
+
if (document.getElementById('warning_box_2d')) {
|
|
212
|
+
document.getElementById('warning_box_2d').style.display = 'flex';
|
|
213
|
+
document.getElementById('warning_box_2d').style.top = "".concat(bbox.top - 60, "px");
|
|
214
|
+
document.getElementById('warning_box_2d').style.left = "".concat(bbox.left, "px");
|
|
215
|
+
}
|
|
214
216
|
},
|
|
215
217
|
onMouseLeave: function onMouseLeave() {
|
|
216
|
-
document.getElementById('warning_box_2d')
|
|
218
|
+
if (document.getElementById('warning_box_2d')) {
|
|
219
|
+
document.getElementById('warning_box_2d').style.display = 'none';
|
|
220
|
+
}
|
|
217
221
|
}
|
|
218
222
|
}, /*#__PURE__*/React.createElement("circle", {
|
|
219
223
|
cx: 0,
|
|
@@ -299,9 +303,7 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
|
|
|
299
303
|
}), /*#__PURE__*/React.createElement("g", {
|
|
300
304
|
transform: "translate(".concat(padding_width, ",").concat(padding_depth, ")")
|
|
301
305
|
}, txtContent)), element.category === 'cabinet' && /*#__PURE__*/React.createElement("g", {
|
|
302
|
-
visibility: (element
|
|
303
|
-
return cd.itemID == (element === null || element === void 0 ? void 0 : element.getIn(['itemID']));
|
|
304
|
-
}).length) > 0 ? 'hidden' : 'visible'
|
|
306
|
+
visibility: isWarningItem(element) ? 'visible' : 'hidden'
|
|
305
307
|
}, warning_buttons)));
|
|
306
308
|
} else {
|
|
307
309
|
rendered = /*#__PURE__*/React.createElement("g", {
|
package/es/class/item.js
CHANGED
|
@@ -8,11 +8,11 @@ import { convert } from "../utils/convert-units-lite";
|
|
|
8
8
|
import { Group, Hole, Layer } from "./export";
|
|
9
9
|
import { GeometryUtils, IDBroker, MoldingUtils, NameGenerator } from "../utils/export";
|
|
10
10
|
import { fromJS, Map } from 'immutable';
|
|
11
|
-
import { INSTALLATION_SUFFIX_TYPE, MODE_DRAGGING_ITEM, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_ITEM, MODE_DRAWING_ITEM_3D, MODE_IDLE, MODE_IDLE_3D, MODE_ROTATING_ITEM, MODE_ROTATING_ITEM_3D, MOLDING_LOCATIONS } from "../constants";
|
|
11
|
+
import { INSTALLATION_SUFFIX_TYPE, INTERNAL_EVENT_DRAW_ELEMENT, MODE_DRAGGING_ITEM, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_ITEM, MODE_DRAWING_ITEM_3D, MODE_IDLE, MODE_IDLE_3D, MODE_ROTATING_ITEM, MODE_ROTATING_ITEM_3D, MOLDING_LOCATIONS } from "../constants";
|
|
12
12
|
import { debugUtil } from "../utils/helper";
|
|
13
13
|
import { isUndefined } from 'util';
|
|
14
14
|
import { hasMoldingLayout } from "../utils/molding";
|
|
15
|
-
import { getInstallationSuffix } from "../components/viewer2d/utils";
|
|
15
|
+
import { getInstallationSuffix, isWarningItem } from "../components/viewer2d/utils";
|
|
16
16
|
var allItemRect;
|
|
17
17
|
var allItemSnap;
|
|
18
18
|
var allLines;
|
|
@@ -262,6 +262,7 @@ var Item = /*#__PURE__*/function () {
|
|
|
262
262
|
}, {
|
|
263
263
|
key: "duplicateSelected",
|
|
264
264
|
value: function duplicateSelected(state, currentObject) {
|
|
265
|
+
var onInternalEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
265
266
|
var layerID = state.getIn(['scene', 'selectedLayer']);
|
|
266
267
|
var layer = state.getIn(['scene', 'layers', layerID]);
|
|
267
268
|
var objectID = currentObject.id;
|
|
@@ -269,6 +270,7 @@ var Item = /*#__PURE__*/function () {
|
|
|
269
270
|
var x = currentObject.x;
|
|
270
271
|
var y = currentObject.y;
|
|
271
272
|
var sceneComponentType, width, depth, rotRad;
|
|
273
|
+
var duplicatedElement = null;
|
|
272
274
|
switch (currentObject.prototype) {
|
|
273
275
|
case 'items':
|
|
274
276
|
myObject = state.getIn(['scene', 'layers', layerID, 'items', objectID]);
|
|
@@ -293,6 +295,7 @@ var Item = /*#__PURE__*/function () {
|
|
|
293
295
|
var _this$create = this.create(state, layerID, sceneComponentType, x + width * Math.cos(rotRad), y + width * Math.sin(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
|
|
294
296
|
stateI = _this$create.updatedState,
|
|
295
297
|
item = _this$create.item;
|
|
298
|
+
duplicatedElement = item;
|
|
296
299
|
if (item === null) {
|
|
297
300
|
alert('There are no Door Colors in this cabinet.');
|
|
298
301
|
state = state.merge({
|
|
@@ -319,6 +322,7 @@ var Item = /*#__PURE__*/function () {
|
|
|
319
322
|
var _this$create2 = this.create(state, layerID, sceneComponentType, x - width * Math.cos(rotRad), y - width * Math.sin(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
|
|
320
323
|
_stateI = _this$create2.updatedState,
|
|
321
324
|
_item = _this$create2.item;
|
|
325
|
+
duplicatedElement = _item;
|
|
322
326
|
if (_item === null) {
|
|
323
327
|
alert('There are no Door Colors in this cabinet.');
|
|
324
328
|
state = state.merge({
|
|
@@ -345,6 +349,7 @@ var Item = /*#__PURE__*/function () {
|
|
|
345
349
|
var _this$create3 = this.create(state, layerID, sceneComponentType, x - depth * Math.sin(rotRad), y - depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
|
|
346
350
|
_stateI2 = _this$create3.updatedState,
|
|
347
351
|
_item2 = _this$create3.item;
|
|
352
|
+
duplicatedElement = _item2;
|
|
348
353
|
if (_item2 === null) {
|
|
349
354
|
alert('There are no Door Colors in this cabinet.');
|
|
350
355
|
state = state.merge({
|
|
@@ -371,6 +376,7 @@ var Item = /*#__PURE__*/function () {
|
|
|
371
376
|
var _this$create4 = this.create(state, layerID, sceneComponentType, x + depth * Math.sin(rotRad), y + depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
|
|
372
377
|
_stateI3 = _this$create4.updatedState,
|
|
373
378
|
_item3 = _this$create4.item;
|
|
379
|
+
duplicatedElement = _item3;
|
|
374
380
|
if (_item3 === null) {
|
|
375
381
|
alert('There are no Door Colors in this cabinet.');
|
|
376
382
|
state = state.merge({
|
|
@@ -448,6 +454,14 @@ var Item = /*#__PURE__*/function () {
|
|
|
448
454
|
default:
|
|
449
455
|
break;
|
|
450
456
|
}
|
|
457
|
+
if (onInternalEvent && duplicatedElement) {
|
|
458
|
+
var jsElement = duplicatedElement.toJS();
|
|
459
|
+
if (jsElement.prototype === 'items') jsElement.isWarning = isWarningItem(duplicatedElement);
|
|
460
|
+
onInternalEvent({
|
|
461
|
+
type: INTERNAL_EVENT_DRAW_ELEMENT,
|
|
462
|
+
value: jsElement
|
|
463
|
+
});
|
|
464
|
+
}
|
|
451
465
|
return {
|
|
452
466
|
updatedState: state
|
|
453
467
|
};
|
|
@@ -184,4 +184,10 @@ export var areaPolygon = function areaPolygon(points) {
|
|
|
184
184
|
}
|
|
185
185
|
var area = det / 2;
|
|
186
186
|
return signed ? area : Math.abs(area);
|
|
187
|
+
};
|
|
188
|
+
export var isWarningItem = function isWarningItem(item) {
|
|
189
|
+
var _item$toJS$doorStyle;
|
|
190
|
+
return !(item !== null && item !== void 0 && (_item$toJS$doorStyle = item.toJS().doorStyle) !== null && _item$toJS$doorStyle !== void 0 && (_item$toJS$doorStyle = _item$toJS$doorStyle.doorStyles) !== null && _item$toJS$doorStyle !== void 0 && (_item$toJS$doorStyle = _item$toJS$doorStyle.cds) !== null && _item$toJS$doorStyle !== void 0 && _item$toJS$doorStyle.filter(function (cd) {
|
|
191
|
+
return cd.itemID == (item === null || item === void 0 ? void 0 : item.getIn(['itemID']));
|
|
192
|
+
}).length) > 0;
|
|
187
193
|
};
|
|
@@ -16,6 +16,7 @@ import { convert } from "../../utils/convert-units-lite";
|
|
|
16
16
|
import { Map } from 'immutable';
|
|
17
17
|
import { formatNumber } from "../../utils/math";
|
|
18
18
|
import { isEmpty } from "../../utils/helper"; // variables
|
|
19
|
+
import { isWarningItem } from "./utils";
|
|
19
20
|
// variables
|
|
20
21
|
var pinFlag = false;
|
|
21
22
|
var sFlag = false; //for all object move
|
|
@@ -949,7 +950,7 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
949
950
|
case 'items':
|
|
950
951
|
if (elementData.part === 'duplicate') {
|
|
951
952
|
var currentObject = state.getIn(['scene', 'layers', layerID, 'items', elementData.id]);
|
|
952
|
-
itemsActions.duplicateSelected(currentObject);
|
|
953
|
+
itemsActions.duplicateSelected(currentObject, onInternalEvent); // send draw internal event when duplicating
|
|
953
954
|
break;
|
|
954
955
|
} else if (elementData.part === 'remove') {
|
|
955
956
|
projectActions.remove();
|
|
@@ -959,10 +960,7 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
959
960
|
if (document.getElementById('setting_dialog')) {
|
|
960
961
|
document.getElementById('setting_dialog').style.display = 'none';
|
|
961
962
|
}
|
|
962
|
-
|
|
963
|
-
type: constants.INTERNAL_EVENT_REPLACE_CABINET,
|
|
964
|
-
value: state.getIn(['scene', 'layers', layerID, 'items', elementData.id]).toJS()
|
|
965
|
-
});
|
|
963
|
+
internalType = constants.INTERNAL_EVENT_REPLACE_CABINET;
|
|
966
964
|
itemsActions.selectItem(elementData.layer, elementData.id);
|
|
967
965
|
replaceCabinet(true);
|
|
968
966
|
break;
|
|
@@ -1259,9 +1257,10 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
1259
1257
|
if (internalType) {
|
|
1260
1258
|
var _currentObject = null;
|
|
1261
1259
|
var draggingDistance = Math.sqrt((x - mouseDownPoint.x) * (x - mouseDownPoint.x) + (y - mouseDownPoint.y) * (y - mouseDownPoint.y));
|
|
1262
|
-
if (internalType === INTERNAL_EVENT_SELECT_ELEMENT) {
|
|
1260
|
+
if (internalType === INTERNAL_EVENT_SELECT_ELEMENT || internalType === constants.INTERNAL_EVENT_REPLACE_CABINET) {
|
|
1263
1261
|
_currentObject = state.getIn(['scene', 'layers', layerID, elementData === null || elementData === void 0 ? void 0 : elementData.prototype, elementData === null || elementData === void 0 ? void 0 : elementData.id]);
|
|
1264
1262
|
// if (
|
|
1263
|
+
// internalType === INTERNAL_EVENT_SELECT_ELEMENT &&
|
|
1265
1264
|
// currentObject?.prototype === 'items' &&
|
|
1266
1265
|
// draggingDistance > constants.EPSILON
|
|
1267
1266
|
// )
|
|
@@ -1271,7 +1270,7 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
1271
1270
|
_currentObject = state.getIn(['scene', 'layers', layerID, elementPrototype, elementID]);
|
|
1272
1271
|
}
|
|
1273
1272
|
if (_currentObject) {
|
|
1274
|
-
var _currentObject2, _currentObject3;
|
|
1273
|
+
var _currentObject2, _currentObject3, _currentObject4;
|
|
1275
1274
|
var payload = (_currentObject2 = _currentObject) === null || _currentObject2 === void 0 ? void 0 : _currentObject2.toJS();
|
|
1276
1275
|
if (((_currentObject3 = _currentObject) === null || _currentObject3 === void 0 ? void 0 : _currentObject3.prototype) === 'lines') {
|
|
1277
1276
|
// caculating length of selected line//
|
|
@@ -1281,6 +1280,17 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
1281
1280
|
var _length3 = convert(distance).from('cm').to('in');
|
|
1282
1281
|
payload.length = _length3;
|
|
1283
1282
|
//////////////////////////////////////
|
|
1283
|
+
} else if (((_currentObject4 = _currentObject) === null || _currentObject4 === void 0 ? void 0 : _currentObject4.prototype) === 'items') {
|
|
1284
|
+
// check this cabinet has warning box
|
|
1285
|
+
payload.isWarning = isWarningItem(_currentObject);
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
// send selection event befor replace event
|
|
1289
|
+
if (internalType === constants.INTERNAL_EVENT_REPLACE_CABINET) {
|
|
1290
|
+
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
1291
|
+
type: INTERNAL_EVENT_SELECT_ELEMENT,
|
|
1292
|
+
value: payload
|
|
1293
|
+
});
|
|
1284
1294
|
}
|
|
1285
1295
|
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
1286
1296
|
type: internalType,
|
|
@@ -2587,7 +2587,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2587
2587
|
height: '70px',
|
|
2588
2588
|
animation: 'spin 2s linear infinite'
|
|
2589
2589
|
},
|
|
2590
|
-
src: '/assets/img/
|
|
2590
|
+
src: '/assets/img/loading/loading.gif',
|
|
2591
2591
|
alt: "img"
|
|
2592
2592
|
}));
|
|
2593
2593
|
} else {
|
|
@@ -2601,9 +2601,11 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2601
2601
|
}, /*#__PURE__*/React.createElement("img", {
|
|
2602
2602
|
style: {
|
|
2603
2603
|
animation: 'spin 2s linear infinite',
|
|
2604
|
-
marginTop: "
|
|
2604
|
+
marginTop: "50%",
|
|
2605
|
+
width: '50px',
|
|
2606
|
+
height: '50px'
|
|
2605
2607
|
},
|
|
2606
|
-
src: '/assets/img/
|
|
2608
|
+
src: '/assets/img/loading/loading.gif',
|
|
2607
2609
|
alt: "img"
|
|
2608
2610
|
}));
|
|
2609
2611
|
}
|
|
@@ -2620,9 +2622,11 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2620
2622
|
style: {
|
|
2621
2623
|
animation: 'spin 2s linear infinite',
|
|
2622
2624
|
position: "absolute",
|
|
2623
|
-
top: "50%"
|
|
2625
|
+
top: "50%",
|
|
2626
|
+
width: '50px',
|
|
2627
|
+
height: '50px'
|
|
2624
2628
|
},
|
|
2625
|
-
src: '/assets/img/
|
|
2629
|
+
src: '/assets/img/loading/loading.gif',
|
|
2626
2630
|
alt: "img"
|
|
2627
2631
|
}));
|
|
2628
2632
|
} else {
|
package/es/plugins/keyboard.js
CHANGED
|
@@ -6,12 +6,21 @@ export default function keyboard() {
|
|
|
6
6
|
var state = stateExtractor(store.getState());
|
|
7
7
|
var mode = state.get('mode');
|
|
8
8
|
switch (event.keyCode) {
|
|
9
|
-
case KEYBOARD_BUTTON_CODE.BACKSPACE:
|
|
10
|
-
case KEYBOARD_BUTTON_CODE.DELETE:
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
// case KEYBOARD_BUTTON_CODE.BACKSPACE:
|
|
10
|
+
// case KEYBOARD_BUTTON_CODE.DELETE: {
|
|
11
|
+
// if (
|
|
12
|
+
// [
|
|
13
|
+
// MODE_IDLE,
|
|
14
|
+
// MODE_3D_FIRST_PERSON,
|
|
15
|
+
// MODE_3D_VIEW,
|
|
16
|
+
// MODE_IDLE_3D,
|
|
17
|
+
// MODE_ROTATING_ITEM_3D,
|
|
18
|
+
// MODE_DRAGGING_ITEM_3D
|
|
19
|
+
// ].includes(mode)
|
|
20
|
+
// )
|
|
21
|
+
// store.dispatch(remove());
|
|
22
|
+
// break;
|
|
23
|
+
// }
|
|
15
24
|
case KEYBOARD_BUTTON_CODE.ESC:
|
|
16
25
|
{
|
|
17
26
|
store.dispatch(rollback());
|
|
@@ -17,7 +17,7 @@ export default function (state, action) {
|
|
|
17
17
|
case EDIT_WIDTH:
|
|
18
18
|
return Item.editWidth(state, action.newWidth, action.layerID, action.itemID).updatedState;
|
|
19
19
|
case DUPLICATE_SELECTED:
|
|
20
|
-
return Item.duplicateSelected(state, action.currentObject).updatedState;
|
|
20
|
+
return Item.duplicateSelected(state, action.currentObject, action.onInternalEvent).updatedState;
|
|
21
21
|
case END_CREATING_CABINET:
|
|
22
22
|
return Item.endCreatingCabinet(state).updatedState;
|
|
23
23
|
case UPDATE_POPUP_OPEN:
|
|
@@ -1238,7 +1238,7 @@ function _handleExternalEvent() {
|
|
|
1238
1238
|
return _context9.abrupt("continue", 37);
|
|
1239
1239
|
case 30:
|
|
1240
1240
|
distElement = getElement(evt.payload, state);
|
|
1241
|
-
if (distElement) props.itemsActions.duplicateSelected(distElement);
|
|
1241
|
+
if (distElement) props.itemsActions.duplicateSelected(distElement, props.onInternalEvent);
|
|
1242
1242
|
return _context9.abrupt("continue", 37);
|
|
1243
1243
|
case 31:
|
|
1244
1244
|
_distElement = getElement(evt.payload, state);
|
|
@@ -83,9 +83,11 @@ function editWidth(newWidth, layerID, itemID) {
|
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
85
|
function duplicateSelected(currentObject) {
|
|
86
|
+
var onInternalEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
86
87
|
return {
|
|
87
88
|
type: _constants.DUPLICATE_SELECTED,
|
|
88
|
-
currentObject: currentObject
|
|
89
|
+
currentObject: currentObject,
|
|
90
|
+
onInternalEvent: onInternalEvent
|
|
89
91
|
};
|
|
90
92
|
}
|
|
91
93
|
function replaceItem(selectedPos, currentObject, selectedObject) {
|
|
@@ -24,6 +24,7 @@ var _models = require("../../models");
|
|
|
24
24
|
var GeomUtils = _interopRequireWildcard(require("./geom-utils"));
|
|
25
25
|
var _loadObj = require("./load-obj");
|
|
26
26
|
var _helper = require("../../utils/helper");
|
|
27
|
+
var _utils = require("../../components/viewer2d/utils");
|
|
27
28
|
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" != _typeof3(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
29
|
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; }
|
|
29
30
|
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; }
|
|
@@ -188,7 +189,6 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
188
189
|
var rendered = null;
|
|
189
190
|
var svg_url, svg_width, svg_depth;
|
|
190
191
|
if (shape_svg || el_euro_shape_svg) {
|
|
191
|
-
var _element$toJS$doorSty;
|
|
192
192
|
if (typeof shape_svg == 'string' || typeof el_euro_shape_svg == 'string') {
|
|
193
193
|
if (el_DSN === 'Euro & Frameless' && el_is_euro_cds) {
|
|
194
194
|
svg_url = el_euro_shape_svg;
|
|
@@ -222,12 +222,16 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
222
222
|
},
|
|
223
223
|
onMouseEnter: function onMouseEnter(event) {
|
|
224
224
|
var bbox = event.target.getBoundingClientRect();
|
|
225
|
-
document.getElementById('warning_box_2d')
|
|
226
|
-
|
|
227
|
-
|
|
225
|
+
if (document.getElementById('warning_box_2d')) {
|
|
226
|
+
document.getElementById('warning_box_2d').style.display = 'flex';
|
|
227
|
+
document.getElementById('warning_box_2d').style.top = "".concat(bbox.top - 60, "px");
|
|
228
|
+
document.getElementById('warning_box_2d').style.left = "".concat(bbox.left, "px");
|
|
229
|
+
}
|
|
228
230
|
},
|
|
229
231
|
onMouseLeave: function onMouseLeave() {
|
|
230
|
-
document.getElementById('warning_box_2d')
|
|
232
|
+
if (document.getElementById('warning_box_2d')) {
|
|
233
|
+
document.getElementById('warning_box_2d').style.display = 'none';
|
|
234
|
+
}
|
|
231
235
|
}
|
|
232
236
|
}, /*#__PURE__*/_react["default"].createElement("circle", {
|
|
233
237
|
cx: 0,
|
|
@@ -313,9 +317,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
313
317
|
}), /*#__PURE__*/_react["default"].createElement("g", {
|
|
314
318
|
transform: "translate(".concat(padding_width, ",").concat(padding_depth, ")")
|
|
315
319
|
}, txtContent)), element.category === 'cabinet' && /*#__PURE__*/_react["default"].createElement("g", {
|
|
316
|
-
visibility: (
|
|
317
|
-
return cd.itemID == (element === null || element === void 0 ? void 0 : element.getIn(['itemID']));
|
|
318
|
-
}).length) > 0 ? 'hidden' : 'visible'
|
|
320
|
+
visibility: (0, _utils.isWarningItem)(element) ? 'visible' : 'hidden'
|
|
319
321
|
}, warning_buttons)));
|
|
320
322
|
} else {
|
|
321
323
|
rendered = /*#__PURE__*/_react["default"].createElement("g", {
|
package/lib/class/item.js
CHANGED
|
@@ -269,6 +269,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
|
|
|
269
269
|
}, {
|
|
270
270
|
key: "duplicateSelected",
|
|
271
271
|
value: function duplicateSelected(state, currentObject) {
|
|
272
|
+
var onInternalEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
272
273
|
var layerID = state.getIn(['scene', 'selectedLayer']);
|
|
273
274
|
var layer = state.getIn(['scene', 'layers', layerID]);
|
|
274
275
|
var objectID = currentObject.id;
|
|
@@ -276,6 +277,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
|
|
|
276
277
|
var x = currentObject.x;
|
|
277
278
|
var y = currentObject.y;
|
|
278
279
|
var sceneComponentType, width, depth, rotRad;
|
|
280
|
+
var duplicatedElement = null;
|
|
279
281
|
switch (currentObject.prototype) {
|
|
280
282
|
case 'items':
|
|
281
283
|
myObject = state.getIn(['scene', 'layers', layerID, 'items', objectID]);
|
|
@@ -300,6 +302,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
|
|
|
300
302
|
var _this$create = this.create(state, layerID, sceneComponentType, x + width * Math.cos(rotRad), y + width * Math.sin(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
|
|
301
303
|
stateI = _this$create.updatedState,
|
|
302
304
|
item = _this$create.item;
|
|
305
|
+
duplicatedElement = item;
|
|
303
306
|
if (item === null) {
|
|
304
307
|
alert('There are no Door Colors in this cabinet.');
|
|
305
308
|
state = state.merge({
|
|
@@ -326,6 +329,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
|
|
|
326
329
|
var _this$create2 = this.create(state, layerID, sceneComponentType, x - width * Math.cos(rotRad), y - width * Math.sin(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
|
|
327
330
|
_stateI = _this$create2.updatedState,
|
|
328
331
|
_item = _this$create2.item;
|
|
332
|
+
duplicatedElement = _item;
|
|
329
333
|
if (_item === null) {
|
|
330
334
|
alert('There are no Door Colors in this cabinet.');
|
|
331
335
|
state = state.merge({
|
|
@@ -352,6 +356,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
|
|
|
352
356
|
var _this$create3 = this.create(state, layerID, sceneComponentType, x - depth * Math.sin(rotRad), y - depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
|
|
353
357
|
_stateI2 = _this$create3.updatedState,
|
|
354
358
|
_item2 = _this$create3.item;
|
|
359
|
+
duplicatedElement = _item2;
|
|
355
360
|
if (_item2 === null) {
|
|
356
361
|
alert('There are no Door Colors in this cabinet.');
|
|
357
362
|
state = state.merge({
|
|
@@ -378,6 +383,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
|
|
|
378
383
|
var _this$create4 = this.create(state, layerID, sceneComponentType, x + depth * Math.sin(rotRad), y + depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
|
|
379
384
|
_stateI3 = _this$create4.updatedState,
|
|
380
385
|
_item3 = _this$create4.item;
|
|
386
|
+
duplicatedElement = _item3;
|
|
381
387
|
if (_item3 === null) {
|
|
382
388
|
alert('There are no Door Colors in this cabinet.');
|
|
383
389
|
state = state.merge({
|
|
@@ -455,6 +461,14 @@ var Item = exports["default"] = /*#__PURE__*/function () {
|
|
|
455
461
|
default:
|
|
456
462
|
break;
|
|
457
463
|
}
|
|
464
|
+
if (onInternalEvent && duplicatedElement) {
|
|
465
|
+
var jsElement = duplicatedElement.toJS();
|
|
466
|
+
if (jsElement.prototype === 'items') jsElement.isWarning = (0, _utils.isWarningItem)(duplicatedElement);
|
|
467
|
+
onInternalEvent({
|
|
468
|
+
type: _constants.INTERNAL_EVENT_DRAW_ELEMENT,
|
|
469
|
+
value: jsElement
|
|
470
|
+
});
|
|
471
|
+
}
|
|
458
472
|
return {
|
|
459
473
|
updatedState: state
|
|
460
474
|
};
|
|
@@ -9,6 +9,7 @@ exports.getInstallationSuffix = getInstallationSuffix;
|
|
|
9
9
|
exports.getToeKickSKU = void 0;
|
|
10
10
|
exports.isEmpty = isEmpty;
|
|
11
11
|
exports.isEqualInstallationType = isEqualInstallationType;
|
|
12
|
+
exports.isWarningItem = void 0;
|
|
12
13
|
exports.makeSKUForMagento = makeSKUForMagento;
|
|
13
14
|
exports.searchForSkuValue = exports.returnReplaceableDeepSearchType = void 0;
|
|
14
15
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
@@ -197,4 +198,10 @@ var areaPolygon = exports.areaPolygon = function areaPolygon(points) {
|
|
|
197
198
|
}
|
|
198
199
|
var area = det / 2;
|
|
199
200
|
return signed ? area : Math.abs(area);
|
|
201
|
+
};
|
|
202
|
+
var isWarningItem = exports.isWarningItem = function isWarningItem(item) {
|
|
203
|
+
var _item$toJS$doorStyle;
|
|
204
|
+
return !(item !== null && item !== void 0 && (_item$toJS$doorStyle = item.toJS().doorStyle) !== null && _item$toJS$doorStyle !== void 0 && (_item$toJS$doorStyle = _item$toJS$doorStyle.doorStyles) !== null && _item$toJS$doorStyle !== void 0 && (_item$toJS$doorStyle = _item$toJS$doorStyle.cds) !== null && _item$toJS$doorStyle !== void 0 && _item$toJS$doorStyle.filter(function (cd) {
|
|
205
|
+
return cd.itemID == (item === null || item === void 0 ? void 0 : item.getIn(['itemID']));
|
|
206
|
+
}).length) > 0;
|
|
200
207
|
};
|
|
@@ -22,10 +22,10 @@ var _convertUnitsLite = require("../../utils/convert-units-lite");
|
|
|
22
22
|
var _immutable = require("immutable");
|
|
23
23
|
var _math = require("../../utils/math");
|
|
24
24
|
var _helper = require("../../utils/helper");
|
|
25
|
+
var _utils = require("./utils");
|
|
25
26
|
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 _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
26
27
|
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; }
|
|
27
|
-
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; }
|
|
28
|
-
// variables
|
|
28
|
+
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; } // variables
|
|
29
29
|
// variables
|
|
30
30
|
var pinFlag = false;
|
|
31
31
|
var sFlag = false; //for all object move
|
|
@@ -959,7 +959,7 @@ function Viewer2D(_ref, _ref2) {
|
|
|
959
959
|
case 'items':
|
|
960
960
|
if (elementData.part === 'duplicate') {
|
|
961
961
|
var currentObject = state.getIn(['scene', 'layers', layerID, 'items', elementData.id]);
|
|
962
|
-
itemsActions.duplicateSelected(currentObject);
|
|
962
|
+
itemsActions.duplicateSelected(currentObject, onInternalEvent); // send draw internal event when duplicating
|
|
963
963
|
break;
|
|
964
964
|
} else if (elementData.part === 'remove') {
|
|
965
965
|
projectActions.remove();
|
|
@@ -969,10 +969,7 @@ function Viewer2D(_ref, _ref2) {
|
|
|
969
969
|
if (document.getElementById('setting_dialog')) {
|
|
970
970
|
document.getElementById('setting_dialog').style.display = 'none';
|
|
971
971
|
}
|
|
972
|
-
|
|
973
|
-
type: constants.INTERNAL_EVENT_REPLACE_CABINET,
|
|
974
|
-
value: state.getIn(['scene', 'layers', layerID, 'items', elementData.id]).toJS()
|
|
975
|
-
});
|
|
972
|
+
internalType = constants.INTERNAL_EVENT_REPLACE_CABINET;
|
|
976
973
|
itemsActions.selectItem(elementData.layer, elementData.id);
|
|
977
974
|
replaceCabinet(true);
|
|
978
975
|
break;
|
|
@@ -1269,9 +1266,10 @@ function Viewer2D(_ref, _ref2) {
|
|
|
1269
1266
|
if (internalType) {
|
|
1270
1267
|
var _currentObject = null;
|
|
1271
1268
|
var draggingDistance = Math.sqrt((x - mouseDownPoint.x) * (x - mouseDownPoint.x) + (y - mouseDownPoint.y) * (y - mouseDownPoint.y));
|
|
1272
|
-
if (internalType === _constants.INTERNAL_EVENT_SELECT_ELEMENT) {
|
|
1269
|
+
if (internalType === _constants.INTERNAL_EVENT_SELECT_ELEMENT || internalType === constants.INTERNAL_EVENT_REPLACE_CABINET) {
|
|
1273
1270
|
_currentObject = state.getIn(['scene', 'layers', layerID, elementData === null || elementData === void 0 ? void 0 : elementData.prototype, elementData === null || elementData === void 0 ? void 0 : elementData.id]);
|
|
1274
1271
|
// if (
|
|
1272
|
+
// internalType === INTERNAL_EVENT_SELECT_ELEMENT &&
|
|
1275
1273
|
// currentObject?.prototype === 'items' &&
|
|
1276
1274
|
// draggingDistance > constants.EPSILON
|
|
1277
1275
|
// )
|
|
@@ -1281,7 +1279,7 @@ function Viewer2D(_ref, _ref2) {
|
|
|
1281
1279
|
_currentObject = state.getIn(['scene', 'layers', layerID, elementPrototype, elementID]);
|
|
1282
1280
|
}
|
|
1283
1281
|
if (_currentObject) {
|
|
1284
|
-
var _currentObject2, _currentObject3;
|
|
1282
|
+
var _currentObject2, _currentObject3, _currentObject4;
|
|
1285
1283
|
var payload = (_currentObject2 = _currentObject) === null || _currentObject2 === void 0 ? void 0 : _currentObject2.toJS();
|
|
1286
1284
|
if (((_currentObject3 = _currentObject) === null || _currentObject3 === void 0 ? void 0 : _currentObject3.prototype) === 'lines') {
|
|
1287
1285
|
// caculating length of selected line//
|
|
@@ -1291,6 +1289,17 @@ function Viewer2D(_ref, _ref2) {
|
|
|
1291
1289
|
var _length3 = (0, _convertUnitsLite.convert)(distance).from('cm').to('in');
|
|
1292
1290
|
payload.length = _length3;
|
|
1293
1291
|
//////////////////////////////////////
|
|
1292
|
+
} else if (((_currentObject4 = _currentObject) === null || _currentObject4 === void 0 ? void 0 : _currentObject4.prototype) === 'items') {
|
|
1293
|
+
// check this cabinet has warning box
|
|
1294
|
+
payload.isWarning = (0, _utils.isWarningItem)(_currentObject);
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
// send selection event befor replace event
|
|
1298
|
+
if (internalType === constants.INTERNAL_EVENT_REPLACE_CABINET) {
|
|
1299
|
+
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
1300
|
+
type: _constants.INTERNAL_EVENT_SELECT_ELEMENT,
|
|
1301
|
+
value: payload
|
|
1302
|
+
});
|
|
1294
1303
|
}
|
|
1295
1304
|
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
1296
1305
|
type: internalType,
|
|
@@ -2594,7 +2594,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
2594
2594
|
height: '70px',
|
|
2595
2595
|
animation: 'spin 2s linear infinite'
|
|
2596
2596
|
},
|
|
2597
|
-
src: '/assets/img/
|
|
2597
|
+
src: '/assets/img/loading/loading.gif',
|
|
2598
2598
|
alt: "img"
|
|
2599
2599
|
}));
|
|
2600
2600
|
} else {
|
|
@@ -2608,9 +2608,11 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
2608
2608
|
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
2609
2609
|
style: {
|
|
2610
2610
|
animation: 'spin 2s linear infinite',
|
|
2611
|
-
marginTop: "
|
|
2611
|
+
marginTop: "50%",
|
|
2612
|
+
width: '50px',
|
|
2613
|
+
height: '50px'
|
|
2612
2614
|
},
|
|
2613
|
-
src: '/assets/img/
|
|
2615
|
+
src: '/assets/img/loading/loading.gif',
|
|
2614
2616
|
alt: "img"
|
|
2615
2617
|
}));
|
|
2616
2618
|
}
|
|
@@ -2627,9 +2629,11 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
2627
2629
|
style: {
|
|
2628
2630
|
animation: 'spin 2s linear infinite',
|
|
2629
2631
|
position: "absolute",
|
|
2630
|
-
top: "50%"
|
|
2632
|
+
top: "50%",
|
|
2633
|
+
width: '50px',
|
|
2634
|
+
height: '50px'
|
|
2631
2635
|
},
|
|
2632
|
-
src: '/assets/img/
|
|
2636
|
+
src: '/assets/img/loading/loading.gif',
|
|
2633
2637
|
alt: "img"
|
|
2634
2638
|
}));
|
|
2635
2639
|
} else {
|
package/lib/plugins/keyboard.js
CHANGED
|
@@ -12,12 +12,21 @@ function keyboard() {
|
|
|
12
12
|
var state = stateExtractor(store.getState());
|
|
13
13
|
var mode = state.get('mode');
|
|
14
14
|
switch (event.keyCode) {
|
|
15
|
-
case
|
|
16
|
-
case
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
// case KEYBOARD_BUTTON_CODE.BACKSPACE:
|
|
16
|
+
// case KEYBOARD_BUTTON_CODE.DELETE: {
|
|
17
|
+
// if (
|
|
18
|
+
// [
|
|
19
|
+
// MODE_IDLE,
|
|
20
|
+
// MODE_3D_FIRST_PERSON,
|
|
21
|
+
// MODE_3D_VIEW,
|
|
22
|
+
// MODE_IDLE_3D,
|
|
23
|
+
// MODE_ROTATING_ITEM_3D,
|
|
24
|
+
// MODE_DRAGGING_ITEM_3D
|
|
25
|
+
// ].includes(mode)
|
|
26
|
+
// )
|
|
27
|
+
// store.dispatch(remove());
|
|
28
|
+
// break;
|
|
29
|
+
// }
|
|
21
30
|
case _constants.KEYBOARD_BUTTON_CODE.ESC:
|
|
22
31
|
{
|
|
23
32
|
store.dispatch((0, _projectActions.rollback)());
|
|
@@ -20,7 +20,7 @@ function _default(state, action) {
|
|
|
20
20
|
case _constants.EDIT_WIDTH:
|
|
21
21
|
return _export.Item.editWidth(state, action.newWidth, action.layerID, action.itemID).updatedState;
|
|
22
22
|
case _constants.DUPLICATE_SELECTED:
|
|
23
|
-
return _export.Item.duplicateSelected(state, action.currentObject).updatedState;
|
|
23
|
+
return _export.Item.duplicateSelected(state, action.currentObject, action.onInternalEvent).updatedState;
|
|
24
24
|
case _constants.END_CREATING_CABINET:
|
|
25
25
|
return _export.Item.endCreatingCabinet(state).updatedState;
|
|
26
26
|
case _constants.UPDATE_POPUP_OPEN:
|
|
@@ -1245,7 +1245,7 @@ function _handleExternalEvent() {
|
|
|
1245
1245
|
return _context9.abrupt("continue", 37);
|
|
1246
1246
|
case 30:
|
|
1247
1247
|
distElement = getElement(evt.payload, state);
|
|
1248
|
-
if (distElement) props.itemsActions.duplicateSelected(distElement);
|
|
1248
|
+
if (distElement) props.itemsActions.duplicateSelected(distElement, props.onInternalEvent);
|
|
1249
1249
|
return _context9.abrupt("continue", 37);
|
|
1250
1250
|
case 31:
|
|
1251
1251
|
_distElement = getElement(evt.payload, state);
|