@famibee/skynovel 1.48.13 → 1.63.11

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 (289) hide show
  1. package/README.md +2 -1
  2. package/dist/CallStack.js +25 -0
  3. package/dist/CallStack.js.map +1 -0
  4. package/dist/EventMng.js +1588 -0
  5. package/dist/EventMng.js.map +1 -0
  6. package/dist/LayerMng.js +2924 -0
  7. package/dist/LayerMng.js.map +1 -0
  8. package/dist/PropParser.js +833 -0
  9. package/dist/PropParser.js.map +1 -0
  10. package/dist/Reading.js +784 -0
  11. package/dist/Reading.js.map +1 -0
  12. package/dist/ScriptIterator.js +1125 -0
  13. package/dist/ScriptIterator.js.map +1 -0
  14. package/dist/SndBuf.js +1519 -0
  15. package/dist/SndBuf.js.map +1 -0
  16. package/dist/SoundMng.js +136 -0
  17. package/dist/SoundMng.js.map +1 -0
  18. package/dist/Variable.js +479 -0
  19. package/dist/Variable.js.map +1 -0
  20. package/dist/app.d.ts +5 -1
  21. package/dist/app.d.ts.map +1 -1
  22. package/dist/appMain.d.ts +6 -6
  23. package/dist/appMain.d.ts.map +1 -1
  24. package/dist/appMain_cmn.d.ts +30 -0
  25. package/dist/appMain_cmn.d.ts.map +1 -0
  26. package/dist/build.d.ts +2 -0
  27. package/dist/build.d.ts.map +1 -0
  28. package/dist/gamepad.js +511 -0
  29. package/dist/gamepad.js.map +1 -0
  30. package/dist/index.d.ts +32 -38
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/preload.d.ts +34 -31
  33. package/dist/preload.d.ts.map +1 -1
  34. package/dist/sn/AnalyzeTagArg.d.ts +10 -6
  35. package/dist/sn/AnalyzeTagArg.d.ts.map +1 -1
  36. package/dist/sn/Areas.d.ts +7 -5
  37. package/dist/sn/Areas.d.ts.map +1 -1
  38. package/dist/sn/Button.d.ts +2 -2
  39. package/dist/sn/Button.d.ts.map +1 -1
  40. package/dist/sn/CallStack.d.ts +12 -5
  41. package/dist/sn/CallStack.d.ts.map +1 -1
  42. package/dist/sn/CmnInterface.d.ts +178 -117
  43. package/dist/sn/CmnInterface.d.ts.map +1 -1
  44. package/dist/sn/CmnLib.d.ts +20 -19
  45. package/dist/sn/CmnLib.d.ts.map +1 -1
  46. package/dist/sn/CmnTween.d.ts +6 -8
  47. package/dist/sn/CmnTween.d.ts.map +1 -1
  48. package/dist/sn/Config.d.ts +6 -4
  49. package/dist/sn/Config.d.ts.map +1 -1
  50. package/dist/sn/ConfigBase.d.ts +39 -24
  51. package/dist/sn/ConfigBase.d.ts.map +1 -1
  52. package/dist/sn/DebugMng.d.ts +3 -2
  53. package/dist/sn/DebugMng.d.ts.map +1 -1
  54. package/dist/sn/DesignCast.d.ts +5 -6
  55. package/dist/sn/DesignCast.d.ts.map +1 -1
  56. package/dist/sn/EventListenerCtn.d.ts +3 -3
  57. package/dist/sn/EventListenerCtn.d.ts.map +1 -1
  58. package/dist/sn/EventMng.d.ts +5 -11
  59. package/dist/sn/EventMng.d.ts.map +1 -1
  60. package/dist/sn/FocusMng.d.ts.map +1 -1
  61. package/dist/sn/FrameMng.d.ts +3 -4
  62. package/dist/sn/FrameMng.d.ts.map +1 -1
  63. package/dist/sn/Grammar.d.ts +133 -16
  64. package/dist/sn/Grammar.d.ts.map +1 -1
  65. package/dist/sn/GrpLayer.d.ts +8 -4
  66. package/dist/sn/GrpLayer.d.ts.map +1 -1
  67. package/dist/sn/Hyphenation.d.ts +42 -0
  68. package/dist/sn/Hyphenation.d.ts.map +1 -0
  69. package/dist/sn/Layer.d.ts +24 -4
  70. package/dist/sn/Layer.d.ts.map +1 -1
  71. package/dist/sn/LayerMng.d.ts +17 -24
  72. package/dist/sn/LayerMng.d.ts.map +1 -1
  73. package/dist/sn/Log.d.ts +18 -0
  74. package/dist/sn/Log.d.ts.map +1 -0
  75. package/dist/sn/Main.d.ts +4 -6
  76. package/dist/sn/Main.d.ts.map +1 -1
  77. package/dist/sn/Pages.d.ts +1 -1
  78. package/dist/sn/Pages.d.ts.map +1 -1
  79. package/dist/sn/PropParser.d.ts +2 -2
  80. package/dist/sn/PropParser.d.ts.map +1 -1
  81. package/dist/sn/Reading.d.ts +86 -0
  82. package/dist/sn/Reading.d.ts.map +1 -0
  83. package/dist/sn/RubySpliter.d.ts +1 -3
  84. package/dist/sn/RubySpliter.d.ts.map +1 -1
  85. package/dist/sn/ScriptIterator.d.ts +20 -10
  86. package/dist/sn/ScriptIterator.d.ts.map +1 -1
  87. package/dist/sn/SndBuf.d.ts +15 -5
  88. package/dist/sn/SndBuf.d.ts.map +1 -1
  89. package/dist/sn/SoundMng.d.ts +3 -2
  90. package/dist/sn/SoundMng.d.ts.map +1 -1
  91. package/dist/sn/SpritesMng.d.ts +4 -4
  92. package/dist/sn/SpritesMng.d.ts.map +1 -1
  93. package/dist/sn/SysApp.d.ts +12 -16
  94. package/dist/sn/SysApp.d.ts.map +1 -1
  95. package/dist/sn/SysBase.d.ts +24 -27
  96. package/dist/sn/SysBase.d.ts.map +1 -1
  97. package/dist/sn/SysNode.d.ts +9 -9
  98. package/dist/sn/SysNode.d.ts.map +1 -1
  99. package/dist/sn/SysWeb.d.ts +10 -14
  100. package/dist/sn/SysWeb.d.ts.map +1 -1
  101. package/dist/sn/TxtLayer.d.ts +79 -7
  102. package/dist/sn/TxtLayer.d.ts.map +1 -1
  103. package/dist/sn/TxtStage.d.ts +45 -30
  104. package/dist/sn/TxtStage.d.ts.map +1 -1
  105. package/dist/sn/Variable.d.ts +33 -13
  106. package/dist/sn/Variable.d.ts.map +1 -1
  107. package/dist/sn/htm2tx.d.ts +3 -0
  108. package/dist/sn/htm2tx.d.ts.map +1 -0
  109. package/dist/test/AnalyzeTagArg.test.d.ts +2 -0
  110. package/dist/test/AnalyzeTagArg.test.d.ts.map +1 -0
  111. package/dist/test/AreasTest.test.d.ts +2 -0
  112. package/dist/test/AreasTest.test.d.ts.map +1 -0
  113. package/dist/test/CmnLib.test.d.ts +2 -0
  114. package/dist/test/CmnLib.test.d.ts.map +1 -0
  115. package/dist/test/Config.test.d.ts +2 -0
  116. package/dist/test/Config.test.d.ts.map +1 -0
  117. package/dist/test/Grammar.test.d.ts +2 -0
  118. package/dist/test/Grammar.test.d.ts.map +1 -0
  119. package/dist/test/HyphTest.test.d.ts +2 -0
  120. package/dist/test/HyphTest.test.d.ts.map +1 -0
  121. package/dist/test/Log.test.d.ts +2 -0
  122. package/dist/test/Log.test.d.ts.map +1 -0
  123. package/dist/test/PropParser.test.d.ts +2 -0
  124. package/dist/test/PropParser.test.d.ts.map +1 -0
  125. package/dist/test/RubySpliter.test.d.ts +2 -0
  126. package/dist/test/RubySpliter.test.d.ts.map +1 -0
  127. package/dist/test/SysTest.d.ts +5 -0
  128. package/dist/test/SysTest.d.ts.map +1 -0
  129. package/dist/test/ValTest.d.ts +31 -0
  130. package/dist/test/ValTest.d.ts.map +1 -0
  131. package/dist/test/Variable.test.d.ts +2 -0
  132. package/dist/test/Variable.test.d.ts.map +1 -0
  133. package/dist/web.d.ts +5 -1
  134. package/dist/web.d.ts.map +1 -1
  135. package/dist/web.js +6 -30102
  136. package/dist/web.js.map +1 -1
  137. package/dist/web2.js +23020 -0
  138. package/dist/web2.js.map +1 -0
  139. package/dist_app/CallStack.js +25 -0
  140. package/dist_app/CallStack.js.map +1 -0
  141. package/dist_app/EventMng.js +1588 -0
  142. package/dist_app/EventMng.js.map +1 -0
  143. package/dist_app/LayerMng.js +2924 -0
  144. package/dist_app/LayerMng.js.map +1 -0
  145. package/dist_app/PropParser.js +833 -0
  146. package/dist_app/PropParser.js.map +1 -0
  147. package/dist_app/Reading.js +784 -0
  148. package/dist_app/Reading.js.map +1 -0
  149. package/dist_app/ScriptIterator.js +1125 -0
  150. package/dist_app/ScriptIterator.js.map +1 -0
  151. package/dist_app/SndBuf.js +1519 -0
  152. package/dist_app/SndBuf.js.map +1 -0
  153. package/dist_app/SoundMng.js +136 -0
  154. package/dist_app/SoundMng.js.map +1 -0
  155. package/dist_app/Variable.js +479 -0
  156. package/dist_app/Variable.js.map +1 -0
  157. package/dist_app/app.d.ts +9 -0
  158. package/dist_app/app.d.ts.map +1 -0
  159. package/dist_app/app.js +9 -0
  160. package/dist_app/app.js.map +1 -0
  161. package/dist_app/app2.js +19819 -0
  162. package/dist_app/app2.js.map +1 -0
  163. package/dist_app/appMain.d.ts +9 -0
  164. package/dist_app/appMain.d.ts.map +1 -0
  165. package/dist_app/appMain.js +23 -0
  166. package/dist_app/appMain.js.map +1 -0
  167. package/dist_app/appMain_cmn.d.ts +30 -0
  168. package/dist_app/appMain_cmn.d.ts.map +1 -0
  169. package/dist_app/build.d.ts +2 -0
  170. package/dist_app/build.d.ts.map +1 -0
  171. package/dist_app/gamepad.js +511 -0
  172. package/dist_app/gamepad.js.map +1 -0
  173. package/dist_app/index.d.ts +33 -0
  174. package/dist_app/index.d.ts.map +1 -0
  175. package/dist_app/preload.d.ts +47 -0
  176. package/dist_app/preload.d.ts.map +1 -0
  177. package/dist_app/preload.js +2 -0
  178. package/dist_app/preload.js.map +1 -0
  179. package/dist_app/sn/AnalyzeTagArg.d.ts +28 -0
  180. package/dist_app/sn/AnalyzeTagArg.d.ts.map +1 -0
  181. package/dist_app/sn/Areas.d.ts +15 -0
  182. package/dist_app/sn/Areas.d.ts.map +1 -0
  183. package/dist_app/sn/Button.d.ts +23 -0
  184. package/dist_app/sn/Button.d.ts.map +1 -0
  185. package/dist_app/sn/CallStack.d.ts +23 -0
  186. package/dist_app/sn/CallStack.d.ts.map +1 -0
  187. package/dist_app/sn/CmnInterface.d.ts +227 -0
  188. package/dist_app/sn/CmnInterface.d.ts.map +1 -0
  189. package/dist_app/sn/CmnLib.d.ts +46 -0
  190. package/dist_app/sn/CmnLib.d.ts.map +1 -0
  191. package/dist_app/sn/CmnTween.d.ts +35 -0
  192. package/dist_app/sn/CmnTween.d.ts.map +1 -0
  193. package/dist_app/sn/Config.d.ts +12 -0
  194. package/dist_app/sn/Config.d.ts.map +1 -0
  195. package/dist_app/sn/ConfigBase.d.ts +111 -0
  196. package/dist_app/sn/ConfigBase.d.ts.map +1 -0
  197. package/dist_app/sn/DebugMng.d.ts +14 -0
  198. package/dist_app/sn/DebugMng.d.ts.map +1 -0
  199. package/dist_app/sn/DesignCast.d.ts +53 -0
  200. package/dist_app/sn/DesignCast.d.ts.map +1 -0
  201. package/dist_app/sn/EventListenerCtn.d.ts +13 -0
  202. package/dist_app/sn/EventListenerCtn.d.ts.map +1 -0
  203. package/dist_app/sn/EventMng.d.ts +29 -0
  204. package/dist_app/sn/EventMng.d.ts.map +1 -0
  205. package/dist_app/sn/FocusMng.d.ts +13 -0
  206. package/dist_app/sn/FocusMng.d.ts.map +1 -0
  207. package/dist_app/sn/FrameMng.d.ts +20 -0
  208. package/dist_app/sn/FrameMng.d.ts.map +1 -0
  209. package/dist_app/sn/Grammar.d.ts +291 -0
  210. package/dist_app/sn/Grammar.d.ts.map +1 -0
  211. package/dist_app/sn/GrpLayer.d.ts +49 -0
  212. package/dist_app/sn/GrpLayer.d.ts.map +1 -0
  213. package/dist_app/sn/Hyphenation.d.ts +42 -0
  214. package/dist_app/sn/Hyphenation.d.ts.map +1 -0
  215. package/dist_app/sn/Layer.d.ts +86 -0
  216. package/dist_app/sn/Layer.d.ts.map +1 -0
  217. package/dist_app/sn/LayerMng.d.ts +46 -0
  218. package/dist_app/sn/LayerMng.d.ts.map +1 -0
  219. package/dist_app/sn/Log.d.ts +18 -0
  220. package/dist_app/sn/Log.d.ts.map +1 -0
  221. package/dist_app/sn/Main.d.ts +16 -0
  222. package/dist_app/sn/Main.d.ts.map +1 -0
  223. package/dist_app/sn/Pages.d.ts +26 -0
  224. package/dist_app/sn/Pages.d.ts.map +1 -0
  225. package/dist_app/sn/PropParser.d.ts +12 -0
  226. package/dist_app/sn/PropParser.d.ts.map +1 -0
  227. package/dist_app/sn/Reading.d.ts +86 -0
  228. package/dist_app/sn/Reading.d.ts.map +1 -0
  229. package/dist_app/sn/RubySpliter.d.ts +14 -0
  230. package/dist_app/sn/RubySpliter.d.ts.map +1 -0
  231. package/dist_app/sn/ScriptIterator.d.ts +58 -0
  232. package/dist_app/sn/ScriptIterator.d.ts.map +1 -0
  233. package/dist_app/sn/SndBuf.d.ts +30 -0
  234. package/dist_app/sn/SndBuf.d.ts.map +1 -0
  235. package/dist_app/sn/SoundMng.d.ts +16 -0
  236. package/dist_app/sn/SoundMng.d.ts.map +1 -0
  237. package/dist_app/sn/SpritesMng.d.ts +27 -0
  238. package/dist_app/sn/SpritesMng.d.ts.map +1 -0
  239. package/dist_app/sn/SysApp.d.ts +32 -0
  240. package/dist_app/sn/SysApp.d.ts.map +1 -0
  241. package/dist_app/sn/SysBase.d.ts +79 -0
  242. package/dist_app/sn/SysBase.d.ts.map +1 -0
  243. package/dist_app/sn/SysNode.d.ts +15 -0
  244. package/dist_app/sn/SysNode.d.ts.map +1 -0
  245. package/dist_app/sn/SysWeb.d.ts +26 -0
  246. package/dist_app/sn/SysWeb.d.ts.map +1 -0
  247. package/dist_app/sn/TxtLayer.d.ts +121 -0
  248. package/dist_app/sn/TxtLayer.d.ts.map +1 -0
  249. package/dist_app/sn/TxtStage.d.ts +90 -0
  250. package/dist_app/sn/TxtStage.d.ts.map +1 -0
  251. package/dist_app/sn/Variable.d.ts +48 -0
  252. package/dist_app/sn/Variable.d.ts.map +1 -0
  253. package/dist_app/sn/htm2tx.d.ts +3 -0
  254. package/dist_app/sn/htm2tx.d.ts.map +1 -0
  255. package/dist_app/test/AnalyzeTagArg.test.d.ts +2 -0
  256. package/dist_app/test/AnalyzeTagArg.test.d.ts.map +1 -0
  257. package/dist_app/test/AreasTest.test.d.ts +2 -0
  258. package/dist_app/test/AreasTest.test.d.ts.map +1 -0
  259. package/dist_app/test/CmnLib.test.d.ts +2 -0
  260. package/dist_app/test/CmnLib.test.d.ts.map +1 -0
  261. package/dist_app/test/Config.test.d.ts +2 -0
  262. package/dist_app/test/Config.test.d.ts.map +1 -0
  263. package/dist_app/test/Grammar.test.d.ts +2 -0
  264. package/dist_app/test/Grammar.test.d.ts.map +1 -0
  265. package/dist_app/test/HyphTest.test.d.ts +2 -0
  266. package/dist_app/test/HyphTest.test.d.ts.map +1 -0
  267. package/dist_app/test/Log.test.d.ts +2 -0
  268. package/dist_app/test/Log.test.d.ts.map +1 -0
  269. package/dist_app/test/PropParser.test.d.ts +2 -0
  270. package/dist_app/test/PropParser.test.d.ts.map +1 -0
  271. package/dist_app/test/RubySpliter.test.d.ts +2 -0
  272. package/dist_app/test/RubySpliter.test.d.ts.map +1 -0
  273. package/dist_app/test/SysTest.d.ts +5 -0
  274. package/dist_app/test/SysTest.d.ts.map +1 -0
  275. package/dist_app/test/ValTest.d.ts +31 -0
  276. package/dist_app/test/ValTest.d.ts.map +1 -0
  277. package/dist_app/test/Variable.test.d.ts +2 -0
  278. package/dist_app/test/Variable.test.d.ts.map +1 -0
  279. package/dist_app/web.d.ts +9 -0
  280. package/dist_app/web.d.ts.map +1 -0
  281. package/package.json +57 -51
  282. package/dist/app.js +0 -28154
  283. package/dist/app.js.map +0 -1
  284. package/dist/appMain.js +0 -16
  285. package/dist/appMain.js.map +0 -1
  286. package/dist/preload.js +0 -2
  287. package/dist/preload.js.map +0 -1
  288. package/dist/sn/ReadState.d.ts +0 -79
  289. package/dist/sn/ReadState.d.ts.map +0 -1
@@ -0,0 +1,479 @@
1
+ import { u as S, c as p, a as v, i as f, b, d as c, e as d } from "./app2.js";
2
+ import { c as C } from "./CallStack.js";
3
+ import { PropParser as w } from "./PropParser.js";
4
+ import { R as N } from "./Reading.js";
5
+ class _ {
6
+ #t = {};
7
+ clear() {
8
+ this.#t = {};
9
+ }
10
+ static from(t) {
11
+ const s = new _();
12
+ return s.#t = { ...t }, s;
13
+ }
14
+ val() {
15
+ return { ...this.#t };
16
+ }
17
+ search(t) {
18
+ return Object.entries(this.#t).some(([s, e]) => t >= parseInt(s) && t <= e);
19
+ }
20
+ record(t) {
21
+ if (!this.search(t)) {
22
+ for (const [s, e] of Object.entries(this.#t))
23
+ if (e + 1 === t) {
24
+ String(t + 1) in this.#t ? (this.#t[s] = this.#t[t + 1], delete this.#t[t + 1]) : this.#t[s] = t;
25
+ return;
26
+ }
27
+ if (String(t + 1) in this.#t) {
28
+ this.#t[t] = this.#t[t + 1], delete this.#t[t + 1];
29
+ return;
30
+ }
31
+ this.#t[t] = t;
32
+ }
33
+ }
34
+ erase(t) {
35
+ if (this.search(t)) {
36
+ if (String(t) in this.#t) {
37
+ this.#t[t] > t && (this.#t[t + 1] = this.#t[t]), delete this.#t[t];
38
+ return;
39
+ }
40
+ for (const [s, e] of Object.entries(this.#t))
41
+ if (!(t < parseInt(s) || e < t)) {
42
+ if (this.#t[s] === t) {
43
+ this.#t[s] = t - 1;
44
+ return;
45
+ }
46
+ this.#t[t + 1] = e, this.#t[s] = t - 1;
47
+ return;
48
+ }
49
+ }
50
+ }
51
+ get count() {
52
+ return Object.keys(this.#t).length;
53
+ }
54
+ // 4tst
55
+ toString() {
56
+ let t = "";
57
+ for (const s of Object.keys(this.#t).map((e) => parseInt(e)).sort((e, i) => e - i))
58
+ t += s === this.#t[s] ? "," + String(s) : "," + String(s) + "~" + String(this.#t[String(s)]);
59
+ return t;
60
+ }
61
+ }
62
+ class g {
63
+ constructor(t, s) {
64
+ this.cfg = t, s.let = (e) => this.#o(e), s.let_abs = (e) => this.#P(e), s.let_char_at = (e) => this.#R(e), s.let_index_of = (e) => this.#L(e), s.let_length = (e) => this.#K(e), s.let_replace = (e) => this.#F(e), s.let_round = (e) => this.#M(e), s.let_search = (e) => this.#D(e), s.let_substr = (e) => this.#x(e), s.clearsysvar = () => this.#l(), s.clearvar = () => this.#E(), s.dump_val = () => this.#B(), s.copybookmark = (e) => this.#V(e), s.erasebookmark = (e) => this.#j(e), this.defTmp("const.sn.bookmark.json", () => {
65
+ const e = [];
66
+ for (const [i, o] of Object.entries(this.#s.mark)) {
67
+ const n = { ...o.json };
68
+ n.place = S(i), e.push(n);
69
+ }
70
+ return JSON.stringify(e);
71
+ }), this.#l(!0), this.#i["const.sn.config.window.width"] = t.oCfg.window.width, this.#i["const.sn.config.window.height"] = t.oCfg.window.height, this.#i["const.sn.config.book.title"] = t.oCfg.book.title, this.#i["const.sn.config.book.version"] = t.oCfg.book.version;
72
+ }
73
+ #t = p();
74
+ #i = v();
75
+ #e = {
76
+ sys: {},
77
+ // clearsysvarを呼ぶので
78
+ save: this.#t,
79
+ tmp: this.#i,
80
+ mp: {},
81
+ mark: {}
82
+ };
83
+ #r;
84
+ #s = {
85
+ sys: {},
86
+ // clearsysvarを呼ぶので
87
+ mark: {},
88
+ kidoku: {}
89
+ };
90
+ #n;
91
+ #a = {};
92
+ #d;
93
+ async setSys(t) {
94
+ this.#r = t, await t.initVal(this.#s, this.#i, (s) => {
95
+ this.updateData(s), this.cfg.oCfg.debug.variable ? this.#W(t) : this.#h = () => t.flush(), this.#d = (i, o) => t.callHook(i, o), t.addHook((i, o) => this.#O[i]?.(i, o));
96
+ const e = f(this.getVal("sys:sn.tagCh.msecWait", -1));
97
+ (this.#i["const.sn.isFirstBoot"] || e === -1) && this.#l(!0), this.#g = !!this.getVal("sys:sn.tagCh.doWait"), this.#k = !!this.getVal("sys:sn.tagCh.doWait_Kidoku"), this.#_ = f(this.getVal("sys:sn.tagCh.msecWait")), this.#m = f(this.getVal("sys:sn.tagCh.msecWait_Kidoku")), this.#y();
98
+ });
99
+ }
100
+ //MARK: SessionStorage で確認できるデバッグ機能
101
+ #W(t) {
102
+ sessionStorage.clear();
103
+ const s = this.cfg.headNs;
104
+ this.#h = () => {
105
+ const e = b();
106
+ for (const [h, r] of Object.entries(this.#n))
107
+ r instanceof Function || (e[h] = r);
108
+ sessionStorage[s + "sys"] = JSON.stringify(e);
109
+ const i = p();
110
+ for (const [h, r] of Object.entries(this.#t))
111
+ i[h] = r;
112
+ sessionStorage[s + "save"] = JSON.stringify(i);
113
+ const o = v();
114
+ for (const [h, r] of Object.entries(this.#i))
115
+ o[h] = r instanceof Function ? r() : r;
116
+ sessionStorage[s + "tmp"] = JSON.stringify(o);
117
+ const n = C();
118
+ for (const [h, r] of Object.entries(this.#e.mp))
119
+ n[h] = r;
120
+ sessionStorage[s + "mp"] = JSON.stringify(n);
121
+ const a = {};
122
+ for (const [h, r] of Object.entries(this.#s.mark))
123
+ a[f(h)] = r instanceof Function ? r() : r;
124
+ sessionStorage[s + "mark"] = JSON.stringify(a), sessionStorage[s + "kidoku"] = structuredClone(this.#s.kidoku), t.flush();
125
+ };
126
+ }
127
+ #y() {
128
+ N.playbackPage(
129
+ String(this.getVal("sys:const.sn.aPageLog", "[]")),
130
+ String(this.getVal("save:const.sn.styPaging", N.INI_STYPAGE))
131
+ );
132
+ }
133
+ #O = {
134
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
135
+ auth: (t, s) => this.#S(s.hBreakpoint.aData),
136
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
137
+ var: (t, s) => this.#r.send2Dbg(s.ri, { v: this.#e[s.scope] ?? {} }),
138
+ set_var: (t, s) => {
139
+ try {
140
+ this.#b(s.nm, s.val), this.#r.send2Dbg(s.ri, {});
141
+ } catch {
142
+ }
143
+ },
144
+ set_data_break: (t, s) => {
145
+ this.#S(s.a), this.#r.send2Dbg(s.ri, {});
146
+ },
147
+ disconnect: (t) => {
148
+ g.#c = {};
149
+ }
150
+ };
151
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
152
+ #S(t) {
153
+ g.#c = {};
154
+ for (const s of t) g.#c[s.dataId] = 1;
155
+ }
156
+ //MARK: 外からのデータで保持データを更新
157
+ // 初期化時やインポートなどで使用
158
+ updateData(t) {
159
+ this.#s = t, this.#n = this.#e.sys = this.#s.sys, this.#a = {};
160
+ for (const [s, e] of Object.entries(this.#s.kidoku))
161
+ this.#a[s] = _.from(e);
162
+ }
163
+ #h = () => {
164
+ };
165
+ flush() {
166
+ this.#h();
167
+ }
168
+ // 先にこのメソッドへの参照を配ってしまうので、中身を入れ替える
169
+ setDoRecProc(t) {
170
+ this.#v = t;
171
+ }
172
+ #v = (t) => {
173
+ };
174
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access
175
+ defTmp(t, s) {
176
+ this.#i[t] = s;
177
+ }
178
+ cloneMp() {
179
+ return { ...this.#e.mp };
180
+ }
181
+ setMp(t) {
182
+ this.#e.mp = t;
183
+ }
184
+ setMark(t, s) {
185
+ this.#s.mark[t] = s, this.flush();
186
+ }
187
+ getMark(t) {
188
+ const s = this.#s.mark[t];
189
+ if (!s) throw `place【${String(t)}】は存在しません`;
190
+ return s;
191
+ }
192
+ cloneSave() {
193
+ return { ...this.#e.save };
194
+ }
195
+ mark2save(t) {
196
+ this.#t = this.#e.save = { ...t.hSave }, this.#u = this.#t["sn.doRecLog"];
197
+ }
198
+ // 既読系
199
+ touchAreaKidoku(t) {
200
+ const s = this.#a[t];
201
+ return s || (this.#s.kidoku[t] = {}, this.#a[t] = new _());
202
+ }
203
+ getAreaKidoku(t) {
204
+ const s = this.#a[t];
205
+ if (!s) throw `hAreaKidoku${t}】は存在しません`;
206
+ return s;
207
+ }
208
+ saveKidoku() {
209
+ for (const [t, s] of Object.entries(this.#a))
210
+ this.#s.kidoku[t] = s.val();
211
+ this.flush();
212
+ }
213
+ // // しおり
214
+ // しおりの複写
215
+ #V(t) {
216
+ const s = c(t, "from", NaN), e = c(t, "to", NaN);
217
+ if (s === e) return !1;
218
+ const i = this.#s.mark[s];
219
+ if (!i) throw `from:${String(s)} のセーブデータは存在しません`;
220
+ return this.setMark(e, { ...i }), this.#r.copyBMFolder(s, e), !1;
221
+ }
222
+ // しおりの消去
223
+ #j(t) {
224
+ const s = c(t, "place", NaN);
225
+ return delete this.#s.mark[s], this.flush(), this.#r.eraseBMFolder(s), !1;
226
+ }
227
+ // // 変数操作
228
+ // 変数代入・演算
229
+ #o(t) {
230
+ if (!t.name) throw "nameは必須です";
231
+ let s = !0;
232
+ if (t.cast)
233
+ switch (t.cast) {
234
+ case "num":
235
+ c(t, "text", NaN);
236
+ break;
237
+ case "int":
238
+ t.text = String(f(c(t, "text", NaN)));
239
+ break;
240
+ case "uint":
241
+ t.text = String(S(c(t, "text", NaN)));
242
+ break;
243
+ case "bool":
244
+ d(t, "text", !1);
245
+ break;
246
+ case "str":
247
+ s = !1;
248
+ break;
249
+ default:
250
+ throw "cast【" + t.cast + "】は未定義です";
251
+ }
252
+ return this.#b(t.name, t.text, s), !1;
253
+ }
254
+ // 絶対値
255
+ #P(t) {
256
+ const s = c(t, "text", 0);
257
+ return t.text = String(s < 0 ? -s : s), this.#o(t), !1;
258
+ }
259
+ // 文字列から一字取りだし
260
+ #R(t) {
261
+ return t.text = (t.text ?? "").charAt(c(t, "pos", 0)), this.#o(t), !1;
262
+ }
263
+ // 文字列で検索
264
+ #L(t) {
265
+ const { val: s } = t;
266
+ if (!s) throw "valは必須です";
267
+ const e = c(t, "start", 0);
268
+ return t.text = String((t.text ?? "").indexOf(s, e)), this.#o(t), !1;
269
+ }
270
+ // 文字列の長さ
271
+ #K(t) {
272
+ return t.text = String((t.text ?? "").length), this.#o(t), !1;
273
+ }
274
+ // 正規表現で置換
275
+ #F(t) {
276
+ if (!t.reg) throw "regは必須です";
277
+ const { flags: s } = t, e = s ? new RegExp(t.reg, s) : new RegExp(t.reg);
278
+ return t.text = (t.text ?? "").replace(e, String(t.val)), this.#o(t), !1;
279
+ }
280
+ // 四捨五入
281
+ #M(t) {
282
+ const s = c(t, "text", 0);
283
+ return t.text = String(Math.round(s)), this.#o(t), !1;
284
+ }
285
+ // 正規表現で検索
286
+ #D(t) {
287
+ if (!t.reg) throw "regは必須です";
288
+ const { flags: s } = t, e = s ? new RegExp(t.reg, s) : new RegExp(t.reg);
289
+ return t.text = String((t.text ?? "").search(e)), this.#o(t), !1;
290
+ }
291
+ // 文字列から抜きだし
292
+ #x(t) {
293
+ const s = c(t, "pos", 0);
294
+ return t.text = t.len !== "all" ? (t.text ?? "").slice(s, s + f(c(t, "len", 1))) : (t.text ?? "").slice(s), this.#o(t), !1;
295
+ }
296
+ // // デバッグ・その他
297
+ // システム変数の全消去
298
+ #l(t = !1) {
299
+ const s = this.#n = this.#e.sys = this.#s.sys = b();
300
+ typeof process < "u" || (this.setVal_Nochk("sys", "const.sn.window.x", 0), this.setVal_Nochk("sys", "const.sn.window.y", 0)), this.setVal_Nochk("sys", "sn.tagCh.msecWait", this.cfg.oCfg.init.tagch_msecwait), this.setVal_Nochk("sys", "sn.tagCh.msecWait_Kidoku", this.cfg.oCfg.init.tagch_msecwait), this.setVal_Nochk("sys", "sn.auto.msecPageWait", c(s, "sn.auto.msecPageWait", this.cfg.oCfg.init.auto_msecpagewait)), this.setVal_Nochk("sys", "sn.auto.msecPageWait_Kidoku", c(s, "sn.auto.msecPageWait", this.cfg.oCfg.init.auto_msecpagewait));
301
+ for (const i of Object.values(this.#a)) i.clear();
302
+ return this.#e.mark = this.#s.mark = {}, t || this.#y(), this.flush(), !1;
303
+ }
304
+ // ゲーム変数の全消去
305
+ #E() {
306
+ const t = this.#t["const.sn.mesLayer"], s = this.#t["sn.doRecLog"], e = this.#t["const.sn.sLog"], i = this.#t["const.sn.styPaging"];
307
+ return this.#t = this.#e.save = p(), this.setVal_Nochk("save", "const.sn.mesLayer", t), this.setVal_Nochk("save", "sn.doRecLog", s), this.setVal_Nochk("save", "const.sn.sLog", e), this.setVal_Nochk("save", "const.sn.styPaging", i), !1;
308
+ }
309
+ #b(t, s, e = !0) {
310
+ if (!t) throw "[変数に値セット] nameは必須です";
311
+ if (s === void 0) throw "[変数に値セット] textは必須です(空文字はOK)";
312
+ const i = w.getValName(t);
313
+ if (!i) throw `[変数参照] name(${t})が変数名として異常です`;
314
+ const o = this.#e[i.scope];
315
+ if (!o) throw `[変数に値セット] scopeが異常【${String(i.scope)}】です`;
316
+ const n = i.name;
317
+ if (n.startsWith("const.") && n in o)
318
+ throw `[変数に値セット] 変数【${n}】は書き換え不可です`;
319
+ this.setVal_Nochk(i.scope, n, s, e);
320
+ }
321
+ setVal_Nochk(t, s, e, i = !1) {
322
+ const o = this.#e[t], n = i ? this.#f(e) : e, a = t + ":" + s;
323
+ if (a in g.#c) {
324
+ const h = o[s], r = n;
325
+ h != r && this.#d("data_break", {
326
+ dataId: a,
327
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
328
+ old_v: h,
329
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
330
+ new_v: r
331
+ });
332
+ }
333
+ o[s] = n, this.#w[a]?.(s, n ?? "");
334
+ }
335
+ // reload 再生成 Main に受け渡すため static
336
+ static #c = {};
337
+ // readonly getVal_save = (arg_name: string, def?: number | string)=> {
338
+ // if (! arg_name) throw '[変数参照] nameは必須です';
339
+ getVal(t, s, e = !1) {
340
+ if (!t) throw "[変数参照] nameは必須です";
341
+ const i = w.getValName(t);
342
+ if (!i) throw "[変数参照] name(" + t + ")が変数名として異常です";
343
+ const o = this.#e[i.scope];
344
+ if (!o) throw `[変数参照] scopeが異常【${String(i.scope)}】です`;
345
+ const n = i.name;
346
+ let a = o[n];
347
+ if (!(n in o)) {
348
+ if (a = s, e)
349
+ return o[n] = s, i.at === "@str" ? a : this.#f(a);
350
+ let h = "";
351
+ const r = n.split("."), k = r.length;
352
+ for (let u = 0; u < k; ++u, h += ".") {
353
+ if (h += r[u], !(h in o)) continue;
354
+ let l = JSON.parse(o[h]);
355
+ if (Object.prototype.toString.call(l) !== "[object Object]") {
356
+ if (u + 1 === k) {
357
+ a = l;
358
+ break;
359
+ }
360
+ continue;
361
+ }
362
+ let m = u;
363
+ for (; ++m < k; ) {
364
+ const y = r[m];
365
+ if (!(y in l)) {
366
+ a = s;
367
+ break;
368
+ }
369
+ if (l = l[y], Object.prototype.toString.call(l) !== "[object Object]" || m + 1 === k) {
370
+ a = l;
371
+ break;
372
+ }
373
+ }
374
+ a instanceof Object && (a = JSON.stringify(a));
375
+ break;
376
+ }
377
+ }
378
+ return a instanceof Function && (a = a()), i.at === "@str" ? a : this.#f(a);
379
+ }
380
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
381
+ #f(t) {
382
+ const s = t;
383
+ if (s === "true") return !0;
384
+ if (s === "false") return !1;
385
+ if (s === "null") return null;
386
+ if (s !== "undefined")
387
+ return this.#I.test(s) ? parseFloat(s) : t;
388
+ }
389
+ #I = /^-?[\d.]+$/;
390
+ // 変数のダンプ
391
+ #B() {
392
+ const t = { tmp: {}, sys: {}, save: {}, mp: {} };
393
+ for (const s in t) {
394
+ const e = this.#e[s], i = t[s];
395
+ for (const [o, n] of Object.entries(e))
396
+ n instanceof Function || (i[o] = n);
397
+ }
398
+ return console.info("🥟 [dump_val]", t), !1;
399
+ }
400
+ #u = !1;
401
+ doRecLog() {
402
+ return this.#u;
403
+ }
404
+ #g = !1;
405
+ get tagCh_doWait() {
406
+ return this.#g;
407
+ }
408
+ #k = !1;
409
+ get tagCh_doWait_Kidoku() {
410
+ return this.#k;
411
+ }
412
+ #_ = 0;
413
+ get tagCh_msecWait() {
414
+ return this.#_;
415
+ }
416
+ #m = 0;
417
+ get tagCh_msecWait_Kidoku() {
418
+ return this.#m;
419
+ }
420
+ #w = {
421
+ // sys
422
+ "sys:sn.tagCh.doWait": (t) => {
423
+ this.#g = this.#p(t);
424
+ },
425
+ "sys:sn.tagCh.doWait_Kidoku": (t) => {
426
+ this.#k = this.#p(t);
427
+ },
428
+ "sys:sn.tagCh.msecWait": (t) => {
429
+ this.#_ = this.#J(t);
430
+ },
431
+ "sys:sn.tagCh.msecWait_Kidoku": (t) => {
432
+ this.#m = this.#$(t);
433
+ },
434
+ "sys:sn.tagCh.canskip": (t) => this.#p(t),
435
+ "sys:sn.auto.msecPageWait": (t) => this.#N(t),
436
+ "sys:sn.auto.msecPageWait_Kidoku": (t) => this.#N(t),
437
+ "sys:sn.auto.msecLineWait": (t) => this.#C(t),
438
+ "sys:sn.auto.msecLineWait_Kidoku": (t) => this.#C(t),
439
+ // save
440
+ "save:sn.doRecLog": (t) => {
441
+ this.#v(
442
+ this.#u = this.#H(t)
443
+ );
444
+ },
445
+ "save:sn.userFnTail": (t, s) => {
446
+ const e = String(s);
447
+ if (e.includes("@")) throw "この変数では文字「@」は禁止です";
448
+ this.cfg.userFnTail = e;
449
+ },
450
+ // tmp
451
+ "tmp:flash.desktop.NativeApplication.nativeApplication.systemIdleMode": () => {
452
+ }
453
+ };
454
+ defValTrg(t, s) {
455
+ this.#w[t] = s;
456
+ }
457
+ #p = (t) => d(this.#n, t, !0);
458
+ #J = (t) => c(this.#n, t, 10);
459
+ #$ = (t) => c(
460
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
461
+ this.#n,
462
+ t,
463
+ this.cfg.oCfg.init.tagch_msecwait ?? 10
464
+ );
465
+ #N = (t) => c(
466
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
467
+ this.#n,
468
+ t,
469
+ this.cfg.oCfg.init.auto_msecpagewait ?? 3500
470
+ );
471
+ #C = (t) => c(this.#n, t, 500);
472
+ #H(t) {
473
+ return d(this.#t, t, !0);
474
+ }
475
+ }
476
+ export {
477
+ g as Variable
478
+ };
479
+ //# sourceMappingURL=Variable.js.map
@@ -0,0 +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 {HArg, IHTag} from './Grammar';\nimport type {IVariable, T_fncSetVal, typeProcVal, ISysBase, T_Data4Vari, T_Mark, IFncHook, 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 IVariable {\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 cfg: Config, hTag: IHTag) {\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);\t// 文字列で検索\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\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: HArg[] = [];\n\t\t\tfor (const [nm, mk] of Object.entries(this.#data.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\tthis.#clearsysvar(true);\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#sys\t: ISysBase;\n\t#data\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: IFncHook;\n\tasync setSys(sys: ISysBase) {\n\t\tthis.#sys = sys;\n\t\tawait sys.initVal(this.#data, this.#hTmp, data=> {\n\t\t\tthis.updateData(data);\n\n\t\t\tif (this.cfg.oCfg.debug.variable) this.#dbgVariable(sys);\n\t\t\telse this.#flush = ()=> sys.flush();\n\n\t\t\tthis.#callHook = (type, o)=> sys.callHook(type, o);\n\t\t//x\tthis.callHook = sys.callHook;\n\t\t\tsys.addHook((type, o)=> this.#hProcDbgRes[type]?.(type, o));\n\n\t\t\t// 初回の初期化と、v1.11.0 まで未初期化変数があった件の対策\n\t\t\tconst tm = int(this.getVal('sys:sn.tagCh.msecWait', -1));\n\t\t\tif (this.#hTmp['const.sn.isFirstBoot'] || tm === -1) this.#clearsysvar(true);\n\n\t\t\tthis.#tagCh_doWait = Boolean(this.getVal('sys:sn.tagCh.doWait'));\n\t\t\tthis.#tagCh_doWait_Kidoku = Boolean(this.getVal('sys:sn.tagCh.doWait_Kidoku'));\n\t\t\tthis.#tagCh_msecWait = int(this.getVal('sys:sn.tagCh.msecWait'));\n\t\t\tthis.#tagCh_msecWait_Kidoku = int(this.getVal('sys:sn.tagCh.msecWait_Kidoku'));\n\n\t\t\tthis.#saPageLog();\n\t\t});\n\t}\n\n\t//MARK: SessionStorage で確認できるデバッグ機能\n\t#dbgVariable(sys: ISysBase) {\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.#data.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.#data.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(data: T_Data4Vari): void {\n\t\tthis.#data = data;\n\t\tthis.#hSys = this.#hScopes.sys = this.#data.sys;\n\n\t\tthis.#hAreaKidoku = {};\n\t\tfor (const [fn, dk] of Object.entries(this.#data.kidoku)) {\n\t\t\tthis.#hAreaKidoku[fn] = Areas.from(dk);\n\t\t}\n\t\t// this.flush();\t// saveKidoku() に任せる\n\t}\n\t#flush\t= ()=> { /* empty */ };\n\tflush() {this.#flush()}\t// 先にこのメソッドへの参照を配ってしまうので、中身を入れ替える\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: typeProcVal) {(<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.#data.mark[place] = mark;\n\t\tthis.flush();\n\t}\n\tgetMark(place: number) {\n\t\tconst mark = this.#data.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.#data.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.#data.kidoku[fn] = ak.val();\n\t\t}\n\t\tthis.flush();\n\t}\n\n\n//\t// しおり\n\t// しおりの複写\n\t#copybookmark(hArg: HArg) {\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.#data.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: HArg) {\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.#data.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: HArg) {\n\t\tif (! hArg.name) throw 'nameは必須です';\n\n\t\tlet autocast = true;\n\t\tif (hArg.cast) {\n\t\t\t//switch (trim(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: HArg) {\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: HArg) {\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: HArg) {\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: HArg) {\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: HArg) {\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: HArg) {\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: HArg) {\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: HArg) {\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.#data.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.#data.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 hScope = this.#hScopes[<Scope>o.scope];\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tif (! hScope) throw `[変数に値セット] scopeが異常【${String(o.scope)}】です`;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\tconst nm = o.name!;\n\t\tif (nm.startsWith('const.') && nm in hScope) {\n\t\t\tthrow `[変数に値セット] 変数【${nm}】は書き換え不可です`;\n\t\t}\n\n\t\tthis.setVal_Nochk(<Scope>o.scope, nm, 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 val = autocast ?this.#castAuto(ival) : ival;\n\n\t\tconst fullnm = scope +':'+ nm;\n\t\tif (fullnm in Variable.#hSetEvent) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\tconst old_v = (<any>hScope)[nm];\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\tconst new_v = val;\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\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\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] = val;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tthis.#hSetValTrg[fullnm]?.(nm, val ?? '');\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}]='${val}' 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 hScope = this.#hScopes[<Scope>o.scope];\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tif (! hScope) throw `[変数参照] scopeが異常【${String(o.scope)}】です`;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\tconst val_name = o.name!;\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\tlet val = <T_VAL_DATA_FNC>(<any>hScope)[val_name];\n\t\t// let val = (<any>hScope)[val_name];\n// console.log(`fn:Variable.ts ・getVal arg_name=${arg_name}= val_name=${val_name}= A:${String(! (val_name in hScope))} val:%o`, val);\n\t\tif (! (val_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)[val_name] = def;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\t\t\treturn o.at === '@str' ?val :this.#castAuto(val);\n\t\t\t}\n\n\t\t\tlet nm = '';\n\t\t\tconst aNm = val_name.split('.');\n\t\t\tconst len = aNm.length;\n\t\t\tfor (let i=0; i<len; ++i, nm += '.') {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n\t\t\t\tnm += aNm[i];\n\t\t\t\tif (! (nm in hScope)) continue;\t// 存在しない変数名の場合、延ばす\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\t\tlet v = JSON.parse((<any>hScope)[nm]);\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[${o.scope ?? 'tmp'}'] a[${o.at ?? ''}] n[${val_name}'] ret['${String(val)}']('${typeof val}')'`);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn o.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\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","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","#data","uint","#hTmp","#hSave","creSAVEDATA","creTMP_DATA","#hScopes","#sys","#hSys","#hAreaKidoku","#callHook","sys","data","#dbgVariable","#flush","type","#hProcDbgRes","tm","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","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","hScope","scope","ival","#castAuto","fullnm","old_v","new_v","#hSetValTrg","def","touch","val_name","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":"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"}
@@ -0,0 +1,9 @@
1
+ import { HPlugin, IPlugin, IPluginInitArg } from './sn/CmnInterface';
2
+ import { HArg } from './sn/Grammar';
3
+ import { SysApp } from './sn/SysApp';
4
+ import { CmnLib, argChk_Num, argChk_Boolean } from './sn/CmnLib';
5
+ import { Layer } from './sn/Layer';
6
+ export type { HPlugin, IPlugin, IPluginInitArg };
7
+ export type { HArg };
8
+ export { SysApp, CmnLib, argChk_Num, argChk_Boolean, Layer };
9
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAC,CAAC;AAC/C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AACvC,YAAY,EAAC,IAAI,EAAC,CAAC;AAEnB,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAC,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AACjC,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { g as r, s as e, W as o, e as g, d as m } from "./app2.js";
2
+ export {
3
+ r as CmnLib,
4
+ e as Layer,
5
+ o as SysApp,
6
+ g as argChk_Boolean,
7
+ m as argChk_Num
8
+ };
9
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}