diff --git a/dist/exporter/index.html b/dist/exporter/index.html index 1090c16..629a09a 100644 --- a/dist/exporter/index.html +++ b/dist/exporter/index.html @@ -5,7 +5,7 @@ - + @@ -57,6 +57,8 @@ Export + + \ No newline at end of file diff --git a/dist/exporter/main.css b/dist/exporter/main.css new file mode 100644 index 0000000..6d3e879 --- /dev/null +++ b/dist/exporter/main.css @@ -0,0 +1,2 @@ +body{background-color:#3d2b56}div{user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none;display:block;color:#ccf5ac;font-family:"Arial", Helvetica, sans-serif}#helpButton{display:block;position:absolute;right:10px;top:10px;border:1px solid;border-radius:25px;width:25px;height:25px;line-height:25px;text-align:center}.hidden{display:none !important}#info{display:block;position:absolute;right:30px;top:10px;width:200px;text-align:center}.instruction{font-size:12px;margin:auto;width:80%;padding:8px;text-align:center;background-color:#2c497f;border-radius:5px}.center{margin:auto;padding:10px;text-align:center}.numberinput{width:64px}.spriteCanvas{padding:0;min-width:200px;border:1px solid;background-color:#859094}#top{padding-top:15vh;display:flex;flex-direction:row;justify-content:center;align-items:center;margin:0 auto;width:75%}#settings{display:flex;flex-direction:row;justify-content:center;align-content:center}.settingsItem{display:flex;flex-direction:row;margin:12px;padding:4px;text-align:center}.settingsItem input{width:80%}.settingsItem .label{margin:5px}.settingsItem input{border-radius:5px}#frameNumber{text-align:right}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type='number']{-moz-appearance:textfield}#framerate{width:50px;text-align:center}.borderbox{font-size:12px;margin:auto;width:50%;padding:8px;text-align:center}#frameViewer{display:flex;flex-direction:row;align-items:center;justify-content:center}.frame{flex:1;width:32px;height:32px;max-width:32px;color:#ccf5ac;padding:1px;display:inline-block;border:2px solid #6b7578;background-color:#7a8386;align-items:center}.frame.warning{border:2px solid #aa093a;background-color:#6e545c}.frame.selected{border:2px solid #09e7ca;background-color:#4d998f}.frame.selected.warning{border:2px solid #ff044f;background-color:#aa093a}.errorMessage{font-size:12px;width:50%;border:4px solid #aa093a;padding:1px;text-align:center;margin:0 auto}.warningMessage{display:block;color:#ff1d61;background-color:#6e545c;font-family:"Arial", Helvetica, sans-serif}body{background-color:#3d2b56}#dropZone{width:100%;height:100%}#canvasImage{image-rendering:pixelated}.pinContainer{display:inline-grid}.pinButtonContainer{grid-row-start:1;grid-row-end:1;width:75px;height:75px;font-size:12px;border:2px solid #6b7578;border-radius:5px;padding:1px;text-align:center;vertical-align:middle;line-height:75px;margin:5px}.pinButtonContainer.warning{border:2px solid #aa093a;background-color:#6e545c}.pinButtonContainer.warning input{background-color:#6e545c}.pinButtonContainer.selected{border:2px solid #09e7ca;background-color:#4d998f}.pinButtonContainer.selected.warning{border:2px solid #ff044f;background-color:#aa093a}.pinButtonContainer.selected.warning input{background-color:#aa093a}.pinButtonContainer.selected input{background-color:#4d998f}.pinButtonContainer input{background-color:#3d2b56;width:80%;height:20px;transform:translateY(27.5px);border:none;color:#ccf5ac;text-align:center;font-size:10px}#addpin{display:inline-block;width:75px;height:75px;background-color:#6e545c;font-size:4vw}.removeButton{display:block;margin:0 auto;position:relative;transform:translate(37.5px, -32.5px);width:15px;border:1px solid;border-radius:50%;background-color:#9e0f22;color:#e3e3ec;height:15px;line-height:15px}#exportButton{display:block;margin:0 auto;margin-top:20px;width:150px;height:50px;line-height:50px;font-size:30px;text-align:center;border:1px solid;border-radius:5px} + diff --git a/package.json b/package.json index c3c65b1..6d83162 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "devDependencies": { "css-loader": "^3.2.0", "fibers": "^4.0.1", + "mini-css-extract-plugin": "^0.8.0", "node-sass": "^4.12.0", "prettier": "^1.18.2", "sass": "^1.23.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a92fa80..ae8a1f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,18 +6,19 @@ dependencies: devDependencies: css-loader: 3.2.0_webpack@4.41.0 fibers: 4.0.1 + mini-css-extract-plugin: 0.8.0_webpack@4.41.0 node-sass: 4.12.0 prettier: 1.18.2 sass: 1.23.0 sass-loader: 8.0.0_715f5a3aa1d72bfc7553feba4f455297 style-loader: 1.0.0_webpack@4.41.0 - ts-loader: 6.1.2_typescript@3.6.3 + ts-loader: 6.2.0_typescript@3.6.3 tslint: 5.20.0_typescript@3.6.3 tslint-config-prettier: 1.18.0 typescript: 3.6.3 webpack: 4.41.0_webpack@4.41.0 webpack-cli: 3.3.9_webpack@4.41.0 - webpack-dev-server: 3.8.1_webpack@4.41.0 + webpack-dev-server: 3.8.2_webpack@4.41.0 lockfileVersion: 5.1 packages: /@babel/code-frame/7.5.5: @@ -46,13 +47,13 @@ packages: dependencies: '@types/events': 3.0.0 '@types/minimatch': 3.0.3 - '@types/node': 12.7.7 + '@types/node': 12.7.12 dev: true resolution: integrity: sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== /@types/jszip/3.1.6: dependencies: - '@types/node': 12.7.8 + '@types/node': 12.7.12 dev: false resolution: integrity: sha512-m8uFcI+O2EupCfbEVQWsBM/4nhbegjOHL7cQgBpM95FeF98kdFJXzy9/8yhx4b3lCRl/gMBhcvyh30Qt3X+XPQ== @@ -60,14 +61,9 @@ packages: dev: true resolution: integrity: sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - /@types/node/12.7.7: - dev: true + /@types/node/12.7.12: resolution: - integrity: sha512-4jUncNe2tj1nmrO/34PsRpZqYVnRV1svbU78cKhuQKkMntKB/AmdLyGgswcZKjFHEHGpiY8pVD8CuVI55nP54w== - /@types/node/12.7.8: - dev: false - resolution: - integrity: sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A== + integrity: sha512-KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ== /@webassemblyjs/ast/1.8.5: dependencies: '@webassemblyjs/helper-module-context': 1.8.5 @@ -509,10 +505,10 @@ packages: node: 0.4 || >=0.5.8 resolution: integrity: sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - /bluebird/3.5.5: + /bluebird/3.7.0: dev: true resolution: - integrity: sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== + integrity: sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg== /bn.js/4.11.8: dev: true resolution: @@ -678,8 +674,8 @@ packages: integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== /cacache/12.0.3: dependencies: - bluebird: 3.5.5 - chownr: 1.1.2 + bluebird: 3.7.0 + chownr: 1.1.3 figgy-pudding: 3.5.1 glob: 7.1.4 graceful-fs: 4.2.2 @@ -799,10 +795,10 @@ packages: fsevents: 2.1.0 resolution: integrity: sha512-/j5PPkb5Feyps9e+jo07jUZGvkB5Aj953NrI4s8xSVScrAo/RHeILrtdb4uzR7N6aaFFxxJ+gt8mA8HfNpw76w== - /chownr/1.1.2: + /chownr/1.1.3: dev: true resolution: - integrity: sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== + integrity: sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== /chrome-trace-event/1.0.2: dependencies: tslib: 1.10.0 @@ -896,10 +892,10 @@ packages: node: '>= 0.8' resolution: integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - /commander/2.20.0: + /commander/2.20.1: dev: true resolution: - integrity: sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + integrity: sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg== /commondir/1.0.1: dev: true resolution: @@ -910,7 +906,7 @@ packages: integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== /compressible/2.0.17: dependencies: - mime-db: 1.41.0 + mime-db: 1.42.0 dev: true engines: node: '>= 0.6' @@ -1306,7 +1302,7 @@ packages: integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== /duplexify/3.7.1: dependencies: - end-of-stream: 1.4.3 + end-of-stream: 1.4.4 inherits: 2.0.4 readable-stream: 2.3.6 stream-shift: 1.0.0 @@ -1352,12 +1348,12 @@ packages: node: '>= 0.8' resolution: integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - /end-of-stream/1.4.3: + /end-of-stream/1.4.4: dependencies: once: 1.4.0 dev: true resolution: - integrity: sha512-cbNhPFS6MlYlWTGncSiDYbdqKhwWFy7kNeb1YSOG6K65i/wPTkLVCJQj0hXA4j0m5Da+hBWnqopEnu1FFelisQ== + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== /enhanced-resolve/4.1.0: dependencies: graceful-fs: 4.2.2 @@ -1368,6 +1364,16 @@ packages: node: '>=6.9.0' resolution: integrity: sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== + /enhanced-resolve/4.1.1: + dependencies: + graceful-fs: 4.2.2 + memory-fs: 0.5.0 + tapable: 1.1.3 + dev: true + engines: + node: '>=6.9.0' + resolution: + integrity: sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== /errno/0.1.7: dependencies: prr: 1.0.1 @@ -1573,12 +1579,6 @@ packages: '0': node >=0.6.0 resolution: integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - /extsprintf/1.4.0: - dev: true - engines: - '0': node >=0.6.0 - resolution: - integrity: sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= /fast-deep-equal/2.0.1: dev: true resolution: @@ -2061,10 +2061,10 @@ packages: node: '>=0.10.0' resolution: integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - /hosted-git-info/2.8.4: + /hosted-git-info/2.8.5: dev: true resolution: - integrity: sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== + integrity: sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== /hpack.js/2.1.6: dependencies: inherits: 2.0.4 @@ -2295,12 +2295,12 @@ packages: node: '>= 0.10' resolution: integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - /is-absolute-url/3.0.2: + /is-absolute-url/3.0.3: dev: true engines: node: '>=8' resolution: - integrity: sha512-+5g/wLlcm1AcxSP7014m6GvbPHswDx980vD/3bZaap8aGV9Yfs7Q6y6tfaupgZ5O74Byzc8dGrSCJ+bFXx0KdA== + integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== /is-accessor-descriptor/0.1.6: dependencies: kind-of: 3.2.2 @@ -2483,6 +2483,12 @@ packages: node: '>=6' resolution: integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + /is-plain-obj/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4= /is-plain-object/2.0.4: dependencies: isobject: 3.0.1 @@ -2736,7 +2742,7 @@ packages: integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== /lru-cache/5.1.1: dependencies: - yallist: 3.0.3 + yallist: 3.1.1 dev: true resolution: integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== @@ -2812,6 +2818,15 @@ packages: dev: true resolution: integrity: sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + /memory-fs/0.5.0: + dependencies: + errno: 0.1.7 + readable-stream: 2.3.6 + dev: true + engines: + node: '>=4.3.0 <5.0.0 || >=5.10' + resolution: + integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== /meow/3.7.0: dependencies: camelcase-keys: 2.1.0 @@ -2882,12 +2897,12 @@ packages: node: '>= 0.6' resolution: integrity: sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - /mime-db/1.41.0: + /mime-db/1.42.0: dev: true engines: node: '>= 0.6' resolution: - integrity: sha512-B5gxBI+2K431XW8C2rcc/lhppbuji67nf9v39eH8pkWoZDxnAL0PxdpH32KYRScniF8qDHBDlI+ipgg5WrCUYw== + integrity: sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== /mime-types/2.1.24: dependencies: mime-db: 1.40.0 @@ -2916,6 +2931,20 @@ packages: node: '>=6' resolution: integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + /mini-css-extract-plugin/0.8.0_webpack@4.41.0: + dependencies: + loader-utils: 1.2.3 + normalize-url: 1.9.1 + schema-utils: 1.0.0 + webpack: 4.41.0_webpack@4.41.0 + webpack-sources: 1.4.3 + dev: true + engines: + node: '>= 6.9.0' + peerDependencies: + webpack: ^4.4.0 + resolution: + integrity: sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw== /minimalistic-assert/1.0.1: dev: true resolution: @@ -2942,7 +2971,7 @@ packages: dependencies: concat-stream: 1.6.2 duplexify: 3.7.1 - end-of-stream: 1.4.3 + end-of-stream: 1.4.4 flush-write-stream: 1.1.1 from2: 2.3.0 parallel-transform: 1.2.0 @@ -3042,10 +3071,12 @@ packages: dev: true resolution: integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - /node-forge/0.8.2: + /node-forge/0.9.0: dev: true + engines: + node: '>= 4.5.0' resolution: - integrity: sha512-mXQ9GBq1N3uDCyV1pdSzgIguwgtVpM7f5/5J4ipz12PKWElmPpVWLDuWl8iXmhysr21+WmX/OJ5UKx82wjomgg== + integrity: sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== /node-gyp/3.8.0: dependencies: fstream: 1.0.12 @@ -3129,7 +3160,7 @@ packages: integrity: sha1-xkZdvwirzU2zWTF/eaxopkayj/k= /normalize-package-data/2.5.0: dependencies: - hosted-git-info: 2.8.4 + hosted-git-info: 2.8.5 resolve: 1.12.0 semver: 5.7.1 validate-npm-package-license: 3.0.4 @@ -3150,6 +3181,17 @@ packages: node: '>=0.10.0' resolution: integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + /normalize-url/1.9.1: + dependencies: + object-assign: 4.1.1 + prepend-http: 1.0.4 + query-string: 4.3.4 + sort-keys: 1.1.2 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= /npm-run-path/2.0.2: dependencies: path-key: 2.0.1 @@ -3589,6 +3631,12 @@ packages: node: '>=6.0.0' resolution: integrity: sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g== + /prepend-http/1.0.4: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= /prettier/1.18.2: dev: true engines: @@ -3643,14 +3691,14 @@ packages: integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== /pump/2.0.1: dependencies: - end-of-stream: 1.4.3 + end-of-stream: 1.4.4 once: 1.4.0 dev: true resolution: integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== /pump/3.0.0: dependencies: - end-of-stream: 1.4.3 + end-of-stream: 1.4.4 once: 1.4.0 dev: true resolution: @@ -3689,6 +3737,15 @@ packages: node: '>=0.6' resolution: integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + /query-string/4.3.4: + dependencies: + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-u7aTucqRXCMlFbIosaArYJBD2+s= /querystring-es3/0.2.1: dev: true engines: @@ -3999,13 +4056,6 @@ packages: node-sass: ^4.0.0 sass: ^1.3.0 webpack: ^4.36.0 - peerDependenciesMeta: - fibers: - optional: true - node-sass: - optional: true - sass: - optional: true resolution: integrity: sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w== /sass/1.23.0: @@ -4047,12 +4097,12 @@ packages: dev: true resolution: integrity: sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - /selfsigned/1.10.6: + /selfsigned/1.10.7: dependencies: - node-forge: 0.8.2 + node-forge: 0.9.0 dev: true resolution: - integrity: sha512-i3+CeqxL7DpAazgVpAGdKMwHuL63B5nhJMh9NQ7xmChGkA3jNFflq6Jyo1LLJYcr3idWiNOPWHCrm4zMayLG4w== + integrity: sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== /semver/5.3.0: dev: true hasBin: true @@ -4235,6 +4285,14 @@ packages: dev: true resolution: integrity: sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + /sort-keys/1.1.2: + dependencies: + is-plain-obj: 1.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-RBttTTRnmPG05J6JIK37oOVD+a0= /source-list-map/2.0.1: dev: true resolution: @@ -4390,7 +4448,7 @@ packages: integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== /stream-each/1.2.3: dependencies: - end-of-stream: 1.4.3 + end-of-stream: 1.4.4 stream-shift: 1.0.0 dev: true resolution: @@ -4409,6 +4467,12 @@ packages: dev: true resolution: integrity: sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + /strict-uri-encode/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= /string-width/1.0.2: dependencies: code-point-at: 1.1.0 @@ -4552,7 +4616,7 @@ packages: schema-utils: 1.0.0 serialize-javascript: 1.9.1 source-map: 0.6.1 - terser: 4.3.2 + terser: 4.3.8 webpack: 4.41.0_webpack@4.41.0 webpack-sources: 1.4.3 worker-farm: 1.7.0 @@ -4563,9 +4627,9 @@ packages: webpack: ^4.0.0 resolution: integrity: sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== - /terser/4.3.2: + /terser/4.3.8: dependencies: - commander: 2.20.0 + commander: 2.20.1 source-map: 0.6.1 source-map-support: 0.5.13 dev: true @@ -4573,7 +4637,7 @@ packages: node: '>=6.0.0' hasBin: true resolution: - integrity: sha512-obxk4x19Zlzj9zY4QeXj9iPCb5W8YGn4v3pn4/fHj0Nw8+R7N02Kvwvz9VpOItCZZD8RC+vnYCDL0gP6FAJ7Xg== + integrity: sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ== /through2/2.0.5: dependencies: readable-stream: 2.3.6 @@ -4660,10 +4724,10 @@ packages: dev: true resolution: integrity: sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== - /ts-loader/6.1.2_typescript@3.6.3: + /ts-loader/6.2.0_typescript@3.6.3: dependencies: chalk: 2.4.2 - enhanced-resolve: 4.1.0 + enhanced-resolve: 4.1.1 loader-utils: 1.2.3 micromatch: 4.0.2 semver: 6.3.0 @@ -4674,7 +4738,7 @@ packages: peerDependencies: typescript: '*' resolution: - integrity: sha512-dudxFKm0Ellrg/gLNlu+97/UgwvoMK0SdUVImPUSzq3IcRUVtShylZvcMX+CgvCQL1BEKb913NL0gAP1GA/OFw== + integrity: sha512-Da8h3fD+HiZ9GvZJydqzk3mTC9nuOKYlJcpuk+Zv6Y1DPaMvBL+56GRzZFypx2cWrZFMsQr869+Ua2slGoLxvQ== /tslib/1.10.0: dev: true resolution: @@ -4691,7 +4755,7 @@ packages: '@babel/code-frame': 7.5.5 builtin-modules: 1.1.1 chalk: 2.4.2 - commander: 2.20.0 + commander: 2.20.1 diff: 4.0.1 glob: 7.1.4 js-yaml: 3.13.1 @@ -4878,7 +4942,7 @@ packages: dependencies: assert-plus: 1.0.0 core-util-is: 1.0.2 - extsprintf: 1.4.0 + extsprintf: 1.3.0 dev: true engines: '0': node >=0.6.0 @@ -4924,7 +4988,7 @@ packages: webpack: 4.x.x resolution: integrity: sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A== - /webpack-dev-middleware/3.7.1_webpack@4.41.0: + /webpack-dev-middleware/3.7.2_webpack@4.41.0: dependencies: memory-fs: 0.4.1 mime: 2.4.4 @@ -4938,8 +5002,8 @@ packages: peerDependencies: webpack: ^4.0.0 resolution: - integrity: sha512-5MWu9SH1z3hY7oHOV6Kbkz5x7hXbxK56mGHNqHTe6d+ewxOwKUxoUJBs7QIaJb33lPjl9bJZ3X0vCoooUzC36A== - /webpack-dev-server/3.8.1_webpack@4.41.0: + integrity: sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== + /webpack-dev-server/3.8.2_webpack@4.41.0: dependencies: ansi-html: 0.0.7 bonjour: 3.5.0 @@ -4954,14 +5018,14 @@ packages: import-local: 2.0.0 internal-ip: 4.3.0 ip: 1.1.5 - is-absolute-url: 3.0.2 + is-absolute-url: 3.0.3 killable: 1.0.1 loglevel: 1.6.4 opn: 5.5.0 p-retry: 3.0.1 portfinder: 1.0.24 schema-utils: 1.0.0 - selfsigned: 1.10.6 + selfsigned: 1.10.7 semver: 6.3.0 serve-index: 1.9.1 sockjs: 0.3.19 @@ -4971,7 +5035,7 @@ packages: supports-color: 6.1.0 url: 0.11.0 webpack: 4.41.0_webpack@4.41.0 - webpack-dev-middleware: 3.7.1_webpack@4.41.0 + webpack-dev-middleware: 3.7.2_webpack@4.41.0 webpack-log: 2.0.0 ws: 6.2.1 yargs: 12.0.5 @@ -4982,7 +5046,7 @@ packages: peerDependencies: webpack: ^4.0.0 resolution: - integrity: sha512-9F5DnfFA9bsrhpUCAfQic/AXBVHvq+3gQS+x6Zj0yc1fVVE0erKh2MV4IV12TBewuTrYeeTIRwCH9qLMvdNvTw== + integrity: sha512-0xxogS7n5jHDQWy0WST0q6Ykp7UGj4YvWh+HVN71JoE7BwPxMZrwgraBvmdEMbDVMBzF0u+mEzn8TQzBm5NYJQ== /webpack-log/2.0.0: dependencies: ansi-colors: 3.2.4 @@ -5009,7 +5073,7 @@ packages: ajv: 6.10.2 ajv-keywords: 3.4.1_ajv@6.10.2 chrome-trace-event: 1.0.2 - enhanced-resolve: 4.1.0 + enhanced-resolve: 4.1.1 eslint-scope: 4.0.3 json-parse-better-errors: 1.0.2 loader-runner: 2.4.0 @@ -5065,7 +5129,7 @@ packages: integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== /wide-align/1.1.3: dependencies: - string-width: 2.1.1 + string-width: 1.0.2 dev: true resolution: integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== @@ -5122,10 +5186,10 @@ packages: dev: true resolution: integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - /yallist/3.0.3: + /yallist/3.1.1: dev: true resolution: - integrity: sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== /yargs-parser/11.1.1: dependencies: camelcase: 5.3.1 @@ -5204,6 +5268,7 @@ specifiers: fibers: ^4.0.1 file-saver: ^2.0.2 jszip: ^3.2.2 + mini-css-extract-plugin: ^0.8.0 node-sass: ^4.12.0 prettier: ^1.18.2 sass: ^1.23.0 diff --git a/webpack/dev.config.js b/webpack/dev.config.js index eb5a058..5669c14 100644 --- a/webpack/dev.config.js +++ b/webpack/dev.config.js @@ -1,4 +1,5 @@ const path = require('path'); +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = { mode: 'development', @@ -13,6 +14,11 @@ module.exports = { // Add `.ts` and `.tsx` as a resolvable extension. extensions: [ '.ts', '.tsx', '.js' ] }, + plugins: [ + new MiniCssExtractPlugin({ + filename: 'exporter/main.css' + }) + ], module: { rules: [ // all files with a `.ts` or `.tsx` extension will be handled by `ts-loader` @@ -25,7 +31,13 @@ module.exports = { }, { test: /\.scss$/, - use: [ 'style-loader', 'css-loader', 'sass-loader?sourceMap' ] + use: [ + { + loader: MiniCssExtractPlugin.loader + }, + 'css-loader', + 'sass-loader' + ] } ] }, diff --git a/webpack/prod.config.js b/webpack/prod.config.js index bb80eaf..42321d6 100644 --- a/webpack/prod.config.js +++ b/webpack/prod.config.js @@ -1,4 +1,5 @@ const path = require('path'); +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = { mode: 'production', @@ -10,6 +11,11 @@ module.exports = { // Add `.ts` and `.tsx` as a resolvable extension. extensions: [ '.ts', '.tsx', '.js' ] }, + plugins: [ + new MiniCssExtractPlugin({ + filename: 'exporter/main.css' + }) + ], module: { rules: [ // all files with a `.ts` or `.tsx` extension will be handled by `ts-loader` @@ -22,7 +28,13 @@ module.exports = { }, { test: /\.scss$/, - use: [ 'style-loader', 'css-loader', 'sass-loader?sourceMap' ] + use: [ + { + loader: MiniCssExtractPlugin.loader + }, + 'css-loader', + 'sass-loader' + ] } ] }