@threekit-tools/treble 0.0.85-next-1 → 0.0.85-next-2

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 (45) hide show
  1. package/dist/Treble/Treble.d.ts +6 -9
  2. package/dist/Treble/Treble.js +10 -19
  3. package/dist/api/configurations.d.ts +0 -2
  4. package/dist/api/configurations.js +2 -4
  5. package/dist/api/index.d.ts +0 -2
  6. package/dist/api/index.js +0 -2
  7. package/dist/components/AwaitThreekitLoad/index.d.ts +3 -2
  8. package/dist/components/AwaitThreekitLoad/index.js +7 -2
  9. package/dist/components/DraggableHint/draggableIndicator.styles.d.ts +5 -0
  10. package/dist/components/DraggableHint/draggableIndicator.styles.js +35 -0
  11. package/dist/components/DraggableHint/index.d.ts +8 -0
  12. package/dist/components/DraggableHint/index.js +49 -0
  13. package/dist/components/PlayerLoadingCircular/index.d.ts +6 -0
  14. package/dist/components/PlayerLoadingCircular/index.js +18 -0
  15. package/dist/components/PlayerLoadingCircular/playerLoadingCircular.styles.d.ts +7 -0
  16. package/dist/components/PlayerLoadingCircular/playerLoadingCircular.styles.js +17 -0
  17. package/dist/components/PlayerLoadingSpinner/index.d.ts +7 -0
  18. package/dist/components/PlayerLoadingSpinner/index.js +17 -0
  19. package/dist/components/PlayerLoadingSpinner/playerLoadingSpinner.styles.d.ts +4 -0
  20. package/dist/components/PlayerLoadingSpinner/playerLoadingSpinner.styles.js +35 -0
  21. package/dist/components/Share/index.d.ts +0 -2
  22. package/dist/components/Share/index.js +2 -6
  23. package/dist/components/Skeleton/index.d.ts +18 -0
  24. package/dist/components/Skeleton/index.js +73 -0
  25. package/dist/components/Skeleton/skeleton.styles.d.ts +14 -0
  26. package/dist/components/Skeleton/skeleton.styles.js +43 -0
  27. package/dist/hooks/useFirstPlayerInteraction/index.d.ts +6 -0
  28. package/dist/hooks/useFirstPlayerInteraction/index.js +9 -0
  29. package/dist/hooks/useLoadingProgress/index.d.ts +1 -1
  30. package/dist/http/configurations.d.ts +0 -1
  31. package/dist/http/index.d.ts +0 -2
  32. package/dist/http/index.js +0 -2
  33. package/dist/icons/Draggable.d.ts +3 -0
  34. package/dist/icons/Draggable.js +23 -0
  35. package/dist/icons/index.js +2 -0
  36. package/dist/index.d.ts +6 -1
  37. package/dist/index.js +12 -2
  38. package/dist/store/treble.d.ts +5 -3
  39. package/dist/store/treble.js +32 -6
  40. package/dist/types.d.ts +0 -2
  41. package/package.json +1 -3
  42. package/dist/api/files.d.ts +0 -1
  43. package/dist/api/files.js +0 -63
  44. package/dist/http/files.d.ts +0 -21
  45. package/dist/http/files.js +0 -26
@@ -1,10 +1,10 @@
1
1
  import threekitAPI from '../api';
2
- import type { IThreekitPlayer, IThreekitPrivatePlayer, IConfiguration, ISetConfiguration, IThreekitPrivateConfigurator } from '../types';
3
- import type { IWishlist } from './wishlist';
2
+ import { IThreekitPlayer, IThreekitPrivatePlayer, IConfiguration, ISetConfiguration, IThreekitPrivateConfigurator } from '../types';
3
+ import { IWishlist } from './wishlist';
4
4
  import snapshots from './snapshots';
5
- import type { ISaveConfiguration } from '../api/configurations';
6
- import type { ICreateOrder } from '../api/orders';
7
- import type { ICartItem } from '../http/orders';
5
+ import { ISaveConfiguration } from '../api/configurations';
6
+ import { ICreateOrder } from '../api/orders';
7
+ import { ICartItem } from '../http/orders';
8
8
  interface ITreble {
9
9
  player: IThreekitPlayer;
10
10
  orgId: string;
@@ -18,9 +18,6 @@ interface IEmailShareCredentials {
18
18
  interface IOrder extends Omit<ICreateOrder, 'cart'> {
19
19
  cart?: Array<ICartItem>;
20
20
  }
21
- interface ISaveConfigurationObject extends Omit<ISaveConfiguration, 'configuraiton'> {
22
- saveSceneGraphState: boolean;
23
- }
24
21
  declare class Treble {
25
22
  _api: typeof threekitAPI;
26
23
  _player: IThreekitPrivatePlayer;
@@ -31,7 +28,7 @@ declare class Treble {
31
28
  _debugMode: boolean;
32
29
  constructor({ player, orgId, initialConfiguration }: ITreble);
33
30
  createOrder: (order?: IOrder) => Promise<import("../http/orders").IOrderResponse>;
34
- saveConfiguration: (config?: Partial<ISaveConfigurationObject>) => Promise<{
31
+ saveConfiguration: (config?: Partial<Omit<ISaveConfiguration, 'configuration'>>) => Promise<{
35
32
  resumableUrl: string;
36
33
  } & import("../http/configurations").IConfigurationResponse & {
37
34
  thumbnail: string;
@@ -46,7 +46,6 @@ var constants_1 = require("../constants");
46
46
  var utils_1 = require("../utils");
47
47
  var wishlist_1 = __importDefault(require("./wishlist"));
48
48
  var snapshots_1 = __importDefault(require("./snapshots"));
49
- var shortid_1 = __importDefault(require("shortid"));
50
49
  var Treble = (function () {
51
50
  function Treble(_a) {
52
51
  var player = _a.player, orgId = _a.orgId, initialConfiguration = _a.initialConfiguration;
@@ -81,32 +80,24 @@ var Treble = (function () {
81
80
  });
82
81
  }); };
83
82
  this.saveConfiguration = function (config) { return __awaiter(_this, void 0, void 0, function () {
84
- var threekitDomain, _a, customerId, metadata, productVersion, attachments, saveSceneGraphState, player, sceneGraphState, sceneGraphResponse, response, params, url;
83
+ var threekitDomain, _a, customerId, metadata, productVersion, attachments, player, response, params, url;
85
84
  var _b;
86
85
  var _c;
87
86
  return __generator(this, function (_d) {
88
87
  switch (_d.label) {
89
88
  case 0:
90
89
  threekitDomain = connection_1.default.getConnection().threekitDomain;
91
- _a = Object.assign({}, config), customerId = _a.customerId, metadata = _a.metadata, productVersion = _a.productVersion, attachments = _a.attachments, saveSceneGraphState = _a.saveSceneGraphState;
90
+ _a = Object.assign({}, config), customerId = _a.customerId, metadata = _a.metadata, productVersion = _a.productVersion, attachments = _a.attachments;
92
91
  player = window.threekit.player.enableApi(types_1.PRIVATE_APIS.PLAYER);
93
- if (!(saveSceneGraphState && player.saveSceneGraphState)) return [3, 2];
94
- return [4, api_1.default.files.saveFile(player.saveSceneGraphState())];
92
+ return [4, api_1.default.configurations.save({
93
+ assetId: window.threekit.player.assetId,
94
+ configuration: player.getConfigurator().getFullConfiguration(),
95
+ customerId: customerId,
96
+ metadata: metadata,
97
+ productVersion: productVersion,
98
+ attachments: attachments,
99
+ })];
95
100
  case 1:
96
- sceneGraphResponse = _d.sent();
97
- sceneGraphState = sceneGraphResponse.files[0].hash;
98
- _d.label = 2;
99
- case 2: return [4, api_1.default.configurations.save({
100
- shortId: shortid_1.default.generate(),
101
- assetId: window.threekit.player.assetId,
102
- configuration: player.getConfigurator().getFullConfiguration(),
103
- customerId: customerId,
104
- metadata: metadata,
105
- productVersion: productVersion,
106
- attachments: attachments,
107
- sceneGraphState: sceneGraphState,
108
- })];
109
- case 3:
110
101
  response = _d.sent();
111
102
  params = Object.assign((0, utils_1.getParams)(), (_b = {},
112
103
  _b[constants_1.TK_SAVED_CONFIG_PARAM_KEY] = response.data.shortId,
@@ -1,14 +1,12 @@
1
1
  import { IConfigurationResponse } from '../http/configurations';
2
2
  import { IConfiguration, IMetadata } from '../types';
3
3
  export interface ISaveConfiguration {
4
- shortId?: string;
5
4
  assetId: string;
6
5
  customerId?: string;
7
6
  configuration: IConfiguration;
8
7
  metadata?: IMetadata;
9
8
  productVersion?: string;
10
9
  attachments?: Record<string, File>;
11
- sceneGraphState?: string;
12
10
  }
13
11
  export declare const save: (saveConfig: ISaveConfiguration) => Promise<import("axios").AxiosResponse<IConfigurationResponse>>;
14
12
  export declare const fetch: (configurationId: string) => Promise<import("axios").AxiosResponse<IConfigurationResponse>>;
@@ -42,9 +42,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
42
42
  exports.fetchAll = exports.fetch = exports.save = void 0;
43
43
  var http_1 = __importDefault(require("../http"));
44
44
  var save = function (saveConfig) { return __awaiter(void 0, void 0, void 0, function () {
45
- var assetId, customerId, configuration, metadata, productVersion, attachments, sceneGraphState, error, fd, attachmentsPrepped_1;
45
+ var assetId, customerId, configuration, metadata, productVersion, attachments, error, fd, attachmentsPrepped_1;
46
46
  return __generator(this, function (_a) {
47
- assetId = saveConfig.assetId, customerId = saveConfig.customerId, configuration = saveConfig.configuration, metadata = saveConfig.metadata, productVersion = saveConfig.productVersion, attachments = saveConfig.attachments, sceneGraphState = saveConfig.sceneGraphState;
47
+ assetId = saveConfig.assetId, customerId = saveConfig.customerId, configuration = saveConfig.configuration, metadata = saveConfig.metadata, productVersion = saveConfig.productVersion, attachments = saveConfig.attachments;
48
48
  if (!assetId)
49
49
  error = 'Requires Asset Id';
50
50
  if (!configuration)
@@ -59,8 +59,6 @@ var save = function (saveConfig) { return __awaiter(void 0, void 0, void 0, func
59
59
  fd.append('metadata', JSON.stringify(metadata));
60
60
  if (customerId)
61
61
  fd.append('customerId', customerId);
62
- if (sceneGraphState)
63
- fd.append('sceneGraphState', sceneGraphState);
64
62
  if (attachments && Object.keys(attachments).length) {
65
63
  attachmentsPrepped_1 = {};
66
64
  Object.entries(attachments).forEach(function (_a) {
@@ -1,4 +1,3 @@
1
- import * as files from './files';
2
1
  import * as products from './products';
3
2
  import * as configurations from './configurations';
4
3
  import * as price from './price';
@@ -7,7 +6,6 @@ import * as catalog from './catalog';
7
6
  import * as datatables from './datatables';
8
7
  import * as server from './server';
9
8
  declare const _default: {
10
- files: typeof files;
11
9
  products: typeof products;
12
10
  configurations: typeof configurations;
13
11
  price: typeof price;
package/dist/api/index.js CHANGED
@@ -23,7 +23,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- var files = __importStar(require("./files"));
27
26
  var products = __importStar(require("./products"));
28
27
  var configurations = __importStar(require("./configurations"));
29
28
  var price = __importStar(require("./price"));
@@ -32,7 +31,6 @@ var catalog = __importStar(require("./catalog"));
32
31
  var datatables = __importStar(require("./datatables"));
33
32
  var server = __importStar(require("./server"));
34
33
  exports.default = {
35
- files: files,
36
34
  products: products,
37
35
  configurations: configurations,
38
36
  price: price,
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
- interface IAwaitThreekitLoad {
2
+ interface AwaitThreekitLoadProps {
3
3
  children: React.ReactNode;
4
+ fallback?: React.ReactNode;
4
5
  }
5
- declare const AwaitThreekitLoad: (props: IAwaitThreekitLoad) => JSX.Element | null;
6
+ declare const AwaitThreekitLoad: React.FC<AwaitThreekitLoadProps>;
6
7
  export default AwaitThreekitLoad;
@@ -6,9 +6,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var react_1 = __importDefault(require("react"));
7
7
  var useThreekitInitStatus_1 = __importDefault(require("../../hooks/useThreekitInitStatus"));
8
8
  var AwaitThreekitLoad = function (props) {
9
- var children = props.children;
9
+ var children = props.children, fallback = props.fallback;
10
10
  var isLoaded = (0, useThreekitInitStatus_1.default)();
11
- if (!isLoaded || !children)
11
+ if (!isLoaded) {
12
+ if (fallback)
13
+ return react_1.default.createElement(react_1.default.Fragment, null, fallback);
14
+ return null;
15
+ }
16
+ if (!children)
12
17
  return null;
13
18
  return react_1.default.createElement(react_1.default.Fragment, null, children);
14
19
  };
@@ -0,0 +1,5 @@
1
+ import { DraggableIndicatorProps } from './index';
2
+ declare type HandWrapperProps = Pick<DraggableIndicatorProps, 'color' | 'duration'>;
3
+ export declare const Wrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
4
+ export declare const HandWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, HandWrapperProps, never>;
5
+ export {};
@@ -0,0 +1,35 @@
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.HandWrapper = exports.Wrapper = void 0;
31
+ var styled_components_1 = __importStar(require("styled-components"));
32
+ var bounce = (0, styled_components_1.keyframes)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n 0% {\n transform: translateX(0);\n }\n\n 50% {\n transform: translateX(-100px);\n }\n\n 100% {\n transform: translateX(0);\n }\n"], ["\n 0% {\n transform: translateX(0);\n }\n\n 50% {\n transform: translateX(-100px);\n }\n\n 100% {\n transform: translateX(0);\n }\n"])));
33
+ exports.Wrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: max-content;\n position: absolute;\n z-index: 100;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n"], ["\n width: max-content;\n position: absolute;\n z-index: 100;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n"])));
34
+ exports.HandWrapper = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n height: 56px;\n width: 56px;\n background: ", ";\n margin: 0 auto;\n border-radius: 50%;\n z-index: 10;\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n\n animation: ", " ", "s ease infinite;\n\n & > div {\n height: max-content;\n width: max-content;\n margin: 0 auto;\n }\n"], ["\n height: 56px;\n width: 56px;\n background: ", ";\n margin: 0 auto;\n border-radius: 50%;\n z-index: 10;\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n\n animation: ", " ", "s ease infinite;\n\n & > div {\n height: max-content;\n width: max-content;\n margin: 0 auto;\n }\n"])), function (props) { return props.color || '#78c4a299'; }, bounce, function (props) { return props.duration || 2.5; });
35
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ export interface DraggableIndicatorProps {
3
+ color?: string;
4
+ duration?: number;
5
+ timeout?: number;
6
+ }
7
+ export declare function DraggableIndicator(props: DraggableIndicatorProps): JSX.Element | null;
8
+ export default DraggableIndicator;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.DraggableIndicator = void 0;
30
+ var react_1 = __importStar(require("react"));
31
+ var draggableIndicator_styles_1 = require("./draggableIndicator.styles");
32
+ var Draggable_1 = __importDefault(require("../../icons/Draggable"));
33
+ var useFirstPlayerInteraction_1 = __importDefault(require("../../hooks/useFirstPlayerInteraction"));
34
+ function DraggableIndicator(props) {
35
+ var awaitingFirstInteraction = (0, useFirstPlayerInteraction_1.default)();
36
+ var _a = (0, react_1.useState)(false), hasTimeoutExpired = _a[0], setHasTimeoutExpired = _a[1];
37
+ (0, react_1.useEffect)(function () {
38
+ if (awaitingFirstInteraction && props.timeout)
39
+ setTimeout(function () { return setHasTimeoutExpired(true); }, props.timeout);
40
+ }, [awaitingFirstInteraction]);
41
+ if (!awaitingFirstInteraction || hasTimeoutExpired)
42
+ return null;
43
+ return (react_1.default.createElement(draggableIndicator_styles_1.Wrapper, null,
44
+ react_1.default.createElement(draggableIndicator_styles_1.HandWrapper, { color: props.color, duration: props.duration },
45
+ react_1.default.createElement("div", null,
46
+ react_1.default.createElement(Draggable_1.default, null)))));
47
+ }
48
+ exports.DraggableIndicator = DraggableIndicator;
49
+ exports.default = DraggableIndicator;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export interface PlayerLoadingCircularProps {
3
+ size?: string;
4
+ }
5
+ export declare function PlayerLoadingCircular(props: PlayerLoadingCircularProps): JSX.Element | null;
6
+ export default PlayerLoadingCircular;
@@ -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.PlayerLoadingCircular = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var playerLoadingCircular_styles_1 = require("./playerLoadingCircular.styles");
9
+ var useLoadingProgress_1 = __importDefault(require("../../hooks/useLoadingProgress"));
10
+ function PlayerLoadingCircular(props) {
11
+ var progress = (0, useLoadingProgress_1.default)();
12
+ if (progress === 100 || progress === undefined)
13
+ return null;
14
+ return (react_1.default.createElement(playerLoadingCircular_styles_1.Wrapper, { size: props.size },
15
+ react_1.default.createElement(playerLoadingCircular_styles_1.Progress, { size: props.size, progress: progress })));
16
+ }
17
+ exports.PlayerLoadingCircular = PlayerLoadingCircular;
18
+ exports.default = PlayerLoadingCircular;
@@ -0,0 +1,7 @@
1
+ import { PlayerLoadingCircularProps } from './index';
2
+ interface ProgressProps extends PlayerLoadingCircularProps {
3
+ progress: number;
4
+ }
5
+ export declare const Wrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, Pick<ProgressProps, "size">, never>;
6
+ export declare const Progress: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, ProgressProps, never>;
7
+ export {};
@@ -0,0 +1,17 @@
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.Progress = exports.Wrapper = void 0;
11
+ var styled_components_1 = __importDefault(require("styled-components"));
12
+ var PRIMARY_COLOR = '#369';
13
+ var SECONDARY_COLOR = '#adf';
14
+ var SIZE = '120px';
15
+ exports.Wrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: ", ";\n width: ", ";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n"], ["\n height: ", ";\n width: ", ";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n"])), function (props) { return props.size || SIZE; }, function (props) { return props.size || SIZE; });
16
+ exports.Progress = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n animation: progress 2s 0.5s forwards;\n width: ", ";\n aspect-ratio: 1;\n border-radius: 50%;\n position: relative;\n overflow: hidden;\n display: grid;\n place-items: center;\n\n &::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: conic-gradient(\n ", " calc(", " * 1%),\n ", " 0\n );\n mask: radial-gradient(#0000 55%, #000 0);\n mask-mode: alpha;\n }\n\n &::after {\n counter-reset: percentage ", ";\n content: counter(percentage) '%';\n font-family: Helvetica, Arial, sans-serif;\n font-size: calc(", " / 5);\n color: ", ";\n }\n"], ["\n animation: progress 2s 0.5s forwards;\n width: ", ";\n aspect-ratio: 1;\n border-radius: 50%;\n position: relative;\n overflow: hidden;\n display: grid;\n place-items: center;\n\n &::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: conic-gradient(\n ", " calc(", " * 1%),\n ", " 0\n );\n mask: radial-gradient(#0000 55%, #000 0);\n mask-mode: alpha;\n }\n\n &::after {\n counter-reset: percentage ", ";\n content: counter(percentage) '%';\n font-family: Helvetica, Arial, sans-serif;\n font-size: calc(", " / 5);\n color: ", ";\n }\n"])), function (props) { return props.size || SIZE; }, PRIMARY_COLOR, function (props) { return props.progress; }, SECONDARY_COLOR, function (props) { return props.progress; }, function (props) { return props.size || SIZE; }, PRIMARY_COLOR);
17
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export interface PlayerLoadingSpinnerProps {
3
+ duration?: number;
4
+ size?: string;
5
+ }
6
+ export declare function PlayerLoadingSpinner(props: PlayerLoadingSpinnerProps): JSX.Element | null;
7
+ export default PlayerLoadingSpinner;
@@ -0,0 +1,17 @@
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.PlayerLoadingSpinner = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var playerLoadingSpinner_styles_1 = require("./playerLoadingSpinner.styles");
9
+ var useThreekitInitStatus_1 = __importDefault(require("../../hooks/useThreekitInitStatus"));
10
+ function PlayerLoadingSpinner(props) {
11
+ var hide = (0, useThreekitInitStatus_1.default)();
12
+ if (hide)
13
+ return null;
14
+ return react_1.default.createElement(playerLoadingSpinner_styles_1.Wrapper, { size: props.size, duration: props.duration });
15
+ }
16
+ exports.PlayerLoadingSpinner = PlayerLoadingSpinner;
17
+ exports.default = PlayerLoadingSpinner;
@@ -0,0 +1,4 @@
1
+ import { PlayerLoadingSpinnerProps } from './index';
2
+ declare type WrapperProps = Pick<PlayerLoadingSpinnerProps, 'duration' | 'size'>;
3
+ export declare const Wrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, WrapperProps, never>;
4
+ export {};
@@ -0,0 +1,35 @@
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.Wrapper = void 0;
31
+ var styled_components_1 = __importStar(require("styled-components"));
32
+ var SIZE = '36px';
33
+ var spin = (0, styled_components_1.keyframes)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\nto {\n transform: translateY(-50%) translateX(-50%) rotate(1turn);\n}\n"], ["\nto {\n transform: translateY(-50%) translateX(-50%) rotate(1turn);\n}\n"])));
34
+ exports.Wrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateY(-50%) translateX(-50%);\n width: ", ";\n aspect-ratio: 1;\n display: grid;\n mask: conic-gradient(from 22deg, #0001, #000);\n animation: ", " ", "s steps(8) infinite;\n\n &,\n &:before {\n background: linear-gradient(hsl(230deg 100% 20%) 0 0) 50%/34% 8% space no-repeat,\n linear-gradient(hsl(230deg 100% 20%) 0 0) 50%/8% 34% no-repeat space;\n }\n\n &:before {\n content: \"\";\n transform: rotate(45deg);\n }\n}\n\n"], ["\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateY(-50%) translateX(-50%);\n width: ", ";\n aspect-ratio: 1;\n display: grid;\n mask: conic-gradient(from 22deg, #0001, #000);\n animation: ", " ", "s steps(8) infinite;\n\n &,\n &:before {\n background: linear-gradient(hsl(230deg 100% 20%) 0 0) 50%/34% 8% space no-repeat,\n linear-gradient(hsl(230deg 100% 20%) 0 0) 50%/8% 34% no-repeat space;\n }\n\n &:before {\n content: \"\";\n transform: rotate(45deg);\n }\n}\n\n"])), function (props) { return props.size || SIZE; }, spin, function (props) { return props.duration || 1; });
35
+ var templateObject_1, templateObject_2;
@@ -8,7 +8,6 @@ interface ShareProps {
8
8
  className?: string;
9
9
  message?: string;
10
10
  position: Positions;
11
- saveSceneGraphState?: boolean;
12
11
  }
13
12
  export declare const Share: {
14
13
  (props: ShareProps): JSX.Element | null;
@@ -23,7 +22,6 @@ export declare const Share: {
23
22
  shape: string;
24
23
  type: string;
25
24
  message: string;
26
- saveSceneGraphState: boolean;
27
25
  };
28
26
  };
29
27
  export default Share;
@@ -77,8 +77,7 @@ var Share = function (props) {
77
77
  shape: 'round',
78
78
  message: 'Link copied!',
79
79
  position: 'bottom-right',
80
- saveSceneGraphState: false,
81
- }, props), shape = _a.shape, type = _a.type, className = _a.className, msg = _a.message, position = _a.position, saveSceneGraphState = _a.saveSceneGraphState;
80
+ }, props), shape = _a.shape, type = _a.type, className = _a.className, msg = _a.message, position = _a.position;
82
81
  var hasLoaded = (0, useThreekitInitStatus_1.default)();
83
82
  var _b = (0, react_1.useState)(false), show = _b[0], setShow = _b[1];
84
83
  var _c = (0, react_1.useState)(null), resumeUrl = _c[0], setResumeUrl = _c[1];
@@ -114,9 +113,7 @@ var Share = function (props) {
114
113
  setShow(!show);
115
114
  return [2];
116
115
  }
117
- return [4, window.threekit.treble.saveConfiguration({
118
- saveSceneGraphState: saveSceneGraphState,
119
- })];
116
+ return [4, window.threekit.treble.saveConfiguration()];
120
117
  case 1:
121
118
  configuration = _a.sent();
122
119
  _a.label = 2;
@@ -168,6 +165,5 @@ exports.Share.defaultProps = {
168
165
  shape: 'round',
169
166
  type: 'threekit',
170
167
  message: 'Link copied!',
171
- saveSceneGraphState: false,
172
168
  };
173
169
  exports.default = exports.Share;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ interface SkeletonProps {
3
+ shimmer?: boolean;
4
+ }
5
+ interface ISkeleton extends React.FC<SkeletonProps> {
6
+ ColorSwatchSkeleton: React.FC<SkeletonProps>;
7
+ CardsSkeleton: React.FC<SkeletonProps>;
8
+ StripsSkeleton: React.FC<SkeletonProps>;
9
+ FormHeaderSkeleton: React.FC<SkeletonProps>;
10
+ FormDescriptionSkeleton: React.FC<SkeletonProps>;
11
+ }
12
+ export declare const FormHeaderSkeleton: React.FC<SkeletonProps>;
13
+ export declare const FormDescriptionSkeleton: React.FC<SkeletonProps>;
14
+ export declare const StripsSkeleton: React.FC<SkeletonProps>;
15
+ export declare const CardsSkeleton: React.FC<SkeletonProps>;
16
+ export declare const ColowSwatchSkeleton: React.FC<SkeletonProps>;
17
+ declare const Skeleton: ISkeleton;
18
+ export default Skeleton;
@@ -0,0 +1,73 @@
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.ColowSwatchSkeleton = exports.CardsSkeleton = exports.StripsSkeleton = exports.FormDescriptionSkeleton = exports.FormHeaderSkeleton = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var skeleton_styles_1 = require("./skeleton.styles");
9
+ var FormHeaderSkeleton = function (props) {
10
+ var shimmer = props.shimmer;
11
+ return (react_1.default.createElement(skeleton_styles_1.FormHeaderWrapper, { shimmer: shimmer },
12
+ react_1.default.createElement(skeleton_styles_1.ShimmerDiv, null),
13
+ react_1.default.createElement(skeleton_styles_1.ShimmerDiv, null)));
14
+ };
15
+ exports.FormHeaderSkeleton = FormHeaderSkeleton;
16
+ var FormDescriptionSkeleton = function (props) {
17
+ var shimmer = props.shimmer;
18
+ return react_1.default.createElement(skeleton_styles_1.FormDescriptionWrapper, { shimmer: shimmer });
19
+ };
20
+ exports.FormDescriptionSkeleton = FormDescriptionSkeleton;
21
+ var StripsSkeleton = function (props) {
22
+ var shimmer = props.shimmer;
23
+ return (react_1.default.createElement(skeleton_styles_1.SkeletonWrapper, { shimmer: shimmer },
24
+ react_1.default.createElement(skeleton_styles_1.TitleWrapper, { shimmer: shimmer }),
25
+ react_1.default.createElement(skeleton_styles_1.DescriptionWrapper, { shimmer: shimmer }),
26
+ react_1.default.createElement("div", null, Array(3)
27
+ .fill(null)
28
+ .map(function (_, i) { return (react_1.default.createElement(skeleton_styles_1.StripsItem, { key: i },
29
+ react_1.default.createElement(skeleton_styles_1.ShimmerDiv, null),
30
+ react_1.default.createElement("div", null,
31
+ react_1.default.createElement(skeleton_styles_1.ShimmerDiv, null),
32
+ react_1.default.createElement(skeleton_styles_1.ShimmerDiv, null)),
33
+ react_1.default.createElement("div", null,
34
+ react_1.default.createElement(skeleton_styles_1.ShimmerDiv, null)))); }))));
35
+ };
36
+ exports.StripsSkeleton = StripsSkeleton;
37
+ var CardsSkeleton = function (props) {
38
+ var shimmer = props.shimmer;
39
+ return (react_1.default.createElement(skeleton_styles_1.SkeletonWrapper, { shimmer: shimmer },
40
+ react_1.default.createElement(skeleton_styles_1.TitleWrapper, { shimmer: shimmer }),
41
+ react_1.default.createElement(skeleton_styles_1.DescriptionWrapper, { shimmer: shimmer }),
42
+ react_1.default.createElement(skeleton_styles_1.RowWrapper, null, Array(3)
43
+ .fill(null)
44
+ .map(function (_, i) { return (react_1.default.createElement(skeleton_styles_1.CardItem, { key: i },
45
+ react_1.default.createElement(skeleton_styles_1.ShimmerDiv, null),
46
+ react_1.default.createElement(skeleton_styles_1.ShimmerDiv, null),
47
+ react_1.default.createElement(skeleton_styles_1.ShimmerDiv, null))); }))));
48
+ };
49
+ exports.CardsSkeleton = CardsSkeleton;
50
+ var ColowSwatchSkeleton = function (props) {
51
+ var shimmer = props.shimmer;
52
+ return (react_1.default.createElement(skeleton_styles_1.SkeletonWrapper, { shimmer: shimmer },
53
+ react_1.default.createElement(skeleton_styles_1.TitleWrapper, { shimmer: shimmer }),
54
+ react_1.default.createElement(skeleton_styles_1.DescriptionWrapper, { shimmer: shimmer }),
55
+ react_1.default.createElement(skeleton_styles_1.RowWrapper, null, Array(8)
56
+ .fill(null)
57
+ .map(function (_, i) { return (react_1.default.createElement(skeleton_styles_1.SwatchItem, { key: i })); }))));
58
+ };
59
+ exports.ColowSwatchSkeleton = ColowSwatchSkeleton;
60
+ var Skeleton = function (props) {
61
+ var shimmer = props.shimmer;
62
+ return (react_1.default.createElement("div", null,
63
+ react_1.default.createElement(exports.FormHeaderSkeleton, { shimmer: shimmer }),
64
+ react_1.default.createElement(exports.FormDescriptionSkeleton, { shimmer: shimmer }),
65
+ react_1.default.createElement(exports.StripsSkeleton, { shimmer: shimmer }),
66
+ react_1.default.createElement(exports.CardsSkeleton, { shimmer: shimmer })));
67
+ };
68
+ Skeleton.FormHeaderSkeleton = exports.FormHeaderSkeleton;
69
+ Skeleton.FormDescriptionSkeleton = exports.FormDescriptionSkeleton;
70
+ Skeleton.ColorSwatchSkeleton = exports.ColowSwatchSkeleton;
71
+ Skeleton.CardsSkeleton = exports.CardsSkeleton;
72
+ Skeleton.StripsSkeleton = exports.StripsSkeleton;
73
+ exports.default = Skeleton;
@@ -0,0 +1,14 @@
1
+ interface ShimmerProps {
2
+ shimmer?: boolean;
3
+ }
4
+ export declare const ShimmerDiv: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, ShimmerProps, never>;
5
+ export declare const SkeletonWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, ShimmerProps, never>;
6
+ export declare const FormHeaderWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, ShimmerProps, never>;
7
+ export declare const FormDescriptionWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, ShimmerProps, never>;
8
+ export declare const TitleWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, ShimmerProps, never>;
9
+ export declare const DescriptionWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, ShimmerProps, never>;
10
+ export declare const RowWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
11
+ export declare const SwatchItem: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, ShimmerProps, never>;
12
+ export declare const StripsItem: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
13
+ export declare const CardItem: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
14
+ export {};
@@ -0,0 +1,43 @@
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.CardItem = exports.StripsItem = exports.SwatchItem = exports.RowWrapper = exports.DescriptionWrapper = exports.TitleWrapper = exports.FormDescriptionWrapper = exports.FormHeaderWrapper = exports.SkeletonWrapper = exports.ShimmerDiv = void 0;
31
+ var styled_components_1 = __importStar(require("styled-components"));
32
+ var shimmer = (0, styled_components_1.keyframes)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n 0% {\n background-position: -468px 0;\n }\n \n 100% {\n background-position: 468px 0; \n }\n"], ["\n 0% {\n background-position: -468px 0;\n }\n \n 100% {\n background-position: 468px 0; \n }\n"])));
33
+ exports.ShimmerDiv = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background: #d9d9d9;\n background-image: linear-gradient(\n to right,\n #d9d9d9 0%,\n #c9c9c9 20%,\n #d9d9d9 40%,\n #d9d9d9 100%\n );\n background-repeat: no-repeat;\n background-size: 800px 140px;\n\n animation-duration: 1.4s;\n animation-fill-mode: forwards;\n animation-iteration-count: infinite;\n animation-name: ", ";\n animation-timing-function: linear;\n"], ["\n background: #d9d9d9;\n background-image: linear-gradient(\n to right,\n #d9d9d9 0%,\n #c9c9c9 20%,\n #d9d9d9 40%,\n #d9d9d9 100%\n );\n background-repeat: no-repeat;\n background-size: 800px 140px;\n\n animation-duration: 1.4s;\n animation-fill-mode: forwards;\n animation-iteration-count: infinite;\n animation-name: ", ";\n animation-timing-function: linear;\n"])), shimmer);
34
+ exports.SkeletonWrapper = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n margin: 32px 0 32px 0;\n\n ", " {\n ", "\n }\n"], ["\n margin: 32px 0 32px 0;\n\n ", " {\n ", "\n }\n"])), exports.ShimmerDiv, function (props) { return (props.shimmer ? '' : "background: #d9d9d9;"); });
35
+ exports.FormHeaderWrapper = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n & > div:nth-child(1) {\n height: 32px;\n width: 400px;\n border-radius: 2px;\n margin-bottom: 10px;\n ", "\n }\n\n & > div:nth-child(2) {\n height: 20px;\n width: 250px;\n border-radius: 2px;\n ", "\n }\n"], ["\n & > div:nth-child(1) {\n height: 32px;\n width: 400px;\n border-radius: 2px;\n margin-bottom: 10px;\n ", "\n }\n\n & > div:nth-child(2) {\n height: 20px;\n width: 250px;\n border-radius: 2px;\n ", "\n }\n"])), function (props) { return (props.shimmer ? '' : "background: #d9d9d9;"); }, function (props) { return (props.shimmer ? '' : "background: #d9d9d9;"); });
36
+ exports.FormDescriptionWrapper = (0, styled_components_1.default)(exports.ShimmerDiv)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n width: 100%;\n max-width: 440px;\n height: 62px;\n border-radius: 2px;\n margin: 32px 0;\n\n background-size: 800px 62px;\n ", "\n"], ["\n width: 100%;\n max-width: 440px;\n height: 62px;\n border-radius: 2px;\n margin: 32px 0;\n\n background-size: 800px 62px;\n ", "\n"])), function (props) { return (props.shimmer ? '' : "background: #d9d9d9;"); });
37
+ exports.TitleWrapper = (0, styled_components_1.default)(exports.ShimmerDiv)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n border-radius: 2px;\n margin-bottom: 8px;\n height: 32px;\n width: 200px;\n ", "\n"], ["\n border-radius: 2px;\n margin-bottom: 8px;\n height: 32px;\n width: 200px;\n ", "\n"])), function (props) { return (props.shimmer ? '' : "background: #d9d9d9;"); });
38
+ exports.DescriptionWrapper = (0, styled_components_1.default)(exports.ShimmerDiv)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n border-radius: 2px;\n margin-bottom: 8px;\n height: 20px;\n width: 250px;\n ", "\n"], ["\n border-radius: 2px;\n margin-bottom: 8px;\n height: 20px;\n width: 250px;\n ", "\n"])), function (props) { return (props.shimmer ? '' : "background: #d9d9d9;"); });
39
+ exports.RowWrapper = styled_components_1.default.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n\n & > div {\n margin-right: 12px;\n }\n\n & > div:last-child {\n margin-right: 0;\n }\n"], ["\n display: flex;\n flex-direction: row;\n\n & > div {\n margin-right: 12px;\n }\n\n & > div:last-child {\n margin-right: 0;\n }\n"])));
40
+ exports.SwatchItem = (0, styled_components_1.default)(exports.ShimmerDiv)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n height: 40px;\n width: 40px;\n border-radius: 50%;\n"], ["\n height: 40px;\n width: 40px;\n border-radius: 50%;\n"])));
41
+ exports.StripsItem = styled_components_1.default.div(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n height: max-content;\n width: 440px;\n border-radius: 2px;\n background: #d9d9d94d;\n padding: 8px;\n margin-bottom: 10px;\n\n display: grid;\n grid-template-columns: max-content auto max-content;\n grid-gap: 12px;\n\n & > div:nth-child(1) {\n height: 48px;\n width: 48px;\n border-radius: 2px;\n }\n\n & > div:nth-child(2) {\n & > div:nth-child(1) {\n height: 20px;\n width: 220px;\n margin-bottom: 6px;\n border-radius: 2px;\n }\n\n & > div:nth-child(2) {\n height: 20px;\n width: 170px;\n border-radius: 2px;\n }\n }\n\n & > div:nth-child(3) {\n height: 100%;\n display: flex;\n justify-content: space-around;\n flex-direction: column;\n\n & > div {\n height: 20px;\n width: 61px;\n border-radius: 2px;\n }\n }\n"], ["\n height: max-content;\n width: 440px;\n border-radius: 2px;\n background: #d9d9d94d;\n padding: 8px;\n margin-bottom: 10px;\n\n display: grid;\n grid-template-columns: max-content auto max-content;\n grid-gap: 12px;\n\n & > div:nth-child(1) {\n height: 48px;\n width: 48px;\n border-radius: 2px;\n }\n\n & > div:nth-child(2) {\n & > div:nth-child(1) {\n height: 20px;\n width: 220px;\n margin-bottom: 6px;\n border-radius: 2px;\n }\n\n & > div:nth-child(2) {\n height: 20px;\n width: 170px;\n border-radius: 2px;\n }\n }\n\n & > div:nth-child(3) {\n height: 100%;\n display: flex;\n justify-content: space-around;\n flex-direction: column;\n\n & > div {\n height: 20px;\n width: 61px;\n border-radius: 2px;\n }\n }\n"])));
42
+ exports.CardItem = styled_components_1.default.div(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n height: max-content;\n width: max-content;\n border-radius: 2px;\n background: #d9d9d94d;\n padding: 22px 12px;\n\n & > div:nth-child(1) {\n height: 110px;\n width: 110px;\n margin-bottom: 6px;\n }\n\n & > div:nth-child(2) {\n height: 20px;\n width: 110px;\n margin-bottom: 6px;\n border-radius: 2px;\n }\n\n & > div:nth-child(3) {\n height: 20px;\n width: 72px;\n border-radius: 2px;\n }\n"], ["\n height: max-content;\n width: max-content;\n border-radius: 2px;\n background: #d9d9d94d;\n padding: 22px 12px;\n\n & > div:nth-child(1) {\n height: 110px;\n width: 110px;\n margin-bottom: 6px;\n }\n\n & > div:nth-child(2) {\n height: 20px;\n width: 110px;\n margin-bottom: 6px;\n border-radius: 2px;\n }\n\n & > div:nth-child(3) {\n height: 20px;\n width: 72px;\n border-radius: 2px;\n }\n"])));
43
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11;
@@ -0,0 +1,6 @@
1
+ export interface DraggablePlayerTipProps {
2
+ color?: string;
3
+ duration?: number;
4
+ }
5
+ declare const useFirstPlayerInteraction: () => undefined | boolean;
6
+ export default useFirstPlayerInteraction;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var store_1 = require("../../store");
4
+ var treble_1 = require("../../store/treble");
5
+ var useFirstPlayerInteraction = function () {
6
+ var awaitingFirstInteraction = (0, store_1.useThreekitSelector)(treble_1.getPlayerInteraction);
7
+ return awaitingFirstInteraction;
8
+ };
9
+ exports.default = useFirstPlayerInteraction;
@@ -1,2 +1,2 @@
1
- declare const useLoadingProgress: () => number;
1
+ declare const useLoadingProgress: () => number | undefined;
2
2
  export default useLoadingProgress;
@@ -14,7 +14,6 @@ export interface IConfigurationResponse {
14
14
  thumbnail: null | string;
15
15
  variant: IConfiguration;
16
16
  attachments: Record<string, string>;
17
- sceneGraphState: null | string;
18
17
  }
19
18
  interface IConfigurationsResponse extends IMultiPageResponse {
20
19
  configurations: Array<IConfigurationResponse>;
@@ -1,4 +1,3 @@
1
- import * as files from './files';
2
1
  import * as orders from './orders';
3
2
  import * as products from './products';
4
3
  import * as configurations from './configurations';
@@ -7,7 +6,6 @@ import * as catalog from './catalog';
7
6
  import * as datatables from './datatables';
8
7
  import * as server from './server';
9
8
  declare const _default: {
10
- files: typeof files;
11
9
  orders: typeof orders;
12
10
  products: typeof products;
13
11
  configurations: typeof configurations;
@@ -23,7 +23,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- var files = __importStar(require("./files"));
27
26
  var orders = __importStar(require("./orders"));
28
27
  var products = __importStar(require("./products"));
29
28
  var configurations = __importStar(require("./configurations"));
@@ -32,7 +31,6 @@ var catalog = __importStar(require("./catalog"));
32
31
  var datatables = __importStar(require("./datatables"));
33
32
  var server = __importStar(require("./server"));
34
33
  exports.default = {
35
- files: files,
36
34
  orders: orders,
37
35
  products: products,
38
36
  configurations: configurations,
@@ -0,0 +1,3 @@
1
+ import { IIcon } from './index';
2
+ export declare const Draggable: IIcon;
3
+ export default Draggable;
@@ -0,0 +1,23 @@
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.Draggable = void 0;
11
+ var react_1 = __importDefault(require("react"));
12
+ var styled_components_1 = __importDefault(require("styled-components"));
13
+ var SVG = styled_components_1.default.svg(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n .tk-icon {\n fill: ", ";\n }\n"], ["\n .tk-icon {\n fill: ", ";\n }\n"])), function (props) { return props.theme.textColor; });
14
+ var Draggable = function () {
15
+ return (react_1.default.createElement(SVG, { width: "38", height: "40", viewBox: "0 0 38 40", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
16
+ react_1.default.createElement("path", { d: "M27.9815 5.45671L30.0862 8.65278L33.828 7.40553L36.9461 8.65278L36.7122 29.9339L33.1264 35.5466L27.5138 38.5867L14.1838 38.9765L7.47985 36.7938L3.66015 34.3773L2.33495 31.8048L1.63337 29.5442L1.0877 16.2922L3.66015 12.0827L7.47985 9.82208L8.57119 1.87087L12.6247 0.701577L15.587 4.13151L18.1594 3.35198H20.8098L22.7586 6.70396L25.0972 5.45671H27.9815Z", fill: "#8C8C8C" }),
17
+ react_1.default.createElement("path", { d: "M33.96 24.7661C33.7703 28.3711 32.751 31.153 30.8585 33.1273C28.966 35.1017 25.8767 35.8779 21.8818 36.2584C21.5389 36.291 21.2874 36.5954 21.3201 36.9383C21.3527 37.2812 21.6571 37.5327 22 37.5C26.1901 37.1009 29.5979 36.2449 31.759 33.9904C33.9201 31.7357 35.0055 28.6321 35.2055 24.8316C35.2236 24.4877 34.9595 24.1942 34.6156 24.1761C34.2716 24.158 33.9781 24.4221 33.96 24.7661Z", className: "tk-icon" }),
18
+ react_1.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.22391 9.36853C5.44399 9.98874 4.1305 10.6237 3.10979 11.513C2.03569 12.4487 1.33529 13.622 0.715487 15.2188L0.69783 15.2643L0.687463 15.312L1.29685 15.4445C0.687463 15.312 0.68725 15.313 0.68725 15.313L0.687032 15.314L0.686578 15.3162L0.685604 15.3208C0.684925 15.3242 0.684185 15.3279 0.683386 15.332C0.681792 15.3403 0.679952 15.3503 0.67789 15.3624C0.673775 15.3864 0.668707 15.4188 0.662907 15.4616C0.651334 15.5469 0.636567 15.6753 0.620646 15.8632C0.588839 16.2385 0.551819 16.8582 0.527256 17.8554C0.478135 19.8497 0.478465 23.3704 0.673545 29.4959C0.781702 32.892 3.31916 35.5153 6.78326 37.2629C10.2666 39.0203 14.836 39.9799 19.3695 39.9997C23.8999 40.0195 28.4686 39.1009 31.9279 37.0266C35.4133 34.9366 37.7789 31.6612 37.7789 27.0595V10.8453C37.7593 9.50257 37.2334 8.45356 36.4198 7.74523C35.6029 7.0341 34.5338 6.69847 33.4881 6.70404C32.4425 6.7096 31.3762 7.05644 30.5622 7.76798C30.498 7.82408 30.4356 7.88228 30.375 7.94255C30.2006 6.9769 29.7369 6.20175 29.0922 5.6405C28.2753 4.92937 27.2062 4.59374 26.1605 4.59931C25.1149 4.60487 24.0486 4.95171 23.2346 5.66325C23.1816 5.70954 23.1299 5.75726 23.0794 5.80639C22.936 4.7462 22.4538 3.90185 21.7646 3.30191C20.9478 2.59078 19.8787 2.25515 18.833 2.26072C17.7873 2.26628 16.721 2.61312 15.907 3.32466C15.8506 3.37394 15.7956 3.42484 15.7421 3.47733C15.5875 2.44918 15.1113 1.62824 14.437 1.04126C13.6202 0.330136 12.5511 -0.00549506 11.5054 6.80095e-05C10.4597 0.00563089 9.39343 0.352475 8.57942 1.06401C7.81729 1.7302 7.30554 2.69185 7.23077 3.90742L7.22487 3.90742L7.22485 4.02731C7.22248 4.09063 7.22129 4.15461 7.22129 4.21926H7.22481L7.22391 9.36853ZM9.40027 2.00307C8.88313 2.45511 8.51195 3.1253 8.47209 4.05205L8.4686 24.0195C8.46854 24.364 8.18928 24.6431 7.84487 24.643C7.50045 24.643 7.22129 24.3637 7.22135 24.0193L7.22368 10.693C5.72634 11.2416 4.70404 11.7782 3.92908 12.4534C3.07383 13.1985 2.47294 14.1538 1.90141 15.6107C1.90061 15.6163 1.89975 15.6225 1.89883 15.6293C1.89061 15.6899 1.87797 15.7971 1.86344 15.9685C1.83434 16.3118 1.79828 16.9054 1.77413 17.8861C1.7258 19.848 1.72547 23.343 1.92016 29.4562C2.00689 32.1794 4.04917 34.4866 7.34505 36.1494C10.6217 37.8025 14.9925 38.7333 19.3749 38.7524C23.7604 38.7716 28.0831 37.8778 31.2865 35.957C34.4635 34.0519 36.5316 31.1496 36.5316 27.0595L36.5316 10.9232C36.5316 9.88678 36.1454 9.16004 35.6008 8.68594C35.0437 8.20097 34.2809 7.94708 33.4948 7.95127C32.7085 7.95545 31.9429 8.21761 31.383 8.70704C30.862 9.16245 30.4892 9.83928 30.454 10.7768L30.4515 16.6922C30.4514 17.0366 30.172 17.3157 29.8276 17.3155C29.4832 17.3154 29.2041 17.0361 29.2043 16.6916L29.2067 10.9232H29.204C29.204 10.8667 29.2049 10.8106 29.2068 10.755L29.2076 8.8185H29.204C29.204 7.78205 28.8178 7.05531 28.2732 6.58121C27.7162 6.09624 26.9534 5.84235 26.1672 5.84654C25.3809 5.85072 24.6153 6.11288 24.0554 6.60231C23.5343 7.05787 23.1613 7.73502 23.1264 8.67305L23.1237 15.4449C23.1236 15.7893 22.8443 16.0684 22.4999 16.0683C22.1554 16.0681 21.8763 15.7888 21.8765 15.4444L21.8791 8.8185H21.8764C21.8764 8.76232 21.8773 8.70664 21.8791 8.65146L21.88 6.47991H21.8764C21.8764 5.44346 21.4903 4.71672 20.9457 4.24262C20.3886 3.75765 19.6258 3.50376 18.8396 3.50795C18.0534 3.51213 17.2878 3.77429 16.7278 4.26372C16.2071 4.71888 15.8344 5.39523 15.7989 6.33197L15.7963 13.8858C15.7961 14.2302 15.5168 14.5093 15.1724 14.5092C14.828 14.5091 14.5489 14.2298 14.549 13.8854L14.5516 6.47991H14.5489C14.5489 6.42277 14.5498 6.36614 14.5517 6.31003L14.5524 4.21926H14.5489C14.5489 3.18282 14.1627 2.45608 13.6181 1.98197C13.061 1.497 12.2982 1.24312 11.512 1.2473C10.7258 1.25148 9.96018 1.51365 9.40027 2.00307Z", className: "tk-icon" })));
19
+ };
20
+ exports.Draggable = Draggable;
21
+ exports.Draggable.iconName = 'draggable';
22
+ exports.default = exports.Draggable;
23
+ var templateObject_1;
@@ -22,6 +22,7 @@ var DoubleCaretLeft_1 = __importDefault(require("./DoubleCaretLeft"));
22
22
  var DoubleCaretRight_1 = __importDefault(require("./DoubleCaretRight"));
23
23
  var Download_1 = __importDefault(require("./Download"));
24
24
  var Drag_1 = __importDefault(require("./Drag"));
25
+ var Draggable_1 = __importDefault(require("./Draggable"));
25
26
  var Edit_1 = __importDefault(require("./Edit"));
26
27
  var Heart_1 = __importDefault(require("./Heart"));
27
28
  var Image_1 = __importDefault(require("./Image"));
@@ -64,6 +65,7 @@ exports.default = (_a = {},
64
65
  _a[DoubleCaretRight_1.default.iconName] = DoubleCaretRight_1.default,
65
66
  _a[Download_1.default.iconName] = Download_1.default,
66
67
  _a[Drag_1.default.iconName] = Drag_1.default,
68
+ _a[Draggable_1.default.iconName] = Draggable_1.default,
67
69
  _a[Edit_1.default.iconName] = Edit_1.default,
68
70
  _a[Heart_1.default.iconName] = Heart_1.default,
69
71
  _a[Image_1.default.iconName] = Image_1.default,
package/dist/index.d.ts CHANGED
@@ -31,6 +31,7 @@ import ProductDescription from './components/ProductDescription';
31
31
  import AttributeTitle from './components/AttributeTitle';
32
32
  import AttributeValue from './components/AttributeValue';
33
33
  import TotalPrice from './components/TotalPrice';
34
+ import Skeleton from './components/Skeleton';
34
35
  import message from './components/message';
35
36
  import Modal from './components/Modal';
36
37
  import Drawer from './components/Drawer';
@@ -46,6 +47,9 @@ import Wishlist from './components/Wishlist';
46
47
  import Share from './components/Share';
47
48
  import TrebleApp from './components/TrebleApp';
48
49
  import ProductLayout from './components/ProductLayout';
50
+ import PlayerLoadingCircular from './components/PlayerLoadingCircular';
51
+ import PlayerLoadingSpinner from './components/PlayerLoadingSpinner';
52
+ import DraggableHint from './components/DraggableHint';
49
53
  import AddIcon from './icons/Add';
50
54
  import ArrowLeftIcon from './icons/ArrowLeft';
51
55
  import ArrowRightIcon from './icons/ArrowRight';
@@ -63,6 +67,7 @@ import DeleteIcon from './icons/Delete';
63
67
  import DoubleCaretLeftIcon from './icons/DoubleCaretLeft';
64
68
  import DoubleCaretRightIcon from './icons/DoubleCaretRight';
65
69
  import DownloadIcon from './icons/Download';
70
+ import DraggableIcon from './icons/Draggable';
66
71
  import DragIcon from './icons/Drag';
67
72
  import EditIcon from './icons/Edit';
68
73
  import HeartIcon from './icons/Heart';
@@ -87,4 +92,4 @@ import WishlistIcon from './icons/Wishlist';
87
92
  import ZoomInIcon from './icons/ZoomIn';
88
93
  import ZoomOutIcon from './icons/ZoomOut';
89
94
  import SpinnerIcon from './icons/Spinner';
90
- export { useAttribute, useConfigurator, useConfigurationLoader, useMetadata, useName, usePlayerLoadingStatus, usePrice, useThreekitInitStatus, useZoom, useSnapshot, useWishlist, useShare, usePlayerPortal, useProductCache, useNestedConfigurator, useLoadingProgress, usePlayer, ThreekitProvider, Player, Button, Cards, Dropdown, Strips, Swatch, Tiles, TilesGroup, Upload, Switch, ProductName, ProductDescription, AttributeTitle, AttributeValue, TotalPrice, message, Modal, Drawer, Accordion, Tabs, PortalToArOverlay, PortalToElement, AwaitThreekitLoad, FlatForm, Zoom, Snapshots, Wishlist, Share, TrebleApp, ProductLayout, AddIcon, ArrowLeftIcon, ArrowRightIcon, CameraIcon, CaretDownIcon, CaretUpIcon, CaretLeftIcon, CaretRightIcon, CartIcon, CheckmateIcon, ClipboardIcon, ColorPickerIcon, CopyIcon, DeleteIcon, DoubleCaretLeftIcon, DoubleCaretRightIcon, DownloadIcon, DragIcon, EditIcon, HeartIcon, ImageIcon, InfoIcon, MailIcon, MenuIcon, MoreIcon, NewWindowIcon, PauseIcon, PlayIcon, RedoIcon, RemoveIcon, RulerIcon, SearchIcon, SettingsIcon, ShareIcon, SwitchIcon, TagIcon, UndoIcon, WishlistIcon, ZoomInIcon, ZoomOutIcon, SpinnerIcon, };
95
+ export { useAttribute, useConfigurator, useConfigurationLoader, useMetadata, useName, usePlayerLoadingStatus, usePrice, useThreekitInitStatus, useZoom, useSnapshot, useWishlist, useShare, usePlayerPortal, useProductCache, useNestedConfigurator, useLoadingProgress, usePlayer, ThreekitProvider, Player, Button, Cards, Dropdown, Strips, Swatch, Tiles, TilesGroup, Upload, Switch, ProductName, ProductDescription, AttributeTitle, AttributeValue, TotalPrice, Skeleton, message, Modal, Drawer, Accordion, Tabs, PortalToArOverlay, PortalToElement, AwaitThreekitLoad, FlatForm, Zoom, Snapshots, Wishlist, Share, TrebleApp, ProductLayout, PlayerLoadingCircular, PlayerLoadingSpinner, DraggableHint, AddIcon, ArrowLeftIcon, ArrowRightIcon, CameraIcon, CaretDownIcon, CaretUpIcon, CaretLeftIcon, CaretRightIcon, CartIcon, CheckmateIcon, ClipboardIcon, ColorPickerIcon, CopyIcon, DeleteIcon, DoubleCaretLeftIcon, DoubleCaretRightIcon, DownloadIcon, DraggableIcon, DragIcon, EditIcon, HeartIcon, ImageIcon, InfoIcon, MailIcon, MenuIcon, MoreIcon, NewWindowIcon, PauseIcon, PlayIcon, RedoIcon, RemoveIcon, RulerIcon, SearchIcon, SettingsIcon, ShareIcon, SwitchIcon, TagIcon, UndoIcon, WishlistIcon, ZoomInIcon, ZoomOutIcon, SpinnerIcon, };
package/dist/index.js CHANGED
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ArrowLeftIcon = exports.AddIcon = exports.ProductLayout = exports.TrebleApp = exports.Share = exports.Wishlist = exports.Snapshots = exports.Zoom = exports.FlatForm = exports.AwaitThreekitLoad = exports.PortalToElement = exports.PortalToArOverlay = exports.Tabs = exports.Accordion = exports.Drawer = exports.Modal = exports.message = exports.TotalPrice = exports.AttributeValue = exports.AttributeTitle = exports.ProductDescription = exports.ProductName = exports.Switch = exports.Upload = exports.TilesGroup = exports.Tiles = exports.Swatch = exports.Strips = exports.Dropdown = exports.Cards = exports.Button = exports.Player = exports.ThreekitProvider = exports.usePlayer = exports.useLoadingProgress = exports.useNestedConfigurator = exports.useProductCache = exports.usePlayerPortal = exports.useShare = exports.useWishlist = exports.useSnapshot = exports.useZoom = exports.useThreekitInitStatus = exports.usePrice = exports.usePlayerLoadingStatus = exports.useName = exports.useMetadata = exports.useConfigurationLoader = exports.useConfigurator = exports.useAttribute = void 0;
7
- exports.SpinnerIcon = exports.ZoomOutIcon = exports.ZoomInIcon = exports.WishlistIcon = exports.UndoIcon = exports.TagIcon = exports.SwitchIcon = exports.ShareIcon = exports.SettingsIcon = exports.SearchIcon = exports.RulerIcon = exports.RemoveIcon = exports.RedoIcon = exports.PlayIcon = exports.PauseIcon = exports.NewWindowIcon = exports.MoreIcon = exports.MenuIcon = exports.MailIcon = exports.InfoIcon = exports.ImageIcon = exports.HeartIcon = exports.EditIcon = exports.DragIcon = exports.DownloadIcon = exports.DoubleCaretRightIcon = exports.DoubleCaretLeftIcon = exports.DeleteIcon = exports.CopyIcon = exports.ColorPickerIcon = exports.ClipboardIcon = exports.CheckmateIcon = exports.CartIcon = exports.CaretRightIcon = exports.CaretLeftIcon = exports.CaretUpIcon = exports.CaretDownIcon = exports.CameraIcon = exports.ArrowRightIcon = void 0;
6
+ exports.PlayerLoadingCircular = exports.ProductLayout = exports.TrebleApp = exports.Share = exports.Wishlist = exports.Snapshots = exports.Zoom = exports.FlatForm = exports.AwaitThreekitLoad = exports.PortalToElement = exports.PortalToArOverlay = exports.Tabs = exports.Accordion = exports.Drawer = exports.Modal = exports.message = exports.Skeleton = exports.TotalPrice = exports.AttributeValue = exports.AttributeTitle = exports.ProductDescription = exports.ProductName = exports.Switch = exports.Upload = exports.TilesGroup = exports.Tiles = exports.Swatch = exports.Strips = exports.Dropdown = exports.Cards = exports.Button = exports.Player = exports.ThreekitProvider = exports.usePlayer = exports.useLoadingProgress = exports.useNestedConfigurator = exports.useProductCache = exports.usePlayerPortal = exports.useShare = exports.useWishlist = exports.useSnapshot = exports.useZoom = exports.useThreekitInitStatus = exports.usePrice = exports.usePlayerLoadingStatus = exports.useName = exports.useMetadata = exports.useConfigurationLoader = exports.useConfigurator = exports.useAttribute = void 0;
7
+ exports.SpinnerIcon = exports.ZoomOutIcon = exports.ZoomInIcon = exports.WishlistIcon = exports.UndoIcon = exports.TagIcon = exports.SwitchIcon = exports.ShareIcon = exports.SettingsIcon = exports.SearchIcon = exports.RulerIcon = exports.RemoveIcon = exports.RedoIcon = exports.PlayIcon = exports.PauseIcon = exports.NewWindowIcon = exports.MoreIcon = exports.MenuIcon = exports.MailIcon = exports.InfoIcon = exports.ImageIcon = exports.HeartIcon = exports.EditIcon = exports.DragIcon = exports.DraggableIcon = exports.DownloadIcon = exports.DoubleCaretRightIcon = exports.DoubleCaretLeftIcon = exports.DeleteIcon = exports.CopyIcon = exports.ColorPickerIcon = exports.ClipboardIcon = exports.CheckmateIcon = exports.CartIcon = exports.CaretRightIcon = exports.CaretLeftIcon = exports.CaretUpIcon = exports.CaretDownIcon = exports.CameraIcon = exports.ArrowRightIcon = exports.ArrowLeftIcon = exports.AddIcon = exports.DraggableHint = exports.PlayerLoadingSpinner = void 0;
8
8
  var useAttribute_1 = __importDefault(require("./hooks/useAttribute"));
9
9
  exports.useAttribute = useAttribute_1.default;
10
10
  var useConfigurator_1 = __importDefault(require("./hooks/useConfigurator"));
@@ -71,6 +71,8 @@ var AttributeValue_1 = __importDefault(require("./components/AttributeValue"));
71
71
  exports.AttributeValue = AttributeValue_1.default;
72
72
  var TotalPrice_1 = __importDefault(require("./components/TotalPrice"));
73
73
  exports.TotalPrice = TotalPrice_1.default;
74
+ var Skeleton_1 = __importDefault(require("./components/Skeleton"));
75
+ exports.Skeleton = Skeleton_1.default;
74
76
  var message_1 = __importDefault(require("./components/message"));
75
77
  exports.message = message_1.default;
76
78
  var Modal_1 = __importDefault(require("./components/Modal"));
@@ -101,6 +103,12 @@ var TrebleApp_1 = __importDefault(require("./components/TrebleApp"));
101
103
  exports.TrebleApp = TrebleApp_1.default;
102
104
  var ProductLayout_1 = __importDefault(require("./components/ProductLayout"));
103
105
  exports.ProductLayout = ProductLayout_1.default;
106
+ var PlayerLoadingCircular_1 = __importDefault(require("./components/PlayerLoadingCircular"));
107
+ exports.PlayerLoadingCircular = PlayerLoadingCircular_1.default;
108
+ var PlayerLoadingSpinner_1 = __importDefault(require("./components/PlayerLoadingSpinner"));
109
+ exports.PlayerLoadingSpinner = PlayerLoadingSpinner_1.default;
110
+ var DraggableHint_1 = __importDefault(require("./components/DraggableHint"));
111
+ exports.DraggableHint = DraggableHint_1.default;
104
112
  var Add_1 = __importDefault(require("./icons/Add"));
105
113
  exports.AddIcon = Add_1.default;
106
114
  var ArrowLeft_1 = __importDefault(require("./icons/ArrowLeft"));
@@ -135,6 +143,8 @@ var DoubleCaretRight_1 = __importDefault(require("./icons/DoubleCaretRight"));
135
143
  exports.DoubleCaretRightIcon = DoubleCaretRight_1.default;
136
144
  var Download_1 = __importDefault(require("./icons/Download"));
137
145
  exports.DownloadIcon = Download_1.default;
146
+ var Draggable_1 = __importDefault(require("./icons/Draggable"));
147
+ exports.DraggableIcon = Draggable_1.default;
138
148
  var Drag_1 = __importDefault(require("./icons/Drag"));
139
149
  exports.DragIcon = Drag_1.default;
140
150
  var Edit_1 = __importDefault(require("./icons/Edit"));
@@ -5,7 +5,6 @@ export interface IPlayerInit {
5
5
  authToken: string;
6
6
  assetId: string;
7
7
  stageId?: string;
8
- configurationId?: string;
9
8
  orgId: string;
10
9
  playerConfig: IPlayerConfig;
11
10
  initialConfiguration?: IConfiguration;
@@ -35,7 +34,8 @@ export interface TrebleState {
35
34
  isThreekitInitialized: boolean;
36
35
  playerElId: undefined | string;
37
36
  notifications: boolean;
38
- loadingProgress: number;
37
+ loadingProgress: undefined | number;
38
+ awaitingFirstInteraction: undefined | boolean;
39
39
  }
40
40
  export interface NotificationEvent extends Event {
41
41
  detail: {
@@ -52,12 +52,14 @@ export declare const setPlayerLoading: import("@reduxjs/toolkit").ActionCreatorW
52
52
  export declare const setPlayerElement: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>;
53
53
  export declare const reloadTreble: import("@reduxjs/toolkit").ActionCreatorWithPayload<Partial<TrebleState>, string>;
54
54
  export declare const updateLoadingProgress: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, string>;
55
+ export declare const setPlayerInteraction: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>;
55
56
  declare const reducer: import("redux").Reducer<TrebleState, import("redux").AnyAction>;
56
57
  export declare const getThreekitEnv: (state: RootState) => string;
57
58
  export declare const isThreekitInitialized: (state: RootState) => boolean;
58
59
  export declare const isPlayerLoading: (state: RootState) => boolean;
59
60
  export declare const getPlayerElementId: (state: RootState) => undefined | string;
60
- export declare const getLoadingProgress: (state: RootState) => number;
61
+ export declare const getLoadingProgress: (state: RootState) => undefined | number;
62
+ export declare const getPlayerInteraction: (state: RootState) => undefined | boolean;
61
63
  export declare const initPlayer: (config: IPlayerInit) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
62
64
  export declare const launch: (launchConfig?: Partial<ILaunchConfig>) => (dispatch: ThreekitDispatch) => Promise<void>;
63
65
  export declare const unloadPlayer: () => (dispatch: ThreekitDispatch) => Promise<void>;
@@ -50,7 +50,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
50
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
51
  };
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
- exports.reloadPlayer = exports.unloadPlayer = exports.launch = exports.initPlayer = exports.getLoadingProgress = exports.getPlayerElementId = exports.isPlayerLoading = exports.isThreekitInitialized = exports.getThreekitEnv = exports.updateLoadingProgress = exports.reloadTreble = exports.setPlayerElement = exports.setPlayerLoading = exports.setThreekitInitialized = exports.setThreekitEnv = void 0;
53
+ exports.reloadPlayer = exports.unloadPlayer = exports.launch = exports.initPlayer = exports.getPlayerInteraction = exports.getLoadingProgress = exports.getPlayerElementId = exports.isPlayerLoading = exports.isThreekitInitialized = exports.getThreekitEnv = exports.setPlayerInteraction = exports.updateLoadingProgress = exports.reloadTreble = exports.setPlayerElement = exports.setPlayerLoading = exports.setThreekitInitialized = exports.setThreekitEnv = void 0;
54
54
  var connection_1 = __importDefault(require("../connection"));
55
55
  var toolkit_1 = require("@reduxjs/toolkit");
56
56
  var api_1 = __importDefault(require("../api"));
@@ -87,7 +87,8 @@ var initialState = {
87
87
  isPlayerLoading: false,
88
88
  playerElId: undefined,
89
89
  notifications: true,
90
- loadingProgress: 0,
90
+ loadingProgress: undefined,
91
+ awaitingFirstInteraction: undefined,
91
92
  };
92
93
  exports.setThreekitEnv = (0, toolkit_1.createAction)('treble/set-threekit-env');
93
94
  exports.setThreekitInitialized = (0, toolkit_1.createAction)('treble/set-threekit-initialized');
@@ -95,6 +96,7 @@ exports.setPlayerLoading = (0, toolkit_1.createAction)('treble/set-player-loadin
95
96
  exports.setPlayerElement = (0, toolkit_1.createAction)('treble/set-player-element');
96
97
  exports.reloadTreble = (0, toolkit_1.createAction)('treble/reload');
97
98
  exports.updateLoadingProgress = (0, toolkit_1.createAction)('treble/update-loading-progress');
99
+ exports.setPlayerInteraction = (0, toolkit_1.createAction)('treble/set-player-interaction');
98
100
  var reducer = (0, toolkit_1.createSlice)({
99
101
  name: 'treble',
100
102
  initialState: initialState,
@@ -123,6 +125,9 @@ var reducer = (0, toolkit_1.createSlice)({
123
125
  state.loadingProgress = Math.round(action.payload * 100);
124
126
  return state;
125
127
  });
128
+ builder.addCase(exports.setPlayerInteraction, function (state, action) {
129
+ return __assign(__assign({}, state), { awaitingFirstInteraction: action.payload });
130
+ });
126
131
  },
127
132
  }).reducer;
128
133
  var getThreekitEnv = function (state) {
@@ -145,14 +150,19 @@ var getLoadingProgress = function (state) {
145
150
  return state.treble.loadingProgress;
146
151
  };
147
152
  exports.getLoadingProgress = getLoadingProgress;
153
+ var getPlayerInteraction = function (state) {
154
+ return state.treble.awaitingFirstInteraction;
155
+ };
156
+ exports.getPlayerInteraction = getPlayerInteraction;
148
157
  var initPlayer = function (config) {
149
158
  return function (dispatch, getState) { return __awaiter(void 0, void 0, void 0, function () {
150
- var el, authToken, assetId, stageId, configurationId, orgId, playerConfig, initialConfiguration, player, configurator;
159
+ var el, authToken, assetId, stageId, orgId, playerConfig, initialConfiguration, player, configurator, ruleName;
151
160
  return __generator(this, function (_a) {
152
161
  switch (_a.label) {
153
162
  case 0:
154
- el = config.el, authToken = config.authToken, assetId = config.assetId, stageId = config.stageId, configurationId = config.configurationId, orgId = config.orgId, playerConfig = config.playerConfig, initialConfiguration = config.initialConfiguration;
155
- return [4, window.threekitPlayer(__assign(__assign({ el: el, authToken: authToken, stageId: stageId, assetId: assetId, configurationId: configurationId }, playerConfig), { initialConfiguration: initialConfiguration, onLoadingProgress: function (progress) {
163
+ el = config.el, authToken = config.authToken, assetId = config.assetId, stageId = config.stageId, orgId = config.orgId, playerConfig = config.playerConfig, initialConfiguration = config.initialConfiguration;
164
+ dispatch((0, exports.updateLoadingProgress)(0));
165
+ return [4, window.threekitPlayer(__assign(__assign({ el: el, authToken: authToken, stageId: stageId, assetId: assetId }, playerConfig), { initialConfiguration: initialConfiguration, onLoadingProgress: function (progress) {
156
166
  var _a;
157
167
  dispatch((0, exports.updateLoadingProgress)(progress));
158
168
  (_a = playerConfig === null || playerConfig === void 0 ? void 0 : playerConfig.onLoadingProgress) === null || _a === void 0 ? void 0 : _a.call(playerConfig, progress);
@@ -182,6 +192,23 @@ var initPlayer = function (config) {
182
192
  dispatch((0, exports.setThreekitInitialized)(true));
183
193
  dispatch((0, exports.setPlayerLoading)(false));
184
194
  dispatch((0, exports.updateLoadingProgress)(1));
195
+ dispatch((0, exports.setPlayerInteraction)(true));
196
+ ruleName = 'use-first-player-interaction';
197
+ window.threekit.player.tools.addTool({
198
+ key: ruleName,
199
+ label: 'use-first-player-interaction',
200
+ active: true,
201
+ enabled: true,
202
+ handlers: {
203
+ mousedown: function () { return __awaiter(void 0, void 0, void 0, function () {
204
+ return __generator(this, function (_a) {
205
+ dispatch((0, exports.setPlayerInteraction)(false));
206
+ window.threekit.player.tools.removeTool(ruleName);
207
+ return [2];
208
+ });
209
+ }); },
210
+ },
211
+ });
185
212
  if (window.threekit.treble._debugMode)
186
213
  (0, utils_1.runDebugger)();
187
214
  window.threekit.player.on('setConfiguration', function () { return __awaiter(void 0, void 0, void 0, function () {
@@ -324,7 +351,6 @@ var launch = function (launchConfig) {
324
351
  authToken: authToken,
325
352
  stageId: stageId,
326
353
  assetId: updatedAssetId,
327
- configurationId: configId,
328
354
  playerConfig: playerConfig,
329
355
  initialConfiguration: initialConfiguration,
330
356
  }))];
package/dist/types.d.ts CHANGED
@@ -291,14 +291,12 @@ export interface IThreekitPrivatePlayer {
291
291
  };
292
292
  calculateLogs: () => Promise<Record<string, any>>;
293
293
  getAssetInstance: (query: ISceneQueryNode | string) => Promise<string>;
294
- saveSceneGraphState: () => string;
295
294
  }
296
295
  export interface ThreekitInitConfig {
297
296
  authToken: string;
298
297
  el: HTMLElement;
299
298
  assetId: string;
300
299
  stageId?: string;
301
- configurationId?: string;
302
300
  orgId?: string;
303
301
  showConfigurator?: boolean;
304
302
  initialConfiguration?: Record<string, any>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@threekit-tools/treble",
3
- "version": "0.0.85-next-1",
3
+ "version": "0.0.85-next-2",
4
4
  "author": "Amaan Saeed",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -42,7 +42,6 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@reduxjs/toolkit": "^1.6.2",
45
- "@types/shortid": "^0.0.29",
46
45
  "axios": "^0.22.0",
47
46
  "chokidar": "^3.5.3",
48
47
  "live-server": "^1.2.2",
@@ -50,7 +49,6 @@
50
49
  "redux": "^4.1.2",
51
50
  "redux-logger": "^3.0.6",
52
51
  "reselect": "^4.1.2",
53
- "shortid": "^2.2.16",
54
52
  "styled-components": "^5.3.3"
55
53
  },
56
54
  "devDependencies": {
@@ -1 +0,0 @@
1
- export declare const saveFile: (files: BlobPart | Array<BlobPart>) => Promise<import("../http/files").IFileResponse>;
package/dist/api/files.js DELETED
@@ -1,63 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __importDefault = (this && this.__importDefault) || function (mod) {
39
- return (mod && mod.__esModule) ? mod : { "default": mod };
40
- };
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.saveFile = void 0;
43
- var http_1 = __importDefault(require("../http"));
44
- var connection_1 = __importDefault(require("../connection"));
45
- var saveFile = function (files) { return __awaiter(void 0, void 0, void 0, function () {
46
- var orgId, fd, data;
47
- return __generator(this, function (_a) {
48
- switch (_a.label) {
49
- case 0:
50
- orgId = connection_1.default.getConnection().orgId;
51
- fd = new FormData();
52
- fd.append('orgId', orgId);
53
- fd.append("files", new Blob(Array.isArray(files) ? files : [files], {
54
- type: 'application/json',
55
- }));
56
- return [4, http_1.default.files.postFile(fd)];
57
- case 1:
58
- data = (_a.sent()).data;
59
- return [2, data];
60
- }
61
- });
62
- }); };
63
- exports.saveFile = saveFile;
@@ -1,21 +0,0 @@
1
- declare enum ENCODING_OPTIONS {
2
- RAW = "raw",
3
- GZIP = "gzip",
4
- BROTLI = "brotli"
5
- }
6
- interface IFile {
7
- id: string;
8
- userId: string;
9
- hash: string;
10
- encodings: Partial<Record<ENCODING_OPTIONS, {
11
- size: number;
12
- }>>;
13
- filename: string;
14
- size: number;
15
- extension: string;
16
- }
17
- export interface IFileResponse {
18
- files: Array<IFile>;
19
- }
20
- export declare const postFile: (formData: FormData) => Promise<import("axios").AxiosResponse<IFileResponse>>;
21
- export {};
@@ -1,26 +0,0 @@
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.postFile = void 0;
7
- var request_1 = __importDefault(require("./request"));
8
- var FILES_API_ROUTE = "/api/files";
9
- var ENCODING_OPTIONS;
10
- (function (ENCODING_OPTIONS) {
11
- ENCODING_OPTIONS["RAW"] = "raw";
12
- ENCODING_OPTIONS["GZIP"] = "gzip";
13
- ENCODING_OPTIONS["BROTLI"] = "brotli";
14
- })(ENCODING_OPTIONS || (ENCODING_OPTIONS = {}));
15
- var postFile = function (formData) {
16
- var error;
17
- if (!formData)
18
- error = 'Requires Form Data';
19
- if (error)
20
- throw new Error(error);
21
- return request_1.default.post({
22
- url: FILES_API_ROUTE,
23
- formData: formData,
24
- });
25
- };
26
- exports.postFile = postFile;