mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-06 19:57:26 -08:00
chore: bump version to 0.3.0
This commit is contained in:
@@ -174,7 +174,8 @@ export function applySubtitleDomainConfig(context: ResolveContext): void {
|
||||
}
|
||||
|
||||
const autoPauseVideoOnYomitanPopup = asBoolean(
|
||||
(src.subtitleStyle as { autoPauseVideoOnYomitanPopup?: unknown }).autoPauseVideoOnYomitanPopup,
|
||||
(src.subtitleStyle as { autoPauseVideoOnYomitanPopup?: unknown })
|
||||
.autoPauseVideoOnYomitanPopup,
|
||||
);
|
||||
if (autoPauseVideoOnYomitanPopup !== undefined) {
|
||||
resolved.subtitleStyle.autoPauseVideoOnYomitanPopup = autoPauseVideoOnYomitanPopup;
|
||||
|
||||
@@ -328,7 +328,9 @@ test('keyboard mode: up/down/j/k do not open or close lookup when popup is close
|
||||
|
||||
await wait(0);
|
||||
|
||||
const openEvents = testGlobals.commandEvents.filter((event) => event.type === 'scanSelectedText');
|
||||
const openEvents = testGlobals.commandEvents.filter(
|
||||
(event) => event.type === 'scanSelectedText',
|
||||
);
|
||||
assert.equal(openEvents.length, 0);
|
||||
const closeEvents = testGlobals.commandEvents.filter(
|
||||
(event) => event.type === 'setVisible' && event.visible === false,
|
||||
@@ -355,16 +357,28 @@ test('keyboard mode: up/down/j/k forward keydown to yomitan popup when open', as
|
||||
testGlobals.dispatchKeydown({ key: 'j', code: 'KeyJ' });
|
||||
testGlobals.dispatchKeydown({ key: 'k', code: 'KeyK' });
|
||||
|
||||
const forwarded = testGlobals.commandEvents.filter(
|
||||
(event) => event.type === 'forwardKeyDown',
|
||||
);
|
||||
const forwarded = testGlobals.commandEvents.filter((event) => event.type === 'forwardKeyDown');
|
||||
assert.equal(forwarded.length, 4);
|
||||
assert.equal(forwarded.some((event) => event.code === 'ArrowUp'), true);
|
||||
assert.equal(forwarded.some((event) => event.code === 'ArrowDown'), true);
|
||||
assert.equal(forwarded.some((event) => event.code === 'KeyJ'), true);
|
||||
assert.equal(forwarded.some((event) => event.code === 'KeyK'), true);
|
||||
assert.equal(
|
||||
forwarded.some((event) => event.code === 'ArrowUp'),
|
||||
true,
|
||||
);
|
||||
assert.equal(
|
||||
forwarded.some((event) => event.code === 'ArrowDown'),
|
||||
true,
|
||||
);
|
||||
assert.equal(
|
||||
forwarded.some((event) => event.code === 'KeyJ'),
|
||||
true,
|
||||
);
|
||||
assert.equal(
|
||||
forwarded.some((event) => event.code === 'KeyK'),
|
||||
true,
|
||||
);
|
||||
|
||||
const openEvents = testGlobals.commandEvents.filter((event) => event.type === 'scanSelectedText');
|
||||
const openEvents = testGlobals.commandEvents.filter(
|
||||
(event) => event.type === 'scanSelectedText',
|
||||
);
|
||||
assert.equal(openEvents.length, 0);
|
||||
const closeEvents = testGlobals.commandEvents.filter(
|
||||
(event) => event.type === 'setVisible' && event.visible === false,
|
||||
@@ -389,9 +403,7 @@ test('keyboard mode: repeated popup navigation keys are forwarded while popup is
|
||||
testGlobals.dispatchKeydown({ key: 'j', code: 'KeyJ', repeat: true });
|
||||
testGlobals.dispatchKeydown({ key: 'ArrowDown', code: 'ArrowDown', repeat: true });
|
||||
|
||||
const forwarded = testGlobals.commandEvents.filter(
|
||||
(event) => event.type === 'forwardKeyDown',
|
||||
);
|
||||
const forwarded = testGlobals.commandEvents.filter((event) => event.type === 'forwardKeyDown');
|
||||
assert.equal(forwarded.length, 2);
|
||||
assert.deepEqual(
|
||||
forwarded.map((event) => ({ code: event.code, repeat: event.repeat })),
|
||||
@@ -445,7 +457,9 @@ test('keyboard mode: h moves left while popup is open and keeps lookup active',
|
||||
await wait(80);
|
||||
|
||||
assert.equal(ctx.state.keyboardSelectedWordIndex, 1);
|
||||
const openEvents = testGlobals.commandEvents.filter((event) => event.type === 'scanSelectedText');
|
||||
const openEvents = testGlobals.commandEvents.filter(
|
||||
(event) => event.type === 'scanSelectedText',
|
||||
);
|
||||
assert.equal(openEvents.length > 0, true);
|
||||
const closeEvents = testGlobals.commandEvents.filter(
|
||||
(event) => event.type === 'setVisible' && event.visible === false,
|
||||
@@ -546,7 +560,9 @@ test('keyboard mode: popup-open edge jump refreshes lookup on the new subtitle s
|
||||
await wait(80);
|
||||
|
||||
assert.equal(ctx.state.keyboardSelectedWordIndex, 0);
|
||||
const openEvents = testGlobals.commandEvents.filter((event) => event.type === 'scanSelectedText');
|
||||
const openEvents = testGlobals.commandEvents.filter(
|
||||
(event) => event.type === 'scanSelectedText',
|
||||
);
|
||||
assert.equal(openEvents.length > 0, true);
|
||||
} finally {
|
||||
ctx.state.keyboardDrivenModeEnabled = false;
|
||||
|
||||
@@ -130,7 +130,9 @@ export function createKeyboardHandlers(
|
||||
}
|
||||
|
||||
function getSubtitleWordNodes(): HTMLElement[] {
|
||||
return Array.from(ctx.dom.subtitleRoot.querySelectorAll<HTMLElement>('.word[data-token-index]'));
|
||||
return Array.from(
|
||||
ctx.dom.subtitleRoot.querySelectorAll<HTMLElement>('.word[data-token-index]'),
|
||||
);
|
||||
}
|
||||
|
||||
function syncKeyboardTokenSelection(): void {
|
||||
@@ -188,7 +190,9 @@ export function createKeyboardHandlers(
|
||||
setKeyboardDrivenModeEnabled(!ctx.state.keyboardDrivenModeEnabled);
|
||||
}
|
||||
|
||||
function moveKeyboardSelection(delta: -1 | 1): 'moved' | 'start-boundary' | 'end-boundary' | 'no-words' {
|
||||
function moveKeyboardSelection(
|
||||
delta: -1 | 1,
|
||||
): 'moved' | 'start-boundary' | 'end-boundary' | 'no-words' {
|
||||
const wordNodes = getSubtitleWordNodes();
|
||||
if (wordNodes.length === 0) {
|
||||
ctx.state.keyboardSelectedWordIndex = null;
|
||||
|
||||
@@ -2,10 +2,7 @@ import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
|
||||
import { createMouseHandlers } from './mouse.js';
|
||||
import {
|
||||
YOMITAN_POPUP_HIDDEN_EVENT,
|
||||
YOMITAN_POPUP_SHOWN_EVENT,
|
||||
} from '../yomitan-popup.js';
|
||||
import { YOMITAN_POPUP_HIDDEN_EVENT, YOMITAN_POPUP_SHOWN_EVENT } from '../yomitan-popup.js';
|
||||
|
||||
function createClassList() {
|
||||
const classes = new Set<string>();
|
||||
|
||||
Reference in New Issue
Block a user