UV Editor fixes

This commit is contained in:
JannisX11 2021-09-07 21:14:33 +02:00
parent df86fec2ee
commit dd5ce5c961
6 changed files with 209 additions and 311 deletions

View File

@ -1291,37 +1291,7 @@
white-space: nowrap;
text-align: center;
}
/*
#uv_size {
height: 320px;
width: 320px;
cursor: move;
box-sizing: border-box;
z-index: 1;
box-shadow: 0 0 0 1.5px #ffffff;
mix-blend-mode: difference;
}
.uv_size_handle {
position: absolute;
cursor: move;
}
#uv_rotation {
width: 72px;
margin-top: 1px;
}
.uv_transform_info {
position: absolute;
display: block;
right: 8px;
top: 8px;
font-size: 0.9em;
cursor: default;
pointer-events: none;
z-index: 5;
color: white;
mix-blend-mode: difference;
font-weight: 300;
}*/
.panel .bar.next_to_title {
margin-top: -34px;
margin-right: 32px;
@ -1333,72 +1303,24 @@
float: right;
pointer-events: initial;
}
/*
#uv_size .ui-resizable-se:before,
#uv_size .ui-resizable-sw:before,
#uv_size .ui-resizable-ne:before,
#uv_size .ui-resizable-nw:before {
content: "";
position: absolute;
height: 7px;
width: 7px;
background-color: var(--color-text);
}
#uv_size .ui-resizable-se,
#uv_size .ui-resizable-sw,
#uv_size .ui-resizable-ne,
#uv_size .ui-resizable-nw {
height: 9px;
width: 9px;
}
#uv_size .ui-resizable-se {right: -6px; bottom: -6px; z-index: 91 !important;}
#uv_size .ui-resizable-sw {left: -6px; bottom: -6px;}
#uv_size .ui-resizable-ne {right: -6px; top: -6px;}
#uv_size .ui-resizable-nw {left: -6px; top: -6px;}
#uv_frame:hover #uv_size .ui-resizable-handle:before {
background-color: white;
}
#uv_frame:hover #uv_size.dark_frame .ui-resizable-handle:before {
background-color: black;
}
#uv_frame:hover #uv_size .ui-resizable-handle:hover:before {
background-color: var(--color-accent);
}
#uv_size .ui-resizable-se:before {
bottom: 2px;
right: 2px;
}
#uv_size .ui-resizable-sw:before {
bottom: 2px;
left: 2px;
}
#uv_size .ui-resizable-ne:before {
top: 2px;
right: 2px;
}
#uv_size .ui-resizable-nw:before {
top: 2px;
left: 2px;
}*/
.uv_cube_face_bar {
#uv_cube_face_bar {
display: flex;
height: 28px;
}
.uv_cube_face_bar li {
#uv_cube_face_bar li {
flex-grow: 1;
text-align: center;
padding: 2px;
margin: 0 1px;
}
.uv_cube_face_bar li:hover {
#uv_cube_face_bar li:hover {
color: var(--color-light);
}
.uv_cube_face_bar li.selected {
#uv_cube_face_bar li.selected {
border-bottom: 3px solid var(--color-accent);
}
.uv_cube_face_bar li.disabled {
#uv_cube_face_bar li.disabled {
color: var(--color-subtle_text);
}

View File

@ -2014,12 +2014,16 @@ const BARS = {
children: [
'transform_space',
'rotation_space',
'selection_mode',
'lock_motion_trail'
]
})
Blockbench.onUpdateTo('3.7', () => {
Toolbars.main_tools.add(BarItems.lock_motion_trail, -1);
})
Blockbench.onUpdateTo('4.0.0-beta.1', () => {
Toolbars.main_tools.add(BarItems.selection_mode, -1);
})
Toolbars.brush = new Toolbar({
id: 'brush',
children: [

View File

@ -711,7 +711,11 @@ class Preview {
} else if (Toolbox.selected.selectElements && Modes.selected.selectElements && data.type === 'element') {
if (Toolbox.selected.selectFace && data.face) {
UVEditor.setFace(data.face, false)
if (data.element instanceof Mesh && select_mode == 'face' && (event.ctrlOrCmd || Pressing.overrides.ctrl || event.shiftKey || Pressing.overrides.shift)) {
UVEditor.vue.selected_faces.safePush(data.face)
} else {
UVEditor.setFace(data.face, false);
}
}
Blockbench.dispatchEvent('canvas_select', data)
if (Modes.paint) {

View File

@ -452,60 +452,6 @@ const UVEditor = {
this.vue.$forceUpdate();
return this;
},
save(pos_only) {
if (!Modes.edit) return;
var scope = this;
//Save UV from Frame to object
if (Project.box_uv) {
Cube.selected.forEach(function(obj) {
obj.uv_offset = [
Math.round(scope.jquery.size.position().left / (scope.inner_width/Project.texture_width) * 8) / 8,
Math.round(scope.jquery.size.position().top / (scope.inner_width/Project.texture_width) * 8) / 8
]
Canvas.updateUV(obj)
})
} else {
var trim = v => Math.round(v * this.grid) / this.grid;
var pixelSize = this.inner_width/this.getResolution(0);
var position = this.jquery.size.position()
var left = trim( position.left / pixelSize);
var top = trim( position.top / pixelSize);
var left2= Math.clamp(trim( (this.jquery.size.width() + position.left) / pixelSize), 0, this.getResolution(0));
var top2 = Math.clamp(trim( (this.jquery.size.height() + position.top) / pixelSize), 0, this.getResolution(1));
var uvTag = this.getUVTag()
if (uvTag[0] > uvTag[2]) {
left2 = [left, left = left2][0];
}
if (uvTag[1] > uvTag[3]) {
top2 = [top, top = top2][0];
}
Cube.selected.forEach(function(obj) {
let {uv} = obj.faces[scope.face];
if (pos_only) {
let diff_x = left > left2 ? left2 - uv[2] : left - uv[0];
let diff_y = top > top2 ? top2 - uv[3] : top - uv[1];
uv[0] += diff_x;
uv[1] += diff_y;
uv[2] += diff_x;
uv[3] += diff_y;
} else {
uv.replace([left, top, left2, top2])
}
Canvas.updateUV(obj)
})
}
if (this !== UVEditor && this.face === UVEditor.face) {
UVEditor.loadData()
}
},
applyTexture(texture) {
let elements = this.getMappableElements();
Undo.initEdit({elements, uv_only: true})
@ -520,49 +466,6 @@ const UVEditor = {
Canvas.updateSelectedFaces()
Undo.finishEdit('Apply texture')
},
displayTexture(face) {
return this;
if (!face && Cube.selected.length) {
var face = Cube.selected[0].faces[this.face];
}
var tex = face ? face.getTexture() : Texture.getDefault();
if (!tex || typeof tex !== 'object' || (tex.error && tex.error != 2)) {
this.img.src = '';
this.img.style.display = 'none';
this.texture = false;
} else {
this.img.src = tex.source;
this.img.style.display = 'block';
this.texture = tex;
if (!Project.box_uv && this.auto_grid) {
this.grid = tex.width / Project.texture_width;
}
}
if (!tex || typeof tex !== 'object') {
if (!Format.single_texture && Texture.selected) {
unselectTextures()
}
} else if (Texture.selected != tex) {
tex.select()
}
this.setSize(this.size, true)
},
displayTransformInfo() {
return this;
var ref = Cube.selected[0].faces[this.face]
this.jquery.transform_info.text('')
if (Project.box_uv) return;
if (ref.uv[0] > ref.uv[2]) {
this.jquery.transform_info.append('<b>X</b>')
}
if (ref.uv[1] > ref.uv[3]) {
this.jquery.transform_info.append('<b>Y</b>')
}
if (ref.rotation) {
this.jquery.transform_info.append('<b>'+ref.rotation+'</b>')
}
},
displaySliders() {
if (!this.getMappableElements().length) return;
for (var id in UVEditor.sliders) {
@ -631,7 +534,7 @@ const UVEditor = {
mesh.faces[fkey].uv[vkey][axis] = modify(mesh.faces[fkey].uv[vkey][axis]);
})
})
obj.preview_controller.updateUV(obj);
mesh.preview_controller.updateUV(mesh);
})
this.displaySliders()
this.vue.$forceUpdate()
@ -1590,7 +1493,7 @@ Interface.definePanels(function() {
if (!UVEditor.getReferenceFace()) return;
UVEditor.menu.open(event);
},
selectFace(key, event, keep_selection) {
selectFace(key, event, keep_selection, support_dragging) {
if (keep_selection && this.selected_faces.includes(key)) {
} else if (event.shiftKey || event.ctrlOrCmd || Pressing.overrides.shift || Pressing.overrides.ctrl) {
@ -1602,7 +1505,23 @@ Interface.definePanels(function() {
} else {
this.selected_faces.replace([key]);
}
UVEditor.vue.updateTexture()
UVEditor.vue.updateTexture();
if (support_dragging) {
let scope = this;
function drag(e1) {
if (e1.target && e1.target.nodeName == 'LI' && e1.target.parentElement.id == 'uv_cube_face_bar') {
let face = e1.target.attributes.face.value;
scope.selected_faces.safePush(face);
}
}
function stop() {
removeEventListeners(document, 'mousemove touchmove', drag);
removeEventListeners(document, 'mouseup touchend', stop);
}
addEventListeners(document, 'mousemove touchmove', drag);
addEventListeners(document, 'mouseup touchend', stop);
}
},
selectCube(cube, event) {
if (!this.dragging_uv) {
@ -1844,8 +1763,8 @@ Interface.definePanels(function() {
</div>
</div>
<div class="bar uv_cube_face_bar" v-if="mode != 'properties' && mappable_elements[0] && mappable_elements[0].type == 'cube' && !box_uv">
<li v-for="(face, key) in mappable_elements[0].faces" :class="{selected: selected_faces.includes(key), disabled: mappable_elements[0].faces[key].texture === null}" @mousedown="selectFace(key, $event)">
<div class="bar" id="uv_cube_face_bar" v-if="mode != 'properties' && mappable_elements[0] && mappable_elements[0].type == 'cube' && !box_uv">
<li v-for="(face, key) in mappable_elements[0].faces" :face="key" :class="{selected: selected_faces.includes(key), disabled: mappable_elements[0].faces[key].texture === null}" @mousedown="selectFace(key, $event, false, true)">
{{ face_names[key] }}
</li>
</div>
@ -1964,13 +1883,13 @@ Interface.definePanels(function() {
let {slider_bar} = UVEditor.vue.$refs;
var onBefore = function() {
Undo.initEdit({elements: Cube.selected})
Undo.initEdit({elements: UVEditor.getMappableElements()})
}
var onAfter = function() {
Undo.finishEdit('Edit UV')
}
var getInterval = function(event) {
return 1/UVEditor.grid
return canvasGridSize(event.shiftKey || Pressing.overrides.shift, event.ctrlOrCmd || Pressing.overrides.ctrl) / UVEditor.grid;
}
function getPos(axis) {
let elements = UVEditor.getMappableElements();
@ -1988,12 +1907,13 @@ Interface.definePanels(function() {
if (face) {
let selected_vertices = Project.selected_vertices[elements[0].uuid];
let has_selected_vertices = selected_vertices && face.vertices.find(vkey => selected_vertices.includes(vkey))
let min = -Infinity;
let min = Infinity;
face.vertices.forEach(vkey => {
if ((!has_selected_vertices || selected_vertices.includes(vkey)) && face.uv[vkey]) {
min = Math.min(min, face.uv[vkey][axis]);
}
})
if (min == Infinity) min = 0;
return trimFloatNumber(min)
}
}

288
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "Blockbench",
"version": "3.9.1",
"version": "4.0.0-beta.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -1226,9 +1226,9 @@
},
"dependencies": {
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"dev": true,
"requires": {
"ms": "2.1.2"
@ -1460,10 +1460,13 @@
}
},
"@types/debug": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz",
"integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==",
"dev": true
"version": "4.1.7",
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
"integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
"dev": true,
"requires": {
"@types/ms": "*"
}
},
"@types/eslint": {
"version": "7.2.6",
@ -1492,18 +1495,18 @@
"dev": true
},
"@types/fs-extra": {
"version": "9.0.11",
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.11.tgz",
"integrity": "sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA==",
"version": "9.0.12",
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.12.tgz",
"integrity": "sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/glob": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
"integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==",
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz",
"integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==",
"dev": true,
"optional": true,
"requires": {
@ -1527,12 +1530,18 @@
"dev": true
},
"@types/minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==",
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
"dev": true,
"optional": true
},
"@types/ms": {
"version": "0.7.31",
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
"integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
"dev": true
},
"@types/node": {
"version": "14.0.19",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.19.tgz",
@ -1547,6 +1556,15 @@
"requires": {
"@types/node": "*",
"xmlbuilder": ">=11.0.1"
},
"dependencies": {
"xmlbuilder": {
"version": "15.1.1",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
"integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
"dev": true,
"optional": true
}
}
},
"@types/resolve": {
@ -1573,25 +1591,25 @@
"dev": true
},
"@types/verror": {
"version": "1.10.4",
"resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.4.tgz",
"integrity": "sha512-OjJdqx6QlbyZw9LShPwRW+Kmiegeg3eWNI41MQQKaG3vjdU2L9SRElntM51HmHBY1cu7izxQJ1lMYioQh3XMBg==",
"version": "1.10.5",
"resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.5.tgz",
"integrity": "sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw==",
"dev": true,
"optional": true
},
"@types/yargs": {
"version": "16.0.3",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz",
"integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==",
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.2.tgz",
"integrity": "sha512-JhZ+pNdKMfB0rXauaDlrIvm+U7V4m03PPOSVoPS66z8gf+G4Z/UW8UlrVIj2MRQOBzuoEvYtjS0bqYwnpZaS9Q==",
"dev": true,
"requires": {
"@types/yargs-parser": "*"
}
},
"@types/yargs-parser": {
"version": "20.2.0",
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz",
"integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==",
"version": "20.2.1",
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz",
"integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==",
"dev": true
},
"@webassemblyjs/ast": {
@ -1841,15 +1859,15 @@
}
},
"app-builder-bin": {
"version": "3.5.13",
"resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.13.tgz",
"integrity": "sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg==",
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz",
"integrity": "sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==",
"dev": true
},
"app-builder-lib": {
"version": "22.11.7",
"resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.11.7.tgz",
"integrity": "sha512-pS9/cR4/TnNZVAHZECiSvvwTBzbwblj7KBBZkMKDG57nibq0I1XY8zAaYeHFdlYTyrRcz9JUXbAqJKezya7UFQ==",
"version": "22.11.11",
"resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.11.11.tgz",
"integrity": "sha512-sdOvTPKERzPJtC8ipaYTQJHW9NDl0jAB4MuxixtFrZheHUwd+QI/1oRLtspZHacmk2kqa+lULVTm9Qfj4N2blw==",
"dev": true,
"requires": {
"7zip-bin": "~5.1.1",
@ -1858,12 +1876,13 @@
"@malept/flatpak-bundler": "^0.4.0",
"async-exit-hook": "^2.0.1",
"bluebird-lst": "^1.0.9",
"builder-util": "22.11.7",
"builder-util-runtime": "8.7.7",
"builder-util": "22.11.11",
"builder-util-runtime": "8.7.10",
"chromium-pickle-js": "^0.2.0",
"debug": "^4.3.2",
"ejs": "^3.1.6",
"electron-publish": "22.11.7",
"electron-osx-sign": "^0.5.0",
"electron-publish": "22.11.11",
"fs-extra": "^10.0.0",
"hosted-git-info": "^4.0.2",
"is-ci": "^3.0.0",
@ -2062,8 +2081,7 @@
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"dev": true,
"optional": true
"dev": true
},
"blockbench-types": {
"version": "3.9.0",
@ -2165,6 +2183,22 @@
"ieee754": "^1.1.13"
}
},
"buffer-alloc": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
"integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
"dev": true,
"requires": {
"buffer-alloc-unsafe": "^1.1.0",
"buffer-fill": "^1.0.0"
}
},
"buffer-alloc-unsafe": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
"integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
"dev": true
},
"buffer-crc32": {
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
@ -2177,6 +2211,12 @@
"integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
"dev": true
},
"buffer-fill": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
"integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
"dev": true
},
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@ -2184,17 +2224,17 @@
"dev": true
},
"builder-util": {
"version": "22.11.7",
"resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.11.7.tgz",
"integrity": "sha512-ihqUe5ey82LM9qqQe0/oIcaSm9w+B9UjcsWJZxJliTBsbU+sErOpDFpHW+sim0veiTF/EIcGUh9HoduWw+l9FA==",
"version": "22.11.11",
"resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.11.11.tgz",
"integrity": "sha512-2UJjOuPXhix68mmQ9hkv9G52Y0EVB8RPjlJF61jr3/tLIyd3UiJmEEhKttu8F+JVHKj8myz1MWw2/keJE/Nh+w==",
"dev": true,
"requires": {
"7zip-bin": "~5.1.1",
"@types/debug": "^4.1.5",
"@types/debug": "^4.1.6",
"@types/fs-extra": "^9.0.11",
"app-builder-bin": "3.5.13",
"app-builder-bin": "3.7.1",
"bluebird-lst": "^1.0.9",
"builder-util-runtime": "8.7.7",
"builder-util-runtime": "8.7.10",
"chalk": "^4.1.1",
"debug": "^4.3.2",
"fs-extra": "^10.0.0",
@ -2259,9 +2299,9 @@
}
},
"builder-util-runtime": {
"version": "8.7.7",
"resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz",
"integrity": "sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow==",
"version": "8.7.10",
"resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.10.tgz",
"integrity": "sha512-zelTRebsOsj33pF+Jf/qwpvx9W6CeMQshqaRa70Ii6+NQGsspMXqlKDQb+1lvTv9aWARxa3+jy/syzm8jTE8Kw==",
"dev": true,
"requires": {
"debug": "^4.3.2",
@ -2340,9 +2380,9 @@
"dev": true
},
"chalk": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
"integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@ -2504,6 +2544,12 @@
"integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==",
"dev": true
},
"compare-version": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
"integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=",
"dev": true
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@ -2689,14 +2735,14 @@
}
},
"dmg-builder": {
"version": "22.11.7",
"resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.11.7.tgz",
"integrity": "sha512-+I+XfP2DODHB6PwFANgpH/WMzzCA5r5XoMvbFCIYjQjJpXlO0XnqQaamzFl2vh/Wz/Qt0d0lJMgRy8gKR3MGdQ==",
"version": "22.11.11",
"resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.11.11.tgz",
"integrity": "sha512-4ew0c1G8bTZ14k2Nn++AHGDyEQ2rfay2YSguVvynnsD4rke6IGASQd8x6njP9t/SrEJOIQQpIKmEN/9tXJQoGw==",
"dev": true,
"requires": {
"app-builder-lib": "22.11.7",
"builder-util": "22.11.7",
"builder-util-runtime": "8.7.6",
"app-builder-lib": "22.11.11",
"builder-util": "22.11.11",
"builder-util-runtime": "8.7.10",
"dmg-license": "^1.0.9",
"fs-extra": "^10.0.0",
"iconv-lite": "^0.6.2",
@ -2709,25 +2755,6 @@
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true
},
"builder-util-runtime": {
"version": "8.7.6",
"resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz",
"integrity": "sha512-rj9AIY7CzLSuTOXpToiaQkruYh6UEQ+kYnd5UET22ch8MGClEtIZKXHG14qEiXEr2x4EOKDMxkcTa+9TYaE+ug==",
"dev": true,
"requires": {
"debug": "^4.3.2",
"sax": "^1.2.4"
}
},
"debug": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"fs-extra": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
@ -2840,17 +2867,17 @@
}
},
"electron-builder": {
"version": "22.11.7",
"resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.11.7.tgz",
"integrity": "sha512-yQExSLt7Hbz/P8lLkZDdE/OnJJ7NCX+uiQcV+XIH0TeEZcD87ZnSqBBzGUN5akySU4BXXlrVZKeUsXACWrm5Kw==",
"version": "22.11.11",
"resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.11.11.tgz",
"integrity": "sha512-yTD+u3uDnAov7xmniYn6zvNOcmzYhBL6n3iZmyPt+1UzMxhrkvSuEPJeuMPFD5s5D4FNBX4r0vAI4tv3SbWnnA==",
"dev": true,
"requires": {
"@types/yargs": "^16.0.2",
"app-builder-lib": "22.11.7",
"builder-util": "22.11.7",
"builder-util-runtime": "8.7.7",
"@types/yargs": "^17.0.1",
"app-builder-lib": "22.11.11",
"builder-util": "22.11.11",
"builder-util-runtime": "8.7.10",
"chalk": "^4.1.1",
"dmg-builder": "22.11.7",
"dmg-builder": "22.11.11",
"fs-extra": "^10.0.0",
"is-ci": "^3.0.0",
"lazy-val": "^1.0.5",
@ -2939,15 +2966,55 @@
}
}
},
"electron-osx-sign": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz",
"integrity": "sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==",
"dev": true,
"requires": {
"bluebird": "^3.5.0",
"compare-version": "^0.1.2",
"debug": "^2.6.8",
"isbinaryfile": "^3.0.2",
"minimist": "^1.2.0",
"plist": "^3.0.1"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
},
"isbinaryfile": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
"integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
"dev": true,
"requires": {
"buffer-alloc": "^1.2.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
}
}
},
"electron-publish": {
"version": "22.11.7",
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.11.7.tgz",
"integrity": "sha512-A4EhRRNBVz4SPzUlBrPO6BmuyDeI0pyprggPAV9rQ+SDVSnSB/WKPot9JwWMyArkGj3AUUTMNVT6hwZhMvhfqw==",
"version": "22.11.11",
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.11.11.tgz",
"integrity": "sha512-XINI2yz7DpForvLDENr1zfi6yW+O3ufeIgNCg/nkqiD3tBM44AokgY3aYURzsi93ZwFscoQkR2LhmHDvn30oAw==",
"dev": true,
"requires": {
"@types/fs-extra": "^9.0.11",
"builder-util": "22.11.7",
"builder-util-runtime": "8.7.7",
"builder-util": "22.11.11",
"builder-util-runtime": "8.7.10",
"chalk": "^4.1.1",
"fs-extra": "^10.0.0",
"lazy-val": "^1.0.5",
@ -4245,24 +4312,13 @@
}
},
"plist": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz",
"integrity": "sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==",
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz",
"integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==",
"dev": true,
"optional": true,
"requires": {
"base64-js": "^1.5.1",
"xmlbuilder": "^9.0.7",
"xmldom": "^0.5.0"
},
"dependencies": {
"xmlbuilder": {
"version": "9.0.7",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
"integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
"dev": true,
"optional": true
}
"xmlbuilder": "^9.0.7"
}
},
"prepend-http": {
@ -4702,9 +4758,9 @@
}
},
"smart-buffer": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz",
"integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
"dev": true,
"optional": true
},
@ -5654,18 +5710,10 @@
"dev": true
},
"xmlbuilder": {
"version": "15.1.1",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
"integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
"dev": true,
"optional": true
},
"xmldom": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz",
"integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==",
"dev": true,
"optional": true
"version": "9.0.7",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
"integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
"dev": true
},
"y18n": {
"version": "5.0.8",
@ -5680,9 +5728,9 @@
"dev": true
},
"yargs": {
"version": "17.0.1",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz",
"integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==",
"version": "17.1.1",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz",
"integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==",
"dev": true,
"requires": {
"cliui": "^7.0.2",

View File

@ -105,7 +105,7 @@
"devDependencies": {
"blockbench-types": "^3.9.0",
"electron": "^13.1.2",
"electron-builder": "^22.11.7",
"electron-builder": "^22.11.11",
"electron-notarize": "^1.0.0",
"webpack": "^5.21.2",
"webpack-cli": "^4.5.0",