svgomg-ui/js/page.js

13 lines
34 KiB
JavaScript
Raw Normal View History

(function(){'use strict';function a(a){const b=B.createContextualFragment(a);return b.children[0]}function b(a){return(a+'').replace(/[&<>"'\/]/g,(a)=>C[a])}function c(a,...c){return c=c.map((a)=>b(a)),a.reduce((a,b,d)=>a+=b+(c[d]||''),'')}function d(a){return new Response(a).text()}function e({removeClass:a=!1}={}){return function(b,c='active',d='transition'){if(a){if(!b.classList.contains(c))return Promise.resolve();}else if(b.classList.contains(c))return Promise.resolve();return new Promise((e)=>{const f=(a)=>{a.target!=b||(b.removeEventListener('webkitTransitionEnd',f),b.removeEventListener('transitionend',f),b.classList.remove(d),e())};b.classList.add(d),requestAnimationFrame(()=>{b.addEventListener('webkitTransitionEnd',f),b.addEventListener('transitionend',f),b.classList[a?'remove':'add'](c)})})}}function f(a){return{x:a.pageX,y:a.pageY}}function g(a,b){var c=Math.abs;const d=c(b.x-a.x),e=c(b.y-a.y);return Math.sqrt(d*d+e*e)}function h(a,b){return{x:(a.x+b.x)/2,y:(a.y+b.y)/2}}function i(a){return a.touches?Array.from(a.touches).map((a)=>f(a)):[f(a)]}function j(a,b){const c=Math.pow(10,b);return Math.floor(Math.round(a*c))/c}function k(a){return 1024>a?a+' bytes':j(a/1024,2)+'k'}function l(){}function m(){m.init.call(this)}function n(a){return void 0===a._maxListeners?m.defaultMaxListeners:a._maxListeners}function o(a,b,c){if(b)a.call(c);else for(var d=a.length,e=y(a,d),f=0;f<d;++f)e[f].call(c)}function p(a,b,c,d){if(b)a.call(c,d);else for(var e=a.length,f=y(a,e),g=0;g<e;++g)f[g].call(c,d)}function q(a,b,c,d,e){if(b)a.call(c,d,e);else for(var f=a.length,g=y(a,f),h=0;h<f;++h)g[h].call(c,d,e)}function r(a,b,c,d,e,f){if(b)a.call(c,d,e,f);else for(var g=a.length,h=y(a,g),j=0;j<g;++j)h[j].call(c,d,e,f)}function s(a,b,c,d){if(b)a.apply(c,d);else for(var e=a.length,f=y(a,e),g=0;g<e;++g)f[g].apply(c,d)}function t(a,b,c,d){var e,f,g;if('function'!=typeof c)throw new TypeError('"listener" argument must be a function');if(f=a._events,f?(f.newListener&&(a.emit('newListener',b,c.listener?c.listener:c),f=a._events),g=f[b]):(f=a._events=new l,a._eventsCount=0),!g)g=f[b]=c,++a._eventsCount;else if('function'==typeof g?g=f[b]=d?[c,g]:[g,c]:d?g.unshift(c):g.push(c),!g.warned&&(e=n(a),e&&0<e&&g.length>e)){g.warned=!0;var h=new Error('Possible EventEmitter memory leak detected. '+g.length+' '+b+' listeners added. Use emitter.setMaxListeners() to increase limit');h.name='MaxListenersExceededWarning',h.emitter=a,h.type=b,h.count=g.length,u(h)}return a}function u(a){'function'==typeof console.warn?console.warn(a):console.log(a)}function v(a,b,c){function d(){a.removeListener(b,d),e||(e=!0,c.apply(a,arguments))}var e=!1;return d.listener=c,d}function w(a){var b=this._events;if(b){var c=b[a];if('function'==typeof c)return 1;if(c)return c.length}return 0}function x(a,b){for(var c=b,d=c+1,e=a.length;d<e;c+=1,d+=1)a[c]=a[d];a.pop()}function y(a,b){for(var c=Array(b);b--;)c[b]=a[b];return c}function z(a){for(var b=Array(a.length),c=0;c<b.length;++c)b[c]=a[c].listener||a[c];return b}const A=new Promise((a)=>{function b(){'loading'!=document.readyState&&a()}document.addEventListener('readystatechange',b),b()}),B=document.createRange();B.selectNode(document.documentElement);const C={"&":'&amp;',"<":'&lt;',">":'&gt;','"':'&quot;',"'":'&#39;',"/":'&#x2F;'},D=e(),E=e({removeClass:!0});let F=(()=>{function a(){return c||(c=new Promise((a,b)=>{const c=indexedDB.open('svgo-keyval',1);c.onerror=()=>{b(c.error)},c.onupgradeneeded=()=>{c.result.createObjectStore('keyval')},c.onsuccess=()=>{a(c.result)}})),c}async function b(b,c){const d=await a();return new Promise((a,e)=>{const f=d.transaction('keyval',b);f.oncomplete=()=>a(),f.onerror=()=>e(f.error),c(f.objectStore('keyval'))})}let c;return{async get(a){let c;return await b('readonly',(b)=>{c=b.get(a)}),c.result},set(a,c){return b('readwrite',(b)=>{b.put(c,a)})},delete(a){return b('readwrite',(b)=>{b.delete(a)})}}})();self.indexedDB||(F={get:(a)=>Promise.resolve(localStorage.getItem(a)),set:(a,b)=>Promise.resolve(localStorage.setItem(a,b)),delete:(a)=>Promise.resolve(localStorage.removeItem(a))}),'use
<div class="material-slider">
<div class="track">
<div class="track-on"></div>
<div class="handle">
<div class="arrow"></div>
<div class="val"></div>
</div>
</div>
</div>
`),this.range=b,this._handle=this.container.querySelector('.handle'),this._trackOn=this.container.querySelector('.track-on'),this._val=this.container.querySelector('.val'),b.parentNode.insertBefore(this.container,b),this.container.insertBefore(b,this.container.firstChild),b.addEventListener('input',()=>this._onInputChange()),this.range.addEventListener('mousedown',()=>this._onRangeMouseDown()),this.range.addEventListener('touchstart',()=>this._onRangeTouchStart()),this.range.addEventListener('touchend',()=>this._onRangeTouchEnd()),this._setPosition()}_onRangeTouchStart(){this.range.focus()}_onRangeTouchEnd(){this.range.blur()}_onRangeMouseDown(){this.range.classList.add('active');const a=()=>{requestAnimationFrame(()=>{this.range.blur()}),this.range.classList.remove('active'),document.removeEventListener('mouseup',a)};document.addEventListener('mouseup',a)}set value(a){this.range.value=a,this._update()}_onInputChange(){this._update()}_update(){requestAnimationFrame(()=>this._setPosition())}_setPosition(){const{min:a,max:b,value:c}=this.range;this._trackOn.style.width=this._handle.style.left=100*((+c-a)/(b-a))+'%',this._val.textContent=c}}class Y extends m{constructor(){super(),this._throttleTimeout=null,A.then(()=>{this._pluginInputs=Array.from(document.querySelectorAll('.settings .plugins input')),this._globalInputs=Array.from(document.querySelectorAll('.settings .global input')),this._resetRipple=new O,this._resetBtn=document.querySelector('.setting-reset'),this._resetBtn.appendChild(this._resetRipple.container),this._sliderMap=new WeakMap,Array.from(document.querySelectorAll('.settings input[type=range]')).forEach((a)=>this._sliderMap.set(a,new X(a))),this.container=document.querySelector('.settings'),this._scroller=document.querySelector('.settings-scroller'),this.container.addEventListener('change',(a)=>this._onChange(a)),this.container.addEventListener('input',(a)=>this._onChange(a)),this._scroller.addEventListener('wheel',(a)=>this._onMouseWheel(a)),this._resetBtn.addEventListener('click',(a)=>this._onReset(a)),this._scroller.addEventListener('mousedown',(a)=>{a.target.closest('input[type=range]')||a.preventDefault()})})}_onMouseWheel(a){a.deltaMode||(a.preventDefault(),a.currentTarget.scrollTop+=a.deltaY)}_onChange(a){clearTimeout(this._throttleTimeout),'range'==a.target.type?this._throttleTimeout=setTimeout(()=>this.emit('change'),150):this.emit('change')}_onReset(){this._resetRipple.animate();const a=this.getSettings();for(const a of this._globalInputs)'checkbox'==a.type?a.checked=a.hasAttribute('checked'):'range'==a.type&&(this._sliderMap.get(a).value=a.getAttribute('value'));for(const a of this._pluginInputs)a.checked=a.hasAttribute('checked');this.emit('reset',a),this.emit('change')}setSettings(a){for(const b of this._globalInputs)b.name in a&&('checkbox'==b.type?b.checked=a[b.name]:'range'==b.type&&(this._sliderMap.get(b).value=a[b.name]));for(const b of this._pluginInputs)b.name in a.plugins&&(b.checked=a.plugins[b.name])}getSettings(){const a=[],b={plugins:{}};return this._globalInputs.forEach((c)=>{'gzip'!=c.name&&'original'!=c.name&&('checkbox'==c.type?a.push(+c.checked):a.push('|'+c.value+'|')),b[c.name]='checkbox'==c.type?c.checked:c.value}),this._pluginInputs.forEach((c)=>{a.push(+c.checked),b.plugins[c.name]=c.checked}),b.fingerprint=a.join(),b}}class Z extends m{constructor(){super(),this.allowHide=!1,this._spinner=new P,A.then(()=>{this.container=document.querySelector('.main-menu'),this._loadFileInput=document.querySelector('.load-file-input'),this._pasteInput=document.querySelector('.paste-input'),this._loadDemoBtn=document.querySelector('.load-demo'),this._loadFileBtn=document.querySelector('.load-file'),this._pasteLabel=document.querySelector('.menu-input'),this._overlay=this.container.querySelector('.overlay'),this._menu=this.container.querySelector('.menu'),document.querySelector('.menu-btn').addEventListener('click',(a)=>this._onMenuButtonClick(a)),this._overlay.addEventListener('click',(a)=>this._onOverlayClick(a)),this._loadFileBtn.addEventListener('click',(a)=>this._onLoadFileClick(
//# sourceMappingURL=page.js.map