kitchen-simulator 1.0.0-alin.3 → 1.0.0-alin.31

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.
@@ -9,6 +9,9 @@ var _mockProps = _interopRequireDefault(require("./mocks/mockProps.json"));
9
9
  var _categoryData = _interopRequireDefault(require("./mocks/categoryData.json"));
10
10
  var _dataBundle = _interopRequireDefault(require("./mocks/dataBundle.json"));
11
11
  var _cabinetPayload = _interopRequireDefault(require("./mocks/cabinetPayload.json"));
12
+ var _doorStylePayload = _interopRequireDefault(require("./mocks/doorStylePayload.json"));
13
+ var _oStylePayload = _interopRequireDefault(require("./mocks/oStylePayload.json"));
14
+ var _rectangleShape = _interopRequireDefault(require("./mocks/rectangleShape.json"));
12
15
  var _reactDom = _interopRequireDefault(require("react-dom"));
13
16
  var _LiteRenderer = _interopRequireDefault(require("./LiteRenderer"));
14
17
  var _antd = require("antd");
@@ -26,6 +29,18 @@ function WorkSpace(props) {
26
29
  externalEvent = _useState2[0],
27
30
  setExternalEvent = _useState2[1];
28
31
  var offset = 5;
32
+ (0, _react.useEffect)(function () {
33
+ var evt = {
34
+ type: _constants.EXTERNAL_EVENT_SET_INITIAL_DATA,
35
+ payload: {
36
+ doorStyle: {
37
+ doorStyle: _doorStylePayload["default"],
38
+ oStyle: _oStylePayload["default"]
39
+ }
40
+ }
41
+ };
42
+ setExternalEvent(evt);
43
+ }, []);
29
44
  return /*#__PURE__*/_react["default"].createElement("div", {
30
45
  className: "flex gap-4"
31
46
  }, /*#__PURE__*/_react["default"].createElement(_antd.Button, {
@@ -111,6 +126,28 @@ function WorkSpace(props) {
111
126
  }
112
127
  }, /*#__PURE__*/_react["default"].createElement("img", {
113
128
  src: "/assets/img/svg/bottombar/arrow-right.svg"
129
+ })), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
130
+ actionType: "primary",
131
+ onClick: function onClick() {
132
+ var evt = {
133
+ type: _constants.EXTERNAL_EVENT_ZOOM_IN,
134
+ payload: {}
135
+ };
136
+ setExternalEvent(evt);
137
+ }
138
+ }, /*#__PURE__*/_react["default"].createElement("img", {
139
+ src: "/assets/img/svg/bottombar/arrow-minus.svg"
140
+ })), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
141
+ actionType: "primary",
142
+ onClick: function onClick() {
143
+ var evt = {
144
+ type: _constants.EXTERNAL_EVENT_ZOOM_OUT,
145
+ payload: {}
146
+ };
147
+ setExternalEvent(evt);
148
+ }
149
+ }, /*#__PURE__*/_react["default"].createElement("img", {
150
+ src: "/assets/img/svg/bottombar/arrow-plus.svg"
114
151
  })), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
115
152
  actionType: "primary",
116
153
  onClick: function onClick() {
@@ -138,9 +175,30 @@ function WorkSpace(props) {
138
175
  };
139
176
  setExternalEvent(evt);
140
177
  }
141
- }, "Add B12 Cabinet"), /*#__PURE__*/_react["default"].createElement(_LiteRenderer["default"], {
142
- width: 1200,
143
- height: 953,
178
+ }, "Add B12 Cabinet"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
179
+ actionType: "danger",
180
+ onClick: function onClick() {
181
+ var evt = {
182
+ type: _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE,
183
+ payload: {
184
+ doorStyle: _doorStylePayload["default"],
185
+ isAll: true
186
+ }
187
+ };
188
+ setExternalEvent(evt);
189
+ }
190
+ }, "DoorStyle (Change into Midtown White Shaker)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
191
+ actionType: "danger",
192
+ onClick: function onClick() {
193
+ var evt = {
194
+ type: _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE,
195
+ payload: _rectangleShape["default"]
196
+ };
197
+ setExternalEvent(evt);
198
+ }
199
+ }, "Add Room shape(rectangle)"), /*#__PURE__*/_react["default"].createElement(_LiteRenderer["default"], {
200
+ width: props.width,
201
+ height: props.height,
144
202
  projectElement: _mockProps["default"].projectElement,
145
203
  categoryData: _categoryData["default"],
146
204
  dataBundle: _dataBundle["default"],
@@ -162,4 +220,11 @@ function WorkSpace(props) {
162
220
  }
163
221
  }));
164
222
  }
165
- _reactDom["default"].render(/*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(WorkSpace, null)), document.getElementById('app'));
223
+ _reactDom["default"].render(/*#__PURE__*/_react["default"].createElement(_reactContainerDimensions["default"], null, function (_ref) {
224
+ var width = _ref.width,
225
+ height = _ref.height;
226
+ return /*#__PURE__*/_react["default"].createElement(WorkSpace, {
227
+ width: width,
228
+ height: height
229
+ });
230
+ }), document.getElementById('app'));
package/lib/index.js CHANGED
@@ -6,16 +6,29 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports["default"] = void 0;
8
8
  exports.renderKitchenSimulator = renderKitchenSimulator;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
10
  var _reactDom = _interopRequireDefault(require("react-dom"));
10
11
  var _react = _interopRequireDefault(require("react"));
11
12
  var _LiteRenderer = _interopRequireDefault(require("./LiteRenderer"));
13
+ 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
+ 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; }
12
15
  function renderKitchenSimulator(container) {
13
16
  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
17
+ var currentProps = props;
18
+
19
+ // Initial render
14
20
  var root = _reactDom["default"].render(/*#__PURE__*/_react["default"].createElement(_LiteRenderer["default"], props), container);
15
21
  return {
16
22
  root: root,
17
- unmount: function unmount() {
18
- _reactDom["default"].unmountComponentAtNode(container);
23
+ updateExternalEvent: function updateExternalEvent(newExternalEvent) {
24
+ var prevEvent = currentProps.externalEvent;
25
+ var isSameEvent = prevEvent && newExternalEvent && prevEvent.type === newExternalEvent.type && JSON.stringify(prevEvent.payload) === JSON.stringify(newExternalEvent.payload);
26
+ if (!isSameEvent) {
27
+ currentProps = _objectSpread(_objectSpread({}, currentProps), {}, {
28
+ externalEvent: newExternalEvent
29
+ });
30
+ _reactDom["default"].render(/*#__PURE__*/_react["default"].createElement(_LiteRenderer["default"], currentProps), container);
31
+ }
19
32
  }
20
33
  };
21
34
  }
@@ -108,7 +108,7 @@ function _default(state, action) {
108
108
  case _constants.SELECT_TOOL_DRAWING_ITEM_3D:
109
109
  return _export.Item.selectToolDrawingItem3D(state, action.sceneComponentType).updatedState;
110
110
  case _constants.SET_DOOR_STYLE:
111
- return _export.Item.setDoorStyle(state, action.doorStyle, action.pathes, action.isAll).updatedState;
111
+ return _export.Item.setDoorStyle(state, action.doorStyle, action.isAll).updatedState;
112
112
  case _constants.SET_HANDLE_MATERIAL:
113
113
  return _export.Item.setHandleMaterial(state, action.material).updatedState;
114
114
  case _constants.SET_DOOR_HANDLE:
@@ -69,42 +69,46 @@ var loadSVGsByItem = /*#__PURE__*/function () {
69
69
  return _ref.apply(this, arguments);
70
70
  };
71
71
  }();
72
- function handleExternalEvent(_x2, _x3) {
72
+ var compareSVGRect = function compareSVGRect(value) {
73
+ return value.e <= 10 && value.e + value.a * value.SVGWidth + 10 >= value.viewerWidth && value.f <= 80 && value.f + value.d * value.SVGHeight + 10 >= value.viewerHeight ? true : false;
74
+ };
75
+ function handleExternalEvent(_x2) {
73
76
  return _handleExternalEvent.apply(this, arguments);
74
77
  }
75
78
  function _handleExternalEvent() {
76
- _handleExternalEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(evt, props) {
77
- var state, sLineCnt, element, catalog, outlineSVGData, catalogInstance, elementJs, _evt$payload, moveType, moveValue, value, defaulTitle, _t2, _t3;
79
+ _handleExternalEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(props) {
80
+ var evt, state, sLineCnt, element, catalog, outlineSVGData, catalogInstance, elementJs, _evt$payload, moveType, moveValue, value, defaulTitle, _evt$payload2, doorStyle, isAll, _doorStyle, _value, _zoomValue, _value2, _zoomValue2, _t2, _t3;
78
81
  return _regenerator["default"].wrap(function (_context2) {
79
82
  while (1) switch (_context2.prev = _context2.next) {
80
83
  case 0:
81
- state = props.state;
84
+ evt = props.externalEvent;
85
+ state = props.state.get('KitchenConfigurator');
82
86
  _t2 = evt === null || evt === void 0 ? void 0 : evt.type;
83
- _context2.next = _t2 === _constants.EXTERNAL_EVENT_TOGGLE_TO_3D ? 1 : _t2 === _constants.EXTERNAL_EVENT_TOGGLE_TO_2D ? 2 : _t2 === _constants.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 3 : _t2 === _constants.EXTERNAL_EVENT_ADD_WALL ? 4 : _t2 === _constants.EXTERNAL_EVENT_ADD_ITEM ? 5 : _t2 === _constants.EXTERNAL_EVENT_MOVE_PAN ? 9 : _t2 === _constants.EXTERNAL_EVENT_NEW_PROJECT ? 15 : 16;
87
+ _context2.next = _t2 === _constants.EXTERNAL_EVENT_TOGGLE_TO_3D ? 1 : _t2 === _constants.EXTERNAL_EVENT_TOGGLE_TO_2D ? 2 : _t2 === _constants.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION ? 3 : _t2 === _constants.EXTERNAL_EVENT_ADD_WALL ? 4 : _t2 === _constants.EXTERNAL_EVENT_ADD_ITEM ? 5 : _t2 === _constants.EXTERNAL_EVENT_MOVE_PAN ? 9 : _t2 === _constants.EXTERNAL_EVENT_NEW_PROJECT ? 15 : _t2 === _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE ? 16 : _t2 === _constants.EXTERNAL_EVENT_SET_INITIAL_DATA ? 17 : _t2 === _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE ? 18 : _t2 === _constants.EXTERNAL_EVENT_ZOOM_IN ? 19 : _t2 === _constants.EXTERNAL_EVENT_ZOOM_OUT ? 22 : 25;
84
88
  break;
85
89
  case 1:
86
90
  props.projectActions.setMode(_constants.MODE_IDLE_3D);
87
- return _context2.abrupt("continue", 16);
91
+ return _context2.abrupt("continue", 25);
88
92
  case 2:
89
93
  props.projectActions.setMode(_constants.MODE_IDLE);
90
- return _context2.abrupt("continue", 16);
94
+ return _context2.abrupt("continue", 25);
91
95
  case 3:
92
- sLineCnt = state.getIn(['KitchenConfigurator', 'scene', 'layers', 'layer-1', 'selected', 'lines']).size;
96
+ sLineCnt = state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size;
93
97
  if (sLineCnt > 0) props.projectActions.setMode(_constants.MODE_ELEVATION_VIEW);
94
- return _context2.abrupt("continue", 16);
98
+ return _context2.abrupt("continue", 25);
95
99
  case 4:
96
100
  if (state.mode === _constants.MODE_IDLE || state.mode === _constants.MODE_2D_PAN) props.linesActions.selectToolDrawingLine('wall');else {
97
101
  props.projectActions.setMode(_constants.MODE_IDLE);
98
102
  props.linesActions.selectToolDrawingLine('wall');
99
103
  }
100
- return _context2.abrupt("continue", 16);
104
+ return _context2.abrupt("continue", 25);
101
105
  case 5:
102
106
  if ((0, _helper.isEmpty)(evt === null || evt === void 0 ? void 0 : evt.payload)) {
103
107
  _context2.next = 8;
104
108
  break;
105
109
  }
106
110
  element = evt.payload;
107
- catalog = state.getIn(['KitchenConfigurator', 'catalog']).toJS(); // add item to catalog of state
111
+ catalog = state.getIn(['catalog']).toJS(); // add item to catalog of state
108
112
  if (!(0, _helper.isEmpty)(catalog === null || catalog === void 0 ? void 0 : catalog.elements[element.name])) {
109
113
  _context2.next = 7;
110
114
  break;
@@ -129,10 +133,10 @@ function _handleExternalEvent() {
129
133
  props.projectActions.pushLastSelectedCatalogElementToHistory(element);
130
134
  props.projectActions.setIsCabinetDrawing(true);
131
135
  case 8:
132
- return _context2.abrupt("continue", 16);
136
+ return _context2.abrupt("continue", 25);
133
137
  case 9:
134
138
  _evt$payload = evt.payload, moveType = _evt$payload.moveType, moveValue = _evt$payload.moveValue;
135
- value = state.getIn(['KitchenConfigurator', 'viewer2D']).toJS();
139
+ value = state.getIn(['viewer2D']).toJS();
136
140
  _t3 = moveType;
137
141
  _context2.next = _t3 === _constants.TOP ? 10 : _t3 === _constants.BOTTOM ? 11 : _t3 === _constants.RIGHT ? 12 : _t3 === _constants.LEFT ? 13 : 14;
138
142
  break;
@@ -149,14 +153,79 @@ function _handleExternalEvent() {
149
153
  value.e -= moveValue;
150
154
  return _context2.abrupt("continue", 14);
151
155
  case 14:
152
- if (value.e <= 10 && value.e + value.a * value.SVGWidth + 10 >= value.viewerWidth && value.f <= 80 && value.f + value.d * value.SVGHeight + 10 >= value.viewerHeight) props.viewer2DActions.updateCameraView(value);
153
- return _context2.abrupt("continue", 16);
156
+ if (compareSVGRect(value)) props.viewer2DActions.updateCameraView(value);
157
+ return _context2.abrupt("continue", 25);
154
158
  case 15:
155
159
  defaulTitle = 'Untitle';
156
160
  props.projectActions.newProject();
157
161
  props.projectActions.rename(defaulTitle);
158
- return _context2.abrupt("continue", 16);
162
+ return _context2.abrupt("continue", 25);
159
163
  case 16:
164
+ _evt$payload2 = evt.payload, doorStyle = _evt$payload2.doorStyle, isAll = _evt$payload2.isAll;
165
+ props.itemsActions.setDoorStyle(doorStyle, isAll);
166
+ return _context2.abrupt("continue", 25);
167
+ case 17:
168
+ _doorStyle = evt.payload.doorStyle;
169
+ props.itemsActions.setInitialDoorStyle(_doorStyle.doorStyle, _doorStyle.oStyle);
170
+ return _context2.abrupt("continue", 25);
171
+ case 18:
172
+ props.projectActions.loadProject(evt.payload, props.categoryData);
173
+ return _context2.abrupt("continue", 25);
174
+ case 19:
175
+ _value = state.getIn(['viewer2D']).toJS();
176
+ _value.a -= 0.1;
177
+ _value.d -= 0.1;
178
+ _value.e += _value.SVGWidth * 0.1 / 2;
179
+ _value.f += _value.SVGHeight * 0.1 / 2;
180
+ _zoomValue = parseInt((_value.a - 0.5) / _constants.ZOOM_VARIABLE);
181
+ if (!(_zoomValue > 404)) {
182
+ _context2.next = 20;
183
+ break;
184
+ }
185
+ return _context2.abrupt("return");
186
+ case 20:
187
+ if (!(_zoomValue < 35 || Number.isNaN(_zoomValue))) {
188
+ _context2.next = 21;
189
+ break;
190
+ }
191
+ return _context2.abrupt("return");
192
+ case 21:
193
+ while (!(_value.e <= 10)) {
194
+ _value.e -= 0.1;
195
+ }
196
+ while (!(_value.e + _value.a * _value.SVGWidth + 10 >= _value.viewerWidth)) {
197
+ _value.e += 0.1;
198
+ }
199
+ while (!(_value.f <= 80)) {
200
+ _value.f -= 0.1;
201
+ }
202
+ while (!(_value.f + _value.a * _value.SVGHeight + 10 >= _value.viewerHeight)) {
203
+ _value.f += 0.1;
204
+ }
205
+ if (compareSVGRect(_value)) props.viewer2DActions.updateCameraView(_value);
206
+ return _context2.abrupt("continue", 25);
207
+ case 22:
208
+ _value2 = state.getIn(['viewer2D']).toJS();
209
+ _value2.a += 0.1;
210
+ _value2.d += 0.1;
211
+ _value2.e -= _value2.SVGWidth * 0.1 / 2;
212
+ _value2.f -= _value2.SVGHeight * 0.1 / 2;
213
+ _zoomValue2 = parseInt((_value2.a - 0.5) / _constants.ZOOM_VARIABLE);
214
+ if (!(_zoomValue2 > 404)) {
215
+ _context2.next = 23;
216
+ break;
217
+ }
218
+ return _context2.abrupt("return");
219
+ case 23:
220
+ if (!(_zoomValue2 < 35 || Number.isNaN(_zoomValue2))) {
221
+ _context2.next = 24;
222
+ break;
223
+ }
224
+ return _context2.abrupt("return");
225
+ case 24:
226
+ if (compareSVGRect(_value2)) props.viewer2DActions.updateCameraView(_value2);
227
+ return _context2.abrupt("continue", 25);
228
+ case 25:
160
229
  case "end":
161
230
  return _context2.stop();
162
231
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitchen-simulator",
3
- "version": "1.0.0-alin.03",
3
+ "version": "1.0.0-alin.31",
4
4
  "description": "It is a kitchen simulator (self-contained micro-frontend).",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",
@@ -82,13 +82,13 @@
82
82
  "react-hotjar": "^1.0.11",
83
83
  "react-icons": "3.5.0",
84
84
  "react-redux": "5.0.7",
85
- "react-svg-pan-zoom": "^3.13.1",
85
+ "react-svg-pan-zoom": "2.18.0",
86
86
  "redux": "4.0.1",
87
87
  "three": "0.166.0",
88
88
  "moment": "^2.30.1",
89
89
  "jwt-decode": "^2.2.0",
90
90
  "react-ga4": "^1.4.1",
91
- "styled-components": "^6.1.19"
91
+ "styled-components": "^5.2.0"
92
92
  },
93
93
  "devDependencies": {
94
94
  "localstorage-slim": "^1.3.0",