redhotmagma-graphics-editor 1.41.0 → 1.42.0

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 (82) hide show
  1. package/App.js +90 -165
  2. package/CanvasAdapters/Mock/Canvas.js +71 -125
  3. package/CanvasAdapters/Mock/Objects/CanvasObject.js +23 -40
  4. package/CanvasAdapters/Mock/Objects/Group.js +15 -46
  5. package/CanvasAdapters/Mock/Objects/Image.js +15 -46
  6. package/CanvasAdapters/Mock/Objects/Text.js +15 -51
  7. package/CanvasAdapters/Mock/index.js +0 -1
  8. package/CanvasAdapters/PaperJs/Canvas.js +268 -398
  9. package/CanvasAdapters/PaperJs/CanvasRepository.js +6 -23
  10. package/CanvasAdapters/PaperJs/Modifiers/FontSizeMin.js +2 -5
  11. package/CanvasAdapters/PaperJs/Objects/CanvasObject.js +33 -65
  12. package/CanvasAdapters/PaperJs/Objects/Group.js +14 -48
  13. package/CanvasAdapters/PaperJs/Objects/Image.js +58 -114
  14. package/CanvasAdapters/PaperJs/Objects/Text.js +43 -99
  15. package/CanvasAdapters/PaperJs/Utils/HTML2Paper.js +57 -108
  16. package/CanvasAdapters/PaperJs/Utils/SVGfix.js +9 -30
  17. package/CanvasAdapters/PaperJs/Utils/StyleParams.js +10 -21
  18. package/CanvasAdapters/PaperJs/Utils/TextToSVGRepository.js +53 -86
  19. package/CanvasAdapters/PaperJs/Utils/TextToSVGUtils.js +4 -14
  20. package/CanvasAdapters/PaperJs/Utils/UTF8Base64.js +3 -24
  21. package/CanvasAdapters/PaperJs/Utils/UseColorLayer.js +58 -0
  22. package/CanvasAdapters/PaperJs/Utils/UseMask.js +183 -279
  23. package/CanvasAdapters/PaperJs/Utils/__tests__/SVGfix.test.js +0 -1
  24. package/CanvasAdapters/PaperJs/Utils/__tests__/TextToSVGUtils.test.js +0 -1
  25. package/CanvasAdapters/PaperJs/Utils/__tests__/updateFontStyle.test.js +0 -1
  26. package/CanvasAdapters/PaperJs/Utils/updateFontStyle.js +5 -11
  27. package/CanvasAdapters/PaperJs/index.js +0 -1
  28. package/CanvasInterface/Canvas.js +145 -235
  29. package/CanvasInterface/CanvasProvider.js +25 -75
  30. package/CanvasInterface/Objects/CanvasObject.js +68 -148
  31. package/CanvasInterface/Objects/index.js +0 -1
  32. package/CanvasInterface/Observable.js +10 -29
  33. package/CanvasInterface/canvasConnect.js +12 -44
  34. package/CanvasInterface/index.js +1 -7
  35. package/Components/Canvas/Canvas.js +14 -41
  36. package/Components/Canvas/CanvasContainer.js +5 -18
  37. package/Components/Canvas/styles.js +2 -3
  38. package/Components/DelayedContainer.js +14 -39
  39. package/Components/Editor/Editor.js +47 -102
  40. package/Components/Editor/EditorContainer.js +47 -131
  41. package/Components/Editor/styles.js +2 -3
  42. package/Components/InlineToolbox/InlineToolbox.js +49 -142
  43. package/Components/InlineToolbox/InlineToolboxButton.js +9 -19
  44. package/Components/InlineToolbox/styles.js +2 -3
  45. package/Components/ManipulableContainer.js +15 -41
  46. package/Components/ResizeDetect/ResizeDetect.js +14 -47
  47. package/Components/Rulers/Ruler.js +20 -68
  48. package/Components/Rulers/Rulers.js +14 -46
  49. package/Components/Rulers/styles.js +2 -3
  50. package/Components/SelectionToolbox/ColorPalette.js +25 -73
  51. package/Components/SelectionToolbox/SelectionToolbox.js +39 -101
  52. package/Components/SelectionToolbox/TextTools.js +81 -157
  53. package/Components/SelectionToolbox/styles.js +2 -3
  54. package/Components/StandardToolbox/StandardToolbox.js +81 -144
  55. package/Components/TextEditor/TextEditor.js +67 -182
  56. package/Components/TextEditor/TextEditorStateProvider.js +20 -56
  57. package/Components/Toolbox/ToolboxContainer.js +5 -18
  58. package/Components/Toolbox/ToolboxRow.js +4 -16
  59. package/Components/Toolbox/styles.js +2 -3
  60. package/Utils/Calc2D.js +3 -9
  61. package/Utils/DOM.js +22 -80
  62. package/Utils/Device.js +2 -6
  63. package/Utils/Image.js +17 -11
  64. package/Utils/Logger.js +8 -32
  65. package/Utils/Range.js +6 -33
  66. package/Utils/String.js +2 -8
  67. package/Utils/UnitConversion.js +3 -9
  68. package/Utils/__tests__/Calc2D.test.js +1 -3
  69. package/Utils/__tests__/DOM.test.js +17 -25
  70. package/Utils/__tests__/Range.test.js +0 -1
  71. package/_demos/UsingExternalControls/App.js +13 -48
  72. package/_demos/UsingRenderProps/App.js +15 -54
  73. package/index.js +2 -6
  74. package/package.json +5 -7
  75. package/src/App.js +35 -38
  76. package/src/CanvasAdapters/PaperJs/Canvas.ts +11 -0
  77. package/src/CanvasAdapters/PaperJs/Utils/UseColorLayer.js +56 -0
  78. package/src/Components/InlineToolbox/InlineToolbox.js +2 -2
  79. package/src/Components/SelectionToolbox/TextTools.js +1 -1
  80. package/src/_demos/UsingExternalControls/App.js +25 -28
  81. package/src/_demos/UsingRenderProps/App.js +16 -19
  82. package/src/index.js +2 -2
@@ -3,84 +3,53 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.AbstractCanvas = exports.CanvasEvents = void 0;
7
-
6
+ exports.CanvasEvents = exports.AbstractCanvas = void 0;
8
7
  var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
9
-
10
8
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
11
-
12
9
  var _CanvasObject = require("./Objects/CanvasObject");
13
-
14
10
  var _Observable = require("./Observable");
15
-
16
11
  var _Image = require("../Utils/Image");
17
-
18
12
  var _UnitConversion = require("../Utils/UnitConversion");
19
-
20
13
  var _Device = require("../Utils/Device");
21
-
22
14
  var _Logger = _interopRequireDefault(require("../Utils/Logger"));
23
-
24
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
-
16
+ 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; }
26
17
  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); } }
27
-
28
18
  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); }); }; }
29
-
30
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
31
-
32
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
33
-
19
+ 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; }
20
+ 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; }
34
21
  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; } } }; }
35
-
36
22
  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); }
37
-
38
- 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; }
39
-
40
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
41
-
23
+ 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; }
24
+ 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); }
42
25
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
43
-
44
- 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, descriptor.key, descriptor); } }
45
-
46
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
47
-
48
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
49
-
26
+ 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); } }
27
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
28
+ 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; }
29
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
30
+ 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); }
50
31
  var logger = new _Logger["default"]('AbstractCanvas');
51
- var CanvasEvents;
52
- exports.CanvasEvents = CanvasEvents;
53
-
54
- (function (CanvasEvents) {
32
+ var CanvasEvents = exports.CanvasEvents = /*#__PURE__*/function (CanvasEvents) {
55
33
  CanvasEvents["OnChange"] = "onChange";
56
34
  CanvasEvents["OnObjectChange"] = "onObjectChange";
57
35
  CanvasEvents["OnSizeChange"] = "onSizeChange";
58
- })(CanvasEvents || (exports.CanvasEvents = CanvasEvents = {}));
59
-
60
- var AbstractCanvas = /*#__PURE__*/function () {
36
+ return CanvasEvents;
37
+ }({});
38
+ var AbstractCanvas = exports.AbstractCanvas = /*#__PURE__*/function () {
61
39
  function AbstractCanvas(canvasElement) {
62
40
  var _this2 = this;
63
-
64
41
  _classCallCheck(this, AbstractCanvas);
65
-
66
42
  _defineProperty(this, "objects", []);
67
-
68
43
  _defineProperty(this, "zoom", 1);
69
-
70
44
  _defineProperty(this, "canvasElement", void 0);
71
-
72
45
  _defineProperty(this, "selectedObject", null);
73
-
74
46
  _defineProperty(this, "size", {
75
47
  width: 0,
76
48
  height: 0,
77
49
  dpi: 0
78
50
  });
79
-
80
51
  _defineProperty(this, "_objectEventsEnabled", true);
81
-
82
52
  _defineProperty(this, "_observable", new _Observable.Observable(this));
83
-
84
53
  _defineProperty(this, "triggerObjectChangeEvent", function (target, eventData) {
85
54
  _this2._objectEventsEnabled && _this2._observable.triggerEvent(CanvasEvents.OnObjectChange, {
86
55
  changeEvent: {
@@ -89,10 +58,9 @@ var AbstractCanvas = /*#__PURE__*/function () {
89
58
  }
90
59
  });
91
60
  });
92
-
93
61
  if (canvasElement) {
94
62
  var width = canvasElement.width,
95
- height = canvasElement.height;
63
+ height = canvasElement.height;
96
64
  this.init(canvasElement, {
97
65
  canvasSize: {
98
66
  width: width,
@@ -101,7 +69,6 @@ var AbstractCanvas = /*#__PURE__*/function () {
101
69
  });
102
70
  }
103
71
  }
104
-
105
72
  _createClass(AbstractCanvas, [{
106
73
  key: "init",
107
74
  value: function init(canvasElement, options) {
@@ -110,18 +77,15 @@ var AbstractCanvas = /*#__PURE__*/function () {
110
77
  } else if ((0, _isPlainObject["default"])(canvasElement)) {
111
78
  this.canvasElement = this.createCanvasElement(canvasElement);
112
79
  }
113
-
114
80
  if (_typeof(options) === 'object') {
115
81
  var canvasSize = options.canvasSize;
116
-
117
82
  if (canvasSize) {
118
83
  this.setSize(canvasSize);
119
84
  }
120
- } // there can be a previously called fromObject function, so we can call it here after initializations
85
+ }
86
+ // there can be a previously called fromObject function, so we can call it here after initializations
121
87
  // note: the fromObject implementation in the canvas adapter may work only after the canvas is available
122
88
  // (like in Paper.js, the added objects are visible only when the canvas is already available)
123
-
124
-
125
89
  this._fromObject && this._fromObject();
126
90
  return this;
127
91
  }
@@ -135,12 +99,11 @@ var AbstractCanvas = /*#__PURE__*/function () {
135
99
  key: "createCanvasElement",
136
100
  value: function createCanvasElement() {
137
101
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
138
- width: 0,
139
- height: 0
140
- },
141
- width = _ref.width,
142
- height = _ref.height;
143
-
102
+ width: 0,
103
+ height: 0
104
+ },
105
+ width = _ref.width,
106
+ height = _ref.height;
144
107
  var canvas = document.createElement('canvas');
145
108
  canvas.width = width;
146
109
  canvas.height = height;
@@ -158,12 +121,10 @@ var AbstractCanvas = /*#__PURE__*/function () {
158
121
  key: "remove",
159
122
  value: function remove(obj) {
160
123
  var idx = this.objects.indexOf(obj);
161
-
162
124
  if (idx !== -1) {
163
125
  if (this.selectedObject === obj) {
164
126
  this.deselectObject(obj);
165
127
  }
166
-
167
128
  this.objects.splice(idx, 1);
168
129
  obj.off(_CanvasObject.CanvasObjectEvents.OnChange, this.triggerObjectChangeEvent);
169
130
  this.triggerObjectChangeEvent(obj);
@@ -173,8 +134,8 @@ var AbstractCanvas = /*#__PURE__*/function () {
173
134
  key: "clear",
174
135
  value: function clear() {
175
136
  // restore the canvas state
176
- this.clearSelection(); // remove all objects
177
-
137
+ this.clearSelection();
138
+ // remove all objects
178
139
  while (this.objects.length > 0) {
179
140
  this.objects.pop().remove();
180
141
  }
@@ -189,11 +150,9 @@ var AbstractCanvas = /*#__PURE__*/function () {
189
150
  value: function setObjectIndex(obj, newIdx) {
190
151
  var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
191
152
  var idx = this.objects.indexOf(obj);
192
-
193
153
  if (idx !== -1) {
194
154
  // remove the object from its current position
195
155
  this.objects.splice(idx, 1);
196
-
197
156
  if (overwrite) {
198
157
  // overwrite mode
199
158
  this.objects[newIdx] = obj;
@@ -233,45 +192,37 @@ var AbstractCanvas = /*#__PURE__*/function () {
233
192
  key: "setSize",
234
193
  value: function setSize() {
235
194
  var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSize();
236
-
237
195
  if (size.isMetric) {
238
196
  return this.setSizeMetric(size);
239
197
  }
240
-
241
198
  if (!(0, _isEqual["default"])(this.size, size)) {
242
199
  this.size = size;
243
-
244
200
  this._observable.triggerEvent(CanvasEvents.OnSizeChange);
245
201
  }
246
-
247
202
  return this;
248
203
  }
249
204
  }, {
250
205
  key: "setSizeMetric",
251
206
  value: function setSizeMetric(metricSize) {
252
207
  var width = metricSize.width,
253
- height = metricSize.height,
254
- dpi = metricSize.dpi;
208
+ height = metricSize.height,
209
+ dpi = metricSize.dpi;
255
210
  var size = {
256
211
  width: (0, _UnitConversion.mmsToPixels)(width, dpi),
257
212
  height: (0, _UnitConversion.mmsToPixels)(height, dpi),
258
213
  dpi: dpi
259
214
  };
260
-
261
215
  if (!(0, _isEqual["default"])(this.size, size)) {
262
216
  this.size = size;
263
-
264
217
  this._observable.triggerEvent(CanvasEvents.OnSizeChange);
265
218
  }
266
-
267
219
  return this;
268
220
  }
269
221
  }, {
270
222
  key: "updateObjectConstraints",
271
223
  value: function updateObjectConstraints() {
272
224
  var _iterator = _createForOfIteratorHelper(this.objects),
273
- _step;
274
-
225
+ _step;
275
226
  try {
276
227
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
277
228
  var o = _step.value;
@@ -292,12 +243,10 @@ var AbstractCanvas = /*#__PURE__*/function () {
292
243
  key: "getWrapperObject",
293
244
  value: function getWrapperObject(wrappedObj) {
294
245
  var _iterator2 = _createForOfIteratorHelper(this.objects),
295
- _step2;
296
-
246
+ _step2;
297
247
  try {
298
248
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
299
249
  var o = _step2.value;
300
-
301
250
  if (o.wrappedObject === wrappedObj) {
302
251
  return o;
303
252
  }
@@ -307,21 +256,18 @@ var AbstractCanvas = /*#__PURE__*/function () {
307
256
  } finally {
308
257
  _iterator2.f();
309
258
  }
310
-
311
259
  return false;
312
260
  }
313
261
  }, {
314
262
  key: "setSelectedObject",
315
263
  value: function setSelectedObject(object) {
316
264
  this.selectedObject = object;
317
-
318
265
  this._observable.triggerEvent(CanvasEvents.OnChange);
319
266
  }
320
267
  }, {
321
268
  key: "deselectObject",
322
269
  value: function deselectObject(object) {
323
270
  this.selectedObject = null;
324
-
325
271
  this._observable.triggerEvent(CanvasEvents.OnChange);
326
272
  }
327
273
  }, {
@@ -337,7 +283,7 @@ var AbstractCanvas = /*#__PURE__*/function () {
337
283
  key: "getState",
338
284
  value: function getState() {
339
285
  var selectedObject = this.selectedObject,
340
- size = this.size;
286
+ size = this.size;
341
287
  return {
342
288
  selectedObject: selectedObject ? selectedObject.getState() : null,
343
289
  size: size
@@ -362,19 +308,14 @@ var AbstractCanvas = /*#__PURE__*/function () {
362
308
  key: "toObject",
363
309
  value: function toObject() {
364
310
  var stringify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
365
-
366
311
  var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
367
- includeObjects = _ref2.includeObjects,
368
- includeWrappedObject = _ref2.includeWrappedObject;
369
-
312
+ includeObjects = _ref2.includeObjects,
313
+ includeWrappedObject = _ref2.includeWrappedObject;
370
314
  var canvasObj = {};
371
-
372
315
  if (includeObjects) {
373
316
  var objects = [];
374
-
375
317
  var _iterator3 = _createForOfIteratorHelper(this.objects),
376
- _step3;
377
-
318
+ _step3;
378
319
  try {
379
320
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
380
321
  var o = _step3.value;
@@ -385,36 +326,27 @@ var AbstractCanvas = /*#__PURE__*/function () {
385
326
  } finally {
386
327
  _iterator3.f();
387
328
  }
388
-
389
329
  canvasObj.objects = objects;
390
330
  }
391
-
392
331
  return stringify ? JSON.stringify(canvasObj) : canvasObj;
393
332
  }
394
333
  }, {
395
334
  key: "toObjectWithMetric",
396
335
  value: function toObjectWithMetric() {
397
336
  var stringify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
398
-
399
337
  var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
400
- includeWrappedObject = _ref3.includeWrappedObject;
401
-
338
+ includeWrappedObject = _ref3.includeWrappedObject;
402
339
  // include all objects with metric position and size
403
340
  var objects = [];
404
-
405
341
  var _iterator4 = _createForOfIteratorHelper(this.objects),
406
- _step4;
407
-
342
+ _step4;
408
343
  try {
409
344
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
410
345
  var o = _step4.value;
411
-
412
346
  var _obj = o.toObject(includeWrappedObject);
413
-
414
347
  var _o$getScaledSize = o.getScaledSize(),
415
- width = _o$getScaledSize.width,
416
- height = _o$getScaledSize.height;
417
-
348
+ width = _o$getScaledSize.width,
349
+ height = _o$getScaledSize.height;
418
350
  _obj.metric = {
419
351
  x: (0, _UnitConversion.pixelsToMms)(_obj.x),
420
352
  y: (0, _UnitConversion.pixelsToMms)(_obj.y),
@@ -428,158 +360,143 @@ var AbstractCanvas = /*#__PURE__*/function () {
428
360
  } finally {
429
361
  _iterator4.f();
430
362
  }
431
-
432
363
  var size = this.getSize();
433
-
434
364
  var canvasObj = _objectSpread(_objectSpread({}, this.toObject(stringify, {
435
365
  includeObjects: false
436
366
  })), {}, {
437
367
  objects: objects,
438
368
  size: size
439
369
  });
440
-
441
370
  return stringify ? JSON.stringify(canvasObj) : canvasObj;
442
371
  }
443
372
  }, {
444
373
  key: "updateFromObject",
445
374
  value: function () {
446
- var _updateFromObject = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(canvasObject) {
375
+ var _updateFromObject = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(canvasObject) {
447
376
  var _this3 = this;
448
-
449
377
  var objects, wait, _loop, i;
450
-
451
- return regeneratorRuntime.wrap(function _callee$(_context) {
452
- while (1) {
453
- switch (_context.prev = _context.next) {
454
- case 0:
455
- this._objectEventsEnabled = false;
456
- objects = canvasObject.objects;
457
- wait = [];
458
-
459
- if (objects && objects.length > 0) {
460
- _loop = function _loop(i) {
461
- var rawObject = objects[i];
462
-
463
- var currentObject = _this3.objects.find(function (_ref4) {
464
- var uuid = _ref4.uuid;
465
- return uuid === rawObject.uuid;
466
- });
467
-
468
- if (currentObject) {
469
- wait.push(currentObject.updateOptions(rawObject));
470
- } else {
471
- logger.error('Object not found!', rawObject);
472
- }
473
- };
474
-
475
- for (i = 0; i < objects.length; i++) {
476
- _loop(i);
378
+ return _regeneratorRuntime().wrap(function _callee$(_context2) {
379
+ while (1) switch (_context2.prev = _context2.next) {
380
+ case 0:
381
+ this._objectEventsEnabled = false;
382
+ objects = canvasObject.objects;
383
+ wait = [];
384
+ if (!(objects && objects.length > 0)) {
385
+ _context2.next = 11;
386
+ break;
387
+ }
388
+ _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() {
389
+ var rawObject, currentObject;
390
+ return _regeneratorRuntime().wrap(function _loop$(_context) {
391
+ while (1) switch (_context.prev = _context.next) {
392
+ case 0:
393
+ rawObject = objects[i];
394
+ currentObject = _this3.objects.find(function (_ref4) {
395
+ var uuid = _ref4.uuid;
396
+ return uuid === rawObject.uuid;
397
+ });
398
+ if (currentObject) {
399
+ wait.push(currentObject.updateOptions(rawObject));
400
+ } else {
401
+ logger.error('Object not found!', rawObject);
402
+ }
403
+ case 3:
404
+ case "end":
405
+ return _context.stop();
477
406
  }
478
- }
479
-
480
- _context.next = 6;
481
- return Promise.all(wait);
482
-
483
- case 6:
484
- this._objectEventsEnabled = true;
485
-
486
- this._observable.triggerEvent(CanvasEvents.OnChange);
487
-
488
- case 8:
489
- case "end":
490
- return _context.stop();
491
- }
407
+ }, _loop);
408
+ });
409
+ i = 0;
410
+ case 6:
411
+ if (!(i < objects.length)) {
412
+ _context2.next = 11;
413
+ break;
414
+ }
415
+ return _context2.delegateYield(_loop(), "t0", 8);
416
+ case 8:
417
+ i++;
418
+ _context2.next = 6;
419
+ break;
420
+ case 11:
421
+ _context2.next = 13;
422
+ return Promise.all(wait);
423
+ case 13:
424
+ this._objectEventsEnabled = true;
425
+ this._observable.triggerEvent(CanvasEvents.OnChange);
426
+ case 15:
427
+ case "end":
428
+ return _context2.stop();
492
429
  }
493
430
  }, _callee, this);
494
431
  }));
495
-
496
432
  function updateFromObject(_x) {
497
433
  return _updateFromObject.apply(this, arguments);
498
434
  }
499
-
500
435
  return updateFromObject;
501
436
  }()
502
437
  }, {
503
438
  key: "fromObject",
504
439
  value: function () {
505
- var _fromObject = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(canvasObject) {
440
+ var _fromObject = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(canvasObject) {
506
441
  var _this, objects, wait, i, addedObjects;
507
-
508
- return regeneratorRuntime.wrap(function _callee3$(_context3) {
509
- while (1) {
510
- switch (_context3.prev = _context3.next) {
511
- case 0:
512
- if (this.canvasElement) {
513
- _context3.next = 3;
514
- break;
515
- }
516
-
517
- _this = this;
518
- return _context3.abrupt("return", new Promise(function (resolve) {
519
- _this._fromObject = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
520
- var result;
521
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
522
- while (1) {
523
- switch (_context2.prev = _context2.next) {
524
- case 0:
525
- delete _this._fromObject;
526
- _context2.next = 3;
527
- return _this.fromObject(canvasObject);
528
-
529
- case 3:
530
- result = _context2.sent;
531
- resolve(result);
532
-
533
- case 5:
534
- case "end":
535
- return _context2.stop();
536
- }
537
- }
538
- }, _callee2);
539
- }));
442
+ return _regeneratorRuntime().wrap(function _callee3$(_context4) {
443
+ while (1) switch (_context4.prev = _context4.next) {
444
+ case 0:
445
+ if (this.canvasElement) {
446
+ _context4.next = 3;
447
+ break;
448
+ }
449
+ _this = this;
450
+ return _context4.abrupt("return", new Promise(function (resolve) {
451
+ _this._fromObject = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
452
+ var result;
453
+ return _regeneratorRuntime().wrap(function _callee2$(_context3) {
454
+ while (1) switch (_context3.prev = _context3.next) {
455
+ case 0:
456
+ delete _this._fromObject;
457
+ _context3.next = 3;
458
+ return _this.fromObject(canvasObject);
459
+ case 3:
460
+ result = _context3.sent;
461
+ resolve(result);
462
+ case 5:
463
+ case "end":
464
+ return _context3.stop();
465
+ }
466
+ }, _callee2);
540
467
  }));
541
-
542
- case 3:
543
- this._objectEventsEnabled = false;
544
- this.clear();
545
-
546
- if (canvasObject) {
547
- _context3.next = 7;
548
- break;
549
- }
550
-
551
- return _context3.abrupt("return", Promise.resolve());
552
-
553
- case 7:
554
- objects = canvasObject.objects;
555
- wait = [];
556
-
557
- if (objects && objects.length > 0) {
558
- for (i = 0; i < objects.length; i++) {
559
- wait.push(this.addItemFromObject(objects[i], i, true));
560
- }
468
+ }));
469
+ case 3:
470
+ this._objectEventsEnabled = false;
471
+ this.clear();
472
+ if (canvasObject) {
473
+ _context4.next = 7;
474
+ break;
475
+ }
476
+ return _context4.abrupt("return", Promise.resolve());
477
+ case 7:
478
+ objects = canvasObject.objects;
479
+ wait = [];
480
+ if (objects && objects.length > 0) {
481
+ for (i = 0; i < objects.length; i++) {
482
+ wait.push(this.addItemFromObject(objects[i], i, true));
561
483
  }
562
-
563
- _context3.next = 12;
564
- return Promise.all(wait);
565
-
566
- case 12:
567
- addedObjects = _context3.sent;
568
- this._objectEventsEnabled = true;
569
- return _context3.abrupt("return", addedObjects);
570
-
571
- case 15:
572
- case "end":
573
- return _context3.stop();
574
- }
484
+ }
485
+ _context4.next = 12;
486
+ return Promise.all(wait);
487
+ case 12:
488
+ addedObjects = _context4.sent;
489
+ this._objectEventsEnabled = true;
490
+ return _context4.abrupt("return", addedObjects);
491
+ case 15:
492
+ case "end":
493
+ return _context4.stop();
575
494
  }
576
495
  }, _callee3, this);
577
496
  }));
578
-
579
497
  function fromObject(_x2) {
580
498
  return _fromObject.apply(this, arguments);
581
499
  }
582
-
583
500
  return fromObject;
584
501
  }()
585
502
  }, {
@@ -597,37 +514,30 @@ var AbstractCanvas = /*#__PURE__*/function () {
597
514
  */
598
515
  function addToContainer() {
599
516
  var _this4 = this;
600
-
601
517
  var containerElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.body;
602
518
  var canvasElement = this.canvasElement;
603
-
604
519
  if (containerElement === document.body && canvasElement.parentNode) {
605
520
  // the canvas is already added to the DOM
606
521
  return false;
607
522
  }
608
-
609
523
  containerElement.appendChild(canvasElement);
610
-
611
524
  this.removeFromContainer = function () {
612
525
  containerElement.removeChild(canvasElement);
613
-
614
- _this4.removeFromContainer = function () {//do nothing
526
+ _this4.removeFromContainer = function () {
527
+ //do nothing
615
528
  };
616
529
  };
617
-
618
530
  return true;
619
531
  }
532
+
620
533
  /**
621
534
  * A placeholder function that is assigned in addToContainer above
622
535
  */
623
-
624
536
  }, {
625
537
  key: "removeFromContainer",
626
- value: function removeFromContainer() {//do nothing
538
+ value: function removeFromContainer() {
539
+ //do nothing
627
540
  }
628
541
  }]);
629
-
630
542
  return AbstractCanvas;
631
- }();
632
-
633
- exports.AbstractCanvas = AbstractCanvas;
543
+ }();