@threekit-tools/treble 0.0.89 → 0.0.90-next-01

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 (159) 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/BreatheAnimation/index.js +2 -2
  5. package/dist/components/TurntableAnimation/index.js +2 -2
  6. package/dist/components/Wishlist/index.d.ts +1 -1
  7. package/dist/components/Zoom/index.d.ts +1 -1
  8. package/dist/components/containers/formInputContainer.d.ts +1 -1
  9. package/dist/components/containers/formInputContainer.js +3 -3
  10. package/dist/hooks/useConfigurationChangeStatus/index.d.ts +2 -0
  11. package/dist/hooks/{usePlayerLoadingStatus → useConfigurationChangeStatus}/index.js +2 -2
  12. package/dist/hooks/useNestedConfigurator/index.js +1 -2
  13. package/dist/hooks/usePlayerReady/index.d.ts +2 -0
  14. package/dist/hooks/{useAnimationStart → usePlayerReady}/index.js +2 -2
  15. package/dist/hooks/useRoomBuilder/RoomBuilderLayout.d.ts +8 -0
  16. package/dist/hooks/useRoomBuilder/RoomBuilderLayout.js +22 -0
  17. package/dist/hooks/useRoomBuilder/RoomBuilderState.d.ts +132 -0
  18. package/dist/hooks/useRoomBuilder/RoomBuilderState.js +1431 -0
  19. package/dist/hooks/useRoomBuilder/constants.d.ts +56 -0
  20. package/dist/hooks/useRoomBuilder/constants.js +63 -0
  21. package/dist/hooks/useRoomBuilder/dataHandlers.d.ts +18 -0
  22. package/dist/hooks/useRoomBuilder/dataHandlers.js +187 -0
  23. package/dist/hooks/useRoomBuilder/draw.d.ts +55 -0
  24. package/dist/hooks/useRoomBuilder/draw.js +573 -0
  25. package/dist/hooks/useRoomBuilder/findLoops.d.ts +5 -0
  26. package/dist/hooks/useRoomBuilder/findLoops.js +99 -0
  27. package/dist/hooks/useRoomBuilder/geometry.d.ts +33 -0
  28. package/dist/hooks/useRoomBuilder/geometry.js +325 -0
  29. package/dist/hooks/useRoomBuilder/index.d.ts +57 -0
  30. package/dist/hooks/useRoomBuilder/index.js +411 -0
  31. package/dist/hooks/useRoomBuilder/messaging.d.ts +8 -0
  32. package/dist/hooks/useRoomBuilder/messaging.js +18 -0
  33. package/dist/hooks/useRoomBuilder/themes.d.ts +12 -0
  34. package/dist/hooks/useRoomBuilder/themes.js +273 -0
  35. package/dist/hooks/useRoomBuilder/types.d.ts +247 -0
  36. package/dist/hooks/useRoomBuilder/types.js +40 -0
  37. package/dist/hooks/useRoomBuilder/validators.d.ts +36 -0
  38. package/dist/hooks/useRoomBuilder/validators.js +362 -0
  39. package/dist/icons/Add.d.ts +1 -1
  40. package/dist/icons/Add.js +3 -3
  41. package/dist/icons/Angle.d.ts +3 -0
  42. package/dist/icons/Angle.js +21 -0
  43. package/dist/icons/ArrowLeft.d.ts +1 -1
  44. package/dist/icons/ArrowLeft.js +3 -3
  45. package/dist/icons/ArrowRight.d.ts +1 -1
  46. package/dist/icons/ArrowRight.js +3 -3
  47. package/dist/icons/Camera.d.ts +1 -1
  48. package/dist/icons/Camera.js +3 -3
  49. package/dist/icons/CaretDown.d.ts +1 -1
  50. package/dist/icons/CaretDown.js +3 -3
  51. package/dist/icons/CaretLeft.d.ts +1 -1
  52. package/dist/icons/CaretLeft.js +3 -3
  53. package/dist/icons/CaretRight.d.ts +1 -1
  54. package/dist/icons/CaretRight.js +3 -3
  55. package/dist/icons/CaretUp.d.ts +1 -1
  56. package/dist/icons/CaretUp.js +3 -3
  57. package/dist/icons/Cart.d.ts +1 -1
  58. package/dist/icons/Cart.js +3 -3
  59. package/dist/icons/Checkmate.d.ts +1 -1
  60. package/dist/icons/Checkmate.js +3 -3
  61. package/dist/icons/Clipboard.d.ts +1 -1
  62. package/dist/icons/Clipboard.js +3 -3
  63. package/dist/icons/ColorPicker.d.ts +1 -1
  64. package/dist/icons/ColorPicker.js +3 -3
  65. package/dist/icons/Copy.d.ts +1 -1
  66. package/dist/icons/Copy.js +3 -3
  67. package/dist/icons/Cursor.d.ts +3 -0
  68. package/dist/icons/Cursor.js +21 -0
  69. package/dist/icons/Delete.d.ts +1 -1
  70. package/dist/icons/Delete.js +3 -3
  71. package/dist/icons/Door.d.ts +3 -0
  72. package/dist/icons/Door.js +22 -0
  73. package/dist/icons/DoubleCaretLeft.d.ts +1 -1
  74. package/dist/icons/DoubleCaretLeft.js +3 -3
  75. package/dist/icons/DoubleCaretRight.d.ts +1 -1
  76. package/dist/icons/DoubleCaretRight.js +3 -3
  77. package/dist/icons/Download.d.ts +1 -1
  78. package/dist/icons/Download.js +3 -3
  79. package/dist/icons/Drag.d.ts +1 -1
  80. package/dist/icons/Drag.js +3 -3
  81. package/dist/icons/Draggable.d.ts +1 -1
  82. package/dist/icons/Draggable.js +3 -3
  83. package/dist/icons/Draw.d.ts +3 -0
  84. package/dist/icons/Draw.js +21 -0
  85. package/dist/icons/Edit.d.ts +1 -1
  86. package/dist/icons/Edit.js +3 -3
  87. package/dist/icons/Heart.d.ts +1 -1
  88. package/dist/icons/Heart.js +3 -3
  89. package/dist/icons/Image.d.ts +1 -1
  90. package/dist/icons/Image.js +3 -3
  91. package/dist/icons/Info.d.ts +1 -1
  92. package/dist/icons/Info.js +3 -3
  93. package/dist/icons/Layout.d.ts +3 -0
  94. package/dist/icons/Layout.js +21 -0
  95. package/dist/icons/Mail.d.ts +1 -1
  96. package/dist/icons/Mail.js +3 -3
  97. package/dist/icons/Menu.d.ts +1 -1
  98. package/dist/icons/Menu.js +3 -3
  99. package/dist/icons/More.d.ts +1 -1
  100. package/dist/icons/More.js +3 -3
  101. package/dist/icons/NewWindow.d.ts +1 -1
  102. package/dist/icons/NewWindow.js +3 -3
  103. package/dist/icons/Opening.d.ts +3 -0
  104. package/dist/icons/Opening.js +21 -0
  105. package/dist/icons/Pause.d.ts +1 -1
  106. package/dist/icons/Pause.js +3 -3
  107. package/dist/icons/Play.d.ts +1 -1
  108. package/dist/icons/Play.js +3 -3
  109. package/dist/icons/Player3D.d.ts +3 -0
  110. package/dist/icons/Player3D.js +21 -0
  111. package/dist/icons/Redo.d.ts +1 -1
  112. package/dist/icons/Redo.js +3 -3
  113. package/dist/icons/Remove.d.ts +1 -1
  114. package/dist/icons/Remove.js +3 -3
  115. package/dist/icons/Ruler.d.ts +1 -1
  116. package/dist/icons/Ruler.js +3 -3
  117. package/dist/icons/Search.d.ts +1 -1
  118. package/dist/icons/Search.js +3 -3
  119. package/dist/icons/Settings.d.ts +1 -1
  120. package/dist/icons/Settings.js +3 -3
  121. package/dist/icons/Share.d.ts +1 -1
  122. package/dist/icons/Share.js +3 -3
  123. package/dist/icons/Switch.d.ts +1 -1
  124. package/dist/icons/Switch.js +3 -3
  125. package/dist/icons/Tag.d.ts +1 -1
  126. package/dist/icons/Tag.js +3 -3
  127. package/dist/icons/TrashCan.d.ts +3 -0
  128. package/dist/icons/TrashCan.js +21 -0
  129. package/dist/icons/TrashCanAlt.d.ts +3 -0
  130. package/dist/icons/TrashCanAlt.js +21 -0
  131. package/dist/icons/Undo.d.ts +1 -1
  132. package/dist/icons/Undo.js +3 -3
  133. package/dist/icons/Wall.d.ts +3 -0
  134. package/dist/icons/Wall.js +21 -0
  135. package/dist/icons/Window.d.ts +3 -0
  136. package/dist/icons/Window.js +22 -0
  137. package/dist/icons/Wishlist.d.ts +1 -1
  138. package/dist/icons/Wishlist.js +3 -3
  139. package/dist/icons/ZoomIn.d.ts +1 -1
  140. package/dist/icons/ZoomIn.js +3 -3
  141. package/dist/icons/ZoomOut.d.ts +1 -1
  142. package/dist/icons/ZoomOut.js +3 -3
  143. package/dist/icons/index.d.ts +2 -6
  144. package/dist/icons/index.js +22 -0
  145. package/dist/icons/types.d.ts +7 -0
  146. package/dist/icons/types.js +2 -0
  147. package/dist/index.d.ts +17 -2
  148. package/dist/index.js +35 -4
  149. package/dist/store/attributes.d.ts +1 -0
  150. package/dist/store/index.d.ts +39 -8
  151. package/dist/store/index.js +3 -1
  152. package/dist/store/roomBuilder.d.ts +38 -0
  153. package/dist/store/roomBuilder.js +174 -0
  154. package/dist/store/treble.js +12 -6
  155. package/dist/types.d.ts +46 -7
  156. package/dist/types.js +1 -0
  157. package/package.json +1 -1
  158. package/dist/hooks/useAnimationStart/index.d.ts +0 -2
  159. package/dist/hooks/usePlayerLoadingStatus/index.d.ts +0 -2
@@ -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))
@@ -40,10 +40,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
40
40
  };
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
42
  var react_1 = require("react");
43
- var useAnimationStart_1 = __importDefault(require("../../hooks/useAnimationStart"));
43
+ var usePlayerReady_1 = __importDefault(require("../../hooks/usePlayerReady"));
44
44
  var types_1 = require("../../types");
45
45
  var BreatheAnimation = function (props) {
46
- var readyToAnimate = (0, useAnimationStart_1.default)();
46
+ var readyToAnimate = (0, usePlayerReady_1.default)();
47
47
  var initialTranslation = (0, react_1.useRef)(null);
48
48
  var initialRotation = (0, react_1.useRef)(null);
49
49
  var animationInProgress = (0, react_1.useRef)(false);
@@ -40,7 +40,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
40
40
  };
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
42
  var react_1 = require("react");
43
- var useAnimationStart_1 = __importDefault(require("../../hooks/useAnimationStart"));
43
+ var usePlayerReady_1 = __importDefault(require("../../hooks/usePlayerReady"));
44
44
  var types_1 = require("../../types");
45
45
  var RotationDirections;
46
46
  (function (RotationDirections) {
@@ -48,7 +48,7 @@ var RotationDirections;
48
48
  RotationDirections["COUNTER_CLOCKWISE"] = "counter-clockwise";
49
49
  })(RotationDirections || (RotationDirections = {}));
50
50
  var TurntableAnimation = function (props) {
51
- var readyToAnimate = (0, useAnimationStart_1.default)();
51
+ var readyToAnimate = (0, usePlayerReady_1.default)();
52
52
  var initialRotation = (0, react_1.useRef)(null);
53
53
  var animationInProgress = (0, react_1.useRef)(false);
54
54
  var rotationNodeId = (0, react_1.useRef)(undefined);
@@ -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>;
@@ -17,7 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.hydrateAttributeForComponent = void 0;
18
18
  var react_1 = __importDefault(require("react"));
19
19
  var useAttribute_1 = __importDefault(require("../../hooks/useAttribute"));
20
- var usePlayerLoadingStatus_1 = __importDefault(require("../../hooks/usePlayerLoadingStatus"));
20
+ var useConfigurationChangeStatus_1 = __importDefault(require("../../hooks/useConfigurationChangeStatus"));
21
21
  var utils_1 = require("../../utils");
22
22
  var constants_1 = require("../../constants");
23
23
  var hydrateAttributeForComponent = function (attribute, config) {
@@ -80,7 +80,7 @@ exports.hydrateAttributeForComponent = hydrateAttributeForComponent;
80
80
  function formComponentContainer(FormComponent) {
81
81
  return function (props) {
82
82
  var attribute = props.attribute, metadataKeyThumbnail = props.metadataKeyThumbnail, metadataKeyDescription = props.metadataKeyDescription, metadataKeyPrice = props.metadataKeyPrice, hideAttributeTitle = props.hideAttributeTitle, sort = props.sort;
83
- var isLoading = (0, usePlayerLoadingStatus_1.default)();
83
+ var isConfigurationChanging = (0, useConfigurationChangeStatus_1.default)();
84
84
  var _a = (0, useAttribute_1.default)(attribute), attributeData = _a[0], setAttribute = _a[1];
85
85
  if (!attribute)
86
86
  return react_1.default.createElement(FormComponent, __assign({}, props));
@@ -104,7 +104,7 @@ function formComponentContainer(FormComponent) {
104
104
  var preppedProps = __assign({}, props);
105
105
  if (!hideAttributeTitle && !preppedProps.title)
106
106
  preppedProps.title = attributeData.label;
107
- return (react_1.default.createElement(FormComponent, __assign({}, preppedProps, { value: selected, onClick: handleSetAttribute, onChange: handleSetAttribute, options: options, isPlayerLoading: isLoading })));
107
+ return (react_1.default.createElement(FormComponent, __assign({}, preppedProps, { value: selected, onClick: handleSetAttribute, onChange: handleSetAttribute, options: options, isPlayerLoading: isConfigurationChanging })));
108
108
  };
109
109
  }
110
110
  exports.default = formComponentContainer;
@@ -0,0 +1,2 @@
1
+ declare const useConfigurationChangeStatus: () => boolean;
2
+ export default useConfigurationChangeStatus;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var store_1 = require("../../store");
4
4
  var treble_1 = require("../../store/treble");
5
- var usePlayerLoadingStatus = function () {
5
+ var useConfigurationChangeStatus = function () {
6
6
  return (0, store_1.useThreekitSelector)(treble_1.isPlayerLoading);
7
7
  };
8
- exports.default = usePlayerLoadingStatus;
8
+ exports.default = useConfigurationChangeStatus;
@@ -57,8 +57,7 @@ var useNestedConfigurator = function (address) {
57
57
  return;
58
58
  if (playerLoading)
59
59
  return;
60
- configurator.current =
61
- window.threekit.treble.getNestedConfigurator(address);
60
+ configurator.current = window.threekit.configurator.getNestedConfigurator([address].flat());
62
61
  if (!configurator.current)
63
62
  return;
64
63
  var updatedAttrs = configurator.current.getDisplayAttributes();
@@ -0,0 +1,2 @@
1
+ declare const usePlayerReady: () => boolean;
2
+ export default usePlayerReady;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var store_1 = require("../../store");
4
4
  var treble_1 = require("../../store/treble");
5
- var useAnimationStart = function () {
5
+ var usePlayerReady = function () {
6
6
  return (0, store_1.useThreekitSelector)(treble_1.isFirstRenderComplete);
7
7
  };
8
- exports.default = useAnimationStart;
8
+ exports.default = usePlayerReady;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import type { ICoordinate2D } from './types';
3
+ interface IRoomBuilderLayout {
4
+ loops?: Array<ICoordinate2D[]>;
5
+ size?: number;
6
+ }
7
+ export default function RoomBuilderLayout(props: IRoomBuilderLayout): JSX.Element;
8
+ export {};
@@ -0,0 +1,22 @@
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
+ var react_1 = __importDefault(require("react"));
7
+ function RoomBuilderLayout(props) {
8
+ var loops = props.loops;
9
+ var size = props.size || 20;
10
+ if (!(loops === null || loops === void 0 ? void 0 : loops.length))
11
+ return react_1.default.createElement(react_1.default.Fragment, null);
12
+ var paths = loops.map(function (loop) {
13
+ return loop
14
+ .map(function (_a, i) {
15
+ var x = _a[0], y = _a[1];
16
+ return (i === 0 ? 'M ' : 'L ') + x + ' ' + y;
17
+ })
18
+ .join(' ') + ' Z';
19
+ });
20
+ return (react_1.default.createElement("svg", { width: size, height: size, viewBox: "0 0 ".concat(size, " ").concat(size), fill: "none", xmlns: "http://www.w3.org/2000/svg" }, paths.map(function (path, i) { return (react_1.default.createElement("path", { key: "path-".concat(i), d: path, stroke: "white", strokeWidth: 1 })); })));
21
+ }
22
+ exports.default = RoomBuilderLayout;
@@ -0,0 +1,132 @@
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 _canvasDimensions;
14
+ private _zoom;
15
+ private _zoomLimits;
16
+ private _translate;
17
+ private _translateLimits;
18
+ private _state;
19
+ constructor(config: IRoomBuilderStateProps);
20
+ get walls(): IWalls;
21
+ get wallsToDraw(): {
22
+ line: ICoordinatesLine;
23
+ path: undefined;
24
+ assetId: string;
25
+ height?: number | undefined;
26
+ thickness?: number | undefined;
27
+ connections: [elementType: IFeatureName, index: number][];
28
+ }[];
29
+ set walls(walls: IWalls);
30
+ get wallCount(): number;
31
+ get wallLines(): ICoordinatesLine[];
32
+ get vertices(): IVerticesState;
33
+ get verticesToDraw(): IVerticesState;
34
+ set vertices(vertices: IVerticesState);
35
+ get verticesList(): Array<IVertex>;
36
+ get verticesListToDraw(): Array<IVertex>;
37
+ get features(): IFeatures;
38
+ get featuresToDraw(): Record<string, IFeature[]>;
39
+ set features(features: IFeatures);
40
+ get getHydratedFeatures(): undefined | IFeaturesHydrated;
41
+ get featureCount(): number;
42
+ get activeElement(): IActiveElement | null;
43
+ get selectedElement(): null | IElementAddress;
44
+ set selectedElement(element: null | IElementAddress);
45
+ get showDimensions(): boolean;
46
+ set showDimensions(val: boolean);
47
+ get angleSnappingEnabled(): boolean;
48
+ set angleSnappingEnabled(val: boolean);
49
+ get enclosedSpacesToDraw(): Array<IEnclosedSpace>;
50
+ get canvasDimensions(): ICoordinate2D;
51
+ get canvasWidth(): number;
52
+ get canvasHeight(): number;
53
+ set canvasDimensions(dimensions: ICoordinate2D);
54
+ get zoom(): number;
55
+ get zoomFactor(): number;
56
+ get zoomMin(): number;
57
+ get zoomMax(): number;
58
+ setZoom(delta: number): number | undefined;
59
+ get translate(): ICoordinate2D;
60
+ get translateMin(): ICoordinate2D;
61
+ get translateMax(): ICoordinate2D;
62
+ set translate(position: ICoordinate2D);
63
+ get isDrawWallActive(): boolean;
64
+ transformLengthFromCanvas(length: number): number;
65
+ transformLengthToCanvas(length: number): number;
66
+ transformPointToCanvas(point: ICoordinate2D): ICoordinate2D;
67
+ transformPointFromCanvas(point: ICoordinate2D): ICoordinate2D;
68
+ transformLineToCanvas(line: ICoordinatesLine): ICoordinatesLine;
69
+ transformLineFromCanvas(line: ICoordinatesLine): ICoordinatesLine;
70
+ private getWall;
71
+ private addWall;
72
+ private addWalls;
73
+ private updateWall;
74
+ private getWallConnectionCount;
75
+ private getWallConnectionsHydrated;
76
+ private getWallDimensions;
77
+ private getWallDetailedDimensions;
78
+ private getAllWallDimensionsToDraw;
79
+ private shiftAllFeaturesOnWall;
80
+ private addFeatureToWall;
81
+ private removeFeatureFromWall;
82
+ private splitWall;
83
+ deleteWall(index: number): void;
84
+ private getFirstVacantLocation;
85
+ getWallUiAnchorPoint(index: number): undefined | ICoordinate2D;
86
+ private getVertex;
87
+ private getWallsConnectedToVertex;
88
+ private repositionVertex;
89
+ private getFeatureType;
90
+ private setFeatureType;
91
+ private getFeature;
92
+ private updateFeature;
93
+ private repositionFeature;
94
+ addFeature(type: IFeatureName, feature: Omit<IFeature, 'path' | 'connectedTo' | 'offset'> & {
95
+ offset?: number;
96
+ }, addToWallIndex?: number): void;
97
+ deleteFeature(type: IFeatureName, index: number): void;
98
+ private getHydratedFeature;
99
+ getFeatureUiAnchorPoint(type: IFeatureName, index: number): undefined | ICoordinate2D;
100
+ deleteElement(type: IElementName, index: number): void;
101
+ private getVertexInProximity;
102
+ private getWallInProximity;
103
+ private snapPointToVertex;
104
+ private snapPointToWall;
105
+ private snapPointToAbsoluteAngle;
106
+ private snapVertexToAbsoluteAngle;
107
+ private getFeatureAtPoint;
108
+ private getElementAtPoint;
109
+ getClickedElement(cursorPoint: ICoordinate2D): undefined | IElementUi;
110
+ private getPointProximity;
111
+ private reevaluateFeatureConnections;
112
+ private pushStateToConfigurator;
113
+ setAttributesToState(attributes?: Record<string, IHydratedAttribute>): void;
114
+ deleteAll(): void;
115
+ private resetInternalState;
116
+ highlightElementIfInProximity(canvas: HTMLCanvasElement, cursorPoint: ICoordinate2D): void;
117
+ startDrawNewWall(startPoint: ICoordinate2D): void;
118
+ drawNewWall(canvas: HTMLCanvasElement, endPoint: ICoordinate2D): void;
119
+ cancelDrawNewWall(canvas: HTMLCanvasElement): void;
120
+ finishDrawNewWall(canvas: HTMLCanvasElement, assetId: string): Promise<void>;
121
+ drawNewWallGuides(canvas: HTMLCanvasElement, cursorPoint: ICoordinate2D): void;
122
+ private moveActiveVertex;
123
+ private finishMoveActiveVertex;
124
+ private moveActiveFeature;
125
+ private finishMoveActiveFeature;
126
+ selectElementIfInProximity(canvas: HTMLCanvasElement, cursorPoint: ICoordinate2D): void;
127
+ moveActiveElement(canvas: HTMLCanvasElement, moveToPoint: ICoordinate2D): void;
128
+ finishMoveActiveElement(canvas: HTMLCanvasElement): void;
129
+ cancelMoveActiveElement(canvas: HTMLCanvasElement): void;
130
+ drawRoom(canvas: HTMLCanvasElement | null): void;
131
+ }
132
+ export default RoomBuilderState;