{"version":3,"file":"svg.filter.min.js","sources":["../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../src/svg.filter.js"],"sourcesContent":["import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nexport default function _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import {\r\n Array as SVGArray,\r\n Container,\r\n Defs,\r\n Element,\r\n extend,\r\n find,\r\n namespaces as ns,\r\n nodeOrNew,\r\n utils,\r\n wrapWithAttrCheck\r\n} from '@svgdotjs/svg.js'\r\n\r\nexport default class Filter extends Element {\r\n constructor (node) {\r\n super(nodeOrNew('filter', node), node)\r\n\r\n this.$source = 'SourceGraphic'\r\n this.$sourceAlpha = 'SourceAlpha'\r\n this.$background = 'BackgroundImage'\r\n this.$backgroundAlpha = 'BackgroundAlpha'\r\n this.$fill = 'FillPaint'\r\n this.$stroke = 'StrokePaint'\r\n this.$autoSetIn = true\r\n }\r\n\r\n put (element, i) {\r\n element = super.put(element, i)\r\n\r\n if (!element.attr('in') && this.$autoSetIn) {\r\n element.attr('in', this.$source)\r\n }\r\n if (!element.attr('result')) {\r\n element.attr('result', element.id())\r\n }\r\n\r\n return element\r\n }\r\n\r\n // Unmask all masked elements and remove itself\r\n remove () {\r\n // unmask all targets\r\n this.targets().each('unfilter')\r\n\r\n // remove mask from parent\r\n return super.remove()\r\n }\r\n\r\n targets () {\r\n return find('svg [filter*=\"' + this.id() + '\"]')\r\n }\r\n\r\n toString () {\r\n return 'url(#' + this.id() + ')'\r\n }\r\n}\r\n\r\n// Create Effect class\r\nclass Effect extends Element {\r\n constructor (node) {\r\n super(node, node)\r\n this.result(this.id())\r\n }\r\n in (effect) {\r\n // Act as getter\r\n if (effect == null) {\r\n const _in = this.attr('in')\r\n const ref = this.parent() && this.parent().find(`[result=\"${_in}\"]`)[0]\r\n return ref || _in\r\n }\r\n\r\n // Avr as setter\r\n return this.attr('in', effect)\r\n }\r\n // Named result\r\n result (result) {\r\n return this.attr('result', result)\r\n }\r\n // Stringification\r\n toString () {\r\n return this.result()\r\n }\r\n}\r\n\r\n// This function takes an array with attr keys and sets for every key the\r\n// attribute to the value of one paramater\r\n// getAttrSetter(['a', 'b']) becomes this.attr({a: param1, b: param2})\r\nconst getAttrSetter = (params) => {\r\n return function (...args) {\r\n for (let i = params.length; i--;) {\r\n if (args[i] != null) {\r\n this.attr(params[i], args[i])\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst updateFunctions = {\r\n blend: getAttrSetter(['in', 'in2', 'mode']),\r\n // ColorMatrix effect\r\n colorMatrix: getAttrSetter(['type', 'values']),\r\n // Composite effect\r\n composite: getAttrSetter(['in', 'in2', 'operator']),\r\n // ConvolveMatrix effect\r\n convolveMatrix: function (matrix) {\r\n matrix = new SVGArray(matrix).toString()\r\n\r\n this.attr({\r\n order: Math.sqrt(matrix.split(' ').length),\r\n kernelMatrix: matrix\r\n })\r\n },\r\n // DiffuseLighting effect\r\n diffuseLighting: getAttrSetter(['surfaceScale', 'lightingColor', 'diffuseConstant', 'kernelUnitLength']),\r\n // DisplacementMap effect\r\n displacementMap: getAttrSetter(['in', 'in2', 'scale', 'xChannelSelector', 'yChannelSelector']),\r\n // DropShadow effect\r\n dropShadow: getAttrSetter(['in', 'dx', 'dy', 'stdDeviation']),\r\n // Flood effect\r\n flood: getAttrSetter(['color', 'opacity']),\r\n // Gaussian Blur effect\r\n gaussianBlur: function (x = 0, y = x) {\r\n this.attr('stdDeviation', x + ' ' + y)\r\n },\r\n // Image effect\r\n image: function (src) {\r\n this.attr('href', src, ns.xlink)\r\n },\r\n // Morphology effect\r\n morphology: getAttrSetter(['operator', 'radius']),\r\n // Offset effect\r\n offset: getAttrSetter(['x', 'y']),\r\n // SpecularLighting effect\r\n specularLighting: getAttrSetter(['surfaceScale', 'lightingColor', 'diffuseConstant', 'specularExponent', 'kernelUnitLength']),\r\n // Tile effect\r\n tile: getAttrSetter([]),\r\n // Turbulence effect\r\n turbulence: getAttrSetter(['baseFrequency', 'numOctaves', 'seed', 'stitchTiles', 'type'])\r\n}\r\n\r\nconst filterNames = [\r\n 'blend',\r\n 'colorMatrix',\r\n 'componentTransfer',\r\n 'composite',\r\n 'convolveMatrix',\r\n 'diffuseLighting',\r\n 'displacementMap',\r\n 'dropShadow',\r\n 'flood',\r\n 'gaussianBlur',\r\n 'image',\r\n 'merge',\r\n 'morphology',\r\n 'offset',\r\n 'specularLighting',\r\n 'tile',\r\n 'turbulence'\r\n]\r\n\r\n// For every filter create a class\r\nfilterNames.forEach((effect) => {\r\n const name = utils.capitalize(effect)\r\n const fn = updateFunctions[effect]\r\n\r\n Filter[name + 'Effect'] = class extends Effect {\r\n constructor (node) {\r\n super(nodeOrNew('fe' + name, node), node)\r\n }\r\n\r\n // This function takes all parameters from the factory call\r\n // and updates the attributes according to the updateFunctions\r\n update (args) {\r\n fn.apply(this, args)\r\n return this\r\n }\r\n }\r\n\r\n // Add factory function to filter\r\n // Allow to pass a function or object\r\n // The attr object is catched from \"wrapWithAttrCheck\"\r\n Filter.prototype[effect] = wrapWithAttrCheck(function (fn, ...args) {\r\n const effect = new Filter[name + 'Effect']()\r\n\r\n if (fn == null) return this.put(effect)\r\n\r\n // For Effects which can take children, a function is allowed\r\n if (typeof fn === 'function') {\r\n fn.call(effect, effect)\r\n } else {\r\n // In case it is not a function, add it to arguments\r\n args.unshift(fn)\r\n }\r\n return this.put(effect).update(args)\r\n })\r\n})\r\n\r\n// Correct factories which are not that simple\r\nextend(Filter, {\r\n merge (arrayOrFn) {\r\n const node = this.put(new Filter.MergeEffect())\r\n\r\n // If a function was passed, execute it\r\n // That makes stuff like this possible:\r\n // filter.merge((mergeEffect) => mergeEffect.mergeNode(in))\r\n if (typeof arrayOrFn === 'function') {\r\n arrayOrFn.call(node, node)\r\n return node\r\n }\r\n\r\n // Check if first child is an array, otherwise use arguments as array\r\n var children = arrayOrFn instanceof Array ? arrayOrFn : [...arguments]\r\n\r\n children.forEach((child) => {\r\n if (child instanceof Filter.MergeNode) {\r\n node.put(child)\r\n } else {\r\n node.mergeNode(child)\r\n }\r\n })\r\n\r\n return node\r\n },\r\n componentTransfer (components = {}) {\r\n const node = this.put(new Filter.ComponentTransferEffect())\r\n\r\n if (typeof components === 'function') {\r\n components.call(node, node)\r\n return node\r\n }\r\n\r\n // If no component is set, we use the given object for all components\r\n if (!components.r && !components.g && !components.b && !components.a) {\r\n const temp = components\r\n components = {\r\n r: temp, g: temp, b: temp, a: temp\r\n }\r\n }\r\n\r\n for (let c in components) {\r\n // components[c] has to hold an attributes object\r\n node.add(new Filter['Func' + c.toUpperCase()](components[c]))\r\n }\r\n\r\n return node\r\n }\r\n})\r\n\r\nconst filterChildNodes = [\r\n 'distantLight',\r\n 'pointLight',\r\n 'spotLight',\r\n 'mergeNode',\r\n 'FuncR',\r\n 'FuncG',\r\n 'FuncB',\r\n 'FuncA'\r\n]\r\n\r\nfilterChildNodes.forEach((child) => {\r\n const name = utils.capitalize(child)\r\n Filter[name] = class extends Effect {\r\n constructor (node) {\r\n super(nodeOrNew('fe' + name, node), node)\r\n }\r\n }\r\n})\r\n\r\nconst componentFuncs = [\r\n 'funcR',\r\n 'funcG',\r\n 'funcB',\r\n 'funcA'\r\n]\r\n\r\n// Add an update function for componentTransfer-children\r\ncomponentFuncs.forEach(function (c) {\r\n const _class = Filter[utils.capitalize(c)]\r\n const fn = wrapWithAttrCheck(function () {\r\n return this.put(new _class())\r\n })\r\n\r\n Filter.ComponentTransferEffect.prototype[c] = fn\r\n})\r\n\r\nconst lights = [\r\n 'distantLight',\r\n 'pointLight',\r\n 'spotLight'\r\n]\r\n\r\n// Add light sources factories to lightining effects\r\nlights.forEach((light) => {\r\n const _class = Filter[utils.capitalize(light)]\r\n const fn = wrapWithAttrCheck(function () {\r\n return this.put(new _class())\r\n })\r\n\r\n Filter.DiffuseLightingEffect.prototype[light] = fn\r\n Filter.SpecularLightingEffect.prototype[light] = fn\r\n})\r\n\r\nextend(Filter.MergeEffect, {\r\n mergeNode (_in) {\r\n return this.put(new Filter.MergeNode()).attr('in', _in)\r\n }\r\n})\r\n\r\n// add .filter function\r\nextend(Defs, {\r\n // Define filter\r\n filter: function (block) {\r\n var filter = this.put(new Filter())\r\n\r\n /* invoke passed block */\r\n if (typeof block === 'function') { block.call(filter, filter) }\r\n\r\n return filter\r\n }\r\n})\r\n\r\nextend(Container, {\r\n // Define filter on defs\r\n filter: function (block) {\r\n return this.defs().filter(block)\r\n }\r\n})\r\n\r\nextend(Element, {\r\n // Create filter element in defs and store reference\r\n filterWith: function (block) {\r\n const filter = block instanceof Filter\r\n ? block : this.defs().filter(block)\r\n\r\n return this.attr('filter', filter)\r\n },\r\n // Remove filter\r\n unfilter: function (remove) {\r\n /* remove filter attribute */\r\n return this.attr('filter', null)\r\n },\r\n filterer () {\r\n return this.reference('filter')\r\n }\r\n})\r\n\r\n// chaining\r\nvar chainingEffects = {\r\n // Blend effect\r\n blend: function (in2, mode) {\r\n return this.parent() && this.parent().blend(this, in2, mode) // pass this as the first input\r\n },\r\n // ColorMatrix effect\r\n colorMatrix: function (type, values) {\r\n return this.parent() && this.parent().colorMatrix(type, values).in(this)\r\n },\r\n // ComponentTransfer effect\r\n componentTransfer: function (components) {\r\n return this.parent() && this.parent().componentTransfer(components).in(this)\r\n },\r\n // Composite effect\r\n composite: function (in2, operator) {\r\n return this.parent() && this.parent().composite(this, in2, operator) // pass this as the first input\r\n },\r\n // ConvolveMatrix effect\r\n convolveMatrix: function (matrix) {\r\n return this.parent() && this.parent().convolveMatrix(matrix).in(this)\r\n },\r\n // DiffuseLighting effect\r\n diffuseLighting: function (surfaceScale, lightingColor, diffuseConstant, kernelUnitLength) {\r\n return this.parent() && this.parent().diffuseLighting(surfaceScale, diffuseConstant, kernelUnitLength).in(this)\r\n },\r\n // DisplacementMap effect\r\n displacementMap: function (in2, scale, xChannelSelector, yChannelSelector) {\r\n return this.parent() && this.parent().displacementMap(this, in2, scale, xChannelSelector, yChannelSelector) // pass this as the first input\r\n },\r\n // DisplacementMap effect\r\n dropShadow: function (x, y, stdDeviation) {\r\n return this.parent() && this.parent().dropShadow(this, x, y, stdDeviation).in(this) // pass this as the first input\r\n },\r\n // Flood effect\r\n flood: function (color, opacity) {\r\n return this.parent() && this.parent().flood(color, opacity) // this effect dont have inputs\r\n },\r\n // Gaussian Blur effect\r\n gaussianBlur: function (x, y) {\r\n return this.parent() && this.parent().gaussianBlur(x, y).in(this)\r\n },\r\n // Image effect\r\n image: function (src) {\r\n return this.parent() && this.parent().image(src) // this effect dont have inputs\r\n },\r\n // Merge effect\r\n merge: function (arg) {\r\n arg = arg instanceof Array ? arg : [...arg]\r\n return this.parent() && this.parent().merge(this, ...arg) // pass this as the first argument\r\n },\r\n // Morphology effect\r\n morphology: function (operator, radius) {\r\n return this.parent() && this.parent().morphology(operator, radius).in(this)\r\n },\r\n // Offset effect\r\n offset: function (x, y) {\r\n return this.parent() && this.parent().offset(x, y).in(this)\r\n },\r\n // SpecularLighting effect\r\n specularLighting: function (surfaceScale, lightingColor, diffuseConstant, specularExponent, kernelUnitLength) {\r\n return this.parent() && this.parent().specularLighting(surfaceScale, diffuseConstant, specularExponent, kernelUnitLength).in(this)\r\n },\r\n // Tile effect\r\n tile: function () {\r\n return this.parent() && this.parent().tile().in(this)\r\n },\r\n // Turbulence effect\r\n turbulence: function (baseFrequency, numOctaves, seed, stitchTiles, type) {\r\n return this.parent() && this.parent().turbulence(baseFrequency, numOctaves, seed, stitchTiles, type).in(this)\r\n }\r\n}\r\n\r\nextend(Effect, chainingEffects)\r\n\r\n// Effect-specific extensions\r\nextend(Filter.MergeEffect, {\r\n in: function (effect) {\r\n if (effect instanceof Filter.MergeNode) {\r\n this.add(effect, 0)\r\n } else {\r\n this.add(new Filter.MergeNode().in(effect), 0)\r\n }\r\n\r\n return this\r\n }\r\n})\r\n\r\nextend([Filter.CompositeEffect, Filter.BlendEffect, Filter.DisplacementMapEffect], {\r\n in2: function (effect) {\r\n if (effect == null) {\r\n const in2 = this.attr('in2')\r\n const ref = this.parent() && this.parent().find(`[result=\"${in2}\"]`)[0]\r\n return ref || in2\r\n }\r\n return this.attr('in2', effect)\r\n }\r\n})\r\n\r\n// Presets\r\nFilter.filter = {\r\n sepiatone: [ 0.343, 0.669, 0.119, 0, 0,\r\n 0.249, 0.626, 0.130, 0, 0,\r\n 0.172, 0.334, 0.111, 0, 0,\r\n 0.000, 0.000, 0.000, 1, 0 ]\r\n}\r\n"],"names":["_toConsumableArray","arr","Array","isArray","i","arr2","length","arrayWithoutHoles","iter","Symbol","iterator","Object","prototype","toString","call","from","iterableToArray","TypeError","nonIterableSpread","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","key","_createClass","protoProps","staticProps","_typeof2","obj","constructor","_typeof","_possibleConstructorReturn","self","ReferenceError","assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_get","property","receiver","Reflect","get","base","object","hasOwnProperty","superPropBase","desc","getOwnPropertyDescriptor","value","_setPrototypeOf","p","_inherits","subClass","superClass","create","Filter","node","nodeOrNew","$source","$sourceAlpha","$background","$backgroundAlpha","$fill","$stroke","$autoSetIn","Element","element","attr","this","id","targets","each","find","Effect","result","_this2","effect","_in","parent","getAttrSetter","params","args","updateFunctions","blend","colorMatrix","composite","convolveMatrix","matrix","SVGArray","order","Math","sqrt","split","kernelMatrix","diffuseLighting","displacementMap","dropShadow","flood","gaussianBlur","x","y","image","src","ns","xlink","morphology","offset","specularLighting","tile","turbulence","forEach","name","utils","capitalize","fn","apply","wrapWithAttrCheck","put","unshift","update","merge","arrayOrFn","MergeEffect","arguments","child","MergeNode","mergeNode","componentTransfer","components","ComponentTransferEffect","r","g","b","a","c","add","toUpperCase","_class","light","DiffuseLightingEffect","SpecularLightingEffect","Defs","filter","block","Container","defs","filterWith","unfilter","remove","filterer","reference","chainingEffects","in2","mode","type","values","in","operator","surfaceScale","lightingColor","diffuseConstant","kernelUnitLength","scale","xChannelSelector","yChannelSelector","stdDeviation","color","opacity","arg","radius","specularExponent","baseFrequency","numOctaves","seed","stitchTiles","CompositeEffect","BlendEffect","DisplacementMapEffect","sepiatone"],"mappings":"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"}