kitchen-simulator 4.0.0-queuedEvents → 4.0.0

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.
Files changed (111) hide show
  1. package/es/LiteKitchenConfigurator.js +141 -288
  2. package/es/LiteRenderer.js +159 -398
  3. package/es/actions/items-actions.js +10 -6
  4. package/es/actions/lines-actions.js +3 -1
  5. package/es/actions/project-actions.js +15 -5
  6. package/es/assets/img/svg/bottombar/elevation.svg +12 -5
  7. package/es/catalog/areas/area/planner-element.js +10 -5
  8. package/es/catalog/catalog.js +1 -4
  9. package/es/catalog/factories/area-factory-3d.js +2 -1
  10. package/es/catalog/factories/wall-factory-3d.js +2 -2
  11. package/es/catalog/factories/wall-factory.js +8 -8
  12. package/es/catalog/lines/wall/planner-element.js +18 -9
  13. package/es/catalog/utils/exporter.js +7 -3
  14. package/es/catalog/utils/item-loader.js +24 -14
  15. package/es/catalog/utils/mtl-loader.js +2 -2
  16. package/es/catalog/utils/obj-loader.js +2 -2
  17. package/es/class/hole.js +0 -2
  18. package/es/class/item.js +183 -184
  19. package/es/class/line.js +11 -3
  20. package/es/class/project.js +165 -48
  21. package/es/components/content.js +19 -6
  22. package/es/components/viewer2d/grids/grid-streak.js +1 -1
  23. package/es/components/viewer2d/item.js +84 -51
  24. package/es/components/viewer2d/line.js +315 -243
  25. package/es/components/viewer2d/ruler.js +20 -38
  26. package/es/components/viewer2d/rulerDist.js +48 -78
  27. package/es/components/viewer2d/utils.js +6 -0
  28. package/es/components/viewer2d/viewer2d.js +298 -220
  29. package/es/components/viewer3d/front3D.js +3 -2
  30. package/es/components/viewer3d/libs/mtl-loader.js +2 -2
  31. package/es/components/viewer3d/libs/obj-loader.js +2 -2
  32. package/es/components/viewer3d/libs/orbit-controls.js +3 -4
  33. package/es/components/viewer3d/libs/pointer-lock-controls.js +6 -7
  34. package/es/components/viewer3d/scene-creator.js +51 -15
  35. package/es/components/viewer3d/viewer3d.js +121 -82
  36. package/es/constants.js +111 -3
  37. package/es/devLiteRenderer.js +688 -31
  38. package/es/index.js +567 -87
  39. package/es/models.js +9 -5
  40. package/es/plugins/SVGLoader.js +7 -5
  41. package/es/plugins/console-debugger.js +0 -2
  42. package/es/plugins/keyboard.js +15 -6
  43. package/es/reducers/items-reducer.js +5 -5
  44. package/es/reducers/lines-reducer.js +1 -1
  45. package/es/reducers/project-reducer.js +5 -3
  46. package/es/shared-style.js +4 -4
  47. package/es/utils/geometry.js +163 -2
  48. package/es/utils/get-edges-of-subgraphs.js +1 -1
  49. package/es/utils/graph-cycles.js +1 -1
  50. package/es/utils/graph.js +1 -1
  51. package/es/utils/helper.js +105 -3
  52. package/es/utils/isolate-event-handler.js +1542 -164
  53. package/es/utils/molding.js +461 -11
  54. package/lib/LiteKitchenConfigurator.js +141 -289
  55. package/lib/LiteRenderer.js +159 -399
  56. package/lib/actions/items-actions.js +10 -6
  57. package/lib/actions/lines-actions.js +3 -1
  58. package/lib/actions/project-actions.js +15 -4
  59. package/lib/assets/img/svg/bottombar/elevation.svg +12 -5
  60. package/lib/catalog/areas/area/planner-element.js +11 -5
  61. package/lib/catalog/catalog.js +1 -4
  62. package/lib/catalog/factories/area-factory-3d.js +2 -1
  63. package/lib/catalog/factories/wall-factory-3d.js +2 -2
  64. package/lib/catalog/factories/wall-factory.js +8 -8
  65. package/lib/catalog/lines/wall/planner-element.js +19 -9
  66. package/lib/catalog/utils/exporter.js +7 -3
  67. package/lib/catalog/utils/item-loader.js +24 -14
  68. package/lib/catalog/utils/mtl-loader.js +9 -2
  69. package/lib/catalog/utils/obj-loader.js +10 -2
  70. package/lib/class/hole.js +0 -2
  71. package/lib/class/item.js +180 -181
  72. package/lib/class/line.js +9 -1
  73. package/lib/class/project.js +164 -47
  74. package/lib/components/content.js +19 -6
  75. package/lib/components/viewer2d/grids/grid-streak.js +1 -1
  76. package/lib/components/viewer2d/item.js +83 -50
  77. package/lib/components/viewer2d/line.js +315 -242
  78. package/lib/components/viewer2d/ruler.js +19 -37
  79. package/lib/components/viewer2d/rulerDist.js +48 -78
  80. package/lib/components/viewer2d/utils.js +7 -0
  81. package/lib/components/viewer2d/viewer2d.js +296 -219
  82. package/lib/components/viewer3d/front3D.js +3 -2
  83. package/lib/components/viewer3d/libs/mtl-loader.js +9 -2
  84. package/lib/components/viewer3d/libs/obj-loader.js +9 -2
  85. package/lib/components/viewer3d/libs/orbit-controls.js +11 -5
  86. package/lib/components/viewer3d/libs/pointer-lock-controls.js +13 -7
  87. package/lib/components/viewer3d/scene-creator.js +49 -13
  88. package/lib/components/viewer3d/viewer3d.js +119 -80
  89. package/lib/constants.js +116 -7
  90. package/lib/devLiteRenderer.js +687 -30
  91. package/lib/index.js +567 -87
  92. package/lib/models.js +9 -5
  93. package/lib/plugins/SVGLoader.js +7 -5
  94. package/lib/plugins/console-debugger.js +0 -2
  95. package/lib/plugins/keyboard.js +15 -6
  96. package/lib/reducers/items-reducer.js +5 -5
  97. package/lib/reducers/lines-reducer.js +1 -1
  98. package/lib/reducers/project-reducer.js +4 -2
  99. package/lib/shared-style.js +4 -4
  100. package/lib/utils/geometry.js +164 -2
  101. package/lib/utils/get-edges-of-subgraphs.js +6 -1
  102. package/lib/utils/graph-cycles.js +7 -8
  103. package/lib/utils/graph.js +6 -1
  104. package/lib/utils/helper.js +108 -2
  105. package/lib/utils/isolate-event-handler.js +1538 -159
  106. package/lib/utils/molding.js +463 -9
  107. package/package.json +1 -1
  108. package/es/assets/Window.hdr +0 -2100
  109. package/es/assets/img/1.jpg +0 -0
  110. package/lib/assets/Window.hdr +0 -2100
  111. package/lib/assets/img/1.jpg +0 -0
@@ -2,7 +2,8 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { convert } from "../../utils/convert-units-lite";
4
4
  import IDBroker from "../../utils/id-broker";
5
- import { LINE_THICKNESS, SHADE_LIGHT_BLUE_COLOR, TEXT_COLOR_NEUTRAL_7 } from "../../constants";
5
+ import { LINE_THICKNESS, TEXT_COLOR_NEUTRAL_7, UNIT_FOOT, UNIT_METER } from "../../constants";
6
+ import { STYLE_ROOM_SHAPE } from "./line";
6
7
  var STYLE = {
7
8
  stroke: TEXT_COLOR_NEUTRAL_7,
8
9
  strokeWidth: '1px'
@@ -15,6 +16,7 @@ var STYLE_TEXT = {
15
16
  textAnchor: 'middle',
16
17
  fontSize: '12px',
17
18
  pointerEvents: 'none',
19
+ fill: '#455A64',
18
20
  //http://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting-using-css
19
21
  WebkitTouchCallout: 'none' /* iOS Safari */,
20
22
  WebkitUserSelect: 'none' /* Chrome/Safari/Opera */,
@@ -28,37 +30,11 @@ export default function Ruler(_ref) {
28
30
  unit = _ref.unit,
29
31
  rulerUnit = _ref.rulerUnit,
30
32
  transform = _ref.transform,
31
- flag = _ref.flag;
32
- var update = function update(lengthInput, unitInput, type) {
33
- var newLength = toFixedFloat(lengthInput);
34
- var merged = null;
35
- if (type === 0) {
36
- merged = value.merge({
37
- _length: newLength,
38
- length: convert(newLength).from(unitInput).to('cm')
39
- });
40
- } else {
41
- merged = value.merge({
42
- _length: convert(newLength).from(UNIT_INCH).to(unitInput),
43
- _unit: unitInput
44
- });
45
- }
46
- // if (hook) {
47
- // return hook(merged, sourceElement, internalState, state).then(val => {
48
- // return onUpdate(val);
49
- // });
50
- // }
51
- // return onUpdate(merged);
52
- };
53
- // let _unit = "in";
54
- // let distanceText = convert(length).from(unit).to(rulerUnit);
55
- var distanceText = convert(length).from(unit).to(rulerUnit).toFixed(0);
56
- var thickness = convert(LINE_THICKNESS).from(unit).to(rulerUnit).toFixed(0);
57
- // let _ft_len = convert(_length).from('in').to('ft');
58
- // let _ft_val = Math.floor(_ft_len); _ft_len -= _ft_val;
59
- // let _in_val = convert(_ft_len).from('ft').to('in').toFixed(0);
60
- // let distanceText = `${_ft_val}'${_in_val}"`;
61
- var textLength = (distanceText.length + layer.unit.length) * 18;
33
+ style = _ref.style;
34
+ var ruLength = convert(length).from(unit).to(rulerUnit);
35
+ var fixedLength = layer.unit === UNIT_METER || layer.unit === UNIT_FOOT ? 2 : 0;
36
+ var distanceText = (Math.round(convert(ruLength).from(rulerUnit).to(layer.unit) * 100) / 100).toFixed(fixedLength);
37
+ var textLength = (distanceText.length + layer.unit.length) * 9;
62
38
  return /*#__PURE__*/React.createElement("g", {
63
39
  transform: transform
64
40
  }, /*#__PURE__*/React.createElement("g", {
@@ -78,19 +54,25 @@ export default function Ruler(_ref) {
78
54
  transform: "scale(1, -1)",
79
55
  style: STYLE_TEXT,
80
56
  fill: TEXT_COLOR_NEUTRAL_7
81
- }, Math.round(convert(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/React.createElement("line", {
82
- x1: "0",
57
+ }, distanceText, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/React.createElement("line", {
58
+ x1: style === STYLE_ROOM_SHAPE ? 0 : 4,
83
59
  y1: "0",
84
60
  x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
85
61
  y2: "0",
86
- style: STYLE
62
+ style: style
87
63
  }), /*#__PURE__*/React.createElement("line", {
88
64
  x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
89
65
  y1: "0",
90
- x2: length,
66
+ x2: style === STYLE_ROOM_SHAPE ? length : length - 4,
91
67
  y2: "0",
92
- style: STYLE
93
- }));
68
+ style: style
69
+ }), style !== STYLE_ROOM_SHAPE && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("polygon", {
70
+ points: "3, 0, 6.5, -2, 6.5, 2 ",
71
+ style: style
72
+ }), /*#__PURE__*/React.createElement("polygon", {
73
+ points: "".concat(length - 3, ", 0, ").concat(length - 6.5, ", 2, ").concat(length - 6.5, ", -2"),
74
+ style: style
75
+ })));
94
76
  }
95
77
  Ruler.propTypes = {
96
78
  length: PropTypes.number.isRequired,
@@ -1,19 +1,22 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { convert } from "../../utils/convert-units-lite";
4
+ import { UNIT_FOOT, UNIT_METER } from "../../constants";
4
5
  var ARROW_STYLE = {
5
6
  stroke: '#1183B7',
6
7
  strokeWidth: '2px',
7
8
  strokeLinecap: 'round'
8
9
  };
9
10
  var STYLE = {
10
- stroke: 'black',
11
- strokeWidth: '1.1px'
11
+ stroke: '#455A64',
12
+ fill: '#455A64',
13
+ strokeWidth: '1.5px'
12
14
  };
13
15
  var STYLE_TEXT = {
14
16
  textAnchor: 'middle',
15
17
  fontSize: '10px',
16
18
  pointerEvents: 'none',
19
+ fill: '#455A64',
17
20
  //http://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting-using-css
18
21
  WebkitTouchCallout: 'none' /* iOS Safari */,
19
22
  WebkitUserSelect: 'none' /* Chrome/Safari/Opera */,
@@ -29,10 +32,10 @@ export default function RulerDist(_ref) {
29
32
  transform = _ref.transform,
30
33
  angle = _ref.angle,
31
34
  rotation = _ref.rotation;
32
- var _unit = 'in';
33
- // let _length = convert(length).from(unit).to(rulerUnit);
34
- var distanceText = "".concat(convert(length).from('cm').to(rulerUnit).toFixed(0));
35
- var textLength = (distanceText.length + layer.unit.length) * 18;
35
+ var ruLength = convert(length).from(unit).to(rulerUnit);
36
+ var fixedLength = layer.unit === UNIT_METER || layer.unit === UNIT_FOOT ? 2 : 0;
37
+ var distanceText = (Math.round(convert(ruLength).from(rulerUnit).to(layer.unit) * 100) / 100).toFixed(fixedLength);
38
+ var textLength = (distanceText.length + layer.unit.length) * 8;
36
39
  var textangle = angle + 90;
37
40
  var textRotation = 1;
38
41
  var ay = 2;
@@ -64,79 +67,46 @@ export default function RulerDist(_ref) {
64
67
  textRotation = 180;
65
68
  ay = 5;
66
69
  }
67
- if (Math.abs(length - textLength) / 2 <= 16) {
68
- var dy = textRotation == 0 ? 15 : -15;
69
- return /*#__PURE__*/React.createElement("g", {
70
- transform: transform
71
- }, /*#__PURE__*/React.createElement("g", {
72
- transform: "translate(0, ".concat(dy, ")")
73
- }, /*#__PURE__*/React.createElement("text", {
74
- x: "0",
75
- y: "0",
76
- transform: "translate(".concat(length / 2, ",").concat(ay, ") scale(1, -1) rotate(").concat(textRotation, ")"),
77
- style: STYLE_TEXT
78
- }, Math.round(convert(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit)), /*#__PURE__*/React.createElement("circle", {
79
- cx: "1",
80
- cy: "0",
81
- fill: "white",
82
- r: "1.1",
83
- stroke: "black",
84
- strokeWidth: "0.6"
85
- }), /*#__PURE__*/React.createElement("line", {
86
- x1: "2",
87
- y1: "0",
88
- x2: (length - textLength) / 2 < 0 ? 0 : length,
89
- y2: "0",
90
- style: STYLE
91
- }), /*#__PURE__*/React.createElement("line", {
92
- x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
93
- y1: "0",
94
- x2: length,
95
- y2: "0",
96
- style: STYLE
97
- }), /*#__PURE__*/React.createElement("circle", {
98
- cx: length - 1,
99
- cy: "0",
100
- fill: "white",
101
- r: "1.1",
102
- stroke: "black",
103
- strokeWidth: "0.6"
104
- }));
70
+ if (ruLength > 0) {
71
+ if (ruLength < 28) {
72
+ return /*#__PURE__*/React.createElement("g", {
73
+ transform: transform
74
+ }, /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("text", {
75
+ x: "0",
76
+ y: "0",
77
+ transform: "translate(".concat(length / 2, ",").concat(ay, ") scale(1, -1) rotate(").concat(textRotation, ")"),
78
+ style: STYLE_TEXT
79
+ }, distanceText, layer.unit === 'in' ? '"' : layer.unit)));
80
+ } else {
81
+ return /*#__PURE__*/React.createElement("g", {
82
+ transform: transform
83
+ }, /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("text", {
84
+ x: "0",
85
+ y: "0",
86
+ transform: "translate(".concat(length / 2, ",").concat(ay, ") scale(1, -1) rotate(").concat(textRotation, ")"),
87
+ style: STYLE_TEXT
88
+ }, distanceText, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/React.createElement("line", {
89
+ x1: "2",
90
+ y1: "0",
91
+ x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
92
+ y2: "0",
93
+ style: STYLE
94
+ }), /*#__PURE__*/React.createElement("polygon", {
95
+ points: "1, 0, 4.5, -2, 4.5, 2 ",
96
+ style: STYLE
97
+ }), /*#__PURE__*/React.createElement("line", {
98
+ x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
99
+ y1: "0",
100
+ x2: length,
101
+ y2: "0",
102
+ style: STYLE
103
+ }), /*#__PURE__*/React.createElement("polygon", {
104
+ points: "".concat(length - 1, ", 0, ").concat(length - 4.5, ", 2, ").concat(length - 4.5, ", -2"),
105
+ style: STYLE
106
+ }));
107
+ }
105
108
  } else {
106
- return /*#__PURE__*/React.createElement("g", {
107
- transform: transform
108
- }, /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("text", {
109
- x: "0",
110
- y: "0",
111
- transform: "translate(".concat(length / 2, ",").concat(ay, ") scale(1, -1) rotate(").concat(textRotation, ")"),
112
- style: STYLE_TEXT
113
- }, Math.round(convert(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit)), /*#__PURE__*/React.createElement("circle", {
114
- cx: "1",
115
- cy: "0",
116
- fill: "white",
117
- r: "1.1",
118
- stroke: "black",
119
- strokeWidth: "0.6"
120
- }), /*#__PURE__*/React.createElement("line", {
121
- x1: "2",
122
- y1: "0",
123
- x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
124
- y2: "0",
125
- style: STYLE
126
- }), /*#__PURE__*/React.createElement("line", {
127
- x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
128
- y1: "0",
129
- x2: length,
130
- y2: "0",
131
- style: STYLE
132
- }), /*#__PURE__*/React.createElement("circle", {
133
- cx: length - 1,
134
- cy: "0",
135
- fill: "white",
136
- r: "1.1",
137
- stroke: "black",
138
- strokeWidth: "0.6"
139
- }));
109
+ return null;
140
110
  }
141
111
  }
142
112
  RulerDist.propTypes = {
@@ -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
+ if (item.category === 'cabinet') 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;else return false;
187
193
  };