@threekit-tools/treble 0.0.68 → 0.0.69

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.
@@ -0,0 +1,2 @@
1
+ export declare const Wrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
2
+ export declare const Header: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.Header = exports.Wrapper = void 0;
11
+ var styled_components_1 = __importDefault(require("styled-components"));
12
+ exports.Wrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n padding: 10px 15px;\n"], ["\n padding: 10px 15px;\n"])));
13
+ exports.Header = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n font-size: 18px;\n font-weight: 400;\n text-align: center;\n"], ["\n font-size: 18px;\n font-weight: 400;\n text-align: center;\n"])));
14
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare const DevTools: () => JSX.Element;
3
+ export default DevTools;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DevTools = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var useDevTools_1 = __importDefault(require("../../hooks/useDevTools"));
9
+ var Drawer_1 = __importDefault(require("../Drawer"));
10
+ var devTools_styles_1 = require("./devTools.styles");
11
+ var DevTools = function () {
12
+ var _a = (0, useDevTools_1.default)(), showDevTools = _a[0], setShowDevTools = _a[1];
13
+ return (react_1.default.createElement(Drawer_1.default, { showHeader: false, show: showDevTools, handleClose: function () { return setShowDevTools(false); } },
14
+ react_1.default.createElement(devTools_styles_1.Wrapper, null,
15
+ react_1.default.createElement(devTools_styles_1.Header, null, "Treble - Dev Tools"))));
16
+ };
17
+ exports.DevTools = DevTools;
18
+ exports.default = exports.DevTools;
@@ -29,6 +29,7 @@ var react_redux_1 = require("react-redux");
29
29
  var styled_components_1 = require("styled-components");
30
30
  var theme_1 = __importDefault(require("../../theme"));
31
31
  var GlobalStyles_styles_1 = __importDefault(require("./GlobalStyles.styles"));
32
+ var DevTools_1 = __importDefault(require("../DevTools"));
32
33
  var App = function (props) {
33
34
  var dispatch = (0, store_1.useThreekitDispatch)();
34
35
  var playerConfig = props.playerConfig, productId = props.productId, project = props.project, locale = props.locale, threekitEnv = props.threekitEnv, eventHandlers = props.eventHandlers;
@@ -52,6 +53,7 @@ var ThreekitProvider = function (props) {
52
53
  return (react_1.default.createElement(react_redux_1.Provider, { store: (0, store_1.default)(props.reducer) },
53
54
  react_1.default.createElement(styled_components_1.ThemeProvider, { theme: theme_1.default },
54
55
  react_1.default.createElement(GlobalStyles_styles_1.default, null),
55
- react_1.default.createElement(App, { locale: props.locale, productId: props.productId, project: props.project, playerConfig: props.playerConfig, threekitEnv: props.threekitEnv, eventHandlers: props.eventHandlers }, props.children))));
56
+ react_1.default.createElement(App, { locale: props.locale, productId: props.productId, project: props.project, playerConfig: props.playerConfig, threekitEnv: props.threekitEnv, eventHandlers: props.eventHandlers }, props.children),
57
+ react_1.default.createElement(DevTools_1.default, null))));
56
58
  };
57
59
  exports.default = ThreekitProvider;
@@ -44,7 +44,7 @@ var Products = function () {
44
44
  exports.Products = Products;
45
45
  function TrebleApp(props) {
46
46
  var _a;
47
- var project = props.project, productId = props.productId, playerConfig = props.playerConfig, threekitEnv = props.threekitEnv, locale = props.locale, theme = props.theme, eventHandlers = props.eventHandlers;
47
+ var project = props.project, productId = props.productId, playerConfig = props.playerConfig, threekitEnv = props.threekitEnv, locale = props.locale, theme = props.theme, eventHandlers = props.eventHandlers, reducer = props.reducer;
48
48
  var config = constants_1.IS_TREBLE_SCRIPTS ? (0, utils_1.loadTrebleConfig)() : {};
49
49
  if (!((_a = config.treble) === null || _a === void 0 ? void 0 : _a.productsCtx)) {
50
50
  console.error('Treble Config is not setup correctly');
@@ -85,7 +85,7 @@ function TrebleApp(props) {
85
85
  var preppedProject = Object.assign({}, project, {
86
86
  products: productsMap,
87
87
  });
88
- return (react_1.default.createElement(ThreekitProvider_1.default, { productId: id, project: preppedProject, locale: locale, playerConfig: playerConfig, theme: theme, threekitEnv: threekitEnv, eventHandlers: eventHandlers },
88
+ return (react_1.default.createElement(ThreekitProvider_1.default, { productId: id, project: preppedProject, locale: locale, playerConfig: playerConfig, theme: theme, threekitEnv: threekitEnv, eventHandlers: eventHandlers, reducer: reducer },
89
89
  react_1.default.createElement(exports.Products, null)));
90
90
  }
91
91
  exports.default = TrebleApp;
@@ -0,0 +1,3 @@
1
+ declare type UseDevToolsHook = [boolean, (val: boolean) => void];
2
+ export declare const useDevTools: () => UseDevToolsHook;
3
+ export default useDevTools;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDevTools = void 0;
4
+ var react_1 = require("react");
5
+ var useDevTools = function () {
6
+ var _a = (0, react_1.useState)(false), showDevTools = _a[0], setShowDevTools = _a[1];
7
+ var pressedKeysRef = (0, react_1.useRef)({
8
+ t: false,
9
+ k: false,
10
+ });
11
+ var keydownListener = function (event) {
12
+ if (event.altKey && event.code === 'KeyT')
13
+ pressedKeysRef.current.t = true;
14
+ else if (event.altKey && event.code === 'KeyK')
15
+ pressedKeysRef.current.k = true;
16
+ var allPressed = Object.values(pressedKeysRef.current).reduce(function (result, bool) {
17
+ if (!result || !bool)
18
+ return false;
19
+ return bool;
20
+ }, true);
21
+ if (allPressed)
22
+ setShowDevTools(true);
23
+ };
24
+ var keyupListener = function (event) {
25
+ if (event.code === 'KeyT')
26
+ pressedKeysRef.current.t = false;
27
+ else if (event.code === 'KeyK')
28
+ pressedKeysRef.current.k = false;
29
+ };
30
+ (0, react_1.useEffect)(function () {
31
+ (function () {
32
+ document.addEventListener('keydown', keydownListener);
33
+ document.addEventListener('keyup', keyupListener);
34
+ })();
35
+ return function () {
36
+ document.removeEventListener('keydown', keydownListener);
37
+ document.removeEventListener('keyup', keyupListener);
38
+ };
39
+ }, []);
40
+ return [showDevTools, function (val) { return setShowDevTools(val); }];
41
+ };
42
+ exports.useDevTools = useDevTools;
43
+ exports.default = exports.useDevTools;
@@ -65,7 +65,7 @@ var useNestedConfigurator = function (address) {
65
65
  setAttributes(updatedAttrs);
66
66
  metadataRef.current = configurator.current.getMetadata();
67
67
  })();
68
- }, [hasInitialized, address, playerLoading]);
68
+ }, [hasInitialized, playerLoading]);
69
69
  if (!hasInitialized || !configurator.current || !attributes)
70
70
  return [undefined, undefined, undefined, undefined];
71
71
  var handleSelect = function (config) { return __awaiter(void 0, void 0, void 0, function () {
@@ -68,7 +68,7 @@ export declare const getPlayerElementId: (state: RootState) => undefined | strin
68
68
  /*****************************************************
69
69
  * Complex Actions
70
70
  ****************************************************/
71
- export declare const initPlayer: (config: IPlayerInit) => (dispatch: ThreekitDispatch) => Promise<void>;
71
+ export declare const initPlayer: (config: IPlayerInit) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
72
72
  export declare const launch: (launchConfig?: Partial<ILaunchConfig> | undefined) => (dispatch: ThreekitDispatch) => Promise<void>;
73
73
  export declare const unloadPlayer: () => (dispatch: ThreekitDispatch) => Promise<void>;
74
74
  export declare const reloadPlayer: (config: undefined | string | Pick<IReloadConfig, 'assetId' | 'stageId' | 'configurationId' | 'configuration'>) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
@@ -166,46 +166,62 @@ exports.getPlayerElementId = getPlayerElementId;
166
166
  /*****************************************************
167
167
  * Complex Actions
168
168
  ****************************************************/
169
- var initPlayer = function (config) { return function (dispatch) { return __awaiter(void 0, void 0, void 0, function () {
170
- var el, authToken, assetId, stageId, orgId, playerConfig, initialConfiguration, player, configurator;
171
- return __generator(this, function (_a) {
172
- switch (_a.label) {
173
- case 0:
174
- el = config.el, authToken = config.authToken, assetId = config.assetId, stageId = config.stageId, orgId = config.orgId, playerConfig = config.playerConfig, initialConfiguration = config.initialConfiguration;
175
- return [4 /*yield*/, window.threekitPlayer(__assign(__assign({ el: el,
176
- // Variables to sort out
177
- authToken: authToken, stageId: stageId, assetId: assetId }, playerConfig), { initialConfiguration: initialConfiguration }))];
178
- case 1:
179
- player = _a.sent();
180
- return [4 /*yield*/, player.getConfigurator()];
181
- case 2:
182
- configurator = _a.sent();
183
- if (window.threekit) {
184
- window.threekit = Object.assign(window.threekit, {
185
- player: player,
186
- configurator: configurator,
187
- });
188
- }
189
- else
190
- window.threekit = {
191
- player: player,
192
- configurator: configurator,
193
- services: api_1.default,
194
- treble: new Treble_1.default({
169
+ var initPlayer = function (config) {
170
+ return function (dispatch, getState) { return __awaiter(void 0, void 0, void 0, function () {
171
+ var el, authToken, assetId, stageId, orgId, playerConfig, initialConfiguration, player, configurator;
172
+ return __generator(this, function (_a) {
173
+ switch (_a.label) {
174
+ case 0:
175
+ el = config.el, authToken = config.authToken, assetId = config.assetId, stageId = config.stageId, orgId = config.orgId, playerConfig = config.playerConfig, initialConfiguration = config.initialConfiguration;
176
+ return [4 /*yield*/, window.threekitPlayer(__assign(__assign({ el: el,
177
+ // Variables to sort out
178
+ authToken: authToken, stageId: stageId, assetId: assetId }, playerConfig), { initialConfiguration: initialConfiguration }))];
179
+ case 1:
180
+ player = _a.sent();
181
+ return [4 /*yield*/, player.getConfigurator()];
182
+ case 2:
183
+ configurator = _a.sent();
184
+ if (window.threekit) {
185
+ window.threekit = Object.assign(window.threekit, {
195
186
  player: player,
196
- orgId: orgId,
197
- initialConfiguration: configurator.getConfiguration(),
198
- }),
199
- };
200
- dispatch((0, exports.setThreekitInitialized)(true));
201
- dispatch((0, exports.setPlayerLoading)(false));
202
- window.threekit.player.on('setConfiguration', function () {
203
- dispatch((0, attributes_1.setAttributes)(window.threekit.configurator.getDisplayAttributes()));
204
- });
205
- return [2 /*return*/];
206
- }
207
- });
208
- }); }; };
187
+ configurator: configurator,
188
+ });
189
+ }
190
+ else
191
+ window.threekit = {
192
+ player: player,
193
+ configurator: configurator,
194
+ services: api_1.default,
195
+ treble: new Treble_1.default({
196
+ player: player,
197
+ orgId: orgId,
198
+ initialConfiguration: configurator.getConfiguration(),
199
+ }),
200
+ };
201
+ dispatch((0, exports.setThreekitInitialized)(true));
202
+ dispatch((0, exports.setPlayerLoading)(false));
203
+ window.threekit.player.on('setConfiguration', function () { return __awaiter(void 0, void 0, void 0, function () {
204
+ var attributes, previousAttributes, updatedAttributes;
205
+ var _a;
206
+ return __generator(this, function (_b) {
207
+ switch (_b.label) {
208
+ case 0:
209
+ attributes = getState().attributes;
210
+ previousAttributes = Object.values(attributes);
211
+ updatedAttributes = window.threekit.configurator.getDisplayAttributes();
212
+ dispatch((0, attributes_1.setAttributes)(updatedAttributes));
213
+ return [4 /*yield*/, ((_a = EVENTS.postConfigurationChange) === null || _a === void 0 ? void 0 : _a.call(EVENTS, updatedAttributes, {}, previousAttributes))];
214
+ case 1:
215
+ _b.sent();
216
+ return [2 /*return*/];
217
+ }
218
+ });
219
+ }); });
220
+ return [2 /*return*/];
221
+ }
222
+ });
223
+ }); };
224
+ };
209
225
  exports.initPlayer = initPlayer;
210
226
  var launch = function (launchConfig) {
211
227
  return function (dispatch) { return __awaiter(void 0, void 0, void 0, function () {
package/dist/types.d.ts CHANGED
@@ -164,6 +164,13 @@ export declare type SNAPSHOT_FORMAT_TYPES = 'jpg' | 'png';
164
164
  /***************************************************
165
165
  * Threekit Api
166
166
  **************************************************/
167
+ export interface IConfigurationChangeEvent {
168
+ name: string;
169
+ appliedConfiguration: Record<string, string>;
170
+ previousConfiguration: IConfiguration;
171
+ configuration: IConfiguration;
172
+ metadata: Record<string, string>;
173
+ }
167
174
  export interface IThreekitConfigurator {
168
175
  getMetadata: () => IMetadata;
169
176
  getAttributes: () => Array<IThreekitAttribute>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@threekit-tools/treble",
3
- "version": "0.0.68",
3
+ "version": "0.0.69",
4
4
  "author": "Amaan Saeed",
5
5
  "license": "MIT",
6
6
  "files": [