@famibee/skynovel 1.65.0 → 2.0.1

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 (176) hide show
  1. package/README.md +3 -3
  2. package/dist/Button.js +131 -163
  3. package/dist/Button.js.map +1 -1
  4. package/dist/CallStack.js +19 -22
  5. package/dist/CallStack.js.map +1 -1
  6. package/dist/CmnInterface.js +91 -0
  7. package/dist/CmnInterface.js.map +1 -0
  8. package/dist/CmnLib.js +94 -0
  9. package/dist/CmnLib.js.map +1 -0
  10. package/dist/Config.js +26 -0
  11. package/dist/Config.js.map +1 -0
  12. package/dist/ConfigBase.js +152 -0
  13. package/dist/ConfigBase.js.map +1 -0
  14. package/dist/DebugMng.js +89 -102
  15. package/dist/DebugMng.js.map +1 -1
  16. package/dist/EventListenerCtn.js +21 -0
  17. package/dist/EventListenerCtn.js.map +1 -0
  18. package/dist/EventMng.js +1435 -1577
  19. package/dist/EventMng.js.map +1 -1
  20. package/dist/Grammar.js +194 -0
  21. package/dist/Grammar.js.map +1 -0
  22. package/dist/GrpLayer.js +163 -195
  23. package/dist/GrpLayer.js.map +1 -1
  24. package/dist/Layer.js +260 -0
  25. package/dist/Layer.js.map +1 -0
  26. package/dist/LayerMng.js +810 -991
  27. package/dist/LayerMng.js.map +1 -1
  28. package/dist/Main.js +144 -393
  29. package/dist/Main.js.map +1 -1
  30. package/dist/PropParser.js +936 -834
  31. package/dist/PropParser.js.map +1 -1
  32. package/dist/Reading.js +917 -786
  33. package/dist/Reading.js.map +1 -1
  34. package/dist/RubySpliter.js +59 -92
  35. package/dist/RubySpliter.js.map +1 -1
  36. package/dist/ScriptIterator.js +805 -1034
  37. package/dist/ScriptIterator.js.map +1 -1
  38. package/dist/SndBuf.js +1097 -1332
  39. package/dist/SndBuf.js.map +1 -1
  40. package/dist/SoundMng.js +124 -135
  41. package/dist/SoundMng.js.map +1 -1
  42. package/dist/SpritesMng.js +220 -232
  43. package/dist/SpritesMng.js.map +1 -1
  44. package/dist/SysBase.js +1729 -0
  45. package/dist/SysBase.js.map +1 -0
  46. package/dist/TxtLayer.js +1212 -1397
  47. package/dist/TxtLayer.js.map +1 -1
  48. package/dist/Variable.js +398 -466
  49. package/dist/Variable.js.map +1 -1
  50. package/dist/chunk.js +18 -0
  51. package/dist/gamepad.js +723 -511
  52. package/dist/gamepad.js.map +1 -1
  53. package/dist/pixi.js +13422 -0
  54. package/dist/pixi.js.map +1 -0
  55. package/dist/platform.js +424 -369
  56. package/dist/platform.js.map +1 -1
  57. package/dist/sn/AnalyzeTagArg.d.ts +1 -1
  58. package/dist/sn/AnalyzeTagArg.d.ts.map +1 -1
  59. package/dist/sn/CmnInterface.d.ts +3 -1
  60. package/dist/sn/CmnInterface.d.ts.map +1 -1
  61. package/dist/sn/CmnLib.d.ts.map +1 -1
  62. package/dist/sn/CmnTween.d.ts +3 -3
  63. package/dist/sn/CmnTween.d.ts.map +1 -1
  64. package/dist/sn/EventMng.d.ts.map +1 -1
  65. package/dist/sn/Grammar.d.ts +1 -1
  66. package/dist/sn/Grammar.d.ts.map +1 -1
  67. package/dist/sn/PropParser.d.ts +2 -2
  68. package/dist/sn/PropParser.d.ts.map +1 -1
  69. package/dist/sn/Reading.d.ts +6 -0
  70. package/dist/sn/Reading.d.ts.map +1 -1
  71. package/dist/sn/ScriptIterator.d.ts.map +1 -1
  72. package/dist/sn/SndBuf.d.ts +27 -16
  73. package/dist/sn/SndBuf.d.ts.map +1 -1
  74. package/dist/sn/SoundMng.d.ts +4 -1
  75. package/dist/sn/SoundMng.d.ts.map +1 -1
  76. package/dist/sn/SysBase.d.ts.map +1 -1
  77. package/dist/sn/TxtStage.d.ts +2 -1
  78. package/dist/sn/TxtStage.d.ts.map +1 -1
  79. package/dist/test/ValTest.d.ts +1 -1
  80. package/dist/test/ValTest.d.ts.map +1 -1
  81. package/dist/web.js +653 -8
  82. package/dist/web.js.map +1 -1
  83. package/dist_app/Button.js +131 -163
  84. package/dist_app/Button.js.map +1 -1
  85. package/dist_app/CallStack.js +19 -22
  86. package/dist_app/CallStack.js.map +1 -1
  87. package/dist_app/CmnInterface.js +91 -0
  88. package/dist_app/CmnInterface.js.map +1 -0
  89. package/dist_app/CmnLib.js +94 -0
  90. package/dist_app/CmnLib.js.map +1 -0
  91. package/dist_app/Config.js +26 -0
  92. package/dist_app/Config.js.map +1 -0
  93. package/dist_app/ConfigBase.js +152 -0
  94. package/dist_app/ConfigBase.js.map +1 -0
  95. package/dist_app/DebugMng.js +92 -0
  96. package/dist_app/DebugMng.js.map +1 -0
  97. package/dist_app/EventListenerCtn.js +21 -0
  98. package/dist_app/EventListenerCtn.js.map +1 -0
  99. package/dist_app/EventMng.js +1435 -1577
  100. package/dist_app/EventMng.js.map +1 -1
  101. package/dist_app/Grammar.js +194 -0
  102. package/dist_app/Grammar.js.map +1 -0
  103. package/dist_app/GrpLayer.js +163 -195
  104. package/dist_app/GrpLayer.js.map +1 -1
  105. package/dist_app/Layer.js +260 -0
  106. package/dist_app/Layer.js.map +1 -0
  107. package/dist_app/LayerMng.js +810 -991
  108. package/dist_app/LayerMng.js.map +1 -1
  109. package/dist_app/Main.js +144 -392
  110. package/dist_app/Main.js.map +1 -1
  111. package/dist_app/PropParser.js +936 -834
  112. package/dist_app/PropParser.js.map +1 -1
  113. package/dist_app/Reading.js +917 -786
  114. package/dist_app/Reading.js.map +1 -1
  115. package/dist_app/RubySpliter.js +59 -92
  116. package/dist_app/RubySpliter.js.map +1 -1
  117. package/dist_app/ScriptIterator.js +805 -1033
  118. package/dist_app/ScriptIterator.js.map +1 -1
  119. package/dist_app/SndBuf.js +1097 -1332
  120. package/dist_app/SndBuf.js.map +1 -1
  121. package/dist_app/SoundMng.js +124 -135
  122. package/dist_app/SoundMng.js.map +1 -1
  123. package/dist_app/SpritesMng.js +220 -231
  124. package/dist_app/SpritesMng.js.map +1 -1
  125. package/dist_app/SysBase.js +1729 -0
  126. package/dist_app/SysBase.js.map +1 -0
  127. package/dist_app/TxtLayer.js +1212 -1396
  128. package/dist_app/TxtLayer.js.map +1 -1
  129. package/dist_app/Variable.js +398 -466
  130. package/dist_app/Variable.js.map +1 -1
  131. package/dist_app/app.js +211 -8
  132. package/dist_app/app.js.map +1 -1
  133. package/dist_app/appMain.js +20 -21
  134. package/dist_app/appMain.js.map +1 -1
  135. package/dist_app/chunk.js +18 -0
  136. package/dist_app/gamepad.js +723 -511
  137. package/dist_app/gamepad.js.map +1 -1
  138. package/dist_app/pixi.js +11181 -0
  139. package/dist_app/pixi.js.map +1 -0
  140. package/dist_app/platform.js +424 -369
  141. package/dist_app/platform.js.map +1 -1
  142. package/dist_app/preload.js +2 -2
  143. package/dist_app/preload.js.map +1 -1
  144. package/dist_app/sn/AnalyzeTagArg.d.ts +1 -1
  145. package/dist_app/sn/AnalyzeTagArg.d.ts.map +1 -1
  146. package/dist_app/sn/CmnInterface.d.ts +3 -1
  147. package/dist_app/sn/CmnInterface.d.ts.map +1 -1
  148. package/dist_app/sn/CmnLib.d.ts.map +1 -1
  149. package/dist_app/sn/CmnTween.d.ts +3 -3
  150. package/dist_app/sn/CmnTween.d.ts.map +1 -1
  151. package/dist_app/sn/EventMng.d.ts.map +1 -1
  152. package/dist_app/sn/Grammar.d.ts +1 -1
  153. package/dist_app/sn/Grammar.d.ts.map +1 -1
  154. package/dist_app/sn/PropParser.d.ts +2 -2
  155. package/dist_app/sn/PropParser.d.ts.map +1 -1
  156. package/dist_app/sn/Reading.d.ts +6 -0
  157. package/dist_app/sn/Reading.d.ts.map +1 -1
  158. package/dist_app/sn/ScriptIterator.d.ts.map +1 -1
  159. package/dist_app/sn/SndBuf.d.ts +27 -16
  160. package/dist_app/sn/SndBuf.d.ts.map +1 -1
  161. package/dist_app/sn/SoundMng.d.ts +4 -1
  162. package/dist_app/sn/SoundMng.d.ts.map +1 -1
  163. package/dist_app/sn/SysBase.d.ts.map +1 -1
  164. package/dist_app/sn/TxtStage.d.ts +2 -1
  165. package/dist_app/sn/TxtStage.d.ts.map +1 -1
  166. package/dist_app/test/ValTest.d.ts +1 -1
  167. package/dist_app/test/ValTest.d.ts.map +1 -1
  168. package/package.json +23 -13
  169. package/dist/CmnTween.js +0 -1005
  170. package/dist/CmnTween.js.map +0 -1
  171. package/dist/web2.js +0 -21644
  172. package/dist/web2.js.map +0 -1
  173. package/dist_app/CmnTween.js +0 -1005
  174. package/dist_app/CmnTween.js.map +0 -1
  175. package/dist_app/app2.js +0 -18547
  176. package/dist_app/app2.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Variable.js","sources":["../src/sn/Areas.ts","../src/sn/Variable.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nexport type T_H_Areas = {[begin: string]: number};\n\n\nexport class Areas {\n\t#hAreas\t: T_H_Areas\t= {};\n\n\tclear() {this.#hAreas = {}}\n\tstatic\tfrom(new_val: T_H_Areas): Areas {\n\t\tconst ar = new Areas;\n\t\tar.#hAreas = {...new_val};\n\t\treturn ar;\n\t}\n\tval(): T_H_Areas {return {...this.#hAreas}}\n\n\tsearch(idx: number): boolean {\n\t\treturn Object.entries(this.#hAreas)\n\t\t.some(([begin, v])=> idx >= parseInt(begin) && idx <= v);\n\t}\n\n\trecord(idx: number): void {\n\t\tif (this.search(idx)) return;\n\n\t\tfor (const [begin, v] of Object.entries(this.#hAreas)) {\n\t\t\t// 領域末尾+1とマッチ\n\t\t\tif (v +1 === idx) {\n\t\t\t\tif (String(idx +1) in this.#hAreas) {\n\t\t\t\t\t// 二つの領域がマージできる場合\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tthis.#hAreas[begin] = this.#hAreas[idx +1]!;\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\t\t\tdelete this.#hAreas[idx +1]\n\t\t\t\t}\n\t\t\t\telse this.#hAreas[begin] = idx;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// 領域先頭-1とマッチ\n\t\tif (String(idx +1) in this.#hAreas) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tthis.#hAreas[idx] = this.#hAreas[idx +1]!;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hAreas[idx +1];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#hAreas[idx] = idx;\n\t}\n\n\terase(idx: number): void {\n\t\tif (! this.search(idx)) return;\n\n\t\t// 領域先頭とマッチ\n\t\tif (String(idx) in this.#hAreas) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tif (this.#hAreas[idx]! > idx) this.#hAreas[idx +1] = this.#hAreas[idx]!;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hAreas[idx];\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const [begin, v] of Object.entries(this.#hAreas)) {\n\t\t\tif (idx < parseInt(begin) || v < idx) continue;\n\n\t\t\t// 領域末尾とマッチ\n\t\t\tif (this.#hAreas[begin] === idx) {\n\t\t\t\tthis.#hAreas[begin] = idx -1;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// 領域内とマッチ、二つの領域に分割\n\t\t\tthis.#hAreas[idx +1] = v;\n\t\t\tthis.#hAreas[begin] = idx -1;\n\t\t\treturn;\n\t\t}\n\t}\n\n\tget count(): number {return Object.keys(this.#hAreas).length}\t// 4tst\n\n\ttoString(): string {\n\t\tlet ret = '';\n\n\t\tfor (const k of Object.keys(this.#hAreas)\n\t\t.map(k=> parseInt(k))\n\t\t.sort((x, y)=> x-y)) {\n\t\t\tret += k === this.#hAreas[k]\n\t\t\t? ','+ String(k)\n\t\t\t: ','+ String(k) +'~'+ String(this.#hAreas[String(k)]);\n\t\t}\n\n\t\treturn ret;\t// 先頭に , が付いている。削除したいが、修正すると互換性に問題あり凍結\n\t}\n\n}\n","/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport {uint, int, argChk_Boolean, argChk_Num} from './CmnLib';\nimport {creCSArg, type T_H_VAL_MP} from './CallStack';\nimport type {TArg, T_HTag} from './Grammar';\nimport type {T_Variable, T_fncSetVal, T_ProcVal, T_SysBase, T_Data4Vari, T_Mark, T_FncHook, Scope, T_H_TMP_DATA, T_H_VAL_MARK, T_H_SYS_DATA, T_VAL_DATA_FNC, T_VAL_DATA, T_VAL_BSNU, T_H_SAVE_DATA} from './CmnInterface';\nimport {creSAVEDATA, creSYS_DATA, creTMP_DATA} from './CmnInterface';\nimport type {Config} from './Config';\nimport {Areas} from './Areas';\nimport {PropParser} from './PropParser';\nimport {ReadingState} from './Reading';\n\n\nexport class Variable implements T_Variable {\n\t#hSave\t\t: T_H_SAVE_DATA\t= creSAVEDATA();\n\t#hTmp\t\t: T_H_TMP_DATA\t= creTMP_DATA();\n\t#hScopes\t= {\n\t\tsys\t\t: {},\t// clearsysvarを呼ぶので\n\t\tsave\t: this.#hSave,\n\t\ttmp\t\t: this.#hTmp,\n\t\tmp\t\t: <T_H_VAL_MP>{},\n\t\tmark\t: <T_H_VAL_MARK>{},\n\t};\n\n\n\tconstructor(private readonly sys: T_SysBase, private readonly cfg: Config, hTag: T_HTag) {\n\t\t//\t変数操作\n\t\thTag.let\t\t\t= o=> this.#let(o);\t\t\t// 変数代入・演算\n\t\thTag.let_abs\t\t= o=> this.#let_abs(o);\t\t// 絶対値\n\t\thTag.let_char_at\t= o=> this.#let_char_at(o);\t// 文字列から一字取りだし\n\t\thTag.let_index_of\t= o=> this.#let_index_of(o);// 文字列で検索\n\t\thTag.let_length\t\t= o=> this.#let_length(o);\t// 文字列の長さ\n\t\t// let_mlはScriptIteratorにて定義\t\t\t\t// インラインテキスト代入\n\t\thTag.let_replace\t= o=> this.#let_replace(o);\t// 正規表現で置換\n\t\thTag.let_round\t\t= o=> this.#let_round(o);\t// 四捨五入\n\t\thTag.let_search\t\t= o=> this.#let_search(o);\t// 正規表現で検索\n\t\thTag.let_substr\t\t= o=> this.#let_substr(o);\t// 文字列から抜きだし\n\t\t// ほぼ瀬戸愛羅さんの「変数代入強化プラグイン」の取り込みです。ありがとうございます!\n\t\t// an時代・瀬戸愛羅さんより https://famibee.blog.fc2.com/blog-entry-267.html\n\n\t\t//\tデバッグ・その他\n\t\thTag.clearsysvar\t= ()=> this.#clearsysvar();\t// システム変数の全消去\n\t\thTag.clearvar\t\t= ()=> this.#clearvar();\t// ゲーム変数の全消去\n\t\thTag.dump_val\t\t= ()=> this.#dump_val();\t// 変数のダンプ\n\n\t\t// しおり\n\t\thTag.copybookmark\t= o=> this.#copybookmark(o);\t// しおりの複写\n\t\thTag.erasebookmark\t= o=> this.#erasebookmark(o);\t// しおりの消去\n\t\t//hTag.load\t\t\t// ScriptIterator.ts内で定義\t// しおりの読込\n\t\t//hTag.record_place\t// ScriptIterator.ts内で定義\t// セーブポイント指定\n\t\t//hTag.save\t\t\t// ScriptIterator.ts内で定義\t// しおりの保存\n\n\t\t// save:\n\t\tthis.defTmp('const.sn.bookmark.json', ()=> {\n\t\t\tconst a: TArg[] = [];\n\t\t\tfor (const [nm, mk] of Object.entries(this.#d4v.mark)) {\n\t\t\t\tconst o = {...mk.json};\n\t\t\t\to.place = uint(nm);\n\t\t\t\ta.push(o);\t// パスを searchPath() で展開してはいけない\n\t\t\t}\n\t\t\treturn JSON.stringify(a);\n\t\t});\n\n\t\t// tmp:\n\t\t/*\n\t\t\tthis.hTmp['const.Stage.supportsOrientationChange']\n\t\t\t\t= Stage.supportsOrientationChange;\n\t\t\tif (this.hTmp['const.Stage.supportsOrientationChange']) {\n\t\t\t\tthis.hTmp['const.Stage.orientation']\n\t\t\t\t\t= ()=> {return stage.orientation};\n\t\t\t\tthis.hTmp['const.Stage.deviceOrientation']\n\t\t\t\t\t= ()=> {return stage.deviceOrientation};\n\n\t\t\t\tconst lenSO:uint = stage.supportedOrientations.length;\n\t\t\t\tfor (let iSO:uint=0; iSO<lenSO; ++iSO) {\n\t\t\t\t\tthis.hTmp['const.Stage.supportedOrientations.'\n\t\t\t\t\t\t+ stage.supportedOrientations[iSO]\n\t\t\t\t\t] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t//\timport flash.display.StageOrientation;\n\t\t\t\tthis.hTmp['const.Stage.orientation'] =\n\t\t\t\tthis.hTmp['const.Stage.deviceOrientation'] =\n\t\t\t\t//\t\tStageOrientation.DEFAULT;\n\t\t\t\t\t'default';\n\t\t\t}\n\t\t*/\n\n\t\t// ・画面サイズ:screen.width ウインドウが表示されているディスプレイのサイズ\n\t\t//\t※ macOSなら【設定】-【ディスプレイ】-【使用形態】のイメージボタンにホバーすると出る数字と同じ\n// DebugMng.myTrace(`fn:Variable.ts 画面サイズ(${String(screen.width)} x ${String(screen.height)}) 利用可能領域(${String(screen.availWidth)} x ${String(screen.availHeight)})`, 'W');\n\n\t\t// prj.json\n\t\tthis.#hTmp['const.sn.config.window.width']\t= cfg.oCfg.window.width;\n\t\tthis.#hTmp['const.sn.config.window.height']\t= cfg.oCfg.window.height;\n\t\tthis.#hTmp['const.sn.config.book.title']\t= cfg.oCfg.book.title;\n\t\tthis.#hTmp['const.sn.config.book.version']\t= cfg.oCfg.book.version;\n\t}\n\n\n\t#d4v\t: T_Data4Vari\t= {\n\t\tsys\t\t: <T_H_SYS_DATA>{},\t// clearsysvarを呼ぶので\n\t\tmark\t: {},\n\t\tkidoku\t: {},\n\t};\n\t#hSys\t: T_H_SYS_DATA;\n\t#hAreaKidoku\t: {[fn: string]: Areas}\t= {};\n\t#callHook\t\t: T_FncHook;\n\tasync init() {return this.sys.initVal(this.#hTmp, data=> {\n\t\tthis.updateData(data);\n\n\t\tif (this.cfg.oCfg.debug.variable) this.#dbgVariable(this.sys);\n\t\telse this.flush = ()=> this.sys.flush();\n\t\tthis.flush();\n\n\t\tthis.#callHook = (type, o)=> this.sys.callHook(type, o);\n\t\tthis.sys.addHook((type, o)=> this.#hProcDbgRes[type]?.(type, o));\n\n\t\t// 初回の初期化と、v1.11.0 まで未初期化変数があった件の対策\n\t\tconst tm = int(this.getVal('sys:sn.tagCh.msecWait', -1));\n\t\tif (tm === -1) this.#clearsysvar(true);\n\n\t\tthis.#tagCh_doWait = Boolean(this.getVal('sys:sn.tagCh.doWait'));\n\t\tthis.#tagCh_doWait_Kidoku = Boolean(this.getVal('sys:sn.tagCh.doWait_Kidoku'));\n\t\tthis.#tagCh_msecWait = int(this.getVal('sys:sn.tagCh.msecWait'));\n\t\tthis.#tagCh_msecWait_Kidoku = int(this.getVal('sys:sn.tagCh.msecWait_Kidoku'));\n\n\t\tthis.#saPageLog();\n\t})}\n\n\t//MARK: SessionStorage で確認できるデバッグ機能\n\t#dbgVariable(sys: T_SysBase) {\n\t\tsessionStorage.clear();\n\t\tconst ns = this.cfg.headNs;\n\n\t\tthis.flush = () => {\n\t\t\tconst oSys = creSYS_DATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hSys)) {\n\t\t\t\tif (v instanceof Function) continue;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oSys)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'sys'] = JSON.stringify(oSys);\n\n\t\t\tconst oSave = creSAVEDATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hSave)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oSave)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'save'] = JSON.stringify(oSave);\n\n\t\t\tconst oTmp = creTMP_DATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hTmp)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oTmp)[k] = v instanceof Function ? v() : v;\n\t\t\t\t//TODO: 実行するのか無視するのか問題\n\t\t\t}\n\t\t\tsessionStorage[ns + 'tmp'] = JSON.stringify(oTmp);\n\n\t\t\tconst oMp = creCSArg();\n\t\t\tfor (const [k, v] of Object.entries(this.#hScopes.mp)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oMp)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'mp'] = JSON.stringify(oMp);\n\n\t\t\tconst oMark: T_H_VAL_MARK = {};\n\t\t\tfor (const [k, v] of Object.entries(this.#d4v.mark)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment\n\t\t\t\toMark[int(k)] = v instanceof Function ? v() : v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'mark'] = JSON.stringify(oMark);\n\n\t\t\tsessionStorage[ns + 'kidoku'] = structuredClone(this.#d4v.kidoku);\n\n\t\t\tsys.flush();\n\t\t};\n\t}\n\n\n\t#saPageLog() {ReadingState.playbackPage(\n\t\tString(this.getVal('sys:const.sn.aPageLog', '[]')),\n\t\tString(this.getVal('save:const.sn.styPaging', ReadingState.INI_STYPAGE)),\n\t)}\n\treadonly\t#hProcDbgRes\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t: {[type: string]: (type: string, o: any)=> void}\t= {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\tauth: (_, o)=> this.#set_data_break(o.hBreakpoint.aData),\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\tvar\t: (_,o)=> this.sys.send2Dbg(o.ri, {v: this.#hScopes[<Scope>o.scope] ?? {}}),\n\t\tset_var\t: (_, o)=> {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\ttry {this.#setVal(o.nm, o.val); this.sys.send2Dbg(o.ri, {})} catch { /* empty */ }\n\t\t},\n\t\tset_data_break\t: (_, o)=> {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tthis.#set_data_break(o.a);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tthis.sys.send2Dbg(o.ri, {});\n\t\t},\n\t\tdisconnect: _=> {Variable.#hSetEvent = {}},\n\t}\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t#set_data_break(a: any[]) {\t// o.a.length === 0 なら削除\n\t\tVariable.#hSetEvent = {};\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\tfor (const v of a) Variable.#hSetEvent[v.dataId] = 1;\n\t}\n\n\n\t//MARK: 外からのデータで保持データを更新\n\t//\t初期化時やインポートなどで使用\n\tupdateData(d4v: T_Data4Vari): void {\n\t\tthis.#d4v = d4v;\n\t\tthis.#hSys = this.#hScopes.sys = d4v.sys;\n\n\t\tthis.#hAreaKidoku = {};\n\t\tfor (const [fn, dk] of Object.entries(d4v.kidoku)) {\n\t\t\tthis.#hAreaKidoku[fn] = Areas.from(dk);\n\t\t}\n\t\t// this.flush();\t// saveKidoku() に任せる\n\t}\n\tflush\t= ()=> { /* empty */ };\n\n\tsetDoRecProc(fnc: (doRec: boolean)=> void) {this.#doRecProc = fnc}\n\t#doRecProc = (_doRec: boolean)=> { /* empty */ };\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\tdefTmp(name: string, fnc: T_ProcVal) {(<any>this.#hTmp)[name] = fnc}\n\n\tcloneMp() {return {...this.#hScopes.mp}}\n\tsetMp(mp: T_H_VAL_MP) {this.#hScopes.mp = mp}\n\n\tsetMark(place: number, mark: T_Mark) {\n\t\tthis.#d4v.mark[place] = mark;\n\t\tthis.flush();\n\t}\n\tgetMark(place: number) {\n\t\tconst mark = this.#d4v.mark[place];\n\t\tif (! mark) throw `place【${String(place)}】は存在しません`;\n\t\treturn mark;\n\t}\n\n\tcloneSave() {return {...this.#hScopes.save}}\n\tmark2save(mark: T_Mark) {\n\t\tthis.#hSave = this.#hScopes.save = {...mark.hSave};\n\t\tthis.#doRecLog\t= this.#hSave['sn.doRecLog'];\n\t}\n\n\n\t// 既読系\n\ttouchAreaKidoku(fn: string): Areas {\n\t\tconst ar = this.#hAreaKidoku[fn];\n\t\tif (ar) return ar;\n\n\t\tthis.#d4v.kidoku[fn] = {};\n\t\tconst ret = this.#hAreaKidoku[fn] = new Areas;\n\t\treturn ret;\n\t}\n\tgetAreaKidoku(fn: string): Areas {\n\t\tconst ar = this.#hAreaKidoku[fn];\n\t\tif (! ar) throw `hAreaKidoku${fn}】は存在しません`;\n\t\treturn ar;\n\t}\n\tsaveKidoku() {\n\t\tfor (const [fn, ak] of Object.entries(this.#hAreaKidoku)) {\n\t\t\tthis.#d4v.kidoku[fn] = ak.val();\n\t\t}\n\t\tthis.flush();\n\t}\n\n\n//\t// しおり\n\t// しおりの複写\n\t#copybookmark(hArg: TArg) {\n\t\tconst from = argChk_Num(hArg, 'from', NaN);\n\t\tconst to = argChk_Num(hArg, 'to', NaN);\n\t\t// const from = hArg.from;\n\t\t// const to = hArg.to;\n\t\tif (from === to) return false;\n\n\t\tconst f = this.#d4v.mark[from];\n\t\tif (! f) throw `from:${String(from)} のセーブデータは存在しません`;\n\t\tthis.setMark(to, {...f});\n\t\tthis.sys.copyBMFolder(from, to);\n\n\t\treturn false;\n\t}\n\n\t// しおりの消去\n\t#erasebookmark(hArg: TArg) {\n\t\tconst place = argChk_Num(hArg, 'place', NaN);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\tdelete this.#d4v.mark[place];\n\t\tthis.flush();\n\n\t\tthis.sys.eraseBMFolder(place);\n\n\t\treturn false;\n\t}\n\n\n//\t//\t変数操作\n\t// 変数代入・演算\n\t#let(hArg: TArg) {\n\t\tif (! hArg.name) throw 'nameは必須です';\n\n\t\t// 自動で数値型変換しない(≒文字変換する)機能\n\t\t// an時代・瀬戸愛羅さんより https://famibee.blog.fc2.com/blog-entry-108.html\n\t\tlet autocast = true;\n\t\tif (hArg.cast) {\n\t\t\tswitch (hArg.cast) {\n\t\t\tcase 'num':\n\t\t\t\targChk_Num(hArg, 'text', NaN);\n\t\t\t\tbreak;\n\t\t\tcase 'int':\n\t\t\t\thArg.text = String(int(argChk_Num(hArg, 'text', NaN)));\n\t\t\t\tbreak;\n\t\t\tcase 'uint':\n\t\t\t\thArg.text = String(uint(argChk_Num(hArg, 'text', NaN)));\n\t\t\t\tbreak;\n\t\t\tcase 'bool':\n\t\t\t\targChk_Boolean(hArg, 'text', false);\n\t\t\t\tbreak;\n\t\t\tcase 'str':\n\t\t\t\tautocast = false;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow 'cast【'+ hArg.cast +'】は未定義です';\n\t\t\t}\n\t\t}\n\n\t\tthis.#setVal(hArg.name, hArg.text, autocast);\n\n\t\treturn false;\n\t}\n\n\t// 絶対値\n\t#let_abs(hArg: TArg) {\n\t\tconst n = argChk_Num(hArg, 'text', 0);\n\t\t//hArg.text = Math.abs(n);\n\t\thArg.text = String(n < 0 ?-n :n);\n\t\t\t// JavaScriptのMath.abs()で絶対値を取得しないほうが良い理由 | iwb.jp https://iwb.jp/javascript-math-abs-deprecated/\n\t\t\t// 数値以外だとほとんどがNaNを返し、booleanは0や1を返しているため使い方によってはバグの原因になることがある。\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列から一字取りだし\n\t#let_char_at(hArg: TArg) {\n\t\thArg.text = (hArg.text ?? '').charAt(argChk_Num(hArg, 'pos', 0));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列で検索\n\t#let_index_of(hArg: TArg) {\n\t\tconst {val} = hArg;\n\t\tif (! val) throw 'valは必須です';\n\t\tconst start = argChk_Num(hArg, 'start', 0);\n\n\t\thArg.text = String((hArg.text ?? '').indexOf(val, start));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列の長さ\n\t#let_length(hArg: TArg) {\n\t\thArg.text = String((hArg.text ?? '').length);\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 正規表現で置換\n\t#let_replace(hArg: TArg) {\n\t\tif (! hArg.reg) throw 'regは必須です';\n\n\t\tconst {flags} = hArg;\n\t\tconst reg = ! flags\n\t\t\t? new RegExp(hArg.reg)\n\t\t\t: new RegExp(hArg.reg, flags);\n\t\thArg.text = (hArg.text ?? '').replace(reg, String(hArg.val));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 四捨五入\n\t#let_round(hArg: TArg) {\n\t\tconst n = argChk_Num(hArg, 'text', 0);\n\t\thArg.text = String(Math.round(n));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 正規表現で検索\n\t#let_search(hArg: TArg) {\n\t\tif (! hArg.reg) throw 'regは必須です';\n\n\t\tconst {flags} = hArg;\n\t\tconst reg = ! flags\n\t\t\t? new RegExp(hArg.reg)\n\t\t\t: new RegExp(hArg.reg, flags);\n\t\thArg.text = String((hArg.text ?? '').search(reg));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列から抜きだし\n\t#let_substr(hArg: TArg) {\n\t\tconst i = argChk_Num(hArg, 'pos', 0);\n\t\thArg.text = hArg.len !== 'all'\n\t\t\t? (hArg.text ?? '').slice(i, i +int(argChk_Num(hArg, 'len', 1)))\n\t\t\t: (hArg.text ?? '').slice(i);\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\n//\t// デバッグ・その他\n\t// システム変数の全消去\n\t#clearsysvar(init = false) {\n\t\tconst sys = this.#hSys = this.#hScopes.sys = this.#d4v.sys = creSYS_DATA();\n\n\t\tconst is_nw = typeof process !== 'undefined';\n\t\tif (is_nw) {\n\t\t//\t//\tthis.setVal_Sub('sys:const.sn.window.x', stage.nativeWindow.x);\n\t\t//\t//\tthis.setVal_Sub('sys:const.sn.window.y', stage.nativeWindow.y);\n\t\t\t//NOTE: これは??\n\t\t}\n\t\telse {\n\t\t\tthis.setVal_Nochk('sys', 'const.sn.window.x', 0);\n\t\t\tthis.setVal_Nochk('sys', 'const.sn.window.y', 0);\n\t\t}\n\n\t\t// 文字表示Wait時間\n\t\tthis.setVal_Nochk('sys', 'sn.tagCh.msecWait', this.cfg.oCfg.init.tagch_msecwait);\n\t\tthis.setVal_Nochk('sys', 'sn.tagCh.msecWait_Kidoku', this.cfg.oCfg.init.tagch_msecwait);\n\n\t\t// 自動読みすすみモード時の改ページ時のウェイト\n\t\t//\t//\trunFirst_sys_an_auto_msecPageWait('sn.auto.msecPageWait', '');\n\t\tthis.setVal_Nochk('sys', 'sn.auto.msecPageWait', argChk_Num(sys, 'sn.auto.msecPageWait', this.cfg.oCfg.init.auto_msecpagewait));\n\t\tthis.setVal_Nochk('sys', 'sn.auto.msecPageWait_Kidoku', argChk_Num(sys, 'sn.auto.msecPageWait', this.cfg.oCfg.init.auto_msecpagewait));\n\n\t\t//\tSoundMixer.soundTransform = new SoundTransform(\n\t\t//\t\t(sys['flash.media.SoundMixer.soundTransform.volume'] = 1)\n\t\t//\t);\n\n\t\tfor (const ar of Object.values(this.#hAreaKidoku)) ar.clear();\n\t\t\t// this.#data.kidoku へのコピーは saveKidoku() に任せる\n\n\t\tthis.#hScopes.mark = this.#d4v.mark = {};\n\n\t\tif (! init) this.#saPageLog();\n\n\n\t\tthis.flush();\n\n\t\treturn false;\n\t}\n\n\t// ゲーム変数の全消去\n\t#clearvar() {\n\t\tconst mesLayer\t: string = this.#hSave['const.sn.mesLayer'];\n\t\tconst doRecLog\t: boolean= this.#hSave['sn.doRecLog'];\n\t\tconst sLog\t\t: string = this.#hSave['const.sn.sLog'];\n\t\tconst styPaging\t: string = this.#hSave['const.sn.styPaging'];\n\n\t\tthis.#hSave = this.#hScopes.save = creSAVEDATA();\n\n\t\tthis.setVal_Nochk('save', 'const.sn.mesLayer', mesLayer);\n\t\tthis.setVal_Nochk('save', 'sn.doRecLog', doRecLog);\n\t\tthis.setVal_Nochk('save', 'const.sn.sLog', sLog);\n\t\tthis.setVal_Nochk('save', 'const.sn.styPaging', styPaging);\n\n\t\treturn false;\n\t}\n\n\t#setVal(arg_name: string, val: T_VAL_BSNU, autocast = true) {\n\t\tif (! arg_name) throw '[変数に値セット] nameは必須です';\n\t\tif (val === undefined) throw '[変数に値セット] textは必須です(空文字はOK)';\n\n\t\tconst o = PropParser.getValName(arg_name);\n\t\tif (! o) throw `[変数参照] name(${arg_name})が変数名として異常です`;\n\n\t\tconst {scope, name} = o;\n\t\tconst hScope = this.#hScopes[scope];\n\t\tif (name.startsWith('const.') && name in hScope) {\n\t\t\tthrow `[変数に値セット] 変数【${name}】は書き換え不可です`;\n\t\t}\n\n\t\tthis.setVal_Nochk(scope, name, val, autocast);\n\t}\n\tsetVal_Nochk(scope: Scope, nm: string, ival: T_VAL_BSNU, autocast = false) {\n\t\tconst hScope = this.#hScopes[scope];\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst new_v = autocast ?this.#castAuto(ival) : ival;\n\n\t\tconst fullnm = scope +':'+ nm;\n\t\tif (fullnm in Variable.#hSetEvent) {\n\t\t\tconst old_v = hScope[<keyof typeof hScope>nm];\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif (old_v != new_v) this.#callHook('data_break', {\n\t\t\t\tdataId: fullnm,\n\t\t\t\told_v,\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\tnew_v,\n\t\t\t});\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t(<any>hScope)[nm] = new_v;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tthis.#hSetValTrg[fullnm]?.(nm, new_v ?? '');\n\n\t\t// if (scope === 'sys') this.flush()\n\t\t\t// 厳密にはここですべきだが、パフォーマンスに問題があるので\n\t\t\t// クリック待ちを期待できるwait、waitclick、s、l、pタグで\n\t\t\t// saveKidoku()をコール。(中で保存しているのでついでに)\n\n\t\t//console.log(`\\tlet s[${scope}] n[${nm}]='${new_v}' trg[${(trg)}]`);\n\t}\n\t// reload 再生成 Main に受け渡すため static\n\tstatic\t#hSetEvent: {[fullnm: string]: 1} = {};\n\n\n\t// readonly getVal_save = (arg_name: string, def?: number | string)=> {\n\t// \tif (! arg_name) throw '[変数参照] nameは必須です';\n\n\tgetVal(arg_name: string, def?: number | string, touch = false): T_VAL_DATA {\n\t\tif (! arg_name) throw '[変数参照] nameは必須です';\n\n\t\tconst o = PropParser.getValName(arg_name);\n\t\tif (! o) throw '[変数参照] name('+ arg_name +')が変数名として異常です';\n\n\t\tconst {scope, name, at} = o;\n\t\tconst hScope = this.#hScopes[scope];\n\n\t\tlet val = <T_VAL_DATA_FNC>hScope[<keyof typeof hScope>name];\n// console.log(`getVal arg_name=${arg_name}= nm=${name}= A:${String(! (name in hScope))} val:${String(val)}`);\n\t\tif (! (name in hScope)) {\t// 存在しない変数名の場合、刻んで調べていく\n\t\t\tval = def;\n\t\t\tif (touch) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n\t\t\t\t(<any>hScope)[name] = def;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\t\t\treturn at === '@str' ?val :this.#castAuto(val);\n\t\t\t}\n\n\t\t\tlet n = '';\n\t\t\tconst aNm = name.split('.');\n\t\t\tconst len = aNm.length;\n\t\t\tfor (let i=0; i<len; ++i, n += '.') {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n\t\t\t\tn += aNm[i];\n\t\t\t\tif (! (n in hScope)) continue;\t// 存在しない変数名の場合、延ばす\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\tlet v = JSON.parse(hScope[<keyof typeof hScope>n]);\n\t\t\t\tif (Object.prototype.toString.call(v) !== '[object Object]') {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\tif (i +1 === len) {val = v; break}\t// 最下層ならそのまま返す\n\t\t\t\t\tcontinue;\n\t\t\t\t\t\t// 短い名前でヒットしたが、JSONでもなく\n\t\t\t\t\t\t// 変数名にはまだ続きがあるので探索続行\n\t\t\t\t}\n\n\t\t\t\tlet j = i;\t// JSONオブジェクトの階層を降りつつ探索\n\t\t\t\twhile (++j < len) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tconst nj = aNm[j]!;\n\t\t\t\t\tif (! (nj in v)) {val = def; break}\n\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\tv = v[nj];\n\t\t\t\t\tif (Object.prototype.toString.call(v) !== '[object Object]'\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\t\t|| j +1 === len) {val = v; break}// 最下層ならそのまま返す\n\t\t\t\t}\n\n\t\t\t\tif (val instanceof Object) val = JSON.stringify(val);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (val instanceof Function) val = val();\n// console.log(`\\tget [${arg_name}] -> s[${scope ?? 'tmp'}'] a[${at ?? ''}] n[${name}'] ret['${String(val)}']('${typeof val}')'`);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn at === '@str' ?val :this.#castAuto(val);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t#castAuto(val: T_VAL_DATA): any {\n\t\tconst s_val = <string>val;\n\t\tif (s_val === 'true') return true;\n\t\tif (s_val === 'false') return false;\n\t\tif (s_val === 'null') return null;\n\t\tif (s_val === 'undefined') return undefined;\n\t\tif (this.#REG_NUMERICLITERAL.test(s_val)) return parseFloat(s_val);\n\n\t\treturn val;\n\t}\n\t#REG_NUMERICLITERAL\t= /^-?[\\d.]+$/;\n\n\n\t// 変数のダンプ\n\t#dump_val() {\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tconst val: any = {tmp:{}, sys:{}, save:{}, mp:{}};\n\t\tfor (const scope in val) {\n\t\t\tconst hVal = this.#hScopes[<Scope>scope];\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\tconst hRet = val[scope];\n\t\t\tfor (const [key, v] of Object.entries(hVal)) {\n\t\t\t\tif (v instanceof Function) continue;\n\n\t\t\t\t// // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\t// hRet[key] = v instanceof Function ?v() :v;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\thRet[key] = v;\n\t\t\t\t\t//TODO: 実行するのか無視するのか問題\n\t\t\t}\n\t\t}\n\t\tconsole.info('🥟 [dump_val]', val);\n\n\t\treturn false;\n\t}\n\n\t#doRecLog\t= false;\n\tdoRecLog() {return this.#doRecLog}\n\n\n\t#tagCh_doWait = false;\n\tget tagCh_doWait() {return this.#tagCh_doWait;}\n\t#tagCh_doWait_Kidoku = false;\n\tget tagCh_doWait_Kidoku() {return this.#tagCh_doWait_Kidoku;}\n\t#tagCh_msecWait\t\t= 0;\n\tget tagCh_msecWait() {return this.#tagCh_msecWait;}\n\t#tagCh_msecWait_Kidoku= 0;\n\tget tagCh_msecWait_Kidoku() {return this.#tagCh_msecWait_Kidoku;}\n\n\t#hSetValTrg\t: {[name: string]: T_fncSetVal}\t= {\n\t\t// sys\n\t\t'sys:sn.tagCh.doWait'\t\t\t: name=> {\n\t\t\tthis.#tagCh_doWait =\n\t\t\tthis.#runFirst_Bool_hSysVal_true(name);\n\t\t},\n\t\t'sys:sn.tagCh.doWait_Kidoku'\t: name=> {\n\t\t\tthis.#tagCh_doWait_Kidoku =\n\t\t\tthis.#runFirst_Bool_hSysVal_true(name);\n\t\t},\n\t\t'sys:sn.tagCh.msecWait'\t\t\t: name=> {\n\t\t\tthis.#tagCh_msecWait =\n\t\t\tthis.#runFirst_sys_an_tagCh_msecWait(name);\n\t\t},\n\t\t'sys:sn.tagCh.msecWait_Kidoku'\t: name=> {\n\t\t\tthis.#tagCh_msecWait_Kidoku =\n\t\t\tthis.#runFirst_sys_an_tagCh_msecWait_Kidoku(name);\n\t\t},\n\t\t'sys:sn.tagCh.canskip'\t\t\t: name=> this.#runFirst_Bool_hSysVal_true(name),\n\n\t\t'sys:sn.auto.msecPageWait'\t\t\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecPageWait(name),\n\t\t'sys:sn.auto.msecPageWait_Kidoku'\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecPageWait(name),\n\t\t'sys:sn.auto.msecLineWait'\t\t\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecLineWait(name),\n\t\t'sys:sn.auto.msecLineWait_Kidoku'\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecLineWait(name),\n\n\t\t// save\n\t\t'save:sn.doRecLog'\t\t: name=> {\n\t\t\tthis.#doRecProc(\n\t\t\t\tthis.#doRecLog = this.#runFirst_Bool_hSaveVal_true(name)\n\t\t\t);\n\t\t},\n\t\t'save:sn.userFnTail'\t: (_name, ival)=> {\n\t\t\tconst val = String(ival);\n\t\t\tif (val.includes('@')) throw 'この変数では文字「@」は禁止です';\n\t\t\tthis.cfg.userFnTail = val;\n\t\t},\n\n\t\t// tmp\n\t\t'tmp:flash.desktop.NativeApplication.nativeApplication.systemIdleMode'\t:\n\t\t\t()=> {\n\t\t\t//\tNativeApplication.nativeApplication.systemIdleMode = val;\n\t\t\t}\n\t\t,\n\t};\n\tdefValTrg(name: string, fnc: T_fncSetVal) {this.#hSetValTrg[name] = fnc}\n\treadonly\t#runFirst_Bool_hSysVal_true = (name: string)=> argChk_Boolean(this.#hSys, name, true);\n\treadonly\t#runFirst_sys_an_tagCh_msecWait = (name: string)=> argChk_Num(this.#hSys, name, 10);\n\treadonly\t#runFirst_sys_an_tagCh_msecWait_Kidoku = (name: string)=> argChk_Num(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tthis.#hSys, name, this.cfg.oCfg.init.tagch_msecwait ?? 10\n\t);\n\treadonly\t#runFirst_sys_an_auto_msecPageWait = (name: string)=> argChk_Num(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tthis.#hSys, name, this.cfg.oCfg.init.auto_msecpagewait ?? 3500\n\t);\n\treadonly\t#runFirst_sys_an_auto_msecLineWait = (name: string)=> argChk_Num(this.#hSys, name, 500);\n\n\t#runFirst_Bool_hSaveVal_true(name: string) {\n\t\treturn argChk_Boolean(this.#hSave, name, true);\n\t}\n\n}\n"],"names":["Areas","#hAreas","new_val","ar","idx","begin","v","ret","k","x","y","Variable","sys","cfg","hTag","o","#let","#let_abs","#let_char_at","#let_index_of","#let_length","#let_replace","#let_round","#let_search","#let_substr","#clearsysvar","#clearvar","#dump_val","#copybookmark","#erasebookmark","a","nm","mk","#d4v","uint","#hTmp","#hSave","creSAVEDATA","creTMP_DATA","#hScopes","#hSys","#hAreaKidoku","#callHook","data","#dbgVariable","type","#hProcDbgRes","int","#tagCh_doWait","#tagCh_doWait_Kidoku","#tagCh_msecWait","#tagCh_msecWait_Kidoku","#saPageLog","ns","oSys","creSYS_DATA","oSave","oTmp","oMp","creCSArg","oMark","ReadingState","_","#set_data_break","#setVal","#hSetEvent","d4v","fn","dk","fnc","#doRecProc","_doRec","name","mp","place","mark","#doRecLog","ak","hArg","from","argChk_Num","to","f","autocast","argChk_Boolean","n","val","start","flags","reg","i","init","mesLayer","doRecLog","sLog","styPaging","arg_name","PropParser","scope","hScope","ival","new_v","#castAuto","fullnm","old_v","#hSetValTrg","def","touch","at","aNm","len","j","nj","s_val","#REG_NUMERICLITERAL","hVal","hRet","key","#runFirst_Bool_hSysVal_true","#runFirst_sys_an_tagCh_msecWait","#runFirst_sys_an_tagCh_msecWait_Kidoku","#runFirst_sys_an_auto_msecPageWait","#runFirst_sys_an_auto_msecLineWait","#runFirst_Bool_hSaveVal_true","_name"],"mappings":";;;;AAUO,MAAMA,EAAM;AAAA,EAClBC,KAAsB,CAAA;AAAA,EAEtB,QAAQ;AAAC,SAAKA,KAAU,CAAA;AAAA,EAAE;AAAA,EAC1B,OAAO,KAAKC,GAA2B;AACtC,UAAMC,IAAK,IAAIH,EAAA;AACf,WAAAG,EAAGF,KAAU,EAAC,GAAGC,EAAA,GACVC;AAAA,EACR;AAAA,EACA,MAAiB;AAAC,WAAO,EAAC,GAAG,KAAKF,GAAA;AAAA,EAAQ;AAAA,EAE1C,OAAOG,GAAsB;AAC5B,WAAO,OAAO,QAAQ,KAAKH,EAAO,EACjC,KAAK,CAAC,CAACI,GAAOC,CAAC,MAAKF,KAAO,SAASC,CAAK,KAAKD,KAAOE,CAAC;AAAA,EACxD;AAAA,EAEA,OAAOF,GAAmB;AACzB,QAAI,MAAK,OAAOA,CAAG,GAEnB;AAAA,iBAAW,CAACC,GAAOC,CAAC,KAAK,OAAO,QAAQ,KAAKL,EAAO;AAEnD,YAAIK,IAAG,MAAMF,GAAK;AACjB,UAAI,OAAOA,IAAK,CAAC,KAAK,KAAKH,MAG1B,KAAKA,GAAQI,CAAK,IAAI,KAAKJ,GAAQG,IAAK,CAAC,GAEzC,OAAO,KAAKH,GAAQG,IAAK,CAAC,KAEtB,KAAKH,GAAQI,CAAK,IAAID;AAC3B;AAAA,QACD;AAID,UAAI,OAAOA,IAAK,CAAC,KAAK,KAAKH,IAAS;AAEnC,aAAKA,GAAQG,CAAG,IAAI,KAAKH,GAAQG,IAAK,CAAC,GAEvC,OAAO,KAAKH,GAAQG,IAAK,CAAC;AAC1B;AAAA,MACD;AAEA,WAAKH,GAAQG,CAAG,IAAIA;AAAA;AAAA,EACrB;AAAA,EAEA,MAAMA,GAAmB;AACxB,QAAM,KAAK,OAAOA,CAAG,GAGrB;AAAA,UAAI,OAAOA,CAAG,KAAK,KAAKH,IAAS;AAEhC,QAAI,KAAKA,GAAQG,CAAG,IAAKA,MAAK,KAAKH,GAAQG,IAAK,CAAC,IAAI,KAAKH,GAAQG,CAAG,IAErE,OAAO,KAAKH,GAAQG,CAAG;AACvB;AAAA,MACD;AAEA,iBAAW,CAACC,GAAOC,CAAC,KAAK,OAAO,QAAQ,KAAKL,EAAO;AACnD,YAAI,EAAAG,IAAM,SAASC,CAAK,KAAKC,IAAIF,IAGjC;AAAA,cAAI,KAAKH,GAAQI,CAAK,MAAMD,GAAK;AAChC,iBAAKH,GAAQI,CAAK,IAAID,IAAK;AAC3B;AAAA,UACD;AAGA,eAAKH,GAAQG,IAAK,CAAC,IAAIE,GACvB,KAAKL,GAAQI,CAAK,IAAID,IAAK;AAC3B;AAAA;AAAA;AAAA,EAEF;AAAA,EAEA,IAAI,QAAgB;AAAC,WAAO,OAAO,KAAK,KAAKH,EAAO,EAAE;AAAA,EAAM;AAAA;AAAA,EAE5D,WAAmB;AAClB,QAAIM,IAAM;AAEV,eAAWC,KAAK,OAAO,KAAK,KAAKP,EAAO,EACvC,IAAI,CAAAO,MAAI,SAASA,CAAC,CAAC,EACnB,KAAK,CAACC,GAAGC,MAAKD,IAAEC,CAAC;AACjB,MAAAH,KAAOC,MAAM,KAAKP,GAAQO,CAAC,IACzB,MAAK,OAAOA,CAAC,IACb,MAAK,OAAOA,CAAC,IAAG,MAAK,OAAO,KAAKP,GAAQ,OAAOO,CAAC,CAAC,CAAC;AAGtD,WAAOD;AAAA,EACR;AAED;AClFO,MAAMI,EAA+B;AAAA,EAY3C,YAA6BC,GAAiCC,GAAaC,GAAc;AAA5D,SAAA,MAAAF,GAAiC,KAAA,MAAAC,GAE7DC,EAAK,MAAQ,CAAAC,MAAI,KAAKC,GAAKD,CAAC,GAC5BD,EAAK,UAAW,CAAAC,MAAI,KAAKE,GAASF,CAAC,GACnCD,EAAK,cAAc,CAAAC,MAAI,KAAKG,GAAaH,CAAC,GAC1CD,EAAK,eAAe,CAAAC,MAAI,KAAKI,GAAcJ,CAAC,GAC5CD,EAAK,aAAc,CAAAC,MAAI,KAAKK,GAAYL,CAAC,GAEzCD,EAAK,cAAc,CAAAC,MAAI,KAAKM,GAAaN,CAAC,GAC1CD,EAAK,YAAa,CAAAC,MAAI,KAAKO,GAAWP,CAAC,GACvCD,EAAK,aAAc,CAAAC,MAAI,KAAKQ,GAAYR,CAAC,GACzCD,EAAK,aAAc,CAAAC,MAAI,KAAKS,GAAYT,CAAC,GAKzCD,EAAK,cAAc,MAAK,KAAKW,GAAA,GAC7BX,EAAK,WAAY,MAAK,KAAKY,GAAA,GAC3BZ,EAAK,WAAY,MAAK,KAAKa,GAAA,GAG3Bb,EAAK,eAAe,CAAAC,MAAI,KAAKa,GAAcb,CAAC,GAC5CD,EAAK,gBAAgB,CAAAC,MAAI,KAAKc,GAAed,CAAC,GAM9C,KAAK,OAAO,0BAA0B,MAAK;AAC1C,YAAMe,IAAY,CAAA;AAClB,iBAAW,CAACC,GAAIC,CAAE,KAAK,OAAO,QAAQ,KAAKC,GAAK,IAAI,GAAG;AACtD,cAAMlB,IAAI,EAAC,GAAGiB,EAAG,KAAA;AACjB,QAAAjB,EAAE,QAAQmB,EAAKH,CAAE,GACjBD,EAAE,KAAKf,CAAC;AAAA,MACT;AACA,aAAO,KAAK,UAAUe,CAAC;AAAA,IACxB,CAAC,GAiCD,KAAKK,GAAM,8BAA8B,IAAItB,EAAI,KAAK,OAAO,OAC7D,KAAKsB,GAAM,+BAA+B,IAAItB,EAAI,KAAK,OAAO,QAC9D,KAAKsB,GAAM,4BAA4B,IAAItB,EAAI,KAAK,KAAK,OACzD,KAAKsB,GAAM,8BAA8B,IAAItB,EAAI,KAAK,KAAK;AAAA,EAC5D;AAAA,EApFAuB,KAA0BC,EAAA;AAAA,EAC1BF,KAAwBG,EAAA;AAAA,EACxBC,KAAW;AAAA,IACV,KAAO,CAAA;AAAA;AAAA,IACP,MAAO,KAAKH;AAAA,IACZ,KAAO,KAAKD;AAAA,IACZ,IAAkB,CAAA;AAAA,IAClB,MAAqB,CAAA;AAAA,EAAC;AAAA,EAgFvBF,KAAqB;AAAA,IACpB,KAAqB,CAAA;AAAA;AAAA,IACrB,MAAO,CAAA;AAAA,IACP,QAAS,CAAA;AAAA,EAAC;AAAA,EAEXO;AAAA,EACAC,KAAuC,CAAA;AAAA,EACvCC;AAAA,EACA,MAAM,OAAO;AAAC,WAAO,KAAK,IAAI,QAAQ,KAAKP,IAAO,CAAAQ,MAAO;AACxD,WAAK,WAAWA,CAAI,GAEhB,KAAK,IAAI,KAAK,MAAM,WAAU,KAAKC,GAAa,KAAK,GAAG,IACvD,KAAK,QAAQ,MAAK,KAAK,IAAI,MAAA,GAChC,KAAK,MAAA,GAEL,KAAKF,KAAY,CAACG,GAAM9B,MAAK,KAAK,IAAI,SAAS8B,GAAM9B,CAAC,GACtD,KAAK,IAAI,QAAQ,CAAC8B,GAAM9B,MAAK,KAAK+B,GAAaD,CAAI,IAAIA,GAAM9B,CAAC,CAAC,GAGpDgC,EAAI,KAAK,OAAO,yBAAyB,EAAE,CAAC,MAC5C,MAAI,KAAKtB,GAAa,EAAI,GAErC,KAAKuB,KAAgB,EAAQ,KAAK,OAAO,qBAAqB,GAC9D,KAAKC,KAAuB,EAAQ,KAAK,OAAO,4BAA4B,GAC5E,KAAKC,KAAkBH,EAAI,KAAK,OAAO,uBAAuB,CAAC,GAC/D,KAAKI,KAAyBJ,EAAI,KAAK,OAAO,8BAA8B,CAAC,GAE7E,KAAKK,GAAA;AAAA,IACN,CAAC;AAAA,EAAC;AAAA;AAAA,EAGFR,GAAahC,GAAgB;AAC5B,mBAAe,MAAA;AACf,UAAMyC,IAAK,KAAK,IAAI;AAEpB,SAAK,QAAQ,MAAM;AAClB,YAAMC,IAAOC,EAAA;AACb,iBAAW,CAAC/C,GAAGF,CAAC,KAAK,OAAO,QAAQ,KAAKkC,EAAK;AAC7C,QAAIlC,aAAa,aAEXgD,EAAM9C,CAAC,IAAIF;AAElB,qBAAe+C,IAAK,KAAK,IAAI,KAAK,UAAUC,CAAI;AAEhD,YAAME,IAAQnB,EAAA;AACd,iBAAW,CAAC7B,GAAGF,CAAC,KAAK,OAAO,QAAQ,KAAK8B,EAAM;AAExC,QAAAoB,EAAOhD,CAAC,IAAIF;AAEnB,qBAAe+C,IAAK,MAAM,IAAI,KAAK,UAAUG,CAAK;AAElD,YAAMC,IAAOnB,EAAA;AACb,iBAAW,CAAC9B,GAAGF,CAAC,KAAK,OAAO,QAAQ,KAAK6B,EAAK;AAEvC,QAAAsB,EAAMjD,CAAC,IAAIF,aAAa,WAAWA,MAAMA;AAGhD,qBAAe+C,IAAK,KAAK,IAAI,KAAK,UAAUI,CAAI;AAEhD,YAAMC,IAAMC,EAAA;AACZ,iBAAW,CAACnD,GAAGF,CAAC,KAAK,OAAO,QAAQ,KAAKiC,GAAS,EAAE;AAE7C,QAAAmB,EAAKlD,CAAC,IAAIF;AAEjB,qBAAe+C,IAAK,IAAI,IAAI,KAAK,UAAUK,CAAG;AAE9C,YAAME,IAAsB,CAAA;AAC5B,iBAAW,CAACpD,GAAGF,CAAC,KAAK,OAAO,QAAQ,KAAK2B,GAAK,IAAI;AAEjD,QAAA2B,EAAMb,EAAIvC,CAAC,CAAC,IAAIF,aAAa,WAAWA,MAAMA;AAE/C,qBAAe+C,IAAK,MAAM,IAAI,KAAK,UAAUO,CAAK,GAElD,eAAeP,IAAK,QAAQ,IAAI,gBAAgB,KAAKpB,GAAK,MAAM,GAEhErB,EAAI,MAAA;AAAA,IACL;AAAA,EACD;AAAA,EAGAwC,KAAa;AAAC,IAAAS,EAAa;AAAA,MAC1B,OAAO,KAAK,OAAO,yBAAyB,IAAI,CAAC;AAAA,MACjD,OAAO,KAAK,OAAO,2BAA2BA,EAAa,WAAW,CAAC;AAAA,IAAA;AAAA,EACvE;AAAA,EACQf,KAE2C;AAAA;AAAA,IAEnD,MAAM,CAACgB,GAAG/C,MAAK,KAAKgD,GAAgBhD,EAAE,YAAY,KAAK;AAAA;AAAA,IAEvD,KAAM,CAAC+C,GAAE/C,MAAK,KAAK,IAAI,SAASA,EAAE,IAAI,EAAC,GAAG,KAAKwB,GAAgBxB,EAAE,KAAK,KAAK,CAAA,GAAG;AAAA,IAC9E,SAAU,CAAC+C,GAAG/C,MAAK;AAElB,UAAI;AAAC,aAAKiD,GAAQjD,EAAE,IAAIA,EAAE,GAAG,GAAG,KAAK,IAAI,SAASA,EAAE,IAAI,CAAA,CAAE;AAAA,MAAC,QAAQ;AAAA,MAAc;AAAA,IAClF;AAAA,IACA,gBAAiB,CAAC+C,GAAG/C,MAAK;AAEzB,WAAKgD,GAAgBhD,EAAE,CAAC,GAExB,KAAK,IAAI,SAASA,EAAE,IAAI,CAAA,CAAE;AAAA,IAC3B;AAAA,IACA,YAAY,CAAA+C,MAAI;AAAC,MAAAnD,EAASsD,KAAa,CAAA;AAAA,IAAE;AAAA,EAAA;AAAA;AAAA,EAG1CF,GAAgBjC,GAAU;AACzB,IAAAnB,EAASsD,KAAa,CAAA;AAEtB,eAAW3D,KAAKwB,EAAG,CAAAnB,EAASsD,GAAW3D,EAAE,MAAM,IAAI;AAAA,EACpD;AAAA;AAAA;AAAA,EAKA,WAAW4D,GAAwB;AAClC,SAAKjC,KAAOiC,GACZ,KAAK1B,KAAQ,KAAKD,GAAS,MAAM2B,EAAI,KAErC,KAAKzB,KAAe,CAAA;AACpB,eAAW,CAAC0B,GAAIC,CAAE,KAAK,OAAO,QAAQF,EAAI,MAAM;AAC/C,WAAKzB,GAAa0B,CAAE,IAAInE,EAAM,KAAKoE,CAAE;AAAA,EAGvC;AAAA,EACA,QAAQ,MAAK;AAAA,EAAc;AAAA,EAE3B,aAAaC,GAA8B;AAAC,SAAKC,KAAaD;AAAA,EAAG;AAAA,EACjEC,KAAa,CAACC,MAAmB;AAAA,EAAc;AAAA;AAAA,EAG/C,OAAOC,GAAcH,GAAgB;AAAO,SAAKlC,GAAOqC,CAAI,IAAIH;AAAA,EAAG;AAAA,EAEnE,UAAU;AAAC,WAAO,EAAC,GAAG,KAAK9B,GAAS,GAAA;AAAA,EAAG;AAAA,EACvC,MAAMkC,GAAgB;AAAC,SAAKlC,GAAS,KAAKkC;AAAA,EAAE;AAAA,EAE5C,QAAQC,GAAeC,GAAc;AACpC,SAAK1C,GAAK,KAAKyC,CAAK,IAAIC,GACxB,KAAK,MAAA;AAAA,EACN;AAAA,EACA,QAAQD,GAAe;AACtB,UAAMC,IAAO,KAAK1C,GAAK,KAAKyC,CAAK;AACjC,QAAI,CAAEC,EAAM,OAAM,SAAS,OAAOD,CAAK,CAAC;AACxC,WAAOC;AAAA,EACR;AAAA,EAEA,YAAY;AAAC,WAAO,EAAC,GAAG,KAAKpC,GAAS,KAAA;AAAA,EAAK;AAAA,EAC3C,UAAUoC,GAAc;AACvB,SAAKvC,KAAS,KAAKG,GAAS,OAAO,EAAC,GAAGoC,EAAK,MAAA,GAC5C,KAAKC,KAAY,KAAKxC,GAAO,aAAa;AAAA,EAC3C;AAAA;AAAA,EAIA,gBAAgB+B,GAAmB;AAClC,UAAMhE,IAAK,KAAKsC,GAAa0B,CAAE;AAC/B,WAAIhE,MAEJ,KAAK8B,GAAK,OAAOkC,CAAE,IAAI,CAAA,GACX,KAAK1B,GAAa0B,CAAE,IAAI,IAAInE,EAAA;AAAA,EAEzC;AAAA,EACA,cAAcmE,GAAmB;AAChC,UAAMhE,IAAK,KAAKsC,GAAa0B,CAAE;AAC/B,QAAI,CAAEhE,EAAI,OAAM,cAAcgE,CAAE;AAChC,WAAOhE;AAAA,EACR;AAAA,EACA,aAAa;AACZ,eAAW,CAACgE,GAAIU,CAAE,KAAK,OAAO,QAAQ,KAAKpC,EAAY;AACtD,WAAKR,GAAK,OAAOkC,CAAE,IAAIU,EAAG,IAAA;AAE3B,SAAK,MAAA;AAAA,EACN;AAAA;AAAA;AAAA,EAKAjD,GAAckD,GAAY;AACzB,UAAMC,IAAOC,EAAWF,GAAM,QAAQ,GAAG,GACnCG,IAAKD,EAAWF,GAAM,MAAM,GAAG;AAGrC,QAAIC,MAASE,EAAI,QAAO;AAExB,UAAMC,IAAI,KAAKjD,GAAK,KAAK8C,CAAI;AAC7B,QAAI,CAAEG,EAAG,OAAM,QAAQ,OAAOH,CAAI,CAAC;AACnC,gBAAK,QAAQE,GAAI,EAAC,GAAGC,GAAE,GACvB,KAAK,IAAI,aAAaH,GAAME,CAAE,GAEvB;AAAA,EACR;AAAA;AAAA,EAGApD,GAAeiD,GAAY;AAC1B,UAAMJ,IAAQM,EAAWF,GAAM,SAAS,GAAG;AAG3C,kBAAO,KAAK7C,GAAK,KAAKyC,CAAK,GAC3B,KAAK,MAAA,GAEL,KAAK,IAAI,cAAcA,CAAK,GAErB;AAAA,EACR;AAAA;AAAA;AAAA,EAKA1D,GAAK8D,GAAY;AAChB,QAAI,CAAEA,EAAK,KAAM,OAAM;AAIvB,QAAIK,IAAW;AACf,QAAIL,EAAK;AACR,cAAQA,EAAK,MAAA;AAAA,QACb,KAAK;AACJ,UAAAE,EAAWF,GAAM,QAAQ,GAAG;AAC5B;AAAA,QACD,KAAK;AACJ,UAAAA,EAAK,OAAO,OAAO/B,EAAIiC,EAAWF,GAAM,QAAQ,GAAG,CAAC,CAAC;AACrD;AAAA,QACD,KAAK;AACJ,UAAAA,EAAK,OAAO,OAAO5C,EAAK8C,EAAWF,GAAM,QAAQ,GAAG,CAAC,CAAC;AACtD;AAAA,QACD,KAAK;AACJ,UAAAM,EAAeN,GAAM,QAAQ,EAAK;AAClC;AAAA,QACD,KAAK;AACJ,UAAAK,IAAW;AACX;AAAA,QACD;AACC,gBAAM,UAASL,EAAK,OAAM;AAAA,MAAA;AAI5B,gBAAKd,GAAQc,EAAK,MAAMA,EAAK,MAAMK,CAAQ,GAEpC;AAAA,EACR;AAAA;AAAA,EAGAlE,GAAS6D,GAAY;AACpB,UAAMO,IAAIL,EAAWF,GAAM,QAAQ,CAAC;AAEpC,WAAAA,EAAK,OAAO,OAAOO,IAAI,IAAG,CAACA,IAAGA,CAAC,GAG/B,KAAKrE,GAAK8D,CAAI,GAEP;AAAA,EACR;AAAA;AAAA,EAGA5D,GAAa4D,GAAY;AACxB,WAAAA,EAAK,QAAQA,EAAK,QAAQ,IAAI,OAAOE,EAAWF,GAAM,OAAO,CAAC,CAAC,GAC/D,KAAK9D,GAAK8D,CAAI,GAEP;AAAA,EACR;AAAA;AAAA,EAGA3D,GAAc2D,GAAY;AACzB,UAAM,EAAC,KAAAQ,MAAOR;AACd,QAAI,CAAEQ,EAAK,OAAM;AACjB,UAAMC,IAAQP,EAAWF,GAAM,SAAS,CAAC;AAEzC,WAAAA,EAAK,OAAO,QAAQA,EAAK,QAAQ,IAAI,QAAQQ,GAAKC,CAAK,CAAC,GACxD,KAAKvE,GAAK8D,CAAI,GAEP;AAAA,EACR;AAAA;AAAA,EAGA1D,GAAY0D,GAAY;AACvB,WAAAA,EAAK,OAAO,QAAQA,EAAK,QAAQ,IAAI,MAAM,GAC3C,KAAK9D,GAAK8D,CAAI,GAEP;AAAA,EACR;AAAA;AAAA,EAGAzD,GAAayD,GAAY;AACxB,QAAI,CAAEA,EAAK,IAAK,OAAM;AAEtB,UAAM,EAAC,OAAAU,MAASV,GACVW,IAAQD,IAEX,IAAI,OAAOV,EAAK,KAAKU,CAAK,IAD1B,IAAI,OAAOV,EAAK,GAAG;AAEtB,WAAAA,EAAK,QAAQA,EAAK,QAAQ,IAAI,QAAQW,GAAK,OAAOX,EAAK,GAAG,CAAC,GAC3D,KAAK9D,GAAK8D,CAAI,GAEP;AAAA,EACR;AAAA;AAAA,EAGAxD,GAAWwD,GAAY;AACtB,UAAMO,IAAIL,EAAWF,GAAM,QAAQ,CAAC;AACpC,WAAAA,EAAK,OAAO,OAAO,KAAK,MAAMO,CAAC,CAAC,GAChC,KAAKrE,GAAK8D,CAAI,GAEP;AAAA,EACR;AAAA;AAAA,EAGAvD,GAAYuD,GAAY;AACvB,QAAI,CAAEA,EAAK,IAAK,OAAM;AAEtB,UAAM,EAAC,OAAAU,MAASV,GACVW,IAAQD,IAEX,IAAI,OAAOV,EAAK,KAAKU,CAAK,IAD1B,IAAI,OAAOV,EAAK,GAAG;AAEtB,WAAAA,EAAK,OAAO,QAAQA,EAAK,QAAQ,IAAI,OAAOW,CAAG,CAAC,GAChD,KAAKzE,GAAK8D,CAAI,GAEP;AAAA,EACR;AAAA;AAAA,EAGAtD,GAAYsD,GAAY;AACvB,UAAMY,IAAIV,EAAWF,GAAM,OAAO,CAAC;AACnC,WAAAA,EAAK,OAAOA,EAAK,QAAQ,SACrBA,EAAK,QAAQ,IAAI,MAAMY,GAAGA,IAAG3C,EAAIiC,EAAWF,GAAM,OAAO,CAAC,CAAC,CAAC,KAC5DA,EAAK,QAAQ,IAAI,MAAMY,CAAC,GAC5B,KAAK1E,GAAK8D,CAAI,GAEP;AAAA,EACR;AAAA;AAAA;AAAA,EAKArD,GAAakE,IAAO,IAAO;AAC1B,UAAM/E,IAAM,KAAK4B,KAAQ,KAAKD,GAAS,MAAM,KAAKN,GAAK,MAAMsB,EAAA;AAG7D,IADc,OAAO,UAAY,QAOhC,KAAK,aAAa,OAAO,qBAAqB,CAAC,GAC/C,KAAK,aAAa,OAAO,qBAAqB,CAAC,IAIhD,KAAK,aAAa,OAAO,qBAAqB,KAAK,IAAI,KAAK,KAAK,cAAc,GAC/E,KAAK,aAAa,OAAO,4BAA4B,KAAK,IAAI,KAAK,KAAK,cAAc,GAItF,KAAK,aAAa,OAAO,wBAAwByB,EAAWpE,GAAK,wBAAwB,KAAK,IAAI,KAAK,KAAK,iBAAiB,CAAC,GAC9H,KAAK,aAAa,OAAO,+BAA+BoE,EAAWpE,GAAK,wBAAwB,KAAK,IAAI,KAAK,KAAK,iBAAiB,CAAC;AAMrI,eAAWT,KAAM,OAAO,OAAO,KAAKsC,EAAY,KAAM,MAAA;AAGtD,gBAAKF,GAAS,OAAO,KAAKN,GAAK,OAAO,CAAA,GAEhC0D,KAAM,KAAKvC,GAAA,GAGjB,KAAK,MAAA,GAEE;AAAA,EACR;AAAA;AAAA,EAGA1B,KAAY;AACX,UAAMkE,IAAoB,KAAKxD,GAAO,mBAAmB,GACnDyD,IAAoB,KAAKzD,GAAO,aAAa,GAC7C0D,IAAiB,KAAK1D,GAAO,eAAe,GAC5C2D,IAAqB,KAAK3D,GAAO,oBAAoB;AAE3D,gBAAKA,KAAS,KAAKG,GAAS,OAAOF,EAAA,GAEnC,KAAK,aAAa,QAAQ,qBAAqBuD,CAAQ,GACvD,KAAK,aAAa,QAAQ,eAAeC,CAAQ,GACjD,KAAK,aAAa,QAAQ,iBAAiBC,CAAI,GAC/C,KAAK,aAAa,QAAQ,sBAAsBC,CAAS,GAElD;AAAA,EACR;AAAA,EAEA/B,GAAQgC,GAAkBV,GAAiBH,IAAW,IAAM;AAC3D,QAAI,CAAEa,EAAU,OAAM;AACtB,QAAIV,MAAQ,OAAW,OAAM;AAE7B,UAAMvE,IAAIkF,EAAW,WAAWD,CAAQ;AACxC,QAAI,CAAEjF,EAAG,OAAM,eAAeiF,CAAQ;AAEtC,UAAM,EAAC,OAAAE,GAAO,MAAA1B,EAAA,IAAQzD,GAChBoF,IAAS,KAAK5D,GAAS2D,CAAK;AAClC,QAAI1B,EAAK,WAAW,QAAQ,KAAKA,KAAQ2B;AACxC,YAAM,gBAAgB3B,CAAI;AAG3B,SAAK,aAAa0B,GAAO1B,GAAMc,GAAKH,CAAQ;AAAA,EAC7C;AAAA,EACA,aAAae,GAAcnE,GAAYqE,GAAkBjB,IAAW,IAAO;AAC1E,UAAMgB,IAAS,KAAK5D,GAAS2D,CAAK,GAE5BG,IAAQlB,IAAU,KAAKmB,GAAUF,CAAI,IAAIA,GAEzCG,IAASL,IAAO,MAAKnE;AAC3B,QAAIwE,KAAU5F,EAASsD,IAAY;AAClC,YAAMuC,IAAQL,EAA4BpE,CAAE;AAE5C,MAAIyE,KAASH,KAAO,KAAK3D,GAAU,cAAc;AAAA,QAChD,QAAQ6D;AAAA,QACR,OAAAC;AAAA;AAAA,QAEA,OAAAH;AAAA,MAAA,CACA;AAAA,IACF;AAGM,IAAAF,EAAQpE,CAAE,IAAIsE,GAGpB,KAAKI,GAAYF,CAAM,IAAIxE,GAAIsE,KAAS,EAAE;AAAA,EAQ3C;AAAA;AAAA,EAEA,OAAOpC,KAAoC,CAAA;AAAA;AAAA;AAAA,EAM3C,OAAO+B,GAAkBU,GAAuBC,IAAQ,IAAmB;AAC1E,QAAI,CAAEX,EAAU,OAAM;AAEtB,UAAMjF,IAAIkF,EAAW,WAAWD,CAAQ;AACxC,QAAI,CAAEjF,EAAG,OAAM,iBAAgBiF,IAAU;AAEzC,UAAM,EAAC,OAAAE,GAAO,MAAA1B,GAAM,IAAAoC,EAAA,IAAM7F,GACpBoF,IAAS,KAAK5D,GAAS2D,CAAK;AAElC,QAAIZ,IAAsBa,EAA4B3B,CAAI;AAE1D,QAAI,EAAGA,KAAQ2B,IAAS;AAEvB,UADAb,IAAMoB,GACFC;AAEG,eAAAR,EAAQ3B,CAAI,IAAIkC,GAEfE,MAAO,SAAQtB,IAAK,KAAKgB,GAAUhB,CAAG;AAG9C,UAAID,IAAI;AACR,YAAMwB,IAAMrC,EAAK,MAAM,GAAG,GACpBsC,IAAMD,EAAI;AAChB,eAASnB,IAAE,GAAGA,IAAEoB,GAAK,EAAEpB,GAAGL,KAAK,KAAK;AAGnC,YADAA,KAAKwB,EAAInB,CAAC,GACN,EAAGL,KAAKc,GAAS;AAGrB,YAAI7F,IAAI,KAAK,MAAM6F,EAA4Bd,CAAC,CAAC;AACjD,YAAI,OAAO,UAAU,SAAS,KAAK/E,CAAC,MAAM,mBAAmB;AAE5D,cAAIoF,IAAG,MAAMoB,GAAK;AAAC,YAAAxB,IAAMhF;AAAG;AAAA,UAAK;AACjC;AAAA,QAGD;AAEA,YAAIyG,IAAIrB;AACR,eAAO,EAAEqB,IAAID,KAAK;AAEjB,gBAAME,IAAKH,EAAIE,CAAC;AAChB,cAAI,EAAGC,KAAM1G,IAAI;AAAC,YAAAgF,IAAMoB;AAAK;AAAA,UAAK;AAIlC,cADApG,IAAIA,EAAE0G,CAAE,GACJ,OAAO,UAAU,SAAS,KAAK1G,CAAC,MAAM,qBAEtCyG,IAAG,MAAMD,GAAK;AAAC,YAAAxB,IAAMhF;AAAG;AAAA,UAAK;AAAA,QAClC;AAEA,QAAIgF,aAAe,WAAQA,IAAM,KAAK,UAAUA,CAAG;AACnD;AAAA,MACD;AAAA,IACD;AACA,WAAIA,aAAe,aAAUA,IAAMA,EAAA,IAI5BsB,MAAO,SAAQtB,IAAK,KAAKgB,GAAUhB,CAAG;AAAA,EAC9C;AAAA;AAAA,EAGAgB,GAAUhB,GAAsB;AAC/B,UAAM2B,IAAgB3B;AACtB,QAAI2B,MAAU,OAAQ,QAAO;AAC7B,QAAIA,MAAU,QAAS,QAAO;AAC9B,QAAIA,MAAU,OAAQ,QAAO;AAC7B,QAAIA,MAAU;AACd,aAAI,KAAKC,GAAoB,KAAKD,CAAK,IAAU,WAAWA,CAAK,IAE1D3B;AAAA,EACR;AAAA,EACA4B,KAAsB;AAAA;AAAA,EAItBvF,KAAY;AAEX,UAAM2D,IAAW,EAAC,KAAI,IAAI,KAAI,CAAA,GAAI,MAAK,CAAA,GAAI,IAAG,GAAC;AAC/C,eAAWY,KAASZ,GAAK;AACxB,YAAM6B,IAAO,KAAK5E,GAAgB2D,CAAK,GAEjCkB,IAAO9B,EAAIY,CAAK;AACtB,iBAAW,CAACmB,GAAK/G,CAAC,KAAK,OAAO,QAAQ6G,CAAI;AACzC,QAAI7G,aAAa,aAKjB8G,EAAKC,CAAG,IAAI/G;AAAA,IAGd;AACA,mBAAQ,KAAK,iBAAiBgF,CAAG,GAE1B;AAAA,EACR;AAAA,EAEAV,KAAY;AAAA,EACZ,WAAW;AAAC,WAAO,KAAKA;AAAA,EAAS;AAAA,EAGjC5B,KAAgB;AAAA,EAChB,IAAI,eAAe;AAAC,WAAO,KAAKA;AAAA,EAAc;AAAA,EAC9CC,KAAuB;AAAA,EACvB,IAAI,sBAAsB;AAAC,WAAO,KAAKA;AAAA,EAAqB;AAAA,EAC5DC,KAAmB;AAAA,EACnB,IAAI,iBAAiB;AAAC,WAAO,KAAKA;AAAA,EAAgB;AAAA,EAClDC,KAAwB;AAAA,EACxB,IAAI,wBAAwB;AAAC,WAAO,KAAKA;AAAA,EAAuB;AAAA,EAEhEsD,KAA8C;AAAA;AAAA,IAE7C,uBAA0B,CAAAjC,MAAO;AAChC,WAAKxB,KACL,KAAKsE,GAA4B9C,CAAI;AAAA,IACtC;AAAA,IACA,8BAA+B,CAAAA,MAAO;AACrC,WAAKvB,KACL,KAAKqE,GAA4B9C,CAAI;AAAA,IACtC;AAAA,IACA,yBAA4B,CAAAA,MAAO;AAClC,WAAKtB,KACL,KAAKqE,GAAgC/C,CAAI;AAAA,IAC1C;AAAA,IACA,gCAAiC,CAAAA,MAAO;AACvC,WAAKrB,KACL,KAAKqE,GAAuChD,CAAI;AAAA,IACjD;AAAA,IACA,wBAA2B,CAAAA,MAAO,KAAK8C,GAA4B9C,CAAI;AAAA,IAEvE,4BAA+B,CAAAA,MAC9B,KAAKiD,GAAmCjD,CAAI;AAAA,IAC7C,mCAAoC,CAAAA,MACnC,KAAKiD,GAAmCjD,CAAI;AAAA,IAC7C,4BAA+B,CAAAA,MAC9B,KAAKkD,GAAmClD,CAAI;AAAA,IAC7C,mCAAoC,CAAAA,MACnC,KAAKkD,GAAmClD,CAAI;AAAA;AAAA,IAG7C,oBAAsB,CAAAA,MAAO;AAC5B,WAAKF;AAAA,QACJ,KAAKM,KAAY,KAAK+C,GAA6BnD,CAAI;AAAA,MAAA;AAAA,IAEzD;AAAA,IACA,sBAAuB,CAACoD,GAAOxB,MAAQ;AACtC,YAAMd,IAAM,OAAOc,CAAI;AACvB,UAAId,EAAI,SAAS,GAAG,EAAG,OAAM;AAC7B,WAAK,IAAI,aAAaA;AAAA,IACvB;AAAA;AAAA,IAGA,wEACC,MAAK;AAAA,IAEL;AAAA,EAAA;AAAA,EAGF,UAAUd,GAAcH,GAAkB;AAAC,SAAKoC,GAAYjC,CAAI,IAAIH;AAAA,EAAG;AAAA,EAC9DiD,KAA8B,CAAC9C,MAAgBY,EAAe,KAAK5C,IAAOgC,GAAM,EAAI;AAAA,EACpF+C,KAAkC,CAAC/C,MAAgBQ,EAAW,KAAKxC,IAAOgC,GAAM,EAAE;AAAA,EAClFgD,KAAyC,CAAChD,MAAgBQ;AAAA;AAAA,IAElE,KAAKxC;AAAA,IAAOgC;AAAA,IAAM,KAAK,IAAI,KAAK,KAAK,kBAAkB;AAAA,EAAA;AAAA,EAE/CiD,KAAqC,CAACjD,MAAgBQ;AAAA;AAAA,IAE9D,KAAKxC;AAAA,IAAOgC;AAAA,IAAM,KAAK,IAAI,KAAK,KAAK,qBAAqB;AAAA,EAAA;AAAA,EAElDkD,KAAqC,CAAClD,MAAgBQ,EAAW,KAAKxC,IAAOgC,GAAM,GAAG;AAAA,EAE/FmD,GAA6BnD,GAAc;AAC1C,WAAOY,EAAe,KAAKhD,IAAQoC,GAAM,EAAI;AAAA,EAC9C;AAED;"}
1
+ {"version":3,"file":"Variable.js","names":["#hAreas","#hSave","#hTmp","sys: T_SysBase","cfg: Config","#let","#let_abs","#let_char_at","#let_index_of","#let_length","#let_replace","#let_round","#let_search","#let_substr","#clearsysvar","#clearvar","#dump_val","#copybookmark","#erasebookmark","a: TArg[]","#d4v","#dbgVariable","#callHook","#hProcDbgRes","#tagCh_doWait","#tagCh_doWait_Kidoku","#tagCh_msecWait","#tagCh_msecWait_Kidoku","#saPageLog","#hSys","#hScopes","oMark: T_H_VAL_MARK","#set_data_break","#setVal","#hSetEvent","#hAreaKidoku","#doRecProc","#doRecLog","mesLayer\t: string","doRecLog\t: boolean","sLog\t\t: string","styPaging\t: string","#castAuto","#hSetValTrg","#REG_NUMERICLITERAL","val: any","#runFirst_Bool_hSysVal_true","#runFirst_sys_an_tagCh_msecWait","#runFirst_sys_an_tagCh_msecWait_Kidoku","#runFirst_sys_an_auto_msecPageWait","#runFirst_sys_an_auto_msecLineWait","#runFirst_Bool_hSaveVal_true"],"sources":["../src/sn/Areas.ts","../src/sn/Variable.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nexport type T_H_Areas = {[begin: string]: number};\n\n\nexport class Areas {\n\t#hAreas\t: T_H_Areas\t= {};\n\n\tclear() {this.#hAreas = {}}\n\tstatic\tfrom(new_val: T_H_Areas): Areas {\n\t\tconst ar = new Areas;\n\t\tar.#hAreas = {...new_val};\n\t\treturn ar;\n\t}\n\tval(): T_H_Areas {return {...this.#hAreas}}\n\n\tsearch(idx: number): boolean {\n\t\treturn Object.entries(this.#hAreas)\n\t\t.some(([begin, v])=> idx >= parseInt(begin) && idx <= v);\n\t}\n\n\trecord(idx: number): void {\n\t\tif (this.search(idx)) return;\n\n\t\tfor (const [begin, v] of Object.entries(this.#hAreas)) {\n\t\t\t// 領域末尾+1とマッチ\n\t\t\tif (v +1 === idx) {\n\t\t\t\tif (String(idx +1) in this.#hAreas) {\n\t\t\t\t\t// 二つの領域がマージできる場合\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tthis.#hAreas[begin] = this.#hAreas[idx +1]!;\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\t\t\tdelete this.#hAreas[idx +1]\n\t\t\t\t}\n\t\t\t\telse this.#hAreas[begin] = idx;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// 領域先頭-1とマッチ\n\t\tif (String(idx +1) in this.#hAreas) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tthis.#hAreas[idx] = this.#hAreas[idx +1]!;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hAreas[idx +1];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#hAreas[idx] = idx;\n\t}\n\n\terase(idx: number): void {\n\t\tif (! this.search(idx)) return;\n\n\t\t// 領域先頭とマッチ\n\t\tif (String(idx) in this.#hAreas) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tif (this.#hAreas[idx]! > idx) this.#hAreas[idx +1] = this.#hAreas[idx]!;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hAreas[idx];\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const [begin, v] of Object.entries(this.#hAreas)) {\n\t\t\tif (idx < parseInt(begin) || v < idx) continue;\n\n\t\t\t// 領域末尾とマッチ\n\t\t\tif (this.#hAreas[begin] === idx) {\n\t\t\t\tthis.#hAreas[begin] = idx -1;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// 領域内とマッチ、二つの領域に分割\n\t\t\tthis.#hAreas[idx +1] = v;\n\t\t\tthis.#hAreas[begin] = idx -1;\n\t\t\treturn;\n\t\t}\n\t}\n\n\tget count(): number {return Object.keys(this.#hAreas).length}\t// 4tst\n\n\ttoString(): string {\n\t\tlet ret = '';\n\n\t\tfor (const k of Object.keys(this.#hAreas)\n\t\t.map(k=> parseInt(k))\n\t\t.sort((x, y)=> x-y)) {\n\t\t\tret += k === this.#hAreas[k]\n\t\t\t? ','+ String(k)\n\t\t\t: ','+ String(k) +'~'+ String(this.#hAreas[String(k)]);\n\t\t}\n\n\t\treturn ret;\t// 先頭に , が付いている。削除したいが、修正すると互換性に問題あり凍結\n\t}\n\n}\n","/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport {uint, int, argChk_Boolean, argChk_Num} from './CmnLib';\nimport {creCSArg, type T_H_VAL_MP} from './CallStack';\nimport type {TArg, T_HTag} from './Grammar';\nimport type {T_Variable, T_fncSetVal, T_ProcVal, T_SysBase, T_Data4Vari, T_Mark, T_FncHook, Scope, T_H_TMP_DATA, T_H_VAL_MARK, T_H_SYS_DATA, T_VAL_DATA_FNC, T_VAL_DATA, T_VAL_BSNU, T_H_SAVE_DATA} from './CmnInterface';\nimport {creSAVEDATA, creSYS_DATA, creTMP_DATA} from './CmnInterface';\nimport type {Config} from './Config';\nimport {Areas} from './Areas';\nimport {PropParser} from './PropParser';\nimport {ReadingState} from './Reading';\n\n\nexport class Variable implements T_Variable {\n\t#hSave\t\t: T_H_SAVE_DATA\t= creSAVEDATA();\n\t#hTmp\t\t: T_H_TMP_DATA\t= creTMP_DATA();\n\t#hScopes\t= {\n\t\tsys\t\t: {},\t// clearsysvarを呼ぶので\n\t\tsave\t: this.#hSave,\n\t\ttmp\t\t: this.#hTmp,\n\t\tmp\t\t: <T_H_VAL_MP>{},\n\t\tmark\t: <T_H_VAL_MARK>{},\n\t};\n\n\n\tconstructor(private readonly sys: T_SysBase, private readonly cfg: Config, hTag: T_HTag) {\n\t\t//\t変数操作\n\t\thTag.let\t\t\t= o=> this.#let(o);\t\t\t// 変数代入・演算\n\t\thTag.let_abs\t\t= o=> this.#let_abs(o);\t\t// 絶対値\n\t\thTag.let_char_at\t= o=> this.#let_char_at(o);\t// 文字列から一字取りだし\n\t\thTag.let_index_of\t= o=> this.#let_index_of(o);// 文字列で検索\n\t\thTag.let_length\t\t= o=> this.#let_length(o);\t// 文字列の長さ\n\t\t// let_mlはScriptIteratorにて定義\t\t\t\t// インラインテキスト代入\n\t\thTag.let_replace\t= o=> this.#let_replace(o);\t// 正規表現で置換\n\t\thTag.let_round\t\t= o=> this.#let_round(o);\t// 四捨五入\n\t\thTag.let_search\t\t= o=> this.#let_search(o);\t// 正規表現で検索\n\t\thTag.let_substr\t\t= o=> this.#let_substr(o);\t// 文字列から抜きだし\n\t\t// ほぼ瀬戸愛羅さんの「変数代入強化プラグイン」の取り込みです。ありがとうございます!\n\t\t// an時代・瀬戸愛羅さんより https://famibee.blog.fc2.com/blog-entry-267.html\n\n\t\t//\tデバッグ・その他\n\t\thTag.clearsysvar\t= ()=> this.#clearsysvar();\t// システム変数の全消去\n\t\thTag.clearvar\t\t= ()=> this.#clearvar();\t// ゲーム変数の全消去\n\t\thTag.dump_val\t\t= ()=> this.#dump_val();\t// 変数のダンプ\n\n\t\t// しおり\n\t\thTag.copybookmark\t= o=> this.#copybookmark(o);\t// しおりの複写\n\t\thTag.erasebookmark\t= o=> this.#erasebookmark(o);\t// しおりの消去\n\t\t//hTag.load\t\t\t// ScriptIterator.ts内で定義\t// しおりの読込\n\t\t//hTag.record_place\t// ScriptIterator.ts内で定義\t// セーブポイント指定\n\t\t//hTag.save\t\t\t// ScriptIterator.ts内で定義\t// しおりの保存\n\n\t\t// save:\n\t\tthis.defTmp('const.sn.bookmark.json', ()=> {\n\t\t\tconst a: TArg[] = [];\n\t\t\tfor (const [nm, mk] of Object.entries(this.#d4v.mark)) {\n\t\t\t\tconst o = {...mk.json};\n\t\t\t\to.place = uint(nm);\n\t\t\t\ta.push(o);\t// パスを searchPath() で展開してはいけない\n\t\t\t}\n\t\t\treturn JSON.stringify(a);\n\t\t});\n\n\t\t// tmp:\n\t\t/*\n\t\t\tthis.hTmp['const.Stage.supportsOrientationChange']\n\t\t\t\t= Stage.supportsOrientationChange;\n\t\t\tif (this.hTmp['const.Stage.supportsOrientationChange']) {\n\t\t\t\tthis.hTmp['const.Stage.orientation']\n\t\t\t\t\t= ()=> {return stage.orientation};\n\t\t\t\tthis.hTmp['const.Stage.deviceOrientation']\n\t\t\t\t\t= ()=> {return stage.deviceOrientation};\n\n\t\t\t\tconst lenSO:uint = stage.supportedOrientations.length;\n\t\t\t\tfor (let iSO:uint=0; iSO<lenSO; ++iSO) {\n\t\t\t\t\tthis.hTmp['const.Stage.supportedOrientations.'\n\t\t\t\t\t\t+ stage.supportedOrientations[iSO]\n\t\t\t\t\t] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t//\timport flash.display.StageOrientation;\n\t\t\t\tthis.hTmp['const.Stage.orientation'] =\n\t\t\t\tthis.hTmp['const.Stage.deviceOrientation'] =\n\t\t\t\t//\t\tStageOrientation.DEFAULT;\n\t\t\t\t\t'default';\n\t\t\t}\n\t\t*/\n\n\t\t// ・画面サイズ:screen.width ウインドウが表示されているディスプレイのサイズ\n\t\t//\t※ macOSなら【設定】-【ディスプレイ】-【使用形態】のイメージボタンにホバーすると出る数字と同じ\n// DebugMng.myTrace(`fn:Variable.ts 画面サイズ(${String(screen.width)} x ${String(screen.height)}) 利用可能領域(${String(screen.availWidth)} x ${String(screen.availHeight)})`, 'W');\n\n\t\t// prj.json\n\t\tthis.#hTmp['const.sn.config.window.width']\t= cfg.oCfg.window.width;\n\t\tthis.#hTmp['const.sn.config.window.height']\t= cfg.oCfg.window.height;\n\t\tthis.#hTmp['const.sn.config.book.title']\t= cfg.oCfg.book.title;\n\t\tthis.#hTmp['const.sn.config.book.version']\t= cfg.oCfg.book.version;\n\t}\n\n\n\t#d4v\t: T_Data4Vari\t= {\n\t\tsys\t\t: <T_H_SYS_DATA>{},\t// clearsysvarを呼ぶので\n\t\tmark\t: {},\n\t\tkidoku\t: {},\n\t};\n\t#hSys\t: T_H_SYS_DATA;\n\t#hAreaKidoku\t: {[fn: string]: Areas}\t= {};\n\t#callHook\t\t: T_FncHook;\n\tasync init() {return this.sys.initVal(this.#hTmp, data=> {\n\t\tthis.updateData(data);\n\n\t\tif (this.cfg.oCfg.debug.variable) this.#dbgVariable(this.sys);\n\t\telse this.flush = ()=> this.sys.flush();\n\t\tthis.flush();\n\n\t\tthis.#callHook = (type, o)=> this.sys.callHook(type, o);\n\t\tthis.sys.addHook((type, o)=> this.#hProcDbgRes[type]?.(type, o));\n\n\t\t// 初回の初期化と、v1.11.0 まで未初期化変数があった件の対策\n\t\tconst tm = int(this.getVal('sys:sn.tagCh.msecWait', -1));\n\t\tif (tm === -1) this.#clearsysvar(true);\n\n\t\tthis.#tagCh_doWait = Boolean(this.getVal('sys:sn.tagCh.doWait'));\n\t\tthis.#tagCh_doWait_Kidoku = Boolean(this.getVal('sys:sn.tagCh.doWait_Kidoku'));\n\t\tthis.#tagCh_msecWait = int(this.getVal('sys:sn.tagCh.msecWait'));\n\t\tthis.#tagCh_msecWait_Kidoku = int(this.getVal('sys:sn.tagCh.msecWait_Kidoku'));\n\n\t\tthis.#saPageLog();\n\t})}\n\n\t//MARK: SessionStorage で確認できるデバッグ機能\n\t#dbgVariable(sys: T_SysBase) {\n\t\tsessionStorage.clear();\n\t\tconst ns = this.cfg.headNs;\n\n\t\tthis.flush = () => {\n\t\t\tconst oSys = creSYS_DATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hSys)) {\n\t\t\t\tif (v instanceof Function) continue;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oSys)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'sys'] = JSON.stringify(oSys);\n\n\t\t\tconst oSave = creSAVEDATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hSave)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oSave)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'save'] = JSON.stringify(oSave);\n\n\t\t\tconst oTmp = creTMP_DATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hTmp)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oTmp)[k] = v instanceof Function ? v() : v;\n\t\t\t\t//TODO: 実行するのか無視するのか問題\n\t\t\t}\n\t\t\tsessionStorage[ns + 'tmp'] = JSON.stringify(oTmp);\n\n\t\t\tconst oMp = creCSArg();\n\t\t\tfor (const [k, v] of Object.entries(this.#hScopes.mp)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oMp)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'mp'] = JSON.stringify(oMp);\n\n\t\t\tconst oMark: T_H_VAL_MARK = {};\n\t\t\tfor (const [k, v] of Object.entries(this.#d4v.mark)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment\n\t\t\t\toMark[int(k)] = v instanceof Function ? v() : v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'mark'] = JSON.stringify(oMark);\n\n\t\t\tsessionStorage[ns + 'kidoku'] = structuredClone(this.#d4v.kidoku);\n\n\t\t\tsys.flush();\n\t\t};\n\t}\n\n\n\t#saPageLog() {ReadingState.playbackPage(\n\t\tString(this.getVal('sys:const.sn.aPageLog', '[]')),\n\t\tString(this.getVal('save:const.sn.styPaging', ReadingState.INI_STYPAGE)),\n\t)}\n\treadonly\t#hProcDbgRes\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t: {[type: string]: (type: string, o: any)=> void}\t= {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\tauth: (_, o)=> this.#set_data_break(o.hBreakpoint.aData),\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\tvar\t: (_,o)=> this.sys.send2Dbg(o.ri, {v: this.#hScopes[<Scope>o.scope] ?? {}}),\n\t\tset_var\t: (_, o)=> {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\ttry {this.#setVal(o.nm, o.val); this.sys.send2Dbg(o.ri, {})} catch { /* empty */ }\n\t\t},\n\t\tset_data_break\t: (_, o)=> {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tthis.#set_data_break(o.a);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tthis.sys.send2Dbg(o.ri, {});\n\t\t},\n\t\tdisconnect: _=> {Variable.#hSetEvent = {}},\n\t}\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t#set_data_break(a: any[]) {\t// o.a.length === 0 なら削除\n\t\tVariable.#hSetEvent = {};\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\tfor (const v of a) Variable.#hSetEvent[v.dataId] = 1;\n\t}\n\n\n\t//MARK: 外からのデータで保持データを更新\n\t//\t初期化時やインポートなどで使用\n\tupdateData(d4v: T_Data4Vari): void {\n\t\tthis.#d4v = d4v;\n\t\tthis.#hSys = this.#hScopes.sys = d4v.sys;\n\n\t\tthis.#hAreaKidoku = {};\n\t\tfor (const [fn, dk] of Object.entries(d4v.kidoku)) {\n\t\t\tthis.#hAreaKidoku[fn] = Areas.from(dk);\n\t\t}\n\t\t// this.flush();\t// saveKidoku() に任せる\n\t}\n\tflush\t= ()=> { /* empty */ };\n\n\tsetDoRecProc(fnc: (doRec: boolean)=> void) {this.#doRecProc = fnc}\n\t#doRecProc = (_doRec: boolean)=> { /* empty */ };\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\tdefTmp(name: string, fnc: T_ProcVal) {(<any>this.#hTmp)[name] = fnc}\n\n\tcloneMp() {return {...this.#hScopes.mp}}\n\tsetMp(mp: T_H_VAL_MP) {this.#hScopes.mp = mp}\n\n\tsetMark(place: number, mark: T_Mark) {\n\t\tthis.#d4v.mark[place] = mark;\n\t\tthis.flush();\n\t}\n\tgetMark(place: number) {\n\t\tconst mark = this.#d4v.mark[place];\n\t\tif (! mark) throw `place【${String(place)}】は存在しません`;\n\t\treturn mark;\n\t}\n\n\tcloneSave() {return {...this.#hScopes.save}}\n\tmark2save(mark: T_Mark) {\n\t\tthis.#hSave = this.#hScopes.save = {...mark.hSave};\n\t\tthis.#doRecLog\t= this.#hSave['sn.doRecLog'];\n\t}\n\n\n\t// 既読系\n\ttouchAreaKidoku(fn: string): Areas {\n\t\tconst ar = this.#hAreaKidoku[fn];\n\t\tif (ar) return ar;\n\n\t\tthis.#d4v.kidoku[fn] = {};\n\t\tconst ret = this.#hAreaKidoku[fn] = new Areas;\n\t\treturn ret;\n\t}\n\tgetAreaKidoku(fn: string): Areas {\n\t\tconst ar = this.#hAreaKidoku[fn];\n\t\tif (! ar) throw `hAreaKidoku${fn}】は存在しません`;\n\t\treturn ar;\n\t}\n\tsaveKidoku() {\n\t\tfor (const [fn, ak] of Object.entries(this.#hAreaKidoku)) {\n\t\t\tthis.#d4v.kidoku[fn] = ak.val();\n\t\t}\n\t\tthis.flush();\n\t}\n\n\n//\t// しおり\n\t// しおりの複写\n\t#copybookmark(hArg: TArg) {\n\t\tconst from = argChk_Num(hArg, 'from', NaN);\n\t\tconst to = argChk_Num(hArg, 'to', NaN);\n\t\t// const from = hArg.from;\n\t\t// const to = hArg.to;\n\t\tif (from === to) return false;\n\n\t\tconst f = this.#d4v.mark[from];\n\t\tif (! f) throw `from:${String(from)} のセーブデータは存在しません`;\n\t\tthis.setMark(to, {...f});\n\t\tthis.sys.copyBMFolder(from, to);\n\n\t\treturn false;\n\t}\n\n\t// しおりの消去\n\t#erasebookmark(hArg: TArg) {\n\t\tconst place = argChk_Num(hArg, 'place', NaN);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\tdelete this.#d4v.mark[place];\n\t\tthis.flush();\n\n\t\tthis.sys.eraseBMFolder(place);\n\n\t\treturn false;\n\t}\n\n\n//\t//\t変数操作\n\t// 変数代入・演算\n\t#let(hArg: TArg) {\n\t\tif (! hArg.name) throw 'nameは必須です';\n\n\t\t// 自動で数値型変換しない(≒文字変換する)機能\n\t\t// an時代・瀬戸愛羅さんより https://famibee.blog.fc2.com/blog-entry-108.html\n\t\tlet autocast = true;\n\t\tif (hArg.cast) {\n\t\t\tswitch (hArg.cast) {\n\t\t\tcase 'num':\n\t\t\t\targChk_Num(hArg, 'text', NaN);\n\t\t\t\tbreak;\n\t\t\tcase 'int':\n\t\t\t\thArg.text = String(int(argChk_Num(hArg, 'text', NaN)));\n\t\t\t\tbreak;\n\t\t\tcase 'uint':\n\t\t\t\thArg.text = String(uint(argChk_Num(hArg, 'text', NaN)));\n\t\t\t\tbreak;\n\t\t\tcase 'bool':\n\t\t\t\targChk_Boolean(hArg, 'text', false);\n\t\t\t\tbreak;\n\t\t\tcase 'str':\n\t\t\t\tautocast = false;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow 'cast【'+ hArg.cast +'】は未定義です';\n\t\t\t}\n\t\t}\n\n\t\tthis.#setVal(hArg.name, hArg.text, autocast);\n\n\t\treturn false;\n\t}\n\n\t// 絶対値\n\t#let_abs(hArg: TArg) {\n\t\tconst n = argChk_Num(hArg, 'text', 0);\n\t\t//hArg.text = Math.abs(n);\n\t\thArg.text = String(n < 0 ?-n :n);\n\t\t\t// JavaScriptのMath.abs()で絶対値を取得しないほうが良い理由 | iwb.jp https://iwb.jp/javascript-math-abs-deprecated/\n\t\t\t// 数値以外だとほとんどがNaNを返し、booleanは0や1を返しているため使い方によってはバグの原因になることがある。\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列から一字取りだし\n\t#let_char_at(hArg: TArg) {\n\t\thArg.text = (hArg.text ?? '').charAt(argChk_Num(hArg, 'pos', 0));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列で検索\n\t#let_index_of(hArg: TArg) {\n\t\tconst {val} = hArg;\n\t\tif (! val) throw 'valは必須です';\n\t\tconst start = argChk_Num(hArg, 'start', 0);\n\n\t\thArg.text = String((hArg.text ?? '').indexOf(val, start));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列の長さ\n\t#let_length(hArg: TArg) {\n\t\thArg.text = String((hArg.text ?? '').length);\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 正規表現で置換\n\t#let_replace(hArg: TArg) {\n\t\tif (! hArg.reg) throw 'regは必須です';\n\n\t\tconst {flags} = hArg;\n\t\tconst reg = ! flags\n\t\t\t? new RegExp(hArg.reg)\n\t\t\t: new RegExp(hArg.reg, flags);\n\t\thArg.text = (hArg.text ?? '').replace(reg, String(hArg.val));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 四捨五入\n\t#let_round(hArg: TArg) {\n\t\tconst n = argChk_Num(hArg, 'text', 0);\n\t\thArg.text = String(Math.round(n));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 正規表現で検索\n\t#let_search(hArg: TArg) {\n\t\tif (! hArg.reg) throw 'regは必須です';\n\n\t\tconst {flags} = hArg;\n\t\tconst reg = ! flags\n\t\t\t? new RegExp(hArg.reg)\n\t\t\t: new RegExp(hArg.reg, flags);\n\t\thArg.text = String((hArg.text ?? '').search(reg));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列から抜きだし\n\t#let_substr(hArg: TArg) {\n\t\tconst i = argChk_Num(hArg, 'pos', 0);\n\t\thArg.text = hArg.len !== 'all'\n\t\t\t? (hArg.text ?? '').slice(i, i +int(argChk_Num(hArg, 'len', 1)))\n\t\t\t: (hArg.text ?? '').slice(i);\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\n//\t// デバッグ・その他\n\t// システム変数の全消去\n\t#clearsysvar(init = false) {\n\t\tconst sys = this.#hSys = this.#hScopes.sys = this.#d4v.sys = creSYS_DATA();\n\n\t\tconst is_nw = typeof process !== 'undefined';\n\t\tif (is_nw) {\n\t\t//\t//\tthis.setVal_Sub('sys:const.sn.window.x', stage.nativeWindow.x);\n\t\t//\t//\tthis.setVal_Sub('sys:const.sn.window.y', stage.nativeWindow.y);\n\t\t\t//NOTE: これは??\n\t\t}\n\t\telse {\n\t\t\tthis.setVal_Nochk('sys', 'const.sn.window.x', 0);\n\t\t\tthis.setVal_Nochk('sys', 'const.sn.window.y', 0);\n\t\t}\n\n\t\t// 文字表示Wait時間\n\t\tthis.setVal_Nochk('sys', 'sn.tagCh.msecWait', this.cfg.oCfg.init.tagch_msecwait);\n\t\tthis.setVal_Nochk('sys', 'sn.tagCh.msecWait_Kidoku', this.cfg.oCfg.init.tagch_msecwait);\n\n\t\t// 自動読みすすみモード時の改ページ時のウェイト\n\t\t//\t//\trunFirst_sys_an_auto_msecPageWait('sn.auto.msecPageWait', '');\n\t\tthis.setVal_Nochk('sys', 'sn.auto.msecPageWait', argChk_Num(sys, 'sn.auto.msecPageWait', this.cfg.oCfg.init.auto_msecpagewait));\n\t\tthis.setVal_Nochk('sys', 'sn.auto.msecPageWait_Kidoku', argChk_Num(sys, 'sn.auto.msecPageWait', this.cfg.oCfg.init.auto_msecpagewait));\n\n\t\t//\tSoundMixer.soundTransform = new SoundTransform(\n\t\t//\t\t(sys['flash.media.SoundMixer.soundTransform.volume'] = 1)\n\t\t//\t);\n\n\t\tfor (const ar of Object.values(this.#hAreaKidoku)) ar.clear();\n\t\t\t// this.#data.kidoku へのコピーは saveKidoku() に任せる\n\n\t\tthis.#hScopes.mark = this.#d4v.mark = {};\n\n\t\tif (! init) this.#saPageLog();\n\n\n\t\tthis.flush();\n\n\t\treturn false;\n\t}\n\n\t// ゲーム変数の全消去\n\t#clearvar() {\n\t\tconst mesLayer\t: string = this.#hSave['const.sn.mesLayer'];\n\t\tconst doRecLog\t: boolean= this.#hSave['sn.doRecLog'];\n\t\tconst sLog\t\t: string = this.#hSave['const.sn.sLog'];\n\t\tconst styPaging\t: string = this.#hSave['const.sn.styPaging'];\n\n\t\tthis.#hSave = this.#hScopes.save = creSAVEDATA();\n\n\t\tthis.setVal_Nochk('save', 'const.sn.mesLayer', mesLayer);\n\t\tthis.setVal_Nochk('save', 'sn.doRecLog', doRecLog);\n\t\tthis.setVal_Nochk('save', 'const.sn.sLog', sLog);\n\t\tthis.setVal_Nochk('save', 'const.sn.styPaging', styPaging);\n\n\t\treturn false;\n\t}\n\n\t#setVal(arg_name: string, val: T_VAL_BSNU, autocast = true) {\n\t\tif (! arg_name) throw '[変数に値セット] nameは必須です';\n\t\tif (val === undefined) throw '[変数に値セット] textは必須です(空文字はOK)';\n\n\t\tconst o = PropParser.getValName(arg_name);\n\t\tif (! o) throw `[変数参照] name(${arg_name})が変数名として異常です`;\n\n\t\tconst {scope='tmp', name} = o;\n\t\tconst hScope = this.#hScopes[scope];\n\t\tif (name.startsWith('const.') && name in hScope) {\n\t\t\tthrow `[変数に値セット] 変数【${name}】は書き換え不可です`;\n\t\t}\n\n\t\tthis.setVal_Nochk(scope, name, val, autocast);\n\t}\n\tsetVal_Nochk(scope: Scope, nm: string, ival: T_VAL_BSNU, autocast = false) {\n\t\tconst hScope = this.#hScopes[scope];\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst new_v = autocast ?this.#castAuto(ival) : ival;\n\n\t\tconst fullnm = scope +':'+ nm;\n\t\tif (fullnm in Variable.#hSetEvent) {\n\t\t\tconst old_v = hScope[<keyof typeof hScope>nm];\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif (old_v != new_v) this.#callHook('data_break', {\n\t\t\t\tdataId: fullnm,\n\t\t\t\told_v,\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\tnew_v,\n\t\t\t});\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t(<any>hScope)[nm] = new_v;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tthis.#hSetValTrg[fullnm]?.(nm, new_v ?? '');\n\n\t\t// if (scope === 'sys') this.flush()\n\t\t\t// 厳密にはここですべきだが、パフォーマンスに問題があるので\n\t\t\t// クリック待ちを期待できるwait、waitclick、s、l、pタグで\n\t\t\t// saveKidoku()をコール。(中で保存しているのでついでに)\n\n\t\t//console.log(`\\tlet s[${scope}] n[${nm}]='${new_v}' trg[${(trg)}]`);\n\t}\n\t// reload 再生成 Main に受け渡すため static\n\tstatic\t#hSetEvent: {[fullnm: string]: 1} = {};\n\n\n\t// readonly getVal_save = (arg_name: string, def?: number | string)=> {\n\t// \tif (! arg_name) throw '[変数参照] nameは必須です';\n\n\tgetVal(arg_name: string, def?: number | string, touch = false): T_VAL_DATA {\n\t\tif (! arg_name) throw '[変数参照] nameは必須です';\n\n\t\tconst o = PropParser.getValName(arg_name);\n\t\tif (! o) throw '[変数参照] name('+ arg_name +')が変数名として異常です';\n\n\t\tconst {scope='tmp', name, at} = o;\n\t\tconst hScope = this.#hScopes[scope];\n\n\t\tlet val = <T_VAL_DATA_FNC>hScope[<keyof typeof hScope>name];\n// console.log(`getVal arg_name=${arg_name}= nm=${name}= A:${String(! (name in hScope))} val:${String(val)}`);\n\t\tif (! (name in hScope)) {\t// 存在しない変数名の場合、刻んで調べていく\n\t\t\tval = def;\n\t\t\tif (touch) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n\t\t\t\t(<any>hScope)[name] = def;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\t\t\treturn at === '@str' ?val :this.#castAuto(val);\n\t\t\t}\n\n\t\t\tlet n = '';\n\t\t\tconst aNm = name.split('.');\n\t\t\tconst len = aNm.length;\n\t\t\tfor (let i=0; i<len; ++i, n += '.') {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n\t\t\t\tn += aNm[i];\n\t\t\t\tif (! (n in hScope)) continue;\t// 存在しない変数名の場合、延ばす\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\tlet v = JSON.parse(hScope[<keyof typeof hScope>n]);\n\t\t\t\tif (Object.prototype.toString.call(v) !== '[object Object]') {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\tif (i +1 === len) {val = v; break}\t// 最下層ならそのまま返す\n\t\t\t\t\tcontinue;\n\t\t\t\t\t\t// 短い名前でヒットしたが、JSONでもなく\n\t\t\t\t\t\t// 変数名にはまだ続きがあるので探索続行\n\t\t\t\t}\n\n\t\t\t\tlet j = i;\t// JSONオブジェクトの階層を降りつつ探索\n\t\t\t\twhile (++j < len) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tconst nj = aNm[j]!;\n\t\t\t\t\tif (! (nj in v)) {val = def; break}\n\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\tv = v[nj];\n\t\t\t\t\tif (Object.prototype.toString.call(v) !== '[object Object]'\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\t\t|| j +1 === len) {val = v; break}// 最下層ならそのまま返す\n\t\t\t\t}\n\n\t\t\t\tif (val instanceof Object) val = JSON.stringify(val);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (val instanceof Function) val = val();\n// console.log(`\\tget [${arg_name}] -> s[${scope ?? 'tmp'}'] a[${at ?? ''}] n[${name}'] ret['${String(val)}']('${typeof val}')'`);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn at === '@str' ?val :this.#castAuto(val);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t#castAuto(val: T_VAL_DATA): any {\n\t\tconst s_val = <string>val;\n\t\tif (s_val === 'true') return true;\n\t\tif (s_val === 'false') return false;\n\t\tif (s_val === 'null') return null;\n\t\tif (s_val === 'undefined') return undefined;\n\t\tif (this.#REG_NUMERICLITERAL.test(s_val)) return parseFloat(s_val);\n\n\t\treturn val;\n\t}\n\t#REG_NUMERICLITERAL\t= /^-?[\\d.]+$/;\n\n\n\t// 変数のダンプ\n\t#dump_val() {\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tconst val: any = {tmp:{}, sys:{}, save:{}, mp:{}};\n\t\tfor (const scope in val) {\n\t\t\tconst hVal = this.#hScopes[<Scope>scope];\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\tconst hRet = val[scope];\n\t\t\tfor (const [key, v] of Object.entries(hVal)) {\n\t\t\t\tif (v instanceof Function) continue;\n\n\t\t\t\t// // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\t// hRet[key] = v instanceof Function ?v() :v;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\thRet[key] = v;\n\t\t\t\t\t//TODO: 実行するのか無視するのか問題\n\t\t\t}\n\t\t}\n\t\tconsole.info('🥟 [dump_val]', val);\n\n\t\treturn false;\n\t}\n\n\t#doRecLog\t= false;\n\tdoRecLog() {return this.#doRecLog}\n\n\n\t#tagCh_doWait = false;\n\tget tagCh_doWait() {return this.#tagCh_doWait;}\n\t#tagCh_doWait_Kidoku = false;\n\tget tagCh_doWait_Kidoku() {return this.#tagCh_doWait_Kidoku;}\n\t#tagCh_msecWait\t\t= 0;\n\tget tagCh_msecWait() {return this.#tagCh_msecWait;}\n\t#tagCh_msecWait_Kidoku= 0;\n\tget tagCh_msecWait_Kidoku() {return this.#tagCh_msecWait_Kidoku;}\n\n\t#hSetValTrg\t: {[name: string]: T_fncSetVal}\t= {\n\t\t// sys\n\t\t'sys:sn.tagCh.doWait'\t\t\t: name=> {\n\t\t\tthis.#tagCh_doWait =\n\t\t\tthis.#runFirst_Bool_hSysVal_true(name);\n\t\t},\n\t\t'sys:sn.tagCh.doWait_Kidoku'\t: name=> {\n\t\t\tthis.#tagCh_doWait_Kidoku =\n\t\t\tthis.#runFirst_Bool_hSysVal_true(name);\n\t\t},\n\t\t'sys:sn.tagCh.msecWait'\t\t\t: name=> {\n\t\t\tthis.#tagCh_msecWait =\n\t\t\tthis.#runFirst_sys_an_tagCh_msecWait(name);\n\t\t},\n\t\t'sys:sn.tagCh.msecWait_Kidoku'\t: name=> {\n\t\t\tthis.#tagCh_msecWait_Kidoku =\n\t\t\tthis.#runFirst_sys_an_tagCh_msecWait_Kidoku(name);\n\t\t},\n\t\t'sys:sn.tagCh.canskip'\t\t\t: name=> this.#runFirst_Bool_hSysVal_true(name),\n\n\t\t'sys:sn.auto.msecPageWait'\t\t\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecPageWait(name),\n\t\t'sys:sn.auto.msecPageWait_Kidoku'\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecPageWait(name),\n\t\t'sys:sn.auto.msecLineWait'\t\t\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecLineWait(name),\n\t\t'sys:sn.auto.msecLineWait_Kidoku'\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecLineWait(name),\n\n\t\t// save\n\t\t'save:sn.doRecLog'\t\t: name=> {\n\t\t\tthis.#doRecProc(\n\t\t\t\tthis.#doRecLog = this.#runFirst_Bool_hSaveVal_true(name)\n\t\t\t);\n\t\t},\n\t\t'save:sn.userFnTail'\t: (_name, ival)=> {\n\t\t\tconst val = String(ival);\n\t\t\tif (val.includes('@')) throw 'この変数では文字「@」は禁止です';\n\t\t\tthis.cfg.userFnTail = val;\n\t\t},\n\n\t\t// tmp\n\t\t'tmp:flash.desktop.NativeApplication.nativeApplication.systemIdleMode'\t:\n\t\t\t()=> {\n\t\t\t//\tNativeApplication.nativeApplication.systemIdleMode = val;\n\t\t\t}\n\t\t,\n\t};\n\tdefValTrg(name: string, fnc: T_fncSetVal) {this.#hSetValTrg[name] = fnc}\n\treadonly\t#runFirst_Bool_hSysVal_true = (name: string)=> argChk_Boolean(this.#hSys, name, true);\n\treadonly\t#runFirst_sys_an_tagCh_msecWait = (name: string)=> argChk_Num(this.#hSys, name, 10);\n\treadonly\t#runFirst_sys_an_tagCh_msecWait_Kidoku = (name: string)=> argChk_Num(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tthis.#hSys, name, this.cfg.oCfg.init.tagch_msecwait ?? 10\n\t);\n\treadonly\t#runFirst_sys_an_auto_msecPageWait = (name: string)=> argChk_Num(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tthis.#hSys, name, this.cfg.oCfg.init.auto_msecpagewait ?? 3500\n\t);\n\treadonly\t#runFirst_sys_an_auto_msecLineWait = (name: string)=> argChk_Num(this.#hSys, name, 500);\n\n\t#runFirst_Bool_hSaveVal_true(name: string) {\n\t\treturn argChk_Boolean(this.#hSave, name, true);\n\t}\n\n}\n"],"mappings":"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"}
package/dist_app/app.js CHANGED
@@ -1,9 +1,212 @@
1
- import { a as r, z as e, W as o, e as k, k as m } from "./app2.js";
2
- export {
3
- r as CmnLib,
4
- e as Layer,
5
- o as SysApp,
6
- k as argChk_Boolean,
7
- m as argChk_Num
1
+ import { g as uint, l as argChk_Num, s as argChk_Boolean, t as CmnLib, u as getDateStr } from "./CmnLib.js";
2
+ import { n as creSYS_DATA } from "./CmnInterface.js";
3
+ import "./pixi.js";
4
+ import "./EventListenerCtn.js";
5
+ import "./ConfigBase.js";
6
+ import { t as SysBase } from "./SysBase.js";
7
+ import { t as DebugMng } from "./DebugMng.js";
8
+ import { t as Layer } from "./Layer.js";
9
+ var { to_app } = globalThis, SysApp = class extends SysBase {
10
+ constructor(...[e = {}, t = {
11
+ cur: "prj/",
12
+ crypto: !1,
13
+ dip: ""
14
+ }]) {
15
+ super(e, t), this.loaded(e, t);
16
+ }
17
+ async loaded(...[t, n]) {
18
+ await super.loaded(t, n), this.#e = await to_app.getInfo(), CmnLib.isPackaged = this.#e.isPackaged, this.arg = {
19
+ ...n,
20
+ cur: this.#e.getAppPath.replaceAll("\\", "/") + (CmnLib.isPackaged ? "/doc/" : "/") + n.cur
21
+ }, to_app.on("log", (e, t) => console.info("main: %o", t)), this.$path_downloads = this.#e.downloads.replaceAll("\\", "/") + "/", CmnLib.isDbg = !!this.#e.env.SKYNOVEL_DBG && !CmnLib.isPackaged, CmnLib.isDbg && (this.extPort = uint(this.#e.env.SKYNOVEL_PORT ?? "3776")), await this.run();
22
+ }
23
+ #e = {
24
+ getAppPath: "",
25
+ isPackaged: !1,
26
+ downloads: "",
27
+ userData: "",
28
+ getVersion: "",
29
+ env: {},
30
+ platform: "",
31
+ arch: ""
32
+ };
33
+ fetch = (e) => fetch(e, { cache: "no-store" });
34
+ ensureFile = to_app.ensureFile;
35
+ async readFile(e, t) {
36
+ return Promise.resolve("");
37
+ }
38
+ writeFile = to_app.writeFile;
39
+ appendFile = to_app.appendFile;
40
+ outputFile = to_app.outputFile;
41
+ isApp = !0;
42
+ $path_userdata = "";
43
+ $path_downloads = "";
44
+ async initVal(e, n) {
45
+ e["const.sn.isDebugger"] = !1, this.$path_userdata = CmnLib.isDbg ? this.#e.getAppPath.slice(0, -3) + ".vscode/" : this.#e.userData.replaceAll("\\", "/") + "/", this.flushSub = () => {
46
+ to_app.flush(JSON.parse(JSON.stringify(this.data)));
47
+ }, await this.#t();
48
+ let i = e["const.sn.isFirstBoot"] = await to_app.Store_isEmpty();
49
+ if (i) this.data.sys = creSYS_DATA(), this.data.mark = {}, this.data.kidoku = {};
50
+ else {
51
+ let e = await to_app.Store_get();
52
+ this.data.sys = e.sys, this.data.mark = e.mark, this.data.kidoku = e.kidoku;
53
+ }
54
+ let o = argChk_Num(this.data.sys, "const.sn.nativeWindow.x", 0), s = argChk_Num(this.data.sys, "const.sn.nativeWindow.y", 0), c = this.data.sys["const.sn.nativeWindow.w"] || CmnLib.stageW, u = this.data.sys["const.sn.nativeWindow.h"] || CmnLib.stageH;
55
+ to_app.on("save_win_inf", (t, { x: r, y: i, w: a, h: o }) => {
56
+ this.data.sys["const.sn.nativeWindow.x"] = r, this.data.sys["const.sn.nativeWindow.y"] = i, this.data.sys["const.sn.nativeWindow.w"] = a, this.data.sys["const.sn.nativeWindow.h"] = o, e["const.sn.screenResolutionX"] = screen.availWidth, e["const.sn.screenResolutionY"] = screen.availHeight, n(this.data);
57
+ }), await to_app.inited(this.cfg.oCfg, {
58
+ c: i,
59
+ x: o,
60
+ y: s,
61
+ w: c,
62
+ h: u
63
+ });
64
+ }
65
+ #t = () => to_app.Store({
66
+ cwd: this.$path_userdata + "storage",
67
+ name: this.arg.crypto ? "data_" : "data",
68
+ encryptionKey: this.arg.crypto ? this.stk() : void 0
69
+ });
70
+ init(e, t, n) {
71
+ let r = super.init(e, t, n);
72
+ document.body.style.backgroundColor = "#000", to_app.on("shutdown", (e) => this.main?.destroy());
73
+ let i = new MouseEvent("click");
74
+ return to_app.on("fire", (e, t) => this.fire(t, i)), r;
75
+ }
76
+ cvsResize() {
77
+ if (super.cvsResize(), !this.main) return;
78
+ let e = this.main.cvs, t = e.parentElement?.style;
79
+ if (!t) return;
80
+ let n = e.style;
81
+ this.isFullScr ? (t.position = "", t.width = "", t.height = "", n.position = "fixed", n.left = `${String(this.ofsLeft4elm)}px`, n.top = `${String(this.ofsTop4elm)}px`) : (t.position = "relative", t.width = `${String(this.cvsWidth)}px`, t.height = `${String(this.cvsHeight)}px`, n.position = "relative", n.left = "", n.top = "");
82
+ }
83
+ copyBMFolder = (e, t) => {
84
+ let n = `${this.$path_userdata}storage/${String(e)}/`, r = `${this.$path_userdata}storage/${String(t)}/`;
85
+ to_app.existsSync(n).then(async (e) => {
86
+ e && await to_app.copy(n, r);
87
+ });
88
+ };
89
+ eraseBMFolder = (e) => {
90
+ to_app.remove(`${this.$path_userdata}storage/${String(e)}/`);
91
+ };
92
+ close = () => (to_app.win_close(), !1);
93
+ _export = () => (to_app.zip(this.$path_userdata + "storage/", this.$path_downloads + (this.arg.crypto ? "" : "no_crypto_") + this.cfg.headNs + getDateStr("-", "_", "") + ".spd").then(() => {
94
+ CmnLib.debugLog && console.log("プレイデータをエクスポートしました"), this.fire("sn:exported", new MouseEvent("click"));
95
+ }), !1);
96
+ _import = () => (to_app.showOpenDialog({
97
+ title: "play data import",
98
+ filters: [{
99
+ name: "sn import",
100
+ extensions: ["spd"]
101
+ }],
102
+ properties: ["openFile"]
103
+ }).then(async ({ canceled: e, filePaths: [t] }) => {
104
+ if (e) return;
105
+ let n = () => this.flush();
106
+ this.flush = () => {}, await to_app.unzip(t, this.$path_userdata + "storage/"), await this.#t();
107
+ let i = await to_app.Store_get();
108
+ this.data.sys = i.sys, this.data.mark = i.mark, this.data.kidoku = i.kidoku, this.flush = n, this.flush(), this.val.updateData(i), CmnLib.debugLog && console.log("プレイデータをインポートしました"), this.fire("sn:imported", new MouseEvent("click"));
109
+ }).catch((e) => console.log(`[import] err: ${String(e)}`)), !1);
110
+ navigate_to = (e) => {
111
+ let { url: t } = e;
112
+ if (!t) throw "[navigate_to] urlは必須です";
113
+ return to_app.navigate_to(t), !1;
114
+ };
115
+ titleSub(e) {
116
+ to_app.win_setTitle(e);
117
+ }
118
+ tglFlscr_sub = () => to_app.isSimpleFullScreen().then(async (e) => {
119
+ this.isFullScr = !e, await to_app.setSimpleFullScreen(this.isFullScr);
120
+ });
121
+ update_check = (e) => {
122
+ let { url: t } = e;
123
+ if (!t) throw "[update_check] urlは必須です";
124
+ if (!t.endsWith("/")) throw "[update_check] urlの末尾は/にして下さい";
125
+ return CmnLib.debugLog && DebugMng.myTrace(`[update_check] url=${t}`, "D"), this.fetch(t + "_index.json").then(async (e) => {
126
+ let n = {
127
+ title: "アプリ更新",
128
+ icon: this.#e.getAppPath + "/app/icon.png",
129
+ buttons: ["OK", "Cancel"],
130
+ defaultId: 0,
131
+ cancelId: 1,
132
+ message: `アプリ【${this.cfg.oCfg.book.title}】に更新があります。\nダウンロードしますか?`
133
+ };
134
+ e.ok ? await this.#n(e, t, n) : await this.#r(t, n);
135
+ }).catch((e) => DebugMng.myTrace(String(e), "ET")), !1;
136
+ };
137
+ async #n(e, t, n) {
138
+ CmnLib.debugLog && DebugMng.myTrace("[update_check] _index.jsonを取得しました", "D");
139
+ let i = await e.json();
140
+ if (!await this.#i(i.version, n)) return;
141
+ let a = this.#e.platform + "_" + this.#e.arch, o = i[a];
142
+ if (o) {
143
+ let { cn: e, path: r } = o;
144
+ await this.#a(t, a + "-" + e, r), await this.#o(n);
145
+ return;
146
+ }
147
+ let c = "", u = /* @__PURE__ */ RegExp("^" + this.#e.platform + "_"), d = Object.entries(i).flatMap(([e, { path: n, cn: r }]) => u.test(e) ? (c += "\n- " + n, this.#a(t, e + "-" + r, n)) : []);
148
+ n.message = `CPU = ${this.#e.arch}\nに対応するファイルが見つかりません。同じOSのファイルをすべてダウンロードしますか?`, n.detail = `${String(d.length)} 個ファイルがあります` + c;
149
+ let { response: f } = await to_app.showMessageBox(n);
150
+ f > 0 || (await Promise.allSettled(d), await this.#o(n));
151
+ }
152
+ async #r(e, t) {
153
+ let n = await this.fetch(e + `latest${CmnLib.isMac ? "-mac" : ""}.yml`);
154
+ if (!n.ok) {
155
+ if (CmnLib.debugLog) throw "[update_check] .ymlが見つかりません";
156
+ return;
157
+ }
158
+ CmnLib.debugLog && DebugMng.myTrace("[update_check] .ymlを取得しました", "D");
159
+ let i = await n.text(), a = /version: (.+)/.exec(i)?.[1];
160
+ if (!a) throw "[update_check] .yml に version が見つかりません";
161
+ if (!await this.#i(a, t)) return;
162
+ let o = /path: (.+)/.exec(i);
163
+ if (!o) throw "[update_check] path が見つかりません";
164
+ let [, c] = o;
165
+ if (!c) throw "[update_check] path が見つかりません.";
166
+ CmnLib.debugLog && DebugMng.myTrace(`[update_check] path=${c}`, "D");
167
+ let l = /sha512: (.+)/.exec(i);
168
+ if (!l) throw "[update_check] sha512 が見つかりません";
169
+ let [, u] = l;
170
+ CmnLib.debugLog && DebugMng.myTrace(`[update_check] sha=${u ?? ""}=`, "D");
171
+ let [, d, f] = /(.+)(\.\w+)/.exec(c) ?? [
172
+ "",
173
+ "",
174
+ ""
175
+ ];
176
+ await this.#a(e, d + "-" + this.#e.arch + f, c), await this.#o(t);
177
+ }
178
+ async #i(e, t) {
179
+ let n = this.#e.getVersion;
180
+ if (CmnLib.debugLog && DebugMng.myTrace(`[update_check] 現在ver=${n} 新規ver=${e}`, "D"), e === n) return CmnLib.debugLog && DebugMng.myTrace("[update_check] バージョン更新なし", "I"), !1;
181
+ t.detail = `現在 NOW ver ${n}\n新規 NEW ver ${e}`;
182
+ let { response: i } = await to_app.showMessageBox(t);
183
+ return i > 0 ? !1 : (CmnLib.debugLog && DebugMng.myTrace("[update_check] アプリダウンロード開始", "D"), !0);
184
+ }
185
+ async #a(e, t, n) {
186
+ CmnLib.debugLog && DebugMng.myTrace(`[update_check] アプリファイルDL試行... url=${e + t}`, "D");
187
+ let i = await this.fetch(e + t);
188
+ if (!i.ok) {
189
+ CmnLib.debugLog && DebugMng.myTrace(`[update_check] アプリファイルが見つかりません url=${e + n}`);
190
+ return;
191
+ }
192
+ let a = this.#e.downloads + "/" + n;
193
+ CmnLib.debugLog && DebugMng.myTrace(`[update_check] pathDL=${a}`, "D"), await this.writeFile(a, new DataView(await i.arrayBuffer()));
194
+ }
195
+ async #o(e) {
196
+ CmnLib.debugLog && DebugMng.myTrace("アプリファイルを保存しました", "D"), e.buttons.pop(), e.message = `アプリ【${this.cfg.oCfg.book.title}】の更新パッケージを\nダウンロードしました`, await to_app.showMessageBox(e);
197
+ }
198
+ window = (e) => {
199
+ let i = argChk_Num(e, "x", Number(this.val.getVal("sys:const.sn.nativeWindow.x", 0))), a = argChk_Num(e, "y", Number(this.val.getVal("sys:const.sn.nativeWindow.y", 0))), o = argChk_Num(e, "w", Number(this.val.getVal("sys:const.sn.nativeWindow.w", CmnLib.stageW))), s = argChk_Num(e, "h", Number(this.val.getVal("sys:const.sn.nativeWindow.h", CmnLib.stageH)));
200
+ return to_app.window(argChk_Boolean(e, "centering", !1), i, a, CmnLib.stageW, CmnLib.stageH), this.val.setVal_Nochk("sys", "const.sn.nativeWindow.x", i), this.val.setVal_Nochk("sys", "const.sn.nativeWindow.y", a), this.val.setVal_Nochk("sys", "const.sn.nativeWindow.w", o), this.val.setVal_Nochk("sys", "const.sn.nativeWindow.h", s), this.flush(), !1;
201
+ };
202
+ capturePage(e, t, n, r) {
203
+ to_app.capturePage(e, t, n).then(() => r());
204
+ }
205
+ async savePic(e, t) {
206
+ let n = t.slice(t.indexOf(",", 20) + 1);
207
+ await this.ensureFile(e), await this.writeFile(e, n), CmnLib.debugLog && console.log(`画像ファイル ${e} を保存しました`);
208
+ }
8
209
  };
9
- //# sourceMappingURL=app.js.map
210
+ export { CmnLib, Layer, SysApp, argChk_Boolean, argChk_Num };
211
+
212
+ //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"app.js","names":["#hInfo","#setStore","mbo: MessageBoxOptions","#idxjs_found","#idxjs_not_found","#dl_start","#dl_app","#dl_comp","a: Promise<void>[]"],"sources":["../src/sn/SysApp.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport type {T_HINFO} from '../appMain_cmn';\nimport {SysBase} from './SysBase';\nimport {CmnLib, getDateStr, argChk_Boolean, argChk_Num, uint} from './CmnLib';\nimport type {T_HTag, TTag} from './Grammar';\nimport type {T_Variable, T_Data4Vari, T_SysBaseParams, T_SysBaseLoadedParams, T_H_TMP_DATA} from './CmnInterface';\nimport {creSYS_DATA} from './CmnInterface';\nimport type {HPROC, SAVE_WIN_INF} from '../preload';\nimport {DebugMng} from './DebugMng';\nconst {to_app} = <{to_app: HPROC;}><unknown>globalThis;\n\nimport type {Application} from 'pixi.js';\nimport type {IpcRendererEvent, MessageBoxOptions} from 'electron/renderer';\nimport type {readFile} from 'fs-extra';\n\n\ntype T_upd__index_json_pkg = {\n\t[pkg_name: string]: {\n\t\tpath\t: string;\n\t\tsize\t: number;\n\t\tsha512\t: string;\n\t\tcn\t\t: string;\n\t};\n\t// 'win32_x64': {\n\t// \t'path': 'xxx-1.0.0-x64.exe',\n\t// \t'size': 23892...,\n\t// \t'sha512': 'GVaqx...',\n\t// \t'cn': 'YTNm...'\n\t// }\n}\ntype T_upd__index_json = T_upd__index_json_pkg & {\n\tversion\t: string;\n\tname\t: string;\n}\n\n\n\t// console.log はアプリのコンソールに出る\nexport class SysApp extends SysBase {\n\tconstructor(...[hPlg = {}, arg = {cur: 'prj/', crypto: false, dip: ''}]: T_SysBaseParams) {\t// DOMContentLoaded は呼び出し側でやる\n\t\tsuper(hPlg, arg);\n\n\t\tvoid this.loaded(hPlg, arg);\n\t}\n\tprotected override async loaded(...[hPlg, arg]: T_SysBaseLoadedParams) {\n\t\tawait super.loaded(hPlg, arg);\n\n\t\tthis.#hInfo = await to_app.getInfo();\n\t\tCmnLib.isPackaged = this.#hInfo.isPackaged;\n\t\tthis.arg = {...arg, cur: this.#hInfo.getAppPath.replaceAll('\\\\', '/') + (CmnLib.isPackaged ?'/doc/' :'/')+ arg.cur};\n\n\t\tto_app.on('log', (_: IpcRendererEvent, arg: unknown)=> console.info('main: %o', arg));\n\n\t\tthis.$path_downloads = this.#hInfo.downloads.replaceAll('\\\\', '/') +'/';\n\n\t\tCmnLib.isDbg = Boolean(this.#hInfo.env.SKYNOVEL_DBG) && ! CmnLib.isPackaged;\t// 配布版では無効\n\t\tif (CmnLib.isDbg) this.extPort = uint(this.#hInfo.env.SKYNOVEL_PORT ?? '3776');\n\n\t\tawait this.run();\n\t}\n\t#hInfo: T_HINFO = {\n\t\tgetAppPath\t: '',\n\t\tisPackaged\t: false,\n\t\tdownloads\t: '',\n\t\tuserData\t: '',\n\t\tgetVersion\t: '',\n\t\tenv\t\t\t: {},\n\t\tplatform\t: '',\n\t\tarch\t\t: '',\n\t};\n\n\n\toverride\treadonly\tfetch = (url: string)=> fetch(url, {cache: 'no-store'});\n\n\toverride\treadonly\tensureFile\t= to_app.ensureFile;\n\tprotected\tasync readFile(_path: string, _encoding: Parameters<typeof readFile>[1]): Promise<string> {return Promise.resolve('')}\n\tprotected\treadonly\twriteFile\t= to_app.writeFile;\n\toverride\treadonly\tappendFile\t= to_app.appendFile;\n\toverride\treadonly\toutputFile\t= to_app.outputFile;\n\n\toverride readonly\tisApp = true;\n\tprotected \toverride $path_userdata\t\t= '';\n\tprotected\toverride $path_downloads\t= '';\n\n\toverride async\tinitVal(hTmp: T_H_TMP_DATA, comp: (data: T_Data4Vari)=> void) {\n\t\t// システム情報\n\t\thTmp['const.sn.isDebugger'] = false;\n\t\t\t// システムがデバッグ用の特別なバージョンか\n\t\t\t// AIRNovel の const.flash.system.Capabilities.isDebugger\n\n\t\tthis.$path_userdata\t= CmnLib.isDbg\n\t\t\t? this.#hInfo.getAppPath.slice(0, -3) +'.vscode/'\t// /doc → /\n\t\t\t: this.#hInfo.userData.replaceAll('\\\\', '/') +'/';\n\n\t\tthis.flushSub = ()=> {\n\t\t\tvoid to_app.flush(JSON.parse(JSON.stringify(this.data)));\n\t\t}\t// 関数や undefined を無視してくれるので、structuredClone() よりいい動作\n\t\tawait this.#setStore();\n\n\t\tconst first = hTmp['const.sn.isFirstBoot']\n\t\t= await to_app.Store_isEmpty();\n\t\tif (first) {\n\t\t\t// データがない(初回起動)場合の処理\n\t\t\tthis.data.sys = creSYS_DATA();\n\t\t\tthis.data.mark = {};\n\t\t\tthis.data.kidoku = {};\n\t\t}\n\t\telse {\n\t\t\t// データがある場合の処理\n\t\t\tconst o = await to_app.Store_get();\n\t\t\tthis.data.sys = o.sys;\n\t\t\tthis.data.mark = o.mark;\n\t\t\tthis.data.kidoku = o.kidoku;\n\t\t}\n\n\t\t// ウインドウ位置\n\t\tconst x = argChk_Num(this.data.sys, 'const.sn.nativeWindow.x', 0);\n\t\t//const x = Number(this.val.getVal(\t// ここではまだ使えない\n\t\tconst y = argChk_Num(this.data.sys, 'const.sn.nativeWindow.y', 0);\n\t\tconst w = this.data.sys['const.sn.nativeWindow.w'] || CmnLib.stageW;\n\t\tconst h = this.data.sys['const.sn.nativeWindow.h'] || CmnLib.stageH;\n\n\t\tto_app.on('save_win_inf', (_e, {x, y, w, h}: SAVE_WIN_INF)=> {\n// // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n// console.log(`fn:SysApp.ts save_win_inf (${x},${y},${w},${h})`);\n\t\t\tthis.data.sys['const.sn.nativeWindow.x'] = x;\n\t\t\tthis.data.sys['const.sn.nativeWindow.y'] = y;\n\t\t\tthis.data.sys['const.sn.nativeWindow.w'] = w;\n\t\t\tthis.data.sys['const.sn.nativeWindow.h'] = h;\n\n\t\t\t// ・画面サイズ:screen.width ウインドウが表示されているディスプレイのサイズ\n\t\t\t//\t※ macOSなら【設定】-【ディスプレイ】-【使用形態】のイメージボタンにホバーすると出る数字と同じ\n// DebugMng.myTrace(`fn:SysApp.ts 画面サイズ(${String(screen.width)} x ${String(screen.height)}) 利用可能領域(${String(screen.availWidth)} x ${String(screen.availHeight)})`, 'W');\n\t\t\thTmp['const.sn.screenResolutionX'] = screen.availWidth;\t// 画面の最大水平解像度\n\t\t\thTmp['const.sn.screenResolutionY'] = screen.availHeight;\t// 画面の最大垂直解像度\n\t\t\t\t// AIRNovel の const.flash.system.Capabilities.screenResolutionX、Y\n\t\t\t\t// 上のメニューバーは含んでいない(たぶん an も)。含むのは workAreaSize\n\n\t\t\tcomp(this.data);\n\t\t});\n\n// console.log(`fn:SysApp.ts to_app.inited(${x},${y},${w},${h})`);\n\t\tawait to_app.inited(this.cfg.oCfg, {c: first, x, y, w, h});\n\t}\n\treadonly\t#setStore = ()=> to_app.Store({\n\t\tcwd\t: this.$path_userdata +'storage',\n\t\tname: this.arg.crypto ?'data_' :'data',\n\t\tencryptionKey: this.arg.crypto ?this.stk() :undefined,\n\t});\n\n\n\toverride init(hTag: T_HTag, appPixi: Application, val: T_Variable) {\n\t\tconst ret = super.init(hTag, appPixi, val);\n\t\tdocument.body.style.backgroundColor = '#000';\n\n\t\tto_app.on('shutdown', (_e)=> this.main?.destroy());\n\n\t\tconst ev = new MouseEvent('click');\n\t\tto_app.on('fire', (_e, KEY: string)=> this.fire(KEY, ev));\n\t\t//to_app.on('call', (_e: IpcRendererEvent, fn: string, label: string)=> main.resumeByJumpOrCall({fn, label}));\t// 実験・保留コード。セキュリティ懸念\n\n\t\treturn ret;\n\t}\n\n\n\toverride cvsResize() {\n\t\tsuper.cvsResize();\n\n\t\tif (! this.main) return;\n\t\tconst cvs = this.main.cvs;\n\t\tconst ps = cvs.parentElement?.style;\n\t\tif (! ps) return;\n\t\tconst s = cvs.style;\n\t\tif (this.isFullScr) {\n\t\t\tps.position = '';\t// SysBaseを上書き\n\t\t\tps.width = '';\n\t\t\tps.height= '';\n\n\t\t\ts.position = 'fixed';\n\t\t\ts.left = `${String(this.ofsLeft4elm)}px`;\n\t\t\ts.top = `${String(this.ofsTop4elm)}px`;\n\t\t}\n\t\telse {\n\t\t\tps.position = 'relative';\t// SysBaseを上書き\n\t\t\tps.width = `${String(this.cvsWidth)}px`;\n\t\t\tps.height= `${String(this.cvsHeight)}px`;\n\n\t\t\ts.position = 'relative';\n\t\t\ts.left = '';\n\t\t\ts.top = '';\n\t\t}\n\t}\n\n\n\toverride readonly copyBMFolder = (from: number, to: number)=> {\n\t\tconst path_from = `${this.$path_userdata}storage/${String(from)}/`;\n\t\tconst path_to = `${this.$path_userdata}storage/${String(to)}/`;\n\t\tvoid to_app.existsSync(path_from).then(async v=> {\n\t\t\tif (v) await to_app.copy(path_from, path_to);\n\t\t});\n\t};\n\toverride readonly eraseBMFolder = (place: number)=> {\n\t\tvoid to_app.remove(`${this.$path_userdata}storage/${String(place)}/`);\n\t};\n\n\t// アプリの終了\n\tprotected override readonly\tclose = ()=> {to_app.win_close(); return false}\n\n\t// プレイデータをエクスポート\n\tprotected override readonly\t_export = ()=> {\n\t\tvoid to_app.zip(\n\t\t\tthis.$path_userdata +'storage/',\n\t\t\tthis.$path_downloads + (this.arg.crypto ?'' :'no_crypto_')\n\t\t\t+ this.cfg.headNs + getDateStr('-', '_', '') +'.spd',\n\t\t).then(()=> {\n\t\t\tif (CmnLib.debugLog) console.log('プレイデータをエクスポートしました');\n\t\t\tthis.fire('sn:exported', new MouseEvent('click'));\t// 末尾に処理\n\t\t});\n\n\t\treturn false;\n\t}\n\n\t// プレイデータをインポート\n\tprotected override readonly\t_import = ()=> {\n\t\tto_app.showOpenDialog({\n\t\t\ttitle\t: 'play data import',\n\t\t\tfilters\t: [{name: 'sn import', extensions: ['spd']}],\n\t\t\tproperties: [\n\t\t\t\t'openFile',\t// - ファイルを選択するのを許可します。\n\t\t\t\t// openDirectory - ディレクトリを選択するのを許可します。\n\t\t\t\t// multiSelections - 複数のパスを選択するのを許可します。\n\t\t\t],\n\t\t}).then(async ({canceled, filePaths: [inp]})=> {\n\t\t\tif (canceled) return;\n\n\t\t\tconst bkFlush = ()=> this.flush();\n\t\t\tthis.flush = ()=> { /* empty */ };\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tawait to_app.unzip(inp!, this.$path_userdata +'storage/');\n\n\t\t\tawait this.#setStore();\n\t\t\tconst o = await to_app.Store_get();\n\t\t\tthis.data.sys = o.sys;\n\t\t\tthis.data.mark = o.mark;\n\t\t\tthis.data.kidoku = o.kidoku;\n\t\t\tthis.flush = bkFlush;\n\t\t\tthis.flush();\n\t\t\tthis.val.updateData(o);\n\n\t\t\tif (CmnLib.debugLog) console.log('プレイデータをインポートしました');\n\t\t\tthis.fire('sn:imported', new MouseEvent('click'));\n\t\t})\n\t\t.catch((e: unknown)=> console.log(`[import] err: ${String(e)}`));\n\n\t\treturn false;\n\t}\n\n\t// URLを開く\n\tprotected override readonly\tnavigate_to: TTag = hArg=> {\n\t\tconst {url} = hArg;\n\t\tif (! url) throw '[navigate_to] urlは必須です';\n\n\t\tto_app.navigate_to(url);\n\n\t\treturn false;\n\t}\n\t// タイトル指定\n\tprotected override titleSub(title: string) {to_app.win_setTitle(title)}\n\n\t// 全画面状態切替\n\tprotected override readonly\ttglFlscr_sub\n\t= ()=> to_app.isSimpleFullScreen().then(async isFS=> {\n\t\tthis.isFullScr = ! isFS;\n\t\tawait to_app.setSimpleFullScreen(this.isFullScr);\n\t});\n\n\t// 更新チェック\n\tprotected override readonly\tupdate_check: TTag = hArg=> {\n\t\tconst {url} = hArg;\n\t\tif (! url) throw '[update_check] urlは必須です';\n\t\tif (! url.endsWith('/')) throw '[update_check] urlの末尾は/にして下さい';\n\t\tif (CmnLib.debugLog) DebugMng.myTrace(`[update_check] url=${url}`, 'D');\n\n\t\tvoid this.fetch(url +'_index.json')\n\t\t.then(async o=> {\n\t\t\tconst mbo: MessageBoxOptions = {\n\t\t\t\ttitle\t: 'アプリ更新',\n\t\t\t\ticon\t: this.#hInfo.getAppPath +'/app/icon.png',\n\t\t\t\tbuttons\t: ['OK', 'Cancel'],\n\t\t\t\tdefaultId\t: 0,\n\t\t\t\tcancelId\t: 1,\n\t\t\t\tmessage\t: `アプリ【${this.cfg.oCfg.book.title}】に更新があります。\\nダウンロードしますか?`,\n\t\t\t};\n\t\t\tif (o.ok) await this.#idxjs_found(o, url, mbo);\n\t\t\telse await this.#idxjs_not_found(url, mbo);\n\t\t})\n\t\t.catch((e: unknown)=> DebugMng.myTrace(String(e), 'ET'));\n\n\t\treturn false;\n\t}\n\tasync #idxjs_found(o: Response, url: string, mbo: MessageBoxOptions) {\n\t\tif (CmnLib.debugLog) DebugMng.myTrace('[update_check] _index.jsonを取得しました', 'D');\n\t\tconst oIdx = <T_upd__index_json>await o.json();\n\t\tif (! await this.#dl_start(oIdx.version, mbo)) return;\n\n\t\tconst key = this.#hInfo.platform +'_'+ this.#hInfo.arch;\n\t//\tconst key = this.#hInfo.platform +'_@'+ this.#hInfo.arch;\n\t\t\t// アーキテクチャがない場合の動作テスト\n\t\tconst k = oIdx[key];\n\t\tif (k) {\n\t\t\tconst {cn, path} = k;\n\t\t\tawait this.#dl_app(url, key +'-'+ cn, path);\n\t\t\tawait this.#dl_comp(mbo);\n\t\t\treturn;\n\t\t}\n\n\t\tlet d = '';\n\t\tconst regOldSameKey = new RegExp('^'+ this.#hInfo.platform +'_');\n\t\tconst a: Promise<void>[] = Object.entries(<{[nm: string]: {\n\t\t\tpath: string,\n\t\t\tcn\t: string,\n\t\t}}>oIdx)\n\t\t.flatMap(([nm, {path, cn}])=> {\n\t\t\tif (! regOldSameKey.test(nm)) return [];\n\t\t\td += '\\n- '+ path;\n\t\t\treturn this.#dl_app(url, nm +'-'+ cn, path);\n\t\t});\n\n\t\tmbo.message = `CPU = ${this.#hInfo.arch}\\nに対応するファイルが見つかりません。同じOSのファイルをすべてダウンロードしますか?`;\n\t\tmbo.detail = `${String(a.length)} 個ファイルがあります`+ d;\n\t\tconst {response} = await to_app.showMessageBox(mbo);\n\t\tif (response > 0) return;\n\n\t\tawait Promise.allSettled(a);\n\t\tawait this.#dl_comp(mbo);\n\t}\n\tasync #idxjs_not_found(url: string, mbo: MessageBoxOptions) {\n\t\tconst o = await this.fetch(url +`latest${CmnLib.isMac ?'-mac' :''}.yml`);\n\t\tif (! o.ok) {\n\t\t\tif (CmnLib.debugLog) throw '[update_check] .ymlが見つかりません';\n\t\t\treturn;\n\t\t}\n\t\tif (CmnLib.debugLog) DebugMng.myTrace('[update_check] .ymlを取得しました', 'D');\n\t\tconst sYml = await o.text();\n\t\tconst mv = /version: (.+)/.exec(sYml);\n\t\tconst mv2 = mv?.[1];\n\t\tif (! mv2) throw '[update_check] .yml に version が見つかりません';\n\n\t\tif (! await this.#dl_start(mv2, mbo)) return;\n\n\n\t\tconst mp = /path: (.+)/.exec(sYml);\n\t\tif (! mp) throw '[update_check] path が見つかりません';\n\t\tconst [,path] = mp;\n\t\tif (! path) throw '[update_check] path が見つかりません.';\n\t\tif (CmnLib.debugLog) DebugMng.myTrace(`[update_check] path=${path}`, 'D');\n\n\t\tconst mc = /sha512: (.+)/.exec(sYml);\n\t\tif (! mc) throw '[update_check] sha512 が見つかりません';\n\t\tconst [,sha] = mc;\n\t\tif (CmnLib.debugLog) DebugMng.myTrace(`[update_check] sha=${sha ?? ''}=`, 'D');\n\n\t\t// (id)-1.0.0-arm64.dmg\n\t\tconst [,id, arch] = /(.+)(\\.\\w+)/.exec(path) ?? ['', '', ''];\n\t\tawait this.#dl_app(url, id + '-' + this.#hInfo.arch + arch, path);\n\t\tawait this.#dl_comp(mbo);\n\t}\n\n\tasync #dl_start(netver: string, mbo: MessageBoxOptions): Promise<boolean> {\n\t\tconst appver = this.#hInfo.getVersion;\n\t\tif (CmnLib.debugLog) DebugMng.myTrace(`[update_check] 現在ver=${appver} 新規ver=${netver}`, 'D');\n\t\tif (netver === appver) {\n\t\t\tif (CmnLib.debugLog) DebugMng.myTrace('[update_check] バージョン更新なし', 'I');\n\t\t\treturn false;\n\t\t}\n\n\t\tmbo.detail = `現在 NOW ver ${appver}\\n新規 NEW ver ${netver}`;\n\t\tconst {response} = await to_app.showMessageBox(mbo);\n\t\tif (response > 0) return false;\n\n\t\t// アプリダウンロード\n\t\tif (CmnLib.debugLog) DebugMng.myTrace('[update_check] アプリダウンロード開始', 'D');\n\n\t\treturn true;\n\t}\n\tasync #dl_app(url: string, urlApp: string, fn: string) {\n\t\tif (CmnLib.debugLog) DebugMng.myTrace(`[update_check] アプリファイルDL試行... url=${url + urlApp}`, 'D');\n\t\tconst o = await this.fetch(url + urlApp);\n\t\tif (! o.ok) {\n\t\t\tif (CmnLib.debugLog) DebugMng.myTrace(`[update_check] アプリファイルが見つかりません url=${url + fn}`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst pathDL = this.#hInfo.downloads +'/'+ fn;\n\t\tif (CmnLib.debugLog) DebugMng.myTrace(`[update_check] pathDL=${pathDL}`, 'D');\n\n\t\tawait this.writeFile(pathDL, new DataView(await o.arrayBuffer()));\n\t}\n\tasync #dl_comp(mbo: MessageBoxOptions) {\n\t\tif (CmnLib.debugLog) DebugMng.myTrace('アプリファイルを保存しました', 'D');\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\tmbo.buttons!.pop();\n\t\tmbo.message = `アプリ【${this.cfg.oCfg.book.title}】の更新パッケージを\\nダウンロードしました`;\n//\t\t\tmbo.message = `アプリ【${this.cfg.oCfg.book.title}】の更新パッケージを\\nダウンロードしました`+ (isOk ?'' :'が、破損しています。\\n開発元に連絡してください');\n\t\tawait to_app.showMessageBox(mbo);\n\t}\n\n\t// アプリウインドウ設定\n\tprotected override readonly\twindow: TTag = hArg=> {\n\t\tconst x = argChk_Num(hArg, 'x', Number(this.val.getVal('sys:const.sn.nativeWindow.x', 0)));\n\t\tconst y = argChk_Num(hArg, 'y', Number(this.val.getVal('sys:const.sn.nativeWindow.y', 0)));\n\t\tconst w = argChk_Num(hArg, 'w', Number(this.val.getVal('sys:const.sn.nativeWindow.w', CmnLib.stageW)));\n\t\tconst h = argChk_Num(hArg, 'h', Number(this.val.getVal('sys:const.sn.nativeWindow.h', CmnLib.stageH)));\n\t\tto_app.window(argChk_Boolean(hArg, 'centering', false), x, y, CmnLib.stageW, CmnLib.stageH);\n\t\tthis.val.setVal_Nochk('sys', 'const.sn.nativeWindow.x', x);\n\t\tthis.val.setVal_Nochk('sys', 'const.sn.nativeWindow.y', y);\n\t\tthis.val.setVal_Nochk('sys', 'const.sn.nativeWindow.w', w);\n\t\tthis.val.setVal_Nochk('sys', 'const.sn.nativeWindow.h', h);\n\t\tthis.flush();\n\n\t\treturn false;\n\t}\n\n\toverride capturePage(path: string, w: number, h: number, fnc: ()=> void) {\n\t\tvoid to_app.capturePage(path, w, h).then(()=> fnc());\n\t}\n\n\toverride async savePic(path: string, data_url: string) {\n\t\tconst bs64 = data_url.slice(data_url.indexOf(',', 20) +1);\n\t\tawait this.ensureFile(path);\n\t\tawait this.writeFile(path, bs64);\n\t\tif (CmnLib.debugLog) console.log(`画像ファイル ${path} を保存しました`);\n\t}\n\n}\n"],"mappings":"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"}