danoniplus 47.6.2 → 47.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/js/danoni_main.js +39 -68
  2. package/package.json +1 -1
package/js/danoni_main.js CHANGED
@@ -4,12 +4,12 @@
4
4
  *
5
5
  * Source by tickle
6
6
  * Created : 2018/10/08
7
- * Revised : 2026/05/14
7
+ * Revised : 2026/05/15
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 47.6.2`;
12
- const g_revisedDate = `2026/05/14`;
11
+ const g_version = `Ver 47.6.4`;
12
+ const g_revisedDate = `2026/05/15`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -9735,7 +9735,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
9735
9735
  * @returns {HTMLDivElement}
9736
9736
  */
9737
9737
  const makeKCButton = (_id, _text, _func, { x = g_btnX(5 / 6) - 20, y = 15, w = g_btnWidth(1 / 6), h = 18,
9738
- siz = g_limitObj.jdgCntsSiz, borderStyle = `solid`, cxtFunc, ...rest } = {}, _mainClass = g_cssObj.button_RevOFF, ..._classes) =>
9738
+ siz = g_limitObj.jdgCntsSiz, borderStyle = C_DIS_NONE, cxtFunc, ...rest } = {}, _mainClass = g_cssObj.button_RevOFF, ..._classes) =>
9739
9739
  makeSettingLblCssButton(_id, getStgDetailName(_text), 0, _func, { x, y, w, h, siz, cxtFunc, borderStyle, ...rest }, _mainClass, ..._classes);
9740
9740
 
9741
9741
  /**
@@ -10417,8 +10417,7 @@ const keyconfigKeyboardPreview = (() => {
10417
10417
  // キーレイアウト定義
10418
10418
  //
10419
10419
  // 各行: { offsetX, keys }
10420
- // offsetX : 行左端の水平オフセット(単位: BASE_KEY_W)。全行 0 で統一し、
10421
- // L)Shift の幅で行頭位置を調整する。
10420
+ // offsetX : 行左端の水平オフセット(単位: BASE_KEY_W)。未指定時は0
10422
10421
  // keys : キー定義の配列
10423
10422
  //
10424
10423
  // 各キー: { kc, w?, h?, label? }
@@ -10442,7 +10441,6 @@ const keyconfigKeyboardPreview = (() => {
10442
10441
  return [
10443
10442
  // Row0: Fn キー行(JIS/US 共通)
10444
10443
  {
10445
- offsetX: 0,
10446
10444
  keys: [
10447
10445
  { kc: 27 }, // Esc
10448
10446
  { kc: -1, w: 0.5 }, // スペーサー
@@ -10457,16 +10455,13 @@ const keyconfigKeyboardPreview = (() => {
10457
10455
  // JIS: ..., 220(intlYen), BS
10458
10456
  // US : ..., BS
10459
10457
  {
10460
- offsetX: 0,
10461
10458
  keys: [
10462
10459
  { kc: 229 },
10463
- { kc: 49 }, { kc: 50 }, { kc: 51 },
10464
- { kc: 52 }, { kc: 53 }, { kc: 54 },
10465
- { kc: 55 }, { kc: 56 }, { kc: 57 },
10466
- { kc: 48 }, { kc: 189 }, { kc: 222 },
10460
+ { kc: 49 }, { kc: 50 }, { kc: 51 }, { kc: 52 }, { kc: 53 }, { kc: 54 },
10461
+ { kc: 55 }, { kc: 56 }, { kc: 57 }, { kc: 48 }, { kc: 189 }, { kc: 222 },
10467
10462
  ...(isJa
10468
10463
  ? [{ kc: 220, w: 0.75 }, { kc: 8, label: `Back\nSpace` }] // JIS: intlYen + BS
10469
- : [{ kc: 8, w: 1.7 }] // US : BS のみ(広い)
10464
+ : [{ kc: 8, w: 1.7 }] // US : BS のみ(広い)
10470
10465
  ),
10471
10466
  ],
10472
10467
  },
@@ -10474,13 +10469,10 @@ const keyconfigKeyboardPreview = (() => {
10474
10469
  // JIS: ..., [, Enter(13)
10475
10470
  // US : ..., [, ]
10476
10471
  {
10477
- offsetX: 0,
10478
10472
  keys: [
10479
10473
  { kc: 9, w: 1.5 },
10480
- { kc: 81 }, { kc: 87 }, { kc: 69 },
10481
- { kc: 82 }, { kc: 84 }, { kc: 89 },
10482
- { kc: 85 }, { kc: 73 }, { kc: 79 },
10483
- { kc: 80 }, { kc: 192 },
10474
+ { kc: 81 }, { kc: 87 }, { kc: 69 }, { kc: 82 }, { kc: 84 }, { kc: 89 },
10475
+ { kc: 85 }, { kc: 73 }, { kc: 79 }, { kc: 80 }, { kc: 192 },
10484
10476
  ...(isJa
10485
10477
  ? [{ kc: 219 }, { kc: 13, w: 1.25, h: 2 }] // JIS: [, Enter縦長
10486
10478
  : [{ kc: 219 }, { kc: 221, w: 1.2 }] // US : [, ]
@@ -10491,13 +10483,10 @@ const keyconfigKeyboardPreview = (() => {
10491
10483
  // JIS: ..., L, ;, ', ¥(221)
10492
10484
  // US : ..., L, ;, ', Enter(13)
10493
10485
  {
10494
- offsetX: 0,
10495
10486
  keys: [
10496
- { kc: 20, w: 1.75, label: `CapsLk` },
10497
- { kc: 65 }, { kc: 83 }, { kc: 68 },
10498
- { kc: 70 }, { kc: 71 }, { kc: 72 },
10499
- { kc: 74 }, { kc: 75 }, { kc: 76 },
10500
- { kc: 187 }, { kc: 186 },
10487
+ { kc: 20, w: 1.75, label: `Caps\nLock` },
10488
+ { kc: 65 }, { kc: 83 }, { kc: 68 }, { kc: 70 }, { kc: 71 }, { kc: 72 },
10489
+ { kc: 74 }, { kc: 75 }, { kc: 76 }, { kc: 187 }, { kc: 186 },
10501
10490
  ...(isJa
10502
10491
  ? [{ kc: 221 }] // JIS: ¥
10503
10492
  : [{ kc: 13, w: 1.9 }] // US : Enter横長
@@ -10509,16 +10498,13 @@ const keyconfigKeyboardPreview = (() => {
10509
10498
  // JIS: L)Shift, ..., intlRo(226), R)Shift
10510
10499
  // US : L)Shift, ..., R)Shift
10511
10500
  {
10512
- offsetX: 0,
10513
10501
  keys: [
10514
10502
  { kc: 16, w: 2.25 },
10515
- { kc: 90 }, { kc: 88 }, { kc: 67 },
10516
- { kc: 86 }, { kc: 66 }, { kc: 78 },
10517
- { kc: 77 }, { kc: 188 }, { kc: 190 },
10518
- { kc: 191 },
10503
+ { kc: 90 }, { kc: 88 }, { kc: 67 }, { kc: 86 }, { kc: 66 }, { kc: 78 },
10504
+ { kc: 77 }, { kc: 188 }, { kc: 190 }, { kc: 191 },
10519
10505
  ...(isJa
10520
10506
  ? [{ kc: 226 }, { kc: 256, w: 1.5 }] // JIS: intlRo + R)Shift
10521
- : [{ kc: 256, w: 2.4 }] // US : R)Shift のみ(広い)
10507
+ : [{ kc: 256, w: 2.4 }] // US : R)Shift のみ(広い)
10522
10508
  ),
10523
10509
  ],
10524
10510
  },
@@ -10526,24 +10512,15 @@ const keyconfigKeyboardPreview = (() => {
10526
10512
  // JIS: ..., NoConv(29), Space, Conv(28), カタカナひらがな(242), ...
10527
10513
  // US : ..., Space, ...
10528
10514
  {
10529
- offsetX: 0,
10530
10515
  keys: [
10531
- { kc: 17, w: 1.25 },
10532
- { kc: 91 },
10533
- { kc: 18 },
10516
+ { kc: 17, w: 1.25 }, { kc: 91 }, { kc: 18 },
10534
10517
  ...(isJa
10535
- ? [
10536
- { kc: 29 },
10537
- { kc: 32, w: 5.25 },
10538
- { kc: 28 },
10539
- { kc: 242 },
10540
- ]
10541
- : [
10542
- { kc: 32, w: 8.25 },
10543
- ]
10518
+ // JIS: NoConv + Space + Conv + カタカナひらがな
10519
+ ? [{ kc: 29 }, { kc: 32, w: 5.25 }, { kc: 28 }, { kc: 242 }]
10520
+ // US : Space のみ(広い)
10521
+ : [{ kc: 32, w: 8.25 }]
10544
10522
  ),
10545
- { kc: 258 },
10546
- { kc: 93 },
10523
+ { kc: 258 }, { kc: 93 },
10547
10524
  ...(isJa
10548
10525
  ? [{ kc: 257, w: 1.2 }]
10549
10526
  : [{ kc: 257, w: 1.05 }]
@@ -10555,12 +10532,12 @@ const keyconfigKeyboardPreview = (() => {
10555
10532
  // 編集キークラスター(PrintSc/ScrollLk/Pause/Insert/Delete/Home/End/PgUp/PgDn + 矢印キー)
10556
10533
  // MAIN_ROWS と行インデックスを揃えて配置する。空行はスキップされる。
10557
10534
  const NAV_ROWS = [
10558
- { offsetX: 0, keys: [{ kc: 44, label: `PrintSc` }, { kc: 145, label: `ScrollLk` }, { kc: 19 }] }, // PrintSc ScrollLk Pause
10559
- { offsetX: 0, keys: [{ kc: 45 }, { kc: 36 }, { kc: 33 }] }, // Insert Home PgUp
10560
- { offsetX: 0, keys: [{ kc: 46 }, { kc: 35 }, { kc: 34 }] }, // Delete End PgDn
10561
- { offsetX: 0, keys: [] }, // ASDF行:空
10562
- { offsetX: 0, keys: [{ kc: -1 }, { kc: 38 }, { kc: -1 }] }, // ↑
10563
- { offsetX: 0, keys: [{ kc: 37 }, { kc: 40 }, { kc: 39 }] }, // ← ↓ →
10535
+ { keys: [{ kc: 44, label: `Print\nScreen` }, { kc: 145, label: `Scroll\nLock` }, { kc: 19 }] },
10536
+ { keys: [{ kc: 45 }, { kc: 36 }, { kc: 33, label: `Page\nUp` }] }, // Insert Home PgUp
10537
+ { keys: [{ kc: 46 }, { kc: 35 }, { kc: 34, label: `Page\nDown` }] }, // Delete End PgDn
10538
+ { keys: [] }, // ASDF行:空
10539
+ { keys: [{ kc: -1 }, { kc: 38 }, { kc: -1 }] }, // ↑
10540
+ { keys: [{ kc: 37 }, { kc: 40 }, { kc: 39 }] }, // ← ↓ →
10564
10541
  ];
10565
10542
 
10566
10543
  // テンキー(MAIN_ROWS と行インデックスを揃えて配置。1行目は空行で Fn行に揃える)
@@ -10572,12 +10549,12 @@ const keyconfigKeyboardPreview = (() => {
10572
10549
  // [T1][T2][T3] [TEnter]
10573
10550
  // [ T0 ][T.] [TEnter] ← T0 は横2u、TEnter は縦2u
10574
10551
  const NUM_ROWS = [
10575
- { offsetX: 0, keys: [] },
10576
- { offsetX: 0, keys: [{ kc: 144 }, { kc: 111 }, { kc: 106 }, { kc: 109 }] }, // NumLk T/ T* T-
10577
- { offsetX: 0, keys: [{ kc: 103 }, { kc: 104 }, { kc: 105 }, { kc: 107, h: 2 }] }, // T7 T8 T9 T+(縦2u)
10578
- { offsetX: 0, keys: [{ kc: 100 }, { kc: 101 }, { kc: 102 }] }, // T4 T5 T6
10579
- { offsetX: 0, keys: [{ kc: 97 }, { kc: 98 }, { kc: 99 }, { kc: 108, h: 2 }] }, // T1 T2 T3 TEnter(縦2u)
10580
- { offsetX: 0, keys: [{ kc: 96, w: 2 }, { kc: 110 }] }, // T0(横2u) T.
10552
+ { keys: [] },
10553
+ { keys: [{ kc: 144, label: `Num\nLock` }, { kc: 111 }, { kc: 106 }, { kc: 109 }] }, // NumLk T/ T* T-
10554
+ { keys: [{ kc: 103 }, { kc: 104 }, { kc: 105 }, { kc: 107, h: 2 }] }, // T7 T8 T9 T+(縦2u)
10555
+ { keys: [{ kc: 100 }, { kc: 101 }, { kc: 102 }] }, // T4 T5 T6
10556
+ { keys: [{ kc: 97 }, { kc: 98 }, { kc: 99 }, { kc: 108, h: 2 }] }, // T1 T2 T3 TEnter(縦2u)
10557
+ { keys: [{ kc: 96, w: 2 }, { kc: 110 }] }, // T0(横2u) T.
10581
10558
  ];
10582
10559
 
10583
10560
  // -------------------------------------------------------------------------
@@ -10755,7 +10732,7 @@ const keyconfigKeyboardPreview = (() => {
10755
10732
  if (rowDef.keys.length === 0) return;
10756
10733
 
10757
10734
  const rowY = originY + rowIdx * (baseKeyH + gap);
10758
- const startX = originX + Math.floor(rowDef.offsetX * BASE_KEY_W * _state.scale);
10735
+ const startX = originX + Math.floor((rowDef.offsetX || 0) * BASE_KEY_W * _state.scale);
10759
10736
  let curX = startX;
10760
10737
 
10761
10738
  rowDef.keys.forEach(keyDef => {
@@ -10910,40 +10887,34 @@ const keyconfigKeyboardPreview = (() => {
10910
10887
 
10911
10888
  // ボタン: キャンバス横幅中央に配置、小さいサイズ
10912
10889
  const btnW = 80;
10913
- const btnX = Math.floor((g_btnWidth() - btnW) / 2);
10890
+ const btnX = g_btnX() + Math.floor((g_btnWidth() - btnW) / 2);
10914
10891
 
10915
10892
  // "↓ Preview" → 展開、"↑ Preview" → 閉じる のトグルボタン
10916
10893
  const btn = createCss2Button(C_BTN_ID, `↓ Preview`, () => {
10917
10894
  togglePreview();
10918
10895
  btn.textContent = _state.visible ? `↑ Preview` : `↓ Preview`;
10919
10896
  }, {
10920
- x: btnX, y: BTN_Y, w: btnW, h: BTN_H,
10897
+ x: btnX, y: BTN_Y, w: btnW, h: BTN_H, siz: BTN_FS,
10921
10898
  title: g_msgObj.kcPreview,
10922
10899
  }, g_cssObj.button_Setting);
10923
- btn.style.fontSize = `${BTN_FS}px`;
10924
10900
  divRoot.appendChild(btn);
10925
10901
 
10926
10902
  // プレビューエリア: 水平・垂直センタリング
10927
- const areaX = Math.floor((g_btnWidth() - _state.cvsW) / 2);
10903
+ const areaX = g_btnX() + Math.floor((g_btnWidth() - _state.cvsW) / 2);
10928
10904
  const areaY = 130;
10929
10905
 
10930
10906
  const areaDiv = createEmptySprite(divRoot, C_PREVIEW_ID, {
10931
10907
  x: areaX, y: areaY - 60, w: _state.cvsW, h: _state.cvsH + 80,
10932
- pointerEvents: C_DIS_AUTO, background: `#00000080`,
10908
+ pointerEvents: C_DIS_AUTO, background: `#00000080`, display: C_DIS_NONE, overflow: `hidden`,
10933
10909
  });
10934
- areaDiv.style.display = `none`;
10935
- areaDiv.style.position = `absolute`;
10936
- areaDiv.style.overflow = `hidden`;
10937
10910
 
10938
10911
  const canvasBase = document.createElement(`canvas`);
10939
10912
  canvasBase.id = C_CANVAS_BASE_ID;
10940
- canvasBase.style.cssText = `position:absolute;left:0;top:0;`;
10941
10913
  areaDiv.appendChild(canvasBase);
10942
10914
  _state.canvasBase = canvasBase;
10943
10915
 
10944
10916
  const canvasMap = document.createElement(`canvas`);
10945
10917
  canvasMap.id = C_CANVAS_MAP_ID;
10946
- canvasMap.style.cssText = `position:absolute;left:0;top:0;`;
10947
10918
  areaDiv.appendChild(canvasMap);
10948
10919
  _state.canvasMap = canvasMap;
10949
10920
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "47.6.2",
3
+ "version": "47.6.4",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "./js/danoni_main.js",
6
6
  "jsdelivr": "./js/danoni_main.js",