@famibee/skynovel 1.64.11 → 1.64.13

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 (75) hide show
  1. package/dist/CmnTween.js +118 -125
  2. package/dist/CmnTween.js.map +1 -1
  3. package/dist/EventMng.js +91 -92
  4. package/dist/EventMng.js.map +1 -1
  5. package/dist/GrpLayer.js +16 -11
  6. package/dist/GrpLayer.js.map +1 -1
  7. package/dist/LayerMng.js +92 -93
  8. package/dist/LayerMng.js.map +1 -1
  9. package/dist/Main.js.map +1 -1
  10. package/dist/PropParser.js +60 -58
  11. package/dist/PropParser.js.map +1 -1
  12. package/dist/Reading.js +5 -4
  13. package/dist/Reading.js.map +1 -1
  14. package/dist/ScriptIterator.js +97 -97
  15. package/dist/ScriptIterator.js.map +1 -1
  16. package/dist/SndBuf.js +37 -35
  17. package/dist/SndBuf.js.map +1 -1
  18. package/dist/Variable.js +89 -94
  19. package/dist/Variable.js.map +1 -1
  20. package/dist/sn/CmnTween.d.ts +4 -15
  21. package/dist/sn/CmnTween.d.ts.map +1 -1
  22. package/dist/sn/EventMng.d.ts.map +1 -1
  23. package/dist/sn/GrpLayer.d.ts +1 -1
  24. package/dist/sn/GrpLayer.d.ts.map +1 -1
  25. package/dist/sn/Layer.d.ts +1 -1
  26. package/dist/sn/Layer.d.ts.map +1 -1
  27. package/dist/sn/LayerMng.d.ts.map +1 -1
  28. package/dist/sn/Main.d.ts.map +1 -1
  29. package/dist/sn/PropParser.d.ts +7 -4
  30. package/dist/sn/PropParser.d.ts.map +1 -1
  31. package/dist/sn/Reading.d.ts +1 -1
  32. package/dist/sn/Reading.d.ts.map +1 -1
  33. package/dist/sn/ScriptIterator.d.ts.map +1 -1
  34. package/dist/sn/SndBuf.d.ts.map +1 -1
  35. package/dist/sn/Variable.d.ts.map +1 -1
  36. package/dist/web2.js +3 -3
  37. package/dist/web2.js.map +1 -1
  38. package/dist_app/CmnTween.js +118 -125
  39. package/dist_app/CmnTween.js.map +1 -1
  40. package/dist_app/EventMng.js +244 -245
  41. package/dist_app/EventMng.js.map +1 -1
  42. package/dist_app/GrpLayer.js +16 -11
  43. package/dist_app/GrpLayer.js.map +1 -1
  44. package/dist_app/LayerMng.js +59 -60
  45. package/dist_app/LayerMng.js.map +1 -1
  46. package/dist_app/Main.js.map +1 -1
  47. package/dist_app/PropParser.js +37 -35
  48. package/dist_app/PropParser.js.map +1 -1
  49. package/dist_app/Reading.js +5 -4
  50. package/dist_app/Reading.js.map +1 -1
  51. package/dist_app/ScriptIterator.js +151 -151
  52. package/dist_app/ScriptIterator.js.map +1 -1
  53. package/dist_app/SndBuf.js +37 -35
  54. package/dist_app/SndBuf.js.map +1 -1
  55. package/dist_app/Variable.js +89 -94
  56. package/dist_app/Variable.js.map +1 -1
  57. package/dist_app/app2.js +3 -3
  58. package/dist_app/app2.js.map +1 -1
  59. package/dist_app/sn/CmnTween.d.ts +4 -15
  60. package/dist_app/sn/CmnTween.d.ts.map +1 -1
  61. package/dist_app/sn/EventMng.d.ts.map +1 -1
  62. package/dist_app/sn/GrpLayer.d.ts +1 -1
  63. package/dist_app/sn/GrpLayer.d.ts.map +1 -1
  64. package/dist_app/sn/Layer.d.ts +1 -1
  65. package/dist_app/sn/Layer.d.ts.map +1 -1
  66. package/dist_app/sn/LayerMng.d.ts.map +1 -1
  67. package/dist_app/sn/Main.d.ts.map +1 -1
  68. package/dist_app/sn/PropParser.d.ts +7 -4
  69. package/dist_app/sn/PropParser.d.ts.map +1 -1
  70. package/dist_app/sn/Reading.d.ts +1 -1
  71. package/dist_app/sn/Reading.d.ts.map +1 -1
  72. package/dist_app/sn/ScriptIterator.d.ts.map +1 -1
  73. package/dist_app/sn/SndBuf.d.ts.map +1 -1
  74. package/dist_app/sn/Variable.d.ts.map +1 -1
  75. package/package.json +5 -5
package/dist/CmnTween.js CHANGED
@@ -1,134 +1,134 @@
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 {
1
+ import { l as T, e as P, a as g } from "./web2.js";
2
+ import { u as L, E as n, b as N, T as S, a as x } from "./Reading.js";
3
+ const _ = `trans
4
+ `, $ = "tsy nm:";
5
+ class k {
6
6
  static #t = {};
7
7
  static #s;
8
8
  static #i;
9
- static init(t, n) {
10
- this.#t = {}, this.#s = t, this.#i = n, this.#i.ticker.add(this.#e);
9
+ static init(t, i) {
10
+ this.#t = {}, this.#s = t, this.#i = i, this.#i.ticker.add(this.#a);
11
11
  }
12
- static #e = () => P();
12
+ static #a = () => L();
13
13
  static destroy() {
14
- this.stopAllTw(), this.#i.ticker.remove(this.#e);
14
+ this.stopAllTw(), this.#i.ticker.remove(this.#a);
15
15
  }
16
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));
17
+ static setTwProp(t, i) {
18
+ const s = T(i, "repeat", 1);
19
+ return t.delay(T(i, "delay", 0)).easing(this.ease(i.ease)).repeat(s > 0 ? s - 1 : 1 / 0).yoyo(P(i, "yoyo", !1));
20
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)
21
+ static #e = {
22
+ "Back.In": (t) => n.Back.In(t),
23
+ "Back.InOut": (t) => n.Back.InOut(t),
24
+ "Back.Out": (t) => n.Back.Out(t),
25
+ "Bounce.In": (t) => n.Bounce.In(t),
26
+ "Bounce.InOut": (t) => n.Bounce.InOut(t),
27
+ "Bounce.Out": (t) => n.Bounce.Out(t),
28
+ "Circular.In": (t) => n.Circular.In(t),
29
+ "Circular.InOut": (t) => n.Circular.InOut(t),
30
+ "Circular.Out": (t) => n.Circular.Out(t),
31
+ "Cubic.In": (t) => n.Cubic.In(t),
32
+ "Cubic.InOut": (t) => n.Cubic.InOut(t),
33
+ "Cubic.Out": (t) => n.Cubic.Out(t),
34
+ "Elastic.In": (t) => n.Elastic.In(t),
35
+ "Elastic.InOut": (t) => n.Elastic.InOut(t),
36
+ "Elastic.Out": (t) => n.Elastic.Out(t),
37
+ "Exponential.In": (t) => n.Exponential.In(t),
38
+ "Exponential.InOut": (t) => n.Exponential.InOut(t),
39
+ "Exponential.Out": (t) => n.Exponential.Out(t),
40
+ "Linear.None": (t) => n.Linear.None(t),
41
+ "Quadratic.In": (t) => n.Quadratic.In(t),
42
+ "Quadratic.InOut": (t) => n.Quadratic.InOut(t),
43
+ "Quadratic.Out": (t) => n.Quadratic.Out(t),
44
+ "Quartic.In": (t) => n.Quartic.In(t),
45
+ "Quartic.InOut": (t) => n.Quartic.InOut(t),
46
+ "Quartic.Out": (t) => n.Quartic.Out(t),
47
+ "Quintic.In": (t) => n.Quintic.In(t),
48
+ "Quintic.InOut": (t) => n.Quintic.InOut(t),
49
+ "Quintic.Out": (t) => n.Quintic.Out(t),
50
+ "Sinusoidal.In": (t) => n.Sinusoidal.In(t),
51
+ "Sinusoidal.InOut": (t) => n.Sinusoidal.InOut(t),
52
+ "Sinusoidal.Out": (t) => n.Sinusoidal.Out(t)
53
53
  };
54
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;
55
+ if (!t) return (s) => n.Linear.None(s);
56
+ const i = this.#e[t];
57
+ if (!i) throw "異常なease指定です";
58
+ return i;
59
59
  }
60
- static hMemberCnt = {
61
- alpha: 0,
62
- height: 0,
63
- rotation: 0,
60
+ static aLayerPrpNm = [
61
+ "alpha",
62
+ "height",
63
+ "rotation",
64
64
  // rotationX〜Z、scaleZ、zは設定すると
65
- scale_x: 0,
65
+ "scale_x",
66
66
  // 三次元方向の拡大縮小ルーチンが働き画像がぼやけるので
67
- scale_y: 0,
67
+ "scale_y",
68
68
  // backlayで設定しない方針
69
- pivot_x: 0,
70
- pivot_y: 0,
71
- width: 0,
72
- x: 0,
73
- y: 0
74
- };
69
+ "pivot_x",
70
+ "pivot_y",
71
+ "width",
72
+ "x",
73
+ "y"
74
+ ];
75
75
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
76
- static cnvTweenArg(t, n) {
76
+ static cnvTweenArg(t, i) {
77
77
  const s = {};
78
- for (const e of Object.keys(this.hMemberCnt)) {
79
- const c = t[e];
78
+ for (const a of k.aLayerPrpNm) {
79
+ const c = t[a];
80
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]));
81
+ const u = String(c), p = u.startsWith("="), h = p ? u.slice(1) : u;
82
+ if (!h) continue;
83
+ const [d = "0", e] = h.split(","), r = s[a] = parseFloat(d);
84
+ e && (s[a] += Math.round(
85
+ Math.random() * (parseFloat(e) - r + 1)
86
+ )), p && (s[a] += parseFloat(i[a]));
87
87
  }
88
88
  return s;
89
89
  }
90
90
  // トゥイーン全停止
91
91
  static stopAllTw() {
92
- this.#t = {}, L();
92
+ this.#t = {}, N();
93
93
  }
94
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;
95
+ static tween(t, i, s, a, c, u, p, h = !0) {
96
+ const d = this.#s.isSkipping ? 0 : T(i, "time", NaN), e = new S(s).to(a, d).onUpdate(c);
97
+ this.setTwProp(e, i), this.#t[t] = { tw: e, onEnd: p };
98
+ const { path: r } = i;
99
+ let f = e;
100
+ if (r) {
101
+ g.debugLog && console.group(`🍝 [${i[":タグ名"]}] path=${r}= start(${s.x},${s.y},${s.alpha})`);
102
+ for (const { groups: o } of r.matchAll(this.#o)) {
103
+ const { x: w, x2: Q, y, y2: C, o: m, o2: b, json: I } = o;
104
104
  let l = {};
105
- if (O) try {
106
- l = JSON.parse(O);
107
- } catch (B) {
108
- console.error(`🍝 json=${O} ` + String(B));
105
+ if (I) try {
106
+ l = JSON.parse(I);
107
+ } catch (v) {
108
+ console.error(`🍝 json=${I} ` + String(v));
109
109
  continue;
110
110
  }
111
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;
112
+ (w ?? Q) && (l.x = w ?? Q), (y ?? C) && (l.y = y ?? C), (m ?? b) && (l.alpha = Number(m ?? b));
113
+ const B = this.cnvTweenArg(l, s);
114
+ g.debugLog && console.info(`🍝 ${// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
115
+ I ?? `{x:${w} y:${y} o:${m}}`} => hTo:${JSON.stringify(B)}`);
116
+ const E = new S(s).to(B, d);
117
+ this.setTwProp(E, i), f.chain(E), f = E;
118
118
  }
119
- x.debugLog && console.groupEnd();
119
+ g.debugLog && console.groupEnd();
120
120
  }
121
- y.onComplete(() => {
121
+ f.onComplete(() => {
122
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));
123
+ o?.tw && (delete this.#t[t], o.tw = void 0, e.stop(), o.onEnd?.(), u(), x.notifyEndProc($ + t));
124
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;
125
+ const { chain: O } = i;
126
+ if (O) {
127
+ const o = this.#t[O];
128
+ if (!o?.tw) throw `${O}は存在しない・または終了したトゥイーンです`;
129
+ delete o.onEnd, o.tw.chain(e);
130
+ } else h && e.start();
131
+ return e;
132
132
  }
133
133
  // 11 match 301 step (0.1ms) PCRE2 https://regex101.com/r/reinpq/1
134
134
  // List ${x}${x2}/${y}${y2}/${o}${o2}=${json}\n
@@ -141,61 +141,54 @@ class F {
141
141
  (?:
142
142
  \s*,\s*
143
143
  (?: (?<o>[-=\d\.]+) | (['"]) (?<o2>.*?) \8 )
144
-
145
144
  )?
146
145
  )?
147
146
  |
148
147
  (?<json>\{[^{}]*})
149
148
  */
150
- static #c = /\(\s*(?:(?<x>[-=\d.]+)|(['"])(?<x2>.*?)\2)?(?:\s*,\s*(?:(?<y>[-=\d.]+)|(['"])(?<y2>.*?)\5)?(?:\s*,\s*(?:(?<o>[-=\d.]+)|(['"])(?<o2>.*?)\8))?)?|(?<json>\{[^{}]*})/g;
149
+ static #o = /\(\s*(?:(?<x>[-=\d.]+)|(['"])(?<x2>.*?)\2)?(?:\s*,\s*(?:(?<y>[-=\d.]+)|(['"])(?<y2>.*?)\5)?(?:\s*,\s*(?:(?<o>[-=\d.]+)|(['"])(?<o2>.*?)\8))?)?|(?<json>\{[^{}]*})/g;
151
150
  // トランス終了待ち
152
151
  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;
152
+ if (!this.#t[_]?.tw) return !1;
153
+ const s = () => this.stopEndTrans();
154
+ return x.beginProc(_, s, !0, s), !0;
156
155
  }
157
156
  // レイヤのトランジションの停止
158
- static #a() {
159
- this.#t[h]?.tw?.stop().end();
157
+ static stopEndTrans() {
158
+ this.#t[_]?.tw?.stop().end();
160
159
  }
161
160
  // 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
161
  // トゥイーン終了待ち
168
162
  static wait_tsy(t) {
169
- const n = this.#n(t), s = this.#t[n];
163
+ const i = this.#n(t), s = this.#t[i];
170
164
  if (!s?.tw) return !1;
171
- const e = () => s.tw?.end();
172
- return d.beginProc(w + n, e, !0, e), !0;
165
+ const a = () => s.tw?.end();
166
+ return x.beginProc($ + i, a, !0, a), !0;
173
167
  }
174
168
  static #n(t) {
175
- const { layer: n = "", id: s, name: e } = t, c = s ? `frm
176
- ${s}` : e ?? n;
169
+ const { layer: i = "", id: s, name: a } = t, c = s ? `frm
170
+ ${s}` : a ?? i;
177
171
  if (!c) throw "トゥイーンが指定されていません";
178
172
  return c;
179
173
  }
180
174
  // トゥイーン中断
181
175
  static stop_tsy(t) {
182
- const n = this.#n(t);
183
- return this.#t[n]?.tw?.stop().end(), !1;
176
+ const i = this.#n(t);
177
+ return this.#t[i]?.tw?.stop().end(), !1;
184
178
  }
185
179
  // 一時停止
186
180
  static pause_tsy(t) {
187
- const n = this.#n(t);
188
- return this.#t[n]?.tw?.pause(), !1;
181
+ const i = this.#n(t);
182
+ return this.#t[i]?.tw?.pause(), !1;
189
183
  }
190
184
  // 一時停止再開
191
185
  static resume_tsy(t) {
192
- const n = this.#n(t);
193
- return this.#t[n]?.tw?.resume(), !1;
186
+ const i = this.#n(t);
187
+ return this.#t[i]?.tw?.resume(), !1;
194
188
  }
195
189
  }
196
190
  export {
197
- F as C,
198
- w as T,
199
- h as a
191
+ k as C,
192
+ _ as T
200
193
  };
201
194
  //# sourceMappingURL=CmnTween.js.map
@@ -1 +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":"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"}
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 type {Layer} from './Layer';\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_NM_TRANS = 'trans\\n';\t// 改行でスクリプトから絶対指定できない値に\nconst PID_HD_TW\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 aLayerPrpNm = <(keyof Layer)[]>[\n\t\t'alpha',\n\t\t'height',\n\t\t'rotation',\t// rotationX〜Z、scaleZ、zは設定すると\n\t\t'scale_x',\t// 三次元方向の拡大縮小ルーチンが働き画像がぼやけるので\n\t\t'scale_y',\t// backlayで設定しない方針\n\t\t'pivot_x',\n\t\t'pivot_y',\n\t\t'width',\n\t\t'x',\n\t\t'y',\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 CmnTween.aLayerPrpNm) {\n\t\t\tconst arg = hArg[<keyof TArg>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\t// eslint-disable-next-line @typescript-eslint/no-base-to-string\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='0', v1] = vx.split(',');\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(PID_HD_TW + 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\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_NM_TRANS];\n\t\tif (! ti?.tw) return false;\n\n\t\tconst fnc = ()=> this.stopEndTrans();\n\t\tReading.beginProc(TW_NM_TRANS, fnc, true, fnc);\n\t\treturn true;\n\t}\n\n\t// レイヤのトランジションの停止\n\tstatic\tstopEndTrans() {this.#hTwInf[TW_NM_TRANS]?.tw?.stop().end()}\n\t\t// stop()とend()は別\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(PID_HD_TW + 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_NM_TRANS","PID_HD_TW","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","y2","o","o2","json","hArg2","e","hTo2","twNew","ti","Reading","chain","twFrom","_hArg","fnc","#tw_nm","layer","id","name"],"mappings":";;AAsBO,MAAMA,IAAc;AAAA,GACrBC,IAAY;AAIX,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,cAA+B;AAAA,IAC9C;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA;AAAA,EAGD,OAAO,YAAYR,GAAYS,GAAgB;AAC9C,UAAMC,IAAoC,CAAA;AAC1C,eAAWH,KAAMhB,EAAS,aAAa;AACtC,YAAMoB,IAAMX,EAAiBO,CAAE;AAC/B,UAAI,CAAEI,EAAK;AAQX,YAAMC,IAAI,OAAOD,CAAG,GACdE,IAAOD,EAAE,WAAW,GAAG,GACvBE,IAAKD,IAAMD,EAAE,MAAM,CAAC,IAAGA;AAC7B,UAAI,CAAEE,EAAI;AAEV,YAAM,CAACC,IAAG,KAAKC,CAAE,IAAIF,EAAG,MAAM,GAAG,GAC3BG,IAAKP,EAAIH,CAAE,IAAI,WAAWQ,CAAE;AAElC,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,GAAG,IAAAC,GAAI,GAAAC,GAAG,IAAAC,GAAI,MAAAC,MAAQP;AACpC,YAAIQ,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,WAAIP,KAAKC,OAAIK,EAAM,IAAIN,KAAKC,KACxB,KAAKC,OAAII,EAAM,IAAI,KAAKJ,KACxBC,KAAKC,OAAIE,EAAM,QAAQ,OAAOH,KAAKC,CAAE;AAG1C,cAAMI,IAAO,KAAK,YAAYF,GAAOlB,CAAI;AACzC,QAAIS,EAAO,YAAU,QAAQ,KAAK;AAAA,QAEjCQ,KAAQ,MAAML,CAAC,MAAM,CAAC,MAAMG,CAAC,GAC9B,WAAW,KAAK,UAAUK,CAAI,CAAC,EAAE;AAEjC,cAAMC,IAAQ,IAAIf,EAAMN,CAAI,EAC3B,GAAGoB,GAAMf,CAAI;AACd,aAAK,UAAUgB,GAAOzC,CAAI,GAC1B4B,EAAO,MAAMa,CAAK,GAElBb,IAASa;AAAA,MACV;AACA,MAAIZ,EAAO,YAAU,QAAQ,SAAA;AAAA,IAC9B;AACA,IAAAD,EAAO,WAAW,MAAK;AACtB,YAAMc,IAAK,KAAKlD,GAAQ2B,CAAK;AAC7B,MAAMuB,GAAI,OAEV,OAAO,KAAKlD,GAAQ2B,CAAK,GAEzBuB,EAAG,KAAK,QACR3C,EAAG,KAAA,GACH2C,EAAG,QAAA,GAEHpB,EAAA,GACAqB,EAAQ,cAAcrD,IAAY6B,CAAK;AAAA,IACxC,CAAC;AAED,UAAM,EAAC,OAAAyB,MAAS5C;AAChB,QAAI4C,GAAO;AACV,YAAMC,IAAS,KAAKrD,GAAQoD,CAAK;AACjC,UAAI,CAAEC,GAAQ,GAAI,OAAM,GAAGD,CAAK;AAChC,aAAOC,EAAO,OACdA,EAAO,GAAG,MAAM9C,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,EAiBA,OAAgBgC,KAAgB;AAAA;AAAA,EAGhC,OAAO,GAAGe,GAAa;AAEtB,QAAI,CADO,KAAKtD,GAAQH,CAAW,GACzB,GAAI,QAAO;AAErB,UAAM0D,IAAM,MAAK,KAAK,aAAA;AACtB,WAAAJ,EAAQ,UAAUtD,GAAa0D,GAAK,IAAMA,CAAG,GACtC;AAAA,EACR;AAAA;AAAA,EAGA,OAAO,eAAe;AAAC,SAAKvD,GAAQH,CAAW,GAAG,IAAI,KAAA,EAAO,IAAA;AAAA,EAAK;AAAA;AAAA;AAAA,EAKlE,OAAO,SAASW,GAAY;AAC3B,UAAMmB,IAAQ,KAAK6B,GAAOhD,CAAI,GACxB0C,IAAK,KAAKlD,GAAQ2B,CAAK;AAC7B,QAAI,CAAEuB,GAAI,GAAI,QAAO;AAErB,UAAMK,IAAM,MAAKL,EAAG,IAAI,IAAA;AACxB,WAAAC,EAAQ,UAAUrD,IAAY6B,GAAO4B,GAAK,IAAMA,CAAG,GAC5C;AAAA,EACR;AAAA,EACC,OAAOC,GAAOhD,GAAY;AACzB,UAAM,EAAC,OAAAiD,IAAM,IAAI,IAAAC,GAAI,MAAAC,MAAQnD,GACvBmB,IAAQ+B,IAAI;AAAA,EAAQA,CAAE,KAAIC,KAAQF;AACxC,QAAI,CAAE9B,EAAO,OAAM;AAEnB,WAAOA;AAAA,EACR;AAAA;AAAA,EAGD,OAAO,SAASnB,GAAY;AAC3B,UAAMmB,IAAQ,KAAK6B,GAAOhD,CAAI;AAC9B,gBAAKR,GAAQ2B,CAAK,GAAG,IAAI,KAAA,EAAO,IAAA,GACzB;AAAA,EACR;AAAA;AAAA,EAGA,OAAO,UAAUnB,GAAY;AAC5B,UAAMmB,IAAQ,KAAK6B,GAAOhD,CAAI;AAC9B,gBAAKR,GAAQ2B,CAAK,GAAG,IAAI,MAAA,GAClB;AAAA,EACR;AAAA;AAAA,EAGA,OAAO,WAAWnB,GAAY;AAC7B,UAAMmB,IAAQ,KAAK6B,GAAOhD,CAAI;AAC9B,gBAAKR,GAAQ2B,CAAK,GAAG,IAAI,OAAA,GAClB;AAAA,EACR;AAED;"}