kitchen-simulator 4.4.2-dynamic-holes → 4.4.2-new-json

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 (35) hide show
  1. package/es/LiteRenderer.js +13 -147
  2. package/es/catalog/factories/area-factory-3d.js +0 -4
  3. package/es/catalog/utils/item-loader.js +3 -22
  4. package/es/class/item.js +1 -1
  5. package/es/constants/catalog/skinPanel.js +9 -0
  6. package/es/constants.js +6 -8
  7. package/es/devLiteRenderer.js +89 -109
  8. package/es/mappings/external-events/mapExternalEventPayload.js +21 -0
  9. package/es/mappings/external-events/mappers/addItemMapper.js +86 -0
  10. package/es/mappings/external-events/mappers/ccdfMapper.js +101 -0
  11. package/es/mappings/external-events/mappers/changeDoorStyleMapper.js +65 -0
  12. package/es/mappings/holesToCatalog.js +139 -0
  13. package/es/models.js +3 -1
  14. package/es/utils/helper.js +18 -9
  15. package/es/utils/isolate-event-handler.js +216 -148
  16. package/es/utils/molding.js +20 -236
  17. package/es/utils/skinPanelEngine.js +230 -26
  18. package/lib/LiteRenderer.js +17 -151
  19. package/lib/catalog/factories/area-factory-3d.js +0 -4
  20. package/lib/catalog/utils/item-loader.js +2 -21
  21. package/lib/class/item.js +1 -1
  22. package/lib/constants/catalog/skinPanel.js +15 -0
  23. package/lib/constants.js +11 -13
  24. package/lib/devLiteRenderer.js +91 -111
  25. package/lib/mappings/external-events/mapExternalEventPayload.js +26 -0
  26. package/lib/mappings/external-events/mappers/addItemMapper.js +92 -0
  27. package/lib/mappings/external-events/mappers/ccdfMapper.js +108 -0
  28. package/lib/mappings/external-events/mappers/changeDoorStyleMapper.js +72 -0
  29. package/lib/mappings/holesToCatalog.js +148 -0
  30. package/lib/models.js +3 -1
  31. package/lib/utils/helper.js +20 -9
  32. package/lib/utils/isolate-event-handler.js +215 -147
  33. package/lib/utils/molding.js +20 -237
  34. package/lib/utils/skinPanelEngine.js +232 -28
  35. package/package.json +1 -1
@@ -1,13 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
4
  var _excluded = ["width", "height", "configData", "externalEvent", "onInternalEvent", "onError", "holes"];
5
+ 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; }
6
+ 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; }
6
7
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
7
8
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
8
9
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
9
- 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; }
10
- 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; }
11
10
  // LiteRenderer.jsx
12
11
  import React, { useCallback, useEffect, useMemo, useRef } from 'react';
13
12
  import PropTypes from 'prop-types';
@@ -23,7 +22,7 @@ import AppContext from "./AppContext";
23
22
  import Catalog from "./catalog/catalog";
24
23
  import * as Areas from "./catalog/areas/area/planner-element";
25
24
  import * as Lines from "./catalog/lines/wall/planner-element";
26
- import * as Holes from "./catalog/holes/export";
25
+ import { buildHoleElements, registerDynamicHoles } from "./mappings/holesToCatalog";
27
26
  import { ConsoleDebugger, Keyboard } from "./plugins/export";
28
27
  import LiteKitchenConfigurator from "./LiteKitchenConfigurator";
29
28
  var isBrowser = typeof window !== 'undefined';
@@ -73,150 +72,16 @@ function serializeError(err) {
73
72
  };
74
73
  }
75
74
  }
76
- var INCH_TO_CM = 2.54;
77
- var normalizeKey = function normalizeKey(value) {
78
- return (value !== null && value !== void 0 ? value : '').toString().toLowerCase().replace(/[^a-z0-9]+/g, '');
79
- };
80
- var safeParseJson = function safeParseJson(value) {
81
- if (!value) return null;
82
- try {
83
- return JSON.parse(value);
84
- } catch (_unused3) {
85
- return null;
86
- }
87
- };
88
- var toCatalogLength = function toCatalogLength(value, prop) {
89
- var _prop$defaultValue;
90
- if (value == null) return null;
91
- var unit = prop === null || prop === void 0 || (_prop$defaultValue = prop.defaultValue) === null || _prop$defaultValue === void 0 ? void 0 : _prop$defaultValue.unit;
92
- if (unit && unit.toLowerCase() === 'in') return value;
93
- return value * INCH_TO_CM;
94
- };
95
- var overrideLengthProperty = function overrideLengthProperty(prop, value) {
96
- if (!prop || value == null) return prop;
97
- var length = toCatalogLength(value, prop);
98
- if (length == null) return prop;
99
- return _objectSpread(_objectSpread({}, prop), {}, {
100
- defaultValue: _objectSpread(_objectSpread({}, prop.defaultValue), {}, {
101
- length: length
102
- })
103
- });
104
- };
105
- var findBaseHoleTemplate = function findBaseHoleTemplate(hole, templates) {
106
- var target = normalizeKey(hole === null || hole === void 0 ? void 0 : hole.name);
107
- if (!target) return null;
108
- return templates.find(function (template) {
109
- var _template$info, _template$info2;
110
- var candidates = [template === null || template === void 0 ? void 0 : template.name, template === null || template === void 0 || (_template$info = template.info) === null || _template$info === void 0 ? void 0 : _template$info.title, template === null || template === void 0 || (_template$info2 = template.info) === null || _template$info2 === void 0 ? void 0 : _template$info2.description].map(normalizeKey);
111
- return candidates.includes(target);
112
- }) || null;
113
- };
114
- var buildHoleElementFromTemplate = function buildHoleElementFromTemplate(hole, base) {
115
- var _base$info, _base$info2, _base$info3, _base$info4, _base$info5, _base$structure_json;
116
- if (!hole || !base) return null;
117
- var nextInfo = _objectSpread(_objectSpread({}, base.info), {}, {
118
- title: hole.name || ((_base$info = base.info) === null || _base$info === void 0 ? void 0 : _base$info.title),
119
- description: ((_base$info2 = base.info) === null || _base$info2 === void 0 ? void 0 : _base$info2.description) || hole.name || ((_base$info3 = base.info) === null || _base$info3 === void 0 ? void 0 : _base$info3.title),
120
- image: hole.menu_thumbnail || ((_base$info4 = base.info) === null || _base$info4 === void 0 ? void 0 : _base$info4.image),
121
- url: hole.gltf || ((_base$info5 = base.info) === null || _base$info5 === void 0 ? void 0 : _base$info5.url)
122
- });
123
- var nextProperties = _objectSpread({}, base.properties);
124
- if (nextProperties.width) {
125
- nextProperties.width = overrideLengthProperty(nextProperties.width, hole.width);
126
- }
127
- if (nextProperties.height) {
128
- nextProperties.height = overrideLengthProperty(nextProperties.height, hole.height);
129
- }
130
- if (nextProperties.length) {
131
- nextProperties.length = overrideLengthProperty(nextProperties.length, hole.length);
132
- }
133
- var customConfig = safeParseJson(hole.custom_config);
134
- var customProps = (customConfig === null || customConfig === void 0 ? void 0 : customConfig.properties) || {};
135
- Object.keys(customProps).forEach(function (key) {
136
- if (!nextProperties[key]) return;
137
- nextProperties[key] = overrideLengthProperty(nextProperties[key], customProps[key]);
138
- });
139
- return _objectSpread(_objectSpread({}, base), {}, {
140
- name: hole.name || base.name,
141
- info: nextInfo,
142
- properties: nextProperties,
143
- structure_json: _objectSpread(_objectSpread({}, base.structure_json || {}), {}, {
144
- hole_id: hole.id || ((_base$structure_json = base.structure_json) === null || _base$structure_json === void 0 ? void 0 : _base$structure_json.hole_id)
145
- })
146
- });
147
- };
148
- var buildHoleElements = function buildHoleElements(holes) {
149
- var categories = {
150
- Doors: [],
151
- Windows: []
152
- };
153
- var elements = [];
154
- if (!Array.isArray(holes)) return {
155
- elements: elements,
156
- categories: categories
157
- };
158
- var templates = Object.values(Holes);
159
- var usedNames = new Set();
160
- holes.forEach(function (hole) {
161
- var _base$info6;
162
- if (!hole || hole.is_deleted) return;
163
- var base = findBaseHoleTemplate(hole, templates);
164
- if (!base) return;
165
- var element = buildHoleElementFromTemplate(hole, base);
166
- if (!element || !element.name || usedNames.has(element.name)) return;
167
- usedNames.add(element.name);
168
- elements.push(element);
169
- var typeKey = normalizeKey(hole.type);
170
- if (typeKey === 'window') {
171
- categories.Windows.push(element);
172
- } else if (typeKey === 'door') {
173
- categories.Doors.push(element);
174
- } else if ((_base$info6 = base.info) !== null && _base$info6 !== void 0 && (_base$info6 = _base$info6.tag) !== null && _base$info6 !== void 0 && _base$info6.includes('window')) {
175
- categories.Windows.push(element);
176
- } else {
177
- categories.Doors.push(element);
178
- }
179
- });
180
- return {
181
- elements: elements,
182
- categories: categories
183
- };
184
- };
185
75
 
186
76
  // ----------------- catalog init -----------------
187
- function initCatalogOnce(catalog, holePayload) {
77
+ function initCatalogOnce(catalog) {
188
78
  if (!catalog) return;
189
79
  if (!catalog.__ksInitialized) {
190
80
  for (var x in Areas) catalog.registerElement(Areas[x]);
191
81
  for (var _x in Lines) catalog.registerElement(Lines[_x]);
192
82
  catalog.__ksInitialized = true;
193
83
  }
194
- var holeElements = (holePayload === null || holePayload === void 0 ? void 0 : holePayload.elements) || [];
195
- holeElements.forEach(function (element) {
196
- if (!catalog.hasElement(element.name)) {
197
- console.log(element);
198
- catalog.registerElement(element);
199
- }
200
- });
201
- var categories = (holePayload === null || holePayload === void 0 ? void 0 : holePayload.categories) || {};
202
- Object.entries(categories).forEach(function (_ref) {
203
- var _ref2 = _slicedToArray(_ref, 2),
204
- name = _ref2[0],
205
- elements = _ref2[1];
206
- if (!elements.length) return;
207
- if (!catalog.hasCategory(name)) {
208
- catalog.registerCategory(name, name, elements);
209
- return;
210
- }
211
- elements.forEach(function (element) {
212
- if (!catalog.categoryHasElement(name, element.name)) {
213
- catalog.addToCategory(name, element);
214
- }
215
- });
216
- });
217
84
  }
218
-
219
- // ----------------- store factory -----------------
220
85
  function createInstanceStore() {
221
86
  var AppState = Map({
222
87
  KitchenConfigurator: new State()
@@ -272,7 +137,8 @@ export default function LiteRenderer(props) {
272
137
  if (!catalogRef.current) {
273
138
  catalogRef.current = new Catalog();
274
139
  }
275
- initCatalogOnce(catalogRef.current, holePayload);
140
+ initCatalogOnce(catalogRef.current);
141
+ registerDynamicHoles(catalogRef.current, holePayload);
276
142
 
277
143
  // ✅ stable plugins array
278
144
  var plugins = useMemo(function () {
@@ -295,7 +161,7 @@ export default function LiteRenderer(props) {
295
161
  try {
296
162
  var maybeCleanup = p === null || p === void 0 ? void 0 : p(store, stateExtractor);
297
163
  if (typeof maybeCleanup === 'function') cleanups.push(maybeCleanup);
298
- } catch (_unused5) {
164
+ } catch (_unused4) {
299
165
  // keep prior behavior: do not crash
300
166
  }
301
167
  }
@@ -313,7 +179,7 @@ export default function LiteRenderer(props) {
313
179
  var fn = _step2.value;
314
180
  try {
315
181
  fn();
316
- } catch (_unused4) {}
182
+ } catch (_unused3) {}
317
183
  }
318
184
  } catch (err) {
319
185
  _iterator2.e(err);
@@ -344,7 +210,7 @@ export default function LiteRenderer(props) {
344
210
  };
345
211
  try {
346
212
  onError === null || onError === void 0 || onError(payload);
347
- } catch (_unused6) {}
213
+ } catch (_unused5) {}
348
214
  // eslint-disable-next-line no-console
349
215
  console.debug('[LiteRenderer:onError]', payload);
350
216
  lastEmittedRef.current = payload;
@@ -405,9 +271,9 @@ export default function LiteRenderer(props) {
405
271
  emit(lastExternalEventRef.current, last.errors);
406
272
  }
407
273
  }, [externalEvent, emit]);
408
- var _ref3 = configData || {},
409
- logoImg = _ref3.logoImg,
410
- companyUrl = _ref3.companyUrl;
274
+ var _ref = configData || {},
275
+ logoImg = _ref.logoImg,
276
+ companyUrl = _ref.companyUrl;
411
277
  return /*#__PURE__*/React.createElement(AppContext.Provider, null, /*#__PURE__*/React.createElement(Provider, {
412
278
  store: storeRef.current
413
279
  }, /*#__PURE__*/React.createElement(LiteKitchenConfigurator, _extends({
@@ -75,10 +75,6 @@ export function createArea(element, layer, scene, textures) {
75
75
  } else {
76
76
  color = SharedStyle.AREA_MESH_COLOR.unselected;
77
77
  }
78
- if (texture.uri === undefined || texture.uri == '') {
79
- // @todo THIS IS A TEMPORARY FIX TO HAVE A DEFAULT FLOOR TEXTURE
80
- texture.uri = layer.floorStyle.uri || 'https://media.test.diydesignspace.com/uploads/CountTop/202203162950_2/texture/oak-barcelona-s.jpg';
81
- }
82
78
  var shape = new Shape();
83
79
  shape.moveTo(vertices[0].x, vertices[0].y);
84
80
  for (var i = 1; i < vertices.length; i++) {
@@ -12,7 +12,7 @@ import { ARROW_COLOR, BASE_CABINET_LAYOUTPOS, OBJTYPE_GROUP, OBJTYPE_MESH, SHADE
12
12
  import { Item } from "../../models";
13
13
  import * as GeomUtils from "./geom-utils";
14
14
  import { loadGLTF } from "./load-obj";
15
- import { animateDoor, isEmpty, translateDrawer } from "../../utils/helper";
15
+ import { animateDoor, getSkuAliasFromCatalogElement, isEmpty, translateDrawer } from "../../utils/helper";
16
16
  import { isWarningItem } from "../../components/viewer2d/utils";
17
17
  var INITIAL_NORMAL_MAP = '';
18
18
 
@@ -122,23 +122,8 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
122
122
  var lineCount = 0; //parseInt(((newWidth) / 8 - 0.51).toFixed(), 10) - 1;
123
123
  var rowCount = 0; //parseInt((element.type.length / lineCount - 0.51).toFixed(), 10);
124
124
 
125
- // Get type
126
- var objSKU = this.obj.sku_number;
127
- if (objSKU.length !== 0) {
128
- var dcId,
129
- doorStyle = element.doorStyle;
130
- if (doorStyle instanceof Map) {
131
- dcId = doorStyle.get('id');
132
- } else {
133
- dcId = doorStyle.id;
134
- }
135
- var skuItem = this.obj.skuArray.find(function (el) {
136
- return el.door_color_id === dcId;
137
- });
138
- if (skuItem !== undefined) {
139
- objSKU = skuItem.sku;
140
- }
141
- }
125
+ // Get SKU Alias
126
+ var objSKU = getSkuAliasFromCatalogElement(this, element);
142
127
  if (rowCount > 0) {
143
128
  for (var _x = 0; _x < rowCount; _x++) {
144
129
  splitStr.push(objSKU.slice(lineCount * _x, lineCount * (_x + 1)));
@@ -1003,10 +988,6 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1003
988
  if (isEmpty(counterTop.uri) && !isEmpty(layer === null || layer === void 0 || (_layer$toJS = layer.toJS()) === null || _layer$toJS === void 0 ? void 0 : _layer$toJS.counterTop.uri)) {
1004
989
  counterTop.uri = layer.toJS().counterTop.uri;
1005
990
  }
1006
- if (isEmpty(counterTop.uri)) {
1007
- //@todo THIS IS A TEMPORARY FIX FOR COUNTERTOP TEXTURE UNDEFINED ISSUE
1008
- counterTop.uri = 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg';
1009
- }
1010
991
  var countTopMap = counterTop.uri;
1011
992
  var interiorMap = doorStyles.get('interior');
1012
993
  var countT = loadTexture(countTopMap);
package/es/class/item.js CHANGED
@@ -552,7 +552,7 @@ var Item = /*#__PURE__*/function () {
552
552
  if (!isEmpty(currentObject === null || currentObject === void 0 || (_currentObject$counte = currentObject.counterTop) === null || _currentObject$counte === void 0 ? void 0 : _currentObject$counte.uri)) {
553
553
  var _currentObject$counte2;
554
554
  counterTopURI = currentObject === null || currentObject === void 0 || (_currentObject$counte2 = currentObject.counterTop) === null || _currentObject$counte2 === void 0 ? void 0 : _currentObject$counte2.uri;
555
- } else if (!isEmpty(state.getIn(['scene', 'layers', 'layer-1', 'counterTop']))) counterTopURI = state.getIn(['scene', 'layers', 'layer-1', 'counterTop']).uri;else counterTopURI = 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg';
555
+ } else if (!isEmpty(state.getIn(['scene', 'layers', 'layer-1', 'counterTop']))) counterTopURI = state.getIn(['scene', 'layers', 'layer-1', 'counterTop']).uri;
556
556
  state = this.remove(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
557
557
  state = this.create(state, state.scene.selectedLayer, selectedObject.name, selectedPos.x, selectedPos.y, selectedObject.info.width, selectedObject.info.height, selectedPos.rotation, false, [], false, null, counterTopURI).updatedState;
558
558
  // state = this.select(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
@@ -0,0 +1,9 @@
1
+ // skin panel SKU
2
+ export var SKIN_SKU_BSV_24 = 'BSV'; // 23.25" x 34.5" : For base cabinets
3
+ export var SKIN_SKU_BSV_48 = 'BSV48'; // 48" x 34.5" : For base cabinets back-to-back or island backs
4
+ export var SKIN_SKU_WSV_1242 = 'WSV1242'; // 11.25" x 42" : For 12" deep wall cabinets
5
+ export var SKIN_SKU_WSV_2442 = 'WSV2442'; // 23.25" x 42" : For 24" deep wall cabinets
6
+ export var SKIN_SKU_WSV_2460 = 'WSV2460'; // Usually used for CT3DR or CT2DR SKUs + stacked wall cabinets
7
+ export var SKIN_SKU_USV245325 = 'USV2453.25'; // 23.25" x 53.25" : For tall cabinets
8
+
9
+ export var SKIN_HEIGHT_53_25 = 53.25; // in inch, height of the skin with SKU USV245325
package/es/constants.js CHANGED
@@ -452,7 +452,7 @@ export var UNIT_FOOT = 'ft';
452
452
  export var UNIT_MILE = 'mi';
453
453
  export var UNITS_LENGTH = [UNIT_MILLIMETER, UNIT_CENTIMETER, UNIT_METER, UNIT_INCH, UNIT_FOOT, UNIT_MILE];
454
454
  export var CEIL_UNITS_LENGTH = [UNIT_CENTIMETER, UNIT_METER, UNIT_INCH, UNIT_FOOT];
455
- export var EPSILON = 1e-2;
455
+ export var EPSILON = 0.5;
456
456
 
457
457
  // distance between item and wall
458
458
  export var DISTANCE_EPSILON = 5.0; //5.08; // 2 inch
@@ -771,11 +771,9 @@ export var ROOM_SHAPE_TYPE = {
771
771
  export var DOORSTYLE_SCOPE_ALL = 'all';
772
772
  export var DOORSTYLE_SCOPE_SINGLE = 'single';
773
773
  export var DOORSTYLE_SCOPE_MULTIPLE = 'multiple';
774
+ export var DEFAULT_MOLDING_PIECE_LENGTH = 96; // in inch, 8 feet, standard length for molding pieces
774
775
 
775
- // skin panel SKU
776
- export var SKIN_SKU_BSV_24 = 'BSV24'; // 23.25" x 34.5" : For base cabinets
777
- export var SKIN_SKU_BSV_48 = 'BSV48'; // 48" x 34.5" : For base cabinets back-to-back or island backs
778
- export var SKIN_SKU_WSV_1242 = 'WSV1242'; // 11.25" x 42" : For 12" deep wall cabinets
779
- export var SKIN_SKU_WSV_2442 = 'WSV2442'; // 23.25" x 42" : For 24" deep wall cabinets
780
- export var SKIN_SKU_WSV_2460 = 'WSV2460'; // Usually used for CT3DR or CT2DR SKUs + stacked wall cabinets
781
- export var SKIN_SKU_USV245325 = 'USV2453.25'; // 23.25" x 53.25" : For tall cabinets
776
+ // default urls
777
+
778
+ export var DEFAULT_INTERIOR_URL = 'http://localhost:4002/uploads/assets/default/maple.jpg';
779
+ export var DEFAULT_DOOR_HANDLE_TEXTURE_URL = 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg';