@threekit-tools/treble 0.0.87 → 0.0.89-next-001

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 (145) hide show
  1. package/dist/Treble/Treble.d.ts +2 -5
  2. package/dist/Treble/Treble.js +1 -7
  3. package/dist/components/AttributeValue/index.js +2 -0
  4. package/dist/components/Wishlist/index.d.ts +1 -1
  5. package/dist/components/Zoom/index.d.ts +1 -1
  6. package/dist/components/containers/formInputContainer.d.ts +1 -1
  7. package/dist/connection.d.ts +4 -0
  8. package/dist/connection.js +3 -0
  9. package/dist/hooks/useProductCache/index.d.ts +2 -1
  10. package/dist/hooks/useProductCache/index.js +43 -1
  11. package/dist/hooks/useResetProduct/index.d.ts +3 -0
  12. package/dist/hooks/useResetProduct/index.js +55 -0
  13. package/dist/hooks/useRoomBuilder/RoomBuilderState.d.ts +93 -0
  14. package/dist/hooks/useRoomBuilder/RoomBuilderState.js +1207 -0
  15. package/dist/hooks/useRoomBuilder/constants.d.ts +33 -0
  16. package/dist/hooks/useRoomBuilder/constants.js +40 -0
  17. package/dist/hooks/useRoomBuilder/dataHandlers.d.ts +15 -0
  18. package/dist/hooks/useRoomBuilder/dataHandlers.js +177 -0
  19. package/dist/hooks/useRoomBuilder/draw.d.ts +55 -0
  20. package/dist/hooks/useRoomBuilder/draw.js +551 -0
  21. package/dist/hooks/useRoomBuilder/geometry.d.ts +43 -0
  22. package/dist/hooks/useRoomBuilder/geometry.js +462 -0
  23. package/dist/hooks/useRoomBuilder/index.d.ts +40 -0
  24. package/dist/hooks/useRoomBuilder/index.js +299 -0
  25. package/dist/hooks/useRoomBuilder/messaging.d.ts +8 -0
  26. package/dist/hooks/useRoomBuilder/messaging.js +13 -0
  27. package/dist/hooks/useRoomBuilder/themes.d.ts +12 -0
  28. package/dist/hooks/useRoomBuilder/themes.js +270 -0
  29. package/dist/hooks/useRoomBuilder/types.d.ts +232 -0
  30. package/dist/hooks/useRoomBuilder/types.js +36 -0
  31. package/dist/hooks/useRoomBuilder/validators.d.ts +36 -0
  32. package/dist/hooks/useRoomBuilder/validators.js +362 -0
  33. package/dist/http/request.js +4 -1
  34. package/dist/icons/Add.d.ts +1 -1
  35. package/dist/icons/Add.js +3 -3
  36. package/dist/icons/Angle.d.ts +3 -0
  37. package/dist/icons/Angle.js +21 -0
  38. package/dist/icons/ArrowLeft.d.ts +1 -1
  39. package/dist/icons/ArrowLeft.js +3 -3
  40. package/dist/icons/ArrowRight.d.ts +1 -1
  41. package/dist/icons/ArrowRight.js +3 -3
  42. package/dist/icons/Camera.d.ts +1 -1
  43. package/dist/icons/Camera.js +3 -3
  44. package/dist/icons/CaretDown.d.ts +1 -1
  45. package/dist/icons/CaretDown.js +3 -3
  46. package/dist/icons/CaretLeft.d.ts +1 -1
  47. package/dist/icons/CaretLeft.js +3 -3
  48. package/dist/icons/CaretRight.d.ts +1 -1
  49. package/dist/icons/CaretRight.js +3 -3
  50. package/dist/icons/CaretUp.d.ts +1 -1
  51. package/dist/icons/CaretUp.js +3 -3
  52. package/dist/icons/Cart.d.ts +1 -1
  53. package/dist/icons/Cart.js +3 -3
  54. package/dist/icons/Checkmate.d.ts +1 -1
  55. package/dist/icons/Checkmate.js +3 -3
  56. package/dist/icons/Clipboard.d.ts +1 -1
  57. package/dist/icons/Clipboard.js +3 -3
  58. package/dist/icons/ColorPicker.d.ts +1 -1
  59. package/dist/icons/ColorPicker.js +3 -3
  60. package/dist/icons/Copy.d.ts +1 -1
  61. package/dist/icons/Copy.js +3 -3
  62. package/dist/icons/Cursor.d.ts +3 -0
  63. package/dist/icons/Cursor.js +21 -0
  64. package/dist/icons/Delete.d.ts +1 -1
  65. package/dist/icons/Delete.js +3 -3
  66. package/dist/icons/Door.d.ts +3 -0
  67. package/dist/icons/Door.js +22 -0
  68. package/dist/icons/DoubleCaretLeft.d.ts +1 -1
  69. package/dist/icons/DoubleCaretLeft.js +3 -3
  70. package/dist/icons/DoubleCaretRight.d.ts +1 -1
  71. package/dist/icons/DoubleCaretRight.js +3 -3
  72. package/dist/icons/Download.d.ts +1 -1
  73. package/dist/icons/Download.js +3 -3
  74. package/dist/icons/Drag.d.ts +1 -1
  75. package/dist/icons/Drag.js +3 -3
  76. package/dist/icons/Draggable.d.ts +1 -1
  77. package/dist/icons/Draggable.js +3 -3
  78. package/dist/icons/Edit.d.ts +1 -1
  79. package/dist/icons/Edit.js +3 -3
  80. package/dist/icons/Heart.d.ts +1 -1
  81. package/dist/icons/Heart.js +3 -3
  82. package/dist/icons/Image.d.ts +1 -1
  83. package/dist/icons/Image.js +3 -3
  84. package/dist/icons/Info.d.ts +1 -1
  85. package/dist/icons/Info.js +3 -3
  86. package/dist/icons/Layout.d.ts +3 -0
  87. package/dist/icons/Layout.js +21 -0
  88. package/dist/icons/Mail.d.ts +1 -1
  89. package/dist/icons/Mail.js +3 -3
  90. package/dist/icons/Menu.d.ts +1 -1
  91. package/dist/icons/Menu.js +3 -3
  92. package/dist/icons/More.d.ts +1 -1
  93. package/dist/icons/More.js +3 -3
  94. package/dist/icons/NewWindow.d.ts +1 -1
  95. package/dist/icons/NewWindow.js +3 -3
  96. package/dist/icons/Opening.d.ts +3 -0
  97. package/dist/icons/Opening.js +21 -0
  98. package/dist/icons/Pause.d.ts +1 -1
  99. package/dist/icons/Pause.js +3 -3
  100. package/dist/icons/Play.d.ts +1 -1
  101. package/dist/icons/Play.js +3 -3
  102. package/dist/icons/Redo.d.ts +1 -1
  103. package/dist/icons/Redo.js +3 -3
  104. package/dist/icons/Remove.d.ts +1 -1
  105. package/dist/icons/Remove.js +3 -3
  106. package/dist/icons/Ruler.d.ts +1 -1
  107. package/dist/icons/Ruler.js +3 -3
  108. package/dist/icons/Search.d.ts +1 -1
  109. package/dist/icons/Search.js +3 -3
  110. package/dist/icons/Settings.d.ts +1 -1
  111. package/dist/icons/Settings.js +3 -3
  112. package/dist/icons/Share.d.ts +1 -1
  113. package/dist/icons/Share.js +3 -3
  114. package/dist/icons/Switch.d.ts +1 -1
  115. package/dist/icons/Switch.js +3 -3
  116. package/dist/icons/Tag.d.ts +1 -1
  117. package/dist/icons/Tag.js +3 -3
  118. package/dist/icons/TrashCan.d.ts +3 -0
  119. package/dist/icons/TrashCan.js +21 -0
  120. package/dist/icons/TrashCanAlt.d.ts +3 -0
  121. package/dist/icons/TrashCanAlt.js +21 -0
  122. package/dist/icons/Undo.d.ts +1 -1
  123. package/dist/icons/Undo.js +3 -3
  124. package/dist/icons/Wall.d.ts +3 -0
  125. package/dist/icons/Wall.js +21 -0
  126. package/dist/icons/Window.d.ts +3 -0
  127. package/dist/icons/Window.js +22 -0
  128. package/dist/icons/Wishlist.d.ts +1 -1
  129. package/dist/icons/Wishlist.js +3 -3
  130. package/dist/icons/ZoomIn.d.ts +1 -1
  131. package/dist/icons/ZoomIn.js +3 -3
  132. package/dist/icons/ZoomOut.d.ts +1 -1
  133. package/dist/icons/ZoomOut.js +3 -3
  134. package/dist/icons/index.d.ts +2 -6
  135. package/dist/icons/index.js +18 -0
  136. package/dist/icons/types.d.ts +7 -0
  137. package/dist/icons/types.js +2 -0
  138. package/dist/index.d.ts +11 -1
  139. package/dist/index.js +23 -2
  140. package/dist/store/product.d.ts +5 -4
  141. package/dist/store/product.js +43 -26
  142. package/dist/store/treble.js +6 -3
  143. package/dist/types.d.ts +47 -7
  144. package/dist/types.js +1 -0
  145. package/package.json +1 -1
@@ -1,9 +1,5 @@
1
- import React from 'react';
2
- import SpinnerIcon from './Spinner';
3
- export interface IIcon extends React.FC {
4
- iconName: string;
5
- }
1
+ import Spinner from './Spinner';
6
2
  declare const _default: {
7
- [x: string]: IIcon | typeof SpinnerIcon;
3
+ [x: string]: import("./types").IIcon | typeof Spinner;
8
4
  };
9
5
  export default _default;
@@ -46,6 +46,15 @@ var Wishlist_1 = __importDefault(require("./Wishlist"));
46
46
  var ZoomIn_1 = __importDefault(require("./ZoomIn"));
47
47
  var ZoomOut_1 = __importDefault(require("./ZoomOut"));
48
48
  var Spinner_1 = __importDefault(require("./Spinner"));
49
+ var Angle_1 = __importDefault(require("./Angle"));
50
+ var Cursor_1 = __importDefault(require("./Cursor"));
51
+ var Door_1 = __importDefault(require("./Door"));
52
+ var Layout_1 = __importDefault(require("./Layout"));
53
+ var Opening_1 = __importDefault(require("./Opening"));
54
+ var Window_1 = __importDefault(require("./Window"));
55
+ var Wall_1 = __importDefault(require("./Wall"));
56
+ var TrashCan_1 = __importDefault(require("./TrashCan"));
57
+ var TrashCanAlt_1 = __importDefault(require("./TrashCanAlt"));
49
58
  exports.default = (_a = {},
50
59
  _a[Add_1.default.iconName] = Add_1.default,
51
60
  _a[ArrowLeft_1.default.iconName] = ArrowLeft_1.default,
@@ -89,4 +98,13 @@ exports.default = (_a = {},
89
98
  _a[ZoomIn_1.default.iconName] = ZoomIn_1.default,
90
99
  _a[ZoomOut_1.default.iconName] = ZoomOut_1.default,
91
100
  _a[Spinner_1.default.iconName] = Spinner_1.default,
101
+ _a[Angle_1.default.iconName] = Angle_1.default,
102
+ _a[Cursor_1.default.iconName] = Cursor_1.default,
103
+ _a[Door_1.default.iconName] = Door_1.default,
104
+ _a[Layout_1.default.iconName] = Layout_1.default,
105
+ _a[Opening_1.default.iconName] = Opening_1.default,
106
+ _a[Window_1.default.iconName] = Window_1.default,
107
+ _a[Wall_1.default.iconName] = Wall_1.default,
108
+ _a[TrashCan_1.default.iconName] = TrashCan_1.default,
109
+ _a[TrashCanAlt_1.default.iconName] = TrashCanAlt_1.default,
92
110
  _a);
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ export interface IIconProps {
3
+ color?: string;
4
+ }
5
+ export interface IIcon extends React.FC<IIconProps> {
6
+ iconName: string;
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/dist/index.d.ts CHANGED
@@ -16,6 +16,7 @@ import useProductCache from './hooks/useProductCache';
16
16
  import useNestedConfigurator from './hooks/useNestedConfigurator';
17
17
  import useLoadingProgress from './hooks/useLoadingProgress';
18
18
  import usePlayer from './hooks/usePlayer';
19
+ import useRoomBuilder from './hooks/useRoomBuilder';
19
20
  import ThreekitProvider from './components/ThreekitProvider';
20
21
  import Player from './components/Player';
21
22
  import Button from './components/Button';
@@ -96,4 +97,13 @@ import WishlistIcon from './icons/Wishlist';
96
97
  import ZoomInIcon from './icons/ZoomIn';
97
98
  import ZoomOutIcon from './icons/ZoomOut';
98
99
  import SpinnerIcon from './icons/Spinner';
99
- export { useAttribute, useConfigurator, useConfigurationLoader, useFirstPlayerInteraction, useMetadata, useName, usePlayerLoadingStatus, usePrice, useThreekitInitStatus, useZoom, useSnapshot, useWishlist, useShare, usePlayerPortal, useProductCache, useNestedConfigurator, useLoadingProgress, usePlayer, ThreekitProvider, Player, Button, Cards, Dropdown, Strips, Swatch, TextInput, 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, TurntableAnimation, BreatheAnimation, 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, };
100
+ import AngleIcon from './icons/Angle';
101
+ import TrashCanIcon from './icons/TrashCan';
102
+ import TrashCanAltIcon from './icons/TrashCanAlt';
103
+ import CursorIcon from './icons/Cursor';
104
+ import WindowIcon from './icons/Window';
105
+ import DoorIcon from './icons/Door';
106
+ import OpeningIcon from './icons/Opening';
107
+ import WallIcon from './icons/Wall';
108
+ import LayoutIcon from './icons/Layout';
109
+ export { useAttribute, useConfigurator, useConfigurationLoader, useFirstPlayerInteraction, useMetadata, useName, usePlayerLoadingStatus, usePrice, useThreekitInitStatus, useZoom, useSnapshot, useWishlist, useShare, usePlayerPortal, useProductCache, useNestedConfigurator, useLoadingProgress, usePlayer, useRoomBuilder, ThreekitProvider, Player, Button, Cards, Dropdown, Strips, Swatch, TextInput, 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, TurntableAnimation, BreatheAnimation, 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, AngleIcon, TrashCanIcon, TrashCanAltIcon, CursorIcon, WindowIcon, DoorIcon, OpeningIcon, WallIcon, LayoutIcon, };
package/dist/index.js CHANGED
@@ -3,8 +3,9 @@ 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.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.TextInput = 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.useFirstPlayerInteraction = 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.BreatheAnimation = exports.TurntableAnimation = exports.DraggableHint = exports.PlayerLoadingSpinner = exports.PlayerLoadingCircular = exports.ProductLayout = void 0;
6
+ 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.TextInput = exports.Swatch = exports.Strips = exports.Dropdown = exports.Cards = exports.Button = exports.Player = exports.ThreekitProvider = exports.useRoomBuilder = 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.useFirstPlayerInteraction = exports.useConfigurationLoader = exports.useConfigurator = exports.useAttribute = void 0;
7
+ exports.AngleIcon = 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.BreatheAnimation = exports.TurntableAnimation = exports.DraggableHint = exports.PlayerLoadingSpinner = exports.PlayerLoadingCircular = exports.ProductLayout = exports.TrebleApp = void 0;
8
+ exports.LayoutIcon = exports.WallIcon = exports.OpeningIcon = exports.DoorIcon = exports.WindowIcon = exports.CursorIcon = exports.TrashCanAltIcon = exports.TrashCanIcon = void 0;
8
9
  var useAttribute_1 = __importDefault(require("./hooks/useAttribute"));
9
10
  exports.useAttribute = useAttribute_1.default;
10
11
  var useConfigurator_1 = __importDefault(require("./hooks/useConfigurator"));
@@ -41,6 +42,8 @@ var useLoadingProgress_1 = __importDefault(require("./hooks/useLoadingProgress")
41
42
  exports.useLoadingProgress = useLoadingProgress_1.default;
42
43
  var usePlayer_1 = __importDefault(require("./hooks/usePlayer"));
43
44
  exports.usePlayer = usePlayer_1.default;
45
+ var useRoomBuilder_1 = __importDefault(require("./hooks/useRoomBuilder"));
46
+ exports.useRoomBuilder = useRoomBuilder_1.default;
44
47
  var ThreekitProvider_1 = __importDefault(require("./components/ThreekitProvider"));
45
48
  exports.ThreekitProvider = ThreekitProvider_1.default;
46
49
  var Player_1 = __importDefault(require("./components/Player"));
@@ -201,3 +204,21 @@ var ZoomOut_1 = __importDefault(require("./icons/ZoomOut"));
201
204
  exports.ZoomOutIcon = ZoomOut_1.default;
202
205
  var Spinner_1 = __importDefault(require("./icons/Spinner"));
203
206
  exports.SpinnerIcon = Spinner_1.default;
207
+ var Angle_1 = __importDefault(require("./icons/Angle"));
208
+ exports.AngleIcon = Angle_1.default;
209
+ var TrashCan_1 = __importDefault(require("./icons/TrashCan"));
210
+ exports.TrashCanIcon = TrashCan_1.default;
211
+ var TrashCanAlt_1 = __importDefault(require("./icons/TrashCanAlt"));
212
+ exports.TrashCanAltIcon = TrashCanAlt_1.default;
213
+ var Cursor_1 = __importDefault(require("./icons/Cursor"));
214
+ exports.CursorIcon = Cursor_1.default;
215
+ var Window_1 = __importDefault(require("./icons/Window"));
216
+ exports.WindowIcon = Window_1.default;
217
+ var Door_1 = __importDefault(require("./icons/Door"));
218
+ exports.DoorIcon = Door_1.default;
219
+ var Opening_1 = __importDefault(require("./icons/Opening"));
220
+ exports.OpeningIcon = Opening_1.default;
221
+ var Wall_1 = __importDefault(require("./icons/Wall"));
222
+ exports.WallIcon = Wall_1.default;
223
+ var Layout_1 = __importDefault(require("./icons/Layout"));
224
+ exports.LayoutIcon = Layout_1.default;
@@ -16,8 +16,7 @@ export interface LoadProductConfig {
16
16
  export interface CachedProductState extends Pick<CachedProduct, 'id' | 'name' | 'label' | 'thumbnail'> {
17
17
  data: string;
18
18
  }
19
- interface IEnvConfig extends Record<string, Partial<IProduct>> {
20
- }
19
+ declare type IEnvConfig = Record<string, Partial<IProduct>>;
21
20
  export interface IHydratedProducts extends Record<string, IEnvConfig> {
22
21
  }
23
22
  export interface ProductState {
@@ -42,8 +41,9 @@ export declare const getProductId: (state: RootState) => undefined | string;
42
41
  export declare const getName: (state: RootState) => undefined | string;
43
42
  export declare const getMetadata: (state: RootState) => undefined | IMetadata;
44
43
  export declare const getActiveCacheIdx: (state: RootState) => number;
45
- export declare const getProductCache: (state: RootState) => Array<Pick<CachedProduct, 'name' | 'label' | 'thumbnail'>>;
46
- export declare const initProduct: (prods?: IHydratedProducts) => (dispatch: ThreekitDispatch, getState: () => RootState) => void;
44
+ export declare const getProductCache: (state: RootState) => Array<Pick<CachedProduct, 'id' | 'name' | 'label' | 'thumbnail'>>;
45
+ export declare const setProducts: (products: IHydratedProducts) => IHydratedProducts;
46
+ export declare const initProduct: () => (dispatch: ThreekitDispatch, getState: () => RootState) => void;
47
47
  export declare const cacheActiveProduct: (config?: Pick<IReloadConfig, 'label' | 'thumbnail'>) => (dispatch: ThreekitDispatch, getState: () => RootState) => {
48
48
  payload: CachedProductState;
49
49
  type: string;
@@ -52,4 +52,5 @@ export declare const loadProduct: (id: string, config?: LoadProductConfig) => (d
52
52
  export declare const loadNewProduct: (config: undefined | string | IReloadConfig) => (dispatch: ThreekitDispatch) => Promise<void>;
53
53
  export declare const changeActiveCacheIdx: (idx: number) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
54
54
  export declare const removeProductIdx: (idx?: number) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
55
+ export declare const resetProductConfiguration: () => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
55
56
  export default reducer;
@@ -50,11 +50,13 @@ 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.removeProductIdx = exports.changeActiveCacheIdx = exports.loadNewProduct = exports.loadProduct = exports.cacheActiveProduct = exports.initProduct = exports.getProductCache = exports.getActiveCacheIdx = exports.getMetadata = exports.getName = exports.getProductId = exports.decrementActiveCacheIdx = exports.incrementActiveCacheIdx = exports.setActiveCacheIdx = exports.removeFromCache = exports.updateActiveProductCache = exports.appendToCache = exports.setMetadata = exports.setName = exports.setProductId = exports.PRODUCTS = void 0;
53
+ exports.resetProductConfiguration = exports.removeProductIdx = exports.changeActiveCacheIdx = exports.loadNewProduct = exports.loadProduct = exports.cacheActiveProduct = exports.initProduct = exports.setProducts = exports.getProductCache = exports.getActiveCacheIdx = exports.getMetadata = exports.getName = exports.getProductId = exports.decrementActiveCacheIdx = exports.incrementActiveCacheIdx = exports.setActiveCacheIdx = exports.removeFromCache = exports.updateActiveProductCache = exports.appendToCache = exports.setMetadata = exports.setName = exports.setProductId = exports.PRODUCTS = void 0;
54
54
  var toolkit_1 = require("@reduxjs/toolkit");
55
55
  var types_1 = require("../types");
56
56
  var connection_1 = __importDefault(require("../connection"));
57
57
  var treble_1 = require("./treble");
58
+ var attributes_1 = require("./attributes");
59
+ var INITIAL_CONFIGURATIONS = {};
58
60
  exports.setProductId = (0, toolkit_1.createAction)('treble/set-product-id');
59
61
  exports.setName = (0, toolkit_1.createAction)('treble/set-product-name');
60
62
  exports.setMetadata = (0, toolkit_1.createAction)('treble/set-metadata');
@@ -137,30 +139,35 @@ exports.getActiveCacheIdx = getActiveCacheIdx;
137
139
  var getProductCache = function (state) {
138
140
  return state.product.cache.map(function (prod) {
139
141
  return Object.assign({
142
+ id: prod.id,
140
143
  name: prod.name,
141
144
  }, prod.label ? { label: prod.label } : {}, prod.thumbnail ? { thumbnail: prod.thumbnail } : {});
142
145
  });
143
146
  };
144
147
  exports.getProductCache = getProductCache;
145
- var initProduct = function (prods) {
146
- return function (dispatch, getState) {
147
- if (prods)
148
- exports.PRODUCTS = prods;
149
- if (!window.threekit)
150
- return;
151
- var state = getState();
152
- var name = window.threekit.player.scene.get({
153
- id: window.threekit.player.assetId,
154
- }).name;
155
- var metadata = window.threekit.configurator.getMetadata();
156
- dispatch((0, exports.setName)(name));
157
- dispatch((0, exports.setMetadata)(metadata));
158
- if (!state.product.cache.length) {
159
- dispatch((0, exports.setActiveCacheIdx)(0));
160
- dispatch((0, exports.cacheActiveProduct)());
161
- }
162
- };
148
+ var setProducts = function (products) {
149
+ return (exports.PRODUCTS = products);
163
150
  };
151
+ exports.setProducts = setProducts;
152
+ var initProduct = function () { return function (dispatch, getState) {
153
+ var state = getState();
154
+ var name = window.threekit.player.scene.get({
155
+ id: window.threekit.player.assetId,
156
+ }).name;
157
+ var metadata = window.threekit.configurator.getMetadata();
158
+ var productId = state.product.id;
159
+ if (productId && !INITIAL_CONFIGURATIONS[productId]) {
160
+ var player = window.threekit.player.enableApi(types_1.PRIVATE_APIS.PLAYER);
161
+ var configuration = player.configurator.getFullConfiguration();
162
+ INITIAL_CONFIGURATIONS[productId] = JSON.stringify(configuration);
163
+ }
164
+ dispatch((0, exports.setName)(name));
165
+ dispatch((0, exports.setMetadata)(metadata));
166
+ if (!state.product.cache.length) {
167
+ dispatch((0, exports.setActiveCacheIdx)(0));
168
+ dispatch((0, exports.cacheActiveProduct)());
169
+ }
170
+ }; };
164
171
  exports.initProduct = initProduct;
165
172
  var cacheActiveProduct = function (config) {
166
173
  return function (dispatch, getState) {
@@ -199,10 +206,9 @@ var loadProduct = function (id, config) {
199
206
  return [4, dispatch((0, treble_1.reloadPlayer)(productConfig))];
200
207
  case 1:
201
208
  _a.sent();
202
- if (cacheProduct) {
209
+ if (cacheProduct)
203
210
  dispatch((0, exports.incrementActiveCacheIdx)());
204
- dispatch((0, exports.cacheActiveProduct)());
205
- }
211
+ dispatch((0, exports.cacheActiveProduct)());
206
212
  return [2];
207
213
  }
208
214
  });
@@ -223,16 +229,15 @@ var loadNewProduct = function (config) {
223
229
  shouldCacheProduct = false;
224
230
  }
225
231
  if (shouldCacheProduct)
226
- dispatch((0, exports.cacheActiveProduct)({ label: label, thumbnail: thumbnail }));
232
+ dispatch((0, exports.cacheActiveProduct)());
227
233
  if (config)
228
234
  dispatch((0, exports.setProductId)(undefined));
229
235
  return [4, dispatch((0, treble_1.reloadPlayer)(config))];
230
236
  case 1:
231
237
  _a.sent();
232
- if (shouldCacheProduct) {
238
+ if (shouldCacheProduct)
233
239
  dispatch((0, exports.incrementActiveCacheIdx)());
234
- dispatch((0, exports.cacheActiveProduct)({ label: label, thumbnail: thumbnail }));
235
- }
240
+ dispatch((0, exports.cacheActiveProduct)({ label: label, thumbnail: thumbnail }));
236
241
  return [2];
237
242
  }
238
243
  });
@@ -306,4 +311,16 @@ var removeProductIdx = function (idx) {
306
311
  }); };
307
312
  };
308
313
  exports.removeProductIdx = removeProductIdx;
314
+ var resetProductConfiguration = function () { return function (dispatch, getState) { return __awaiter(void 0, void 0, void 0, function () {
315
+ var state, initialConfiguration;
316
+ return __generator(this, function (_a) {
317
+ state = getState();
318
+ if (!state.product.id)
319
+ return [2];
320
+ initialConfiguration = INITIAL_CONFIGURATIONS[state.product.id];
321
+ dispatch((0, attributes_1.setConfiguration)(JSON.parse(initialConfiguration)));
322
+ return [2];
323
+ });
324
+ }); }; };
325
+ exports.resetProductConfiguration = resetProductConfiguration;
309
326
  exports.default = reducer;
@@ -167,7 +167,7 @@ var getPlayerInteraction = function (state) {
167
167
  exports.getPlayerInteraction = getPlayerInteraction;
168
168
  var initPlayer = function (config) {
169
169
  return function (dispatch, getState) { return __awaiter(void 0, void 0, void 0, function () {
170
- var el, authToken, assetId, stageId, playerConfig, initialConfiguration, player, configurator, orgId, ruleName;
170
+ var el, authToken, assetId, stageId, playerConfig, initialConfiguration, player, configurator, orgId, cacheParameters, ruleName;
171
171
  return __generator(this, function (_a) {
172
172
  switch (_a.label) {
173
173
  case 0:
@@ -185,6 +185,10 @@ var initPlayer = function (config) {
185
185
  configurator = _a.sent();
186
186
  orgId = player.enableApi(types_1.PRIVATE_APIS.PLAYER).orgId;
187
187
  connection_1.default.connect({ orgId: orgId });
188
+ cacheParameters = player.cacheParameters;
189
+ if (cacheParameters) {
190
+ connection_1.default.connect({ cacheParameters: cacheParameters });
191
+ }
188
192
  if (window.threekit) {
189
193
  window.threekit = Object.assign(window.threekit, {
190
194
  player: player,
@@ -199,7 +203,6 @@ var initPlayer = function (config) {
199
203
  treble: new Treble_1.default({
200
204
  player: player,
201
205
  orgId: orgId,
202
- initialConfiguration: configurator.getConfiguration(),
203
206
  }),
204
207
  };
205
208
  dispatch((0, exports.setThreekitInitialized)(true));
@@ -306,7 +309,7 @@ var launch = function (launchConfig) {
306
309
  }, {});
307
310
  if (!Object.keys(credentials).length || !Object.keys(products).length)
308
311
  return [2, console.error('Missing credentials')];
309
- dispatch((0, product_1.initProduct)(products));
312
+ (0, product_1.setProducts)(products);
310
313
  dispatch((0, product_1.setProductId)(productId));
311
314
  threekitEnv = (launchConfig === null || launchConfig === void 0 ? void 0 : launchConfig.threekitEnv) || process.env.THREEKIT_ENV || 'preview';
312
315
  serverUrl = (launchConfig === null || launchConfig === void 0 ? void 0 : launchConfig.serverUrl) || ((_g = config === null || config === void 0 ? void 0 : config.project) === null || _g === void 0 ? void 0 : _g.serverUrl);
package/dist/types.d.ts CHANGED
@@ -19,7 +19,8 @@ export declare enum ATTRIBUTE_TYPES {
19
19
  ASSET = "Asset",
20
20
  COLOR = "Color",
21
21
  NUMBER = "Number",
22
- BOOLEAN = "Boolean"
22
+ BOOLEAN = "Boolean",
23
+ ARRAY = "Array"
23
24
  }
24
25
  export declare enum ASSET_TYPES {
25
26
  UPLOAD = "upload",
@@ -86,15 +87,17 @@ export interface ISceneResult {
86
87
  }
87
88
  export interface IConfigurationAsset {
88
89
  assetId: string;
89
- configuration?: string;
90
+ configuration?: string | IConfiguration;
90
91
  type?: string;
91
92
  }
93
+ export interface IConfigurationArray extends Array<IConfigurationAsset> {
94
+ }
92
95
  export interface IConfigurationColor {
93
96
  r: number;
94
97
  g: number;
95
98
  b: number;
96
99
  }
97
- export declare type IConfigurationAttribute = IConfigurationAsset | IConfigurationColor | string | number | boolean | undefined;
100
+ export declare type IConfigurationAttribute = IConfigurationAsset | IConfigurationArray | IConfigurationColor | string | number | boolean | undefined;
98
101
  export declare type IConfiguration = Record<string, IConfigurationAttribute>;
99
102
  export declare type ISetConfiguration = Record<string, IConfigurationAttribute>;
100
103
  interface IDisplayAttributeConfig {
@@ -126,7 +129,7 @@ export interface IHydratedAttributeAssetValue extends IDisplayAttributeAssetValu
126
129
  }
127
130
  export interface IAttributeAssetBase<V> extends IAttributeBase<ATTRIBUTE_TYPES.ASSET, IConfigurationAsset> {
128
131
  assetType: ASSET_TYPES;
129
- blacklist: [];
132
+ blacklist: Array<string>;
130
133
  defaultValue: IConfigurationAsset;
131
134
  hiddenValues?: Array<string>;
132
135
  disabledValues?: Array<string>;
@@ -135,6 +138,38 @@ export interface IAttributeAssetBase<V> extends IAttributeBase<ATTRIBUTE_TYPES.A
135
138
  export declare type IDisplayAttributeAsset = IAttributeAssetBase<IDisplayAttributeAssetValue>;
136
139
  export declare type IHydratedAttributeAsset = IAttributeAssetBase<IHydratedAttributeAssetValue>;
137
140
  export declare type IAttributeAsset = IAttributeAssetBase<IConfigurationAssetValue>;
141
+ export interface IConfigurationArrayValue {
142
+ assetId: string;
143
+ name: string;
144
+ configuration?: Record<string, IThreekitDisplayAttribute>;
145
+ }
146
+ export interface IDisplayAttributeArrayValue extends IConfigurationArrayValue {
147
+ name: string;
148
+ type: string;
149
+ enabled: boolean;
150
+ visible: boolean;
151
+ metadata: IMetadata;
152
+ tags: Array<string>;
153
+ label: string;
154
+ }
155
+ export interface IHydratedAttributeArrayValue extends IDisplayAttributeArrayValue {
156
+ label: string;
157
+ handleSelect: () => Promise<void>;
158
+ selected: boolean;
159
+ }
160
+ export interface IAttributeArrayBase<V> extends IAttributeBase<ATTRIBUTE_TYPES.ARRAY, IConfigurationArray> {
161
+ blacklist: Array<string>;
162
+ hiddenValues?: Array<string>;
163
+ disabledValues?: Array<string>;
164
+ values: Array<V>;
165
+ of: {
166
+ type: ATTRIBUTE_TYPES.ASSET;
167
+ assetType: ASSET_TYPES;
168
+ };
169
+ }
170
+ export declare type IDisplayAttributeArray = IAttributeArrayBase<IDisplayAttributeArrayValue>;
171
+ export declare type IHydratedAttributeArray = IAttributeArrayBase<IHydratedAttributeArrayValue>;
172
+ export declare type IAttributeArray = IAttributeArrayBase<Pick<IConfigurationArrayValue, 'assetId'>>;
138
173
  export interface IDisplayAttributeStringValue {
139
174
  label: string;
140
175
  value: string;
@@ -166,9 +201,9 @@ export interface IAttributeNumber extends IAttributeBase<ATTRIBUTE_TYPES.NUMBER,
166
201
  export interface IAttributeBoolean extends IAttributeBase<ATTRIBUTE_TYPES.BOOLEAN, boolean> {
167
202
  defaultValue: boolean;
168
203
  }
169
- export declare type IThreekitAttribute = IAttributeAsset | IAttributeColor | IAttributeString | IAttributeNumber | IAttributeBoolean;
170
- export declare type IThreekitDisplayAttribute = IDisplayAttributeAsset | IDisplayAttributeString | IAttributeColor | IAttributeNumber | IAttributeBoolean;
171
- export declare type IHydratedAttribute = IHydratedAttributeAsset | IHydratedAttributeString | IAttributeColor | IAttributeNumber | IAttributeBoolean;
204
+ export declare type IThreekitAttribute = IAttributeAsset | IAttributeArray | IAttributeColor | IAttributeString | IAttributeNumber | IAttributeBoolean;
205
+ export declare type IThreekitDisplayAttribute = IDisplayAttributeAsset | IDisplayAttributeArray | IDisplayAttributeString | IAttributeColor | IAttributeNumber | IAttributeBoolean;
206
+ export declare type IHydratedAttribute = IHydratedAttributeAsset | IHydratedAttributeArray | IHydratedAttributeString | IAttributeColor | IAttributeNumber | IAttributeBoolean;
172
207
  export interface ICoordinates {
173
208
  x: number;
174
209
  y: number;
@@ -266,6 +301,10 @@ export interface IThreekitCamera {
266
301
  setQuaternion: (quaternion: IQuaternion) => void;
267
302
  zoom: (delta: number) => void;
268
303
  }
304
+ export interface ICacheParameters {
305
+ maxAge: number;
306
+ scope: string;
307
+ }
269
308
  export interface IThreekitPlayer {
270
309
  assetId: string;
271
310
  instanceId: string;
@@ -279,6 +318,7 @@ export interface IThreekitPlayer {
279
318
  enableApi: <T extends PRIVATE_APIS>(api: T) => T extends PRIVATE_APIS.PLAYER ? IThreekitPrivatePlayer : any;
280
319
  snapshotAsync: (snapshotConfig: ISnapshotConfig) => Promise<string>;
281
320
  unload: () => Promise<string>;
321
+ cacheParameters: ICacheParameters;
282
322
  }
283
323
  export interface IThreekitPrivateConfigurator extends IThreekitConfigurator {
284
324
  name: string;
package/dist/types.js CHANGED
@@ -24,6 +24,7 @@ var ATTRIBUTE_TYPES;
24
24
  ATTRIBUTE_TYPES["COLOR"] = "Color";
25
25
  ATTRIBUTE_TYPES["NUMBER"] = "Number";
26
26
  ATTRIBUTE_TYPES["BOOLEAN"] = "Boolean";
27
+ ATTRIBUTE_TYPES["ARRAY"] = "Array";
27
28
  })(ATTRIBUTE_TYPES = exports.ATTRIBUTE_TYPES || (exports.ATTRIBUTE_TYPES = {}));
28
29
  var ASSET_TYPES;
29
30
  (function (ASSET_TYPES) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@threekit-tools/treble",
3
- "version": "0.0.87",
3
+ "version": "0.0.89-next-001",
4
4
  "author": "Amaan Saeed",
5
5
  "license": "MIT",
6
6
  "files": [