UNPKG

sp-image-annotation

Version:
2 lines 2.98 MB
/*! sp-image-annotation - 1.0.59 */ !function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["sp-image-annotation"]=t():n["sp-image-annotation"]=t()}(window,(function(){return function(n){var t={};function g(I){if(t[I])return t[I].exports;var c=t[I]={i:I,l:!1,exports:{}};return n[I].call(c.exports,c,c.exports,g),c.l=!0,c.exports}return g.m=n,g.c=t,g.d=function(n,t,I){g.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:I})},g.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},g.t=function(n,t){if(1&t&&(n=g(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var I=Object.create(null);if(g.r(I),Object.defineProperty(I,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var c in n)g.d(I,c,function(t){return n[t]}.bind(null,c));return I},g.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return g.d(t,"a",t),t},g.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},g.p="",g(g.s=68)}([function(module,exports,__webpack_require__){"use strict";eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Util_1 = __webpack_require__(3);\nvar Validators_1 = __webpack_require__(2);\nvar GET = 'get', SET = 'set';\nexports.Factory = {\n addGetterSetter: function (constructor, attr, def, validator, after) {\n this.addGetter(constructor, attr, def);\n this.addSetter(constructor, attr, validator, after);\n this.addOverloadedGetterSetter(constructor, attr);\n },\n addGetter: function (constructor, attr, def) {\n var method = GET + Util_1.Util._capitalize(attr);\n constructor.prototype[method] =\n constructor.prototype[method] ||\n function () {\n var val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n },\n addSetter: function (constructor, attr, validator, after) {\n var method = SET + Util_1.Util._capitalize(attr);\n if (!constructor.prototype[method]) {\n exports.Factory.overWriteSetter(constructor, attr, validator, after);\n }\n },\n overWriteSetter: function (constructor, attr, validator, after) {\n var method = SET + Util_1.Util._capitalize(attr);\n constructor.prototype[method] = function (val) {\n if (validator && val !== undefined && val !== null) {\n val = validator.call(this, val, attr);\n }\n this._setAttr(attr, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n },\n addComponentsGetterSetter: function (constructor, attr, components, validator, after) {\n var len = components.length, capitalize = Util_1.Util._capitalize, getter = GET + capitalize(attr), setter = SET + capitalize(attr), n, component;\n constructor.prototype[getter] = function () {\n var ret = {};\n for (n = 0; n < len; n++) {\n component = components[n];\n ret[component] = this.getAttr(attr + capitalize(component));\n }\n return ret;\n };\n var basicValidator = Validators_1.getComponentValidator(components);\n constructor.prototype[setter] = function (val) {\n var oldVal = this.attrs[attr], key;\n if (validator) {\n val = validator.call(this, val);\n }\n if (basicValidator) {\n basicValidator.call(this, val, attr);\n }\n for (key in val) {\n if (!val.hasOwnProperty(key)) {\n continue;\n }\n this._setAttr(attr + capitalize(key), val[key]);\n }\n this._fireChangeEvent(attr, oldVal, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n this.addOverloadedGetterSetter(constructor, attr);\n },\n addOverloadedGetterSetter: function (constructor, attr) {\n var capitalizedAttr = Util_1.Util._capitalize(attr), setter = SET + capitalizedAttr, getter = GET + capitalizedAttr;\n constructor.prototype[attr] = function () {\n if (arguments.length) {\n this[setter](arguments[0]);\n return this;\n }\n return this[getter]();\n };\n },\n addDeprecatedGetterSetter: function (constructor, attr, def, validator) {\n Util_1.Util.error('Adding deprecated ' + attr);\n var method = GET + Util_1.Util._capitalize(attr);\n var message = attr +\n ' property is deprecated and will be removed soon. Look at Konva change log for more information.';\n constructor.prototype[method] = function () {\n Util_1.Util.error(message);\n var val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n this.addSetter(constructor, attr, validator, function () {\n Util_1.Util.error(message);\n });\n this.addOverloadedGetterSetter(constructor, attr);\n },\n backCompat: function (constructor, methods) {\n Util_1.Util.each(methods, function (oldMethodName, newMethodName) {\n var method = constructor.prototype[newMethodName];\n var oldGetter = GET + Util_1.Util._capitalize(oldMethodName);\n var oldSetter = SET + Util_1.Util._capitalize(oldMethodName);\n function deprecated() {\n method.apply(this, arguments);\n Util_1.Util.error('\"' +\n oldMethodName +\n '\" method is deprecated and will be removed soon. Use \"\"' +\n newMethodName +\n '\" instead.');\n }\n constructor.prototype[oldMethodName] = deprecated;\n constructor.prototype[oldGetter] = deprecated;\n constructor.prototype[oldSetter] = deprecated;\n });\n },\n afterSetFilter: function () {\n this._filterUpToDate = false;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL3NwLWltYWdlLWFubm90YXRpb24vLi9ub2RlX21vZHVsZXMvX2tvbnZhQDQuMi4yQGtvbnZhL2xpYi9GYWN0b3J5LmpzPzJmMWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgVXRpbF8xID0gcmVxdWlyZShcIi4vVXRpbFwiKTtcbnZhciBWYWxpZGF0b3JzXzEgPSByZXF1aXJlKFwiLi9WYWxpZGF0b3JzXCIpO1xudmFyIEdFVCA9ICdnZXQnLCBTRVQgPSAnc2V0JztcbmV4cG9ydHMuRmFjdG9yeSA9IHtcbiAgICBhZGRHZXR0ZXJTZXR0ZXI6IGZ1bmN0aW9uIChjb25zdHJ1Y3RvciwgYXR0ciwgZGVmLCB2YWxpZGF0b3IsIGFmdGVyKSB7XG4gICAgICAgIHRoaXMuYWRkR2V0dGVyKGNvbnN0cnVjdG9yLCBhdHRyLCBkZWYpO1xuICAgICAgICB0aGlzLmFkZFNldHRlcihjb25zdHJ1Y3RvciwgYXR0ciwgdmFsaWRhdG9yLCBhZnRlcik7XG4gICAgICAgIHRoaXMuYWRkT3ZlcmxvYWRlZEdldHRlclNldHRlcihjb25zdHJ1Y3RvciwgYXR0cik7XG4gICAgfSxcbiAgICBhZGRHZXR0ZXI6IGZ1bmN0aW9uIChjb25zdHJ1Y3RvciwgYXR0ciwgZGVmKSB7XG4gICAgICAgIHZhciBtZXRob2QgPSBHRVQgKyBVdGlsXzEuVXRpbC5fY2FwaXRhbGl6ZShhdHRyKTtcbiAgICAgICAgY29uc3RydWN0b3IucHJvdG90eXBlW21ldGhvZF0gPVxuICAgICAgICAgICAgY29uc3RydWN0b3IucHJvdG90eXBlW21ldGhvZF0gfHxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB2YWwgPSB0aGlzLmF0dHJzW2F0dHJdO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSB1bmRlZmluZWQgPyBkZWYgOiB2YWw7XG4gICAgICAgICAgICAgICAgfTtcbiAgICB9LFxuICAgIGFkZFNldHRlcjogZnVuY3Rpb24gKGNvbnN0cnVjdG9yLCBhdHRyLCB2YWxpZGF0b3IsIGFmdGVyKSB7XG4gICAgICAgIHZhciBtZXRob2QgPSBTRVQgKyBVdGlsXzEuVXRpbC5fY2FwaXRhbGl6ZShhdHRyKTtcbiAgICAgICAgaWYgKCFjb25zdHJ1Y3Rvci5wcm90b3R5cGVbbWV0aG9kXSkge1xuICAgICAgICAgICAgZXhwb3J0cy5GYWN0b3J5Lm92ZXJXcml0ZVNldHRlcihjb25zdHJ1Y3RvciwgYXR0ciwgdmFsaWRhdG9yLCBhZnRlcik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG92ZXJXcml0ZVNldHRlcjogZnVuY3Rpb24gKGNvbnN0cnVjdG9yLCBhdHRyLCB2YWxpZGF0b3IsIGFmdGVyKSB7XG4gICAgICAgIHZhciBtZXRob2QgPSBTRVQgKyBVdGlsXzEuVXRpbC5fY2FwaXRhbGl6ZShhdHRyKTtcbiAgICAgICAgY29uc3RydWN0b3IucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgICAgICBpZiAodmFsaWRhdG9yICYmIHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHZhbCA9IHZhbGlkYXRvci5jYWxsKHRoaXMsIHZhbCwgYXR0cik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9zZXRBdHRyKGF0dHIsIHZhbCk7XG4gICAgICAgICAgICBpZiAoYWZ0ZXIpIHtcbiAgICAgICAgICAgICAgICBhZnRlci5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH07XG4gICAgfSxcbiAgICBhZGRDb21wb25lbnRzR2V0dGVyU2V0dGVyOiBmdW5jdGlvbiAoY29uc3RydWN0b3IsIGF0dHIsIGNvbXBvbmVudHMsIHZhbGlkYXRvciwgYWZ0ZXIpIHtcbiAgICAgICAgdmFyIGxlbiA9IGNvbXBvbmVudHMubGVuZ3RoLCBjYXBpdGFsaXplID0gVXRpbF8xLlV0aWwuX2NhcGl0YWxpemUsIGdldHRlciA9IEdFVCArIGNhcGl0YWxpemUoYXR0ciksIHNldHRlciA9IFNFVCArIGNhcGl0YWxpemUoYXR0ciksIG4sIGNvbXBvbmVudDtcbiAgICAgICAgY29uc3RydWN0b3IucHJvdG90eXBlW2dldHRlcl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgcmV0ID0ge307XG4gICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgbGVuOyBuKyspIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQgPSBjb21wb25lbnRzW25dO1xuICAgICAgICAgICAgICAgIHJldFtjb21wb25lbnRdID0gdGhpcy5nZXRBdHRyKGF0dHIgKyBjYXBpdGFsaXplKGNvbXBvbmVudCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGJhc2ljVmFsaWRhdG9yID0gVmFsaWRhdG9yc18xLmdldENvbXBvbmVudFZhbGlkYXRvcihjb21wb25lbnRzKTtcbiAgICAgICAgY29uc3RydWN0b3IucHJvdG90eXBlW3NldHRlcl0gPSBmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgICAgICB2YXIgb2xkVmFsID0gdGhpcy5hdHRyc1thdHRyXSwga2V5O1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRvcikge1xuICAgICAgICAgICAgICAgIHZhbCA9IHZhbGlkYXRvci5jYWxsKHRoaXMsIHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYmFzaWNWYWxpZGF0b3IpIHtcbiAgICAgICAgICAgICAgICBiYXNpY1ZhbGlkYXRvci5jYWxsKHRoaXMsIHZhbCwgYXR0cik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGtleSBpbiB2YWwpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRBdHRyKGF0dHIgKyBjYXBpdGFsaXplKGtleSksIHZhbFtrZXldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2ZpcmVDaGFuZ2VFdmVudChhdHRyLCBvbGRWYWwsIHZhbCk7XG4gICAgICAgICAgICBpZiAoYWZ0ZXIpIHtcbiAgICAgICAgICAgICAgICBhZnRlci5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYWRkT3ZlcmxvYWRlZEdldHRlclNldHRlcihjb25zdHJ1Y3RvciwgYXR0cik7XG4gICAgfSxcbiAgICBhZGRPdmVybG9hZGVkR2V0dGVyU2V0dGVyOiBmdW5jdGlvbiAoY29uc3RydWN0b3IsIGF0dHIpIHtcbiAgICAgICAgdmFyIGNhcGl0YWxpemVkQXR0ciA9IFV0aWxfMS5VdGlsLl9jYXBpdGFsaXplKGF0dHIpLCBzZXR0ZXIgPSBTRVQgKyBjYXBpdGFsaXplZEF0dHIsIGdldHRlciA9IEdFVCArIGNhcGl0YWxpemVkQXR0cjtcbiAgICAgICAgY29uc3RydWN0b3IucHJvdG90eXBlW2F0dHJdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzW3NldHRlcl0oYXJndW1lbnRzWzBdKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzW2dldHRlcl0oKTtcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGFkZERlcHJlY2F0ZWRHZXR0ZXJTZXR0ZXI6IGZ1bmN0aW9uIChjb25zdHJ1Y3RvciwgYXR0ciwgZGVmLCB2YWxpZGF0b3IpIHtcbiAgICAgICAgVXRpbF8xLlV0aWwuZXJyb3IoJ0FkZGluZyBkZXByZWNhdGVkICcgKyBhdHRyKTtcbiAgICAgICAgdmFyIG1ldGhvZCA9IEdFVCArIFV0aWxfMS5VdGlsLl9jYXBpdGFsaXplKGF0dHIpO1xuICAgICAgICB2YXIgbWVzc2FnZSA9IGF0dHIgK1xuICAgICAgICAgICAgJyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgc29vbi4gTG9vayBhdCBLb252YSBjaGFuZ2UgbG9nIGZvciBtb3JlIGluZm9ybWF0aW9uLic7XG4gICAgICAgIGNvbnN0cnVjdG9yLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgVXRpbF8xLlV0aWwuZXJyb3IobWVzc2FnZSk7XG4gICAgICAgICAgICB2YXIgdmFsID0gdGhpcy5hdHRyc1thdHRyXTtcbiAgICAgICAgICAgIHJldHVybiB2YWwgPT09IHVuZGVmaW5lZCA/IGRlZiA6IHZhbDtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5hZGRTZXR0ZXIoY29uc3RydWN0b3IsIGF0dHIsIHZhbGlkYXRvciwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgVXRpbF8xLlV0aWwuZXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFkZE92ZXJsb2FkZWRHZXR0ZXJTZXR0ZXIoY29uc3RydWN0b3IsIGF0dHIpO1xuICAgIH0sXG4gICAgYmFja0NvbXBhdDogZnVuY3Rpb24gKGNvbnN0cnVjdG9yLCBtZXRob2RzKSB7XG4gICAgICAgIFV0aWxfMS5VdGlsLmVhY2gobWV0aG9kcywgZnVuY3Rpb24gKG9sZE1ldGhvZE5hbWUsIG5ld01ldGhvZE5hbWUpIHtcbiAgICAgICAgICAgIHZhciBtZXRob2QgPSBjb25zdHJ1Y3Rvci5wcm90b3R5cGVbbmV3TWV0aG9kTmFtZV07XG4gICAgICAgICAgICB2YXIgb2xkR2V0dGVyID0gR0VUICsgVXRpbF8xLlV0aWwuX2NhcGl0YWxpemUob2xkTWV0aG9kTmFtZSk7XG4gICAgICAgICAgICB2YXIgb2xkU2V0dGVyID0gU0VUICsgVXRpbF8xLlV0aWwuX2NhcGl0YWxpemUob2xkTWV0aG9kTmFtZSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBkZXByZWNhdGVkKCkge1xuICAgICAgICAgICAgICAgIG1ldGhvZC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIFV0aWxfMS5VdGlsLmVycm9yKCdcIicgK1xuICAgICAgICAgICAgICAgICAgICBvbGRNZXRob2ROYW1lICtcbiAgICAgICAgICAgICAgICAgICAgJ1wiIG1ldGhvZCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgc29vbi4gVXNlIFwiXCInICtcbiAgICAgICAgICAgICAgICAgICAgbmV3TWV0aG9kTmFtZSArXG4gICAgICAgICAgICAgICAgICAgICdcIiBpbnN0ZWFkLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3RydWN0b3IucHJvdG90eXBlW29sZE1ldGhvZE5hbWVdID0gZGVwcmVjYXRlZDtcbiAgICAgICAgICAgIGNvbnN0cnVjdG9yLnByb3RvdHlwZVtvbGRHZXR0ZXJdID0gZGVwcmVjYXRlZDtcbiAgICAgICAgICAgIGNvbnN0cnVjdG9yLnByb3RvdHlwZVtvbGRTZXR0ZXJdID0gZGVwcmVjYXRlZDtcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBhZnRlclNldEZpbHRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLl9maWx0ZXJVcFRvRGF0ZSA9IGZhbHNlO1xuICAgIH1cbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n")},function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(global) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar PI_OVER_180 = Math.PI / 180;\nfunction detectBrowser() {\n return (typeof window !== 'undefined' &&\n ({}.toString.call(window) === '[object Window]' ||\n {}.toString.call(window) === '[object global]'));\n}\nvar _detectIE = function (ua) {\n var msie = ua.indexOf('msie ');\n if (msie > 0) {\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n var trident = ua.indexOf('trident/');\n if (trident > 0) {\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n var edge = ua.indexOf('edge/');\n if (edge > 0) {\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n }\n return false;\n};\nexports._parseUA = function (userAgent) {\n var ua = userAgent.toLowerCase(), match = /(chrome)[ /]([\\w.]+)/.exec(ua) ||\n /(webkit)[ /]([\\w.]+)/.exec(ua) ||\n /(opera)(?:.*version|)[ /]([\\w.]+)/.exec(ua) ||\n /(msie) ([\\w.]+)/.exec(ua) ||\n (ua.indexOf('compatible') < 0 &&\n /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua)) ||\n [], mobile = !!userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i), ieMobile = !!userAgent.match(/IEMobile/i);\n return {\n browser: match[1] || '',\n version: match[2] || '0',\n isIE: _detectIE(ua),\n mobile: mobile,\n ieMobile: ieMobile\n };\n};\nexports.glob = typeof global !== 'undefined'\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof WorkerGlobalScope !== 'undefined'\n ? self\n : {};\nexports.Konva = {\n _global: exports.glob,\n version: '4.2.2',\n isBrowser: detectBrowser(),\n isUnminified: /param/.test(function (param) { }.toString()),\n dblClickWindow: 400,\n getAngle: function (angle) {\n return exports.Konva.angleDeg ? angle * PI_OVER_180 : angle;\n },\n enableTrace: false,\n _pointerEventsEnabled: false,\n hitOnDragEnabled: false,\n captureTouchEventsEnabled: false,\n listenClickTap: false,\n inDblClickWindow: false,\n pixelRatio: undefined,\n dragDistance: 3,\n angleDeg: true,\n showWarnings: true,\n dragButtons: [0, 1],\n isDragging: function () {\n return exports.Konva['DD'].isDragging;\n },\n isDragReady: function () {\n return !!exports.Konva['DD'].node;\n },\n UA: exports._parseUA((exports.glob.navigator && exports.glob.navigator.userAgent) || ''),\n document: exports.glob.document,\n _injectGlobal: function (Konva) {\n exports.glob.Konva = Konva;\n },\n _parseUA: exports._parseUA\n};\nexports._NODES_REGISTRY = {};\nexports._registerNode = function (NodeClass) {\n exports._NODES_REGISTRY[NodeClass.prototype.getClassName()] = NodeClass;\n exports.Konva[NodeClass.prototype.getClassName()] = NodeClass;\n};\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL3NwLWltYWdlLWFubm90YXRpb24vLi9ub2RlX21vZHVsZXMvX2tvbnZhQDQuMi4yQGtvbnZhL2xpYi9HbG9iYWwuanM/YjhkNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBQSV9PVkVSXzE4MCA9IE1hdGguUEkgLyAxODA7XG5mdW5jdGlvbiBkZXRlY3RCcm93c2VyKCkge1xuICAgIHJldHVybiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgKHt9LnRvU3RyaW5nLmNhbGwod2luZG93KSA9PT0gJ1tvYmplY3QgV2luZG93XScgfHxcbiAgICAgICAgICAgIHt9LnRvU3RyaW5nLmNhbGwod2luZG93KSA9PT0gJ1tvYmplY3QgZ2xvYmFsXScpKTtcbn1cbnZhciBfZGV0ZWN0SUUgPSBmdW5jdGlvbiAodWEpIHtcbiAgICB2YXIgbXNpZSA9IHVhLmluZGV4T2YoJ21zaWUgJyk7XG4gICAgaWYgKG1zaWUgPiAwKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludCh1YS5zdWJzdHJpbmcobXNpZSArIDUsIHVhLmluZGV4T2YoJy4nLCBtc2llKSksIDEwKTtcbiAgICB9XG4gICAgdmFyIHRyaWRlbnQgPSB1YS5pbmRleE9mKCd0cmlkZW50LycpO1xuICAgIGlmICh0cmlkZW50ID4gMCkge1xuICAgICAgICB2YXIgcnYgPSB1YS5pbmRleE9mKCdydjonKTtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHVhLnN1YnN0cmluZyhydiArIDMsIHVhLmluZGV4T2YoJy4nLCBydikpLCAxMCk7XG4gICAgfVxuICAgIHZhciBlZGdlID0gdWEuaW5kZXhPZignZWRnZS8nKTtcbiAgICBpZiAoZWRnZSA+IDApIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHVhLnN1YnN0cmluZyhlZGdlICsgNSwgdWEuaW5kZXhPZignLicsIGVkZ2UpKSwgMTApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuZXhwb3J0cy5fcGFyc2VVQSA9IGZ1bmN0aW9uICh1c2VyQWdlbnQpIHtcbiAgICB2YXIgdWEgPSB1c2VyQWdlbnQudG9Mb3dlckNhc2UoKSwgbWF0Y2ggPSAvKGNocm9tZSlbIC9dKFtcXHcuXSspLy5leGVjKHVhKSB8fFxuICAgICAgICAvKHdlYmtpdClbIC9dKFtcXHcuXSspLy5leGVjKHVhKSB8fFxuICAgICAgICAvKG9wZXJhKSg/Oi4qdmVyc2lvbnwpWyAvXShbXFx3Ll0rKS8uZXhlYyh1YSkgfHxcbiAgICAgICAgLyhtc2llKSAoW1xcdy5dKykvLmV4ZWModWEpIHx8XG4gICAgICAgICh1YS5pbmRleE9mKCdjb21wYXRpYmxlJykgPCAwICYmXG4gICAgICAgICAgICAvKG1vemlsbGEpKD86Lio/IHJ2OihbXFx3Ll0rKXwpLy5leGVjKHVhKSkgfHxcbiAgICAgICAgW10sIG1vYmlsZSA9ICEhdXNlckFnZW50Lm1hdGNoKC9BbmRyb2lkfEJsYWNrQmVycnl8aVBob25lfGlQYWR8aVBvZHxPcGVyYSBNaW5pfElFTW9iaWxlL2kpLCBpZU1vYmlsZSA9ICEhdXNlckFnZW50Lm1hdGNoKC9JRU1vYmlsZS9pKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBicm93c2VyOiBtYXRjaFsxXSB8fCAnJyxcbiAgICAgICAgdmVyc2lvbjogbWF0Y2hbMl0gfHwgJzAnLFxuICAgICAgICBpc0lFOiBfZGV0ZWN0SUUodWEpLFxuICAgICAgICBtb2JpbGU6IG1vYmlsZSxcbiAgICAgICAgaWVNb2JpbGU6IGllTW9iaWxlXG4gICAgfTtcbn07XG5leHBvcnRzLmdsb2IgPSB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJ1xuICAgID8gZ2xvYmFsXG4gICAgOiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICA/IHdpbmRvd1xuICAgICAgICA6IHR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgICAgID8gc2VsZlxuICAgICAgICAgICAgOiB7fTtcbmV4cG9ydHMuS29udmEgPSB7XG4gICAgX2dsb2JhbDogZXhwb3J0cy5nbG9iLFxuICAgIHZlcnNpb246ICc0LjIuMicsXG4gICAgaXNCcm93c2VyOiBkZXRlY3RCcm93c2VyKCksXG4gICAgaXNVbm1pbmlmaWVkOiAvcGFyYW0vLnRlc3QoZnVuY3Rpb24gKHBhcmFtKSB7IH0udG9TdHJpbmcoKSksXG4gICAgZGJsQ2xpY2tXaW5kb3c6IDQwMCxcbiAgICBnZXRBbmdsZTogZnVuY3Rpb24gKGFuZ2xlKSB7XG4gICAgICAgIHJldHVybiBleHBvcnRzLktvbnZhLmFuZ2xlRGVnID8gYW5nbGUgKiBQSV9PVkVSXzE4MCA6IGFuZ2xlO1xuICAgIH0sXG4gICAgZW5hYmxlVHJhY2U6IGZhbHNlLFxuICAgIF9wb2ludGVyRXZlbnRzRW5hYmxlZDogZmFsc2UsXG4gICAgaGl0T25EcmFnRW5hYmxlZDogZmFsc2UsXG4gICAgY2FwdHVyZVRvdWNoRXZlbnRzRW5hYmxlZDogZmFsc2UsXG4gICAgbGlzdGVuQ2xpY2tUYXA6IGZhbHNlLFxuICAgIGluRGJsQ2xpY2tXaW5kb3c6IGZhbHNlLFxuICAgIHBpeGVsUmF0aW86IHVuZGVmaW5lZCxcbiAgICBkcmFnRGlzdGFuY2U6IDMsXG4gICAgYW5nbGVEZWc6IHRydWUsXG4gICAgc2hvd1dhcm5pbmdzOiB0cnVlLFxuICAgIGRyYWdCdXR0b25zOiBbMCwgMV0sXG4gICAgaXNEcmFnZ2luZzogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZXhwb3J0cy5Lb252YVsnREQnXS5pc0RyYWdnaW5nO1xuICAgIH0sXG4gICAgaXNEcmFnUmVhZHk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICEhZXhwb3J0cy5Lb252YVsnREQnXS5ub2RlO1xuICAgIH0sXG4gICAgVUE6IGV4cG9ydHMuX3BhcnNlVUEoKGV4cG9ydHMuZ2xvYi5uYXZpZ2F0b3IgJiYgZXhwb3J0cy5nbG9iLm5hdmlnYXRvci51c2VyQWdlbnQpIHx8ICcnKSxcbiAgICBkb2N1bWVudDogZXhwb3J0cy5nbG9iLmRvY3VtZW50LFxuICAgIF9pbmplY3RHbG9iYWw6IGZ1bmN0aW9uIChLb252YSkge1xuICAgICAgICBleHBvcnRzLmdsb2IuS29udmEgPSBLb252YTtcbiAgICB9LFxuICAgIF9wYXJzZVVBOiBleHBvcnRzLl9wYXJzZVVBXG59O1xuZXhwb3J0cy5fTk9ERVNfUkVHSVNUUlkgPSB7fTtcbmV4cG9ydHMuX3JlZ2lzdGVyTm9kZSA9IGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICBleHBvcnRzLl9OT0RFU19SRUdJU1RSWVtOb2RlQ2xhc3MucHJvdG90eXBlLmdldENsYXNzTmFtZSgpXSA9IE5vZGVDbGFzcztcbiAgICBleHBvcnRzLktvbnZhW05vZGVDbGFzcy5wcm90b3R5cGUuZ2V0Q2xhc3NOYW1lKCldID0gTm9kZUNsYXNzO1xufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1\n")},function(module,exports,__webpack_require__){"use strict";eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Global_1 = __webpack_require__(1);\nvar Util_1 = __webpack_require__(3);\nfunction _formatValue(val) {\n if (Util_1.Util._isString(val)) {\n return '\"' + val + '\"';\n }\n if (Object.prototype.toString.call(val) === '[object Number]') {\n return val;\n }\n if (Util_1.Util._isBoolean(val)) {\n return val;\n }\n return Object.prototype.toString.call(val);\n}\nfunction RGBComponent(val) {\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n return Math.round(val);\n}\nexports.RGBComponent = RGBComponent;\nfunction alphaComponent(val) {\n if (val > 1) {\n return 1;\n }\n else if (val < 0.0001) {\n return 0.0001;\n }\n return val;\n}\nexports.alphaComponent = alphaComponent;\nfunction getNumberValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isNumber(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number.');\n }\n return val;\n };\n }\n}\nexports.getNumberValidator = getNumberValidator;\nfunction getNumberOrAutoValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n var isNumber = Util_1.Util._isNumber(val);\n var isAuto = val === 'auto';\n if (!(isNumber || isAuto)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number or \"auto\".');\n }\n return val;\n };\n }\n}\nexports.getNumberOrAutoValidator = getNumberOrAutoValidator;\nfunction getStringValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isString(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a string.');\n }\n return val;\n };\n }\n}\nexports.getStringValidator = getStringValidator;\nfunction getFunctionValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isFunction(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a function.');\n }\n return val;\n };\n }\n}\nexports.getFunctionValidator = getFunctionValidator;\nfunction getNumberArrayValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isArray(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a array of numbers.');\n }\n else {\n val.forEach(function (item) {\n if (!Util_1.Util._isNumber(item)) {\n Util_1.Util.warn('\"' +\n attr +\n '\" attribute has non numeric element ' +\n item +\n '. Make sure that all elements are numbers.');\n }\n });\n }\n return val;\n };\n }\n}\nexports.getNumberArrayValidator = getNumberArrayValidator;\nfunction getBooleanValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n var isBool = val === true || val === false;\n if (!isBool) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a boolean.');\n }\n return val;\n };\n }\n}\nexports.getBooleanValidator = getBooleanValidator;\nfunction getComponentValidator(components) {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util.isObject(val)) {\n Util_1.Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be an object with properties ' +\n components);\n }\n return val;\n };\n }\n}\nexports.getComponentValidator = getComponentValidator;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL3NwLWltYWdlLWFubm90YXRpb24vLi9ub2RlX21vZHVsZXMvX2tvbnZhQDQuMi4yQGtvbnZhL2xpYi9WYWxpZGF0b3JzLmpzP2UwNGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgR2xvYmFsXzEgPSByZXF1aXJlKFwiLi9HbG9iYWxcIik7XG52YXIgVXRpbF8xID0gcmVxdWlyZShcIi4vVXRpbFwiKTtcbmZ1bmN0aW9uIF9mb3JtYXRWYWx1ZSh2YWwpIHtcbiAgICBpZiAoVXRpbF8xLlV0aWwuX2lzU3RyaW5nKHZhbCkpIHtcbiAgICAgICAgcmV0dXJuICdcIicgKyB2YWwgKyAnXCInO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbCkgPT09ICdbb2JqZWN0IE51bWJlcl0nKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGlmIChVdGlsXzEuVXRpbC5faXNCb29sZWFuKHZhbCkpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWwpO1xufVxuZnVuY3Rpb24gUkdCQ29tcG9uZW50KHZhbCkge1xuICAgIGlmICh2YWwgPiAyNTUpIHtcbiAgICAgICAgcmV0dXJuIDI1NTtcbiAgICB9XG4gICAgZWxzZSBpZiAodmFsIDwgMCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucm91bmQodmFsKTtcbn1cbmV4cG9ydHMuUkdCQ29tcG9uZW50ID0gUkdCQ29tcG9uZW50O1xuZnVuY3Rpb24gYWxwaGFDb21wb25lbnQodmFsKSB7XG4gICAgaWYgKHZhbCA+IDEpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIGVsc2UgaWYgKHZhbCA8IDAuMDAwMSkge1xuICAgICAgICByZXR1cm4gMC4wMDAxO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xufVxuZXhwb3J0cy5hbHBoYUNvbXBvbmVudCA9IGFscGhhQ29tcG9uZW50O1xuZnVuY3Rpb24gZ2V0TnVtYmVyVmFsaWRhdG9yKCkge1xuICAgIGlmIChHbG9iYWxfMS5Lb252YS5pc1VubWluaWZpZWQpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWwsIGF0dHIpIHtcbiAgICAgICAgICAgIGlmICghVXRpbF8xLlV0aWwuX2lzTnVtYmVyKHZhbCkpIHtcbiAgICAgICAgICAgICAgICBVdGlsXzEuVXRpbC53YXJuKF9mb3JtYXRWYWx1ZSh2YWwpICtcbiAgICAgICAgICAgICAgICAgICAgJyBpcyBhIG5vdCB2YWxpZCB2YWx1ZSBmb3IgXCInICtcbiAgICAgICAgICAgICAgICAgICAgYXR0ciArXG4gICAgICAgICAgICAgICAgICAgICdcIiBhdHRyaWJ1dGUuIFRoZSB2YWx1ZSBzaG91bGQgYmUgYSBudW1iZXIuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydHMuZ2V0TnVtYmVyVmFsaWRhdG9yID0gZ2V0TnVtYmVyVmFsaWRhdG9yO1xuZnVuY3Rpb24gZ2V0TnVtYmVyT3JBdXRvVmFsaWRhdG9yKCkge1xuICAgIGlmIChHbG9iYWxfMS5Lb252YS5pc1VubWluaWZpZWQpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWwsIGF0dHIpIHtcbiAgICAgICAgICAgIHZhciBpc051bWJlciA9IFV0aWxfMS5VdGlsLl9pc051bWJlcih2YWwpO1xuICAgICAgICAgICAgdmFyIGlzQXV0byA9IHZhbCA9PT0gJ2F1dG8nO1xuICAgICAgICAgICAgaWYgKCEoaXNOdW1iZXIgfHwgaXNBdXRvKSkge1xuICAgICAgICAgICAgICAgIFV0aWxfMS5VdGlsLndhcm4oX2Zvcm1hdFZhbHVlKHZhbCkgK1xuICAgICAgICAgICAgICAgICAgICAnIGlzIGEgbm90IHZhbGlkIHZhbHVlIGZvciBcIicgK1xuICAgICAgICAgICAgICAgICAgICBhdHRyICtcbiAgICAgICAgICAgICAgICAgICAgJ1wiIGF0dHJpYnV0ZS4gVGhlIHZhbHVlIHNob3VsZCBiZSBhIG51bWJlciBvciBcImF1dG9cIi4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0cy5nZXROdW1iZXJPckF1dG9WYWxpZGF0b3IgPSBnZXROdW1iZXJPckF1dG9WYWxpZGF0b3I7XG5mdW5jdGlvbiBnZXRTdHJpbmdWYWxpZGF0b3IoKSB7XG4gICAgaWYgKEdsb2JhbF8xLktvbnZhLmlzVW5taW5pZmllZCkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbCwgYXR0cikge1xuICAgICAgICAgICAgaWYgKCFVdGlsXzEuVXRpbC5faXNTdHJpbmcodmFsKSkge1xuICAgICAgICAgICAgICAgIFV0aWxfMS5VdGlsLndhcm4oX2Zvcm1hdFZhbHVlKHZhbCkgK1xuICAgICAgICAgICAgICAgICAgICAnIGlzIGEgbm90IHZhbGlkIHZhbHVlIGZvciBcIicgK1xuICAgICAgICAgICAgICAgICAgICBhdHRyICtcbiAgICAgICAgICAgICAgICAgICAgJ1wiIGF0dHJpYnV0ZS4gVGhlIHZhbHVlIHNob3VsZCBiZSBhIHN0cmluZy4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0cy5nZXRTdHJpbmdWYWxpZGF0b3IgPSBnZXRTdHJpbmdWYWxpZGF0b3I7XG5mdW5jdGlvbiBnZXRGdW5jdGlvblZhbGlkYXRvcigpIHtcbiAgICBpZiAoR2xvYmFsXzEuS29udmEuaXNVbm1pbmlmaWVkKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsLCBhdHRyKSB7XG4gICAgICAgICAgICBpZiAoIVV0aWxfMS5VdGlsLl9pc0Z1bmN0aW9uKHZhbCkpIHtcbiAgICAgICAgICAgICAgICBVdGlsXzEuVXRpbC53YXJuKF9mb3JtYXRWYWx1ZSh2YWwpICtcbiAgICAgICAgICAgICAgICAgICAgJyBpcyBhIG5vdCB2YWxpZCB2YWx1ZSBmb3IgXCInICtcbiAgICAgICAgICAgICAgICAgICAgYXR0ciArXG4gICAgICAgICAgICAgICAgICAgICdcIiBhdHRyaWJ1dGUuIFRoZSB2YWx1ZSBzaG91bGQgYmUgYSBmdW5jdGlvbi4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0cy5nZXRGdW5jdGlvblZhbGlkYXRvciA9IGdldEZ1bmN0aW9uVmFsaWRhdG9yO1xuZnVuY3Rpb24gZ2V0TnVtYmVyQXJyYXlWYWxpZGF0b3IoKSB7XG4gICAgaWYgKEdsb2JhbF8xLktvbnZhLmlzVW5taW5pZmllZCkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbCwgYXR0cikge1xuICAgICAgICAgICAgaWYgKCFVdGlsXzEuVXRpbC5faXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICAgICAgVXRpbF8xLlV0aWwud2FybihfZm9ybWF0VmFsdWUodmFsKSArXG4gICAgICAgICAgICAgICAgICAgICcgaXMgYSBub3QgdmFsaWQgdmFsdWUgZm9yIFwiJyArXG4gICAgICAgICAgICAgICAgICAgIGF0dHIgK1xuICAgICAgICAgICAgICAgICAgICAnXCIgYXR0cmlidXRlLiBUaGUgdmFsdWUgc2hvdWxkIGJlIGEgYXJyYXkgb2YgbnVtYmVycy4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbC5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbF8xLlV0aWwuX2lzTnVtYmVyKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBVdGlsXzEuVXRpbC53YXJuKCdcIicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcIiBhdHRyaWJ1dGUgaGFzIG5vbiBudW1lcmljIGVsZW1lbnQgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4gTWFrZSBzdXJlIHRoYXQgYWxsIGVsZW1lbnRzIGFyZSBudW1iZXJzLicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydHMuZ2V0TnVtYmVyQXJyYXlWYWxpZGF0b3IgPSBnZXROdW1iZXJBcnJheVZhbGlkYXRvcjtcbmZ1bmN0aW9uIGdldEJvb2xlYW5WYWxpZGF0b3IoKSB7XG4gICAgaWYgKEdsb2JhbF8xLktvbnZhLmlzVW5taW5pZmllZCkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbCwgYXR0cikge1xuICAgICAgICAgICAgdmFyIGlzQm9vbCA9IHZhbCA9PT0gdHJ1ZSB8fCB2YWwgPT09IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCFpc0Jvb2wpIHtcbiAgICAgICAgICAgICAgICBVdGlsXzEuVXRpbC53YXJuKF9mb3JtYXRWYWx1ZSh2YWwpICtcbiAgICAgICAgICAgICAgICAgICAgJyBpcyBhIG5vdCB2YWxpZCB2YWx1ZSBmb3IgXCInICtcbiAgICAgICAgICAgICAgICAgICAgYXR0ciArXG4gICAgICAgICAgICAgICAgICAgICdcIiBhdHRyaWJ1dGUuIFRoZSB2YWx1ZSBzaG91bGQgYmUgYSBib29sZWFuLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnRzLmdldEJvb2xlYW5WYWxpZGF0b3IgPSBnZXRCb29sZWFuVmFsaWRhdG9yO1xuZnVuY3Rpb24gZ2V0Q29tcG9uZW50VmFsaWRhdG9yKGNvbXBvbmVudHMpIHtcbiAgICBpZiAoR2xvYmFsXzEuS29udmEuaXNVbm1pbmlmaWVkKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsLCBhdHRyKSB7XG4gICAgICAgICAgICBpZiAoIVV0aWxfMS5VdGlsLmlzT2JqZWN0KHZhbCkpIHtcbiAgICAgICAgICAgICAgICBVdGlsXzEuVXRpbC53YXJuKF9mb3JtYXRWYWx1ZSh2YWwpICtcbiAgICAgICAgICAgICAgICAgICAgJyBpcyBhIG5vdCB2YWxpZCB2YWx1ZSBmb3IgXCInICtcbiAgICAgICAgICAgICAgICAgICAgYXR0ciArXG4gICAgICAgICAgICAgICAgICAgICdcIiBhdHRyaWJ1dGUuIFRoZSB2YWx1ZSBzaG91bGQgYmUgYW4gb2JqZWN0IHdpdGggcHJvcGVydGllcyAnICtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydHMuZ2V0Q29tcG9uZW50VmFsaWRhdG9yID0gZ2V0Q29tcG9uZW50VmFsaWRhdG9yO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///2\n")},function(module,exports,__webpack_require__){"use strict";eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Global_1 = __webpack_require__(1);\nvar Collection = (function () {\n function Collection() {\n }\n Collection.toCollection = function (arr) {\n var collection = new Collection(), len = arr.length, n;\n for (n = 0; n < len; n++) {\n collection.push(arr[n]);\n }\n return collection;\n };\n Collection._mapMethod = function (methodName) {\n Collection.prototype[methodName] = function () {\n var len = this.length, i;\n var args = [].slice.call(arguments);\n for (i = 0; i < len; i++) {\n this[i][methodName].apply(this[i], args);\n }\n return this;\n };\n };\n Collection.mapMethods = function (constructor) {\n var prot = constructor.prototype;\n for (var methodName in prot) {\n Collection._mapMethod(methodName);\n }\n };\n return Collection;\n}());\nexports.Collection = Collection;\nCollection.prototype = [];\nCollection.prototype.each = function (func) {\n for (var n = 0; n < this.length; n++) {\n func(this[n], n);\n }\n};\nCollection.prototype.toArray = function () {\n var arr = [], len = this.length, n;\n for (n = 0; n < len; n++) {\n arr.push(this[n]);\n }\n return arr;\n};\nvar Transform = (function () {\n function Transform(m) {\n if (m === void 0) { m = [1, 0, 0, 1, 0, 0]; }\n this.m = (m && m.slice()) || [1, 0, 0, 1, 0, 0];\n }\n Transform.prototype.copy = function () {\n return new Transform(this.m);\n };\n Transform.prototype.point = function (point) {\n var m = this.m;\n return {\n x: m[0] * point.x + m[2] * point.y + m[4],\n y: m[1] * point.x + m[3] * point.y + m[5]\n };\n };\n Transform.prototype.translate = function (x, y) {\n this.m[4] += this.m[0] * x + this.m[2] * y;\n this.m[5] += this.m[1] * x + this.m[3] * y;\n return this;\n };\n Transform.prototype.scale = function (sx, sy) {\n this.m[0] *= sx;\n this.m[1] *= sx;\n this.m[2] *= sy;\n this.m[3] *= sy;\n return this;\n };\n Transform.prototype.rotate = function (rad) {\n var c = Math.cos(rad);\n var s = Math.sin(rad);\n var m11 = this.m[0] * c + this.m[2] * s;\n var m12 = this.m[1] * c + this.m[3] * s;\n var m21 = this.m[0] * -s + this.m[2] * c;\n var m22 = this.m[1] * -s + this.m[3] * c;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n };\n Transform.prototype.getTranslation = function () {\n return {\n x: this.m[4],\n y: this.m[5]\n };\n };\n Transform.prototype.skew = function (sx, sy) {\n var m11 = this.m[0] + this.m[2] * sy;\n var m12 = this.m[1] + this.m[3] * sy;\n var m21 = this.m[2] + this.m[0] * sx;\n var m22 = this.m[3] + this.m[1] * sx;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n };\n Transform.prototype.multiply = function (matrix) {\n var m11 = this.m[0] * matrix.m[0] + this.m[2] * matrix.m[1];\n var m12 = this.m[1] * matrix.m[0] + this.m[3] * matrix.m[1];\n var m21 = this.m[0] * matrix.m[2] + this.m[2] * matrix.m[3];\n var m22 = this.m[1] * matrix.m[2] + this.m[3] * matrix.m[3];\n var dx = this.m[0] * matrix.m[4] + this.m[2] * matrix.m[5] + this.m[4];\n var dy = this.m[1] * matrix.m[4] + this.m[3] * matrix.m[5] + this.m[5];\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n this.m[4] = dx;\n this.m[5] = dy;\n return this;\n };\n Transform.prototype.invert = function () {\n var d = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]);\n var m0 = this.m[3] * d;\n var m1 = -this.m[1] * d;\n var m2 = -this.m[2] * d;\n var m3 = this.m[0] * d;\n var m4 = d * (this.m[2] * this.m[5] - this.m[3] * this.m[4]);\n var m5 = d * (this.m[1] * this.m[4] - this.m[0] * this.m[5]);\n this.m[0] = m0;\n this.m[1] = m1;\n this.m[2] = m2;\n this.m[3] = m3;\n this.m[4] = m4;\n this.m[5] = m5;\n return this;\n };\n Transform.prototype.getMatrix = function () {\n return this.m;\n };\n Transform.prototype.setAbsolutePosition = function (x, y) {\n var m0 = this.m[0], m1 = this.m[1], m2 = this.m[2], m3 = this.m[3], m4 = this.m[4], m5 = this.m[5], yt = (m0 * (y - m5) - m1 * (x - m4)) / (m0 * m3 - m1 * m2), xt = (x - m4 - m2 * yt) / m0;\n return this.translate(xt, yt);\n };\n return Transform;\n}());\nexports.Transform = Transform;\nvar OBJECT_ARRAY = '[object Array]', OBJECT_NUMBER = '[object Number]', OBJECT_STRING = '[object String]', OBJECT_BOOLEAN = '[object Boolean]', PI_OVER_DEG180 = Math.PI / 180, DEG180_OVER_PI = 180 / Math.PI, HASH = '#', EMPTY_STRING = '', ZERO = '0', KONVA_WARNING = 'Konva warning: ', KONVA_ERROR = 'Konva error: ', RGB_PAREN = 'rgb(', COLORS = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 132, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 255, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 203],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [119, 128, 144],\n slategrey: [119, 128, 144],\n snow: [255, 255, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n transparent: [255, 255, 255, 0],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 5]\n}, RGB_REGEX = /rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)/, animQueue = [];\nexports.Util = {\n _isElement: function (obj) {\n return !!(obj && obj.nodeType == 1);\n },\n _isFunction: function (obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n },\n _isPlainObject: function (obj) {\n return !!obj && obj.constructor === Object;\n },\n _isArray: function (obj) {\n return Object.prototype.toString.call(obj) === OBJECT_ARRAY;\n },\n _isNumber: function (obj) {\n return (Object.prototype.toString.call(obj) === OBJECT_NUMBER &&\n !isNaN(obj) &&\n isFinite(obj));\n },\n _isString: function (obj) {\n return Object.prototype.toString.call(obj) === OBJECT_STRING;\n },\n _isBoolean: function (obj) {\n return Object.prototype.toString.call(obj) === OBJECT_BOOLEAN;\n },\n isObject: function (val) {\n return val instanceof Object;\n },\n isValidSelector: function (selector) {\n if (typeof selector !== 'string') {\n return false;\n }\n var firstChar = selector[0];\n return (firstChar === '#' ||\n firstChar === '.' ||\n firstChar === firstChar.toUpperCase());\n },\n _sign: function (number) {\n if (number === 0) {\n return 0;\n }\n if (number > 0) {\n return 1;\n }\n else {\n return -1;\n }\n },\n requestAnimFrame: function (callback) {\n animQueue.push(callback);\n if (animQueue.length === 1) {\n requestAnimationFrame(function () {\n var queue = animQueue;\n animQueue = [];\n queue.forEach(function (cb) {\n cb();\n });\n });\n }\n },\n createCanvasElement: function () {\n var canvas = document.createElement('canvas');\n try {\n canvas.style = canvas.style || {};\n }\n catch (e) { }\n return canvas;\n },\n createImageElement: function () {\n return document.createElement('img');\n },\n _isInDocument: function (el) {\n while ((el = el.parentNode)) {\n if (el == document) {\n return true;\n }\n }\n return false;\n },\n _simplifyArray: function (arr) {\n var retArr = [], len = arr.length, util = exports.Util, n, val;\n for (n = 0; n < len; n++) {\n val = arr[n];\n if (util._isNumber(val)) {\n val = Math.round(val * 1000) / 1000;\n }\n else if (!util._isString(val)) {\n val = val.toString();\n }\n retArr.push(val);\n }\n return retArr;\n },\n _urlToImage: function (url, callback) {\n var imageObj = new Global_1.glob.Image();\n imageObj.onload = function () {\n callback(imageObj);\n };\n imageObj.src = url;\n },\n _rgbToHex: function (r, g, b) {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n },\n _hexToRgb: function (hex) {\n hex = hex.replace(HASH, EMPTY_STRING);\n var bigint = parseInt(hex, 16);\n return {\n r: (bigint >> 16) & 255,\n g: (bigint >> 8) & 255,\n b: bigint & 255\n };\n },\n getRandomColor: function () {\n var randColor = ((Math.random() * 0xffffff) << 0).toString(16);\n while (randColor.length < 6) {\n randColor = ZERO + randColor;\n }\n return HASH + randColor;\n },\n get: function (val, def) {\n if (val === undefined) {\n return def;\n }\n else {\n return val;\n }\n },\n getRGB: function (color) {\n var rgb;\n if (color in COLORS) {\n rgb = COLORS[color];\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2]\n };\n }\n else if (color[0] === HASH) {\n return this._hexToRgb(color.substring(1));\n }\n else if (color.substr(0, 4) === RGB_PAREN) {\n rgb = RGB_REGEX.exec(color.replace(/ /g, ''));\n return {\n r: parseInt(rgb[1], 10),\n g: parseInt(rgb[2], 10),\n b: parseInt(rgb[3], 10)\n };\n }\n