Comparing version 0.4.1 to 0.4.2
@@ -1,1 +0,1 @@ | ||
!function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=1)}([,function(t,e,r){"use strict";r.r(e);const n=t=>t instanceof SVGTransform,o=t=>{if(!n(t))return!1;const{type:e,SVG_TRANSFORM_ROTATE:r}=t;return e===r},i=({angle:t=0}={})=>e=>{if(!o(e))return e;const{angle:r}=e;return e.setRotate(r+t,0,0),e},a=t=>{if(!n(t))return!1;const{type:e,SVG_TRANSFORM_TRANSLATE:r}=t;return e===r},s=({tx:t=0,ty:e=0}={})=>r=>{if(!a(r))return r;const{e:n,f:o}=r.matrix;return r.setTranslate(n+t,o+e),r};let c;const m=t=>(c=t,c),u=()=>(c||m(document.createElementNS("http://www.w3.org/2000/svg","svg")),c),f=(t=u())=>t.createSVGTransform(),x=({angle:t=0,cx:e=0,cy:r=0}={})=>(n=u())=>{const o=f(n);return o.setRotate(t,e,r),o},l=({tx:t=0,ty:e=0}={})=>(r=u())=>{const n=f(r);return n.setTranslate(t,e),n};function d(t){return(e,...r)=>r.length?t(e,...r):(...r)=>t(e,...r)}var y=Array.isArray.bind(Array);const g=function*(){}();function _(t){return t&&t[Symbol.iterator]?t[Symbol.iterator]():g}var h=(t,e)=>t instanceof Promise?t.then(e):e(t);var p=Symbol.for("nop");function T(t,e,r){return e instanceof Promise?e.then(e=>r(t,e),e=>e==p?t:Promise.reject(e)):r(t,e)}var S=d((function(t,e){if(t<1)return[];let r=[];return e=_(e),function n(){let o;for(;!(o=e.next()).done;){const e=o.value;if(e instanceof Promise)return e.then(e=>(r.push(e),r).length==t?r:n()).catch(t=>t==p?n():Promise.reject(t));if(r.push(e),r.length==t)return r}return r}()}));function b(t){return h(S(1,t),([t])=>t)}function v(t,e,r){return 1==arguments.length?(...e)=>v(t,...e):2==arguments.length?v(t,b(r=_(e)),r):(r=_(r),h(e,(function e(n){let o;for(;!(o=r.next()).done;)if((n=T(n,o.value,t))instanceof Promise)return n.then(e);return n})))}var I=d((function*(t,e){for(const r of _(e)){const e=h(r,t);e instanceof Promise?yield e.then(t=>t?r:Promise.reject(p)):e&&(yield r)}})),V=d((function(t,e){return b(I(t,e))})),M=(t,e)=>e(t);function G(...t){return v(M,t)}function R(t){return!t}var w=d((function*(t,e){for(const r of _(e))yield h(r,t)}));function P(){}var O=d((function*(t,e){let r=null,n=!1;for(const o of _(e)){const e=n||h(o,t);if(e instanceof Promise?(e.catch(P),yield r=(r||Promise.resolve()).then(t=>e).then(t=>n?Promise.reject(p):(n=t,o)),r=r.catch(P)):(n=e,yield o),n)break}})),A=d((function(t,e){return G(w(t,e),O(R),v((t,e)=>t&&e),(t=!1)=>t,Boolean)}));var B,N=d((function(t,e){return"function"==typeof t?!!t(e):y(t)&&y(e)?A(t=>e.includes(t),t):e&&"object"==typeof e?A(([t,r])=>e[t]==r,function*(t){for(const e in t)yield[e,t[e]]}(t)):t instanceof RegExp?e.match(t):t==e})),j=d((function(t,e){return V(N(t),e)})),L=(B=".",d((function t(e,r){return e?y(e)?v((e,r)=>t(r,e),r,e):"object"==typeof e||"function"==typeof e?j(e,r):v((t,e,r=e[0])=>t?"#"==r?j({id:e.substr(1)},t):"["==r||"{"==r?j(JSON.parse(e),t):t[e]:void 0,r,e.split(B)):r})));const F=t=>L("transform.baseVal",t),E=({angle:t=0,cx:e=0,cy:r=0,index:n=0}={})=>(o,i=u())=>{const a=F(o),s=l({tx:e,ty:r})(i),c=l({tx:-e,ty:-r})(i),m=x({angle:t})(i);return a.insertItemBefore(c,n),a.insertItemBefore(m,n),a.insertItemBefore(s,n),m};function*C(t=0,e=t,r=1){if(1===arguments.length&&(t=0),arguments.length<3&&t>e&&(r*=-1),t<e)for(;t<e;)yield t,t+=r;else for(;t>e;)yield t,t+=r}var H=d((function(t,e){return function(t){return S(1/0,t)}(w(t,e))})),$=d((function(t,e){return H(e=>h(t(e),t=>e),e)}));const k=({index:t=1}={})=>(e,r=u())=>{const n=F(e);if(!(({index:t})=>e=>{if(t>e.numberOfItems-2||t<1)return!1;const[r,n,i]=G(C(3),w(e=>t-1+e),w(t=>e.getItem(t)));return a(r)&&o(n)&&a(i)&&0===n.matrix.e&&0===n.matrix.f&&1===r.matrix.a&&0===r.matrix.b&&0===r.matrix.c&&1===r.matrix.d&&1===i.matrix.a&&0===i.matrix.b&&0===i.matrix.c&&1===i.matrix.d&&r.matrix.e+i.matrix.e===0&&r.matrix.f+i.matrix.f===0})({index:t})(n))return e;const{angle:i}=n.getItem(t),{e:s,f:c}=n.getItem(t-1).matrix;$(()=>n.removeItem(t-1),C(3));const m=x({angle:i,cx:s,cy:c})(r);return n.insertItemBefore(m,t-1),e};var z=d((function(t,e){return null==e||Number.isNaN(e)?t:e}));const J=({angle:t,cx:e=0,cy:r=0}={})=>n=>o(n)?(n.setRotate(z(n.angle,t),e,r),n):n,X=({sx:t=1,sy:e=1}={})=>(r=u())=>{const n=f(r);return n.setScale(t,e),n},q=({sx:t=1,sy:e=1,cx:r=0,cy:n=0,index:o=0}={})=>(i,a=u())=>{const s=F(i),c=l({tx:r,ty:n})(a),m=l({tx:-r,ty:-n})(a),f=X({sx:t,sy:e})(a);return s.insertItemBefore(m,o),s.insertItemBefore(f,o),s.insertItemBefore(c,o),f},D=({a:t=1,b:e=0,c:r=0,d:n=1,e:o=0,f:i=0}={})=>(a=u())=>{const s=a.createSVGMatrix();return s.a=t,s.b=e,s.c=r,s.d=n,s.e=o,s.f=i,s},K=({matrix:t}={})=>(e=u())=>{const r=f(e);return r.setMatrix(z(D()(e),t)),r},Q=t=>{if(!n(t))return!1;const{type:e,SVG_TRANSFORM_SCALE:r}=t;return e===r},U=({index:t=0}={})=>e=>{if(t<=0||t>=e.numberOfItems-1)return!1;const[r,n,o]=G(C(3),w(e=>t-1+e),w(t=>e.getItem(t)));return a(r)&&Q(n)&&a(o)&&1===r.matrix.a&&0===r.matrix.b&&0===r.matrix.c&&1===r.matrix.d&&1===o.matrix.a&&0===o.matrix.b&&0===o.matrix.c&&1===o.matrix.d&&r.matrix.e+o.matrix.e===0&&r.matrix.f+o.matrix.f===0},W=({index:t=1}={})=>(e,r=u())=>{const n=F(e);if(!U({index:t})(n))return e;const o=G(C(3),w(e=>t-1+e),w(t=>n.getItem(t)),w(({matrix:t})=>t),v((t,e)=>t.multiply(e)),t=>K({matrix:t})(r));return $(()=>n.removeItem(t-1),C(3)),n.insertItemBefore(o,t-1),e};var Y=t=>t,Z=d((function(t,e){return G(w(t,e),O(Y),v((t,e)=>t||e),(t=!1)=>t,Boolean)}));const tt=new Set(["n","ne","e","se","s","sw","w","nw"]),et=({index:t=1,is_need_correction:e=!0,x_name:r="x",y_name:n="y",width_name:o="width",height_name:i="height",direction:a}={})=>s=>{const c=F(s);if(!U({index:t})(c)||!tt.has(a))return s;const[{e:m,f:u},{a:f,d:x},{e:l,f:d}]=G(C(3),w(e=>t-1+e),w(t=>c.getItem(t)),w(({matrix:t})=>t)),[y,g,_,p]=G([r,n,o,i],w(t=>s.getAttributeNS(null,t)),w(parseFloat));return G([[y,f,l,m,_,["e","w"]],[g,x,d,u,p,["n","s"]]],w(([t,r,n,o,i,s])=>G(s,Z(t=>a.includes(t)),a=>a?h((t+n)*r+o,t=>r<0&&e?t+i*r:t):t)),([t,e])=>[[r,t],[n,e],[o,_*Math.abs(f)],[i,p*Math.abs(x)]],w(([t,e])=>[t,""+e]),$(([t,e])=>s.setAttributeNS(null,t,e))),$(()=>c.removeItem(t-1),C(3)),s},rt=({sx:t,sy:e}={})=>r=>Q(r)?(r.setScale(z(r.matrix.a,t),z(r.matrix.d,e)),r):r,nt=({tx:t=0,ty:e=0,index:r=0}={})=>(n,o=u())=>{const i=l({tx:t,ty:e})(o);return F(n).insertItemBefore(i,r),i},ot=({index:t=0,x_name:e="x",y_name:r="y"}={})=>(n,o=u())=>{const i=F(n);if(t>i.numberOfItems-1||t<0)return n;const s=i.getItem(t);if(!a(s))return n;const{e:c,f:m}=s.matrix;return G([{name:e,value:c},{name:r,value:m}],w(({name:t,value:e})=>({name:t,value:""+(parseFloat(n.getAttributeNS(null,t))+e)})),$(({name:t,value:e})=>n.setAttributeNS(null,t,e))),i.removeItem(t),G(C(i.numberOfItems),w(t=>i.getItem(t)),w(t=>[l({tx:c,ty:m})(o),t,l({tx:-c,ty:-m})(o)]),$(([t,e,r])=>{const n=t.matrix.multiply(e.matrix).multiply(r.matrix);e.setMatrix(n)})),n},it=({tx:t,ty:e}={})=>r=>a(r)?(r.setTranslate(z(r.matrix.e,t),z(r.matrix.f,e)),r):r,at=({x:t=0,y:e=0}={})=>(r=u())=>{const n=r.createSVGPoint();return n.x=t,n.y=e,n},st=(t="")=>(e=u())=>{t=t.trim(),e.innerHTML=t;const r=$(t=>e.removeChild(t),[...e.children]);return e.innerHTML="",r},ct=(t,e=u())=>{const r=((t,e=u())=>{const{x:r,y:n,width:o,height:i}=t.getBBox();return{top_left:at({x:r,y:n})(e),top_right:at({x:r+o,y:n})(e),bottom_left:at({x:r,y:n+i})(e),bottom_right:at({x:r+o,y:n+i})(e)}})(t,e),n=(({top_left:t,top_right:e,bottom_right:r,bottom_left:n})=>(o,i=u())=>{const a=F(o),[s,c,m,f]=G([t,e,n,r],w(t=>at(t)(i)),w(t=>G(C(a.numberOfItems),w(t=>a.getItem(t)),w(({matrix:t})=>t),e=>v((t,e)=>t.matrixTransform(e),t,e))));return{top_left:s,top_right:c,bottom_left:m,bottom_right:f}})(r)(t,e);return{original:r,transformed:n,bounding:(({top_left:t,top_right:e,bottom_right:r,bottom_left:n})=>(o,i=u())=>{const a=[t,e,n,r],[s,c]=h(H(({x:t})=>t,a),t=>[Math.min(...t),Math.max(...t)]),[m,f]=h(H(({y:t})=>t,a),t=>[Math.min(...t),Math.max(...t)]);return{min:at({x:s,y:m})(i),max:at({x:c,y:f})(i)}})(n)(t,e)}};var mt=d((t,e)=>w(function(t,...e){return(r,...n)=>h(v(M,t(r,...n),e),t=>r)}(t),e));const ut=(t,e)=>t+e,ft=t=>{let e=0;const r=G(t,mt(()=>e++),v(ut));return e?r/e:0},xt=t=>{if(!n(t))return!1;const{type:e,SVG_TRANSFORM_MATRIX:r}=t;return e===r},lt={appendRotateTransform:i,appendTranslateTransform:s,consolidateTransformList:t=>{const e=t.consolidate();return e?(t.initialize(e),t):t},controlRotateTransform:({angle:t,cx:e,cy:r,index:n=0}={})=>(o,a=u())=>{const s=E({angle:t,cx:e,cy:r,index:n})(o,a),c={update:({angle:t}={})=>(J({angle:t,cx:0,cy:0})(s),c),append:({angle:t}={})=>(i({angle:t})(s),c),end:()=>(k({index:n+1})(o,a),o)};return c},controlScaleTransform:({cx:t,cy:e,sx:r,sy:n,index:o=0,is_need_correction:i=!0,merge_type:a=1,x_name:s,y_name:c,width_name:m,height_name:f,direction:x}={})=>(l,d=u())=>{const y=q({cx:t,cy:e,sx:r,sy:n,index:o})(l,d),g={update:({sx:t,sy:e}={})=>(rt({sx:t,sy:e})(y),g),end:({is_need_correction:t=i,merge_type:e=a,x_name:r=s,y_name:n=c,width_name:u=m,height_name:y=f,direction:g=x}={})=>(2===e?et({index:o+1,is_need_correction:t,x_name:r,y_name:n,width_name:u,height_name:y,direction:g})(l):W({index:o+1})(l,d),l)};return g},controlTranslateTransform:({index:t=0,tx:e,ty:r,x_name:n,y_name:o}={})=>(i,a=u())=>{const c=nt({tx:e,ty:r,index:t})(i,a),m={update:({tx:t,ty:e}={})=>(it({tx:t,ty:e})(c),m),append:({tx:t,ty:e}={})=>(s({tx:t,ty:e})(c),m),end:()=>(n&&o&&ot({index:t,x_name:n,y_name:o})(i,a),i)};return m},createSVGMatrix:D,createSVGPoint:at,createSVGRect:({x:t=0,y:e=0,width:r=0,height:n=0}={})=>(o=u())=>{const i=o.createSVGRect();return i.x=t,i.y=e,i.width=r,i.height=n,i},createSVGTransform:f,createSVGTransformMatrix:K,createSVGTransformRotate:x,createSVGTransformScale:X,createSVGTransformTranslate:l,el:t=>(e=u())=>b(st(t)(e)),els:st,getAnimTransformList:t=>L("transform.animVal",t),getBaseTransformList:F,getBoxPoints:ct,getCenterPoint:(t,e=u())=>{const{original:r,transformed:n}=ct(t,e),[o,i]=w(t=>(({top_left:t,top_right:e,bottom_left:r,bottom_right:n})=>(o=u())=>{const i=[t,e,r,n],a=ft(w(({x:t})=>t,i)),s=ft(w(({y:t})=>t,i));return at({x:a,y:s})(o)})(t)(e),[r,n]);return{original:o,transformed:i}},getSVG:u,setSVG:m,initMatrixTransform:({matrix:t,index:e=0}={})=>(r,n=u())=>{const o=K({matrix:z(D()(n),t)})(n);return F(r).insertItemBefore(o,e),o},initRotateTransform:E,initScaleTransform:q,initTranslateTransform:nt,isMatrixSVGTransform:xt,isRotateSVGTransform:o,isScaleSVGTransform:Q,isSVGTransform:n,isTranslateSVGTransform:a,isValidFxScaleSVGTransformList:U,mergeRotateTransform:k,mergeScaleTransform:W,mergeScaleTransform2:et,mergeTranslateTransform:ot,updateMatrixTransform:({matrix:t}={})=>e=>xt(e)?(e.setMatrix(z(e.matrix,t)),e):e,updateRotateTransform:J,updateScaleTransform:rt,updateTranslateTransform:it};window.$$=lt}]); | ||
!function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=1)}([,function(t,e,r){"use strict";r.r(e);const n=t=>t instanceof SVGTransform,o=t=>{if(!n(t))return!1;const{type:e,SVG_TRANSFORM_ROTATE:r}=t;return e===r},i=({angle:t=0}={})=>e=>{if(!o(e))return e;const{angle:r}=e;return e.setRotate(r+t,0,0),e},a=t=>{if(!n(t))return!1;const{type:e,SVG_TRANSFORM_TRANSLATE:r}=t;return e===r},s=({tx:t=0,ty:e=0}={})=>r=>{if(!a(r))return r;const{e:n,f:o}=r.matrix;return r.setTranslate(n+t,o+e),r};let c;const m=t=>(c=t,c),u=()=>(c||m(document.createElementNS("http://www.w3.org/2000/svg","svg")),c),f=(t=u())=>t.createSVGTransform(),x=({angle:t=0,cx:e=0,cy:r=0}={})=>(n=u())=>{const o=f(n);return o.setRotate(t,e,r),o},l=({tx:t=0,ty:e=0}={})=>(r=u())=>{const n=f(r);return n.setTranslate(t,e),n};function d(t){return(e,...r)=>r.length?t(e,...r):(...r)=>t(e,...r)}var y=Array.isArray.bind(Array);const g=function*(){}();function _(t){return t&&t[Symbol.iterator]?t[Symbol.iterator]():g}var h=(t,e)=>t instanceof Promise?t.then(e):e(t);var p=Symbol.for("nop");function T(t,e,r){return e instanceof Promise?e.then(e=>r(t,e),e=>e==p?t:Promise.reject(e)):r(t,e)}var S=d((function(t,e){if(t<1)return[];let r=[];return e=_(e),function n(){let o;for(;!(o=e.next()).done;){const e=o.value;if(e instanceof Promise)return e.then(e=>(r.push(e),r).length==t?r:n()).catch(t=>t==p?n():Promise.reject(t));if(r.push(e),r.length==t)return r}return r}()}));function b(t){return h(S(1,t),([t])=>t)}function v(t,e,r){return 1==arguments.length?(...e)=>v(t,...e):2==arguments.length?v(t,b(r=_(e)),r):(r=_(r),h(e,(function e(n){let o;for(;!(o=r.next()).done;)if((n=T(n,o.value,t))instanceof Promise)return n.then(e);return n})))}var I=d((function*(t,e){for(const r of _(e)){const e=h(r,t);e instanceof Promise?yield e.then(t=>t?r:Promise.reject(p)):e&&(yield r)}})),V=d((function(t,e){return b(I(t,e))})),M=(t,e)=>e(t);function G(...t){return v(M,t)}function R(t){return!t}var w=d((function*(t,e){for(const r of _(e))yield h(r,t)}));function P(){}var O=d((function*(t,e){let r=null,n=!1;for(const o of _(e)){const e=n||h(o,t);if(e instanceof Promise?(e.catch(P),yield r=(r||Promise.resolve()).then(t=>e).then(t=>n?Promise.reject(p):(n=t,o)),r=r.catch(P)):(n=e,yield o),n)break}})),A=d((function(t,e){return G(w(t,e),O(R),v((t,e)=>t&&e),(t=!1)=>t,Boolean)}));var B,N=d((function(t,e){return"function"==typeof t?!!t(e):y(t)&&y(e)?A(t=>e.includes(t),t):e&&"object"==typeof e?A(([t,r])=>e[t]==r,function*(t){for(const e in t)yield[e,t[e]]}(t)):t instanceof RegExp?e.match(t):t==e})),j=d((function(t,e){return V(N(t),e)})),L=(B=".",d((function t(e,r){return e?y(e)?v((e,r)=>t(r,e),r,e):"object"==typeof e||"function"==typeof e?j(e,r):v((t,e,r=e[0])=>t?"#"==r?j({id:e.substr(1)},t):"["==r||"{"==r?j(JSON.parse(e),t):t[e]:void 0,r,e.split(B)):r})));const F=t=>L("transform.baseVal",t),E=({angle:t=0,cx:e=0,cy:r=0,index:n=0}={})=>(o,i=u())=>{const a=F(o),s=l({tx:e,ty:r})(i),c=l({tx:-e,ty:-r})(i),m=x({angle:t})(i);return a.insertItemBefore(c,n),a.insertItemBefore(m,n),a.insertItemBefore(s,n),m};function*C(t=0,e=t,r=1){if(1===arguments.length&&(t=0),arguments.length<3&&t>e&&(r*=-1),t<e)for(;t<e;)yield t,t+=r;else for(;t>e;)yield t,t+=r}var H=d((function(t,e){return function(t){return S(1/0,t)}(w(t,e))})),$=d((function(t,e){return H(e=>h(t(e),t=>e),e)}));const k=({index:t=1}={})=>(e,r=u())=>{const n=F(e);if(!(({index:t})=>e=>{if(t>e.numberOfItems-2||t<1)return!1;const[r,n,i]=G(C(3),w(e=>t-1+e),w(t=>e.getItem(t)));return a(r)&&o(n)&&a(i)&&0===n.matrix.e&&0===n.matrix.f&&1===r.matrix.a&&0===r.matrix.b&&0===r.matrix.c&&1===r.matrix.d&&1===i.matrix.a&&0===i.matrix.b&&0===i.matrix.c&&1===i.matrix.d&&r.matrix.e+i.matrix.e===0&&r.matrix.f+i.matrix.f===0})({index:t})(n))return e;const{angle:i}=n.getItem(t),{e:s,f:c}=n.getItem(t-1).matrix;$(()=>n.removeItem(t-1),C(3));const m=x({angle:i,cx:s,cy:c})(r);return n.insertItemBefore(m,t-1),e};var z=d((function(t,e){return null==e||Number.isNaN(e)?t:e}));const J=({angle:t,cx:e=0,cy:r=0}={})=>n=>o(n)?(n.setRotate(z(n.angle,t),e,r),n):n,X=({sx:t=1,sy:e=1}={})=>(r=u())=>{const n=f(r);return n.setScale(t,e),n},q=({sx:t=1,sy:e=1,cx:r=0,cy:n=0,index:o=0}={})=>(i,a=u())=>{const s=F(i),c=l({tx:r,ty:n})(a),m=l({tx:-r,ty:-n})(a),f=X({sx:t,sy:e})(a);return s.insertItemBefore(m,o),s.insertItemBefore(f,o),s.insertItemBefore(c,o),f},D=({a:t=1,b:e=0,c:r=0,d:n=1,e:o=0,f:i=0}={})=>(a=u())=>{const s=a.createSVGMatrix();return s.a=t,s.b=e,s.c=r,s.d=n,s.e=o,s.f=i,s},K=({matrix:t}={})=>(e=u())=>{const r=f(e);return r.setMatrix(z(D()(e),t)),r},Q=t=>{if(!n(t))return!1;const{type:e,SVG_TRANSFORM_SCALE:r}=t;return e===r},U=({index:t=0}={})=>e=>{if(t<=0||t>=e.numberOfItems-1)return!1;const[r,n,o]=G(C(3),w(e=>t-1+e),w(t=>e.getItem(t)));return a(r)&&Q(n)&&a(o)&&1===r.matrix.a&&0===r.matrix.b&&0===r.matrix.c&&1===r.matrix.d&&1===o.matrix.a&&0===o.matrix.b&&0===o.matrix.c&&1===o.matrix.d&&r.matrix.e+o.matrix.e===0&&r.matrix.f+o.matrix.f===0},W=({index:t=1}={})=>(e,r=u())=>{const n=F(e);if(!U({index:t})(n))return e;const o=G(C(3),w(e=>t-1+e),w(t=>n.getItem(t)),w(({matrix:t})=>t),v((t,e)=>t.multiply(e)),t=>K({matrix:t})(r));return $(()=>n.removeItem(t-1),C(3)),n.insertItemBefore(o,t-1),e};var Y=t=>t,Z=d((function(t,e){return G(w(t,e),O(Y),v((t,e)=>t||e),(t=!1)=>t,Boolean)}));const tt=new Set(["n","ne","e","se","s","sw","w","nw"]),et=({index:t=1,is_need_correction:e=!0,x_name:r="x",y_name:n="y",width_name:o="width",height_name:i="height",direction:a}={})=>s=>{const c=F(s);if(!U({index:t})(c)||!tt.has(a))return s;const[{e:m,f:u},{a:f,d:x},{e:l,f:d}]=G(C(3),w(e=>t-1+e),w(t=>c.getItem(t)),w(({matrix:t})=>t)),[y,g,_,p]=G([r,n,o,i],w(t=>s.getAttributeNS(null,t)),w(parseFloat));return G([[y,f,l,m,_,["e","w"]],[g,x,d,u,p,["n","s"]]],w(([t,r,n,o,i,s])=>G(s,Z(t=>a.includes(t)),a=>a?h((t+n)*r+o,t=>r<0&&e?t+i*r:t):t)),([t,e])=>[[r,t],[n,e],[o,_*Math.abs(f)],[i,p*Math.abs(x)]],w(([t,e])=>[t,""+e]),$(([t,e])=>s.setAttributeNS(null,t,e))),$(()=>c.removeItem(t-1),C(3)),s},rt=({sx:t,sy:e}={})=>r=>Q(r)?(r.setScale(z(r.matrix.a,t),z(r.matrix.d,e)),r):r,nt=({tx:t=0,ty:e=0,index:r=0}={})=>(n,o=u())=>{const i=l({tx:t,ty:e})(o);return F(n).insertItemBefore(i,r),i},ot=({index:t=0,x_name:e="x",y_name:r="y"}={})=>(n,o=u())=>{const i=F(n);if(t>i.numberOfItems-1||t<0)return n;const s=i.getItem(t);if(!a(s))return n;const{e:c,f:m}=s.matrix;return G([{name:e,value:c},{name:r,value:m}],w(({name:t,value:e})=>({name:t,value:""+(parseFloat(n.getAttributeNS(null,t))+e)})),$(({name:t,value:e})=>n.setAttributeNS(null,t,e))),i.removeItem(t),G(C(i.numberOfItems),w(t=>i.getItem(t)),w(t=>[l({tx:c,ty:m})(o),t,l({tx:-c,ty:-m})(o)]),$(([t,e,r])=>{const n=t.matrix.multiply(e.matrix).multiply(r.matrix);e.setMatrix(n)})),n},it=({tx:t,ty:e}={})=>r=>a(r)?(r.setTranslate(z(r.matrix.e,t),z(r.matrix.f,e)),r):r,at=({x:t=0,y:e=0}={})=>(r=u())=>{const n=r.createSVGPoint();return n.x=t,n.y=e,n},st=(t="")=>(e=u())=>{t=t.trim(),e.innerHTML=t;const r=$(t=>e.removeChild(t),[...e.children]);return e.innerHTML="",r},ct=(t,e=u())=>{const r=((t,e=u())=>{const{x:r,y:n,width:o,height:i}=t.getBBox();return{top_left:at({x:r,y:n})(e),top_right:at({x:r+o,y:n})(e),bottom_left:at({x:r,y:n+i})(e),bottom_right:at({x:r+o,y:n+i})(e)}})(t,e),n=(({top_left:t,top_right:e,bottom_right:r,bottom_left:n})=>o=>{const i=F(o),a=G(C(i.numberOfItems),w(t=>i.getItem(t)),w(({matrix:t})=>t),v((t,e)=>t.multiply(e))),[s,c,m,u]=w(t=>a?t.matrixTransform(a):t,[t,e,n,r]);return{top_left:s,top_right:c,bottom_left:m,bottom_right:u}})(r)(t);return{original:r,transformed:n,bounding:(({top_left:t,top_right:e,bottom_right:r,bottom_left:n})=>(o,i=u())=>{const a=[t,e,n,r],[s,c]=h(H(({x:t})=>t,a),t=>[Math.min(...t),Math.max(...t)]),[m,f]=h(H(({y:t})=>t,a),t=>[Math.min(...t),Math.max(...t)]);return{min:at({x:s,y:m})(i),max:at({x:c,y:f})(i)}})(n)(t,e)}};var mt=d((t,e)=>w(function(t,...e){return(r,...n)=>h(v(M,t(r,...n),e),t=>r)}(t),e));const ut=(t,e)=>t+e,ft=t=>{let e=0;const r=G(t,mt(()=>e++),v(ut));return e?r/e:0},xt=t=>{if(!n(t))return!1;const{type:e,SVG_TRANSFORM_MATRIX:r}=t;return e===r},lt={appendRotateTransform:i,appendTranslateTransform:s,consolidateTransformList:t=>{const e=t.consolidate();return e?(t.initialize(e),t):t},controlRotateTransform:({angle:t,cx:e,cy:r,index:n=0}={})=>(o,a=u())=>{const s=E({angle:t,cx:e,cy:r,index:n})(o,a),c={update:({angle:t}={})=>(J({angle:t,cx:0,cy:0})(s),c),append:({angle:t}={})=>(i({angle:t})(s),c),end:()=>(k({index:n+1})(o,a),o)};return c},controlScaleTransform:({cx:t,cy:e,sx:r,sy:n,index:o=0,is_need_correction:i=!0,merge_type:a=1,x_name:s,y_name:c,width_name:m,height_name:f,direction:x}={})=>(l,d=u())=>{const y=q({cx:t,cy:e,sx:r,sy:n,index:o})(l,d),g={update:({sx:t,sy:e}={})=>(rt({sx:t,sy:e})(y),g),end:({is_need_correction:t=i,merge_type:e=a,x_name:r=s,y_name:n=c,width_name:u=m,height_name:y=f,direction:g=x}={})=>(2===e?et({index:o+1,is_need_correction:t,x_name:r,y_name:n,width_name:u,height_name:y,direction:g})(l):W({index:o+1})(l,d),l)};return g},controlTranslateTransform:({index:t=0,tx:e,ty:r,x_name:n,y_name:o}={})=>(i,a=u())=>{const c=nt({tx:e,ty:r,index:t})(i,a),m={update:({tx:t,ty:e}={})=>(it({tx:t,ty:e})(c),m),append:({tx:t,ty:e}={})=>(s({tx:t,ty:e})(c),m),end:()=>(n&&o&&ot({index:t,x_name:n,y_name:o})(i,a),i)};return m},createSVGMatrix:D,createSVGPoint:at,createSVGRect:({x:t=0,y:e=0,width:r=0,height:n=0}={})=>(o=u())=>{const i=o.createSVGRect();return i.x=t,i.y=e,i.width=r,i.height=n,i},createSVGTransform:f,createSVGTransformMatrix:K,createSVGTransformRotate:x,createSVGTransformScale:X,createSVGTransformTranslate:l,el:t=>(e=u())=>b(st(t)(e)),els:st,getAnimTransformList:t=>L("transform.animVal",t),getBaseTransformList:F,getBoxPoints:ct,getCenterPoint:(t,e=u())=>{const{original:r,transformed:n}=ct(t,e),[o,i]=w(t=>(({top_left:t,top_right:e,bottom_left:r,bottom_right:n})=>(o=u())=>{const i=[t,e,r,n],a=ft(w(({x:t})=>t,i)),s=ft(w(({y:t})=>t,i));return at({x:a,y:s})(o)})(t)(e),[r,n]);return{original:o,transformed:i}},getSVG:u,setSVG:m,initMatrixTransform:({matrix:t,index:e=0}={})=>(r,n=u())=>{const o=K({matrix:z(D()(n),t)})(n);return F(r).insertItemBefore(o,e),o},initRotateTransform:E,initScaleTransform:q,initTranslateTransform:nt,isMatrixSVGTransform:xt,isRotateSVGTransform:o,isScaleSVGTransform:Q,isSVGTransform:n,isTranslateSVGTransform:a,isValidFxScaleSVGTransformList:U,mergeRotateTransform:k,mergeScaleTransform:W,mergeScaleTransform2:et,mergeTranslateTransform:ot,updateMatrixTransform:({matrix:t}={})=>e=>xt(e)?(e.setMatrix(z(e.matrix,t)),e):e,updateRotateTransform:J,updateScaleTransform:rt,updateTranslateTransform:it};window.$$=lt}]); |
{ | ||
"name": "fxsvg", | ||
"version": "0.4.1", | ||
"version": "0.4.2", | ||
"description": "Functional SVG Handling Library", | ||
@@ -5,0 +5,0 @@ "type": "module", |
@@ -22,5 +22,12 @@ import { go, go1, map, mapL, rangeL, reduce } from "fxjs2"; | ||
bottom_left: original_bottom_left, | ||
}) => ($el, $svg = $$getSVG()) => { | ||
}) => ($el) => { | ||
const transform_list = $$getBaseTransformList($el); | ||
const [top_left, top_right, bottom_left, bottom_right] = go( | ||
const merged_matrix = go( | ||
rangeL(transform_list.numberOfItems), | ||
mapL((i) => transform_list.getItem(i)), | ||
mapL(({ matrix: m }) => m), | ||
reduce((m1, m2) => m1.multiply(m2)) | ||
); | ||
const [top_left, top_right, bottom_left, bottom_right] = mapL( | ||
(p) => (merged_matrix ? p.matrixTransform(merged_matrix) : p), | ||
[ | ||
@@ -31,12 +38,3 @@ original_top_left, | ||
original_bottom_right, | ||
], | ||
mapL((p) => $$createSVGPoint(p)($svg)), | ||
mapL((p) => | ||
go( | ||
rangeL(transform_list.numberOfItems), | ||
mapL((i) => transform_list.getItem(i)), | ||
mapL(({ matrix: m }) => m), | ||
(iter) => reduce((p, m) => p.matrixTransform(m), p, iter) | ||
) | ||
) | ||
] | ||
); | ||
@@ -80,3 +78,3 @@ | ||
const original = $$getOriginalBoxPoints($el, $svg); | ||
const transformed = $$getTransformedBoxPoints(original)($el, $svg); | ||
const transformed = $$getTransformedBoxPoints(original)($el); | ||
const bounding = $$getBoundingBoxPoints(transformed)($el, $svg); | ||
@@ -83,0 +81,0 @@ |
import { expect } from "chai"; | ||
import { map, reduce } from "fxjs2"; | ||
import { defaultTo, go, mapL, rangeL, reduce } from "fxjs2"; | ||
import { makeMockRect } from "../../test/utils/makeMockRect.js"; | ||
@@ -7,2 +7,3 @@ import { makeRandomInt } from "../../test/utils/makeRandomInt.js"; | ||
import { makeRandomTransformAttributeValue } from "../../test/utils/makeRandomTransformAttributeValue.js"; | ||
import { $$createSVGMatrix } from "../createSVGMatrix/createSVGMatrix.index.js"; | ||
import { $$getBaseTransformList } from "../getBaseTransformList/getBaseTransformList.index.js"; | ||
@@ -82,2 +83,9 @@ import { $$getBoxPoints } from "./getBoxPoints.index.js"; | ||
} = $$getBoxPoints($el); | ||
const merged_matrix = go( | ||
rangeL(transform_list.numberOfItems), | ||
mapL((i) => transform_list.getItem(i)), | ||
mapL(({ matrix: m }) => m), | ||
reduce((m1, m2) => m1.multiply(m2)), | ||
defaultTo($$createSVGMatrix()()) | ||
); | ||
const [ | ||
@@ -88,8 +96,8 @@ { x: x1_2, y: y1_2 }, | ||
{ x: x4_2, y: y4_2 }, | ||
] = reduce( | ||
(points, { matrix }) => | ||
map((point) => point.matrixTransform(matrix), points), | ||
[top_left, top_right, bottom_right, bottom_left], | ||
transform_list | ||
); | ||
] = mapL((point) => point.matrixTransform(merged_matrix), [ | ||
top_left, | ||
top_right, | ||
bottom_right, | ||
bottom_left, | ||
]); | ||
@@ -96,0 +104,0 @@ expect(x1_2).equal(x1_1); |
288343
6058