Spaces:
Runtime error
Runtime error
| var __defProp = Object.defineProperty; | |
| var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); | |
| import { d as defineComponent, q as computed, g as openBlock, h as createElementBlock, N as Fragment, O as renderList, i as createVNode, y as withCtx, aw as createTextVNode, a6 as toDisplayString, z as unref, aA as script, j as createCommentVNode, r as ref, c6 as FilterMatchMode, M as useKeybindingStore, F as useCommandStore, aJ as watchEffect, bg as useToast, t as resolveDirective, x as createBlock, c7 as SearchBox, A as createBaseVNode, D as script$2, ao as script$4, bk as withModifiers, bT as script$5, aH as script$6, v as withDirectives, c8 as _sfc_main$2, P as pushScopeId, Q as popScopeId, c1 as KeyComboImpl, c9 as KeybindingImpl, _ as _export_sfc } from "./index-CoOvI8ZH.js"; | |
| import { s as script$1, a as script$3 } from "./index-DK6Kev7f.js"; | |
| import "./index-D4DWQPPQ.js"; | |
| const _hoisted_1$1 = { | |
| key: 0, | |
| class: "px-2" | |
| }; | |
| const _sfc_main$1 = /* @__PURE__ */ defineComponent({ | |
| __name: "KeyComboDisplay", | |
| props: { | |
| keyCombo: {}, | |
| isModified: { type: Boolean, default: false } | |
| }, | |
| setup(__props) { | |
| const props = __props; | |
| const keySequences = computed(() => props.keyCombo.getKeySequences()); | |
| return (_ctx, _cache) => { | |
| return openBlock(), createElementBlock("span", null, [ | |
| (openBlock(true), createElementBlock(Fragment, null, renderList(keySequences.value, (sequence, index) => { | |
| return openBlock(), createElementBlock(Fragment, { key: index }, [ | |
| createVNode(unref(script), { | |
| severity: _ctx.isModified ? "info" : "secondary" | |
| }, { | |
| default: withCtx(() => [ | |
| createTextVNode(toDisplayString(sequence), 1) | |
| ]), | |
| _: 2 | |
| }, 1032, ["severity"]), | |
| index < keySequences.value.length - 1 ? (openBlock(), createElementBlock("span", _hoisted_1$1, "+")) : createCommentVNode("", true) | |
| ], 64); | |
| }), 128)) | |
| ]); | |
| }; | |
| } | |
| }); | |
| const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-9d7e362e"), n = n(), popScopeId(), n), "_withScopeId"); | |
| const _hoisted_1 = { class: "actions invisible flex flex-row" }; | |
| const _hoisted_2 = ["title"]; | |
| const _hoisted_3 = { key: 1 }; | |
| const _sfc_main = /* @__PURE__ */ defineComponent({ | |
| __name: "KeybindingPanel", | |
| setup(__props) { | |
| const filters = ref({ | |
| global: { value: "", matchMode: FilterMatchMode.CONTAINS } | |
| }); | |
| const keybindingStore = useKeybindingStore(); | |
| const commandStore = useCommandStore(); | |
| const commandsData = computed(() => { | |
| return Object.values(commandStore.commands).map((command) => ({ | |
| id: command.id, | |
| keybinding: keybindingStore.getKeybindingByCommandId(command.id) | |
| })); | |
| }); | |
| const selectedCommandData = ref(null); | |
| const editDialogVisible = ref(false); | |
| const newBindingKeyCombo = ref(null); | |
| const currentEditingCommand = ref(null); | |
| const keybindingInput = ref(null); | |
| const existingKeybindingOnCombo = computed(() => { | |
| if (!currentEditingCommand.value) { | |
| return null; | |
| } | |
| if (currentEditingCommand.value.keybinding?.combo?.equals( | |
| newBindingKeyCombo.value | |
| )) { | |
| return null; | |
| } | |
| if (!newBindingKeyCombo.value) { | |
| return null; | |
| } | |
| return keybindingStore.getKeybinding(newBindingKeyCombo.value); | |
| }); | |
| function editKeybinding(commandData) { | |
| currentEditingCommand.value = commandData; | |
| newBindingKeyCombo.value = commandData.keybinding ? commandData.keybinding.combo : null; | |
| editDialogVisible.value = true; | |
| } | |
| __name(editKeybinding, "editKeybinding"); | |
| watchEffect(() => { | |
| if (editDialogVisible.value) { | |
| setTimeout(() => { | |
| keybindingInput.value?.$el?.focus(); | |
| }, 300); | |
| } | |
| }); | |
| function removeKeybinding(commandData) { | |
| if (commandData.keybinding) { | |
| keybindingStore.unsetKeybinding(commandData.keybinding); | |
| keybindingStore.persistUserKeybindings(); | |
| } | |
| } | |
| __name(removeKeybinding, "removeKeybinding"); | |
| function captureKeybinding(event) { | |
| const keyCombo = KeyComboImpl.fromEvent(event); | |
| newBindingKeyCombo.value = keyCombo; | |
| } | |
| __name(captureKeybinding, "captureKeybinding"); | |
| function cancelEdit() { | |
| editDialogVisible.value = false; | |
| currentEditingCommand.value = null; | |
| newBindingKeyCombo.value = null; | |
| } | |
| __name(cancelEdit, "cancelEdit"); | |
| function saveKeybinding() { | |
| if (currentEditingCommand.value && newBindingKeyCombo.value) { | |
| const updated = keybindingStore.updateKeybindingOnCommand( | |
| new KeybindingImpl({ | |
| commandId: currentEditingCommand.value.id, | |
| combo: newBindingKeyCombo.value | |
| }) | |
| ); | |
| if (updated) { | |
| keybindingStore.persistUserKeybindings(); | |
| } | |
| } | |
| cancelEdit(); | |
| } | |
| __name(saveKeybinding, "saveKeybinding"); | |
| const toast = useToast(); | |
| async function resetKeybindings() { | |
| keybindingStore.resetKeybindings(); | |
| await keybindingStore.persistUserKeybindings(); | |
| toast.add({ | |
| severity: "info", | |
| summary: "Info", | |
| detail: "Keybindings reset", | |
| life: 3e3 | |
| }); | |
| } | |
| __name(resetKeybindings, "resetKeybindings"); | |
| return (_ctx, _cache) => { | |
| const _directive_tooltip = resolveDirective("tooltip"); | |
| return openBlock(), createBlock(_sfc_main$2, { | |
| value: "Keybinding", | |
| class: "keybinding-panel" | |
| }, { | |
| header: withCtx(() => [ | |
| createVNode(SearchBox, { | |
| modelValue: filters.value["global"].value, | |
| "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => filters.value["global"].value = $event), | |
| placeholder: _ctx.$t("searchKeybindings") + "..." | |
| }, null, 8, ["modelValue", "placeholder"]) | |
| ]), | |
| default: withCtx(() => [ | |
| createVNode(unref(script$3), { | |
| value: commandsData.value, | |
| selection: selectedCommandData.value, | |
| "onUpdate:selection": _cache[1] || (_cache[1] = ($event) => selectedCommandData.value = $event), | |
| "global-filter-fields": ["id"], | |
| filters: filters.value, | |
| selectionMode: "single", | |
| stripedRows: "", | |
| pt: { | |
| header: "px-0" | |
| } | |
| }, { | |
| default: withCtx(() => [ | |
| createVNode(unref(script$1), { | |
| field: "actions", | |
| header: "" | |
| }, { | |
| body: withCtx((slotProps) => [ | |
| createBaseVNode("div", _hoisted_1, [ | |
| createVNode(unref(script$2), { | |
| icon: "pi pi-pencil", | |
| class: "p-button-text", | |
| onClick: /* @__PURE__ */ __name(($event) => editKeybinding(slotProps.data), "onClick") | |
| }, null, 8, ["onClick"]), | |
| createVNode(unref(script$2), { | |
| icon: "pi pi-trash", | |
| class: "p-button-text p-button-danger", | |
| onClick: /* @__PURE__ */ __name(($event) => removeKeybinding(slotProps.data), "onClick"), | |
| disabled: !slotProps.data.keybinding | |
| }, null, 8, ["onClick", "disabled"]) | |
| ]) | |
| ]), | |
| _: 1 | |
| }), | |
| createVNode(unref(script$1), { | |
| field: "id", | |
| header: "Command ID", | |
| sortable: "", | |
| class: "max-w-64 2xl:max-w-full" | |
| }, { | |
| body: withCtx((slotProps) => [ | |
| createBaseVNode("div", { | |
| class: "overflow-hidden text-ellipsis whitespace-nowrap", | |
| title: slotProps.data.id | |
| }, toDisplayString(slotProps.data.id), 9, _hoisted_2) | |
| ]), | |
| _: 1 | |
| }), | |
| createVNode(unref(script$1), { | |
| field: "keybinding", | |
| header: "Keybinding" | |
| }, { | |
| body: withCtx((slotProps) => [ | |
| slotProps.data.keybinding ? (openBlock(), createBlock(_sfc_main$1, { | |
| key: 0, | |
| keyCombo: slotProps.data.keybinding.combo, | |
| isModified: unref(keybindingStore).isCommandKeybindingModified(slotProps.data.id) | |
| }, null, 8, ["keyCombo", "isModified"])) : (openBlock(), createElementBlock("span", _hoisted_3, "-")) | |
| ]), | |
| _: 1 | |
| }) | |
| ]), | |
| _: 1 | |
| }, 8, ["value", "selection", "filters"]), | |
| createVNode(unref(script$6), { | |
| class: "min-w-96", | |
| visible: editDialogVisible.value, | |
| "onUpdate:visible": _cache[2] || (_cache[2] = ($event) => editDialogVisible.value = $event), | |
| modal: "", | |
| header: currentEditingCommand.value?.id, | |
| onHide: cancelEdit | |
| }, { | |
| footer: withCtx(() => [ | |
| createVNode(unref(script$2), { | |
| label: "Save", | |
| icon: "pi pi-check", | |
| onClick: saveKeybinding, | |
| disabled: !!existingKeybindingOnCombo.value, | |
| autofocus: "" | |
| }, null, 8, ["disabled"]) | |
| ]), | |
| default: withCtx(() => [ | |
| createBaseVNode("div", null, [ | |
| createVNode(unref(script$4), { | |
| class: "mb-2 text-center", | |
| ref_key: "keybindingInput", | |
| ref: keybindingInput, | |
| modelValue: newBindingKeyCombo.value?.toString() ?? "", | |
| placeholder: "Press keys for new binding", | |
| onKeydown: withModifiers(captureKeybinding, ["stop", "prevent"]), | |
| autocomplete: "off", | |
| fluid: "", | |
| invalid: !!existingKeybindingOnCombo.value | |
| }, null, 8, ["modelValue", "invalid"]), | |
| existingKeybindingOnCombo.value ? (openBlock(), createBlock(unref(script$5), { | |
| key: 0, | |
| severity: "error" | |
| }, { | |
| default: withCtx(() => [ | |
| createTextVNode(" Keybinding already exists on "), | |
| createVNode(unref(script), { | |
| severity: "secondary", | |
| value: existingKeybindingOnCombo.value.commandId | |
| }, null, 8, ["value"]) | |
| ]), | |
| _: 1 | |
| })) : createCommentVNode("", true) | |
| ]) | |
| ]), | |
| _: 1 | |
| }, 8, ["visible", "header"]), | |
| withDirectives(createVNode(unref(script$2), { | |
| class: "mt-4", | |
| label: _ctx.$t("reset"), | |
| icon: "pi pi-trash", | |
| severity: "danger", | |
| fluid: "", | |
| text: "", | |
| onClick: resetKeybindings | |
| }, null, 8, ["label"]), [ | |
| [_directive_tooltip, _ctx.$t("resetKeybindingsTooltip")] | |
| ]) | |
| ]), | |
| _: 1 | |
| }); | |
| }; | |
| } | |
| }); | |
| const KeybindingPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9d7e362e"]]); | |
| export { | |
| KeybindingPanel as default | |
| }; | |
| //# sourceMappingURL=KeybindingPanel-lcJrxHwZ.js.map | |