<commit_before>import $ from 'jquery';
import Signal from '../utils/signal';

import { song } from './songmanager';
import { state } from '../state';
import { player } from '../audio/player';
import { cursor } from '../utils/cursor';

class VirtualKeyboard {
  constructor() {
    this.validKeys = [
      "z", "s", "x", "d", "c", "v", "g", "b", "h", "n", "j", "m", ",", "l", ".", ";", "/", 
      "q", "2", "w", "3", "e", "r", "5", "t", "6", "y", "7", "u", "i", "9", "o", "0", "p", "[", "=", "]",
      "`",
    ];
    this.mappingTable = {
      "z": 0,   // C-0
      "s": 1,   // C#0
      "x": 2,   // D-0
      "d": 3,   // D#0
      "c": 4,   // E-0
      "v": 5,   // F-0
      "g": 6,   // F#0
      "b": 7,   // G-0
      "h": 8,   // G#0
      "n": 9,   // A-0
      "j": 10,  // A#0
      "m": 11,  // B-0
      ",": 12,  // C-1
      "l": 13,  // C#1
      ".": 14,  // D-1
      ";": 15,  // D#1
      "/": 16,  // E-1
      "q": 12,  // C-1
      "2": 13,  // C#1
      "w": 14,  // D-1
      "3": 15,  // D#1
      "e": 16,  // E-1
      "r": 17,  // F-1
      "5": 18,  // F#1
      "t": 19,  // G-1
      "6": 20,  // G#1
      "y": 21,  // A-1
      "7": 22,  // A#1
      "u": 23,  // B-1
      "i": 24,  // C-2
      "9": 25,  // C#2
      "o": 26,  // D-2
      "0": 27,  // D#2
      "p": 28,  // E-2
      "[": 29,  // F-2
      "=": 30,  // F#2
      "]": 31,  // G-2
    };

    this.paused = false;

    this.keys = {};
    this.playing = {};

    window.addEventListener("keydown", this.handleKeyDown.bind(this));
    window.addEventListener("keyup", this.handleKeyUp.bind(this));

    this.noteDown = Signal.signal(false);
    this.noteUp = Signal.signal(false);
  }

  pause() {
    this.paused = true;
  }

  resume() {
    this.paused = false;
  }

  handleKeyDown(event) {
    if (this.paused) {
      return;
    }

    if ($(event.target).is(":input")) {
      return;
    }

    if (event.ctrlKey || event.shiftKey || event.metaKey ) {
      return;
    }<commit_msg>Only disable VKB when input type is text.<commit_after>import $ from 'jquery';
import Signal from '../utils/signal';

import { song } from './songmanager';
import { state } from '../state';
import { player } from '../audio/player';
import { cursor } from '../utils/cursor';

class VirtualKeyboard {
  constructor() {
    this.validKeys = [
      "z", "s", "x", "d", "c", "v", "g", "b", "h", "n", "j", "m", ",", "l", ".", ";", "/", 
      "q", "2", "w", "3", "e", "r", "5", "t", "6", "y", "7", "u", "i", "9", "o", "0", "p", "[", "=", "]",
      "`",
    ];
    this.mappingTable = {
      "z": 0,   // C-0
      "s": 1,   // C#0
      "x": 2,   // D-0
      "d": 3,   // D#0
      "c": 4,   // E-0
      "v": 5,   // F-0
      "g": 6,   // F#0
      "b": 7,   // G-0
      "h": 8,   // G#0
      "n": 9,   // A-0
      "j": 10,  // A#0
      "m": 11,  // B-0
      ",": 12,  // C-1
      "l": 13,  // C#1
      ".": 14,  // D-1
      ";": 15,  // D#1
      "/": 16,  // E-1
      "q": 12,  // C-1
      "2": 13,  // C#1
      "w": 14,  // D-1
      "3": 15,  // D#1
      "e": 16,  // E-1
      "r": 17,  // F-1
      "5": 18,  // F#1
      "t": 19,  // G-1
      "6": 20,  // G#1
      "y": 21,  // A-1
      "7": 22,  // A#1
      "u": 23,  // B-1
      "i": 24,  // C-2
      "9": 25,  // C#2
      "o": 26,  // D-2
      "0": 27,  // D#2
      "p": 28,  // E-2
      "[": 29,  // F-2
      "=": 30,  // F#2
      "]": 31,  // G-2
    };

    this.paused = false;

    this.keys = {};
    this.playing = {};

    window.addEventListener("keydown", this.handleKeyDown.bind(this));
    window.addEventListener("keyup", this.handleKeyUp.bind(this));

    this.noteDown = Signal.signal(false);
    this.noteUp = Signal.signal(false);
  }

  pause() {
    this.paused = true;
  }

  resume() {
    this.paused = false;
  }

  handleKeyDown(event) {
    if (this.paused) {
      return;
    }

    if ($(event.target).is(":input") && ($(event.target).attr("type") === "text")) {
      return;
    }

    if (event.ctrlKey || event.shiftKey || event.metaKey ) {
      return;
    }
{'fraction_non_alphanumeric': 0.2728609953419956, 'fraction_numerical': 0.05638636920813925, 'mean_word_length': 1.4329159212880143, 'pattern_counts': {'":': 76, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7459875', 'n_tokens_mistral': 1893, 'n_tokens_neox': 1719, 'n_words': 393}