@threekit-tools/treble 0.0.81 → 0.0.82

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 (36) hide show
  1. package/dist/Treble/Treble.d.ts +2 -2
  2. package/dist/Treble/Treble.js +1 -1
  3. package/dist/Treble/index.js +5 -1
  4. package/dist/api/index.js +5 -1
  5. package/dist/components/Accordion/index.js +5 -1
  6. package/dist/components/Drawer/index.js +7 -3
  7. package/dist/components/Dropdown/index.js +7 -3
  8. package/dist/components/FlatForm/index.js +5 -1
  9. package/dist/components/Modal/index.js +2 -2
  10. package/dist/components/PortalToArOverlay/index.js +5 -1
  11. package/dist/components/Share/index.js +2 -2
  12. package/dist/components/Snapshots/index.js +2 -2
  13. package/dist/components/Tabs/index.js +5 -1
  14. package/dist/components/ThreekitProvider/index.js +5 -1
  15. package/dist/components/TrebleApp/index.js +5 -1
  16. package/dist/components/Upload/index.js +14 -9
  17. package/dist/components/UploadArea/index.js +12 -8
  18. package/dist/components/Wishlist/index.d.ts +1 -1
  19. package/dist/components/Wishlist/index.js +10 -5
  20. package/dist/components/Zoom/index.d.ts +1 -1
  21. package/dist/components/Zoom/index.js +5 -4
  22. package/dist/components/formComponents.js +5 -1
  23. package/dist/components/message/index.js +4 -22
  24. package/dist/hooks/useAttribute/index.d.ts +1 -1
  25. package/dist/http/index.js +5 -1
  26. package/dist/icons/Spinner.js +5 -1
  27. package/dist/index.js +5 -1
  28. package/dist/store/index.d.ts +1 -1
  29. package/dist/store/product.d.ts +4 -4
  30. package/dist/store/translations.d.ts +1 -1
  31. package/dist/store/treble.d.ts +1 -1
  32. package/dist/types.d.ts +50 -10
  33. package/dist/utils.d.ts +8 -8
  34. package/package.json +1 -1
  35. package/dist/hooks/useImageEditor/index.d.ts +0 -14
  36. package/dist/hooks/useImageEditor/index.js +0 -320
@@ -22,13 +22,13 @@ declare class Treble {
22
22
  takeSnapshots: Snapshots['takeSnapshots'];
23
23
  _debugMode: boolean;
24
24
  constructor({ player, orgId, initialConfiguration }: ITreble);
25
- saveConfiguration: (config?: Partial<Omit<ISaveConfiguration, "configuration">> | undefined) => Promise<{
25
+ saveConfiguration: (config?: Partial<Omit<ISaveConfiguration, 'configuration'>>) => Promise<{
26
26
  resumableUrl: string;
27
27
  } & import("../http/configurations").IConfigurationResponse & {
28
28
  thumbnail: string;
29
29
  }>;
30
30
  getNestedConfigurator: (address: string | Array<string>) => undefined | IThreekitPrivateConfigurator;
31
- resetConfiguration: (configuration?: ISetConfiguration | undefined) => void;
31
+ resetConfiguration: (configuration?: ISetConfiguration) => void;
32
32
  sendEmail: (credentials: IEmailShareCredentials, templateData: Record<string, any>) => Promise<import("../http/server").IPostEmailResponse>;
33
33
  }
34
34
  export default Treble;
@@ -47,8 +47,8 @@ var Wishlist_1 = __importDefault(require("./Wishlist"));
47
47
  var Snapshots_1 = __importDefault(require("./Snapshots"));
48
48
  var Treble = /** @class */ (function () {
49
49
  function Treble(_a) {
50
- var _this = this;
51
50
  var player = _a.player, orgId = _a.orgId, initialConfiguration = _a.initialConfiguration;
51
+ var _this = this;
52
52
  this.saveConfiguration = function (config) { return __awaiter(_this, void 0, void 0, function () {
53
53
  var threekitDomain, _a, customerId, metadata, productVersion, attachments, player, response, params, url;
54
54
  var _b;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
package/dist/api/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -12,7 +12,11 @@ var __assign = (this && this.__assign) || function () {
12
12
  };
13
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
14
  if (k2 === undefined) k2 = k;
15
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
16
20
  }) : (function(o, m, k, k2) {
17
21
  if (k2 === undefined) k2 = k;
18
22
  o[k2] = m[k];
@@ -39,7 +43,7 @@ var prop_types_1 = __importDefault(require("prop-types"));
39
43
  var react_dom_1 = __importDefault(require("react-dom"));
40
44
  var drawer_styles_1 = require("./drawer.styles");
41
45
  var utils_1 = require("../../utils");
42
- var icons_1 = require("../../icons");
46
+ var Remove_1 = __importDefault(require("../../icons/Remove"));
43
47
  var TRANSITION_DURATION = 0.2;
44
48
  var Drawer = function (props) {
45
49
  var title = props.title, children = props.children, handleClose = props.handleClose, showHeader = props.showHeader, className = props.className;
@@ -63,7 +67,7 @@ var Drawer = function (props) {
63
67
  showHeader ? (react_1.default.createElement(drawer_styles_1.Header, { className: "".concat(cls, " drawer-header") },
64
68
  react_1.default.createElement("div", { className: "".concat(cls, " drawer-title") }, title),
65
69
  react_1.default.createElement("div", { onClick: handleClickClose },
66
- react_1.default.createElement(icons_1.RemoveIcon, null)))) : null,
70
+ react_1.default.createElement(Remove_1.default, null)))) : null,
67
71
  react_1.default.createElement(drawer_styles_1.Content, { className: "".concat(cls, " drawer-content") }, children))));
68
72
  };
69
73
  exports.Drawer = Drawer;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -28,7 +32,7 @@ var prop_types_1 = __importDefault(require("prop-types"));
28
32
  var FormComponentTitle_1 = __importDefault(require("../FormComponentTitle"));
29
33
  var FormComponentDescription_1 = __importDefault(require("../FormComponentDescription"));
30
34
  var dropdown_styles_1 = require("./dropdown.styles");
31
- var icons_1 = require("../../icons");
35
+ var CaretDown_1 = __importDefault(require("../../icons/CaretDown"));
32
36
  var utils_1 = require("../../utils");
33
37
  var constants_1 = require("../../constants");
34
38
  var formInputContainer_1 = __importDefault(require("../containers/formInputContainer"));
@@ -90,7 +94,7 @@ var Dropdown = function (props) {
90
94
  react_1.default.createElement(Description, { description: selectedOpt === null || selectedOpt === void 0 ? void 0 : selectedOpt.description, className: "".concat(cls, " selected") })),
91
95
  react_1.default.createElement(Price, { price: selectedOpt === null || selectedOpt === void 0 ? void 0 : selectedOpt.price, className: cls }),
92
96
  react_1.default.createElement(dropdown_styles_1.IconWrapper, null,
93
- react_1.default.createElement(icons_1.CaretDownIcon, null))),
97
+ react_1.default.createElement(CaretDown_1.default, null))),
94
98
  react_1.default.createElement(dropdown_styles_1.DropdownOptions, { hide: hide, dropdownMaxHeight: dropdownMaxHeight },
95
99
  react_1.default.createElement("div", null, options === null || options === void 0 ? void 0 : options.map(function (el, i) {
96
100
  var _a = Object.assign({}, el, {
@@ -12,7 +12,11 @@ var __assign = (this && this.__assign) || function () {
12
12
  };
13
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
14
  if (k2 === undefined) k2 = k;
15
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
16
20
  }) : (function(o, m, k, k2) {
17
21
  if (k2 === undefined) k2 = k;
18
22
  o[k2] = m[k];
@@ -20,14 +20,14 @@ var prop_types_1 = __importDefault(require("prop-types"));
20
20
  var react_dom_1 = __importDefault(require("react-dom"));
21
21
  var modal_styles_1 = require("./modal.styles");
22
22
  var utils_1 = require("../../utils");
23
- var icons_1 = require("../../icons");
23
+ var Remove_1 = __importDefault(require("../../icons/Remove"));
24
24
  var ModalComponent = function (props) {
25
25
  var title = props.title, children = props.children, handleClose = props.handleClose, showHeader = props.showHeader, className = props.className;
26
26
  return (react_1.default.createElement(modal_styles_1.Wrapper, { onClick: function (e) { return e.stopPropagation(); }, className: "".concat(className, " modal-main") },
27
27
  showHeader ? (react_1.default.createElement(modal_styles_1.Header, { className: "".concat(className, " modal-header") },
28
28
  react_1.default.createElement("div", { className: "".concat(className, " modal-title") }, title),
29
29
  react_1.default.createElement("div", { onClick: handleClose },
30
- react_1.default.createElement(icons_1.RemoveIcon, null)))) : null,
30
+ react_1.default.createElement(Remove_1.default, null)))) : null,
31
31
  react_1.default.createElement(modal_styles_1.Content, { className: "".concat(className, " modal-content") }, children)));
32
32
  };
33
33
  exports.ModalComponent = ModalComponent;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -7,7 +7,7 @@ exports.Share = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var prop_types_1 = __importDefault(require("prop-types"));
9
9
  var Button_1 = __importDefault(require("../Button"));
10
- var icons_1 = require("../../icons");
10
+ var Share_1 = __importDefault(require("../../icons/Share"));
11
11
  var useThreekitInitStatus_1 = __importDefault(require("../../hooks/useThreekitInitStatus"));
12
12
  var useShare_1 = __importDefault(require("../../hooks/useShare"));
13
13
  var utils_1 = require("../../utils");
@@ -21,7 +21,7 @@ var Share = function (props) {
21
21
  var handleClick = function () {
22
22
  handleShare(message);
23
23
  };
24
- return (react_1.default.createElement(Button_1.default, { className: cls, shape: shape, type: type, icon: icons_1.ShareIcon.iconName, onClick: handleClick }));
24
+ return (react_1.default.createElement(Button_1.default, { className: cls, shape: shape, type: type, icon: Share_1.default.iconName, onClick: handleClick }));
25
25
  };
26
26
  exports.Share = Share;
27
27
  exports.Share.propTypes = {
@@ -7,7 +7,7 @@ exports.Snapshots = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var prop_types_1 = __importDefault(require("prop-types"));
9
9
  var Button_1 = __importDefault(require("../Button"));
10
- var icons_1 = require("../../icons");
10
+ var Download_1 = __importDefault(require("../../icons/Download"));
11
11
  var useThreekitInitStatus_1 = __importDefault(require("../../hooks/useThreekitInitStatus"));
12
12
  var useSnapshot_1 = __importDefault(require("../../hooks/useSnapshot"));
13
13
  var utils_1 = require("../../utils");
@@ -19,7 +19,7 @@ var Snapshots = function (props) {
19
19
  if (!hasLoaded)
20
20
  return null;
21
21
  var cls = (0, utils_1.generateWidgetClassName)('snapshots', className);
22
- return (react_1.default.createElement(Button_1.default, { className: cls, shape: shape, type: type, icon: icons_1.DownloadIcon.iconName, onClick: takeSnapshot }));
22
+ return (react_1.default.createElement(Button_1.default, { className: cls, shape: shape, type: type, icon: Download_1.default.iconName, onClick: takeSnapshot }));
23
23
  };
24
24
  exports.Snapshots = Snapshots;
25
25
  exports.Snapshots.propTypes = {
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -65,13 +69,14 @@ var FormComponentTitle_1 = __importDefault(require("../FormComponentTitle"));
65
69
  var FormComponentDescription_1 = __importDefault(require("../FormComponentDescription"));
66
70
  var shared_styles_1 = require("../shared.styles");
67
71
  var utils_1 = require("../../utils");
68
- var icons_1 = require("../../icons");
72
+ var Spinner_1 = __importDefault(require("../../icons/Spinner"));
73
+ var Add_1 = __importDefault(require("../../icons/Add"));
74
+ var Delete_1 = __importDefault(require("../../icons/Delete"));
69
75
  var formInputContainer_1 = __importDefault(require("../containers/formInputContainer"));
70
76
  var upload_styles_1 = require("./upload.styles");
71
77
  var Upload = function (props) {
72
- var _a, _b;
73
78
  var title = props.title, description = props.description, value = props.value, onChange = props.onChange, customClassName = props.className;
74
- var _c = (0, react_1.useState)(false), isUploading = _c[0], setIsUploading = _c[1];
79
+ var _a = (0, react_1.useState)(false), isUploading = _a[0], setIsUploading = _a[1];
75
80
  var inputRef = (0, react_1.useRef)(null);
76
81
  var imgRef = (0, react_1.useRef)(null);
77
82
  var cls = (0, utils_1.generateInputClassName)('upload', customClassName, title);
@@ -110,7 +115,7 @@ var Upload = function (props) {
110
115
  return (react_1.default.createElement(shared_styles_1.FormComponentWrapper, null,
111
116
  react_1.default.createElement(FormComponentTitle_1.default, { title: title, className: cls }),
112
117
  react_1.default.createElement(FormComponentDescription_1.default, { description: description, className: cls }),
113
- react_1.default.createElement(upload_styles_1.UploadWrapper, { className: cls, uploaded: !!(!isUploading && ((_a = value) === null || _a === void 0 ? void 0 : _a.length)) },
118
+ react_1.default.createElement(upload_styles_1.UploadWrapper, { className: cls, uploaded: !!(!isUploading && (value === null || value === void 0 ? void 0 : value.length)) },
114
119
  react_1.default.createElement("input", { type: "file", ref: inputRef, onChange: function (e) { return __awaiter(void 0, void 0, void 0, function () {
115
120
  var _a;
116
121
  return __generator(this, function (_b) {
@@ -122,8 +127,8 @@ var Upload = function (props) {
122
127
  }); } }),
123
128
  react_1.default.createElement("button", { type: "button", onClick: handleClick }, isUploading ? (react_1.default.createElement(react_1.default.Fragment, null,
124
129
  react_1.default.createElement(upload_styles_1.IconWrapper, null,
125
- react_1.default.createElement(icons_1.SpinnerIcon, { size: "28px" })),
126
- react_1.default.createElement("div", null, "Uploading..."))) : ((_b = value) === null || _b === void 0 ? void 0 : _b.length) ? (react_1.default.createElement(upload_styles_1.ImageWrapper, null,
130
+ react_1.default.createElement(Spinner_1.default, { size: "28px" })),
131
+ react_1.default.createElement("div", null, "Uploading..."))) : (value === null || value === void 0 ? void 0 : value.length) ? (react_1.default.createElement(upload_styles_1.ImageWrapper, null,
127
132
  react_1.default.createElement("div", null,
128
133
  react_1.default.createElement("img", { ref: imgRef, src: "#" })),
129
134
  react_1.default.createElement(upload_styles_1.ImageActionArea, null,
@@ -131,9 +136,9 @@ var Upload = function (props) {
131
136
  handleUpload(undefined);
132
137
  e.stopPropagation();
133
138
  } },
134
- react_1.default.createElement(icons_1.DeleteIcon, null))))) : (react_1.default.createElement(react_1.default.Fragment, null,
139
+ react_1.default.createElement(Delete_1.default, null))))) : (react_1.default.createElement(react_1.default.Fragment, null,
135
140
  react_1.default.createElement(upload_styles_1.IconWrapper, null,
136
- react_1.default.createElement(icons_1.AddIcon, null)),
141
+ react_1.default.createElement(Add_1.default, null)),
137
142
  react_1.default.createElement("div", null, "Upload")))))));
138
143
  };
139
144
  exports.Upload = Upload;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -65,14 +69,14 @@ var FormComponentTitle_1 = __importDefault(require("../FormComponentTitle"));
65
69
  var FormComponentDescription_1 = __importDefault(require("../FormComponentDescription"));
66
70
  var shared_styles_1 = require("../shared.styles");
67
71
  var utils_1 = require("../../utils");
68
- var icons_1 = require("../../icons");
72
+ var Spinner_1 = __importDefault(require("../../icons/Spinner"));
73
+ var Image_1 = __importDefault(require("../../icons/Image"));
69
74
  var formInputContainer_1 = __importDefault(require("../containers/formInputContainer"));
70
75
  var uploadArea_styles_1 = require("./uploadArea.styles");
71
76
  var UploadArea = function (props) {
72
- var _a;
73
77
  var title = props.title, description = props.description, value = props.value, onChange = props.onChange, customClassName = props.className;
74
- var _b = (0, react_1.useState)(false), isUploading = _b[0], setIsUploading = _b[1];
75
- var _c = (0, react_1.useState)(undefined), filename = _c[0], setFilename = _c[1];
78
+ var _a = (0, react_1.useState)(false), isUploading = _a[0], setIsUploading = _a[1];
79
+ var _b = (0, react_1.useState)(undefined), filename = _b[0], setFilename = _b[1];
76
80
  var inputRef = (0, react_1.useRef)(null);
77
81
  var imgRef = (0, react_1.useRef)(null);
78
82
  var cls = (0, utils_1.generateInputClassName)('upload', customClassName, title);
@@ -120,15 +124,15 @@ var UploadArea = function (props) {
120
124
  }); } }),
121
125
  react_1.default.createElement("button", { type: "button", onClick: handleClick }, isUploading ? (react_1.default.createElement(uploadArea_styles_1.UploadingWrapper, null,
122
126
  react_1.default.createElement("div", null,
123
- react_1.default.createElement(icons_1.SpinnerIcon, { size: "28px" })),
124
- react_1.default.createElement("div", null, "Uploading..."))) : ((_a = value) === null || _a === void 0 ? void 0 : _a.length) ? (react_1.default.createElement(uploadArea_styles_1.UploadingWrapper, null,
127
+ react_1.default.createElement(Spinner_1.default, { size: "28px" })),
128
+ react_1.default.createElement("div", null, "Uploading..."))) : (value === null || value === void 0 ? void 0 : value.length) ? (react_1.default.createElement(uploadArea_styles_1.UploadingWrapper, null,
125
129
  react_1.default.createElement("div", null,
126
130
  react_1.default.createElement("img", { ref: imgRef, src: "#" })),
127
131
  react_1.default.createElement("div", null,
128
132
  react_1.default.createElement("div", null, filename),
129
133
  react_1.default.createElement("div", null, "Upload another file.")))) : (react_1.default.createElement("div", null,
130
134
  react_1.default.createElement("div", null,
131
- react_1.default.createElement(icons_1.ImageIcon, null)),
135
+ react_1.default.createElement(Image_1.default, null)),
132
136
  react_1.default.createElement("div", null, "Click to upload"),
133
137
  react_1.default.createElement("div", null, "Supported file types: PNG, JPEG, SVG")))))));
134
138
  };
@@ -30,6 +30,6 @@ export declare const Wishlist: {
30
30
  type: string;
31
31
  };
32
32
  componentName: string;
33
- Icon: import("../../icons").IIcon;
33
+ Icon: import("../..").IIcon;
34
34
  };
35
35
  export default Wishlist;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -61,7 +65,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
61
65
  exports.Wishlist = exports.WishlistButton = exports.AddWishlistButton = void 0;
62
66
  var react_1 = __importStar(require("react"));
63
67
  var prop_types_1 = __importDefault(require("prop-types"));
64
- var icons_1 = require("../../icons");
68
+ var Heart_1 = __importDefault(require("../../icons/Heart"));
69
+ var Wishlist_1 = __importDefault(require("../../icons/Wishlist"));
65
70
  var Button_1 = require("../Button");
66
71
  var Drawer_1 = __importDefault(require("../Drawer"));
67
72
  var shared_styles_1 = require("../shared.styles");
@@ -71,12 +76,12 @@ var wishlist_styles_1 = require("./wishlist.styles");
71
76
  var useWishlist_1 = __importDefault(require("../../hooks/useWishlist"));
72
77
  var AddWishlistButton = function (props) {
73
78
  var title = props.title, type = props.type, shape = props.shape, className = props.className, onClick = props.onClick;
74
- return (react_1.default.createElement(Button_1.Button, { title: title, icon: icons_1.HeartIcon.iconName, className: className, onClick: onClick, type: type, shape: shape }));
79
+ return (react_1.default.createElement(Button_1.Button, { title: title, icon: Heart_1.default.iconName, className: className, onClick: onClick, type: type, shape: shape }));
75
80
  };
76
81
  exports.AddWishlistButton = AddWishlistButton;
77
82
  var WishlistButton = function (props) {
78
83
  var title = props.title, type = props.type, shape = props.shape, className = props.className, onClick = props.onClick;
79
- return (react_1.default.createElement(Button_1.Button, { title: title, icon: icons_1.WishlistIcon.iconName, className: className, onClick: onClick, type: type, shape: shape }));
84
+ return (react_1.default.createElement(Button_1.Button, { title: title, icon: Wishlist_1.default.iconName, className: className, onClick: onClick, type: type, shape: shape }));
80
85
  };
81
86
  exports.WishlistButton = WishlistButton;
82
87
  var Wishlist = function (props) {
@@ -122,5 +127,5 @@ exports.Wishlist.defaultProps = {
122
127
  type: 'threekit',
123
128
  };
124
129
  exports.Wishlist.componentName = 'wishlist';
125
- exports.Wishlist.Icon = icons_1.WishlistIcon;
130
+ exports.Wishlist.Icon = Wishlist_1.default;
126
131
  exports.default = exports.Wishlist;
@@ -46,7 +46,7 @@ export declare const Zoom: {
46
46
  type: string;
47
47
  };
48
48
  componentName: string;
49
- Icon: import("../../icons").IIcon;
49
+ Icon: import("../..").IIcon;
50
50
  ZoomOut: (props: ZoomComponentProps) => JSX.Element | null;
51
51
  ZoomIn: (props: ZoomComponentProps) => JSX.Element | null;
52
52
  };
@@ -19,7 +19,8 @@ var react_1 = __importDefault(require("react"));
19
19
  var prop_types_1 = __importDefault(require("prop-types"));
20
20
  var shared_styles_1 = require("../shared.styles");
21
21
  var Button_1 = __importDefault(require("../Button"));
22
- var icons_1 = require("../../icons");
22
+ var ZoomIn_1 = __importDefault(require("../../icons/ZoomIn"));
23
+ var ZoomOut_1 = __importDefault(require("../../icons/ZoomOut"));
23
24
  var useThreekitInitStatus_1 = __importDefault(require("../../hooks/useThreekitInitStatus"));
24
25
  var useZoom_1 = __importDefault(require("../../hooks/useZoom"));
25
26
  var utils_1 = require("../../utils");
@@ -40,7 +41,7 @@ var ZoomOutComponent = function (props) {
40
41
  return null;
41
42
  var handleZoomOut = function () { return zoomOut(Math.abs(step)); };
42
43
  var cls = (0, utils_1.generateWidgetClassName)('zoom', className);
43
- return (react_1.default.createElement(Button_1.default, { className: "".concat(cls, " zoom-out"), shape: shape, type: type, icon: icons_1.ZoomOutIcon.iconName, onClick: handleZoomOut }));
44
+ return (react_1.default.createElement(Button_1.default, { className: "".concat(cls, " zoom-out"), shape: shape, type: type, icon: ZoomOut_1.default.iconName, onClick: handleZoomOut }));
44
45
  };
45
46
  exports.ZoomOutComponent = ZoomOutComponent;
46
47
  var ZoomInComponent = function (props) {
@@ -55,7 +56,7 @@ var ZoomInComponent = function (props) {
55
56
  return null;
56
57
  var handleZoomOut = function () { return zoomIn(Math.abs(step)); };
57
58
  var cls = (0, utils_1.generateWidgetClassName)('zoom', className);
58
- return (react_1.default.createElement(Button_1.default, { className: "".concat(cls, " zoom-in"), shape: shape, type: type, icon: icons_1.ZoomInIcon.iconName, onClick: handleZoomOut }));
59
+ return (react_1.default.createElement(Button_1.default, { className: "".concat(cls, " zoom-in"), shape: shape, type: type, icon: ZoomIn_1.default.iconName, onClick: handleZoomOut }));
59
60
  };
60
61
  exports.ZoomInComponent = ZoomInComponent;
61
62
  var Zoom = function (props) {
@@ -113,7 +114,7 @@ exports.Zoom.defaultProps = {
113
114
  type: 'threekit',
114
115
  };
115
116
  exports.Zoom.componentName = 'zoom';
116
- exports.Zoom.Icon = icons_1.ZoomInIcon;
117
+ exports.Zoom.Icon = ZoomIn_1.default;
117
118
  exports.Zoom.ZoomOut = exports.ZoomOutComponent;
118
119
  exports.Zoom.ZoomIn = exports.ZoomInComponent;
119
120
  exports.default = exports.Zoom;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,23 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
22
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
4
  };
@@ -27,7 +8,8 @@ var react_1 = __importDefault(require("react"));
27
8
  var react_dom_1 = __importDefault(require("react-dom"));
28
9
  var prop_types_1 = __importDefault(require("prop-types"));
29
10
  var message_styles_1 = require("./message.styles");
30
- var icons_1 = __importStar(require("../../icons"));
11
+ var icons_1 = __importDefault(require("../../icons"));
12
+ var Info_1 = __importDefault(require("../../icons/Info"));
31
13
  var styled_components_1 = require("styled-components");
32
14
  var theme_1 = __importDefault(require("../../theme"));
33
15
  var messagesEl;
@@ -57,7 +39,7 @@ var MessageComponent = function (props) {
57
39
  var content = props.content, icon = props.icon;
58
40
  if (!content)
59
41
  return null;
60
- var Icon = icon ? icons_1.default[icon] : icons_1.InfoIcon;
42
+ var Icon = icon ? icons_1.default[icon] : Info_1.default;
61
43
  return (react_1.default.createElement(styled_components_1.ThemeProvider, { theme: theme_1.default },
62
44
  react_1.default.createElement(message_styles_1.Wrapper, null,
63
45
  react_1.default.createElement(message_styles_1.IconWrapper, null,
@@ -105,7 +87,7 @@ exports.MessageComponent.propTypes = {
105
87
  };
106
88
  exports.MessageComponent.defaultProps = {
107
89
  content: undefined,
108
- icon: icons_1.InfoIcon.iconName,
90
+ icon: Info_1.default.iconName,
109
91
  className: undefined,
110
92
  };
111
93
  exports.default = { config: config, info: info };
@@ -6,5 +6,5 @@ declare type UseAttributeSuccess = [
6
6
  (val: RawAttributeValue) => Promise<void>
7
7
  ];
8
8
  declare type UseAttributeHook = UseAttributeError | UseAttributeSuccess;
9
- declare const useAttribute: (attributeName?: string | undefined) => UseAttributeHook;
9
+ declare const useAttribute: (attributeName?: string) => UseAttributeHook;
10
10
  export default useAttribute;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -5,7 +5,11 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
5
5
  };
6
6
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
7
  if (k2 === undefined) k2 = k;
8
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
9
13
  }) : (function(o, m, k, k2) {
10
14
  if (k2 === undefined) k2 = k;
11
15
  o[k2] = m[k];
package/dist/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -29,7 +29,7 @@ declare const store: import("@reduxjs/toolkit").EnhancedStore<{
29
29
  wishlist: import("../Treble").WishlistArray;
30
30
  price: import("./price").PriceState;
31
31
  }, import("redux").Dispatch<import("redux").AnyAction>>>>;
32
- export declare const createStore: (reducer?: Record<string, Reducer<any, import("redux").AnyAction>> | undefined) => import("@reduxjs/toolkit").EnhancedStore<{
32
+ export declare const createStore: (reducer?: Record<string, Reducer>) => import("@reduxjs/toolkit").EnhancedStore<{
33
33
  treble: import("./treble").TrebleState;
34
34
  product: import("./product").ProductState;
35
35
  attributes: import("./attributes").AttributesState;
@@ -58,13 +58,13 @@ export declare const getProductCache: (state: RootState) => Array<Pick<CachedPro
58
58
  /*****************************************************
59
59
  * Complex Actions
60
60
  ****************************************************/
61
- export declare const initProduct: (prods?: IHydratedProducts | undefined) => (dispatch: ThreekitDispatch, getState: () => RootState) => void;
62
- export declare const cacheActiveProduct: (config?: Pick<IReloadConfig, "label" | "thumbnail"> | undefined) => (dispatch: ThreekitDispatch, getState: () => RootState) => {
61
+ export declare const initProduct: (prods?: IHydratedProducts) => (dispatch: ThreekitDispatch, getState: () => RootState) => void;
62
+ export declare const cacheActiveProduct: (config?: Pick<IReloadConfig, 'label' | 'thumbnail'>) => (dispatch: ThreekitDispatch, getState: () => RootState) => {
63
63
  payload: CachedProductState;
64
64
  type: string;
65
65
  };
66
- export declare const loadProduct: (id: string, config?: LoadProductConfig | undefined) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
66
+ export declare const loadProduct: (id: string, config?: LoadProductConfig) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
67
67
  export declare const loadNewProduct: (config: undefined | string | IReloadConfig) => (dispatch: ThreekitDispatch) => Promise<void>;
68
68
  export declare const changeActiveCacheIdx: (idx: number) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
69
- export declare const removeProductIdx: (idx?: number | undefined) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
69
+ export declare const removeProductIdx: (idx?: number) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
70
70
  export default reducer;
@@ -14,7 +14,7 @@ export declare let TRANSLATIONS: undefined | ITranslationMap;
14
14
  * Actions
15
15
  ****************************************************/
16
16
  export declare const setLanguage: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>;
17
- export declare const initTranslations: (language?: string | undefined) => (dispatch: ThreekitDispatch) => Promise<void>;
17
+ export declare const initTranslations: (language?: string) => (dispatch: ThreekitDispatch) => Promise<void>;
18
18
  declare const reducer: import("redux").Reducer<TranslationsState, import("redux").AnyAction>;
19
19
  /*****************************************************
20
20
  * Standard Selectors
@@ -73,7 +73,7 @@ export declare const getLoadingProgress: (state: RootState) => number;
73
73
  * Complex Actions
74
74
  ****************************************************/
75
75
  export declare const initPlayer: (config: IPlayerInit) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
76
- export declare const launch: (launchConfig?: Partial<ILaunchConfig> | undefined) => (dispatch: ThreekitDispatch) => Promise<void>;
76
+ export declare const launch: (launchConfig?: Partial<ILaunchConfig>) => (dispatch: ThreekitDispatch) => Promise<void>;
77
77
  export declare const unloadPlayer: () => (dispatch: ThreekitDispatch) => Promise<void>;
78
78
  export declare const reloadPlayer: (config: undefined | string | Pick<IReloadConfig, 'assetId' | 'stageId' | 'configurationId' | 'configuration'>) => (dispatch: ThreekitDispatch, getState: () => RootState) => Promise<void>;
79
79
  export default reducer;
package/dist/types.d.ts CHANGED
@@ -161,6 +161,56 @@ export interface ISnapshotConfig {
161
161
  };
162
162
  }
163
163
  export declare type SNAPSHOT_FORMAT_TYPES = 'jpg' | 'png';
164
+ /***************************************************
165
+ * Tools
166
+ **************************************************/
167
+ export interface Node {
168
+ name: string;
169
+ nodeId: string;
170
+ type: string;
171
+ }
172
+ export interface HitNode {
173
+ distance: number;
174
+ intersection: ICoordinates;
175
+ nodeId: string;
176
+ hierarchy: Array<Node>;
177
+ }
178
+ export interface PlayerToolEvent {
179
+ altKey: boolean;
180
+ clientX: number;
181
+ clientY: number;
182
+ deltaX: number;
183
+ deltaY: number;
184
+ ctrlKey: boolean;
185
+ isTouch: boolean;
186
+ metaKey: boolean;
187
+ shiftKey: boolean;
188
+ which: number;
189
+ originalEvent: MouseEvent;
190
+ rect: DOMRect;
191
+ hitNodes: Array<HitNode>;
192
+ }
193
+ export interface CustomPlayerTool {
194
+ key: string;
195
+ label: string;
196
+ active: boolean;
197
+ enabled: boolean;
198
+ handlers: {
199
+ click?: (event: PlayerToolEvent) => void | Promise<void>;
200
+ mousedown?: (event: PlayerToolEvent) => void | Promise<void>;
201
+ mouseup?: (event: PlayerToolEvent) => void | Promise<void>;
202
+ };
203
+ }
204
+ export interface IThreekitTools {
205
+ addTool: (tool: string | CustomPlayerTool) => void;
206
+ addTools: (tools: Array<string | CustomPlayerTool>) => void;
207
+ removeTool: (tool: string) => void;
208
+ removeTools: (tools: Array<string>) => void;
209
+ setPrimary: (tool: string) => void;
210
+ getPrimaryTool: () => string;
211
+ setTool: () => void;
212
+ setTools: () => void;
213
+ }
164
214
  /***************************************************
165
215
  * Threekit Api
166
216
  **************************************************/
@@ -189,16 +239,6 @@ export interface IThreekitScene {
189
239
  find: (query: ISceneQuery | string) => ISceneResult;
190
240
  set: (query: ISceneQuery | string, transform: ICoordinates) => void;
191
241
  }
192
- export interface IThreekitTools {
193
- addTool: (tool: string) => void;
194
- addTools: (tools: string[]) => void;
195
- removeTool: (tool: string) => void;
196
- removeTools: (tools: string[]) => void;
197
- setPrimary: (tool: string) => void;
198
- getPrimaryTool: () => string;
199
- setTool: () => void;
200
- setTools: () => void;
201
- }
202
242
  export interface IThreekitCamera {
203
243
  frameBoundingSphere: () => void;
204
244
  getPosition: () => ICoordinates;
package/dist/utils.d.ts CHANGED
@@ -15,13 +15,13 @@ interface IAttributeComponentProps {
15
15
  interface IAttributesComponentProps {
16
16
  [attributeName: string]: undefined | false | IAttributeComponentProps;
17
17
  }
18
- export declare const generateClassName: (baseClass: string) => (component: string, customClassName?: string | undefined, title?: string | undefined) => string;
19
- export declare const generateInputClassName: (component: string, customClassName?: string | undefined, title?: string | undefined) => string;
20
- export declare const generateWidgetClassName: (component: string, customClassName?: string | undefined, title?: string | undefined) => string;
21
- export declare const generateLayoutClassName: (component: string, customClassName?: string | undefined, title?: string | undefined) => string;
22
- export declare const generateToolClassName: (component: string, customClassName?: string | undefined, title?: string | undefined) => string;
23
- export declare const generateDisplayClassName: (component: string, customClassName?: string | undefined, title?: string | undefined) => string;
24
- export declare const generateFormClassName: (component: string, customClassName?: string | undefined, title?: string | undefined) => string;
18
+ export declare const generateClassName: (baseClass: string) => (component: string, customClassName?: string, title?: string) => string;
19
+ export declare const generateInputClassName: (component: string, customClassName?: string, title?: string) => string;
20
+ export declare const generateWidgetClassName: (component: string, customClassName?: string, title?: string) => string;
21
+ export declare const generateLayoutClassName: (component: string, customClassName?: string, title?: string) => string;
22
+ export declare const generateToolClassName: (component: string, customClassName?: string, title?: string) => string;
23
+ export declare const generateDisplayClassName: (component: string, customClassName?: string, title?: string) => string;
24
+ export declare const generateFormClassName: (component: string, customClassName?: string, title?: string) => string;
25
25
  export declare const isIOS: () => RegExpMatchArray | null;
26
26
  export declare const isJsonString: (str: string) => boolean;
27
27
  export declare const objectToQueryStr: (obj: Record<string, any>) => string;
@@ -57,7 +57,7 @@ export declare const selectionToConfiguration: (value: RawAttributeValue, attrib
57
57
  assetId: RawAttributeValue;
58
58
  } | undefined;
59
59
  export declare const filterFormAttributes: (attributes: Record<string, IThreekitDisplayAttribute>, attributeComponentProps: IAttributesComponentProps, includeReservedAttributes: boolean) => IThreekitDisplayAttribute[];
60
- export declare const isUuid: (str?: string | undefined) => boolean;
60
+ export declare const isUuid: (str?: string) => boolean;
61
61
  export declare const runDebugger: () => Promise<void>;
62
62
  export declare const loadTrebleConfig: () => Partial<ITrebleConfig>;
63
63
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@threekit-tools/treble",
3
- "version": "0.0.81",
3
+ "version": "0.0.82",
4
4
  "author": "Amaan Saeed",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -1,14 +0,0 @@
1
- /// <reference types="react" />
2
- interface UseImageEditorConfig {
3
- canvasHeight?: number;
4
- canvasWidth?: number;
5
- cornerCircleSize?: number;
6
- cropRatio?: number;
7
- }
8
- declare function useImageEditor(image: string, config: UseImageEditorConfig): null[] | (import("react").MutableRefObject<HTMLCanvasElement | null> | {
9
- handleCrop: () => void;
10
- } | {
11
- handleInvert: () => void;
12
- handleGrayscale: () => void;
13
- })[];
14
- export default useImageEditor;
@@ -1,320 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var react_1 = require("react");
4
- var CANVAS_HEIGHT = 600;
5
- var CANVAS_WIDTH = 900;
6
- var INVERT_COLOR = false;
7
- var APPLY_GRAYSCALE = false;
8
- var CORNER_BOX_SIZE = 4;
9
- var CROP_RATIO = 'custom';
10
- function useImageEditor(image, config) {
11
- var _a = Object.assign({}, {
12
- canvasHeight: CANVAS_HEIGHT,
13
- canvasWidth: CANVAS_WIDTH,
14
- cornerCircleSize: CORNER_BOX_SIZE,
15
- cropRatio: CROP_RATIO,
16
- }, config), canvasHeight = _a.canvasHeight, canvasWidth = _a.canvasWidth, cornerCircleSize = _a.cornerCircleSize;
17
- var _b = (0, react_1.useState)(INVERT_COLOR), invertColor = _b[0], setInvertColor = _b[1];
18
- var _c = (0, react_1.useState)(APPLY_GRAYSCALE), applyGrayscale = _c[0], setApplyGrayscale = _c[1];
19
- var imageRef = (0, react_1.useRef)(null);
20
- var canvasRef = (0, react_1.useRef)(null);
21
- var cropStartRef = (0, react_1.useRef)(null);
22
- var cropBoxRef = (0, react_1.useRef)(null);
23
- var moveCropBoxOffsetRef = (0, react_1.useRef)(null);
24
- var resizeCropBoxOffsetRef = (0, react_1.useRef)(null);
25
- (0, react_1.useEffect)(function () {
26
- if (!image || !canvasRef.current)
27
- return;
28
- var ctx = canvasRef.current.getContext('2d');
29
- if (!ctx)
30
- return;
31
- canvasRef.current.height = canvasHeight;
32
- canvasRef.current.width = canvasWidth;
33
- var background = new Image();
34
- background.src = image;
35
- background.onload = function () {
36
- imageRef.current = background;
37
- drawImage(ctx, background);
38
- };
39
- }, [image, canvasHeight, canvasWidth]);
40
- (0, react_1.useEffect)(function () {
41
- if (!image)
42
- return function () { };
43
- if (canvasRef && canvasRef.current) {
44
- canvasRef.current.addEventListener('mousedown', handleMouseDown);
45
- canvasRef.current.addEventListener('mousemove', handleMouseMove);
46
- canvasRef.current.addEventListener('mouseup', handleMouseUp);
47
- return function () {
48
- var _a, _b, _c;
49
- (_a = canvasRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('mousedown', handleMouseDown);
50
- (_b = canvasRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('mousemove', handleMouseMove);
51
- (_c = canvasRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('mouseup', handleMouseUp);
52
- };
53
- }
54
- return function () { };
55
- function handleMouseDown(e) {
56
- if (cropBoxRef === null || cropBoxRef === void 0 ? void 0 : cropBoxRef.current) {
57
- if (e.offsetX >= cropBoxRef.current.startX &&
58
- e.offsetX <= cropBoxRef.current.startX + cropBoxRef.current.deltaX &&
59
- e.offsetY >= cropBoxRef.current.startY &&
60
- e.offsetY <= cropBoxRef.current.startY + cropBoxRef.current.deltaY) {
61
- moveCropBoxOffsetRef.current = { x: e.offsetX, y: e.offsetY };
62
- return;
63
- }
64
- if (e.offsetX >=
65
- cropBoxRef.current.startX +
66
- cropBoxRef.current.deltaX -
67
- cornerCircleSize / 2 &&
68
- e.offsetX <=
69
- cropBoxRef.current.startX +
70
- cropBoxRef.current.deltaX +
71
- cornerCircleSize / 2 &&
72
- e.offsetY >=
73
- cropBoxRef.current.startY +
74
- cropBoxRef.current.deltaY -
75
- cornerCircleSize / 2 &&
76
- e.offsetY <=
77
- cropBoxRef.current.startY +
78
- cropBoxRef.current.deltaY +
79
- cornerCircleSize / 2) {
80
- resizeCropBoxOffsetRef.current = { x: e.offsetX, y: e.offsetY };
81
- return;
82
- }
83
- }
84
- cropStartRef.current = { x: e.offsetX, y: e.offsetY };
85
- cropBoxRef.current = null;
86
- }
87
- function handleMouseMove(e) {
88
- var _a, _b, _c, _d;
89
- var ctx = (_a = canvasRef.current) === null || _a === void 0 ? void 0 : _a.getContext('2d');
90
- if (!ctx || !cropBoxRef.current)
91
- return;
92
- if ((_b = moveCropBoxOffsetRef.current) === null || _b === void 0 ? void 0 : _b.x) {
93
- var deltaX = e.offsetX - moveCropBoxOffsetRef.current.x;
94
- var deltaY = e.offsetY - moveCropBoxOffsetRef.current.y;
95
- var rect_1 = Object.assign({}, cropBoxRef.current, {
96
- startX: cropBoxRef.current.startX + deltaX,
97
- startY: cropBoxRef.current.startY + deltaY,
98
- });
99
- draw(ctx, rect_1, { invertColor: invertColor, applyGrayscale: applyGrayscale });
100
- return;
101
- }
102
- if ((_c = resizeCropBoxOffsetRef === null || resizeCropBoxOffsetRef === void 0 ? void 0 : resizeCropBoxOffsetRef.current) === null || _c === void 0 ? void 0 : _c.x) {
103
- var deltaX = e.offsetX - resizeCropBoxOffsetRef.current.x;
104
- var deltaY = e.offsetY - resizeCropBoxOffsetRef.current.y;
105
- var rect_2 = Object.assign({}, cropBoxRef.current, {
106
- deltaX: cropBoxRef.current.deltaX + deltaX,
107
- deltaY: cropBoxRef.current.deltaY + deltaY,
108
- });
109
- draw(ctx, rect_2, { invertColor: invertColor, applyGrayscale: applyGrayscale });
110
- return;
111
- }
112
- if (!((_d = cropStartRef === null || cropStartRef === void 0 ? void 0 : cropStartRef.current) === null || _d === void 0 ? void 0 : _d.x))
113
- return;
114
- var rect = {
115
- startX: cropStartRef.current.x,
116
- startY: cropStartRef.current.y,
117
- deltaX: e.offsetX - cropStartRef.current.x,
118
- deltaY: e.offsetY - cropStartRef.current.y,
119
- };
120
- draw(ctx, rect, { invertColor: invertColor, applyGrayscale: applyGrayscale });
121
- }
122
- function handleMouseUp(e) {
123
- var _a, _b;
124
- var ctx = (_a = canvasRef.current) === null || _a === void 0 ? void 0 : _a.getContext('2d');
125
- if (!ctx || !cropBoxRef.current || !cropStartRef.current)
126
- return;
127
- if (moveCropBoxOffsetRef.current) {
128
- var deltaX_1 = moveCropBoxOffsetRef.current.x - e.offsetX;
129
- var deltaY_1 = moveCropBoxOffsetRef.current.y - e.offsetY;
130
- var rect_3 = Object.assign(cropBoxRef.current, {
131
- startX: cropBoxRef.current.startX - deltaX_1,
132
- startY: cropBoxRef.current.startY - deltaY_1,
133
- });
134
- draw(ctx, rect_3, { drawCornerBoxes: true, invertColor: invertColor, applyGrayscale: applyGrayscale });
135
- cropBoxRef.current = rect_3;
136
- moveCropBoxOffsetRef.current = null;
137
- return;
138
- }
139
- if ((_b = resizeCropBoxOffsetRef === null || resizeCropBoxOffsetRef === void 0 ? void 0 : resizeCropBoxOffsetRef.current) === null || _b === void 0 ? void 0 : _b.x) {
140
- var deltaX_2 = e.offsetX - resizeCropBoxOffsetRef.current.x;
141
- var deltaY_2 = e.offsetY - resizeCropBoxOffsetRef.current.y;
142
- var rect_4 = Object.assign({}, cropBoxRef.current, {
143
- deltaX: cropBoxRef.current.deltaX + deltaX_2,
144
- deltaY: cropBoxRef.current.deltaY + deltaY_2,
145
- });
146
- draw(ctx, rect_4, { drawCornerBoxes: true, invertColor: invertColor, applyGrayscale: applyGrayscale });
147
- cropBoxRef.current = rect_4;
148
- resizeCropBoxOffsetRef.current = null;
149
- return;
150
- }
151
- var deltaX = e.offsetX - cropStartRef.current.x;
152
- var deltaY = e.offsetY - cropStartRef.current.y;
153
- var rect = {
154
- startX: deltaX > 0 ? cropStartRef.current.x : cropStartRef.current.x + deltaX,
155
- startY: deltaY > 0 ? cropStartRef.current.y : cropStartRef.current.y + deltaY,
156
- deltaX: Math.abs(deltaX),
157
- deltaY: Math.abs(deltaY),
158
- };
159
- cropBoxRef.current = rect;
160
- draw(ctx, rect, { drawCornerBoxes: true });
161
- cropStartRef.current = null;
162
- }
163
- }, [image, canvasHeight, canvasWidth]);
164
- // useEffect(() => {
165
- // if (!image) return;
166
- // if (canvasRef && canvasRef.current) {
167
- // canvasRef.current.addEventListener("mousemove", handleMouseMove);
168
- // return () => {
169
- // canvasRef.current.removeEventListener("mousemove", handleMouseMove);
170
- // };
171
- // }
172
- // function handleMouseMove(e) {
173
- // if (cropBoxRef?.current) {
174
- // if (
175
- // e.offsetX >= cropBoxRef.current.startX &&
176
- // e.offsetX <= cropBoxRef.current.startX + cropBoxRef.current.deltaX &&
177
- // e.offsetY >= cropBoxRef.current.startY &&
178
- // e.offsetY <= cropBoxRef.current.startY + cropBoxRef.current.deltaY
179
- // ) {
180
- // canvasRef.current.style.cursor = "move";
181
- // return;
182
- // }
183
- // if (
184
- // e.offsetX >=
185
- // cropBoxRef.current.startX +
186
- // cropBoxRef.current.deltaX -
187
- // cornerCircleSize / 2 &&
188
- // e.offsetX <=
189
- // cropBoxRef.current.startX +
190
- // cropBoxRef.current.deltaX +
191
- // cornerCircleSize / 2 &&
192
- // e.offsetY >=
193
- // cropBoxRef.current.startY +
194
- // cropBoxRef.current.deltaY -
195
- // cornerCircleSize / 2 &&
196
- // e.offsetY <=
197
- // cropBoxRef.current.startY +
198
- // cropBoxRef.current.deltaY +
199
- // cornerCircleSize / 2
200
- // ) {
201
- // canvasRef.current.style.cursor = "pointer";
202
- // return;
203
- // }
204
- // }
205
- // canvasRef.current.style.cursor = "default";
206
- // }
207
- // }, [image, canvasHeight, canvasWidth]);
208
- function drawImage(ctx, image, config) {
209
- var _a = config || {}, invertColor = _a.invertColor, applyGrayscale = _a.applyGrayscale;
210
- if (invertColor)
211
- ctx.filter = 'invert(1)';
212
- else if (applyGrayscale)
213
- ctx.filter = 'grayscale(1)';
214
- else
215
- ctx.filter = 'invert(0)';
216
- // else ctx.filter = "grayscale(0)";
217
- var wRatio = ctx.canvas.width / image.width;
218
- var hRatio = ctx.canvas.height / image.height;
219
- var ratio = Math.min(wRatio, hRatio);
220
- var centerOffsetX = (ctx.canvas.width - image.width * ratio) / 2;
221
- var centerOffsetY = (ctx.canvas.height - image.height * ratio) / 2;
222
- ctx.drawImage(image, 0, 0, image.width, image.height, centerOffsetX, centerOffsetY, image.width * ratio, image.height * ratio);
223
- }
224
- function draw(ctx, rect, config) {
225
- var _a = config || {}, drawCornerBoxes = _a.drawCornerBoxes, invertColor = _a.invertColor;
226
- // clear the canvas
227
- ctx.clearRect(0, 0, canvasWidth, canvasHeight);
228
- // redraw the image
229
- if (!imageRef.current)
230
- return;
231
- drawImage(ctx, imageRef.current, { invertColor: invertColor });
232
- if (!rect)
233
- return;
234
- // redraw one or more things based on their javascript objects
235
- ctx.beginPath();
236
- ctx.setLineDash([]);
237
- ctx.rect(rect.startX, rect.startY, rect.deltaX, rect.deltaY);
238
- ctx.rect(canvasWidth, 0, 0 - canvasWidth, canvasHeight);
239
- ctx.closePath();
240
- ctx.strokeStyle = '#fff';
241
- ctx.stroke();
242
- ctx.fillStyle = '#00000055';
243
- ctx.fill();
244
- if (!drawCornerBoxes)
245
- return;
246
- ctx.beginPath();
247
- ctx.arc(rect.startX, rect.startY, cornerCircleSize, 0, 2 * Math.PI);
248
- ctx.fillStyle = '#fff';
249
- ctx.fill();
250
- ctx.closePath();
251
- ctx.beginPath();
252
- ctx.arc(rect.startX, rect.startY + rect.deltaY, cornerCircleSize, 0, 2 * Math.PI);
253
- ctx.fillStyle = '#fff';
254
- ctx.fill();
255
- ctx.closePath();
256
- ctx.beginPath();
257
- ctx.arc(rect.startX + rect.deltaX, rect.startY, cornerCircleSize, 0, 2 * Math.PI);
258
- ctx.fillStyle = '#fff';
259
- ctx.fill();
260
- ctx.closePath();
261
- ctx.beginPath();
262
- ctx.arc(rect.startX + rect.deltaX, rect.startY + rect.deltaY, cornerCircleSize, 0, 2 * Math.PI);
263
- ctx.fillStyle = '#fff';
264
- ctx.fill();
265
- ctx.closePath();
266
- }
267
- function handleCrop() {
268
- var _a, _b;
269
- if (!cropBoxRef.current)
270
- return;
271
- var ctx = (_a = canvasRef.current) === null || _a === void 0 ? void 0 : _a.getContext('2d');
272
- if (!ctx || !imageRef.current)
273
- return;
274
- var rect = cropBoxRef.current;
275
- ctx.clearRect(0, 0, canvasWidth, canvasHeight);
276
- drawImage(ctx, imageRef.current, { invertColor: invertColor, applyGrayscale: applyGrayscale });
277
- var imageData = ctx.getImageData(rect.startX, rect.startY, rect.deltaX, rect.deltaY);
278
- var clone = (_b = canvasRef.current) === null || _b === void 0 ? void 0 : _b.cloneNode();
279
- if (!clone)
280
- return;
281
- clone.width = rect.deltaX;
282
- clone.height = rect.deltaY;
283
- var cloneCtx = clone.getContext('2d');
284
- if (!cloneCtx)
285
- return;
286
- cloneCtx.putImageData(imageData, 0, 0);
287
- var url = clone.toDataURL();
288
- console.log(url);
289
- cropBoxRef.current = null;
290
- }
291
- function handleInvert() {
292
- var _a;
293
- if (!cropBoxRef.current)
294
- return;
295
- var updated = !invertColor;
296
- setInvertColor(updated);
297
- var ctx = (_a = canvasRef.current) === null || _a === void 0 ? void 0 : _a.getContext('2d');
298
- if (!ctx)
299
- return;
300
- draw(ctx, cropBoxRef.current, {
301
- invertColor: updated,
302
- drawCornerBoxes: true,
303
- applyGrayscale: applyGrayscale,
304
- });
305
- }
306
- function handleGrayscale() {
307
- setApplyGrayscale(!applyGrayscale);
308
- }
309
- if (!image)
310
- return [null, null];
311
- var crop = {
312
- handleCrop: handleCrop,
313
- };
314
- var color = {
315
- handleInvert: handleInvert,
316
- handleGrayscale: handleGrayscale,
317
- };
318
- return [canvasRef, crop, color];
319
- }
320
- exports.default = useImageEditor;