-
Notifications
You must be signed in to change notification settings - Fork 4
/
bundle.js.map
1 lines (1 loc) · 166 KB
/
bundle.js.map
1
{"version":3,"file":"bundle.js","sources":["../node_modules/preact/dist/preact.module.js","../app/utils.js","../app/state.js","../app/undo-redo.js","../app/components/toolbar.js","../app/keyboard.js","../app/components/color.js","../app/components/timeline.js","../app/components/canvas.js","../app/components/header.js","../app/index.js"],"sourcesContent":["var n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function v(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o<arguments.length;o++)u.push(r[o]);if(null!=u&&(f.children=u),\"function\"==typeof n&&null!=n.defaultProps)for(o in n.defaultProps)void 0===f[o]&&(f[o]=n.defaultProps[o]);return h(n,f,i,t,null)}function h(l,u,i,t,o){var r={type:l,props:u,key:i,ref:t,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++n.__v:o};return null!=n.vnode&&n.vnode(r),r}function y(){return{current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?_(n):null}function w(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return w(n)}}function k(l){(!l.__d&&(l.__d=!0)&&u.push(l)&&!g.__r++||t!==n.debounceRendering)&&((t=n.debounceRendering)||i)(g)}function g(){for(var n;g.__r=u.length;)n=u.sort(function(n,l){return n.__v.__b-l.__v.__b}),u=[],n.some(function(n){var l,u,i,t,o,r,f;n.__d&&(r=(o=(l=n).__v).__e,(f=l.__P)&&(u=[],(i=s({},o)).__v=o.__v+1,t=$(f,o,i,l.__n,void 0!==f.ownerSVGElement,null!=o.__h?[r]:null,u,null==r?_(o):r,o.__h),j(u,o),t!=r&&w(o)))})}function m(n,l,u,i,t,o,r,c,s,v){var y,d,w,k,g,m,b,A=i&&i.__k||e,P=A.length;for(s==f&&(s=null!=r?r[0]:P?_(i,0):null),u.__k=[],y=0;y<l.length;y++)if(null!=(k=u.__k[y]=null==(k=l[y])||\"boolean\"==typeof k?null:\"string\"==typeof k||\"number\"==typeof k?h(null,k,null,null,k):Array.isArray(k)?h(p,{children:k},null,null,null):null!=k.__e||null!=k.__c?h(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(w=A[y])||w&&k.key==w.key&&k.type===w.type)A[y]=void 0;else for(d=0;d<P;d++){if((w=A[d])&&k.key==w.key&&k.type===w.type){A[d]=void 0;break}w=null}g=$(n,k,w=w||f,t,o,r,c,s,v),(d=k.ref)&&w.ref!=d&&(b||(b=[]),w.ref&&b.push(w.ref,null,k),b.push(d,k.__c||g,k)),null!=g?(null==m&&(m=g),s=x(n,k,w,A,r,g,s),v||\"option\"!=u.type?\"function\"==typeof u.type&&(u.__d=s):n.value=\"\"):s&&w.__e==s&&s.parentNode!=n&&(s=_(w))}if(u.__e=m,null!=r&&\"function\"!=typeof u.type)for(y=r.length;y--;)null!=r[y]&&a(r[y]);for(y=P;y--;)null!=A[y]&&L(A[y],A[y]);if(b)for(y=0;y<b.length;y++)I(b[y],b[++y],b[++y])}function b(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){b(n,l)}):l.push(n)),l}function x(n,l,u,i,t,o,r){var f,e,c;if(void 0!==l.__d)f=l.__d,l.__d=void 0;else if(t==u||o!=r||null==o.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(o),f=null;else{for(e=r,c=0;(e=e.nextSibling)&&c<i.length;c+=2)if(e==o)break n;n.insertBefore(o,r),f=r}return void 0!==f?f:o.nextSibling}function A(n,l,u,i,t){var o;for(o in u)\"children\"===o||\"key\"===o||o in l||C(n,o,null,u[o],i);for(o in l)t&&\"function\"!=typeof l[o]||\"children\"===o||\"key\"===o||\"value\"===o||\"checked\"===o||u[o]===l[o]||C(n,o,l[o],u[o],i)}function P(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||c.test(l)?u:u+\"px\"}function C(n,l,u,i,t){var o,r,f;if(t&&\"className\"==l&&(l=\"class\"),\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||P(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||P(n.style,l,u[l])}else\"o\"===l[0]&&\"n\"===l[1]?(o=l!==(l=l.replace(/Capture$/,\"\")),(r=l.toLowerCase())in n&&(l=r),l=l.slice(2),n.l||(n.l={}),n.l[l+o]=u,f=o?N:z,u?i||n.addEventListener(l,f,o):n.removeEventListener(l,f,o)):\"list\"!==l&&\"tagName\"!==l&&\"form\"!==l&&\"type\"!==l&&\"size\"!==l&&\"download\"!==l&&\"href\"!==l&&!t&&l in n?n[l]=null==u?\"\":u:\"function\"!=typeof u&&\"dangerouslySetInnerHTML\"!==l&&(l!==(l=l.replace(/xlink:?/,\"\"))?null==u||!1===u?n.removeAttributeNS(\"http:https://www.w3.org/1999/xlink\",l.toLowerCase()):n.setAttributeNS(\"http:https://www.w3.org/1999/xlink\",l.toLowerCase(),u):null==u||!1===u&&!/^ar/.test(l)?n.removeAttribute(l):n.setAttribute(l,u))}function z(l){this.l[l.type+!1](n.event?n.event(l):l)}function N(l){this.l[l.type+!0](n.event?n.event(l):l)}function T(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,t.__e&&(\"function\"==typeof t.type&&t.__k.length>1&&T(t,l,u),l=x(u,t,t,n.__k,null,t.__e,l),\"function\"==typeof n.type&&(n.__d=l)))}function $(l,u,i,t,o,r,f,e,c){var a,v,h,y,_,w,k,g,b,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=n.__b)&&a(u);try{n:if(\"function\"==typeof P){if(g=u.props,b=(a=P.contextType)&&t[a.__c],x=a?b?b.props.value:a.__:t,i.__c?k=(v=u.__c=i.__c).__=v.__E:(\"prototype\"in P&&P.prototype.render?u.__c=v=new P(g,x):(u.__c=v=new d(g,x),v.constructor=P,v.render=M),b&&b.sub(v),v.props=g,v.state||(v.state={}),v.context=x,v.__n=t,h=v.__d=!0,v.__h=[]),null==v.__s&&(v.__s=v.state),null!=P.getDerivedStateFromProps&&(v.__s==v.state&&(v.__s=s({},v.__s)),s(v.__s,P.getDerivedStateFromProps(g,v.__s))),y=v.props,_=v.state,h)null==P.getDerivedStateFromProps&&null!=v.componentWillMount&&v.componentWillMount(),null!=v.componentDidMount&&v.__h.push(v.componentDidMount);else{if(null==P.getDerivedStateFromProps&&g!==y&&null!=v.componentWillReceiveProps&&v.componentWillReceiveProps(g,x),!v.__e&&null!=v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(g,v.__s,x)||u.__v===i.__v){v.props=g,v.state=v.__s,u.__v!==i.__v&&(v.__d=!1),v.__v=u,u.__e=i.__e,u.__k=i.__k,v.__h.length&&f.push(v),T(u,e,l);break n}null!=v.componentWillUpdate&&v.componentWillUpdate(g,v.__s,x),null!=v.componentDidUpdate&&v.__h.push(function(){v.componentDidUpdate(y,_,w)})}v.context=x,v.props=g,v.state=v.__s,(a=n.__r)&&a(u),v.__d=!1,v.__v=u,v.__P=l,a=v.render(v.props,v.state,v.context),v.state=v.__s,null!=v.getChildContext&&(t=s(s({},t),v.getChildContext())),h||null==v.getSnapshotBeforeUpdate||(w=v.getSnapshotBeforeUpdate(y,_)),A=null!=a&&a.type==p&&null==a.key?a.props.children:a,m(l,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,c),v.base=u.__e,u.__h=null,v.__h.length&&f.push(v),k&&(v.__E=v.__=null),v.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=H(i.__e,u,i,t,o,r,f,c);(a=n.diffed)&&a(u)}catch(l){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),n.__e(l,u,i)}return u.__e}function j(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u)})}catch(l){n.__e(l,u.__v)}})}function H(n,l,u,i,t,o,r,c){var s,a,v,h,y,p=u.props,d=l.props;if(t=\"svg\"===l.type||t,null!=o)for(s=0;s<o.length;s++)if(null!=(a=o[s])&&((null===l.type?3===a.nodeType:a.localName===l.type)||n==a)){n=a,o[s]=null;break}if(null==n){if(null===l.type)return document.createTextNode(d);n=t?document.createElementNS(\"http:https://www.w3.org/2000/svg\",l.type):document.createElement(l.type,d.is&&{is:d.is}),o=null,c=!1}if(null===l.type)p===d||c&&n.data===d||(n.data=d);else{if(null!=o&&(o=e.slice.call(n.childNodes)),v=(p=u.props||f).dangerouslySetInnerHTML,h=d.dangerouslySetInnerHTML,!c){if(null!=o)for(p={},y=0;y<n.attributes.length;y++)p[n.attributes[y].name]=n.attributes[y].value;(h||v)&&(h&&(v&&h.__html==v.__html||h.__html===n.innerHTML)||(n.innerHTML=h&&h.__html||\"\"))}A(n,d,p,t,c),h?l.__k=[]:(s=l.props.children,m(n,Array.isArray(s)?s:[s],l,u,i,\"foreignObject\"!==l.type&&t,o,r,f,c)),c||(\"value\"in d&&void 0!==(s=d.value)&&(s!==n.value||\"progress\"===l.type&&!s)&&C(n,\"value\",s,p.value,!1),\"checked\"in d&&void 0!==(s=d.checked)&&s!==n.checked&&C(n,\"checked\",s,p.checked,!1))}return n}function I(l,u,i){try{\"function\"==typeof l?l(u):l.current=u}catch(l){n.__e(l,i)}}function L(l,u,i){var t,o,r;if(n.unmount&&n.unmount(l),(t=l.ref)&&(t.current&&t.current!==l.__e||I(t,null,u)),i||\"function\"==typeof l.type||(i=null!=(o=l.__e)),l.__e=l.__d=void 0,null!=(t=l.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(l){n.__e(l,u)}t.base=t.__P=null}if(t=l.__k)for(r=0;r<t.length;r++)t[r]&&L(t[r],u,i);null!=o&&a(o)}function M(n,l,u){return this.constructor(n,u)}function O(l,u,i){var t,r,c;n.__&&n.__(l,u),r=(t=i===o)?null:i&&i.__k||u.__k,l=v(p,null,[l]),c=[],$(u,(t?u:i||u).__k=l,r||f,f,void 0!==u.ownerSVGElement,i&&!t?[i]:r?null:u.childNodes.length?e.slice.call(u.childNodes):null,c,i||f,t),j(c,l)}function S(n,l){O(n,l,o)}function q(n,l,u){var i,t,o,r=arguments,f=s({},n.props);for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o<arguments.length;o++)u.push(r[o]);return null!=u&&(f.children=u),h(n.type,f,i||n.key,t||n.ref,null)}function B(n,l){var u={__c:l=\"__cC\"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n,u,i){return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(k)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n={__e:function(n,l){for(var u,i,t,o=l.__h;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return l.__h=o,u.__E=u}catch(l){n=l}throw n},__v:0},l=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s({},this.state),\"function\"==typeof n&&(n=n(s({},u),this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),k(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),k(this))},d.prototype.render=p,u=[],i=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,o=f,r=0;export{O as render,S as hydrate,v as createElement,v as h,p as Fragment,y as createRef,l as isValidElement,d as Component,q as cloneElement,B as createContext,b as toChildArray,L as __u,n as options};\n//# sourceMappingURL=preact.module.js.map\n","\nexport const RGBtoHSL = (rgb) => {\n // Make r, g, and b fractions of 1\n let r = rgb[0] / 255\n let g = rgb[1] / 255\n let b = rgb[2] / 255\n\n // Find greatest and smallest channel values\n let cmin = Math.min(r, g, b)\n let cmax = Math.max(r, g, b)\n let delta = cmax - cmin\n let h = 0\n let s = 0\n let l = 0\n\n if (delta === 0) {\n h = 0\n } else if (cmax === r) {\n h = ((g - b) / delta) % 6\n } else if (cmax === g) {\n h = (b - r) / delta + 2\n } else {\n h = (r - g) / delta + 4\n }\n\n h = Math.round(h * 60)\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360\n\n l = (cmax + cmin) / 2\n\n // Calculate saturation\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1)\n l = +(l * 100).toFixed(1)\n\n return [ Math.floor(h), Math.floor(s), Math.floor(l), 255 ]\n}\n\nexport const HSLtoRGB = (hsl) => {\n const h = hsl[0]\n const s = hsl[1] / 100\n const l = hsl[2] / 100\n\n let c = (1 - Math.abs(2 * l - 1)) * s\n let x = c * (1 - Math.abs((hsl[0] / 60) % 2 - 1))\n let m = l - c / 2\n let r = 0\n let g = 0\n let b = 0\n\n if (h >= 0 && h < 60) {\n r = c; g = x; b = 0\n } else if (h >= 60 && h < 120) {\n r = x; g = c; b = 0\n } else if (h >= 120 && h < 180) {\n r = 0; g = c; b = x\n } else if (h >= 180 && h < 240) {\n r = 0; g = x; b = c\n } else if (h >= 240 && h < 300) {\n r = x; g = 0; b = c\n } else if (h >= 300 && h < 360) {\n r = c; g = 0; b = x\n }\n\n r = Math.round((r + m) * 255)\n g = Math.round((g + m) * 255)\n b = Math.round((b + m) * 255)\n\n return [ r, g, b, 255 ]\n}","import { RGBtoHSL } from './utils'\n\nexport const ENV = window.location.href.includes('localhost:4000') ? 'DEV' : 'PROD'\nexport const APP = {}\nexport const VIEW = { render: undefined }\nexport const canvases = ['canvasSelection', 'canvasPreview', 'canvasTemp', 'canvasFinal', 'canvasView']\n\nconst initAppDefault = (w, h) => {\n APP.width = w\n APP.height = h\n APP.tool = 'pencil'\n\n APP.frameActive = 0\n APP.layerActive = 0\n APP.frameCount = 1 \n APP.layerCount = 1 \n APP.layers = [\n {\n name: 'Layer 1',\n hidden: false,\n frames: [new ImageData(w, h)]\n }\n ]\n \n APP.color = {}\n APP.color.rgb = [100, 188, 156, 255]\n APP.color.hsl = RGBtoHSL(APP.color.rgb)\n\n APP.palette = [\n [26, 188, 156, 255],\n [46, 204, 113, 255],\n [52, 152, 219, 255],\n [155, 89, 182, 255],\n [52, 73, 94, 255],\n [22, 160, 133, 255],\n [39, 174, 96, 255],\n [41, 128, 185, 255],\n [142, 68, 173, 255],\n [44, 62, 80, 255],\n [241, 196, 15, 255],\n [230, 126, 34, 255],\n [231, 76, 60, 255],\n [236, 240, 241, 255],\n [149, 165, 166, 255],\n [243, 156, 18, 255],\n [211, 84, 0, 255],\n [192, 57, 43, 255],\n [189, 195, 199, 255],\n [127, 140, 141, 255]\n ]\n \n Object.seal(APP)\n}\n\nexport const initCanvases = () => {\n canvases.forEach(canvas => {\n VIEW[canvas].dom = canvas === 'canvasView' ? document.querySelector('#canvas-view') : document.createElement('canvas')\n VIEW[canvas].dom.width = APP.width\n VIEW[canvas].dom.height = APP.height\n VIEW[canvas].ctx = VIEW[canvas].dom.getContext('2d')\n VIEW[canvas].imgData = VIEW[canvas].ctx.getImageData(0, 0, APP.width, APP.height)\n })\n\n VIEW.canvasTimeline = document.querySelector('#timeline-canvas')\n VIEW.canvasTimelineTemp = document.createElement('canvas')\n}\n\nconst initViewDefault = (preventOnMount) => {\n VIEW.activeInput = {\n id: '',\n val: ''\n }\n\n VIEW.window = {\n request: '',\n mouseDown: false,\n startX: 0,\n startY: 0,\n prevX: 0,\n prevY: 0,\n currX: 0,\n currY: 0\n }\n\n VIEW.file = { open: false }\n VIEW.newCanvas = { open: false, w: 32, h: 32 }\n VIEW.downloadCanvas = { open: false, size: 2, type: 'frame' }\n\n VIEW.brushSize = 0\n\n VIEW.timerID = undefined\n VIEW.isPlaying = false\n VIEW.onionSkinning = false\n\n VIEW.undo = []\n VIEW.undoPos = -1\n VIEW.currUndoRef = {}\n \n VIEW.canvasTimeline = undefined\n VIEW.canvasTimelineTemp = undefined\n\n // need to reset these on new project\n canvases.forEach(canvas => {\n VIEW[canvas] = {\n dom: undefined,\n ctx: undefined,\n imgData: undefined\n }\n })\n\n if (preventOnMount !== true) {\n initCanvases()\n }\n\n Object.seal(VIEW)\n}\n\nexport const newData = (w, h, preventOnMount) => {\n initAppDefault(w, h)\n initViewDefault(preventOnMount)\n}","import { VIEW } from './state'\n\nexport const addToUndo = (action, type = '') => {\n VIEW.undo.splice(0, VIEW.undoPos + 1, {\n icon: `${action}.svg`,\n action: `${action} ${type}`,\n undo: undo,\n redo: redo\n })\n\n if (VIEW.undoPos >= 0) VIEW.undoPos = -1 \n if (VIEW.undo.length > 50) VIEW.undo.pop()\n\n VIEW.currUndoRef = VIEW.undo[VIEW.undoPos + 1]\n}\n\nexport const undo = () => {\n if (VIEW.undoPos + 1 === VIEW.undo.length) return\n\n VIEW.undoPos += 1\n VIEW.undo[VIEW.undoPos].undo()\n\n VIEW.render()\n}\n\nexport const redo = () => {\n if (VIEW.undoPos - 1 === -2) return\n\n if (VIEW.undo[VIEW.undoPos].redo) VIEW.undo[VIEW.undoPos].redo()\n VIEW.undoPos -= 1\n\n VIEW.render()\n}","import { h } from 'preact'\nimport { APP, VIEW } from '../state'\n\nexport const setTool = (tool) => {\n APP.tool = tool\n VIEW.render()\n}\n\nexport const Toolbar = () => {\n return <div class='w-40 bg-light bord-dark-r'>\n {\n ['pencil', 'eraser', 'line', 'circle', 'square', 'fill', 'eye-dropper', 'move'].map(tool => \n <button\n onClick={() => { setTool(tool) }}\n class=\"fl fl-center m-0 p-0 w-40 h-40 bord-dark-r\"\n style={`${APP.tool === tool ? 'background: rgba(52, 152, 219, 255);' : ''}`}>\n <img src={`img/${tool}.svg`} />\n </button>\n )\n }\n </div>\n}\n\n","import { undo, redo } from './undo-redo'\nimport { setTool } from './components/toolbar'\n\nconst keyMap = {\n metaKey: {\n z: undo\n },\n shiftKey: {\n metaKey: {\n z: redo\n }\n },\n b: () => {\n setTool('pencil')\n },\n e: () => {\n setTool('eraser')\n },\n u: () => {\n setTool('line')\n },\n g: () => {\n setTool('fill')\n },\n l: () => {\n setTool('eye-dropper')\n },\n v: () => {\n setTool('move')\n }\n}\n\nlet shiftKeyMark = Date.now()\nlet metaKeyMark = Date.now()\nlet alphaKeyMark = Date.now()\n\nexport const setupKeyListeners = () => {\n window.addEventListener('keydown', (e) => {\n if (e.target.tagName === 'INPUT') {\n return\n }\n\n const key = e.key.toLowerCase()\n \n if (!e.repeat && key === 'meta') {\n metaKeyMark = Date.now()\n } \n\n if (!e.repeat && key === 'shift') {\n shiftKeyMark = Date.now()\n } \n\n if (!e.repeat && key === 'z') {\n alphaKeyMark = Date.now()\n }\n\n if (e.shiftKey && e.metaKey) {\n if ((shiftKeyMark < metaKeyMark < alphaKeyMark) && key === 'z') {\n keyMap.shiftKey.metaKey['z']()\n }\n }\n \n if (!e.shiftKey && e.metaKey) {\n if ((metaKeyMark < alphaKeyMark) && key === 'z') {\n keyMap.metaKey['z']()\n }\n }\n\n if (e.shiftKey && !e.metaKey) {\n if ((shiftKeyMark < alphaKeyMark) && key === 'z') {\n // keyMap.shiftKey['z']()\n }\n }\n\n if (!e.shiftKey && !e.metaKey && keyMap[e.key.toLowerCase()]) {\n keyMap[e.key.toLowerCase()]()\n }\n })\n}\n","import { h, render, createRef } from 'preact'\nimport { RGBtoHSL, HSLtoRGB } from '../utils'\nimport { APP, VIEW } from '../state'\nimport { addToUndo, undo, redo } from '../undo-redo'\n\nconst enableActiveInput = (id, val) => {\n VIEW.activeInput.id = id\n VIEW.activeInput.val = val\n \n VIEW.render()\n}\n\nconst disableActiveInput = () => {\n VIEW.activeInput.id = ''\n VIEW.activeInput.val = ''\n \n VIEW.render()\n}\n\nconst setActiveInput = (val) => {\n VIEW.activeInput.val = val\n}\n\nexport const setRGB = (newRGB) => {\n const rgb = newRGB\n const hsl = RGBtoHSL(rgb)\n\n APP.color.rgb = rgb\n APP.color.hsl = hsl\n\n VIEW.render()\n}\n\nconst setHSL = (newHSL) => {\n const hsl = newHSL\n const rgb = HSLtoRGB(hsl)\n\n APP.color.hsl = hsl\n APP.color.rgb = rgb\n \n VIEW.render()\n}\n\nconst setRed = (e) => {\n const r = parseInt(e.target.value)\n\n if (r >= 0 && r <= 255) {\n const newRGB = [r, APP.color.rgb[1], APP.color.rgb[2], APP.color.rgb[3]]\n setRGB(newRGB)\n }\n}\n\nconst setGreen = (e) => {\n const g = parseInt(e.target.value)\n\n if (g >= 0 && g <= 255) {\n const newRGB = [APP.color.rgb[0], g, APP.color.rgb[2], APP.color.rgb[3]]\n setRGB(newRGB)\n }\n}\n\nconst setBlue = (e) => {\n const b = parseInt(e.target.value)\n\n if (b >= 0 && b <= 255) {\n const newRGB = [APP.color.rgb[0], APP.color.rgb[1], b, APP.color.rgb[3]]\n setRGB(newRGB)\n }\n}\n\nconst setHue = (e) => {\n const h = parseInt(e.target.value)\n \n if (h >= 0 && h <= 360) {\n const newHSL = [h, APP.color.hsl[1], APP.color.hsl[2], APP.color.hsl[3]]\n setHSL(newHSL)\n }\n}\n\nconst setSaturation = (e) => {\n const s = parseInt(e.target.value)\n \n if (s >= 0 && s <= 100) {\n const newHSL = [APP.color.hsl[0], s, APP.color.hsl[2], APP.color.hsl[3]]\n setHSL(newHSL)\n }\n}\n\nconst setLightness = (e) => {\n const l = parseInt(e.target.value)\n \n if (l >= 0 && l <= 100) {\n const newHSL = [APP.color.hsl[0], APP.color.hsl[1], l, APP.color.hsl[3]]\n setHSL(newHSL)\n }\n}\n\nconst setHex = () => {}\n\nconst paletteAdd = () => {\n APP.palette.push(APP.color.rgb)\n \n VIEW.render()\n}\n\nconst paletteDelete = (i) => {\n const index = APP.palette.indexOf(APP.color.rgb)\n\n if (index !== -1) {\n APP.palette.splice(index, 1)\n VIEW.render()\n } \n}\n\nexport const Color = () => {\n return (\n <div class='bord-dark-b fl-1'>\n <div class='h-30 bg-mid bord-dark-b fl fl-center-y p-h-10'>\n <small><b>Color</b></small>\n </div>\n <div class='fl-column overflow-none p-10'>\n <div class='b-r-2 overflow-none fl-column'>\n {\n [\n {\n id: 'color-hue-range',\n min: 0,\n max: 360,\n func: setHue,\n style: `min-height: 26px; background: linear-gradient(to right, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);`\n }, {\n id: 'color-saturation-range',\n min: 0,\n max: 100,\n func: setSaturation,\n style: `min-height: 26px; background: linear-gradient(to right, hsl(${APP.color.hsl[0]}, 0%, 50%) 0%,hsl(${APP.color.hsl[0]}, 100%, 50%) 100%);`\n }, {\n id: 'color-lightness-range',\n min: 0,\n max: 100,\n func: setLightness,\n style: `min-height: 26px; background: linear-gradient(to right, hsl(${APP.color.hsl[0]}, 100%, 0%) 0%, hsl(${APP.color.hsl[0]}, 100%, 50%) 50%, hsl(${APP.color.hsl[0]}, 100%, 100%) 100%)`\n }\n ].map((item, i) => {\n return <input\n type='range'\n min={item.min}\n max={item.max}\n style={item.style}\n class='fl-1 m-0'\n onFocus={(e) => {\n enableActiveInput(item.id, APP.color.hsl[i])\n }}\n onFocusOut={() => {\n disableActiveInput()\n }}\n onInput={(e) => {\n setActiveInput(e.target.value)\n item.func(e)\n }}\n value={VIEW.activeInput.id === item.id ? VIEW.activeInput.val : APP.color.hsl[i]}\n />\n })\n }\n </div>\n <div class='p-v-10'>\n <div class='fl fl-center-y' style='margin-bottom: 2px;'>\n <small style='width: 50px; font-size: 11px;'>HSL</small>\n {\n [\n {\n id: 'color-hue-text',\n func: setHue\n }, {\n id: 'color-saturation-text',\n func: setSaturation\n }, {\n id: 'color-lightness-text',\n func: setLightness\n }\n ].map((item, i) => {\n return <input\n class='fl-1'\n type='number'\n style={`margin-right: ${i === 2 ? 0 : 2}px;`}\n onFocus={(e) => {\n enableActiveInput(item.id, APP.color.hsl[i])\n }}\n onFocusOut={() => {\n disableActiveInput()\n }}\n onInput={(e) => {\n setActiveInput(e.target.value)\n item.func(e)\n }}\n value={VIEW.activeInput.id === item.id ? VIEW.activeInput.val : APP.color.hsl[i]}\n />\n })\n }\n </div>\n <div class='fl fl-center-y' style='margin-bottom: 2px;'>\n <small style='width: 50px; font-size: 11px;'>RGB</small>\n {\n [\n {\n id: 'color-red-text',\n func: setRed\n }, {\n id: 'color-green-text',\n func: setGreen\n }, {\n id: 'color-blue-text',\n func: setBlue\n }\n ].map((item, i) => {\n return <input\n class='fl-1'\n type='number'\n style={`margin-right: ${i === 2 ? 0 : 2}px;`}\n onFocus={(e) => {\n enableActiveInput(item.id, APP.color.rgb[i])\n }}\n onFocusOut={() => {\n disableActiveInput()\n }}\n onInput={(e) => {\n setActiveInput(e.target.value)\n item.func(e)\n }}\n value={VIEW.activeInput.id === item.id ? VIEW.activeInput.val : APP.color.rgb[i]}\n />\n })\n }\n </div>\n {/* <div class='fl fl-center-y'>\n <small style='width: 50px; font-size: 11px;'>HEX</small>\n <input class='fl-1' type='text' />\n </div> */}\n </div>\n <div class='fl'>\n <div\n class='fl-1 no-ptr h-25 b-r-2'\n style={`margin-right: 10px; background: rgba(${APP.color.rgb[0]}, ${APP.color.rgb[1]}, ${APP.color.rgb[2]}, 255); margin-bottom: 10px; `}>\n </div>\n {APP.palette.filter(c =>\n APP.color.rgb[0] === c[0] &&\n APP.color.rgb[1] === c[1] &&\n APP.color.rgb[2] === c[2] &&\n APP.color.rgb[3] === c[3])\n .length === 0\n ? <button\n onClick={() => { paletteAdd() }}\n class='w-30 h-25 fl fl-center bg-dark bord-dark b-r-2'>\n <img src={`img/insert.svg`} />\n </button>\n : <button\n onClick={() => { paletteDelete() }}\n class='w-30 h-25 fl fl-center bg-dark bord-dark b-r-2'>\n <img src={`img/delete.svg`} />\n </button>\n }\n </div>\n <div class='fl fl-wrap overflow-none b-r-2' style='align-content: baseline;'>\n {\n APP.palette.map(c =>\n <button\n onClick={() => {\n setRGB(c)\n }}\n class='m-0'\n style={`\n width: 44px;\n min-height: 25px;\n background: rgba(${c[0]}, ${c[1]}, ${c[2]}, ${c[3]});\n border: ${\n APP.color.rgb[0] === c[0] &&\n APP.color.rgb[1] === c[1] &&\n APP.color.rgb[2] === c[2] &&\n APP.color.rgb[3] === c[3] ? '2px solid rgba(61,61,61, 1)' : '2px solid rgba(61,61,61, 0)'};\n box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, ${\n APP.color.rgb[0] === c[0] &&\n APP.color.rgb[1] === c[1] &&\n APP.color.rgb[2] === c[2] &&\n APP.color.rgb[3] === c[3] ? '255' : '0'});\n `} />\n )\n }\n </div>\n </div>\n </div>\n )\n}","import { h, render } from 'preact'\nimport { APP, VIEW } from '../state'\nimport { addToUndo } from '../undo-redo'\n\nconst setTargetCanvas = (frame, layer) => {\n if (frame === undefined) console.error('setTargetCanvas - no frame given')\n if (layer === undefined) console.error('setTargetCanvas - no layer given')\n\n if (frame >= 0 && frame < APP.frameCount && layer >= 0 && layer <= APP.layerCount) {\n APP.frameActive = frame\n APP.layerActive = layer\n\n VIEW.render()\n }\n}\n\nconst seq = (request, type, data) => {\n const inserting = request === 'insert' || request === 'duplicate'\n \n function action (req, ref, target, entry) {\n if (req === 'insert') ref.splice(target + 1, 0, entry)\n if (req === 'delete') ref.splice(target, 1)\n }\n\n if (type === 'layer') {\n if (request === 'insert') {\n action(request, APP.layers, APP.layerActive, data)\n }\n\n if (request === 'delete') {\n action(request, APP.layers, APP.layerActive)\n }\n }\n\n if (type === 'frame') {\n if (request === 'insert') {\n APP.layers.forEach((layer, i) => {\n const entry = new ImageData(APP.width, APP.height)\n entry.data.set(data[i].data)\n action(request, layer.frames, APP.frameActive, entry)\n })\n }\n\n if (request === 'delete') {\n APP.layers.forEach(layer => {\n action(request, layer.frames, APP.frameActive)\n })\n }\n }\n\n APP[`${type}Count`] += (inserting ? 1 : -1)\n\n if (inserting) {\n APP[`${type}Active`] += 1\n } \n \n if (request === 'delete') {\n if (APP[`${type}Active`] === APP[`${type}Count`]) {\n APP[`${type}Active`] -= 1\n } \n }\n}\n\nexport const timelineManager = ({ type, request, requestType, data, disableUndoRedo }) => {\n const layerActive = APP.layerActive\n const frameActive = APP.frameActive\n const layerCount = APP.layerCount\n const frameCount = APP.frameCount\n\n if (!disableUndoRedo) {\n addToUndo(request, type)\n\n VIEW.currUndoRef.redo = () => {\n APP.frameCount = frameCount\n APP.layerCount = layerCount\n APP.frameActive = frameActive\n APP.layerActive = layerActive\n timelineManager({ type, request, requestType, data, disableUndoRedo: true })\n }\n }\n\n const newData = type === 'layer' ? {\n name: `Layer ${layerCount + 1}`,\n hidden: false,\n frames: new Array(frameCount).fill(undefined).map(frame => new ImageData(APP.width, APP.height))\n } : new Array(APP.layerCount)\n .fill(undefined)\n .map(item => {\n return new ImageData(APP.width, APP.height)\n })\n \n const cloneData = type === 'layer' ? {\n name: `${APP.layers[layerActive].name} ${requestType === 'clone' ? '(Copy)' : ''}`,\n hidden: false,\n frames: new Array(frameCount)\n .fill(undefined)\n .map((frame, frameI) => {\n const imgData = new ImageData(APP.width, APP.height)\n imgData.data.set(APP.layers[layerActive].frames[frameI].data)\n return imgData\n })\n } : new Array(layerCount)\n .fill(undefined)\n .map((item, i) => {\n const copy = new ImageData(APP.width, APP.height)\n copy.data.set(APP.layers[i].frames[frameActive].data)\n return copy\n })\n \n if ((type === 'layer' || type === 'frame') && (requestType === 'new' || requestType === 'clone')) {\n seq('insert', type, requestType === 'new' ? newData : cloneData)\n }\n\n if ((type === 'layer' || type === 'frame') && request === 'delete') {\n if (APP[`${type}Count`] - 1 === 0) {\n seq('delete', type)\n if (type === 'layer') newData.name = 'Layer 1'\n seq('insert', type, newData)\n } else {\n seq('delete', type)\n }\n }\n\n const layerActiveAfter = APP.layerActive\n const frameActiveAfter = APP.frameActive\n const layerCountAfter = APP.layerCount\n const frameCountAfter = APP.frameCount\n \n if (!disableUndoRedo) {\n VIEW.currUndoRef.undo = () => {\n APP.frameCount = frameCountAfter\n APP.layerCount = layerCountAfter\n \n if (type === 'layer') {\n APP.frameActive = frameActiveAfter\n \n if (request === 'insert') {\n APP.layerActive = layerActiveAfter\n seq('delete', type)\n }\n \n if (request === 'delete' && layerCount !== 1) {\n APP.layerActive = layerActive - 1\n seq('insert', type, cloneData)\n }\n\n if (request === 'delete' && layerCount === 1) {\n seq('delete', type)\n seq('insert', type, cloneData)\n }\n }\n\n if (type === 'frame') {\n APP.layerActive = layerActiveAfter\n \n if (request === 'insert') {\n APP.frameActive = frameActiveAfter\n seq('delete', type)\n }\n \n if (request === 'delete' && frameCount !== 1) {\n APP.frameActive = frameActive - 1\n seq('insert', type, cloneData)\n }\n\n if (request === 'delete' && frameCount === 1) {\n seq('delete', type)\n seq('insert', type, cloneData)\n }\n }\n }\n }\n\n VIEW.render()\n}\n\nconst swap = (type, dir) => {\n const step = dir === 'up' ? -1 : 1\n const active = type === 'layer' ? 'layerActive' : 'frameActive'\n const length = type === 'layer' ? APP.layerCount : APP.frameCount\n\n if (APP[active] + step === -1) return\n if (APP[active] + step === length) return\n\n if (type === 'layer') {\n const temp = APP.layers[APP.layerActive + step]\n APP.layers[APP.layerActive + step] = APP.layers[APP.layerActive]\n APP.layers[APP.layerActive] = temp\n }\n\n if (type === 'frame') {\n APP.layers.forEach(layer => {\n const temp = layer.frames[APP.frameActive + step]\n layer.frames[APP.frameActive + step] = layer.frames[APP.frameActive]\n layer.frames[APP.frameActive] = temp\n })\n }\n\n APP[active] += step\n\n VIEW.render()\n}\n\nconst layersEditHidden = (i) => {\n APP.layers[i].hidden = !APP.layers[i].hidden\n VIEW.render()\n}\n\nconst nextFrame = () => {\n APP.frameActive = (APP.frameActive + 1) % APP.frameCount\n VIEW.render()\n}\n\nconst lastFrame = () => {\n APP.frameActive = APP.frameActive - 1 === -1 ? APP.frameCount - 1 : APP.frameActive - 1\n VIEW.render()\n}\n\n// Animation\nconst scheduler = () => {\n APP.frameActive = (APP.frameActive + 1) % APP.frameCount\n VIEW.render()\n VIEW.timerID = setTimeout(scheduler, 100)\n}\n\nconst togglePlay = () => {\n if (APP.frameCount === 1) return\n\n if (VIEW.isPlaying) {\n clearTimeout(VIEW.timerID)\n } else {\n scheduler()\n }\n \n VIEW.isPlaying = !VIEW.isPlaying\n VIEW.render()\n}\n\nexport const Timeline= () => {\n return (\n <div class='bg-light bord-dark-t fl-column' style='height: 250px;'>\n <div class='fl w-full bord-dark-b h-30'>\n <div class='fl fl-justify-between bord-dark-r' style='width: 210px;'>\n {/* <div style='width: 90px;' class='p-h-10 fl fl-center-y bord-dark-r'>\n <small><b>Layers</b></small>\n </div> */}\n <div class='fl'>\n <button\n onClick={() => { if (APP.layerCount < 30) timelineManager({ type:'layer', request: 'insert', requestType: 'new' }) }}\n class='w-30 fl fl-center bord-dark-r' >\n <img src={`img/insert.svg`} />\n </button>\n <button\n onClick={() => { timelineManager({ type:'layer', request: 'insert', requestType: 'clone' }) }}\n class='w-30 fl fl-center bord-dark-r' >\n <img src={`img/clone.svg`} />\n </button>\n <button\n onClick={() => { swap('layer', 'down') }}\n class='w-30 fl fl-center bord-dark-r'>\n <img src={`img/up.svg`} />\n </button>\n <button\n onClick={() => { swap('layer', 'up') }}\n class='w-30 fl fl-center bord-dark-r'>\n <img src={`img/down.svg`} />\n </button>\n <button\n onClick={() => { timelineManager({ type:'layer', request: 'delete' }) }}\n class='w-30 fl fl-center bord-dark-r'>\n <img src={`img/delete.svg`} />\n </button>\n </div>\n </div>\n <div class='fl fl-1'>\n <div class='fl'>\n <button\n onClick={() => { VIEW.onionSkinning = !VIEW.onionSkinning; VIEW.render() }}\n class=\"fl fl-center m-0 p-0 w-30 bord-dark-r\"\n style={VIEW.onionSkinning ? 'background: rgba(52, 152, 219, 255);' : ''}>\n <img src=\"img/onion.svg\" />\n </button>\n </div>\n <div class='fl-1 fl fl-justify-center'>\n <div class='fl'>\n <button\n onClick={() => { lastFrame() }}\n class=\"fl fl-center m-0 p-0 w-30 bord-dark-r bord-dark-l\" >\n <img src=\"img/lastframe.svg\" />\n </button>\n <button\n onClick={() => { togglePlay() }}\n class=\"fl fl-center m-0 p-0 w-30 bord-dark-r\" >\n <img src={`img/${VIEW.isPlaying ? 'stop.svg' : 'play.svg'}`} />\n </button>\n <button\n onClick={() => { nextFrame() }}\n class=\"fl fl-center m-0 p-0 w-30 bord-dark-r\" >\n <img src=\"img/nextframe.svg\" />\n </button>\n </div>\n </div>\n <div class='fl'>\n <button\n onClick={() => { if (!VIEW.isPlaying && APP.frameCount < 50) timelineManager({ type: 'frame', request: 'insert', requestType: 'new' }) }}\n class='w-30 fl fl-center bord-dark-r bord-dark-l'>\n <img src={`img/insert.svg`} />\n </button>\n <button\n onClick={() => { timelineManager({ type:'frame', request: 'insert', requestType: 'clone' }) }}\n class='w-30 fl fl-center bord-dark-r' >\n <img src={`img/clone.svg`} />\n </button>\n <button\n onClick={() => { if (!VIEW.isPlaying) swap('frame', 'up') }}\n class='w-30 fl fl-center bord-dark-r'>\n <img src={`img/up.svg`} style='transform: rotate(-90deg);'/>\n </button>\n <button\n onClick={() => { if (!VIEW.isPlaying) swap('frame', 'down') }}\n class='w-30 fl fl-center bord-dark-r'>\n <img src={`img/down.svg`} style='transform: rotate(-90deg);' />\n </button>\n <button\n onClick={() => { if (!VIEW.isPlaying) timelineManager({ type:'frame', request: 'delete' }) }}\n class='w-30 fl fl-center'>\n <img src={`img/delete.svg`} />\n </button>\n </div>\n </div>\n </div>\n <div class='fl bg-mid' style='height: calc(100% - 30px);'>\n <div id='layers' class='overflow hide-scroll' style='padding-bottom: 30px;'>\n <div class='bord-dark-r fl-col-reverse' style='width: 210px;'>\n {\n APP.layers.map((layer, li) => {\n return <div\n class='fl bord-dark-b h-30'\n style={`background: ${APP.layerActive === li ? 'rgb(100, 100, 100)' :''};`}>\n <button\n style={`${layer.hidden ? 'background: rgba(52, 152, 219, 255);' : ''}`}\n onClick={() => { layersEditHidden(li) }}\n class='w-30 h-30 fl fl-center bord-dark-b'>\n <img src={`img/${layer.hidden ? 'eye-active.svg' : 'eye.svg'}`} />\n </button>\n <button\n onClick={() => { setTargetCanvas(APP.frameActive, li) }}\n class='fl-1 txt-left'>\n <small style='font-size: 11px;'><b>{layer.name}</b></small>\n </button>\n </div>\n })\n }\n </div>\n </div>\n <div id='frames' class='fl-1 overflow hide-scroll' style='padding-bottom: 30px;'>\n <canvas id='timeline-canvas' style='cursor: pointer;' onClick={(e) => {\n const x = Math.floor(e.offsetX / 30)\n const y = (APP.layerCount - 1) - Math.floor(e.offsetY / 30)\n \n setTargetCanvas(x, y)\n }}/>\n </div>\n </div>\n </div>\n )\n}","import { h, render } from 'preact'\nimport { APP, VIEW } from '../state'\nimport { addToUndo } from '../undo-redo'\nimport { setRGB } from './color'\n\nconst getPoint = (imgDataArr, x, y, w, h) => {\n if (!imgDataArr) throw Error(`setPoint: ${imgDataArr} undefined`)\n if (!imgDataArr.length) throw Error(`setPoint: ${imgDataArr} not a valid array`)\n\n if (x >= 0 && x < w && y >= 0 && y < h) { // check bounds\n const i = (x + w * y) * 4\n return [\n imgDataArr[i + 0],\n imgDataArr[i + 1],\n imgDataArr[i + 2],\n imgDataArr[i + 3]\n ]\n }\n\n return [0, 0, 0, 0]\n}\n\nconst setPoint = (imgDataArr, x, y, w, h, color) => {\n if (!imgDataArr) throw Error(`setPoint: ${imgDataArr} undefined`)\n if (!imgDataArr.length) throw Error(`setPoint: ${imgDataArr} not a valid array`)\n \n if (x >= 0 && x < w && y >= 0 && y < h) { // check bounds\n const i = (x + w * y) * 4\n imgDataArr[i + 0] = color[0]\n imgDataArr[i + 1] = color[1]\n imgDataArr[i + 2] = color[2]\n imgDataArr[i + 3] = color[3]\n }\n}\n\nconst areRGBAsEqual = (c1, a, c2, b) => {\n return (\n c1[a + 0] === c2[b + 0] &&\n c1[a + 1] === c2[b + 1] &&\n c1[a + 2] === c2[b + 2] &&\n c1[a + 3] === c2[b + 3]\n )\n}\n\nconst getColorAtPixel = (data, x, y, w) => {\n const linearCord = (y * w + x) * 4\n\n return [\n data[linearCord + 0],\n data[linearCord + 1],\n data[linearCord + 2],\n data[linearCord + 3]\n ]\n}\n\nconst fill = (canvasImgData, startX, startY, w, h, color) => { // http:https://www.williammalone.com/articles/html5-canvas-javascript-paint-bucket-tool/\n var linear_cords = (startY * w + startX) * 4;\n\n var pixel_stack = [{ x: startX, y: startY }];\n var original_color = getColorAtPixel(canvasImgData, startX, startY, w);\n\n if (areRGBAsEqual(color, 0, original_color, 0)) {\n return\n }\n\n while (pixel_stack.length > 0) {\n var new_pixel = pixel_stack.shift();\n var x = new_pixel.x;\n var y = new_pixel.y;\n\n linear_cords = (y * w + x) * 4;\n\n while (\n y-- >= 0 &&\n canvasImgData[linear_cords + 0] === original_color[0] &&\n canvasImgData[linear_cords + 1] === original_color[1] &&\n canvasImgData[linear_cords + 2] === original_color[2] &&\n canvasImgData[linear_cords + 3] === original_color[3]) {\n linear_cords -= w * 4;\n }\n\n linear_cords += w * 4;\n y++;\n\n var reached_left = false;\n var reached_right = false;\n\n while (\n y++ < h &&\n canvasImgData[linear_cords + 0] === original_color[0] &&\n canvasImgData[linear_cords + 1] === original_color[1] &&\n canvasImgData[linear_cords + 2] === original_color[2] &&\n canvasImgData[linear_cords + 3] === original_color[3]\n ) {\n canvasImgData[linear_cords + 0] = color[0];\n canvasImgData[linear_cords + 1] = color[1];\n canvasImgData[linear_cords + 2] = color[2];\n canvasImgData[linear_cords + 3] = color[3];\n\n if (x > 0) {\n if (\n canvasImgData[linear_cords - 4 + 0] === original_color[0] &&\n canvasImgData[linear_cords - 4 + 1] === original_color[1] &&\n canvasImgData[linear_cords - 4 + 2] === original_color[2] &&\n canvasImgData[linear_cords - 4 + 3] === original_color[3]\n ) {\n if (!reached_left) {\n pixel_stack.push({ x: x - 1, y: y });\n reached_left = true;\n }\n } else if (reached_left) {\n reached_left = false;\n }\n }\n \n if (x < w - 1) {\n if (\n canvasImgData[linear_cords + 4 + 0] === original_color[0] &&\n canvasImgData[linear_cords + 4 + 1] === original_color[1] &&\n canvasImgData[linear_cords + 4 + 2] === original_color[2] &&\n canvasImgData[linear_cords + 4 + 3] === original_color[3]\n ) {\n if (!reached_right) {\n pixel_stack.push({ x: x + 1, y: y });\n reached_right = true;\n }\n } else if (reached_right) {\n reached_right = false;\n }\n }\n \n linear_cords += w * 4;\n }\n }\n}\n\nconst line = (startX, startY, endX, endY, func) => {\n let dx = Math.abs(endX - startX)\n let dy = Math.abs(endY - startY)\n\n let xDir = endX - startX >= 0 ? 1 : -1\n let yDir = endY - startY >= 0 ? 1 : -1\n \n let lineX = startX\n let lineY = startY\n\n let step = dx >= dy ? dx : dy\n\n dx = dx / step\n dy = dy / step\n \n let i = 0\n while (i < step) {\n func(Math.floor(lineX), Math.floor(lineY))\n\n lineX += (dx * xDir)\n lineY += (dy * yDir)\n i += 1\n }\n\n func(Math.floor(lineX), Math.floor(lineY))\n}\n\nconst circle = (xCenter, yCenter, currX, currY, func) => {\n let radius = Math.floor(Math.sqrt(Math.pow((currX - xCenter), 2) + Math.pow((currY - yCenter), 2)))\n\n if (radius <= 0) return\n\n let x = 0\n let y = radius\n let p = 1 - radius\n\n const circlePlot = () => {\n func(xCenter + x, yCenter + y)\n func(xCenter + y, yCenter + x)\n func(xCenter - x, yCenter + y)\n func(xCenter - y, yCenter + x)\n func(xCenter + x, yCenter - y)\n func(xCenter + y, yCenter - x)\n func(xCenter - x, yCenter - y)\n func(xCenter - y, yCenter - x)\n }\n\n // Plot first set of points\n circlePlot(xCenter, yCenter, x, y)\n\n while (x <= y) {\n x++\n if (p < 0) {\n p += 2 * x + 1 // Mid point is inside therefore y remains same\n } else { // Mid point is outside the circle so y decreases\n y--\n p += 2 * (x - y) + 1\n }\n\n circlePlot(xCenter, yCenter, x, y)\n }\n}\n\nconst squareFilled = (startX, startY, endX, endY, w, h, color, func) => {\n let points = []\n\n let dx = Math.abs(endX - startX)\n let dy = Math.abs(endY - startY)\n\n let xDir = endX - startX >= 0 ? 1 : -1\n let yDir = endY - startY >= 0 ? 1 : -1\n\n let lineX = startX\n let lineY = startY\n\n let xStep = 0\n let yStep = 0\n\n while (xStep <= dx) {\n yStep = 0\n lineY = startY\n\n while (yStep <= dy) {\n func(lineX, lineY)\n //points.push({ x: lineX, y: lineY })\n\n lineY += (1 * yDir)\n yStep += 1\n }\n\n lineX += (1 * xDir)\n xStep += 1\n }\n\n return points\n}\n\nconst square = (startX, startY, endX, endY, func) => {\n let dx = Math.abs(endX - startX)\n let dy = Math.abs(endY - startY)\n\n let xDir = endX - startX >= 0 ? 1 : -1\n let yDir = endY - startY >= 0 ? 1 : -1\n\n let lineX = startX\n let lineY = startY\n let i = 0\n\n func(lineX, lineY)\n\n while (i < dx) {\n lineX += (1 * xDir)\n func(lineX, startY)\n func(lineX, (startY + (dy * yDir)))\n i += 1\n }\n\n i = 0\n\n while (i < dy) {\n lineY += (1 * yDir)\n func(startX, lineY)\n func((startX + (dx * xDir)), lineY)\n i += 1\n }\n}\n\nexport const paintCanvas = (gestureEvent) => {\n // Reset\n VIEW.canvasPreview.ctx.clearRect(0, 0, APP.width, APP.height)\n VIEW.canvasPreview.imgData = VIEW.canvasPreview.ctx.getImageData(0, 0, APP.width, APP.height)\n\n // Whole or Selection\n const target = APP.layers[APP.layerActive].frames[APP.frameActive].data // or selection buffer\n const preview = VIEW.canvasPreview.imgData.data\n\n // Translate coordinates based on current screen position and canvas scale\n const bb = VIEW.canvasView.dom.getBoundingClientRect()\n\n const scaleX = bb.width / VIEW.canvasView.dom.width\n const scaleY = bb.height / VIEW.canvasView.dom.height\n\n const startX = Math.floor((VIEW.window.startX - bb.x) / scaleX)\n const startY = Math.floor((VIEW.window.startY - bb.y) / scaleY)\n const prevX = Math.floor((VIEW.window.prevX - bb.x) / scaleX)\n const prevY = Math.floor((VIEW.window.prevY - bb.y) / scaleY)\n const currX = Math.floor((VIEW.window.currX - bb.x) / scaleX)\n const currY = Math.floor((VIEW.window.currY - bb.y) / scaleY)\n\n const setBrushPoints = (canvas, x, y, w, h, color) => {\n squareFilled(x - VIEW.brushSize, y - VIEW.brushSize, x + VIEW.brushSize, y + VIEW.brushSize, w, h, color, (x, y) => {\n setPoint(canvas, x, y, w, h, color)\n })\n }\n\n if (gestureEvent === 'hover' && APP.tool !== 'eye-dropper' && APP.tool !== 'move') {\n setBrushPoints(preview, currX, currY, APP.width, APP.height, APP.tool !== 'eraser' ? APP.color.rgb : [0, 0, 0, 50])\n VIEW.render()\n\n return\n }\n\n // Setup Undo\n if (gestureEvent === 'start' && APP.tool !== 'eye-dropper') {\n const copy = new ImageData(APP.width, APP.height)\n copy.data.set(APP.layers[APP.layerActive].frames[APP.frameActive].data)\n const layerActive = APP.layerActive\n const frameActive = APP.frameActive\n \n addToUndo(APP.tool)\n\n VIEW.currUndoRef.undo = () => {\n APP.frameActive = frameActive\n APP.layerActive = layerActive\n APP.layers[layerActive].frames[frameActive].data.set(copy.data)\n }\n }\n \n // Eye dropper\n if (gestureEvent === 'end' && APP.tool === 'eye-dropper') {\n const color = getPoint(target, currX, currY, APP.width, APP.height)\n \n if (color[3] !== 0) {\n setRGB(color)\n }\n }\n\n // Fill\n if (gestureEvent === 'end' && APP.tool === 'fill') {\n fill(target, currX, currY, APP.width, APP.height, APP.color.rgb)\n }\n\n // Points\n if (APP.tool === 'pencil' || APP.tool === 'eraser') {\n if (APP.tool === 'eraser') {\n setBrushPoints(preview, currX, currY, APP.width, APP.height, [0, 0, 0, 50])\n }\n \n line(prevX, prevY, currX, currY, (x, y) => {\n setBrushPoints(target, x, y, APP.width, APP.height, APP.tool === 'pencil' ? APP.color.rgb : [0, 0, 0, 0])\n })\n }\n\n // Geometry\n if (APP.tool === 'line' || APP.tool === 'circle' || APP.tool === 'square') {\n const funcs = { 'line': line, 'circle': circle, 'square': square }\n \n funcs[APP.tool](startX, startY, currX, currY, (x, y) => {\n setBrushPoints(gestureEvent === 'start' || gestureEvent === 'resume' ? preview : target, x, y, APP.width, APP.height, APP.color.rgb)\n })\n }\n\n // Move\n if (APP.tool === 'move') {\n if (gestureEvent === 'start') {\n // Frame to Selection\n VIEW.canvasSelection.ctx.putImageData(APP.layers[APP.layerActive].frames[APP.frameActive], 0, 0)\n VIEW.canvasSelection.imgData = VIEW.canvasSelection.ctx.getImageData(0, 0, APP.width, APP.height)\n\n // Selection to Preview\n VIEW.canvasPreview.ctx.putImageData(VIEW.canvasSelection.imgData, 0, 0)\n VIEW.canvasPreview.imgData = VIEW.canvasPreview.ctx.getImageData(0, 0, APP.width, APP.height)\n\n // Clear main canvas\n APP.layers[APP.layerActive].frames[APP.frameActive] = new ImageData(APP.width, APP.height)\n }\n\n if (gestureEvent === 'resume') {\n // Selection to Preview\n VIEW.canvasPreview.ctx.putImageData(VIEW.canvasSelection.imgData, prevX - startX, prevY - startY)\n VIEW.canvasPreview.imgData = VIEW.canvasPreview.ctx.getImageData(0, 0, APP.width, APP.height)\n }\n\n if (gestureEvent === 'end') {\n // Selection to Preview\n VIEW.canvasPreview.ctx.putImageData(VIEW.canvasSelection.imgData, prevX - startX, prevY - startY)\n VIEW.canvasPreview.imgData = VIEW.canvasPreview.ctx.getImageData(0, 0, APP.width, APP.height)\n\n // Preview to Main\n APP.layers[APP.layerActive].frames[APP.frameActive] = VIEW.canvasPreview.ctx.getImageData(0, 0, APP.width, APP.height)\n\n VIEW.canvasPreview.ctx.clearRect(0, 0, APP.width, APP.height)\n VIEW.canvasPreview.imgData = VIEW.canvasPreview.ctx.getImageData(0, 0, APP.width, APP.height)\n }\n }\n\n // Setup Redo\n if (gestureEvent === 'end' && APP.tool !== 'eye-dropper') {\n const copy = new ImageData(APP.width, APP.height)\n copy.data.set(APP.layers[APP.layerActive].frames[APP.frameActive].data)\n const layerActive = APP.layerActive\n const frameActive = APP.frameActive\n\n VIEW.currUndoRef.redo = () => {\n APP.frameActive = frameActive\n APP.layerActive = layerActive\n APP.layers[layerActive].frames[frameActive].data.set(copy.data)\n }\n }\n\n VIEW.render()\n}\n\nexport const Canvas = () => {\n return <div id='canvas-outer-scroll' class={`overflow fl-1 cursor-${APP.tool}`}>\n <div id='canvas-inner-scroll' data-request='paintCanvas' data-hover='paintCanvas' class='fl fl-center fl-1' style='width: 1920px; height: 1920px;'>\n <canvas \n id='canvas-view'\n width={APP.width}\n height={APP.height}\n style='width: 1920px; height: 1920px; transform: scale(.25); pointer-events: none;' />\n </div> \n </div>\n}","import { h } from 'preact'\nimport { VIEW } from '../state'\nimport { undo, redo } from '../undo-redo'\n\nexport const Header = () => {\n return <div class='h-40 bg-light bord-dark-b fl'>\n <div class=\"fl w-full\">\n <div class=\"fl-1 fl\">\n <div class=\"fl bord-dark-r rel w-40\"\n onMouseLeave={() => {\n VIEW.file.open = false\n VIEW.render()\n }}>\n <button\n onClick={() => {\n VIEW.file.open = !VIEW.file.open\n VIEW.render()\n }}\n class=\"fl fl-center m-0 p-0 w-40\">\n <img src=\"img/bars.svg\" />\n </button>\n <div\n class=\"bg-light fl-column bord-dark abs z-5\"\n style={`visibility: ${VIEW.file.open ? 'visible' : 'hidden'}; top: 10px; left: 10px;`}>\n <button\n onClick={() => {\n VIEW.newCanvas.open = true\n VIEW.file.open = false\n VIEW.render()\n }}\n class=\"m-0 p-h-15 h-40 fl fl-center-y\">\n <img src={`img/new.svg`} />\n <small class=\"bold p-h-10\" style='text-transform: capitalize;'>New</small>\n </button>\n <button\n onClick={() => {\n VIEW.downloadCanvas.open = true\n VIEW.file.open = false\n VIEW.render()\n }}\n class=\"m-0 p-h-15 h-40 fl fl-center-y\">\n <img src={`img/download.svg`} />\n <small class=\"bold p-h-10\" style='text-transform: capitalize;'>download</small>\n </button>\n </div>\n </div>\n <div class='fl-1 fl fl-justify-center'>\n <button\n onClick={() => { undo() }}\n class=\"fl fl-center m-0 p-0 w-40 bord-dark-l bord-dark-r\">\n <img src=\"img/undo.svg\" />\n </button>\n <button\n onClick={() => { redo() }}\n class=\"fl fl-center m-0 p-0 w-40 bord-dark-r\">\n <img src=\"img/redo.svg\" />\n </button>\n </div>\n </div>\n <div class=\"fl\" style=\"max-width: 241px; min-width: 241px;\">\n \n </div>\n </div>\n </div>\n\n}","import { h, render, Component } from 'preact'\nimport { APP, VIEW, ENV, initCanvases, newData } from './state'\nimport { setupKeyListeners } from './keyboard'\n\n// Components\nimport { Color } from './components/color'\nimport { Timeline } from './components/timeline'\nimport { Canvas, paintCanvas } from './components/canvas'\nimport { Header } from './components/header'\nimport { Toolbar } from './components/toolbar'\n\nconst downloadCanvas = (e) => {\n const c = document.createElement('canvas')\n const ctx = c.getContext('2d')\n const height = APP.height * VIEW.downloadCanvas.size\n const width = APP.width * VIEW.downloadCanvas.size\n\n if (VIEW.downloadCanvas.type === 'frame') {\n c.width = width\n c.height = height\n\n ctx.webkitImageSmoothingEnabled = false\n ctx.mozImageSmoothingEnabled = false\n ctx.imageSmoothingEnabled = false\n\n APP.layers.forEach(layer => {\n VIEW.canvasTemp.ctx.putImageData(layer.frames[APP.frameActive], 0, 0)\n ctx.drawImage(VIEW.canvasView.dom, 0, 0, c.width, c.height)\n })\n\n const image = c.toDataURL('image/png').replace('image/png', 'image/octet-stream')\n e.target.setAttribute('href', image)\n }\n\n if (VIEW.downloadCanvas.type === 'spritesheet') {\n const totalWidth = APP.width * VIEW.downloadCanvas.size * APP.frameCount\n c.width = totalWidth\n c.height = height\n\n ctx.webkitImageSmoothingEnabled = false\n ctx.mozImageSmoothingEnabled = false\n ctx.imageSmoothingEnabled = false\n\n for (let frameI = 0; frameI < APP.frameCount; frameI++) {\n APP.layers.forEach(layer => {\n VIEW.canvasTemp.ctx.putImageData(layer.frames[frameI], 0, 0)\n ctx.drawImage(VIEW.canvasTemp.dom, frameI * width, 0, width, height)\n })\n }\n\n const image = c.toDataURL('image/png').replace('image/png', 'image/octet-stream')\n e.target.setAttribute('href', image)\n }\n\n if (VIEW.downloadCanvas.type === 'numgrid') {\n c.width = APP.width\n c.height = APP.height\n\n ctx.webkitImageSmoothingEnabled = false\n ctx.mozImageSmoothingEnabled = false\n ctx.imageSmoothingEnabled = false\n\n APP.layers.forEach(layer => {\n VIEW.canvasTemp.ctx.putImageData(layer.frames[APP.frameActive], 0, 0)\n ctx.drawImage(VIEW.canvasView.dom, 0, 0, c.width, c.height)\n })\n\n const finalImage = ctx.getImageData(0, 0, c.width, c.height)\n\n const areRGBAsEqual = (c1, a, c2, b) => {\n return (\n c1[a + 0] === c2[b + 0] &&\n c1[a + 1] === c2[b + 1] &&\n c1[a + 2] === c2[b + 2] &&\n c1[a + 3] === c2[b + 3]\n )\n }\n\n const newCanvas = document.createElement('canvas')\n newCanvas.width = APP.width * 40\n newCanvas.height = (APP.height * 40) + 40\n const newCanvasCtx = newCanvas.getContext('2d')\n\n let index = 0\n\n let includedColors = []\n\n for (let i = 0; i < finalImage.data.length; i += 4) {\n let x = index % APP.width\n let y = Math.floor(index / APP.height)\n\n APP.palette.forEach((color, paletteIndex) => {\n if (areRGBAsEqual(color, 0, [finalImage.data[i + 0], finalImage.data[i + 1], finalImage.data[i + 2], finalImage.data[i + 3]], 0)) {\n newCanvasCtx.fillStyle = 'rgba(5, 5, 5, .3)'\n newCanvasCtx.font = '20px serif'\n newCanvasCtx.fillText(paletteIndex, (x * 40) + 15, ((y + 2) * 40) - 15)\n newCanvasCtx.strokeStyle = 'rgba(5, 5, 5, .2)'\n newCanvasCtx.strokeRect(x * 40, (y + 1) * 40, 40, 40)\n\n console.log(paletteIndex)\n\n let includeColor = true\n \n includedColors.forEach(colorPrep => {\n if (areRGBAsEqual(colorPrep.color, 0, [finalImage.data[i + 0], finalImage.data[i + 1], finalImage.data[i + 2], finalImage.data[i + 3]], 0)) {\n includeColor = false\n }\n })\n\n if (includeColor) {\n includedColors.push({\n paletteIndex: paletteIndex,\n color: [finalImage.data[i + 0], finalImage.data[i + 1], finalImage.data[i + 2], finalImage.data[i + 3]]\n })\n }\n }\n })\n\n includedColors.forEach((includedColor, includedColorI)=> {\n newCanvasCtx.fillStyle = `rgba(${includedColor.color[0]}, ${includedColor.color[1]}, ${includedColor.color[2]}, 255)`\n newCanvasCtx.font = '20px serif';\n newCanvasCtx.fillText(includedColor.paletteIndex, (includedColorI * 80) + 15, 40);\n newCanvasCtx.fillRect((includedColorI * 80) + 40, 0, 40, 40)\n })\n\n index += 1\n }\n\n const image = newCanvas.toDataURL('image/png').replace('image/png', 'image/octet-stream')\n e.target.setAttribute('href', image)\n }\n}\n\nclass View extends Component{\n componentDidMount () {\n VIEW.render = () => {\n this.setState({}, () => {\n VIEW.canvasTemp.ctx.clearRect(0, 0, APP.width, APP.height)\n VIEW.canvasFinal.ctx.clearRect(0, 0, APP.width, APP.height)\n VIEW.canvasView.ctx.clearRect(0, 0, APP.width, APP.height)\n\n APP.layers.forEach((layer, i) => {\n VIEW.canvasView.ctx.globalAlpha = 1\n\n if (layer.hidden) return\n\n // Onion skinning\n if (APP.layerActive === i && VIEW.onionSkinning && !VIEW.isPlaying) {\n const framesAhead = 3\n const framesBehind = 3\n const framesTotal = framesBehind + framesAhead\n\n VIEW.canvasView.ctx.globalAlpha = .5\n\n for (let a = framesAhead - framesTotal; a < framesAhead; a++) {\n if (!layer.frames[APP.frameActive - a]) continue\n\n const target = layer.frames[APP.frameActive - a] \n VIEW.canvasTemp.ctx.putImageData(target, 0, 0)\n VIEW.canvasView.ctx.drawImage(VIEW.canvasTemp.dom, 0, 0)\n }\n }\n\n // Regular frame render\n VIEW.canvasView.ctx.globalAlpha = 1\n\n const target = layer.frames[APP.frameActive]\n\n for (let b = 0; b < 2; b++) { // For whatever reason safari makes me do this twice\n // Target Canvas\n VIEW.canvasTemp.ctx.putImageData(target, 0, 0)\n VIEW.canvasView.ctx.drawImage(VIEW.canvasTemp.dom, 0, 0)\n \n // Preview Canvas\n if (APP.layerActive === i) {\n VIEW.canvasTemp.ctx.putImageData(VIEW.canvasPreview.imgData, 0, 0)\n VIEW.canvasView.ctx.drawImage(VIEW.canvasTemp.dom, 0, 0)\n }\n }\n })\n \n const tile = 30\n\n VIEW.canvasTimeline.width = APP.frameCount * tile * 2\n VIEW.canvasTimeline.height = APP.layerCount * tile * 2\n VIEW.canvasTimeline.style.width = `${APP.frameCount * tile}px`\n VIEW.canvasTimeline.style.height = `${APP.layerCount * tile}px`\n const ctx = VIEW.canvasTimeline.getContext('2d')\n\n VIEW.canvasTimelineTemp.width = APP.frameCount * tile * 2\n VIEW.canvasTimelineTemp.height = APP.layerCount * tile * 2\n const ctxTemp = VIEW.canvasTimelineTemp.getContext('2d')\n\n APP.layers.map((layer, li) => {\n layer.frames.map((canvas, fi) => {\n const w = tile * 2\n const h = tile * 2\n const x = fi * w\n const y = li * h\n const BG = APP.frameActive === fi && APP.layerActive === li\n ? 'rgba(52, 152, 219, 255)'\n : (APP.frameActive === fi || APP.layerActive === li)\n ? 'rgba(100, 100, 100, 255)'\n : 'rgba(50, 50, 50, 255)'\n\n\n ctx.fillStyle = 'rgba(33, 33, 33, 255)'\n ctx.fillRect(x, ((APP.layerCount - 1) * h) - y, w, h)\n \n ctx.fillStyle = BG\n ctx.fillRect(x, ((APP.layerCount - 1) * h) - y, w - 2, h - 2)\n \n ctxTemp.putImageData(canvas, x + 5, (((APP.layerCount - 1) * h) - y) + 5, 0, 0, w - 13, h - 13) \n })\n })\n\n ctx.drawImage(VIEW.canvasTimelineTemp, 0, 0)\n })\n }\n\n initCanvases()\n\n this.funcs = { paintCanvas }\n\n // View control customization\n this.canvasOuterScroll = document.querySelector('#canvas-outer-scroll')\n this.canvasInnerScroll = document.querySelector('#canvas-inner-scroll')\n\n this.timelineScroll = {\n isSyncingLeftScroll: false,\n isSyncingRightScroll: false,\n leftDiv: document.querySelector('#layers'),\n rightDiv: document.querySelector('#frames')\n }\n\n this.timelineScrollController()\n this.centerCanvas()\n\n // Adding google analytics\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n\n gtag('config', 'UA-144729452-1');\n }\n\n centerCanvas () {\n const outerW = this.canvasOuterScroll.offsetWidth\n const innerW = this.canvasInnerScroll.offsetWidth\n const outerH = this.canvasOuterScroll.offsetHeight\n const innerH = this.canvasInnerScroll.offsetHeight\n \n this.canvasOuterScroll.scrollLeft = Math.floor((innerW - outerW) / 2) + 8\n this.canvasOuterScroll.scrollTop = Math.floor((innerH - outerH) / 2) + 8\n }\n\n timelineScrollController () {\n this.timelineScroll.leftDiv.addEventListener('scroll', (e) => {\n if (!this.timelineScroll.isSyncingLeftScroll) {\n this.timelineScroll.isSyncingRightScroll = true\n this.timelineScroll.rightDiv.scrollTop = e.target.scrollTop\n }\n this.timelineScroll.isSyncingLeftScroll = false\n })\n \n this.timelineScroll.rightDiv.addEventListener('scroll', (e) => {\n if (!this.timelineScroll.isSyncingRightScroll) {\n this.timelineScroll.isSyncingLeftScroll = true\n this.timelineScroll.leftDiv.scrollTop = e.target.scrollTop\n }\n this.timelineScroll.isSyncingRightScroll = false\n })\n }\n\n onGestureDown (e) {\n if (!VIEW.isPlaying) \n\n VIEW.window.request = e.target.dataset.request || ''\n VIEW.window.mouseDown = true\n VIEW.window.startX = (e.pageX === undefined) ? e.touches[0].pageX : e.pageX\n VIEW.window.startY = (e.pageY === undefined) ? e.touches[0].pageY : e.pageY\n VIEW.window.prevX = (e.pageX === undefined) ? e.touches[0].pageX : e.pageX\n VIEW.window.prevY = (e.pageY === undefined) ? e.touches[0].pageY : e.pageY\n VIEW.window.currX = (e.pageX === undefined) ? e.touches[0].pageX : e.pageX\n VIEW.window.currY = (e.pageY === undefined) ? e.touches[0].pageY : e.pageY\n\n if (VIEW.window.request) this.funcs[VIEW.window.request]('start')\n }\n \n onGestureDrag (e) {\n if (!VIEW.isPlaying) \n\n VIEW.window.prevX = VIEW.window.currX\n VIEW.window.prevY = VIEW.window.currY\n VIEW.window.currX = (e.pageX === undefined) ? e.touches[0].pageX : e.pageX\n VIEW.window.currY = (e.pageY === undefined) ? e.touches[0].pageY : e.pageY\n \n if (VIEW.window.request) this.funcs[VIEW.window.request]('resume')\n \n if (e.target.tagName !== 'INPUT') { // prevent block on input range elements\n e.preventDefault() // block pull to refresh on mobile browsers\n }\n }\n\n onGestureEnd (e) {\n if (!VIEW.isPlaying)\n\n if (VIEW.window.request) this.funcs[VIEW.window.request]('end')\n\n VIEW.window.request = ''\n VIEW.window.mouseDown = false\n VIEW.window.startX = 0\n VIEW.window.startY = 0\n VIEW.window.prevX = 0\n VIEW.window.prevY = 0\n VIEW.window.currX = 0\n VIEW.window.currY = 0\n }\n\n onGestureHover (e) {\n if (!VIEW.isPlaying)\n\n VIEW.window.prevX = VIEW.window.currX\n VIEW.window.prevY = VIEW.window.currY\n VIEW.window.currX = (e.pageX === undefined) ? e.touches[0].pageX : e.pageX\n VIEW.window.currY = (e.pageY === undefined) ? e.touches[0].pageY : e.pageY\n\n if (e.target.dataset.hover) this.funcs[e.target.dataset.hover]('hover')\n }\n \n dragOrHover (e) {\n if (VIEW.window.mouseDown) {\n this.onGestureDrag(e)\n } else {\n this.onGestureHover(e)\n }\n }\n\n render () {\n return (\n <div\n class='h-full relative'\n onMouseDown={(e) => { if (e.which === 1) this.onGestureDown(e); }}\n onMouseMove={(e) => { this.dragOrHover(e) }}\n onMouseUp={(e) => { this.onGestureEnd(e) }}\n onMouseLeave={(e) => { this.onGestureEnd(e) }}>\n {/* {ENV === 'DEV' && <div id='debugger' class='abs' style='right: 0px; left: 0px; width: 100px; height: 100px; background: white; z-index: 1000;'>\n <canvas />\n </div>} */}\n <Header />\n <div class='fl' style='height: calc(100% - 40px); '>\n <Toolbar />\n <div class='fl-column' style='width: calc(100% - 281px);'>\n <Canvas />\n <Timeline />\n </div>\n <div class='bg-light bord-dark-l fl-column' style=\"max-width: 241px; min-width: 241px;\">\n <div class='bord-dark-b fl-column overflow'>\n <div class='h-30 bg-mid bord-dark-b fl fl-center-y p-h-10'>\n <small><b>Tool</b></small>\n </div>\n <div class='fl-1 overflow'>\n <div class=\"fl fl-center p-10\">\n <small style=\"width: 150px; font-size: 11px;\">Brush Size</small>\n <div class='fl-1 select'>\n <select\n onInput={(e) => {\n VIEW.brushSize = parseInt(e.target.value)\n }}\n value={VIEW.brushSize}\n class=\"w-full\">\n {\n [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((size, i) => {\n return <option value={i}>{size}</option>\n })\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n <Color />\n <div class='bord-dark-b fl-column overflow' style='min-height: 249px; max-height: 249px;'>\n <div class='h-30 bg-mid bord-dark-b fl fl-center-y p-h-10'>\n <small><b>History</b></small>\n </div>\n <div class='fl-1 overflow'>\n {\n VIEW.undo.map((entry, i) => {\n return <button class={`p-h-10 h-30 w-full txt-left fl fl-center-y no-ptr ${VIEW.undoPos === i ? 'bg-xlight' : ''}`} >\n <img width='10' height='10' style='margin-right: 10px;' src={`img/${entry.icon}`} />\n <small style='text-transform: capitalize; font-size: 11px;'><b>{entry.action}</b></small>\n </button>\n })\n }\n </div>\n </div>\n </div>\n </div>\n {VIEW.newCanvas.open && <div class=\"abs top left w-full h-full fl fl-justify-center\" style=\"z-index: 10;\">\n <div class=\"w-full overflow-hidden\" style=\"max-width: 300px; margin-top: 175px;\">\n <div class=\"fl fl-center bg-mid bord-dark p-v-5\" style='border-top-right-radius: 5px; border-top-left-radius: 5px;'><small><b>New Canvas</b></small></div>\n <div class=\"p-10 bg-light bord-dark-l bord-dark-r bord-dark-b\" style='border-bottom-right-radius: 5px; border-bottom-left-radius: 5px;'>\n <div class=\"m-5 p-v-5\">\n <div class=\"fl fl-center\">\n <small class=\"bold\" style=\"width: 100px;\">Dimensions</small>\n <div class='fl-1 select'>\n <select\n onInput={(e) => {\n const val = e.target.value.split('x')\n VIEW.newCanvas.w = parseInt(val[0])\n VIEW.newCanvas.h = parseInt(val[1])\n }}\n class=\"w-full\">\n <option value=\"32x32\">32x32</option>\n <option value=\"50x50\">50x50</option>\n <option value=\"64x64\">64x64</option>\n <option value=\"100x100\">100x100</option>\n <option value=\"128x128\">128x128</option>\n </select>\n </div>\n </div>\n </div>\n <div class=\"fl\" style=\"padding-top: 5px;\">\n <button\n onClick={() => {\n VIEW.newCanvas.open = false\n VIEW.render()\n }}\n class=\"b-r-2 bold p-5 w-full bg-red m-5\">Cancel</button>\n <button\n onClick={() => {\n newData(VIEW.newCanvas.w, VIEW.newCanvas.h)\n VIEW.newCanvas.open = false\n VIEW.render()\n }}\n class=\"b-r-2 bold p-5 w-full bg-green m-5\">Confirm</button>\n </div>\n </div>\n </div>\n </div>}\n {VIEW.downloadCanvas.open && <div class=\"abs top left w-full h-full fl fl-center-x\" style=\"z-index: 10;\">\n <div class=\"w-full\" style=\"max-width: 300px; overflow: hidden; margin-top: 175px;\">\n <div class=\"fl fl-center bg-mid bord-dark p-v-5\" style='border-top-right-radius: 5px; border-top-left-radius: 5px;'><small class=\"bold\">Download</small></div>\n <div class=\"p-10 bg-light bord-dark-l bord-dark-r bord-dark-b\" style='border-bottom-right-radius: 5px; border-bottom-left-radius: 5px;'>\n <div class=\"m-5 p-v-5\">\n <div class=\"fl fl-center\">\n <small class=\"bold\" style=\"width: 100px;\">Type</small>\n <div class='fl-1 select'>\n <select\n onInput={(e) => {\n VIEW.downloadCanvas.type = e.target.value\n }}\n value={VIEW.downloadCanvas.type}\n id=\"config-download-size\" class=\"w-full\">\n <option value=\"frame\">Frame</option>\n <option value=\"spritesheet\">Spritesheet</option>\n <option value=\"numgrid\">Number Grid</option>\n </select>\n </div>\n </div>\n </div>\n <div class=\"m-5 p-v-5\">\n <div class=\"fl fl-center\">\n <small class=\"bold\" style=\"width: 100px;\">Size</small>\n <div class='fl-1 select'>\n <select\n onInput={(e) => {\n VIEW.downloadCanvas.size = parseInt(e.target.value)\n }}\n value={VIEW.downloadCanvas.size}\n id=\"config-download-size\" class=\"w-full\">\n <option value=\"2\">2x</option>\n <option value=\"4\">4x</option>\n <option value=\"8\">8x</option>\n <option value=\"16\">16x</option>\n <option value=\"32\">32x</option>\n <option value=\"64\">64x</option>\n </select>\n </div>\n </div>\n </div>\n <div class=\"fl\" style=\"padding-top: 5px;\">\n <button\n onClick={() => {\n VIEW.downloadCanvas.open = false\n VIEW.render()\n }}\n class=\"b-r-2 bold p-5 w-full bg-red m-5\">Cancel</button>\n <a\n onClick={(e) => {\n downloadCanvas(e)\n }}\n class=\"w-full m-5 clickable\" download=\"pixel-art.png\" style=\"display: inline-block;\">\n <button class=\"b-r-2 bold p-5 w-full bg-green no-ptr\">Download</button>\n </a>\n </div>\n </div>\n </div>\n </div>}\n </div>\n )\n }\n}\n\nconst loadData = ({ onLoaded, onError }) => {\n //console.time('startRead')\n localforage.getItem('pixel-art-app').then((stored) => {\n //console.timeEnd('startRead')\n for (const key in stored) {\n APP[key] = stored[key]\n }\n\n onLoaded()\n }).catch(function(err) {\n console.log(err)\n onError()\n });\n}\n\nconst saveData = () => {\n setTimeout(() => {\n console.time('startwrite')\n localforage.setItem('pixel-art-app', APP).then(function(value) {\n console.timeEnd('startwrite')\n }).catch(function(err) {\n console.log(err);\n });\n }, 50)\n}\n\nconst onProgramStart = () => {\n console.log('Program started.')\n\n newData(64, 64, true)\n render(<View />, document.body)\n \n loadData({\n onLoaded: () => {\n initCanvases()\n VIEW.render()\n },\n onError: () => {}\n })\n\n setupKeyListeners()\n \n window.addEventListener('keyup', saveData)\n window.addEventListener('mouseup', saveData)\n}\n\nwindow.addEventListener('load', onProgramStart)\nif (ENV === 'PROD') {\n window.addEventListener('beforeunload', (event) => {\n event.returnValue = `Are you sure you want to leave?`;\n });\n}\n\n"],"names":["const","let","h","copy","layerActive","frameActive","frameI","image","i","this","target","Component","render"],"mappings":"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C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAC,OAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAA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"}