@visactor/vrender-kits 0.9.0-alpha.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.
- package/README.md +9 -0
- package/cjs/canvas/contributions/canvas-module.d.ts +2 -0
- package/cjs/canvas/contributions/canvas-module.js +20 -0
- package/cjs/canvas/contributions/canvas-module.js.map +1 -0
- package/cjs/canvas/contributions/node/canvas.d.ts +44 -0
- package/cjs/canvas/contributions/node/canvas.js +100 -0
- package/cjs/canvas/contributions/node/canvas.js.map +1 -0
- package/cjs/canvas/contributions/node/context.d.ts +7 -0
- package/cjs/canvas/contributions/node/context.js +30 -0
- package/cjs/canvas/contributions/node/context.js.map +1 -0
- package/cjs/canvas/contributions/node/index.d.ts +2 -0
- package/cjs/canvas/contributions/node/index.js +21 -0
- package/cjs/canvas/contributions/node/index.js.map +1 -0
- package/cjs/canvas/contributions/node/modules.d.ts +3 -0
- package/cjs/canvas/contributions/node/modules.js +13 -0
- package/cjs/canvas/contributions/node/modules.js.map +1 -0
- package/cjs/canvas/index.d.ts +1 -0
- package/cjs/canvas/index.js +6 -0
- package/cjs/canvas/index.js.map +1 -0
- package/cjs/env/contributions/module.d.ts +3 -0
- package/cjs/env/contributions/module.js +12 -0
- package/cjs/env/contributions/module.js.map +1 -0
- package/cjs/env/contributions/node-contribution.d.ts +47 -0
- package/cjs/env/contributions/node-contribution.js +118 -0
- package/cjs/env/contributions/node-contribution.js.map +1 -0
- package/cjs/index-node.d.ts +5 -0
- package/cjs/index-node.js +25 -0
- package/cjs/index-node.js.map +1 -0
- package/cjs/index.d.ts +4 -0
- package/cjs/index.js +16 -0
- package/cjs/index.js.map +1 -0
- package/cjs/node-bind.d.ts +2 -0
- package/cjs/node-bind.js +20 -0
- package/cjs/node-bind.js.map +1 -0
- package/cjs/render/contributions/render-module.d.ts +1 -0
- package/cjs/render/contributions/render-module.js +1 -0
- package/cjs/render/contributions/render-module.js.map +1 -0
- package/cjs/render/contributions/rough/config.d.ts +2 -0
- package/cjs/render/contributions/rough/config.js +28 -0
- package/cjs/render/contributions/rough/config.js.map +1 -0
- package/cjs/render/contributions/rough/module.d.ts +3 -0
- package/cjs/render/contributions/rough/module.js +18 -0
- package/cjs/render/contributions/rough/module.js.map +1 -0
- package/cjs/render/contributions/rough/rough-arc.d.ts +10 -0
- package/cjs/render/contributions/rough/rough-arc.js +75 -0
- package/cjs/render/contributions/rough/rough-arc.js.map +1 -0
- package/cjs/render/contributions/rough/rough-area.d.ts +8 -0
- package/cjs/render/contributions/rough/rough-area.js +67 -0
- package/cjs/render/contributions/rough/rough-area.js.map +1 -0
- package/cjs/render/contributions/rough/rough-circle.d.ts +10 -0
- package/cjs/render/contributions/rough/rough-circle.js +55 -0
- package/cjs/render/contributions/rough/rough-circle.js.map +1 -0
- package/cjs/render/contributions/rough/rough-line.d.ts +8 -0
- package/cjs/render/contributions/rough/rough-line.js +68 -0
- package/cjs/render/contributions/rough/rough-line.js.map +1 -0
- package/cjs/render/contributions/rough/rough-path.d.ts +10 -0
- package/cjs/render/contributions/rough/rough-path.js +73 -0
- package/cjs/render/contributions/rough/rough-path.js.map +1 -0
- package/cjs/render/contributions/rough/rough-rect.d.ts +10 -0
- package/cjs/render/contributions/rough/rough-rect.js +77 -0
- package/cjs/render/contributions/rough/rough-rect.js.map +1 -0
- package/cjs/render/contributions/rough/rough-symbol.d.ts +10 -0
- package/cjs/render/contributions/rough/rough-symbol.js +79 -0
- package/cjs/render/contributions/rough/rough-symbol.js.map +1 -0
- package/cjs/window/contributions/modules.d.ts +3 -0
- package/cjs/window/contributions/modules.js +13 -0
- package/cjs/window/contributions/modules.js.map +1 -0
- package/cjs/window/contributions/node-contribution.d.ts +38 -0
- package/cjs/window/contributions/node-contribution.js +109 -0
- package/cjs/window/contributions/node-contribution.js.map +1 -0
- package/dist/vrender-kits.js.js +1 -0
- package/dist/vrender-kits.js.min.js +1 -0
- package/es/canvas/contributions/canvas-module.d.ts +2 -0
- package/es/canvas/contributions/canvas-module.js +6 -0
- package/es/canvas/contributions/canvas-module.js.map +1 -0
- package/es/canvas/contributions/node/canvas.d.ts +44 -0
- package/es/canvas/contributions/node/canvas.js +99 -0
- package/es/canvas/contributions/node/canvas.js.map +1 -0
- package/es/canvas/contributions/node/context.d.ts +7 -0
- package/es/canvas/contributions/node/context.js +31 -0
- package/es/canvas/contributions/node/context.js.map +1 -0
- package/es/canvas/contributions/node/index.d.ts +2 -0
- package/es/canvas/contributions/node/index.js +4 -0
- package/es/canvas/contributions/node/index.js.map +1 -0
- package/es/canvas/contributions/node/modules.d.ts +3 -0
- package/es/canvas/contributions/node/modules.js +13 -0
- package/es/canvas/contributions/node/modules.js.map +1 -0
- package/es/canvas/index.d.ts +1 -0
- package/es/canvas/index.js +2 -0
- package/es/canvas/index.js.map +1 -0
- package/es/env/contributions/module.d.ts +3 -0
- package/es/env/contributions/module.js +10 -0
- package/es/env/contributions/module.js.map +1 -0
- package/es/env/contributions/node-contribution.d.ts +47 -0
- package/es/env/contributions/node-contribution.js +94 -0
- package/es/env/contributions/node-contribution.js.map +1 -0
- package/es/index-node.d.ts +5 -0
- package/es/index-node.js +11 -0
- package/es/index-node.js.map +1 -0
- package/es/index.d.ts +4 -0
- package/es/index.js +10 -0
- package/es/index.js.map +1 -0
- package/es/node-bind.d.ts +2 -0
- package/es/node-bind.js +10 -0
- package/es/node-bind.js.map +1 -0
- package/es/render/contributions/render-module.d.ts +1 -0
- package/es/render/contributions/render-module.js +1 -0
- package/es/render/contributions/render-module.js.map +1 -0
- package/es/render/contributions/rough/config.d.ts +2 -0
- package/es/render/contributions/rough/config.js +24 -0
- package/es/render/contributions/rough/config.js.map +1 -0
- package/es/render/contributions/rough/module.d.ts +3 -0
- package/es/render/contributions/rough/module.js +28 -0
- package/es/render/contributions/rough/module.js.map +1 -0
- package/es/render/contributions/rough/rough-arc.d.ts +10 -0
- package/es/render/contributions/rough/rough-arc.js +71 -0
- package/es/render/contributions/rough/rough-arc.js.map +1 -0
- package/es/render/contributions/rough/rough-area.d.ts +8 -0
- package/es/render/contributions/rough/rough-area.js +64 -0
- package/es/render/contributions/rough/rough-area.js.map +1 -0
- package/es/render/contributions/rough/rough-circle.d.ts +10 -0
- package/es/render/contributions/rough/rough-circle.js +48 -0
- package/es/render/contributions/rough/rough-circle.js.map +1 -0
- package/es/render/contributions/rough/rough-line.d.ts +8 -0
- package/es/render/contributions/rough/rough-line.js +65 -0
- package/es/render/contributions/rough/rough-line.js.map +1 -0
- package/es/render/contributions/rough/rough-path.d.ts +10 -0
- package/es/render/contributions/rough/rough-path.js +69 -0
- package/es/render/contributions/rough/rough-path.js.map +1 -0
- package/es/render/contributions/rough/rough-rect.d.ts +10 -0
- package/es/render/contributions/rough/rough-rect.js +73 -0
- package/es/render/contributions/rough/rough-rect.js.map +1 -0
- package/es/render/contributions/rough/rough-symbol.d.ts +10 -0
- package/es/render/contributions/rough/rough-symbol.js +75 -0
- package/es/render/contributions/rough/rough-symbol.js.map +1 -0
- package/es/window/contributions/modules.d.ts +3 -0
- package/es/window/contributions/modules.js +10 -0
- package/es/window/contributions/modules.js.map +1 -0
- package/es/window/contributions/node-contribution.d.ts +38 -0
- package/es/window/contributions/node-contribution.js +107 -0
- package/es/window/contributions/node-contribution.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@visactor/vrender"),require("@visactor/vutils")):"function"==typeof define&&define.amd?define(["exports","@visactor/vrender","@visactor/vutils"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).VRender=e.VRender||{},e.VRender.Kits={}),e.vrender,e.vutils)}(this,(function(e,t,r){"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(i=n.key,a=void 0,"symbol"==typeof(a=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(i,"string"))?a:String(a)),n)}var i,a}function s(e,t,r){return t&&a(e.prototype,t),r&&a(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&u(e,t)}function l(e){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},l(e)}function u(e,t){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function h(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function f(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=l(e);if(t){var i=l(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return h(this,r)}}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,a,s,o=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=a.call(r)).done)&&(o.push(n.value),o.length!==t);l=!0);}catch(e){u=!0,i=e}finally{try{if(!l&&null!=r.return&&(s=r.return(),Object(s)!==s))return}finally{if(u)throw i}}return o}}(e,t)||d(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){if(e){if("string"==typeof e)return v(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?v(e,t):void 0}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function y(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=d(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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 a,s=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){o=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(o)throw a}}}}var g,m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};!function(e){!function(t){var r="object"===n(m)?m:"object"===("undefined"==typeof self?"undefined":n(self))?self:"object"===n(this)?this:Function("return this;")(),i=a(e);function a(e,t){return function(r,n){"function"!=typeof e[r]&&Object.defineProperty(e,r,{configurable:!0,writable:!0,value:n}),t&&t(r,n)}}void 0===r.Reflect?r.Reflect=e:i=a(r.Reflect,i),function(e){var t=Object.prototype.hasOwnProperty,r="function"==typeof Symbol,i=r&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",a=r&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",s="function"==typeof Object.create,o={__proto__:[]}instanceof Array,l=!s&&!o,u={create:s?function(){return ie(Object.create(null))}:o?function(){return ie({__proto__:null})}:function(){return ie({})},has:l?function(e,r){return t.call(e,r)}:function(e,t){return t in e},get:l?function(e,r){return t.call(e,r)?e[r]:void 0}:function(e,t){return e[t]}},h=Object.getPrototypeOf(Function),f="object"===("undefined"==typeof process?"undefined":n(process))&&process.env&&"true"===process.env.REFLECT_METADATA_USE_MAP_POLYFILL,c=f||"function"!=typeof Map||"function"!=typeof Map.prototype.entries?te():Map,p=f||"function"!=typeof Set||"function"!=typeof Set.prototype.entries?re():Set,d=new(f||"function"!=typeof WeakMap?ne():WeakMap);function v(e,t,r,n){if(W(r)){if(!U(e))throw new TypeError;if(!Y(t))throw new TypeError;return O(e,t)}if(!U(e))throw new TypeError;if(!G(t))throw new TypeError;if(!G(n)&&!W(n)&&!j(n))throw new TypeError;return j(n)&&(n=void 0),_(e,t,r=H(r),n)}function y(e,t){function r(r,n){if(!G(r))throw new TypeError;if(!W(n)&&!K(n))throw new TypeError;L(e,t,r,n)}return r}function g(e,t,r,n){if(!G(r))throw new TypeError;return W(n)||(n=H(n)),L(e,t,r,n)}function m(e,t,r){if(!G(t))throw new TypeError;return W(r)||(r=H(r)),P(e,t,r)}function b(e,t,r){if(!G(t))throw new TypeError;return W(r)||(r=H(r)),T(e,t,r)}function k(e,t,r){if(!G(t))throw new TypeError;return W(r)||(r=H(r)),R(e,t,r)}function M(e,t,r){if(!G(t))throw new TypeError;return W(r)||(r=H(r)),D(e,t,r)}function w(e,t){if(!G(e))throw new TypeError;return W(t)||(t=H(t)),E(e,t)}function S(e,t){if(!G(e))throw new TypeError;return W(t)||(t=H(t)),z(e,t)}function x(e,t,r){if(!G(t))throw new TypeError;W(r)||(r=H(r));var n=C(t,r,!1);if(W(n))return!1;if(!n.delete(e))return!1;if(n.size>0)return!0;var i=d.get(t);return i.delete(r),i.size>0||d.delete(t),!0}function O(e,t){for(var r=e.length-1;r>=0;--r){var n=(0,e[r])(t);if(!W(n)&&!j(n)){if(!Y(n))throw new TypeError;t=n}}return t}function _(e,t,r,n){for(var i=e.length-1;i>=0;--i){var a=(0,e[i])(t,r,n);if(!W(a)&&!j(a)){if(!G(a))throw new TypeError;n=a}}return n}function C(e,t,r){var n=d.get(e);if(W(n)){if(!r)return;n=new c,d.set(e,n)}var i=n.get(t);if(W(i)){if(!r)return;i=new c,n.set(t,i)}return i}function P(e,t,r){if(T(e,t,r))return!0;var n=ee(t);return!j(n)&&P(e,n,r)}function T(e,t,r){var n=C(t,r,!1);return!W(n)&&q(n.has(e))}function R(e,t,r){if(T(e,t,r))return D(e,t,r);var n=ee(t);return j(n)?void 0:R(e,n,r)}function D(e,t,r){var n=C(t,r,!1);if(!W(n))return n.get(e)}function L(e,t,r,n){C(r,n,!0).set(e,t)}function E(e,t){var r=z(e,t),n=ee(e);if(null===n)return r;var i=E(n,t);if(i.length<=0)return r;if(r.length<=0)return i;for(var a=new p,s=[],o=0,l=r;o<l.length;o++){var u=l[o];a.has(u)||(a.add(u),s.push(u))}for(var h=0,f=i;h<f.length;h++){u=f[h];a.has(u)||(a.add(u),s.push(u))}return s}function z(e,t){var r=[],n=C(e,t,!1);if(W(n))return r;for(var i=Q(n.keys()),a=0;;){var s=X(i);if(!s)return r.length=a,r;var o=$(s);try{r[a]=o}catch(e){try{J(i)}finally{throw e}}a++}}function A(e){if(null===e)return 1;switch(n(e)){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===e?1:6;default:return 6}}function W(e){return void 0===e}function j(e){return null===e}function F(e){return"symbol"===n(e)}function G(e){return"object"===n(e)?null!==e:"function"==typeof e}function I(e,t){switch(A(e)){case 0:case 1:case 2:case 3:case 4:case 5:return e}var r=3===t?"string":5===t?"number":"default",n=Z(e,i);if(void 0!==n){var a=n.call(e,r);if(G(a))throw new TypeError;return a}return V(e,"default"===r?"number":r)}function V(e,t){if("string"===t){var r=e.toString;if(N(r))if(!G(i=r.call(e)))return i;if(N(n=e.valueOf))if(!G(i=n.call(e)))return i}else{var n;if(N(n=e.valueOf))if(!G(i=n.call(e)))return i;var i,a=e.toString;if(N(a))if(!G(i=a.call(e)))return i}throw new TypeError}function q(e){return!!e}function B(e){return""+e}function H(e){var t=I(e,3);return F(t)?t:B(t)}function U(e){return Array.isArray?Array.isArray(e):e instanceof Object?e instanceof Array:"[object Array]"===Object.prototype.toString.call(e)}function N(e){return"function"==typeof e}function Y(e){return"function"==typeof e}function K(e){switch(A(e)){case 3:case 4:return!0;default:return!1}}function Z(e,t){var r=e[t];if(null!=r){if(!N(r))throw new TypeError;return r}}function Q(e){var t=Z(e,a);if(!N(t))throw new TypeError;var r=t.call(e);if(!G(r))throw new TypeError;return r}function $(e){return e.value}function X(e){var t=e.next();return!t.done&&t}function J(e){var t=e.return;t&&t.call(e)}function ee(e){var t=Object.getPrototypeOf(e);if("function"!=typeof e||e===h)return t;if(t!==h)return t;var r=e.prototype,n=r&&Object.getPrototypeOf(r);if(null==n||n===Object.prototype)return t;var i=n.constructor;return"function"!=typeof i||i===e?t:i}function te(){var e={},t=[],r=function(){function e(e,t,r){this._index=0,this._keys=e,this._values=t,this._selector=r}return e.prototype["@@iterator"]=function(){return this},e.prototype[a]=function(){return this},e.prototype.next=function(){var e=this._index;if(e>=0&&e<this._keys.length){var r=this._selector(this._keys[e],this._values[e]);return e+1>=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},e.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},e.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},e}();return function(){function t(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.has=function(e){return this._find(e,!1)>=0},t.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},t.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},t.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var n=this._keys.length,i=r+1;i<n;i++)this._keys[i-1]=this._keys[i],this._values[i-1]=this._values[i];return this._keys.length--,this._values.length--,t===this._cacheKey&&(this._cacheKey=e,this._cacheIndex=-2),!0}return!1},t.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=e,this._cacheIndex=-2},t.prototype.keys=function(){return new r(this._keys,this._values,n)},t.prototype.values=function(){return new r(this._keys,this._values,i)},t.prototype.entries=function(){return new r(this._keys,this._values,s)},t.prototype["@@iterator"]=function(){return this.entries()},t.prototype[a]=function(){return this.entries()},t.prototype._find=function(e,t){return this._cacheKey!==e&&(this._cacheIndex=this._keys.indexOf(this._cacheKey=e)),this._cacheIndex<0&&t&&(this._cacheIndex=this._keys.length,this._keys.push(e),this._values.push(void 0)),this._cacheIndex},t}();function n(e,t){return e}function i(e,t){return t}function s(e,t){return[e,t]}}function re(){return function(){function e(){this._map=new c}return Object.defineProperty(e.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),e.prototype.has=function(e){return this._map.has(e)},e.prototype.add=function(e){return this._map.set(e,e),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.clear=function(){this._map.clear()},e.prototype.keys=function(){return this._map.keys()},e.prototype.values=function(){return this._map.values()},e.prototype.entries=function(){return this._map.entries()},e.prototype["@@iterator"]=function(){return this.keys()},e.prototype[a]=function(){return this.keys()},e}()}function ne(){var e=16,r=u.create(),n=i();return function(){function e(){this._key=i()}return e.prototype.has=function(e){var t=a(e,!1);return void 0!==t&&u.has(t,this._key)},e.prototype.get=function(e){var t=a(e,!1);return void 0!==t?u.get(t,this._key):void 0},e.prototype.set=function(e,t){return a(e,!0)[this._key]=t,this},e.prototype.delete=function(e){var t=a(e,!1);return void 0!==t&&delete t[this._key]},e.prototype.clear=function(){this._key=i()},e}();function i(){var e;do{e="@@WeakMap@@"+l()}while(u.has(r,e));return r[e]=!0,e}function a(e,r){if(!t.call(e,n)){if(!r)return;Object.defineProperty(e,n,{value:u.create()})}return e[n]}function s(e,t){for(var r=0;r<t;++r)e[r]=255*Math.random()|0;return e}function o(e){return"function"==typeof Uint8Array?"undefined"!=typeof crypto?crypto.getRandomValues(new Uint8Array(e)):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(new Uint8Array(e)):s(new Uint8Array(e),e):s(new Array(e),e)}function l(){var t=o(e);t[6]=79&t[6]|64,t[8]=191&t[8]|128;for(var r="",n=0;n<e;++n){var i=t[n];4!==n&&6!==n&&8!==n||(r+="-"),i<16&&(r+="0"),r+=i.toString(16).toLowerCase()}return r}}function ie(e){return e.__=void 0,delete e.__,e}e("decorate",v),e("metadata",y),e("defineMetadata",g),e("hasMetadata",m),e("hasOwnMetadata",b),e("getMetadata",k),e("getOwnMetadata",M),e("getMetadataKeys",w),e("getOwnMetadataKeys",S),e("deleteMetadata",x)}(i)}()}(g||(g={}));var b="inversify:tagged",k="inversify:tagged_props",M="inversify:paramtypes",w=0;var S="Metadata key was used more than once in a parameter:",x="The @inject @multiInject @tagged and @named decorators must be applied to the parameters of a class constructor or a class property.",O=function(){function e(e,t){this.key=e,this.value=t}return e.prototype.toString=function(){return"named"===this.key?"named: "+String(this.value).toString()+" ":"tagged: { key:"+this.key.toString()+", value: "+String(this.value)+" }"},e}(),_=function(e){this.id=w++,this.registry=e};function C(e,t,r,n){!function(e){if(void 0!==e)throw new Error(x)}(t),T(b,e,r.toString(),n)}function P(e){var t=[];if(Array.isArray(e)){var r=function(e){for(var t=new Set,r=0,n=e;r<n.length;r++){var i=n[r];if(t.has(i))return i;t.add(i)}}((t=e).map((function(e){return e.key})));if(void 0!==r)throw new Error(S+" "+r.toString())}else t=[e];return t}function T(e,t,r,n){var i=P(n),a={};Reflect.hasOwnMetadata(e,t)&&(a=Reflect.getMetadata(e,t));var s=a[r];if(void 0===s)s=[];else for(var o=function(e){if(i.some((function(t){return t.key===e.key})))throw new Error(S+" "+e.key.toString())},l=0,u=s;l<u.length;l++){o(u[l])}s.push.apply(s,i),a[r]=s,Reflect.defineMetadata(e,a,t)}function R(e){return function(t,r,n){"number"==typeof n?C(t,r,n,e):function(e,t,r){if(void 0!==e.prototype)throw new Error(x);T(k,e.constructor,t,r)}(t,r,e)}}function D(){return function(e){if(Reflect.hasOwnMetadata(M,e))throw new Error("Cannot apply @injectable decorator multiple times.");var t=Reflect.getMetadata("design:paramtypes",e)||[];return Reflect.defineMetadata(M,t,e),e}}var L,E=(L="inject",function(e){return function(t,r,n){if(void 0===e){var i="function"==typeof t?t.name:t.constructor.name;throw new Error("@inject called with undefined this could mean that the class "+i+" has a circular dependency problem. You can use a LazyServiceIdentifer to overcome this limitation.")}return R(new O(L,e))(t,r,n)}});function z(e,t,r,i){var a,s=arguments.length,o=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"===("undefined"==typeof Reflect?"undefined":n(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,i);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(o=(s<3?a(o):s>3?a(t,r,o):a(t,r))||o);return s>3&&o&&Object.defineProperty(t,r,o),o}function A(e,t){return function(r,n){t(r,n,e)}}function W(e,t){if("object"===("undefined"==typeof Reflect?"undefined":n(Reflect))&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function j(e,t,r){if(e&&e.length){var n=c(t,2),i=n[0],a=n[1],s=Math.PI/180*r,o=Math.cos(s),l=Math.sin(s);e.forEach((function(e){var t=c(e,2),r=t[0],n=t[1];e[0]=(r-i)*o-(n-a)*l+i,e[1]=(r-i)*l+(n-a)*o+a}))}}function F(e){var t=e[0],r=e[1];return Math.sqrt(Math.pow(t[0]-r[0],2)+Math.pow(t[1]-r[1],2))}function G(e,t){var r=t.hachureAngle+90,n=t.hachureGap;n<0&&(n=4*t.strokeWidth),n=Math.max(n,.1);var i=[0,0];if(r){var a,s=y(e);try{for(s.s();!(a=s.n()).done;){j(a.value,i,r)}}catch(e){s.e(e)}finally{s.f()}}var o=function(e,t){var r,n=[],i=y(e);try{for(i.s();!(r=i.n()).done;){var a=p(r.value);a[0].join(",")!==a[a.length-1].join(",")&&a.push([a[0][0],a[0][1]]),a.length>2&&n.push(a)}}catch(e){i.e(e)}finally{i.f()}var s=[];t=Math.max(t,.1);for(var o=[],l=0,u=n;l<u.length;l++)for(var h=u[l],f=0;f<h.length-1;f++){var c=h[f],d=h[f+1];if(c[1]!==d[1]){var v=Math.min(c[1],d[1]);o.push({ymin:v,ymax:Math.max(c[1],d[1]),x:v===c[1]?c[0]:d[0],islope:(d[0]-c[0])/(d[1]-c[1])})}}if(o.sort((function(e,t){return e.ymin<t.ymin?-1:e.ymin>t.ymin?1:e.x<t.x?-1:e.x>t.x?1:e.ymax===t.ymax?0:(e.ymax-t.ymax)/Math.abs(e.ymax-t.ymax)})),!o.length)return s;for(var g=[],m=o[0].ymin;g.length||o.length;){if(o.length){for(var b=-1,k=0;k<o.length&&!(o[k].ymin>m);k++)b=k;o.splice(0,b+1).forEach((function(e){g.push({s:m,edge:e})}))}if(g=g.filter((function(e){return!(e.edge.ymax<=m)})),g.sort((function(e,t){return e.edge.x===t.edge.x?0:(e.edge.x-t.edge.x)/Math.abs(e.edge.x-t.edge.x)})),g.length>1)for(var M=0;M<g.length;M+=2){var w=M+1;if(w>=g.length)break;var S=g[M].edge,x=g[w].edge;s.push([[Math.round(S.x),m],[Math.round(x.x),m]])}m+=t,g.forEach((function(e){e.edge.x=e.edge.x+t*e.edge.islope}))}return s}(e,n);if(r){var l,u=y(e);try{for(u.s();!(l=u.n()).done;){j(l.value,i,-r)}}catch(e){u.e(e)}finally{u.f()}!function(e,t,r){var n=[];e.forEach((function(e){return n.push.apply(n,p(e))})),j(n,t,r)}(o,i,-r)}return o}var I=function(){function e(t){i(this,e),this.helper=t}return s(e,[{key:"fillPolygons",value:function(e,t){return this._fillPolygons(e,t)}},{key:"_fillPolygons",value:function(e,t){var r=G(e,t);return{type:"fillSketch",ops:this.renderLines(r,t)}}},{key:"renderLines",value:function(e,t){var r,n=[],i=y(e);try{for(i.s();!(r=i.n()).done;){var a=r.value;n.push.apply(n,p(this.helper.doubleLineOps(a[0][0],a[0][1],a[1][0],a[1][1],t)))}}catch(e){i.e(e)}finally{i.f()}return n}}]),e}(),V=function(e){o(r,e);var t=f(r);function r(){return i(this,r),t.apply(this,arguments)}return s(r,[{key:"fillPolygons",value:function(e,t){var r=t.hachureGap;r<0&&(r=4*t.strokeWidth),r=Math.max(r,.1);var n,i=G(e,Object.assign({},t,{hachureGap:r})),a=Math.PI/180*t.hachureAngle,s=[],o=.5*r*Math.cos(a),l=.5*r*Math.sin(a),u=y(i);try{for(u.s();!(n=u.n()).done;){var h=c(n.value,2),f=h[0],d=h[1];F([f,d])&&s.push([[f[0]-o,f[1]+l],p(d)],[[f[0]+o,f[1]-l],p(d)])}}catch(e){u.e(e)}finally{u.f()}return{type:"fillSketch",ops:this.renderLines(s,t)}}}]),r}(I),q=function(e){o(r,e);var t=f(r);function r(){return i(this,r),t.apply(this,arguments)}return s(r,[{key:"fillPolygons",value:function(e,t){var r=this._fillPolygons(e,t),n=Object.assign({},t,{hachureAngle:t.hachureAngle+90}),i=this._fillPolygons(e,n);return r.ops=r.ops.concat(i.ops),r}}]),r}(I),B=function(){function e(t){i(this,e),this.helper=t}return s(e,[{key:"fillPolygons",value:function(e,t){var r=G(e,t=Object.assign({},t,{hachureAngle:0}));return this.dotsOnLines(r,t)}},{key:"dotsOnLines",value:function(e,t){var r=[],n=t.hachureGap;n<0&&(n=4*t.strokeWidth),n=Math.max(n,.1);var i=t.fillWeight;i<0&&(i=t.strokeWidth/2);var a,s=n/4,o=y(e);try{for(o.s();!(a=o.n()).done;)for(var l=a.value,u=F(l),h=u/n,f=Math.ceil(h)-1,c=u-f*n,d=(l[0][0]+l[1][0])/2-n/4,v=Math.min(l[0][1],l[1][1]),g=0;g<f;g++){var m=v+c+g*n,b=d-s+2*Math.random()*s,k=m-s+2*Math.random()*s,M=this.helper.ellipse(b,k,i,i,t);r.push.apply(r,p(M.ops))}}catch(e){o.e(e)}finally{o.f()}return{type:"fillSketch",ops:r}}}]),e}(),H=function(){function e(t){i(this,e),this.helper=t}return s(e,[{key:"fillPolygons",value:function(e,t){var r=G(e,t);return{type:"fillSketch",ops:this.dashedLine(r,t)}}},{key:"dashedLine",value:function(e,t){var r=this,n=t.dashOffset<0?t.hachureGap<0?4*t.strokeWidth:t.hachureGap:t.dashOffset,i=t.dashGap<0?t.hachureGap<0?4*t.strokeWidth:t.hachureGap:t.dashGap,a=[];return e.forEach((function(e){var s=F(e),o=Math.floor(s/(n+i)),l=(s+i-o*(n+i))/2,u=e[0],h=e[1];u[0]>h[0]&&(u=e[1],h=e[0]);for(var f=Math.atan((h[1]-u[1])/(h[0]-u[0])),c=0;c<o;c++){var d=c*(n+i),v=d+n,y=[u[0]+d*Math.cos(f)+l*Math.cos(f),u[1]+d*Math.sin(f)+l*Math.sin(f)],g=[u[0]+v*Math.cos(f)+l*Math.cos(f),u[1]+v*Math.sin(f)+l*Math.sin(f)];a.push.apply(a,p(r.helper.doubleLineOps(y[0],y[1],g[0],g[1],t)))}})),a}}]),e}(),U=function(){function e(t){i(this,e),this.helper=t}return s(e,[{key:"fillPolygons",value:function(e,t){var r=t.hachureGap<0?4*t.strokeWidth:t.hachureGap,n=t.zigzagOffset<0?r:t.zigzagOffset,i=G(e,t=Object.assign({},t,{hachureGap:r+n}));return{type:"fillSketch",ops:this.zigzagLines(i,n,t)}}},{key:"zigzagLines",value:function(e,t,r){var n=this,i=[];return e.forEach((function(e){var a=F(e),s=Math.round(a/(2*t)),o=e[0],l=e[1];o[0]>l[0]&&(o=e[1],l=e[0]);for(var u=Math.atan((l[1]-o[1])/(l[0]-o[0])),h=0;h<s;h++){var f=2*h*t,c=2*(h+1)*t,d=Math.sqrt(2*Math.pow(t,2)),v=[o[0]+f*Math.cos(u),o[1]+f*Math.sin(u)],y=[o[0]+c*Math.cos(u),o[1]+c*Math.sin(u)],g=[v[0]+d*Math.cos(u+Math.PI/4),v[1]+d*Math.sin(u+Math.PI/4)];i.push.apply(i,p(n.helper.doubleLineOps(v[0],v[1],g[0],g[1],r)).concat(p(n.helper.doubleLineOps(g[0],g[1],y[0],y[1],r))))}})),i}}]),e}(),N={},Y=function(){function e(t){i(this,e),this.seed=t}return s(e,[{key:"next",value:function(){return this.seed?(Math.pow(2,31)-1&(this.seed=Math.imul(48271,this.seed)))/Math.pow(2,31):Math.random()}}]),e}(),K={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function Z(e,t){return e.type===t}function Q(e){for(var t=[],r=function(e){for(var t=new Array;""!==e;)if(e.match(/^([ \t\r\n,]+)/))e=e.substr(RegExp.$1.length);else if(e.match(/^([aAcChHlLmMqQsStTvVzZ])/))t[t.length]={type:0,text:RegExp.$1},e=e.substr(RegExp.$1.length);else{if(!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];t[t.length]={type:1,text:"".concat(parseFloat(RegExp.$1))},e=e.substr(RegExp.$1.length)}return t[t.length]={type:2,text:""},t}(e),n="BOD",i=0,a=r[i];!Z(a,2);){var s=0,o=[];if("BOD"===n){if("M"!==a.text&&"m"!==a.text)return Q("M0,0"+e);i++,s=K[a.text],n=a.text}else Z(a,1)?s=K[n]:(i++,s=K[a.text],n=a.text);if(!(i+s<r.length))throw new Error("Path data ended short");for(var l=i;l<i+s;l++){var u=r[l];if(!Z(u,1))throw new Error("Param not a number: "+n+","+u.text);o[o.length]=+u.text}if("number"!=typeof K[n])throw new Error("Bad segment: "+n);var h={key:n,data:o};t.push(h),a=r[i+=s],"M"===n&&(n="L"),"m"===n&&(n="l")}return t}function $(e){var t,r,n,i,a=0,s=0,o=0,l=0,u=[],h=y(e);try{for(h.s();!(i=h.n()).done;){var f=i.value,d=f.key,v=f.data;switch(d){case"M":u.push({key:"M",data:p(v)}),t=c(v,2),a=t[0],s=t[1],o=(r=c(v,2))[0],l=r[1];break;case"m":a+=v[0],s+=v[1],u.push({key:"M",data:[a,s]}),o=a,l=s;break;case"L":u.push({key:"L",data:p(v)}),n=c(v,2),a=n[0],s=n[1];break;case"l":a+=v[0],s+=v[1],u.push({key:"L",data:[a,s]});break;case"C":u.push({key:"C",data:p(v)}),a=v[4],s=v[5];break;case"c":var g=v.map((function(e,t){return t%2?e+s:e+a}));u.push({key:"C",data:g}),a=g[4],s=g[5];break;case"Q":u.push({key:"Q",data:p(v)}),a=v[2],s=v[3];break;case"q":var m=v.map((function(e,t){return t%2?e+s:e+a}));u.push({key:"Q",data:m}),a=m[2],s=m[3];break;case"A":u.push({key:"A",data:p(v)}),a=v[5],s=v[6];break;case"a":a+=v[5],s+=v[6],u.push({key:"A",data:[v[0],v[1],v[2],v[3],v[4],a,s]});break;case"H":u.push({key:"H",data:p(v)}),a=v[0];break;case"h":a+=v[0],u.push({key:"H",data:[a]});break;case"V":u.push({key:"V",data:p(v)}),s=v[0];break;case"v":s+=v[0],u.push({key:"V",data:[s]});break;case"S":u.push({key:"S",data:p(v)}),a=v[2],s=v[3];break;case"s":var b=v.map((function(e,t){return t%2?e+s:e+a}));u.push({key:"S",data:b}),a=b[2],s=b[3];break;case"T":u.push({key:"T",data:p(v)}),a=v[0],s=v[1];break;case"t":a+=v[0],s+=v[1],u.push({key:"T",data:[a,s]});break;case"Z":case"z":u.push({key:"Z",data:[]}),a=o,s=l}}}catch(e){h.e(e)}finally{h.f()}return u}function X(e){var t,r,n,i,a=[],s="",o=0,l=0,u=0,h=0,f=0,d=0,v=y(e);try{for(v.s();!(i=v.n()).done;){var g=i.value,m=g.key,b=g.data;switch(m){case"M":a.push({key:"M",data:p(b)}),o=(t=c(b,2))[0],l=t[1],u=(r=c(b,2))[0],h=r[1];break;case"C":a.push({key:"C",data:p(b)}),o=b[4],l=b[5],f=b[2],d=b[3];break;case"L":a.push({key:"L",data:p(b)}),o=(n=c(b,2))[0],l=n[1];break;case"H":o=b[0],a.push({key:"L",data:[o,l]});break;case"V":l=b[0],a.push({key:"L",data:[o,l]});break;case"S":var k=0,M=0;"C"===s||"S"===s?(k=o+(o-f),M=l+(l-d)):(k=o,M=l),a.push({key:"C",data:[k,M].concat(p(b))}),f=b[0],d=b[1],o=b[2],l=b[3];break;case"T":var w=c(b,2),S=w[0],x=w[1],O=0,_=0;"Q"===s||"T"===s?(O=o+(o-f),_=l+(l-d)):(O=o,_=l);var C=o+2*(O-o)/3,P=l+2*(_-l)/3,T=S+2*(O-S)/3,R=x+2*(_-x)/3;a.push({key:"C",data:[C,P,T,R,S,x]}),f=O,d=_,o=S,l=x;break;case"Q":var D=c(b,4),L=D[0],E=D[1],z=D[2],A=D[3],W=o+2*(L-o)/3,j=l+2*(E-l)/3,F=z+2*(L-z)/3,G=A+2*(E-A)/3;a.push({key:"C",data:[W,j,F,G,z,A]}),f=L,d=E,o=z,l=A;break;case"A":var I=Math.abs(b[0]),V=Math.abs(b[1]),q=b[2],B=b[3],H=b[4],U=b[5],N=b[6];0===I||0===V?(a.push({key:"C",data:[o,l,U,N,U,N]}),o=U,l=N):o===U&&l===N||(ee(o,l,U,N,I,V,q,B,H).forEach((function(e){a.push({key:"C",data:e})})),o=U,l=N);break;case"Z":a.push({key:"Z",data:[]}),o=u,l=h}s=m}}catch(e){v.e(e)}finally{v.f()}return a}function J(e,t,r){return[e*Math.cos(r)-t*Math.sin(r),e*Math.sin(r)+t*Math.cos(r)]}function ee(e,t,r,n,i,a,s,o,l,u){var h,f=(h=s,Math.PI*h/180),p=[],d=0,v=0,y=0,g=0;if(u){var m=c(u,4);d=m[0],v=m[1],y=m[2],g=m[3]}else{var b,k;e=(b=c(J(e,t,-f),2))[0],t=b[1];var M=(e-(r=(k=c(J(r,n,-f),2))[0]))/2,w=(t-(n=k[1]))/2,S=M*M/(i*i)+w*w/(a*a);S>1&&(i*=S=Math.sqrt(S),a*=S);var x=i*i,O=a*a,_=x*O-x*w*w-O*M*M,C=x*w*w+O*M*M,P=(o===l?-1:1)*Math.sqrt(Math.abs(_/C));y=P*i*w/a+(e+r)/2,g=P*-a*M/i+(t+n)/2,d=Math.asin(parseFloat(((t-g)/a).toFixed(9))),v=Math.asin(parseFloat(((n-g)/a).toFixed(9))),e<y&&(d=Math.PI-d),r<y&&(v=Math.PI-v),d<0&&(d=2*Math.PI+d),v<0&&(v=2*Math.PI+v),l&&d>v&&(d-=2*Math.PI),!l&&v>d&&(v-=2*Math.PI)}var T=v-d;if(Math.abs(T)>120*Math.PI/180){var R=v,D=r,L=n;v=l&&v>d?d+120*Math.PI/180*1:d+120*Math.PI/180*-1,p=ee(r=y+i*Math.cos(v),n=g+a*Math.sin(v),D,L,i,a,s,0,l,[v,R,y,g])}T=v-d;var E=Math.cos(d),z=Math.sin(d),A=Math.cos(v),W=Math.sin(v),j=Math.tan(T/4),F=4/3*i*j,G=4/3*a*j,I=[e,t],V=[e+F*z,t-G*E],q=[r+F*W,n-G*A],B=[r,n];if(V[0]=2*I[0]-V[0],V[1]=2*I[1]-V[1],u)return[V,q,B].concat(p);p=[V,q,B].concat(p);for(var H=[],U=0;U<p.length;U+=3){var N=J(p[U][0],p[U][1],f),Y=J(p[U+1][0],p[U+1][1],f),K=J(p[U+2][0],p[U+2][1],f);H.push([N[0],N[1],Y[0],Y[1],K[0],K[1]])}return H}var te={randOffset:function(e,t){return fe(e,t)},randOffsetWithRange:function(e,t,r){return he(e,t,r)},ellipse:function(e,t,r,n,i){return ae(e,t,i,ie(r,n,i)).opset},doubleLineOps:function(e,t,r,n,i){return ce(e,t,r,n,i,!0)}};function re(e,t,r,n,i){return{type:"path",ops:ce(e,t,r,n,i)}}function ne(e,t,r){var n=(e||[]).length;if(n>2){for(var i=[],a=0;a<n-1;a++)i.push.apply(i,p(ce(e[a][0],e[a][1],e[a+1][0],e[a+1][1],r)));return t&&i.push.apply(i,p(ce(e[n-1][0],e[n-1][1],e[0][0],e[0][1],r))),{type:"path",ops:i}}return 2===n?re(e[0][0],e[0][1],e[1][0],e[1][1],r):{type:"path",ops:[]}}function ie(e,t,r){var n=Math.sqrt(2*Math.PI*Math.sqrt((Math.pow(e/2,2)+Math.pow(t/2,2))/2)),i=Math.ceil(Math.max(r.curveStepCount,r.curveStepCount/Math.sqrt(200)*n)),a=2*Math.PI/i,s=Math.abs(e/2),o=Math.abs(t/2),l=1-r.curveFitting;return{increment:a,rx:s+=fe(s*l,r),ry:o+=fe(o*l,r)}}function ae(e,t,r,n){var i=c(ye(n.increment,e,t,n.rx,n.ry,1,n.increment*he(.1,he(.4,1,r),r),r),2),a=i[0],s=i[1],o=ve(a,null,r);if(!r.disableMultiStroke&&0!==r.roughness){var l=ve(c(ye(n.increment,e,t,n.rx,n.ry,1.5,0,r),1)[0],null,r);o=o.concat(l)}return{estimatedPoints:s,opset:{type:"path",ops:o}}}function se(e,t,r,n,i,a,s,o,l){var u=e,h=t,f=Math.abs(r/2),c=Math.abs(n/2);f+=fe(.01*f,l),c+=fe(.01*c,l);for(var d=i,v=a;d<0;)d+=2*Math.PI,v+=2*Math.PI;v-d>2*Math.PI&&(d=0,v=2*Math.PI);var y=2*Math.PI/l.curveStepCount,g=Math.min(y/2,(v-d)/2),m=ge(g,u,h,f,c,d,v,1,l);if(!l.disableMultiStroke){var b=ge(g,u,h,f,c,d,v,1.5,l);m.push.apply(m,p(b))}return s&&(o?m.push.apply(m,p(ce(u,h,u+f*Math.cos(d),h+c*Math.sin(d),l)).concat(p(ce(u,h,u+f*Math.cos(v),h+c*Math.sin(v),l)))):m.push({op:"lineTo",data:[u,h]},{op:"lineTo",data:[u+f*Math.cos(d),h+c*Math.sin(d)]})),{type:"path",ops:m}}function oe(e,t){var r,n=[],i=y(e);try{for(i.s();!(r=i.n()).done;){var a=r.value;if(a.length){var s=t.maxRandomnessOffset||0,o=a.length;if(o>2){n.push({op:"move",data:[a[0][0]+fe(s,t),a[0][1]+fe(s,t)]});for(var l=1;l<o;l++)n.push({op:"lineTo",data:[a[l][0]+fe(s,t),a[l][1]+fe(s,t)]})}}}}catch(e){i.e(e)}finally{i.f()}return{type:"fillPath",ops:n}}function le(e,t){return function(e,t){var r=e.fillStyle||"hachure";if(!N[r])switch(r){case"zigzag":N[r]||(N[r]=new V(t));break;case"cross-hatch":N[r]||(N[r]=new q(t));break;case"dots":N[r]||(N[r]=new B(t));break;case"dashed":N[r]||(N[r]=new H(t));break;case"zigzag-line":N[r]||(N[r]=new U(t));break;default:N[r="hachure"]||(N[r]=new I(t))}return N[r]}(t,te).fillPolygons(e,t)}function ue(e){return e.randomizer||(e.randomizer=new Y(e.seed||0)),e.randomizer.next()}function he(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return r.roughness*n*(ue(r)*(t-e)+e)}function fe(e,t){return he(-e,e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1)}function ce(e,t,r,n,i){var a=arguments.length>5&&void 0!==arguments[5]&&arguments[5]?i.disableMultiStrokeFill:i.disableMultiStroke,s=pe(e,t,r,n,i,!0,!1);if(a)return s;var o=pe(e,t,r,n,i,!0,!0);return s.concat(o)}function pe(e,t,r,n,i,a,s){var o,l=Math.pow(e-r,2)+Math.pow(t-n,2),u=Math.sqrt(l);o=u<200?1:u>500?.4:-.0016668*u+1.233334;var h=i.maxRandomnessOffset||0;h*h*100>l&&(h=u/10);var f=h/2,c=.2+.2*ue(i),p=i.bowing*i.maxRandomnessOffset*(n-t)/200,d=i.bowing*i.maxRandomnessOffset*(e-r)/200;p=fe(p,i,o),d=fe(d,i,o);var v=[],y=function(){return fe(f,i,o)},g=function(){return fe(h,i,o)},m=i.preserveVertices;return a&&(s?v.push({op:"move",data:[e+(m?0:y()),t+(m?0:y())]}):v.push({op:"move",data:[e+(m?0:fe(h,i,o)),t+(m?0:fe(h,i,o))]})),s?v.push({op:"bcurveTo",data:[p+e+(r-e)*c+y(),d+t+(n-t)*c+y(),p+e+2*(r-e)*c+y(),d+t+2*(n-t)*c+y(),r+(m?0:y()),n+(m?0:y())]}):v.push({op:"bcurveTo",data:[p+e+(r-e)*c+g(),d+t+(n-t)*c+g(),p+e+2*(r-e)*c+g(),d+t+2*(n-t)*c+g(),r+(m?0:g()),n+(m?0:g())]}),v}function de(e,t,r){var n=[];n.push([e[0][0]+fe(t,r),e[0][1]+fe(t,r)]),n.push([e[0][0]+fe(t,r),e[0][1]+fe(t,r)]);for(var i=1;i<e.length;i++)n.push([e[i][0]+fe(t,r),e[i][1]+fe(t,r)]),i===e.length-1&&n.push([e[i][0]+fe(t,r),e[i][1]+fe(t,r)]);return ve(n,null,r)}function ve(e,t,r){var n=e.length,i=[];if(n>3){var a=[],s=1-r.curveTightness;i.push({op:"move",data:[e[1][0],e[1][1]]});for(var o=1;o+2<n;o++){var l=e[o];a[0]=[l[0],l[1]],a[1]=[l[0]+(s*e[o+1][0]-s*e[o-1][0])/6,l[1]+(s*e[o+1][1]-s*e[o-1][1])/6],a[2]=[e[o+1][0]+(s*e[o][0]-s*e[o+2][0])/6,e[o+1][1]+(s*e[o][1]-s*e[o+2][1])/6],a[3]=[e[o+1][0],e[o+1][1]],i.push({op:"bcurveTo",data:[a[1][0],a[1][1],a[2][0],a[2][1],a[3][0],a[3][1]]})}if(t&&2===t.length){var u=r.maxRandomnessOffset;i.push({op:"lineTo",data:[t[0]+fe(u,r),t[1]+fe(u,r)]})}}else 3===n?(i.push({op:"move",data:[e[1][0],e[1][1]]}),i.push({op:"bcurveTo",data:[e[1][0],e[1][1],e[2][0],e[2][1],e[2][0],e[2][1]]})):2===n&&i.push.apply(i,p(ce(e[0][0],e[0][1],e[1][0],e[1][1],r)));return i}function ye(e,t,r,n,i,a,s,o){var l=[],u=[];if(0===o.roughness){e/=4,u.push([t+n*Math.cos(-e),r+i*Math.sin(-e)]);for(var h=0;h<=2*Math.PI;h+=e){var f=[t+n*Math.cos(h),r+i*Math.sin(h)];l.push(f),u.push(f)}u.push([t+n*Math.cos(0),r+i*Math.sin(0)]),u.push([t+n*Math.cos(e),r+i*Math.sin(e)])}else{var c=fe(.5,o)-Math.PI/2;u.push([fe(a,o)+t+.9*n*Math.cos(c-e),fe(a,o)+r+.9*i*Math.sin(c-e)]);for(var p=2*Math.PI+c-.01,d=c;d<p;d+=e){var v=[fe(a,o)+t+n*Math.cos(d),fe(a,o)+r+i*Math.sin(d)];l.push(v),u.push(v)}u.push([fe(a,o)+t+n*Math.cos(c+2*Math.PI+.5*s),fe(a,o)+r+i*Math.sin(c+2*Math.PI+.5*s)]),u.push([fe(a,o)+t+.98*n*Math.cos(c+s),fe(a,o)+r+.98*i*Math.sin(c+s)]),u.push([fe(a,o)+t+.9*n*Math.cos(c+.5*s),fe(a,o)+r+.9*i*Math.sin(c+.5*s)])}return[u,l]}function ge(e,t,r,n,i,a,s,o,l){var u=a+fe(.1,l),h=[];h.push([fe(o,l)+t+.9*n*Math.cos(u-e),fe(o,l)+r+.9*i*Math.sin(u-e)]);for(var f=u;f<=s;f+=e)h.push([fe(o,l)+t+n*Math.cos(f),fe(o,l)+r+i*Math.sin(f)]);return h.push([t+n*Math.cos(s),r+i*Math.sin(s)]),h.push([t+n*Math.cos(s),r+i*Math.sin(s)]),ve(h,null,l)}function me(e){return p(e)}function be(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)}function ke(e,t,r){var n=be(t,r);if(0===n)return be(e,t);var i=((e[0]-t[0])*(r[0]-t[0])+(e[1]-t[1])*(r[1]-t[1]))/n;return be(e,Me(t,r,i=Math.max(0,Math.min(1,i))))}function Me(e,t,r){return[e[0]+(t[0]-e[0])*r,e[1]+(t[1]-e[1])*r]}function we(e,t,r,n){var i,a,s=n||[];if(function(e,t){var r=e[t+0],n=e[t+1],i=e[t+2],a=e[t+3],s=3*n[0]-2*r[0]-a[0];s*=s;var o=3*n[1]-2*r[1]-a[1];o*=o;var l=3*i[0]-2*a[0]-r[0];l*=l;var u=3*i[1]-2*a[1]-r[1];return s<l&&(s=l),o<(u*=u)&&(o=u),s+o}(e,t)<r){var o=e[t+0];s.length?(i=s[s.length-1],a=o,Math.sqrt(be(i,a))>1&&s.push(o)):s.push(o),s.push(e[t+3])}else{var l=.5,u=e[t+0],h=e[t+1],f=e[t+2],c=e[t+3],p=Me(u,h,l),d=Me(h,f,l),v=Me(f,c,l),y=Me(p,d,l),g=Me(d,v,l),m=Me(y,g,l);we([u,p,y,m],0,r,s),we([m,g,v,c],0,r,s)}return s}function Se(e,t){return xe(e,0,e.length,t)}function xe(e,t,r,n,i){for(var a=i||[],s=e[t],o=e[r-1],l=0,u=1,h=t+1;h<r-1;++h){var f=ke(e[h],s,o);f>l&&(l=f,u=h)}return Math.sqrt(l)>n?(xe(e,t,u+1,n,a),xe(e,u,r,n,a)):(a.length||a.push(s),a.push(o)),a}function Oe(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15,r=arguments.length>2?arguments[2]:void 0,n=[],i=(e.length-1)/3,a=0;a<i;a++)we(e,3*a,t,n);return r&&r>0?xe(n,0,n.length,r):n}var _e="none",Ce=function(){function e(t){i(this,e),this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}return s(e,[{key:"_o",value:function(e){return e?Object.assign({},this.defaultOptions,e):this.defaultOptions}},{key:"_d",value:function(e,t,r){return{shape:e,sets:t||[],options:r||this.defaultOptions}}},{key:"line",value:function(e,t,r,n,i){var a=this._o(i);return this._d("line",[re(e,t,r,n,a)],a)}},{key:"rectangle",value:function(e,t,r,n,i){var a=this._o(i),s=[],o=function(e,t,r,n,i){return function(e,t){return ne(e,!0,t)}([[e,t],[e+r,t],[e+r,t+n],[e,t+n]],i)}(e,t,r,n,a);if(a.fill){var l=[[e,t],[e+r,t],[e+r,t+n],[e,t+n]];"solid"===a.fillStyle?s.push(oe([l],a)):s.push(le([l],a))}return a.stroke!==_e&&s.push(o),this._d("rectangle",s,a)}},{key:"ellipse",value:function(e,t,r,n,i){var a=this._o(i),s=[],o=ie(r,n,a),l=ae(e,t,a,o);if(a.fill)if("solid"===a.fillStyle){var u=ae(e,t,a,o).opset;u.type="fillPath",s.push(u)}else s.push(le([l.estimatedPoints],a));return a.stroke!==_e&&s.push(l.opset),this._d("ellipse",s,a)}},{key:"circle",value:function(e,t,r,n){var i=this.ellipse(e,t,r,r,n);return i.shape="circle",i}},{key:"linearPath",value:function(e,t){var r=this._o(t);return this._d("linearPath",[ne(e,!1,r)],r)}},{key:"arc",value:function(e,t,r,n,i,a){var s=arguments.length>6&&void 0!==arguments[6]&&arguments[6],o=arguments.length>7?arguments[7]:void 0,l=this._o(o),u=[],h=se(e,t,r,n,i,a,s,!0,l);if(s&&l.fill)if("solid"===l.fillStyle){var f=Object.assign({},l);f.disableMultiStroke=!0;var c=se(e,t,r,n,i,a,!0,!1,f);c.type="fillPath",u.push(c)}else u.push(function(e,t,r,n,i,a,s){var o=e,l=t,u=Math.abs(r/2),h=Math.abs(n/2);u+=fe(.01*u,s),h+=fe(.01*h,s);for(var f=i,c=a;f<0;)f+=2*Math.PI,c+=2*Math.PI;c-f>2*Math.PI&&(f=0,c=2*Math.PI);for(var p=(c-f)/s.curveStepCount,d=[],v=f;v<=c;v+=p)d.push([o+u*Math.cos(v),l+h*Math.sin(v)]);return d.push([o+u*Math.cos(c),l+h*Math.sin(c)]),d.push([o,l]),le([d],s)}(e,t,r,n,i,a,l));return l.stroke!==_e&&u.push(h),this._d("arc",u,l)}},{key:"curve",value:function(e,t){var r=this._o(t),n=[],i=function(e,t){var r=de(e,1*(1+.2*t.roughness),t);if(!t.disableMultiStroke){var n=de(e,1.5*(1+.22*t.roughness),function(e){var t=Object.assign({},e);return t.randomizer=void 0,e.seed&&(t.seed=e.seed+1),t}(t));r=r.concat(n)}return{type:"path",ops:r}}(e,r);if(r.fill&&r.fill!==_e&&e.length>=3){var a=Oe(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.length;if(r<3)throw new Error("A curve must have at least three points.");var n=[];if(3===r)n.push(me(e[0]),me(e[1]),me(e[2]),me(e[2]));else{var i=[];i.push(e[0],e[0]);for(var a=1;a<e.length;a++)i.push(e[a]),a===e.length-1&&i.push(e[a]);var s=[],o=1-t;n.push(me(i[0]));for(var l=1;l+2<i.length;l++){var u=i[l];s[0]=[u[0],u[1]],s[1]=[u[0]+(o*i[l+1][0]-o*i[l-1][0])/6,u[1]+(o*i[l+1][1]-o*i[l-1][1])/6],s[2]=[i[l+1][0]+(o*i[l][0]-o*i[l+2][0])/6,i[l+1][1]+(o*i[l][1]-o*i[l+2][1])/6],s[3]=[i[l+1][0],i[l+1][1]],n.push(s[1],s[2],s[3])}}return n}(e),10,(1+r.roughness)/2);"solid"===r.fillStyle?n.push(oe([a],r)):n.push(le([a],r))}return r.stroke!==_e&&n.push(i),this._d("curve",n,r)}},{key:"polygon",value:function(e,t){var r=this._o(t),n=[],i=ne(e,!0,r);return r.fill&&("solid"===r.fillStyle?n.push(oe([e],r)):n.push(le([e],r))),r.stroke!==_e&&n.push(i),this._d("polygon",n,r)}},{key:"path",value:function(e,t){var r=this._o(t),n=[];if(!e)return this._d("path",n,r);e=(e||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");var i=r.fill&&"transparent"!==r.fill&&r.fill!==_e,a=r.stroke!==_e,s=!!(r.simplification&&r.simplification<1),o=function(e,t,r){var n,i=X($(Q(e))),a=[],s=[],o=[0,0],l=[],u=function(){var e;l.length>=4&&(e=s).push.apply(e,p(Oe(l,1))),l=[]},h=function(){u(),s.length&&(a.push(s),s=[])},f=y(i);try{for(f.s();!(n=f.n()).done;){var c=n.value,d=c.key,v=c.data;switch(d){case"M":h(),o=[v[0],v[1]],s.push(o);break;case"L":u(),s.push([v[0],v[1]]);break;case"C":if(!l.length){var g=s.length?s[s.length-1]:o;l.push([g[0],g[1]])}l.push([v[0],v[1]]),l.push([v[2],v[3]]),l.push([v[4],v[5]]);break;case"Z":u(),s.push([o[0],o[1]])}}}catch(e){f.e(e)}finally{f.f()}if(h(),!r)return a;for(var m=[],b=0,k=a;b<k.length;b++){var M=Se(k[b],r);M.length&&m.push(M)}return m}(e,0,s?4-4*r.simplification:(1+r.roughness)/2);return i&&("solid"===r.fillStyle?n.push(oe(o,r)):n.push(le(o,r))),a&&(s?o.forEach((function(e){n.push(ne(e,!1,r))})):n.push(function(e,t){var r,n=X($(Q(e))),i=[],a=[0,0],s=[0,0],o=y(n);try{var l=function(){var e=r.value,n=e.key,o=e.data;switch(n){case"M":var l=1*(t.maxRandomnessOffset||0),u=t.preserveVertices;i.push({op:"move",data:o.map((function(e){return e+(u?0:fe(l,t))}))}),s=[o[0],o[1]],a=[o[0],o[1]];break;case"L":i.push.apply(i,p(ce(s[0],s[1],o[0],o[1],t))),s=[o[0],o[1]];break;case"C":var h=c(o,6),f=h[0],d=h[1],v=h[2],y=h[3],g=h[4],m=h[5];i.push.apply(i,p(function(e,t,r,n,i,a,s,o){for(var l=[],u=[o.maxRandomnessOffset||1,(o.maxRandomnessOffset||1)+.3],h=[0,0],f=o.disableMultiStroke?1:2,c=o.preserveVertices,p=0;p<f;p++)0===p?l.push({op:"move",data:[s[0],s[1]]}):l.push({op:"move",data:[s[0]+(c?0:fe(u[0],o)),s[1]+(c?0:fe(u[0],o))]}),h=c?[i,a]:[i+fe(u[p],o),a+fe(u[p],o)],l.push({op:"bcurveTo",data:[e+fe(u[p],o),t+fe(u[p],o),r+fe(u[p],o),n+fe(u[p],o),h[0],h[1]]});return l}(f,d,v,y,g,m,s,t))),s=[g,m];break;case"Z":i.push.apply(i,p(ce(s[0],s[1],a[0],a[1],t))),s=[a[0],a[1]]}};for(o.s();!(r=o.n()).done;)l()}catch(e){o.e(e)}finally{o.f()}return{type:"path",ops:i}}(e,r))),this._d("path",n,r)}},{key:"opsToPath",value:function(e,t){var r,n="",i=y(e.ops);try{for(i.s();!(r=i.n()).done;){var a=r.value,s="number"==typeof t&&t>=0?a.data.map((function(e){return+e.toFixed(t)})):a.data;switch(a.op){case"move":n+="M".concat(s[0]," ").concat(s[1]," ");break;case"bcurveTo":n+="C".concat(s[0]," ").concat(s[1],", ").concat(s[2]," ").concat(s[3],", ").concat(s[4]," ").concat(s[5]," ");break;case"lineTo":n+="L".concat(s[0]," ").concat(s[1]," ")}}}catch(e){i.e(e)}finally{i.f()}return n.trim()}},{key:"toPaths",value:function(e){var t,r=e.sets||[],n=e.options||this.defaultOptions,i=[],a=y(r);try{for(a.s();!(t=a.n()).done;){var s=t.value,o=null;switch(s.type){case"path":o={d:this.opsToPath(s),stroke:n.stroke,strokeWidth:n.strokeWidth,fill:_e};break;case"fillPath":o={d:this.opsToPath(s),stroke:_e,strokeWidth:0,fill:n.fill||_e};break;case"fillSketch":o=this.fillSketch(s,n)}o&&i.push(o)}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"fillSketch",value:function(e,t){var r=t.fillWeight;return r<0&&(r=t.strokeWidth/2),{d:this.opsToPath(e),stroke:t.fill||_e,strokeWidth:r,fill:_e}}}],[{key:"newSeed",value:function(){return Math.floor(Math.random()*Math.pow(2,31))}}]),e}(),Pe=function(){function e(t,r){i(this,e),this.canvas=t,this.ctx=this.canvas.getContext("2d"),this.gen=new Ce(r)}return s(e,[{key:"draw",value:function(e){var t,r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.ctx,a=e.options.fixedDecimalPlaceDigits,s=y(r);try{for(s.s();!(t=s.n()).done;){var o=t.value;switch(o.type){case"path":i.save(),i.strokeStyle="none"===n.stroke?"transparent":n.stroke,i.lineWidth=n.strokeWidth,n.strokeLineDash&&i.setLineDash(n.strokeLineDash),n.strokeLineDashOffset&&(i.lineDashOffset=n.strokeLineDashOffset),this._drawToContext(i,o,a),i.restore();break;case"fillPath":i.save(),i.fillStyle=n.fill||"";var l="curve"===e.shape||"polygon"===e.shape||"path"===e.shape?"evenodd":"nonzero";this._drawToContext(i,o,a,l),i.restore();break;case"fillSketch":this.fillSketch(i,o,n)}}}catch(e){s.e(e)}finally{s.f()}}},{key:"fillSketch",value:function(e,t,r){var n=r.fillWeight;n<0&&(n=r.strokeWidth/2),e.save(),r.fillLineDash&&e.setLineDash(r.fillLineDash),r.fillLineDashOffset&&(e.lineDashOffset=r.fillLineDashOffset),e.strokeStyle=r.fill||"",e.lineWidth=n,this._drawToContext(e,t,r.fixedDecimalPlaceDigits),e.restore()}},{key:"_drawToContext",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"nonzero";e.beginPath();var i,a=y(t.ops);try{for(a.s();!(i=a.n()).done;){var s=i.value,o="number"==typeof r&&r>=0?s.data.map((function(e){return+e.toFixed(r)})):s.data;switch(s.op){case"move":e.moveTo(o[0],o[1]);break;case"bcurveTo":e.bezierCurveTo(o[0],o[1],o[2],o[3],o[4],o[5]);break;case"lineTo":e.lineTo(o[0],o[1])}}}catch(e){a.e(e)}finally{a.f()}"fillPath"===t.type?e.fill(n):e.stroke()}},{key:"generator",get:function(){return this.gen}},{key:"getDefaultOptions",value:function(){return this.gen.defaultOptions}},{key:"line",value:function(e,t,r,n,i){var a=this.gen.line(e,t,r,n,i);return this.draw(a),a}},{key:"rectangle",value:function(e,t,r,n,i){var a=this.gen.rectangle(e,t,r,n,i);return this.draw(a),a}},{key:"ellipse",value:function(e,t,r,n,i){var a=this.gen.ellipse(e,t,r,n,i);return this.draw(a),a}},{key:"circle",value:function(e,t,r,n){var i=this.gen.circle(e,t,r,n);return this.draw(i),i}},{key:"linearPath",value:function(e,t){var r=this.gen.linearPath(e,t);return this.draw(r),r}},{key:"polygon",value:function(e,t){var r=this.gen.polygon(e,t);return this.draw(r),r}},{key:"arc",value:function(e,t,r,n,i,a){var s=arguments.length>6&&void 0!==arguments[6]&&arguments[6],o=arguments.length>7?arguments[7]:void 0,l=this.gen.arc(e,t,r,n,i,a,s,o);return this.draw(l),l}},{key:"curve",value:function(e,t){var r=this.gen.curve(e,t);return this.draw(r),r}},{key:"path",value:function(e,t){var r=this.gen.path(e,t);return this.draw(r),r}}]),e}(),Te=function(e,t){return new Pe(e,t)};const Re={maxRandomnessOffset:3,roughness:1,bowing:1,curveFitting:.95,curveTightness:void 0,curveStepCount:9,fillStyle:"hachure",fillWeight:void 0,hachureAngle:60,hachureGap:6,simplification:0,dashOffset:void 0,dashGap:void 0,zigzagOffset:void 0,seed:1,fillLineDash:void 0,fillLineDashOffset:void 0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!0,fixedDecimalPlaceDigits:void 0};let De=class{canvasRenderer;type;numberType;style="rough";constructor(e){this.canvasRenderer=e,this.type="arc",this.numberType=t.ARC_NUMBER_TYPE}draw(e,r,n,i){const{context:a}=n;if(!a)return;const s=a.canvas.nativeCanvas,o=Te(s);a.highPerformanceSave();const l=t.getTheme(e).arc;let{x:u=l.x,y:h=l.y}=e.attribute;if(e.transMatrix.onlyTranslate()){const{dx:t=l.dx,dy:r=l.dy}=e.attribute;u+=t,h+=r,a.setTransformForCurrent()}else u=0,h=0,a.transformFromMatrix(e.transMatrix,!0);const f=new t.CustomPath2D,{fill:c=(null==l.fill?!!e.attribute.fillColor:l.fill),stroke:p=(null==l.stroke?!!e.attribute.strokeColor:l.stroke),fillColor:d=l.fillColor,strokeColor:v=l.strokeColor,lineWidth:y=l.lineWidth,outerRadius:g=l.outerRadius,innerRadius:m=l.innerRadius,maxRandomnessOffset:b=Re.maxRandomnessOffset,roughness:k=Re.roughness,bowing:M=Re.bowing,curveFitting:w=Re.curveFitting,curveTightness:S=Re.curveTightness,curveStepCount:x=Re.curveStepCount,fillStyle:O=Re.fillStyle,fillWeight:_=Re.fillWeight,hachureAngle:C=Re.hachureAngle,hachureGap:P=Re.hachureGap,simplification:T=Re.simplification,dashOffset:R=Re.dashOffset,dashGap:D=Re.dashGap,zigzagOffset:L=Re.zigzagOffset,seed:E=Re.seed,fillLineDash:z=Re.fillLineDash,fillLineDashOffset:A=Re.fillLineDashOffset,disableMultiStroke:W=Re.disableMultiStroke,disableMultiStrokeFill:j=Re.disableMultiStrokeFill,preserveVertices:F=Re.preserveVertices,fixedDecimalPlaceDigits:G=Re.fixedDecimalPlaceDigits}=e.attribute;t.drawArcPath(e,f,u,h,g,m),o.path(f.toString(),{fill:c?d:void 0,stroke:p?v:void 0,strokeWidth:y,maxRandomnessOffset:b,roughness:k,bowing:M,curveFitting:w,curveTightness:S,curveStepCount:x,fillStyle:O,fillWeight:_,hachureAngle:C,hachureGap:P,simplification:T,dashOffset:R,dashGap:D,zigzagOffset:L,seed:E,fillLineDash:z,fillLineDashOffset:A,disableMultiStroke:W,disableMultiStrokeFill:j,preserveVertices:F,fixedDecimalPlaceDigits:G}),a.highPerformanceRestore()}drawShape(e,t,r,n,i,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(e,t,r,n,i,a,s,o)}};De=z([D(),A(0,E(t.DefaultCanvasArcRender)),W("design:paramtypes",[Object])],De);let Le=class extends t.DefaultCanvasAreaRender{style="rough";drawSegmentItem(e,r,n,i,a,s,o,l,u,h,f,c){if(c)return super.drawSegmentItem(e,r,n,i,a,s,o,l,u,h,f,c);e.highPerformanceSave();const p=e.canvas.nativeCanvas,d=Te(p,{}),v=new t.CustomPath2D;t.drawAreaSegments(v,r,o,{offsetX:l,offsetY:u});const{maxRandomnessOffset:y=Re.maxRandomnessOffset,roughness:g=Re.roughness,bowing:m=Re.bowing,curveFitting:b=Re.curveFitting,curveTightness:k=Re.curveTightness,curveStepCount:M=Re.curveStepCount,fillStyle:w=Re.fillStyle,fillWeight:S=Re.fillWeight,hachureAngle:x=Re.hachureAngle,hachureGap:O=Re.hachureGap,simplification:_=Re.simplification,dashOffset:C=Re.dashOffset,dashGap:P=Re.dashGap,zigzagOffset:T=Re.zigzagOffset,seed:R=Re.seed,fillLineDash:D=Re.fillLineDash,fillLineDashOffset:L=Re.fillLineDashOffset,disableMultiStroke:E=Re.disableMultiStroke,disableMultiStrokeFill:z=Re.disableMultiStrokeFill,preserveVertices:A=Re.preserveVertices,fixedDecimalPlaceDigits:W=Re.fixedDecimalPlaceDigits}=a;let{fillColor:j,strokeColor:F,lineWidth:G}=a;return Array.isArray(s)?s.forEach((e=>{j=j??e.fillColor,F=F??e.strokeColor,G=G??e.lineWidth})):(j=j??s.fillColor,F=F??s.strokeColor,G=G??s.lineWidth),d.path(v.toString(),{fill:n?j:void 0,strokeWidth:G,maxRandomnessOffset:y,roughness:g,bowing:m,curveFitting:b,curveTightness:k,curveStepCount:M,fillStyle:w,fillWeight:S,hachureAngle:x,hachureGap:O,simplification:_,dashOffset:C,dashGap:P,zigzagOffset:T,seed:R,fillLineDash:D,fillLineDashOffset:L,disableMultiStroke:E,disableMultiStrokeFill:z,preserveVertices:A,fixedDecimalPlaceDigits:W}),e.highPerformanceRestore(),!1}};Le=z([D()],Le);let Ee=class{canvasRenderer;style="rough";constructor(e){this.canvasRenderer=e,this.type="circle",this.numberType=t.CIRCLE_NUMBER_TYPE}draw(e,r,n,i){const{context:a}=n;if(!a)return;const s=a.canvas.nativeCanvas,o=Te(s,{}),l=t.getTheme(e).circle;let{x:u=l.x,y:h=l.y}=e.attribute;e.transMatrix.onlyTranslate()?a.onlyTranslate()||a.clearMatrix():(u=0,h=0,a.transformFromMatrix(e.transMatrix,!0));const{fillColor:f=l.fillColor,strokeColor:c=l.strokeColor,radius:p=l.radius,fill:d=l.fill,stroke:v=l.stroke,lineWidth:y=l.lineWidth}=e.attribute;o.circle(u,h,p,{fill:d?f:void 0,stroke:v?c:void 0,strokeWidth:y,fillStyle:"zigzag",roughness:.5})}drawShape(e,t,r,n,i,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(e,t,r,n,i,a,s,o)}};Ee=z([D(),A(0,E(t.DefaultCanvasCircleRender)),W("design:paramtypes",[Object])],Ee);let ze=class extends t.DefaultCanvasLineRender{style="rough";drawSegmentItem(e,r,n,i,a,s,o,l,u,h,f,c,p,d,v){if(d||v)return super.drawSegmentItem(e,r,n,i,a,s,o,l,u,h,f,c,p,d,v);e.highPerformanceSave();const y=e.canvas.nativeCanvas,g=Te(y,{}),m=new t.CustomPath2D;t.drawSegments(e.camera?e:e.nativeContext,r,u,h,{offsetX:f,offsetY:c});const{maxRandomnessOffset:b=Re.maxRandomnessOffset,roughness:k=Re.roughness,bowing:M=Re.bowing,curveFitting:w=Re.curveFitting,curveTightness:S=Re.curveTightness,curveStepCount:x=Re.curveStepCount,fillStyle:O=Re.fillStyle,fillWeight:_=Re.fillWeight,hachureAngle:C=Re.hachureAngle,hachureGap:P=Re.hachureGap,simplification:T=Re.simplification,dashOffset:R=Re.dashOffset,dashGap:D=Re.dashGap,zigzagOffset:L=Re.zigzagOffset,seed:E=Re.seed,fillLineDash:z=Re.fillLineDash,fillLineDashOffset:A=Re.fillLineDashOffset,disableMultiStroke:W=Re.disableMultiStroke,disableMultiStrokeFill:j=Re.disableMultiStrokeFill,preserveVertices:F=Re.preserveVertices,fixedDecimalPlaceDigits:G=Re.fixedDecimalPlaceDigits}=o;let{fillColor:I,strokeColor:V,lineWidth:q}=o;return Array.isArray(l)?l.forEach((e=>{I=I??e.fillColor,V=V??e.strokeColor,q=q??e.lineWidth})):(I=I??l.fillColor,V=V??l.strokeColor,q=q??l.lineWidth),g.path(m.toString(),{fill:n?I:void 0,stroke:i?V:void 0,strokeWidth:q,maxRandomnessOffset:b,roughness:k,bowing:M,curveFitting:w,curveTightness:S,curveStepCount:x,fillStyle:O,fillWeight:_,hachureAngle:C,hachureGap:P,simplification:T,dashOffset:R,dashGap:D,zigzagOffset:L,seed:E,fillLineDash:z,fillLineDashOffset:A,disableMultiStroke:W,disableMultiStrokeFill:j,preserveVertices:F,fixedDecimalPlaceDigits:G}),e.highPerformanceRestore(),!1}};ze=z([D()],ze);let Ae=class{canvasRenderer;type;numberType;style="rough";constructor(e){this.canvasRenderer=e,this.type="path",this.numberType=t.PATH_NUMBER_TYPE}draw(e,r,n,i){const{context:a}=n;if(!a)return;const s=a.canvas.nativeCanvas,o=Te(s,{});a.highPerformanceSave();const l=t.getTheme(e).path;a.transformFromMatrix(e.transMatrix,!0);const{fill:u=(null==l.fill?!!e.attribute.fillColor:l.fill),stroke:h=(null==l.stroke?!!e.attribute.strokeColor:l.stroke),fillColor:f=l.fillColor,strokeColor:c=l.strokeColor,lineWidth:p=l.lineWidth,path:d=l.path,maxRandomnessOffset:v=Re.maxRandomnessOffset,roughness:y=Re.roughness,bowing:g=Re.bowing,curveFitting:m=Re.curveFitting,curveTightness:b=Re.curveTightness,curveStepCount:k=Re.curveStepCount,fillStyle:M=Re.fillStyle,fillWeight:w=Re.fillWeight,hachureAngle:S=Re.hachureAngle,hachureGap:x=Re.hachureGap,simplification:O=Re.simplification,dashOffset:_=Re.dashOffset,dashGap:C=Re.dashGap,zigzagOffset:P=Re.zigzagOffset,seed:T=Re.seed,fillLineDash:R=Re.fillLineDash,fillLineDashOffset:D=Re.fillLineDashOffset,disableMultiStroke:L=Re.disableMultiStroke,disableMultiStrokeFill:E=Re.disableMultiStrokeFill,preserveVertices:z=Re.preserveVertices,fixedDecimalPlaceDigits:A=Re.fixedDecimalPlaceDigits}=e.attribute;"string"==typeof d&&o.path(d,{fill:u?f:void 0,stroke:h?c:void 0,strokeWidth:p,maxRandomnessOffset:v,roughness:y,bowing:g,curveFitting:m,curveTightness:b,curveStepCount:k,fillStyle:M,fillWeight:w,hachureAngle:S,hachureGap:x,simplification:O,dashOffset:_,dashGap:C,zigzagOffset:P,seed:T,fillLineDash:R,fillLineDashOffset:D,disableMultiStroke:L,disableMultiStrokeFill:E,preserveVertices:z,fixedDecimalPlaceDigits:A}),a.highPerformanceRestore()}drawShape(e,t,r,n,i,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(e,t,r,n,i,a,s,o)}};Ae=z([D(),A(0,E(t.DefaultCanvasPathRender)),W("design:paramtypes",[Object])],Ae);let We=class{canvasRenderer;type;numberType;style="rough";constructor(e){this.canvasRenderer=e,this.type="rect",this.numberType=t.RECT_NUMBER_TYPE}draw(e,r,n,i){const{context:a}=n;if(!a)return;const s=a.canvas.nativeCanvas,o=Te(s);a.highPerformanceSave();const l=t.getTheme(e).rect;let{x:u=l.x,y:h=l.y}=e.attribute;if(e.transMatrix.onlyTranslate()){const{dx:t=l.dx,dy:r=l.dy}=e.attribute;u+=t,h+=r,a.setTransformForCurrent()}else u=0,h=0,a.transformFromMatrix(e.transMatrix,!0);const{fill:f=(null==l.fill?!!e.attribute.fillColor:l.fill),stroke:c=(null==l.stroke?!!e.attribute.strokeColor:l.stroke),fillColor:p=l.fillColor,strokeColor:d=l.strokeColor,width:v=l.width,height:y=l.height,lineWidth:g=l.lineWidth,maxRandomnessOffset:m=Re.maxRandomnessOffset,roughness:b=Re.roughness,bowing:k=Re.bowing,curveFitting:M=Re.curveFitting,curveTightness:w=Re.curveTightness,curveStepCount:S=Re.curveStepCount,fillStyle:x=Re.fillStyle,fillWeight:O=Re.fillWeight,hachureAngle:_=Re.hachureAngle,hachureGap:C=Re.hachureGap,simplification:P=Re.simplification,dashOffset:T=Re.dashOffset,dashGap:R=Re.dashGap,zigzagOffset:D=Re.zigzagOffset,seed:L=Re.seed,fillLineDash:E=Re.fillLineDash,fillLineDashOffset:z=Re.fillLineDashOffset,disableMultiStroke:A=Re.disableMultiStroke,disableMultiStrokeFill:W=Re.disableMultiStrokeFill,preserveVertices:j=Re.preserveVertices,fixedDecimalPlaceDigits:F=Re.fixedDecimalPlaceDigits}=e.attribute;o.rectangle(u,h,v,y,{fill:f?p:void 0,stroke:c?d:void 0,strokeWidth:g,maxRandomnessOffset:m,roughness:b,bowing:k,curveFitting:M,curveTightness:w,curveStepCount:S,fillStyle:x,fillWeight:O,hachureAngle:_,hachureGap:C,simplification:P,dashOffset:T,dashGap:R,zigzagOffset:D,seed:L,fillLineDash:E,fillLineDashOffset:z,disableMultiStroke:A,disableMultiStrokeFill:W,preserveVertices:j,fixedDecimalPlaceDigits:F}),a.highPerformanceRestore()}drawShape(e,t,r,n,i,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(e,t,r,n,i,a,s,o)}};We=z([D(),A(0,E(t.DefaultCanvasRectRender)),W("design:paramtypes",[Object])],We);let je=class{canvasRenderer;type;numberType;style="rough";constructor(e){this.canvasRenderer=e,this.type="symbol",this.numberType=t.SYMBOL_NUMBER_TYPE}draw(e,r,n,i){const{context:a}=n;if(!a)return;const s=a.canvas.nativeCanvas,o=Te(s);a.highPerformanceSave();const l=t.getTheme(e).symbol;let{x:u=l.x,y:h=l.y}=e.attribute;if(e.transMatrix.onlyTranslate()){const{dx:t=l.dx,dy:r=l.dy}=e.attribute;u+=t,h+=r,a.setTransformForCurrent()}else u=0,h=0,a.transformFromMatrix(e.transMatrix,!0);const f=e.getParsedPath();if(!f)return;const{fill:c=(null==l.fill?!!e.attribute.fillColor:l.fill),stroke:p=(null==l.stroke?!!e.attribute.strokeColor:l.stroke),fillColor:d=l.fillColor,strokeColor:v=l.strokeColor,size:y=l.size,lineWidth:g=l.lineWidth,maxRandomnessOffset:m=Re.maxRandomnessOffset,roughness:b=Re.roughness,bowing:k=Re.bowing,curveFitting:M=Re.curveFitting,curveTightness:w=Re.curveTightness,curveStepCount:S=Re.curveStepCount,fillStyle:x=Re.fillStyle,fillWeight:O=Re.fillWeight,hachureAngle:_=Re.hachureAngle,hachureGap:C=Re.hachureGap,simplification:P=Re.simplification,dashOffset:T=Re.dashOffset,dashGap:R=Re.dashGap,zigzagOffset:D=Re.zigzagOffset,seed:L=Re.seed,fillLineDash:E=Re.fillLineDash,fillLineDashOffset:z=Re.fillLineDashOffset,disableMultiStroke:A=Re.disableMultiStroke,disableMultiStrokeFill:W=Re.disableMultiStrokeFill,preserveVertices:j=Re.preserveVertices,fixedDecimalPlaceDigits:F=Re.fixedDecimalPlaceDigits}=e.attribute,G=new t.CustomPath2D;f.draw(G,y,u,h)&&G.closePath(),o.path(G.toString(),{fill:c?d:void 0,stroke:p?v:void 0,strokeWidth:g,maxRandomnessOffset:m,roughness:b,bowing:k,curveFitting:M,curveTightness:w,curveStepCount:S,fillStyle:x,fillWeight:O,hachureAngle:_,hachureGap:C,simplification:P,dashOffset:T,dashGap:R,zigzagOffset:D,seed:L,fillLineDash:E,fillLineDashOffset:z,disableMultiStroke:A,disableMultiStrokeFill:W,preserveVertices:j,fixedDecimalPlaceDigits:F}),a.highPerformanceRestore()}drawShape(e,t,r,n,i,a,s,o){if(this.canvasRenderer.drawShape)return this.canvasRenderer.drawShape(e,t,r,n,i,a,s,o)}};je=z([D(),A(0,E(t.DefaultCanvasSymbolRender)),W("design:paramtypes",[Object])],je);var Fe=new _(((e,r,n,i)=>{e(Ee).toSelf().inSingletonScope(),e(t.GraphicRender).to(Ee),e(We).toSelf().inSingletonScope(),e(t.GraphicRender).to(We),e(Ae).toSelf().inSingletonScope(),e(t.GraphicRender).to(Ae),e(je).toSelf().inSingletonScope(),e(t.GraphicRender).to(je),e(ze).toSelf().inSingletonScope(),e(t.GraphicRender).to(ze),e(Le).toSelf().inSingletonScope(),e(t.GraphicRender).to(Le),e(De).toSelf().inSingletonScope(),e(t.GraphicRender).to(De)}));new r.Matrix(1,0,0,1,0,0);let Ge=class extends t.BrowserContext2d{static env="node";constructor(e,t){super(e,t);const n=e.nativeCanvas.getContext("2d");if(!n)throw new Error("发生错误,获取2d上下文失败");this.nativeContext=n,this.canvas=e,this.matrix=new r.Matrix(1,0,0,1,0,0),this.stack=[],this.dpr=1}release(...e){}};Ge=z([D(),W("design:paramtypes",[Object,Number])],Ge);const Ie={WIDTH:500,HEIGHT:500,DPR:1};let Ve=class{static env="node";_width;_height;_id;_nativeCanvas;_context;_visiable;controled;get id(){return this._id}get x(){return 0}get y(){return 0}get nativeCanvas(){return this._nativeCanvas}get width(){return this._width}set width(e){this._width=e}get displayWidth(){return this._width}get displayHeight(){return this._height}get height(){return this._height}set height(e){this._height=e}getContext(e){return this._context}get visiable(){return this._visiable}set visiable(e){this._visiable=e,e?this.show():this.hide()}get dpr(){return 1}set dpr(e){}constructor(e){const{nativeCanvas:t,width:r=Ie.WIDTH,height:n=Ie.HEIGHT,canvasControled:i=!0}=e;this._visiable=!1!==e.visiable,this.controled=i,this._width=r,this._height=n,this._nativeCanvas=t,this._context=new Ge(this,e.dpr),this._id=t.id}applyPosition(){}getNativeCanvas(){return this._nativeCanvas}resetStyle(e){}hide(){}show(){}resize(e,t){this._nativeCanvas&&(this._nativeCanvas.width=e,this._nativeCanvas.height=t)}toDataURL(e,t){return""}readPixels(e,t,r,n){return this._context.getImageData(e,t,r,n)}convertToBlob(e){throw new Error("暂未实现")}transferToImageBitmap(){throw new Error("暂未实现")}release(...e){throw new Error("暂不支持release")}};Ve=z([D(),W("design:paramtypes",[Object])],Ve);var qe=new _((e=>{e(t.CanvasFactory).toDynamicValue((()=>e=>new Ve(e))).whenTargetNamed(Ge.env),e(t.Context2dFactory).toDynamicValue((()=>e=>new Ge(e,e.dpr))).whenTargetNamed(Ge.env)}));const Be=Fe,He=function(e){e.load(qe)};e.canvasModuleLoader=He,e.roughModule=Be}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canvas/contributions/canvas-module.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,gBAAgB,CAAC;AAExC,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,SAAoB;IAC/C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7B,CAAC","file":"canvas-module.js","sourcesContent":["import type { Container } from 'inversify';\nimport nodeModule from './node/modules';\n\nexport default function load(container: Container) {\n container.load(nodeModule);\n}\n"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Canvas } from 'canvas';
|
|
2
|
+
import type { EnvType, CanvasConfigType, ICanvas, IContext2d } from '@visactor/vrender';
|
|
3
|
+
export declare class NodeCanvas implements ICanvas {
|
|
4
|
+
static env: EnvType;
|
|
5
|
+
private _width;
|
|
6
|
+
private _height;
|
|
7
|
+
private _id;
|
|
8
|
+
private _nativeCanvas;
|
|
9
|
+
private _context;
|
|
10
|
+
private _visiable;
|
|
11
|
+
private controled;
|
|
12
|
+
get id(): number | string;
|
|
13
|
+
get x(): number;
|
|
14
|
+
get y(): number;
|
|
15
|
+
get nativeCanvas(): Canvas;
|
|
16
|
+
get width(): number;
|
|
17
|
+
set width(width: number);
|
|
18
|
+
get displayWidth(): number;
|
|
19
|
+
get displayHeight(): number;
|
|
20
|
+
get height(): number;
|
|
21
|
+
set height(height: number);
|
|
22
|
+
getContext(str?: string): IContext2d;
|
|
23
|
+
get visiable(): boolean;
|
|
24
|
+
set visiable(visiable: boolean);
|
|
25
|
+
get dpr(): number;
|
|
26
|
+
set dpr(dpr: number);
|
|
27
|
+
constructor(params: CanvasConfigType);
|
|
28
|
+
applyPosition(): void;
|
|
29
|
+
getNativeCanvas(): Canvas;
|
|
30
|
+
resetStyle(params: Partial<CanvasConfigType>): void;
|
|
31
|
+
hide(): void;
|
|
32
|
+
show(): void;
|
|
33
|
+
resize(width: number, height: number): void;
|
|
34
|
+
toDataURL(): string;
|
|
35
|
+
toDataURL(mimeType: 'image/png'): string;
|
|
36
|
+
toDataURL(mimeType: 'image/jpeg', quality: number): string;
|
|
37
|
+
readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData>;
|
|
38
|
+
convertToBlob(options?: {
|
|
39
|
+
type?: string | undefined;
|
|
40
|
+
quality?: number | undefined;
|
|
41
|
+
} | undefined): Promise<Blob>;
|
|
42
|
+
transferToImageBitmap(): ImageBitmap;
|
|
43
|
+
release(...params: any): void;
|
|
44
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
|
|
2
|
+
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
|
|
3
|
+
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
|
|
4
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
5
|
+
}, __metadata = this && this.__metadata || function(k, v) {
|
|
6
|
+
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
import { injectable } from "inversify";
|
|
10
|
+
|
|
11
|
+
import { NodeContext2d } from "./context";
|
|
12
|
+
|
|
13
|
+
const DefaultConfig = {
|
|
14
|
+
WIDTH: 500,
|
|
15
|
+
HEIGHT: 500,
|
|
16
|
+
DPR: 1
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
let NodeCanvas = class {
|
|
20
|
+
get id() {
|
|
21
|
+
return this._id;
|
|
22
|
+
}
|
|
23
|
+
get x() {
|
|
24
|
+
return 0;
|
|
25
|
+
}
|
|
26
|
+
get y() {
|
|
27
|
+
return 0;
|
|
28
|
+
}
|
|
29
|
+
get nativeCanvas() {
|
|
30
|
+
return this._nativeCanvas;
|
|
31
|
+
}
|
|
32
|
+
get width() {
|
|
33
|
+
return this._width;
|
|
34
|
+
}
|
|
35
|
+
set width(width) {
|
|
36
|
+
this._width = width;
|
|
37
|
+
}
|
|
38
|
+
get displayWidth() {
|
|
39
|
+
return this._width;
|
|
40
|
+
}
|
|
41
|
+
get displayHeight() {
|
|
42
|
+
return this._height;
|
|
43
|
+
}
|
|
44
|
+
get height() {
|
|
45
|
+
return this._height;
|
|
46
|
+
}
|
|
47
|
+
set height(height) {
|
|
48
|
+
this._height = height;
|
|
49
|
+
}
|
|
50
|
+
getContext(str) {
|
|
51
|
+
return this._context;
|
|
52
|
+
}
|
|
53
|
+
get visiable() {
|
|
54
|
+
return this._visiable;
|
|
55
|
+
}
|
|
56
|
+
set visiable(visiable) {
|
|
57
|
+
this._visiable = visiable, visiable ? this.show() : this.hide();
|
|
58
|
+
}
|
|
59
|
+
get dpr() {
|
|
60
|
+
return 1;
|
|
61
|
+
}
|
|
62
|
+
set dpr(dpr) {}
|
|
63
|
+
constructor(params) {
|
|
64
|
+
const {nativeCanvas: nativeCanvas, width: width = DefaultConfig.WIDTH, height: height = DefaultConfig.HEIGHT, canvasControled: canvasControled = !0} = params;
|
|
65
|
+
this._visiable = !1 !== params.visiable, this.controled = canvasControled, this._width = width,
|
|
66
|
+
this._height = height, this._nativeCanvas = nativeCanvas, this._context = new NodeContext2d(this, params.dpr),
|
|
67
|
+
this._id = nativeCanvas.id;
|
|
68
|
+
}
|
|
69
|
+
applyPosition() {}
|
|
70
|
+
getNativeCanvas() {
|
|
71
|
+
return this._nativeCanvas;
|
|
72
|
+
}
|
|
73
|
+
resetStyle(params) {}
|
|
74
|
+
hide() {}
|
|
75
|
+
show() {}
|
|
76
|
+
resize(width, height) {
|
|
77
|
+
this._nativeCanvas && (this._nativeCanvas.width = width, this._nativeCanvas.height = height);
|
|
78
|
+
}
|
|
79
|
+
toDataURL(mimeType, quality) {
|
|
80
|
+
return "";
|
|
81
|
+
}
|
|
82
|
+
readPixels(x, y, w, h) {
|
|
83
|
+
return this._context.getImageData(x, y, w, h);
|
|
84
|
+
}
|
|
85
|
+
convertToBlob(options) {
|
|
86
|
+
throw new Error("暂未实现");
|
|
87
|
+
}
|
|
88
|
+
transferToImageBitmap() {
|
|
89
|
+
throw new Error("暂未实现");
|
|
90
|
+
}
|
|
91
|
+
release(...params) {
|
|
92
|
+
throw new Error("暂不支持release");
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
NodeCanvas.env = "node", NodeCanvas = __decorate([ injectable(), __metadata("design:paramtypes", [ Object ]) ], NodeCanvas);
|
|
97
|
+
|
|
98
|
+
export { NodeCanvas };
|
|
99
|
+
//# sourceMappingURL=canvas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canvas/contributions/node/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { Canvas } from 'canvas';\nimport type { EnvType, CanvasConfigType, ICanvas, IContext2d } from '@visactor/vrender';\nimport { NodeContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class NodeCanvas implements ICanvas {\n static env: EnvType = 'node';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _width: number; // 显示的宽度\n private _height: number; // 显示的高度\n private _id: number | string;\n\n private _nativeCanvas: Canvas;\n private _context: IContext2d;\n private _visiable: boolean;\n private controled: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return 0;\n }\n get y(): number {\n return 0;\n }\n get nativeCanvas(): Canvas {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._width;\n }\n set width(width: number) {\n this._width = width;\n }\n get displayWidth(): number {\n return this._width;\n }\n get displayHeight(): number {\n return this._height;\n }\n\n get height(): number {\n return this._height;\n }\n set height(height: number) {\n this._height = height;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return 1;\n }\n set dpr(dpr: number) {\n return;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const { nativeCanvas, width = DefaultConfig.WIDTH, height = DefaultConfig.HEIGHT, canvasControled = true } = params;\n this._visiable = params.visiable !== false;\n this.controled = canvasControled;\n\n // 离屏canvas\n this._width = width;\n this._height = height;\n this._nativeCanvas = nativeCanvas as unknown as Canvas;\n this._context = new NodeContext2d(this, params.dpr);\n this._id = nativeCanvas.id;\n }\n\n applyPosition() {\n return;\n }\n\n getNativeCanvas(): Canvas {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n if (this._nativeCanvas) {\n this._nativeCanvas.width = width;\n this._nativeCanvas.height = height;\n }\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n return this._context.getImageData(x, y, w, h);\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n throw new Error('暂不支持release');\n }\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { EnvType, ICanvas, IContext2d } from '@visactor/vrender';
|
|
2
|
+
import { BrowserContext2d } from '@visactor/vrender';
|
|
3
|
+
export declare class NodeContext2d extends BrowserContext2d implements IContext2d {
|
|
4
|
+
static env: EnvType;
|
|
5
|
+
constructor(canvas: ICanvas, dpr: number);
|
|
6
|
+
release(...params: any): void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
|
|
2
|
+
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
|
|
3
|
+
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
|
|
4
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
5
|
+
}, __metadata = this && this.__metadata || function(k, v) {
|
|
6
|
+
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
import { Matrix } from "@visactor/vutils";
|
|
10
|
+
|
|
11
|
+
import { injectable } from "inversify";
|
|
12
|
+
|
|
13
|
+
import { BrowserContext2d } from "@visactor/vrender";
|
|
14
|
+
|
|
15
|
+
const initMatrix = new Matrix(1, 0, 0, 1, 0, 0);
|
|
16
|
+
|
|
17
|
+
let NodeContext2d = class extends BrowserContext2d {
|
|
18
|
+
constructor(canvas, dpr) {
|
|
19
|
+
super(canvas, dpr);
|
|
20
|
+
const context = canvas.nativeCanvas.getContext("2d");
|
|
21
|
+
if (!context) throw new Error("发生错误,获取2d上下文失败");
|
|
22
|
+
this.nativeContext = context, this.canvas = canvas, this.matrix = new Matrix(1, 0, 0, 1, 0, 0),
|
|
23
|
+
this.stack = [], this.dpr = 1;
|
|
24
|
+
}
|
|
25
|
+
release(...params) {}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
NodeContext2d.env = "node", NodeContext2d = __decorate([ injectable(), __metadata("design:paramtypes", [ Object, Number ]) ], NodeContext2d);
|
|
29
|
+
|
|
30
|
+
export { NodeContext2d };
|
|
31
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canvas/contributions/node/context.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrD,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAGzC,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,gBAAgB;IAGjD,YAAY,MAAe,EAAE,GAAW;QACtC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACf,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAjBM,iBAAG,GAAY,MAAM,CAAC;AADlB,aAAa;IADzB,UAAU,EAAE;;GACA,aAAa,CAmBzB;SAnBY,aAAa","file":"context.js","sourcesContent":["// 参考konva\nimport { Matrix } from '@visactor/vutils';\nimport { injectable } from 'inversify';\nimport type { EnvType, ICanvas, IContext2d } from '@visactor/vrender';\nimport { BrowserContext2d } from '@visactor/vrender';\nimport { CanvasRenderingContext2D, Image, CanvasPattern } from 'canvas';\n\n// https://github.com/konvajs/konva/blob/master/src/Context.ts\nconst initMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n\n@injectable()\nexport class NodeContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'node';\n\n constructor(canvas: ICanvas, dpr: number) {\n super(canvas, dpr);\n const context = canvas.nativeCanvas.getContext('2d');\n if (!context) {\n throw new Error('发生错误,获取2d上下文失败');\n }\n this.nativeContext = context;\n this.canvas = canvas;\n this.matrix = new Matrix(1, 0, 0, 1, 0, 0);\n this.stack = [];\n this.dpr = 1;\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canvas/contributions/node/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC","file":"index.js","sourcesContent":["// 依然导出canvas和context,便于指定环境直接使用\nexport * from './canvas';\nexport * from './context';\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ContainerModule } from "inversify";
|
|
2
|
+
|
|
3
|
+
import { CanvasFactory, Context2dFactory } from "@visactor/vrender";
|
|
4
|
+
|
|
5
|
+
import { NodeCanvas } from "./canvas";
|
|
6
|
+
|
|
7
|
+
import { NodeContext2d } from "./context";
|
|
8
|
+
|
|
9
|
+
export default new ContainerModule((bind => {
|
|
10
|
+
bind(CanvasFactory).toDynamicValue((() => params => new NodeCanvas(params))).whenTargetNamed(NodeContext2d.env),
|
|
11
|
+
bind(Context2dFactory).toDynamicValue((() => params => new NodeContext2d(params, params.dpr))).whenTargetNamed(NodeContext2d.env);
|
|
12
|
+
}));
|
|
13
|
+
//# sourceMappingURL=modules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canvas/contributions/node/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,aAAa,CAAC;SAChB,cAAc,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,MAAwB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC,CAAC;SACD,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAEtC,IAAI,CAAC,gBAAgB,CAAC;SACnB,cAAc,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,MAAe,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC,CAAC;SACD,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC","file":"modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport type { CanvasConfigType, ICanvas } from '@visactor/vrender';\nimport { CanvasFactory, Context2dFactory } from '@visactor/vrender';\nimport { NodeCanvas } from './canvas';\nimport { NodeContext2d } from './context';\n\nexport default new ContainerModule(bind => {\n bind(CanvasFactory)\n .toDynamicValue(() => {\n return (params: CanvasConfigType) => new NodeCanvas(params);\n })\n .whenTargetNamed(NodeContext2d.env);\n\n bind(Context2dFactory)\n .toDynamicValue(() => {\n return (params: ICanvas) => new NodeContext2d(params, params.dpr);\n })\n .whenTargetNamed(NodeContext2d.env);\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canvas/index.ts"],"names":[],"mappings":"","file":"index.js","sourcesContent":["import {} from '@visactor/vrender';\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ContainerModule } from "inversify";
|
|
2
|
+
|
|
3
|
+
import { EnvContribution } from "@visactor/vrender";
|
|
4
|
+
|
|
5
|
+
import { NodeEnvContribution } from "./node-contribution";
|
|
6
|
+
|
|
7
|
+
export default new ContainerModule((bind => {
|
|
8
|
+
bind(NodeEnvContribution).toSelf().inSingletonScope(), bind(EnvContribution).toService(NodeEnvContribution);
|
|
9
|
+
}));
|
|
10
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/env/contributions/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAA4B,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC","file":"module.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { bindContributionProvider, EnvContribution } from '@visactor/vrender';\nimport { NodeEnvContribution } from './node-contribution';\n\nexport default new ContainerModule(bind => {\n bind(NodeEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(NodeEnvContribution);\n});\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { createCanvas, createImageData, loadImage, Canvas } from 'canvas';
|
|
2
|
+
import * as NodePkg from 'canvas';
|
|
3
|
+
import type { EnvType, IEnvContribution, IGlobal, ICreateCanvasParams } from '@visactor/vrender';
|
|
4
|
+
import { BaseEnvContribution } from '@visactor/vrender';
|
|
5
|
+
type NodePkg = {
|
|
6
|
+
createCanvas: typeof createCanvas;
|
|
7
|
+
createImageData: typeof createImageData;
|
|
8
|
+
loadImage: typeof loadImage;
|
|
9
|
+
};
|
|
10
|
+
export declare class NodeEnvContribution extends BaseEnvContribution implements IEnvContribution {
|
|
11
|
+
type: EnvType;
|
|
12
|
+
pkg: NodePkg;
|
|
13
|
+
_lastTime: number;
|
|
14
|
+
supportEvent: boolean;
|
|
15
|
+
configure(service: IGlobal, pkg?: NodePkg): void;
|
|
16
|
+
loadJson(url: string): Promise<{
|
|
17
|
+
loadState: 'success' | 'fail';
|
|
18
|
+
data: Record<string, unknown> | null;
|
|
19
|
+
}>;
|
|
20
|
+
loadArrayBuffer(url: string): Promise<{
|
|
21
|
+
loadState: 'success' | 'fail';
|
|
22
|
+
data: ArrayBuffer | null;
|
|
23
|
+
}>;
|
|
24
|
+
loadImage(url: string): Promise<{
|
|
25
|
+
loadState: 'success' | 'fail';
|
|
26
|
+
data: HTMLImageElement | null;
|
|
27
|
+
}>;
|
|
28
|
+
loadSvg(svgStr: string): Promise<{
|
|
29
|
+
loadState: 'success' | 'fail';
|
|
30
|
+
data: HTMLImageElement | null;
|
|
31
|
+
}>;
|
|
32
|
+
createCanvas(params: any): Canvas;
|
|
33
|
+
releaseCanvas(canvas: Canvas | any): void;
|
|
34
|
+
getDevicePixelRatio(): number;
|
|
35
|
+
getRequestAnimationFrame(): (callback: FrameRequestCallback) => number;
|
|
36
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
37
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
38
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions | undefined): void;
|
|
39
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
|
|
40
|
+
getElementById(str: string): HTMLElement | null;
|
|
41
|
+
getRootElement(): HTMLElement | null;
|
|
42
|
+
dispatchEvent(event: any): boolean;
|
|
43
|
+
getCancelAnimationFrame(): (h: number) => void;
|
|
44
|
+
release(...params: any): void;
|
|
45
|
+
createOffscreenCanvas(params: ICreateCanvasParams): void;
|
|
46
|
+
}
|
|
47
|
+
export {};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
|
|
2
|
+
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
|
|
3
|
+
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
|
|
4
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
import { injectable } from "inversify";
|
|
8
|
+
|
|
9
|
+
import * as NodePkg from "canvas";
|
|
10
|
+
|
|
11
|
+
import { Resvg } from "@resvg/resvg-js";
|
|
12
|
+
|
|
13
|
+
import { BaseEnvContribution } from "@visactor/vrender";
|
|
14
|
+
|
|
15
|
+
import fetch from "node-fetch";
|
|
16
|
+
|
|
17
|
+
let last = 0;
|
|
18
|
+
|
|
19
|
+
function nodeRequestAnimationFrame(callback) {
|
|
20
|
+
const now = Date.now(), timeLeft = Math.max(0, 16 - (now - last)), id = setTimeout((function() {
|
|
21
|
+
callback(now + timeLeft);
|
|
22
|
+
}), timeLeft);
|
|
23
|
+
return last = now + timeLeft, id;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
let NodeEnvContribution = class extends BaseEnvContribution {
|
|
27
|
+
constructor() {
|
|
28
|
+
super(...arguments), this.type = "node", this._lastTime = 0, this.supportEvent = !1;
|
|
29
|
+
}
|
|
30
|
+
configure(service, pkg = NodePkg) {
|
|
31
|
+
service.env === this.type && (service.setActiveEnvContribution(this), this.pkg = pkg);
|
|
32
|
+
}
|
|
33
|
+
loadJson(url) {
|
|
34
|
+
const jsonPromise = fetch(url).then((data => data.json()));
|
|
35
|
+
return jsonPromise.then((json => ({
|
|
36
|
+
data: json,
|
|
37
|
+
state: "success"
|
|
38
|
+
}))).catch((() => ({
|
|
39
|
+
data: null,
|
|
40
|
+
state: "fail"
|
|
41
|
+
}))), jsonPromise;
|
|
42
|
+
}
|
|
43
|
+
loadArrayBuffer(url) {
|
|
44
|
+
return fetch(url).then((data => data.arrayBuffer())).then((arrayBuffer => ({
|
|
45
|
+
data: arrayBuffer,
|
|
46
|
+
loadState: "success"
|
|
47
|
+
}))).catch((() => ({
|
|
48
|
+
data: null,
|
|
49
|
+
loadState: "fail"
|
|
50
|
+
})));
|
|
51
|
+
}
|
|
52
|
+
loadImage(url) {
|
|
53
|
+
const {loadImage: loadImage} = this.pkg;
|
|
54
|
+
return loadImage ? loadImage(url).then((image => ({
|
|
55
|
+
loadState: image ? "success" : "fail",
|
|
56
|
+
data: image
|
|
57
|
+
}))).catch((() => ({
|
|
58
|
+
loadState: "fail",
|
|
59
|
+
data: null
|
|
60
|
+
}))) : Promise.reject(new Error("node-canvas loadImage could not be found!"));
|
|
61
|
+
}
|
|
62
|
+
loadSvg(svgStr) {
|
|
63
|
+
if (!Resvg) return Promise.reject(new Error("@resvg/resvg-js svgParser could not be found!"));
|
|
64
|
+
const pngData = new Resvg(svgStr).render().asPng();
|
|
65
|
+
return this.loadImage(pngData);
|
|
66
|
+
}
|
|
67
|
+
createCanvas(params) {
|
|
68
|
+
return this.pkg.createCanvas(params.width, params.height);
|
|
69
|
+
}
|
|
70
|
+
releaseCanvas(canvas) {}
|
|
71
|
+
getDevicePixelRatio() {
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
getRequestAnimationFrame() {
|
|
75
|
+
return nodeRequestAnimationFrame;
|
|
76
|
+
}
|
|
77
|
+
addEventListener(type, listener, options) {}
|
|
78
|
+
removeEventListener(type, listener, options) {}
|
|
79
|
+
getElementById(str) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
getRootElement() {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
dispatchEvent(event) {}
|
|
86
|
+
getCancelAnimationFrame() {}
|
|
87
|
+
release(...params) {}
|
|
88
|
+
createOffscreenCanvas(params) {}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
NodeEnvContribution = __decorate([ injectable() ], NodeEnvContribution);
|
|
92
|
+
|
|
93
|
+
export { NodeEnvContribution };
|
|
94
|
+
//# sourceMappingURL=node-contribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/env/contributions/node-contribution.ts"],"names":[],"mappings":"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","file":"node-contribution.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { createCanvas, createImageData, loadImage, Canvas } from 'canvas';\nimport * as NodePkg from 'canvas';\nimport { Resvg } from '@resvg/resvg-js';\nimport type { EnvType, IEnvContribution, IGlobal, ICreateCanvasParams } from '@visactor/vrender';\nimport { BaseEnvContribution } from '@visactor/vrender';\nimport fetch from 'node-fetch';\n\ntype NodePkg = {\n createCanvas: typeof createCanvas;\n createImageData: typeof createImageData;\n loadImage: typeof loadImage;\n};\n\nlet last = 0;\nfunction nodeRequestAnimationFrame(callback: FrameRequestCallback) {\n const now = Date.now();\n const timeLeft = Math.max(0, 16 - (now - last));\n const id = setTimeout(function () {\n callback(now + timeLeft);\n }, timeLeft);\n last = now + timeLeft;\n return id;\n}\n\n@injectable()\nexport class NodeEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'node';\n pkg: NodePkg;\n _lastTime: number = 0;\n supportEvent: boolean = false;\n\n configure(service: IGlobal, pkg: NodePkg = NodePkg) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n this.pkg = pkg;\n }\n }\n\n loadJson(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }> {\n const jsonPromise = fetch(url).then(data => data.json()) as Promise<any>; // ignore_security_alert\n jsonPromise\n .then(json => {\n return {\n data: json,\n state: 'success'\n };\n })\n .catch(() => {\n return {\n data: null,\n state: 'fail'\n };\n });\n return jsonPromise;\n }\n\n loadArrayBuffer(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }> {\n const arrayBufferPromise = fetch(url).then(data => data.arrayBuffer()); // ignore_security_alert\n return arrayBufferPromise\n .then((arrayBuffer: ArrayBuffer) => {\n return {\n data: arrayBuffer,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | null;\n }> {\n const { loadImage } = this.pkg;\n if (loadImage) {\n return loadImage(url)\n .then((image: any) => {\n const loadState: 'success' | 'fail' = image ? 'success' : 'fail';\n return {\n loadState,\n data: image as HTMLImageElement\n };\n })\n .catch(() => {\n return {\n loadState: 'fail',\n data: null\n } as any;\n });\n }\n return Promise.reject(new Error('node-canvas loadImage could not be found!'));\n }\n\n // 此处的\n loadSvg(svgStr: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | null;\n }> {\n // // eslint-disable-next-line @typescript-eslint/no-var-requires\n // const { Resvg } = require('@resvg/resvg-js');\n if (!Resvg) {\n return Promise.reject(new Error('@resvg/resvg-js svgParser could not be found!'));\n }\n const resvg = new Resvg(svgStr);\n const pngData = resvg.render().asPng();\n return this.loadImage(pngData as unknown as string);\n }\n\n createCanvas(params: any): Canvas {\n const canvas = this.pkg.createCanvas(params.width, params.height);\n return canvas;\n }\n\n releaseCanvas(canvas: Canvas | any) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return 0;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n return nodeRequestAnimationFrame as any;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return;\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return;\n }\n\n getElementById(str: string): HTMLElement | null {\n return null;\n }\n\n getRootElement(): HTMLElement | null {\n return null;\n }\n\n dispatchEvent(event: any): boolean {\n return;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return;\n }\n\n release(...params: any): void {\n return;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import _canvasModuleLoader from './canvas/contributions/canvas-module';
|
|
3
|
+
export declare const roughModule: import("inversify").ContainerModule;
|
|
4
|
+
export declare const canvasModuleLoader: typeof _canvasModuleLoader;
|
|
5
|
+
export { nodeLoader } from './node-bind';
|