@threekit-tools/treble 0.0.89 → 0.0.90

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 (140) hide show
  1. package/dist/Treble/Treble.d.ts +1 -1
  2. package/dist/Treble/Treble.js +3 -3
  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/hooks/useRoomBuilder/RoomBuilderState.d.ts +95 -0
  8. package/dist/hooks/useRoomBuilder/RoomBuilderState.js +1237 -0
  9. package/dist/hooks/useRoomBuilder/constants.d.ts +41 -0
  10. package/dist/hooks/useRoomBuilder/constants.js +48 -0
  11. package/dist/hooks/useRoomBuilder/dataHandlers.d.ts +18 -0
  12. package/dist/hooks/useRoomBuilder/dataHandlers.js +187 -0
  13. package/dist/hooks/useRoomBuilder/draw.d.ts +55 -0
  14. package/dist/hooks/useRoomBuilder/draw.js +573 -0
  15. package/dist/hooks/useRoomBuilder/findLoops.d.ts +5 -0
  16. package/dist/hooks/useRoomBuilder/findLoops.js +99 -0
  17. package/dist/hooks/useRoomBuilder/geometry.d.ts +33 -0
  18. package/dist/hooks/useRoomBuilder/geometry.js +325 -0
  19. package/dist/hooks/useRoomBuilder/index.d.ts +40 -0
  20. package/dist/hooks/useRoomBuilder/index.js +303 -0
  21. package/dist/hooks/useRoomBuilder/messaging.d.ts +8 -0
  22. package/dist/hooks/useRoomBuilder/messaging.js +18 -0
  23. package/dist/hooks/useRoomBuilder/themes.d.ts +12 -0
  24. package/dist/hooks/useRoomBuilder/themes.js +273 -0
  25. package/dist/hooks/useRoomBuilder/types.d.ts +238 -0
  26. package/dist/hooks/useRoomBuilder/types.js +36 -0
  27. package/dist/hooks/useRoomBuilder/validators.d.ts +36 -0
  28. package/dist/hooks/useRoomBuilder/validators.js +362 -0
  29. package/dist/icons/Add.d.ts +1 -1
  30. package/dist/icons/Add.js +3 -3
  31. package/dist/icons/Angle.d.ts +3 -0
  32. package/dist/icons/Angle.js +21 -0
  33. package/dist/icons/ArrowLeft.d.ts +1 -1
  34. package/dist/icons/ArrowLeft.js +3 -3
  35. package/dist/icons/ArrowRight.d.ts +1 -1
  36. package/dist/icons/ArrowRight.js +3 -3
  37. package/dist/icons/Camera.d.ts +1 -1
  38. package/dist/icons/Camera.js +3 -3
  39. package/dist/icons/CaretDown.d.ts +1 -1
  40. package/dist/icons/CaretDown.js +3 -3
  41. package/dist/icons/CaretLeft.d.ts +1 -1
  42. package/dist/icons/CaretLeft.js +3 -3
  43. package/dist/icons/CaretRight.d.ts +1 -1
  44. package/dist/icons/CaretRight.js +3 -3
  45. package/dist/icons/CaretUp.d.ts +1 -1
  46. package/dist/icons/CaretUp.js +3 -3
  47. package/dist/icons/Cart.d.ts +1 -1
  48. package/dist/icons/Cart.js +3 -3
  49. package/dist/icons/Checkmate.d.ts +1 -1
  50. package/dist/icons/Checkmate.js +3 -3
  51. package/dist/icons/Clipboard.d.ts +1 -1
  52. package/dist/icons/Clipboard.js +3 -3
  53. package/dist/icons/ColorPicker.d.ts +1 -1
  54. package/dist/icons/ColorPicker.js +3 -3
  55. package/dist/icons/Copy.d.ts +1 -1
  56. package/dist/icons/Copy.js +3 -3
  57. package/dist/icons/Cursor.d.ts +3 -0
  58. package/dist/icons/Cursor.js +21 -0
  59. package/dist/icons/Delete.d.ts +1 -1
  60. package/dist/icons/Delete.js +3 -3
  61. package/dist/icons/Door.d.ts +3 -0
  62. package/dist/icons/Door.js +22 -0
  63. package/dist/icons/DoubleCaretLeft.d.ts +1 -1
  64. package/dist/icons/DoubleCaretLeft.js +3 -3
  65. package/dist/icons/DoubleCaretRight.d.ts +1 -1
  66. package/dist/icons/DoubleCaretRight.js +3 -3
  67. package/dist/icons/Download.d.ts +1 -1
  68. package/dist/icons/Download.js +3 -3
  69. package/dist/icons/Drag.d.ts +1 -1
  70. package/dist/icons/Drag.js +3 -3
  71. package/dist/icons/Draggable.d.ts +1 -1
  72. package/dist/icons/Draggable.js +3 -3
  73. package/dist/icons/Draw.d.ts +3 -0
  74. package/dist/icons/Draw.js +21 -0
  75. package/dist/icons/Edit.d.ts +1 -1
  76. package/dist/icons/Edit.js +3 -3
  77. package/dist/icons/Heart.d.ts +1 -1
  78. package/dist/icons/Heart.js +3 -3
  79. package/dist/icons/Image.d.ts +1 -1
  80. package/dist/icons/Image.js +3 -3
  81. package/dist/icons/Info.d.ts +1 -1
  82. package/dist/icons/Info.js +3 -3
  83. package/dist/icons/Layout.d.ts +3 -0
  84. package/dist/icons/Layout.js +21 -0
  85. package/dist/icons/Mail.d.ts +1 -1
  86. package/dist/icons/Mail.js +3 -3
  87. package/dist/icons/Menu.d.ts +1 -1
  88. package/dist/icons/Menu.js +3 -3
  89. package/dist/icons/More.d.ts +1 -1
  90. package/dist/icons/More.js +3 -3
  91. package/dist/icons/NewWindow.d.ts +1 -1
  92. package/dist/icons/NewWindow.js +3 -3
  93. package/dist/icons/Opening.d.ts +3 -0
  94. package/dist/icons/Opening.js +21 -0
  95. package/dist/icons/Pause.d.ts +1 -1
  96. package/dist/icons/Pause.js +3 -3
  97. package/dist/icons/Play.d.ts +1 -1
  98. package/dist/icons/Play.js +3 -3
  99. package/dist/icons/Redo.d.ts +1 -1
  100. package/dist/icons/Redo.js +3 -3
  101. package/dist/icons/Remove.d.ts +1 -1
  102. package/dist/icons/Remove.js +3 -3
  103. package/dist/icons/Ruler.d.ts +1 -1
  104. package/dist/icons/Ruler.js +3 -3
  105. package/dist/icons/Search.d.ts +1 -1
  106. package/dist/icons/Search.js +3 -3
  107. package/dist/icons/Settings.d.ts +1 -1
  108. package/dist/icons/Settings.js +3 -3
  109. package/dist/icons/Share.d.ts +1 -1
  110. package/dist/icons/Share.js +3 -3
  111. package/dist/icons/Switch.d.ts +1 -1
  112. package/dist/icons/Switch.js +3 -3
  113. package/dist/icons/Tag.d.ts +1 -1
  114. package/dist/icons/Tag.js +3 -3
  115. package/dist/icons/TrashCan.d.ts +3 -0
  116. package/dist/icons/TrashCan.js +21 -0
  117. package/dist/icons/TrashCanAlt.d.ts +3 -0
  118. package/dist/icons/TrashCanAlt.js +21 -0
  119. package/dist/icons/Undo.d.ts +1 -1
  120. package/dist/icons/Undo.js +3 -3
  121. package/dist/icons/Wall.d.ts +3 -0
  122. package/dist/icons/Wall.js +21 -0
  123. package/dist/icons/Window.d.ts +3 -0
  124. package/dist/icons/Window.js +22 -0
  125. package/dist/icons/Wishlist.d.ts +1 -1
  126. package/dist/icons/Wishlist.js +3 -3
  127. package/dist/icons/ZoomIn.d.ts +1 -1
  128. package/dist/icons/ZoomIn.js +3 -3
  129. package/dist/icons/ZoomOut.d.ts +1 -1
  130. package/dist/icons/ZoomOut.js +3 -3
  131. package/dist/icons/index.d.ts +2 -6
  132. package/dist/icons/index.js +20 -0
  133. package/dist/icons/types.d.ts +7 -0
  134. package/dist/icons/types.js +2 -0
  135. package/dist/index.d.ts +12 -1
  136. package/dist/index.js +25 -2
  137. package/dist/store/treble.js +1 -0
  138. package/dist/types.d.ts +42 -7
  139. package/dist/types.js +1 -0
  140. package/package.json +1 -1
@@ -26,7 +26,7 @@ declare class Treble {
26
26
  _debugMode: boolean;
27
27
  constructor({ player, orgId }: ITreble);
28
28
  createOrder: (order?: IOrder) => Promise<import("../http/orders").IOrderResponse>;
29
- saveConfiguration: (config?: Partial<Omit<ISaveConfiguration, 'configuration'>>) => Promise<{
29
+ saveConfiguration: (config?: Partial<ISaveConfiguration>) => Promise<{
30
30
  resumableUrl: string;
31
31
  } & import("../http/configurations").IConfigurationResponse & {
32
32
  thumbnail: string;
@@ -80,18 +80,18 @@ var Treble = (function () {
80
80
  });
81
81
  }); };
82
82
  this.saveConfiguration = function (config) { return __awaiter(_this, void 0, void 0, function () {
83
- var threekitDomain, _a, customerId, metadata, productVersion, attachments, player, response, params, url;
83
+ var threekitDomain, _a, customerId, metadata, configuration, productVersion, attachments, player, response, params, url;
84
84
  var _b;
85
85
  var _c;
86
86
  return __generator(this, function (_d) {
87
87
  switch (_d.label) {
88
88
  case 0:
89
89
  threekitDomain = connection_1.default.getConnection().threekitDomain;
90
- _a = Object.assign({}, config), customerId = _a.customerId, metadata = _a.metadata, productVersion = _a.productVersion, attachments = _a.attachments;
90
+ _a = Object.assign({}, config), customerId = _a.customerId, metadata = _a.metadata, configuration = _a.configuration, productVersion = _a.productVersion, attachments = _a.attachments;
91
91
  player = window.threekit.player.enableApi(types_1.PRIVATE_APIS.PLAYER);
92
92
  return [4, api_1.default.configurations.save({
93
93
  assetId: window.threekit.player.assetId,
94
- configuration: player.getConfigurator().getFullConfiguration(),
94
+ configuration: configuration || player.getConfigurator().getFullConfiguration(),
95
95
  customerId: customerId,
96
96
  metadata: metadata,
97
97
  productVersion: productVersion,
@@ -17,6 +17,8 @@ var AttributeValue = function (props) {
17
17
  if (!attributeData)
18
18
  return null;
19
19
  var value;
20
+ if (attributeData.type === types_1.ATTRIBUTE_TYPES.ARRAY)
21
+ return null;
20
22
  if (attributeData.type === types_1.ATTRIBUTE_TYPES.ASSET) {
21
23
  var assetAttribute_1 = attributeData;
22
24
  if (!((_a = assetAttribute_1.value) === null || _a === void 0 ? void 0 : _a.assetId))
@@ -27,6 +27,6 @@ export declare const Wishlist: {
27
27
  type: string;
28
28
  };
29
29
  componentName: string;
30
- Icon: import("../../icons").IIcon;
30
+ Icon: import("../../icons/types").IIcon;
31
31
  };
32
32
  export default Wishlist;
@@ -29,7 +29,7 @@ export declare const Zoom: {
29
29
  type: string;
30
30
  };
31
31
  componentName: string;
32
- Icon: import("../../icons").IIcon;
32
+ Icon: import("../../icons/types").IIcon;
33
33
  ZoomOut: (props: ZoomComponentProps) => JSX.Element | null;
34
34
  ZoomIn: (props: ZoomComponentProps) => JSX.Element | null;
35
35
  };
@@ -41,7 +41,7 @@ interface IHydrateAttributeConfig {
41
41
  sort?: string;
42
42
  }
43
43
  export declare const hydrateAttributeForComponent: (attribute: IHydratedAttribute, config: IHydrateAttributeConfig) => {
44
- selected: string | number | boolean | import("../../types").IConfigurationAsset | import("../../types").IConfigurationColor;
44
+ selected: string | number | boolean | import("../../types").IConfigurationAsset | import("../../types").IConfigurationArray | import("../../types").IConfigurationColor;
45
45
  options: {
46
46
  name: string;
47
47
  handleSelect: () => Promise<void>;
@@ -0,0 +1,95 @@
1
+ import { IWalls, IVerticesState, ICoordinate2D, IFeature, IFeatures, ICoordinatesLine, IRoomBuilderStateProps, IElementAddress, IFeatureName, IVertex, IFeaturesHydrated, IElementUi, IElementName, IActiveElement, IEnclosedSpace } from './types';
2
+ import type { IHydratedAttribute } from '../../types';
3
+ export declare class RoomBuilderState {
4
+ private _config;
5
+ private _attributesState;
6
+ private _newWall;
7
+ private _activeElement;
8
+ private _selectedElement;
9
+ private _highlightedElement;
10
+ private _errorElement;
11
+ private _showDimensions;
12
+ private _angleSnappingEnabled;
13
+ private _state;
14
+ constructor(config: IRoomBuilderStateProps);
15
+ get walls(): IWalls;
16
+ set walls(walls: IWalls);
17
+ get wallCount(): number;
18
+ get wallLines(): ICoordinatesLine[];
19
+ get vertices(): IVerticesState;
20
+ set vertices(vertices: IVerticesState);
21
+ get verticesList(): Array<IVertex>;
22
+ get features(): IFeatures;
23
+ set features(features: IFeatures);
24
+ get getHydratedFeatures(): undefined | IFeaturesHydrated;
25
+ get featureCount(): number;
26
+ get activeElement(): IActiveElement | null;
27
+ get selectedElement(): null | IElementAddress;
28
+ set selectedElement(element: null | IElementAddress);
29
+ get showDimensions(): boolean;
30
+ set showDimensions(val: boolean);
31
+ get angleSnappingEnabled(): boolean;
32
+ set angleSnappingEnabled(val: boolean);
33
+ get enclosedSpaces(): Array<IEnclosedSpace>;
34
+ private getWall;
35
+ private addWall;
36
+ private addWalls;
37
+ private updateWall;
38
+ private getWallConnectionCount;
39
+ private getWallConnectionsHydrated;
40
+ private getWallDimensions;
41
+ private getWallDetailedDimensions;
42
+ private getAllWallDimensions;
43
+ private shiftAllFeaturesOnWall;
44
+ private addFeatureToWall;
45
+ private removeFeatureFromWall;
46
+ private splitWall;
47
+ deleteWall(index: number): void;
48
+ private getFirstVacantLocation;
49
+ getWallUiAnchorPoint(index: number): undefined | ICoordinate2D;
50
+ private getVertex;
51
+ private getWallsConnectedToVertex;
52
+ private repositionVertex;
53
+ private getFeatureType;
54
+ private setFeatureType;
55
+ private getFeature;
56
+ private updateFeature;
57
+ private repositionFeature;
58
+ addFeature(type: IFeatureName, feature: Omit<IFeature, 'path' | 'connectedTo' | 'offset'> & {
59
+ offset?: number;
60
+ }, addToWallIndex?: number): void;
61
+ deleteFeature(type: IFeatureName, index: number): void;
62
+ private getHydratedFeature;
63
+ getFeatureUiAnchorPoint(type: IFeatureName, index: number): undefined | ICoordinate2D;
64
+ deleteElement(type: IElementName, index: number): void;
65
+ private getVertexInProximity;
66
+ private getWallInProximity;
67
+ private snapPointToVertex;
68
+ private snapPointToWall;
69
+ private snapPointToAbsoluteAngle;
70
+ private snapVertexToAbsoluteAngle;
71
+ private getFeatureAtPoint;
72
+ private getElementAtPoint;
73
+ getClickedElement(point: ICoordinate2D): undefined | IElementUi;
74
+ private getPointProximity;
75
+ private reevaluateFeatureConnections;
76
+ private pushStateToConfigurator;
77
+ setAttributesToState(attributes?: Record<string, IHydratedAttribute>): void;
78
+ deleteAll(): void;
79
+ private resetInternalState;
80
+ highlightElementIfInProximity(canvas: HTMLCanvasElement, point: ICoordinate2D): void;
81
+ startDrawNewWall(startPoint: ICoordinate2D): void;
82
+ drawNewWall(canvas: HTMLCanvasElement, endPoint: ICoordinate2D): void;
83
+ cancelDrawNewWall(canvas: HTMLCanvasElement): void;
84
+ finishDrawNewWall(canvas: HTMLCanvasElement, assetId: string): Promise<void>;
85
+ private moveActiveVertex;
86
+ private finishMoveActiveVertex;
87
+ private moveActiveFeature;
88
+ private finishMoveActiveFeature;
89
+ selectElementIfInProximity(canvas: HTMLCanvasElement, point: ICoordinate2D): void;
90
+ moveActiveElement(canvas: HTMLCanvasElement, moveToPoint: ICoordinate2D): void;
91
+ finishMoveActiveElement(canvas: HTMLCanvasElement): void;
92
+ cancelMoveActiveElement(canvas: HTMLCanvasElement): void;
93
+ drawRoom(canvas: HTMLCanvasElement | null): void;
94
+ }
95
+ export default RoomBuilderState;