@threekit-tools/treble 0.0.91 → 0.0.92

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 (165) hide show
  1. package/dist/Treble/Treble.d.ts +1 -1
  2. package/dist/Treble/snapshot.d.ts +22 -0
  3. package/dist/Treble/snapshot.js +247 -0
  4. package/dist/Treble/snapshots.d.ts +1 -1
  5. package/dist/components/ThreekitProvider/index.js +3 -2
  6. package/dist/connection.d.ts +4 -1
  7. package/dist/connection.js +16 -53
  8. package/dist/hooks/useAttribute/index.js +1 -5
  9. package/dist/hooks/useSnapshot/index.d.ts +1 -1
  10. package/dist/hooks/useSpaces/SpacesLayout.d.ts +11 -0
  11. package/dist/hooks/useSpaces/SpacesLayout.js +74 -0
  12. package/dist/hooks/useSpaces/SpacesState.d.ts +164 -0
  13. package/dist/hooks/useSpaces/SpacesState.js +1751 -0
  14. package/dist/hooks/useSpaces/constants.d.ts +64 -0
  15. package/dist/hooks/useSpaces/constants.js +109 -0
  16. package/dist/hooks/useSpaces/dataHandlers.d.ts +20 -0
  17. package/dist/hooks/useSpaces/dataHandlers.js +254 -0
  18. package/dist/hooks/useSpaces/draw/clearCanvas.d.ts +2 -0
  19. package/dist/hooks/useSpaces/draw/clearCanvas.js +9 -0
  20. package/dist/hooks/useSpaces/draw/drawBackground.d.ts +2 -0
  21. package/dist/hooks/useSpaces/draw/drawBackground.js +12 -0
  22. package/dist/hooks/useSpaces/draw/drawDimensions.d.ts +3 -0
  23. package/dist/hooks/useSpaces/draw/drawDimensions.js +53 -0
  24. package/dist/hooks/useSpaces/draw/drawDoors.d.ts +9 -0
  25. package/dist/hooks/useSpaces/draw/drawDoors.js +99 -0
  26. package/dist/hooks/useSpaces/draw/drawFloor.d.ts +3 -0
  27. package/dist/hooks/useSpaces/draw/drawFloor.js +36 -0
  28. package/dist/hooks/useSpaces/draw/drawGrid.d.ts +3 -0
  29. package/dist/hooks/useSpaces/draw/drawGrid.js +33 -0
  30. package/dist/hooks/useSpaces/draw/drawGuides.d.ts +3 -0
  31. package/dist/hooks/useSpaces/draw/drawGuides.js +23 -0
  32. package/dist/hooks/useSpaces/draw/drawOpenings.d.ts +9 -0
  33. package/dist/hooks/useSpaces/draw/drawOpenings.js +72 -0
  34. package/dist/hooks/useSpaces/draw/drawVertices.d.ts +8 -0
  35. package/dist/hooks/useSpaces/draw/drawVertices.js +61 -0
  36. package/dist/hooks/useSpaces/draw/drawWalls.d.ts +10 -0
  37. package/dist/hooks/useSpaces/draw/drawWalls.js +88 -0
  38. package/dist/hooks/useSpaces/draw/drawWindows.d.ts +9 -0
  39. package/dist/hooks/useSpaces/draw/drawWindows.js +82 -0
  40. package/dist/hooks/useSpaces/draw/index.d.ts +11 -0
  41. package/dist/hooks/useSpaces/draw/index.js +129 -0
  42. package/dist/hooks/useSpaces/geometry/addThicknessToLine.d.ts +3 -0
  43. package/dist/hooks/useSpaces/geometry/addThicknessToLine.js +13 -0
  44. package/dist/hooks/useSpaces/geometry/areLinesEqual.d.ts +3 -0
  45. package/dist/hooks/useSpaces/geometry/areLinesEqual.js +17 -0
  46. package/dist/hooks/useSpaces/geometry/arePointsEqual.d.ts +3 -0
  47. package/dist/hooks/useSpaces/geometry/arePointsEqual.js +8 -0
  48. package/dist/hooks/useSpaces/geometry/arePointsWithinProximity.d.ts +3 -0
  49. package/dist/hooks/useSpaces/geometry/arePointsWithinProximity.js +11 -0
  50. package/dist/hooks/useSpaces/geometry/closestPointOnLine.d.ts +3 -0
  51. package/dist/hooks/useSpaces/geometry/closestPointOnLine.js +13 -0
  52. package/dist/hooks/useSpaces/geometry/doLinesOverlap.d.ts +2 -0
  53. package/dist/hooks/useSpaces/geometry/doLinesOverlap.js +16 -0
  54. package/dist/hooks/useSpaces/geometry/euclideanMod.d.ts +2 -0
  55. package/dist/hooks/useSpaces/geometry/euclideanMod.js +6 -0
  56. package/dist/hooks/useSpaces/geometry/findLoops.d.ts +6 -0
  57. package/dist/hooks/useSpaces/geometry/findLoops.js +117 -0
  58. package/dist/hooks/useSpaces/geometry/getAllLineIntersections.d.ts +6 -0
  59. package/dist/hooks/useSpaces/geometry/getAllLineIntersections.js +23 -0
  60. package/dist/hooks/useSpaces/geometry/getAngleOfLineSegment.d.ts +3 -0
  61. package/dist/hooks/useSpaces/geometry/getAngleOfLineSegment.js +7 -0
  62. package/dist/hooks/useSpaces/geometry/getClosestPointOnLineSegment.d.ts +3 -0
  63. package/dist/hooks/useSpaces/geometry/getClosestPointOnLineSegment.js +17 -0
  64. package/dist/hooks/useSpaces/geometry/getDistanceToLine.d.ts +3 -0
  65. package/dist/hooks/useSpaces/geometry/getDistanceToLine.js +10 -0
  66. package/dist/hooks/useSpaces/geometry/getLengthOfLineSegment.d.ts +3 -0
  67. package/dist/hooks/useSpaces/geometry/getLengthOfLineSegment.js +7 -0
  68. package/dist/hooks/useSpaces/geometry/getLineAtOffsetOnLineSegment.d.ts +3 -0
  69. package/dist/hooks/useSpaces/geometry/getLineAtOffsetOnLineSegment.js +17 -0
  70. package/dist/hooks/useSpaces/geometry/getLineOtherPoint.d.ts +3 -0
  71. package/dist/hooks/useSpaces/geometry/getLineOtherPoint.js +11 -0
  72. package/dist/hooks/useSpaces/geometry/getLineSegmentsIntersection.d.ts +3 -0
  73. package/dist/hooks/useSpaces/geometry/getLineSegmentsIntersection.js +43 -0
  74. package/dist/hooks/useSpaces/geometry/getMidpointOfLineSegment.d.ts +3 -0
  75. package/dist/hooks/useSpaces/geometry/getMidpointOfLineSegment.js +9 -0
  76. package/dist/hooks/useSpaces/geometry/getParallelLineSegmentAtDistance.d.ts +3 -0
  77. package/dist/hooks/useSpaces/geometry/getParallelLineSegmentAtDistance.js +20 -0
  78. package/dist/hooks/useSpaces/geometry/getPointAtOffsetOnLineSegment.d.ts +3 -0
  79. package/dist/hooks/useSpaces/geometry/getPointAtOffsetOnLineSegment.js +11 -0
  80. package/dist/hooks/useSpaces/geometry/getPolygonArea.d.ts +3 -0
  81. package/dist/hooks/useSpaces/geometry/getPolygonArea.js +15 -0
  82. package/dist/hooks/useSpaces/geometry/getQuadrilateralArea.d.ts +3 -0
  83. package/dist/hooks/useSpaces/geometry/getQuadrilateralArea.js +16 -0
  84. package/dist/hooks/useSpaces/geometry/getTangetIntersectionAndOffset.d.ts +6 -0
  85. package/dist/hooks/useSpaces/geometry/getTangetIntersectionAndOffset.js +17 -0
  86. package/dist/hooks/useSpaces/geometry/getTriangleArea.d.ts +3 -0
  87. package/dist/hooks/useSpaces/geometry/getTriangleArea.js +9 -0
  88. package/dist/hooks/useSpaces/geometry/getUnitVectorOfLineSegment.d.ts +3 -0
  89. package/dist/hooks/useSpaces/geometry/getUnitVectorOfLineSegment.js +12 -0
  90. package/dist/hooks/useSpaces/geometry/index.d.ts +30 -0
  91. package/dist/hooks/useSpaces/geometry/index.js +64 -0
  92. package/dist/hooks/useSpaces/geometry/isPointInPolygon.d.ts +3 -0
  93. package/dist/hooks/useSpaces/geometry/isPointInPolygon.js +21 -0
  94. package/dist/hooks/useSpaces/geometry/isPointInQuadrilateral.d.ts +3 -0
  95. package/dist/hooks/useSpaces/geometry/isPointInQuadrilateral.js +25 -0
  96. package/dist/hooks/useSpaces/geometry/orderCoordinatesOnLineSegment.d.ts +3 -0
  97. package/dist/hooks/useSpaces/geometry/orderCoordinatesOnLineSegment.js +11 -0
  98. package/dist/hooks/useSpaces/geometry/splitLineAtOffset.d.ts +3 -0
  99. package/dist/hooks/useSpaces/geometry/splitLineAtOffset.js +12 -0
  100. package/dist/hooks/useSpaces/geometry/splitLineAtPoint.d.ts +3 -0
  101. package/dist/hooks/useSpaces/geometry/splitLineAtPoint.js +9 -0
  102. package/dist/hooks/useSpaces/geometry/splitLineAtPoints.d.ts +3 -0
  103. package/dist/hooks/useSpaces/geometry/splitLineAtPoints.js +28 -0
  104. package/dist/hooks/useSpaces/index.d.ts +82 -0
  105. package/dist/hooks/useSpaces/index.js +482 -0
  106. package/dist/hooks/useSpaces/themes/blueprint.d.ts +3 -0
  107. package/dist/hooks/useSpaces/themes/blueprint.js +96 -0
  108. package/dist/hooks/useSpaces/themes/default.d.ts +3 -0
  109. package/dist/hooks/useSpaces/themes/default.js +96 -0
  110. package/dist/hooks/useSpaces/themes/index.d.ts +11 -0
  111. package/dist/hooks/useSpaces/themes/index.js +21 -0
  112. package/dist/hooks/useSpaces/themes/light.d.ts +3 -0
  113. package/dist/hooks/useSpaces/themes/light.js +96 -0
  114. package/dist/hooks/useSpaces/types.d.ts +339 -0
  115. package/dist/hooks/useSpaces/types.js +54 -0
  116. package/dist/hooks/useSpaces/validators/areWallsDuplicated.d.ts +3 -0
  117. package/dist/hooks/useSpaces/validators/areWallsDuplicated.js +61 -0
  118. package/dist/hooks/useSpaces/validators/areWallsIntersecting.d.ts +3 -0
  119. package/dist/hooks/useSpaces/validators/areWallsIntersecting.js +42 -0
  120. package/dist/hooks/useSpaces/validators/areWallsOrphaningFeatures.d.ts +3 -0
  121. package/dist/hooks/useSpaces/validators/areWallsOrphaningFeatures.js +52 -0
  122. package/dist/hooks/useSpaces/validators/areWallsTooShort.d.ts +3 -0
  123. package/dist/hooks/useSpaces/validators/areWallsTooShort.js +37 -0
  124. package/dist/hooks/useSpaces/validators/index.d.ts +15 -0
  125. package/dist/hooks/useSpaces/validators/index.js +40 -0
  126. package/dist/hooks/useSpaces/validators/isFeatureCollidingWithExistingFeature.d.ts +3 -0
  127. package/dist/hooks/useSpaces/validators/isFeatureCollidingWithExistingFeature.js +31 -0
  128. package/dist/hooks/useSpaces/validators/isFeatureOutsideWallBounds.d.ts +3 -0
  129. package/dist/hooks/useSpaces/validators/isFeatureOutsideWallBounds.js +19 -0
  130. package/dist/hooks/useSpaces/validators/isLineTooShort.d.ts +3 -0
  131. package/dist/hooks/useSpaces/validators/isLineTooShort.js +26 -0
  132. package/dist/hooks/useSpaces/validators/isVertexLandingOnFeature.d.ts +4 -0
  133. package/dist/hooks/useSpaces/validators/isVertexLandingOnFeature.js +19 -0
  134. package/dist/hooks/useSpaces/validators/isWallEndingOnFeature.d.ts +3 -0
  135. package/dist/hooks/useSpaces/validators/isWallEndingOnFeature.js +19 -0
  136. package/dist/hooks/useSpaces/validators/isWallIntersectingFeature.d.ts +3 -0
  137. package/dist/hooks/useSpaces/validators/isWallIntersectingFeature.js +41 -0
  138. package/dist/hooks/useSpaces/validators/isWallOverlappingExisitingWalls.d.ts +3 -0
  139. package/dist/hooks/useSpaces/validators/isWallOverlappingExisitingWalls.js +54 -0
  140. package/dist/hooks/useSpaces/validators/isWallTooShort.d.ts +3 -0
  141. package/dist/hooks/useSpaces/validators/isWallTooShort.js +10 -0
  142. package/dist/hooks/useSpaces/validators/messaging.d.ts +8 -0
  143. package/dist/hooks/useSpaces/validators/messaging.js +18 -0
  144. package/dist/icons/Player3D.d.ts +3 -0
  145. package/dist/icons/Player3D.js +21 -0
  146. package/dist/icons/Ruler copy.d.ts +3 -0
  147. package/dist/icons/Ruler copy.js +22 -0
  148. package/dist/icons/RulerBlank.d.ts +3 -0
  149. package/dist/icons/RulerBlank.js +25 -0
  150. package/dist/icons/RulerDetailed copy.d.ts +3 -0
  151. package/dist/icons/RulerDetailed copy.js +27 -0
  152. package/dist/icons/RulerDetailed.d.ts +3 -0
  153. package/dist/icons/RulerDetailed.js +27 -0
  154. package/dist/icons/types.d.ts +1 -1
  155. package/dist/store/attributes.d.ts +1 -1
  156. package/dist/store/index.d.ts +10 -31
  157. package/dist/store/spaces.d.ts +47 -0
  158. package/dist/store/spaces.js +197 -0
  159. package/dist/store/treble.d.ts +3 -1
  160. package/dist/store/treble.js +45 -30
  161. package/dist/store/wishlist.d.ts +20 -2
  162. package/dist/types.d.ts +12 -3
  163. package/package.json +2 -1
  164. package/dist/hooks/useSpaces/Canvas.d.ts +0 -37
  165. package/dist/hooks/useSpaces/Canvas.js +0 -199
@@ -0,0 +1,37 @@
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 messaging_1 = require("./messaging");
7
+ var types_1 = require("../types");
8
+ var isLineTooShort_1 = __importDefault(require("./isLineTooShort"));
9
+ function areWallsTooShort(input, wallAndFeatures, validationConfig) {
10
+ var vertex = input.vertex, updatedPosition = input.updatedPosition;
11
+ var walls = wallAndFeatures.walls;
12
+ var _a = vertex.connections.reduce(function (output, connection) {
13
+ var _a;
14
+ var wallIndex = connection[0], vertexIndex = connection[1];
15
+ output.wallIndexes.push(wallIndex);
16
+ output.updatedVerticesMap = Object.assign(output.updatedVerticesMap, (_a = {},
17
+ _a[wallIndex] = vertexIndex,
18
+ _a));
19
+ return output;
20
+ }, {
21
+ wallIndexes: [],
22
+ updatedVerticesMap: {},
23
+ }), wallIndexes = _a.wallIndexes, updatedVerticesMap = _a.updatedVerticesMap;
24
+ for (var _i = 0, wallIndexes_1 = wallIndexes; _i < wallIndexes_1.length; _i++) {
25
+ var index = wallIndexes_1[_i];
26
+ var line = walls[index].line;
27
+ line[updatedVerticesMap[index]] = updatedPosition.point;
28
+ if ((0, isLineTooShort_1.default)(line, validationConfig))
29
+ return {
30
+ address: { type: types_1.IElements.WALL, index: index },
31
+ message: messaging_1.errorMessages.wallTooShort(),
32
+ type: types_1.IErrorTypes.HARD,
33
+ };
34
+ }
35
+ return false;
36
+ }
37
+ exports.default = areWallsTooShort;
@@ -0,0 +1,15 @@
1
+ import { IErrorElement, IWallsValidationConfig } from '../types';
2
+ import { ISharedValidatorInput, IValidatorFunction } from '../types';
3
+ import isFeatureOutsideWallBounds from './isFeatureOutsideWallBounds';
4
+ import isFeatureCollidingWithExistingFeature from './isFeatureCollidingWithExistingFeature';
5
+ import isWallIntersectingFeature from './isWallIntersectingFeature';
6
+ import isWallOverlappingExisitingWalls from './isWallOverlappingExisitingWalls';
7
+ import isWallTooShort from './isWallTooShort';
8
+ import areWallsTooShort from './areWallsTooShort';
9
+ import areWallsIntersecting from './areWallsIntersecting';
10
+ import areWallsOrphaningFeatures from './areWallsOrphaningFeatures';
11
+ import areWallsDuplicated from './areWallsDuplicated';
12
+ import isWallEndingOnFeature from './isWallEndingOnFeature';
13
+ import isVertexLandingOnFeature from './isVertexLandingOnFeature';
14
+ export { isFeatureOutsideWallBounds, isFeatureCollidingWithExistingFeature, isWallIntersectingFeature, isWallOverlappingExisitingWalls, isWallTooShort, areWallsTooShort, areWallsIntersecting, areWallsOrphaningFeatures, areWallsDuplicated, isWallEndingOnFeature, isVertexLandingOnFeature, };
15
+ export declare function runValidators<T>(validators: Array<IValidatorFunction<T>>, input: T, wallAndFeatures: ISharedValidatorInput, validationConfig: IWallsValidationConfig): IErrorElement[] | null;
@@ -0,0 +1,40 @@
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.runValidators = exports.isVertexLandingOnFeature = exports.isWallEndingOnFeature = exports.areWallsDuplicated = exports.areWallsOrphaningFeatures = exports.areWallsIntersecting = exports.areWallsTooShort = exports.isWallTooShort = exports.isWallOverlappingExisitingWalls = exports.isWallIntersectingFeature = exports.isFeatureCollidingWithExistingFeature = exports.isFeatureOutsideWallBounds = void 0;
7
+ var isFeatureOutsideWallBounds_1 = __importDefault(require("./isFeatureOutsideWallBounds"));
8
+ exports.isFeatureOutsideWallBounds = isFeatureOutsideWallBounds_1.default;
9
+ var isFeatureCollidingWithExistingFeature_1 = __importDefault(require("./isFeatureCollidingWithExistingFeature"));
10
+ exports.isFeatureCollidingWithExistingFeature = isFeatureCollidingWithExistingFeature_1.default;
11
+ var isWallIntersectingFeature_1 = __importDefault(require("./isWallIntersectingFeature"));
12
+ exports.isWallIntersectingFeature = isWallIntersectingFeature_1.default;
13
+ var isWallOverlappingExisitingWalls_1 = __importDefault(require("./isWallOverlappingExisitingWalls"));
14
+ exports.isWallOverlappingExisitingWalls = isWallOverlappingExisitingWalls_1.default;
15
+ var isWallTooShort_1 = __importDefault(require("./isWallTooShort"));
16
+ exports.isWallTooShort = isWallTooShort_1.default;
17
+ var areWallsTooShort_1 = __importDefault(require("./areWallsTooShort"));
18
+ exports.areWallsTooShort = areWallsTooShort_1.default;
19
+ var areWallsIntersecting_1 = __importDefault(require("./areWallsIntersecting"));
20
+ exports.areWallsIntersecting = areWallsIntersecting_1.default;
21
+ var areWallsOrphaningFeatures_1 = __importDefault(require("./areWallsOrphaningFeatures"));
22
+ exports.areWallsOrphaningFeatures = areWallsOrphaningFeatures_1.default;
23
+ var areWallsDuplicated_1 = __importDefault(require("./areWallsDuplicated"));
24
+ exports.areWallsDuplicated = areWallsDuplicated_1.default;
25
+ var isWallEndingOnFeature_1 = __importDefault(require("./isWallEndingOnFeature"));
26
+ exports.isWallEndingOnFeature = isWallEndingOnFeature_1.default;
27
+ var isVertexLandingOnFeature_1 = __importDefault(require("./isVertexLandingOnFeature"));
28
+ exports.isVertexLandingOnFeature = isVertexLandingOnFeature_1.default;
29
+ function runValidators(validators, input, wallAndFeatures, validationConfig) {
30
+ var errors = validators.reduce(function (output, validate) {
31
+ var error = validate(input, wallAndFeatures, validationConfig);
32
+ if (error)
33
+ output.push(error);
34
+ return output;
35
+ }, []);
36
+ if (errors.length)
37
+ return errors;
38
+ return null;
39
+ }
40
+ exports.runValidators = runValidators;
@@ -0,0 +1,3 @@
1
+ import type { IFeatureValidatorInput, ISharedValidatorInput, IErrorElement } from '../types';
2
+ declare function isFeatureCollidingWithExistingFeature(input: IFeatureValidatorInput, wallAndFeatures: ISharedValidatorInput): false | IErrorElement;
3
+ export default isFeatureCollidingWithExistingFeature;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var geometry_1 = require("../geometry");
4
+ var messaging_1 = require("./messaging");
5
+ var types_1 = require("../types");
6
+ function isFeatureCollidingWithExistingFeature(input, wallAndFeatures) {
7
+ var _a, _b;
8
+ var wall = input.wall, updatedFeature = input.updatedFeature;
9
+ var features = wallAndFeatures.features;
10
+ if (!features || !((_a = wall.connections) === null || _a === void 0 ? void 0 : _a.length))
11
+ return false;
12
+ if (!Object.values(updatedFeature).flat().length)
13
+ return false;
14
+ for (var i = 0; i < wall.connections.length; i++) {
15
+ var _c = wall.connections[i], type = _c[0], index = _c[1];
16
+ if (updatedFeature.address.type === type &&
17
+ updatedFeature.address.index === index)
18
+ continue;
19
+ var existingFeature = (_b = features[type]) === null || _b === void 0 ? void 0 : _b[index];
20
+ if (!existingFeature)
21
+ continue;
22
+ if ((0, geometry_1.doLinesOverlap)([updatedFeature.offset, updatedFeature.length], [existingFeature.offset, existingFeature.length]))
23
+ return {
24
+ address: { type: type, index: index },
25
+ type: types_1.IErrorTypes.SOFT,
26
+ message: messaging_1.errorMessages.featuresColliding(type),
27
+ };
28
+ }
29
+ return false;
30
+ }
31
+ exports.default = isFeatureCollidingWithExistingFeature;
@@ -0,0 +1,3 @@
1
+ import type { IErrorElement, IWallsValidationConfig, IFeatureValidatorInput, ISharedValidatorInput } from '../types';
2
+ declare function isFeatureOutsideWallBounds(input: IFeatureValidatorInput, _: ISharedValidatorInput, validationConfig: IWallsValidationConfig): false | IErrorElement;
3
+ export default isFeatureOutsideWallBounds;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var geometry_1 = require("../geometry");
4
+ var messaging_1 = require("./messaging");
5
+ var types_1 = require("../types");
6
+ function isFeatureOutsideWallBounds(input, _, validationConfig) {
7
+ var wall = input.wall, updatedFeature = input.updatedFeature;
8
+ var padding = validationConfig.padding;
9
+ var wallLength = (0, geometry_1.getLengthOfLineSegment)(wall.line);
10
+ if (updatedFeature.offset < padding ||
11
+ updatedFeature.offset + updatedFeature.length > wallLength - padding)
12
+ return {
13
+ address: updatedFeature.address,
14
+ type: types_1.IErrorTypes.HARD,
15
+ message: messaging_1.errorMessages.featureOutsideWallBounds(),
16
+ };
17
+ return false;
18
+ }
19
+ exports.default = isFeatureOutsideWallBounds;
@@ -0,0 +1,3 @@
1
+ import type { ICoordinatesLine, IErrorElement, IWall, IWallsValidationConfig } from '../types';
2
+ declare function isLineTooShort(wallOrLine: ICoordinatesLine | IWall, validationConfig: IWallsValidationConfig): false | IErrorElement;
3
+ export default isLineTooShort;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ var geometry_1 = require("../geometry");
13
+ var messaging_1 = require("./messaging");
14
+ var types_1 = require("../types");
15
+ function isLineTooShort(wallOrLine, validationConfig) {
16
+ var minLength = validationConfig.minLength;
17
+ var line = Array.isArray(wallOrLine) ? wallOrLine : wallOrLine.line;
18
+ var tooClose = geometry_1.arePointsWithinProximity.apply(void 0, __spreadArray(__spreadArray([], line, false), [minLength], false));
19
+ if (tooClose)
20
+ return {
21
+ message: messaging_1.errorMessages.wallTooShort(),
22
+ type: types_1.IErrorTypes.HARD,
23
+ };
24
+ return false;
25
+ }
26
+ exports.default = isLineTooShort;
@@ -0,0 +1,4 @@
1
+ import { IErrorElement } from '../types';
2
+ import type { IMoveVertexValidatorInput } from '../types';
3
+ declare function isVertexLandingOnFeature(input: IMoveVertexValidatorInput): false | IErrorElement;
4
+ export default isVertexLandingOnFeature;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var messaging_1 = require("./messaging");
4
+ var types_1 = require("../types");
5
+ function isVertexLandingOnFeature(input) {
6
+ var snapPoint = input.updatedPosition;
7
+ if (!snapPoint)
8
+ return false;
9
+ if (snapPoint.type === types_1.IElements.WINDOW ||
10
+ snapPoint.type === types_1.IElements.DOOR ||
11
+ snapPoint.type === types_1.IElements.OPENING)
12
+ return {
13
+ address: snapPoint,
14
+ message: messaging_1.errorMessages.addWallCollidingWithFeature(snapPoint.type),
15
+ type: types_1.IErrorTypes.SOFT,
16
+ };
17
+ return false;
18
+ }
19
+ exports.default = isVertexLandingOnFeature;
@@ -0,0 +1,3 @@
1
+ import type { IErrorElement, IAddWallValidatorInput } from '../types';
2
+ declare function isWallEndingOnFeature(input: IAddWallValidatorInput): false | IErrorElement;
3
+ export default isWallEndingOnFeature;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var messaging_1 = require("./messaging");
4
+ var types_1 = require("../types");
5
+ function isWallEndingOnFeature(input) {
6
+ var snapPoint = input.newWall.end;
7
+ if (!snapPoint)
8
+ return false;
9
+ if (snapPoint.type === types_1.IElements.WINDOW ||
10
+ snapPoint.type === types_1.IElements.DOOR ||
11
+ snapPoint.type === types_1.IElements.OPENING)
12
+ return {
13
+ address: snapPoint,
14
+ message: messaging_1.errorMessages.addWallCollidingWithFeature(snapPoint.type),
15
+ type: types_1.IErrorTypes.SOFT,
16
+ };
17
+ return false;
18
+ }
19
+ exports.default = isWallEndingOnFeature;
@@ -0,0 +1,3 @@
1
+ import type { IAddWallValidatorInput, ISharedValidatorInput, IErrorElement } from '../types';
2
+ declare function isWallIntersectingFeature(input: IAddWallValidatorInput, wallAndFeatures: ISharedValidatorInput): false | IErrorElement;
3
+ export default isWallIntersectingFeature;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var geometry_1 = require("../geometry");
4
+ var messaging_1 = require("./messaging");
5
+ var types_1 = require("../types");
6
+ function isWallIntersectingFeature(input, wallAndFeatures) {
7
+ var _a;
8
+ var newWall = input.newWall;
9
+ var walls = wallAndFeatures.walls, features = wallAndFeatures.features;
10
+ if (!walls.length || !Object.values(features).flat().length)
11
+ return false;
12
+ var intersectingFeature;
13
+ for (var i = 0; i < walls.length && !intersectingFeature; i++) {
14
+ if (!walls[i].connections)
15
+ continue;
16
+ var intersectionPoint = (0, geometry_1.getLineSegmentsIntersection)(newWall.line, walls[i].line);
17
+ if (!intersectionPoint)
18
+ continue;
19
+ var intersectionOffset = (0, geometry_1.getLengthOfLineSegment)([
20
+ walls[i].line[0],
21
+ intersectionPoint,
22
+ ]);
23
+ for (var j = 0; j < walls[i].connections.length && !intersectingFeature; j++) {
24
+ var _b = walls[i].connections[j], type = _b[0], index = _b[1];
25
+ var feature = (_a = features[type]) === null || _a === void 0 ? void 0 : _a[index];
26
+ if (!feature)
27
+ continue;
28
+ if (feature.offset < intersectionOffset &&
29
+ intersectionOffset < feature.offset + feature.length)
30
+ intersectingFeature = { type: type, index: index };
31
+ }
32
+ }
33
+ if (!intersectingFeature)
34
+ return false;
35
+ return ({
36
+ address: intersectingFeature,
37
+ message: messaging_1.errorMessages.addWallCollidingWithFeature(intersectingFeature.type),
38
+ type: types_1.IErrorTypes.SOFT,
39
+ } || false);
40
+ }
41
+ exports.default = isWallIntersectingFeature;
@@ -0,0 +1,3 @@
1
+ import type { IErrorElement, IAddWallValidatorInput, ISharedValidatorInput } from '../types';
2
+ declare function isWallOverlappingExisitingWalls(input: IAddWallValidatorInput, wallAndFeatures: ISharedValidatorInput): false | IErrorElement;
3
+ export default isWallOverlappingExisitingWalls;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var geometry_1 = require("../geometry");
4
+ var messaging_1 = require("./messaging");
5
+ var types_1 = require("../types");
6
+ function isWallOverlappingExisitingWalls(input, wallAndFeatures) {
7
+ var newWall = input.newWall;
8
+ var walls = wallAndFeatures.walls;
9
+ var start = newWall.start, end = newWall.end;
10
+ if (start.type === types_1.IElements.WALL &&
11
+ (end === null || end === void 0 ? void 0 : end.type) === types_1.IElements.WALL &&
12
+ start.index === end.index) {
13
+ return {
14
+ address: {
15
+ type: types_1.IElements.WALL,
16
+ index: start.index,
17
+ },
18
+ type: types_1.IErrorTypes.SOFT,
19
+ message: messaging_1.errorMessages.wallsNotUnique(),
20
+ };
21
+ }
22
+ var overlappingIndex = walls.findIndex(function (wall, i) {
23
+ var line = wall.line;
24
+ if ((0, geometry_1.areLinesEqual)(line, newWall.line))
25
+ return true;
26
+ if (start.type === types_1.IElements.VERTEX &&
27
+ ((0, geometry_1.arePointsEqual)(start.point, line[0]) ||
28
+ (0, geometry_1.arePointsEqual)(start.point, line[1])) &&
29
+ (end === null || end === void 0 ? void 0 : end.type) === types_1.IElements.WALL &&
30
+ end.index === i) {
31
+ return true;
32
+ }
33
+ if ((end === null || end === void 0 ? void 0 : end.type) === types_1.IElements.VERTEX &&
34
+ ((0, geometry_1.arePointsEqual)(end.point, line[0]) ||
35
+ (0, geometry_1.arePointsEqual)(end.point, line[1])) &&
36
+ start.type === types_1.IElements.WALL &&
37
+ start.index === i) {
38
+ return true;
39
+ }
40
+ return false;
41
+ });
42
+ if (overlappingIndex !== -1) {
43
+ return {
44
+ address: {
45
+ type: types_1.IElements.WALL,
46
+ index: overlappingIndex,
47
+ },
48
+ type: types_1.IErrorTypes.SOFT,
49
+ message: messaging_1.errorMessages.wallsNotUnique(),
50
+ };
51
+ }
52
+ return false;
53
+ }
54
+ exports.default = isWallOverlappingExisitingWalls;
@@ -0,0 +1,3 @@
1
+ import type { IAddWallValidatorInput, ISharedValidatorInput, IErrorElement, IWallsValidationConfig } from '../types';
2
+ declare function isWallTooShort(input: IAddWallValidatorInput, _: ISharedValidatorInput, validationConfig: IWallsValidationConfig): false | IErrorElement;
3
+ export default isWallTooShort;
@@ -0,0 +1,10 @@
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 isLineTooShort_1 = __importDefault(require("./isLineTooShort"));
7
+ function isWallTooShort(input, _, validationConfig) {
8
+ return (0, isLineTooShort_1.default)(input.newWall.line, validationConfig);
9
+ }
10
+ exports.default = isWallTooShort;
@@ -0,0 +1,8 @@
1
+ export declare const errorMessages: {
2
+ addWallCollidingWithWall: () => string;
3
+ addWallCollidingWithFeature: (feature: string) => string;
4
+ featuresColliding: (feature: string) => string;
5
+ featureOutsideWallBounds: () => string;
6
+ wallsNotUnique: () => string;
7
+ wallTooShort: () => string;
8
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.errorMessages = void 0;
4
+ var constants_1 = require("../constants");
5
+ exports.errorMessages = {
6
+ addWallCollidingWithWall: function () { return 'Wall cannot collide with another wall.'; },
7
+ addWallCollidingWithFeature: function (feature) {
8
+ return "Wall cannot collide with a ".concat(constants_1.FEATURE_LABELS[feature]);
9
+ },
10
+ featuresColliding: function (feature) {
11
+ return "There is already a ".concat(constants_1.FEATURE_LABELS[feature], " in that space.");
12
+ },
13
+ featureOutsideWallBounds: function () {
14
+ return 'Feature is too close to the end of the wall.';
15
+ },
16
+ wallsNotUnique: function () { return 'Cannot place a wall over an existing wall.'; },
17
+ wallTooShort: function () { return 'Wall is too short.'; },
18
+ };
@@ -0,0 +1,3 @@
1
+ import { IIcon } from './types';
2
+ export declare const Player3D: IIcon;
3
+ export default Player3D;
@@ -0,0 +1,21 @@
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.Player3D = 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.color || props.theme.textColor; });
14
+ var Player3D = function (props) {
15
+ return (react_1.default.createElement(SVG, { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", color: props.color },
16
+ react_1.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.1678 1.05955L10.0003 1L9.83285 1.05955L3.5161 3.30527L3.18359 3.42348V3.77638V11.6364V11.9893L3.5161 12.1075L9.83285 14.3533L10.0003 14.4128L10.1678 14.3533L16.4845 12.1075L16.817 11.9893V11.6364V3.77638V3.42348L16.4845 3.30527L10.1678 1.05955ZM9.50034 6.375L4.18359 4.4848V11.2835L9.50034 13.1738V6.375ZM15.817 11.2835L10.5003 13.1737V6.375L15.817 4.4848V11.2835ZM14.8244 3.77638L10.0003 5.49144L5.17622 3.77638L10.0003 2.06132L14.8244 3.77638ZM2.21438 8.32289C0.919876 9.24063 0 10.4827 0 11.9723C0 13.8117 1.40245 15.2735 3.1809 16.2135C4.71477 17.0242 6.6857 17.5461 8.83542 17.6854L8.17982 18.126C7.95064 18.28 7.88972 18.5907 8.04376 18.8199C8.1978 19.0491 8.50847 19.11 8.73766 18.956L10.7929 17.5746L11.4103 17.1596L10.7929 16.7447L10.5744 16.5978V16.579L10.5477 16.5799L8.73767 15.3632C8.50849 15.2091 8.19782 15.2701 8.04377 15.4992C7.88972 15.7284 7.95063 16.0391 8.17981 16.1931L8.69201 16.5374C4.48846 16.2038 1.26536 14.287 1.26536 11.9723C1.26536 11.2181 1.60756 10.5062 2.21438 9.87745V8.32289ZM18.3477 10.6094C18.5992 11.0402 18.7346 11.4979 18.7346 11.9723C18.7346 13.9903 16.2848 15.7059 12.8714 16.3336V17.489C14.3526 17.2412 15.7018 16.804 16.8191 16.2135C18.5975 15.2735 20 13.8117 20 11.9723C20 10.709 19.3383 9.6237 18.3477 8.76332V10.6094Z", className: "tk-icon" })));
17
+ };
18
+ exports.Player3D = Player3D;
19
+ exports.Player3D.iconName = 'player-3d';
20
+ exports.default = exports.Player3D;
21
+ var templateObject_1;
@@ -0,0 +1,3 @@
1
+ import { IIcon } from './types';
2
+ export declare const Ruler: IIcon;
3
+ export default Ruler;
@@ -0,0 +1,22 @@
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.Ruler = 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 stroke: ", ";\n }\n"], ["\n .tk-icon {\n stroke: ", ";\n }\n"])), function (props) { return props.color || props.theme.textColor; });
14
+ var Ruler = function (props) {
15
+ return (react_1.default.createElement(SVG, { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", color: props.color },
16
+ react_1.default.createElement("rect", { x: "5.75735", y: "1.51472", width: "18", height: "6", transform: "rotate(45 5.75735 1.51472)", className: "tk-icon", strokeWidth: "2" }),
17
+ react_1.default.createElement("path", { d: "M8.93934 4.6967L6.11091 7.52513M11.0607 6.81802L8.93934 8.93934M13.182 8.93934L11.0607 11.0607M15.3033 11.0607L12.4749 13.8891", className: "tk-icon", strokeWidth: "1" })));
18
+ };
19
+ exports.Ruler = Ruler;
20
+ exports.Ruler.iconName = 'ruler';
21
+ exports.default = exports.Ruler;
22
+ var templateObject_1;
@@ -0,0 +1,3 @@
1
+ import { IIcon } from './types';
2
+ export declare const Ruler: IIcon;
3
+ export default Ruler;
@@ -0,0 +1,25 @@
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.Ruler = 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 stroke: ", ";\n }\n"], ["\n .tk-icon {\n stroke: ", ";\n }\n"])), function (props) { return props.color || props.theme.textColor; });
14
+ var Ruler = function (props) {
15
+ return (react_1.default.createElement(SVG, { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", color: props.color },
16
+ react_1.default.createElement("g", { "clip-path": "url(#clip0_1031_536)" },
17
+ react_1.default.createElement("rect", { x: "5.75732", y: "1.51465", width: "18", height: "6", transform: "rotate(45 5.75732 1.51465)", className: "tk-icon", "stroke-width": "2" })),
18
+ react_1.default.createElement("defs", null,
19
+ react_1.default.createElement("clipPath", { id: "clip0_1031_536" },
20
+ react_1.default.createElement("rect", { width: "20", height: "20", fill: "white" })))));
21
+ };
22
+ exports.Ruler = Ruler;
23
+ exports.Ruler.iconName = 'ruler';
24
+ exports.default = exports.Ruler;
25
+ var templateObject_1;
@@ -0,0 +1,3 @@
1
+ import { IIcon } from './types';
2
+ export declare const Ruler: IIcon;
3
+ export default Ruler;
@@ -0,0 +1,27 @@
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.Ruler = 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 stroke: ", ";\n }\n"], ["\n .tk-icon {\n stroke: ", ";\n }\n"])), function (props) { return props.color || props.theme.textColor; });
14
+ var Ruler = function (props) {
15
+ return (react_1.default.createElement(SVG, { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", color: props.color },
16
+ react_1.default.createElement("g", { "clip-path": "url(#clip0_1031_521)" },
17
+ react_1.default.createElement("rect", { x: "5.75732", y: "1.51465", width: "18", height: "6", transform: "rotate(45 5.75732 1.51465)", className: "tk-icon", "stroke-width": "2" }),
18
+ react_1.default.createElement("path", { d: "M7.82837 4L4.99994 6.82843M9.16899 5.34062L7.04767 7.46194M10.5096 6.68123L8.38828 8.80255M11.8502 8.02185L9.02179 10.8503", className: "tk-icon" }),
19
+ react_1.default.createElement("path", { d: "M11.8284 8L8.99994 10.8284M13.169 9.34062L11.0477 11.4619M14.5096 10.6812L12.3883 12.8026M15.8502 12.0219L13.0218 14.8503", className: "tk-icon" })),
20
+ react_1.default.createElement("defs", null,
21
+ react_1.default.createElement("clipPath", { id: "clip0_1031_521" },
22
+ react_1.default.createElement("rect", { width: "20", height: "20", fill: "white" })))));
23
+ };
24
+ exports.Ruler = Ruler;
25
+ exports.Ruler.iconName = 'ruler';
26
+ exports.default = exports.Ruler;
27
+ var templateObject_1;
@@ -0,0 +1,3 @@
1
+ import { IIcon } from './types';
2
+ export declare const Ruler: IIcon;
3
+ export default Ruler;
@@ -0,0 +1,27 @@
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.Ruler = 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 stroke: ", ";\n }\n"], ["\n .tk-icon {\n stroke: ", ";\n }\n"])), function (props) { return props.color || props.theme.textColor; });
14
+ var Ruler = function (props) {
15
+ return (react_1.default.createElement(SVG, { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", color: props.color },
16
+ react_1.default.createElement("g", { "clip-path": "url(#clip0_1031_521)" },
17
+ react_1.default.createElement("rect", { x: "5.75732", y: "1.51465", width: "18", height: "6", transform: "rotate(45 5.75732 1.51465)", className: "tk-icon", "stroke-width": "2" }),
18
+ react_1.default.createElement("path", { d: "M7.82837 4L4.99994 6.82843M9.16899 5.34062L7.04767 7.46194M10.5096 6.68123L8.38828 8.80255M11.8502 8.02185L9.02179 10.8503", className: "tk-icon" }),
19
+ react_1.default.createElement("path", { d: "M11.8284 8L8.99994 10.8284M13.169 9.34062L11.0477 11.4619M14.5096 10.6812L12.3883 12.8026M15.8502 12.0219L13.0218 14.8503", className: "tk-icon" })),
20
+ react_1.default.createElement("defs", null,
21
+ react_1.default.createElement("clipPath", { id: "clip0_1031_521" },
22
+ react_1.default.createElement("rect", { width: "20", height: "20", fill: "white" })))));
23
+ };
24
+ exports.Ruler = Ruler;
25
+ exports.Ruler.iconName = 'ruler';
26
+ exports.default = exports.Ruler;
27
+ var templateObject_1;
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import React from 'react';
2
2
  export interface IIconProps {
3
3
  color?: string;
4
4
  }
@@ -12,7 +12,7 @@ export declare const getHydrationData: ((state: {
12
12
  translations: import("./translations").TranslationsState;
13
13
  wishlist: import("../Treble").WishlistArray;
14
14
  price: import("./price").PriceState;
15
- }) => [Record<string, IThreekitDisplayAttribute>, ITranslationMap | undefined, string | undefined]) & import("reselect").OutputSelectorFields<(args_0: AttributesState, args_1: string | undefined) => [Record<string, IThreekitDisplayAttribute>, ITranslationMap | undefined, string | undefined] & {
15
+ }) => [Record<string, IThreekitDisplayAttribute>, ITranslationMap | undefined, string | undefined]) & import("reselect").OutputSelectorFields<(args_0: AttributesState, args_1: string | undefined) => [Record<string, IThreekitDisplayAttribute>, ITranslationMap | undefined, string | undefined], {
16
16
  clearCache: () => void;
17
17
  }> & {
18
18
  clearCache: () => void;