@threekit-tools/treble 0.0.92 → 0.0.94-next-01

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 (69) hide show
  1. package/dist/Treble/Treble.d.ts +2 -2
  2. package/dist/Treble/Treble.js +2 -2
  3. package/dist/Treble/index.d.ts +1 -1
  4. package/dist/Treble/index.js +1 -1
  5. package/dist/Treble/snapshot.d.ts +2 -2
  6. package/dist/Treble/snapshot.js +1 -1
  7. package/dist/hooks/useNestedConfigurator/index.js +1 -2
  8. package/dist/hooks/useSnapshot/index.d.ts +1 -1
  9. package/dist/hooks/useSpaces/SpacesState.d.ts +15 -2
  10. package/dist/hooks/useSpaces/SpacesState.js +85 -22
  11. package/dist/hooks/useSpaces/constants.d.ts +17 -2
  12. package/dist/hooks/useSpaces/constants.js +58 -37
  13. package/dist/hooks/useSpaces/dataHandlers.d.ts +22 -4
  14. package/dist/hooks/useSpaces/dataHandlers.js +197 -40
  15. package/dist/hooks/useSpaces/draw/drawDoors.js +1 -1
  16. package/dist/hooks/useSpaces/draw/drawGrid.d.ts +1 -1
  17. package/dist/hooks/useSpaces/draw/drawGrid.js +4 -1
  18. package/dist/hooks/useSpaces/draw/drawWalls.d.ts +3 -2
  19. package/dist/hooks/useSpaces/draw/drawWalls.js +6 -4
  20. package/dist/hooks/useSpaces/index.d.ts +13 -0
  21. package/dist/hooks/useSpaces/index.js +269 -126
  22. package/dist/hooks/useSpaces/types.d.ts +52 -13
  23. package/dist/icons/Boundary.d.ts +3 -0
  24. package/dist/icons/{Ruler copy.js → Boundary.js} +7 -8
  25. package/dist/icons/Draw.js +3 -3
  26. package/dist/icons/RulerBlank.js +2 -2
  27. package/dist/icons/RulerDetailed.js +2 -2
  28. package/dist/icons/Window.js +4 -4
  29. package/dist/icons/index.js +28 -0
  30. package/dist/index.d.ts +17 -2
  31. package/dist/index.js +35 -5
  32. package/dist/store/attributes.d.ts +2 -1
  33. package/dist/store/index.d.ts +41 -10
  34. package/dist/store/index.js +3 -1
  35. package/dist/store/product.js +4 -7
  36. package/dist/store/spaces.d.ts +32 -5
  37. package/dist/store/spaces.js +164 -7
  38. package/dist/store/treble.d.ts +1 -1
  39. package/dist/store/treble.js +14 -21
  40. package/dist/store/wishlist.d.ts +2 -20
  41. package/dist/types.d.ts +3 -1
  42. package/package.json +1 -2
  43. package/dist/Treble/snapshots.d.ts +0 -22
  44. package/dist/Treble/snapshots.js +0 -247
  45. package/dist/hooks/useRoomBuilder/RoomBuilderState.d.ts +0 -95
  46. package/dist/hooks/useRoomBuilder/RoomBuilderState.js +0 -1237
  47. package/dist/hooks/useRoomBuilder/constants.d.ts +0 -41
  48. package/dist/hooks/useRoomBuilder/constants.js +0 -48
  49. package/dist/hooks/useRoomBuilder/dataHandlers.d.ts +0 -18
  50. package/dist/hooks/useRoomBuilder/dataHandlers.js +0 -187
  51. package/dist/hooks/useRoomBuilder/draw.d.ts +0 -55
  52. package/dist/hooks/useRoomBuilder/draw.js +0 -573
  53. package/dist/hooks/useRoomBuilder/findLoops.d.ts +0 -5
  54. package/dist/hooks/useRoomBuilder/findLoops.js +0 -99
  55. package/dist/hooks/useRoomBuilder/geometry.d.ts +0 -33
  56. package/dist/hooks/useRoomBuilder/geometry.js +0 -325
  57. package/dist/hooks/useRoomBuilder/index.d.ts +0 -40
  58. package/dist/hooks/useRoomBuilder/index.js +0 -303
  59. package/dist/hooks/useRoomBuilder/messaging.d.ts +0 -8
  60. package/dist/hooks/useRoomBuilder/messaging.js +0 -18
  61. package/dist/hooks/useRoomBuilder/themes.d.ts +0 -12
  62. package/dist/hooks/useRoomBuilder/themes.js +0 -273
  63. package/dist/hooks/useRoomBuilder/types.d.ts +0 -238
  64. package/dist/hooks/useRoomBuilder/types.js +0 -36
  65. package/dist/hooks/useRoomBuilder/validators.d.ts +0 -36
  66. package/dist/hooks/useRoomBuilder/validators.js +0 -362
  67. package/dist/icons/Ruler copy.d.ts +0 -3
  68. package/dist/icons/RulerDetailed copy.d.ts +0 -3
  69. package/dist/icons/RulerDetailed copy.js +0 -27
@@ -1,6 +1,8 @@
1
1
  import { RootState, ThreekitDispatch } from './index';
2
2
  import { IConfiguration } from '../types';
3
- import { ICoordinate2D, IDimensionOptions, IModes, IUnits } from '../hooks/useSpaces/types';
3
+ import { IAttributeDefaults, ICoordinate2D, IDimensionOptions, IModes, ISpacesAttributes, ISpacesConfigUser, IUnits } from '../hooks/useSpaces/types';
4
+ import { WallModes } from '../hooks/useSpaces/constants';
5
+ import Spaces from '../hooks/useSpaces/SpacesState';
4
6
  interface ILayout {
5
7
  label: string;
6
8
  configuration: IConfiguration;
@@ -13,17 +15,30 @@ interface IAttributeMap {
13
15
  endX: string;
14
16
  endZ: string;
15
17
  }
18
+ interface InitConfig {
19
+ parameters: Partial<ISpacesConfigUser>;
20
+ layoutIds: Array<string>;
21
+ attributeNames: ISpacesAttributes;
22
+ canvasDimensions?: ICoordinate2D;
23
+ setPendingStatus: (status: boolean) => void;
24
+ }
16
25
  export interface SpacesState {
26
+ initialized: boolean;
17
27
  mode: IModes;
18
28
  layouts: Array<ILayout>;
19
29
  unit: IUnits;
20
- zoom: null | number;
21
- translation: null | ICoordinate2D;
30
+ zoom: number;
31
+ translation: ICoordinate2D;
22
32
  showDimensions: IDimensionOptions;
23
33
  angleSnappingEnabled: boolean;
24
34
  guideSnappingEnabled: boolean;
25
35
  gridSnappingEnabled: boolean;
36
+ defaults: IAttributeDefaults;
37
+ wallModeOptions: WallModes[];
38
+ wallModeAssetIds: Record<WallModes, string>;
39
+ wallModeValue: WallModes;
26
40
  }
41
+ export declare const setInitialized: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>;
27
42
  export declare const setLayouts: import("@reduxjs/toolkit").ActionCreatorWithPayload<ILayout[], string>;
28
43
  export declare const setZoom: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, string>;
29
44
  export declare const setUnit: import("@reduxjs/toolkit").ActionCreatorWithPayload<IUnits, string>;
@@ -33,15 +48,27 @@ export declare const setShowDimensions: import("@reduxjs/toolkit").ActionCreator
33
48
  export declare const setAngleSnappingEnabled: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>;
34
49
  export declare const setGuideSnappingEnabled: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>;
35
50
  export declare const setGridSnappingEnabled: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>;
51
+ export declare const setDefaults: import("@reduxjs/toolkit").ActionCreatorWithPayload<IAttributeDefaults, string>;
52
+ export declare const setWallModeOptions: import("@reduxjs/toolkit").ActionCreatorWithPayload<WallModes[], string>;
53
+ export declare const setWallModeAssetIds: import("@reduxjs/toolkit").ActionCreatorWithPayload<Record<WallModes, string>, string>;
54
+ export declare const setWallModeValue: import("@reduxjs/toolkit").ActionCreatorWithPayload<WallModes, string>;
36
55
  declare const reducer: import("redux").Reducer<SpacesState, import("redux").AnyAction>;
56
+ export declare const getInitialized: (state: RootState) => boolean;
37
57
  export declare const getMode: (state: RootState) => IModes;
38
58
  export declare const getLayouts: (state: RootState) => Array<ILayout>;
39
59
  export declare const getUnit: (state: RootState) => IUnits;
40
- export declare const getZoom: (state: RootState) => number | null;
41
- export declare const getTranslation: (state: RootState) => ICoordinate2D | null;
60
+ export declare const getZoom: (state: RootState) => number;
61
+ export declare const getTranslation: (state: RootState) => ICoordinate2D;
42
62
  export declare const getShowDimensions: (state: RootState) => IDimensionOptions;
43
63
  export declare const getAngleSnappingEnabled: (state: RootState) => boolean;
44
64
  export declare const getGuideSnappingEnabled: (state: RootState) => boolean;
45
65
  export declare const getGridSnappingEnabled: (state: RootState) => boolean;
66
+ export declare const getDefaults: (state: RootState) => IAttributeDefaults;
67
+ export declare const getWallMode: (state: RootState) => {
68
+ options: WallModes[];
69
+ value: WallModes;
70
+ assetId: string;
71
+ };
46
72
  export declare const hydrateLayouts: (configurationIds: Array<string>, attributeMap: IAttributeMap) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
73
+ export declare const initSpaces: (initConfig: InitConfig) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<Spaces>;
47
74
  export default reducer;
@@ -10,6 +10,29 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
13
36
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
37
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
38
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -25,7 +48,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
25
48
  function verb(n) { return function (v) { return step([n, v]); }; }
26
49
  function step(op) {
27
50
  if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
51
+ while (_) try {
29
52
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
53
  if (y = 0, t) op = [op[0] & 2, t.value];
31
54
  switch (op[0]) {
@@ -58,12 +81,19 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
58
81
  var __importDefault = (this && this.__importDefault) || function (mod) {
59
82
  return (mod && mod.__esModule) ? mod : { "default": mod };
60
83
  };
84
+ var _a;
61
85
  Object.defineProperty(exports, "__esModule", { value: true });
62
- exports.hydrateLayouts = exports.getGridSnappingEnabled = exports.getGuideSnappingEnabled = exports.getAngleSnappingEnabled = exports.getShowDimensions = exports.getTranslation = exports.getZoom = exports.getUnit = exports.getLayouts = exports.getMode = exports.setGridSnappingEnabled = exports.setGuideSnappingEnabled = exports.setAngleSnappingEnabled = exports.setShowDimensions = exports.setMode = exports.setTranslation = exports.setUnit = exports.setZoom = exports.setLayouts = void 0;
86
+ exports.initSpaces = exports.hydrateLayouts = exports.getWallMode = exports.getDefaults = exports.getGridSnappingEnabled = exports.getGuideSnappingEnabled = exports.getAngleSnappingEnabled = exports.getShowDimensions = exports.getTranslation = exports.getZoom = exports.getUnit = exports.getLayouts = exports.getMode = exports.getInitialized = exports.setWallModeValue = exports.setWallModeAssetIds = exports.setWallModeOptions = exports.setDefaults = exports.setGridSnappingEnabled = exports.setGuideSnappingEnabled = exports.setAngleSnappingEnabled = exports.setShowDimensions = exports.setMode = exports.setTranslation = exports.setUnit = exports.setZoom = exports.setLayouts = exports.setInitialized = void 0;
63
87
  var toolkit_1 = require("@reduxjs/toolkit");
64
88
  var api_1 = __importDefault(require("../api"));
65
89
  var types_1 = require("../hooks/useSpaces/types");
66
90
  var geometry_1 = require("../hooks/useSpaces/geometry");
91
+ var constants_1 = require("../hooks/useSpaces/constants");
92
+ var SpacesState_1 = __importDefault(require("../hooks/useSpaces/SpacesState"));
93
+ var attributes_1 = require("./attributes");
94
+ var themes_1 = __importStar(require("../hooks/useSpaces/themes"));
95
+ var dataHandlers_1 = require("../hooks/useSpaces/dataHandlers");
96
+ exports.setInitialized = (0, toolkit_1.createAction)('treble/spaces/set-initialized');
67
97
  exports.setLayouts = (0, toolkit_1.createAction)('treble/spaces/set-layouts');
68
98
  exports.setZoom = (0, toolkit_1.createAction)('treble/spaces/set-zoom');
69
99
  exports.setUnit = (0, toolkit_1.createAction)('treble/spaces/set-unit');
@@ -73,21 +103,44 @@ exports.setShowDimensions = (0, toolkit_1.createAction)('treble/spaces/set-show-
73
103
  exports.setAngleSnappingEnabled = (0, toolkit_1.createAction)('treble/spaces/set-angle-snapping-enabled');
74
104
  exports.setGuideSnappingEnabled = (0, toolkit_1.createAction)('treble/spaces/set-guide-snapping-enabled');
75
105
  exports.setGridSnappingEnabled = (0, toolkit_1.createAction)('treble/spaces/set-grid-snapping-enabled');
106
+ exports.setDefaults = (0, toolkit_1.createAction)('treble/spaces/set-defaults');
107
+ exports.setWallModeOptions = (0, toolkit_1.createAction)('treble/spaces/set-wall-mode-options');
108
+ exports.setWallModeAssetIds = (0, toolkit_1.createAction)('treble/spaces/set-wall-mode-assetIds');
109
+ exports.setWallModeValue = (0, toolkit_1.createAction)('treble/spaces/set-wall-mode-value');
76
110
  var initialState = {
111
+ initialized: false,
77
112
  mode: types_1.IModes.SELECT,
78
113
  layouts: [],
79
114
  unit: types_1.IUnits.FEET,
80
- zoom: null,
81
- translation: null,
115
+ zoom: constants_1.ZOOM_DEFAULT,
116
+ translation: constants_1.TRANSLATE_DEFAULT,
82
117
  showDimensions: types_1.IDimensionOptions.DEFAULT,
83
- angleSnappingEnabled: true,
84
- guideSnappingEnabled: true,
85
- gridSnappingEnabled: true,
118
+ angleSnappingEnabled: constants_1.ANGLE_SNAPPING_ENABLED,
119
+ guideSnappingEnabled: constants_1.GUIDE_SNAPPING_ENABLED,
120
+ gridSnappingEnabled: constants_1.GRID_SNAPPING_ENABLED,
121
+ defaults: {
122
+ walls: '',
123
+ windows: '',
124
+ openings: '',
125
+ doors: '',
126
+ doorOpeningDirection: constants_1.DoorOpeningDirections.INSIDE,
127
+ doorOrientation: constants_1.DoorOrientations.LEFT,
128
+ doorShowSwing: constants_1.DoorShowSwing.HIDE,
129
+ },
130
+ wallModeOptions: [],
131
+ wallModeAssetIds: (_a = {},
132
+ _a[constants_1.WallModes.WALL] = '',
133
+ _a[constants_1.WallModes.BOUNDARY] = '',
134
+ _a),
135
+ wallModeValue: constants_1.WallModes.WALL,
86
136
  };
87
137
  var reducer = (0, toolkit_1.createSlice)({
88
138
  name: 'spaces',
89
139
  initialState: initialState,
90
140
  extraReducers: function (builder) {
141
+ builder.addCase(exports.setInitialized, function (state, action) {
142
+ return __assign(__assign({}, state), { initialized: action.payload });
143
+ });
91
144
  builder.addCase(exports.setMode, function (state, action) {
92
145
  return __assign(__assign({}, state), { mode: action.payload });
93
146
  });
@@ -115,9 +168,23 @@ var reducer = (0, toolkit_1.createSlice)({
115
168
  builder.addCase(exports.setGridSnappingEnabled, function (state, action) {
116
169
  return __assign(__assign({}, state), { gridSnappingEnabled: action.payload });
117
170
  });
171
+ builder.addCase(exports.setDefaults, function (state, action) {
172
+ return __assign(__assign({}, state), { defaults: action.payload });
173
+ });
174
+ builder.addCase(exports.setWallModeOptions, function (state, action) {
175
+ return __assign(__assign({}, state), { wallModeOptions: action.payload });
176
+ });
177
+ builder.addCase(exports.setWallModeValue, function (state, action) {
178
+ return __assign(__assign({}, state), { wallModeValue: action.payload });
179
+ });
180
+ builder.addCase(exports.setWallModeAssetIds, function (state, action) {
181
+ return __assign(__assign({}, state), { wallModeAssetIds: action.payload });
182
+ });
118
183
  },
119
184
  reducers: {},
120
185
  }).reducer;
186
+ var getInitialized = function (state) { return state.spaces.initialized; };
187
+ exports.getInitialized = getInitialized;
121
188
  var getMode = function (state) { return state.spaces.mode; };
122
189
  exports.getMode = getMode;
123
190
  var getLayouts = function (state) {
@@ -146,6 +213,14 @@ var getGridSnappingEnabled = function (state) {
146
213
  return state.spaces.gridSnappingEnabled;
147
214
  };
148
215
  exports.getGridSnappingEnabled = getGridSnappingEnabled;
216
+ var getDefaults = function (state) { return state.spaces.defaults; };
217
+ exports.getDefaults = getDefaults;
218
+ var getWallMode = function (state) { return ({
219
+ options: state.spaces.wallModeOptions,
220
+ value: state.spaces.wallModeValue,
221
+ assetId: state.spaces.wallModeAssetIds[state.spaces.wallModeValue],
222
+ }); };
223
+ exports.getWallMode = getWallMode;
149
224
  var hydrateLayouts = function (configurationIds, attributeMap) {
150
225
  return function (dispatch, getState) { return __awaiter(void 0, void 0, void 0, function () {
151
226
  var state, layoutIds, configurationResponses, prepped;
@@ -194,4 +269,86 @@ var hydrateLayouts = function (configurationIds, attributeMap) {
194
269
  }); };
195
270
  };
196
271
  exports.hydrateLayouts = hydrateLayouts;
272
+ var initSpaces = function (initConfig) {
273
+ return function (dispatch, getState) { return __awaiter(void 0, void 0, void 0, function () {
274
+ var parameters, layoutIds, attributeNames, canvasDimensions, setPendingStatus, hasInitialized, configurator, attributeDefaults, defaults, wallModes, state, spaces, config, attributesState;
275
+ return __generator(this, function (_a) {
276
+ switch (_a.label) {
277
+ case 0:
278
+ parameters = initConfig.parameters, layoutIds = initConfig.layoutIds, attributeNames = initConfig.attributeNames, canvasDimensions = initConfig.canvasDimensions, setPendingStatus = initConfig.setPendingStatus;
279
+ hasInitialized = (0, exports.getInitialized)(getState());
280
+ if (!!hasInitialized) return [3, 3];
281
+ if (parameters.unit)
282
+ dispatch((0, exports.setUnit)(parameters.unit));
283
+ if (parameters.showDimensions)
284
+ dispatch((0, exports.setShowDimensions)(parameters.showDimensions));
285
+ if (parameters.zoomDefault)
286
+ dispatch((0, exports.setZoom)(parameters.zoomDefault));
287
+ if (parameters.translateDefault)
288
+ dispatch((0, exports.setTranslation)(parameters.translateDefault));
289
+ if (parameters.enableAngleSnapping)
290
+ dispatch((0, exports.setAngleSnappingEnabled)(parameters.enableAngleSnapping));
291
+ if (parameters.enableGridSnapping)
292
+ dispatch((0, exports.setAngleSnappingEnabled)(parameters.enableGridSnapping));
293
+ if (parameters.enableGuideSnapping)
294
+ dispatch((0, exports.setAngleSnappingEnabled)(parameters.enableGuideSnapping));
295
+ dispatch((0, exports.hydrateLayouts)(layoutIds !== null && layoutIds !== void 0 ? layoutIds : [], {
296
+ walls: attributeNames[types_1.IElements.WALL],
297
+ startX: attributeNames.wallStartX,
298
+ startZ: attributeNames.wallStartZ,
299
+ endX: attributeNames.wallEndX,
300
+ endZ: attributeNames.wallEndZ,
301
+ }));
302
+ return [4, window.threekit.configurator.clone()];
303
+ case 1:
304
+ configurator = _a.sent();
305
+ return [4, (0, dataHandlers_1.getAttributeData)(configurator, attributeNames)];
306
+ case 2:
307
+ attributeDefaults = _a.sent();
308
+ if (attributeDefaults) {
309
+ defaults = attributeDefaults.defaults, wallModes = attributeDefaults.wallModes;
310
+ dispatch((0, exports.setDefaults)(defaults));
311
+ dispatch((0, exports.setWallModeOptions)(wallModes.options));
312
+ dispatch((0, exports.setWallModeValue)(wallModes.value));
313
+ dispatch((0, exports.setWallModeAssetIds)(wallModes.assetIds));
314
+ }
315
+ dispatch((0, exports.setInitialized)(true));
316
+ _a.label = 3;
317
+ case 3:
318
+ state = getState();
319
+ spaces = state.spaces;
320
+ config = {
321
+ unit: spaces.unit,
322
+ scale: constants_1.SCALE,
323
+ snapProximity: constants_1.SNAP_PROXIMITY,
324
+ zoomMin: constants_1.ZOOM_MIN,
325
+ zoomMax: constants_1.ZOOM_MAX,
326
+ zoomDefault: spaces.zoom,
327
+ translateDefault: spaces.translation,
328
+ enableAngleSnapping: spaces.angleSnappingEnabled,
329
+ enableGuideSnapping: spaces.guideSnappingEnabled,
330
+ enableGridSnapping: spaces.gridSnappingEnabled,
331
+ showDimensions: spaces.showDimensions,
332
+ styles: parameters.theme && themes_1.default[parameters.theme]
333
+ ? themes_1.default[parameters.theme]
334
+ : themes_1.default[themes_1.IThemes.DEFAULT],
335
+ };
336
+ attributesState = (0, attributes_1.getHydrationData)(state)[0];
337
+ return [2, new SpacesState_1.default({
338
+ config: config,
339
+ attributes: attributeNames,
340
+ attributeDefaults: spaces.defaults,
341
+ attributesState: JSON.parse(JSON.stringify(attributesState)),
342
+ canvasDimensions: canvasDimensions,
343
+ wallMode: {
344
+ value: spaces.wallModeValue,
345
+ assetId: spaces.wallModeAssetIds[spaces.wallModeValue],
346
+ },
347
+ setPendingStatus: setPendingStatus,
348
+ })];
349
+ }
350
+ });
351
+ }); };
352
+ };
353
+ exports.initSpaces = initSpaces;
197
354
  exports.default = reducer;
@@ -66,6 +66,6 @@ export declare const getLoadingProgress: (state: RootState) => undefined | numbe
66
66
  export declare const getPlayerInteraction: (state: RootState) => undefined | boolean;
67
67
  export declare const initPlayer: (config: IPlayerInit) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
68
68
  export declare const launch: (launchConfig?: Partial<ILaunchConfig>) => (dispatch: ThreekitDispatch) => Promise<void>;
69
- export declare const unloadPlayer: () => (dispatch: ThreekitDispatch) => Promise<void>;
69
+ export declare const unloadPlayer: (dispatch: ThreekitDispatch) => Promise<string>;
70
70
  export declare const reloadPlayer: (config: undefined | string | Pick<IReloadConfig, 'assetId' | 'stageId' | 'configurationId' | 'configuration'>) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
71
71
  export default reducer;
@@ -203,7 +203,6 @@ var initPlayer = function (config) {
203
203
  orgId: orgId,
204
204
  }),
205
205
  };
206
- dispatch((0, exports.setThreekitInitialized)(true));
207
206
  dispatch((0, exports.setPlayerLoading)(false));
208
207
  dispatch((0, exports.updateLoadingProgress)(1));
209
208
  dispatch((0, exports.setPlayerInteraction)(true));
@@ -263,7 +262,7 @@ var initPlayer = function (config) {
263
262
  exports.initPlayer = initPlayer;
264
263
  var launch = function (launchConfig) {
265
264
  return function (dispatch) { return __awaiter(void 0, void 0, void 0, function () {
266
- var config, productId, credentials, productsRaw, products, threekitEnv, serverUrl, playerConfig, envCredentials, _a, assetIdRaw, customIdRaw, stageId, configurationId, initialConfigurationRaw, customId, assetId, threekitDomainRaw, authToken, el, threekitDomain, initialConfiguration, updatedAssetId, params, configId, configuration;
265
+ var config, productId, credentials, productsRaw, products, threekitEnv, serverUrl, playerConfig, envCredentials, _a, assetIdRaw, customIdRaw, stageId, configurationId, initialConfigurationRaw, customId, assetId, threekitDomainRaw, authToken, playerScriptUrl, el, threekitDomain, initialConfiguration, updatedAssetId, params, configId, configuration;
267
266
  var _b, _c, _d, _e, _f, _g, _h, _j;
268
267
  return __generator(this, function (_k) {
269
268
  switch (_k.label) {
@@ -334,7 +333,7 @@ var launch = function (launchConfig) {
334
333
  ? undefined
335
334
  : (launchConfig === null || launchConfig === void 0 ? void 0 : launchConfig.assetId) || assetIdRaw;
336
335
  threekitDomainRaw = envCredentials.threekitDomain || "".concat(threekitEnv, ".threekit.com");
337
- authToken = envCredentials.publicToken;
336
+ authToken = envCredentials.publicToken, playerScriptUrl = envCredentials.playerScriptUrl;
338
337
  if (playerConfig.elementId) {
339
338
  el = document.getElementById(playerConfig.elementId);
340
339
  if (el)
@@ -373,7 +372,8 @@ var launch = function (launchConfig) {
373
372
  throw new Error('missing assetId and customId');
374
373
  return [4, new Promise(function (resolve) {
375
374
  var script = document.createElement('script');
376
- script.src = "".concat(threekitDomain, "/app/js/threekit-player-bundle.js");
375
+ script.src =
376
+ playerScriptUrl || "".concat(threekitDomain, "/app/js/threekit-player-bundle.js");
377
377
  script.id = 'threekit-player-bundle';
378
378
  script.onload = function () { return resolve(); };
379
379
  document.head.appendChild(script);
@@ -403,28 +403,21 @@ var launch = function (launchConfig) {
403
403
  dispatch((0, price_1.initPrice)());
404
404
  dispatch((0, price_1.updatePrice)());
405
405
  dispatch((0, wishlist_1.refreshWishlist)());
406
+ dispatch((0, exports.setThreekitInitialized)(true));
406
407
  return [2];
407
408
  }
408
409
  });
409
410
  }); };
410
411
  };
411
412
  exports.launch = launch;
412
- var unloadPlayer = function () { return function (dispatch) { return __awaiter(void 0, void 0, void 0, function () {
413
- return __generator(this, function (_a) {
414
- switch (_a.label) {
415
- case 0:
416
- dispatch((0, exports.setThreekitInitialized)(false));
417
- dispatch((0, exports.setPlayerLoading)(true));
418
- dispatch((0, attributes_1.setAttributes)([]));
419
- dispatch((0, product_1.setName)(''));
420
- dispatch((0, product_1.setMetadata)({}));
421
- return [4, window.threekit.player.unload()];
422
- case 1:
423
- _a.sent();
424
- return [2];
425
- }
426
- });
427
- }); }; };
413
+ var unloadPlayer = function (dispatch) {
414
+ dispatch((0, exports.setThreekitInitialized)(false));
415
+ dispatch((0, exports.setPlayerLoading)(true));
416
+ dispatch((0, attributes_1.setAttributes)([]));
417
+ dispatch((0, product_1.setName)(''));
418
+ dispatch((0, product_1.setMetadata)({}));
419
+ return window.threekit.player.unload();
420
+ };
428
421
  exports.unloadPlayer = unloadPlayer;
429
422
  var reloadPlayer = function (config) {
430
423
  return function (dispatch, getState) { return __awaiter(void 0, void 0, void 0, function () {
@@ -461,7 +454,7 @@ var reloadPlayer = function (config) {
461
454
  playerConfig = Object.assign({}, constants_1.DEFAULT_PLAYER_CONFIG, trebleConfig.player);
462
455
  el = document.getElementById(state.treble.playerElId);
463
456
  if (!state.treble.isThreekitInitialized) return [3, 6];
464
- return [4, dispatch((0, exports.unloadPlayer)())];
457
+ return [4, dispatch(exports.unloadPlayer)];
465
458
  case 5:
466
459
  _a.sent();
467
460
  _a.label = 6;
@@ -2,26 +2,8 @@ import { RootState, ThreekitDispatch } from './index';
2
2
  import { WishlistArray } from '../Treble';
3
3
  import { ISaveConfiguration } from '../api/configurations';
4
4
  export declare type WishlistState = WishlistArray;
5
- export declare const refreshWishlist: import("@reduxjs/toolkit").AsyncThunk<import("../http/configurations").IConfigurationResponse[], void, {
6
- state?: unknown;
7
- dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
8
- extra?: unknown;
9
- rejectValue?: unknown;
10
- serializedErrorType?: unknown;
11
- pendingMeta?: unknown;
12
- fulfilledMeta?: unknown;
13
- rejectedMeta?: unknown;
14
- }>;
15
- export declare const addToWishlist: import("@reduxjs/toolkit").AsyncThunk<import("../http/configurations").IConfigurationResponse[], Omit<ISaveConfiguration, "configuration">, {
16
- state?: unknown;
17
- dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
18
- extra?: unknown;
19
- rejectValue?: unknown;
20
- serializedErrorType?: unknown;
21
- pendingMeta?: unknown;
22
- fulfilledMeta?: unknown;
23
- rejectedMeta?: unknown;
24
- }>;
5
+ export declare const refreshWishlist: import("@reduxjs/toolkit").AsyncThunk<import("../http/configurations").IConfigurationResponse[], void, {}>;
6
+ export declare const addToWishlist: import("@reduxjs/toolkit").AsyncThunk<import("../http/configurations").IConfigurationResponse[], Omit<ISaveConfiguration, "configuration">, {}>;
25
7
  export declare const clearWishlist: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[], import("../http/configurations").IConfigurationResponse[], "treble/wishlist/clear", never, never>;
26
8
  export declare const removeFromWishlist: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[idx: number], import("../http/configurations").IConfigurationResponse[], "treble/wishlist/remove-item", never, never>;
27
9
  declare const reducer: import("redux").Reducer<WishlistArray, import("redux").AnyAction>;
package/dist/types.d.ts CHANGED
@@ -280,13 +280,14 @@ export interface IThreekitConfigurator {
280
280
  setConfiguration: (configuration: ISetConfiguration | IConfiguration) => Promise<IConfiguration>;
281
281
  getPrice: (pricebookId: string, currency: string) => number;
282
282
  getDisplayAttributes: (config?: IDisplayAttributeConfig) => Array<IThreekitDisplayAttribute>;
283
- getNestedConfigurator: (path: string | Array<string | number>) => IThreekitConfigurator | undefined;
283
+ getNestedConfigurator: (...path: Array<string | number | Array<string | number>>) => IThreekitConfigurator | undefined;
284
284
  getFullConfiguration: (options?: {
285
285
  resolve?: boolean;
286
286
  hydrate?: boolean;
287
287
  }) => IConfiguration;
288
288
  setFullConfiguration: (configuration: IConfiguration) => Promise<void>;
289
289
  on: (eventName: string, callback: () => void) => void;
290
+ clone: () => Promise<IThreekitConfigurator>;
290
291
  }
291
292
  export interface IThreekitScene {
292
293
  PHASES: {
@@ -394,6 +395,7 @@ export interface ICredential {
394
395
  publicToken: string;
395
396
  publishStage?: string;
396
397
  threekitDomain?: string;
398
+ playerScriptUrl?: string;
397
399
  }
398
400
  export interface ICredentials extends Record<string, ICredential> {
399
401
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@threekit-tools/treble",
3
- "version": "0.0.92",
3
+ "version": "0.0.94-next-01",
4
4
  "author": "Amaan Saeed",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -46,7 +46,6 @@
46
46
  "axios": "^0.22.0",
47
47
  "chokidar": "^3.5.3",
48
48
  "live-server": "^1.2.2",
49
- "joi": "^17.10.0",
50
49
  "react-redux": "^7.2.6",
51
50
  "redux": "^4.1.2",
52
51
  "redux-logger": "^3.0.6",
@@ -1,22 +0,0 @@
1
- export declare type ISnapshotsCameras = undefined | string | Array<string | undefined>;
2
- interface SnapshotSize {
3
- width: number;
4
- height: number;
5
- }
6
- export interface ITakeSnapshotsConfig {
7
- attributeName?: string;
8
- output?: string;
9
- format?: string;
10
- size?: SnapshotSize;
11
- filename?: string;
12
- useStage?: boolean;
13
- }
14
- interface IGetSnapshot {
15
- size: SnapshotSize;
16
- format: string;
17
- }
18
- declare const _default: {
19
- getSnapshot: ({ size, format }: IGetSnapshot) => Promise<string>;
20
- takeSnapshots: (camerasList: ISnapshotsCameras, snapshotsConfig: ITakeSnapshotsConfig) => Promise<void | string[] | Blob[] | File[] | null>;
21
- };
22
- export default _default;