@threekit-tools/treble 0.0.38 → 0.0.42
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.
- package/README.md +1 -5
- package/dist/components/Accordion/index.d.ts +2 -1
- package/dist/components/Accordion/index.js +7 -3
- package/dist/components/Player/index.js +5 -1
- package/dist/components/ProductName/index.js +1 -1
- package/dist/components/Tabs/index.d.ts +1 -2
- package/dist/components/Tabs/index.js +7 -8
- package/dist/components/ThreekitProvider/index.js +2 -2
- package/dist/components/TrebleApp/index.js +0 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +2 -1
- package/dist/hooks/usePlayerPortal/index.d.ts +2 -1
- package/dist/hooks/usePlayerPortal/index.js +28 -7
- package/dist/hooks/useZoom/index.d.ts +2 -1
- package/dist/store/threekit.d.ts +4 -0
- package/dist/store/threekit.js +13 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -261,11 +261,10 @@ The `<Player />` component renders the **Threekit Player**.
|
|
|
261
261
|
|
|
262
262
|
```jsx
|
|
263
263
|
import { ThreekitProvider, Player } from '@threekit-tools/treble';
|
|
264
|
-
import threekitConfig from './threekit.config.js';
|
|
265
264
|
|
|
266
265
|
const ThreekitApp = () => {
|
|
267
266
|
return (
|
|
268
|
-
<ThreekitProvider
|
|
267
|
+
<ThreekitProvider>
|
|
269
268
|
<Player />
|
|
270
269
|
</ThreekitProvider>
|
|
271
270
|
);
|
|
@@ -278,7 +277,6 @@ The Player Component also comes with **widget containers** that can be used to p
|
|
|
278
277
|
|
|
279
278
|
```jsx
|
|
280
279
|
import { ThreekitProvider, Player } from '@threekit-tools/treble';
|
|
281
|
-
import threekitConfig from './threekit.config.js';
|
|
282
280
|
|
|
283
281
|
// We can separate out the widget container component
|
|
284
282
|
// or use the component directly from the Player component
|
|
@@ -311,7 +309,6 @@ The `<FlatForm>` component is used to render out the configurator for the initia
|
|
|
311
309
|
|
|
312
310
|
```jsx
|
|
313
311
|
import { ThreekitProvider, FlatForm } from '@threekit-tools/treble';
|
|
314
|
-
import threekitConfig from './threekit.config.js';
|
|
315
312
|
|
|
316
313
|
const App = () => {
|
|
317
314
|
return (
|
|
@@ -357,7 +354,6 @@ By default the Form will not render reserved attributes. This can be controlled/
|
|
|
357
354
|
|
|
358
355
|
```jsx
|
|
359
356
|
import { ThreekitProvider, FlatForm } from '@threekit-tools/treble';
|
|
360
|
-
import threekitConfig from './threekit.config.js';
|
|
361
357
|
|
|
362
358
|
const App = () => {
|
|
363
359
|
const attributes = {
|
|
@@ -2,7 +2,8 @@ import React from 'react';
|
|
|
2
2
|
interface AccordionItemProps extends React.FC {
|
|
3
3
|
selected: boolean;
|
|
4
4
|
label: string;
|
|
5
|
-
|
|
5
|
+
handleSelect: () => void;
|
|
6
|
+
onClick: () => void;
|
|
6
7
|
}
|
|
7
8
|
interface AccordionProps<T> {
|
|
8
9
|
children: React.FunctionComponentElement<T>;
|
|
@@ -27,9 +27,9 @@ var react_1 = __importStar(require("react"));
|
|
|
27
27
|
var accordion_styles_1 = require("./accordion.styles");
|
|
28
28
|
var CaretDown_1 = __importDefault(require("../../icons/CaretDown"));
|
|
29
29
|
var AccordionItem = function (props) {
|
|
30
|
-
var selected = props.selected,
|
|
30
|
+
var selected = props.selected, handleSelect = props.handleSelect, label = props.label, children = props.children;
|
|
31
31
|
return (react_1.default.createElement(accordion_styles_1.Wrapper, { selected: selected },
|
|
32
|
-
react_1.default.createElement("div", { onClick:
|
|
32
|
+
react_1.default.createElement("div", { onClick: handleSelect },
|
|
33
33
|
react_1.default.createElement("div", null, label),
|
|
34
34
|
react_1.default.createElement("div", null),
|
|
35
35
|
react_1.default.createElement("div", null,
|
|
@@ -54,7 +54,11 @@ var Accordion = function (props) {
|
|
|
54
54
|
return null;
|
|
55
55
|
return react_1.default.cloneElement(child, {
|
|
56
56
|
selected: selected === idx,
|
|
57
|
-
|
|
57
|
+
handleSelect: function () {
|
|
58
|
+
if (child.props.onClick)
|
|
59
|
+
child.props.onClick();
|
|
60
|
+
handleSelect(idx);
|
|
61
|
+
},
|
|
58
62
|
});
|
|
59
63
|
});
|
|
60
64
|
};
|
|
@@ -36,12 +36,16 @@ var Player = function (props) {
|
|
|
36
36
|
width: '100%',
|
|
37
37
|
}, props), height = _a.height, width = _a.width, minHeight = _a.minHeight, children = _a.children;
|
|
38
38
|
var hasMoved = (0, react_1.useRef)(false);
|
|
39
|
-
var
|
|
39
|
+
var _b = (0, usePlayerPortal_1.default)(), portalPlayerTo = _b[0], portalBack = _b[1];
|
|
40
40
|
(0, react_1.useEffect)(function () {
|
|
41
41
|
if (portalPlayerTo && !hasMoved.current) {
|
|
42
42
|
portalPlayerTo(exports.PLAYER_DIV_ID);
|
|
43
43
|
hasMoved.current = true;
|
|
44
44
|
}
|
|
45
|
+
return function () {
|
|
46
|
+
if (portalBack)
|
|
47
|
+
portalBack();
|
|
48
|
+
};
|
|
45
49
|
});
|
|
46
50
|
return (react_1.default.createElement(player_styles_1.Wrapper, { height: height, width: width, minHeight: minHeight, className: className },
|
|
47
51
|
react_1.default.createElement("div", { id: exports.PLAYER_DIV_ID }),
|
|
@@ -15,7 +15,7 @@ var ProductName = function (props) {
|
|
|
15
15
|
if (!(title === null || title === void 0 ? void 0 : title.length) && !name)
|
|
16
16
|
return null;
|
|
17
17
|
var cls = (0, utils_1.generateDisplayClassName)('title', customClassName);
|
|
18
|
-
return (react_1.default.createElement(productName_styles_1.Wrapper, { align: align, className: cls },
|
|
18
|
+
return (react_1.default.createElement(productName_styles_1.Wrapper, { align: align, className: cls }, title || name));
|
|
19
19
|
};
|
|
20
20
|
exports.ProductName = ProductName;
|
|
21
21
|
exports.ProductName.propTypes = {
|
|
@@ -26,26 +26,25 @@ var TabPane = function (props) { return react_1.default.createElement(react_1.de
|
|
|
26
26
|
var Tabs = function (_a) {
|
|
27
27
|
var children = _a.children;
|
|
28
28
|
var _b = (0, react_1.useState)(0), selected = _b[0], setSelected = _b[1];
|
|
29
|
-
var handleSelect = function (idx) {
|
|
30
|
-
return setSelected(idx === selected ? undefined : idx);
|
|
31
|
-
};
|
|
29
|
+
var handleSelect = function (idx) { return setSelected(idx); };
|
|
32
30
|
if (!children)
|
|
33
31
|
return null;
|
|
34
32
|
return (react_1.default.createElement(tabs_styles_1.Wrapper, null,
|
|
35
33
|
react_1.default.createElement(tabs_styles_1.TabsWrapper, null, react_1.default.Children.map(children, function (child, idx) {
|
|
36
34
|
if (child.type !== TabPane)
|
|
37
35
|
return null;
|
|
38
|
-
return (react_1.default.createElement(tabs_styles_1.Tab, { selected: selected === idx, onClick: function () {
|
|
36
|
+
return (react_1.default.createElement(tabs_styles_1.Tab, { selected: selected === idx, onClick: function () {
|
|
37
|
+
if (child.props.onClick)
|
|
38
|
+
child.props.onClick();
|
|
39
|
+
handleSelect(idx);
|
|
40
|
+
} }, child.props.label));
|
|
39
41
|
})),
|
|
40
42
|
react_1.default.createElement(tabs_styles_1.TabContent, null, react_1.default.Children.map(children, function (child, idx) {
|
|
41
43
|
if (child.type !== TabPane)
|
|
42
44
|
return null;
|
|
43
45
|
if (selected !== idx)
|
|
44
46
|
return null;
|
|
45
|
-
return
|
|
46
|
-
selected: selected === idx,
|
|
47
|
-
handleClick: function () { return handleSelect(idx); },
|
|
48
|
-
});
|
|
47
|
+
return child;
|
|
49
48
|
}))));
|
|
50
49
|
};
|
|
51
50
|
exports.Tabs = Tabs;
|
|
@@ -33,8 +33,8 @@ var App = function (props) {
|
|
|
33
33
|
var dispatch = (0, store_1.useThreekitDispatch)();
|
|
34
34
|
(0, react_1.useEffect)(function () {
|
|
35
35
|
var init = function () {
|
|
36
|
-
var playerConfig = props.playerConfig, project = props.project, locale = props.locale, threekitEnv = props.threekitEnv;
|
|
37
|
-
dispatch((0, threekit_1.launch)({ playerConfig: playerConfig, project: project, locale: locale, threekitEnv: threekitEnv }));
|
|
36
|
+
var playerConfig = props.playerConfig, project = props.project, locale = props.locale, threekitEnv = props.threekitEnv, eventHandlers = props.eventHandlers;
|
|
37
|
+
dispatch((0, threekit_1.launch)({ playerConfig: playerConfig, project: project, locale: locale, threekitEnv: threekitEnv, eventHandlers: eventHandlers }));
|
|
38
38
|
};
|
|
39
39
|
init();
|
|
40
40
|
return;
|
|
@@ -33,7 +33,6 @@ function TrebleApp(props) {
|
|
|
33
33
|
var _a;
|
|
34
34
|
var project = props.project, productId = props.productId, playerConfig = props.playerConfig, threekitEnv = props.threekitEnv, locale = props.locale, theme = props.theme;
|
|
35
35
|
var config = constants_1.IS_TREBLE_SCRIPTS ? (0, utils_1.loadTrebleConfig)() : {};
|
|
36
|
-
console.log(config);
|
|
37
36
|
if (!((_a = config.treble) === null || _a === void 0 ? void 0 : _a.productsCtx)) {
|
|
38
37
|
console.error('Treble Config is not setup correctly');
|
|
39
38
|
return null;
|
package/dist/constants.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export declare const TK_SAVED_CONFIG_PARAM_KEY = "tkConfigId";
|
|
|
21
21
|
/*****************************************************
|
|
22
22
|
* Threekit Player Initialization Defaults
|
|
23
23
|
****************************************************/
|
|
24
|
+
export declare const TK_PLAYER_LOADER_DIV = "tk-ply-loader";
|
|
24
25
|
export declare const TK_PLAYER_ROOT_DIV = "tk-ply-root";
|
|
25
26
|
export declare const DEFAULT_PLAYER_CONFIG: {
|
|
26
27
|
showConfigurator: boolean;
|
package/dist/constants.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
****************************************************/
|
|
5
5
|
var _a;
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.WISHLIST_LOCALSTORAGE_KEY = exports.SNAPSHOT_OUTPUTS = exports.SNAPSHOT_FORMATS = exports.METADATA_RESERVED = exports.ATTRIBUTES_RESERVED = exports.SORT_OPTIONS = exports.ATTRIBUTE_TYPES = exports.DEFAULT_PLAYER_CONFIG = exports.TK_PLAYER_ROOT_DIV = exports.TK_SAVED_CONFIG_PARAM_KEY = exports.TK_PRODUCT_ID_PARAM_KEY = exports.IS_TREBLE_SCRIPTS = exports.FORM_CLASS_NAME = exports.DISPLAY_CLASS_NAME = exports.TOOL_CLASS_NAME = exports.LAYOUT_CLASS_NAME = exports.WIDGET_CLASS_NAME = exports.INPUT_COMPONENT_CLASS_NAME = exports.CLASS_NAME_PREFIX = exports.DEFAULT_CLASS_NAME = void 0;
|
|
7
|
+
exports.WISHLIST_LOCALSTORAGE_KEY = exports.SNAPSHOT_OUTPUTS = exports.SNAPSHOT_FORMATS = exports.METADATA_RESERVED = exports.ATTRIBUTES_RESERVED = exports.SORT_OPTIONS = exports.ATTRIBUTE_TYPES = exports.DEFAULT_PLAYER_CONFIG = exports.TK_PLAYER_ROOT_DIV = exports.TK_PLAYER_LOADER_DIV = exports.TK_SAVED_CONFIG_PARAM_KEY = exports.TK_PRODUCT_ID_PARAM_KEY = exports.IS_TREBLE_SCRIPTS = exports.FORM_CLASS_NAME = exports.DISPLAY_CLASS_NAME = exports.TOOL_CLASS_NAME = exports.LAYOUT_CLASS_NAME = exports.WIDGET_CLASS_NAME = exports.INPUT_COMPONENT_CLASS_NAME = exports.CLASS_NAME_PREFIX = exports.DEFAULT_CLASS_NAME = void 0;
|
|
8
8
|
exports.DEFAULT_CLASS_NAME = 'threekit-react';
|
|
9
9
|
exports.CLASS_NAME_PREFIX = 'tk';
|
|
10
10
|
exports.INPUT_COMPONENT_CLASS_NAME = "".concat(exports.DEFAULT_CLASS_NAME, " ").concat(exports.CLASS_NAME_PREFIX, "-input");
|
|
@@ -25,6 +25,7 @@ exports.TK_SAVED_CONFIG_PARAM_KEY = 'tkConfigId';
|
|
|
25
25
|
/*****************************************************
|
|
26
26
|
* Threekit Player Initialization Defaults
|
|
27
27
|
****************************************************/
|
|
28
|
+
exports.TK_PLAYER_LOADER_DIV = 'tk-ply-loader';
|
|
28
29
|
exports.TK_PLAYER_ROOT_DIV = 'tk-ply-root';
|
|
29
30
|
exports.DEFAULT_PLAYER_CONFIG = {
|
|
30
31
|
// authToken: undefined,
|
|
@@ -1,22 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var react_1 = require("react");
|
|
3
4
|
var react_redux_1 = require("react-redux");
|
|
4
5
|
var threekit_1 = require("../../store/threekit");
|
|
6
|
+
var constants_1 = require("../../constants");
|
|
5
7
|
var usePlayerPortal = function () {
|
|
8
|
+
var htmlElements = (0, react_1.useRef)({
|
|
9
|
+
player: null,
|
|
10
|
+
playerLoader: null,
|
|
11
|
+
playerWrapper: null,
|
|
12
|
+
});
|
|
6
13
|
var playerElementId = (0, react_redux_1.useSelector)(threekit_1.getPlayerElementId);
|
|
7
14
|
if (!playerElementId)
|
|
8
|
-
return undefined;
|
|
15
|
+
return [undefined, undefined];
|
|
9
16
|
var portalPlayerTo = function (toEl) {
|
|
10
17
|
if (!toEl)
|
|
11
18
|
return;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
19
|
+
if (!htmlElements.current.player)
|
|
20
|
+
htmlElements.current.player = document.getElementById(playerElementId);
|
|
21
|
+
htmlElements.current.playerWrapper = document.getElementById(toEl);
|
|
22
|
+
if (!htmlElements.current.player)
|
|
15
23
|
throw new Error('Move from element not found');
|
|
16
|
-
if (!
|
|
24
|
+
if (!htmlElements.current.playerWrapper)
|
|
17
25
|
throw new Error('Move To element not found');
|
|
18
|
-
|
|
26
|
+
htmlElements.current.playerWrapper.appendChild(htmlElements.current.player);
|
|
19
27
|
};
|
|
20
|
-
|
|
28
|
+
var returnPlayer = function () {
|
|
29
|
+
constants_1.TK_PLAYER_LOADER_DIV;
|
|
30
|
+
if (!htmlElements.current.player)
|
|
31
|
+
htmlElements.current.player = document.getElementById(playerElementId);
|
|
32
|
+
if (!htmlElements.current.playerLoader)
|
|
33
|
+
htmlElements.current.playerLoader =
|
|
34
|
+
document.getElementById(constants_1.TK_PLAYER_LOADER_DIV);
|
|
35
|
+
if (!htmlElements.current.player)
|
|
36
|
+
throw new Error('Move from element not found');
|
|
37
|
+
if (!htmlElements.current.playerLoader)
|
|
38
|
+
throw new Error('Player Loader element not found');
|
|
39
|
+
htmlElements.current.playerLoader.appendChild(htmlElements.current.player);
|
|
40
|
+
};
|
|
41
|
+
return [portalPlayerTo, returnPlayer];
|
|
21
42
|
};
|
|
22
43
|
exports.default = usePlayerPortal;
|
package/dist/store/threekit.d.ts
CHANGED
|
@@ -5,11 +5,15 @@ import { ISaveConfigurationConfig, WishlistArray } from '../Treble';
|
|
|
5
5
|
/*****************************************************
|
|
6
6
|
* Types and Interfaces
|
|
7
7
|
****************************************************/
|
|
8
|
+
interface EventHandlers {
|
|
9
|
+
postConfigurationChange?: (attributes: Array<IThreekitDisplayAttribute>) => void | Promise<void>;
|
|
10
|
+
}
|
|
8
11
|
export interface ILaunchConfig {
|
|
9
12
|
threekitEnv: string;
|
|
10
13
|
locale: string;
|
|
11
14
|
project: IProject;
|
|
12
15
|
playerConfig: IPlayerConfig;
|
|
16
|
+
eventHandlers: EventHandlers;
|
|
13
17
|
}
|
|
14
18
|
interface IPriceConfig {
|
|
15
19
|
id: string;
|
package/dist/store/threekit.js
CHANGED
|
@@ -75,7 +75,7 @@ var createPlayerLoaderEl = function (elementId) {
|
|
|
75
75
|
playerElement.setAttribute('id', elementId);
|
|
76
76
|
playerElement.style.height = '100%';
|
|
77
77
|
var playerLoader = document.createElement('div');
|
|
78
|
-
playerLoader.setAttribute('id',
|
|
78
|
+
playerLoader.setAttribute('id', constants_1.TK_PLAYER_LOADER_DIV);
|
|
79
79
|
playerLoader.appendChild(playerElement);
|
|
80
80
|
playerLoader.style.opacity = '0';
|
|
81
81
|
playerLoader.style.height = '1px';
|
|
@@ -84,6 +84,10 @@ var createPlayerLoaderEl = function (elementId) {
|
|
|
84
84
|
document.body.appendChild(playerLoader);
|
|
85
85
|
return playerElement;
|
|
86
86
|
};
|
|
87
|
+
/*****************************************************
|
|
88
|
+
* Constants and Event Handlers
|
|
89
|
+
****************************************************/
|
|
90
|
+
var EVENTS = {};
|
|
87
91
|
var initialState = {
|
|
88
92
|
// Player HTML element
|
|
89
93
|
playerElId: undefined,
|
|
@@ -357,6 +361,8 @@ var launch = function (launchConfig) {
|
|
|
357
361
|
dispatch(setLanguage(launchConfig.locale));
|
|
358
362
|
dispatch(setTranslations(translations));
|
|
359
363
|
}
|
|
364
|
+
if (launchConfig === null || launchConfig === void 0 ? void 0 : launchConfig.eventHandlers)
|
|
365
|
+
EVENTS = Object.assign(EVENTS, launchConfig.eventHandlers);
|
|
360
366
|
if (pricebook.length) {
|
|
361
367
|
priceConfig = {
|
|
362
368
|
id: pricebook[0].id,
|
|
@@ -393,6 +399,12 @@ var setConfiguration = function (config) { return function (dispatch) { return _
|
|
|
393
399
|
case 1:
|
|
394
400
|
_a.sent();
|
|
395
401
|
updatedAttributes = window.threekit.configurator.getDisplayAttributes();
|
|
402
|
+
if (!EVENTS.postConfigurationChange) return [3 /*break*/, 3];
|
|
403
|
+
return [4 /*yield*/, EVENTS.postConfigurationChange(updatedAttributes)];
|
|
404
|
+
case 2:
|
|
405
|
+
_a.sent();
|
|
406
|
+
_a.label = 3;
|
|
407
|
+
case 3:
|
|
396
408
|
dispatch(setAttributes(updatedAttributes));
|
|
397
409
|
dispatch(setPlayerLoading(false));
|
|
398
410
|
return [2 /*return*/];
|