@famibee/skynovel 1.64.8 → 1.64.10

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 (219) hide show
  1. package/README.md +1 -1
  2. package/dist/Button.js +162 -0
  3. package/dist/Button.js.map +1 -0
  4. package/dist/CallStack.js.map +1 -1
  5. package/dist/CmnTween.js +201 -0
  6. package/dist/CmnTween.js.map +1 -0
  7. package/dist/DebugMng.js +105 -0
  8. package/dist/DebugMng.js.map +1 -0
  9. package/dist/EventMng.js +40 -39
  10. package/dist/EventMng.js.map +1 -1
  11. package/dist/GrpLayer.js +192 -0
  12. package/dist/GrpLayer.js.map +1 -0
  13. package/dist/LayerMng.js +483 -2422
  14. package/dist/LayerMng.js.map +1 -1
  15. package/dist/Main.js +394 -0
  16. package/dist/Main.js.map +1 -0
  17. package/dist/PropParser.js +1 -1
  18. package/dist/PropParser.js.map +1 -1
  19. package/dist/Reading.js +11 -11
  20. package/dist/Reading.js.map +1 -1
  21. package/dist/RubySpliter.js +90 -0
  22. package/dist/RubySpliter.js.map +1 -0
  23. package/dist/ScriptIterator.js +263 -353
  24. package/dist/ScriptIterator.js.map +1 -1
  25. package/dist/SndBuf.js +746 -949
  26. package/dist/SndBuf.js.map +1 -1
  27. package/dist/SoundMng.js +1 -1
  28. package/dist/SoundMng.js.map +1 -1
  29. package/dist/SpritesMng.js +229 -0
  30. package/dist/SpritesMng.js.map +1 -0
  31. package/dist/TxtLayer.js +1402 -0
  32. package/dist/TxtLayer.js.map +1 -0
  33. package/dist/Variable.js +157 -164
  34. package/dist/Variable.js.map +1 -1
  35. package/dist/app.d.ts +4 -4
  36. package/dist/app.d.ts.map +1 -1
  37. package/dist/appMain.d.ts.map +1 -1
  38. package/dist/appMain_cmn.d.ts.map +1 -1
  39. package/dist/index.d.ts +0 -1
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/platform.js +369 -0
  42. package/dist/platform.js.map +1 -0
  43. package/dist/sn/Button.d.ts +2 -2
  44. package/dist/sn/CallStack.d.ts +2 -2
  45. package/dist/sn/CmnInterface.d.ts +39 -41
  46. package/dist/sn/CmnInterface.d.ts.map +1 -1
  47. package/dist/sn/CmnLib.d.ts +11 -7
  48. package/dist/sn/CmnLib.d.ts.map +1 -1
  49. package/dist/sn/CmnTween.d.ts +9 -9
  50. package/dist/sn/Config.d.ts.map +1 -1
  51. package/dist/sn/ConfigBase.d.ts +16 -17
  52. package/dist/sn/ConfigBase.d.ts.map +1 -1
  53. package/dist/sn/DebugMng.d.ts +2 -2
  54. package/dist/sn/DebugMng.d.ts.map +1 -1
  55. package/dist/sn/DesignCast.d.ts +9 -9
  56. package/dist/sn/DesignCast.d.ts.map +1 -1
  57. package/dist/sn/EventMng.d.ts +4 -4
  58. package/dist/sn/EventMng.d.ts.map +1 -1
  59. package/dist/sn/FrameMng.d.ts +5 -5
  60. package/dist/sn/FrameMng.d.ts.map +1 -1
  61. package/dist/sn/Grammar.d.ts +124 -124
  62. package/dist/sn/Grammar.d.ts.map +1 -1
  63. package/dist/sn/GrpLayer.d.ts +7 -7
  64. package/dist/sn/GrpLayer.d.ts.map +1 -1
  65. package/dist/sn/Hyphenation.d.ts +2 -2
  66. package/dist/sn/Layer.d.ts +10 -10
  67. package/dist/sn/LayerMng.d.ts +7 -8
  68. package/dist/sn/LayerMng.d.ts.map +1 -1
  69. package/dist/sn/Log.d.ts +3 -3
  70. package/dist/sn/Log.d.ts.map +1 -1
  71. package/dist/sn/Main.d.ts +6 -5
  72. package/dist/sn/Main.d.ts.map +1 -1
  73. package/dist/sn/Pages.d.ts +8 -8
  74. package/dist/sn/Pages.d.ts.map +1 -1
  75. package/dist/sn/PropParser.d.ts +3 -3
  76. package/dist/sn/PropParser.d.ts.map +1 -1
  77. package/dist/sn/Reading.d.ts +12 -12
  78. package/dist/sn/Reading.d.ts.map +1 -1
  79. package/dist/sn/RubySpliter.d.ts +4 -4
  80. package/dist/sn/RubySpliter.d.ts.map +1 -1
  81. package/dist/sn/ScriptIterator.d.ts +5 -6
  82. package/dist/sn/ScriptIterator.d.ts.map +1 -1
  83. package/dist/sn/SndBuf.d.ts +12 -12
  84. package/dist/sn/SndBuf.d.ts.map +1 -1
  85. package/dist/sn/SoundMng.d.ts +4 -4
  86. package/dist/sn/SoundMng.d.ts.map +1 -1
  87. package/dist/sn/SpritesMng.d.ts +5 -5
  88. package/dist/sn/SpritesMng.d.ts.map +1 -1
  89. package/dist/sn/SysApp.d.ts +13 -10
  90. package/dist/sn/SysApp.d.ts.map +1 -1
  91. package/dist/sn/SysBase.d.ts +33 -32
  92. package/dist/sn/SysBase.d.ts.map +1 -1
  93. package/dist/sn/SysWeb.d.ts +7 -11
  94. package/dist/sn/SysWeb.d.ts.map +1 -1
  95. package/dist/sn/TxtLayer.d.ts +10 -8
  96. package/dist/sn/TxtLayer.d.ts.map +1 -1
  97. package/dist/sn/TxtStage.d.ts +5 -5
  98. package/dist/sn/TxtStage.d.ts.map +1 -1
  99. package/dist/sn/Variable.d.ts +9 -8
  100. package/dist/sn/Variable.d.ts.map +1 -1
  101. package/dist/test/SysTest.d.ts +2 -2
  102. package/dist/test/ValTest.d.ts +4 -4
  103. package/dist/test/ValTest.d.ts.map +1 -1
  104. package/dist/web.d.ts +4 -4
  105. package/dist/web.d.ts.map +1 -1
  106. package/dist/web.js +3 -3
  107. package/dist/web2.js +6959 -8339
  108. package/dist/web2.js.map +1 -1
  109. package/dist_app/Button.js +162 -0
  110. package/dist_app/Button.js.map +1 -0
  111. package/dist_app/CallStack.js.map +1 -1
  112. package/dist_app/CmnTween.js +201 -0
  113. package/dist_app/CmnTween.js.map +1 -0
  114. package/dist_app/EventMng.js +40 -39
  115. package/dist_app/EventMng.js.map +1 -1
  116. package/dist_app/GrpLayer.js +192 -0
  117. package/dist_app/GrpLayer.js.map +1 -0
  118. package/dist_app/LayerMng.js +483 -2422
  119. package/dist_app/LayerMng.js.map +1 -1
  120. package/dist_app/Main.js +393 -0
  121. package/dist_app/Main.js.map +1 -0
  122. package/dist_app/PropParser.js.map +1 -1
  123. package/dist_app/Reading.js +19 -19
  124. package/dist_app/Reading.js.map +1 -1
  125. package/dist_app/RubySpliter.js +90 -0
  126. package/dist_app/RubySpliter.js.map +1 -0
  127. package/dist_app/ScriptIterator.js +216 -307
  128. package/dist_app/ScriptIterator.js.map +1 -1
  129. package/dist_app/SndBuf.js +746 -949
  130. package/dist_app/SndBuf.js.map +1 -1
  131. package/dist_app/SoundMng.js +1 -1
  132. package/dist_app/SoundMng.js.map +1 -1
  133. package/dist_app/SpritesMng.js +228 -0
  134. package/dist_app/SpritesMng.js.map +1 -0
  135. package/dist_app/TxtLayer.js +1401 -0
  136. package/dist_app/TxtLayer.js.map +1 -0
  137. package/dist_app/Variable.js +157 -164
  138. package/dist_app/Variable.js.map +1 -1
  139. package/dist_app/app.d.ts +4 -4
  140. package/dist_app/app.d.ts.map +1 -1
  141. package/dist_app/app.js +2 -2
  142. package/dist_app/app2.js +3075 -4351
  143. package/dist_app/app2.js.map +1 -1
  144. package/dist_app/appMain.d.ts.map +1 -1
  145. package/dist_app/appMain.js +18 -18
  146. package/dist_app/appMain.js.map +1 -1
  147. package/dist_app/appMain_cmn.d.ts.map +1 -1
  148. package/dist_app/index.d.ts +0 -1
  149. package/dist_app/index.d.ts.map +1 -1
  150. package/dist_app/platform.js +369 -0
  151. package/dist_app/platform.js.map +1 -0
  152. package/dist_app/sn/Button.d.ts +2 -2
  153. package/dist_app/sn/CallStack.d.ts +2 -2
  154. package/dist_app/sn/CmnInterface.d.ts +39 -41
  155. package/dist_app/sn/CmnInterface.d.ts.map +1 -1
  156. package/dist_app/sn/CmnLib.d.ts +11 -7
  157. package/dist_app/sn/CmnLib.d.ts.map +1 -1
  158. package/dist_app/sn/CmnTween.d.ts +9 -9
  159. package/dist_app/sn/Config.d.ts.map +1 -1
  160. package/dist_app/sn/ConfigBase.d.ts +16 -17
  161. package/dist_app/sn/ConfigBase.d.ts.map +1 -1
  162. package/dist_app/sn/DebugMng.d.ts +2 -2
  163. package/dist_app/sn/DebugMng.d.ts.map +1 -1
  164. package/dist_app/sn/DesignCast.d.ts +9 -9
  165. package/dist_app/sn/DesignCast.d.ts.map +1 -1
  166. package/dist_app/sn/EventMng.d.ts +4 -4
  167. package/dist_app/sn/EventMng.d.ts.map +1 -1
  168. package/dist_app/sn/FrameMng.d.ts +5 -5
  169. package/dist_app/sn/FrameMng.d.ts.map +1 -1
  170. package/dist_app/sn/Grammar.d.ts +124 -124
  171. package/dist_app/sn/Grammar.d.ts.map +1 -1
  172. package/dist_app/sn/GrpLayer.d.ts +7 -7
  173. package/dist_app/sn/GrpLayer.d.ts.map +1 -1
  174. package/dist_app/sn/Hyphenation.d.ts +2 -2
  175. package/dist_app/sn/Layer.d.ts +10 -10
  176. package/dist_app/sn/LayerMng.d.ts +7 -8
  177. package/dist_app/sn/LayerMng.d.ts.map +1 -1
  178. package/dist_app/sn/Log.d.ts +3 -3
  179. package/dist_app/sn/Log.d.ts.map +1 -1
  180. package/dist_app/sn/Main.d.ts +6 -5
  181. package/dist_app/sn/Main.d.ts.map +1 -1
  182. package/dist_app/sn/Pages.d.ts +8 -8
  183. package/dist_app/sn/Pages.d.ts.map +1 -1
  184. package/dist_app/sn/PropParser.d.ts +3 -3
  185. package/dist_app/sn/PropParser.d.ts.map +1 -1
  186. package/dist_app/sn/Reading.d.ts +12 -12
  187. package/dist_app/sn/Reading.d.ts.map +1 -1
  188. package/dist_app/sn/RubySpliter.d.ts +4 -4
  189. package/dist_app/sn/RubySpliter.d.ts.map +1 -1
  190. package/dist_app/sn/ScriptIterator.d.ts +5 -6
  191. package/dist_app/sn/ScriptIterator.d.ts.map +1 -1
  192. package/dist_app/sn/SndBuf.d.ts +12 -12
  193. package/dist_app/sn/SndBuf.d.ts.map +1 -1
  194. package/dist_app/sn/SoundMng.d.ts +4 -4
  195. package/dist_app/sn/SoundMng.d.ts.map +1 -1
  196. package/dist_app/sn/SpritesMng.d.ts +5 -5
  197. package/dist_app/sn/SpritesMng.d.ts.map +1 -1
  198. package/dist_app/sn/SysApp.d.ts +13 -10
  199. package/dist_app/sn/SysApp.d.ts.map +1 -1
  200. package/dist_app/sn/SysBase.d.ts +33 -32
  201. package/dist_app/sn/SysBase.d.ts.map +1 -1
  202. package/dist_app/sn/SysWeb.d.ts +7 -11
  203. package/dist_app/sn/SysWeb.d.ts.map +1 -1
  204. package/dist_app/sn/TxtLayer.d.ts +10 -8
  205. package/dist_app/sn/TxtLayer.d.ts.map +1 -1
  206. package/dist_app/sn/TxtStage.d.ts +5 -5
  207. package/dist_app/sn/TxtStage.d.ts.map +1 -1
  208. package/dist_app/sn/Variable.d.ts +9 -8
  209. package/dist_app/sn/Variable.d.ts.map +1 -1
  210. package/dist_app/test/SysTest.d.ts +2 -2
  211. package/dist_app/test/ValTest.d.ts +4 -4
  212. package/dist_app/test/ValTest.d.ts.map +1 -1
  213. package/dist_app/web.d.ts +4 -4
  214. package/dist_app/web.d.ts.map +1 -1
  215. package/package.json +7 -7
  216. package/dist/sn/SysNode.d.ts +0 -15
  217. package/dist/sn/SysNode.d.ts.map +0 -1
  218. package/dist_app/sn/SysNode.d.ts +0 -15
  219. package/dist_app/sn/SysNode.d.ts.map +0 -1
package/README.md CHANGED
@@ -29,7 +29,7 @@
29
29
 
30
30
  WebGL NovelGame framework by PixiJS
31
31
 
32
- ![logo.svg](https://raw.githubusercontent.com/famibee/SKYNovel/master/test/icon.svg)
32
+ ![logo.svg](test/logo.png)
33
33
 
34
34
  [CHANGELOG.md](CHANGELOG.md)
35
35
 
package/dist/Button.js ADDED
@@ -0,0 +1,162 @@
1
+ import { q as b, l as n, u as f, e as v, O as k, K as m, P as C, z as g, G as S, M as p, y as u } from "./web2.js";
2
+ import { S as _ } from "./SpritesMng.js";
3
+ class c extends b {
4
+ constructor(t, e, h, a) {
5
+ if (super(), this.hArg = t, this.evtMng = e, this.resolve = h, this.canFocus = a, this.#t = {
6
+ type: "pic",
7
+ enabled: v(t, "enabled", !0),
8
+ x: this.x = f(t.left ?? 0),
9
+ y: this.y = f(t.top ?? 0),
10
+ rotation: this.angle = n(t, "rotation", this.angle),
11
+ // flash : rotation is in degrees.
12
+ // pixijs: rotation is in radians, angle is in degrees.
13
+ pivot_x: this.pivot.x = n(t, "pivot_x", this.pivot.x),
14
+ pivot_y: this.pivot.y = n(t, "pivot_y", this.pivot.y),
15
+ scale_x: this.scale.x = n(t, "scale_x", this.scale.x),
16
+ scale_y: this.scale.y = n(t, "scale_y", this.scale.y),
17
+ alpha: 1,
18
+ text: "",
19
+ b_pic: "",
20
+ width: 0,
21
+ height: 0
22
+ }, this.getBtnBounds = () => (this.#i.x = this.#t.x, this.#i.y = this.#t.y, this.#i), this.#t.enabled && e.button(t, this, () => this.normal(), () => this.#s(), () => this.#h()), t.pic) {
23
+ this.#t.type = "pic", this.#e = new _(
24
+ t.pic,
25
+ this,
26
+ (i) => {
27
+ this.#l(i), this.#i.width = i.width * this.#t.scale_x, this.#i.height = i.height * this.#t.scale_y;
28
+ },
29
+ (i) => h()
30
+ );
31
+ return;
32
+ }
33
+ if (!t.text) throw "textまたはpic属性は必須です";
34
+ const o = n(t, "height", 30), r = new k({
35
+ align: "center",
36
+ dropShadow: !0,
37
+ dropShadowAlpha: 0.7,
38
+ dropShadowColor: "white",
39
+ dropShadowBlur: 7,
40
+ dropShadowDistance: 0,
41
+ fill: this.#t.enabled ? "black" : "gray",
42
+ fontFamily: c.fontFamily,
43
+ fontSize: o,
44
+ padding: 5
45
+ });
46
+ if (t.style) try {
47
+ const i = JSON.parse(t.style);
48
+ for (const [w, y] of Object.entries(i)) r[w] = y;
49
+ this.#t = { ...this.#t, ...i };
50
+ } catch (i) {
51
+ throw i instanceof SyntaxError ? new Error(m(t, "style", i.message)) : "fn:Button.ts style";
52
+ }
53
+ const s = new C(t.text ?? "", r);
54
+ s.alpha = n(t, "alpha", s.alpha), s.width = n(t, "width", 100), s.height = t.height = o, this.setText = (i) => {
55
+ s.text = i;
56
+ }, this.#t = {
57
+ ...this.#t,
58
+ type: "text",
59
+ // dump用
60
+ alpha: s.alpha,
61
+ text: s.text,
62
+ width: s.width,
63
+ height: s.height
64
+ };
65
+ let d = !1;
66
+ if (this.#t.width = this.width, this.#t.height = this.height, t.b_pic && (this.#t.b_pic = t.b_pic, this.#e = new _(
67
+ t.b_pic,
68
+ this,
69
+ (i) => {
70
+ this.#o(i, s), this.#t.width = this.width, this.#t.height = this.height, s.name = JSON.stringify(this.#t);
71
+ },
72
+ (i) => {
73
+ g.setBlendmode(this, t), i && h();
74
+ }
75
+ ), d = this.#e.ret), s.name = JSON.stringify(this.#t), this.addChild(s), this.#i.width = s.width, this.#i.height = s.height, t.b_pic || g.setBlendmode(this, t), c.#a(this, s), !this.#t.enabled) {
76
+ d || h();
77
+ return;
78
+ }
79
+ const l = r.clone();
80
+ if (t.style_hover) try {
81
+ const i = JSON.parse(t.style_hover);
82
+ for (const [w, y] of Object.entries(i)) l[w] = y;
83
+ } catch (i) {
84
+ throw i instanceof SyntaxError ? new Error(m(t, "style_hover", i.message)) : "fn:Button.ts style_hover";
85
+ }
86
+ else l.fill = "white";
87
+ const x = l.clone();
88
+ if (t.style_clicked) try {
89
+ const i = JSON.parse(t.style_clicked);
90
+ for (const [w, y] of Object.entries(i)) x[w] = y;
91
+ } catch (i) {
92
+ throw i instanceof SyntaxError ? new Error(m(t, "style_clicked", i.message)) : "fn:Button.ts style_clicked";
93
+ }
94
+ else x.dropShadow = !1;
95
+ this.normal = () => {
96
+ s.style = r;
97
+ }, this.#s = () => a() ? (s.style = l, !0) : !1, this.#h = () => {
98
+ s.style = x;
99
+ }, d || h();
100
+ }
101
+ static fontFamily = "'Hiragino Sans', 'Hiragino Kaku Gothic ProN', '游ゴシック Medium', meiryo, sans-serif";
102
+ static #a = (t, e) => {
103
+ };
104
+ static #n = (t, e, h, a) => {
105
+ };
106
+ static init(t) {
107
+ t.oCfg.debug.masume && (c.#a = (e, h) => e.addChild(
108
+ new S().beginFill(8926088, 0.2).lineStyle(1, 8926088, 1).drawRect(h.x, h.y, h.width, h.height).endFill()
109
+ ), c.#n = (e, h, a, o) => e.addChild(
110
+ new S().beginFill(8926088, 0.2).lineStyle(1, 8926088, 1).drawRect(h.x, h.y, a, o).endFill()
111
+ ));
112
+ }
113
+ setText(t) {
114
+ }
115
+ getBtnBounds = () => this.#i;
116
+ // 文字ボタンは背景画像を含まない位置指定なので、その当たり判定用
117
+ #i = new p();
118
+ #e = new _();
119
+ // #idc : DesignCast;
120
+ #t;
121
+ destroy() {
122
+ this.evtMng.unButton(this), this.#e.destroy(), super.destroy();
123
+ }
124
+ makeDesignCast(t) {
125
+ }
126
+ showDesignCast() {
127
+ }
128
+ // showDesignCast() {this.#idc.visible = true}
129
+ cvsResize() {
130
+ }
131
+ #o(t, e) {
132
+ this.setChildIndex(t, 0), t.alpha = e.alpha, t.setTransform(
133
+ e.x,
134
+ e.y,
135
+ 1,
136
+ 1,
137
+ e.rotation,
138
+ 0,
139
+ 0,
140
+ (t.width - e.width) / 2,
141
+ (t.height - e.height) / 2
142
+ ), t.name = e.name;
143
+ }
144
+ normal = () => {
145
+ };
146
+ #s = () => !1;
147
+ #h = () => {
148
+ };
149
+ #l(t) {
150
+ this.#t.alpha = t.alpha = n(this.hArg, "alpha", t.alpha);
151
+ const e = t.width / 3, h = this.#t.enabled ? e : t.width, a = t.height, o = t.texture.baseTexture, r = new u(o, new p(0, 0, e, a)), s = new u(o, new p(e, 0, e, a)), d = new u(o, new p(e * 2, 0, e, a)), l = () => {
152
+ t.texture = r;
153
+ };
154
+ this.#t.enabled && l(), this.normal = l, this.#s = () => this.canFocus() ? (t.texture = d, !0) : !1, this.#h = () => {
155
+ t.texture = s;
156
+ }, "width" in this.hArg ? (this.#t.width = f(this.hArg.width), this.scale.x *= this.#t.width / h) : this.#t.width = h, "height" in this.hArg ? (this.#t.height = f(this.hArg.height), this.scale.y *= this.#t.height / a) : this.#t.height = a, t.name = JSON.stringify(this.#t), c.#n(this, t, h, a);
157
+ }
158
+ }
159
+ export {
160
+ c as Button
161
+ };
162
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sources":["../src/sn/Button.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 {uint, type IEvtMng, argChk_Boolean, argChk_Num, mesErrJSON} from './CmnLib';\nimport type {TArg} from './Grammar';\nimport {SpritesMng} from './SpritesMng';\nimport {Layer} from './Layer';\nimport type {Config} from './Config';\nimport type {IMakeDesignCast} from './LayerMng';\n//import {DesignCast, TxtBtnDesignCast, PicBtnDesignCast} from './DesignCast';\n\nimport {Container, Text, Rectangle, Texture, TextStyle, type Sprite, Graphics} from 'pixi.js';\n\n\nexport class Button extends Container {\n\tstatic\tfontFamily\t= '\\'Hiragino Sans\\', \\'Hiragino Kaku Gothic ProN\\', \\'游ゴシック Medium\\', meiryo, sans-serif';\n\tstatic\t#procMasume4txt = (_me: Button, _txt: Text)=> { /* empty */ };\n\tstatic\t#procMasume4pic = (_me: Button, _sp: Sprite, _w3: number, _h: number)=> { /* empty */ };\n\tstatic\tinit(cfg: Config) {\n\t\tif (! cfg.oCfg.debug.masume) return;\n\n\t\tButton.#procMasume4txt = (me, txt)=> me.addChild(\n\t\t\t(new Graphics)\n\t\t\t.beginFill(0x883388, 0.2)\n\t\t\t.lineStyle(1, 0x883388, 1)\n\t\t\t.drawRect(txt.x, txt.y, txt.width, txt.height)\n\t\t\t.endFill()\n\t\t);\n\t\tButton.#procMasume4pic = (me, sp, w3, h)=> me.addChild(\n\t\t\t(new Graphics)\n\t\t\t.beginFill(0x883388, 0.2)\n\t\t\t.lineStyle(1, 0x883388, 1)\n\t\t\t.drawRect(sp.x, sp.y, w3, h)\n\t\t\t.endFill()\n\t\t);\n\t}\n\n\tsetText(_text: string) { /* empty */ }\n\tgetBtnBounds = ()=> this.#rctBtnTxt;\n\t\t// 文字ボタンは背景画像を含まない位置指定なので、その当たり判定用\n\t#rctBtnTxt\t= new Rectangle;\n\n\t#sps\t\t= new SpritesMng;\n\n//\t#idc\t\t: DesignCast;\n\treadonly\t#o\t: {\n\t\ttype\t: 'pic'|'text';\n\t\tenabled\t: boolean;\n\t\tx\t\t: number;\n\t\ty\t\t: number;\n\t\trotation: number;\n\t\t\t// flash : rotation is in degrees.\n\t\t\t// pixijs: rotation is in radians, angle is in degrees.\n\t\tpivot_x\t: number;\n\t\tpivot_y\t: number;\n\t\tscale_x\t: number;\n\t\tscale_y\t: number;\n\t\talpha\t: number;\n\t\ttext\t: string;\n\t\tb_pic\t: string;\n\t\twidth\t: number;\n\t\theight\t: number;\n\t};\n\n\tconstructor(private readonly hArg: TArg, readonly evtMng: IEvtMng, readonly resolve: ()=> void, private readonly canFocus: ()=> boolean) {\n\t\tsuper();\n/*\n\t\tif (CmnLib.isDbg) {\n\t\t\tthis.makeDesignCast = gdc=> gdc(this.#idc);\n\t\t\tthis.cvsResize = ()=> this.#idc.cvsResize();\n\t\t}\n*/\n\t\tthis.#o = {\n\t\t\ttype\t: 'pic',\n\t\t\tenabled\t: argChk_Boolean(hArg, 'enabled', true),\n\t\t\tx\t\t: this.x = uint(hArg.left ?? 0),\n\t\t\ty\t\t: this.y = uint(hArg.top ?? 0),\n\t\t\trotation: this.angle = argChk_Num(hArg, 'rotation', this.angle),\n\t\t\t\t// flash : rotation is in degrees.\n\t\t\t\t// pixijs: rotation is in radians, angle is in degrees.\n\t\t\tpivot_x\t: this.pivot.x = argChk_Num(hArg, 'pivot_x', this.pivot.x),\n\t\t\tpivot_y\t: this.pivot.y = argChk_Num(hArg, 'pivot_y', this.pivot.y),\n\t\t\tscale_x\t: this.scale.x = argChk_Num(hArg, 'scale_x', this.scale.x),\n\t\t\tscale_y\t: this.scale.y = argChk_Num(hArg, 'scale_y', this.scale.y),\n\t\t\talpha\t: 1,\n\t\t\ttext\t: '',\n\t\t\tb_pic\t: '',\n\t\t\twidth\t: 0,\n\t\t\theight\t: 0,\n\t\t};\n\t\tthis.getBtnBounds = ()=> {\n\t\t\tthis.#rctBtnTxt.x = this.#o.x;\n\t\t\tthis.#rctBtnTxt.y = this.#o.y;\n\t\t\treturn this.#rctBtnTxt;\n\t\t};\n\n\t\tif (this.#o.enabled) evtMng.button(hArg, this, ()=> this.normal(), ()=> this.#hover(), ()=> this.#clicked());\t// あとで差し替えるのでアロー必須\n\n\t\t// == 画像から生成\n\t\tif (hArg.pic) {\n\t\t\tthis.#o.type = 'pic';\t// dump用\n\t\t\t// this.#idc = new PicBtnDesignCast(this, hArg);\n\n\t\t\tthis.#sps = new SpritesMng(\n\t\t\t\thArg.pic,\n\t\t\t\tthis,\n\t\t\t\tsp=> {\n\t\t\t\t\tthis.#loaded_pic(sp);\n\t\t\t\t\tthis.#rctBtnTxt.width = sp.width * this.#o.scale_x;\n\t\t\t\t\tthis.#rctBtnTxt.height = sp.height * this.#o.scale_y;\n\t\t\t\t},\n\t\t\t\t_isStop=> resolve(),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tif (! hArg.text) throw 'textまたはpic属性は必須です';\n\n\t\t// == 文字列から生成\n\t\tconst height = argChk_Num(hArg, 'height', 30);\n\t\tconst style = new TextStyle({\n\t\t\talign\t\t: 'center',\n\t\t\tdropShadow\t: true,\n\t\t\tdropShadowAlpha\t: 0.7,\n\t\t\tdropShadowColor\t: 'white',\n\t\t\tdropShadowBlur\t: 7,\n\t\t\tdropShadowDistance\t: 0,\n\t\t\tfill\t\t: this.#o.enabled ?'black' :'gray',\n\t\t\tfontFamily\t: Button.fontFamily,\n\t\t\tfontSize\t: height,\n\t\t\tpadding\t\t: 5,\n\t\t});\n\t\tif (hArg.style) try {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\tconst o = JSON.parse(hArg.style);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tfor (const [nm, v] of Object.entries(o)) (<any>style)[nm] = v;\n\t\t//\tstyle = {...style, ...JSON.parse(hArg.style)};\t// 上手くいかない\n\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\tthis.#o = {...this.#o, ...o};\n\t\t} catch (e) {\n\t\t\tif (e instanceof SyntaxError) throw new Error(mesErrJSON(hArg, 'style', e.message));\n\t\t\telse throw 'fn:Button.ts style';\n\t\t}\n\n\t\tconst txt = new Text(hArg.text ?? '', style);\n\t\ttxt.alpha = argChk_Num(hArg, 'alpha', txt.alpha);\t// 上にまとめない\n\t\ttxt.width = argChk_Num(hArg, 'width', 100);\n\t\ttxt.height = hArg.height = height;\n\t\tthis.setText = text=> {txt.text = text};\n\n\t\tthis.#o = {...this.#o,\n\t\t\ttype\t: 'text',\t// dump用\n\t\t\talpha\t: txt.alpha,\n\t\t\ttext\t: txt.text,\n\t\t\twidth\t: txt.width,\n\t\t\theight\t: txt.height,\n\t\t};\n//\t\tthis.#idc = new TxtBtnDesignCast(this, hArg, txt);\n\n\t\tlet isStop = false;\n\t\tthis.#o.width = this.width;\n\t\tthis.#o.height = this.height;\n\t\tif (hArg.b_pic) {\n\t\t\tthis.#o.b_pic = hArg.b_pic;\n\t\t\tthis.#sps = new SpritesMng(\n\t\t\t\thArg.b_pic,\n\t\t\t\tthis,\n\t\t\t\tsp=> {\n\t\t\t\t\tthis.#loaded_b_pic(sp, txt);\n\t\t\t\t\tthis.#o.width = this.width;\n\t\t\t\t\tthis.#o.height = this.height;\n\t\t\t\t\ttxt.name = JSON.stringify(this.#o);\n\t\t\t\t},\n\t\t\t\tisStop=> {\n\t\t\t\t\tLayer.setBlendmode(this, hArg);\n\t\t\t\t\tif (isStop) resolve();\n\t\t\t\t},\n\t\t\t);\n\t\t\tisStop = this.#sps.ret;\n\t\t}\n\t\ttxt.name = JSON.stringify(this.#o);\n\n\t\tthis.addChild(txt);\n\t\tthis.#rctBtnTxt.width = txt.width;\t// addChild()後に取得すること\n\t\tthis.#rctBtnTxt.height = txt.height;\n\t//x\tthis.#rctBtnTxt = txt.getBounds();\t// 上手くいかない\n\n\t\tif (! hArg.b_pic) Layer.setBlendmode(this, hArg);\t// 重なり順でここ\n\t\tButton.#procMasume4txt(this, txt);\n\t\tif (! this.#o.enabled) {if (! isStop) resolve(); return}\n\n\t\tconst style_hover = style.clone();\n\t\tif (hArg.style_hover) try {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\tconst o = JSON.parse(hArg.style_hover);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\tfor (const [nm, v] of Object.entries(o)) (<any>style_hover)[nm] = v;\n\t\t} catch (e) {\n\t\t\tif (e instanceof SyntaxError) throw new Error(mesErrJSON(hArg, 'style_hover', e.message));\n\t\t\telse throw 'fn:Button.ts style_hover';\n\t\t}\n\t\telse style_hover.fill = 'white';\n\n\t\tconst style_clicked = style_hover.clone();\n\t\tif (hArg.style_clicked) try {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\tconst o = JSON.parse(hArg.style_clicked);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\tfor (const [nm, v] of Object.entries(o)) (<any>style_clicked)[nm] = v;\n\t\t} catch (e) {\n\t\t\tif (e instanceof SyntaxError) throw new Error(mesErrJSON(hArg, 'style_clicked', e.message));\n\t\t\telse throw 'fn:Button.ts style_clicked';\n\t\t}\n\t\telse style_clicked.dropShadow = false;\n\n\t\tthis.normal = ()=> {txt.style = style};\n\t\tthis.#hover = ()=> {\n\t\t\tif (! canFocus()) return false;\n\t\t\ttxt.style = style_hover;\n\t\t\treturn true;\n\t\t};\n\t\tthis.#clicked = ()=> {txt.style = style_clicked};\n\n\t\tif (! isStop) resolve();\n\t}\n\n\toverride\tdestroy(): void {\n\t\tthis.evtMng.unButton(this);\n\t\tthis.#sps.destroy();\n\t\tsuper.destroy();\n\t}\n\n\tmakeDesignCast(_gdc: IMakeDesignCast) { /* empty */ }\n\tshowDesignCast() { /* empty */ }\n//\tshowDesignCast() {this.#idc.visible = true}\n\tcvsResize() { /* empty */ }\n\n\t#loaded_b_pic(sp: Sprite, txt: Text) {\n\t\tthis.setChildIndex(sp, 0);\n\t\tsp.alpha = txt.alpha;\n\t\tsp.setTransform(\n\t\t\ttxt.x, txt.y,\n\t\t\t1, 1, txt.rotation, 0, 0,\n\t\t\t(sp.width -txt.width) /2,\n\t\t\t(sp.height -txt.height) /2,\n\t\t);\n\n\t\tsp.name = txt.name;\n\t}\n\n\tnormal\t\t: ()=> void\t\t= ()=> { /* empty */ };\n\t#hover\t\t: ()=> boolean\t= ()=> false;\n\t#clicked\t: ()=> void\t\t= ()=> { /* empty */ };\n\t#loaded_pic(sp: Sprite) {\n\t\tthis.#o.alpha = sp.alpha = argChk_Num(this.hArg, 'alpha', sp.alpha);\n//\t\t(this.#idc as PicBtnDesignCast).setSp(sp);\n\n\t\tconst w_3 = sp.width /3;\n\t\tconst w = this.#o.enabled ?w_3 :sp.width;\n\t\tconst h = sp.height;\n\t\tconst tx = sp.texture.baseTexture;\n\t\tconst txNormal = new Texture(tx, new Rectangle(0, 0, w_3, h));\n\t\tconst txClicked = new Texture(tx, new Rectangle(w_3, 0, w_3, h));\n\t\tconst txHover = new Texture(tx, new Rectangle(w_3 *2, 0, w_3, h));\n\t\tconst normal = ()=> {sp.texture = txNormal};\n\t\tif (this.#o.enabled) normal();\n\n\t\tthis.normal\t= normal;\n\t\tthis.#hover\t\t= ()=> {\n\t\t\tif (! this.canFocus()) return false;\n\t\t\tsp.texture = txHover;\n\t\t\treturn true;\n\t\t};\n\t\tthis.#clicked\t= ()=> {sp.texture = txClicked};\n\n\t\tif ('width' in this.hArg) {\n\t\t\tthis.#o.width = uint(this.hArg.width);\n\t\t\tthis.scale.x *= this.#o.width /w;\n\t\t}\n\t\telse this.#o.width = w;\n\t\tif ('height' in this.hArg) {\n\t\t\tthis.#o.height = uint(this.hArg.height);\n\t\t\tthis.scale.y *= this.#o.height /h;\n\t\t}\n\t\telse this.#o.height = h;\n\t\tsp.name = JSON.stringify(this.#o);\t// dump用\n\n\t\tButton.#procMasume4pic(this, sp, w, h);\n\t}\n\n}\n"],"names":["Button","Container","hArg","evtMng","resolve","canFocus","#o","argChk_Boolean","uint","argChk_Num","#rctBtnTxt","#hover","#clicked","#sps","SpritesMng","sp","#loaded_pic","height","style","TextStyle","o","nm","v","e","mesErrJSON","txt","Text","text","isStop","#loaded_b_pic","Layer","#procMasume4txt","style_hover","style_clicked","_me","_txt","#procMasume4pic","_sp","_w3","_h","cfg","me","Graphics","w3","h","_text","Rectangle","_gdc","w_3","w","tx","txNormal","Texture","txClicked","txHover","normal"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CallStack.js","sources":["../src/sn/CallStack.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_HEvt2Fnc} from './CmnInterface';\nimport type {HArg} from './Grammar';\n\n\n// マクロ変数(mp:)\nexport type T_H_VAL_MP = {\n\t'const.sn.macro'\t\t\t: string;\t// (json)実行中マクロのスクリプター用情報\n\t'const.sn.me_call_scriptFn'\t: string;\t// マクロの呼び元スクリプト\n}\nexport function creMP(): T_H_VAL_MP {return {\n\t\t'const.sn.macro'\t\t\t: '{}',\n\t\t'const.sn.me_call_scriptFn'\t: '',\n}}\n\nexport type ICallStackArg = HArg & {\n\t':resvToken'?\t: string;\t\t// call元のtoken\n\t':hEvt1Time'?\t: T_HEvt2Fnc;\t// call元のローカル予約イベント\n\t':hMp'\t\t\t: T_H_VAL_MP;\t// call元のmp:\n\t':タグ名'?\t\t: string;\n\t':lenIfStk'\t\t: number;\n}\nexport function creCSArg(): ICallStackArg {return {\n\t':hEvt1Time': {},\n\t':hMp'\t\t: creMP(),\n\t':lenIfStk'\t: 1,\n}}\n\n\nexport class CallStack {\n\tconstructor(readonly fn = '', readonly idx = 0, readonly csArg: ICallStackArg = creCSArg()) {}\n\n\treadonly\ttoString = ()=> `[fn:${this.fn}, idx:${String(this.idx)}, csArg:${JSON.stringify(this.csArg)}]`;\n\n}\n"],"names":["creMP","creCSArg","CallStack","fn","idx","csArg"],"mappings":"AAgBO,SAASA,IAAoB;AAAC,SAAO;AAAA,IAC1C,kBAAqB;AAAA,IACrB,6BAA8B;AAAA,EAAA;AAC/B;AASM,SAASC,IAA0B;AAAC,SAAO;AAAA,IACjD,cAAc,CAAA;AAAA,IACd,QAAUD,EAAA;AAAA,IACV,aAAc;AAAA,EAAA;AACd;AAGM,MAAME,EAAU;AAAA,EACtB,YAAqBC,IAAK,IAAaC,IAAM,GAAYC,IAAuBJ,KAAY;AAAvE,SAAA,KAAAE,GAAkB,KAAA,MAAAC,GAAkB,KAAA,QAAAC;AAAA,EAAoC;AAAA,EAEpF,WAAW,MAAK,OAAO,KAAK,EAAE,SAAS,OAAO,KAAK,GAAG,CAAC,WAAW,KAAK,UAAU,KAAK,KAAK,CAAC;AAEtG;"}
1
+ {"version":3,"file":"CallStack.js","sources":["../src/sn/CallStack.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_HEvt2Fnc} from './CmnInterface';\nimport type {TArg} from './Grammar';\n\n\n// マクロ変数(mp:)\nexport type T_H_VAL_MP = {\n\t'const.sn.macro'\t\t\t: string;\t// (json)実行中マクロのスクリプター用情報\n\t'const.sn.me_call_scriptFn'\t: string;\t// マクロの呼び元スクリプト\n}\nexport function creMP(): T_H_VAL_MP {return {\n\t\t'const.sn.macro'\t\t\t: '{}',\n\t\t'const.sn.me_call_scriptFn'\t: '',\n}}\n\nexport type ICallStackArg = TArg & {\n\t':resvToken'?\t: string;\t\t// call元のtoken\n\t':hEvt1Time'?\t: T_HEvt2Fnc;\t// call元のローカル予約イベント\n\t':hMp'\t\t\t: T_H_VAL_MP;\t// call元のmp:\n\t':タグ名'?\t\t: string;\n\t':lenIfStk'\t\t: number;\n}\nexport function creCSArg(): ICallStackArg {return {\n\t':hEvt1Time': {},\n\t':hMp'\t\t: creMP(),\n\t':lenIfStk'\t: 1,\n}}\n\n\nexport class CallStack {\n\tconstructor(readonly fn = '', readonly idx = 0, readonly csArg: ICallStackArg = creCSArg()) {}\n\n\treadonly\ttoString = ()=> `[fn:${this.fn}, idx:${String(this.idx)}, csArg:${JSON.stringify(this.csArg)}]`;\n\n}\n"],"names":["creMP","creCSArg","CallStack","fn","idx","csArg"],"mappings":"AAgBO,SAASA,IAAoB;AAAC,SAAO;AAAA,IAC1C,kBAAqB;AAAA,IACrB,6BAA8B;AAAA,EAAA;AAC/B;AASM,SAASC,IAA0B;AAAC,SAAO;AAAA,IACjD,cAAc,CAAA;AAAA,IACd,QAAUD,EAAA;AAAA,IACV,aAAc;AAAA,EAAA;AACd;AAGM,MAAME,EAAU;AAAA,EACtB,YAAqBC,IAAK,IAAaC,IAAM,GAAYC,IAAuBJ,KAAY;AAAvE,SAAA,KAAAE,GAAkB,KAAA,MAAAC,GAAkB,KAAA,QAAAC;AAAA,EAAoC;AAAA,EAEpF,WAAW,MAAK,OAAO,KAAK,EAAE,SAAS,OAAO,KAAK,GAAG,CAAC,WAAW,KAAK,UAAU,KAAK,KAAK,CAAC;AAEtG;"}
@@ -0,0 +1,201 @@
1
+ import { l as _, e as $, a as x } from "./web2.js";
2
+ import { u as P, E as i, b as L, T as k, a as d } from "./Reading.js";
3
+ const h = `trans
4
+ `, w = "tsy nm:";
5
+ class F {
6
+ static #t = {};
7
+ static #s;
8
+ static #i;
9
+ static init(t, n) {
10
+ this.#t = {}, this.#s = t, this.#i = n, this.#i.ticker.add(this.#e);
11
+ }
12
+ static #e = () => P();
13
+ static destroy() {
14
+ this.stopAllTw(), this.#i.ticker.remove(this.#e);
15
+ }
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ static setTwProp(t, n) {
18
+ const s = _(n, "repeat", 1);
19
+ return t.delay(_(n, "delay", 0)).easing(this.ease(n.ease)).repeat(s > 0 ? s - 1 : 1 / 0).yoyo($(n, "yoyo", !1));
20
+ }
21
+ static #o = {
22
+ "Back.In": (t) => i.Back.In(t),
23
+ "Back.InOut": (t) => i.Back.InOut(t),
24
+ "Back.Out": (t) => i.Back.Out(t),
25
+ "Bounce.In": (t) => i.Bounce.In(t),
26
+ "Bounce.InOut": (t) => i.Bounce.InOut(t),
27
+ "Bounce.Out": (t) => i.Bounce.Out(t),
28
+ "Circular.In": (t) => i.Circular.In(t),
29
+ "Circular.InOut": (t) => i.Circular.InOut(t),
30
+ "Circular.Out": (t) => i.Circular.Out(t),
31
+ "Cubic.In": (t) => i.Cubic.In(t),
32
+ "Cubic.InOut": (t) => i.Cubic.InOut(t),
33
+ "Cubic.Out": (t) => i.Cubic.Out(t),
34
+ "Elastic.In": (t) => i.Elastic.In(t),
35
+ "Elastic.InOut": (t) => i.Elastic.InOut(t),
36
+ "Elastic.Out": (t) => i.Elastic.Out(t),
37
+ "Exponential.In": (t) => i.Exponential.In(t),
38
+ "Exponential.InOut": (t) => i.Exponential.InOut(t),
39
+ "Exponential.Out": (t) => i.Exponential.Out(t),
40
+ "Linear.None": (t) => i.Linear.None(t),
41
+ "Quadratic.In": (t) => i.Quadratic.In(t),
42
+ "Quadratic.InOut": (t) => i.Quadratic.InOut(t),
43
+ "Quadratic.Out": (t) => i.Quadratic.Out(t),
44
+ "Quartic.In": (t) => i.Quartic.In(t),
45
+ "Quartic.InOut": (t) => i.Quartic.InOut(t),
46
+ "Quartic.Out": (t) => i.Quartic.Out(t),
47
+ "Quintic.In": (t) => i.Quintic.In(t),
48
+ "Quintic.InOut": (t) => i.Quintic.InOut(t),
49
+ "Quintic.Out": (t) => i.Quintic.Out(t),
50
+ "Sinusoidal.In": (t) => i.Sinusoidal.In(t),
51
+ "Sinusoidal.InOut": (t) => i.Sinusoidal.InOut(t),
52
+ "Sinusoidal.Out": (t) => i.Sinusoidal.Out(t)
53
+ };
54
+ static ease(t) {
55
+ if (!t) return (s) => i.Linear.None(s);
56
+ const n = this.#o[t];
57
+ if (!n) throw "異常なease指定です";
58
+ return n;
59
+ }
60
+ static hMemberCnt = {
61
+ alpha: 0,
62
+ height: 0,
63
+ rotation: 0,
64
+ // rotationX〜Z、scaleZ、zは設定すると
65
+ scale_x: 0,
66
+ // 三次元方向の拡大縮小ルーチンが働き画像がぼやけるので
67
+ scale_y: 0,
68
+ // backlayで設定しない方針
69
+ pivot_x: 0,
70
+ pivot_y: 0,
71
+ width: 0,
72
+ x: 0,
73
+ y: 0
74
+ };
75
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
76
+ static cnvTweenArg(t, n) {
77
+ const s = {};
78
+ for (const e of Object.keys(this.hMemberCnt)) {
79
+ const c = t[e];
80
+ if (!c) continue;
81
+ const r = String(c), p = r.startsWith("="), f = p ? r.slice(1) : r;
82
+ if (!f) continue;
83
+ const [I, a] = f.split(","), u = s[e] = parseFloat(I);
84
+ a && (s[e] += Math.round(
85
+ Math.random() * (parseFloat(a) - u + 1)
86
+ )), p && (s[e] += parseFloat(n[e]));
87
+ }
88
+ return s;
89
+ }
90
+ // トゥイーン全停止
91
+ static stopAllTw() {
92
+ this.#t = {}, L();
93
+ }
94
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
+ static tween(t, n, s, e, c, r, p, f = !0) {
96
+ const I = this.#s.isSkipping ? 0 : _(n, "time", NaN), a = new k(s).to(e, I).onUpdate(c);
97
+ this.setTwProp(a, n), this.#t[t] = { tw: a, onEnd: p };
98
+ const { path: u } = n;
99
+ let y = a;
100
+ if (u) {
101
+ x.debugLog && console.group(`🍝 [${n[":タグ名"]}] path=${u}= start(${s.x},${s.y},${s.alpha})`);
102
+ for (const { groups: o } of u.matchAll(this.#c)) {
103
+ const { x: T, x2: b, y: g, y2: Q, o: E, o2: v, json: O } = o;
104
+ let l = {};
105
+ if (O) try {
106
+ l = JSON.parse(O);
107
+ } catch (B) {
108
+ console.error(`🍝 json=${O} ` + String(B));
109
+ continue;
110
+ }
111
+ else
112
+ (T ?? b) && (l.x = T ?? b), (g ?? Q) && (l.y = g ?? Q), (E ?? v) && (l.alpha = Number(E ?? v));
113
+ const S = this.cnvTweenArg(l, s);
114
+ x.debugLog && console.info(`🍝 ${// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
115
+ O ?? `{x:${T} y:${g} o:${E}}`} => hTo:${JSON.stringify(S)}`);
116
+ const C = new k(s).to(S, I);
117
+ this.setTwProp(C, n), y.chain(C), y = C;
118
+ }
119
+ x.debugLog && console.groupEnd();
120
+ }
121
+ y.onComplete(() => {
122
+ const o = this.#t[t];
123
+ o?.tw && (delete this.#t[t], o.tw = void 0, a.stop(), o.onEnd?.(), r(), d.notifyEndProc(w + t));
124
+ });
125
+ const { chain: m } = n;
126
+ if (m) {
127
+ const o = this.#t[m];
128
+ if (!o?.tw) throw `${m}は存在しない・または終了したトゥイーンです`;
129
+ delete o.onEnd, o.tw.chain(a);
130
+ } else f && a.start();
131
+ return a;
132
+ }
133
+ // 11 match 301 step (0.1ms) PCRE2 https://regex101.com/r/reinpq/1
134
+ // List ${x}${x2}/${y}${y2}/${o}${o2}=${json}\n
135
+ /*
136
+ \(\s*
137
+ (?: (?<x>[-=\d\.]+) | (['"]) (?<x2>.*?) \2 )?
138
+ (?:
139
+ \s*,\s*
140
+ (?: (?<y>[-=\d\.]+) | (['"]) (?<y2>.*?) \5 )?
141
+ (?:
142
+ \s*,\s*
143
+ (?: (?<o>[-=\d\.]+) | (['"]) (?<o2>.*?) \8 )
144
+
145
+ )?
146
+ )?
147
+ |
148
+ (?<json>\{[^{}]*})
149
+ */
150
+ static #c = /\(\s*(?:(?<x>[-=\d.]+)|(['"])(?<x2>.*?)\2)?(?:\s*,\s*(?:(?<y>[-=\d.]+)|(['"])(?<y2>.*?)\5)?(?:\s*,\s*(?:(?<o>[-=\d.]+)|(['"])(?<o2>.*?)\8))?)?|(?<json>\{[^{}]*})/g;
151
+ // トランス終了待ち
152
+ static wt(t) {
153
+ if (!this.#t[h]?.tw) return !1;
154
+ const s = () => this.#a();
155
+ return d.beginProc(w + h, s, !0, s), !0;
156
+ }
157
+ // レイヤのトランジションの停止
158
+ static #a() {
159
+ this.#t[h]?.tw?.stop().end();
160
+ }
161
+ // stop()とend()は別
162
+ static async closeTrans() {
163
+ if (!this.#t[h]?.tw) return;
164
+ const { promise: n, resolve: s } = Promise.withResolvers();
165
+ d.beginProc(w + h, s, !1, s), this.#a(), await n;
166
+ }
167
+ // トゥイーン終了待ち
168
+ static wait_tsy(t) {
169
+ const n = this.#n(t), s = this.#t[n];
170
+ if (!s?.tw) return !1;
171
+ const e = () => s.tw?.end();
172
+ return d.beginProc(w + n, e, !0, e), !0;
173
+ }
174
+ static #n(t) {
175
+ const { layer: n = "", id: s, name: e } = t, c = s ? `frm
176
+ ${s}` : e ?? n;
177
+ if (!c) throw "トゥイーンが指定されていません";
178
+ return c;
179
+ }
180
+ // トゥイーン中断
181
+ static stop_tsy(t) {
182
+ const n = this.#n(t);
183
+ return this.#t[n]?.tw?.stop().end(), !1;
184
+ }
185
+ // 一時停止
186
+ static pause_tsy(t) {
187
+ const n = this.#n(t);
188
+ return this.#t[n]?.tw?.pause(), !1;
189
+ }
190
+ // 一時停止再開
191
+ static resume_tsy(t) {
192
+ const n = this.#n(t);
193
+ return this.#t[n]?.tw?.resume(), !1;
194
+ }
195
+ }
196
+ export {
197
+ F as C,
198
+ w as T,
199
+ h as a
200
+ };
201
+ //# sourceMappingURL=CmnTween.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CmnTween.js","sources":["../src/sn/CmnTween.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2019-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 IEvtMng, CmnLib, argChk_Boolean, argChk_Num} from './CmnLib';\nimport type {TArg} from './Grammar';\nimport {Reading} from './Reading';\n\nimport {Tween, Easing, removeAll, update} from '@tweenjs/tween.js'\nimport type {Application} from 'pixi.js';\n\n\ntype ITwInf = {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\ttw\t\t: Tween<any> | undefined;\n\tonEnd?\t: ()=> void;\n}\n\nexport const TW_INT_TRANS = 'trans\\n';\t// 改行でスクリプトから絶対指定できない値に\nexport const TMP_TSY_NM\t= 'tsy nm:';\n\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class CmnTween {\n\tstatic\t#hTwInf\t: {[tw_nm: string]: ITwInf}\t= {};\n\n\tstatic\t#evtMng\t: IEvtMng;\n\tstatic\t#appPixi: Application;\n\tstatic\tinit(evtMng: IEvtMng, appPixi: Application) {\n\t\tthis.#hTwInf = {};\n\t\tthis.#evtMng = evtMng;\n\t\tthis.#appPixi = appPixi;\n\n\t\tthis.#appPixi.ticker.add(this.#fncTicker);\t// TWEEN 更新\n\t}\n\tstatic\t#fncTicker = ()=> update();\n\tstatic\tdestroy() {\n\t\tthis.stopAllTw();\n\t\tthis.#appPixi.ticker.remove(this.#fncTicker);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tstatic\tsetTwProp(tw: Tween<any>, hArg: TArg): Tween<any> {\n\t\tconst repeat = argChk_Num(hArg, 'repeat', 1);\n\t\treturn tw.delay(argChk_Num(hArg, 'delay', 0))\n\t\t.easing(this.ease(hArg.ease))\n\t\t.repeat(repeat > 0 ?repeat -1 :Infinity)\t// 一度リピート→計二回なので\n\t\t.yoyo(argChk_Boolean(hArg, 'yoyo', false));\n\t}\n\tstatic\treadonly #hEase: {[name: string]: (k: number)=> number}\t= {\n\t\t'Back.In'\t\t\t: k=> Easing.Back.In(k),\n\t\t'Back.InOut'\t\t: k=> Easing.Back.InOut(k),\n\t\t'Back.Out'\t\t\t: k=> Easing.Back.Out(k),\n\t\t'Bounce.In'\t\t\t: k=> Easing.Bounce.In(k),\n\t\t'Bounce.InOut'\t\t: k=> Easing.Bounce.InOut(k),\n\t\t'Bounce.Out'\t\t: k=> Easing.Bounce.Out(k),\n\t\t'Circular.In'\t\t: k=> Easing.Circular.In(k),\n\t\t'Circular.InOut'\t: k=> Easing.Circular.InOut(k),\n\t\t'Circular.Out'\t\t: k=> Easing.Circular.Out(k),\n\t\t'Cubic.In'\t\t\t: k=> Easing.Cubic.In(k),\n\t\t'Cubic.InOut'\t\t: k=> Easing.Cubic.InOut(k),\n\t\t'Cubic.Out'\t\t\t: k=> Easing.Cubic.Out(k),\n\t\t'Elastic.In'\t\t: k=> Easing.Elastic.In(k),\n\t\t'Elastic.InOut'\t\t: k=> Easing.Elastic.InOut(k),\n\t\t'Elastic.Out'\t\t: k=> Easing.Elastic.Out(k),\n\t\t'Exponential.In'\t: k=> Easing.Exponential.In(k),\n\t\t'Exponential.InOut'\t: k=> Easing.Exponential.InOut(k),\n\t\t'Exponential.Out'\t: k=> Easing.Exponential.Out(k),\n\t\t'Linear.None'\t\t: k=> Easing.Linear.None(k),\n\t\t'Quadratic.In'\t\t: k=> Easing.Quadratic.In(k),\n\t\t'Quadratic.InOut'\t: k=> Easing.Quadratic.InOut(k),\n\t\t'Quadratic.Out'\t\t: k=> Easing.Quadratic.Out(k),\n\t\t'Quartic.In'\t\t: k=> Easing.Quartic.In(k),\n\t\t'Quartic.InOut'\t\t: k=> Easing.Quartic.InOut(k),\n\t\t'Quartic.Out'\t\t: k=> Easing.Quartic.Out(k),\n\t\t'Quintic.In'\t\t: k=> Easing.Quintic.In(k),\n\t\t'Quintic.InOut'\t\t: k=> Easing.Quintic.InOut(k),\n\t\t'Quintic.Out'\t\t: k=> Easing.Quintic.Out(k),\n\t\t'Sinusoidal.In'\t\t: k=> Easing.Sinusoidal.In(k),\n\t\t'Sinusoidal.InOut'\t: k=> Easing.Sinusoidal.InOut(k),\n\t\t'Sinusoidal.Out'\t: k=> Easing.Sinusoidal.Out(k),\n\t};\n\tstatic\tease(nm: string | undefined): (k: number)=> number {\n\t\tif (! nm) return k=> Easing.Linear.None(k);\n\n\t\tconst es = this.#hEase[nm];\n\t\tif (! es) throw '異常なease指定です';\n\t\treturn es;\n\t}\n\n\tstatic readonly hMemberCnt\t= {\n\t\talpha\t\t: 0,\n\t\theight\t\t: 0,\n\t\trotation\t: 0,\t// rotationX〜Z、scaleZ、zは設定すると\n\t\tscale_x\t\t: 0,\t// 三次元方向の拡大縮小ルーチンが働き画像がぼやけるので\n\t\tscale_y\t\t: 0,\t// backlayで設定しない方針\n\t\tpivot_x\t\t: 0,\n\t\tpivot_y\t\t: 0,\n\t\twidth\t\t: 0,\n\t\tx\t\t\t: 0,\n\t\ty\t\t\t: 0,\n\t};\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tstatic cnvTweenArg(hArg: TArg, lay: any): TArg {\n\t\tconst hTo: {[val_name: string]: number} = {};\n\t\tfor (const nm of Object.keys(this.hMemberCnt)) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\tconst arg = (<any>hArg)[nm];\n\t\t\tif (! arg) continue;\n\n\t\t\t// {x:500}\t\t\tX位置を500に\n\t\t\t// {x:'=500'}\t\t現在のX位置に+500加算した位置\n\t\t\t// {x:'=-500'}\t\t現在のX位置に-500加算した位置\n\t\t\t// {x:'250,500'}\t+250から+500までの間でランダムな値をX位置に\n\t\t\t// {x:'=250,500'}\t+250から+500までの間でランダムな値を現在のX位置に加算\n\t\t\tconst v = String(arg);\n\t\t\tconst hdeq = v.startsWith('=');\n\t\t\tconst vx = hdeq ?v.slice(1) :v;\n\t\t\tif (! vx) continue;\n\n\t\t\tconst [v0, v1] = vx.split(',');\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tconst a0 = hTo[nm] = parseFloat(v0!);\n\n\t\t\tif (v1) hTo[nm] += Math.round(\n\t\t\t\tMath.random() * (parseFloat(v1) -a0 +1)\n\t\t\t);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tif (hdeq) hTo[nm] += parseFloat(lay[nm]);\t// 相対に\n\t\t}\n\t\treturn hTo;\n\t}\n\n\n\t// トゥイーン全停止\n\tstatic\tstopAllTw() {this.#hTwInf = {}; removeAll()}\n\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tstatic\ttween(tw_nm: string, hArg: TArg, hNow: any, hTo: any, onUpdate: ()=> void, onComplete: ()=> void, onEnd: ()=> void, start = true): Tween<any> {\n\t\tconst time = this.#evtMng.isSkipping ?0 :argChk_Num(hArg, 'time', NaN);\n\t\tconst tw = new Tween(hNow)\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t.to(hTo, time)\n\t\t.onUpdate(onUpdate);\n\t\tthis.setTwProp(tw, hArg);\n\t\tthis.#hTwInf[tw_nm] = {tw, onEnd};\n\n\t\tconst {path} = hArg;\n\t\tlet twLast = tw;\n\t\tif (path) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-member-access\n\t\t\tif (CmnLib.debugLog) console.group(`🍝 [${hArg[':タグ名']}] path=${path}= start(${hNow.x},${hNow.y},${hNow.alpha})`);\n\t\t\tfor (const {groups} of path.matchAll(this.#REG_TSY_PATH)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\tconst {x, x2, y, y2, o, o2, json} = groups!;\n\t\t\t\tlet hArg2: TArg = {};\n\t\t\t\tif (json) try {hArg2 = <TArg>JSON.parse(json)} catch (e) {\n\t\t\t\t\tconsole.error(`🍝 json=${json} `+ String(e));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (x ?? x2) hArg2.x = x ?? x2;\n\t\t\t\t\tif (y ?? y2) hArg2.y = y ?? y2;\n\t\t\t\t\tif (o ?? o2) hArg2.alpha = Number(o ?? o2);\n\t\t\t\t}\n\n\t\t\t\tconst hTo2 = this.cnvTweenArg(hArg2, hNow);\n\t\t\t\tif (CmnLib.debugLog) console.info(`🍝 ${\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t\tjson ?? `{x:${x} y:${y} o:${o}}`\n\t\t\t\t} => hTo:${JSON.stringify(hTo2)}`);\n\n\t\t\t\tconst twNew = new Tween(hNow)\n\t\t\t\t.to(hTo2, time);\n\t\t\t\tthis.setTwProp(twNew, hArg);\n\t\t\t\ttwLast.chain(twNew);\n\n\t\t\t\ttwLast = twNew;\n\t\t\t}\n\t\t\tif (CmnLib.debugLog) console.groupEnd();\n\t\t}\n\t\ttwLast.onComplete(()=> {\n\t\t\tconst ti = this.#hTwInf[tw_nm];\n\t\t\tif (! ti?.tw) return;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hTwInf[tw_nm];\n\n\t\t\tti.tw = undefined;\n\t\t\ttw.stop();\n\t\t\tti.onEnd?.();\n\n\t\t\tonComplete();\n\t\t\tReading.notifyEndProc(TMP_TSY_NM + tw_nm);\t// ラストに\n\t\t});\n\n\t\tconst {chain} = hArg;\n\t\tif (chain) {\t// 指定レイヤのアニメ終了に、このトゥイーンを続ける\n\t\t\tconst twFrom = this.#hTwInf[chain];\n\t\t\tif (! twFrom?.tw) throw `${chain}は存在しない・または終了したトゥイーンです`;\n\t\t\tdelete twFrom.onEnd;\n\t\t\ttwFrom.tw.chain(tw);\n\t\t}\n\t\telse if (start) tw.start();\n\n\t\treturn tw;\n\t}\n\t// 11 match 301 step (0.1ms) PCRE2 https://regex101.com/r/reinpq/1\n\t\t// List ${x}${x2}/${y}${y2}/${o}${o2}=${json}\\n\n/*\n\\(\\s*\n(?:\t(?<x>[-=\\d\\.]+)\t|\t(['\"])\t(?<x2>.*?)\t\\2\t)?\n(?:\n\t\\s*,\\s*\n\t(?:\t(?<y>[-=\\d\\.]+)\t|\t(['\"])\t(?<y2>.*?)\t\\5\t)?\n\t(?:\n\t\t\\s*,\\s*\n\t\t(?:\t(?<o>[-=\\d\\.]+)\t|\t(['\"])\t(?<o2>.*?)\t\\8\t)\n\n\t)?\n)?\n|\n(?<json>\\{[^{}]*})\n*/\n\tstatic\treadonly\t#REG_TSY_PATH\t= /\\(\\s*(?:(?<x>[-=\\d.]+)|(['\"])(?<x2>.*?)\\2)?(?:\\s*,\\s*(?:(?<y>[-=\\d.]+)|(['\"])(?<y2>.*?)\\5)?(?:\\s*,\\s*(?:(?<o>[-=\\d.]+)|(['\"])(?<o2>.*?)\\8))?)?|(?<json>\\{[^{}]*})/g;\n\n\t// トランス終了待ち\n\tstatic\twt(_hArg: TArg) {\n\t\tconst ti = this.#hTwInf[TW_INT_TRANS];\n\t\tif (! ti?.tw) return false;\n\n\t\tconst fnc = ()=> this.#stopEndTrans();\n\t\tReading.beginProc(TMP_TSY_NM + TW_INT_TRANS, fnc, true, fnc);\n\t\treturn true;\n\t}\n\n\t// レイヤのトランジションの停止\n\tstatic\t#stopEndTrans() {this.#hTwInf[TW_INT_TRANS]?.tw?.stop().end()}\n\t\t// stop()とend()は別\n\tstatic\tasync\tcloseTrans() {\n\t\tconst ti = this.#hTwInf[TW_INT_TRANS];\n\t\tif (! ti?.tw) return;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n\t\tconst {promise, resolve} = Promise.withResolvers<void>();\n\t\tReading.beginProc(TMP_TSY_NM + TW_INT_TRANS, resolve, false, resolve);\n\t\tthis.#stopEndTrans();\t// beginProc後に\n\t\tawait promise;\n\t}\n\n\n\t// トゥイーン終了待ち\n\tstatic\twait_tsy(hArg: TArg) {\n\t\tconst tw_nm = this.#tw_nm(hArg);\n\t\tconst ti = this.#hTwInf[tw_nm];\n\t\tif (! ti?.tw) return false;\n\n\t\tconst fnc = ()=> ti.tw?.end();\t// stop()とend()は別\n\t\tReading.beginProc(TMP_TSY_NM + tw_nm, fnc, true, fnc);\n\t\treturn true;\n\t}\n\t\tstatic\t#tw_nm(hArg: TArg) {\n\t\t\tconst {layer='', id, name} = hArg;\n\t\t\tconst tw_nm = id ?`frm\\n${id}` :name ?? layer;\n\t\t\tif (! tw_nm) throw 'トゥイーンが指定されていません';\n\n\t\t\treturn tw_nm;\n\t\t}\n\n\t// トゥイーン中断\n\tstatic\tstop_tsy(hArg: TArg) {\n\t\tconst tw_nm = this.#tw_nm(hArg);\n\t\tthis.#hTwInf[tw_nm]?.tw?.stop().end();\t// stop()とend()は別\n\t\treturn false;\n\t}\n\n\t// 一時停止\n\tstatic\tpause_tsy(hArg: TArg) {\n\t\tconst tw_nm = this.#tw_nm(hArg);\n\t\tthis.#hTwInf[tw_nm]?.tw?.pause();\n\t\treturn false;\n\t}\n\n\t// 一時停止再開\n\tstatic\tresume_tsy(hArg: TArg) {\n\t\tconst tw_nm = this.#tw_nm(hArg);\n\t\tthis.#hTwInf[tw_nm]?.tw?.resume();\n\t\treturn false;\n\t}\n\n}\n"],"names":["TW_INT_TRANS","TMP_TSY_NM","CmnTween","#hTwInf","#evtMng","#appPixi","evtMng","appPixi","#fncTicker","update","tw","hArg","repeat","argChk_Num","argChk_Boolean","#hEase","k","Easing","nm","es","lay","hTo","arg","v","hdeq","vx","v0","v1","a0","removeAll","tw_nm","hNow","onUpdate","onComplete","onEnd","start","time","Tween","path","twLast","CmnLib","groups","#REG_TSY_PATH","x","x2","y","y2","o","o2","json","hArg2","e","hTo2","twNew","ti","Reading","chain","twFrom","_hArg","fnc","#stopEndTrans","promise","resolve","#tw_nm","layer","id","name"],"mappings":";;AAqBO,MAAMA,IAAe;AAAA,GACfC,IAAa;AAInB,MAAMC,EAAS;AAAA,EACrB,OAAOC,KAAsC,CAAA;AAAA,EAE7C,OAAOC;AAAA,EACP,OAAOC;AAAA,EACP,OAAO,KAAKC,GAAiBC,GAAsB;AAClD,SAAKJ,KAAU,CAAA,GACf,KAAKC,KAAUE,GACf,KAAKD,KAAWE,GAEhB,KAAKF,GAAS,OAAO,IAAI,KAAKG,EAAU;AAAA,EACzC;AAAA,EACA,OAAOA,KAAa,MAAKC,EAAA;AAAA,EACzB,OAAO,UAAU;AAChB,SAAK,UAAA,GACL,KAAKJ,GAAS,OAAO,OAAO,KAAKG,EAAU;AAAA,EAC5C;AAAA;AAAA,EAGA,OAAO,UAAUE,GAAgBC,GAAwB;AACxD,UAAMC,IAASC,EAAWF,GAAM,UAAU,CAAC;AAC3C,WAAOD,EAAG,MAAMG,EAAWF,GAAM,SAAS,CAAC,CAAC,EAC3C,OAAO,KAAK,KAAKA,EAAK,IAAI,CAAC,EAC3B,OAAOC,IAAS,IAAGA,IAAQ,IAAG,KAAQ,EACtC,KAAKE,EAAeH,GAAM,QAAQ,EAAK,CAAC;AAAA,EAC1C;AAAA,EACA,OAAgBI,KAAiD;AAAA,IAChE,WAAc,CAAAC,MAAIC,EAAO,KAAK,GAAGD,CAAC;AAAA,IAClC,cAAgB,CAAAA,MAAIC,EAAO,KAAK,MAAMD,CAAC;AAAA,IACvC,YAAe,CAAAA,MAAIC,EAAO,KAAK,IAAID,CAAC;AAAA,IACpC,aAAgB,CAAAA,MAAIC,EAAO,OAAO,GAAGD,CAAC;AAAA,IACtC,gBAAkB,CAAAA,MAAIC,EAAO,OAAO,MAAMD,CAAC;AAAA,IAC3C,cAAgB,CAAAA,MAAIC,EAAO,OAAO,IAAID,CAAC;AAAA,IACvC,eAAiB,CAAAA,MAAIC,EAAO,SAAS,GAAGD,CAAC;AAAA,IACzC,kBAAmB,CAAAA,MAAIC,EAAO,SAAS,MAAMD,CAAC;AAAA,IAC9C,gBAAkB,CAAAA,MAAIC,EAAO,SAAS,IAAID,CAAC;AAAA,IAC3C,YAAe,CAAAA,MAAIC,EAAO,MAAM,GAAGD,CAAC;AAAA,IACpC,eAAiB,CAAAA,MAAIC,EAAO,MAAM,MAAMD,CAAC;AAAA,IACzC,aAAgB,CAAAA,MAAIC,EAAO,MAAM,IAAID,CAAC;AAAA,IACtC,cAAgB,CAAAA,MAAIC,EAAO,QAAQ,GAAGD,CAAC;AAAA,IACvC,iBAAmB,CAAAA,MAAIC,EAAO,QAAQ,MAAMD,CAAC;AAAA,IAC7C,eAAiB,CAAAA,MAAIC,EAAO,QAAQ,IAAID,CAAC;AAAA,IACzC,kBAAmB,CAAAA,MAAIC,EAAO,YAAY,GAAGD,CAAC;AAAA,IAC9C,qBAAsB,CAAAA,MAAIC,EAAO,YAAY,MAAMD,CAAC;AAAA,IACpD,mBAAoB,CAAAA,MAAIC,EAAO,YAAY,IAAID,CAAC;AAAA,IAChD,eAAiB,CAAAA,MAAIC,EAAO,OAAO,KAAKD,CAAC;AAAA,IACzC,gBAAkB,CAAAA,MAAIC,EAAO,UAAU,GAAGD,CAAC;AAAA,IAC3C,mBAAoB,CAAAA,MAAIC,EAAO,UAAU,MAAMD,CAAC;AAAA,IAChD,iBAAmB,CAAAA,MAAIC,EAAO,UAAU,IAAID,CAAC;AAAA,IAC7C,cAAgB,CAAAA,MAAIC,EAAO,QAAQ,GAAGD,CAAC;AAAA,IACvC,iBAAmB,CAAAA,MAAIC,EAAO,QAAQ,MAAMD,CAAC;AAAA,IAC7C,eAAiB,CAAAA,MAAIC,EAAO,QAAQ,IAAID,CAAC;AAAA,IACzC,cAAgB,CAAAA,MAAIC,EAAO,QAAQ,GAAGD,CAAC;AAAA,IACvC,iBAAmB,CAAAA,MAAIC,EAAO,QAAQ,MAAMD,CAAC;AAAA,IAC7C,eAAiB,CAAAA,MAAIC,EAAO,QAAQ,IAAID,CAAC;AAAA,IACzC,iBAAmB,CAAAA,MAAIC,EAAO,WAAW,GAAGD,CAAC;AAAA,IAC7C,oBAAqB,CAAAA,MAAIC,EAAO,WAAW,MAAMD,CAAC;AAAA,IAClD,kBAAmB,CAAAA,MAAIC,EAAO,WAAW,IAAID,CAAC;AAAA,EAAA;AAAA,EAE/C,OAAO,KAAKE,GAA8C;AACzD,QAAI,CAAEA,EAAI,QAAO,OAAID,EAAO,OAAO,KAAKD,CAAC;AAEzC,UAAMG,IAAK,KAAKJ,GAAOG,CAAE;AACzB,QAAI,CAAEC,EAAI,OAAM;AAChB,WAAOA;AAAA,EACR;AAAA,EAEA,OAAgB,aAAa;AAAA,IAC5B,OAAS;AAAA,IACT,QAAU;AAAA,IACV,UAAW;AAAA;AAAA,IACX,SAAW;AAAA;AAAA,IACX,SAAW;AAAA;AAAA,IACX,SAAW;AAAA,IACX,SAAW;AAAA,IACX,OAAS;AAAA,IACT,GAAM;AAAA,IACN,GAAM;AAAA,EAAA;AAAA;AAAA,EAGP,OAAO,YAAYR,GAAYS,GAAgB;AAC9C,UAAMC,IAAoC,CAAA;AAC1C,eAAWH,KAAM,OAAO,KAAK,KAAK,UAAU,GAAG;AAE9C,YAAMI,IAAYX,EAAMO,CAAE;AAC1B,UAAI,CAAEI,EAAK;AAOX,YAAMC,IAAI,OAAOD,CAAG,GACdE,IAAOD,EAAE,WAAW,GAAG,GACvBE,IAAKD,IAAMD,EAAE,MAAM,CAAC,IAAGA;AAC7B,UAAI,CAAEE,EAAI;AAEV,YAAM,CAACC,GAAIC,CAAE,IAAIF,EAAG,MAAM,GAAG,GAEvBG,IAAKP,EAAIH,CAAE,IAAI,WAAWQ,CAAG;AAEnC,MAAIC,MAAIN,EAAIH,CAAE,KAAK,KAAK;AAAA,QACvB,KAAK,OAAA,KAAY,WAAWS,CAAE,IAAGC,IAAI;AAAA,MAAA,IAGlCJ,MAAMH,EAAIH,CAAE,KAAK,WAAWE,EAAIF,CAAE,CAAC;AAAA,IACxC;AACA,WAAOG;AAAA,EACR;AAAA;AAAA,EAIA,OAAO,YAAY;AAAC,SAAKlB,KAAU,CAAA,GAAI0B,EAAA;AAAA,EAAW;AAAA;AAAA,EAIlD,OAAO,MAAMC,GAAenB,GAAYoB,GAAWV,GAAUW,GAAqBC,GAAuBC,GAAkBC,IAAQ,IAAkB;AACpJ,UAAMC,IAAO,KAAKhC,GAAQ,aAAY,IAAGS,EAAWF,GAAM,QAAQ,GAAG,GAC/DD,IAAK,IAAI2B,EAAMN,CAAI,EAExB,GAAGV,GAAKe,CAAI,EACZ,SAASJ,CAAQ;AAClB,SAAK,UAAUtB,GAAIC,CAAI,GACvB,KAAKR,GAAQ2B,CAAK,IAAI,EAAC,IAAApB,GAAI,OAAAwB,EAAA;AAE3B,UAAM,EAAC,MAAAI,MAAQ3B;AACf,QAAI4B,IAAS7B;AACb,QAAI4B,GAAM;AAET,MAAIE,EAAO,YAAU,QAAQ,MAAM,OAAO7B,EAAK,MAAM,CAAC,UAAU2B,CAAI,WAAWP,EAAK,CAAC,IAAIA,EAAK,CAAC,IAAIA,EAAK,KAAK,GAAG;AAChH,iBAAW,EAAC,QAAAU,OAAWH,EAAK,SAAS,KAAKI,EAAa,GAAG;AAEzD,cAAM,EAAC,GAAAC,GAAG,IAAAC,GAAI,GAAAC,GAAG,IAAAC,GAAI,GAAAC,GAAG,IAAAC,GAAI,MAAAC,MAAQR;AACpC,YAAIS,IAAc,CAAA;AAClB,YAAID,EAAM,KAAI;AAAC,UAAAC,IAAc,KAAK,MAAMD,CAAI;AAAA,QAAC,SAASE,GAAG;AACxD,kBAAQ,MAAM,WAAWF,CAAI,MAAK,OAAOE,CAAC,CAAC;AAC3C;AAAA,QACD;AAAA;AAEC,WAAIR,KAAKC,OAAIM,EAAM,IAAIP,KAAKC,KACxBC,KAAKC,OAAII,EAAM,IAAIL,KAAKC,KACxBC,KAAKC,OAAIE,EAAM,QAAQ,OAAOH,KAAKC,CAAE;AAG1C,cAAMI,IAAO,KAAK,YAAYF,GAAOnB,CAAI;AACzC,QAAIS,EAAO,YAAU,QAAQ,KAAK;AAAA,QAEjCS,KAAQ,MAAMN,CAAC,MAAME,CAAC,MAAME,CAAC,GAC9B,WAAW,KAAK,UAAUK,CAAI,CAAC,EAAE;AAEjC,cAAMC,IAAQ,IAAIhB,EAAMN,CAAI,EAC3B,GAAGqB,GAAMhB,CAAI;AACd,aAAK,UAAUiB,GAAO1C,CAAI,GAC1B4B,EAAO,MAAMc,CAAK,GAElBd,IAASc;AAAA,MACV;AACA,MAAIb,EAAO,YAAU,QAAQ,SAAA;AAAA,IAC9B;AACA,IAAAD,EAAO,WAAW,MAAK;AACtB,YAAMe,IAAK,KAAKnD,GAAQ2B,CAAK;AAC7B,MAAMwB,GAAI,OAEV,OAAO,KAAKnD,GAAQ2B,CAAK,GAEzBwB,EAAG,KAAK,QACR5C,EAAG,KAAA,GACH4C,EAAG,QAAA,GAEHrB,EAAA,GACAsB,EAAQ,cAActD,IAAa6B,CAAK;AAAA,IACzC,CAAC;AAED,UAAM,EAAC,OAAA0B,MAAS7C;AAChB,QAAI6C,GAAO;AACV,YAAMC,IAAS,KAAKtD,GAAQqD,CAAK;AACjC,UAAI,CAAEC,GAAQ,GAAI,OAAM,GAAGD,CAAK;AAChC,aAAOC,EAAO,OACdA,EAAO,GAAG,MAAM/C,CAAE;AAAA,IACnB,MAAA,CACSyB,KAAOzB,EAAG,MAAA;AAEnB,WAAOA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,OAAgBgC,KAAgB;AAAA;AAAA,EAGhC,OAAO,GAAGgB,GAAa;AAEtB,QAAI,CADO,KAAKvD,GAAQH,CAAY,GAC1B,GAAI,QAAO;AAErB,UAAM2D,IAAM,MAAK,KAAKC,GAAA;AACtB,WAAAL,EAAQ,UAAUtD,IAAaD,GAAc2D,GAAK,IAAMA,CAAG,GACpD;AAAA,EACR;AAAA;AAAA,EAGA,OAAOC,KAAgB;AAAC,SAAKzD,GAAQH,CAAY,GAAG,IAAI,KAAA,EAAO,IAAA;AAAA,EAAK;AAAA;AAAA,EAEpE,aAAa,aAAa;AAEzB,QAAI,CADO,KAAKG,GAAQH,CAAY,GAC1B,GAAI;AAGd,UAAM,EAAC,SAAA6D,GAAS,SAAAC,MAAW,QAAQ,cAAA;AACnC,IAAAP,EAAQ,UAAUtD,IAAaD,GAAc8D,GAAS,IAAOA,CAAO,GACpE,KAAKF,GAAA,GACL,MAAMC;AAAA,EACP;AAAA;AAAA,EAIA,OAAO,SAASlD,GAAY;AAC3B,UAAMmB,IAAQ,KAAKiC,GAAOpD,CAAI,GACxB2C,IAAK,KAAKnD,GAAQ2B,CAAK;AAC7B,QAAI,CAAEwB,GAAI,GAAI,QAAO;AAErB,UAAMK,IAAM,MAAKL,EAAG,IAAI,IAAA;AACxB,WAAAC,EAAQ,UAAUtD,IAAa6B,GAAO6B,GAAK,IAAMA,CAAG,GAC7C;AAAA,EACR;AAAA,EACC,OAAOI,GAAOpD,GAAY;AACzB,UAAM,EAAC,OAAAqD,IAAM,IAAI,IAAAC,GAAI,MAAAC,MAAQvD,GACvBmB,IAAQmC,IAAI;AAAA,EAAQA,CAAE,KAAIC,KAAQF;AACxC,QAAI,CAAElC,EAAO,OAAM;AAEnB,WAAOA;AAAA,EACR;AAAA;AAAA,EAGD,OAAO,SAASnB,GAAY;AAC3B,UAAMmB,IAAQ,KAAKiC,GAAOpD,CAAI;AAC9B,gBAAKR,GAAQ2B,CAAK,GAAG,IAAI,KAAA,EAAO,IAAA,GACzB;AAAA,EACR;AAAA;AAAA,EAGA,OAAO,UAAUnB,GAAY;AAC5B,UAAMmB,IAAQ,KAAKiC,GAAOpD,CAAI;AAC9B,gBAAKR,GAAQ2B,CAAK,GAAG,IAAI,MAAA,GAClB;AAAA,EACR;AAAA;AAAA,EAGA,OAAO,WAAWnB,GAAY;AAC7B,UAAMmB,IAAQ,KAAKiC,GAAOpD,CAAI;AAC9B,gBAAKR,GAAQ2B,CAAK,GAAG,IAAI,OAAA,GAClB;AAAA,EACR;AAED;"}
@@ -0,0 +1,105 @@
1
+ import { a as c, f as o } from "./web2.js";
2
+ class t {
3
+ constructor(a, e, s) {
4
+ this.sys = a, t.#s = s, t.#e = e, t.#r = e.title, t.myTrace = t.#i, e.log = (r) => this.#c(r), e.trace = (r) => this.#o(r), t.#t = document.createElement("span"), t.#t.hidden = !0, t.#t.textContent = "", t.#t.style.cssText = ` z-index: ${String(Number.MAX_SAFE_INTEGER)};
5
+ position: absolute; left: 0; top: 0;
6
+ color: black;
7
+ background-color: rgba(255, 255, 255, 0.7);`, document.body.appendChild(t.#t);
8
+ }
9
+ static #s;
10
+ static #e;
11
+ static #r;
12
+ static #t;
13
+ destroy() {
14
+ t.#r = () => !1, document.body.removeChild(t.#t), t.myTrace = t.trace_beforeNew;
15
+ }
16
+ // ログ出力
17
+ #a = !0;
18
+ #c(a) {
19
+ let e = "";
20
+ return this.#a && (this.#a = !1, e = `== ${c.plat_desc} ==
21
+ `), this.sys.appendFile(
22
+ this.sys.path_downloads + "log.txt",
23
+ `${e}--- ${o("-", "_", "")} [fn:${t.#s.scriptFn} line:${String(t.#s.lineNum)}] prj:${this.sys.arg.cur}
24
+ ${a.text || `(text is ${a.text})`}
25
+ `
26
+ ), !1;
27
+ }
28
+ #o(a) {
29
+ return t.myTrace(a.text || `(text is ${a.text})`, "I"), !1;
30
+ }
31
+ // private禁止、galleryでエラーになる
32
+ static trace_beforeNew = (a, e = "E") => {
33
+ let s = `{${e}} ` + a, r = "";
34
+ switch (e) {
35
+ case "D":
36
+ r = `color:#${c.isDarkMode ? "49F" : "05A"};`;
37
+ break;
38
+ case "W":
39
+ r = "color:#FF8800;";
40
+ break;
41
+ case "F":
42
+ r = "color:#BB0000;";
43
+ break;
44
+ case "ET":
45
+ throw s;
46
+ case "E":
47
+ console.error("%c" + s, "color:#FF3300;");
48
+ return;
49
+ default:
50
+ r = "color:black;", s = " " + s;
51
+ }
52
+ console.info("%c" + s, r);
53
+ };
54
+ static myTrace = t.trace_beforeNew;
55
+ static strPos = () => t.#s.lineNum > 0 ? `(fn:${t.#s.scriptFn} line:${String(t.#s.lineNum)}) ` : "";
56
+ static #i = (a, e = "E") => {
57
+ let s = `{${e}} ` + t.strPos() + a;
58
+ t.#l(s, e);
59
+ let r = "";
60
+ switch (e) {
61
+ case "D":
62
+ r = `color:#${c.isDarkMode ? "49F" : "05A"};`;
63
+ break;
64
+ case "W":
65
+ r = "color:#F80;";
66
+ break;
67
+ case "F":
68
+ r = "color:#B00;";
69
+ break;
70
+ case "ET":
71
+ case "E":
72
+ if (t.#r({ text: a }), this.#e.dump_lay({}), this.#e.dump_val({}), t.#s.dumpErrForeLine(), this.#e.dump_stack({}), e === "ET") throw s;
73
+ console.error("%c" + s, "color:#F30;");
74
+ return;
75
+ default:
76
+ r = "", s = " " + s;
77
+ }
78
+ console.info("%c" + s, r);
79
+ };
80
+ static #l = (a, e) => {
81
+ let s = "";
82
+ switch (e) {
83
+ case "D":
84
+ s = "color:#05A;";
85
+ break;
86
+ case "W":
87
+ s = "color:#F80;";
88
+ break;
89
+ case "F":
90
+ s = "color:#B00;";
91
+ break;
92
+ case "ET":
93
+ case "E":
94
+ s = "color:#F30;";
95
+ break;
96
+ default:
97
+ s = "";
98
+ }
99
+ t.#t.innerHTML += `<span style='${s}'>${a}</span><br/>`, t.#t.hidden = !1;
100
+ };
101
+ }
102
+ export {
103
+ t as D
104
+ };
105
+ //# sourceMappingURL=DebugMng.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugMng.js","sources":["../src/sn/DebugMng.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 {CmnLib, getDateStr} from './CmnLib';\nimport type {TArg, TTag, T_HTag} from './Grammar';\nimport type {SysBase} from './SysBase';\nimport type {ScriptIterator} from './ScriptIterator';\n\nexport type T_TRACE = (txt: string, lvl?: 'D'|'W'|'F'|'E'|'I'|'ET')=> void;\n\n\nexport class DebugMng {\n\tstatic\t#scrItr\t: ScriptIterator;\n\tstatic\t#hTag\t: T_HTag;\n\tstatic\t#title\t: TTag;\n\tstatic\t#spnDbg\t: HTMLSpanElement;\n\n\tconstructor(private readonly sys: SysBase, hTag: T_HTag, scrItr: ScriptIterator) {\n\t\tDebugMng.#scrItr = scrItr;\n\t\tDebugMng.#hTag = hTag;\n\t\tDebugMng.#title = hTag.title;\n\t\tDebugMng.myTrace = DebugMng.#st_trace;\n\n\t\t//\tデバッグ・その他\n\t\t//hTag.clearsysvar\t// Variableで定義\t\t\t\t// システム変数の全消去\n\t\t//hTag.clearvar\t\t// Variableで定義\t\t\t\t// ゲーム変数の全消去\n\t\t//hTag.dump_lay\t\t// LayerMngで定義\t\t\t\t// レイヤのダンプ\n\t\t//hTag.dump_val\t\t// Variableで定義\t\t\t\t// 変数のダンプ\n\t\t//hTag.dump_stack\t// ScriptIteratorで定義\t\t\t// スタックのダンプ\n\t\thTag.log\t\t\t= o=> this.#log(o);\t\t\t\t// ログ出力\n\t\t//hTag.reload_script// ScriptIterator.ts内で定義\t// スクリプト再読込\n\t\thTag.trace\t\t\t= o=> this.#trace(o);\t\t\t// デバッグ表示へ出力\n\n\t\tDebugMng.#spnDbg = document.createElement('span');\n\t\tDebugMng.#spnDbg.hidden = true;\n\t\tDebugMng.#spnDbg.textContent = '';\n\t\tDebugMng.#spnDbg.style.cssText =\n\t\t`\tz-index: ${String(Number.MAX_SAFE_INTEGER)};\n\t\t\tposition: absolute; left: 0; top: 0;\n\t\t\tcolor: black;\n\t\t\tbackground-color: rgba(255, 255, 255, 0.7);`\n\t\tdocument.body.appendChild(DebugMng.#spnDbg);\n\t}\n\tdestroy() {\n\t\tDebugMng.#title = ()=> false;\n\t\tdocument.body.removeChild(DebugMng.#spnDbg);\n\n\t\tDebugMng.myTrace = DebugMng.trace_beforeNew;\n\t}\n\n\t// ログ出力\n\t#first = true;\n\t#log(hArg: TArg) {\n\t\tlet dat = '';\n\t\tif (this.#first) {\n\t\t\tthis.#first = false;\n\t\t\tdat = `== ${CmnLib.plat_desc} ==\\n`;\n\t\t}\n\t\tvoid this.sys.appendFile(\n\t\t\tthis.sys.path_downloads +'log.txt',\n\t\t\t`${dat}--- ${getDateStr('-', '_', '')\n\t\t\t} [fn:${DebugMng.#scrItr.scriptFn} line:${String(DebugMng.#scrItr.lineNum)\n\t\t\t}] prj:${this.sys.arg.cur\n\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing, @typescript-eslint/restrict-template-expressions\n\t\t\t}\\n${hArg.text || `(text is ${hArg.text})`}\\n`,\n\t\t);\n\n\t\treturn false;\n\t}\n\n\t#trace(hArg: TArg) {\n\t\t// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing, @typescript-eslint/restrict-template-expressions\n\t\tDebugMng.myTrace(hArg.text || `(text is ${hArg.text})`, 'I');\n\n\t\treturn false;\n\t}\n\n\t// private禁止、galleryでエラーになる\n\tstatic readonly trace_beforeNew: T_TRACE = (txt, lvl = 'E')=> {\n\t\tlet mes = `{${lvl}} `+ txt;\n\t\tlet sty = '';\n\t\tswitch (lvl) {\n\t\t\tcase 'D':\tsty = `color:#${CmnLib.isDarkMode ?'49F' :'05A'};`;\tbreak;\n\t\t\tcase 'W':\tsty = 'color:#FF8800;';\tbreak;\n\t\t\tcase 'F':\tsty = 'color:#BB0000;';\tbreak;\n\t\t\tcase 'ET':\tthrow mes;\n\t\t\tcase 'E':\tconsole.error('%c'+ mes, 'color:#FF3300;');\treturn;\n\t\t\tdefault:\tsty = 'color:black;';\tmes = ' '+ mes;\n\t\t}\n\t\tconsole.info('%c'+ mes, sty);\n\t}\n\tstatic myTrace = DebugMng.trace_beforeNew;\n\tstatic strPos = ()=> DebugMng.#scrItr.lineNum > 0\n\t\t? `(fn:${DebugMng.#scrItr.scriptFn} line:${String(DebugMng.#scrItr.lineNum)}) `\n\t\t: '';\n\tstatic readonly\t#st_trace: T_TRACE = (txt, lvl = 'E')=> {\n\t\tlet mes = `{${lvl}} `+ DebugMng.strPos() + txt;\n\t\tDebugMng.#dspDbg(mes, lvl);\n\n\t\tlet sty = '';\n\t\tswitch (lvl) {\n\t\t\tcase 'D':\tsty = `color:#${CmnLib.isDarkMode ?'49F' :'05A'};`;\tbreak;\n\t\t\tcase 'W':\tsty = 'color:#F80;';\tbreak;\n\t\t\tcase 'F':\tsty = 'color:#B00;';\tbreak;\n\t\t\tcase 'ET':\n\t\t\tcase 'E':\tDebugMng.#title({text: txt});\n\t\t\t\t/*if (CmnLib.osName === \"AND\") {\n\t\t\t\t\tconst buf = \"mailto:foo@hoge.co.jp\"\n\t\t\t\t\t\t+ \"?subject=AIRNovel_ERR&body=\"\n\t\t\t\t\t\t+ CmnLib.escapeZenkaku(mes) + \"\\n\"\n\t\t\t\t\t\t+ \"※一部記号は全角表示しています。\";\n\t\t\t\t\tflash.net.navigateToURL(new URLRequest(buf));\n\t\t\t\t}*/\n\t\t\t\tthis.#hTag.dump_lay({});\n\t\t\t\tthis.#hTag.dump_val({});\n\t\t\t\tDebugMng.#scrItr.dumpErrForeLine();\n\t\t\t\tthis.#hTag.dump_stack({});\n\n\t\t\t\tif (lvl === 'ET') throw mes;\n\t\t\t\tconsole.error('%c'+ mes, 'color:#F30;');\treturn;\n\t\t\tdefault:\tsty = '';\tmes = ' '+ mes;\n\t\t}\n\t\tconsole.info('%c'+ mes, sty);\n\t}\n\n\tstatic readonly\t#dspDbg: T_TRACE = (mes, lvl)=> {\n\t\tlet sty = '';\n\t\tswitch (lvl) {\n\t\t\tcase 'D':\tsty = 'color:#05A;';\tbreak;\n\t\t\tcase 'W':\tsty = 'color:#F80;';\tbreak;\n\t\t\tcase 'F':\tsty = 'color:#B00;';\tbreak;\n\t\t\tcase 'ET':\n\t\t\tcase 'E':\tsty = 'color:#F30;';\tbreak;\n\t\t\tdefault:\tsty = '';\n\t\t}\n\t\tDebugMng.#spnDbg.innerHTML += `<span style='${sty}'>${mes}</span><br/>`;\n\t\tDebugMng.#spnDbg.hidden = false;\n\t};\n\n}\n"],"names":["DebugMng","sys","hTag","scrItr","#scrItr","#hTag","#title","#st_trace","o","#log","#trace","#spnDbg","#first","hArg","dat","CmnLib","getDateStr","txt","lvl","mes","sty","#dspDbg"],"mappings":";AAeO,MAAMA,EAAS;AAAA,EAMrB,YAA6BC,GAAcC,GAAcC,GAAwB;AAApD,SAAA,MAAAF,GAC5BD,EAASI,KAAUD,GACnBH,EAASK,KAAQH,GACjBF,EAASM,KAASJ,EAAK,OACvBF,EAAS,UAAUA,EAASO,IAQ5BL,EAAK,MAAQ,CAAAM,MAAI,KAAKC,GAAKD,CAAC,GAE5BN,EAAK,QAAU,CAAAM,MAAI,KAAKE,GAAOF,CAAC,GAEhCR,EAASW,KAAU,SAAS,cAAc,MAAM,GAChDX,EAASW,GAAQ,SAAS,IAC1BX,EAASW,GAAQ,cAAc,IAC/BX,EAASW,GAAQ,MAAM,UACvB,aAAa,OAAO,OAAO,gBAAgB,CAAC;AAAA;AAAA;AAAA,iDAI5C,SAAS,KAAK,YAAYX,EAASW,EAAO;AAAA,EAC3C;AAAA,EA9BA,OAAOP;AAAA,EACP,OAAOC;AAAA,EACP,OAAOC;AAAA,EACP,OAAOK;AAAA,EA4BP,UAAU;AACT,IAAAX,EAASM,KAAS,MAAK,IACvB,SAAS,KAAK,YAAYN,EAASW,EAAO,GAE1CX,EAAS,UAAUA,EAAS;AAAA,EAC7B;AAAA;AAAA,EAGAY,KAAS;AAAA,EACTH,GAAKI,GAAY;AAChB,QAAIC,IAAM;AACV,WAAI,KAAKF,OACR,KAAKA,KAAS,IACdE,IAAM,MAAMC,EAAO,SAAS;AAAA,IAExB,KAAK,IAAI;AAAA,MACb,KAAK,IAAI,iBAAgB;AAAA,MACzB,GAAGD,CAAG,OAAOE,EAAW,KAAK,KAAK,EAAE,CACpC,QAAQhB,EAASI,GAAQ,QAAQ,SAAS,OAAOJ,EAASI,GAAQ,OAAO,CACzE,SAAS,KAAK,IAAI,IAAI,GAEtB;AAAA,EAAKS,EAAK,QAAQ,YAAYA,EAAK,IAAI,GAAG;AAAA;AAAA,IAAA,GAGpC;AAAA,EACR;AAAA,EAEAH,GAAOG,GAAY;AAElB,WAAAb,EAAS,QAAQa,EAAK,QAAQ,YAAYA,EAAK,IAAI,KAAK,GAAG,GAEpD;AAAA,EACR;AAAA;AAAA,EAGA,OAAgB,kBAA2B,CAACI,GAAKC,IAAM,QAAO;AAC7D,QAAIC,IAAM,IAAID,CAAG,OAAMD,GACnBG,IAAM;AACV,YAAQF,GAAA;AAAA,MACP,KAAK;AAAK,QAAAE,IAAM,UAAUL,EAAO,aAAY,QAAO,KAAK;AAAK;AAAA,MAC9D,KAAK;AAAK,QAAAK,IAAM;AAAkB;AAAA,MAClC,KAAK;AAAK,QAAAA,IAAM;AAAkB;AAAA,MAClC,KAAK;AAAM,cAAMD;AAAA,MACjB,KAAK;AAAK,gBAAQ,MAAM,OAAMA,GAAK,gBAAgB;AAAG;AAAA,MACtD;AAAS,QAAAC,IAAM,gBAAgBD,IAAM,MAAKA;AAAA,IAAA;AAE3C,YAAQ,KAAK,OAAMA,GAAKC,CAAG;AAAA,EAC5B;AAAA,EACA,OAAO,UAAUpB,EAAS;AAAA,EAC1B,OAAO,SAAS,MAAKA,EAASI,GAAQ,UAAU,IAC7C,OAAOJ,EAASI,GAAQ,QAAQ,SAAS,OAAOJ,EAASI,GAAQ,OAAO,CAAC,OACzE;AAAA,EACH,OAAgBG,KAAqB,CAACU,GAAKC,IAAM,QAAO;AACvD,QAAIC,IAAM,IAAID,CAAG,OAAMlB,EAAS,WAAWiB;AAC3C,IAAAjB,EAASqB,GAAQF,GAAKD,CAAG;AAEzB,QAAIE,IAAM;AACV,YAAQF,GAAA;AAAA,MACP,KAAK;AAAK,QAAAE,IAAM,UAAUL,EAAO,aAAY,QAAO,KAAK;AAAK;AAAA,MAC9D,KAAK;AAAK,QAAAK,IAAM;AAAe;AAAA,MAC/B,KAAK;AAAK,QAAAA,IAAM;AAAe;AAAA,MAC/B,KAAK;AAAA,MACL,KAAK;AAaJ,YAbSpB,EAASM,GAAO,EAAC,MAAMW,EAAA,CAAI,GAQpC,KAAKZ,GAAM,SAAS,EAAE,GACtB,KAAKA,GAAM,SAAS,EAAE,GACtBL,EAASI,GAAQ,gBAAA,GACjB,KAAKC,GAAM,WAAW,EAAE,GAEpBa,MAAQ,KAAM,OAAMC;AACxB,gBAAQ,MAAM,OAAMA,GAAK,aAAa;AAAG;AAAA,MAC1C;AAAS,QAAAC,IAAM,IAAID,IAAM,MAAKA;AAAA,IAAA;AAE/B,YAAQ,KAAK,OAAMA,GAAKC,CAAG;AAAA,EAC5B;AAAA,EAEA,OAAgBC,KAAmB,CAACF,GAAKD,MAAO;AAC/C,QAAIE,IAAM;AACV,YAAQF,GAAA;AAAA,MACP,KAAK;AAAK,QAAAE,IAAM;AAAe;AAAA,MAC/B,KAAK;AAAK,QAAAA,IAAM;AAAe;AAAA,MAC/B,KAAK;AAAK,QAAAA,IAAM;AAAe;AAAA,MAC/B,KAAK;AAAA,MACL,KAAK;AAAK,QAAAA,IAAM;AAAe;AAAA,MAC/B;AAAS,QAAAA,IAAM;AAAA,IAAA;AAEhB,IAAApB,EAASW,GAAQ,aAAa,gBAAgBS,CAAG,KAAKD,CAAG,gBACzDnB,EAASW,GAAQ,SAAS;AAAA,EAC3B;AAED;"}