├── out ├── .nojekyll ├── CNAME ├── grant.png ├── lion.jpg ├── slide.gif ├── favicon.png ├── _next │ └── static │ │ ├── webpack │ │ ├── 9e0670629ab590817e58.hot-update.json │ │ ├── af82b2314bb2eb2e5690.hot-update.json │ │ └── static │ │ │ └── development │ │ │ └── pages │ │ │ └── index.js.af82b2314bb2eb2e5690.hot-update.js.map │ │ ├── chunks │ │ ├── 0.js.map │ │ └── 0.js │ │ ├── runtime │ │ ├── webpack-035ac2b14bde147cb4a8.js │ │ ├── main-553e7a275e5db1f1fbcc.js │ │ ├── webpack.js.map │ │ └── webpack.js │ │ ├── DFuXdNRBO6U96luMJcwPP │ │ └── pages │ │ │ ├── _app.js │ │ │ └── _error.js │ │ ├── nvqASzNFYQRVBCbRyQDWM │ │ └── pages │ │ │ ├── _app.js │ │ │ └── _error.js │ │ └── xUuVabgqcU4uw95IL-8E3 │ │ └── pages │ │ ├── _app.js │ │ └── _error.js ├── slide-share.png ├── IBMPlexMono-Regular.woff ├── IBMPlexMono-Regular.woff2 ├── 404.html └── index.html ├── public ├── lion.jpg ├── favicon.png ├── grant.png ├── slide.gif ├── slide-share.png ├── IBMPlexMono-Regular.woff └── IBMPlexMono-Regular.woff2 ├── readme.md ├── .gitignore ├── package.json ├── components └── nav.js └── pages ├── _document.js └── index.js /out/.nojekyll: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /out/CNAME: -------------------------------------------------------------------------------- 1 | slide.constraint.systems 2 | -------------------------------------------------------------------------------- /out/grant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/out/grant.png -------------------------------------------------------------------------------- /out/lion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/out/lion.jpg -------------------------------------------------------------------------------- /out/slide.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/out/slide.gif -------------------------------------------------------------------------------- /out/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/out/favicon.png -------------------------------------------------------------------------------- /public/lion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/public/lion.jpg -------------------------------------------------------------------------------- /out/_next/static/webpack/9e0670629ab590817e58.hot-update.json: -------------------------------------------------------------------------------- 1 | {"h":"af82b2314bb2eb2e5690","c":{}} -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/public/favicon.png -------------------------------------------------------------------------------- /public/grant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/public/grant.png -------------------------------------------------------------------------------- /public/slide.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/public/slide.gif -------------------------------------------------------------------------------- /out/slide-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/out/slide-share.png -------------------------------------------------------------------------------- /public/slide-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/public/slide-share.png -------------------------------------------------------------------------------- /out/IBMPlexMono-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/out/IBMPlexMono-Regular.woff -------------------------------------------------------------------------------- /out/IBMPlexMono-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/out/IBMPlexMono-Regular.woff2 -------------------------------------------------------------------------------- /public/IBMPlexMono-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/public/IBMPlexMono-Regular.woff -------------------------------------------------------------------------------- /public/IBMPlexMono-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/constraint-systems/slide/master/public/IBMPlexMono-Regular.woff2 -------------------------------------------------------------------------------- /out/_next/static/chunks/0.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/0.js","sources":[],"mappings":";;;;;;;;;;;;;;A","sourceRoot":""} -------------------------------------------------------------------------------- /out/_next/static/webpack/af82b2314bb2eb2e5690.hot-update.json: -------------------------------------------------------------------------------- 1 | {"h":"0e7fb358a19ed2d72282","c":{"static/development/pages/index.js":true}} -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Slide 2 | 3 | Divide and slide-stretch an image using keyboard controls. 4 | 5 | 8 | 9 | https://slide.constraint.systems/ 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | 14 | # production 15 | /build 16 | 17 | # misc 18 | .DS_Store 19 | .env* 20 | 21 | # debug 22 | npm-debug.log* 23 | yarn-debug.log* 24 | yarn-error.log* 25 | -------------------------------------------------------------------------------- /out/_next/static/chunks/0.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"] = window["webpackJsonp"] || []).push([[0],{ 2 | 3 | /***/ "./node_modules/next/dist/client/dev/noop.js": 4 | /*!***************************************************!*\ 5 | !*** ./node_modules/next/dist/client/dev/noop.js ***! 6 | \***************************************************/ 7 | /*! no static exports found */ 8 | /***/ (function(module, exports, __webpack_require__) { 9 | 10 | "use strict"; 11 | 12 | 13 | /***/ }) 14 | 15 | }]); 16 | //# sourceMappingURL=0.js.map -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slide", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "deploy": "next build && next export && touch out/.nojekyll && touch out/CNAME && echo \"slide.constraint.systems\" >> out/CNAME && git add out/ && git commit -m \"Deploy to gh-pages\" && git subtree push --prefix out origin gh-pages" 10 | }, 11 | "dependencies": { 12 | "lodash": "^4.17.15", 13 | "next": "9.1.1", 14 | "react": "16.10.2", 15 | "react-dom": "16.10.2" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /components/nav.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Link from 'next/link' 3 | 4 | const links = [ 5 | { href: 'https://zeit.co/now', label: 'ZEIT' }, 6 | { href: 'https://github.com/zeit/next.js', label: 'GitHub' } 7 | ].map(link => { 8 | link.key = `nav-link-${link.href}-${link.label}` 9 | return link 10 | }) 11 | 12 | const Nav = () => ( 13 | 54 | ) 55 | 56 | export default Nav 57 | -------------------------------------------------------------------------------- /pages/_document.js: -------------------------------------------------------------------------------- 1 | import Document, { Html, Head, Main, NextScript } from 'next/document'; 2 | 3 | class MyDocument extends Document { 4 | static async getInitialProps(ctx) { 5 | const initialProps = await Document.getInitialProps(ctx); 6 | return { ...initialProps }; 7 | } 8 | 9 | render() { 10 | let title = 'Slide'; 11 | let description = 12 | 'Divide and slide-stretch an image using keyboard controls.'; 13 | return ( 14 | 15 | 16 | 17 | 21 | 22 | {title} 23 | 24 | 25 | 26 | 30 | 31 | 32 | 33 | 34 |
35 | 36 | 37 | 38 | ); 39 | } 40 | } 41 | 42 | export default MyDocument; 43 | -------------------------------------------------------------------------------- /out/_next/static/runtime/webpack-035ac2b14bde147cb4a8.js: -------------------------------------------------------------------------------- 1 | !function(e){function r(r){for(var n,l,f=r[0],i=r[1],a=r[2],c=0,s=[];cSlide

404

This page could not be found.

-------------------------------------------------------------------------------- /out/index.html: -------------------------------------------------------------------------------- 1 | Slide
Divide and slide-stretch an image using keyboard controls.
MOVE DIVIDER
h move ←  l move →  hold shift to move by 10
SELECT DIVIDER
d select ←  f select →  hold shift to select multiple dividers
DISTRIBUTE
e distribute selected dividers evenly across the selected area
ADD & REMOVE
a add divider  backspace delete divider
IMAGE
To add an image you can paste, drop, or press o to open a file dialog.
IMAGE SIZE
z decrease height  x increase height
c decrease output width  v increase output width
SPECIAL
w save as png  b dark bg  ? help
-------------------------------------------------------------------------------- /out/_next/static/runtime/main-553e7a275e5db1f1fbcc.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"/h46":function(e,t,r){r("cHUd")("Map")},"0IRE":function(e,t,r){"use strict";var n=r("LX0d"),a=r("/HRN"),o=r("WaGi");r("hfKm")(t,"__esModule",{value:!0});var u=function(){function e(t){a(this,e),this.data=new n(t)}return o(e,[{key:"getData",value:function(){return this.data}},{key:"get",value:function(e){return this.data.get(e)}},{key:"set",value:function(e,t){this.data.set(e,t)}},{key:"overwrite",value:function(e){this.data=new n(e)}}]),e}();t.DataManager=u},BMP1:function(e,t,r){"use strict";var n=r("5Uuq")(r("IKlv"));window.next=n,(0,n.default)().catch(function(e){console.error(e.message+"\n"+e.stack)})},DqTX:function(e,t,r){"use strict";var n=r("/HRN"),a=r("WaGi"),o=r("KI45");t.__esModule=!0,t.default=void 0;var u=o(r("eVuF")),i={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},c=function(){function e(){var t=this;n(this,e),this.updateHead=function(e){var r=t.updatePromise=u.default.resolve().then(function(){r===t.updatePromise&&(t.updatePromise=null,t.doUpdateHead(e))})},this.updatePromise=null}return a(e,[{key:"doUpdateHead",value:function(e){var t=this,r={};e.forEach(function(e){var t=r[e.type]||[];t.push(e),r[e.type]=t}),this.updateTitle(r.title?r.title[0]:null);["meta","base","link","style","script"].forEach(function(e){t.updateElements(e,r[e]||[])})}},{key:"updateTitle",value:function(e){var t="";if(e){var r=e.props.children;t="string"===typeof r?r:r.join("")}t!==document.title&&(document.title=t)}},{key:"updateElements",value:function(e,t){var r=document.getElementsByTagName("head")[0],n=r.querySelector("meta[name=next-head-count]");for(var a=Number(n.content),o=[],u=0,i=n.previousElementSibling;u0?arguments[0]:void 0)}},{get:function(e){var t=n.getEntry(a(this,"Map"),e);return t&&t.v},set:function(e,t){return n.def(a(this,"Map"),0===e?0:e,t)}},n,!0)},qArv:function(e,t,r){"use strict";var n=r("hfKm"),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t};n(t,"__esModule",{value:!0});var o=a(r("q1tI"));t.DataManagerContext=o.createContext(null)},yLiY:function(e,t,r){"use strict";var n;r("hfKm")(t,"__esModule",{value:!0}),t.default=function(){return n},t.setConfig=function(e){n=e}},zmvN:function(e,t,r){"use strict";var n=r("ln6h"),a=r("/HRN"),o=r("WaGi"),u=r("KI45");t.__esModule=!0,t.default=void 0;var i=u(r("+oT+")),c=u(r("eVuF")),s=u(r("dZ6Y"));var p=function(e){try{return e.relList.supports("preload")}catch(t){return!1}}(document.createElement("link"));function f(e){var t=document.createElement("link");t.rel="preload",t.crossOrigin=void 0,t.href=encodeURI(e),t.as="script",document.head.appendChild(t)}var d=function(){function e(t,r){a(this,e),this.buildId=t,this.assetPrefix=r,this.pageCache={},this.pageRegisterEvents=(0,s.default)(),this.loadingRoutes={}}return o(e,[{key:"getDependencies",value:function(e){return this.promisedBuildManifest.then(function(t){return t[e]&&t[e].map(function(e){return"/_next/"+e})||[]})}},{key:"normalizeRoute",value:function(e){if("/"!==e[0])throw new Error('Route name should start with a "/", got "'+e+'"');return"/"===(e=e.replace(/\/index$/,"/"))?e:e.replace(/\/$/,"")}},{key:"loadPage",value:function(e){return this.loadPageScript(e).then(function(e){return e.page})}},{key:"loadPageScript",value:function(e){var t=this;return e=this.normalizeRoute(e),new c.default(function(r,n){var a=t.pageCache[e];if(a){var o=a.error,u=a.page,i=a.mod;o?n(o):r({page:u,mod:i})}else t.pageRegisterEvents.on(e,function a(o){var u=o.error,i=o.page,c=o.mod;t.pageRegisterEvents.off(e,a),delete t.loadingRoutes[e],u?n(u):r({page:i,mod:c})}),document.querySelector('script[data-next-page="'+e+'"]')||t.loadingRoutes[e]||(t.loadRoute(e),t.loadingRoutes[e]=!0)})}},{key:"loadRoute",value:function(e){var t=this;return(0,i.default)(n.mark(function r(){var a,o;return n.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:e=t.normalizeRoute(e),a="/"===e?"/index.js":e+".js",o=t.assetPrefix+"/_next/static/"+encodeURIComponent(t.buildId)+"/pages"+a,t.loadScript(o,e,!0);case 4:case"end":return r.stop()}},r)}))()}},{key:"loadScript",value:function(e,t,r){var n=this,a=document.createElement("script");a.crossOrigin=void 0,a.src=encodeURI(e),a.onerror=function(){var r=new Error("Error loading script "+e);r.code="PAGE_LOAD_ERROR",n.pageRegisterEvents.emit(t,{error:r})},document.body.appendChild(a)}},{key:"registerPage",value:function(e,t){var r=this;!function(){try{var n=t(),a={page:n.default||n,mod:n};r.pageCache[e]=a,r.pageRegisterEvents.emit(e,a)}catch(o){r.pageCache[e]={error:o},r.pageRegisterEvents.emit(e,{error:o})}}()}},{key:"prefetch",value:function(e,t){var r=this;return(0,i.default)(n.mark(function a(){var o,u,i;return n.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(e=r.normalizeRoute(e),o=("/"===e?"/index":e)+".js",u=t?e:r.assetPrefix+"/_next/static/"+encodeURIComponent(r.buildId)+"/pages"+o,!document.querySelector('link[rel="preload"][href^="'+u+'"], script[data-next-page="'+e+'"]')){n.next=6;break}return n.abrupt("return");case 6:if(!(i=navigator.connection)){n.next=9;break}if(-1===(i.effectiveType||"").indexOf("2g")&&!i.saveData){n.next=9;break}return n.abrupt("return");case 9:n.next=15;break;case 13:n.t0=function(e){r.prefetch(e,!0)},n.sent.forEach(n.t0);case 15:if(!p){n.next=18;break}return f(u),n.abrupt("return");case 18:if(!t){n.next=20;break}return n.abrupt("return");case 20:if("complete"!==document.readyState){n.next=24;break}return n.abrupt("return",r.loadPage(e).catch(function(){}));case 24:return n.abrupt("return",new c.default(function(t){window.addEventListener("load",function(){r.loadPage(e).then(function(){return t()},function(){return t()})})}));case 25:case"end":return n.stop()}},a)}))()}}]),e}();t.default=d}},[["BMP1",1,0]]]); -------------------------------------------------------------------------------- /pages/index.js: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect, useRef, useCallback } from 'react'; 2 | import Head from 'next/head'; 3 | import * as _ from 'lodash'; 4 | 5 | let nec_padding = 100; 6 | let max_height = 600; 7 | 8 | let fs = 14; 9 | let lh = 1.5; 10 | let rlh = 14 * lh; 11 | 12 | let help = true; 13 | let maxch = '74ch'; 14 | 15 | const Home = () => { 16 | let [color, setColor] = useState('light'); 17 | let dividersr = useRef([119]); 18 | let activer = useRef([0]); 19 | let keymapr = useRef({}); 20 | let pivot = useRef(0); 21 | let ireadoutr = useRef('readout'); 22 | let dreadoutr = useRef('readout'); 23 | let oreadoutr = useRef('readout'); 24 | let iref = useRef(null); 25 | let dref = useRef(null); 26 | let rref = useRef(null); 27 | let icontainer = useRef(null); 28 | let ocontainer = useRef(null); 29 | let ow = useRef(null); 30 | let oh = useRef(null); 31 | let image = useRef(null); 32 | let [help, setHelp] = useState(true); 33 | 34 | function KeyTip(letter, color) { 35 | return ( 36 | { 39 | keymapr.current[letter] = true; 40 | keyAction(letter, false); 41 | setTimeout(() => { 42 | keymapr.current[letter] = false; 43 | }, 300); 44 | }} 45 | style={{ 46 | outline: color === 'dark' ? 'solid 1px white' : 'solid 1px black', 47 | paddingLeft: '0.5ch', 48 | paddingRight: '0.5ch', 49 | textAlign: 'center', 50 | display: 'inline-block', 51 | userSelect: 'none', 52 | cursor: 'default', 53 | }} 54 | > 55 | {letter === ' ' ? 'spacebar' : letter} 56 | 57 | ); 58 | } 59 | 60 | function initCanvas(ref, pw, ph) { 61 | let c = ref.current; 62 | let ctx = c.getContext('2d'); 63 | 64 | let dpr = window.devicePixelRatio || 1; 65 | dpr = 1; 66 | // cancel dpr because it is getting too weird 67 | 68 | c.width = pw * dpr; 69 | c.height = ph * dpr; 70 | c.style.width = pw + 'px'; 71 | c.style.height = ph + 'px'; 72 | } 73 | 74 | function onPaste(e) { 75 | e.preventDefault(); 76 | e.stopPropagation(); 77 | for (const item of e.clipboardData.items) { 78 | if (item.type.indexOf('image') < 0) { 79 | continue; 80 | } 81 | let file = item.getAsFile(); 82 | let src = URL.createObjectURL(file); 83 | initImage(src); 84 | } 85 | } 86 | 87 | function onDrop(e) { 88 | e.preventDefault(); 89 | e.stopPropagation(); 90 | let file = e.dataTransfer.files[0]; 91 | let filename = file.path ? file.path : file.name ? file.name : ''; 92 | let src = URL.createObjectURL(file); 93 | initImage(src); 94 | } 95 | 96 | function onDrag(e) { 97 | e.stopPropagation(); 98 | e.preventDefault(); 99 | e.dataTransfer.dropEffect = 'copy'; 100 | } 101 | 102 | function drawDividers() { 103 | let dpr = window.devicePixelRatio || 1; 104 | dpr = 1; 105 | let dividers = dividersr.current; 106 | let active = activer.current; 107 | let c = dref.current; 108 | let w = c.offsetWidth; 109 | let h = c.offsetHeight; 110 | let ctx = c.getContext('2d'); 111 | ctx.clearRect(0, 0, w * dpr, h * dpr); 112 | ctx.strokeStyle = '#888'; 113 | for (let d = 0; d < dividers.length; d++) { 114 | let x = dividers[d]; 115 | if (!active.includes(d)) { 116 | ctx.strokeRect(x, 0, 1, h); 117 | } 118 | } 119 | // always draw active on top 120 | for (let a = 0; a < active.length; a++) { 121 | let act = active[a]; 122 | ctx.strokeStyle = 'magenta'; 123 | ctx.strokeRect(dividers[act] * dpr, 0, 1 * dpr, h * dpr); 124 | } 125 | } 126 | 127 | function setResponseWidth(width) { 128 | let ic = iref.current; 129 | let ph = ic.offsetHeight; 130 | 131 | initCanvas(rref, width, ph); 132 | ocontainer.current.style.width = `calc(${width}px + 4ch)`; 133 | respond(); 134 | } 135 | 136 | function initResponse() { 137 | setResponseWidth(iref.current.offsetWidth + 200); 138 | } 139 | 140 | function respond() { 141 | let dividers = dividersr.current; 142 | let dpr = window.devicePixelRatio || 1; 143 | dpr = 1; 144 | let w = rref.current.offsetWidth; 145 | 146 | let ic = iref.current; 147 | 148 | let iw = ic.offsetWidth; 149 | let ih = ic.offsetHeight; 150 | 151 | let ph = ic.offsetHeight; 152 | 153 | let c = rref.current; 154 | let ctx = c.getContext('2d'); 155 | 156 | let diff = w - iw; 157 | let diffw = diff / dividers.length; 158 | 159 | ctx.clearRect(0, 0, w, ph); 160 | 161 | let sorted = dividers.slice(); 162 | sorted = sorted.sort((a, b) => a - b); 163 | 164 | for (let d = 0; d < sorted.length; d++) { 165 | let px = d === 0 ? 0 : sorted[d - 1]; 166 | 167 | let dx = sorted[d]; 168 | // slice 169 | ctx.drawImage( 170 | ic, 171 | px * dpr, 172 | 0, 173 | (dx - px) * dpr, 174 | ph * dpr, 175 | (px + diffw * d) * dpr, 176 | 0 * dpr, 177 | (dx - px) * dpr, 178 | ph * dpr 179 | ); 180 | // extend 181 | for (let e = 0; e < Math.ceil(diffw * dpr); e++) { 182 | ctx.drawImage( 183 | ic, 184 | dx * dpr, 185 | 0, 186 | 1, 187 | ph * dpr, 188 | (dx + diffw * d) * dpr + e, 189 | 0 * dpr, 190 | 1, 191 | ph * dpr 192 | ); 193 | } 194 | 195 | if (d === dividers.length - 1) { 196 | ctx.drawImage( 197 | ic, 198 | dx * dpr, 199 | 0, 200 | (iw - dx) * dpr, 201 | ph * dpr, 202 | (dx + diffw * (d + 1)) * dpr, 203 | 0 * dpr, 204 | (iw - dx) * dpr, 205 | ph * dpr 206 | ); 207 | } 208 | } 209 | 210 | let active = activer.current; 211 | let dividersa = dividers.map((n, i) => { 212 | return { 213 | x: n, 214 | active: active.includes(i) ? true : false, 215 | pivot: pivot.current === i, 216 | }; 217 | }); 218 | let sorted_d = _.sortBy(dividersa, 'x'); 219 | let div_string = sorted_d 220 | .map(o => 221 | o.active 222 | ? o.pivot 223 | ? `${ 224 | o.x 225 | }` 226 | : `${o.x}` 227 | : o.x 228 | ) 229 | .join(' '); 230 | ireadoutr.current.innerHTML = `${iw}x${ph} (original:${ow.current}x${ 231 | oh.current 232 | })`; 233 | dreadoutr.current.innerHTML = `${dividers.length}|${diffw.toFixed( 234 | 2 235 | )}| ${div_string}`; 236 | oreadoutr.current.innerHTML = `${rref.current.offsetWidth}x${ 237 | rref.current.offsetHeight 238 | }`; 239 | } 240 | 241 | function setHeight(height) { 242 | let w = window.innerWidth; 243 | let h = window.innerHeight; 244 | 245 | let ia = ow.current / oh.current; 246 | 247 | let prev_width = iref.current.offsetWidth; 248 | let ph = height; 249 | 250 | let pw = Math.round(ph * ia); 251 | initCanvas(iref, pw, ph); 252 | initCanvas(dref, pw, ph); 253 | 254 | icontainer.current.style.width = `calc(${pw}px + 4ch)`; 255 | 256 | let dpr = window.devicePixelRatio || 1; 257 | dpr = 1; 258 | iref.current 259 | .getContext('2d') 260 | .drawImage(image.current, 0, 0, pw * dpr, ph * dpr); 261 | 262 | // tranlsate dividers 263 | for (let d = 0; d < dividersr.current.length; d++) { 264 | let x = dividersr.current[d]; 265 | let new_x = Math.round((x / prev_width) * pw); 266 | dividersr.current[d] = new_x; 267 | } 268 | 269 | drawDividers(); 270 | } 271 | 272 | function initImage(src) { 273 | if (iref.current !== null) { 274 | rref.current.getContext('2d').imageSmoothingEnabled = false; 275 | 276 | let w = window.innerWidth; 277 | let h = window.innerHeight; 278 | 279 | let img = new Image(); 280 | img.onload = () => { 281 | let iw = img.width; 282 | let ih = img.height; 283 | ow.current = iw; 284 | oh.current = ih; 285 | image.current = img; 286 | setHeight(Math.min(ih, max_height)); 287 | initResponse(); 288 | }; 289 | img.src = src; 290 | } 291 | } 292 | 293 | function getSorted() { 294 | let active = activer.current; 295 | let to_sort = dividersr.current.map((x, i) => { 296 | return { x, a: active.includes(i), oi: i }; 297 | }); 298 | let sorted = _.sortBy(to_sort, 'x', 'asc'); 299 | sorted = sorted.map((o, i) => { 300 | return { ...o, si: i }; 301 | }); 302 | return sorted; 303 | } 304 | 305 | function keyAction(letter, repeat) { 306 | let k = keymapr.current; 307 | let dividers = dividersr.current; 308 | let active = activer.current; 309 | let iw = iref.current.offsetWidth; 310 | 311 | let sorted = getSorted(); 312 | let sortie = sorted.filter(o => o.a); 313 | 314 | let inc = 1; 315 | if (k['shift']) inc = 10; 316 | 317 | if (letter === 'b' && !repeat) { 318 | setColor(function(prevState) { 319 | return prevState === 'light' ? 'dark' : 'light'; 320 | }); 321 | } else if (letter === 'w' && !repeat) { 322 | let link = document.createElement('a'); 323 | 324 | var revokeURL = function() { 325 | let me = this; 326 | requestAnimationFrame(function() { 327 | URL.revokeObjectURL(me.href); 328 | me.href = null; 329 | }); 330 | this.removeEventListener('click', revokeURL); 331 | }; 332 | 333 | rref.current.toBlob(function(blob) { 334 | link.setAttribute('download', 'slide.png'); 335 | link.setAttribute('href', URL.createObjectURL(blob)); 336 | link.addEventListener('click', revokeURL); 337 | link.dispatchEvent( 338 | new MouseEvent(`click`, { 339 | bubbles: true, 340 | cancelable: true, 341 | view: window, 342 | }) 343 | ); 344 | }); 345 | } else if (letter === '?') { 346 | setHelp(prevState => { 347 | return !prevState; 348 | }); 349 | } else if (letter === 'o' && !repeat) { 350 | let input = document.createElement('input'); 351 | input.setAttribute('type', 'file'); 352 | input.dispatchEvent( 353 | new MouseEvent(`click`, { 354 | bubbles: true, 355 | cancelable: true, 356 | view: window, 357 | }) 358 | ); 359 | 360 | function handleChange(e) { 361 | for (const item of this.files) { 362 | if (item.type.indexOf('image') < 0) { 363 | continue; 364 | } 365 | let src = URL.createObjectURL(item); 366 | initImage(src); 367 | } 368 | this.removeEventListener('change', handleChange); 369 | } 370 | input.addEventListener('change', handleChange); 371 | } else if (letter === 'h') { 372 | let left_a = sortie[0]; 373 | let new_left_a_x = left_a.x - inc; 374 | if (new_left_a_x < 0) { 375 | let offsets = sortie.map(o => o.x - left_a.x); 376 | for (let a = 0; a < sortie.length; a++) { 377 | let act = sortie[a]; 378 | dividers[act.oi] = offsets[a]; 379 | } 380 | } else { 381 | for (let act of sortie) { 382 | dividers[act.oi] -= inc; 383 | } 384 | } 385 | } else if (letter === 'l') { 386 | let right_a = sortie[sortie.length - 1]; 387 | let new_right_a_x = right_a.x + inc; 388 | if (new_right_a_x > iw - 2) { 389 | let offsets = sortie.map(o => o.x - right_a.x - 1); 390 | for (let a = 0; a < sortie.length; a++) { 391 | let act = sortie[a]; 392 | dividers[act.oi] = iw + offsets[a]; 393 | } 394 | } else { 395 | for (let act of sortie) { 396 | dividers[act.oi] += inc; 397 | } 398 | } 399 | } else if (letter === 'f') { 400 | let left_a = sortie[0]; 401 | let right_a = sortie[sortie.length - 1]; 402 | 403 | if (k['shift']) { 404 | if (left_a.x === dividers[pivot.current]) { 405 | // adding 406 | if (right_a.si !== dividers.length - 1) { 407 | let next_index = sorted[right_a.si + 1].oi; 408 | activer.current.push(next_index); 409 | } 410 | } else { 411 | // subtracting 412 | activer.current = active.slice(0, -1); 413 | } 414 | } else { 415 | if (active.length > 1) { 416 | pivot.current = right_a.oi; 417 | activer.current = [right_a.oi]; 418 | } else { 419 | if (right_a.si !== dividers.length - 1) { 420 | let next_index = sorted[right_a.si + 1].oi; 421 | pivot.current = next_index; 422 | activer.current = [next_index]; 423 | } 424 | } 425 | } 426 | } else if (letter === 'd') { 427 | let left_a = sortie[0]; 428 | let right_a = sortie[sortie.length - 1]; 429 | if (k['shift']) { 430 | if (right_a.x === dividers[pivot.current]) { 431 | // adding 432 | if (left_a.si !== 0) { 433 | let next_index = sorted[left_a.si - 1].oi; 434 | activer.current.push(next_index); 435 | } 436 | } else { 437 | // subtracting 438 | activer.current = active.slice(0, -1); 439 | } 440 | } else { 441 | if (active.length > 1) { 442 | pivot.current = left_a.oi; 443 | activer.current = [left_a.oi]; 444 | } else { 445 | if (left_a.si !== 0) { 446 | let next_index = sorted[left_a.si - 1].oi; 447 | pivot.current = next_index; 448 | activer.current = [next_index]; 449 | } 450 | } 451 | } 452 | } else if (letter === 'a') { 453 | let left_a = sortie[0]; 454 | let right_a = sortie[sortie.length - 1]; 455 | let iw = iref.current.offsetWidth; 456 | let new_x = right_a.x + 5; 457 | if (new_x > iw) new_x = iw - 1; 458 | dividersr.current.push(new_x); 459 | if (k['shift']) { 460 | pivot.current = left_a.oi; 461 | activer.current.push(dividersr.current.length - 1); 462 | } else { 463 | pivot.current = dividersr.current.length - 1; 464 | activer.current = [dividersr.current.length - 1]; 465 | } 466 | } else if (letter === 'e') { 467 | if (active.length > 1) { 468 | let left_a = sortie[0]; 469 | let right_a = sortie[sortie.length - 1]; 470 | 471 | let space = right_a.x - left_a.x; 472 | let diff = Math.floor(space / (sortie.length - 1)); 473 | 474 | for (let s = 0; s < sortie.length; s++) { 475 | let o = sortie[s]; 476 | dividersr.current[o.oi] = left_a.x + diff * s; 477 | } 478 | } 479 | } else if (letter === 'x') { 480 | let new_height = iref.current.offsetHeight + inc; 481 | setHeight(new_height); 482 | if (rref.current.offsetWidth / new_height < ow.current / oh.current) { 483 | let new_width = new_height / (ow.current / oh.current); 484 | initCanvas(rref, new_width, new_height); 485 | } else { 486 | initCanvas(rref, rref.current.offsetWidth, new_height); 487 | } 488 | } else if (letter === 'z') { 489 | let new_height = iref.current.offsetHeight - inc; 490 | setHeight(new_height); 491 | initCanvas(rref, rref.current.offsetWidth, new_height); 492 | } else if (letter === 'c') { 493 | let new_val = rref.current.offsetWidth - inc; 494 | if (new_val >= iref.current.offsetWidth) { 495 | setResponseWidth(new_val); 496 | } else { 497 | setResponseWidth(iref.current.offsetWidth); 498 | } 499 | } else if (letter === 'v') { 500 | let new_val = rref.current.offsetWidth + inc; 501 | setResponseWidth(new_val); 502 | } else if (letter === 'backspace') { 503 | let left_a = sortie[0]; 504 | let right_a = sortie[sortie.length - 1]; 505 | 506 | if (dividers.length > 1) { 507 | if (active.length === dividers.length) { 508 | // all of them is easy 509 | dividersr.current = [left_a.x]; 510 | activer.current = [0]; 511 | } else { 512 | let to_delete = _.orderBy(sortie, 'oi', 'desc'); 513 | 514 | let new_active; 515 | let prev_check = sorted[left_a.si - 1]; 516 | if (prev_check !== undefined) { 517 | new_active = prev_check.oi; 518 | } else { 519 | new_active = sorted[right_a.si + 1].oi; 520 | } 521 | 522 | for (let i = 0; i < to_delete.length; i++) { 523 | if (to_delete[i].oi < new_active) new_active -= 1; 524 | dividersr.current.splice(to_delete[i].oi, 1); 525 | } 526 | 527 | activer.current = [new_active]; 528 | pivot.current = new_active; 529 | } 530 | } 531 | } 532 | 533 | drawDividers(); 534 | respond(); 535 | } 536 | 537 | function downHandler(e) { 538 | let key = e.key.toLowerCase(); 539 | keymapr.current[key] = true; 540 | keyAction(key, e.repeat); 541 | } 542 | 543 | function upHandler(e) { 544 | let key = e.key.toLowerCase(); 545 | keymapr.current[key] = false; 546 | } 547 | 548 | useEffect(() => { 549 | window.addEventListener('keydown', downHandler); 550 | window.addEventListener('keyup', upHandler); 551 | window.addEventListener('paste', onPaste, false); 552 | window.addEventListener('dragover', onDrag, false); 553 | window.addEventListener('drop', onDrop, false); 554 | return () => { 555 | window.removeEventListener('keydown', downHandler); 556 | window.removeEventListener('keyup', upHandler); 557 | window.removeEventListener('paste', onPaste); 558 | window.removeEventListener('dragover', onDrag, false); 559 | window.removeEventListener('drop', onDrop, false); 560 | }; 561 | }, []); 562 | 563 | useEffect(() => { 564 | // initImage('/lion.jpg'); 565 | initImage('/grant.png'); 566 | }, []); 567 | 568 | let readout_style = { 569 | fontSize: 14, 570 | lineHeight: 1.5, 571 | whiteSpace: 'nowrap', 572 | overflowX: 'auto', 573 | paddingLeft: '2ch', 574 | paddingRight: '2ch', 575 | }; 576 | 577 | let sstyle = { 578 | maxWidth: '100%', 579 | overflowX: 'auto', 580 | }; 581 | 582 | return ( 583 |
584 | 622 |
623 |
628 |
629 |
633 |
634 | 635 |
638 | 639 |
640 |
641 |
642 |
643 |
644 | 645 |
646 |
647 |
648 |
649 |
650 |
657 | 658 |
659 |
660 | 661 |
662 |
663 |
664 |
665 |
683 |
684 | Divide and slide-stretch an image using keyboard controls. 685 |
686 |
687 | MOVE DIVIDER 688 |
689 |
690 | {KeyTip('h', color)} move ←  {KeyTip('l', color)} move →  691 | hold {KeyTip('shift', color)} to move by 10 692 |
693 |
694 | SELECT DIVIDER 695 |
696 |
697 | {KeyTip('d', color)} select ←  {KeyTip('f', color)} select 698 | →  hold {KeyTip('shift', color)} to select multiple dividers 699 |
700 |
DISTRIBUTE
701 |
702 | {KeyTip('e', color)} distribute selected dividers evenly across the 703 | selected area 704 |
705 |
706 | ADD & REMOVE 707 |
708 |
709 | {KeyTip('a', color)} add divider  {KeyTip('backspace', color)}{' '} 710 | delete divider 711 |
712 |
IMAGE
713 |
714 | To add an image you can paste, drop, or press {KeyTip('o', color)} to 715 | open a file dialog. 716 |
717 |
IMAGE SIZE
718 |
719 | {KeyTip('z', color)} decrease height  {KeyTip('x', color)}{' '} 720 | increase height 721 |
722 |
723 | {KeyTip('c', color)} decrease output width  {KeyTip('v', color)}{' '} 724 | increase output width 725 |
726 |
SPECIAL
727 |
728 | {KeyTip('w', color)} save as png  {KeyTip('b', color)}{' '} 729 | {color === 'dark' ? 'light bg' : 'dark bg'}  {KeyTip('?', color)}{' '} 730 | help 731 |
732 | 733 | 738 |
739 | {help ? null : ( 740 |
749 | {KeyTip('?', color)} 750 |
751 | )} 752 |
753 | ); 754 | }; 755 | 756 | export default Home; 757 | -------------------------------------------------------------------------------- /out/_next/static/webpack/static/development/pages/index.js.af82b2314bb2eb2e5690.hot-update.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/webpack/static/development/pages/index.js.af82b2314bb2eb2e5690.hot-update.js","sources":["webpack:///./pages/index.js"],"sourcesContent":["import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport Head from 'next/head';\nimport * as _ from 'lodash';\n\nlet nec_padding = 100;\nlet max_height = 600;\n\nlet fs = 14;\nlet lh = 1.5;\nlet rlh = 14 * lh;\n\nlet help = true;\nlet maxch = '74ch';\n\nconst Home = () => {\n let [color, setColor] = useState('light');\n let dividersr = useRef([119]);\n let activer = useRef([0]);\n let keymapr = useRef({});\n let pivot = useRef(0);\n let ireadoutr = useRef('readout');\n let dreadoutr = useRef('readout');\n let oreadoutr = useRef('readout');\n let iref = useRef(null);\n let dref = useRef(null);\n let rref = useRef(null);\n let icontainer = useRef(null);\n let ocontainer = useRef(null);\n let ow = useRef(null);\n let oh = useRef(null);\n let image = useRef(null);\n let [help, setHelp] = useState(true);\n\n function KeyTip(letter, color) {\n return (\n {\n keymapr.current[letter] = true;\n keyAction(letter, false);\n setTimeout(() => {\n keymapr.current[letter] = false;\n }, 300);\n }}\n style={{\n outline: color === 'dark' ? 'solid 1px white' : 'solid 1px black',\n paddingLeft: '0.5ch',\n paddingRight: '0.5ch',\n textAlign: 'center',\n display: 'inline-block',\n userSelect: 'none',\n cursor: 'default',\n }}\n >\n {letter === ' ' ? 'spacebar' : letter}\n \n );\n }\n\n function initCanvas(ref, pw, ph) {\n let c = ref.current;\n let ctx = c.getContext('2d');\n\n let dpr = window.devicePixelRatio || 1;\n dpr = 1;\n // cancel dpr because it is getting too weird\n\n c.width = pw * dpr;\n c.height = ph * dpr;\n c.style.width = pw + 'px';\n c.style.height = ph + 'px';\n }\n\n function onPaste(e) {\n e.preventDefault();\n e.stopPropagation();\n for (const item of e.clipboardData.items) {\n if (item.type.indexOf('image') < 0) {\n continue;\n }\n let file = item.getAsFile();\n let src = URL.createObjectURL(file);\n initImage(src);\n }\n }\n\n function onDrop(e) {\n e.preventDefault();\n e.stopPropagation();\n let file = e.dataTransfer.files[0];\n let filename = file.path ? file.path : file.name ? file.name : '';\n let src = URL.createObjectURL(file);\n initImage(src);\n }\n\n function onDrag(e) {\n e.stopPropagation();\n e.preventDefault();\n e.dataTransfer.dropEffect = 'copy';\n }\n\n function drawDividers() {\n let dpr = window.devicePixelRatio || 1;\n dpr = 1;\n let dividers = dividersr.current;\n let active = activer.current;\n let c = dref.current;\n let w = c.offsetWidth;\n let h = c.offsetHeight;\n let ctx = c.getContext('2d');\n ctx.clearRect(0, 0, w * dpr, h * dpr);\n ctx.strokeStyle = '#888';\n for (let d = 0; d < dividers.length; d++) {\n let x = dividers[d];\n if (!active.includes(d)) {\n ctx.strokeRect(x, 0, 1, h);\n }\n }\n // always draw active on top\n for (let a = 0; a < active.length; a++) {\n let act = active[a];\n ctx.strokeStyle = 'magenta';\n ctx.strokeRect(dividers[act] * dpr, 0, 1 * dpr, h * dpr);\n }\n }\n\n function setResponseWidth(width) {\n let ic = iref.current;\n let ph = ic.offsetHeight;\n\n initCanvas(rref, width, ph);\n ocontainer.current.style.width = `calc(${width}px + 4ch)`;\n respond();\n }\n\n function initResponse() {\n setResponseWidth(iref.current.offsetWidth + 200);\n }\n\n function respond() {\n let dividers = dividersr.current;\n let dpr = window.devicePixelRatio || 1;\n dpr = 1;\n let w = rref.current.offsetWidth;\n\n let ic = iref.current;\n\n let iw = ic.offsetWidth;\n let ih = ic.offsetHeight;\n\n let ph = ic.offsetHeight;\n\n let c = rref.current;\n let ctx = c.getContext('2d');\n\n let diff = w - iw;\n let diffw = diff / dividers.length;\n\n ctx.clearRect(0, 0, w, ph);\n\n let sorted = dividers.slice();\n sorted = sorted.sort((a, b) => a - b);\n\n for (let d = 0; d < sorted.length; d++) {\n let px = d === 0 ? 0 : sorted[d - 1];\n\n let dx = sorted[d];\n // slice\n ctx.drawImage(\n ic,\n px * dpr,\n 0,\n (dx - px) * dpr,\n ph * dpr,\n (px + diffw * d) * dpr,\n 0 * dpr,\n (dx - px) * dpr,\n ph * dpr\n );\n // extend\n for (let e = 0; e < Math.ceil(diffw * dpr); e++) {\n ctx.drawImage(\n ic,\n dx * dpr,\n 0,\n 1,\n ph * dpr,\n (dx + diffw * d) * dpr + e,\n 0 * dpr,\n 1,\n ph * dpr\n );\n }\n\n if (d === dividers.length - 1) {\n ctx.drawImage(\n ic,\n dx * dpr,\n 0,\n (iw - dx) * dpr,\n ph * dpr,\n (dx + diffw * (d + 1)) * dpr,\n 0 * dpr,\n (iw - dx) * dpr,\n ph * dpr\n );\n }\n }\n\n let active = activer.current;\n let dividersa = dividers.map((n, i) => {\n return {\n x: n,\n active: active.includes(i) ? true : false,\n pivot: pivot.current === i,\n };\n });\n let sorted_d = _.sortBy(dividersa, 'x');\n let div_string = sorted_d\n .map(o =>\n o.active\n ? o.pivot\n ? `${\n o.x\n }`\n : `${o.x}`\n : o.x\n )\n .join(' ');\n ireadoutr.current.innerHTML = `${iw}x${ph} (original:${ow.current}x${\n oh.current\n })`;\n dreadoutr.current.innerHTML = `${dividers.length}|${diffw.toFixed(\n 2\n )}| ${div_string}`;\n oreadoutr.current.innerHTML = `${rref.current.offsetWidth}x${\n rref.current.offsetHeight\n }`;\n }\n\n function setHeight(height) {\n let w = window.innerWidth;\n let h = window.innerHeight;\n\n let ia = ow.current / oh.current;\n\n let prev_width = iref.current.offsetWidth;\n let ph = height;\n\n let pw = Math.round(ph * ia);\n initCanvas(iref, pw, ph);\n initCanvas(dref, pw, ph);\n\n icontainer.current.style.width = `calc(${pw}px + 4ch)`;\n\n let dpr = window.devicePixelRatio || 1;\n dpr = 1;\n iref.current\n .getContext('2d')\n .drawImage(image.current, 0, 0, pw * dpr, ph * dpr);\n\n // tranlsate dividers\n for (let d = 0; d < dividersr.current.length; d++) {\n let x = dividersr.current[d];\n let new_x = Math.round((x / prev_width) * pw);\n dividersr.current[d] = new_x;\n }\n\n drawDividers();\n }\n\n function initImage(src) {\n if (iref.current !== null) {\n rref.current.getContext('2d').imageSmoothingEnabled = false;\n\n let w = window.innerWidth;\n let h = window.innerHeight;\n\n let img = new Image();\n img.onload = () => {\n let iw = img.width;\n let ih = img.height;\n ow.current = iw;\n oh.current = ih;\n image.current = img;\n setHeight(Math.min(ih, max_height));\n initResponse();\n };\n img.src = src;\n }\n }\n\n function getSorted() {\n let active = activer.current;\n let to_sort = dividersr.current.map((x, i) => {\n return { x, a: active.includes(i), oi: i };\n });\n let sorted = _.sortBy(to_sort, 'x', 'asc');\n sorted = sorted.map((o, i) => {\n return { ...o, si: i };\n });\n return sorted;\n }\n\n function keyAction(letter, repeat) {\n let k = keymapr.current;\n let dividers = dividersr.current;\n let active = activer.current;\n let iw = iref.current.offsetWidth;\n\n let sorted = getSorted();\n let sortie = sorted.filter(o => o.a);\n\n let inc = 1;\n if (k['shift']) inc = 10;\n\n if (letter === 'b' && !repeat) {\n setColor(function(prevState) {\n return prevState === 'light' ? 'dark' : 'light';\n });\n } else if (letter === 'w' && !repeat) {\n let link = document.createElement('a');\n\n var revokeURL = function() {\n let me = this;\n requestAnimationFrame(function() {\n URL.revokeObjectURL(me.href);\n me.href = null;\n });\n this.removeEventListener('click', revokeURL);\n };\n\n rref.current.toBlob(function(blob) {\n link.setAttribute('download', 'slide.png');\n link.setAttribute('href', URL.createObjectURL(blob));\n link.addEventListener('click', revokeURL);\n link.dispatchEvent(\n new MouseEvent(`click`, {\n bubbles: true,\n cancelable: true,\n view: window,\n })\n );\n });\n } else if (letter === '?') {\n setHelp(prevState => {\n return !prevState;\n });\n } else if (letter === 'o' && !repeat) {\n let input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.dispatchEvent(\n new MouseEvent(`click`, {\n bubbles: true,\n cancelable: true,\n view: window,\n })\n );\n\n function handleChange(e) {\n for (const item of this.files) {\n if (item.type.indexOf('image') < 0) {\n continue;\n }\n let src = URL.createObjectURL(item);\n initImage(src);\n }\n this.removeEventListener('change', handleChange);\n }\n input.addEventListener('change', handleChange);\n } else if (letter === 'h') {\n let left_a = sortie[0];\n let new_left_a_x = left_a.x - inc;\n if (new_left_a_x < 0) {\n let offsets = sortie.map(o => o.x - left_a.x);\n for (let a = 0; a < sortie.length; a++) {\n let act = sortie[a];\n dividers[act.oi] = offsets[a];\n }\n } else {\n for (let act of sortie) {\n dividers[act.oi] -= inc;\n }\n }\n } else if (letter === 'l') {\n let right_a = sortie[sortie.length - 1];\n let new_right_a_x = right_a.x + inc;\n if (new_right_a_x > iw - 2) {\n let offsets = sortie.map(o => o.x - right_a.x - 1);\n for (let a = 0; a < sortie.length; a++) {\n let act = sortie[a];\n dividers[act.oi] = iw + offsets[a];\n }\n } else {\n for (let act of sortie) {\n dividers[act.oi] += inc;\n }\n }\n } else if (letter === 'f') {\n let left_a = sortie[0];\n let right_a = sortie[sortie.length - 1];\n\n if (k['shift']) {\n if (left_a.x === dividers[pivot.current]) {\n // adding\n if (right_a.si !== dividers.length - 1) {\n let next_index = sorted[right_a.si + 1].oi;\n activer.current.push(next_index);\n }\n } else {\n // subtracting\n activer.current = active.slice(0, -1);\n }\n } else {\n if (active.length > 1) {\n pivot.current = right_a.oi;\n activer.current = [right_a.oi];\n } else {\n if (right_a.si !== dividers.length - 1) {\n let next_index = sorted[right_a.si + 1].oi;\n pivot.current = next_index;\n activer.current = [next_index];\n }\n }\n }\n } else if (letter === 'd') {\n let left_a = sortie[0];\n let right_a = sortie[sortie.length - 1];\n if (k['shift']) {\n if (right_a.x === dividers[pivot.current]) {\n // adding\n if (left_a.si !== 0) {\n let next_index = sorted[left_a.si - 1].oi;\n activer.current.push(next_index);\n }\n } else {\n // subtracting\n activer.current = active.slice(0, -1);\n }\n } else {\n if (active.length > 1) {\n pivot.current = left_a.oi;\n activer.current = [left_a.oi];\n } else {\n if (left_a.si !== 0) {\n let next_index = sorted[left_a.si - 1].oi;\n pivot.current = next_index;\n activer.current = [next_index];\n }\n }\n }\n } else if (letter === 'a') {\n let left_a = sortie[0];\n let right_a = sortie[sortie.length - 1];\n let iw = iref.current.offsetWidth;\n let new_x = right_a.x + 5;\n if (new_x > iw) new_x = iw - 1;\n dividersr.current.push(new_x);\n if (k['shift']) {\n pivot.current = left_a.oi;\n activer.current.push(dividersr.current.length - 1);\n } else {\n pivot.current = dividersr.current.length - 1;\n activer.current = [dividersr.current.length - 1];\n }\n } else if (letter === 'e') {\n if (active.length > 1) {\n let left_a = sortie[0];\n let right_a = sortie[sortie.length - 1];\n\n let space = right_a.x - left_a.x;\n let diff = Math.floor(space / (sortie.length - 1));\n\n for (let s = 0; s < sortie.length; s++) {\n let o = sortie[s];\n dividersr.current[o.oi] = left_a.x + diff * s;\n }\n }\n } else if (letter === 'x') {\n let new_height = iref.current.offsetHeight + inc;\n setHeight(new_height);\n if (rref.current.offsetWidth / new_height < ow.current / oh.current) {\n let new_width = new_height / (ow.current / oh.current);\n initCanvas(rref, new_width, new_height);\n } else {\n initCanvas(rref, rref.current.offsetWidth, new_height);\n }\n } else if (letter === 'z') {\n let new_height = iref.current.offsetHeight - inc;\n setHeight(new_height);\n initCanvas(rref, rref.current.offsetWidth, new_height);\n } else if (letter === 'c') {\n let new_val = rref.current.offsetWidth - inc;\n if (new_val >= iref.current.offsetWidth) {\n setResponseWidth(new_val);\n } else {\n setResponseWidth(iref.current.offsetWidth);\n }\n } else if (letter === 'v') {\n let new_val = rref.current.offsetWidth + inc;\n setResponseWidth(new_val);\n } else if (letter === 'backspace') {\n let left_a = sortie[0];\n let right_a = sortie[sortie.length - 1];\n\n if (dividers.length > 1) {\n if (active.length === dividers.length) {\n // all of them is easy\n dividersr.current = [left_a.x];\n activer.current = [0];\n } else {\n let to_delete = _.orderBy(sortie, 'oi', 'desc');\n\n let new_active;\n let prev_check = sorted[left_a.si - 1];\n if (prev_check !== undefined) {\n new_active = prev_check.oi;\n } else {\n new_active = sorted[right_a.si + 1].oi;\n }\n\n for (let i = 0; i < to_delete.length; i++) {\n if (to_delete[i].oi < new_active) new_active -= 1;\n dividersr.current.splice(to_delete[i].oi, 1);\n }\n\n activer.current = [new_active];\n pivot.current = new_active;\n }\n }\n }\n\n drawDividers();\n respond();\n }\n\n function downHandler(e) {\n let key = e.key.toLowerCase();\n keymapr.current[key] = true;\n keyAction(key, e.repeat);\n }\n\n function upHandler(e) {\n let key = e.key.toLowerCase();\n keymapr.current[key] = false;\n }\n\n useEffect(() => {\n window.addEventListener('keydown', downHandler);\n window.addEventListener('keyup', upHandler);\n window.addEventListener('paste', onPaste, false);\n window.addEventListener('dragover', onDrag, false);\n window.addEventListener('drop', onDrop, false);\n return () => {\n window.removeEventListener('keydown', downHandler);\n window.removeEventListener('keyup', upHandler);\n window.removeEventListener('paste', onPaste);\n window.removeEventListener('dragover', onDrag, false);\n window.removeEventListener('drop', onDrop, false);\n };\n }, []);\n\n useEffect(() => {\n // initImage('/lion.jpg');\n initImage('/grant.png');\n }, []);\n\n let readout_style = {\n fontSize: 14,\n lineHeight: 1.5,\n whiteSpace: 'nowrap',\n overflowX: 'auto',\n paddingLeft: '2ch',\n paddingRight: '2ch',\n };\n\n let sstyle = {\n maxWidth: '100%',\n overflowX: 'auto',\n };\n\n return (\n
\n \n
\n \n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n \n
\n
\n\n
\n
\n
\n
\n \n
\n Divide and slide-stretch an image using your keyboard.\n
\n
\n MOVE DIVIDER\n
\n
\n {KeyTip('h', color)} move ←  {KeyTip('l', color)} move → \n hold {KeyTip('shift', color)} to move by 10\n
\n
\n SELECT DIVIDER\n
\n
\n {KeyTip('d', color)} select ←  {KeyTip('f', color)} select\n →  hold {KeyTip('shift', color)} to select multiple dividers\n
\n
DISTRIBUTE
\n
\n {KeyTip('e', color)} distribute selected dividers evenly across the\n selected area\n
\n
\n ADD & REMOVE\n
\n
\n {KeyTip('a', color)} add divider  {KeyTip('backspace', color)}{' '}\n delete divider\n
\n
IMAGE
\n
\n To add an image you can paste, drop, or press {KeyTip('o', color)} to\n open a file dialog.\n
\n
IMAGE SIZE
\n
\n {KeyTip('z', color)} decrease height  {KeyTip('x', color)}{' '}\n increase height\n
\n
\n {KeyTip('c', color)} decrease output width  {KeyTip('v', color)}{' '}\n increase output width\n
\n
SPECIAL
\n
\n {KeyTip('w', color)} save as png  {KeyTip('b', color)}{' '}\n {color === 'dark' ? 'light bg' : 'dark bg'}  {KeyTip('?', color)}{' '}\n help\n
\n
\n {help ? null : (\n \n {KeyTip('?', color)}\n
\n )}\n
\n );\n};\n\nexport default Home;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAjBA;AAAA;AAAA;AACA;AAkBA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AATA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAWA;AACA;AAWA;AACA;AACA;AACA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAUA;AAGA;AAGA;AAGA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAHA;AAMA;AACA;AACA;AACA;AACA;AACA;AAAA;AAWA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AAPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAOA;AACA;AACA;AApBA;AACA;AACA;AAEA;AACA;AACA;AAHA;AAiBA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AASA;AACA;AACA;AAFA;AAKA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AADA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AACA;AAFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AAFA;AAIA;AALA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;AAFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA;AACA;AACA;AACA;AACA;AAJA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcA;AACA;AACA;;;;A","sourceRoot":""} -------------------------------------------------------------------------------- /out/_next/static/runtime/webpack.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/runtime/webpack.js","sources":["webpack:///webpack/bootstrap"],"sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n \tfunction hotDisposeChunk(chunkId) {\n \t\tdelete installedChunks[chunkId];\n \t}\n \tvar parentHotUpdateCallback = window[\"webpackHotUpdate\"];\n \twindow[\"webpackHotUpdate\"] = // eslint-disable-next-line no-unused-vars\n \tfunction webpackHotUpdateCallback(chunkId, moreModules) {\n \t\thotAddUpdateChunk(chunkId, moreModules);\n \t\tif (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);\n \t} ;\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotDownloadUpdateChunk(chunkId) {\n \t\tvar script = document.createElement(\"script\");\n \t\tscript.charset = \"utf-8\";\n \t\tscript.src = __webpack_require__.p + \"static/webpack/\" + chunkId + \".\" + hotCurrentHash + \".hot-update.js\";\n \t\tif (null) script.crossOrigin = null;\n \t\tdocument.head.appendChild(script);\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotDownloadManifest(requestTimeout) {\n \t\trequestTimeout = requestTimeout || 10000;\n \t\treturn new Promise(function(resolve, reject) {\n \t\t\tif (typeof XMLHttpRequest === \"undefined\") {\n \t\t\t\treturn reject(new Error(\"No browser support\"));\n \t\t\t}\n \t\t\ttry {\n \t\t\t\tvar request = new XMLHttpRequest();\n \t\t\t\tvar requestPath = __webpack_require__.p + \"static/webpack/\" + hotCurrentHash + \".hot-update.json\";\n \t\t\t\trequest.open(\"GET\", requestPath, true);\n \t\t\t\trequest.timeout = requestTimeout;\n \t\t\t\trequest.send(null);\n \t\t\t} catch (err) {\n \t\t\t\treturn reject(err);\n \t\t\t}\n \t\t\trequest.onreadystatechange = function() {\n \t\t\t\tif (request.readyState !== 4) return;\n \t\t\t\tif (request.status === 0) {\n \t\t\t\t\t// timeout\n \t\t\t\t\treject(\n \t\t\t\t\t\tnew Error(\"Manifest request to \" + requestPath + \" timed out.\")\n \t\t\t\t\t);\n \t\t\t\t} else if (request.status === 404) {\n \t\t\t\t\t// no update available\n \t\t\t\t\tresolve();\n \t\t\t\t} else if (request.status !== 200 && request.status !== 304) {\n \t\t\t\t\t// other failure\n \t\t\t\t\treject(new Error(\"Manifest request to \" + requestPath + \" failed.\"));\n \t\t\t\t} else {\n \t\t\t\t\t// success\n \t\t\t\t\ttry {\n \t\t\t\t\t\tvar update = JSON.parse(request.responseText);\n \t\t\t\t\t} catch (e) {\n \t\t\t\t\t\treject(e);\n \t\t\t\t\t\treturn;\n \t\t\t\t\t}\n \t\t\t\t\tresolve(update);\n \t\t\t\t}\n \t\t\t};\n \t\t});\n \t}\n\n \tvar hotApplyOnUpdate = true;\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentHash = \"0e7fb358a19ed2d72282\";\n \tvar hotRequestTimeout = 10000;\n \tvar hotCurrentModuleData = {};\n \tvar hotCurrentChildModule;\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentParents = [];\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentParentsTemp = [];\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotCreateRequire(moduleId) {\n \t\tvar me = installedModules[moduleId];\n \t\tif (!me) return __webpack_require__;\n \t\tvar fn = function(request) {\n \t\t\tif (me.hot.active) {\n \t\t\t\tif (installedModules[request]) {\n \t\t\t\t\tif (installedModules[request].parents.indexOf(moduleId) === -1) {\n \t\t\t\t\t\tinstalledModules[request].parents.push(moduleId);\n \t\t\t\t\t}\n \t\t\t\t} else {\n \t\t\t\t\thotCurrentParents = [moduleId];\n \t\t\t\t\thotCurrentChildModule = request;\n \t\t\t\t}\n \t\t\t\tif (me.children.indexOf(request) === -1) {\n \t\t\t\t\tme.children.push(request);\n \t\t\t\t}\n \t\t\t} else {\n \t\t\t\tconsole.warn(\n \t\t\t\t\t\"[HMR] unexpected require(\" +\n \t\t\t\t\t\trequest +\n \t\t\t\t\t\t\") from disposed module \" +\n \t\t\t\t\t\tmoduleId\n \t\t\t\t);\n \t\t\t\thotCurrentParents = [];\n \t\t\t}\n \t\t\treturn __webpack_require__(request);\n \t\t};\n \t\tvar ObjectFactory = function ObjectFactory(name) {\n \t\t\treturn {\n \t\t\t\tconfigurable: true,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: function() {\n \t\t\t\t\treturn __webpack_require__[name];\n \t\t\t\t},\n \t\t\t\tset: function(value) {\n \t\t\t\t\t__webpack_require__[name] = value;\n \t\t\t\t}\n \t\t\t};\n \t\t};\n \t\tfor (var name in __webpack_require__) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(__webpack_require__, name) &&\n \t\t\t\tname !== \"e\" &&\n \t\t\t\tname !== \"t\"\n \t\t\t) {\n \t\t\t\tObject.defineProperty(fn, name, ObjectFactory(name));\n \t\t\t}\n \t\t}\n \t\tfn.e = function(chunkId) {\n \t\t\tif (hotStatus === \"ready\") hotSetStatus(\"prepare\");\n \t\t\thotChunksLoading++;\n \t\t\treturn __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {\n \t\t\t\tfinishChunkLoading();\n \t\t\t\tthrow err;\n \t\t\t});\n\n \t\t\tfunction finishChunkLoading() {\n \t\t\t\thotChunksLoading--;\n \t\t\t\tif (hotStatus === \"prepare\") {\n \t\t\t\t\tif (!hotWaitingFilesMap[chunkId]) {\n \t\t\t\t\t\thotEnsureUpdateChunk(chunkId);\n \t\t\t\t\t}\n \t\t\t\t\tif (hotChunksLoading === 0 && hotWaitingFiles === 0) {\n \t\t\t\t\t\thotUpdateDownloaded();\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t};\n \t\tfn.t = function(value, mode) {\n \t\t\tif (mode & 1) value = fn(value);\n \t\t\treturn __webpack_require__.t(value, mode & ~1);\n \t\t};\n \t\treturn fn;\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotCreateModule(moduleId) {\n \t\tvar hot = {\n \t\t\t// private stuff\n \t\t\t_acceptedDependencies: {},\n \t\t\t_declinedDependencies: {},\n \t\t\t_selfAccepted: false,\n \t\t\t_selfDeclined: false,\n \t\t\t_disposeHandlers: [],\n \t\t\t_main: hotCurrentChildModule !== moduleId,\n\n \t\t\t// Module API\n \t\t\tactive: true,\n \t\t\taccept: function(dep, callback) {\n \t\t\t\tif (dep === undefined) hot._selfAccepted = true;\n \t\t\t\telse if (typeof dep === \"function\") hot._selfAccepted = dep;\n \t\t\t\telse if (typeof dep === \"object\")\n \t\t\t\t\tfor (var i = 0; i < dep.length; i++)\n \t\t\t\t\t\thot._acceptedDependencies[dep[i]] = callback || function() {};\n \t\t\t\telse hot._acceptedDependencies[dep] = callback || function() {};\n \t\t\t},\n \t\t\tdecline: function(dep) {\n \t\t\t\tif (dep === undefined) hot._selfDeclined = true;\n \t\t\t\telse if (typeof dep === \"object\")\n \t\t\t\t\tfor (var i = 0; i < dep.length; i++)\n \t\t\t\t\t\thot._declinedDependencies[dep[i]] = true;\n \t\t\t\telse hot._declinedDependencies[dep] = true;\n \t\t\t},\n \t\t\tdispose: function(callback) {\n \t\t\t\thot._disposeHandlers.push(callback);\n \t\t\t},\n \t\t\taddDisposeHandler: function(callback) {\n \t\t\t\thot._disposeHandlers.push(callback);\n \t\t\t},\n \t\t\tremoveDisposeHandler: function(callback) {\n \t\t\t\tvar idx = hot._disposeHandlers.indexOf(callback);\n \t\t\t\tif (idx >= 0) hot._disposeHandlers.splice(idx, 1);\n \t\t\t},\n\n \t\t\t// Management API\n \t\t\tcheck: hotCheck,\n \t\t\tapply: hotApply,\n \t\t\tstatus: function(l) {\n \t\t\t\tif (!l) return hotStatus;\n \t\t\t\thotStatusHandlers.push(l);\n \t\t\t},\n \t\t\taddStatusHandler: function(l) {\n \t\t\t\thotStatusHandlers.push(l);\n \t\t\t},\n \t\t\tremoveStatusHandler: function(l) {\n \t\t\t\tvar idx = hotStatusHandlers.indexOf(l);\n \t\t\t\tif (idx >= 0) hotStatusHandlers.splice(idx, 1);\n \t\t\t},\n\n \t\t\t//inherit from previous dispose call\n \t\t\tdata: hotCurrentModuleData[moduleId]\n \t\t};\n \t\thotCurrentChildModule = undefined;\n \t\treturn hot;\n \t}\n\n \tvar hotStatusHandlers = [];\n \tvar hotStatus = \"idle\";\n\n \tfunction hotSetStatus(newStatus) {\n \t\thotStatus = newStatus;\n \t\tfor (var i = 0; i < hotStatusHandlers.length; i++)\n \t\t\thotStatusHandlers[i].call(null, newStatus);\n \t}\n\n \t// while downloading\n \tvar hotWaitingFiles = 0;\n \tvar hotChunksLoading = 0;\n \tvar hotWaitingFilesMap = {};\n \tvar hotRequestedFilesMap = {};\n \tvar hotAvailableFilesMap = {};\n \tvar hotDeferred;\n\n \t// The update info\n \tvar hotUpdate, hotUpdateNewHash;\n\n \tfunction toModuleId(id) {\n \t\tvar isNumber = +id + \"\" === id;\n \t\treturn isNumber ? +id : id;\n \t}\n\n \tfunction hotCheck(apply) {\n \t\tif (hotStatus !== \"idle\") {\n \t\t\tthrow new Error(\"check() is only allowed in idle status\");\n \t\t}\n \t\thotApplyOnUpdate = apply;\n \t\thotSetStatus(\"check\");\n \t\treturn hotDownloadManifest(hotRequestTimeout).then(function(update) {\n \t\t\tif (!update) {\n \t\t\t\thotSetStatus(\"idle\");\n \t\t\t\treturn null;\n \t\t\t}\n \t\t\thotRequestedFilesMap = {};\n \t\t\thotWaitingFilesMap = {};\n \t\t\thotAvailableFilesMap = update.c;\n \t\t\thotUpdateNewHash = update.h;\n\n \t\t\thotSetStatus(\"prepare\");\n \t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\thotDeferred = {\n \t\t\t\t\tresolve: resolve,\n \t\t\t\t\treject: reject\n \t\t\t\t};\n \t\t\t});\n \t\t\thotUpdate = {};\n \t\t\tfor(var chunkId in installedChunks)\n \t\t\t// eslint-disable-next-line no-lone-blocks\n \t\t\t{\n \t\t\t\t/*globals chunkId */\n \t\t\t\thotEnsureUpdateChunk(chunkId);\n \t\t\t}\n \t\t\tif (\n \t\t\t\thotStatus === \"prepare\" &&\n \t\t\t\thotChunksLoading === 0 &&\n \t\t\t\thotWaitingFiles === 0\n \t\t\t) {\n \t\t\t\thotUpdateDownloaded();\n \t\t\t}\n \t\t\treturn promise;\n \t\t});\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotAddUpdateChunk(chunkId, moreModules) {\n \t\tif (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])\n \t\t\treturn;\n \t\thotRequestedFilesMap[chunkId] = false;\n \t\tfor (var moduleId in moreModules) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\thotUpdate[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif (--hotWaitingFiles === 0 && hotChunksLoading === 0) {\n \t\t\thotUpdateDownloaded();\n \t\t}\n \t}\n\n \tfunction hotEnsureUpdateChunk(chunkId) {\n \t\tif (!hotAvailableFilesMap[chunkId]) {\n \t\t\thotWaitingFilesMap[chunkId] = true;\n \t\t} else {\n \t\t\thotRequestedFilesMap[chunkId] = true;\n \t\t\thotWaitingFiles++;\n \t\t\thotDownloadUpdateChunk(chunkId);\n \t\t}\n \t}\n\n \tfunction hotUpdateDownloaded() {\n \t\thotSetStatus(\"ready\");\n \t\tvar deferred = hotDeferred;\n \t\thotDeferred = null;\n \t\tif (!deferred) return;\n \t\tif (hotApplyOnUpdate) {\n \t\t\t// Wrap deferred object in Promise to mark it as a well-handled Promise to\n \t\t\t// avoid triggering uncaught exception warning in Chrome.\n \t\t\t// See https://bugs.chromium.org/p/chromium/issues/detail?id=465666\n \t\t\tPromise.resolve()\n \t\t\t\t.then(function() {\n \t\t\t\t\treturn hotApply(hotApplyOnUpdate);\n \t\t\t\t})\n \t\t\t\t.then(\n \t\t\t\t\tfunction(result) {\n \t\t\t\t\t\tdeferred.resolve(result);\n \t\t\t\t\t},\n \t\t\t\t\tfunction(err) {\n \t\t\t\t\t\tdeferred.reject(err);\n \t\t\t\t\t}\n \t\t\t\t);\n \t\t} else {\n \t\t\tvar outdatedModules = [];\n \t\t\tfor (var id in hotUpdate) {\n \t\t\t\tif (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\n \t\t\t\t\toutdatedModules.push(toModuleId(id));\n \t\t\t\t}\n \t\t\t}\n \t\t\tdeferred.resolve(outdatedModules);\n \t\t}\n \t}\n\n \tfunction hotApply(options) {\n \t\tif (hotStatus !== \"ready\")\n \t\t\tthrow new Error(\"apply() is only allowed in ready status\");\n \t\toptions = options || {};\n\n \t\tvar cb;\n \t\tvar i;\n \t\tvar j;\n \t\tvar module;\n \t\tvar moduleId;\n\n \t\tfunction getAffectedStuff(updateModuleId) {\n \t\t\tvar outdatedModules = [updateModuleId];\n \t\t\tvar outdatedDependencies = {};\n\n \t\t\tvar queue = outdatedModules.map(function(id) {\n \t\t\t\treturn {\n \t\t\t\t\tchain: [id],\n \t\t\t\t\tid: id\n \t\t\t\t};\n \t\t\t});\n \t\t\twhile (queue.length > 0) {\n \t\t\t\tvar queueItem = queue.pop();\n \t\t\t\tvar moduleId = queueItem.id;\n \t\t\t\tvar chain = queueItem.chain;\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (!module || module.hot._selfAccepted) continue;\n \t\t\t\tif (module.hot._selfDeclined) {\n \t\t\t\t\treturn {\n \t\t\t\t\t\ttype: \"self-declined\",\n \t\t\t\t\t\tchain: chain,\n \t\t\t\t\t\tmoduleId: moduleId\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\tif (module.hot._main) {\n \t\t\t\t\treturn {\n \t\t\t\t\t\ttype: \"unaccepted\",\n \t\t\t\t\t\tchain: chain,\n \t\t\t\t\t\tmoduleId: moduleId\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\tfor (var i = 0; i < module.parents.length; i++) {\n \t\t\t\t\tvar parentId = module.parents[i];\n \t\t\t\t\tvar parent = installedModules[parentId];\n \t\t\t\t\tif (!parent) continue;\n \t\t\t\t\tif (parent.hot._declinedDependencies[moduleId]) {\n \t\t\t\t\t\treturn {\n \t\t\t\t\t\t\ttype: \"declined\",\n \t\t\t\t\t\t\tchain: chain.concat([parentId]),\n \t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\tparentId: parentId\n \t\t\t\t\t\t};\n \t\t\t\t\t}\n \t\t\t\t\tif (outdatedModules.indexOf(parentId) !== -1) continue;\n \t\t\t\t\tif (parent.hot._acceptedDependencies[moduleId]) {\n \t\t\t\t\t\tif (!outdatedDependencies[parentId])\n \t\t\t\t\t\t\toutdatedDependencies[parentId] = [];\n \t\t\t\t\t\taddAllToSet(outdatedDependencies[parentId], [moduleId]);\n \t\t\t\t\t\tcontinue;\n \t\t\t\t\t}\n \t\t\t\t\tdelete outdatedDependencies[parentId];\n \t\t\t\t\toutdatedModules.push(parentId);\n \t\t\t\t\tqueue.push({\n \t\t\t\t\t\tchain: chain.concat([parentId]),\n \t\t\t\t\t\tid: parentId\n \t\t\t\t\t});\n \t\t\t\t}\n \t\t\t}\n\n \t\t\treturn {\n \t\t\t\ttype: \"accepted\",\n \t\t\t\tmoduleId: updateModuleId,\n \t\t\t\toutdatedModules: outdatedModules,\n \t\t\t\toutdatedDependencies: outdatedDependencies\n \t\t\t};\n \t\t}\n\n \t\tfunction addAllToSet(a, b) {\n \t\t\tfor (var i = 0; i < b.length; i++) {\n \t\t\t\tvar item = b[i];\n \t\t\t\tif (a.indexOf(item) === -1) a.push(item);\n \t\t\t}\n \t\t}\n\n \t\t// at begin all updates modules are outdated\n \t\t// the \"outdated\" status can propagate to parents if they don't accept the children\n \t\tvar outdatedDependencies = {};\n \t\tvar outdatedModules = [];\n \t\tvar appliedUpdate = {};\n\n \t\tvar warnUnexpectedRequire = function warnUnexpectedRequire() {\n \t\t\tconsole.warn(\n \t\t\t\t\"[HMR] unexpected require(\" + result.moduleId + \") to disposed module\"\n \t\t\t);\n \t\t};\n\n \t\tfor (var id in hotUpdate) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\n \t\t\t\tmoduleId = toModuleId(id);\n \t\t\t\t/** @type {TODO} */\n \t\t\t\tvar result;\n \t\t\t\tif (hotUpdate[id]) {\n \t\t\t\t\tresult = getAffectedStuff(moduleId);\n \t\t\t\t} else {\n \t\t\t\t\tresult = {\n \t\t\t\t\t\ttype: \"disposed\",\n \t\t\t\t\t\tmoduleId: id\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\t/** @type {Error|false} */\n \t\t\t\tvar abortError = false;\n \t\t\t\tvar doApply = false;\n \t\t\t\tvar doDispose = false;\n \t\t\t\tvar chainInfo = \"\";\n \t\t\t\tif (result.chain) {\n \t\t\t\t\tchainInfo = \"\\nUpdate propagation: \" + result.chain.join(\" -> \");\n \t\t\t\t}\n \t\t\t\tswitch (result.type) {\n \t\t\t\t\tcase \"self-declined\":\n \t\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n \t\t\t\t\t\tif (!options.ignoreDeclined)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because of self decline: \" +\n \t\t\t\t\t\t\t\t\tresult.moduleId +\n \t\t\t\t\t\t\t\t\tchainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"declined\":\n \t\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n \t\t\t\t\t\tif (!options.ignoreDeclined)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because of declined dependency: \" +\n \t\t\t\t\t\t\t\t\tresult.moduleId +\n \t\t\t\t\t\t\t\t\t\" in \" +\n \t\t\t\t\t\t\t\t\tresult.parentId +\n \t\t\t\t\t\t\t\t\tchainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"unaccepted\":\n \t\t\t\t\t\tif (options.onUnaccepted) options.onUnaccepted(result);\n \t\t\t\t\t\tif (!options.ignoreUnaccepted)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because \" + moduleId + \" is not accepted\" + chainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"accepted\":\n \t\t\t\t\t\tif (options.onAccepted) options.onAccepted(result);\n \t\t\t\t\t\tdoApply = true;\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"disposed\":\n \t\t\t\t\t\tif (options.onDisposed) options.onDisposed(result);\n \t\t\t\t\t\tdoDispose = true;\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tdefault:\n \t\t\t\t\t\tthrow new Error(\"Unexception type \" + result.type);\n \t\t\t\t}\n \t\t\t\tif (abortError) {\n \t\t\t\t\thotSetStatus(\"abort\");\n \t\t\t\t\treturn Promise.reject(abortError);\n \t\t\t\t}\n \t\t\t\tif (doApply) {\n \t\t\t\t\tappliedUpdate[moduleId] = hotUpdate[moduleId];\n \t\t\t\t\taddAllToSet(outdatedModules, result.outdatedModules);\n \t\t\t\t\tfor (moduleId in result.outdatedDependencies) {\n \t\t\t\t\t\tif (\n \t\t\t\t\t\t\tObject.prototype.hasOwnProperty.call(\n \t\t\t\t\t\t\t\tresult.outdatedDependencies,\n \t\t\t\t\t\t\t\tmoduleId\n \t\t\t\t\t\t\t)\n \t\t\t\t\t\t) {\n \t\t\t\t\t\t\tif (!outdatedDependencies[moduleId])\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId] = [];\n \t\t\t\t\t\t\taddAllToSet(\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId],\n \t\t\t\t\t\t\t\tresult.outdatedDependencies[moduleId]\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t\tif (doDispose) {\n \t\t\t\t\taddAllToSet(outdatedModules, [result.moduleId]);\n \t\t\t\t\tappliedUpdate[moduleId] = warnUnexpectedRequire;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Store self accepted outdated modules to require them later by the module system\n \t\tvar outdatedSelfAcceptedModules = [];\n \t\tfor (i = 0; i < outdatedModules.length; i++) {\n \t\t\tmoduleId = outdatedModules[i];\n \t\t\tif (\n \t\t\t\tinstalledModules[moduleId] &&\n \t\t\t\tinstalledModules[moduleId].hot._selfAccepted &&\n \t\t\t\t// removed self-accepted modules should not be required\n \t\t\t\tappliedUpdate[moduleId] !== warnUnexpectedRequire\n \t\t\t) {\n \t\t\t\toutdatedSelfAcceptedModules.push({\n \t\t\t\t\tmodule: moduleId,\n \t\t\t\t\terrorHandler: installedModules[moduleId].hot._selfAccepted\n \t\t\t\t});\n \t\t\t}\n \t\t}\n\n \t\t// Now in \"dispose\" phase\n \t\thotSetStatus(\"dispose\");\n \t\tObject.keys(hotAvailableFilesMap).forEach(function(chunkId) {\n \t\t\tif (hotAvailableFilesMap[chunkId] === false) {\n \t\t\t\thotDisposeChunk(chunkId);\n \t\t\t}\n \t\t});\n\n \t\tvar idx;\n \t\tvar queue = outdatedModules.slice();\n \t\twhile (queue.length > 0) {\n \t\t\tmoduleId = queue.pop();\n \t\t\tmodule = installedModules[moduleId];\n \t\t\tif (!module) continue;\n\n \t\t\tvar data = {};\n\n \t\t\t// Call dispose handlers\n \t\t\tvar disposeHandlers = module.hot._disposeHandlers;\n \t\t\tfor (j = 0; j < disposeHandlers.length; j++) {\n \t\t\t\tcb = disposeHandlers[j];\n \t\t\t\tcb(data);\n \t\t\t}\n \t\t\thotCurrentModuleData[moduleId] = data;\n\n \t\t\t// disable module (this disables requires from this module)\n \t\t\tmodule.hot.active = false;\n\n \t\t\t// remove module from cache\n \t\t\tdelete installedModules[moduleId];\n\n \t\t\t// when disposing there is no need to call dispose handler\n \t\t\tdelete outdatedDependencies[moduleId];\n\n \t\t\t// remove \"parents\" references from all children\n \t\t\tfor (j = 0; j < module.children.length; j++) {\n \t\t\t\tvar child = installedModules[module.children[j]];\n \t\t\t\tif (!child) continue;\n \t\t\t\tidx = child.parents.indexOf(moduleId);\n \t\t\t\tif (idx >= 0) {\n \t\t\t\t\tchild.parents.splice(idx, 1);\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// remove outdated dependency from module children\n \t\tvar dependency;\n \t\tvar moduleOutdatedDependencies;\n \t\tfor (moduleId in outdatedDependencies) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)\n \t\t\t) {\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (module) {\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\n \t\t\t\t\tfor (j = 0; j < moduleOutdatedDependencies.length; j++) {\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[j];\n \t\t\t\t\t\tidx = module.children.indexOf(dependency);\n \t\t\t\t\t\tif (idx >= 0) module.children.splice(idx, 1);\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Now in \"apply\" phase\n \t\thotSetStatus(\"apply\");\n\n \t\thotCurrentHash = hotUpdateNewHash;\n\n \t\t// insert new code\n \t\tfor (moduleId in appliedUpdate) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {\n \t\t\t\tmodules[moduleId] = appliedUpdate[moduleId];\n \t\t\t}\n \t\t}\n\n \t\t// call accept handlers\n \t\tvar error = null;\n \t\tfor (moduleId in outdatedDependencies) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)\n \t\t\t) {\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (module) {\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\n \t\t\t\t\tvar callbacks = [];\n \t\t\t\t\tfor (i = 0; i < moduleOutdatedDependencies.length; i++) {\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[i];\n \t\t\t\t\t\tcb = module.hot._acceptedDependencies[dependency];\n \t\t\t\t\t\tif (cb) {\n \t\t\t\t\t\t\tif (callbacks.indexOf(cb) !== -1) continue;\n \t\t\t\t\t\t\tcallbacks.push(cb);\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t\tfor (i = 0; i < callbacks.length; i++) {\n \t\t\t\t\t\tcb = callbacks[i];\n \t\t\t\t\t\ttry {\n \t\t\t\t\t\t\tcb(moduleOutdatedDependencies);\n \t\t\t\t\t\t} catch (err) {\n \t\t\t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\t\t\ttype: \"accept-errored\",\n \t\t\t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\t\t\tdependencyId: moduleOutdatedDependencies[i],\n \t\t\t\t\t\t\t\t\terror: err\n \t\t\t\t\t\t\t\t});\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Load self accepted modules\n \t\tfor (i = 0; i < outdatedSelfAcceptedModules.length; i++) {\n \t\t\tvar item = outdatedSelfAcceptedModules[i];\n \t\t\tmoduleId = item.module;\n \t\t\thotCurrentParents = [moduleId];\n \t\t\ttry {\n \t\t\t\t__webpack_require__(moduleId);\n \t\t\t} catch (err) {\n \t\t\t\tif (typeof item.errorHandler === \"function\") {\n \t\t\t\t\ttry {\n \t\t\t\t\t\titem.errorHandler(err);\n \t\t\t\t\t} catch (err2) {\n \t\t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\t\ttype: \"self-accept-error-handler-errored\",\n \t\t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\t\terror: err2,\n \t\t\t\t\t\t\t\toriginalError: err\n \t\t\t\t\t\t\t});\n \t\t\t\t\t\t}\n \t\t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\t\tif (!error) error = err2;\n \t\t\t\t\t\t}\n \t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t}\n \t\t\t\t} else {\n \t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\ttype: \"self-accept-errored\",\n \t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\terror: err\n \t\t\t\t\t\t});\n \t\t\t\t\t}\n \t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// handle errors in accept handlers and self accepted module load\n \t\tif (error) {\n \t\t\thotSetStatus(\"fail\");\n \t\t\treturn Promise.reject(error);\n \t\t}\n\n \t\thotSetStatus(\"idle\");\n \t\treturn new Promise(function(resolve) {\n \t\t\tresolve(outdatedModules);\n \t\t});\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"static/runtime/webpack.js\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"static/chunks/\" + ({}[chunkId]||chunkId) + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {},\n \t\t\thot: hotCreateModule(moduleId),\n \t\t\tparents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),\n \t\t\tchildren: []\n \t\t};\n\n \t\t// Execute the module function\n \t\tvar threw = true;\n \t\ttry {\n \t\t\tmodules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));\n \t\t\tthrew = false;\n \t\t} finally {\n \t\t\tif(threw) delete installedModules[moduleId];\n \t\t}\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \t// __webpack_hash__\n \t__webpack_require__.h = function() { return hotCurrentHash; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A","sourceRoot":""} -------------------------------------------------------------------------------- /out/_next/static/runtime/webpack.js: -------------------------------------------------------------------------------- 1 | /******/ (function(modules) { // webpackBootstrap 2 | /******/ // install a JSONP callback for chunk loading 3 | /******/ function webpackJsonpCallback(data) { 4 | /******/ var chunkIds = data[0]; 5 | /******/ var moreModules = data[1]; 6 | /******/ var executeModules = data[2]; 7 | /******/ 8 | /******/ // add "moreModules" to the modules object, 9 | /******/ // then flag all "chunkIds" as loaded and fire callback 10 | /******/ var moduleId, chunkId, i = 0, resolves = []; 11 | /******/ for(;i < chunkIds.length; i++) { 12 | /******/ chunkId = chunkIds[i]; 13 | /******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { 14 | /******/ resolves.push(installedChunks[chunkId][0]); 15 | /******/ } 16 | /******/ installedChunks[chunkId] = 0; 17 | /******/ } 18 | /******/ for(moduleId in moreModules) { 19 | /******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { 20 | /******/ modules[moduleId] = moreModules[moduleId]; 21 | /******/ } 22 | /******/ } 23 | /******/ if(parentJsonpFunction) parentJsonpFunction(data); 24 | /******/ 25 | /******/ while(resolves.length) { 26 | /******/ resolves.shift()(); 27 | /******/ } 28 | /******/ 29 | /******/ // add entry modules from loaded chunk to deferred list 30 | /******/ deferredModules.push.apply(deferredModules, executeModules || []); 31 | /******/ 32 | /******/ // run deferred modules when all chunks ready 33 | /******/ return checkDeferredModules(); 34 | /******/ }; 35 | /******/ function checkDeferredModules() { 36 | /******/ var result; 37 | /******/ for(var i = 0; i < deferredModules.length; i++) { 38 | /******/ var deferredModule = deferredModules[i]; 39 | /******/ var fulfilled = true; 40 | /******/ for(var j = 1; j < deferredModule.length; j++) { 41 | /******/ var depId = deferredModule[j]; 42 | /******/ if(installedChunks[depId] !== 0) fulfilled = false; 43 | /******/ } 44 | /******/ if(fulfilled) { 45 | /******/ deferredModules.splice(i--, 1); 46 | /******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); 47 | /******/ } 48 | /******/ } 49 | /******/ 50 | /******/ return result; 51 | /******/ } 52 | /******/ function hotDisposeChunk(chunkId) { 53 | /******/ delete installedChunks[chunkId]; 54 | /******/ } 55 | /******/ var parentHotUpdateCallback = window["webpackHotUpdate"]; 56 | /******/ window["webpackHotUpdate"] = // eslint-disable-next-line no-unused-vars 57 | /******/ function webpackHotUpdateCallback(chunkId, moreModules) { 58 | /******/ hotAddUpdateChunk(chunkId, moreModules); 59 | /******/ if (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules); 60 | /******/ } ; 61 | /******/ 62 | /******/ // eslint-disable-next-line no-unused-vars 63 | /******/ function hotDownloadUpdateChunk(chunkId) { 64 | /******/ var script = document.createElement("script"); 65 | /******/ script.charset = "utf-8"; 66 | /******/ script.src = __webpack_require__.p + "static/webpack/" + chunkId + "." + hotCurrentHash + ".hot-update.js"; 67 | /******/ if (null) script.crossOrigin = null; 68 | /******/ document.head.appendChild(script); 69 | /******/ } 70 | /******/ 71 | /******/ // eslint-disable-next-line no-unused-vars 72 | /******/ function hotDownloadManifest(requestTimeout) { 73 | /******/ requestTimeout = requestTimeout || 10000; 74 | /******/ return new Promise(function(resolve, reject) { 75 | /******/ if (typeof XMLHttpRequest === "undefined") { 76 | /******/ return reject(new Error("No browser support")); 77 | /******/ } 78 | /******/ try { 79 | /******/ var request = new XMLHttpRequest(); 80 | /******/ var requestPath = __webpack_require__.p + "static/webpack/" + hotCurrentHash + ".hot-update.json"; 81 | /******/ request.open("GET", requestPath, true); 82 | /******/ request.timeout = requestTimeout; 83 | /******/ request.send(null); 84 | /******/ } catch (err) { 85 | /******/ return reject(err); 86 | /******/ } 87 | /******/ request.onreadystatechange = function() { 88 | /******/ if (request.readyState !== 4) return; 89 | /******/ if (request.status === 0) { 90 | /******/ // timeout 91 | /******/ reject( 92 | /******/ new Error("Manifest request to " + requestPath + " timed out.") 93 | /******/ ); 94 | /******/ } else if (request.status === 404) { 95 | /******/ // no update available 96 | /******/ resolve(); 97 | /******/ } else if (request.status !== 200 && request.status !== 304) { 98 | /******/ // other failure 99 | /******/ reject(new Error("Manifest request to " + requestPath + " failed.")); 100 | /******/ } else { 101 | /******/ // success 102 | /******/ try { 103 | /******/ var update = JSON.parse(request.responseText); 104 | /******/ } catch (e) { 105 | /******/ reject(e); 106 | /******/ return; 107 | /******/ } 108 | /******/ resolve(update); 109 | /******/ } 110 | /******/ }; 111 | /******/ }); 112 | /******/ } 113 | /******/ 114 | /******/ var hotApplyOnUpdate = true; 115 | /******/ // eslint-disable-next-line no-unused-vars 116 | /******/ var hotCurrentHash = "0e7fb358a19ed2d72282"; 117 | /******/ var hotRequestTimeout = 10000; 118 | /******/ var hotCurrentModuleData = {}; 119 | /******/ var hotCurrentChildModule; 120 | /******/ // eslint-disable-next-line no-unused-vars 121 | /******/ var hotCurrentParents = []; 122 | /******/ // eslint-disable-next-line no-unused-vars 123 | /******/ var hotCurrentParentsTemp = []; 124 | /******/ 125 | /******/ // eslint-disable-next-line no-unused-vars 126 | /******/ function hotCreateRequire(moduleId) { 127 | /******/ var me = installedModules[moduleId]; 128 | /******/ if (!me) return __webpack_require__; 129 | /******/ var fn = function(request) { 130 | /******/ if (me.hot.active) { 131 | /******/ if (installedModules[request]) { 132 | /******/ if (installedModules[request].parents.indexOf(moduleId) === -1) { 133 | /******/ installedModules[request].parents.push(moduleId); 134 | /******/ } 135 | /******/ } else { 136 | /******/ hotCurrentParents = [moduleId]; 137 | /******/ hotCurrentChildModule = request; 138 | /******/ } 139 | /******/ if (me.children.indexOf(request) === -1) { 140 | /******/ me.children.push(request); 141 | /******/ } 142 | /******/ } else { 143 | /******/ console.warn( 144 | /******/ "[HMR] unexpected require(" + 145 | /******/ request + 146 | /******/ ") from disposed module " + 147 | /******/ moduleId 148 | /******/ ); 149 | /******/ hotCurrentParents = []; 150 | /******/ } 151 | /******/ return __webpack_require__(request); 152 | /******/ }; 153 | /******/ var ObjectFactory = function ObjectFactory(name) { 154 | /******/ return { 155 | /******/ configurable: true, 156 | /******/ enumerable: true, 157 | /******/ get: function() { 158 | /******/ return __webpack_require__[name]; 159 | /******/ }, 160 | /******/ set: function(value) { 161 | /******/ __webpack_require__[name] = value; 162 | /******/ } 163 | /******/ }; 164 | /******/ }; 165 | /******/ for (var name in __webpack_require__) { 166 | /******/ if ( 167 | /******/ Object.prototype.hasOwnProperty.call(__webpack_require__, name) && 168 | /******/ name !== "e" && 169 | /******/ name !== "t" 170 | /******/ ) { 171 | /******/ Object.defineProperty(fn, name, ObjectFactory(name)); 172 | /******/ } 173 | /******/ } 174 | /******/ fn.e = function(chunkId) { 175 | /******/ if (hotStatus === "ready") hotSetStatus("prepare"); 176 | /******/ hotChunksLoading++; 177 | /******/ return __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) { 178 | /******/ finishChunkLoading(); 179 | /******/ throw err; 180 | /******/ }); 181 | /******/ 182 | /******/ function finishChunkLoading() { 183 | /******/ hotChunksLoading--; 184 | /******/ if (hotStatus === "prepare") { 185 | /******/ if (!hotWaitingFilesMap[chunkId]) { 186 | /******/ hotEnsureUpdateChunk(chunkId); 187 | /******/ } 188 | /******/ if (hotChunksLoading === 0 && hotWaitingFiles === 0) { 189 | /******/ hotUpdateDownloaded(); 190 | /******/ } 191 | /******/ } 192 | /******/ } 193 | /******/ }; 194 | /******/ fn.t = function(value, mode) { 195 | /******/ if (mode & 1) value = fn(value); 196 | /******/ return __webpack_require__.t(value, mode & ~1); 197 | /******/ }; 198 | /******/ return fn; 199 | /******/ } 200 | /******/ 201 | /******/ // eslint-disable-next-line no-unused-vars 202 | /******/ function hotCreateModule(moduleId) { 203 | /******/ var hot = { 204 | /******/ // private stuff 205 | /******/ _acceptedDependencies: {}, 206 | /******/ _declinedDependencies: {}, 207 | /******/ _selfAccepted: false, 208 | /******/ _selfDeclined: false, 209 | /******/ _disposeHandlers: [], 210 | /******/ _main: hotCurrentChildModule !== moduleId, 211 | /******/ 212 | /******/ // Module API 213 | /******/ active: true, 214 | /******/ accept: function(dep, callback) { 215 | /******/ if (dep === undefined) hot._selfAccepted = true; 216 | /******/ else if (typeof dep === "function") hot._selfAccepted = dep; 217 | /******/ else if (typeof dep === "object") 218 | /******/ for (var i = 0; i < dep.length; i++) 219 | /******/ hot._acceptedDependencies[dep[i]] = callback || function() {}; 220 | /******/ else hot._acceptedDependencies[dep] = callback || function() {}; 221 | /******/ }, 222 | /******/ decline: function(dep) { 223 | /******/ if (dep === undefined) hot._selfDeclined = true; 224 | /******/ else if (typeof dep === "object") 225 | /******/ for (var i = 0; i < dep.length; i++) 226 | /******/ hot._declinedDependencies[dep[i]] = true; 227 | /******/ else hot._declinedDependencies[dep] = true; 228 | /******/ }, 229 | /******/ dispose: function(callback) { 230 | /******/ hot._disposeHandlers.push(callback); 231 | /******/ }, 232 | /******/ addDisposeHandler: function(callback) { 233 | /******/ hot._disposeHandlers.push(callback); 234 | /******/ }, 235 | /******/ removeDisposeHandler: function(callback) { 236 | /******/ var idx = hot._disposeHandlers.indexOf(callback); 237 | /******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1); 238 | /******/ }, 239 | /******/ 240 | /******/ // Management API 241 | /******/ check: hotCheck, 242 | /******/ apply: hotApply, 243 | /******/ status: function(l) { 244 | /******/ if (!l) return hotStatus; 245 | /******/ hotStatusHandlers.push(l); 246 | /******/ }, 247 | /******/ addStatusHandler: function(l) { 248 | /******/ hotStatusHandlers.push(l); 249 | /******/ }, 250 | /******/ removeStatusHandler: function(l) { 251 | /******/ var idx = hotStatusHandlers.indexOf(l); 252 | /******/ if (idx >= 0) hotStatusHandlers.splice(idx, 1); 253 | /******/ }, 254 | /******/ 255 | /******/ //inherit from previous dispose call 256 | /******/ data: hotCurrentModuleData[moduleId] 257 | /******/ }; 258 | /******/ hotCurrentChildModule = undefined; 259 | /******/ return hot; 260 | /******/ } 261 | /******/ 262 | /******/ var hotStatusHandlers = []; 263 | /******/ var hotStatus = "idle"; 264 | /******/ 265 | /******/ function hotSetStatus(newStatus) { 266 | /******/ hotStatus = newStatus; 267 | /******/ for (var i = 0; i < hotStatusHandlers.length; i++) 268 | /******/ hotStatusHandlers[i].call(null, newStatus); 269 | /******/ } 270 | /******/ 271 | /******/ // while downloading 272 | /******/ var hotWaitingFiles = 0; 273 | /******/ var hotChunksLoading = 0; 274 | /******/ var hotWaitingFilesMap = {}; 275 | /******/ var hotRequestedFilesMap = {}; 276 | /******/ var hotAvailableFilesMap = {}; 277 | /******/ var hotDeferred; 278 | /******/ 279 | /******/ // The update info 280 | /******/ var hotUpdate, hotUpdateNewHash; 281 | /******/ 282 | /******/ function toModuleId(id) { 283 | /******/ var isNumber = +id + "" === id; 284 | /******/ return isNumber ? +id : id; 285 | /******/ } 286 | /******/ 287 | /******/ function hotCheck(apply) { 288 | /******/ if (hotStatus !== "idle") { 289 | /******/ throw new Error("check() is only allowed in idle status"); 290 | /******/ } 291 | /******/ hotApplyOnUpdate = apply; 292 | /******/ hotSetStatus("check"); 293 | /******/ return hotDownloadManifest(hotRequestTimeout).then(function(update) { 294 | /******/ if (!update) { 295 | /******/ hotSetStatus("idle"); 296 | /******/ return null; 297 | /******/ } 298 | /******/ hotRequestedFilesMap = {}; 299 | /******/ hotWaitingFilesMap = {}; 300 | /******/ hotAvailableFilesMap = update.c; 301 | /******/ hotUpdateNewHash = update.h; 302 | /******/ 303 | /******/ hotSetStatus("prepare"); 304 | /******/ var promise = new Promise(function(resolve, reject) { 305 | /******/ hotDeferred = { 306 | /******/ resolve: resolve, 307 | /******/ reject: reject 308 | /******/ }; 309 | /******/ }); 310 | /******/ hotUpdate = {}; 311 | /******/ for(var chunkId in installedChunks) 312 | /******/ // eslint-disable-next-line no-lone-blocks 313 | /******/ { 314 | /******/ /*globals chunkId */ 315 | /******/ hotEnsureUpdateChunk(chunkId); 316 | /******/ } 317 | /******/ if ( 318 | /******/ hotStatus === "prepare" && 319 | /******/ hotChunksLoading === 0 && 320 | /******/ hotWaitingFiles === 0 321 | /******/ ) { 322 | /******/ hotUpdateDownloaded(); 323 | /******/ } 324 | /******/ return promise; 325 | /******/ }); 326 | /******/ } 327 | /******/ 328 | /******/ // eslint-disable-next-line no-unused-vars 329 | /******/ function hotAddUpdateChunk(chunkId, moreModules) { 330 | /******/ if (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId]) 331 | /******/ return; 332 | /******/ hotRequestedFilesMap[chunkId] = false; 333 | /******/ for (var moduleId in moreModules) { 334 | /******/ if (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { 335 | /******/ hotUpdate[moduleId] = moreModules[moduleId]; 336 | /******/ } 337 | /******/ } 338 | /******/ if (--hotWaitingFiles === 0 && hotChunksLoading === 0) { 339 | /******/ hotUpdateDownloaded(); 340 | /******/ } 341 | /******/ } 342 | /******/ 343 | /******/ function hotEnsureUpdateChunk(chunkId) { 344 | /******/ if (!hotAvailableFilesMap[chunkId]) { 345 | /******/ hotWaitingFilesMap[chunkId] = true; 346 | /******/ } else { 347 | /******/ hotRequestedFilesMap[chunkId] = true; 348 | /******/ hotWaitingFiles++; 349 | /******/ hotDownloadUpdateChunk(chunkId); 350 | /******/ } 351 | /******/ } 352 | /******/ 353 | /******/ function hotUpdateDownloaded() { 354 | /******/ hotSetStatus("ready"); 355 | /******/ var deferred = hotDeferred; 356 | /******/ hotDeferred = null; 357 | /******/ if (!deferred) return; 358 | /******/ if (hotApplyOnUpdate) { 359 | /******/ // Wrap deferred object in Promise to mark it as a well-handled Promise to 360 | /******/ // avoid triggering uncaught exception warning in Chrome. 361 | /******/ // See https://bugs.chromium.org/p/chromium/issues/detail?id=465666 362 | /******/ Promise.resolve() 363 | /******/ .then(function() { 364 | /******/ return hotApply(hotApplyOnUpdate); 365 | /******/ }) 366 | /******/ .then( 367 | /******/ function(result) { 368 | /******/ deferred.resolve(result); 369 | /******/ }, 370 | /******/ function(err) { 371 | /******/ deferred.reject(err); 372 | /******/ } 373 | /******/ ); 374 | /******/ } else { 375 | /******/ var outdatedModules = []; 376 | /******/ for (var id in hotUpdate) { 377 | /******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) { 378 | /******/ outdatedModules.push(toModuleId(id)); 379 | /******/ } 380 | /******/ } 381 | /******/ deferred.resolve(outdatedModules); 382 | /******/ } 383 | /******/ } 384 | /******/ 385 | /******/ function hotApply(options) { 386 | /******/ if (hotStatus !== "ready") 387 | /******/ throw new Error("apply() is only allowed in ready status"); 388 | /******/ options = options || {}; 389 | /******/ 390 | /******/ var cb; 391 | /******/ var i; 392 | /******/ var j; 393 | /******/ var module; 394 | /******/ var moduleId; 395 | /******/ 396 | /******/ function getAffectedStuff(updateModuleId) { 397 | /******/ var outdatedModules = [updateModuleId]; 398 | /******/ var outdatedDependencies = {}; 399 | /******/ 400 | /******/ var queue = outdatedModules.map(function(id) { 401 | /******/ return { 402 | /******/ chain: [id], 403 | /******/ id: id 404 | /******/ }; 405 | /******/ }); 406 | /******/ while (queue.length > 0) { 407 | /******/ var queueItem = queue.pop(); 408 | /******/ var moduleId = queueItem.id; 409 | /******/ var chain = queueItem.chain; 410 | /******/ module = installedModules[moduleId]; 411 | /******/ if (!module || module.hot._selfAccepted) continue; 412 | /******/ if (module.hot._selfDeclined) { 413 | /******/ return { 414 | /******/ type: "self-declined", 415 | /******/ chain: chain, 416 | /******/ moduleId: moduleId 417 | /******/ }; 418 | /******/ } 419 | /******/ if (module.hot._main) { 420 | /******/ return { 421 | /******/ type: "unaccepted", 422 | /******/ chain: chain, 423 | /******/ moduleId: moduleId 424 | /******/ }; 425 | /******/ } 426 | /******/ for (var i = 0; i < module.parents.length; i++) { 427 | /******/ var parentId = module.parents[i]; 428 | /******/ var parent = installedModules[parentId]; 429 | /******/ if (!parent) continue; 430 | /******/ if (parent.hot._declinedDependencies[moduleId]) { 431 | /******/ return { 432 | /******/ type: "declined", 433 | /******/ chain: chain.concat([parentId]), 434 | /******/ moduleId: moduleId, 435 | /******/ parentId: parentId 436 | /******/ }; 437 | /******/ } 438 | /******/ if (outdatedModules.indexOf(parentId) !== -1) continue; 439 | /******/ if (parent.hot._acceptedDependencies[moduleId]) { 440 | /******/ if (!outdatedDependencies[parentId]) 441 | /******/ outdatedDependencies[parentId] = []; 442 | /******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); 443 | /******/ continue; 444 | /******/ } 445 | /******/ delete outdatedDependencies[parentId]; 446 | /******/ outdatedModules.push(parentId); 447 | /******/ queue.push({ 448 | /******/ chain: chain.concat([parentId]), 449 | /******/ id: parentId 450 | /******/ }); 451 | /******/ } 452 | /******/ } 453 | /******/ 454 | /******/ return { 455 | /******/ type: "accepted", 456 | /******/ moduleId: updateModuleId, 457 | /******/ outdatedModules: outdatedModules, 458 | /******/ outdatedDependencies: outdatedDependencies 459 | /******/ }; 460 | /******/ } 461 | /******/ 462 | /******/ function addAllToSet(a, b) { 463 | /******/ for (var i = 0; i < b.length; i++) { 464 | /******/ var item = b[i]; 465 | /******/ if (a.indexOf(item) === -1) a.push(item); 466 | /******/ } 467 | /******/ } 468 | /******/ 469 | /******/ // at begin all updates modules are outdated 470 | /******/ // the "outdated" status can propagate to parents if they don't accept the children 471 | /******/ var outdatedDependencies = {}; 472 | /******/ var outdatedModules = []; 473 | /******/ var appliedUpdate = {}; 474 | /******/ 475 | /******/ var warnUnexpectedRequire = function warnUnexpectedRequire() { 476 | /******/ console.warn( 477 | /******/ "[HMR] unexpected require(" + result.moduleId + ") to disposed module" 478 | /******/ ); 479 | /******/ }; 480 | /******/ 481 | /******/ for (var id in hotUpdate) { 482 | /******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) { 483 | /******/ moduleId = toModuleId(id); 484 | /******/ /** @type {TODO} */ 485 | /******/ var result; 486 | /******/ if (hotUpdate[id]) { 487 | /******/ result = getAffectedStuff(moduleId); 488 | /******/ } else { 489 | /******/ result = { 490 | /******/ type: "disposed", 491 | /******/ moduleId: id 492 | /******/ }; 493 | /******/ } 494 | /******/ /** @type {Error|false} */ 495 | /******/ var abortError = false; 496 | /******/ var doApply = false; 497 | /******/ var doDispose = false; 498 | /******/ var chainInfo = ""; 499 | /******/ if (result.chain) { 500 | /******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); 501 | /******/ } 502 | /******/ switch (result.type) { 503 | /******/ case "self-declined": 504 | /******/ if (options.onDeclined) options.onDeclined(result); 505 | /******/ if (!options.ignoreDeclined) 506 | /******/ abortError = new Error( 507 | /******/ "Aborted because of self decline: " + 508 | /******/ result.moduleId + 509 | /******/ chainInfo 510 | /******/ ); 511 | /******/ break; 512 | /******/ case "declined": 513 | /******/ if (options.onDeclined) options.onDeclined(result); 514 | /******/ if (!options.ignoreDeclined) 515 | /******/ abortError = new Error( 516 | /******/ "Aborted because of declined dependency: " + 517 | /******/ result.moduleId + 518 | /******/ " in " + 519 | /******/ result.parentId + 520 | /******/ chainInfo 521 | /******/ ); 522 | /******/ break; 523 | /******/ case "unaccepted": 524 | /******/ if (options.onUnaccepted) options.onUnaccepted(result); 525 | /******/ if (!options.ignoreUnaccepted) 526 | /******/ abortError = new Error( 527 | /******/ "Aborted because " + moduleId + " is not accepted" + chainInfo 528 | /******/ ); 529 | /******/ break; 530 | /******/ case "accepted": 531 | /******/ if (options.onAccepted) options.onAccepted(result); 532 | /******/ doApply = true; 533 | /******/ break; 534 | /******/ case "disposed": 535 | /******/ if (options.onDisposed) options.onDisposed(result); 536 | /******/ doDispose = true; 537 | /******/ break; 538 | /******/ default: 539 | /******/ throw new Error("Unexception type " + result.type); 540 | /******/ } 541 | /******/ if (abortError) { 542 | /******/ hotSetStatus("abort"); 543 | /******/ return Promise.reject(abortError); 544 | /******/ } 545 | /******/ if (doApply) { 546 | /******/ appliedUpdate[moduleId] = hotUpdate[moduleId]; 547 | /******/ addAllToSet(outdatedModules, result.outdatedModules); 548 | /******/ for (moduleId in result.outdatedDependencies) { 549 | /******/ if ( 550 | /******/ Object.prototype.hasOwnProperty.call( 551 | /******/ result.outdatedDependencies, 552 | /******/ moduleId 553 | /******/ ) 554 | /******/ ) { 555 | /******/ if (!outdatedDependencies[moduleId]) 556 | /******/ outdatedDependencies[moduleId] = []; 557 | /******/ addAllToSet( 558 | /******/ outdatedDependencies[moduleId], 559 | /******/ result.outdatedDependencies[moduleId] 560 | /******/ ); 561 | /******/ } 562 | /******/ } 563 | /******/ } 564 | /******/ if (doDispose) { 565 | /******/ addAllToSet(outdatedModules, [result.moduleId]); 566 | /******/ appliedUpdate[moduleId] = warnUnexpectedRequire; 567 | /******/ } 568 | /******/ } 569 | /******/ } 570 | /******/ 571 | /******/ // Store self accepted outdated modules to require them later by the module system 572 | /******/ var outdatedSelfAcceptedModules = []; 573 | /******/ for (i = 0; i < outdatedModules.length; i++) { 574 | /******/ moduleId = outdatedModules[i]; 575 | /******/ if ( 576 | /******/ installedModules[moduleId] && 577 | /******/ installedModules[moduleId].hot._selfAccepted && 578 | /******/ // removed self-accepted modules should not be required 579 | /******/ appliedUpdate[moduleId] !== warnUnexpectedRequire 580 | /******/ ) { 581 | /******/ outdatedSelfAcceptedModules.push({ 582 | /******/ module: moduleId, 583 | /******/ errorHandler: installedModules[moduleId].hot._selfAccepted 584 | /******/ }); 585 | /******/ } 586 | /******/ } 587 | /******/ 588 | /******/ // Now in "dispose" phase 589 | /******/ hotSetStatus("dispose"); 590 | /******/ Object.keys(hotAvailableFilesMap).forEach(function(chunkId) { 591 | /******/ if (hotAvailableFilesMap[chunkId] === false) { 592 | /******/ hotDisposeChunk(chunkId); 593 | /******/ } 594 | /******/ }); 595 | /******/ 596 | /******/ var idx; 597 | /******/ var queue = outdatedModules.slice(); 598 | /******/ while (queue.length > 0) { 599 | /******/ moduleId = queue.pop(); 600 | /******/ module = installedModules[moduleId]; 601 | /******/ if (!module) continue; 602 | /******/ 603 | /******/ var data = {}; 604 | /******/ 605 | /******/ // Call dispose handlers 606 | /******/ var disposeHandlers = module.hot._disposeHandlers; 607 | /******/ for (j = 0; j < disposeHandlers.length; j++) { 608 | /******/ cb = disposeHandlers[j]; 609 | /******/ cb(data); 610 | /******/ } 611 | /******/ hotCurrentModuleData[moduleId] = data; 612 | /******/ 613 | /******/ // disable module (this disables requires from this module) 614 | /******/ module.hot.active = false; 615 | /******/ 616 | /******/ // remove module from cache 617 | /******/ delete installedModules[moduleId]; 618 | /******/ 619 | /******/ // when disposing there is no need to call dispose handler 620 | /******/ delete outdatedDependencies[moduleId]; 621 | /******/ 622 | /******/ // remove "parents" references from all children 623 | /******/ for (j = 0; j < module.children.length; j++) { 624 | /******/ var child = installedModules[module.children[j]]; 625 | /******/ if (!child) continue; 626 | /******/ idx = child.parents.indexOf(moduleId); 627 | /******/ if (idx >= 0) { 628 | /******/ child.parents.splice(idx, 1); 629 | /******/ } 630 | /******/ } 631 | /******/ } 632 | /******/ 633 | /******/ // remove outdated dependency from module children 634 | /******/ var dependency; 635 | /******/ var moduleOutdatedDependencies; 636 | /******/ for (moduleId in outdatedDependencies) { 637 | /******/ if ( 638 | /******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId) 639 | /******/ ) { 640 | /******/ module = installedModules[moduleId]; 641 | /******/ if (module) { 642 | /******/ moduleOutdatedDependencies = outdatedDependencies[moduleId]; 643 | /******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) { 644 | /******/ dependency = moduleOutdatedDependencies[j]; 645 | /******/ idx = module.children.indexOf(dependency); 646 | /******/ if (idx >= 0) module.children.splice(idx, 1); 647 | /******/ } 648 | /******/ } 649 | /******/ } 650 | /******/ } 651 | /******/ 652 | /******/ // Now in "apply" phase 653 | /******/ hotSetStatus("apply"); 654 | /******/ 655 | /******/ hotCurrentHash = hotUpdateNewHash; 656 | /******/ 657 | /******/ // insert new code 658 | /******/ for (moduleId in appliedUpdate) { 659 | /******/ if (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) { 660 | /******/ modules[moduleId] = appliedUpdate[moduleId]; 661 | /******/ } 662 | /******/ } 663 | /******/ 664 | /******/ // call accept handlers 665 | /******/ var error = null; 666 | /******/ for (moduleId in outdatedDependencies) { 667 | /******/ if ( 668 | /******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId) 669 | /******/ ) { 670 | /******/ module = installedModules[moduleId]; 671 | /******/ if (module) { 672 | /******/ moduleOutdatedDependencies = outdatedDependencies[moduleId]; 673 | /******/ var callbacks = []; 674 | /******/ for (i = 0; i < moduleOutdatedDependencies.length; i++) { 675 | /******/ dependency = moduleOutdatedDependencies[i]; 676 | /******/ cb = module.hot._acceptedDependencies[dependency]; 677 | /******/ if (cb) { 678 | /******/ if (callbacks.indexOf(cb) !== -1) continue; 679 | /******/ callbacks.push(cb); 680 | /******/ } 681 | /******/ } 682 | /******/ for (i = 0; i < callbacks.length; i++) { 683 | /******/ cb = callbacks[i]; 684 | /******/ try { 685 | /******/ cb(moduleOutdatedDependencies); 686 | /******/ } catch (err) { 687 | /******/ if (options.onErrored) { 688 | /******/ options.onErrored({ 689 | /******/ type: "accept-errored", 690 | /******/ moduleId: moduleId, 691 | /******/ dependencyId: moduleOutdatedDependencies[i], 692 | /******/ error: err 693 | /******/ }); 694 | /******/ } 695 | /******/ if (!options.ignoreErrored) { 696 | /******/ if (!error) error = err; 697 | /******/ } 698 | /******/ } 699 | /******/ } 700 | /******/ } 701 | /******/ } 702 | /******/ } 703 | /******/ 704 | /******/ // Load self accepted modules 705 | /******/ for (i = 0; i < outdatedSelfAcceptedModules.length; i++) { 706 | /******/ var item = outdatedSelfAcceptedModules[i]; 707 | /******/ moduleId = item.module; 708 | /******/ hotCurrentParents = [moduleId]; 709 | /******/ try { 710 | /******/ __webpack_require__(moduleId); 711 | /******/ } catch (err) { 712 | /******/ if (typeof item.errorHandler === "function") { 713 | /******/ try { 714 | /******/ item.errorHandler(err); 715 | /******/ } catch (err2) { 716 | /******/ if (options.onErrored) { 717 | /******/ options.onErrored({ 718 | /******/ type: "self-accept-error-handler-errored", 719 | /******/ moduleId: moduleId, 720 | /******/ error: err2, 721 | /******/ originalError: err 722 | /******/ }); 723 | /******/ } 724 | /******/ if (!options.ignoreErrored) { 725 | /******/ if (!error) error = err2; 726 | /******/ } 727 | /******/ if (!error) error = err; 728 | /******/ } 729 | /******/ } else { 730 | /******/ if (options.onErrored) { 731 | /******/ options.onErrored({ 732 | /******/ type: "self-accept-errored", 733 | /******/ moduleId: moduleId, 734 | /******/ error: err 735 | /******/ }); 736 | /******/ } 737 | /******/ if (!options.ignoreErrored) { 738 | /******/ if (!error) error = err; 739 | /******/ } 740 | /******/ } 741 | /******/ } 742 | /******/ } 743 | /******/ 744 | /******/ // handle errors in accept handlers and self accepted module load 745 | /******/ if (error) { 746 | /******/ hotSetStatus("fail"); 747 | /******/ return Promise.reject(error); 748 | /******/ } 749 | /******/ 750 | /******/ hotSetStatus("idle"); 751 | /******/ return new Promise(function(resolve) { 752 | /******/ resolve(outdatedModules); 753 | /******/ }); 754 | /******/ } 755 | /******/ 756 | /******/ // The module cache 757 | /******/ var installedModules = {}; 758 | /******/ 759 | /******/ // object to store loaded and loading chunks 760 | /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched 761 | /******/ // Promise = chunk loading, 0 = chunk loaded 762 | /******/ var installedChunks = { 763 | /******/ "static/runtime/webpack.js": 0 764 | /******/ }; 765 | /******/ 766 | /******/ var deferredModules = []; 767 | /******/ 768 | /******/ // script path function 769 | /******/ function jsonpScriptSrc(chunkId) { 770 | /******/ return __webpack_require__.p + "static/chunks/" + ({}[chunkId]||chunkId) + ".js" 771 | /******/ } 772 | /******/ 773 | /******/ // The require function 774 | /******/ function __webpack_require__(moduleId) { 775 | /******/ 776 | /******/ // Check if module is in cache 777 | /******/ if(installedModules[moduleId]) { 778 | /******/ return installedModules[moduleId].exports; 779 | /******/ } 780 | /******/ // Create a new module (and put it into the cache) 781 | /******/ var module = installedModules[moduleId] = { 782 | /******/ i: moduleId, 783 | /******/ l: false, 784 | /******/ exports: {}, 785 | /******/ hot: hotCreateModule(moduleId), 786 | /******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp), 787 | /******/ children: [] 788 | /******/ }; 789 | /******/ 790 | /******/ // Execute the module function 791 | /******/ var threw = true; 792 | /******/ try { 793 | /******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId)); 794 | /******/ threw = false; 795 | /******/ } finally { 796 | /******/ if(threw) delete installedModules[moduleId]; 797 | /******/ } 798 | /******/ 799 | /******/ // Flag the module as loaded 800 | /******/ module.l = true; 801 | /******/ 802 | /******/ // Return the exports of the module 803 | /******/ return module.exports; 804 | /******/ } 805 | /******/ 806 | /******/ // This file contains only the entry chunk. 807 | /******/ // The chunk loading function for additional chunks 808 | /******/ __webpack_require__.e = function requireEnsure(chunkId) { 809 | /******/ var promises = []; 810 | /******/ 811 | /******/ 812 | /******/ // JSONP chunk loading for javascript 813 | /******/ 814 | /******/ var installedChunkData = installedChunks[chunkId]; 815 | /******/ if(installedChunkData !== 0) { // 0 means "already installed". 816 | /******/ 817 | /******/ // a Promise means "currently loading". 818 | /******/ if(installedChunkData) { 819 | /******/ promises.push(installedChunkData[2]); 820 | /******/ } else { 821 | /******/ // setup Promise in chunk cache 822 | /******/ var promise = new Promise(function(resolve, reject) { 823 | /******/ installedChunkData = installedChunks[chunkId] = [resolve, reject]; 824 | /******/ }); 825 | /******/ promises.push(installedChunkData[2] = promise); 826 | /******/ 827 | /******/ // start chunk loading 828 | /******/ var script = document.createElement('script'); 829 | /******/ var onScriptComplete; 830 | /******/ 831 | /******/ script.charset = 'utf-8'; 832 | /******/ script.timeout = 120; 833 | /******/ if (__webpack_require__.nc) { 834 | /******/ script.setAttribute("nonce", __webpack_require__.nc); 835 | /******/ } 836 | /******/ script.src = jsonpScriptSrc(chunkId); 837 | /******/ 838 | /******/ // create error before stack unwound to get useful stacktrace later 839 | /******/ var error = new Error(); 840 | /******/ onScriptComplete = function (event) { 841 | /******/ // avoid mem leaks in IE. 842 | /******/ script.onerror = script.onload = null; 843 | /******/ clearTimeout(timeout); 844 | /******/ var chunk = installedChunks[chunkId]; 845 | /******/ if(chunk !== 0) { 846 | /******/ if(chunk) { 847 | /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); 848 | /******/ var realSrc = event && event.target && event.target.src; 849 | /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; 850 | /******/ error.name = 'ChunkLoadError'; 851 | /******/ error.type = errorType; 852 | /******/ error.request = realSrc; 853 | /******/ chunk[1](error); 854 | /******/ } 855 | /******/ installedChunks[chunkId] = undefined; 856 | /******/ } 857 | /******/ }; 858 | /******/ var timeout = setTimeout(function(){ 859 | /******/ onScriptComplete({ type: 'timeout', target: script }); 860 | /******/ }, 120000); 861 | /******/ script.onerror = script.onload = onScriptComplete; 862 | /******/ document.head.appendChild(script); 863 | /******/ } 864 | /******/ } 865 | /******/ return Promise.all(promises); 866 | /******/ }; 867 | /******/ 868 | /******/ // expose the modules object (__webpack_modules__) 869 | /******/ __webpack_require__.m = modules; 870 | /******/ 871 | /******/ // expose the module cache 872 | /******/ __webpack_require__.c = installedModules; 873 | /******/ 874 | /******/ // define getter function for harmony exports 875 | /******/ __webpack_require__.d = function(exports, name, getter) { 876 | /******/ if(!__webpack_require__.o(exports, name)) { 877 | /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 878 | /******/ } 879 | /******/ }; 880 | /******/ 881 | /******/ // define __esModule on exports 882 | /******/ __webpack_require__.r = function(exports) { 883 | /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 884 | /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 885 | /******/ } 886 | /******/ Object.defineProperty(exports, '__esModule', { value: true }); 887 | /******/ }; 888 | /******/ 889 | /******/ // create a fake namespace object 890 | /******/ // mode & 1: value is a module id, require it 891 | /******/ // mode & 2: merge all properties of value into the ns 892 | /******/ // mode & 4: return value when already ns object 893 | /******/ // mode & 8|1: behave like require 894 | /******/ __webpack_require__.t = function(value, mode) { 895 | /******/ if(mode & 1) value = __webpack_require__(value); 896 | /******/ if(mode & 8) return value; 897 | /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 898 | /******/ var ns = Object.create(null); 899 | /******/ __webpack_require__.r(ns); 900 | /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 901 | /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 902 | /******/ return ns; 903 | /******/ }; 904 | /******/ 905 | /******/ // getDefaultExport function for compatibility with non-harmony modules 906 | /******/ __webpack_require__.n = function(module) { 907 | /******/ var getter = module && module.__esModule ? 908 | /******/ function getDefault() { return module['default']; } : 909 | /******/ function getModuleExports() { return module; }; 910 | /******/ __webpack_require__.d(getter, 'a', getter); 911 | /******/ return getter; 912 | /******/ }; 913 | /******/ 914 | /******/ // Object.prototype.hasOwnProperty.call 915 | /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 916 | /******/ 917 | /******/ // __webpack_public_path__ 918 | /******/ __webpack_require__.p = ""; 919 | /******/ 920 | /******/ // on error function for async loading 921 | /******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; 922 | /******/ 923 | /******/ // __webpack_hash__ 924 | /******/ __webpack_require__.h = function() { return hotCurrentHash; }; 925 | /******/ 926 | /******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; 927 | /******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); 928 | /******/ jsonpArray.push = webpackJsonpCallback; 929 | /******/ jsonpArray = jsonpArray.slice(); 930 | /******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); 931 | /******/ var parentJsonpFunction = oldJsonpFunction; 932 | /******/ 933 | /******/ 934 | /******/ // run deferred modules from other chunks 935 | /******/ checkDeferredModules(); 936 | /******/ }) 937 | /************************************************************************/ 938 | /******/ ([]); 939 | //# sourceMappingURL=webpack.js.map --------------------------------------------------------------------------------