Commit 6fca9a19 by 朱哲铨

初版确定

parent 86bf5900
......@@ -1228,7 +1228,6 @@
"version": "7.24.8",
"resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.8.tgz",
"integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==",
"dev": true,
"requires": {
"regenerator-runtime": "^0.14.0"
},
......@@ -1236,8 +1235,7 @@
"regenerator-runtime": {
"version": "0.14.1",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
"dev": true
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
}
}
},
......@@ -1413,6 +1411,352 @@
}
}
},
"@jimp/bmp": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/bmp/-/bmp-0.16.13.tgz",
"integrity": "sha512-9edAxu7N2FX7vzkdl5Jo1BbACfycUtBQX+XBMcHA2bk62P8R0otgkHg798frgAk/WxQIzwxqOH6wMiCwrlAzdQ==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13",
"bmp-js": "^0.1.0"
}
},
"@jimp/core": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/core/-/core-0.16.13.tgz",
"integrity": "sha512-qXpA1tzTnlkTku9yqtuRtS/wVntvE6f3m3GNxdTdtmc+O+Wcg9Xo2ABPMh7Nc0AHbMKzwvwgB2JnjZmlmJEObg==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13",
"any-base": "^1.1.0",
"buffer": "^5.2.0",
"exif-parser": "^0.1.12",
"file-type": "^16.5.4",
"load-bmfont": "^1.3.1",
"mkdirp": "^0.5.1",
"phin": "^2.9.1",
"pixelmatch": "^4.0.2",
"tinycolor2": "^1.4.1"
},
"dependencies": {
"buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
}
}
}
},
"@jimp/custom": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/custom/-/custom-0.16.13.tgz",
"integrity": "sha512-LTATglVUPGkPf15zX1wTMlZ0+AU7cGEGF6ekVF1crA8eHUWsGjrYTB+Ht4E3HTrCok8weQG+K01rJndCp/l4XA==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/core": "^0.16.13"
}
},
"@jimp/gif": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/gif/-/gif-0.16.13.tgz",
"integrity": "sha512-yFAMZGv3o+YcjXilMWWwS/bv1iSqykFahFMSO169uVMtfQVfa90kt4/kDwrXNR6Q9i6VHpFiGZMlF2UnHClBvg==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13",
"gifwrap": "^0.9.2",
"omggif": "^1.0.9"
}
},
"@jimp/jpeg": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/jpeg/-/jpeg-0.16.13.tgz",
"integrity": "sha512-BJHlDxzTlCqP2ThqP8J0eDrbBfod7npWCbJAcfkKqdQuFk0zBPaZ6KKaQKyKxmWJ87Z6ohANZoMKEbtvrwz1AA==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13",
"jpeg-js": "^0.4.2"
}
},
"@jimp/plugin-blit": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-blit/-/plugin-blit-0.16.13.tgz",
"integrity": "sha512-8Z1k96ZFxlhK2bgrY1JNWNwvaBeI/bciLM0yDOni2+aZwfIIiC7Y6PeWHTAvjHNjphz+XCt01WQmOYWCn0ML6g==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-blur": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-blur/-/plugin-blur-0.16.13.tgz",
"integrity": "sha512-PvLrfa8vkej3qinlebyhLpksJgCF5aiysDMSVhOZqwH5nQLLtDE9WYbnsofGw4r0VVpyw3H/ANCIzYTyCtP9Cg==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-circle": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-circle/-/plugin-circle-0.16.13.tgz",
"integrity": "sha512-RNave7EFgZrb5V5EpdvJGAEHMnDAJuwv05hKscNfIYxf0kR3KhViBTDy+MoTnMlIvaKFULfwIgaZWzyhuINMzA==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-color": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-color/-/plugin-color-0.16.13.tgz",
"integrity": "sha512-xW+9BtEvoIkkH/Wde9ql4nAFbYLkVINhpgAE7VcBUsuuB34WUbcBl/taOuUYQrPEFQJ4jfXiAJZ2H/rvKjCVnQ==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13",
"tinycolor2": "^1.4.1"
}
},
"@jimp/plugin-contain": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-contain/-/plugin-contain-0.16.13.tgz",
"integrity": "sha512-QayTXw4tXMwU6q6acNTQrTTFTXpNRBe+MgTGMDU0lk+23PjlFCO/9sacflelG8lsp7vNHhAxFeHptDMAksEYzg==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-cover": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-cover/-/plugin-cover-0.16.13.tgz",
"integrity": "sha512-BSsP71GTNaqWRcvkbWuIVH+zK7b3TSNebbhDkFK0fVaUTzHuKMS/mgY4hDZIEVt7Rf5FjadAYtsujHN9w0iSYA==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-crop": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-crop/-/plugin-crop-0.16.13.tgz",
"integrity": "sha512-WEl2tPVYwzYL8OKme6Go2xqiWgKsgxlMwyHabdAU4tXaRwOCnOI7v4021gCcBb9zn/oWwguHuKHmK30Fw2Z/PA==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-displace": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-displace/-/plugin-displace-0.16.13.tgz",
"integrity": "sha512-qt9WKq8vWrcjySa9DyQ0x/RBMHQeiVjdVSY1SJsMjssPUf0pS74qorcuAkGi89biN3YoGUgPkpqECnAWnYwgGA==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-dither": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-dither/-/plugin-dither-0.16.13.tgz",
"integrity": "sha512-5/N3yJggbWQTlGZHQYJPmQXEwR52qaXjEzkp1yRBbtdaekXE3BG/suo0fqeoV/csf8ooI78sJzYmIrxNoWVtgQ==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-fisheye": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.13.tgz",
"integrity": "sha512-2rZmTdFbT/cF9lEZIkXCYO0TsT114Q27AX5IAo0Sju6jVQbvIk1dFUTnwLDadTo8wkJlFzGqMQ24Cs8cHWOliA==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-flip": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-flip/-/plugin-flip-0.16.13.tgz",
"integrity": "sha512-EmcgAA74FTc5u7Z+hUO/sRjWwfPPLuOQP5O64x5g4j0T12Bd29IgsYZxoutZo/rb3579+JNa/3wsSEmyVv1EpA==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-gaussian": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.13.tgz",
"integrity": "sha512-A1XKfGQD0iDdIiKqFYi8nZMv4dDVYdxbrmgR7y/CzUHhSYdcmoljLIIsZZM3Iks/Wa353W3vtvkWLuDbQbch1w==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-invert": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-invert/-/plugin-invert-0.16.13.tgz",
"integrity": "sha512-xFMrIn7czEZbdbMzZWuaZFnlLGJDVJ82y5vlsKsXRTG2kcxRsMPXvZRWHV57nSs1YFsNqXSbrC8B98n0E32njQ==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-mask": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-mask/-/plugin-mask-0.16.13.tgz",
"integrity": "sha512-wLRYKVBXql2GAYgt6FkTnCfE+q5NomM7Dlh0oIPGAoMBWDyTx0eYutRK6PlUrRK2yMHuroAJCglICTbxqGzowQ==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-normalize": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-normalize/-/plugin-normalize-0.16.13.tgz",
"integrity": "sha512-3tfad0n9soRna4IfW9NzQdQ2Z3ijkmo21DREHbE6CGcMIxOSvfRdSvf1qQPApxjTSo8LTU4MCi/fidx/NZ0GqQ==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-print": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-print/-/plugin-print-0.16.13.tgz",
"integrity": "sha512-0m6i3p01PGRkGAK9r53hDYrkyMq+tlhLOIbsSTmZyh6HLshUKlTB7eXskF5OpVd5ZUHoltlNc6R+ggvKIzxRFw==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13",
"load-bmfont": "^1.4.0"
}
},
"@jimp/plugin-resize": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-resize/-/plugin-resize-0.16.13.tgz",
"integrity": "sha512-qoqtN8LDknm3fJm9nuPygJv30O3vGhSBD2TxrsCnhtOsxKAqVPJtFVdGd/qVuZ8nqQANQmTlfqTiK9mVWQ7MiQ==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-rotate": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-rotate/-/plugin-rotate-0.16.13.tgz",
"integrity": "sha512-Ev+Jjmj1nHYw897z9C3R9dYsPv7S2/nxdgfFb/h8hOwK0Ovd1k/+yYS46A0uj/JCKK0pQk8wOslYBkPwdnLorw==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-scale": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-scale/-/plugin-scale-0.16.13.tgz",
"integrity": "sha512-05POQaEJVucjTiSGMoH68ZiELc7QqpIpuQlZ2JBbhCV+WCbPFUBcGSmE7w4Jd0E2GvCho/NoMODLwgcVGQA97A==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-shadow": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-shadow/-/plugin-shadow-0.16.13.tgz",
"integrity": "sha512-nmu5VSZ9hsB1JchTKhnnCY+paRBnwzSyK5fhkhtQHHoFD5ArBQ/5wU8y6tCr7k/GQhhGq1OrixsECeMjPoc8Zw==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugin-threshold": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugin-threshold/-/plugin-threshold-0.16.13.tgz",
"integrity": "sha512-+3zArBH0OE3Rhjm4HyAokMsZlIq5gpQec33CncyoSwxtRBM2WAhUVmCUKuBo+Lr/2/4ISoY4BWpHKhMLDix6cA==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13"
}
},
"@jimp/plugins": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/plugins/-/plugins-0.16.13.tgz",
"integrity": "sha512-CJLdqODEhEVs4MgWCxpWL5l95sCBlkuSLz65cxEm56X5akIsn4LOlwnKoSEZioYcZUBvHhCheH67AyPTudfnQQ==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/plugin-blit": "^0.16.13",
"@jimp/plugin-blur": "^0.16.13",
"@jimp/plugin-circle": "^0.16.13",
"@jimp/plugin-color": "^0.16.13",
"@jimp/plugin-contain": "^0.16.13",
"@jimp/plugin-cover": "^0.16.13",
"@jimp/plugin-crop": "^0.16.13",
"@jimp/plugin-displace": "^0.16.13",
"@jimp/plugin-dither": "^0.16.13",
"@jimp/plugin-fisheye": "^0.16.13",
"@jimp/plugin-flip": "^0.16.13",
"@jimp/plugin-gaussian": "^0.16.13",
"@jimp/plugin-invert": "^0.16.13",
"@jimp/plugin-mask": "^0.16.13",
"@jimp/plugin-normalize": "^0.16.13",
"@jimp/plugin-print": "^0.16.13",
"@jimp/plugin-resize": "^0.16.13",
"@jimp/plugin-rotate": "^0.16.13",
"@jimp/plugin-scale": "^0.16.13",
"@jimp/plugin-shadow": "^0.16.13",
"@jimp/plugin-threshold": "^0.16.13",
"timm": "^1.6.1"
}
},
"@jimp/png": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/png/-/png-0.16.13.tgz",
"integrity": "sha512-8cGqINvbWJf1G0Her9zbq9I80roEX0A+U45xFby3tDWfzn+Zz8XKDF1Nv9VUwVx0N3zpcG1RPs9hfheG4Cq2kg==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/utils": "^0.16.13",
"pngjs": "^3.3.3"
},
"dependencies": {
"pngjs": {
"version": "3.4.0",
"resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-3.4.0.tgz",
"integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
}
}
},
"@jimp/tiff": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/tiff/-/tiff-0.16.13.tgz",
"integrity": "sha512-oJY8d9u95SwW00VPHuCNxPap6Q1+E/xM5QThb9Hu+P6EGuu6lIeLaNBMmFZyblwFbwrH+WBOZlvIzDhi4Dm/6Q==",
"requires": {
"@babel/runtime": "^7.7.2",
"utif": "^2.0.1"
}
},
"@jimp/types": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/types/-/types-0.16.13.tgz",
"integrity": "sha512-mC0yVNUobFDjoYLg4hoUwzMKgNlxynzwt3cDXzumGvRJ7Kb8qQGOWJQjQFo5OxmGExqzPphkirdbBF88RVLBCg==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/bmp": "^0.16.13",
"@jimp/gif": "^0.16.13",
"@jimp/jpeg": "^0.16.13",
"@jimp/png": "^0.16.13",
"@jimp/tiff": "^0.16.13",
"timm": "^1.6.1"
}
},
"@jimp/utils": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/@jimp/utils/-/utils-0.16.13.tgz",
"integrity": "sha512-VyCpkZzFTHXtKgVO35iKN0sYR10psGpV6SkcSeV4oF7eSYlR8Bl6aQLCzVeFjvESF7mxTmIiI3/XrMobVrtxDA==",
"requires": {
"@babel/runtime": "^7.7.2",
"regenerator-runtime": "^0.13.3"
},
"dependencies": {
"regenerator-runtime": {
"version": "0.13.11",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
}
}
},
"@jridgewell/gen-mapping": {
"version": "0.3.5",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
......@@ -1452,6 +1796,19 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"@minogin/vector": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/@minogin/vector/-/vector-1.0.2.tgz",
"integrity": "sha512-iMlPme16/YbFmtcofRJS0RU17U7PL4pwIkEnCZ6heNGfQOwd7lMSgXUnZavI5SE4A3bllVISv99+KxNbOMbAow=="
},
"@minogin/vue-drag-resize-rotate": {
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/@minogin/vue-drag-resize-rotate/-/vue-drag-resize-rotate-1.0.5.tgz",
"integrity": "sha512-6dznybvbKtoCxbeOcgDPKHGIeHHZlMvyg5TgrwAUZGhy6O8lGBHApDGrZ2m7rprFeNp3GzSiSqr5OUzw9WglTg==",
"requires": {
"@minogin/vector": "^1.0.2"
}
},
"@mrmlnc/readdir-enhanced": {
"version": "2.2.1",
"resolved": "https://registry.npmmirror.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
......@@ -1471,12 +1828,45 @@
"easy-stack": "1.0.1"
}
},
"@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"requires": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
},
"dependencies": {
"@nodelib/fs.stat": {
"version": "2.0.5",
"resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
}
}
},
"@nodelib/fs.stat": {
"version": "1.1.3",
"resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
"integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
"dev": true
},
"@nodelib/fs.walk": {
"version": "1.2.8",
"resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"requires": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
}
},
"@pinkcao/vue-drag-resize-rotate": {
"version": "1.2.5",
"resolved": "https://registry.npmmirror.com/@pinkcao/vue-drag-resize-rotate/-/vue-drag-resize-rotate-1.2.5.tgz",
"integrity": "sha512-tnmQu9dt8mqQDpv3ipah2MAqUyeyCVTwmLDW7NkBZNCZ3j+xPQiz4CuzhgNolh0+6E+0ZIhwjUI/fTDVQbAKxw==",
"requires": {
"vue": "^2.6.11"
}
},
"@scena/dragscroll": {
"version": "1.4.0",
"resolved": "https://registry.npmmirror.com/@scena/dragscroll/-/dragscroll-1.4.0.tgz",
......@@ -1586,6 +1976,11 @@
"defer-to-connect": "^1.0.1"
}
},
"@tokenizer/token": {
"version": "0.3.0",
"resolved": "https://registry.npmmirror.com/@tokenizer/token/-/token-0.3.0.tgz",
"integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="
},
"@types/babel-types": {
"version": "7.0.15",
"resolved": "https://registry.npmmirror.com/@types/babel-types/-/babel-types-7.0.15.tgz",
......@@ -2619,6 +3014,15 @@
"integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
"dev": true
},
"aggregate-error": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz",
"integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
"requires": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
}
},
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
......@@ -2718,11 +3122,15 @@
"version": "3.2.1",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"any-base": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/any-base/-/any-base-1.1.0.tgz",
"integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg=="
},
"any-promise": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz",
......@@ -2887,6 +3295,24 @@
"sprintf-js": "~1.0.2"
}
},
"args": {
"version": "5.0.3",
"resolved": "https://registry.npmmirror.com/args/-/args-5.0.3.tgz",
"integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==",
"requires": {
"camelcase": "5.0.0",
"chalk": "2.4.2",
"leven": "2.1.0",
"mri": "1.1.4"
},
"dependencies": {
"camelcase": {
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.0.0.tgz",
"integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA=="
}
}
},
"arr-diff": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz",
......@@ -3308,11 +3734,15 @@
}
}
},
"base64-arraybuffer": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
"integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ=="
},
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"dev": true
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"basic-auth": {
"version": "2.0.1",
......@@ -3390,6 +3820,11 @@
"bluebird": "^3.5.5"
}
},
"bmp-js": {
"version": "0.1.0",
"resolved": "https://registry.npmmirror.com/bmp-js/-/bmp-js-0.1.0.tgz",
"integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw=="
},
"bn.js": {
"version": "5.2.1",
"resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-5.2.1.tgz",
......@@ -3687,6 +4122,11 @@
"resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
"integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="
},
"buffer-equal": {
"version": "0.0.1",
"resolved": "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-0.0.1.tgz",
"integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA=="
},
"buffer-fill": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/buffer-fill/-/buffer-fill-1.0.0.tgz",
......@@ -3695,8 +4135,7 @@
"buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"dev": true
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"buffer-indexof": {
"version": "1.1.1",
......@@ -4029,11 +4468,25 @@
"lazy-cache": "^1.0.3"
}
},
"centra": {
"version": "2.7.0",
"resolved": "https://registry.npmmirror.com/centra/-/centra-2.7.0.tgz",
"integrity": "sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==",
"requires": {
"follow-redirects": "^1.15.6"
},
"dependencies": {
"follow-redirects": {
"version": "1.15.6",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
}
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
......@@ -4172,6 +4625,11 @@
"source-map": "~0.6.0"
}
},
"clean-stack": {
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz",
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="
},
"cli-boxes": {
"version": "2.2.1",
"resolved": "https://registry.npmmirror.com/cli-boxes/-/cli-boxes-2.2.1.tgz",
......@@ -4389,7 +4847,6 @@
"version": "1.9.3",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"requires": {
"color-name": "1.1.3"
}
......@@ -4397,8 +4854,7 @@
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"color-string": {
"version": "1.9.1",
......@@ -4541,7 +4997,6 @@
"version": "1.6.2",
"resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
......@@ -5149,6 +5604,14 @@
}
}
},
"css-line-break": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz",
"integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==",
"requires": {
"utrie": "^1.0.2"
}
},
"css-loader": {
"version": "3.6.0",
"resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-3.6.0.tgz",
......@@ -5513,8 +5976,7 @@
"decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
"dev": true
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
},
"decode-uri-component": {
"version": "0.2.2",
......@@ -5963,6 +6425,11 @@
}
}
},
"dom-walk": {
"version": "0.1.2",
"resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz",
"integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
},
"domain-browser": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/domain-browser/-/domain-browser-1.2.0.tgz",
......@@ -6314,6 +6781,16 @@
}
}
},
"electron-icon-builder": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/electron-icon-builder/-/electron-icon-builder-2.0.1.tgz",
"integrity": "sha512-rg9BxW2kJi3TXsMFFNXWXrwQEd5dzXmeD+w7Pj3k3z7aYRePLxE89qU4lvL/rK1X/NTY5KDn3+Dbgm1TU2dGXQ==",
"requires": {
"args": "^5.0.1",
"icon-gen": "^2.0.0",
"jimp": "^0.16.1"
}
},
"electron-publish": {
"version": "21.2.0",
"resolved": "https://registry.npmmirror.com/electron-publish/-/electron-publish-21.2.0.tgz",
......@@ -6478,7 +6955,6 @@
"version": "1.3.2",
"resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
"dev": true,
"requires": {
"is-arrayish": "^0.2.1"
}
......@@ -6596,6 +7072,11 @@
"is-symbol": "^1.0.2"
}
},
"es6-promise": {
"version": "4.2.8",
"resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz",
"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
},
"escalade": {
"version": "3.1.2",
"resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz",
......@@ -6610,8 +7091,7 @@
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
},
"eslint": {
"version": "6.8.0",
......@@ -6959,6 +7439,11 @@
"strip-eof": "^1.0.0"
}
},
"exif-parser": {
"version": "0.1.12",
"resolved": "https://registry.npmmirror.com/exif-parser/-/exif-parser-0.1.12.tgz",
"integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw=="
},
"expand-brackets": {
"version": "2.1.4",
"resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz",
......@@ -7138,7 +7623,6 @@
"version": "1.7.0",
"resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz",
"integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
"dev": true,
"requires": {
"concat-stream": "^1.6.2",
"debug": "^2.6.9",
......@@ -7150,7 +7634,6 @@
"version": "2.6.9",
"resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
......@@ -7221,6 +7704,14 @@
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true
},
"fastq": {
"version": "1.17.1",
"resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz",
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
"requires": {
"reusify": "^1.0.4"
}
},
"faye-websocket": {
"version": "0.11.4",
"resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz",
......@@ -7234,7 +7725,6 @@
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz",
"integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
"dev": true,
"requires": {
"pend": "~1.2.0"
}
......@@ -7303,6 +7793,21 @@
}
}
},
"file-type": {
"version": "16.5.4",
"resolved": "https://registry.npmmirror.com/file-type/-/file-type-16.5.4.tgz",
"integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==",
"requires": {
"readable-web-to-node-stream": "^3.0.0",
"strtok3": "^6.2.4",
"token-types": "^4.1.1"
}
},
"file-url": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/file-url/-/file-url-2.0.2.tgz",
"integrity": "sha512-x3989K8a1jM6vulMigE8VngH7C5nci0Ks5d9kVjUXmNF28gmiZUNujk5HjwaS8dAzN2QmUfX56riJKgN00dNRw=="
},
"filesize": {
"version": "3.6.1",
"resolved": "https://registry.npmmirror.com/filesize/-/filesize-3.6.1.tgz",
......@@ -7800,6 +8305,15 @@
"assert-plus": "^1.0.0"
}
},
"gifwrap": {
"version": "0.9.4",
"resolved": "https://registry.npmmirror.com/gifwrap/-/gifwrap-0.9.4.tgz",
"integrity": "sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==",
"requires": {
"image-q": "^4.0.0",
"omggif": "^1.0.10"
}
},
"glob": {
"version": "7.2.3",
"resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
......@@ -7827,6 +8341,15 @@
"integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==",
"dev": true
},
"global": {
"version": "4.4.0",
"resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz",
"integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
},
"global-dirs": {
"version": "0.1.1",
"resolved": "https://registry.npmmirror.com/global-dirs/-/global-dirs-0.1.1.tgz",
......@@ -8132,6 +8655,15 @@
"minimalistic-assert": "^1.0.1"
}
},
"hasha": {
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/hasha/-/hasha-2.2.0.tgz",
"integrity": "sha512-jZ38TU/EBiGKrmyTNNZgnvCZHNowiRI4+w/I9noMlekHTZH3KyGgvJLmhSgykeAQ9j2SYPDosM0Bg3wHfzibAQ==",
"requires": {
"is-stream": "^1.0.1",
"pinkie-promise": "^2.0.0"
}
},
"hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
......@@ -8178,8 +8710,7 @@
"hosted-git-info": {
"version": "2.8.9",
"resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
"dev": true
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
},
"hpack.js": {
"version": "2.1.6",
......@@ -8297,6 +8828,15 @@
}
}
},
"html2canvas": {
"version": "1.4.1",
"resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz",
"integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
"requires": {
"css-line-break": "^2.1.0",
"text-segmentation": "^1.0.3"
}
},
"htmlparser2": {
"version": "6.1.0",
"resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz",
......@@ -8466,6 +9006,168 @@
"integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
"dev": true
},
"icon-gen": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/icon-gen/-/icon-gen-2.1.0.tgz",
"integrity": "sha512-rqIVvq9MJ8X7wnJW0NO8Eau/+5RWV7AH6L5vEt/U5Ajv5WefdDNDxGwJhGokyHuyBWeX7JqRMQ03tG0gAco4Eg==",
"requires": {
"commander": "^6.2.0",
"del": "^6.0.0",
"mkdirp": "^1.0.4",
"pngjs": "^6.0.0",
"svg2png": "4.1.1",
"uuid": "^8.3.1"
},
"dependencies": {
"@nodelib/fs.stat": {
"version": "2.0.5",
"resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
},
"array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz",
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
},
"braces": {
"version": "3.0.3",
"resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"requires": {
"fill-range": "^7.1.1"
}
},
"commander": {
"version": "6.2.1",
"resolved": "https://registry.npmmirror.com/commander/-/commander-6.2.1.tgz",
"integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA=="
},
"del": {
"version": "6.1.1",
"resolved": "https://registry.npmmirror.com/del/-/del-6.1.1.tgz",
"integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
"requires": {
"globby": "^11.0.1",
"graceful-fs": "^4.2.4",
"is-glob": "^4.0.1",
"is-path-cwd": "^2.2.0",
"is-path-inside": "^3.0.2",
"p-map": "^4.0.0",
"rimraf": "^3.0.2",
"slash": "^3.0.0"
}
},
"dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz",
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
"requires": {
"path-type": "^4.0.0"
}
},
"fast-glob": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz",
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"requires": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.2",
"merge2": "^1.3.0",
"micromatch": "^4.0.4"
}
},
"fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"requires": {
"to-regex-range": "^5.0.1"
}
},
"globby": {
"version": "11.1.0",
"resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz",
"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
"requires": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
"fast-glob": "^3.2.9",
"ignore": "^5.2.0",
"merge2": "^1.4.1",
"slash": "^3.0.0"
}
},
"ignore": {
"version": "5.3.1",
"resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.1.tgz",
"integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw=="
},
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
},
"is-path-inside": {
"version": "3.0.3",
"resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz",
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
},
"micromatch": {
"version": "4.0.7",
"resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.7.tgz",
"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
"requires": {
"braces": "^3.0.3",
"picomatch": "^2.3.1"
}
},
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
},
"p-map": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz",
"integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
"requires": {
"aggregate-error": "^3.0.0"
}
},
"path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
},
"rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"requires": {
"glob": "^7.1.3"
}
},
"slash": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz",
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
},
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"requires": {
"is-number": "^7.0.0"
}
},
"uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
}
}
},
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
......@@ -8504,8 +9206,7 @@
"ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"dev": true
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"iferr": {
"version": "0.1.5",
......@@ -8532,6 +9233,21 @@
"minimatch": "^3.0.4"
}
},
"image-q": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/image-q/-/image-q-4.0.0.tgz",
"integrity": "sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==",
"requires": {
"@types/node": "16.9.1"
},
"dependencies": {
"@types/node": {
"version": "16.9.1",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-16.9.1.tgz",
"integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g=="
}
}
},
"immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz",
......@@ -8632,6 +9348,11 @@
"resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
},
"indent-string": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz",
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
},
"indexes-of": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/indexes-of/-/indexes-of-1.0.1.tgz",
......@@ -8807,6 +9528,11 @@
"resolved": "https://registry.npmmirror.com/interpret/-/interpret-1.4.0.tgz",
"integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA=="
},
"invert-kv": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/invert-kv/-/invert-kv-1.0.0.tgz",
"integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ=="
},
"ip": {
"version": "1.1.9",
"resolved": "https://registry.npmmirror.com/ip/-/ip-1.1.9.tgz",
......@@ -8862,8 +9588,7 @@
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
"dev": true
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
},
"is-bigint": {
"version": "1.0.4",
......@@ -9018,6 +9743,11 @@
"resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
},
"is-function": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz",
"integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ=="
},
"is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
......@@ -9096,8 +9826,7 @@
"is-path-cwd": {
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
"integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
"dev": true
"integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ=="
},
"is-path-in-cwd": {
"version": "2.1.0",
......@@ -9165,8 +9894,7 @@
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
"dev": true
"integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ=="
},
"is-string": {
"version": "1.0.7",
......@@ -9200,6 +9928,11 @@
"resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
},
"is-utf8": {
"version": "0.2.1",
"resolved": "https://registry.npmmirror.com/is-utf8/-/is-utf8-0.2.1.tgz",
"integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q=="
},
"is-weakref": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz",
......@@ -9260,6 +9993,30 @@
"integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==",
"dev": true
},
"jimp": {
"version": "0.16.13",
"resolved": "https://registry.npmmirror.com/jimp/-/jimp-0.16.13.tgz",
"integrity": "sha512-Bxz8q7V4rnCky9A0ktTNGA9SkNFVWRHodddI/DaAWZJzF7sVUlFYKQ60y9JGqrKpi48ECA/TnfMzzc5C70VByA==",
"requires": {
"@babel/runtime": "^7.7.2",
"@jimp/custom": "^0.16.13",
"@jimp/plugins": "^0.16.13",
"@jimp/types": "^0.16.13",
"regenerator-runtime": "^0.13.3"
},
"dependencies": {
"regenerator-runtime": {
"version": "0.13.11",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
}
}
},
"jpeg-js": {
"version": "0.4.4",
"resolved": "https://registry.npmmirror.com/jpeg-js/-/jpeg-js-0.4.4.tgz",
"integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg=="
},
"js-message": {
"version": "1.0.7",
"resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz",
......@@ -9391,6 +10148,11 @@
"setimmediate": "^1.0.5"
}
},
"kew": {
"version": "0.7.0",
"resolved": "https://registry.npmmirror.com/kew/-/kew-0.7.0.tgz",
"integrity": "sha512-IG6nm0+QtAMdXt9KvbgbGdvY50RSrw+U4sGZg+KlrSKPJEwVE5JVoI3d7RWfSMdBQneRheeAOj3lIjX5VL/9RQ=="
},
"keyv": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz",
......@@ -9412,6 +10174,14 @@
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
},
"klaw": {
"version": "1.3.1",
"resolved": "https://registry.npmmirror.com/klaw/-/klaw-1.3.1.tgz",
"integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==",
"requires": {
"graceful-fs": "^4.1.9"
}
},
"latest-version": {
"version": "5.1.0",
"resolved": "https://registry.npmmirror.com/latest-version/-/latest-version-5.1.0.tgz",
......@@ -9461,6 +10231,19 @@
"readable-stream": "^2.0.5"
}
},
"lcid": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/lcid/-/lcid-1.0.0.tgz",
"integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==",
"requires": {
"invert-kv": "^1.0.0"
}
},
"leven": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/leven/-/leven-2.1.0.tgz",
"integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA=="
},
"levn": {
"version": "0.3.0",
"resolved": "https://registry.npmmirror.com/levn/-/levn-0.3.0.tgz",
......@@ -9480,12 +10263,64 @@
"immediate": "~3.0.5"
}
},
"lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
"dev": true
},
"lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
"dev": true
},
"load-bmfont": {
"version": "1.4.2",
"resolved": "https://registry.npmmirror.com/load-bmfont/-/load-bmfont-1.4.2.tgz",
"integrity": "sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==",
"requires": {
"buffer-equal": "0.0.1",
"mime": "^1.3.4",
"parse-bmfont-ascii": "^1.0.3",
"parse-bmfont-binary": "^1.0.5",
"parse-bmfont-xml": "^1.1.4",
"phin": "^3.7.1",
"xhr": "^2.0.1",
"xtend": "^4.0.0"
},
"dependencies": {
"phin": {
"version": "3.7.1",
"resolved": "https://registry.npmmirror.com/phin/-/phin-3.7.1.tgz",
"integrity": "sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==",
"requires": {
"centra": "^2.7.0"
}
}
}
},
"load-json-file": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/load-json-file/-/load-json-file-1.1.0.tgz",
"integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==",
"requires": {
"graceful-fs": "^4.1.2",
"parse-json": "^2.2.0",
"pify": "^2.0.0",
"pinkie-promise": "^2.0.0",
"strip-bom": "^2.0.0"
},
"dependencies": {
"parse-json": {
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-2.2.0.tgz",
"integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==",
"requires": {
"error-ex": "^1.2.0"
}
},
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz",
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
}
}
},
"loader-fs-cache": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz",
......@@ -9762,8 +10597,7 @@
"merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
},
"methods": {
"version": "1.1.2",
......@@ -9839,6 +10673,14 @@
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
"dev": true
},
"min-document": {
"version": "2.19.0",
"resolved": "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz",
"integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
"requires": {
"dom-walk": "^0.1.0"
}
},
"mini-css-extract-plugin": {
"version": "0.9.0",
"resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz",
......@@ -10059,6 +10901,11 @@
"react-moveable": "~0.50.7"
}
},
"mri": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/mri/-/mri-1.1.4.tgz",
"integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w=="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
......@@ -10385,7 +11232,6 @@
"version": "2.5.0",
"resolved": "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
"requires": {
"hosted-git-info": "^2.1.4",
"resolve": "^1.10.0",
......@@ -10396,8 +11242,7 @@
"semver": {
"version": "5.7.2",
"resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
}
}
},
......@@ -10653,6 +11498,11 @@
"integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
"dev": true
},
"omggif": {
"version": "1.0.10",
"resolved": "https://registry.npmmirror.com/omggif/-/omggif-1.0.10.tgz",
"integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw=="
},
"on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
......@@ -10775,6 +11625,14 @@
"resolved": "https://registry.npmmirror.com/os-homedir/-/os-homedir-1.0.2.tgz",
"integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ=="
},
"os-locale": {
"version": "1.4.0",
"resolved": "https://registry.npmmirror.com/os-locale/-/os-locale-1.4.0.tgz",
"integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==",
"requires": {
"lcid": "^1.0.0"
}
},
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
......@@ -10861,8 +11719,7 @@
"pako": {
"version": "1.0.11",
"resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz",
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
"dev": true
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
},
"parallel-transform": {
"version": "1.2.0",
......@@ -10927,6 +11784,30 @@
}
}
},
"parse-bmfont-ascii": {
"version": "1.0.6",
"resolved": "https://registry.npmmirror.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz",
"integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA=="
},
"parse-bmfont-binary": {
"version": "1.0.6",
"resolved": "https://registry.npmmirror.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz",
"integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA=="
},
"parse-bmfont-xml": {
"version": "1.1.6",
"resolved": "https://registry.npmmirror.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz",
"integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==",
"requires": {
"xml-parse-from-string": "^1.0.0",
"xml2js": "^0.5.0"
}
},
"parse-headers": {
"version": "2.0.5",
"resolved": "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz",
"integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA=="
},
"parse-json": {
"version": "5.2.0",
"resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz",
......@@ -11040,6 +11921,11 @@
"sha.js": "^2.4.8"
}
},
"peek-readable": {
"version": "4.1.0",
"resolved": "https://registry.npmmirror.com/peek-readable/-/peek-readable-4.1.0.tgz",
"integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg=="
},
"pend": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz",
......@@ -11050,6 +11936,52 @@
"resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
},
"phantomjs-prebuilt": {
"version": "2.1.16",
"resolved": "https://registry.npmmirror.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
"integrity": "sha512-PIiRzBhW85xco2fuj41FmsyuYHKjKuXWmhjy3A/Y+CMpN/63TV+s9uzfVhsUwFe0G77xWtHBG8xmXf5BqEUEuQ==",
"requires": {
"es6-promise": "^4.0.3",
"extract-zip": "^1.6.5",
"fs-extra": "^1.0.0",
"hasha": "^2.2.0",
"kew": "^0.7.0",
"progress": "^1.1.8",
"request": "^2.81.0",
"request-progress": "^2.0.1",
"which": "^1.2.10"
},
"dependencies": {
"fs-extra": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-1.0.0.tgz",
"integrity": "sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ==",
"requires": {
"graceful-fs": "^4.1.2",
"jsonfile": "^2.1.0",
"klaw": "^1.0.0"
}
},
"jsonfile": {
"version": "2.4.0",
"resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-2.4.0.tgz",
"integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
"requires": {
"graceful-fs": "^4.1.6"
}
},
"progress": {
"version": "1.1.8",
"resolved": "https://registry.npmmirror.com/progress/-/progress-1.1.8.tgz",
"integrity": "sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw=="
}
}
},
"phin": {
"version": "2.9.3",
"resolved": "https://registry.npmmirror.com/phin/-/phin-2.9.3.tgz",
"integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA=="
},
"picocolors": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz",
......@@ -11068,18 +12000,31 @@
"pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmmirror.com/pinkie/-/pinkie-2.0.4.tgz",
"integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
"dev": true
"integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg=="
},
"pinkie-promise": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
"dev": true,
"requires": {
"pinkie": "^2.0.0"
}
},
"pixelmatch": {
"version": "4.0.2",
"resolved": "https://registry.npmmirror.com/pixelmatch/-/pixelmatch-4.0.2.tgz",
"integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==",
"requires": {
"pngjs": "^3.0.0"
},
"dependencies": {
"pngjs": {
"version": "3.4.0",
"resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-3.4.0.tgz",
"integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
}
}
},
"pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",
......@@ -11129,6 +12074,16 @@
}
}
},
"pn": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/pn/-/pn-1.1.0.tgz",
"integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA=="
},
"pngjs": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-6.0.0.tgz",
"integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg=="
},
"pnp-webpack-plugin": {
"version": "1.7.0",
"resolved": "https://registry.npmmirror.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz",
......@@ -12354,8 +13309,7 @@
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz",
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
"dev": true
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="
},
"process-nextick-args": {
"version": "2.0.1",
......@@ -12817,6 +13771,11 @@
"integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
"dev": true
},
"queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
},
"random-bytes": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/random-bytes/-/random-bytes-1.0.0.tgz",
......@@ -12935,6 +13894,59 @@
"type-fest": "^0.6.0"
}
},
"read-pkg-up": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
"integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==",
"requires": {
"find-up": "^1.0.0",
"read-pkg": "^1.0.0"
},
"dependencies": {
"find-up": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/find-up/-/find-up-1.1.2.tgz",
"integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==",
"requires": {
"path-exists": "^2.0.0",
"pinkie-promise": "^2.0.0"
}
},
"path-exists": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-2.1.0.tgz",
"integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==",
"requires": {
"pinkie-promise": "^2.0.0"
}
},
"path-type": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/path-type/-/path-type-1.1.0.tgz",
"integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==",
"requires": {
"graceful-fs": "^4.1.2",
"pify": "^2.0.0",
"pinkie-promise": "^2.0.0"
}
},
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz",
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
},
"read-pkg": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-1.1.0.tgz",
"integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==",
"requires": {
"load-json-file": "^1.0.0",
"normalize-package-data": "^2.3.2",
"path-type": "^1.0.0"
}
}
}
},
"readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
......@@ -12956,6 +13968,26 @@
}
}
},
"readable-web-to-node-stream": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz",
"integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==",
"requires": {
"readable-stream": "^3.6.0"
},
"dependencies": {
"readable-stream": {
"version": "3.6.2",
"resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
}
}
},
"readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
......@@ -13228,11 +14260,25 @@
}
}
},
"request-progress": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/request-progress/-/request-progress-2.0.1.tgz",
"integrity": "sha512-dxdraeZVUNEn9AvLrxkgB2k6buTlym71dJk1fk4v8j3Ou3RKNm07BcgbHdj2lLgYGfqX71F+awb1MR+tWPFJzA==",
"requires": {
"throttleit": "^1.0.0"
},
"dependencies": {
"throttleit": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/throttleit/-/throttleit-1.0.1.tgz",
"integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ=="
}
}
},
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
},
"require-main-filename": {
"version": "2.0.0",
......@@ -13313,6 +14359,11 @@
"integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
"dev": true
},
"reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
},
"rgb-regex": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/rgb-regex/-/rgb-regex-1.0.1.tgz",
......@@ -13364,6 +14415,14 @@
"integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
"dev": true
},
"run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"requires": {
"queue-microtask": "^1.2.2"
}
},
"run-queue": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/run-queue/-/run-queue-1.0.3.tgz",
......@@ -14081,7 +15140,6 @@
"version": "3.2.0",
"resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz",
"integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
"requires": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
......@@ -14090,14 +15148,12 @@
"spdx-exceptions": {
"version": "2.5.0",
"resolved": "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
"integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
"dev": true
"integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w=="
},
"spdx-expression-parse": {
"version": "3.0.1",
"resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
"requires": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
......@@ -14106,8 +15162,7 @@
"spdx-license-ids": {
"version": "3.0.18",
"resolved": "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz",
"integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
"dev": true
"integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ=="
},
"spdy": {
"version": "4.0.2",
......@@ -14447,6 +15502,14 @@
}
}
},
"strip-bom": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-2.0.0.tgz",
"integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
"requires": {
"is-utf8": "^0.2.0"
}
},
"strip-eof": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz",
......@@ -14470,6 +15533,15 @@
"resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="
},
"strtok3": {
"version": "6.3.0",
"resolved": "https://registry.npmmirror.com/strtok3/-/strtok3-6.3.0.tgz",
"integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==",
"requires": {
"@tokenizer/token": "^0.3.0",
"peek-readable": "^4.1.0"
}
},
"stylehacks": {
"version": "4.0.3",
"resolved": "https://registry.npmmirror.com/stylehacks/-/stylehacks-4.0.3.tgz",
......@@ -14549,6 +15621,122 @@
"integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
"dev": true
},
"svg2png": {
"version": "4.1.1",
"resolved": "https://registry.npmmirror.com/svg2png/-/svg2png-4.1.1.tgz",
"integrity": "sha512-9tOp9Ugjlunuf1ugqkhiYboTmTaTI7p48dz5ZjNA5NQJ5xS1NLTZZ1tF8vkJOIBb/ZwxGJsKZvRWqVpo4q9z9Q==",
"requires": {
"file-url": "^2.0.0",
"phantomjs-prebuilt": "^2.1.14",
"pn": "^1.0.0",
"yargs": "^6.5.0"
},
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA=="
},
"camelcase": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-3.0.0.tgz",
"integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg=="
},
"cliui": {
"version": "3.2.0",
"resolved": "https://registry.npmmirror.com/cliui/-/cliui-3.2.0.tgz",
"integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==",
"requires": {
"string-width": "^1.0.1",
"strip-ansi": "^3.0.1",
"wrap-ansi": "^2.0.0"
}
},
"get-caller-file": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-1.0.3.tgz",
"integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
},
"is-fullwidth-code-point": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
"requires": {
"number-is-nan": "^1.0.0"
}
},
"require-main-filename": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-1.0.1.tgz",
"integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug=="
},
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
"strip-ansi": "^3.0.0"
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
"requires": {
"ansi-regex": "^2.0.0"
}
},
"which-module": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/which-module/-/which-module-1.0.0.tgz",
"integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ=="
},
"wrap-ansi": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==",
"requires": {
"string-width": "^1.0.1",
"strip-ansi": "^3.0.1"
}
},
"y18n": {
"version": "3.2.2",
"resolved": "https://registry.npmmirror.com/y18n/-/y18n-3.2.2.tgz",
"integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
},
"yargs": {
"version": "6.6.0",
"resolved": "https://registry.npmmirror.com/yargs/-/yargs-6.6.0.tgz",
"integrity": "sha512-6/QWTdisjnu5UHUzQGst+UOEuEVwIzFVGBjq3jMTFNs5WJQsH/X6nMURSaScIdF5txylr1Ao9bvbWiKi2yXbwA==",
"requires": {
"camelcase": "^3.0.0",
"cliui": "^3.2.0",
"decamelize": "^1.1.1",
"get-caller-file": "^1.0.1",
"os-locale": "^1.4.0",
"read-pkg-up": "^1.0.1",
"require-directory": "^2.1.1",
"require-main-filename": "^1.0.1",
"set-blocking": "^2.0.0",
"string-width": "^1.0.2",
"which-module": "^1.0.0",
"y18n": "^3.2.1",
"yargs-parser": "^4.2.0"
}
},
"yargs-parser": {
"version": "4.2.1",
"resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-4.2.1.tgz",
"integrity": "sha512-+QQWqC2xeL0N5/TE+TY6OGEqyNRM+g2/r712PDNYgiCdXYCApXf1vzfmDSLBxfGRwV+moTq/V8FnMI24JCm2Yg==",
"requires": {
"camelcase": "^3.0.0"
}
}
}
},
"svgo": {
"version": "1.3.2",
"resolved": "https://registry.npmmirror.com/svgo/-/svgo-1.3.2.tgz",
......@@ -14876,6 +16064,14 @@
}
}
},
"text-segmentation": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz",
"integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==",
"requires": {
"utrie": "^1.0.2"
}
},
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
......@@ -14995,12 +16191,22 @@
"setimmediate": "^1.0.4"
}
},
"timm": {
"version": "1.7.1",
"resolved": "https://registry.npmmirror.com/timm/-/timm-1.7.1.tgz",
"integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw=="
},
"timsort": {
"version": "0.3.0",
"resolved": "https://registry.npmmirror.com/timsort/-/timsort-0.3.0.tgz",
"integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==",
"dev": true
},
"tinycolor2": {
"version": "1.6.0",
"resolved": "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz",
"integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
},
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz",
......@@ -15086,6 +16292,15 @@
"integrity": "sha512-nfjOAu/zAWmX9tgwi5NRp7O7zTDUD1miHiB40klUnAh9qnL1iXdgzcz/i5dMaL5jahcBAaSfmNOBBJBLJW8TEg==",
"dev": true
},
"token-types": {
"version": "4.2.1",
"resolved": "https://registry.npmmirror.com/token-types/-/token-types-4.2.1.tgz",
"integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==",
"requires": {
"@tokenizer/token": "^0.3.0",
"ieee754": "^1.2.1"
}
},
"toposort": {
"version": "1.0.7",
"resolved": "https://registry.npmmirror.com/toposort/-/toposort-1.0.7.tgz",
......@@ -15230,8 +16445,7 @@
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
"dev": true
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
},
"typedarray-to-buffer": {
"version": "3.1.5",
......@@ -15627,6 +16841,14 @@
"integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==",
"dev": true
},
"utif": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/utif/-/utif-2.0.1.tgz",
"integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==",
"requires": {
"pako": "^1.0.5"
}
},
"util": {
"version": "0.11.1",
"resolved": "https://registry.npmmirror.com/util/-/util-0.11.1.tgz",
......@@ -15672,6 +16894,14 @@
"resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
},
"utrie": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz",
"integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==",
"requires": {
"base64-arraybuffer": "^1.0.2"
}
},
"uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz",
......@@ -15687,7 +16917,6 @@
"version": "3.0.4",
"resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
"dev": true,
"requires": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
......@@ -17240,6 +18469,36 @@
"integrity": "sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==",
"dev": true
},
"xhr": {
"version": "2.6.0",
"resolved": "https://registry.npmmirror.com/xhr/-/xhr-2.6.0.tgz",
"integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
"requires": {
"global": "~4.4.0",
"is-function": "^1.0.1",
"parse-headers": "^2.0.0",
"xtend": "^4.0.0"
}
},
"xml-parse-from-string": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz",
"integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g=="
},
"xml2js": {
"version": "0.5.0",
"resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.5.0.tgz",
"integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
"requires": {
"sax": ">=0.6.0",
"xmlbuilder": "~11.0.0"
}
},
"xmlbuilder": {
"version": "11.0.1",
"resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
},
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz",
......@@ -17306,7 +18565,6 @@
"version": "2.10.0",
"resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz",
"integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
"dev": true,
"requires": {
"buffer-crc32": "~0.2.3",
"fd-slicer": "~1.1.0"
......
{
"name": "vue-exectron-express-lowdb",
"name": "Jomall_Graphics_Lab",
"productName": "Jomall Graphics Lab",
"description": "",
"version": "0.1.0",
......@@ -11,18 +11,23 @@
"electron:build": "vue-cli-service electron:build",
"electron:serve": "nodemon --watch src/backend --exec vue-cli-service electron:serve",
"postinstall": "electron-builder install-app-deps",
"postuninstall": "electron-builder install-app-deps"
"postuninstall": "electron-builder install-app-deps",
"electron:generate-icons": "electron-icon-builder --input=./src/assets/logo.jpg --output=build --flatten"
},
"main": "background.js",
"dependencies": {
"@gausszhou/vue-drag-resize-rotate": "^2.0.15",
"@minogin/vue-drag-resize-rotate": "^1.0.5",
"@pinkcao/vue-drag-resize-rotate": "^1.2.5",
"@vue/composition-api": "^0.3.4",
"axios": "^0.19.2",
"compressing": "^1.10.1",
"core-js": "^3.6.4",
"electron-icon-builder": "^2.0.1",
"electron-store": "^4.0.0",
"element-ui": "^2.13.0",
"express": "^4.17.1",
"html2canvas": "^1.4.1",
"lodash": "^4.17.21",
"lodash-id": "^0.14.0",
"lowdb": "^1.0.0",
......
......@@ -20,7 +20,7 @@ function createWindow() {
win = new BrowserWindow({
width: 1500,
height: 1000,
icon: "./src/assets/logo.png",
icon: "./src/assets/logo.jpg",
webPreferences: {
webSecurity: false,
nodeIntegration: true,
......
......@@ -19,6 +19,14 @@ const routes = [
title: '设计页面'
},
component: (resolve) => require(['../views/design/index.vue'], resolve)
},
{
path: '/design-copy',
name: 'design',
meta: {
title: '设计页面'
},
component: (resolve) => require(['../views/design/copy.vue'], resolve)
}, {
path: '/design-detail',
name: 'design',
......
......@@ -66,7 +66,7 @@ service.interceptors.response.use(
}
if (res.code === 403) {
router.replace('/')
Vue.prototype.$message.error(res.msg || res.message || 'Error')
Vue.prototype.$message.error({showClose: true, message: res.msg || res.message || 'Error'})
Vue.prototype.$dataStore.delete('user')
return Promise.reject(new Error(res.msg || res.message || 'Error'))
}
......@@ -75,7 +75,7 @@ service.interceptors.response.use(
if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
// TODO: to re-login
}
Vue.prototype.$message.error(res.msg || res.message || 'Error')
Vue.prototype.$message.error({showClose: true, message: res.msg || res.message || 'Error'})
// reject
return Promise.reject(new Error(res.msg || res.message || 'Error'))
} else {
......
<script>
import VueDragResizeRotate from "@minogin/vue-drag-resize-rotate";
export default {
components: {VueDragResizeRotate},
data() {
return {
selectIndex:0,
imgList:[
{
x:0,
url:'https://pic2.zhimg.com/v2-5fb13110e1de13d4c11e6e7f5b8026da_r.jpg',
y:0,
zIndex:1,
h:100,
w:100,
r:0
},
{
x:0,
url:'https://ts1.cn.mm.bing.net/th/id/R-C.987f582c510be58755c4933cda68d525?rik=C0D21hJDYvXosw&riu=http%3a%2f%2fimg.pconline.com.cn%2fimages%2fupload%2fupc%2ftx%2fwallpaper%2f1305%2f16%2fc4%2f20990657_1368686545122.jpg&ehk=netN2qzcCVS4ALUQfDOwxAwFcy41oxC%2b0xTFvOYy5ds%3d&risl=&pid=ImgRaw&r=0',
y:0,
zIndex:2,
h:100,
w:100,
r:0
}
]
}
},
methods:{
resizing(x, y, w, h) {
this.$set(this.imgList[this.selectIndex], 'w', w)
this.$set(this.imgList[this.selectIndex], 'h', h)
this.$set(this.imgList[this.selectIndex], 'x', x)
this.$set(this.imgList[this.selectIndex], 'y', y)
},
onDragDebounce(data,item){
console.log(data,item)
this.imgList[this.selectIndex].x = left
this.imgList[this.selectIndex].y = top
},
},
mounted() {
}
}
</script>
<template>
<div class="page">
<vue-drag-resize-rotate
:w="item.w"
class-name="my-drag-resize-rotate"
:prevent-deactivation="true"
:h="item.h"
:parent="true"
:x="item.x"
:z="item.zIndex"
:isActive="index===selectIndex"
:aspectRatio="true"
:active="index===selectIndex"
:y="item.y"
v-for="(item,index) in imgList"
:key="index"
:draggable="true"
:resizable="true"
:rotatable="true"
@dragstop="(a)=>onDragDebounce(a,item)"
@resizing="resizing"
:angle="item.r"
>
<div ref="sucaitu-img" @click="selectItem(index)"
:class="{'active': index === selectIndex}"
class="sucaitu-img img element">
<img :src="item.url" alt="" class="sucaitu-img">
<i v-if="index===selectIndex" class=" close el-icon-close"></i>
<div v-if="index===selectIndex" class="control-point control-rotator"></div>
</div>
</vue-drag-resize-rotate>
</div>
</template>
<style scoped>
.sucaitu-img{
width: 100%;
height: 100%;
}
.sucaitu-img img{
width: 100%;
height: 100%;
}
.page {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
}
</style>
\ No newline at end of file
......@@ -105,7 +105,18 @@ export default {
},
created() {
this.setting = JSON.parse(JSON.stringify(this.$store.getters.systemSetting))
if(this.$dataStore.get('setting')){
this.setting = this.$dataStore.get('setting')
}
},
watch: {
setting: {
handler() {
this.$dataStore.set('setting', this.setting)
},
deep: true
}
},
methods: {
dropdownCommand(v) {
......@@ -173,31 +184,44 @@ export default {
await this.setData(this.detail)
}
if (this.productionNo === '') return this.$message.warning('请录入生产单号')
const findByPodProductionNo = await this.$api.post('/findByPodProductionNo', {
podProductionNo: this.productionNo,
status: 'IN_PRODUCTION'
})
this.detail = findByPodProductionNo.data
ipcRenderer.send('win-subScreen', findByPodProductionNo.data)
let res = await this.$api.post('/getPodProductionInfo', {productionNo: this.productionNo})
if (res.data.length === 0) return this.$message.warning('未找到素材图!')
for (let i = 0; i < res.data.length; i++) {
this.$api.post('/getPngImg', {fileName: res.data[i].fileName}, {
headers: {
'responseType': 'blob'
}
}).then(r => {
res.data[i].file = new File([r], res.data[i].fileName, {type: 'image/png'})
if (i === res.data.length - 1) {
this.imgList = res.data
bus.$emit('busEmit', {type: 'sendFile', value: res.data})
}
try {
const findByPodProductionNo = await this.$api.post('/findByPodProductionNo', {
podProductionNo: this.productionNo,
status: 'IN_PRODUCTION'
})
this.detail = findByPodProductionNo.data
ipcRenderer.send('win-subScreen', findByPodProductionNo.data)
} catch (err) {
this.productionNo = ''
this.$refs.searchRef.focus()
}
this.productionNo = ''
this.$refs.searchRef.focus()
try {
let res = await this.$api.post('/getPodProductionInfo', {productionNo: this.productionNo})
if (res.data.length === 0) return this.$message.warning('未找到素材图!')
for (let i = 0; i < res.data.length; i++) {
this.$api.post('/getPngImg', {fileName: res.data[i].fileName}, {
headers: {
'responseType': 'blob'
}
}).then(r => {
res.data[i].file = new File([r], res.data[i].fileName, {type: 'image/png'})
if (i === res.data.length - 1) {
this.imgList = res.data
bus.$emit('busEmit', {type: 'sendFile', value: res.data})
}
})
}
this.productionNo = ''
this.$refs.searchRef.focus()
} catch (err) {
bus.$emit('busEmit', {type: 'sendFile', value: []})
this.productionNo = ''
this.$refs.searchRef.focus()
}
},
changeActionIndex(t) {
let index = this.actionIndex
......@@ -225,7 +249,6 @@ export default {
bus.$emit('busEmit', {type: 'bg', value: this.selectBgColor})
},
async uploadImage(f) {
console.log(f, 6666)
let formData = new FormData()
formData.append('file', f)
let {data} = await this.$api.post('/uploadImage', formData, {
......@@ -282,7 +305,7 @@ export default {
<!-- </el-button>-->
<!-- </el-tooltip>-->
<el-tooltip content="图片">
<el-upload accept=".png" action="" :show-file-list="false" :before-upload="uploadImage">
<el-upload accept=".png" action="" :show-file-list="false" multiple :before-upload="uploadImage">
<el-button style="height: 100%;margin:0 8px" size="small">
<i class="el-icon-picture" style="font-size: 15px;"></i>
</el-button>
......
......@@ -2,6 +2,7 @@
import fieldDescription from "./fieldDescription";
import {ipcRenderer} from "electron"
import axios from 'axios'
import html2canvas from 'html2canvas'
export default {
data() {
......@@ -71,6 +72,10 @@ export default {
byPlatenSize: {
default: 0,
type: Number
},
imgList: {
default: [],
type: Array
}
},
mounted() {
......@@ -103,9 +108,6 @@ export default {
} else {
return '1.5'
}
},
imgList() {
return this.$store.state.imgList
}
},
watch: {
......@@ -197,11 +199,83 @@ export default {
console.log(str)
return str
},
dataURLtoBlob(dataurl) {
var arr = dataurl.split(',')
//注意base64的最后面中括号和引号是不转译的
var _arr = arr[1].substring(0, arr[1].length - 2)
var mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(_arr),
n = bstr.length,
u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new Blob([u8arr], {
type: mime
})
},
moreImageCmd(arr) {
var canvas1 = document.createElement("canvas");
let _canvas = document.getElementsByClassName('sucaitu')[0];//目标块
var bodyW = parseInt(window.getComputedStyle(_canvas).width)
var bodyH = parseInt(window.getComputedStyle(_canvas).height)
canvas1.width = bodyW;
canvas1.height = bodyH;
canvas1.style.width = bodyW + "px";
canvas1.style.height = bodyH + "px";
canvas1.style.background = 'transparent';
document.documentElement.scrollTop = 0;
document.body.scrollTop = 0;
var context = canvas1.getContext("2d");
// context.scale(2, 2);
let that = this
html2canvas(_canvas, {
canvas: canvas1,
backgroundColor: null,
useCORS: true,
allowTaint: true
}).then(async function (canvas) {
let dataURL = canvas.toDataURL('image/png')
let pageBlob = that.dataURLtoBlob(dataURL)
let params = new FormData()
let fileOfBlob = new File([pageBlob], new Date().getTime() + '.jpg')
params.append('file', fileOfBlob)
let {data} = await that.$api.post('/uploadImage', params, {
headers: {
"Content-Type": "application/x-www-form-urlencoded"
}
})
let w_mm = Number((canvas1.width * 0.84183).toFixed(1))
let h_mm = Number((canvas1.height * 0.84183).toFixed(1))
let size = `${that.singleStr(Number(w_mm).toFixed(1))}${that.singleStr(Number(h_mm).toFixed(1))}`
await that.sendCmd(data.fileName, size, '00000000', 0)
//canvas转换成url,然后利用a标签的download属性,直接下载,绕过上传服务器再下载
// document.querySelector(".down").setAttribute('href', canvas.toDataURL());
});
},
async getPrintCmd() {
if (this.imgList.length === 0) return this.$message.warning('素材不能为空')
console.log(this.imgList[0])
let {x, y, r, w, h} = this.imgList[0]
if (this.imgList.length > 1) {
let dom = document.getElementsByClassName('drr')
for (let i = 0; i < dom.length; i++) {
dom[i].classList.remove("active")
dom[i].classList.add("inactive")
}
setTimeout(() => {
this.moreImageCmd(this.imgList)
}, 500)
return
}
let {x, y, r, w, h} = this.imgList[0]
y = (Number(y) - Number(h) / 2)
x = (Number(x) - Number(w) / 2)
let x_mm = Number((x * 0.84183).toFixed(1))
let w_mm = Number((w * 0.84183).toFixed(1))
let h_mm = Number((h * 0.84183).toFixed(1))
......@@ -223,6 +297,9 @@ export default {
const bigNum = '0031131' // 图像放大倍数 -R
await this.sendCmd(imgFileName, size, position, r)
},
async sendCmd(imgFileName, size, position, r) {
const whitePrint = [1, 2].includes(this.printSetting.byInk) ? 1 : 0 // 白色打印
let cmd = `GTXproCMD.exe print -X "${`Profile\\${imgFileName.replace('.png', '')}.xml`}" -I "${'Input\\' + imgFileName}" -A "Output\\${imgFileName.replace('.png', '')}.arxp" -S ${size} -L ${position} -D ${r} -W ${whitePrint}`
let print_cmd = `GTXproCMD.exe send -A "Output\\${imgFileName.replace('.png', '')}.arxp" -P "${this.printer}`
......
......@@ -20,6 +20,7 @@ export default {
<template>
<div class="page">
<p-head :company="company" :user="user" />
<p-main/>
</div>
......
......@@ -7,6 +7,7 @@ export default {
x: 0,
rate: 0,
sx: 0,
zIndex: 0,
sh: 0,
sw: 0,
sy: 0,
......@@ -40,7 +41,9 @@ export default {
item: {
handler() {
if (this.item) {
console.log(this.item.x,this.item.y,this.item.h)
this.item.y = (this.item.y - this.item.h / 2)
this.item.x = (this.item.x - this.item.w / 2)
console.log(this.item.x, this.item.y, this.item.h)
let x_mm = Number((this.item.x * 0.84183).toFixed(2))
let w_mm = Number((this.item.w * 0.84183).toFixed(2))
let h_mm = Number((this.item.h * 0.84183).toFixed(2))
......@@ -51,6 +54,7 @@ export default {
this.form.y = y_mm
this.form.w = w_mm
this.form.h = h_mm
this.form.zIndex = this.item.zIndex
// this.form.sx = x_mm
// this.form.sy = y_mm
// this.form.sh = h_mm
......@@ -64,6 +68,7 @@ export default {
},
methods: {
formChange(t) {
if (t && t === 'w') {
this.form.h = this.form.w * this.form.rate
}
......@@ -71,10 +76,13 @@ export default {
this.form.w = this.form.h * this.form.rate
}
let f = JSON.parse(JSON.stringify(this.form))
f.y = (Number(f.y) + Number(f.h) / 2)
f.x = (Number(f.x) + Number(f.w) / 2)
f.x = Number((f.x / 0.84183).toFixed(2))
f.y = Number((f.y / 0.84183).toFixed(2))
f.w = Number((f.w / 0.84183).toFixed(2))
f.h = Number((f.h / 0.84183).toFixed(2))
f.zIndex = Number((f.zIndex))
this.$emit('change', f)
},
......@@ -159,11 +167,11 @@ export default {
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-col :span="12">
<el-form-item label="r:">
<div class="form-content">
<el-input @blur="formChange" v-model="form.r">
<template slot="append">reg</template>
<el-input maxlength="3" @blur="formChange" v-model="form.r">
</el-input>
<div class="set-value">
<i @click="addValue('r')" class="el-icon-arrow-up"></i>
......@@ -172,6 +180,19 @@ export default {
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="z:">
<div class="form-content">
<el-input @blur="formChange" v-model="form.zIndex">
</el-input>
<div class="set-value">
<i @click="addValue('zIndex')" class="el-icon-arrow-up"></i>
<i @click="reduceValue('zIndex')" class="el-icon-arrow-down"></i>
</div>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-tooltip content="居中">
<el-button @click="$emit('ev','center')" size="mini">
......
<script>
import VueDragResizeRotate from "@gausszhou/vue-drag-resize-rotate";
import VueDragResizeRotate from "@minogin/vue-drag-resize-rotate";
import ImgSetting from './imgSetting.vue'
import bus from '@/bus'
import PrintDialog from "@/views/design/head/printDialog.vue";
......@@ -12,22 +13,45 @@ export default {
VueDragResizeRotate,
ImgSetting,
},
destroyed() {
document.removeEventListener('keyup', this.keyup)
document.removeEventListener('dragover', this.dragover)
document.removeEventListener('drop', this.drop)
},
computed: {
sysSetting() {
return this.$store.getters.systemSetting
if(this.$dataStore.get('setting')){
return this.$dataStore.get('setting')
}else{
return this.$store.getters.systemSetting
}
},
gridSpacing() {
return this.$store.getters.systemSetting.gridSpacing.slice(0, 2) + 'px'
return this.sysSetting.gridSpacing.slice(0, 2) + 'px'
},
computedGridSize() {
const getter = this.$store.getters.systemSetting
const getter = this.sysSetting
const num = getter.gridSpacing.slice(0, 2)
return 10 + 'px'
},
returnItem() {
return this.imgList[this.selectIndex]
if (this.selectIndex < 0) {
this.showImgSetting = false
return null
}
let item = this.imgList[this.selectIndex]
if (item) {
item = JSON.parse(JSON.stringify(item))
item.x = Number(item.x) - Number(item.w)
item.y = Number(item.y) + (Number(item.h) / 2)
return JSON.parse(JSON.stringify(this.imgList[this.selectIndex]))
}
this.showImgSetting = false
return null
}
},
data() {
......@@ -36,25 +60,40 @@ export default {
parentWidth: 0,
imgHeight: 0,
selectImgList: [],
selectImgIndex: 0,
bus: 0,
showImgSetting: false,
parentHeight: 0,
width: 0,
selectIndex: 0,
selectIndex: -1,
height: 0,
x: 0,
y: 0,
imgList: [],
selectImgIndexList: [],
imgHistoryList: [[]],
imgHistoryIndex: 0,
row: 8,
img,
col: 7
}
},
watch: {
imgList: {
handler() {
if (this.imgList.length > 0) {
this.$nextTick(() => {
let dom = document.getElementsByClassName('drr')
this.imgList.forEach((el, i) => {
let dom_i = document.getElementsByClassName('drr')[i]
dom_i.style.zIndex = dom_i.style.zIndex === '' || !dom_i.style.zIndex ? 0 : dom_i.style.zIndex
dom[i].addEventListener('click', (e) => {
this.selectIndex = i
this.selectItem(i)
})
})
})
}
this.$store.commit('changeImgList', this.imgList)
},
deep: true,
......@@ -71,6 +110,82 @@ export default {
}
},
methods: {
async drop(e) {
let that = this
e.stopPropagation();
//阻止浏览器默认打开文件的操作
e.preventDefault();
console.log(e)
const files = e.dataTransfer.files;
if (files.length === 0) return
for (let i = 0; i < files.length; i++) {
if (files[i].type !== 'image/png') {
return that.$message.warning('只能上传png格式文件')
}
let formData = new FormData()
formData.append('file', files[i])
let {data} = await that.$api.post('/uploadImage', formData, {
headers: {
"Content-Type": "application/x-www-form-urlencoded"
}
})
that.selectImgIndex = 0
that.addFile(data, file => {
that.imgHistoryList.push(JSON.parse(JSON.stringify(that.imgList)))
})
}
},
dragover(e) {
e.stopPropagation();
//阻止浏览器默认打开文件的操作
e.preventDefault();
e.dataTransfer.dropEffect = 'copy';
},
keyup(e) {
console.log(e)
if (e.keyCode == 90 && e.ctrlKey) {
let i = this.imgHistoryList.length - (2 + this.imgHistoryIndex)
if (this.imgHistoryList[i]) {
this.imgList = JSON.parse(JSON.stringify(this.imgHistoryList[i]))
this.imgHistoryIndex = this.imgHistoryIndex + 1
}
}
if (this.selectIndex >= 0) {
if (e.keyCode === 38) {
//上
this.$set(this.imgList[this.selectIndex], 'y', Number(this.imgList[this.selectIndex].y) - 1)
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
}
if (e.keyCode === 40) {
//下
this.$set(this.imgList[this.selectIndex], 'y', Number(this.imgList[this.selectIndex].y) + 1)
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
}
if (e.keyCode === 37) {
//左
this.$set(this.imgList[this.selectIndex], 'x', Number(this.imgList[this.selectIndex].x) - 1)
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
}
if (e.keyCode === 39) {
//右
this.$set(this.imgList[this.selectIndex], 'x', Number(this.imgList[this.selectIndex].x) + 1)
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
}
}
if (e.keyCode === 8) {
if (this.selectIndex >= 0) {
this.imgList.splice(this.selectIndex, 1)
if (this.imgList.length > 0) {
this.selectIndex = 0
} else {
this.selectIndex = -1
}
}
}
},
debounce,
indexChange(v) {
console.log(v)
......@@ -103,40 +218,55 @@ export default {
return mm1.width;
},
selectImg(it, i) {
this.selectImgIndex = i
this.imgList = []
this.getBackFile([it])
// this.selectImgIndexList.push(i)
// this.selectImgIndexList = Array.from(new Set(this.selectImgIndexList))
this.getBackFile([it], file => {
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
})
},
ev(type) {
if (this.selectIndex === -1) this.selectIndex = 0
if (this.selectIndex < 0) return
// if (this.selectIndex === -1) this.selectIndex = 0
if (!this.imgList[this.selectIndex]) return
let w = document.getElementById('line').clientWidth / 2
let h = document.getElementById('line').clientHeight / 2
let dom = document.getElementsByClassName('drr')[this.selectIndex]
let z_index = dom.style.zIndex === '' || !dom.style.zIndex ? 0 : dom.style.zIndex
switch (type) {
case 'center':
this.$set(this.imgList[this.selectIndex], 'x', Number(w) - (Number(this.imgList[this.selectIndex].w) / 2))
this.$set(this.imgList[this.selectIndex], 'y', Number(h) - (Number(this.imgList[this.selectIndex].h) / 2))
this.$set(this.imgList[this.selectIndex], 'x', Number(w))
this.$set(this.imgList[this.selectIndex], 'y', Number(h))
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
break;
case 'x_center':
this.$set(this.imgList[this.selectIndex], 'x', Number(w) - (Number(this.imgList[this.selectIndex].w) / 2))
this.$set(this.imgList[this.selectIndex], 'x', Number(w))
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
break;
case 'y_center':
this.$set(this.imgList[this.selectIndex], 'y', Number(h) - (Number(this.imgList[this.selectIndex].h) / 2))
this.$set(this.imgList[this.selectIndex], 'y', Number(h))
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
break;
case 'add_index':
dom.style.zIndex = Number(z_index) + 1
console.log(dom.style.zIndex)
this.$set(this.imgList[this.selectIndex], 'zIndex', this.imgList[this.selectIndex].zIndex + 1)
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
break;
case 'reduce_index':
dom.style.zIndex = Number(z_index) - 1
console.log(dom.style.zIndex)
this.$set(this.imgList[this.selectIndex], 'zIndex', this.imgList[this.selectIndex].zIndex - 1)
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
break;
default:
break
}
},
formChange(form) {
if (this.selectIndex === -1) this.selectIndex = 0
// if (this.selectIndex === -1) this.selectIndex = 0
if (!this.imgList[this.selectIndex]) return
let f = JSON.parse(JSON.stringify(form))
let x_mm = f.x
......@@ -148,69 +278,94 @@ export default {
this.$set(this.imgList[this.selectIndex], 'w', w_mm)
this.$set(this.imgList[this.selectIndex], 'h', h_mm)
this.$set(this.imgList[this.selectIndex], 'r', f.r)
this.$set(this.imgList[this.selectIndex], 'zIndex', f.zIndex)
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
},
close() {
this.showImgSetting = false
},
onDragDebounce(left, top) {
// console.log(left,top,'2')
onDragDebounce(left, top, item, index) {
},
dragStop(data, item) {
this.$set(item, 'y', data.y)
this.$set(item, 'x', data.x)
// console.log(left, top)
// if (!this.imgList[this.selectIndex]) return
// this.imgList[this.selectIndex].x = left
// this.imgList[this.selectIndex].y = top
// this.$set(this.imgList[this.selectIndex], 'x', left)
// this.$set(this.imgList[this.selectIndex], 'y', top)
// this.selectIndex = -1
// this.actionList.unshift({
// t: 'drag',
// x: left,
// y: top
// })
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
// this.$store.commit('changeActionList', this.actionList)
},
dragStop(left, top) {
if (this.selectIndex === -1) this.selectIndex = 0
if (!this.imgList[this.selectIndex]) return
this.$set(this.imgList[this.selectIndex], 'x', left)
this.$set(this.imgList[this.selectIndex], 'y', top)
this.actionList.unshift({
t: 'drag',
x: left,
y: top
})
this.$store.commit('changeActionList', this.actionList)
},
resizeStop(x, y, w, h) {
if (this.selectIndex === -1) this.selectIndex = 0
if (!this.imgList[this.selectIndex]) return
this.$set(this.imgList[this.selectIndex], 'w', w)
this.$set(this.imgList[this.selectIndex], 'h', h)
this.$set(this.imgList[this.selectIndex], 'x', x)
this.$set(this.imgList[this.selectIndex], 'y', y)
this.actionList.unshift({
t: 'resize',
x,
y,
w,
h
})
this.$store.commit('changeActionList', this.actionList)
resizeStop(data, item) {
// if (this.selectIndex === -1) this.selectIndex = 0
console.log('drag', this.selectIndex)
if (this.selectIndex < 0) return
this.$set(item, 'y', data.y)
this.$set(item, 'w', data.w)
this.$set(item, 'h', data.h)
this.$set(item, 'x', data.x)
// console.log(this.selectIndex,'resize',x, y, w, h)
// this.actionList.unshift({
// t: 'resize',
// x,
// y,
// w,
// h
// })
// this.$store.commit('changeActionList', this.actionList)
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
},
resizing(x, y, w, h) {
if (this.selectIndex === -1) this.selectIndex = 0
if (!this.imgList[this.selectIndex]) return
this.$set(this.imgList[this.selectIndex], 'w', w)
this.$set(this.imgList[this.selectIndex], 'h', h)
resizing(index) {
},
rotating(angle) {
if (this.selectIndex === -1) this.selectIndex = 0
if (!this.imgList[this.selectIndex]) return
this.$set(this.imgList[this.selectIndex], 'r', angle)
rotating(data, item) {
console.log(data)
this.$set(item, 'r', data.angle.toFixed(2))
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
},
outsideClick(e) {
if (!e.target.className.includes('sucaitu-img')) {
if (!(e.target.className.includes('drr') || e.target.className.includes('sucaitu-img'))) {
this.selectIndex = -1
this.close()
}
},
selectItem(index) {
let dom = document.getElementsByClassName('drr')
for (let i = 0; i < dom.length; i++) {
if (index !== i) {
dom[i].classList.remove("active")
dom[i].classList.add("inactive")
}
}
this.selectIndex = index
},
deSelect(index) {
console.log(index, 222222222)
this.close()
this.selectIndex = -1
},
delImg(index) {
console.log(index, 'index')
this.imgList.splice(index, 1)
if (this.imgList.length > 0) {
this.selectIndex = 0
this.showImgSetting = true
} else {
this.selectIndex = -1
}
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
},
fileToBase64(file) {
return new Promise((resolve, reject) => {
......@@ -232,7 +387,7 @@ export default {
};
});
},
getBackFile(files) {
getBackFile(files, callback) {
console.log(files)
let that = this
for (let i = 0; i < files.length; i++) {
......@@ -247,18 +402,22 @@ export default {
rate,
w: 100,
zIndex: that.imgList.length,
x: w - 75,
y: 0,
x: w,
y: (100 * rate) / 2,
h: 100 * rate,
r: 0,
});
that.selectIndex = that.imgList.length - 1
that.showImgSetting = true
if (i === files.length - 1) {
callback && callback()
}
})
})
}
},
addFile(file) {
addFile(file, callback) {
let that = this
that.$nextTick(() => {
that.getImageSize(file.url).then(data => {
......@@ -270,13 +429,15 @@ export default {
rate,
fileName: file.fileName,
zIndex: that.imgList.length,
x: w - 75,
y: 0,
x: w,
y: (100 * rate) / 2,
h: 100 * rate,
r: 0,
});
console.log(that.imgList)
that.selectIndex = that.imgList.length - 1
that.showImgSetting = true
callback && callback(file)
})
})
},
......@@ -285,35 +446,8 @@ export default {
that.parentWidth = document.getElementById('img').clientWidth
that.parentHeight = document.getElementById('img').clientHeight
let dp = document.getElementsByClassName('container')[0]
dp.addEventListener('dragover', function (e) {
e.stopPropagation();
//阻止浏览器默认打开文件的操作
e.preventDefault();
e.dataTransfer.dropEffect = 'copy';
});
dp.addEventListener("drop", async function (e) {
e.stopPropagation();
//阻止浏览器默认打开文件的操作
e.preventDefault();
console.log(e)
const files = e.dataTransfer.files;
if (files.length === 0) return
if (files[0].type !== 'image/png') {
return that.$message.warning('只能上传png格式文件')
}
let formData = new FormData()
console.log(files)
formData.append('file', files[0])
let {data} = await that.$api.post('/uploadImage', formData, {
headers: {
"Content-Type": "application/x-www-form-urlencoded"
}
})
that.imgList = []
that.selectImgList = []
that.selectImgIndex = 0
that.addFile(data)
});
dp.addEventListener('dragover', this.dragover);
dp.addEventListener("drop", this.drop);
},
getImageSize(url) {
return new Promise(function (resolve, reject) {
......@@ -385,9 +519,7 @@ export default {
};
return img;
}
}
,
},
mounted() {
this.imgHeight = window.screen.height + 'px'
......@@ -407,10 +539,11 @@ export default {
})
break;
case 'uploadImage':
this.imgList = []
this.selectImgList = []
this.selectImgIndex = 0
this.addFile(value)
this.addFile(value, file => {
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
// this.selectImgList.push(file)
// this.selectImgIndex = this.selectImgList.length - 1
})
break;
case 'sendFile':
this.imgList = []
......@@ -419,7 +552,9 @@ export default {
console.log(value)
this.selectImgList = value
this.selectImgIndex = 0
this.getBackFile([value[0]])
this.getBackFile([value[0]], file => {
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)))
})
// this.addFile([value[0].file])
}
break;
......@@ -428,13 +563,7 @@ export default {
}
})
document.addEventListener('keyup', (e) => {
if (e.keyCode === 8) {
if (this.selectIndex >= 0) {
this.imgList.splice(this.selectIndex, 1)
}
}
})
document.addEventListener('keyup', this.keyup)
this.listenUpload()
document.getElementById('img').onmousedown = function (e) {
......@@ -449,7 +578,7 @@ export default {
<div @click="outsideClick" class="main-bg">
<div class="container">
<div class="select-img" v-if="selectImgList.length>1">
<div @click="selectImg(it,i)" :class="{'select-img-index':selectImgIndex===i}" v-for="(it,i) in selectImgList"
<div @click="selectImg(it,i)" v-for="(it,i) in selectImgList"
:key="i"
class="img-item">
<el-image style="width: 100px;height: auto;" :src="it.productionFile"
......@@ -459,34 +588,32 @@ export default {
</div>
<div :style="{height:imgHeight}" id="img">
<div id="line" v-if="sysSetting.gridShow">
<div class="sucaitu">
<div class="sucaitu" style="width:482px;height:542px">
<vue-drag-resize-rotate
:w="item.w"
class-name="my-drag-resize-rotate"
:prevent-deactivation="true"
:prevent-deactivation="false"
:h="item.h"
:parent="false"
:x="item.x"
:z="item.zIndex"
:lock-aspect-ratio="true"
:active="index===selectIndex"
:aspectRatio="true"
:isActive="index===selectIndex"
:y="item.y"
v-for="(item,index) in imgList"
:key="index"
:draggable="true"
:resizable="true"
:rotatable="true"
@dragging="onDragDebounce"
@dragstop="dragStop"
@resizing="resizing"
@resizestop="resizeStop"
@rotating="rotating"
:r="item.r"
@dragstop="(a)=>dragStop(a,item)"
@resizestop="(a)=>resizeStop(a,item)"
@rotatestop="(a)=>rotating(a,item)"
:angle="item.r"
>
<div ref="sucaitu-img" @click="selectItem(index)"
<div ref="sucaitu-img"
:class="{'active': index === selectIndex}"
:style="{zIndex: item.zIndex}"
class="sucaitu-img img element">
<img :src="item.url" alt="" class="sucaitu-img">
<img crossOrigin="anonymous" :src="item.url" alt="" class="sucaitu-img">
<i @click="delImg(index)" v-if="index===selectIndex" class=" close el-icon-close"></i>
<div v-if="index===selectIndex" class="control-point control-rotator"></div>
</div>
......@@ -514,7 +641,7 @@ export default {
<img class="template-img" draggable="false" :src="img" alt="">
</div>
<print-dialog :byPlatenSize="$store.getters.systemSetting.gridValue"/>
<print-dialog :imgList="imgList" :byPlatenSize="$store.getters.systemSetting.gridValue"/>
</div>
</div>
<img-setting @ev="ev" @change="formChange" :item="returnItem" @close="close"
......@@ -598,7 +725,7 @@ export default {
.sucaitu {
position: absolute;
z-index: 3;
z-index: 0;
width: 100%;
//display: flex;
//justify-content: center;
......@@ -622,6 +749,7 @@ export default {
top: -11px;
right: -12px;
color: white;
z-index: 1000;
width: 20px;
cursor: pointer;
height: 20px;
......@@ -713,12 +841,24 @@ img {
bottom: 0;
border-right: 1px solid #ececec;
}
.sucaitu-img {
position: relative;
}
</style>
<style>
.el-upload {
height: 100%;
}
.drr-stick {
z-index: 9999;
}
.drr-stick-tr {
z-index: -1 !important;
}
.my-drag-resize-rotate {
border-color: transparent;
}
......
......@@ -9,19 +9,23 @@ export default {
password: [{message: '请输入密码', required: true, trigger: 'blur'}],
},
companyList: [],
userList: [],
company: null,
authorityVisible: false,
remember: true,
authorityForm: {},
form: {
loginName: '',
user: '',
company: '',
password: ''
}
}
},
created() {
console.log(this.$dataStore, 'this.$dataStore')
this.company = this.$dataStore.get('company')
this.userList = this.$dataStore.get('userList') || []
if (this.company) {
this.form.company = this.company.domain
}
......@@ -75,13 +79,16 @@ export default {
}
},
async login() {
this.$refs.formRef.validate(async valid => {
if (valid) {
let f = JSON.parse(JSON.stringify(this.form))
f.company = f.company.includes('.jomalls.com') ? f.company : f.company + '.jomalls.com'
if (f.company.split('.').length === 1) {
f.company = f.company + '.jomalls.com'
}
if (!f.deviceId) {
f.deviceId = this.$dataStore.get('deviceId' + this.form.loginName)
}
f.deviceId = this.$dataStore.get('deviceId' + this.form.loginName)
if (!f.deviceId) delete f.deviceId
let {data, code, message} = await this.$api.post('/login', f)
if (code === 411) {
......@@ -101,7 +108,16 @@ export default {
console.log(item, 111222)
this.$dataStore.set('user', data)
this.$dataStore.set('company', item)
this.$message.success('登录成功')
if (this.remember) {
let userList = this.$dataStore.get('userList')
if (userList && !userList.find(el => el.loginName === f.loginName && el.company === f.company)) {
userList.push(f)
} else {
userList = [f]
}
this.$dataStore.set('userList', userList)
}
await this.$router.push('/design')
}
......@@ -109,6 +125,17 @@ export default {
},
userChange(v) {
if (v === '') {
this.form.deviceId = ''
return
}
console.log(this.userList, v)
this.form.company = this.userList[v].company.split('.')[0]
this.form.loginName = this.userList[v].loginName
this.form.password = this.userList[v].password
this.form.deviceId = this.userList[v].deviceId
},
async getCompanyList() {
let {data} = await this.$api.get('/getCompanyList')
this.companyList = data.records
......@@ -120,7 +147,17 @@ export default {
<template>
<div class="login">
<div class="form-content">
<el-form ref="formRef" :rules="rules" size="small" :model="form">
<el-form v-if="" ref="formRef" :rules="rules" size="small" :model="form">
<el-form-item v-if="userList.length>0">
<el-select @change="userChange" filterable style="width: 100%;" placeholder="登录记录" v-model="form.user"
clearable>
<template slot="prefix">
<i class="el-icon-monitor"></i>
</template>
<el-option v-for="(it,i) in userList" :key="i" :label="`${it.loginName}(${it.company.split('.')[0]})`"
:value="i"></el-option>
</el-select>
</el-form-item>
<el-form-item v-if="!company" prop="company">
<el-input placeholder="客户(例如demo)" prefix-icon="el-icon-monitor" v-model="form.company"
clearable></el-input>
......@@ -132,6 +169,7 @@ export default {
<!-- <el-option v-for="(it,i) in companyList" :key="i" :label="it.companyName" :value="it.domain"></el-option>-->
<!-- </el-select>-->
</el-form-item>
<el-form-item prop="loginName">
<el-input placeholder="用户名" prefix-icon="el-icon-user" v-model="form.loginName" clearable></el-input>
</el-form-item>
......@@ -139,6 +177,9 @@ export default {
<el-input placeholder="密码" show-password prefix-icon="el-icon-lock" type="password" v-model="form.password"
clearable></el-input>
</el-form-item>
<div class="check">
<el-checkbox v-model="remember">记住账号</el-checkbox>
</div>
<el-form-item>
<div style="display: flex;justify-content: center">
<el-button @keyup.enter.native="login" @click="login" type="primary" style="width: 60%;">登录</el-button>
......@@ -183,6 +224,12 @@ export default {
</template>
<style scoped>
.check {
display: flex;
justify-content: flex-end;
margin-bottom: 15px;
}
.login {
width: 100%;
height: 100%;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment