mirror of
https://github.com/redphx/better-xcloud.git
synced 2025-06-06 23:57:19 +02:00
Update dists
This commit is contained in:
parent
6440c91cdf
commit
5a06933143
140
dist/better-xcloud.lite.user.js
vendored
140
dist/better-xcloud.lite.user.js
vendored
@ -2450,39 +2450,38 @@ class MkbPresetsDb extends LocalDb {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
presetsTable() {
|
async presetsTable() {
|
||||||
return this.open().then(() => this.table(this.TABLE_PRESETS, "readwrite"));
|
return await this.open(), await this.table(this.TABLE_PRESETS, "readwrite");
|
||||||
}
|
}
|
||||||
newPreset(name, data) {
|
async newPreset(name, data) {
|
||||||
return this.presetsTable().then((table) => this.add(table, { name, data })).then(([table, id]) => new Promise((resolve) => resolve(id)));
|
let table = await this.presetsTable(), [, id] = await this.add(table, { name, data });
|
||||||
|
return id;
|
||||||
}
|
}
|
||||||
updatePreset(preset) {
|
async updatePreset(preset) {
|
||||||
return this.presetsTable().then((table) => this.put(table, preset)).then(([table, id]) => new Promise((resolve) => resolve(id)));
|
let table = await this.presetsTable(), [, id] = await this.put(table, preset);
|
||||||
|
return id;
|
||||||
}
|
}
|
||||||
deletePreset(id) {
|
async deletePreset(id) {
|
||||||
return this.presetsTable().then((table) => this.delete(table, id)).then(([table, id2]) => new Promise((resolve) => resolve(id2)));
|
let table = await this.presetsTable();
|
||||||
|
return await this.delete(table, id), id;
|
||||||
}
|
}
|
||||||
getPreset(id) {
|
async getPreset(id) {
|
||||||
return this.presetsTable().then((table) => this.get(table, id)).then(([table, preset]) => new Promise((resolve) => resolve(preset)));
|
let table = await this.presetsTable(), [, preset] = await this.get(table, id);
|
||||||
|
return preset;
|
||||||
}
|
}
|
||||||
getPresets() {
|
async getPresets() {
|
||||||
return this.presetsTable().then((table) => this.count(table)).then(([table, count]) => {
|
let table = await this.presetsTable(), [, count] = await this.count(table);
|
||||||
if (count > 0) return new Promise((resolve) => {
|
if (count > 0) {
|
||||||
this.getAll(table).then(([table2, items]) => {
|
let [, items] = await this.getAll(table), presets = {};
|
||||||
let presets = {};
|
return items.forEach((item) => presets[item.id] = item), presets;
|
||||||
items.forEach((item) => presets[item.id] = item), resolve(presets);
|
}
|
||||||
});
|
let preset = {
|
||||||
});
|
name: t("default"),
|
||||||
let preset = {
|
data: MkbPreset.DEFAULT_PRESET
|
||||||
name: t("default"),
|
}, [, id] = await this.add(table, preset);
|
||||||
data: MkbPreset.DEFAULT_PRESET
|
return preset.id = id, setPref("mkb_default_preset_id", id), {
|
||||||
};
|
[id]: preset
|
||||||
return new Promise((resolve) => {
|
};
|
||||||
this.add(table, preset).then(([table2, id]) => {
|
|
||||||
preset.id = id, setPref("mkb_default_preset_id", id), resolve({ [id]: preset });
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var PointerToMouseButton = {
|
var PointerToMouseButton = {
|
||||||
@ -3176,7 +3175,7 @@ class MkbRemapper {
|
|||||||
static instance;
|
static instance;
|
||||||
static getInstance = () => MkbRemapper.instance ?? (MkbRemapper.instance = new MkbRemapper);
|
static getInstance = () => MkbRemapper.instance ?? (MkbRemapper.instance = new MkbRemapper);
|
||||||
LOG_TAG = "MkbRemapper";
|
LOG_TAG = "MkbRemapper";
|
||||||
STATE = {
|
states = {
|
||||||
currentPresetId: 0,
|
currentPresetId: 0,
|
||||||
presets: {},
|
presets: {},
|
||||||
editingPresetData: null,
|
editingPresetData: null,
|
||||||
@ -3190,7 +3189,7 @@ class MkbRemapper {
|
|||||||
allMouseElements = {};
|
allMouseElements = {};
|
||||||
bindingDialog;
|
bindingDialog;
|
||||||
constructor() {
|
constructor() {
|
||||||
BxLogger.info(this.LOG_TAG, "constructor()"), this.STATE.currentPresetId = getPref("mkb_default_preset_id"), this.bindingDialog = new Dialog({
|
BxLogger.info(this.LOG_TAG, "constructor()"), this.states.currentPresetId = getPref("mkb_default_preset_id"), this.bindingDialog = new Dialog({
|
||||||
className: "bx-binding-dialog",
|
className: "bx-binding-dialog",
|
||||||
content: CE("div", {}, CE("p", {}, t("press-to-bind")), CE("i", {}, t("press-esc-to-cancel"))),
|
content: CE("div", {}, CE("p", {}, t("press-to-bind")), CE("i", {}, t("press-esc-to-cancel"))),
|
||||||
hideCloseButton: !0
|
hideCloseButton: !0
|
||||||
@ -3204,11 +3203,11 @@ class MkbRemapper {
|
|||||||
if ($elm.dataset.keyCode === key.code) return;
|
if ($elm.dataset.keyCode === key.code) return;
|
||||||
for (let $otherElm of this.allKeyElements)
|
for (let $otherElm of this.allKeyElements)
|
||||||
if ($otherElm.dataset.keyCode === key.code) this.unbindKey($otherElm);
|
if ($otherElm.dataset.keyCode === key.code) this.unbindKey($otherElm);
|
||||||
this.STATE.editingPresetData.mapping[buttonIndex][keySlot] = key.code, $elm.textContent = key.name, $elm.dataset.keyCode = key.code;
|
this.states.editingPresetData.mapping[buttonIndex][keySlot] = key.code, $elm.textContent = key.name, $elm.dataset.keyCode = key.code;
|
||||||
};
|
};
|
||||||
unbindKey = ($elm) => {
|
unbindKey = ($elm) => {
|
||||||
let buttonIndex = parseInt($elm.dataset.buttonIndex), keySlot = parseInt($elm.dataset.keySlot);
|
let buttonIndex = parseInt($elm.dataset.buttonIndex), keySlot = parseInt($elm.dataset.keySlot);
|
||||||
this.STATE.editingPresetData.mapping[buttonIndex][keySlot] = null, $elm.textContent = "", delete $elm.dataset.keyCode;
|
this.states.editingPresetData.mapping[buttonIndex][keySlot] = null, $elm.textContent = "", delete $elm.dataset.keyCode;
|
||||||
};
|
};
|
||||||
onWheel = (e) => {
|
onWheel = (e) => {
|
||||||
e.preventDefault(), this.clearEventListeners(), this.bindKey(this.$currentBindingKey, KeyHelper.getKeyFromEvent(e)), window.setTimeout(() => this.bindingDialog.hide(), 200);
|
e.preventDefault(), this.clearEventListeners(), this.bindKey(this.$currentBindingKey, KeyHelper.getKeyFromEvent(e)), window.setTimeout(() => this.bindingDialog.hide(), 200);
|
||||||
@ -3221,21 +3220,26 @@ class MkbRemapper {
|
|||||||
window.setTimeout(() => this.bindingDialog.hide(), 200);
|
window.setTimeout(() => this.bindingDialog.hide(), 200);
|
||||||
};
|
};
|
||||||
onBindingKey = (e) => {
|
onBindingKey = (e) => {
|
||||||
if (!this.STATE.isEditing || e.button !== 0) return;
|
if (!this.states.isEditing || e.button !== 0) return;
|
||||||
console.log(e), this.$currentBindingKey = e.target, window.addEventListener("keydown", this.onKeyDown), window.addEventListener("mousedown", this.onMouseDown), window.addEventListener("wheel", this.onWheel), this.bindingDialog.show({ title: this.$currentBindingKey.dataset.prompt });
|
console.log(e), this.$currentBindingKey = e.target, window.addEventListener("keydown", this.onKeyDown), window.addEventListener("mousedown", this.onMouseDown), window.addEventListener("wheel", this.onWheel), this.bindingDialog.show({ title: this.$currentBindingKey.dataset.prompt });
|
||||||
};
|
};
|
||||||
onContextMenu = (e) => {
|
onContextMenu = (e) => {
|
||||||
if (e.preventDefault(), !this.STATE.isEditing) return;
|
if (e.preventDefault(), !this.states.isEditing) return;
|
||||||
this.unbindKey(e.target);
|
this.unbindKey(e.target);
|
||||||
};
|
};
|
||||||
getPreset = (presetId) => {
|
getPreset = (presetId) => {
|
||||||
return this.STATE.presets[presetId];
|
return this.states.presets[presetId];
|
||||||
};
|
};
|
||||||
getCurrentPreset = () => {
|
getCurrentPreset = () => {
|
||||||
return this.getPreset(this.STATE.currentPresetId);
|
let preset = this.getPreset(this.states.currentPresetId);
|
||||||
|
if (!preset) {
|
||||||
|
let firstPresetId = parseInt(Object.keys(this.states.presets)[0]);
|
||||||
|
preset = this.states.presets[firstPresetId], this.states.currentPresetId = firstPresetId, setPref("mkb_default_preset_id", firstPresetId);
|
||||||
|
}
|
||||||
|
return preset;
|
||||||
};
|
};
|
||||||
switchPreset = (presetId) => {
|
switchPreset = (presetId) => {
|
||||||
this.STATE.currentPresetId = presetId;
|
this.states.currentPresetId = presetId;
|
||||||
let presetData = this.getCurrentPreset().data;
|
let presetData = this.getCurrentPreset().data;
|
||||||
for (let $elm of this.allKeyElements) {
|
for (let $elm of this.allKeyElements) {
|
||||||
let buttonIndex = parseInt($elm.dataset.buttonIndex), keySlot = parseInt($elm.dataset.keySlot), buttonKeys = presetData.mapping[buttonIndex];
|
let buttonIndex = parseInt($elm.dataset.buttonIndex), keySlot = parseInt($elm.dataset.keySlot), buttonKeys = presetData.mapping[buttonIndex];
|
||||||
@ -3248,35 +3252,33 @@ class MkbRemapper {
|
|||||||
if (typeof value === "undefined") value = MkbPreset.MOUSE_SETTINGS[key].default;
|
if (typeof value === "undefined") value = MkbPreset.MOUSE_SETTINGS[key].default;
|
||||||
"setValue" in $elm && $elm.setValue(value);
|
"setValue" in $elm && $elm.setValue(value);
|
||||||
}
|
}
|
||||||
let activated = getPref("mkb_default_preset_id") === this.STATE.currentPresetId;
|
let activated = getPref("mkb_default_preset_id") === this.states.currentPresetId;
|
||||||
this.$activateButton.disabled = activated, this.$activateButton.querySelector("span").textContent = activated ? t("activated") : t("activate");
|
this.$activateButton.disabled = activated, this.$activateButton.querySelector("span").textContent = activated ? t("activated") : t("activate");
|
||||||
};
|
};
|
||||||
refresh() {
|
async refresh() {
|
||||||
while (this.$presetsSelect.firstChild)
|
removeChildElements(this.$presetsSelect);
|
||||||
this.$presetsSelect.removeChild(this.$presetsSelect.firstChild);
|
let presets = await MkbPresetsDb.getInstance().getPresets();
|
||||||
MkbPresetsDb.getInstance().getPresets().then((presets) => {
|
this.states.presets = presets;
|
||||||
this.STATE.presets = presets;
|
let fragment = document.createDocumentFragment(), defaultPresetId;
|
||||||
let $fragment = document.createDocumentFragment(), defaultPresetId;
|
if (this.states.currentPresetId === 0) this.states.currentPresetId = parseInt(Object.keys(presets)[0]), defaultPresetId = this.states.currentPresetId, setPref("mkb_default_preset_id", defaultPresetId), EmulatedMkbHandler.getInstance().refreshPresetData();
|
||||||
if (this.STATE.currentPresetId === 0) this.STATE.currentPresetId = parseInt(Object.keys(presets)[0]), defaultPresetId = this.STATE.currentPresetId, setPref("mkb_default_preset_id", defaultPresetId), EmulatedMkbHandler.getInstance().refreshPresetData();
|
else defaultPresetId = getPref("mkb_default_preset_id");
|
||||||
else defaultPresetId = getPref("mkb_default_preset_id");
|
for (let id in presets) {
|
||||||
for (let id in presets) {
|
let name = presets[id].name;
|
||||||
let name = presets[id].name;
|
if (id === defaultPresetId) name = "🎮 " + name;
|
||||||
if (id === defaultPresetId) name = "🎮 " + name;
|
let $options = CE("option", { value: id }, name);
|
||||||
let $options = CE("option", { value: id }, name);
|
$options.selected = parseInt(id) === this.states.currentPresetId, fragment.appendChild($options);
|
||||||
$options.selected = parseInt(id) === this.STATE.currentPresetId, $fragment.appendChild($options);
|
}
|
||||||
}
|
this.$presetsSelect.appendChild(fragment);
|
||||||
this.$presetsSelect.appendChild($fragment);
|
let activated = defaultPresetId === this.states.currentPresetId;
|
||||||
let activated = defaultPresetId === this.STATE.currentPresetId;
|
this.$activateButton.disabled = activated, this.$activateButton.querySelector("span").textContent = activated ? t("activated") : t("activate"), !this.states.isEditing && this.switchPreset(this.states.currentPresetId);
|
||||||
this.$activateButton.disabled = activated, this.$activateButton.querySelector("span").textContent = activated ? t("activated") : t("activate"), !this.STATE.isEditing && this.switchPreset(this.STATE.currentPresetId);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
toggleEditing = (force) => {
|
toggleEditing = (force) => {
|
||||||
if (this.STATE.isEditing = typeof force !== "undefined" ? force : !this.STATE.isEditing, this.$wrapper.classList.toggle("bx-editing", this.STATE.isEditing), this.STATE.isEditing) this.STATE.editingPresetData = deepClone(this.getCurrentPreset().data);
|
if (this.states.isEditing = typeof force !== "undefined" ? force : !this.states.isEditing, this.$wrapper.classList.toggle("bx-editing", this.states.isEditing), this.states.isEditing) this.states.editingPresetData = deepClone(this.getCurrentPreset().data);
|
||||||
else this.STATE.editingPresetData = null;
|
else this.states.editingPresetData = null;
|
||||||
let childElements = this.$wrapper.querySelectorAll("select, button, input");
|
let childElements = this.$wrapper.querySelectorAll("select, button, input");
|
||||||
for (let $elm of Array.from(childElements)) {
|
for (let $elm of Array.from(childElements)) {
|
||||||
if ($elm.parentElement.parentElement.classList.contains("bx-mkb-action-buttons")) continue;
|
if ($elm.parentElement.parentElement.classList.contains("bx-mkb-action-buttons")) continue;
|
||||||
let disable = !this.STATE.isEditing;
|
let disable = !this.states.isEditing;
|
||||||
if ($elm.parentElement.classList.contains("bx-mkb-preset-tools")) disable = !disable;
|
if ($elm.parentElement.classList.contains("bx-mkb-preset-tools")) disable = !disable;
|
||||||
$elm.disabled = disable;
|
$elm.disabled = disable;
|
||||||
}
|
}
|
||||||
@ -3296,10 +3298,10 @@ class MkbRemapper {
|
|||||||
title: t("rename"),
|
title: t("rename"),
|
||||||
icon: BxIcon.CURSOR_TEXT,
|
icon: BxIcon.CURSOR_TEXT,
|
||||||
tabIndex: -1,
|
tabIndex: -1,
|
||||||
onClick: (e) => {
|
onClick: async () => {
|
||||||
let preset = this.getCurrentPreset(), newName = promptNewName(preset.name);
|
let preset = this.getCurrentPreset(), newName = promptNewName(preset.name);
|
||||||
if (!newName || newName === preset.name) return;
|
if (!newName || newName === preset.name) return;
|
||||||
preset.name = newName, MkbPresetsDb.getInstance().updatePreset(preset).then((id) => this.refresh());
|
preset.name = newName, await MkbPresetsDb.getInstance().updatePreset(preset), await this.refresh();
|
||||||
}
|
}
|
||||||
}), createButton({
|
}), createButton({
|
||||||
icon: BxIcon.NEW,
|
icon: BxIcon.NEW,
|
||||||
@ -3309,7 +3311,7 @@ class MkbRemapper {
|
|||||||
let newName = promptNewName("");
|
let newName = promptNewName("");
|
||||||
if (!newName) return;
|
if (!newName) return;
|
||||||
MkbPresetsDb.getInstance().newPreset(newName, MkbPreset.DEFAULT_PRESET).then((id) => {
|
MkbPresetsDb.getInstance().newPreset(newName, MkbPreset.DEFAULT_PRESET).then((id) => {
|
||||||
this.STATE.currentPresetId = id, this.refresh();
|
this.states.currentPresetId = id, this.refresh();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}), createButton({
|
}), createButton({
|
||||||
@ -3320,7 +3322,7 @@ class MkbRemapper {
|
|||||||
let preset = this.getCurrentPreset(), newName = promptNewName(`${preset.name} (2)`);
|
let preset = this.getCurrentPreset(), newName = promptNewName(`${preset.name} (2)`);
|
||||||
if (!newName) return;
|
if (!newName) return;
|
||||||
MkbPresetsDb.getInstance().newPreset(newName, preset.data).then((id) => {
|
MkbPresetsDb.getInstance().newPreset(newName, preset.data).then((id) => {
|
||||||
this.STATE.currentPresetId = id, this.refresh();
|
this.states.currentPresetId = id, this.refresh();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}), createButton({
|
}), createButton({
|
||||||
@ -3330,8 +3332,8 @@ class MkbRemapper {
|
|||||||
tabIndex: -1,
|
tabIndex: -1,
|
||||||
onClick: (e) => {
|
onClick: (e) => {
|
||||||
if (!confirm(t("confirm-delete-preset"))) return;
|
if (!confirm(t("confirm-delete-preset"))) return;
|
||||||
MkbPresetsDb.getInstance().deletePreset(this.STATE.currentPresetId).then((id) => {
|
MkbPresetsDb.getInstance().deletePreset(this.states.currentPresetId).then((id) => {
|
||||||
this.STATE.currentPresetId = 0, this.refresh();
|
this.states.currentPresetId = 0, this.refresh();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
@ -3353,7 +3355,7 @@ class MkbRemapper {
|
|||||||
let $mouseSettings = document.createDocumentFragment();
|
let $mouseSettings = document.createDocumentFragment();
|
||||||
for (let key in MkbPreset.MOUSE_SETTINGS) {
|
for (let key in MkbPreset.MOUSE_SETTINGS) {
|
||||||
let setting = MkbPreset.MOUSE_SETTINGS[key], value = setting.default, $elm, onChange = (e, value2) => {
|
let setting = MkbPreset.MOUSE_SETTINGS[key], value = setting.default, $elm, onChange = (e, value2) => {
|
||||||
this.STATE.editingPresetData.mouse[key] = value2;
|
this.states.editingPresetData.mouse[key] = value2;
|
||||||
}, $row = CE("label", {
|
}, $row = CE("label", {
|
||||||
class: "bx-settings-row",
|
class: "bx-settings-row",
|
||||||
for: `bx_setting_${key}`
|
for: `bx_setting_${key}`
|
||||||
@ -3370,14 +3372,14 @@ class MkbRemapper {
|
|||||||
style: 1,
|
style: 1,
|
||||||
tabIndex: -1,
|
tabIndex: -1,
|
||||||
onClick: (e) => {
|
onClick: (e) => {
|
||||||
setPref("mkb_default_preset_id", this.STATE.currentPresetId), EmulatedMkbHandler.getInstance().refreshPresetData(), this.refresh();
|
setPref("mkb_default_preset_id", this.states.currentPresetId), EmulatedMkbHandler.getInstance().refreshPresetData(), this.refresh();
|
||||||
}
|
}
|
||||||
})), CE("div", {}, createButton({
|
})), CE("div", {}, createButton({
|
||||||
label: t("cancel"),
|
label: t("cancel"),
|
||||||
style: 4,
|
style: 4,
|
||||||
tabIndex: -1,
|
tabIndex: -1,
|
||||||
onClick: (e) => {
|
onClick: (e) => {
|
||||||
this.switchPreset(this.STATE.currentPresetId), this.toggleEditing(!1);
|
this.switchPreset(this.states.currentPresetId), this.toggleEditing(!1);
|
||||||
}
|
}
|
||||||
}), createButton({
|
}), createButton({
|
||||||
label: t("save"),
|
label: t("save"),
|
||||||
@ -3385,7 +3387,7 @@ class MkbRemapper {
|
|||||||
tabIndex: -1,
|
tabIndex: -1,
|
||||||
onClick: (e) => {
|
onClick: (e) => {
|
||||||
let updatedPreset = deepClone(this.getCurrentPreset());
|
let updatedPreset = deepClone(this.getCurrentPreset());
|
||||||
updatedPreset.data = this.STATE.editingPresetData, MkbPresetsDb.getInstance().updatePreset(updatedPreset).then((id) => {
|
updatedPreset.data = this.states.editingPresetData, MkbPresetsDb.getInstance().updatePreset(updatedPreset).then((id) => {
|
||||||
if (id === getPref("mkb_default_preset_id")) EmulatedMkbHandler.getInstance().refreshPresetData();
|
if (id === getPref("mkb_default_preset_id")) EmulatedMkbHandler.getInstance().refreshPresetData();
|
||||||
this.toggleEditing(!1), this.refresh();
|
this.toggleEditing(!1), this.refresh();
|
||||||
});
|
});
|
||||||
|
140
dist/better-xcloud.user.js
vendored
140
dist/better-xcloud.user.js
vendored
@ -2725,39 +2725,38 @@ class MkbPresetsDb extends LocalDb {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
presetsTable() {
|
async presetsTable() {
|
||||||
return this.open().then(() => this.table(this.TABLE_PRESETS, "readwrite"));
|
return await this.open(), await this.table(this.TABLE_PRESETS, "readwrite");
|
||||||
}
|
}
|
||||||
newPreset(name, data) {
|
async newPreset(name, data) {
|
||||||
return this.presetsTable().then((table) => this.add(table, { name, data })).then(([table, id2]) => new Promise((resolve) => resolve(id2)));
|
let table = await this.presetsTable(), [, id2] = await this.add(table, { name, data });
|
||||||
|
return id2;
|
||||||
}
|
}
|
||||||
updatePreset(preset) {
|
async updatePreset(preset) {
|
||||||
return this.presetsTable().then((table) => this.put(table, preset)).then(([table, id2]) => new Promise((resolve) => resolve(id2)));
|
let table = await this.presetsTable(), [, id2] = await this.put(table, preset);
|
||||||
|
return id2;
|
||||||
}
|
}
|
||||||
deletePreset(id2) {
|
async deletePreset(id2) {
|
||||||
return this.presetsTable().then((table) => this.delete(table, id2)).then(([table, id3]) => new Promise((resolve) => resolve(id3)));
|
let table = await this.presetsTable();
|
||||||
|
return await this.delete(table, id2), id2;
|
||||||
}
|
}
|
||||||
getPreset(id2) {
|
async getPreset(id2) {
|
||||||
return this.presetsTable().then((table) => this.get(table, id2)).then(([table, preset]) => new Promise((resolve) => resolve(preset)));
|
let table = await this.presetsTable(), [, preset] = await this.get(table, id2);
|
||||||
|
return preset;
|
||||||
}
|
}
|
||||||
getPresets() {
|
async getPresets() {
|
||||||
return this.presetsTable().then((table) => this.count(table)).then(([table, count]) => {
|
let table = await this.presetsTable(), [, count] = await this.count(table);
|
||||||
if (count > 0) return new Promise((resolve) => {
|
if (count > 0) {
|
||||||
this.getAll(table).then(([table2, items]) => {
|
let [, items] = await this.getAll(table), presets = {};
|
||||||
let presets = {};
|
return items.forEach((item2) => presets[item2.id] = item2), presets;
|
||||||
items.forEach((item2) => presets[item2.id] = item2), resolve(presets);
|
}
|
||||||
});
|
let preset = {
|
||||||
});
|
name: t("default"),
|
||||||
let preset = {
|
data: MkbPreset.DEFAULT_PRESET
|
||||||
name: t("default"),
|
}, [, id2] = await this.add(table, preset);
|
||||||
data: MkbPreset.DEFAULT_PRESET
|
return preset.id = id2, setPref("mkb_default_preset_id", id2), {
|
||||||
};
|
[id2]: preset
|
||||||
return new Promise((resolve) => {
|
};
|
||||||
this.add(table, preset).then(([table2, id2]) => {
|
|
||||||
preset.id = id2, setPref("mkb_default_preset_id", id2), resolve({ [id2]: preset });
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var PointerToMouseButton = {
|
var PointerToMouseButton = {
|
||||||
@ -3457,7 +3456,7 @@ class MkbRemapper {
|
|||||||
static instance;
|
static instance;
|
||||||
static getInstance = () => MkbRemapper.instance ?? (MkbRemapper.instance = new MkbRemapper);
|
static getInstance = () => MkbRemapper.instance ?? (MkbRemapper.instance = new MkbRemapper);
|
||||||
LOG_TAG = "MkbRemapper";
|
LOG_TAG = "MkbRemapper";
|
||||||
STATE = {
|
states = {
|
||||||
currentPresetId: 0,
|
currentPresetId: 0,
|
||||||
presets: {},
|
presets: {},
|
||||||
editingPresetData: null,
|
editingPresetData: null,
|
||||||
@ -3471,7 +3470,7 @@ class MkbRemapper {
|
|||||||
allMouseElements = {};
|
allMouseElements = {};
|
||||||
bindingDialog;
|
bindingDialog;
|
||||||
constructor() {
|
constructor() {
|
||||||
BxLogger.info(this.LOG_TAG, "constructor()"), this.STATE.currentPresetId = getPref("mkb_default_preset_id"), this.bindingDialog = new Dialog({
|
BxLogger.info(this.LOG_TAG, "constructor()"), this.states.currentPresetId = getPref("mkb_default_preset_id"), this.bindingDialog = new Dialog({
|
||||||
className: "bx-binding-dialog",
|
className: "bx-binding-dialog",
|
||||||
content: CE("div", {}, CE("p", {}, t("press-to-bind")), CE("i", {}, t("press-esc-to-cancel"))),
|
content: CE("div", {}, CE("p", {}, t("press-to-bind")), CE("i", {}, t("press-esc-to-cancel"))),
|
||||||
hideCloseButton: !0
|
hideCloseButton: !0
|
||||||
@ -3485,11 +3484,11 @@ class MkbRemapper {
|
|||||||
if ($elm.dataset.keyCode === key.code) return;
|
if ($elm.dataset.keyCode === key.code) return;
|
||||||
for (let $otherElm of this.allKeyElements)
|
for (let $otherElm of this.allKeyElements)
|
||||||
if ($otherElm.dataset.keyCode === key.code) this.unbindKey($otherElm);
|
if ($otherElm.dataset.keyCode === key.code) this.unbindKey($otherElm);
|
||||||
this.STATE.editingPresetData.mapping[buttonIndex][keySlot] = key.code, $elm.textContent = key.name, $elm.dataset.keyCode = key.code;
|
this.states.editingPresetData.mapping[buttonIndex][keySlot] = key.code, $elm.textContent = key.name, $elm.dataset.keyCode = key.code;
|
||||||
};
|
};
|
||||||
unbindKey = ($elm) => {
|
unbindKey = ($elm) => {
|
||||||
let buttonIndex = parseInt($elm.dataset.buttonIndex), keySlot = parseInt($elm.dataset.keySlot);
|
let buttonIndex = parseInt($elm.dataset.buttonIndex), keySlot = parseInt($elm.dataset.keySlot);
|
||||||
this.STATE.editingPresetData.mapping[buttonIndex][keySlot] = null, $elm.textContent = "", delete $elm.dataset.keyCode;
|
this.states.editingPresetData.mapping[buttonIndex][keySlot] = null, $elm.textContent = "", delete $elm.dataset.keyCode;
|
||||||
};
|
};
|
||||||
onWheel = (e) => {
|
onWheel = (e) => {
|
||||||
e.preventDefault(), this.clearEventListeners(), this.bindKey(this.$currentBindingKey, KeyHelper.getKeyFromEvent(e)), window.setTimeout(() => this.bindingDialog.hide(), 200);
|
e.preventDefault(), this.clearEventListeners(), this.bindKey(this.$currentBindingKey, KeyHelper.getKeyFromEvent(e)), window.setTimeout(() => this.bindingDialog.hide(), 200);
|
||||||
@ -3502,21 +3501,26 @@ class MkbRemapper {
|
|||||||
window.setTimeout(() => this.bindingDialog.hide(), 200);
|
window.setTimeout(() => this.bindingDialog.hide(), 200);
|
||||||
};
|
};
|
||||||
onBindingKey = (e) => {
|
onBindingKey = (e) => {
|
||||||
if (!this.STATE.isEditing || e.button !== 0) return;
|
if (!this.states.isEditing || e.button !== 0) return;
|
||||||
console.log(e), this.$currentBindingKey = e.target, window.addEventListener("keydown", this.onKeyDown), window.addEventListener("mousedown", this.onMouseDown), window.addEventListener("wheel", this.onWheel), this.bindingDialog.show({ title: this.$currentBindingKey.dataset.prompt });
|
console.log(e), this.$currentBindingKey = e.target, window.addEventListener("keydown", this.onKeyDown), window.addEventListener("mousedown", this.onMouseDown), window.addEventListener("wheel", this.onWheel), this.bindingDialog.show({ title: this.$currentBindingKey.dataset.prompt });
|
||||||
};
|
};
|
||||||
onContextMenu = (e) => {
|
onContextMenu = (e) => {
|
||||||
if (e.preventDefault(), !this.STATE.isEditing) return;
|
if (e.preventDefault(), !this.states.isEditing) return;
|
||||||
this.unbindKey(e.target);
|
this.unbindKey(e.target);
|
||||||
};
|
};
|
||||||
getPreset = (presetId) => {
|
getPreset = (presetId) => {
|
||||||
return this.STATE.presets[presetId];
|
return this.states.presets[presetId];
|
||||||
};
|
};
|
||||||
getCurrentPreset = () => {
|
getCurrentPreset = () => {
|
||||||
return this.getPreset(this.STATE.currentPresetId);
|
let preset = this.getPreset(this.states.currentPresetId);
|
||||||
|
if (!preset) {
|
||||||
|
let firstPresetId = parseInt(Object.keys(this.states.presets)[0]);
|
||||||
|
preset = this.states.presets[firstPresetId], this.states.currentPresetId = firstPresetId, setPref("mkb_default_preset_id", firstPresetId);
|
||||||
|
}
|
||||||
|
return preset;
|
||||||
};
|
};
|
||||||
switchPreset = (presetId) => {
|
switchPreset = (presetId) => {
|
||||||
this.STATE.currentPresetId = presetId;
|
this.states.currentPresetId = presetId;
|
||||||
let presetData = this.getCurrentPreset().data;
|
let presetData = this.getCurrentPreset().data;
|
||||||
for (let $elm of this.allKeyElements) {
|
for (let $elm of this.allKeyElements) {
|
||||||
let buttonIndex = parseInt($elm.dataset.buttonIndex), keySlot = parseInt($elm.dataset.keySlot), buttonKeys = presetData.mapping[buttonIndex];
|
let buttonIndex = parseInt($elm.dataset.buttonIndex), keySlot = parseInt($elm.dataset.keySlot), buttonKeys = presetData.mapping[buttonIndex];
|
||||||
@ -3529,35 +3533,33 @@ class MkbRemapper {
|
|||||||
if (typeof value === "undefined") value = MkbPreset.MOUSE_SETTINGS[key].default;
|
if (typeof value === "undefined") value = MkbPreset.MOUSE_SETTINGS[key].default;
|
||||||
"setValue" in $elm && $elm.setValue(value);
|
"setValue" in $elm && $elm.setValue(value);
|
||||||
}
|
}
|
||||||
let activated = getPref("mkb_default_preset_id") === this.STATE.currentPresetId;
|
let activated = getPref("mkb_default_preset_id") === this.states.currentPresetId;
|
||||||
this.$activateButton.disabled = activated, this.$activateButton.querySelector("span").textContent = activated ? t("activated") : t("activate");
|
this.$activateButton.disabled = activated, this.$activateButton.querySelector("span").textContent = activated ? t("activated") : t("activate");
|
||||||
};
|
};
|
||||||
refresh() {
|
async refresh() {
|
||||||
while (this.$presetsSelect.firstChild)
|
removeChildElements(this.$presetsSelect);
|
||||||
this.$presetsSelect.removeChild(this.$presetsSelect.firstChild);
|
let presets = await MkbPresetsDb.getInstance().getPresets();
|
||||||
MkbPresetsDb.getInstance().getPresets().then((presets) => {
|
this.states.presets = presets;
|
||||||
this.STATE.presets = presets;
|
let fragment = document.createDocumentFragment(), defaultPresetId;
|
||||||
let $fragment = document.createDocumentFragment(), defaultPresetId;
|
if (this.states.currentPresetId === 0) this.states.currentPresetId = parseInt(Object.keys(presets)[0]), defaultPresetId = this.states.currentPresetId, setPref("mkb_default_preset_id", defaultPresetId), EmulatedMkbHandler.getInstance().refreshPresetData();
|
||||||
if (this.STATE.currentPresetId === 0) this.STATE.currentPresetId = parseInt(Object.keys(presets)[0]), defaultPresetId = this.STATE.currentPresetId, setPref("mkb_default_preset_id", defaultPresetId), EmulatedMkbHandler.getInstance().refreshPresetData();
|
else defaultPresetId = getPref("mkb_default_preset_id");
|
||||||
else defaultPresetId = getPref("mkb_default_preset_id");
|
for (let id2 in presets) {
|
||||||
for (let id2 in presets) {
|
let name = presets[id2].name;
|
||||||
let name = presets[id2].name;
|
if (id2 === defaultPresetId) name = "🎮 " + name;
|
||||||
if (id2 === defaultPresetId) name = "🎮 " + name;
|
let $options = CE("option", { value: id2 }, name);
|
||||||
let $options = CE("option", { value: id2 }, name);
|
$options.selected = parseInt(id2) === this.states.currentPresetId, fragment.appendChild($options);
|
||||||
$options.selected = parseInt(id2) === this.STATE.currentPresetId, $fragment.appendChild($options);
|
}
|
||||||
}
|
this.$presetsSelect.appendChild(fragment);
|
||||||
this.$presetsSelect.appendChild($fragment);
|
let activated = defaultPresetId === this.states.currentPresetId;
|
||||||
let activated = defaultPresetId === this.STATE.currentPresetId;
|
this.$activateButton.disabled = activated, this.$activateButton.querySelector("span").textContent = activated ? t("activated") : t("activate"), !this.states.isEditing && this.switchPreset(this.states.currentPresetId);
|
||||||
this.$activateButton.disabled = activated, this.$activateButton.querySelector("span").textContent = activated ? t("activated") : t("activate"), !this.STATE.isEditing && this.switchPreset(this.STATE.currentPresetId);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
toggleEditing = (force) => {
|
toggleEditing = (force) => {
|
||||||
if (this.STATE.isEditing = typeof force !== "undefined" ? force : !this.STATE.isEditing, this.$wrapper.classList.toggle("bx-editing", this.STATE.isEditing), this.STATE.isEditing) this.STATE.editingPresetData = deepClone(this.getCurrentPreset().data);
|
if (this.states.isEditing = typeof force !== "undefined" ? force : !this.states.isEditing, this.$wrapper.classList.toggle("bx-editing", this.states.isEditing), this.states.isEditing) this.states.editingPresetData = deepClone(this.getCurrentPreset().data);
|
||||||
else this.STATE.editingPresetData = null;
|
else this.states.editingPresetData = null;
|
||||||
let childElements = this.$wrapper.querySelectorAll("select, button, input");
|
let childElements = this.$wrapper.querySelectorAll("select, button, input");
|
||||||
for (let $elm of Array.from(childElements)) {
|
for (let $elm of Array.from(childElements)) {
|
||||||
if ($elm.parentElement.parentElement.classList.contains("bx-mkb-action-buttons")) continue;
|
if ($elm.parentElement.parentElement.classList.contains("bx-mkb-action-buttons")) continue;
|
||||||
let disable = !this.STATE.isEditing;
|
let disable = !this.states.isEditing;
|
||||||
if ($elm.parentElement.classList.contains("bx-mkb-preset-tools")) disable = !disable;
|
if ($elm.parentElement.classList.contains("bx-mkb-preset-tools")) disable = !disable;
|
||||||
$elm.disabled = disable;
|
$elm.disabled = disable;
|
||||||
}
|
}
|
||||||
@ -3577,10 +3579,10 @@ class MkbRemapper {
|
|||||||
title: t("rename"),
|
title: t("rename"),
|
||||||
icon: BxIcon.CURSOR_TEXT,
|
icon: BxIcon.CURSOR_TEXT,
|
||||||
tabIndex: -1,
|
tabIndex: -1,
|
||||||
onClick: (e) => {
|
onClick: async () => {
|
||||||
let preset = this.getCurrentPreset(), newName = promptNewName(preset.name);
|
let preset = this.getCurrentPreset(), newName = promptNewName(preset.name);
|
||||||
if (!newName || newName === preset.name) return;
|
if (!newName || newName === preset.name) return;
|
||||||
preset.name = newName, MkbPresetsDb.getInstance().updatePreset(preset).then((id2) => this.refresh());
|
preset.name = newName, await MkbPresetsDb.getInstance().updatePreset(preset), await this.refresh();
|
||||||
}
|
}
|
||||||
}), createButton({
|
}), createButton({
|
||||||
icon: BxIcon.NEW,
|
icon: BxIcon.NEW,
|
||||||
@ -3590,7 +3592,7 @@ class MkbRemapper {
|
|||||||
let newName = promptNewName("");
|
let newName = promptNewName("");
|
||||||
if (!newName) return;
|
if (!newName) return;
|
||||||
MkbPresetsDb.getInstance().newPreset(newName, MkbPreset.DEFAULT_PRESET).then((id2) => {
|
MkbPresetsDb.getInstance().newPreset(newName, MkbPreset.DEFAULT_PRESET).then((id2) => {
|
||||||
this.STATE.currentPresetId = id2, this.refresh();
|
this.states.currentPresetId = id2, this.refresh();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}), createButton({
|
}), createButton({
|
||||||
@ -3601,7 +3603,7 @@ class MkbRemapper {
|
|||||||
let preset = this.getCurrentPreset(), newName = promptNewName(`${preset.name} (2)`);
|
let preset = this.getCurrentPreset(), newName = promptNewName(`${preset.name} (2)`);
|
||||||
if (!newName) return;
|
if (!newName) return;
|
||||||
MkbPresetsDb.getInstance().newPreset(newName, preset.data).then((id2) => {
|
MkbPresetsDb.getInstance().newPreset(newName, preset.data).then((id2) => {
|
||||||
this.STATE.currentPresetId = id2, this.refresh();
|
this.states.currentPresetId = id2, this.refresh();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}), createButton({
|
}), createButton({
|
||||||
@ -3611,8 +3613,8 @@ class MkbRemapper {
|
|||||||
tabIndex: -1,
|
tabIndex: -1,
|
||||||
onClick: (e) => {
|
onClick: (e) => {
|
||||||
if (!confirm(t("confirm-delete-preset"))) return;
|
if (!confirm(t("confirm-delete-preset"))) return;
|
||||||
MkbPresetsDb.getInstance().deletePreset(this.STATE.currentPresetId).then((id2) => {
|
MkbPresetsDb.getInstance().deletePreset(this.states.currentPresetId).then((id2) => {
|
||||||
this.STATE.currentPresetId = 0, this.refresh();
|
this.states.currentPresetId = 0, this.refresh();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
@ -3634,7 +3636,7 @@ class MkbRemapper {
|
|||||||
let $mouseSettings = document.createDocumentFragment();
|
let $mouseSettings = document.createDocumentFragment();
|
||||||
for (let key in MkbPreset.MOUSE_SETTINGS) {
|
for (let key in MkbPreset.MOUSE_SETTINGS) {
|
||||||
let setting = MkbPreset.MOUSE_SETTINGS[key], value = setting.default, $elm, onChange = (e, value2) => {
|
let setting = MkbPreset.MOUSE_SETTINGS[key], value = setting.default, $elm, onChange = (e, value2) => {
|
||||||
this.STATE.editingPresetData.mouse[key] = value2;
|
this.states.editingPresetData.mouse[key] = value2;
|
||||||
}, $row = CE("label", {
|
}, $row = CE("label", {
|
||||||
class: "bx-settings-row",
|
class: "bx-settings-row",
|
||||||
for: `bx_setting_${key}`
|
for: `bx_setting_${key}`
|
||||||
@ -3651,14 +3653,14 @@ class MkbRemapper {
|
|||||||
style: 1,
|
style: 1,
|
||||||
tabIndex: -1,
|
tabIndex: -1,
|
||||||
onClick: (e) => {
|
onClick: (e) => {
|
||||||
setPref("mkb_default_preset_id", this.STATE.currentPresetId), EmulatedMkbHandler.getInstance().refreshPresetData(), this.refresh();
|
setPref("mkb_default_preset_id", this.states.currentPresetId), EmulatedMkbHandler.getInstance().refreshPresetData(), this.refresh();
|
||||||
}
|
}
|
||||||
})), CE("div", {}, createButton({
|
})), CE("div", {}, createButton({
|
||||||
label: t("cancel"),
|
label: t("cancel"),
|
||||||
style: 4,
|
style: 4,
|
||||||
tabIndex: -1,
|
tabIndex: -1,
|
||||||
onClick: (e) => {
|
onClick: (e) => {
|
||||||
this.switchPreset(this.STATE.currentPresetId), this.toggleEditing(!1);
|
this.switchPreset(this.states.currentPresetId), this.toggleEditing(!1);
|
||||||
}
|
}
|
||||||
}), createButton({
|
}), createButton({
|
||||||
label: t("save"),
|
label: t("save"),
|
||||||
@ -3666,7 +3668,7 @@ class MkbRemapper {
|
|||||||
tabIndex: -1,
|
tabIndex: -1,
|
||||||
onClick: (e) => {
|
onClick: (e) => {
|
||||||
let updatedPreset = deepClone(this.getCurrentPreset());
|
let updatedPreset = deepClone(this.getCurrentPreset());
|
||||||
updatedPreset.data = this.STATE.editingPresetData, MkbPresetsDb.getInstance().updatePreset(updatedPreset).then((id2) => {
|
updatedPreset.data = this.states.editingPresetData, MkbPresetsDb.getInstance().updatePreset(updatedPreset).then((id2) => {
|
||||||
if (id2 === getPref("mkb_default_preset_id")) EmulatedMkbHandler.getInstance().refreshPresetData();
|
if (id2 === getPref("mkb_default_preset_id")) EmulatedMkbHandler.getInstance().refreshPresetData();
|
||||||
this.toggleEditing(!1), this.refresh();
|
this.toggleEditing(!1), this.refresh();
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user