redhotmagma-visualization 1.51.0 → 1.51.2

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 (56) hide show
  1. package/AlignTargetProvider.js +21 -30
  2. package/CommonUtils/Deferred.js +11 -19
  3. package/CommonUtils/Observable.js +23 -30
  4. package/CommonUtils/PropertyObserver.js +4 -10
  5. package/CommonUtils/SyncCurrentFunction.js +25 -31
  6. package/CommonUtils/SyncObservableEvent.js +4 -10
  7. package/CommonUtils/pointerEvent.js +9 -15
  8. package/Constants.js +2 -8
  9. package/DevApp.js +224 -236
  10. package/ExposedModules.js +4 -19
  11. package/FallbackVisualization.js +5 -12
  12. package/PrintingEffects/ColorEmbossingEffect.js +13 -19
  13. package/PrintingEffects/DomingEffect.js +13 -19
  14. package/PrintingEffects/EmbossingEffect.js +14 -20
  15. package/PrintingEffects/EmbroideryEffect.js +113 -128
  16. package/PrintingEffects/EngravingEffect.js +14 -20
  17. package/PrintingEffects/PrintingEffects.js +40 -48
  18. package/PrintingEffects/PrintingEffectsUtils.js +4 -13
  19. package/React/ReactBase.js +29 -37
  20. package/Three/Exporters/glTFExporter.js +3 -10
  21. package/Three/Three2D.js +441 -470
  22. package/Three/Three2DLayers.js +136 -148
  23. package/Three/Three3D.js +285 -302
  24. package/Three/Three3DScene.js +326 -341
  25. package/Three/ThreeBase.js +92 -104
  26. package/Utils/DesignArea/getDesignAreaCanvasSize.js +3 -10
  27. package/Utils/TextureBuilder/createTextureBuilder.js +57 -69
  28. package/Utils/TextureBuilder/textureBuilderFunctions.js +4 -10
  29. package/Utils/canvasBlur.js +2 -8
  30. package/Utils/createAlphaMapFromAlphaChannel.js +8 -13
  31. package/Utils/createBakedShadow.js +18 -25
  32. package/Utils/createCache.js +1 -7
  33. package/Utils/createCanvas.js +1 -7
  34. package/Utils/createImageRepository.js +38 -53
  35. package/Utils/disposeMaterial.js +7 -12
  36. package/Utils/getImageSize.js +1 -7
  37. package/Utils/imagePreloader.js +22 -29
  38. package/Utils/initTextureCanvas.js +10 -17
  39. package/Utils/isMobileDevice.js +1 -7
  40. package/Utils/optimizeTextureImage.js +8 -13
  41. package/Utils/rememberCameraViewOffset.js +1 -7
  42. package/Utils/removeObject.js +3 -9
  43. package/Utils/restrictCameraMovement.js +5 -12
  44. package/Utils/setLightShadow.js +3 -9
  45. package/Utils/setOrthographicCameraSize.js +1 -7
  46. package/Utils/updateFitSizeToElement.js +5 -11
  47. package/VisualizationContainer.js +46 -55
  48. package/VisualizationInterface.js +42 -50
  49. package/VisualizationProvider.js +8 -15
  50. package/index.js +4 -7
  51. package/package.json +2 -2
  52. package/src/Three/Exporters/glTFExporter.js +1 -1
  53. package/src/Three/Three3D.js +4 -4
  54. package/src/Three/Three3DScene.js +13 -3
  55. package/src/Utils/restrictCameraMovement.js +1 -1
  56. package/visualizationAdapterCreator.js +18 -27
package/Three/Three2D.js CHANGED
@@ -1,61 +1,57 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.allowZooming = exports.Three2D = void 0;
7
- var _three = require("three");
8
- var _tween = _interopRequireDefault(require("@tweenjs/tween.js"));
9
- var _get2 = _interopRequireDefault(require("lodash/get"));
10
- var _first = _interopRequireDefault(require("lodash/first"));
11
- var _find = _interopRequireDefault(require("lodash/find"));
12
- var _size = _interopRequireDefault(require("lodash/size"));
13
- var _debounce = _interopRequireDefault(require("lodash/debounce"));
14
- var _ThreeBase2 = require("./ThreeBase");
15
- var _createCanvas = require("../Utils/createCanvas");
16
- var _Deferred = require("../CommonUtils/Deferred");
17
- var _PropertyObserver = require("../CommonUtils/PropertyObserver");
18
- var _SyncCurrentFunction = require("../CommonUtils/SyncCurrentFunction");
19
- var _pointerEvent = require("../CommonUtils/pointerEvent");
20
- var _Constants = require("../Constants");
21
- var _createTextureBuilder = require("../Utils/TextureBuilder/createTextureBuilder");
22
- var _getDesignAreaCanvasSize = require("../Utils/DesignArea/getDesignAreaCanvasSize");
23
- var _disposeMaterial = require("../Utils/disposeMaterial");
24
- var _createImageRepository = require("../Utils/createImageRepository");
25
- var _createCache = require("../Utils/createCache");
26
- var _getImageSize = require("../Utils/getImageSize");
27
- var _removeObject = require("../Utils/removeObject");
28
- var _setOrthographicCameraSize = require("../Utils/setOrthographicCameraSize");
29
- var _optimizeTextureImage = require("../Utils/optimizeTextureImage");
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
31
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
32
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
33
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _regeneratorValues(e) { if (null != e) { var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(_typeof(e) + " is not iterable"); }
3
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
4
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
34
5
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
35
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
36
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
7
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
37
8
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
38
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
39
10
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
40
11
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
41
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
42
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
43
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
44
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
45
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
46
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
47
- function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
48
- function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
49
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
50
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
51
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
52
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
53
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
54
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
55
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
56
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
57
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
58
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
12
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
13
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
14
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
15
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
16
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
17
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
18
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
19
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
20
+ function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
21
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
22
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
23
+ function _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
24
+ function _get() { return _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = _superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, _get.apply(null, arguments); }
25
+ function _superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t));); return t; }
26
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
27
+ function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
28
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
29
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
30
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
31
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
32
+ import { BackSide, Box3, CylinderGeometry, Group, ImageLoader, Mesh, MeshBasicMaterial, NearestFilter, LinearFilter, OrthographicCamera, PlaneGeometry, Texture, Vector2, Vector3, WebGLRenderer, BufferGeometry, Float32BufferAttribute, DoubleSide, LinearSRGBColorSpace } from "three";
33
+ import TWEEN from "@tweenjs/tween.js";
34
+ import get from "lodash/get";
35
+ import first from "lodash/first";
36
+ import find from "lodash/find";
37
+ import size from "lodash/size";
38
+ import debounce from "lodash/debounce";
39
+ import { ThreeBase } from "./ThreeBase";
40
+ import { createWorkingCanvas } from "../Utils/createCanvas";
41
+ import { DeferredGroup } from "../CommonUtils/Deferred";
42
+ import { observeProperty } from "../CommonUtils/PropertyObserver";
43
+ import { syncCurrent } from "../CommonUtils/SyncCurrentFunction";
44
+ import { createMouseWheelEventListener, createPointerMoveEventListener } from "../CommonUtils/pointerEvent";
45
+ import { EventTypes, Numeric } from "../Constants";
46
+ import { createTextureBuilder, optimizeSizeToTexture } from "../Utils/TextureBuilder/createTextureBuilder";
47
+ import { getDesignAreaCanvasSize } from "../Utils/DesignArea/getDesignAreaCanvasSize";
48
+ import { disposeMaterial } from "../Utils/disposeMaterial";
49
+ import { createImageRepository } from "../Utils/createImageRepository";
50
+ import { createCache } from "../Utils/createCache";
51
+ import { getImageSize } from "../Utils/getImageSize";
52
+ import { removeObject } from "../Utils/removeObject";
53
+ import { setOrthographicCameraSize } from "../Utils/setOrthographicCameraSize";
54
+ import { optimizeTextureImage } from "../Utils/optimizeTextureImage";
59
55
  var DESIGN_AREA_PIXEL_RATIO = 2;
60
56
  var MIN_TEXTURE_SIZE = 2048;
61
57
  var MAX_TEXTURE_SIZE = 2048;
@@ -63,50 +59,48 @@ var cameraZ = 100000;
63
59
  var getPlaneZ = function getPlaneZ(overlayMode) {
64
60
  return overlayMode ? 100 : -100000;
65
61
  };
66
- var allowZooming = exports.allowZooming = function allowZooming(zoom, originalZoom, minZoom, maxZoom) {
62
+ export var allowZooming = function allowZooming(zoom, originalZoom, minZoom, maxZoom) {
67
63
  return originalZoom > zoom && zoom >= minZoom || originalZoom < zoom && zoom <= maxZoom;
68
64
  };
69
- var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
70
- _inherits(Three2D, _ThreeBase);
71
- var _super = _createSuper(Three2D);
65
+ export var Three2D = /*#__PURE__*/function (_ThreeBase) {
72
66
  function Three2D() {
73
67
  var _this;
74
68
  var cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
75
69
  _classCallCheck(this, Three2D);
76
- _this = _super.call(this, cfg);
77
- _defineProperty(_assertThisInitialized(_this), "_materialMap", new Map());
78
- _defineProperty(_assertThisInitialized(_this), "_designAreaList", []);
79
- _defineProperty(_assertThisInitialized(_this), "_currentDesignView", null);
80
- _defineProperty(_assertThisInitialized(_this), "_currentDesignArea", null);
81
- _defineProperty(_assertThisInitialized(_this), "_viewPath", "");
82
- _defineProperty(_assertThisInitialized(_this), "_model", null);
83
- _defineProperty(_assertThisInitialized(_this), "_containerGroup", null);
84
- _defineProperty(_assertThisInitialized(_this), "_size", {
70
+ _this = _callSuper(this, Three2D, [cfg]);
71
+ _defineProperty(_this, "_materialMap", new Map());
72
+ _defineProperty(_this, "_designAreaList", []);
73
+ _defineProperty(_this, "_currentDesignView", null);
74
+ _defineProperty(_this, "_currentDesignArea", null);
75
+ _defineProperty(_this, "_viewPath", "");
76
+ _defineProperty(_this, "_model", null);
77
+ _defineProperty(_this, "_containerGroup", null);
78
+ _defineProperty(_this, "_size", {
85
79
  width: 0,
86
80
  height: 0
87
81
  });
88
- _defineProperty(_assertThisInitialized(_this), "_fitSize", null);
89
- _defineProperty(_assertThisInitialized(_this), "_minZoom", 0.5);
90
- _defineProperty(_assertThisInitialized(_this), "_maxZoom", 2);
91
- _defineProperty(_assertThisInitialized(_this), "_pointerMoveEventListener", null);
92
- _defineProperty(_assertThisInitialized(_this), "_mouseWheelEventListener", null);
93
- _defineProperty(_assertThisInitialized(_this), "_redraw", null);
94
- _defineProperty(_assertThisInitialized(_this), "_modelBasePath", "");
95
- _defineProperty(_assertThisInitialized(_this), "_modelPath", null);
96
- _defineProperty(_assertThisInitialized(_this), "_overlayMode", false);
97
- _defineProperty(_assertThisInitialized(_this), "_options", {
82
+ _defineProperty(_this, "_fitSize", null);
83
+ _defineProperty(_this, "_minZoom", 0.5);
84
+ _defineProperty(_this, "_maxZoom", 2);
85
+ _defineProperty(_this, "_pointerMoveEventListener", null);
86
+ _defineProperty(_this, "_mouseWheelEventListener", null);
87
+ _defineProperty(_this, "_redraw", null);
88
+ _defineProperty(_this, "_modelBasePath", "");
89
+ _defineProperty(_this, "_modelPath", null);
90
+ _defineProperty(_this, "_overlayMode", false);
91
+ _defineProperty(_this, "_options", {
98
92
  sharperFullView: false,
99
93
  // when zoom = 1 use NearestFilter for sharper product image
100
94
  optimizeProductImage: false,
101
95
  // upscale or downscale the product image to fit 2048 x 2048
102
96
  premultiplyAlpha: false
103
97
  });
104
- _defineProperty(_assertThisInitialized(_this), "_imageRepository", (0, _createImageRepository.createImageRepository)((0, _createCache.createCache)(20), function (src) {
98
+ _defineProperty(_this, "_imageRepository", createImageRepository(createCache(20), function (src) {
105
99
  return new Promise(function (resolve, reject) {
106
- return new _three.ImageLoader(_this._loadingManager).load(src, resolve, undefined, reject);
100
+ return new ImageLoader(_this._loadingManager).load(src, resolve, undefined, reject);
107
101
  });
108
102
  }));
109
- _defineProperty(_assertThisInitialized(_this), "updateModelTextureFilter", function (_ref) {
103
+ _defineProperty(_this, "updateModelTextureFilter", function (_ref) {
110
104
  var _this$_model;
111
105
  var currentZoom = _ref.value;
112
106
  if (!_this._options.sharperFullView) {
@@ -117,18 +111,18 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
117
111
  return;
118
112
  }
119
113
  if (currentZoom === 1) {
120
- tex.magFilter = _three.NearestFilter;
114
+ tex.magFilter = NearestFilter;
121
115
  tex.needsUpdate = true;
122
- } else if (tex.magFilter !== _three.LinearFilter) {
123
- tex.magFilter = _three.LinearFilter;
116
+ } else if (tex.magFilter !== LinearFilter) {
117
+ tex.magFilter = LinearFilter;
124
118
  tex.needsUpdate = true;
125
119
  }
126
120
  });
127
- _defineProperty(_assertThisInitialized(_this), "redraw", function () {
121
+ _defineProperty(_this, "redraw", function () {
128
122
  return _this._redraw && _this._redraw();
129
123
  });
130
- _defineProperty(_assertThisInitialized(_this), "updateView", (0, _SyncCurrentFunction.syncCurrent)( /*#__PURE__*/function () {
131
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(designView) {
124
+ _defineProperty(_this, "updateView", syncCurrent(/*#__PURE__*/function () {
125
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(designView) {
132
126
  var options,
133
127
  _options$forceUpdate,
134
128
  forceUpdate,
@@ -141,21 +135,22 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
141
135
  needsUpdate,
142
136
  availableDesignAreas,
143
137
  containerGroup,
144
- _args = arguments;
145
- return _regeneratorRuntime().wrap(function _callee$(_context) {
146
- while (1) switch (_context.prev = _context.next) {
138
+ _args = arguments,
139
+ _t;
140
+ return _regenerator().w(function (_context) {
141
+ while (1) switch (_context.n) {
147
142
  case 0:
148
143
  options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
149
144
  _options$forceUpdate = options.forceUpdate, forceUpdate = _options$forceUpdate === void 0 ? false : _options$forceUpdate, _options$updateMateri = options.updateMaterial, updateMaterial = _options$updateMateri === void 0 ? true : _options$updateMateri;
150
145
  designViewIdentifier = designView && designView.identifier;
151
146
  if (designViewIdentifier) {
152
- _context.next = 6;
147
+ _context.n = 1;
153
148
  break;
154
149
  }
155
150
  // eslint-disable-next-line no-console
156
151
  console.log("No design view identifier! Skipping update.");
157
- return _context.abrupt("return");
158
- case 6:
152
+ return _context.a(2);
153
+ case 1:
159
154
  try {
160
155
  oldModelPath = _this.getModelPath();
161
156
  } catch (e) {
@@ -169,37 +164,36 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
169
164
  modelPathChanged = _this.getModelPath() !== oldModelPath;
170
165
  needsUpdate = forceUpdate || modelPathChanged || _this._currentDesignView !== designView;
171
166
  if (needsUpdate) {
172
- _context.next = 14;
167
+ _context.n = 2;
173
168
  break;
174
169
  }
175
- return _context.abrupt("return");
176
- case 14:
170
+ return _context.a(2);
171
+ case 2:
177
172
  _this._currentDesignView = designView;
178
173
 
179
174
  // skip view update if the design view is the same
180
175
  if (!(forceUpdate || modelPathChanged)) {
181
- _context.next = 18;
176
+ _context.n = 3;
182
177
  break;
183
178
  }
184
- _context.next = 18;
179
+ _context.n = 3;
185
180
  return _this.loadView();
186
- case 18:
181
+ case 3:
187
182
  _this.clearScene();
188
- availableDesignAreas = (0, _get2["default"])(designView, "designAreas") || [];
183
+ availableDesignAreas = get(designView, "designAreas") || [];
189
184
  containerGroup = _this.createObjectsForDesignAreas(availableDesignAreas);
190
185
  _this._containerGroup = containerGroup;
191
186
  _this._intersectionRoot = containerGroup;
192
187
  _this.scene && _this.scene.add(containerGroup);
193
- _context.t0 = updateMaterial;
194
- if (!_context.t0) {
195
- _context.next = 28;
188
+ _t = updateMaterial;
189
+ if (!_t) {
190
+ _context.n = 4;
196
191
  break;
197
192
  }
198
- _context.next = 28;
193
+ _context.n = 4;
199
194
  return _this.dispatchMaterialUpdateEvent();
200
- case 28:
201
- case "end":
202
- return _context.stop();
195
+ case 4:
196
+ return _context.a(2);
203
197
  }
204
198
  }, _callee);
205
199
  }));
@@ -210,7 +204,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
210
204
  if (cfg.modelBasePath) {
211
205
  _this._modelBasePath = cfg.modelBasePath;
212
206
  }
213
- (0, _PropertyObserver.observeProperty)(_assertThisInitialized(_this), "_size", function (_ref3) {
207
+ observeProperty(_this, "_size", function (_ref3) {
214
208
  var value = _ref3.value,
215
209
  dispose = _ref3.dispose;
216
210
  if (value.width > 0 && value.height > 0) {
@@ -220,7 +214,8 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
220
214
  });
221
215
  return _this;
222
216
  }
223
- _createClass(Three2D, [{
217
+ _inherits(Three2D, _ThreeBase);
218
+ return _createClass(Three2D, [{
224
219
  key: "setOverlayMode",
225
220
  value: function setOverlayMode(mode) {
226
221
  this._overlayMode = mode;
@@ -228,15 +223,14 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
228
223
  }, {
229
224
  key: "createRenderer",
230
225
  value: function createRenderer() {
231
- var renderer = new _three.WebGLRenderer({
226
+ var renderer = new WebGLRenderer({
232
227
  alpha: true,
233
228
  antialias: true,
234
229
  stencil: false,
235
230
  depth: true // needed only for the admin area, consider to make it configurable
236
231
  });
237
-
238
232
  renderer.setPixelRatio(window.devicePixelRatio ? window.devicePixelRatio : 1);
239
- renderer.outputColorSpace = _three.LinearSRGBColorSpace;
233
+ renderer.outputColorSpace = LinearSRGBColorSpace;
240
234
  return renderer;
241
235
  }
242
236
  }, {
@@ -247,12 +241,12 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
247
241
  redrawOnZoomChange = _options$redrawOnZoom === void 0 ? false : _options$redrawOnZoom,
248
242
  _options$redrawDeboun = options.redrawDebounceWait,
249
243
  redrawDebounceWait = _options$redrawDeboun === void 0 ? 100 : _options$redrawDeboun;
250
- var camera = new _three.OrthographicCamera();
244
+ var camera = new OrthographicCamera();
251
245
  camera.near = 0.01;
252
246
  camera.far = cameraZ - getPlaneZ(this._overlayMode) + 1000;
253
247
  camera.position.set(0, 0, cameraZ);
254
- redrawOnZoomChange && (0, _PropertyObserver.observeProperty)(camera, "zoom", (0, _debounce["default"])(this.redraw, redrawDebounceWait));
255
- (0, _PropertyObserver.observeProperty)(camera, "zoom", this.updateModelTextureFilter);
248
+ redrawOnZoomChange && observeProperty(camera, "zoom", debounce(this.redraw, redrawDebounceWait));
249
+ observeProperty(camera, "zoom", this.updateModelTextureFilter);
256
250
  return camera;
257
251
  }
258
252
  }, {
@@ -273,10 +267,10 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
273
267
  var width = _ref4.width,
274
268
  height = _ref4.height;
275
269
  var rerender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
276
- _get(_getPrototypeOf(Three2D.prototype), "setSize", this).call(this, {
270
+ _superPropGet(Three2D, "setSize", this, 3)([{
277
271
  width: width,
278
272
  height: height
279
- }, rerender);
273
+ }, rerender]);
280
274
  if (this.camera.zoom < 1) {
281
275
  this.updateZoom(rerender);
282
276
  }
@@ -299,7 +293,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
299
293
  }, {
300
294
  key: "setCameraPositionToCurrentDesignArea",
301
295
  value: function () {
302
- var _setCameraPositionToCurrentDesignArea = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
296
+ var _setCameraPositionToCurrentDesignArea = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
303
297
  var _ref5,
304
298
  animate,
305
299
  duration,
@@ -310,21 +304,21 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
310
304
  viewOffset,
311
305
  position,
312
306
  _args2 = arguments;
313
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
314
- while (1) switch (_context2.prev = _context2.next) {
307
+ return _regenerator().w(function (_context2) {
308
+ while (1) switch (_context2.n) {
315
309
  case 0:
316
310
  _ref5 = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {
317
311
  animate: false,
318
312
  duration: {}
319
313
  }, animate = _ref5.animate, duration = _ref5.duration, getViewOffset = _ref5.getViewOffset;
320
- _context2.next = 3;
314
+ _context2.n = 1;
321
315
  return this.getScreenshotsReady();
322
- case 3:
323
- designArea = this._currentDesignArea || (0, _first["default"])(this._designAreaList);
316
+ case 1:
317
+ designArea = this._currentDesignArea || first(this._designAreaList);
324
318
  obj = designArea && this.findAreaObjectByName(designArea.identifier);
325
319
  zoom = this.calculateZoomForObject(obj);
326
320
  viewOffset = getViewOffset && getViewOffset();
327
- position = new _three.Vector3();
321
+ position = new Vector3();
328
322
  if (obj) {
329
323
  obj.getWorldPosition(position);
330
324
  }
@@ -335,9 +329,8 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
335
329
  this.stopAnimation("camera");
336
330
  this.setCameraPosition(position, zoom, viewOffset);
337
331
  }
338
- case 11:
339
- case "end":
340
- return _context2.stop();
332
+ case 2:
333
+ return _context2.a(2);
341
334
  }
342
335
  }, _callee2, this);
343
336
  }));
@@ -349,7 +342,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
349
342
  }, {
350
343
  key: "updateCamera",
351
344
  value: function updateCamera(width, height) {
352
- (0, _setOrthographicCameraSize.setOrthographicCameraSize)(this.camera, width, height);
345
+ setOrthographicCameraSize(this.camera, width, height);
353
346
  this.camera.updateProjectionMatrix();
354
347
  }
355
348
  }, {
@@ -368,7 +361,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
368
361
  value: function getDefaultZoom() {
369
362
  var _this2 = this;
370
363
  return this._size ? this.getZoomForSize(this._fitSize || function () {
371
- var size = new _three.Vector2();
364
+ var size = new Vector2();
372
365
  _this2.renderer.getSize(size);
373
366
  return size;
374
367
  }()) : 1;
@@ -393,7 +386,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
393
386
  }
394
387
  var realWidth = Math.floor(this._size.width * zoom);
395
388
  var realHeight = Math.floor(this._size.height * zoom);
396
- var size = new _three.Vector2();
389
+ var size = new Vector2();
397
390
  this.renderer.getSize(size);
398
391
  var canvasWidth = size.width,
399
392
  canvasHeight = size.height;
@@ -408,7 +401,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
408
401
  y: 0
409
402
  };
410
403
  }
411
- var size = new _three.Vector2();
404
+ var size = new Vector2();
412
405
  this.renderer.getSize(size);
413
406
  var _ref6 = this.camera.view ? this.camera.view : {
414
407
  width: size.x,
@@ -447,7 +440,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
447
440
  key: "setPositionBetweenBoundaries",
448
441
  value: function setPositionBetweenBoundaries(x, y, zoom) {
449
442
  var position = this.getPositionBetweenBoundaries(x, y, zoom);
450
- var positionVector = new _three.Vector3(position.x, position.y, this.camera.position.z);
443
+ var positionVector = new Vector3(position.x, position.y, this.camera.position.z);
451
444
  var animate = this.isObjectSmallerThanCanvas(zoom) && this.camera.position.x !== 0 && this.camera.position.y !== 0;
452
445
  if (animate) {
453
446
  this.moveCamera(positionVector, zoom, 1000);
@@ -468,7 +461,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
468
461
  update: function update() {}
469
462
  };
470
463
  var element = targetElement || this.renderer.domElement;
471
- this._pointerMoveEventListener = (0, _pointerEvent.createPointerMoveEventListener)(element, function (evt, change) {
464
+ this._pointerMoveEventListener = createPointerMoveEventListener(element, function (evt, change) {
472
465
  evt.preventDefault();
473
466
  if (!_this3.controls || !_this3.controls.enabled) {
474
467
  return;
@@ -484,7 +477,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
484
477
  }
485
478
  _this3.setPositionBetweenBoundaries(x, y, zoom);
486
479
  });
487
- this._mouseWheelEventListener = (0, _pointerEvent.createMouseWheelEventListener)(element, function (evt) {
480
+ this._mouseWheelEventListener = createMouseWheelEventListener(element, function (evt) {
488
481
  if (_this3._cameraMovementLocked) {
489
482
  return;
490
483
  }
@@ -511,14 +504,14 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
511
504
  }, {
512
505
  key: "dispatchMaterialUpdateEvent",
513
506
  value: function () {
514
- var _dispatchMaterialUpdateEvent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
507
+ var _dispatchMaterialUpdateEvent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
515
508
  var options,
516
509
  _options$screenshot,
517
510
  screenshot,
518
511
  eventParams,
519
512
  _args3 = arguments;
520
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
521
- while (1) switch (_context3.prev = _context3.next) {
513
+ return _regenerator().w(function (_context3) {
514
+ while (1) switch (_context3.n) {
522
515
  case 0:
523
516
  options = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {};
524
517
  _options$screenshot = options.screenshot, screenshot = _options$screenshot === void 0 ? false : _options$screenshot;
@@ -526,11 +519,10 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
526
519
  variant: this._materialVariantPath,
527
520
  screenshot: screenshot
528
521
  }; // the redrawing of the areas can be synced if the event handler returns a Promise
529
- _context3.next = 5;
530
- return this.observable.dispatch(_Constants.EventTypes.MaterialUpdated, eventParams, true);
531
- case 5:
532
- case "end":
533
- return _context3.stop();
522
+ _context3.n = 1;
523
+ return this.observable.dispatch(EventTypes.MaterialUpdated, eventParams, true);
524
+ case 1:
525
+ return _context3.a(2);
534
526
  }
535
527
  }, _callee3, this);
536
528
  }));
@@ -542,20 +534,17 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
542
534
  }, {
543
535
  key: "updateMaterial",
544
536
  value: function () {
545
- var _updateMaterial = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
537
+ var _updateMaterial = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
546
538
  var targetObject,
547
539
  _args4 = arguments;
548
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
549
- while (1) switch (_context4.prev = _context4.next) {
540
+ return _regenerator().w(function (_context4) {
541
+ while (1) switch (_context4.n) {
550
542
  case 0:
551
543
  targetObject = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : this.scene;
552
- _context4.next = 3;
544
+ _context4.n = 1;
553
545
  return this.updateView(this._currentDesignView);
554
- case 3:
555
- return _context4.abrupt("return", _context4.sent);
556
- case 4:
557
- case "end":
558
- return _context4.stop();
546
+ case 1:
547
+ return _context4.a(2, _context4.v);
559
548
  }
560
549
  }, _callee4, this);
561
550
  }));
@@ -567,36 +556,36 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
567
556
  }, {
568
557
  key: "_getDrawingContext",
569
558
  value: function () {
570
- var _getDrawingContext2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(drawingFn) {
559
+ var _getDrawingContext2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(drawingFn) {
571
560
  var _this4 = this;
572
561
  var updateAlpha,
573
562
  clearTexture,
574
563
  materialName,
575
564
  availableDesignAreas,
576
565
  _args6 = arguments;
577
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
578
- while (1) switch (_context6.prev = _context6.next) {
566
+ return _regenerator().w(function (_context6) {
567
+ while (1) switch (_context6.n) {
579
568
  case 0:
580
569
  updateAlpha = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : false;
581
570
  clearTexture = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : false;
582
571
  materialName = _args6.length > 3 && _args6[3] !== undefined ? _args6[3] : undefined;
583
- availableDesignAreas = (0, _get2["default"])(this._currentDesignView, "designAreas") || [];
584
- _context6.next = 6;
585
- return Promise.all(availableDesignAreas.map( /*#__PURE__*/function () {
586
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(designArea) {
572
+ availableDesignAreas = get(this._currentDesignView, "designAreas") || [];
573
+ _context6.n = 1;
574
+ return Promise.all(availableDesignAreas.map(/*#__PURE__*/function () {
575
+ var _ref7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(designArea) {
587
576
  var material, _this4$getCanvasConte, ctx, canvas, texture, getTextureBuilder, width, height;
588
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
589
- while (1) switch (_context5.prev = _context5.next) {
577
+ return _regenerator().w(function (_context5) {
578
+ while (1) switch (_context5.n) {
590
579
  case 0:
591
580
  material = _this4._materialMap.get(designArea.identifier);
592
581
  if (!(!material || !material.map || !material.map.image)) {
593
- _context5.next = 3;
582
+ _context5.n = 1;
594
583
  break;
595
584
  }
596
585
  throw new Error("Cannot get drawing context for material: ".concat(materialName, "! Is it prepared already?"));
597
- case 3:
586
+ case 1:
598
587
  _this4$getCanvasConte = _this4.getCanvasContextForTexture(material.map), ctx = _this4$getCanvasConte.ctx, canvas = _this4$getCanvasConte.canvas, texture = _this4$getCanvasConte.texture;
599
- getTextureBuilder = (0, _createTextureBuilder.createTextureBuilder)(canvas, {
588
+ getTextureBuilder = createTextureBuilder(canvas, {
600
589
  currentZoom: _this4._screenshotCamera ? _this4._screenshotCamera.zoom : _this4.camera.zoom,
601
590
  useTextureSize: true
602
591
  });
@@ -604,13 +593,12 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
604
593
  width = canvas.width, height = canvas.height;
605
594
  ctx.clearRect(0, 0, width, height);
606
595
  }
607
- _context5.next = 8;
596
+ _context5.n = 2;
608
597
  return drawingFn(ctx, getTextureBuilder, [designArea]);
609
- case 8:
598
+ case 2:
610
599
  texture.needsUpdate = true;
611
- case 9:
612
- case "end":
613
- return _context5.stop();
600
+ case 3:
601
+ return _context5.a(2);
614
602
  }
615
603
  }, _callee5);
616
604
  }));
@@ -618,13 +606,12 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
618
606
  return _ref7.apply(this, arguments);
619
607
  };
620
608
  }()));
621
- case 6:
609
+ case 1:
622
610
  if (!this.isAnimating()) {
623
611
  this.render();
624
612
  }
625
- case 7:
626
- case "end":
627
- return _context6.stop();
613
+ case 2:
614
+ return _context6.a(2);
628
615
  }
629
616
  }, _callee6, this);
630
617
  }));
@@ -636,58 +623,58 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
636
623
  }, {
637
624
  key: "getDrawingContext",
638
625
  value: function () {
639
- var _getDrawingContext3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
626
+ var _getDrawingContext3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8() {
640
627
  var _this$_getDrawingCont,
641
628
  _this5 = this;
642
- var _args8 = arguments;
643
- return _regeneratorRuntime().wrap(function _callee8$(_context8) {
644
- while (1) switch (_context8.prev = _context8.next) {
629
+ var _args8 = arguments,
630
+ _t3;
631
+ return _regenerator().w(function (_context8) {
632
+ while (1) switch (_context8.p = _context8.n) {
645
633
  case 0:
646
634
  this._redraw = (_this$_getDrawingCont = this._getDrawingContext).bind.apply(_this$_getDrawingCont, [this].concat(Array.prototype.slice.call(_args8)));
647
- _context8.prev = 1;
648
- _context8.next = 4;
635
+ _context8.p = 1;
636
+ _context8.n = 2;
649
637
  return this._redrawPromise;
650
- case 4:
651
- _context8.next = 8;
638
+ case 2:
639
+ _context8.n = 4;
652
640
  break;
653
- case 6:
654
- _context8.prev = 6;
655
- _context8.t0 = _context8["catch"](1);
656
- case 8:
641
+ case 3:
642
+ _context8.p = 3;
643
+ _t3 = _context8.v;
644
+ case 4:
657
645
  this._redrawPromise = new Promise(function (resolve, reject) {
658
- _this5._redrawFrame = window.requestAnimationFrame( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
659
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
660
- while (1) switch (_context7.prev = _context7.next) {
646
+ _this5._redrawFrame = window.requestAnimationFrame(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() {
647
+ var _t2;
648
+ return _regenerator().w(function (_context7) {
649
+ while (1) switch (_context7.p = _context7.n) {
661
650
  case 0:
662
- _context7.prev = 0;
663
- _context7.next = 3;
651
+ _context7.p = 0;
652
+ _context7.n = 1;
664
653
  return _this5.redraw();
665
- case 3:
654
+ case 1:
666
655
  resolve();
667
- _context7.next = 9;
656
+ _context7.n = 3;
668
657
  break;
669
- case 6:
670
- _context7.prev = 6;
671
- _context7.t0 = _context7["catch"](0);
672
- reject(_context7.t0);
673
- case 9:
674
- _context7.prev = 9;
658
+ case 2:
659
+ _context7.p = 2;
660
+ _t2 = _context7.v;
661
+ reject(_t2);
662
+ case 3:
663
+ _context7.p = 3;
675
664
  delete _this5._redrawPromise;
676
- return _context7.finish(9);
677
- case 12:
678
- case "end":
679
- return _context7.stop();
665
+ return _context7.f(3);
666
+ case 4:
667
+ return _context7.a(2);
680
668
  }
681
- }, _callee7, null, [[0, 6, 9, 12]]);
669
+ }, _callee7, null, [[0, 2, 3, 4]]);
682
670
  })));
683
671
  });
684
- _context8.next = 11;
672
+ _context8.n = 5;
685
673
  return this._redrawPromise;
686
- case 11:
687
- case "end":
688
- return _context8.stop();
674
+ case 5:
675
+ return _context8.a(2);
689
676
  }
690
- }, _callee8, this, [[1, 6]]);
677
+ }, _callee8, this, [[1, 3]]);
691
678
  }));
692
679
  function getDrawingContext() {
693
680
  return _getDrawingContext3.apply(this, arguments);
@@ -740,43 +727,42 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
740
727
  }, {
741
728
  key: "loadView",
742
729
  value: function () {
743
- var _loadView = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
730
+ var _loadView = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9() {
744
731
  var rerender,
745
732
  url,
746
733
  image,
747
734
  tex,
748
735
  _args9 = arguments;
749
- return _regeneratorRuntime().wrap(function _callee9$(_context9) {
750
- while (1) switch (_context9.prev = _context9.next) {
736
+ return _regenerator().w(function (_context9) {
737
+ while (1) switch (_context9.n) {
751
738
  case 0:
752
739
  rerender = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : false;
753
740
  if (this._itemPath && this._viewPath) {
754
- _context9.next = 3;
741
+ _context9.n = 1;
755
742
  break;
756
743
  }
757
- return _context9.abrupt("return", false);
758
- case 3:
744
+ return _context9.a(2, false);
745
+ case 1:
759
746
  url = this.getModelPath();
760
747
  this.onLoadStart();
761
- _context9.next = 7;
748
+ _context9.n = 2;
762
749
  return this._imageRepository.loadImage(url);
763
- case 7:
764
- image = _context9.sent;
750
+ case 2:
751
+ image = _context9.v;
765
752
  this.onLoadFinished();
766
- tex = new _three.Texture(this._options.optimizeProductImage ? (0, _optimizeTextureImage.optimizeTextureImage)(image, MAX_TEXTURE_SIZE, MIN_TEXTURE_SIZE) : image);
753
+ tex = new Texture(this._options.optimizeProductImage ? optimizeTextureImage(image, MAX_TEXTURE_SIZE, MIN_TEXTURE_SIZE) : image);
767
754
  tex.premultiplyAlpha = this._options.premultiplyAlpha;
768
755
  if (this._options.sharperFullView) {
769
- tex.magFilter = _three.NearestFilter;
756
+ tex.magFilter = NearestFilter;
770
757
  }
771
- tex.originalSize = (0, _getImageSize.getImageSize)(image);
758
+ tex.originalSize = getImageSize(image);
772
759
  tex.needsUpdate = true;
773
760
  this.initModelWithTexture(tex);
774
761
  if (rerender) {
775
762
  this.render();
776
763
  }
777
- case 16:
778
- case "end":
779
- return _context9.stop();
764
+ case 3:
765
+ return _context9.a(2);
780
766
  }
781
767
  }, _callee9, this);
782
768
  }));
@@ -791,12 +777,12 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
791
777
  var _tex$originalSize = tex.originalSize,
792
778
  width = _tex$originalSize.width,
793
779
  height = _tex$originalSize.height;
794
- var planeMaterial = new _three.MeshBasicMaterial({
780
+ var planeMaterial = new MeshBasicMaterial({
795
781
  map: tex,
796
782
  transparent: true
797
783
  });
798
- var planeGeometry = new _three.PlaneGeometry(width, height, 1, 1);
799
- var plane = new _three.Mesh(planeGeometry, planeMaterial);
784
+ var planeGeometry = new PlaneGeometry(width, height, 1, 1);
785
+ var plane = new Mesh(planeGeometry, planeMaterial);
800
786
  plane.position.z = getPlaneZ(this._overlayMode);
801
787
 
802
788
  // remove the current model first
@@ -822,32 +808,32 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
822
808
  }, {
823
809
  key: "createCanvasMaterial",
824
810
  value: function createCanvasMaterial(designArea) {
825
- var originalSize = (0, _getDesignAreaCanvasSize.getDesignAreaCanvasSize)(designArea);
811
+ var originalSize = getDesignAreaCanvasSize(designArea);
826
812
  var size;
827
813
  try {
828
- size = (0, _createTextureBuilder.optimizeSizeToTexture)(originalSize, DESIGN_AREA_PIXEL_RATIO, true, MAX_TEXTURE_SIZE);
814
+ size = optimizeSizeToTexture(originalSize, DESIGN_AREA_PIXEL_RATIO, true, MAX_TEXTURE_SIZE);
829
815
  } catch (e) {
830
- this.observable.dispatch(_Constants.EventTypes.Error, e);
816
+ this.observable.dispatch(EventTypes.Error, e);
831
817
  throw e;
832
818
  }
833
- var _createWorkingCanvas = (0, _createCanvas.createWorkingCanvas)(size),
819
+ var _createWorkingCanvas = createWorkingCanvas(size),
834
820
  _createWorkingCanvas2 = _slicedToArray(_createWorkingCanvas, 1),
835
821
  canvas = _createWorkingCanvas2[0];
836
- var tex = new _three.Texture(canvas);
822
+ var tex = new Texture(canvas);
837
823
  tex.anisotropy = this.renderer.capabilities.getMaxAnisotropy();
838
824
  tex.originalSize = originalSize;
839
- var mat = new _three.MeshBasicMaterial({
825
+ var mat = new MeshBasicMaterial({
840
826
  map: tex
841
827
  });
842
828
  mat.transparent = true;
843
829
  mat.name = designArea.identifier;
844
830
 
845
831
  // if the "inside" prop is true, use the BackSide
846
- if ((0, _get2["default"])(designArea, "baseShape.inside", false)) {
847
- mat.side = _three.BackSide;
832
+ if (get(designArea, "baseShape.inside", false)) {
833
+ mat.side = BackSide;
848
834
  }
849
- if ((0, _get2["default"])(designArea, "baseShape.type") === "Plane") {
850
- mat.side = _three.DoubleSide;
835
+ if (get(designArea, "baseShape.type") === "Plane") {
836
+ mat.side = DoubleSide;
851
837
  }
852
838
  this._customizableMaterialKeys.push(mat.name);
853
839
  this._customizableMaterials.push(mat);
@@ -869,26 +855,26 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
869
855
  var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
870
856
  var viewOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
871
857
  this.cleanUpCameraAnimations();
872
- var animationDef = new _Deferred.DeferredGroup();
858
+ var animationDef = new DeferredGroup();
873
859
  if (zoom) {
874
- new _tween["default"].Tween(this.camera, this.cameraTweenGroup).to({
860
+ new TWEEN.Tween(this.camera, this.cameraTweenGroup).to({
875
861
  zoom: zoom
876
- }, duration.zoom || 1000).easing(_tween["default"].Easing.Quadratic.Out).onUpdate(function () {
862
+ }, duration.zoom || 1000).easing(TWEEN.Easing.Quadratic.Out).onUpdate(function () {
877
863
  return _this7.camera.updateProjectionMatrix();
878
864
  }).onComplete(animationDef.createResolver()).start();
879
865
  }
880
866
  if (position) {
881
- new _tween["default"].Tween(this.camera.position, this.cameraTweenGroup).to(position, duration.position || 1000).easing(_tween["default"].Easing.Quadratic.Out).onComplete(animationDef.createResolver()).start();
867
+ new TWEEN.Tween(this.camera.position, this.cameraTweenGroup).to(position, duration.position || 1000).easing(TWEEN.Easing.Quadratic.Out).onComplete(animationDef.createResolver()).start();
882
868
  }
883
869
  if (viewOffset) {
884
870
  if (!this.camera.view) {
885
- var _this$renderer$getSiz = this.renderer.getSize(new _three.Vector2()),
871
+ var _this$renderer$getSiz = this.renderer.getSize(new Vector2()),
886
872
  width = _this$renderer$getSiz.x,
887
873
  height = _this$renderer$getSiz.y;
888
874
  this.camera.setViewOffset(width, height, 0, 0, width, height);
889
875
  }
890
876
  var currentViewOffset = this.camera.view;
891
- new _tween["default"].Tween(currentViewOffset, this.cameraTweenGroup).to(viewOffset, duration.viewOffset || 1000).easing(_tween["default"].Easing.Quadratic.Out).onComplete(animationDef.createResolver()).start();
877
+ new TWEEN.Tween(currentViewOffset, this.cameraTweenGroup).to(viewOffset, duration.viewOffset || 1000).easing(TWEEN.Easing.Quadratic.Out).onComplete(animationDef.createResolver()).start();
892
878
  }
893
879
  animationDef.then(function () {
894
880
  return _this7.stopAnimation("camera");
@@ -906,13 +892,13 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
906
892
  if (!obj) {
907
893
  return this.getDefaultZoom();
908
894
  }
909
- var _Box3$setFromObject = new _three.Box3().setFromObject(obj),
895
+ var _Box3$setFromObject = new Box3().setFromObject(obj),
910
896
  min = _Box3$setFromObject.min,
911
897
  max = _Box3$setFromObject.max;
912
898
  var _max$sub = max.sub(min),
913
899
  w = _max$sub.x,
914
900
  h = _max$sub.y;
915
- var _ref9 = this._fitSize || this.renderer.getSize(new _three.Vector2()),
901
+ var _ref9 = this._fitSize || this.renderer.getSize(new Vector2()),
916
902
  cWidth = _ref9.width,
917
903
  cHeight = _ref9.height;
918
904
  return Math.max(cWidth / w, cHeight / h);
@@ -921,7 +907,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
921
907
  key: "createObjectsForDesignAreas",
922
908
  value: function createObjectsForDesignAreas(designAreas) {
923
909
  var _this8 = this;
924
- var containerGroup = new _three.Group();
910
+ var containerGroup = new Group();
925
911
  var EPS = 10;
926
912
  var index = 1;
927
913
  designAreas.forEach(function (designArea) {
@@ -930,7 +916,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
930
916
  try {
931
917
  geometry = createBaseShapeGeometry(designArea);
932
918
  } catch (e) {
933
- _this8.observable.dispatch(_Constants.EventTypes.Error, e);
919
+ _this8.observable.dispatch(EventTypes.Error, e);
934
920
  throw e;
935
921
  }
936
922
  var _x$y$z$rotation$baseS = _objectSpread({
@@ -948,7 +934,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
948
934
  z = _x$y$z$rotation$baseS.z,
949
935
  rotation = _x$y$z$rotation$baseS.rotation;
950
936
  var mat = _this8.createCanvasMaterial(designArea);
951
- var obj = new _three.Mesh(geometry, mat);
937
+ var obj = new Mesh(geometry, mat);
952
938
  Object.assign(obj.rotation, rotation);
953
939
  obj.position.x = x;
954
940
  obj.position.y = y;
@@ -962,14 +948,14 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
962
948
  }, {
963
949
  key: "getModelPathFromDesignView",
964
950
  value: function getModelPathFromDesignView(designView) {
965
- var images = (0, _get2["default"])(designView, "images");
951
+ var images = get(designView, "images");
966
952
  var isImageArray = images instanceof Array;
967
953
  if (images && !isImageArray && this._materialVariantPath && images.hasOwnProperty(this._materialVariantPath)) {
968
954
  return images[this._materialVariantPath];
969
955
  } else if (images && !isImageArray && images.hasOwnProperty(this._itemPath)) {
970
956
  return images[this._itemPath];
971
957
  } else {
972
- return this._materialVariantPath ? (0, _get2["default"])(designView, "images[".concat(this._materialVariantPath, "]")) : (0, _get2["default"])(designView, "images[".concat(this._itemPath, "]"));
958
+ return this._materialVariantPath ? get(designView, "images[".concat(this._materialVariantPath, "]")) : get(designView, "images[".concat(this._itemPath, "]"));
973
959
  }
974
960
  }
975
961
  }, {
@@ -977,34 +963,31 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
977
963
  value: function clearScene() {
978
964
  delete this._redraw; // remove the redraw function to prevent drawing on non-existing textures
979
965
  this.scene && this.scene.remove(this._containerGroup);
980
- (0, _removeObject.removeObject)(this._containerGroup);
966
+ removeObject(this._containerGroup);
981
967
  this._intersectionRoot = null;
982
968
  this._customizableMaterialKeys = [];
983
969
  this._customizableMaterials = [];
984
- this._materialMap.forEach(_disposeMaterial.disposeMaterial);
970
+ this._materialMap.forEach(disposeMaterial);
985
971
  this._materialMap.clear();
986
972
  }
987
973
  }, {
988
974
  key: "updateViewForArea",
989
975
  value: function () {
990
- var _updateViewForArea = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(selectedDesignArea) {
976
+ var _updateViewForArea = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee0(selectedDesignArea) {
991
977
  var options,
992
978
  designView,
993
- _args10 = arguments;
994
- return _regeneratorRuntime().wrap(function _callee10$(_context10) {
995
- while (1) switch (_context10.prev = _context10.next) {
979
+ _args0 = arguments;
980
+ return _regenerator().w(function (_context0) {
981
+ while (1) switch (_context0.n) {
996
982
  case 0:
997
- options = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : {};
998
- designView = (0, _get2["default"])(selectedDesignArea, "designView");
999
- _context10.next = 4;
983
+ options = _args0.length > 1 && _args0[1] !== undefined ? _args0[1] : {};
984
+ designView = get(selectedDesignArea, "designView");
985
+ _context0.n = 1;
1000
986
  return this.updateView(designView, options);
1001
- case 4:
1002
- return _context10.abrupt("return", _context10.sent);
1003
- case 5:
1004
- case "end":
1005
- return _context10.stop();
987
+ case 1:
988
+ return _context0.a(2, _context0.v);
1006
989
  }
1007
- }, _callee10, this);
990
+ }, _callee0, this);
1008
991
  }));
1009
992
  function updateViewForArea(_x4) {
1010
993
  return _updateViewForArea.apply(this, arguments);
@@ -1020,7 +1003,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1020
1003
  key: "findDesignArea",
1021
1004
  value: function findDesignArea(identifier) {
1022
1005
  return this._designAreaList.filter(function (designArea) {
1023
- return (0, _get2["default"])(designArea, "designView.identifier") === identifier;
1006
+ return get(designArea, "designView.identifier") === identifier;
1024
1007
  })[0] || this._designAreaList.filter(function (designArea) {
1025
1008
  return designArea.identifier === identifier;
1026
1009
  })[0];
@@ -1046,8 +1029,8 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1046
1029
  */
1047
1030
  }, {
1048
1031
  key: "jumpToArea",
1049
- value: function () {
1050
- var _jumpToArea = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(designAreaIdentifier) {
1032
+ value: (function () {
1033
+ var _jumpToArea = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee1(designAreaIdentifier) {
1051
1034
  var animate,
1052
1035
  duration,
1053
1036
  forceUpdate,
@@ -1055,37 +1038,37 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1055
1038
  obj,
1056
1039
  zoom,
1057
1040
  position,
1058
- _args11 = arguments;
1059
- return _regeneratorRuntime().wrap(function _callee11$(_context11) {
1060
- while (1) switch (_context11.prev = _context11.next) {
1041
+ _args1 = arguments;
1042
+ return _regenerator().w(function (_context1) {
1043
+ while (1) switch (_context1.n) {
1061
1044
  case 0:
1062
- animate = _args11.length > 1 && _args11[1] !== undefined ? _args11[1] : true;
1063
- duration = _args11.length > 2 && _args11[2] !== undefined ? _args11[2] : {};
1064
- forceUpdate = _args11.length > 3 && _args11[3] !== undefined ? _args11[3] : false;
1045
+ animate = _args1.length > 1 && _args1[1] !== undefined ? _args1[1] : true;
1046
+ duration = _args1.length > 2 && _args1[2] !== undefined ? _args1[2] : {};
1047
+ forceUpdate = _args1.length > 3 && _args1[3] !== undefined ? _args1[3] : false;
1065
1048
  // use the current design area if present, otherwise try to find it by the designViewIdentifier
1066
- designArea = (0, _size["default"])(this._currentDesignArea) > 0 ? this._currentDesignArea : this.findDesignArea(designAreaIdentifier);
1049
+ designArea = size(this._currentDesignArea) > 0 ? this._currentDesignArea : this.findDesignArea(designAreaIdentifier);
1067
1050
  if (!(designAreaIdentifier !== "default")) {
1068
- _context11.next = 8;
1051
+ _context1.n = 2;
1069
1052
  break;
1070
1053
  }
1071
- _context11.next = 7;
1054
+ _context1.n = 1;
1072
1055
  return this.updateViewForArea(designArea, {
1073
1056
  forceUpdate: forceUpdate
1074
1057
  });
1075
- case 7:
1058
+ case 1:
1076
1059
  this.render();
1077
- case 8:
1060
+ case 2:
1078
1061
  if (this._containerGroup) {
1079
- _context11.next = 11;
1062
+ _context1.n = 3;
1080
1063
  break;
1081
1064
  }
1082
1065
  // eslint-disable-next-line no-console
1083
1066
  console.log("Container group is not available, skipping jump to view!");
1084
- return _context11.abrupt("return", false);
1085
- case 11:
1067
+ return _context1.a(2, false);
1068
+ case 3:
1086
1069
  obj = designArea && this.findAreaObjectByName(designArea.identifier);
1087
1070
  zoom = this.calculateZoomForObject(obj);
1088
- position = new _three.Vector3();
1071
+ position = new Vector3();
1089
1072
  if (obj) {
1090
1073
  obj.getWorldPosition(position);
1091
1074
  }
@@ -1095,12 +1078,9 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1095
1078
  } else {
1096
1079
  this.setCameraPosition(position, zoom);
1097
1080
  }
1098
- return _context11.abrupt("return", true);
1099
- case 18:
1100
- case "end":
1101
- return _context11.stop();
1081
+ return _context1.a(2, true);
1102
1082
  }
1103
- }, _callee11, this);
1083
+ }, _callee1, this);
1104
1084
  }));
1105
1085
  function jumpToArea(_x5) {
1106
1086
  return _jumpToArea.apply(this, arguments);
@@ -1112,37 +1092,35 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1112
1092
  * @param {object} designView The design view object
1113
1093
  * @return {boolean} False if the operation is not possible, otherwise true
1114
1094
  */
1095
+ )
1115
1096
  }, {
1116
1097
  key: "setView",
1117
- value: function () {
1118
- var _setView = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(designView) {
1119
- return _regeneratorRuntime().wrap(function _callee12$(_context12) {
1120
- while (1) switch (_context12.prev = _context12.next) {
1098
+ value: (function () {
1099
+ var _setView = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee10(designView) {
1100
+ return _regenerator().w(function (_context10) {
1101
+ while (1) switch (_context10.n) {
1121
1102
  case 0:
1122
- _context12.next = 2;
1103
+ _context10.n = 1;
1123
1104
  return this.updateView(designView);
1124
- case 2:
1105
+ case 1:
1125
1106
  if (this._containerGroup) {
1126
- _context12.next = 5;
1107
+ _context10.n = 2;
1127
1108
  break;
1128
1109
  }
1129
1110
  // eslint-disable-next-line no-console
1130
1111
  console.log("Container group is not available, skipping jump to view!");
1131
- return _context12.abrupt("return", false);
1132
- case 5:
1112
+ return _context10.a(2, false);
1113
+ case 2:
1133
1114
  this.render();
1134
- return _context12.abrupt("return", true);
1135
- case 7:
1136
- case "end":
1137
- return _context12.stop();
1115
+ return _context10.a(2, true);
1138
1116
  }
1139
- }, _callee12, this);
1117
+ }, _callee10, this);
1140
1118
  }));
1141
1119
  function setView(_x6) {
1142
1120
  return _setView.apply(this, arguments);
1143
1121
  }
1144
1122
  return setView;
1145
- }()
1123
+ }())
1146
1124
  }, {
1147
1125
  key: "updateMaxZoomSetting",
1148
1126
  value: function updateMaxZoomSetting(maxZoom) {
@@ -1167,38 +1145,37 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1167
1145
  }, {
1168
1146
  key: "updateDesignAreaList",
1169
1147
  value: function () {
1170
- var _updateDesignAreaList = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13(designAreaList) {
1148
+ var _updateDesignAreaList = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee11(designAreaList) {
1171
1149
  var updateView,
1172
1150
  identifier,
1173
1151
  activeArea,
1174
- _args13 = arguments;
1175
- return _regeneratorRuntime().wrap(function _callee13$(_context13) {
1176
- while (1) switch (_context13.prev = _context13.next) {
1152
+ _args11 = arguments;
1153
+ return _regenerator().w(function (_context11) {
1154
+ while (1) switch (_context11.n) {
1177
1155
  case 0:
1178
- updateView = _args13.length > 1 && _args13[1] !== undefined ? _args13[1] : false;
1156
+ updateView = _args11.length > 1 && _args11[1] !== undefined ? _args11[1] : false;
1179
1157
  this._designAreaList = designAreaList;
1180
1158
  if (!updateView) {
1181
- _context13.next = 9;
1159
+ _context11.n = 2;
1182
1160
  break;
1183
1161
  }
1184
1162
  identifier = this._currentDesignArea && this._currentDesignArea.identifier;
1185
- activeArea = (0, _find["default"])(designAreaList, {
1163
+ activeArea = find(designAreaList, {
1186
1164
  identifier: identifier
1187
- }) || (0, _first["default"])(designAreaList);
1165
+ }) || first(designAreaList);
1188
1166
  if (!activeArea) {
1189
- _context13.next = 9;
1167
+ _context11.n = 2;
1190
1168
  break;
1191
1169
  }
1192
- _context13.next = 8;
1170
+ _context11.n = 1;
1193
1171
  return this.updateViewForArea(activeArea);
1194
- case 8:
1172
+ case 1:
1195
1173
  // update the zoom to the initial value only if there is no designArea selected
1196
1174
  !identifier && this.updateZoom();
1197
- case 9:
1198
- case "end":
1199
- return _context13.stop();
1175
+ case 2:
1176
+ return _context11.a(2);
1200
1177
  }
1201
- }, _callee13, this);
1178
+ }, _callee11, this);
1202
1179
  }));
1203
1180
  function updateDesignAreaList(_x7) {
1204
1181
  return _updateDesignAreaList.apply(this, arguments);
@@ -1208,8 +1185,8 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1208
1185
  }, {
1209
1186
  key: "getScreenshotSize",
1210
1187
  value: function getScreenshotSize(targetSize) {
1211
- var width = (0, _get2["default"])(targetSize, "width", 1024);
1212
- var height = (0, _get2["default"])(targetSize, "height", 768);
1188
+ var width = get(targetSize, "width", 1024);
1189
+ var height = get(targetSize, "height", 768);
1213
1190
  var initialRatio = width / height;
1214
1191
  var modelRatio = this._size.width / this._size.height;
1215
1192
  if (modelRatio > initialRatio) {
@@ -1225,9 +1202,9 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1225
1202
  }, {
1226
1203
  key: "getScreenshots",
1227
1204
  value: function () {
1228
- var _getScreenshots = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee16(callback) {
1205
+ var _getScreenshots = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee14(callback) {
1229
1206
  var _this9 = this;
1230
- var _ref10,
1207
+ var _ref0,
1231
1208
  designViewList,
1232
1209
  areaList,
1233
1210
  variantList,
@@ -1247,26 +1224,27 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1247
1224
  _step,
1248
1225
  _loop,
1249
1226
  _ret,
1250
- _args18 = arguments;
1251
- return _regeneratorRuntime().wrap(function _callee16$(_context18) {
1252
- while (1) switch (_context18.prev = _context18.next) {
1227
+ _args16 = arguments,
1228
+ _t8;
1229
+ return _regenerator().w(function (_context16) {
1230
+ while (1) switch (_context16.p = _context16.n) {
1253
1231
  case 0:
1254
- _ref10 = _args18.length > 1 && _args18[1] !== undefined ? _args18[1] : {}, designViewList = _ref10.designViewList, areaList = _ref10.areaList, variantList = _ref10.variantList, size = _ref10.size;
1232
+ _ref0 = _args16.length > 1 && _args16[1] !== undefined ? _args16[1] : {}, designViewList = _ref0.designViewList, areaList = _ref0.areaList, variantList = _ref0.variantList, size = _ref0.size;
1255
1233
  if (this.renderer) {
1256
- _context18.next = 3;
1234
+ _context16.n = 1;
1257
1235
  break;
1258
1236
  }
1259
- return _context18.abrupt("return", callback({}));
1260
- case 3:
1237
+ return _context16.a(2, callback({}));
1238
+ case 1:
1261
1239
  this._screenshottingInProgress = true;
1262
1240
  this.endAnimation();
1263
- _context18.next = 7;
1241
+ _context16.n = 2;
1264
1242
  return this.animationRunning();
1265
- case 7:
1266
- _context18.next = 9;
1243
+ case 2:
1244
+ _context16.n = 3;
1267
1245
  return this.createTempOverlay();
1268
- case 9:
1269
- removeTempOverlay = _context18.sent;
1246
+ case 3:
1247
+ removeTempOverlay = _context16.v;
1270
1248
  origDesignView = this._currentDesignView; // if the areaList option is provided, use it to filter the design areas
1271
1249
  designAreaList = areaList instanceof Array && areaList.length > 0 ? this._designAreaList.filter(function (designArea) {
1272
1250
  return areaList.indexOf(designArea.identifier) !== -1;
@@ -1274,91 +1252,90 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1274
1252
  variants = variantList instanceof Array && variantList.length > 0 ? variantList : [this._materialVariantPath];
1275
1253
  screenshots = {}; // store the original camera, variant and renderer size
1276
1254
  origVariantPath = this._materialVariantPath;
1277
- origSize = new _three.Vector2();
1255
+ origSize = new Vector2();
1278
1256
  this.renderer.getSize(origSize);
1279
1257
  origPixelRatio = this.renderer.getPixelRatio();
1280
1258
  restoreOriginalValues = /*#__PURE__*/function () {
1281
- var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {
1282
- return _regeneratorRuntime().wrap(function _callee14$(_context14) {
1283
- while (1) switch (_context14.prev = _context14.next) {
1259
+ var _ref1 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee12() {
1260
+ return _regenerator().w(function (_context12) {
1261
+ while (1) switch (_context12.n) {
1284
1262
  case 0:
1285
1263
  _this9._screenshotCamera = null;
1286
1264
  _this9._screenshottingInProgress = false;
1287
1265
  _this9._materialVariantPath = origVariantPath;
1288
1266
  _this9._currentDesignView = null;
1289
- _context14.next = 6;
1267
+ _context12.n = 1;
1290
1268
  return _this9.setView(origDesignView);
1291
- case 6:
1269
+ case 1:
1292
1270
  _this9.renderer.setSize(origSize.width, origSize.height);
1293
1271
  _this9.renderer.setPixelRatio(origPixelRatio);
1294
1272
  _this9.render();
1295
1273
  removeTempOverlay();
1296
- case 10:
1297
- case "end":
1298
- return _context14.stop();
1274
+ case 2:
1275
+ return _context12.a(2);
1299
1276
  }
1300
- }, _callee14);
1277
+ }, _callee12);
1301
1278
  }));
1302
1279
  return function restoreOriginalValues() {
1303
- return _ref11.apply(this, arguments);
1280
+ return _ref1.apply(this, arguments);
1304
1281
  };
1305
1282
  }();
1306
1283
  camera = this.createCameraBase();
1307
1284
  this._screenshotCamera = camera;
1308
- views = designViewList || designAreaList.map(function (_ref12) {
1309
- var designView = _ref12.designView;
1285
+ views = designViewList || designAreaList.map(function (_ref10) {
1286
+ var designView = _ref10.designView;
1310
1287
  return designView;
1311
1288
  });
1312
1289
  _iterator = _createForOfIteratorHelper(variants);
1313
- _context18.prev = 23;
1314
- _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() {
1315
- var variant, data, _iterator2, _step2, _loop2, _ret2;
1316
- return _regeneratorRuntime().wrap(function _loop$(_context17) {
1317
- while (1) switch (_context17.prev = _context17.next) {
1290
+ _context16.p = 4;
1291
+ _loop = /*#__PURE__*/_regenerator().m(function _loop() {
1292
+ var variant, data, _iterator2, _step2, _loop2, _ret2, _t7;
1293
+ return _regenerator().w(function (_context15) {
1294
+ while (1) switch (_context15.p = _context15.n) {
1318
1295
  case 0:
1319
1296
  variant = _step.value;
1320
1297
  data = {};
1321
1298
  _this9.setMaterialVariantPath(variant);
1322
1299
  _this9._currentDesignView = null;
1323
1300
  _iterator2 = _createForOfIteratorHelper(views);
1324
- _context17.prev = 5;
1325
- _loop2 = /*#__PURE__*/_regeneratorRuntime().mark(function _loop2() {
1326
- var view;
1327
- return _regeneratorRuntime().wrap(function _loop2$(_context16) {
1328
- while (1) switch (_context16.prev = _context16.next) {
1301
+ _context15.p = 1;
1302
+ _loop2 = /*#__PURE__*/_regenerator().m(function _loop2() {
1303
+ var view, _t4, _t5, _t6;
1304
+ return _regenerator().w(function (_context14) {
1305
+ while (1) switch (_context14.p = _context14.n) {
1329
1306
  case 0:
1330
1307
  view = _step2.value;
1331
1308
  if (!_this9._abortScreenshotting) {
1332
- _context16.next = 7;
1309
+ _context14.n = 2;
1333
1310
  break;
1334
1311
  }
1335
- _context16.next = 4;
1312
+ _context14.n = 1;
1336
1313
  return restoreOriginalValues();
1337
- case 4:
1338
- _context16.t0 = _context16.sent;
1339
- _context16.t1 = {
1340
- v: _context16.t0
1314
+ case 1:
1315
+ _t4 = _context14.v;
1316
+ _t5 = {
1317
+ v: _t4
1341
1318
  };
1342
- return _context16.abrupt("return", {
1343
- v: _context16.t1
1319
+ return _context14.a(2, {
1320
+ v: _t5
1344
1321
  });
1345
- case 7:
1346
- _context16.prev = 7;
1347
- _context16.next = 10;
1322
+ case 2:
1323
+ _context14.p = 2;
1324
+ _context14.n = 3;
1348
1325
  return new Promise(function (resolve) {
1349
- window.setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {
1326
+ window.setTimeout(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee13() {
1350
1327
  var _this9$getScreenshotS, width, height;
1351
- return _regeneratorRuntime().wrap(function _callee15$(_context15) {
1352
- while (1) switch (_context15.prev = _context15.next) {
1328
+ return _regenerator().w(function (_context13) {
1329
+ while (1) switch (_context13.n) {
1353
1330
  case 0:
1354
- _context15.next = 2;
1331
+ _context13.n = 1;
1355
1332
  return _this9.updateView(view, {
1356
1333
  forceUpdate: false,
1357
1334
  updateMaterial: false
1358
1335
  });
1359
- case 2:
1336
+ case 1:
1360
1337
  _this9$getScreenshotS = _this9.getScreenshotSize(size), width = _this9$getScreenshotS.width, height = _this9$getScreenshotS.height;
1361
- (0, _setOrthographicCameraSize.setOrthographicCameraSize)(camera, width, height);
1338
+ setOrthographicCameraSize(camera, width, height);
1362
1339
  _this9.renderer.setSize(width, height);
1363
1340
  _this9.renderer.setPixelRatio(1);
1364
1341
  camera.zoom = _this9.getZoomForSize({
@@ -1366,110 +1343,106 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1366
1343
  height: height
1367
1344
  });
1368
1345
  camera.updateProjectionMatrix();
1369
- _context15.next = 10;
1346
+ _context13.n = 2;
1370
1347
  return _this9.dispatchMaterialUpdateEvent({
1371
1348
  screenshot: true
1372
1349
  });
1373
- case 10:
1350
+ case 2:
1374
1351
  // set size and pixel ratio right before rendering, to make sure they are correct
1375
1352
  _this9.renderer.setSize(width, height);
1376
1353
  _this9.renderer.setPixelRatio(1);
1377
1354
  _this9.renderer.render(_this9.scene, camera);
1378
1355
  data[view.identifier] = _this9.renderer.domElement.toDataURL();
1379
1356
  resolve();
1380
- case 15:
1381
- case "end":
1382
- return _context15.stop();
1357
+ case 3:
1358
+ return _context13.a(2);
1383
1359
  }
1384
- }, _callee15);
1360
+ }, _callee13);
1385
1361
  })));
1386
1362
  });
1387
- case 10:
1388
- _context16.next = 14;
1363
+ case 3:
1364
+ _context14.n = 5;
1389
1365
  break;
1390
- case 12:
1391
- _context16.prev = 12;
1392
- _context16.t2 = _context16["catch"](7);
1393
- case 14:
1394
- case "end":
1395
- return _context16.stop();
1366
+ case 4:
1367
+ _context14.p = 4;
1368
+ _t6 = _context14.v;
1369
+ case 5:
1370
+ return _context14.a(2);
1396
1371
  }
1397
- }, _loop2, null, [[7, 12]]);
1372
+ }, _loop2, null, [[2, 4]]);
1398
1373
  });
1399
1374
  _iterator2.s();
1400
- case 8:
1375
+ case 2:
1401
1376
  if ((_step2 = _iterator2.n()).done) {
1402
- _context17.next = 15;
1377
+ _context15.n = 5;
1403
1378
  break;
1404
1379
  }
1405
- return _context17.delegateYield(_loop2(), "t0", 10);
1406
- case 10:
1407
- _ret2 = _context17.t0;
1380
+ return _context15.d(_regeneratorValues(_loop2()), 3);
1381
+ case 3:
1382
+ _ret2 = _context15.v;
1408
1383
  if (!_ret2) {
1409
- _context17.next = 13;
1384
+ _context15.n = 4;
1410
1385
  break;
1411
1386
  }
1412
- return _context17.abrupt("return", _ret2.v);
1413
- case 13:
1414
- _context17.next = 8;
1387
+ return _context15.a(2, _ret2.v);
1388
+ case 4:
1389
+ _context15.n = 2;
1415
1390
  break;
1416
- case 15:
1417
- _context17.next = 20;
1391
+ case 5:
1392
+ _context15.n = 7;
1418
1393
  break;
1419
- case 17:
1420
- _context17.prev = 17;
1421
- _context17.t1 = _context17["catch"](5);
1422
- _iterator2.e(_context17.t1);
1423
- case 20:
1424
- _context17.prev = 20;
1394
+ case 6:
1395
+ _context15.p = 6;
1396
+ _t7 = _context15.v;
1397
+ _iterator2.e(_t7);
1398
+ case 7:
1399
+ _context15.p = 7;
1425
1400
  _iterator2.f();
1426
- return _context17.finish(20);
1427
- case 23:
1401
+ return _context15.f(7);
1402
+ case 8:
1428
1403
  screenshots[variant] = data;
1429
- case 24:
1430
- case "end":
1431
- return _context17.stop();
1404
+ case 9:
1405
+ return _context15.a(2);
1432
1406
  }
1433
- }, _loop, null, [[5, 17, 20, 23]]);
1407
+ }, _loop, null, [[1, 6, 7, 8]]);
1434
1408
  });
1435
1409
  _iterator.s();
1436
- case 26:
1410
+ case 5:
1437
1411
  if ((_step = _iterator.n()).done) {
1438
- _context18.next = 33;
1412
+ _context16.n = 8;
1439
1413
  break;
1440
1414
  }
1441
- return _context18.delegateYield(_loop(), "t0", 28);
1442
- case 28:
1443
- _ret = _context18.t0;
1415
+ return _context16.d(_regeneratorValues(_loop()), 6);
1416
+ case 6:
1417
+ _ret = _context16.v;
1444
1418
  if (!_ret) {
1445
- _context18.next = 31;
1419
+ _context16.n = 7;
1446
1420
  break;
1447
1421
  }
1448
- return _context18.abrupt("return", _ret.v);
1449
- case 31:
1450
- _context18.next = 26;
1422
+ return _context16.a(2, _ret.v);
1423
+ case 7:
1424
+ _context16.n = 5;
1451
1425
  break;
1452
- case 33:
1453
- _context18.next = 38;
1426
+ case 8:
1427
+ _context16.n = 10;
1454
1428
  break;
1455
- case 35:
1456
- _context18.prev = 35;
1457
- _context18.t1 = _context18["catch"](23);
1458
- _iterator.e(_context18.t1);
1459
- case 38:
1460
- _context18.prev = 38;
1429
+ case 9:
1430
+ _context16.p = 9;
1431
+ _t8 = _context16.v;
1432
+ _iterator.e(_t8);
1433
+ case 10:
1434
+ _context16.p = 10;
1461
1435
  _iterator.f();
1462
- return _context18.finish(38);
1463
- case 41:
1464
- _context18.next = 43;
1436
+ return _context16.f(10);
1437
+ case 11:
1438
+ _context16.n = 12;
1465
1439
  return restoreOriginalValues();
1466
- case 43:
1440
+ case 12:
1467
1441
  callback(screenshots);
1468
- case 44:
1469
- case "end":
1470
- return _context18.stop();
1442
+ case 13:
1443
+ return _context16.a(2);
1471
1444
  }
1472
- }, _callee16, this, [[23, 35, 38, 41]]);
1445
+ }, _callee14, this, [[4, 9, 10, 11]]);
1473
1446
  }));
1474
1447
  function getScreenshots(_x8) {
1475
1448
  return _getScreenshots.apply(this, arguments);
@@ -1479,7 +1452,7 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1479
1452
  }, {
1480
1453
  key: "textureHitFormatter",
1481
1454
  value: function textureHitFormatter(intersect, position) {
1482
- var designAreaIdentifier = (0, _get2["default"])(intersect, "object.material.name");
1455
+ var designAreaIdentifier = get(intersect, "object.material.name");
1483
1456
  var texture = intersect.object.material.map;
1484
1457
  var flipY = texture.flipY,
1485
1458
  originalSize = texture.originalSize;
@@ -1500,11 +1473,11 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1500
1473
  key: "addCylinder",
1501
1474
  value: function addCylinder(r, width, height) {
1502
1475
  var theta = width / r;
1503
- var cylinder = new _three.CylinderGeometry(r, r, height, 0, 1, true, -theta / 2, theta);
1504
- var mat = new _three.MeshBasicMaterial({
1476
+ var cylinder = new CylinderGeometry(r, r, height, 0, 1, true, -theta / 2, theta);
1477
+ var mat = new MeshBasicMaterial({
1505
1478
  color: 0x55ff55
1506
1479
  });
1507
- var obj = new _three.Mesh(cylinder, mat);
1480
+ var obj = new Mesh(cylinder, mat);
1508
1481
  obj.position.x = 1200;
1509
1482
  obj.position.y = -400;
1510
1483
  this.scene.add(obj);
@@ -1527,36 +1500,35 @@ var Three2D = exports.Three2D = /*#__PURE__*/function (_ThreeBase) {
1527
1500
  this._containerGroup = null;
1528
1501
  this._redraw = null;
1529
1502
  this._materialMap.clear();
1530
- _get(_getPrototypeOf(Three2D.prototype), "dispose", this).call(this);
1503
+ _superPropGet(Three2D, "dispose", this, 3)([]);
1531
1504
  }
1532
1505
  }]);
1533
- return Three2D;
1534
- }(_ThreeBase2.ThreeBase);
1535
- var createGridGeometryBuffer = function createGridGeometryBuffer(_ref14) {
1536
- var width = _ref14.width,
1537
- height = _ref14.height,
1538
- baseShape = _ref14.baseShape;
1506
+ }(ThreeBase);
1507
+ var createGridGeometryBuffer = function createGridGeometryBuffer(_ref12) {
1508
+ var width = _ref12.width,
1509
+ height = _ref12.height,
1510
+ baseShape = _ref12.baseShape;
1539
1511
  var halfSizeX = 0.5 * width;
1540
1512
  var halfSizeY = 0.5 * height;
1541
1513
  var points = baseShape === null || baseShape === void 0 ? void 0 : baseShape.points;
1542
- var _ref15 = points ? {
1543
- pA: new _three.Vector2(points.pA.x, points.pA.y),
1544
- pB: new _three.Vector2(points.pB.x, points.pB.y),
1545
- pC: new _three.Vector2(points.pC.x, points.pC.y),
1546
- pD: new _three.Vector2(points.pD.x, points.pD.y)
1514
+ var _ref13 = points ? {
1515
+ pA: new Vector2(points.pA.x, points.pA.y),
1516
+ pB: new Vector2(points.pB.x, points.pB.y),
1517
+ pC: new Vector2(points.pC.x, points.pC.y),
1518
+ pD: new Vector2(points.pD.x, points.pD.y)
1547
1519
  } : {
1548
- pA: new _three.Vector2(-halfSizeX, -halfSizeY),
1549
- pB: new _three.Vector2(halfSizeX, -halfSizeY),
1550
- pC: new _three.Vector2(halfSizeX, halfSizeY),
1551
- pD: new _three.Vector2(-halfSizeX, halfSizeY)
1520
+ pA: new Vector2(-halfSizeX, -halfSizeY),
1521
+ pB: new Vector2(halfSizeX, -halfSizeY),
1522
+ pC: new Vector2(halfSizeX, halfSizeY),
1523
+ pD: new Vector2(-halfSizeX, halfSizeY)
1552
1524
  },
1553
- pA = _ref15.pA,
1554
- pB = _ref15.pB,
1555
- pC = _ref15.pC,
1556
- pD = _ref15.pD;
1557
- var pAD = new _three.Vector2();
1558
- var pBC = new _three.Vector2();
1559
- var p = new _three.Vector2();
1525
+ pA = _ref13.pA,
1526
+ pB = _ref13.pB,
1527
+ pC = _ref13.pC,
1528
+ pD = _ref13.pD;
1529
+ var pAD = new Vector2();
1530
+ var pBC = new Vector2();
1531
+ var p = new Vector2();
1560
1532
  var gridSize = 12;
1561
1533
  var vertices = [];
1562
1534
  var normals = [];
@@ -1584,12 +1556,11 @@ var createGridGeometryBuffer = function createGridGeometryBuffer(_ref14) {
1584
1556
  indices.push(d, c, b); // face two
1585
1557
  }
1586
1558
  }
1587
-
1588
- var geometry = new _three.BufferGeometry();
1559
+ var geometry = new BufferGeometry();
1589
1560
  geometry.setIndex(indices);
1590
- geometry.setAttribute("position", new _three.Float32BufferAttribute(vertices, 3));
1591
- geometry.setAttribute("normal", new _three.Float32BufferAttribute(normals, 3));
1592
- geometry.setAttribute("uv", new _three.Float32BufferAttribute(uvs, 2));
1561
+ geometry.setAttribute("position", new Float32BufferAttribute(vertices, 3));
1562
+ geometry.setAttribute("normal", new Float32BufferAttribute(normals, 3));
1563
+ geometry.setAttribute("uv", new Float32BufferAttribute(uvs, 2));
1593
1564
  geometry.getControlPoints = function () {
1594
1565
  return {
1595
1566
  pA: pA,
@@ -1619,7 +1590,7 @@ var createBaseShapeGeometry = function createBaseShapeGeometry(designArea) {
1619
1590
  switch (type) {
1620
1591
  case "Plane":
1621
1592
  {
1622
- var _getDesignAreaCanvasS = (0, _getDesignAreaCanvasSize.getDesignAreaCanvasSize)(designArea),
1593
+ var _getDesignAreaCanvasS = getDesignAreaCanvasSize(designArea),
1623
1594
  width = _getDesignAreaCanvasS.width,
1624
1595
  height = _getDesignAreaCanvasS.height;
1625
1596
  if (baseShape.useControlPoints) {
@@ -1629,11 +1600,11 @@ var createBaseShapeGeometry = function createBaseShapeGeometry(designArea) {
1629
1600
  baseShape: baseShape
1630
1601
  });
1631
1602
  }
1632
- return new _three.PlaneGeometry(width, height, 1, 1);
1603
+ return new PlaneGeometry(width, height, 1, 1);
1633
1604
  }
1634
1605
  case "Cylinder":
1635
1606
  {
1636
- var _getDesignAreaCanvasS2 = (0, _getDesignAreaCanvasSize.getDesignAreaCanvasSize)(designArea),
1607
+ var _getDesignAreaCanvasS2 = getDesignAreaCanvasSize(designArea),
1637
1608
  _width = _getDesignAreaCanvasS2.width,
1638
1609
  _height = _getDesignAreaCanvasS2.height;
1639
1610
  var _r$thetaOffset$baseSh = _objectSpread({
@@ -1642,9 +1613,9 @@ var createBaseShapeGeometry = function createBaseShapeGeometry(designArea) {
1642
1613
  }, baseShape),
1643
1614
  r = _r$thetaOffset$baseSh.r,
1644
1615
  thetaOffset = _r$thetaOffset$baseSh.thetaOffset;
1645
- var theta = Math.min(_width / r, _Constants.Numeric.TwoPI);
1616
+ var theta = Math.min(_width / r, Numeric.TwoPI);
1646
1617
  var radiusSegments = Math.round(theta * r);
1647
- return new _three.CylinderGeometry(r, r, _height, radiusSegments, 1, true, -theta / 2 + thetaOffset, theta);
1618
+ return new CylinderGeometry(r, r, _height, radiusSegments, 1, true, -theta / 2 + thetaOffset, theta);
1648
1619
  }
1649
1620
  default:
1650
1621
  throw new Error("Unknown shape type: ".concat(type));