soiz1 commited on
Commit
697a331
·
verified ·
1 Parent(s): 3ec4a1c

Upload static files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. addons.html +1 -1
  2. credits.html +1 -1
  3. editor.html +1 -1
  4. embed.html +1 -1
  5. file-list-webpack.json +74 -74
  6. fullscreen.html +1 -1
  7. index.html +1 -1
  8. js/addon-default-entry.js +220 -1
  9. js/addon-default-entry.js.map +0 -0
  10. js/addon-entry-mediarecorder.js +1 -1
  11. js/addon-entry-mediarecorder.js.map +1 -1
  12. js/addon-l10n-ja.js +2 -2
  13. js/addon-settings.js +2 -2
  14. js/addon-settings.js.map +0 -0
  15. js/addon-settings~addons~editor~fullscreen~player~playground.js +194 -157
  16. js/addon-settings~addons~editor~fullscreen~player~playground.js.map +0 -0
  17. js/addons.js +12 -5
  18. js/addons.js.map +0 -0
  19. js/credits.js +2 -2
  20. js/credits.js.map +0 -0
  21. js/editor.js +0 -0
  22. js/editor.js.map +0 -0
  23. js/editor~embed~fullscreen~player~playground.js +0 -0
  24. js/editor~embed~fullscreen~player~playground.js.map +0 -0
  25. js/embed.js +23 -29
  26. js/embed.js.map +1 -1
  27. js/fullscreen.js +0 -0
  28. js/fullscreen.js.map +0 -0
  29. js/player.js +3 -3
  30. js/player.js.map +0 -0
  31. js/playground.js +0 -0
  32. js/playground.js.map +0 -0
  33. js/vendors~addon-settings~credits.js +0 -0
  34. js/vendors~addon-settings~credits.js.map +0 -0
  35. js/vendors~editor~embed~fullscreen~player~playground.js +2 -2
  36. js/vendors~editor~embed~fullscreen~player~playground.js.map +2 -2
  37. playground.html +1 -1
  38. static/assets/0fbcc52d8e7b3094e009bd54d76d6648.svg +20 -0
  39. static/assets/14481bcaa2b79b9ddbaf7d5d6301cc97.svg +3 -0
  40. static/assets/1667bada0f4c7d183f1206ca05f4f8e0.svg +10 -0
  41. static/assets/1af90e14452a64be26722ded9e5e39cd.svg +16 -0
  42. static/assets/1b40be6633fec134e36277988c4f8f9f.svg +10 -0
  43. static/assets/1dddb4d8057f7befe561ab361d052eaa.svg +10 -0
  44. static/assets/1e1804ca944c786b3e222ae2d9204997.svg +18 -0
  45. static/assets/249eb53fdf0ad465d99c53e5bf34548e.svg +12 -0
  46. static/assets/25ca1de1cd50dbbab4467a03d274c024.svg +8 -0
  47. static/assets/284c6d9fcaa673502673ec4760405e5e.svg +20 -0
  48. static/assets/2e8ed4c351767c4049864395e8f7b521.svg +12 -0
  49. static/assets/328602156cb1881903816d471f0cc290.svg +12 -0
  50. static/assets/376eb9c9c4086a80a8fe8dfc16b2f609.svg +25 -0
addons.html CHANGED
@@ -18,5 +18,5 @@
18
  })();
19
  </script>
20
  <div id="app"></div>
21
- <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~playground.js"></script><script src="js/addon-settings~addons~editor~fullscreen~player~playground.js"></script><script src="js/addon-settings.js"></script></body>
22
  </html>
 
18
  })();
19
  </script>
20
  <div id="app"></div>
21
+ <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~addon-settings~credits.js"></script><script src="js/addon-settings~addons~editor~fullscreen~player~playground.js"></script><script src="js/addon-settings.js"></script></body>
22
  </html>
credits.html CHANGED
@@ -18,5 +18,5 @@
18
  })();
19
  </script>
20
  <div id="app"></div>
21
- <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~playground.js"></script><script src="js/credits.js"></script></body>
22
  </html>
 
18
  })();
19
  </script>
20
  <div id="app"></div>
21
+ <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~addon-settings~credits.js"></script><script src="js/credits.js"></script></body>
22
  </html>
editor.html CHANGED
@@ -49,5 +49,5 @@
49
  })();
50
  </script>
51
  <div id="app"></div>
52
- <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~playground.js"></script><script src="js/vendors~editor~embed~fullscreen~player~playground.js"></script><script src="js/addon-settings~addons~editor~fullscreen~player~playground.js"></script><script src="js/editor.js"></script></body>
53
  </html>
 
49
  })();
50
  </script>
51
  <div id="app"></div>
52
+ <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~editor~embed~fullscreen~player~playground.js"></script><script src="js/addon-settings~addons~editor~fullscreen~player~playground.js"></script><script src="js/editor~embed~fullscreen~player~playground.js"></script><script src="js/editor.js"></script></body>
53
  </html>
embed.html CHANGED
@@ -46,5 +46,5 @@
46
  })();
47
  </script>
48
  <div id="app"></div>
49
- <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~playground.js"></script><script src="js/vendors~editor~embed~fullscreen~player~playground.js"></script><script src="js/embed~player.js"></script><script src="js/embed.js"></script></body>
50
  </html>
 
46
  })();
47
  </script>
48
  <div id="app"></div>
49
+ <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~editor~embed~fullscreen~player~playground.js"></script><script src="js/editor~embed~fullscreen~player~playground.js"></script><script src="js/embed.js"></script></body>
50
  </html>
file-list-webpack.json CHANGED
@@ -1,80 +1,80 @@
1
  [
 
 
2
  "js/extension-worker/extension-worker.14a028226cb72e45678c.js",
3
  "js/extension-worker/extension-worker.14a028226cb72e45678c.js.map",
4
  "js/extension worker.js",
5
  "js/extension worker.js.map",
6
- "41f50eb9f984c12c2544.worker.js",
7
- "41f50eb9f984c12c2544.worker.js.map",
8
  "sw.js",
9
- "static/assets/5566fa235cca306584cdda4d4bbd6640.svg",
10
- "static/assets/a6cebfe99bad7b01f59b85998cbc4628.svg",
11
- "static/assets/31446edc97ac1eb0c3d2af65c0d8432a.svg",
12
- "static/assets/02d927ce93445be737c7ff43fb98b135.svg",
13
- "static/assets/21739a7b303ece303b023791813412cb.svg",
14
- "static/assets/d84cdb7f4b9567882511ab47f63e342b.svg",
15
- "static/assets/12e69a59db0f0c697eaaf1abbcad902f.svg",
16
- "static/assets/80ad76114d0b3f2fc54a3756dd283a53.svg",
17
- "static/assets/09469790f10bcd5ed51fe8f85f8bdc1e.svg",
18
- "static/assets/81d5d1258558641e78d425193753207c.svg",
19
- "static/assets/989d99155bdb2720680a8c09fb7c454e.svg",
20
- "static/assets/770c1f3eca5a0d7c327c275865dad3f0.svg",
21
- "static/assets/1b769802c531b5a04faf429c1ec27632.svg",
22
- "static/assets/7d6f0362fc2114f39b4f6651ebeda312.svg",
23
  "static/assets/c10adf422183784bd69361ffa4efc2cf.png",
24
- "static/assets/8fb27bc07c64def488d712e06906c7a4.svg",
25
- "static/assets/46857e786bc7e3b6b81fb2e99c7b74e9.svg",
26
- "static/assets/751f2b7681471a8020a47cb3d456a8d2.svg",
27
- "static/assets/a0d194f44b13fbeaf843e784cc8b03fb.svg",
28
- "static/assets/b370449e927fbc501686cf597511f7fc.svg",
29
- "static/assets/c9f4f655230d224c33ead125216199db.svg",
30
- "static/assets/db445f7d7b15b698deb8a08c31697f87.svg",
31
- "static/assets/e53ff4a140871927b2d5be4f5cdb2c79.svg",
32
- "static/assets/680b3ff6a51d8fc77fbaf8695c8de929.svg",
33
- "static/assets/4e14eca3d0328a2d2fe39428c6127b2a.svg",
34
- "static/assets/a746db3baa99760ac6d9093990a95bba.svg",
35
- "static/assets/e45e0626c5e444a55bb3b6380041a879.svg",
36
- "static/assets/2d4c184e3846a60d2ba3b21fbd792f77.svg",
37
- "static/assets/40948f8d98c39a96fbba5cf02ec6c8c9.svg",
38
- "static/assets/5b82df2c2b7bc7783cdcfd1c58f9aa92.svg",
39
- "static/assets/31c459a6fc47e3d9ff83a2a95e25ae76.svg",
40
- "static/assets/45c47a95ac3bd35713d6a96dd906ebc2.svg",
41
- "static/assets/04e10c82d2a75d397ca963c1a9f9e1e7.svg",
42
- "static/assets/369019214d73953a85fb0eec22bcce7c.svg",
43
- "static/assets/51a878842a231ebe2fa7cc331e65e89d.svg",
44
- "static/assets/2b48b1ca1e69f653cfdc7c80eb657f56.svg",
45
- "static/assets/325cb39cb89c3ff39ca5585585d838f5.svg",
46
- "static/assets/c64657eab9e2899098a8e0d04f560d1f.svg",
47
- "static/assets/5e7725764b0a01350ea36166d722c370.svg",
48
- "static/assets/29c0aa6c826f3dc4710823f345eae288.svg",
49
- "static/assets/00091c06e9ea001f51bb7303be96b739.svg",
50
- "static/assets/fcbe21fb0b0dfda0887771aa849f0200.svg",
51
- "static/assets/2e52d021419ed131bf294fbfb166dad0.svg",
52
- "static/assets/d37e41b89c301f1ee2c0e911b5c1d4d2.svg",
53
- "static/assets/2a044a86dce4eb8bc149bb0db93dd352.svg",
54
- "static/assets/fdd055b7cf23dbaccb433b35f76cdb49.svg",
55
- "static/assets/38864948713b3bea4c8f3a77c85003bd.svg",
56
- "static/assets/c90f59f422ddd73d2d58569f872b36d0.svg",
57
- "static/assets/6af0d9a73807fa35410cc50cb6f5e3c7.svg",
58
- "static/assets/992fc2de9ef0319e29b6d3c8ff5d8ca0.svg",
59
- "static/assets/c8455deb7c37c2d4c88e94147d12afb2.svg",
60
- "static/assets/30314175f450b6007dca6a532e5f7919.svg",
61
- "static/assets/adaeb8876e88eba49f66fe82f5aed731.svg",
62
- "static/assets/768bcbb6656593c4d4a48e4c7f98f1d6.svg",
63
- "static/assets/08cb40364031026f31772bcfa94d6993.svg",
64
- "static/assets/ac92bfcb2fc35687d1ba5ab6bb733671.svg",
65
- "static/assets/59c79fa681b1421547664294a259b2d8.svg",
66
- "static/assets/b526c1fdbbcf5e07a2ed065d5bcb7a15.svg",
67
- "static/assets/3cfc9b39a0d002246119d47f6756d77e.svg",
68
- "static/assets/1fa6345d57ffc67eccd9f44cf6a383dd.svg",
69
- "static/assets/dba629c24296756d68a135988fe96011.svg",
70
- "static/assets/99de7c4b260353d52ca40624a6dfe112.svg",
71
- "static/assets/3a2d63269c47aa8244b0d613cf50eb6c.svg",
72
- "static/assets/e6f716edc49c30d8e46444093f2c113a.svg",
73
- "static/assets/66617b2996691804289777645e751c0e.svg",
74
- "static/assets/5679cd29c517886712116060d3360592.svg",
75
- "static/assets/382a52221b13870cd56d51ac719a5d8b.svg",
76
- "static/assets/b592c8b4b02de3c7d367ce10efa9d7a6.svg",
77
- "static/assets/ac62d5285bf0943dcad9391fa0986fb4.svg",
78
  "static/assets/a02821bc5d19d616d43d55ac10779101.png",
79
  "static/assets/f04f7b0f673ced51710157ce16e49276.png",
80
  "static/assets/94b3a496d095dd3b3cfbaabb84a190fd.png",
@@ -525,8 +525,8 @@
525
  "js/addons.js",
526
  "js/credits.js",
527
  "js/editor.js",
 
528
  "js/embed.js",
529
- "js/embed~player.js",
530
  "js/fullscreen.js",
531
  "js/iframe-extension-worker.js",
532
  "js/library-backdrops.js",
@@ -536,8 +536,8 @@
536
  "js/player.js",
537
  "js/playground.js",
538
  "js/sb.js",
 
539
  "js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js",
540
- "js/vendors~addon-settings~credits~editor~embed~fullscreen~playground.js",
541
  "js/vendors~editor~embed~fullscreen~player~playground.js",
542
  "TRADEMARK",
543
  "bloomfilter.svg",
@@ -711,8 +711,8 @@
711
  "js/addons.js.map",
712
  "js/credits.js.map",
713
  "js/editor.js.map",
 
714
  "js/embed.js.map",
715
- "js/embed~player.js.map",
716
  "js/fullscreen.js.map",
717
  "js/iframe-extension-worker.js.map",
718
  "js/library-backdrops.js.map",
@@ -722,7 +722,7 @@
722
  "js/player.js.map",
723
  "js/playground.js.map",
724
  "js/sb.js.map",
 
725
  "js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js.map",
726
- "js/vendors~addon-settings~credits~editor~embed~fullscreen~playground.js.map",
727
  "js/vendors~editor~embed~fullscreen~player~playground.js.map"
728
  ]
 
1
  [
2
+ "41f50eb9f984c12c2544.worker.js",
3
+ "41f50eb9f984c12c2544.worker.js.map",
4
  "js/extension-worker/extension-worker.14a028226cb72e45678c.js",
5
  "js/extension-worker/extension-worker.14a028226cb72e45678c.js.map",
6
  "js/extension worker.js",
7
  "js/extension worker.js.map",
 
 
8
  "sw.js",
9
+ "static/assets/25ca1de1cd50dbbab4467a03d274c024.svg",
10
+ "static/assets/c0c919779f63c0d93da228d599091567.svg",
11
+ "static/assets/1b40be6633fec134e36277988c4f8f9f.svg",
12
+ "static/assets/d4bd9e79fbbf466964d7d3bd4f332213.svg",
13
+ "static/assets/1dddb4d8057f7befe561ab361d052eaa.svg",
14
+ "static/assets/445f0fbce09a6929f51eb690fc9b5a1c.svg",
15
+ "static/assets/1667bada0f4c7d183f1206ca05f4f8e0.svg",
16
+ "static/assets/4947ae4ad434a610ee0e473bb902b4ff.svg",
17
+ "static/assets/598d98df2610e37760dcfa8ca411e82c.svg",
18
+ "static/assets/c3553e1328e4c9a5d69980c302e3d71e.svg",
19
+ "static/assets/ed959edcd8aa6c14a2c36b6f9b63e1f1.svg",
20
+ "static/assets/2e8ed4c351767c4049864395e8f7b521.svg",
21
+ "static/assets/b495cb97ae4c4131e45e1d81954bc857.svg",
22
+ "static/assets/d7e36d4b72c290bd87993ed7f2fd48b8.svg",
23
  "static/assets/c10adf422183784bd69361ffa4efc2cf.png",
24
+ "static/assets/8e63473559f27006f09389a969508168.svg",
25
+ "static/assets/8f2ee058ab0499368af605745bffacbe.svg",
26
+ "static/assets/dfa00eac73630e21bd7a67471f83baa9.svg",
27
+ "static/assets/7ecb0518f8d94cda01fa81a295f966ef.svg",
28
+ "static/assets/3fb2506263caa5effd405fd9c938351a.svg",
29
+ "static/assets/df99edc829f9c94f809dc53390ae9637.svg",
30
+ "static/assets/d51aed61c6e338a8e7f7ee0a7a5043cf.svg",
31
+ "static/assets/7464b3a281fd1b6f90cbd2c01dd068fe.svg",
32
+ "static/assets/691d93a973b4d6769f49c89ca46a910c.svg",
33
+ "static/assets/376eb9c9c4086a80a8fe8dfc16b2f609.svg",
34
+ "static/assets/6474a31924521e1005da87eb7d613dda.svg",
35
+ "static/assets/284c6d9fcaa673502673ec4760405e5e.svg",
36
+ "static/assets/87602096564f618e4003aa7a30607cf6.svg",
37
+ "static/assets/dd35f24572f0c0cb0785781df7517b28.svg",
38
+ "static/assets/3c655131c39867ac58141003b21e9a59.svg",
39
+ "static/assets/9f04a96016674b000fff9ae27fcf57b5.svg",
40
+ "static/assets/7e5dec96a3f1e8c375d65c6870179b8f.svg",
41
+ "static/assets/249eb53fdf0ad465d99c53e5bf34548e.svg",
42
+ "static/assets/d40e8766b02bbf6f5f1c6c62a58dfd80.svg",
43
+ "static/assets/1af90e14452a64be26722ded9e5e39cd.svg",
44
+ "static/assets/f7f15c91e9f3e652628cd494bd314923.svg",
45
+ "static/assets/511b9487c2c65281dd4e5494fcf66a62.svg",
46
+ "static/assets/3d8a13315a166bfa27e834d5d1ec38b8.svg",
47
+ "static/assets/cf3c238d25824c1434755ade401eb084.svg",
48
+ "static/assets/3fb01913bc26596d19bde395288ba90f.svg",
49
+ "static/assets/634a8c3d17e33196e938090bbf53ce35.svg",
50
+ "static/assets/40161bf10daecee4ea81cb2fe26226f2.svg",
51
+ "static/assets/b7e3a33d6459bbe35bf322f08b669141.svg",
52
+ "static/assets/0fbcc52d8e7b3094e009bd54d76d6648.svg",
53
+ "static/assets/6bf6e6860e59b87507491c2f7f32f07f.svg",
54
+ "static/assets/e1857d1c734834e1cb5a56a1d5b1d944.svg",
55
+ "static/assets/1e1804ca944c786b3e222ae2d9204997.svg",
56
+ "static/assets/86d0533315e155cb721a33a6143b0cbc.svg",
57
+ "static/assets/dd05d3f70fe3e6717727985735bde646.svg",
58
+ "static/assets/14481bcaa2b79b9ddbaf7d5d6301cc97.svg",
59
+ "static/assets/f10e4a85eafc815cd139c72f96cc1085.svg",
60
+ "static/assets/ef82b5d3d891a0069784c66eb77def87.svg",
61
+ "static/assets/958974d4f0125a7b44bfeb879c552427.svg",
62
+ "static/assets/7fa832c7200d04e5bedc3ccb3a979cc3.svg",
63
+ "static/assets/d4cce9607f1eec2914dc9e9a88c65c6b.svg",
64
+ "static/assets/3eb3febe52a8993e3f2f403fb350109d.svg",
65
+ "static/assets/967be07eee8086c5ea36fb516d62a578.svg",
66
+ "static/assets/c7bc2c28031bcb9637b47a400462a54d.svg",
67
+ "static/assets/b5bee913d7bc47e43525e7694f4ca7e1.svg",
68
+ "static/assets/538e0b13fa86966f97218948d4c78030.svg",
69
+ "static/assets/5e3a8778826807a995d185e69a920075.svg",
70
+ "static/assets/328602156cb1881903816d471f0cc290.svg",
71
+ "static/assets/74ceb8d372bff6828a8f78b259856972.svg",
72
+ "static/assets/c20b57ddd59910c969cf00e1c30f00f8.svg",
73
+ "static/assets/a6d83fd9553c35f578d015e31c92f669.svg",
74
+ "static/assets/a5de91fbb71921ccc5f060ba64be41ed.svg",
75
+ "static/assets/f5fd84ef257cfe3d75a916a060c2bf16.svg",
76
+ "static/assets/58faa698e8693b66e1e69bc9317e924e.svg",
77
+ "static/assets/79c4bc95bafa45cc9a007c901c4fe2f2.svg",
78
  "static/assets/a02821bc5d19d616d43d55ac10779101.png",
79
  "static/assets/f04f7b0f673ced51710157ce16e49276.png",
80
  "static/assets/94b3a496d095dd3b3cfbaabb84a190fd.png",
 
525
  "js/addons.js",
526
  "js/credits.js",
527
  "js/editor.js",
528
+ "js/editor~embed~fullscreen~player~playground.js",
529
  "js/embed.js",
 
530
  "js/fullscreen.js",
531
  "js/iframe-extension-worker.js",
532
  "js/library-backdrops.js",
 
536
  "js/player.js",
537
  "js/playground.js",
538
  "js/sb.js",
539
+ "js/vendors~addon-settings~credits.js",
540
  "js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js",
 
541
  "js/vendors~editor~embed~fullscreen~player~playground.js",
542
  "TRADEMARK",
543
  "bloomfilter.svg",
 
711
  "js/addons.js.map",
712
  "js/credits.js.map",
713
  "js/editor.js.map",
714
+ "js/editor~embed~fullscreen~player~playground.js.map",
715
  "js/embed.js.map",
 
716
  "js/fullscreen.js.map",
717
  "js/iframe-extension-worker.js.map",
718
  "js/library-backdrops.js.map",
 
722
  "js/player.js.map",
723
  "js/playground.js.map",
724
  "js/sb.js.map",
725
+ "js/vendors~addon-settings~credits.js.map",
726
  "js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js.map",
 
727
  "js/vendors~editor~embed~fullscreen~player~playground.js.map"
728
  ]
fullscreen.html CHANGED
@@ -49,5 +49,5 @@
49
  })();
50
  </script>
51
  <div id="app"></div>
52
- <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~playground.js"></script><script src="js/vendors~editor~embed~fullscreen~player~playground.js"></script><script src="js/addon-settings~addons~editor~fullscreen~player~playground.js"></script><script src="js/fullscreen.js"></script></body>
53
  </html>
 
49
  })();
50
  </script>
51
  <div id="app"></div>
52
+ <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~editor~embed~fullscreen~player~playground.js"></script><script src="js/addon-settings~addons~editor~fullscreen~player~playground.js"></script><script src="js/editor~embed~fullscreen~player~playground.js"></script><script src="js/fullscreen.js"></script></body>
53
  </html>
index.html CHANGED
@@ -49,5 +49,5 @@
49
  })();
50
  </script>
51
  <div id="app"></div>
52
- <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~editor~embed~fullscreen~player~playground.js"></script><script src="js/addon-settings~addons~editor~fullscreen~player~playground.js"></script><script src="js/embed~player.js"></script><script src="js/player.js"></script></body>
53
  </html>
 
49
  })();
50
  </script>
51
  <div id="app"></div>
52
+ <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~editor~embed~fullscreen~player~playground.js"></script><script src="js/addon-settings~addons~editor~fullscreen~player~playground.js"></script><script src="js/editor~embed~fullscreen~player~playground.js"></script><script src="js/player.js"></script></body>
53
  </html>
js/addon-default-entry.js CHANGED
@@ -10964,7 +10964,7 @@ __webpack_require__.r(__webpack_exports__);
10964
 
10965
  /* GUI Utils */
10966
  function getButtonURI(name, dontCompile) {
10967
- const themeHex = isPM ? "#00c3ff" : document.documentElement.style.getPropertyValue("--looks-secondary") || "#ff4c4c";
10968
  const guiSVG = guiIMGS[name].replaceAll("red", themeHex);
10969
  if (dontCompile) return guiSVG;else return "data:image/svg+xml;base64," + btoa(guiSVG);
10970
  }
@@ -11813,6 +11813,225 @@ __webpack_require__.r(__webpack_exports__);
11813
 
11814
  /***/ }),
11815
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11816
  /***/ "./src/addons/addons/toolbox-category-drag/_runtime_entry.js":
11817
  /*!*******************************************************************!*\
11818
  !*** ./src/addons/addons/toolbox-category-drag/_runtime_entry.js ***!
 
10964
 
10965
  /* GUI Utils */
10966
  function getButtonURI(name, dontCompile) {
10967
+ const themeHex = isPM ? "#575e75" : document.documentElement.style.getPropertyValue("--looks-secondary") || "#ff4c4c";
10968
  const guiSVG = guiIMGS[name].replaceAll("red", themeHex);
10969
  if (dontCompile) return guiSVG;else return "data:image/svg+xml;base64," + btoa(guiSVG);
10970
  }
 
11813
 
11814
  /***/ }),
11815
 
11816
+ /***/ "./src/addons/addons/sounds-newgrounds-button/_runtime_entry.js":
11817
+ /*!**********************************************************************!*\
11818
+ !*** ./src/addons/addons/sounds-newgrounds-button/_runtime_entry.js ***!
11819
+ \**********************************************************************/
11820
+ /*! exports provided: resources */
11821
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
11822
+
11823
+ "use strict";
11824
+ __webpack_require__.r(__webpack_exports__);
11825
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resources", function() { return resources; });
11826
+ /* harmony import */ var _userscript_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./userscript.js */ "./src/addons/addons/sounds-newgrounds-button/userscript.js");
11827
+ /* generated by pull.js */
11828
+
11829
+ const resources = {
11830
+ "userscript.js": _userscript_js__WEBPACK_IMPORTED_MODULE_0__["default"]
11831
+ };
11832
+
11833
+ /***/ }),
11834
+
11835
+ /***/ "./src/addons/addons/sounds-newgrounds-button/userscript.js":
11836
+ /*!******************************************************************!*\
11837
+ !*** ./src/addons/addons/sounds-newgrounds-button/userscript.js ***!
11838
+ \******************************************************************/
11839
+ /*! exports provided: default */
11840
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
11841
+
11842
+ "use strict";
11843
+ __webpack_require__.r(__webpack_exports__);
11844
+ // Newgrounds Audio Button
11845
+ // By: SharkPool
11846
+ // Thanks Tom Fulp! :)
11847
+
11848
+ /* harmony default export */ __webpack_exports__["default"] = (async function () {
11849
+ const ngIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yLjUgLTIuNSAyNSAyNSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj48cGF0aCBkPSJNNy4wNjkgMS43NzhhMi4wMiAyLjAyIDAgMCAxIDIuMDIgMi4wMnYxMy44MDZhLjg0Ljg0IDAgMCAxLS44NDIuODRINi4zOTZhLjg0Ljg0IDAgMCAxLS44NDItLjg0MlY2LjExOWEuODQuODQgMCAwIDAtLjg0Mi0uODQyaC0uMzM3YS44NC44NCAwIDAgMC0uODQxLjg0MnYxMS40ODRhLjg0Ljg0IDAgMCAxLS44NDEuODQxSC44NDJBLjg0Ljg0IDAgMCAxIDAgMTcuNjAzVjIuNjE5YS44NC44NCAwIDAgMSAuODQyLS44NDF6bTEwLjkxMiAwQTIuMDIgMi4wMiAwIDAgMSAyMCAzLjc5N3YzLjQ3NGEuNjczLjY3MyAwIDAgMS0uNjczLjY3M2gtMi4zNTZhLjY3My42NzMgMCAwIDEtLjY3My0uNjczVjUuNzgzYS41MDQuNTA0IDAgMCAwLS41MDUtLjUwNWgtLjg0MmEuNTA0LjUwNCAwIDAgMC0uNTA1LjUwNXY4LjY1OGMwIC4xODYuMTUxLjMzNy4zMzcuMzM3aDEuMzQ2YS4zMzYuMzM2IDAgMCAwIC4zMzYtLjMzN3YtMS42NjNoLS4zMzZhLjY3My42NzMgMCAwIDEtLjY3My0uNjczVjkuOTUyYS42NzMuNjczIDAgMCAxIC42NzMtLjY3M2gzLjE5OGEuNjczLjY3MyAwIDAgMSAuNjczLjY3MnY2LjQ3NGEyLjAyIDIuMDIgMCAwIDEtMi4wMiAyLjAxOWgtNS4wNDlhMi4wMiAyLjAyIDAgMCAxLTIuMDItMi4wMlYzLjc5N2EyLjAyIDIuMDIgMCAwIDEgMi4wMi0yLjAxOWg1LjA0OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=";
11850
+ const safeIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAuNzc0IiBoZWlnaHQ9IjEwNS45MDUiIHZpZXdCb3g9IjAgMCAxMjAuNzc0IDEwNS45MDUiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCB4MT0iMjM5Ljg2IiB5MT0iMTMwLjA2IiB4Mj0iMjM5Ljg2IiB5Mj0iMjMyLjQ2NSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGlkPSJhIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMwMGZjMWQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMGI0MTYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCB4MT0iMjM5Ljg2IiB5MT0iMTMwLjA2IiB4Mj0iMjM5Ljg2IiB5Mj0iMjMyLjQ2NSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGlkPSJiIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMwMGFlMTQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDZkMGQiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBkPSJtMjAwLjMgMTc0LjEwOCAyMi40NDYgMjAuNDgxIDU0LjcwOS02NC41MjkgMjEuMDQyIDE3LjM5NS03Mi45NDYgODUuMDEtNDQuMzI5LTM4Ljk5OHoiIGZpbGw9InVybCgjYSkiIHN0cm9rZT0idXJsKCNiKSIgc3Ryb2tlLXdpZHRoPSIzLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTc5LjQ3MiAtMTI4LjMxKSIvPjwvc3ZnPg==";
11851
+ const warnIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjMuODYxIiBoZWlnaHQ9IjEwMC4yOTQiIHZpZXdCb3g9IjAgMCAxMjMuODYxIDEwMC4yOTQiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCB4MT0iMjQwIiB5MT0iMTMwLjM0MSIgeDI9IjI0MCIgeTI9IjIyNy4xMzQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBpZD0iYSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZlYzEwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZhYzBjIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgeDE9IjI0MCIgeTE9IjEzMC4zNDEiIHgyPSIyNDAiIHkyPSIyMjcuMTM0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImIiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzhiNGUwMiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzgyMjcwMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IHgxPSIyNDAiIHkxPSIxNTAuODkyIiB4Mj0iMjQwIiB5Mj0iMjIxLjQ1MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGlkPSJjIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM4OTQ1MDEiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4MjI5MDAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyBzdHJva2Utd2lkdGg9IjMuNSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIj48cGF0aCBkPSJtMjQwIDEzMC4zNCA2MC4xOCA5Ni43OTRIMTc5LjgyeiIgZmlsbD0idXJsKCNhKSIgc3Ryb2tlPSJ1cmwoI2IpIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTc4LjA3IC0xMjguNTkpIi8+PHBhdGggZD0iTTIzMi41NjUgMjE0LjAxOGE3LjQzNSA3LjQzNSAwIDEgMSAxNC44NyAwIDcuNDM1IDcuNDM1IDAgMCAxLTE0Ljg3IDBtNy4xMjItMTIuOTA2YTYgNiAwIDAgMS02LTZ2LTM4LjIyYTYgNiAwIDAgMSA2LTZoLjYyNmE2IDYgMCAwIDEgNiA2djM4LjIyYTYgNiAwIDAgMS02IDZ6IiBmaWxsPSJ1cmwoI2MpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTc4LjA3IC0xMjguNTkpIi8+PC9nPjwvc3ZnPg==";
11852
+ const unsafeIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjUuNTc4IiBoZWlnaHQ9IjEyNS44ODMiIHZpZXdCb3g9IjAgMCAxMjUuNTc4IDEyNS44ODMiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCB4MT0iMjM5Ljg2IiB5MT0iMTE5LjY3OSIgeDI9IjIzOS44NiIgeTI9IjI0MC42MDEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBpZD0iYSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmUwMDUwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjOWIwMDA3Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgeDE9IjIzOS44NiIgeTE9IjExOS42NzkiIHgyPSIyMzkuODYiIHkyPSIyNDAuNjAxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImIiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzdlMDAyNyIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzNiMDAwMSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGQ9Im0xOTcuMjE0IDEyMC44MDIgNDIuNjQ2IDQxLjgwMyA0MS41MjMtNDIuOTI2IDE3Ljk1NiAxNy42NzYtNDEuNTIzIDQyLjM2NCA0Mi4zNjQgNDAuOTYyLTE3LjM5NCAxOC41MTctNDIuMDg1LTQxLjI0MkwxOTkuNDYgMjQwLjZsLTE4LjIzNy0xNy42NzVMMjIyLjE4NCAxODBsLTQyLjY0NS00MC45NjJ6IiBmaWxsPSJ1cmwoI2EpIiBzdHJva2U9InVybCgjYikiIHN0cm9rZS13aWR0aD0iMy41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE3Ny4wNTkgLTExNy4xOTQpIi8+PC9zdmc+";
11853
+ const proxy1 = "https://corsproxy.io?url=";
11854
+ const proxy2 = "https://api.codetabs.com/v1/proxy?quest=";
11855
+ let ngButtonElement;
11856
+ async function safeFetch(url, respondType) {
11857
+ const proxies = [proxy1, proxy2];
11858
+ for (const proxy of proxies) {
11859
+ try {
11860
+ const response = await fetch(proxy + url);
11861
+ if (response.ok) return await response[respondType]();
11862
+ if (response.status === 400) return undefined;
11863
+ continue;
11864
+ } catch (e) {
11865
+ console.warn("Failed to fetch ".concat(url, " with proxy: ").concat(proxy), e);
11866
+ }
11867
+ }
11868
+ return undefined;
11869
+ }
11870
+ async function addTrack2Editor(url, name) {
11871
+ const buffer = await safeFetch(url, "arrayBuffer");
11872
+ if (!buffer) {
11873
+ alert("Failed to Fetch Song!");
11874
+ return;
11875
+ }
11876
+ const storage = vm.runtime.storage;
11877
+ const asset = storage.createAsset(storage.AssetType.Sound, storage.DataFormat.MP3, new Uint8Array(buffer), null, true);
11878
+ try {
11879
+ await vm.addSound({
11880
+ asset,
11881
+ name,
11882
+ md5: asset.assetId + "." + asset.dataFormat
11883
+ }, vm.editingTarget.id);
11884
+ } catch (e) {
11885
+ console.warn(e);
11886
+ }
11887
+ }
11888
+ async function openNewgroundsPopup() {
11889
+ let url, name, author, songURL;
11890
+ let infoBox = undefined;
11891
+
11892
+ /* ScratchBlocks is availiable when this is called */
11893
+ const modal = await ScratchBlocks.customPrompt({
11894
+ title: "Newgrounds Audio"
11895
+ }, {
11896
+ content: {
11897
+ width: "500px"
11898
+ }
11899
+ }, [{
11900
+ name: "Add Track",
11901
+ role: "ok",
11902
+ callback: () => {
11903
+ if (url && name && songURL) addTrack2Editor(songURL, "".concat(name, " -- ").concat(author));
11904
+ }
11905
+ }, {
11906
+ name: "Cancel",
11907
+ role: "close",
11908
+ callback: () => {}
11909
+ }]);
11910
+ const okayButton = modal.parentNode.querySelector("button[class^=\"prompt_ok-button\"]");
11911
+ okayButton.style.filter = "brightness(70%)";
11912
+ okayButton.style.pointerEvents = "none";
11913
+ const label = document.createElement("div");
11914
+ label.innerHTML = "Import <a href=\"https://www.newgrounds.com/audio\" target=\"_blank\">Newgrounds</a> audio directly into your Project.<br><b>Not all tracks are fully free-to-use, read the report after searching.</b>";
11915
+ label.setAttribute("style", "text-align: center; font-size: .85rem;");
11916
+ const idInputDiv = document.createElement("div");
11917
+ idInputDiv.setAttribute("style", "width: 100%; margin: 15px 0; padding: 10px 20px; border-radius: 15px; border: dashed 2px grey; text-align: center; font-size: .85rem;");
11918
+ const idLabel = document.createElement("b");
11919
+ idLabel.textContent = "Track ID/URL: ";
11920
+ const idInput = document.createElement("input");
11921
+ idInput.setAttribute("style", "margin-left: 5px; width: 70%; height: 25px; text-align: center; background: #ffffff20; border-radius: 15px; border: solid grey 1px;");
11922
+ idInput.type = "text";
11923
+ idInput.placeholder = "https://www.newgrounds.com/audio/listen/1395716";
11924
+ idInput.value = "1395716";
11925
+ url = idInput.placeholder;
11926
+ idInput.addEventListener("change", e => {
11927
+ url = String(e.target.value);
11928
+ if (!url.startsWith("https://www.newgrounds.com/audio/listen/")) url = "https://www.newgrounds.com/audio/listen/" + url;
11929
+ e.stopPropagation();
11930
+ });
11931
+ const searchBtn = document.createElement("button");
11932
+ searchBtn.setAttribute("style", "border: none; border-radius: 5px; padding: 10px 20px; margin: 10px 0 0; background: hsla(194, 100%, 50%, 1); cursor: pointer; font-weight: 600; font-size: 0.85rem; color: white;");
11933
+ searchBtn.textContent = "Search";
11934
+ searchBtn.addEventListener("click", async e => {
11935
+ var _htmlText$match, _htmlText$match2, _htmlText$match3;
11936
+ // unfortunately we have to scrape html here since the Newgrounds API is hidden
11937
+ const htmlText = await safeFetch(url, "text");
11938
+ if (!htmlText) {
11939
+ alert("Failed to Fetch Track URL!");
11940
+ return;
11941
+ }
11942
+
11943
+ /* extract info */
11944
+ author = ((_htmlText$match = htmlText.match(/"artist":"([^"]+)"/)) === null || _htmlText$match === void 0 ? void 0 : _htmlText$match[1]) || "";
11945
+ name = ((_htmlText$match2 = htmlText.match(/<title>(.*?)<\/title>/i)) === null || _htmlText$match2 === void 0 ? void 0 : _htmlText$match2[1]) || "";
11946
+ let songMatch = htmlText.match(/<meta property="og:audio" content="(https:\/\/audio\.ngfiles\.com\/[^"]+\.mp3\?[^"]+)">/);
11947
+ if (!songMatch) {
11948
+ const regex = new RegExp("\"params\":\\{\"filename\":\"(https:\\/\\/audio\\.ngfiles\\.com\\/[^\"]+\\.mp3\\?[^\"]+)\"}");
11949
+ songMatch = htmlText.match(regex);
11950
+ }
11951
+ ;
11952
+ songURL = songMatch ? songMatch[1].replace(/\\/g, "") : "";
11953
+
11954
+ /* song usage */
11955
+ // fun fact: we can check if a user is scouted if 'downloads' shows in their song!
11956
+ const isScouted = htmlText.match(/<dt>\s*Listens\s*<\/dt>[\s\S]*?<dd>\d+<\/dd>[\s\S]*?<dt>\s*Downloads\s*<\/dt>[\s\S]*?<dd>(\d+)<\/dd>[\s\S]*?<dt>\s*Score\s*<\/dt>/i);
11957
+ const ccLicense = ((_htmlText$match3 = htmlText.match(/<div class="pod-body creative-commons">[\s\S]*?<p>\s*([\s\S]*?)\s*<\/p>/i)) === null || _htmlText$match3 === void 0 ? void 0 : _htmlText$match3[1]) || "";
11958
+ const type = isScouted ? ccLicense2Rating(ccLicense) : "unwhitelisted";
11959
+ if (infoBox) infoBox.remove();
11960
+ infoBox = genCopyrightInfoBox(type, name, author);
11961
+ if (type === "bad" || type === "unwhitelisted") {
11962
+ name = undefined;
11963
+ okayButton.style.filter = "brightness(70%)";
11964
+ okayButton.style.pointerEvents = "none";
11965
+ } else {
11966
+ okayButton.style.filter = "";
11967
+ okayButton.style.pointerEvents = "";
11968
+ }
11969
+ modal.appendChild(infoBox);
11970
+ e.stopPropagation();
11971
+ });
11972
+ idInputDiv.append(idLabel, idInput, searchBtn);
11973
+ modal.append(label, idInputDiv);
11974
+ }
11975
+ function ccLicense2Rating(licence) {
11976
+ licence = String(licence).toLowerCase().trim();
11977
+ const goodTexts = ["you may only use this piece for commercial purposes if your work is a web-based game or animation,"];
11978
+ for (const text of goodTexts) {
11979
+ if (licence.startsWith(text)) return "good";
11980
+ }
11981
+ const badTexts = ["you may not use this work for any purposes"];
11982
+ for (const text of badTexts) {
11983
+ if (licence.startsWith(text)) return "bad";
11984
+ }
11985
+ const warnTexts = ["you are free to copy, distribute and transmit this work under the following conditions:", "please contact me if you would like to use this in a project. we can discuss the details."];
11986
+ for (const text of warnTexts) {
11987
+ if (licence.startsWith(text)) return "warn";
11988
+ }
11989
+ return "warn"; // warn is the default
11990
+ }
11991
+ function genCopyrightInfoBox(type, name, author) {
11992
+ const color = type === "good" ? "#00ff00" : type === "bad" || type === "unwhitelisted" ? "#ff0000" : "#ffc400";
11993
+ const box = document.createElement("div");
11994
+ box.setAttribute("style", "display: flex; width: 100%; margin: 15px 0; padding: 10px 20px 10px 30px; border-radius: 15px; border: solid 2px ".concat(color, "; background: ").concat(color, "30; text-align: center; font-size: .9rem; font-weight: bold;"));
11995
+ const img = document.createElement("img");
11996
+ img.setAttribute("style", "width:35px; margin-right: 5px;");
11997
+ img.src = type === "good" ? safeIcon : type === "bad" || type === "unwhitelisted" ? unsafeIcon : warnIcon;
11998
+ const label = document.createElement("span");
11999
+ if (type === "good") label.innerHTML = "The Track: ".concat(name, " by ").concat(author, ", can freely be used for web-based games");else if (type === "bad") label.innerHTML = "The Track: ".concat(name, " by ").concat(author, ", is not allowed for use!");else if (type === "unwhitelisted") label.innerHTML = "The Track: ".concat(name, " by ").concat(author, ", is not allowed for use. ").concat(author, " is not scouted on Newgrounds!");else label.innerHTML = "The Track: ".concat(name, " by ").concat(author, ", can only be used for non-profit web-based games WITH credit. Further use requires permission from ").concat(author);
12000
+ box.append(img, label);
12001
+ return box;
12002
+ }
12003
+ function addButtonNG() {
12004
+ // TODO add a tooltip maybe
12005
+ const itemDiv = document.querySelector("div[class^=\"action-menu_menu-container\"] div[class^=\"action-menu_more-buttons-outer\"] div[class^=\"action-menu_more-buttons\"]");
12006
+ ngButtonElement = itemDiv.children[0].cloneNode(true);
12007
+ const innerButton = ngButtonElement.firstChild;
12008
+ innerButton.setAttribute("data-tip", "Newgrounds Sound");
12009
+ innerButton.setAttribute("aria-label", "Newgrounds Sound");
12010
+ /* cleanup */
12011
+ for (var i = 1; i < innerButton.children.length; i++) {
12012
+ const child = innerButton.children[i];
12013
+ if (child) child.remove();
12014
+ }
12015
+ innerButton.firstChild.src = ngIcon;
12016
+ ngButtonElement.addEventListener("click", openNewgroundsPopup);
12017
+ itemDiv.insertBefore(ngButtonElement, itemDiv.children[0]);
12018
+ }
12019
+ function startListenerWorker() {
12020
+ ReduxStore.subscribe(() => queueMicrotask(() => {
12021
+ const reduxState = ReduxStore.getState().scratchGui;
12022
+ /* sound tab */
12023
+ if (!reduxState.mode.isPlayerOnly && reduxState.editorTab.activeTabIndex === 2) {
12024
+ if (!ngButtonElement) addButtonNG();
12025
+ } else {
12026
+ ngButtonElement = undefined;
12027
+ }
12028
+ }));
12029
+ }
12030
+ if (typeof scaffolding === "undefined") startListenerWorker();
12031
+ });
12032
+
12033
+ /***/ }),
12034
+
12035
  /***/ "./src/addons/addons/toolbox-category-drag/_runtime_entry.js":
12036
  /*!*******************************************************************!*\
12037
  !*** ./src/addons/addons/toolbox-category-drag/_runtime_entry.js ***!
js/addon-default-entry.js.map CHANGED
The diff for this file is too large to render. See raw diff
 
js/addon-entry-mediarecorder.js CHANGED
@@ -215,7 +215,7 @@ __webpack_require__.r(__webpack_exports__);
215
  });
216
  const recordOptionScreenLabel = Object.assign(document.createElement("label"), {
217
  htmlFor: "recordOptionScreen",
218
- textContent: 'Record the entire screen'
219
  });
220
  recordOptionScreen.appendChild(recordOptionScreenInput);
221
  recordOptionScreen.appendChild(recordOptionScreenLabel);
 
215
  });
216
  const recordOptionScreenLabel = Object.assign(document.createElement("label"), {
217
  htmlFor: "recordOptionScreen",
218
+ textContent: msg('Recordtheentirescreen')
219
  });
220
  recordOptionScreen.appendChild(recordOptionScreenInput);
221
  recordOptionScreen.appendChild(recordOptionScreenLabel);
js/addon-entry-mediarecorder.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"js/addon-entry-mediarecorder.js","sources":["webpack://GUI/./src/addons/addons/mediarecorder/style.css","webpack://GUI/./src/addons/addons/mediarecorder/_runtime_entry.js","webpack://GUI/./src/addons/addons/mediarecorder/userscript.js","webpack://GUI/./src/addons/libraries/common/cs/download-blob.js"],"sourcesContent":["exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mediaRecorderPopup {\\n box-sizing: border-box;\\n width: 700px;\\n max-height: min(800px, 80vh);\\n max-width: 85%;\\n margin-top: 12vh;\\n overflow-y: auto;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n\\n.mediaRecorderPopupContent {\\n padding: 1.5rem 2.25rem;\\n}\\n\\n.mediaRecorderPopup p {\\n font-size: 1rem;\\n margin: 0.5rem auto;\\n}\\n\\n.mediaRecorderPopup p :last-child {\\n margin-left: 1rem;\\n}\\n\\n.mediaRecorderPopup[dir=\\\"rtl\\\"] p :last-child {\\n margin-left: 0;\\n margin-right: 1rem;\\n}\\n\\np.mediaRecorderPopupOption {\\n display: flex;\\n align-items: center;\\n}\\n\\n.mediaRecorderPopupOption input[type=\\\"checkbox\\\"] {\\n height: 1.5rem;\\n}\\n\\n#recordOptionSecondsInput,\\n#recordOptionDelayInput {\\n width: 6rem;\\n}\\n\\n.mediaRecorderPopupButtons {\\n margin-top: 1.5rem;\\n}\\n\\n.mediaRecorderPopupButtons button {\\n margin-left: 0.5rem;\\n}\\n\\n/* TW: Fixes cancel button in dark mode */\\n.mediaRecorderPopupButtons button:nth-of-type(1) {\\n color: black;\\n}\\n\", \"\"]);\n\n// exports\n","/* generated by pull.js */\nimport _js from \"./userscript.js\";\nimport _css from \"!css-loader!./style.css\";\nexport const resources = {\n \"userscript.js\": _js,\n \"style.css\": _css,\n};\n","import downloadBlob from \"../../libraries/common/cs/download-blob.js\";\n\nexport default async ({ addon, console, msg }) => {\n let recordElem;\n let isRecording = false;\n let isWaitingForFlag = false;\n let waitingForFlagFunc = null;\n let abortController = null;\n let stopSignFunc = null;\n let recordBuffer = [];\n let recorder;\n let timeout;\n const isMp4CodecSupported = false;\n // const isMp4CodecSupported = MediaRecorder.isTypeSupported('video/webm;codecs=h264');\n while (true) {\n const elem = await addon.tab.waitForElement('div[class*=\"menu-bar_file-group\"] > div:last-child:not(.sa-record)', {\n markAsSeen: true,\n reduxEvents: [\"scratch-gui/mode/SET_PLAYER\", \"fontsLoaded/SET_FONTS_LOADED\", \"scratch-gui/locales/SELECT_LOCALE\"],\n });\n const getOptions = () => {\n const { backdrop, container, content, closeButton, remove } = addon.tab.createModal(msg(\"option-title\"), {\n isOpen: true,\n useEditorClasses: true,\n });\n container.classList.add(\"mediaRecorderPopup\");\n content.classList.add(\"mediaRecorderPopupContent\");\n \n content.appendChild(\n Object.assign(document.createElement(\"p\"), {\n textContent: msg(\"record-description\"),\n className: \"recordOptionDescription\",\n })\n );\n \n // Seconds\n const recordOptionSeconds = document.createElement(\"p\");\n const recordOptionSecondsInput = Object.assign(document.createElement(\"input\"), {\n type: \"number\",\n min: 1,\n defaultValue: 300,\n id: \"recordOptionSecondsInput\",\n className: addon.tab.scratchClass(\"prompt_variable-name-text-input\"),\n });\n const recordOptionSecondsLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionSecondsInput\",\n textContent: msg(\"record-duration\"),\n });\n recordOptionSeconds.appendChild(recordOptionSecondsLabel);\n recordOptionSeconds.appendChild(recordOptionSecondsInput);\n content.appendChild(recordOptionSeconds);\n \n // Delay\n const recordOptionDelay = document.createElement(\"p\");\n const recordOptionDelayInput = Object.assign(document.createElement(\"input\"), {\n type: \"number\",\n min: 0,\n defaultValue: 0,\n id: \"recordOptionDelayInput\",\n className: addon.tab.scratchClass(\"prompt_variable-name-text-input\"),\n });\n const recordOptionDelayLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionDelayInput\",\n textContent: msg(\"start-delay\"),\n });\n recordOptionDelay.appendChild(recordOptionDelayLabel);\n recordOptionDelay.appendChild(recordOptionDelayInput);\n content.appendChild(recordOptionDelay);\n \n // Audio\n const recordOptionAudio = Object.assign(document.createElement(\"p\"), {\n className: \"mediaRecorderPopupOption\",\n });\n const recordOptionAudioInput = Object.assign(document.createElement(\"input\"), {\n type: \"checkbox\",\n defaultChecked: true,\n id: \"recordOptionAudioInput\",\n });\n const recordOptionAudioLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionAudioInput\",\n textContent: msg(\"record-audio\"),\n title: msg(\"record-audio-description\"),\n });\n recordOptionAudio.appendChild(recordOptionAudioInput);\n recordOptionAudio.appendChild(recordOptionAudioLabel);\n content.appendChild(recordOptionAudio);\n \n // Mic\n const recordOptionMic = Object.assign(document.createElement(\"p\"), {\n className: \"mediaRecorderPopupOption\",\n });\n const recordOptionMicInput = Object.assign(document.createElement(\"input\"), {\n type: \"checkbox\",\n defaultChecked: false,\n id: \"recordOptionMicInput\",\n });\n const recordOptionMicLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionMicInput\",\n textContent: msg(\"record-mic\"),\n });\n recordOptionMic.appendChild(recordOptionMicInput);\n recordOptionMic.appendChild(recordOptionMicLabel);\n content.appendChild(recordOptionMic);\n \n // Green flag\n const recordOptionFlag = Object.assign(document.createElement(\"p\"), {\n className: \"mediaRecorderPopupOption\",\n });\n const recordOptionFlagInput = Object.assign(document.createElement(\"input\"), {\n type: \"checkbox\",\n defaultChecked: true,\n id: \"recordOptionFlagInput\",\n });\n const recordOptionFlagLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionFlagInput\",\n textContent: msg(\"record-after-flag\"),\n });\n recordOptionFlag.appendChild(recordOptionFlagInput);\n recordOptionFlag.appendChild(recordOptionFlagLabel);\n content.appendChild(recordOptionFlag);\n \n // Stop sign\n const recordOptionStop = Object.assign(document.createElement(\"p\"), {\n className: \"mediaRecorderPopupOption\",\n });\n const recordOptionStopInput = Object.assign(document.createElement(\"input\"), {\n type: \"checkbox\",\n defaultChecked: true,\n id: \"recordOptionStopInput\",\n });\n const recordOptionStopLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionStopInput\",\n textContent: msg(\"record-until-stop\"),\n });\n recordOptionFlagInput.addEventListener(\"change\", () => {\n const disabled = (recordOptionStopInput.disabled = !recordOptionFlagInput.checked);\n if (disabled) {\n recordOptionStopLabel.title = msg(\"record-until-stop-disabled\", {\n afterFlagOption: msg(\"record-after-flag\"),\n });\n }\n });\n recordOptionStop.appendChild(recordOptionStopInput);\n recordOptionStop.appendChild(recordOptionStopLabel);\n content.appendChild(recordOptionStop);\n \n // Record screen\n const recordOptionScreen = Object.assign(document.createElement(\"p\"), {\n className: \"mediaRecorderPopupOption\",\n });\n const recordOptionScreenInput = Object.assign(document.createElement(\"input\"), {\n type: \"checkbox\",\n defaultChecked: false,\n id: \"recordOptionScreen\",\n });\n const recordOptionScreenLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionScreen\",\n textContent: 'Record the entire screen',\n });\n recordOptionScreen.appendChild(recordOptionScreenInput);\n recordOptionScreen.appendChild(recordOptionScreenLabel);\n content.appendChild(recordOptionScreen);\n recordOptionScreenInput.disabled = true;\n if ('mediaDevices' in navigator && typeof navigator.mediaDevices.getDisplayMedia === 'function') {\n recordOptionScreenInput.disabled = false;\n }\n \n let resolvePromise = null;\n const optionPromise = new Promise((resolve) => {\n resolvePromise = resolve;\n });\n let handleOptionClose = null;\n \n backdrop.addEventListener(\"click\", () => handleOptionClose(null));\n closeButton.addEventListener(\"click\", () => handleOptionClose(null));\n \n handleOptionClose = (value) => {\n resolvePromise(value);\n remove();\n };\n \n const buttonRow = Object.assign(document.createElement(\"div\"), {\n className: addon.tab.scratchClass(\"prompt_button-row\", { others: \"mediaRecorderPopupButtons\" }),\n });\n const cancelButton = Object.assign(document.createElement(\"button\"), {\n textContent: msg(\"cancel\"),\n });\n cancelButton.addEventListener(\"click\", () => handleOptionClose(null), { once: true });\n buttonRow.appendChild(cancelButton);\n const startButton = Object.assign(document.createElement(\"button\"), {\n textContent: msg(\"start\"),\n className: addon.tab.scratchClass(\"prompt_ok-button\"),\n });\n startButton.addEventListener(\n \"click\",\n () =>\n handleOptionClose({\n secs: Number(recordOptionSecondsInput.value),\n delay: Number(recordOptionDelayInput.value),\n audioEnabled: recordOptionAudioInput.checked,\n micEnabled: recordOptionMicInput.checked,\n waitUntilFlag: recordOptionFlagInput.checked,\n useStopSign: !recordOptionStopInput.disabled && recordOptionStopInput.checked,\n recordWholeScreen: recordOptionScreenInput.checked,\n }),\n { once: true }\n );\n buttonRow.appendChild(startButton);\n content.appendChild(buttonRow);\n \n return optionPromise;\n };\n const disposeRecorder = () => {\n isRecording = false;\n recordElem.textContent = msg(\"record\");\n recordElem.title = \"\";\n recorder = null;\n recordBuffer = [];\n clearTimeout(timeout);\n timeout = 0;\n if (stopSignFunc) {\n addon.tab.traps.vm.runtime.off(\"PROJECT_STOP_ALL\", stopSignFunc);\n stopSignFunc = null;\n }\n };\n const stopRecording = (force) => {\n if (isWaitingForFlag) {\n addon.tab.traps.vm.runtime.off(\"PROJECT_START\", waitingForFlagFunc);\n isWaitingForFlag = false;\n waitingForFlagFunc = null;\n abortController.abort();\n abortController = null;\n disposeRecorder();\n return;\n }\n if (!isRecording || !recorder || recorder.state === \"inactive\") return;\n if (force) {\n disposeRecorder();\n } else {\n recorder.onstop = () => {\n const blob = new Blob(recordBuffer, {\n type: isMp4CodecSupported ?\n \"video/mp4\"\n : \"video/webm\"\n });\n downloadBlob(isMp4CodecSupported ? \"video.mp4\" : \"video.webm\", blob);\n disposeRecorder();\n };\n recorder.stop();\n }\n };\n const startRecording = async (opts) => {\n // Timer\n const secs = Math.max(1, opts.secs);\n \n // Initialize MediaRecorder\n recordBuffer = [];\n isRecording = true;\n const vm = addon.tab.traps.vm;\n let micStream;\n if (opts.micEnabled) {\n // Show permission dialog before green flag is clicked\n try {\n micStream = await navigator.mediaDevices.getUserMedia({ audio: true });\n } catch (e) {\n if (e.name !== \"NotAllowedError\" && e.name !== \"NotFoundError\") throw e;\n opts.micEnabled = false;\n }\n }\n let screenRecordingStream;\n if (opts.recordWholeScreen) {\n // Show permission dialog before green flag is clicked\n try {\n screenRecordingStream = await navigator.mediaDevices.getDisplayMedia({\n audio: opts.audioEnabled,\n video: { mediaSource: \"screen\" }\n });\n } catch (e) {\n console.warn('An error occurred trying to record the whole screen', e);\n opts.recordWholeScreen = false;\n }\n }\n if (opts.waitUntilFlag) {\n isWaitingForFlag = true;\n Object.assign(recordElem, {\n textContent: msg(\"click-flag\"),\n title: msg(\"click-flag-description\"),\n });\n abortController = new AbortController();\n try {\n await Promise.race([\n new Promise((resolve) => {\n waitingForFlagFunc = () => resolve();\n vm.runtime.once(\"PROJECT_START\", waitingForFlagFunc);\n }),\n new Promise((_, reject) => {\n abortController.signal.addEventListener(\"abort\", () => reject(\"aborted\"), { once: true });\n }),\n ]);\n } catch (e) {\n if (e.message === \"aborted\") return;\n throw e;\n }\n }\n isWaitingForFlag = false;\n waitingForFlagFunc = abortController = null;\n const stream = new MediaStream();\n if (opts.recordWholeScreen && screenRecordingStream) {\n stream.addTrack(screenRecordingStream.getVideoTracks()[0]);\n try {\n stream.addTrack(screenRecordingStream.getAudioTracks()[0]);\n } catch (e) {\n console.warn('Cannot add screen recording\\'s audio', e);\n }\n } else {\n const videoStream = vm.runtime.renderer.canvas.captureStream();\n stream.addTrack(videoStream.getVideoTracks()[0]);\n }\n \n const ctx = new AudioContext();\n const dest = ctx.createMediaStreamDestination();\n if (opts.audioEnabled) {\n const mediaStreamDestination = vm.runtime.audioEngine.audioContext.createMediaStreamDestination();\n vm.runtime.audioEngine.inputNode.connect(mediaStreamDestination);\n const audioSource = ctx.createMediaStreamSource(mediaStreamDestination.stream);\n audioSource.connect(dest);\n // literally any other extension\n for (const audioData of vm.runtime._extensionAudioObjects.values()) {\n if (audioData.audioContext && audioData.gainNode) {\n const mediaStreamDestination = audioData.audioContext.createMediaStreamDestination();\n audioData.gainNode.connect(mediaStreamDestination);\n const audioSource = ctx.createMediaStreamSource(mediaStreamDestination.stream);\n audioSource.connect(dest);\n }\n }\n }\n if (opts.micEnabled) {\n const micSource = ctx.createMediaStreamSource(micStream);\n micSource.connect(dest);\n }\n if (opts.audioEnabled || opts.micEnabled) {\n stream.addTrack(dest.stream.getAudioTracks()[0]);\n }\n try {\n recorder = new MediaRecorder(stream, { mimeType: \"video/webm;codecs=vp9\" });\n } catch (err) {\n console.error('Could not make a transparency compatable video', err);\n recorder = new MediaRecorder(stream, { mimeType:\n isMp4CodecSupported ?\n \"video/webm;codecs=h264\"\n : \"video/webm\"\n });\n }\n recorder.ondataavailable = (e) => {\n recordBuffer.push(e.data);\n };\n recorder.onerror = (e) => {\n console.warn(\"Recorder error:\", e.error);\n stopRecording(true);\n };\n timeout = setTimeout(() => stopRecording(false), secs * 1000);\n if (opts.useStopSign) {\n stopSignFunc = () => stopRecording();\n vm.runtime.once(\"PROJECT_STOP_ALL\", stopSignFunc);\n }\n \n // Delay\n const delay = opts.delay || 0;\n const roundedDelay = Math.floor(delay);\n for (let index = 0; index < roundedDelay; index++) {\n recordElem.textContent = msg(\"starting-in\", { secs: roundedDelay - index });\n await new Promise((resolve) => setTimeout(resolve, 975));\n }\n setTimeout(() => {\n recordElem.textContent = msg(\"stop\");\n \n recorder.start(1000);\n }, (delay - roundedDelay) * 1000);\n };\n if (!recordElem) {\n recordElem = Object.assign(document.createElement(\"div\"), {\n className: \"sa-record \" + elem.className,\n textContent: msg(\"record\"),\n });\n recordElem.addEventListener(\"click\", async () => {\n if (isRecording) {\n stopRecording();\n } else {\n const opts = await getOptions();\n if (!opts) {\n console.log(\"Canceled\");\n return;\n }\n startRecording(opts);\n }\n });\n }\n elem.parentElement.appendChild(recordElem);\n }\n};","// From https://github.com/LLK/scratch-gui/blob/develop/src/lib/download-blob.js\nexport default (filename, blob) => {\n const downloadLink = document.createElement(\"a\");\n document.body.appendChild(downloadLink);\n\n // Use special ms version if available to get it working on Edge.\n if (navigator.msSaveOrOpenBlob) {\n navigator.msSaveOrOpenBlob(blob, filename);\n return;\n }\n\n if (\"download\" in HTMLAnchorElement.prototype) {\n const url = window.URL.createObjectURL(blob);\n downloadLink.href = url;\n downloadLink.download = filename;\n downloadLink.type = blob.type;\n downloadLink.click();\n // remove the link after a timeout to prevent a crash on iOS 13 Safari\n window.setTimeout(() => {\n document.body.removeChild(downloadLink);\n window.URL.revokeObjectURL(url);\n }, 1000);\n } else {\n // iOS 12 Safari, open a new page and set href to data-uri\n let popup = window.open(\"\", \"_blank\");\n const reader = new FileReader();\n reader.onloadend = function () {\n popup.location.href = reader.result;\n popup = null;\n };\n reader.readAsDataURL(blob);\n }\n};\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9YA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;A","sourceRoot":""}
 
1
+ {"version":3,"file":"js/addon-entry-mediarecorder.js","sources":["webpack://GUI/./src/addons/addons/mediarecorder/style.css","webpack://GUI/./src/addons/addons/mediarecorder/_runtime_entry.js","webpack://GUI/./src/addons/addons/mediarecorder/userscript.js","webpack://GUI/./src/addons/libraries/common/cs/download-blob.js"],"sourcesContent":["exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mediaRecorderPopup {\\n box-sizing: border-box;\\n width: 700px;\\n max-height: min(800px, 80vh);\\n max-width: 85%;\\n margin-top: 12vh;\\n overflow-y: auto;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n\\n.mediaRecorderPopupContent {\\n padding: 1.5rem 2.25rem;\\n}\\n\\n.mediaRecorderPopup p {\\n font-size: 1rem;\\n margin: 0.5rem auto;\\n}\\n\\n.mediaRecorderPopup p :last-child {\\n margin-left: 1rem;\\n}\\n\\n.mediaRecorderPopup[dir=\\\"rtl\\\"] p :last-child {\\n margin-left: 0;\\n margin-right: 1rem;\\n}\\n\\np.mediaRecorderPopupOption {\\n display: flex;\\n align-items: center;\\n}\\n\\n.mediaRecorderPopupOption input[type=\\\"checkbox\\\"] {\\n height: 1.5rem;\\n}\\n\\n#recordOptionSecondsInput,\\n#recordOptionDelayInput {\\n width: 6rem;\\n}\\n\\n.mediaRecorderPopupButtons {\\n margin-top: 1.5rem;\\n}\\n\\n.mediaRecorderPopupButtons button {\\n margin-left: 0.5rem;\\n}\\n\\n/* TW: Fixes cancel button in dark mode */\\n.mediaRecorderPopupButtons button:nth-of-type(1) {\\n color: black;\\n}\\n\", \"\"]);\n\n// exports\n","/* generated by pull.js */\nimport _js from \"./userscript.js\";\nimport _css from \"!css-loader!./style.css\";\nexport const resources = {\n \"userscript.js\": _js,\n \"style.css\": _css,\n};\n","import downloadBlob from \"../../libraries/common/cs/download-blob.js\";\n\nexport default async ({ addon, console, msg }) => {\n let recordElem;\n let isRecording = false;\n let isWaitingForFlag = false;\n let waitingForFlagFunc = null;\n let abortController = null;\n let stopSignFunc = null;\n let recordBuffer = [];\n let recorder;\n let timeout;\n const isMp4CodecSupported = false;\n // const isMp4CodecSupported = MediaRecorder.isTypeSupported('video/webm;codecs=h264');\n while (true) {\n const elem = await addon.tab.waitForElement('div[class*=\"menu-bar_file-group\"] > div:last-child:not(.sa-record)', {\n markAsSeen: true,\n reduxEvents: [\"scratch-gui/mode/SET_PLAYER\", \"fontsLoaded/SET_FONTS_LOADED\", \"scratch-gui/locales/SELECT_LOCALE\"],\n });\n const getOptions = () => {\n const { backdrop, container, content, closeButton, remove } = addon.tab.createModal(msg(\"option-title\"), {\n isOpen: true,\n useEditorClasses: true,\n });\n container.classList.add(\"mediaRecorderPopup\");\n content.classList.add(\"mediaRecorderPopupContent\");\n \n content.appendChild(\n Object.assign(document.createElement(\"p\"), {\n textContent: msg(\"record-description\"),\n className: \"recordOptionDescription\",\n })\n );\n \n // Seconds\n const recordOptionSeconds = document.createElement(\"p\");\n const recordOptionSecondsInput = Object.assign(document.createElement(\"input\"), {\n type: \"number\",\n min: 1,\n defaultValue: 300,\n id: \"recordOptionSecondsInput\",\n className: addon.tab.scratchClass(\"prompt_variable-name-text-input\"),\n });\n const recordOptionSecondsLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionSecondsInput\",\n textContent: msg(\"record-duration\"),\n });\n recordOptionSeconds.appendChild(recordOptionSecondsLabel);\n recordOptionSeconds.appendChild(recordOptionSecondsInput);\n content.appendChild(recordOptionSeconds);\n \n // Delay\n const recordOptionDelay = document.createElement(\"p\");\n const recordOptionDelayInput = Object.assign(document.createElement(\"input\"), {\n type: \"number\",\n min: 0,\n defaultValue: 0,\n id: \"recordOptionDelayInput\",\n className: addon.tab.scratchClass(\"prompt_variable-name-text-input\"),\n });\n const recordOptionDelayLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionDelayInput\",\n textContent: msg(\"start-delay\"),\n });\n recordOptionDelay.appendChild(recordOptionDelayLabel);\n recordOptionDelay.appendChild(recordOptionDelayInput);\n content.appendChild(recordOptionDelay);\n \n // Audio\n const recordOptionAudio = Object.assign(document.createElement(\"p\"), {\n className: \"mediaRecorderPopupOption\",\n });\n const recordOptionAudioInput = Object.assign(document.createElement(\"input\"), {\n type: \"checkbox\",\n defaultChecked: true,\n id: \"recordOptionAudioInput\",\n });\n const recordOptionAudioLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionAudioInput\",\n textContent: msg(\"record-audio\"),\n title: msg(\"record-audio-description\"),\n });\n recordOptionAudio.appendChild(recordOptionAudioInput);\n recordOptionAudio.appendChild(recordOptionAudioLabel);\n content.appendChild(recordOptionAudio);\n \n // Mic\n const recordOptionMic = Object.assign(document.createElement(\"p\"), {\n className: \"mediaRecorderPopupOption\",\n });\n const recordOptionMicInput = Object.assign(document.createElement(\"input\"), {\n type: \"checkbox\",\n defaultChecked: false,\n id: \"recordOptionMicInput\",\n });\n const recordOptionMicLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionMicInput\",\n textContent: msg(\"record-mic\"),\n });\n recordOptionMic.appendChild(recordOptionMicInput);\n recordOptionMic.appendChild(recordOptionMicLabel);\n content.appendChild(recordOptionMic);\n \n // Green flag\n const recordOptionFlag = Object.assign(document.createElement(\"p\"), {\n className: \"mediaRecorderPopupOption\",\n });\n const recordOptionFlagInput = Object.assign(document.createElement(\"input\"), {\n type: \"checkbox\",\n defaultChecked: true,\n id: \"recordOptionFlagInput\",\n });\n const recordOptionFlagLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionFlagInput\",\n textContent: msg(\"record-after-flag\"),\n });\n recordOptionFlag.appendChild(recordOptionFlagInput);\n recordOptionFlag.appendChild(recordOptionFlagLabel);\n content.appendChild(recordOptionFlag);\n \n // Stop sign\n const recordOptionStop = Object.assign(document.createElement(\"p\"), {\n className: \"mediaRecorderPopupOption\",\n });\n const recordOptionStopInput = Object.assign(document.createElement(\"input\"), {\n type: \"checkbox\",\n defaultChecked: true,\n id: \"recordOptionStopInput\",\n });\n const recordOptionStopLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionStopInput\",\n textContent: msg(\"record-until-stop\"),\n });\n recordOptionFlagInput.addEventListener(\"change\", () => {\n const disabled = (recordOptionStopInput.disabled = !recordOptionFlagInput.checked);\n if (disabled) {\n recordOptionStopLabel.title = msg(\"record-until-stop-disabled\", {\n afterFlagOption: msg(\"record-after-flag\"),\n });\n }\n });\n recordOptionStop.appendChild(recordOptionStopInput);\n recordOptionStop.appendChild(recordOptionStopLabel);\n content.appendChild(recordOptionStop);\n \n // Record screen\n const recordOptionScreen = Object.assign(document.createElement(\"p\"), {\n className: \"mediaRecorderPopupOption\",\n });\n const recordOptionScreenInput = Object.assign(document.createElement(\"input\"), {\n type: \"checkbox\",\n defaultChecked: false,\n id: \"recordOptionScreen\",\n });\n const recordOptionScreenLabel = Object.assign(document.createElement(\"label\"), {\n htmlFor: \"recordOptionScreen\",\n textContent: msg('Recordtheentirescreen'),\n });\n recordOptionScreen.appendChild(recordOptionScreenInput);\n recordOptionScreen.appendChild(recordOptionScreenLabel);\n content.appendChild(recordOptionScreen);\n recordOptionScreenInput.disabled = true;\n if ('mediaDevices' in navigator && typeof navigator.mediaDevices.getDisplayMedia === 'function') {\n recordOptionScreenInput.disabled = false;\n }\n \n let resolvePromise = null;\n const optionPromise = new Promise((resolve) => {\n resolvePromise = resolve;\n });\n let handleOptionClose = null;\n \n backdrop.addEventListener(\"click\", () => handleOptionClose(null));\n closeButton.addEventListener(\"click\", () => handleOptionClose(null));\n \n handleOptionClose = (value) => {\n resolvePromise(value);\n remove();\n };\n \n const buttonRow = Object.assign(document.createElement(\"div\"), {\n className: addon.tab.scratchClass(\"prompt_button-row\", { others: \"mediaRecorderPopupButtons\" }),\n });\n const cancelButton = Object.assign(document.createElement(\"button\"), {\n textContent: msg(\"cancel\"),\n });\n cancelButton.addEventListener(\"click\", () => handleOptionClose(null), { once: true });\n buttonRow.appendChild(cancelButton);\n const startButton = Object.assign(document.createElement(\"button\"), {\n textContent: msg(\"start\"),\n className: addon.tab.scratchClass(\"prompt_ok-button\"),\n });\n startButton.addEventListener(\n \"click\",\n () =>\n handleOptionClose({\n secs: Number(recordOptionSecondsInput.value),\n delay: Number(recordOptionDelayInput.value),\n audioEnabled: recordOptionAudioInput.checked,\n micEnabled: recordOptionMicInput.checked,\n waitUntilFlag: recordOptionFlagInput.checked,\n useStopSign: !recordOptionStopInput.disabled && recordOptionStopInput.checked,\n recordWholeScreen: recordOptionScreenInput.checked,\n }),\n { once: true }\n );\n buttonRow.appendChild(startButton);\n content.appendChild(buttonRow);\n \n return optionPromise;\n };\n const disposeRecorder = () => {\n isRecording = false;\n recordElem.textContent = msg(\"record\");\n recordElem.title = \"\";\n recorder = null;\n recordBuffer = [];\n clearTimeout(timeout);\n timeout = 0;\n if (stopSignFunc) {\n addon.tab.traps.vm.runtime.off(\"PROJECT_STOP_ALL\", stopSignFunc);\n stopSignFunc = null;\n }\n };\n const stopRecording = (force) => {\n if (isWaitingForFlag) {\n addon.tab.traps.vm.runtime.off(\"PROJECT_START\", waitingForFlagFunc);\n isWaitingForFlag = false;\n waitingForFlagFunc = null;\n abortController.abort();\n abortController = null;\n disposeRecorder();\n return;\n }\n if (!isRecording || !recorder || recorder.state === \"inactive\") return;\n if (force) {\n disposeRecorder();\n } else {\n recorder.onstop = () => {\n const blob = new Blob(recordBuffer, {\n type: isMp4CodecSupported ?\n \"video/mp4\"\n : \"video/webm\"\n });\n downloadBlob(isMp4CodecSupported ? \"video.mp4\" : \"video.webm\", blob);\n disposeRecorder();\n };\n recorder.stop();\n }\n };\n const startRecording = async (opts) => {\n // Timer\n const secs = Math.max(1, opts.secs);\n \n // Initialize MediaRecorder\n recordBuffer = [];\n isRecording = true;\n const vm = addon.tab.traps.vm;\n let micStream;\n if (opts.micEnabled) {\n // Show permission dialog before green flag is clicked\n try {\n micStream = await navigator.mediaDevices.getUserMedia({ audio: true });\n } catch (e) {\n if (e.name !== \"NotAllowedError\" && e.name !== \"NotFoundError\") throw e;\n opts.micEnabled = false;\n }\n }\n let screenRecordingStream;\n if (opts.recordWholeScreen) {\n // Show permission dialog before green flag is clicked\n try {\n screenRecordingStream = await navigator.mediaDevices.getDisplayMedia({\n audio: opts.audioEnabled,\n video: { mediaSource: \"screen\" }\n });\n } catch (e) {\n console.warn('An error occurred trying to record the whole screen', e);\n opts.recordWholeScreen = false;\n }\n }\n if (opts.waitUntilFlag) {\n isWaitingForFlag = true;\n Object.assign(recordElem, {\n textContent: msg(\"click-flag\"),\n title: msg(\"click-flag-description\"),\n });\n abortController = new AbortController();\n try {\n await Promise.race([\n new Promise((resolve) => {\n waitingForFlagFunc = () => resolve();\n vm.runtime.once(\"PROJECT_START\", waitingForFlagFunc);\n }),\n new Promise((_, reject) => {\n abortController.signal.addEventListener(\"abort\", () => reject(\"aborted\"), { once: true });\n }),\n ]);\n } catch (e) {\n if (e.message === \"aborted\") return;\n throw e;\n }\n }\n isWaitingForFlag = false;\n waitingForFlagFunc = abortController = null;\n const stream = new MediaStream();\n if (opts.recordWholeScreen && screenRecordingStream) {\n stream.addTrack(screenRecordingStream.getVideoTracks()[0]);\n try {\n stream.addTrack(screenRecordingStream.getAudioTracks()[0]);\n } catch (e) {\n console.warn('Cannot add screen recording\\'s audio', e);\n }\n } else {\n const videoStream = vm.runtime.renderer.canvas.captureStream();\n stream.addTrack(videoStream.getVideoTracks()[0]);\n }\n \n const ctx = new AudioContext();\n const dest = ctx.createMediaStreamDestination();\n if (opts.audioEnabled) {\n const mediaStreamDestination = vm.runtime.audioEngine.audioContext.createMediaStreamDestination();\n vm.runtime.audioEngine.inputNode.connect(mediaStreamDestination);\n const audioSource = ctx.createMediaStreamSource(mediaStreamDestination.stream);\n audioSource.connect(dest);\n // literally any other extension\n for (const audioData of vm.runtime._extensionAudioObjects.values()) {\n if (audioData.audioContext && audioData.gainNode) {\n const mediaStreamDestination = audioData.audioContext.createMediaStreamDestination();\n audioData.gainNode.connect(mediaStreamDestination);\n const audioSource = ctx.createMediaStreamSource(mediaStreamDestination.stream);\n audioSource.connect(dest);\n }\n }\n }\n if (opts.micEnabled) {\n const micSource = ctx.createMediaStreamSource(micStream);\n micSource.connect(dest);\n }\n if (opts.audioEnabled || opts.micEnabled) {\n stream.addTrack(dest.stream.getAudioTracks()[0]);\n }\n try {\n recorder = new MediaRecorder(stream, { mimeType: \"video/webm;codecs=vp9\" });\n } catch (err) {\n console.error('Could not make a transparency compatable video', err);\n recorder = new MediaRecorder(stream, { mimeType:\n isMp4CodecSupported ?\n \"video/webm;codecs=h264\"\n : \"video/webm\"\n });\n }\n recorder.ondataavailable = (e) => {\n recordBuffer.push(e.data);\n };\n recorder.onerror = (e) => {\n console.warn(\"Recorder error:\", e.error);\n stopRecording(true);\n };\n timeout = setTimeout(() => stopRecording(false), secs * 1000);\n if (opts.useStopSign) {\n stopSignFunc = () => stopRecording();\n vm.runtime.once(\"PROJECT_STOP_ALL\", stopSignFunc);\n }\n \n // Delay\n const delay = opts.delay || 0;\n const roundedDelay = Math.floor(delay);\n for (let index = 0; index < roundedDelay; index++) {\n recordElem.textContent = msg(\"starting-in\", { secs: roundedDelay - index });\n await new Promise((resolve) => setTimeout(resolve, 975));\n }\n setTimeout(() => {\n recordElem.textContent = msg(\"stop\");\n \n recorder.start(1000);\n }, (delay - roundedDelay) * 1000);\n };\n if (!recordElem) {\n recordElem = Object.assign(document.createElement(\"div\"), {\n className: \"sa-record \" + elem.className,\n textContent: msg(\"record\"),\n });\n recordElem.addEventListener(\"click\", async () => {\n if (isRecording) {\n stopRecording();\n } else {\n const opts = await getOptions();\n if (!opts) {\n console.log(\"Canceled\");\n return;\n }\n startRecording(opts);\n }\n });\n }\n elem.parentElement.appendChild(recordElem);\n }\n};","// From https://github.com/LLK/scratch-gui/blob/develop/src/lib/download-blob.js\nexport default (filename, blob) => {\n const downloadLink = document.createElement(\"a\");\n document.body.appendChild(downloadLink);\n\n // Use special ms version if available to get it working on Edge.\n if (navigator.msSaveOrOpenBlob) {\n navigator.msSaveOrOpenBlob(blob, filename);\n return;\n }\n\n if (\"download\" in HTMLAnchorElement.prototype) {\n const url = window.URL.createObjectURL(blob);\n downloadLink.href = url;\n downloadLink.download = filename;\n downloadLink.type = blob.type;\n downloadLink.click();\n // remove the link after a timeout to prevent a crash on iOS 13 Safari\n window.setTimeout(() => {\n document.body.removeChild(downloadLink);\n window.URL.revokeObjectURL(url);\n }, 1000);\n } else {\n // iOS 12 Safari, open a new page and set href to data-uri\n let popup = window.open(\"\", \"_blank\");\n const reader = new FileReader();\n reader.onloadend = function () {\n popup.location.href = reader.result;\n popup = null;\n };\n reader.readAsDataURL(blob);\n }\n};\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9YA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;A","sourceRoot":""}
js/addon-l10n-ja.js CHANGED
@@ -4,10 +4,10 @@
4
  /*!****************************************!*\
5
  !*** ./src/addons/addons-l10n/ja.json ***!
6
  \****************************************/
7
- /*! exports provided: editor-devtools/clean-plus, editor-devtools/copy-all, editor-devtools/copy-block, editor-devtools/cut-block, editor-devtools/lists, editor-devtools/make-space, editor-devtools/orphaned, editor-devtools/paste, editor-devtools/replace, editor-devtools/swap, editor-devtools/unused-list, editor-devtools/unused-var, editor-devtools/var-not-exist, editor-devtools/variables, find-bar/complex-broadcast, find-bar/find-placeholder, middle-click-popup/start-typing, editor-searchable-dropdowns/createBroadcast, editor-searchable-dropdowns/createGlobalList, editor-searchable-dropdowns/createGlobalVariable, editor-searchable-dropdowns/createLocalList, editor-searchable-dropdowns/createLocalVariable, data-category-tweaks-v2/for-all-sprites, data-category-tweaks-v2/for-this-sprite-only, data-category-tweaks-v2/list-category, hide-flyout/lock, hide-flyout/unlock, mediarecorder/cancel, mediarecorder/record, mediarecorder/click-flag, mediarecorder/click-flag-description, mediarecorder/option-title, mediarecorder/record-after-flag, mediarecorder/record-audio, mediarecorder/record-audio-description, mediarecorder/record-description, mediarecorder/record-duration, mediarecorder/record-mic, mediarecorder/record-until-stop, mediarecorder/record-until-stop-disabled, mediarecorder/start, mediarecorder/start-delay, mediarecorder/starting-in, mediarecorder/stop, mediarecorder/record-entire-screen, mediarecorder/error-entire-screen, debugger/block-breakpoint, debugger/block-error, debugger/block-log, debugger/block-warn, debugger/cannot-pause-player, debugger/clear, debugger/clone-of, debugger/close, debugger/console, debugger/debug, debugger/empty-string, debugger/enter-format, debugger/export, debugger/export-desc, debugger/icon-error, debugger/icon-warn, debugger/log-msg-broadcasted, debugger/log-msg-clone-cap, debugger/log-msg-clone-created, debugger/log-msg-flag-clicked, debugger/no-logs, debugger/no-threads-running, debugger/step, debugger/step-desc, debugger/tab-logs, debugger/tab-threads, debugger/thread, debugger/unknown-sprite, debugger/unpause, pause/pause, clones/clones, color-picker/hex, remove-sprite-confirm/confirm, block-count/blocks, onion-skinning/behind, onion-skinning/front, onion-skinning/layering, onion-skinning/merge, onion-skinning/mode, onion-skinning/next, onion-skinning/opacity, onion-skinning/opacityStep, onion-skinning/previous, onion-skinning/settings, onion-skinning/tint, onion-skinning/toggle, paint-snap/boxCenter, paint-snap/boxCorners, paint-snap/boxEdgeMids, paint-snap/objectCenters, paint-snap/objectCorners, paint-snap/objectEdges, paint-snap/objectMidlines, paint-snap/off, paint-snap/on, paint-snap/pageAxes, paint-snap/pageCenter, paint-snap/pageCorners, paint-snap/pageEdges, paint-snap/settings, paint-snap/snapFrom, paint-snap/snapTo, paint-snap/threshold, paint-snap/toggle, 2d-color-picker/shade, better-img-uploads/upload, variable-manager/for-all-sprites, variable-manager/for-this-sprite, variable-manager/search, variable-manager/too-big, variable-manager/variables, search-sprites/placeholder, sprite-properties/close-properties-panel-tooltip, sprite-properties/open-properties-panel-tooltip, gamepad/axes-a-b, gamepad/axis-arrows, gamepad/axis-cursor, gamepad/axis-custom, gamepad/axis-none, gamepad/browser-support, gamepad/button-n, gamepad/clear, gamepad/config-header, gamepad/key-click, gamepad/key-down, gamepad/key-left, gamepad/key-none, gamepad/key-right, gamepad/key-space, gamepad/key-up, gamepad/keyinput-title, gamepad/no-controllers, gamepad/reset, gamepad/settings, gamepad/store-in-project, folders/add-to-folder, folders/closed-folder, folders/confirm-backpack-folder, folders/create-folder, folders/name-not-allowed, folders/name-prompt, folders/name-prompt-title, folders/open-folder, folders/remove-folder, folders/remove-from-folder, folders/rename-folder, folders/rename-folder-prompt, folders/rename-folder-prompt-title, block-switching/control_forever, block-switching/control_if, block-switching/control_if_else, block-switching/control_repeat_until, block-switching/control_wait_until, block-switching/data_changevariableby, block-switching/data_deletealloflist, block-switching/data_deleteoflist, block-switching/data_hidelist, block-switching/data_hidevariable, block-switching/data_insertatlist, block-switching/data_replaceitemoflist, block-switching/data_setvariableto, block-switching/data_showlist, block-switching/data_showvariable, block-switching/debugger_error, block-switching/debugger_log, block-switching/debugger_warn, block-switching/event_broadcast, block-switching/event_broadcastandwait, block-switching/looks_backdropnumbername, block-switching/looks_changeeffectby, block-switching/looks_changesizeby, block-switching/looks_costumenumbername, block-switching/looks_goforwardbackwardlayers, block-switching/looks_gotofrontback, block-switching/looks_hide, block-switching/looks_nextbackdrop, block-switching/looks_nextcostume, block-switching/looks_say, block-switching/looks_sayforsecs, block-switching/looks_seteffectto, block-switching/looks_setsizeto, block-switching/looks_show, block-switching/looks_switchbackdropto, block-switching/looks_switchbackdroptoandwait, block-switching/looks_think, block-switching/looks_thinkforsecs, block-switching/motion_changexby, block-switching/motion_changeyby, block-switching/motion_setx, block-switching/motion_sety, block-switching/motion_changebyxy, block-switching/motion_gotoxy, block-switching/motion_turnleft, block-switching/motion_turnright, block-switching/motion_xposition, block-switching/motion_yposition, block-switching/music_changeTempo, block-switching/music_setTempo, block-switching/operator_and, block-switching/operator_mod, block-switching/operator_or, block-switching/pen_changePenColorParamBy, block-switching/pen_changePenHueBy, block-switching/pen_changePenShadeBy, block-switching/pen_changePenSizeBy, block-switching/pen_penDown, block-switching/pen_penUp, block-switching/pen_setPenColorParamTo, block-switching/pen_setPenHueToNumber, block-switching/pen_setPenShadeToNumber, block-switching/pen_setPenSizeTo, block-switching/sensing_coloristouchingcolor, block-switching/sensing_mousex, block-switching/sensing_mousey, block-switching/sensing_touchingcolor, block-switching/sound_changeeffectby, block-switching/sound_changevolumeby, block-switching/sound_play, block-switching/sound_playuntildone, block-switching/sound_seteffectto, block-switching/sound_setvolumeto, blocks2image/error_blocks_not_added, blocks2image/export_all_to_PNG, blocks2image/export_all_to_SVG, blocks2image/export_selected_to_PNG, blocks2image/export_selected_to_SVG, editor-extra-keys/enter-key, move-to-top-bottom/bottom, move-to-top-bottom/top, swap-local-global/cant-convert-cloud, swap-local-global/cant-convert-conflict, swap-local-global/cant-convert-stage, swap-local-global/cant-convert-to-local, swap-local-global/cant-convert-used-elsewhere, swap-local-global/edit, swap-local-global/edit-list-header, swap-local-global/edit-list-option, swap-local-global/edit-variable-header, swap-local-global/edit-variable-option, swap-local-global/to-global, swap-local-global/to-local, hide-stage/hide-stage, default */
8
  /***/ (function(module) {
9
 
10
- module.exports = JSON.parse("{\"editor-devtools/clean-plus\":\"きれいにする +\",\"editor-devtools/copy-all\":\"すべてコピー\",\"editor-devtools/copy-block\":\"ブロックをコピー\",\"editor-devtools/cut-block\":\"ブロックを切り取り\",\"editor-devtools/lists\":\"リスト\",\"editor-devtools/make-space\":\"スペースを確保\",\"editor-devtools/orphaned\":\"{count, plural, other {開発者ツール: 未使用の値ブロックを # 個見つけました。削除しますか?} }\",\"editor-devtools/paste\":\"貼り付け\",\"editor-devtools/replace\":\"開発者ツール: このスプライト内の変数{name}をすべて置き換える:\",\"editor-devtools/swap\":\"スプライト内の{var}を一括切り替え\",\"editor-devtools/unused-list\":\"{count, plural, other {開発者ツール: 未使用のこのスプライトのみのリストを # 個見つけました。削除しますか? 以下が一覧です:\\n} }\",\"editor-devtools/unused-var\":\"{count, plural, other {開発者ツール: 未使用のこのスプライトのみの変数を # 個見つけました。削除しますか? 以下が一覧です:\\n} }\",\"editor-devtools/var-not-exist\":\"その変数は存在しません。\",\"editor-devtools/variables\":\"変数\",\"find-bar/complex-broadcast\":\"(式)\",\"find-bar/find-placeholder\":\"検索 (Ctrl+F)\",\"middle-click-popup/start-typing\":\"入力する...\",\"editor-searchable-dropdowns/createBroadcast\":\"メッセージ「{name}」を作成\",\"editor-searchable-dropdowns/createGlobalList\":\"すべてのスプライト用のリスト「{name}」を作成\",\"editor-searchable-dropdowns/createGlobalVariable\":\"すべてのスプライト用の変数「{name}」を作成\",\"editor-searchable-dropdowns/createLocalList\":\"このスプライトのみのリスト「{name}」を作成\",\"editor-searchable-dropdowns/createLocalVariable\":\"このスプライトのみの変数「{name}」を作成\",\"data-category-tweaks-v2/for-all-sprites\":\"すべてのスプライト用:\",\"data-category-tweaks-v2/for-this-sprite-only\":\"このスプライトのみ:\",\"data-category-tweaks-v2/list-category\":\"リスト\",\"hide-flyout/lock\":\"パレットをロック\",\"hide-flyout/unlock\":\"パレットをロック解除\",\"mediarecorder/cancel\":\"キャンセル\",\"mediarecorder/record\":\"録画\",\"mediarecorder/click-flag\":\"待機中...\",\"mediarecorder/click-flag-description\":\"緑の旗を押して録画を開始してください。このボタンを押すと録画を中止できます。\",\"mediarecorder/option-title\":\"録画のオプション\",\"mediarecorder/record-after-flag\":\"緑の旗を押して録画を開始する\",\"mediarecorder/record-audio\":\"プロジェクトを録音する\",\"mediarecorder/record-audio-description\":\"音声合成は含まれません。\",\"mediarecorder/record-description\":\"ステージをMP4またはWebMファイルとして録画します。録画終了後、コンピューターに保存できます。\\n注: 変数モニターとリストモニターは表示されません。\",\"mediarecorder/record-duration\":\"録画時間 (秒)\",\"mediarecorder/record-mic\":\"マイクの音を録音する\",\"mediarecorder/record-until-stop\":\"プロジェクトの停止後に録画も停止する\",\"mediarecorder/record-until-stop-disabled\":\"このオプションを有効化するには、「{afterFlagOption}」を先に有効化してください。\",\"mediarecorder/start\":\"録画開始\",\"mediarecorder/start-delay\":\"待ち時間 (秒)\",\"mediarecorder/starting-in\":\"{secs}秒後に開始...\",\"mediarecorder/stop\":\"録画を停止\",\"mediarecorder/record-entire-screen\":\"画面全体を録画する\",\"mediarecorder/error-entire-screen\":\"画面全体を録画しようとしてエラーが発生しました\",\"debugger/block-breakpoint\":\"ブレークポイント\",\"debugger/block-error\":\"エラー%sを記録\",\"debugger/block-log\":\"%sをログに記録\",\"debugger/block-warn\":\"警告%sを記録\",\"debugger/cannot-pause-player\":\"ブレークポイントブロックは、エディター内のみで利用できます。\",\"debugger/clear\":\"消す\",\"debugger/clone-of\":\"{sprite}のクローン\",\"debugger/close\":\"閉じる\",\"debugger/console\":\"ログ\",\"debugger/debug\":\"デバッグ\",\"debugger/empty-string\":\"(空文字列)\",\"debugger/enter-format\":\"出力方式を入力:\",\"debugger/export\":\"書き出し\",\"debugger/export-desc\":\"Shiftキーを押しながらクリックして出力方式を指定できます。\",\"debugger/icon-error\":\"エラー\",\"debugger/icon-warn\":\"警告\",\"debugger/log-msg-broadcasted\":\"メッセージ「{broadcast}」を送りました。\",\"debugger/log-msg-clone-cap\":\"「{sprite}」のクローンに失敗しました: クローンは合計300個までしか作成できません。\",\"debugger/log-msg-clone-created\":\"「{sprite}」をクローンしました。\",\"debugger/log-msg-flag-clicked\":\"緑の旗が押されました。\",\"debugger/no-logs\":\"表示する内容がありません。\",\"debugger/no-threads-running\":\"実行中のスレッドはありません。\",\"debugger/step\":\"次に進む\",\"debugger/step-desc\":\"ブロックを一つずつ実行する。\",\"debugger/tab-logs\":\"ログ\",\"debugger/tab-threads\":\"スレッド\",\"debugger/thread\":\"スレッド {id}\",\"debugger/unknown-sprite\":\"(不明なスプライト)\",\"debugger/unpause\":\"再開\",\"pause/pause\":\"一時停止\",\"clones/clones\":\"クローン: {cloneCount}\",\"color-picker/hex\":\"16進数カラーコード\",\"remove-sprite-confirm/confirm\":\"スプライトを削除したいですか?\",\"block-count/blocks\":\"{num, plural, other {# ブロック}}\",\"onion-skinning/behind\":\"後ろ\",\"onion-skinning/front\":\"前\",\"onion-skinning/layering\":\"レイヤー\",\"onion-skinning/merge\":\"マージ\",\"onion-skinning/mode\":\"モード\",\"onion-skinning/next\":\"次のコスチューム\",\"onion-skinning/opacity\":\"透明度 (%)\",\"onion-skinning/opacityStep\":\"透明度の変化の割合 (%)\",\"onion-skinning/previous\":\"前のコスチューム\",\"onion-skinning/settings\":\"半透明エディターの設定\",\"onion-skinning/tint\":\"色合い\",\"onion-skinning/toggle\":\"半透明にする\",\"paint-snap/boxCenter\":\"選択したオブジェクトの中央\",\"paint-snap/boxCorners\":\"選択したオブジェクトの角\",\"paint-snap/boxEdgeMids\":\"選択したオブジェクトの中点\",\"paint-snap/objectCenters\":\"オブジェクトの中央\",\"paint-snap/objectCorners\":\"オブジェクトの角\",\"paint-snap/objectEdges\":\"オブジェクトの端\",\"paint-snap/objectMidlines\":\"オブジェクトの中央線\",\"paint-snap/off\":\"オフ\",\"paint-snap/on\":\"オン\",\"paint-snap/pageAxes\":\"ページの座標軸\",\"paint-snap/pageCenter\":\"ページの中央\",\"paint-snap/pageCorners\":\"ページの角\",\"paint-snap/pageEdges\":\"ページの端\",\"paint-snap/settings\":\"スナップ設定\",\"paint-snap/snapFrom\":\"スナップ元:\",\"paint-snap/snapTo\":\"スナップ先:\",\"paint-snap/threshold\":\"スナップ距離\",\"paint-snap/toggle\":\"スナップを有効化\",\"2d-color-picker/shade\":\"濃さ\",\"better-img-uploads/upload\":\"HD アップロード\",\"variable-manager/for-all-sprites\":\"すべてのスプライト用の変数\",\"variable-manager/for-this-sprite\":\"このスプライトの変数\",\"variable-manager/search\":\"検索\",\"variable-manager/too-big\":\"クリックして非常に大きな値を表示\",\"variable-manager/variables\":\"変数\",\"search-sprites/placeholder\":\"スプライトを検索...\",\"sprite-properties/close-properties-panel-tooltip\":\"プロパティ―パネルを閉じる\",\"sprite-properties/open-properties-panel-tooltip\":\"プロパティ―パネルを開く\",\"gamepad/axes-a-b\":\"軸 {a} と {b}\",\"gamepad/axis-arrows\":\"矢印キー\",\"gamepad/axis-cursor\":\"カーソル\",\"gamepad/axis-custom\":\"カスタム\",\"gamepad/axis-none\":\"なし\",\"gamepad/browser-support\":\"このブラウザーとOSではアドオンは正常に動作しません。他のブラウザーの利用をおすすめします。\",\"gamepad/button-n\":\"ボタン{n}\",\"gamepad/clear\":\"コントロールを全解除\",\"gamepad/config-header\":\"以下のコメントには、https://turbowarp.org/ などの外部のツールやウェブサイトで利用されるゲームパッド設定が保存されています。\\n編集しないこと。\",\"gamepad/key-click\":\"クリック\",\"gamepad/key-down\":\"下\",\"gamepad/key-left\":\"左\",\"gamepad/key-none\":\"(なし)\",\"gamepad/key-right\":\"右\",\"gamepad/key-space\":\"スペース\",\"gamepad/key-up\":\"上\",\"gamepad/keyinput-title\":\"キーを押してボタンが変更できます。Escキーでキャンセルできます。BackspaceまたはDeleteキーで削除できます。\",\"gamepad/no-controllers\":\"コントローラーが接続されていません。接続して、ボタンを押してください。\",\"gamepad/reset\":\"プロジェクトの既定にリセット\",\"gamepad/settings\":\"ゲームパッド設定\",\"gamepad/store-in-project\":\"プロジェクトに初期設定を保存する (プロジェクト作成者のための実験的機能)\",\"folders/add-to-folder\":\"フォルダー {folder} に追加\",\"folders/closed-folder\":\"フォルダー\",\"folders/confirm-backpack-folder\":\"フォルダーをバックパックしますか?\",\"folders/create-folder\":\"フォルダーを作成\",\"folders/name-not-allowed\":\"フォルダー名は無効です\",\"folders/name-prompt\":\"フォルダー名:\",\"folders/name-prompt-title\":\"フォルダーを作成\",\"folders/open-folder\":\"表示中\",\"folders/remove-folder\":\"フォルダーを削除\",\"folders/remove-from-folder\":\"フォルダーから出す\",\"folders/rename-folder\":\"フォルダーを改名\",\"folders/rename-folder-prompt\":\"フォルダーの改名先:\",\"folders/rename-folder-prompt-title\":\"フォルダーを改名\",\"block-switching/control_forever\":\"ずっと\",\"block-switching/control_if\":\"もし\",\"block-switching/control_if_else\":\"もし... でなければ\",\"block-switching/control_repeat_until\":\"...回繰り返す\",\"block-switching/control_wait_until\":\"...まで待つ\",\"block-switching/data_changevariableby\":\"変数を...ずつ変える\",\"block-switching/data_deletealloflist\":\"全て削除\",\"block-switching/data_deleteoflist\":\"アイテムを削除\",\"block-switching/data_hidelist\":\"リスト...を隠す\",\"block-switching/data_hidevariable\":\"変数...を隠す\",\"block-switching/data_insertatlist\":\"挿入する\",\"block-switching/data_replaceitemoflist\":\"置き換える\",\"block-switching/data_setvariableto\":\"変数を...にする\",\"block-switching/data_showlist\":\"リスト...を表示する\",\"block-switching/data_showvariable\":\"変数...を表示する\",\"block-switching/debugger_error\":\"エラー\",\"block-switching/debugger_log\":\"ログ\",\"block-switching/debugger_warn\":\"警告\",\"block-switching/event_broadcast\":\"...を送る\",\"block-switching/event_broadcastandwait\":\"...を送って待つ\",\"block-switching/looks_backdropnumbername\":\"背景の番号・名前\",\"block-switching/looks_changeeffectby\":\"画像効果を...ずつ変える\",\"block-switching/looks_changesizeby\":\"大きさを...ずつ変える\",\"block-switching/looks_costumenumbername\":\"コスチュームの番号・名前\",\"block-switching/looks_goforwardbackwardlayers\":\"前方または後方のレイヤーに移動する\",\"block-switching/looks_gotofrontback\":\"前方または後方のレイヤーに移動する\",\"block-switching/looks_hide\":\"隠す\",\"block-switching/looks_nextbackdrop\":\"次の背景\",\"block-switching/looks_nextcostume\":\"次のコスチューム\",\"block-switching/looks_say\":\"~と言う\",\"block-switching/looks_sayforsecs\":\"~と~秒言う\",\"block-switching/looks_seteffectto\":\"画像効果を...にする\",\"block-switching/looks_setsizeto\":\"大きさを...%にする\",\"block-switching/looks_show\":\"表示する\",\"block-switching/looks_switchbackdropto\":\"背景を~にする\",\"block-switching/looks_switchbackdroptoandwait\":\"背景を~にして待つ\",\"block-switching/looks_think\":\"~と考える\",\"block-switching/looks_thinkforsecs\":\"~と~秒考える\",\"block-switching/motion_changexby\":\"x座標を...ずつ変える\",\"block-switching/motion_changeyby\":\"y座標を...ずつ変える\",\"block-switching/motion_setx\":\"x座標を...にする\",\"block-switching/motion_sety\":\"y座標を...にする\",\"block-switching/motion_changebyxy\":\"x y づつ変える\",\"block-switching/motion_gotoxy\":\"x y に行く\",\"block-switching/motion_turnleft\":\"左回転\",\"block-switching/motion_turnright\":\"右回転\",\"block-switching/motion_xposition\":\"x座標\",\"block-switching/motion_yposition\":\"y座標\",\"block-switching/music_changeTempo\":\"テンポを~ずつ変える\",\"block-switching/music_setTempo\":\"テンポを~にする\",\"block-switching/operator_and\":\"かつ\",\"block-switching/operator_mod\":\"余り\",\"block-switching/operator_or\":\"または\",\"block-switching/pen_changePenColorParamBy\":\"ペンの...を...ずつ変える\",\"block-switching/pen_changePenHueBy\":\"ペンの色を...ずつ変える\",\"block-switching/pen_changePenShadeBy\":\"ペンの濃さを...ずつ変える\",\"block-switching/pen_changePenSizeBy\":\"ペンの太さを...ずつ変える\",\"block-switching/pen_penDown\":\"ペンを下ろす\",\"block-switching/pen_penUp\":\"ペンを上げる\",\"block-switching/pen_setPenColorParamTo\":\"ペンの...を...にする\",\"block-switching/pen_setPenHueToNumber\":\"ペンの色を...にする\",\"block-switching/pen_setPenShadeToNumber\":\"ペンの濃さを...にする\",\"block-switching/pen_setPenSizeTo\":\"ペンの太さを...にする\",\"block-switching/sensing_coloristouchingcolor\":\"color が color に触れた\",\"block-switching/sensing_mousex\":\"マウスのx座標\",\"block-switching/sensing_mousey\":\"マウスのy座標\",\"block-switching/sensing_touchingcolor\":\"触れている色\",\"block-switching/sound_changeeffectby\":\"音の効果を...ずつ変える\",\"block-switching/sound_changevolumeby\":\"音量を...ずつ変える\",\"block-switching/sound_play\":\"...の音を鳴らす\",\"block-switching/sound_playuntildone\":\"終わるまで...の音を鳴らす\",\"block-switching/sound_seteffectto\":\"音の効果を...にする\",\"block-switching/sound_setvolumeto\":\"音量を...%にする\",\"blocks2image/error_blocks_not_added\":\"ブロックを追加してください。\",\"blocks2image/export_all_to_PNG\":\"すべてをPNGとして出力\",\"blocks2image/export_all_to_SVG\":\"すべてをSVGとして出力\",\"blocks2image/export_selected_to_PNG\":\"ブロックをPNGとして出力\",\"blocks2image/export_selected_to_SVG\":\"ブロックをSVGとして出力\",\"editor-extra-keys/enter-key\":\"Enter\",\"move-to-top-bottom/bottom\":\"一番下に移動\",\"move-to-top-bottom/top\":\"一番上に移動\",\"swap-local-global/cant-convert-cloud\":\"クラウド変数を「このスプライトのみ」に設定することはできません。\",\"swap-local-global/cant-convert-conflict\":\"他のスプライトで名前が衝突するため変更できません: {sprites}\",\"swap-local-global/cant-convert-stage\":\"ステージは「このスプライトのみ」変数を持つことができません。\",\"swap-local-global/cant-convert-to-local\":\"複数のスプライトで使われているため変更できません: {sprites}\",\"swap-local-global/cant-convert-used-elsewhere\":\"���のスプライトで使用されているため変更できません: {sprite}\",\"swap-local-global/edit\":\"属性を編集:\",\"swap-local-global/edit-list-header\":\"リストを編集\",\"swap-local-global/edit-list-option\":\"リストを改名・編集\",\"swap-local-global/edit-variable-header\":\"変数を編集\",\"swap-local-global/edit-variable-option\":\"変数を改名・編集\",\"swap-local-global/to-global\":\"「すべてのスプライト用」にする\",\"swap-local-global/to-local\":\"「このスプライトのみ」にする\",\"hide-stage/hide-stage\":\"ステージを隠す\"}");
11
 
12
  /***/ })
13
 
 
4
  /*!****************************************!*\
5
  !*** ./src/addons/addons-l10n/ja.json ***!
6
  \****************************************/
7
+ /*! exports provided: editor-devtools/clean-plus, editor-devtools/copy-all, editor-devtools/copy-block, editor-devtools/cut-block, editor-devtools/lists, editor-devtools/make-space, editor-devtools/orphaned, editor-devtools/paste, editor-devtools/replace, editor-devtools/swap, editor-devtools/unused-list, editor-devtools/unused-var, editor-devtools/var-not-exist, editor-devtools/variables, find-bar/complex-broadcast, find-bar/find-placeholder, middle-click-popup/start-typing, editor-searchable-dropdowns/createBroadcast, editor-searchable-dropdowns/createGlobalList, editor-searchable-dropdowns/createGlobalVariable, editor-searchable-dropdowns/createLocalList, editor-searchable-dropdowns/createLocalVariable, data-category-tweaks-v2/for-all-sprites, data-category-tweaks-v2/for-this-sprite-only, data-category-tweaks-v2/list-category, hide-flyout/lock, hide-flyout/unlock, mediarecorder/cancel, mediarecorder/record, mediarecorder/click-flag, mediarecorder/click-flag-description, mediarecorder/option-title, mediarecorder/record-after-flag, mediarecorder/record-audio, mediarecorder/record-audio-description, mediarecorder/record-description, mediarecorder/record-duration, mediarecorder/record-mic, mediarecorder/record-until-stop, mediarecorder/record-until-stop-disabled, mediarecorder/start, mediarecorder/start-delay, mediarecorder/starting-in, mediarecorder/stop, mediarecorder/record-entire-screen, mediarecorder/error-entire-screen, debugger/block-breakpoint, debugger/block-error, debugger/block-log, debugger/block-warn, debugger/cannot-pause-player, debugger/clear, debugger/clone-of, debugger/close, debugger/console, debugger/debug, debugger/empty-string, debugger/enter-format, debugger/export, debugger/export-desc, debugger/icon-error, debugger/icon-warn, debugger/log-msg-broadcasted, debugger/log-msg-clone-cap, debugger/log-msg-clone-created, debugger/log-msg-flag-clicked, debugger/no-logs, debugger/no-threads-running, debugger/step, debugger/step-desc, debugger/tab-logs, debugger/tab-threads, debugger/thread, debugger/unknown-sprite, debugger/unpause, pause/pause, clones/clones, color-picker/hex, remove-sprite-confirm/confirm, block-count/blocks, onion-skinning/behind, onion-skinning/front, onion-skinning/layering, onion-skinning/merge, onion-skinning/mode, onion-skinning/next, onion-skinning/opacity, onion-skinning/opacityStep, onion-skinning/previous, onion-skinning/settings, onion-skinning/tint, onion-skinning/toggle, paint-snap/boxCenter, paint-snap/boxCorners, paint-snap/boxEdgeMids, paint-snap/objectCenters, paint-snap/objectCorners, paint-snap/objectEdges, paint-snap/objectMidlines, paint-snap/off, paint-snap/on, paint-snap/pageAxes, paint-snap/pageCenter, paint-snap/pageCorners, paint-snap/pageEdges, paint-snap/settings, paint-snap/snapFrom, paint-snap/snapTo, paint-snap/threshold, paint-snap/toggle, 2d-color-picker/shade, better-img-uploads/upload, variable-manager/for-all-sprites, variable-manager/for-this-sprite, variable-manager/search, variable-manager/too-big, variable-manager/variables, search-sprites/placeholder, sprite-properties/close-properties-panel-tooltip, sprite-properties/open-properties-panel-tooltip, gamepad/axes-a-b, gamepad/axis-arrows, gamepad/axis-cursor, gamepad/axis-custom, gamepad/axis-none, gamepad/browser-support, gamepad/button-n, gamepad/clear, gamepad/config-header, gamepad/key-click, gamepad/key-down, gamepad/key-left, gamepad/key-none, gamepad/key-right, gamepad/key-space, gamepad/key-up, gamepad/keyinput-title, gamepad/no-controllers, gamepad/reset, gamepad/settings, gamepad/store-in-project, folders/add-to-folder, folders/closed-folder, folders/confirm-backpack-folder, folders/create-folder, folders/name-not-allowed, folders/name-prompt, folders/name-prompt-title, folders/open-folder, folders/remove-folder, folders/remove-from-folder, folders/rename-folder, folders/rename-folder-prompt, folders/rename-folder-prompt-title, block-switching/control_forever, block-switching/control_if, block-switching/control_if_else, block-switching/control_repeat_until, block-switching/control_wait_until, block-switching/data_changevariableby, block-switching/data_deletealloflist, block-switching/data_deleteoflist, block-switching/data_hidelist, block-switching/data_hidevariable, block-switching/data_insertatlist, block-switching/data_replaceitemoflist, block-switching/data_setvariableto, block-switching/data_showlist, block-switching/data_showvariable, block-switching/debugger_error, block-switching/debugger_log, block-switching/debugger_warn, block-switching/event_broadcast, block-switching/event_broadcastandwait, block-switching/looks_backdropnumbername, block-switching/looks_changeeffectby, block-switching/looks_changesizeby, block-switching/looks_costumenumbername, block-switching/looks_goforwardbackwardlayers, block-switching/looks_gotofrontback, block-switching/looks_hide, block-switching/looks_nextbackdrop, block-switching/looks_nextcostume, block-switching/looks_say, block-switching/looks_sayforsecs, block-switching/looks_seteffectto, block-switching/looks_setsizeto, block-switching/looks_show, block-switching/looks_switchbackdropto, block-switching/looks_switchbackdroptoandwait, block-switching/looks_think, block-switching/looks_thinkforsecs, block-switching/motion_changexby, block-switching/motion_changeyby, block-switching/motion_setx, block-switching/motion_sety, block-switching/motion_changebyxy, block-switching/motion_gotoxy, block-switching/motion_turnleft, block-switching/motion_turnright, block-switching/motion_xposition, block-switching/motion_yposition, block-switching/music_changeTempo, block-switching/music_setTempo, block-switching/operator_and, block-switching/operator_mod, block-switching/operator_or, block-switching/pen_changePenColorParamBy, block-switching/pen_changePenHueBy, block-switching/pen_changePenShadeBy, block-switching/pen_changePenSizeBy, block-switching/pen_penDown, block-switching/pen_penUp, block-switching/pen_setPenColorParamTo, block-switching/pen_setPenHueToNumber, block-switching/pen_setPenShadeToNumber, block-switching/pen_setPenSizeTo, block-switching/sensing_coloristouchingcolor, block-switching/sensing_mousex, block-switching/sensing_mousey, block-switching/sensing_touchingcolor, block-switching/sound_changeeffectby, block-switching/sound_changevolumeby, block-switching/sound_play, block-switching/sound_playuntildone, block-switching/sound_seteffectto, block-switching/sound_setvolumeto, blocks2image/error_blocks_not_added, blocks2image/export_all_to_PNG, blocks2image/export_all_to_SVG, blocks2image/export_selected_to_PNG, blocks2image/export_selected_to_SVG, editor-extra-keys/enter-key, move-to-top-bottom/bottom, move-to-top-bottom/top, swap-local-global/cant-convert-cloud, swap-local-global/cant-convert-conflict, swap-local-global/cant-convert-stage, swap-local-global/cant-convert-to-local, swap-local-global/cant-convert-used-elsewhere, swap-local-global/edit, swap-local-global/edit-list-header, swap-local-global/edit-list-option, swap-local-global/edit-variable-header, swap-local-global/edit-variable-option, swap-local-global/to-global, swap-local-global/to-local, hide-stage/hide-stage, mediarecorder/Recordtheentirescreen, default */
8
  /***/ (function(module) {
9
 
10
+ module.exports = JSON.parse("{\"editor-devtools/clean-plus\":\"きれいにする +\",\"editor-devtools/copy-all\":\"すべてコピー\",\"editor-devtools/copy-block\":\"ブロックをコピー\",\"editor-devtools/cut-block\":\"ブロックを切り取り\",\"editor-devtools/lists\":\"リスト\",\"editor-devtools/make-space\":\"スペースを確保\",\"editor-devtools/orphaned\":\"{count, plural, other {開発者ツール: 未使用の値ブロックを # 個見つけました。削除しますか?} }\",\"editor-devtools/paste\":\"貼り付け\",\"editor-devtools/replace\":\"開発者ツール: このスプライト内の変数{name}をすべて置き換える:\",\"editor-devtools/swap\":\"スプライト内の{var}を一括切り替え\",\"editor-devtools/unused-list\":\"{count, plural, other {開発者ツール: 未使用のこのスプライトのみのリストを # 個見つけました。削除しますか? 以下が一覧です:\\n} }\",\"editor-devtools/unused-var\":\"{count, plural, other {開発者ツール: 未使用のこのスプライトのみの変数を # 個見つけました。削除しますか? 以下が一覧です:\\n} }\",\"editor-devtools/var-not-exist\":\"その変数は存在しません。\",\"editor-devtools/variables\":\"変数\",\"find-bar/complex-broadcast\":\"(式)\",\"find-bar/find-placeholder\":\"検索 (Ctrl+F)\",\"middle-click-popup/start-typing\":\"入力する...\",\"editor-searchable-dropdowns/createBroadcast\":\"メッセージ「{name}」を作成\",\"editor-searchable-dropdowns/createGlobalList\":\"すべてのスプライト用のリスト「{name}」を作成\",\"editor-searchable-dropdowns/createGlobalVariable\":\"すべてのスプライト用の変数「{name}」を作成\",\"editor-searchable-dropdowns/createLocalList\":\"このスプライトのみのリスト「{name}」を作成\",\"editor-searchable-dropdowns/createLocalVariable\":\"このスプライトのみの変数「{name}」を作成\",\"data-category-tweaks-v2/for-all-sprites\":\"すべてのスプライト用:\",\"data-category-tweaks-v2/for-this-sprite-only\":\"このスプライトのみ:\",\"data-category-tweaks-v2/list-category\":\"リスト\",\"hide-flyout/lock\":\"パレットをロック\",\"hide-flyout/unlock\":\"パレットをロック解除\",\"mediarecorder/cancel\":\"キャンセル\",\"mediarecorder/record\":\"録画\",\"mediarecorder/click-flag\":\"待機中...\",\"mediarecorder/click-flag-description\":\"緑の旗を押して録画を開始してください。このボタンを押すと録画を中止できます。\",\"mediarecorder/option-title\":\"録画のオプション\",\"mediarecorder/record-after-flag\":\"緑の旗を押して録画を開始する\",\"mediarecorder/record-audio\":\"プロジェクトを録音する\",\"mediarecorder/record-audio-description\":\"音声合成は含まれません。\",\"mediarecorder/record-description\":\"ステージをMP4またはWebMファイルとして録画します。録画終了後、コンピューターに保存できます。\\n注: 変数モニターとリストモニターは表示されません。\",\"mediarecorder/record-duration\":\"録画時間 (秒)\",\"mediarecorder/record-mic\":\"マイクの音を録音する\",\"mediarecorder/record-until-stop\":\"プロジェクトの停止後に録画も停止する\",\"mediarecorder/record-until-stop-disabled\":\"このオプションを有効化するには、「{afterFlagOption}」を先に有効化してください。\",\"mediarecorder/start\":\"録画開始\",\"mediarecorder/start-delay\":\"待ち時間 (秒)\",\"mediarecorder/starting-in\":\"{secs}秒後に開始...\",\"mediarecorder/stop\":\"録画を停止\",\"mediarecorder/record-entire-screen\":\"画面全体を録画する\",\"mediarecorder/error-entire-screen\":\"画面全体を録画しようとしてエラーが発生しました\",\"debugger/block-breakpoint\":\"ブレークポイント\",\"debugger/block-error\":\"エラー%sを記録\",\"debugger/block-log\":\"%sをログに記録\",\"debugger/block-warn\":\"警告%sを記録\",\"debugger/cannot-pause-player\":\"ブレークポイントブロックは、エディター内のみで利用できます。\",\"debugger/clear\":\"消す\",\"debugger/clone-of\":\"{sprite}のクローン\",\"debugger/close\":\"閉じる\",\"debugger/console\":\"ログ\",\"debugger/debug\":\"デバッグ\",\"debugger/empty-string\":\"(空文字列)\",\"debugger/enter-format\":\"出力方式を入力:\",\"debugger/export\":\"書き出し\",\"debugger/export-desc\":\"Shiftキーを押しながらクリックして出力方式を指定できます。\",\"debugger/icon-error\":\"エラー\",\"debugger/icon-warn\":\"警告\",\"debugger/log-msg-broadcasted\":\"メッセージ「{broadcast}」を送りました。\",\"debugger/log-msg-clone-cap\":\"「{sprite}」のクローンに失敗しました: クローンは合計300個までしか作成できません。\",\"debugger/log-msg-clone-created\":\"「{sprite}」をクローンしました。\",\"debugger/log-msg-flag-clicked\":\"緑の旗が押されました。\",\"debugger/no-logs\":\"表示する内容がありません。\",\"debugger/no-threads-running\":\"実行中のスレッドはありません。\",\"debugger/step\":\"次に進む\",\"debugger/step-desc\":\"ブロックを一つずつ実行する。\",\"debugger/tab-logs\":\"ログ\",\"debugger/tab-threads\":\"スレッド\",\"debugger/thread\":\"スレッド {id}\",\"debugger/unknown-sprite\":\"(不明なスプライト)\",\"debugger/unpause\":\"再開\",\"pause/pause\":\"一時停止\",\"clones/clones\":\"クローン: {cloneCount}\",\"color-picker/hex\":\"16進数カラーコード\",\"remove-sprite-confirm/confirm\":\"スプライトを削除したいですか?\",\"block-count/blocks\":\"{num, plural, other {# ブロック}}\",\"onion-skinning/behind\":\"後ろ\",\"onion-skinning/front\":\"前\",\"onion-skinning/layering\":\"レイヤー\",\"onion-skinning/merge\":\"マージ\",\"onion-skinning/mode\":\"モード\",\"onion-skinning/next\":\"次のコスチューム\",\"onion-skinning/opacity\":\"透明度 (%)\",\"onion-skinning/opacityStep\":\"透明度の変化の割合 (%)\",\"onion-skinning/previous\":\"前のコスチューム\",\"onion-skinning/settings\":\"半透明エディターの設定\",\"onion-skinning/tint\":\"色合い\",\"onion-skinning/toggle\":\"半透明にする\",\"paint-snap/boxCenter\":\"選択したオブジェクトの中央\",\"paint-snap/boxCorners\":\"選択したオブジェクトの角\",\"paint-snap/boxEdgeMids\":\"選択したオブジェクトの中点\",\"paint-snap/objectCenters\":\"オブジェクトの中央\",\"paint-snap/objectCorners\":\"オブジェクトの角\",\"paint-snap/objectEdges\":\"オブジェクトの端\",\"paint-snap/objectMidlines\":\"オブジェクトの中央線\",\"paint-snap/off\":\"オフ\",\"paint-snap/on\":\"オン\",\"paint-snap/pageAxes\":\"ページの座標軸\",\"paint-snap/pageCenter\":\"ページの中央\",\"paint-snap/pageCorners\":\"ページの角\",\"paint-snap/pageEdges\":\"ページの端\",\"paint-snap/settings\":\"スナップ設定\",\"paint-snap/snapFrom\":\"スナップ元:\",\"paint-snap/snapTo\":\"スナップ先:\",\"paint-snap/threshold\":\"スナップ距離\",\"paint-snap/toggle\":\"スナップを有効化\",\"2d-color-picker/shade\":\"濃さ\",\"better-img-uploads/upload\":\"HD アップロード\",\"variable-manager/for-all-sprites\":\"すべてのスプライト用の変数\",\"variable-manager/for-this-sprite\":\"このスプライトの変数\",\"variable-manager/search\":\"検索\",\"variable-manager/too-big\":\"クリックして非常に大きな値を表示\",\"variable-manager/variables\":\"変数\",\"search-sprites/placeholder\":\"スプライトを検索...\",\"sprite-properties/close-properties-panel-tooltip\":\"プロパティ―パネルを閉じる\",\"sprite-properties/open-properties-panel-tooltip\":\"プロパティ―パネルを開く\",\"gamepad/axes-a-b\":\"軸 {a} と {b}\",\"gamepad/axis-arrows\":\"矢印キー\",\"gamepad/axis-cursor\":\"カーソル\",\"gamepad/axis-custom\":\"カスタム\",\"gamepad/axis-none\":\"なし\",\"gamepad/browser-support\":\"このブラウザーとOSではアドオンは正常に動作しません。他のブラウザーの利用をおすすめします。\",\"gamepad/button-n\":\"ボタン{n}\",\"gamepad/clear\":\"コントロールを全解除\",\"gamepad/config-header\":\"以下のコメントには、https://turbowarp.org/ などの外部のツールやウェブサイトで利用されるゲームパッド設定が保存されています。\\n編集しないこと。\",\"gamepad/key-click\":\"クリック\",\"gamepad/key-down\":\"下\",\"gamepad/key-left\":\"左\",\"gamepad/key-none\":\"(なし)\",\"gamepad/key-right\":\"右\",\"gamepad/key-space\":\"スペース\",\"gamepad/key-up\":\"上\",\"gamepad/keyinput-title\":\"キーを押してボタンが変更できます。Escキーでキャンセルできます。BackspaceまたはDeleteキーで削除できます。\",\"gamepad/no-controllers\":\"コントローラーが接続されていません。接続して、ボタンを押してください。\",\"gamepad/reset\":\"プロジェクトの既定にリセット\",\"gamepad/settings\":\"ゲームパッド設定\",\"gamepad/store-in-project\":\"プロジェクトに初期設定を保存する (プロジェクト作成者のための実験的機能)\",\"folders/add-to-folder\":\"フォルダー {folder} に追加\",\"folders/closed-folder\":\"フォルダー\",\"folders/confirm-backpack-folder\":\"フォルダーをバックパックしますか?\",\"folders/create-folder\":\"フォルダーを作成\",\"folders/name-not-allowed\":\"フォルダー名は無効です\",\"folders/name-prompt\":\"フォルダー名:\",\"folders/name-prompt-title\":\"フォルダーを作成\",\"folders/open-folder\":\"表示中\",\"folders/remove-folder\":\"フォルダーを削除\",\"folders/remove-from-folder\":\"フォルダーから出す\",\"folders/rename-folder\":\"フォルダーを改名\",\"folders/rename-folder-prompt\":\"フォルダーの改名先:\",\"folders/rename-folder-prompt-title\":\"フォルダーを改名\",\"block-switching/control_forever\":\"ずっと\",\"block-switching/control_if\":\"もし\",\"block-switching/control_if_else\":\"もし... でなければ\",\"block-switching/control_repeat_until\":\"...回繰り返す\",\"block-switching/control_wait_until\":\"...まで待つ\",\"block-switching/data_changevariableby\":\"変数を...ずつ変える\",\"block-switching/data_deletealloflist\":\"全て削除\",\"block-switching/data_deleteoflist\":\"アイテムを削除\",\"block-switching/data_hidelist\":\"リスト...を隠す\",\"block-switching/data_hidevariable\":\"変数...を隠す\",\"block-switching/data_insertatlist\":\"挿入する\",\"block-switching/data_replaceitemoflist\":\"置き換える\",\"block-switching/data_setvariableto\":\"変数を...にする\",\"block-switching/data_showlist\":\"リスト...を表示する\",\"block-switching/data_showvariable\":\"変数...を表示する\",\"block-switching/debugger_error\":\"エラー\",\"block-switching/debugger_log\":\"ログ\",\"block-switching/debugger_warn\":\"警告\",\"block-switching/event_broadcast\":\"...を送る\",\"block-switching/event_broadcastandwait\":\"...を送って待つ\",\"block-switching/looks_backdropnumbername\":\"背景の番号・名前\",\"block-switching/looks_changeeffectby\":\"画像効果を...ずつ変える\",\"block-switching/looks_changesizeby\":\"大きさを...ずつ変える\",\"block-switching/looks_costumenumbername\":\"コスチュームの番号・名前\",\"block-switching/looks_goforwardbackwardlayers\":\"前方または後方のレイヤーに移動する\",\"block-switching/looks_gotofrontback\":\"前方または後方のレイヤーに移動する\",\"block-switching/looks_hide\":\"隠す\",\"block-switching/looks_nextbackdrop\":\"次の背景\",\"block-switching/looks_nextcostume\":\"次のコスチューム\",\"block-switching/looks_say\":\"~と言う\",\"block-switching/looks_sayforsecs\":\"~と~秒言う\",\"block-switching/looks_seteffectto\":\"画像効果を...にする\",\"block-switching/looks_setsizeto\":\"大きさを...%にする\",\"block-switching/looks_show\":\"表示する\",\"block-switching/looks_switchbackdropto\":\"背景を~にする\",\"block-switching/looks_switchbackdroptoandwait\":\"背景を~にして待つ\",\"block-switching/looks_think\":\"~と考える\",\"block-switching/looks_thinkforsecs\":\"~と~秒考える\",\"block-switching/motion_changexby\":\"x座標を...ずつ変える\",\"block-switching/motion_changeyby\":\"y座標を...ずつ変える\",\"block-switching/motion_setx\":\"x座標を...にする\",\"block-switching/motion_sety\":\"y座標を...にする\",\"block-switching/motion_changebyxy\":\"x y づつ変える\",\"block-switching/motion_gotoxy\":\"x y に行く\",\"block-switching/motion_turnleft\":\"左回転\",\"block-switching/motion_turnright\":\"右回転\",\"block-switching/motion_xposition\":\"x座標\",\"block-switching/motion_yposition\":\"y座標\",\"block-switching/music_changeTempo\":\"テンポを~ずつ変える\",\"block-switching/music_setTempo\":\"テンポを~にする\",\"block-switching/operator_and\":\"かつ\",\"block-switching/operator_mod\":\"余り\",\"block-switching/operator_or\":\"または\",\"block-switching/pen_changePenColorParamBy\":\"ペンの...を...ずつ変える\",\"block-switching/pen_changePenHueBy\":\"ペンの色を...ずつ変える\",\"block-switching/pen_changePenShadeBy\":\"ペンの濃さを...ずつ変える\",\"block-switching/pen_changePenSizeBy\":\"ペンの太さを...ずつ変える\",\"block-switching/pen_penDown\":\"ペンを下ろす\",\"block-switching/pen_penUp\":\"ペンを上げる\",\"block-switching/pen_setPenColorParamTo\":\"ペンの...を...にする\",\"block-switching/pen_setPenHueToNumber\":\"ペンの色を...にする\",\"block-switching/pen_setPenShadeToNumber\":\"ペンの濃さを...にする\",\"block-switching/pen_setPenSizeTo\":\"ペンの太さを...にする\",\"block-switching/sensing_coloristouchingcolor\":\"color が color に触れた\",\"block-switching/sensing_mousex\":\"マウスのx座標\",\"block-switching/sensing_mousey\":\"マウスのy座標\",\"block-switching/sensing_touchingcolor\":\"触れている色\",\"block-switching/sound_changeeffectby\":\"音の効果を...ずつ変える\",\"block-switching/sound_changevolumeby\":\"音量を...ずつ変える\",\"block-switching/sound_play\":\"...の音を鳴らす\",\"block-switching/sound_playuntildone\":\"終わるまで...の音を鳴らす\",\"block-switching/sound_seteffectto\":\"音の効果を...にする\",\"block-switching/sound_setvolumeto\":\"音量を...%にする\",\"blocks2image/error_blocks_not_added\":\"ブロックを追加してください。\",\"blocks2image/export_all_to_PNG\":\"すべてをPNGとして出力\",\"blocks2image/export_all_to_SVG\":\"すべてをSVGとして出力\",\"blocks2image/export_selected_to_PNG\":\"ブロックをPNGとして出力\",\"blocks2image/export_selected_to_SVG\":\"ブロックをSVGとして出力\",\"editor-extra-keys/enter-key\":\"Enter\",\"move-to-top-bottom/bottom\":\"一番下に移動\",\"move-to-top-bottom/top\":\"一番上に移動\",\"swap-local-global/cant-convert-cloud\":\"クラウド変数を「このスプライトのみ」に設定することはできません。\",\"swap-local-global/cant-convert-conflict\":\"他のスプライトで名前が衝突するため変更できません: {sprites}\",\"swap-local-global/cant-convert-stage\":\"ステージは「このスプライトのみ」変数を持つことができません。\",\"swap-local-global/cant-convert-to-local\":\"複数のスプライトで使われているため変更できません: {sprites}\",\"swap-local-global/cant-convert-used-elsewhere\":\"他のスプライトで使用されているため変更できません: {sprite}\",\"swap-local-global/edit\":\"属性を編集:\",\"swap-local-global/edit-list-header\":\"リストを編集\",\"swap-local-global/edit-list-option\":\"リストを改名・編集\",\"swap-local-global/edit-variable-header\":\"変数を編集\",\"swap-local-global/edit-variable-option\":\"変数を改名・編集\",\"swap-local-global/to-global\":\"「すべてのスプライト用」にする\",\"swap-local-global/to-local\":\"「このスプライトのみ」にする\",\"hide-stage/hide-stage\":\"ステージを隠す\",\"mediarecorder/Recordtheentirescreen\":\"画面全体を録画する\"}");
11
 
12
  /***/ })
13
 
js/addon-settings.js CHANGED
@@ -149,7 +149,7 @@ var GUI =
149
  /******/
150
  /******/
151
  /******/ // add entry module to deferred list
152
- /******/ deferredModules.push(["./src/playground/addon-settings.jsx","vendors~addon-settings~credits~editor~embed~fullscreen~player~playground","vendors~addon-settings~credits~editor~embed~fullscreen~playground","addon-settings~addons~editor~fullscreen~player~playground"]);
153
  /******/ // run deferred modules when ready
154
  /******/ return checkDeferredModules();
155
  /******/ })
@@ -231,7 +231,7 @@ exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loa
231
 
232
 
233
  // module
234
- exports.push([module.i, "/**\n * Copyright (C) 2021 Thomas Weber\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License version 3 as\n * published by the Free Software Foundation.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <https://www.gnu.org/licenses/>.\n */\n\n/*基本色(#6f00ffを基調)*/\n\n/* #F0E5FF */\n\n/* #F3E9FC */\n\n/* #E7D9F2 */\n\n/* #B366FF with 90% opacity */\n\n/* #FFFFFF */\n\n/* 75% */\n\n/* 25% */\n\n/* 0% */\n\n/* 15% black */\n\n/* 渋めの紫文字色 */\n\n/* #6f00ff */\n\n/* #5c00cc */\n\n/* #6f00ff 35% */\n\n/* #5c00cc 15% */\n\n/* opt-in theme overrides */\n\n/* ダークモードのトップバー色 */\n\n/* #6f00ff */\n\n/* #5c00cc */\n\n/* #9966ff */\n\n/* #8040ff */\n\n/* #9966ff 代替コントロール色 */\n\n/* #8a33ff */\n\n/* #5900b8 */\n\n/* #5900b8 25% */\n\n/* #8a33ff */\n\n/* #b380ff */\n\n/* #8a33ff 25% */\n\n/* #d1a6ff より明るい紫 */\n\nbody {\n background-color: white;\n color: black;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n margin: 0;\n}\n\nbody[theme=\"dark\"] {\n background-color: #222222;\n color: white;\n color-scheme: dark;\n}\n\na[href] {\n color: #2a67eb;\n text-decoration: underline;\n}\n\n[theme=\"dark\"] a[href] {\n color: #6d9bff;\n}\n\na:active, a:focus {\n outline: none;\n box-shadow: 0 0 0 3px hsla(266, 100%, 50%, 0.35);\n}\n\n.settings_container_1qNQ3 {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.settings_section_31t4Q {\n max-width: 1280px;\n margin: auto;\n}\n\n.settings_header_Y9USz {\n position: relative;\n padding: 8px 20px;\n background-color: #fcfcfc;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n}\n\n[theme=\"dark\"] .settings_header_Y9USz {\n background-color: #222222;\n}\n\n@media (max-width: 700px) {\n .settings_header_Y9USz {\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n.settings_header_Y9USz .settings_section_31t4Q {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.settings_button_2ovv0 {\n color: #000;\n background: #efefef;\n border: 1px solid #acacac;\n padding: 8px 12px;\n border-radius: 4px;\n outline: none;\n height: 32px;\n font-family: inherit;\n font-size: 14px;\n transition: 0.25s ease;\n transition-property: background;\n display: flex;\n align-items: center;\n}\n\n[theme=\"dark\"] .settings_button_2ovv0 {\n color: #fff;\n background: #222222;\n border-color: #000;\n}\n\n.settings_button_2ovv0:hover {\n background: #aaaaaa;\n}\n\n[theme=\"dark\"] .settings_button_2ovv0:hover {\n background: #151515;\n}\n\n.settings_button_2ovv0:active, .settings_button_2ovv0:focus-within {\n box-shadow: 0 0 0 3px hsla(266, 100%, 50%, 0.35);\n}\n\n.settings_search-container_24OhB {\n display: flex;\n background-color: #f0f0f0;\n color: #222;\n border: 1px solid #cecece;\n border-radius: 4px;\n}\n\n.settings_search-container_24OhB:focus-within {\n box-shadow: 0 0 0 3px hsla(266, 100%, 50%, 0.35);\n}\n\n.settings_search-input_9LNCl {\n color: inherit;\n width: 150px;\n height: 16px;\n padding: 10px 0 10px 15px;\n border: none;\n outline: none;\n background-color: transparent;\n font-size: 14px;\n}\n\n/* legacy edge */\n\n.settings_search-input_9LNCl::-ms-clear {\n display: none;\n}\n\n.settings_search-button_LceHy {\n height: 36px;\n width: 36px;\n border: none;\n outline: none;\n cursor: pointer;\n background-color: transparent;\n background-image: url(" + escape(__webpack_require__(/*! ./icons/search.svg */ "./src/addons/settings/icons/search.svg")) + ");\n background-repeat: no-repeat;\n background-position: center;\n}\n\n[theme=\"dark\"] .settings_search-container_24OhB {\n color: white;\n background-color: #111111;\n border-color: #222222;\n}\n\n.settings_search-input_9LNCl:not([value=\"\"]) ~ .settings_search-button_LceHy {\n background-image: url(" + escape(__webpack_require__(/*! ./icons/clear.svg */ "./src/addons/settings/icons/clear.svg")) + ") !important;\n}\n\n.settings_feedback-button-outer_3RXeq {\n background: #f0f0f0;\n border: 1px solid #cecece;\n color: #333 !important;\n height: 36px;\n box-sizing: border-box;\n border-radius: 4px;\n padding: 0 12px;\n margin-left: 10px;\n font-size: 12px;\n outline: none;\n display: flex;\n align-items: center;\n text-decoration: none !important;\n}\n\n[theme=\"dark\"] .settings_feedback-button-outer_3RXeq {\n background-color: white;\n border-color: white;\n}\n\n.settings_feedback-button-outer_3RXeq:active, .settings_feedback-button-outer_3RXeq:focus-within {\n box-shadow: 0 0 0 3px hsla(266, 100%, 50%, 0.35);\n}\n\n.settings_feedback-button-inner_2h_ch {\n text-decoration: none;\n font-weight: bold;\n text-align: center;\n}\n\n[theme=\"dark\"] .settings_search-button_LceHy,\n[theme=\"dark\"] .settings_addon-group-expand_1G6_X,\n[theme=\"dark\"] .settings_extension-image_1HlEn,\n[theme=\"dark\"] .settings_reset-button_1onc- img,\n[theme=\"dark\"] .settings_reset-setting-button_-WLwd img {\n filter: invert(100%);\n}\n\n.settings_addons_2LLFF {\n overflow-y: auto;\n overflow-x: hidden;\n padding: 10px 20px;\n height: 100%;\n}\n\n@media (max-width: 700px) {\n .settings_addons_2LLFF {\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n.settings_addon-group_3d-ZB {\n margin: 0 0 10px 0;\n}\n\n.settings_addon-group-name_1h56B {\n background: none;\n border: none;\n width: 100%;\n display: flex;\n align-items: center;\n}\n\n.settings_addon-group-name_1h56B::after {\n margin-left: 16px;\n content: '';\n border-top: 1px solid #cfcfcf;\n width: 100px;\n flex: 1;\n}\n\n[theme=\"dark\"] .settings_addon-group-name_1h56B::after {\n border-color: #333;\n}\n\n.settings_addon-group-expand_1G6_X {\n width: 24px;\n height: 24px;\n margin-right: 8px;\n border-radius: 5px;\n}\n\n.settings_addon-group-expand_1G6_X[data-open=\"true\"] {\n transform: scaleY(-1);\n}\n\n.settings_addon-group-name_1h56B:hover .settings_addon-group-expand_1G6_X {\n background: #ccc;\n}\n\n.settings_addon_3Oi_z {\n background: #f7f7f7;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n border: 1px solid #cfcfcf;\n border-radius: 5px;\n margin: 10px 0 10px 0;\n font-size: 14px;\n}\n\n.settings_addon-dirty_2o20T {\n background: #ffeedf;\n}\n\n[theme=\"dark\"] .settings_addon_3Oi_z {\n background-color: #2a2a2a;\n border-color: #333;\n}\n\n[theme=\"dark\"] .settings_addon-dirty_2o20T {\n background: rgb(39, 50, 53);\n}\n\n.settings_addon-header_271wJ {\n padding: 0 10px;\n height: 50px;\n display: flex;\n align-items: center;\n}\n\n.settings_extension-image_1HlEn {\n height: 16px;\n width: 16px;\n margin-right: 8px;\n}\n\n.settings_addon-title_6MhRl {\n cursor: pointer;\n display: flex;\n align-items: center;\n white-space: nowrap;\n}\n\n.settings_addon-switch_2bf3g {\n margin-right: 8px;\n}\n\n.settings_addon-title-text_3QjlP {\n\n}\n\n.settings_addon-id_2EeZw {\n margin-left: 10px;\n}\n\n.settings_inline-description_SovV9 {\n margin-left: 10px;\n color: gray;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.settings_addon-operations_28nBd {\n margin-left: auto;\n padding-left: 4px;\n display: flex;\n align-items: center;\n}\n\n.settings_reset-button_1onc- {\n display: flex;\n border-radius: 4px;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n\n.settings_reset-button_1onc-:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.settings_reset-button_1onc-:active, .settings_reset-button_1onc-:focus-within {\n outline: none;\n box-shadow: 0 0 0 3px hsla(266, 100%, 50%, 0.35);\n}\n\n.settings_reset-button-image_2Tgqe {\n padding: 1px 0;\n height: 16px;\n width: 16px;\n}\n\n[theme=\"dark\"] .settings_reset-button_1onc-:hover {\n background: rgba(255, 255, 255, 0.05);\n}\n\n.settings_switch_2V1f5 {\n display: block;\n background: #111;\n width: 40px;\n height: 20px;\n border: none;\n border-radius: 10px;\n position: relative;\n cursor: pointer;\n transition: 0.25s ease;\n transition-property: background;\n}\n\n.settings_switch_2V1f5[state=\"on\"] {\n background: hsla(266, 100%, 50%, 1);\n}\n\n.settings_switch_2V1f5::before {\n content: \"\";\n position: absolute;\n display: block;\n width: 10px;\n height: 10px;\n background: #fff;\n border-radius: 5px;\n top: 5px;\n left: 5px;\n transition: 0.25s ease;\n transition-property: background, left;\n}\n\n[theme=\"dark\"] .settings_switch_2V1f5::before {\n background: #aaa;\n}\n\n.settings_switch_2V1f5[state=\"on\"]::before {\n background: #fff;\n left: 25px;\n}\n\n.settings_switch_2V1f5:active, .settings_switch_2V1f5:focus-within {\n outline: none;\n box-shadow: 0 0 0 3px hsla(266, 100%, 50%, 0.35);\n}\n\n.settings_tag-container_3yFc4 {\n display: flex;\n align-items: center;\n}\n\n.settings_tag_1c-GO {\n border-radius: 4px;\n padding: 2px 5px;\n margin-left: 10px;\n border-bottom: 2px solid #111;\n white-space: nowrap;\n}\n\n.settings_tag-recommended_2k7Kt {\n color: white;\n background-color: #175ef8;\n border-color: #0e44b8;\n}\n\n.settings_tag-theme_PbNiB {\n color: black;\n background-color: #9ad4cf;\n border-color: #628f8c;\n}\n\n.settings_tag-beta_26ywj {\n color: white;\n background-color: #fd662b;\n border-color: #d84a12;\n}\n\n.settings_tag-easter-egg_2M8qE {\n color: black;\n background-color: #b9f38d;\n border-color: #8fce5e;\n}\n\n.settings_tag-new_1g9ff {\n color: white;\n background: #b117f8;\n border-color: #6f0073;\n}\n\n.settings_tag-danger_2g6El {\n color: white;\n background: #fd2b2b;\n border-color: #d81212;\n}\n\n@media (max-width: 550px) {\n .settings_tag_1c-GO:not(.settings_tag-beta_26ywj) {\n display: none;\n }\n}\n\n.settings_addon-details_2CKwd {\n padding: 0 20px;\n margin-bottom: 10px;\n color: #111;\n}\n\n[theme=\"dark\"] .settings_addon-details_2CKwd {\n color: #ddd;\n}\n\n.settings_credit-container_2mHq7 {\n\n}\n\n.settings_credit-title_3f-yX {\n padding-right: 5px;\n}\n\n.settings_credit_3grR6 {\n\n}\n\n.settings_description_2MbZo {\n\n}\n\n.settings_notice_2q6Z2 {\n color: black;\n padding: 10px;\n border-radius: 5px;\n font-weight: bold;\n margin: 10px 0;\n display: flex;\n align-items: center;\n background: rgba(154, 212, 207, 0.7);\n}\n\n.settings_notice-icon_2lAT7 {\n height: 16px;\n width: 16px;\n margin-right: 10px;\n}\n\n.settings_setting-container_2BA7o {\n margin-top: 10px;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n}\n\n.settings_setting_2i2j- {\n margin: 10px;\n margin-right: 30px;\n min-height: 35px;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.settings_setting-label_2w3mJ {\n font-weight: bold;\n text-transform: uppercase;\n color: #555;\n font-size: 12px;\n margin-right: 10px;\n}\n\n[theme=\"dark\"] .settings_setting-label_2w3mJ {\n color: #aaa;\n}\n\n.settings_setting_2i2j- input {\n color: #000;\n background: #efefef;\n border: 1px solid #acacac;\n padding: 8px 12px;\n border-radius: 4px;\n transition: 0.25s ease;\n transition-property: background;\n}\n\n[theme=\"dark\"] .settings_setting_2i2j- input {\n color: #fff;\n background: #222222;\n border: 1px solid #000;\n}\n\n.settings_setting_2i2j- input:focus, .settings_setting_2i2j- input:active {\n outline: none;\n border-color: hsla(266, 100%, 50%, 1);\n box-shadow: 0 0 0 3px hsla(266, 100%, 50%, 0.35);\n}\n\n.settings_setting_2i2j- input[type=\"checkbox\"] {\n height: 20px;\n width: 20px;\n padding: 0;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n background-color: white;\n background-size: 20px 20px;\n background-position: center center;\n}\n\n.settings_setting_2i2j- input[type=\"checkbox\"]:checked {\n border-color: hsla(266, 100%, 50%, 1);\n background-color: hsla(266, 100%, 50%, 1);\n background-image: url(" + escape(__webpack_require__(/*! ./icons/check.svg */ "./src/addons/settings/icons/check.svg")) + ");\n}\n\n.settings_setting_2i2j- input[type=\"checkbox\"]:hover:not(:focus) {\n border-color: hsla(266, 100%, 39%, 1);\n}\n\n.settings_setting_2i2j- input[type=\"checkbox\"]:checked:hover {\n border-color: hsla(266, 100%, 39%, 1);\n}\n\n.settings_setting_2i2j- input[type=\"number\"] {\n border-radius: 20px 0 0 20px;\n font-size: 14px;\n width: 75px;\n height: 35px;\n box-sizing: border-box;\n}\n\n.settings_setting_2i2j- input[type=\"color\"] {\n height: 30px;\n width: 100px;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n outline: none;\n border: 1px solid transparent;\n border-radius: 4px 0px 0px 4px;\n}\n\n.settings_reset-setting-button_-WLwd {\n border-radius: 0 4px 4px 0px;\n box-sizing: border-box;\n height: 30px;\n}\n\n.settings_reset-setting-button_-WLwd img {\n width: 20px;\n height: 20px;\n}\n\n.settings_reset-setting-button_-WLwd[data-for-text-input=\"true\"] {\n height: 35px;\n border-radius: 0 20px 20px 0;\n}\n\n.settings_select_sIZno {\n display: flex;\n}\n\n.settings_select-option_32Zqa {\n cursor: pointer;\n padding: 10px;\n margin: 0;\n background: transparent;\n border: none;\n background: #f0f0f0;\n color: #000;\n border: 1px solid #aaa;\n border-right-width: 0;\n transition: 0.25s ease;\n transition-property: color, background, border;\n}\n\n[theme=\"dark\"] .settings_select-option_32Zqa {\n color: #fff;\n background: #222222;\n border-color: #000000;\n}\n\n.settings_select-option_32Zqa:first-child {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n\n.settings_select-option_32Zqa:last-child {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n border-right-width: 1px;\n}\n\n.settings_select-option_32Zqa.settings_selected_38WtW {\n color: white;\n background: hsla(266, 100%, 50%, 1);\n}\n\n.settings_select-option_32Zqa:active, .settings_select-option_32Zqa:focus-within {\n outline: none;\n box-shadow: 0 0 0 3px hsla(266, 100%, 50%, 0.35);\n z-index: 10;\n}\n\n.settings_presets_3zawV {\n width: 100%;\n}\n\n.settings_preset-button_3zYV3 {\n margin-right: 10px;\n}\n\n.settings_footer_jjys0 {\n color: #444;\n}\n\n[theme=\"dark\"] .settings_footer_jjys0 {\n color: #aaa;\n}\n\n.settings_unsupported-container_2vhiH {\n margin-bottom: 10px;\n}\n\n.settings_unsupported-addon_1p57c {\n padding-left: 5px;\n}\n\n.settings_version_2_cDA {\n margin-bottom: 10px;\n cursor: pointer;\n}\n\n.settings_footer-buttons_xTSXH {\n margin-bottom: 10px;\n display: flex;\n}\n\n.settings_footer-buttons_xTSXH > .settings_button_2ovv0 {\n margin-right: 10px;\n}\n\n.settings_reset-all-button_2Q-Zi {\n\n}\n\n.settings_export-button_2PWOM {\n\n}\n\n.settings_import-button_1NMJN {\n\n}\n\n.settings_no-results_3bDSs {\n text-align: center;\n font-style: italic;\n}\n\n.settings_dirty-outer_WmNYy {\n display: flex;\n position: absolute;\n top: calc(100% - 8px);\n left: 0;\n width: calc(100% - 20px);\n margin-left: 10px;\n z-index: 10;\n justify-content: center;\n animation: settings_dirty-appear_2Rcif 0.2s ease;\n pointer-events: none;\n}\n\n.settings_dirty-inner_2tglM {\n padding: 8px;\n background: #ffeedf;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n border: 1px solid #cfcfcf;\n border-radius: 4px;\n pointer-events: auto;\n display: flex;\n align-items: center;\n text-align: center;\n}\n\n[theme=\"dark\"] .settings_dirty-inner_2tglM {\n background: rgb(39, 50, 53);\n border-color: #222;\n}\n\n.settings_dirty-button_2adjE {\n margin-left: 6px;\n}\n\n@keyframes settings_dirty-appear_2Rcif {\n from {\n transform: translateY(-100%);\n }\n to {\n transform: translateY(0);\n }\n}\n", ""]);
235
 
236
  // exports
237
  exports.locals = {
 
149
  /******/
150
  /******/
151
  /******/ // add entry module to deferred list
152
+ /******/ deferredModules.push(["./src/playground/addon-settings.jsx","vendors~addon-settings~credits~editor~embed~fullscreen~player~playground","vendors~addon-settings~credits","addon-settings~addons~editor~fullscreen~player~playground"]);
153
  /******/ // run deferred modules when ready
154
  /******/ return checkDeferredModules();
155
  /******/ })
 
231
 
232
 
233
  // module
234
+ exports.push([module.i, "/**\n * Copyright (C) 2021 Thomas Weber\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License version 3 as\n * published by the Free Software Foundation.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <https://www.gnu.org/licenses/>.\n */\n\n/* 基本色(#625edbを基調) */\n\n/* #F0EFFF */\n\n/* #F3F2FC */\n\n/* #E6E6F7 */\n\n/* #625edb with 90% opacity */\n\n/* #FFFFFF */\n\n/* 75% */\n\n/* 25% */\n\n/* 0% */\n\n/* 15% black */\n\n/* 渋めの青紫文字色 */\n\n/* #625edb */\n\n/* #504db8 */\n\n/* #625edb 35% */\n\n/* #504db8 15% */\n\n/* opt-in theme overrides */\n\n/* ダークモードのトップバー色 */\n\n/* #625edb */\n\n/* #504db8 */\n\n/* #7366e6 */\n\n/* #5a40cc */\n\n/* #6d6dec */\n\n/* #5545d4 */\n\n/* #2f1f80 */\n\n/* 25% */\n\n/* #5545d4 */\n\n/* #8b80f0 */\n\n/* 25% */\n\n/* #625edb */\n\n/* #504db8 */\n\n/* #c6bfff 明るい紫青 */\n\nbody {\n background-color: white;\n color: black;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n margin: 0;\n}\n\nbody[theme=\"dark\"] {\n background-color: #222222;\n color: white;\n color-scheme: dark;\n}\n\na[href] {\n color: #2a67eb;\n text-decoration: underline;\n}\n\n[theme=\"dark\"] a[href] {\n color: #6d9bff;\n}\n\na:active, a:focus {\n outline: none;\n box-shadow: 0 0 0 3px hsla(248, 66%, 62%, 0.35);\n}\n\n.settings_container_1qNQ3 {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.settings_section_31t4Q {\n max-width: 1280px;\n margin: auto;\n}\n\n.settings_header_Y9USz {\n position: relative;\n padding: 8px 20px;\n background-color: #fcfcfc;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n}\n\n[theme=\"dark\"] .settings_header_Y9USz {\n background-color: #222222;\n}\n\n@media (max-width: 700px) {\n .settings_header_Y9USz {\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n.settings_header_Y9USz .settings_section_31t4Q {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.settings_button_2ovv0 {\n color: #000;\n background: #efefef;\n border: 1px solid #acacac;\n padding: 8px 12px;\n border-radius: 4px;\n outline: none;\n height: 32px;\n font-family: inherit;\n font-size: 14px;\n transition: 0.25s ease;\n transition-property: background;\n display: flex;\n align-items: center;\n}\n\n[theme=\"dark\"] .settings_button_2ovv0 {\n color: #fff;\n background: #222222;\n border-color: #000;\n}\n\n.settings_button_2ovv0:hover {\n background: #aaaaaa;\n}\n\n[theme=\"dark\"] .settings_button_2ovv0:hover {\n background: #151515;\n}\n\n.settings_button_2ovv0:active, .settings_button_2ovv0:focus-within {\n box-shadow: 0 0 0 3px hsla(248, 66%, 62%, 0.35);\n}\n\n.settings_search-container_24OhB {\n display: flex;\n background-color: #f0f0f0;\n color: #222;\n border: 1px solid #cecece;\n border-radius: 4px;\n}\n\n.settings_search-container_24OhB:focus-within {\n box-shadow: 0 0 0 3px hsla(248, 66%, 62%, 0.35);\n}\n\n.settings_search-input_9LNCl {\n color: inherit;\n width: 150px;\n height: 16px;\n padding: 10px 0 10px 15px;\n border: none;\n outline: none;\n background-color: transparent;\n font-size: 14px;\n}\n\n/* legacy edge */\n\n.settings_search-input_9LNCl::-ms-clear {\n display: none;\n}\n\n.settings_search-button_LceHy {\n height: 36px;\n width: 36px;\n border: none;\n outline: none;\n cursor: pointer;\n background-color: transparent;\n background-image: url(" + escape(__webpack_require__(/*! ./icons/search.svg */ "./src/addons/settings/icons/search.svg")) + ");\n background-repeat: no-repeat;\n background-position: center;\n}\n\n[theme=\"dark\"] .settings_search-container_24OhB {\n color: white;\n background-color: #111111;\n border-color: #222222;\n}\n\n.settings_search-input_9LNCl:not([value=\"\"]) ~ .settings_search-button_LceHy {\n background-image: url(" + escape(__webpack_require__(/*! ./icons/clear.svg */ "./src/addons/settings/icons/clear.svg")) + ") !important;\n}\n\n.settings_feedback-button-outer_3RXeq {\n background: #f0f0f0;\n border: 1px solid #cecece;\n color: #333 !important;\n height: 36px;\n box-sizing: border-box;\n border-radius: 4px;\n padding: 0 12px;\n margin-left: 10px;\n font-size: 12px;\n outline: none;\n display: flex;\n align-items: center;\n text-decoration: none !important;\n}\n\n[theme=\"dark\"] .settings_feedback-button-outer_3RXeq {\n background-color: white;\n border-color: white;\n}\n\n.settings_feedback-button-outer_3RXeq:active, .settings_feedback-button-outer_3RXeq:focus-within {\n box-shadow: 0 0 0 3px hsla(248, 66%, 62%, 0.35);\n}\n\n.settings_feedback-button-inner_2h_ch {\n text-decoration: none;\n font-weight: bold;\n text-align: center;\n}\n\n[theme=\"dark\"] .settings_search-button_LceHy,\n[theme=\"dark\"] .settings_addon-group-expand_1G6_X,\n[theme=\"dark\"] .settings_extension-image_1HlEn,\n[theme=\"dark\"] .settings_reset-button_1onc- img,\n[theme=\"dark\"] .settings_reset-setting-button_-WLwd img {\n filter: invert(100%);\n}\n\n.settings_addons_2LLFF {\n overflow-y: auto;\n overflow-x: hidden;\n padding: 10px 20px;\n height: 100%;\n}\n\n@media (max-width: 700px) {\n .settings_addons_2LLFF {\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n.settings_addon-group_3d-ZB {\n margin: 0 0 10px 0;\n}\n\n.settings_addon-group-name_1h56B {\n background: none;\n border: none;\n width: 100%;\n display: flex;\n align-items: center;\n}\n\n.settings_addon-group-name_1h56B::after {\n margin-left: 16px;\n content: '';\n border-top: 1px solid #cfcfcf;\n width: 100px;\n flex: 1;\n}\n\n[theme=\"dark\"] .settings_addon-group-name_1h56B::after {\n border-color: #333;\n}\n\n.settings_addon-group-expand_1G6_X {\n width: 24px;\n height: 24px;\n margin-right: 8px;\n border-radius: 5px;\n}\n\n.settings_addon-group-expand_1G6_X[data-open=\"true\"] {\n transform: scaleY(-1);\n}\n\n.settings_addon-group-name_1h56B:hover .settings_addon-group-expand_1G6_X {\n background: #ccc;\n}\n\n.settings_addon_3Oi_z {\n background: #f7f7f7;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n border: 1px solid #cfcfcf;\n border-radius: 5px;\n margin: 10px 0 10px 0;\n font-size: 14px;\n}\n\n.settings_addon-dirty_2o20T {\n background: #ffeedf;\n}\n\n[theme=\"dark\"] .settings_addon_3Oi_z {\n background-color: #2a2a2a;\n border-color: #333;\n}\n\n[theme=\"dark\"] .settings_addon-dirty_2o20T {\n background: rgb(39, 50, 53);\n}\n\n.settings_addon-header_271wJ {\n padding: 0 10px;\n height: 50px;\n display: flex;\n align-items: center;\n}\n\n.settings_extension-image_1HlEn {\n height: 16px;\n width: 16px;\n margin-right: 8px;\n}\n\n.settings_addon-title_6MhRl {\n cursor: pointer;\n display: flex;\n align-items: center;\n white-space: nowrap;\n}\n\n.settings_addon-switch_2bf3g {\n margin-right: 8px;\n}\n\n.settings_addon-title-text_3QjlP {\n\n}\n\n.settings_addon-id_2EeZw {\n margin-left: 10px;\n}\n\n.settings_inline-description_SovV9 {\n margin-left: 10px;\n color: gray;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.settings_addon-operations_28nBd {\n margin-left: auto;\n padding-left: 4px;\n display: flex;\n align-items: center;\n}\n\n.settings_reset-button_1onc- {\n display: flex;\n border-radius: 4px;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n\n.settings_reset-button_1onc-:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.settings_reset-button_1onc-:active, .settings_reset-button_1onc-:focus-within {\n outline: none;\n box-shadow: 0 0 0 3px hsla(248, 66%, 62%, 0.35);\n}\n\n.settings_reset-button-image_2Tgqe {\n padding: 1px 0;\n height: 16px;\n width: 16px;\n}\n\n[theme=\"dark\"] .settings_reset-button_1onc-:hover {\n background: rgba(255, 255, 255, 0.05);\n}\n\n.settings_switch_2V1f5 {\n display: block;\n background: #111;\n width: 40px;\n height: 20px;\n border: none;\n border-radius: 10px;\n position: relative;\n cursor: pointer;\n transition: 0.25s ease;\n transition-property: background;\n}\n\n.settings_switch_2V1f5[state=\"on\"] {\n background: hsla(248, 66%, 62%, 1);\n}\n\n.settings_switch_2V1f5::before {\n content: \"\";\n position: absolute;\n display: block;\n width: 10px;\n height: 10px;\n background: #fff;\n border-radius: 5px;\n top: 5px;\n left: 5px;\n transition: 0.25s ease;\n transition-property: background, left;\n}\n\n[theme=\"dark\"] .settings_switch_2V1f5::before {\n background: #aaa;\n}\n\n.settings_switch_2V1f5[state=\"on\"]::before {\n background: #fff;\n left: 25px;\n}\n\n.settings_switch_2V1f5:active, .settings_switch_2V1f5:focus-within {\n outline: none;\n box-shadow: 0 0 0 3px hsla(248, 66%, 62%, 0.35);\n}\n\n.settings_tag-container_3yFc4 {\n display: flex;\n align-items: center;\n}\n\n.settings_tag_1c-GO {\n border-radius: 4px;\n padding: 2px 5px;\n margin-left: 10px;\n border-bottom: 2px solid #111;\n white-space: nowrap;\n}\n\n.settings_tag-recommended_2k7Kt {\n color: white;\n background-color: #175ef8;\n border-color: #0e44b8;\n}\n\n.settings_tag-theme_PbNiB {\n color: black;\n background-color: #9ad4cf;\n border-color: #628f8c;\n}\n\n.settings_tag-beta_26ywj {\n color: white;\n background-color: #fd662b;\n border-color: #d84a12;\n}\n\n.settings_tag-easter-egg_2M8qE {\n color: black;\n background-color: #b9f38d;\n border-color: #8fce5e;\n}\n\n.settings_tag-new_1g9ff {\n color: white;\n background: #b117f8;\n border-color: #6f0073;\n}\n\n.settings_tag-danger_2g6El {\n color: white;\n background: #fd2b2b;\n border-color: #d81212;\n}\n\n@media (max-width: 550px) {\n .settings_tag_1c-GO:not(.settings_tag-beta_26ywj) {\n display: none;\n }\n}\n\n.settings_addon-details_2CKwd {\n padding: 0 20px;\n margin-bottom: 10px;\n color: #111;\n}\n\n[theme=\"dark\"] .settings_addon-details_2CKwd {\n color: #ddd;\n}\n\n.settings_credit-container_2mHq7 {\n\n}\n\n.settings_credit-title_3f-yX {\n padding-right: 5px;\n}\n\n.settings_credit_3grR6 {\n\n}\n\n.settings_description_2MbZo {\n\n}\n\n.settings_notice_2q6Z2 {\n color: black;\n padding: 10px;\n border-radius: 5px;\n font-weight: bold;\n margin: 10px 0;\n display: flex;\n align-items: center;\n background: rgba(154, 212, 207, 0.7);\n}\n\n.settings_notice-icon_2lAT7 {\n height: 16px;\n width: 16px;\n margin-right: 10px;\n}\n\n.settings_setting-container_2BA7o {\n margin-top: 10px;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n}\n\n.settings_setting_2i2j- {\n margin: 10px;\n margin-right: 30px;\n min-height: 35px;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.settings_setting-label_2w3mJ {\n font-weight: bold;\n text-transform: uppercase;\n color: #555;\n font-size: 12px;\n margin-right: 10px;\n}\n\n[theme=\"dark\"] .settings_setting-label_2w3mJ {\n color: #aaa;\n}\n\n.settings_setting_2i2j- input {\n color: #000;\n background: #efefef;\n border: 1px solid #acacac;\n padding: 8px 12px;\n border-radius: 4px;\n transition: 0.25s ease;\n transition-property: background;\n}\n\n[theme=\"dark\"] .settings_setting_2i2j- input {\n color: #fff;\n background: #222222;\n border: 1px solid #000;\n}\n\n.settings_setting_2i2j- input:focus, .settings_setting_2i2j- input:active {\n outline: none;\n border-color: hsla(248, 66%, 62%, 1);\n box-shadow: 0 0 0 3px hsla(248, 66%, 62%, 0.35);\n}\n\n.settings_setting_2i2j- input[type=\"checkbox\"] {\n height: 20px;\n width: 20px;\n padding: 0;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n background-color: white;\n background-size: 20px 20px;\n background-position: center center;\n}\n\n.settings_setting_2i2j- input[type=\"checkbox\"]:checked {\n border-color: hsla(248, 66%, 62%, 1);\n background-color: hsla(248, 66%, 62%, 1);\n background-image: url(" + escape(__webpack_require__(/*! ./icons/check.svg */ "./src/addons/settings/icons/check.svg")) + ");\n}\n\n.settings_setting_2i2j- input[type=\"checkbox\"]:hover:not(:focus) {\n border-color: hsla(248, 66%, 52%, 1);\n}\n\n.settings_setting_2i2j- input[type=\"checkbox\"]:checked:hover {\n border-color: hsla(248, 66%, 52%, 1);\n}\n\n.settings_setting_2i2j- input[type=\"number\"] {\n border-radius: 20px 0 0 20px;\n font-size: 14px;\n width: 75px;\n height: 35px;\n box-sizing: border-box;\n}\n\n.settings_setting_2i2j- input[type=\"color\"] {\n height: 30px;\n width: 100px;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n outline: none;\n border: 1px solid transparent;\n border-radius: 4px 0px 0px 4px;\n}\n\n.settings_reset-setting-button_-WLwd {\n border-radius: 0 4px 4px 0px;\n box-sizing: border-box;\n height: 30px;\n}\n\n.settings_reset-setting-button_-WLwd img {\n width: 20px;\n height: 20px;\n}\n\n.settings_reset-setting-button_-WLwd[data-for-text-input=\"true\"] {\n height: 35px;\n border-radius: 0 20px 20px 0;\n}\n\n.settings_select_sIZno {\n display: flex;\n}\n\n.settings_select-option_32Zqa {\n cursor: pointer;\n padding: 10px;\n margin: 0;\n background: transparent;\n border: none;\n background: #f0f0f0;\n color: #000;\n border: 1px solid #aaa;\n border-right-width: 0;\n transition: 0.25s ease;\n transition-property: color, background, border;\n}\n\n[theme=\"dark\"] .settings_select-option_32Zqa {\n color: #fff;\n background: #222222;\n border-color: #000000;\n}\n\n.settings_select-option_32Zqa:first-child {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n\n.settings_select-option_32Zqa:last-child {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n border-right-width: 1px;\n}\n\n.settings_select-option_32Zqa.settings_selected_38WtW {\n color: white;\n background: hsla(248, 66%, 62%, 1);\n}\n\n.settings_select-option_32Zqa:active, .settings_select-option_32Zqa:focus-within {\n outline: none;\n box-shadow: 0 0 0 3px hsla(248, 66%, 62%, 0.35);\n z-index: 10;\n}\n\n.settings_presets_3zawV {\n width: 100%;\n}\n\n.settings_preset-button_3zYV3 {\n margin-right: 10px;\n}\n\n.settings_footer_jjys0 {\n color: #444;\n}\n\n[theme=\"dark\"] .settings_footer_jjys0 {\n color: #aaa;\n}\n\n.settings_unsupported-container_2vhiH {\n margin-bottom: 10px;\n}\n\n.settings_unsupported-addon_1p57c {\n padding-left: 5px;\n}\n\n.settings_version_2_cDA {\n margin-bottom: 10px;\n cursor: pointer;\n}\n\n.settings_footer-buttons_xTSXH {\n margin-bottom: 10px;\n display: flex;\n}\n\n.settings_footer-buttons_xTSXH > .settings_button_2ovv0 {\n margin-right: 10px;\n}\n\n.settings_reset-all-button_2Q-Zi {\n\n}\n\n.settings_export-button_2PWOM {\n\n}\n\n.settings_import-button_1NMJN {\n\n}\n\n.settings_no-results_3bDSs {\n text-align: center;\n font-style: italic;\n}\n\n.settings_dirty-outer_WmNYy {\n display: flex;\n position: absolute;\n top: calc(100% - 8px);\n left: 0;\n width: calc(100% - 20px);\n margin-left: 10px;\n z-index: 10;\n justify-content: center;\n animation: settings_dirty-appear_2Rcif 0.2s ease;\n pointer-events: none;\n}\n\n.settings_dirty-inner_2tglM {\n padding: 8px;\n background: #ffeedf;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n border: 1px solid #cfcfcf;\n border-radius: 4px;\n pointer-events: auto;\n display: flex;\n align-items: center;\n text-align: center;\n}\n\n[theme=\"dark\"] .settings_dirty-inner_2tglM {\n background: rgb(39, 50, 53);\n border-color: #222;\n}\n\n.settings_dirty-button_2adjE {\n margin-left: 6px;\n}\n\n@keyframes settings_dirty-appear_2Rcif {\n from {\n transform: translateY(-100%);\n }\n to {\n transform: translateY(0);\n }\n}\n", ""]);
235
 
236
  // exports
237
  exports.locals = {
js/addon-settings.js.map CHANGED
The diff for this file is too large to render. See raw diff
 
js/addon-settings~addons~editor~fullscreen~player~playground.js CHANGED
@@ -3252,7 +3252,7 @@ const manifest = {
3252
  "userscripts": [{
3253
  "url": "userscript.js"
3254
  }],
3255
- "tags": ["editor", "new", "recommended"],
3256
  "enabledByDefault": true,
3257
  "dynamicEnable": true,
3258
  "dynamicDisable": false
@@ -3484,6 +3484,40 @@ const manifest = {
3484
 
3485
  /***/ }),
3486
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3487
  /***/ "./src/addons/addons/sprite-properties/_manifest_entry.js":
3488
  /*!****************************************************************!*\
3489
  !*** ./src/addons/addons/sprite-properties/_manifest_entry.js ***!
@@ -4061,83 +4095,84 @@ class EventTargetShim {
4061
  "use strict";
4062
  __webpack_require__.r(__webpack_exports__);
4063
  /* harmony import */ var _addons_toolbox_category_drag_manifest_entry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../addons/toolbox-category-drag/_manifest_entry.js */ "./src/addons/addons/toolbox-category-drag/_manifest_entry.js");
4064
- /* harmony import */ var _addons_cat_blocks_manifest_entry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../addons/cat-blocks/_manifest_entry.js */ "./src/addons/addons/cat-blocks/_manifest_entry.js");
4065
- /* harmony import */ var _addons_fps_manifest_entry_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../addons/fps/_manifest_entry.js */ "./src/addons/addons/fps/_manifest_entry.js");
4066
- /* harmony import */ var _addons_debug_console_manifest_entry_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../addons/debug-console/_manifest_entry.js */ "./src/addons/addons/debug-console/_manifest_entry.js");
4067
- /* harmony import */ var _addons_ScratchHighlightFullwidthNumber_manifest_entry_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../addons/ScratchHighlightFullwidthNumber/_manifest_entry.js */ "./src/addons/addons/ScratchHighlightFullwidthNumber/_manifest_entry.js");
4068
- /* harmony import */ var _addons_find_bar_manifest_entry_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../addons/find-bar/_manifest_entry.js */ "./src/addons/addons/find-bar/_manifest_entry.js");
4069
- /* harmony import */ var _addons_paint_tool_panel_manifest_entry_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../addons/paint-tool-panel/_manifest_entry.js */ "./src/addons/addons/paint-tool-panel/_manifest_entry.js");
4070
- /* harmony import */ var _addons_middle_click_popup_manifest_entry_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../addons/middle-click-popup/_manifest_entry.js */ "./src/addons/addons/middle-click-popup/_manifest_entry.js");
4071
- /* harmony import */ var _addons_editor_block_chomping_manifest_entry_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../addons/editor-block-chomping/_manifest_entry.js */ "./src/addons/addons/editor-block-chomping/_manifest_entry.js");
4072
- /* harmony import */ var _addons_jump_to_def_manifest_entry_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../addons/jump-to-def/_manifest_entry.js */ "./src/addons/addons/jump-to-def/_manifest_entry.js");
4073
- /* harmony import */ var _addons_editor_searchable_dropdowns_manifest_entry_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../addons/editor-searchable-dropdowns/_manifest_entry.js */ "./src/addons/addons/editor-searchable-dropdowns/_manifest_entry.js");
4074
- /* harmony import */ var _addons_block_palette_icons_manifest_entry_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../addons/block-palette-icons/_manifest_entry.js */ "./src/addons/addons/block-palette-icons/_manifest_entry.js");
4075
- /* harmony import */ var _addons_hide_flyout_manifest_entry_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../addons/hide-flyout/_manifest_entry.js */ "./src/addons/addons/hide-flyout/_manifest_entry.js");
4076
- /* harmony import */ var _addons_mediarecorder_manifest_entry_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../addons/mediarecorder/_manifest_entry.js */ "./src/addons/addons/mediarecorder/_manifest_entry.js");
4077
- /* harmony import */ var _addons_drag_drop_manifest_entry_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../addons/drag-drop/_manifest_entry.js */ "./src/addons/addons/drag-drop/_manifest_entry.js");
4078
- /* harmony import */ var _addons_debugger_manifest_entry_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../addons/debugger/_manifest_entry.js */ "./src/addons/addons/debugger/_manifest_entry.js");
4079
- /* harmony import */ var _addons_mute_project_manifest_entry_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../addons/mute-project/_manifest_entry.js */ "./src/addons/addons/mute-project/_manifest_entry.js");
4080
- /* harmony import */ var _addons_vol_slider_manifest_entry_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../addons/vol-slider/_manifest_entry.js */ "./src/addons/addons/vol-slider/_manifest_entry.js");
4081
- /* harmony import */ var _addons_clones_manifest_entry_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../addons/clones/_manifest_entry.js */ "./src/addons/addons/clones/_manifest_entry.js");
4082
- /* harmony import */ var _addons_mouse_pos_manifest_entry_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../addons/mouse-pos/_manifest_entry.js */ "./src/addons/addons/mouse-pos/_manifest_entry.js");
4083
- /* harmony import */ var _addons_color_picker_manifest_entry_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../addons/color-picker/_manifest_entry.js */ "./src/addons/addons/color-picker/_manifest_entry.js");
4084
- /* harmony import */ var _addons_remove_sprite_confirm_manifest_entry_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../addons/remove-sprite-confirm/_manifest_entry.js */ "./src/addons/addons/remove-sprite-confirm/_manifest_entry.js");
4085
- /* harmony import */ var _addons_block_count_manifest_entry_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../addons/block-count/_manifest_entry.js */ "./src/addons/addons/block-count/_manifest_entry.js");
4086
- /* harmony import */ var _addons_onion_skinning_manifest_entry_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../addons/onion-skinning/_manifest_entry.js */ "./src/addons/addons/onion-skinning/_manifest_entry.js");
4087
- /* harmony import */ var _addons_paint_snap_manifest_entry_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../addons/paint-snap/_manifest_entry.js */ "./src/addons/addons/paint-snap/_manifest_entry.js");
4088
- /* harmony import */ var _addons_default_costume_editor_color_manifest_entry_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../addons/default-costume-editor-color/_manifest_entry.js */ "./src/addons/addons/default-costume-editor-color/_manifest_entry.js");
4089
- /* harmony import */ var _addons_bitmap_copy_manifest_entry_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../addons/bitmap-copy/_manifest_entry.js */ "./src/addons/addons/bitmap-copy/_manifest_entry.js");
4090
- /* harmony import */ var _addons_2d_color_picker_manifest_entry_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../addons/2d-color-picker/_manifest_entry.js */ "./src/addons/addons/2d-color-picker/_manifest_entry.js");
4091
- /* harmony import */ var _addons_better_img_uploads_manifest_entry_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../addons/better-img-uploads/_manifest_entry.js */ "./src/addons/addons/better-img-uploads/_manifest_entry.js");
4092
- /* harmony import */ var _addons_pick_colors_from_stage_manifest_entry_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../addons/pick-colors-from-stage/_manifest_entry.js */ "./src/addons/addons/pick-colors-from-stage/_manifest_entry.js");
4093
- /* harmony import */ var _addons_custom_block_shape_manifest_entry_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../addons/custom-block-shape/_manifest_entry.js */ "./src/addons/addons/custom-block-shape/_manifest_entry.js");
4094
- /* harmony import */ var _addons_zebra_striping_manifest_entry_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../addons/zebra-striping/_manifest_entry.js */ "./src/addons/addons/zebra-striping/_manifest_entry.js");
4095
- /* harmony import */ var _addons_editor_theme3_manifest_entry_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../addons/editor-theme3/_manifest_entry.js */ "./src/addons/addons/editor-theme3/_manifest_entry.js");
4096
- /* harmony import */ var _addons_custom_block_text_manifest_entry_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../addons/custom-block-text/_manifest_entry.js */ "./src/addons/addons/custom-block-text/_manifest_entry.js");
4097
- /* harmony import */ var _addons_editor_colored_context_menus_manifest_entry_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../addons/editor-colored-context-menus/_manifest_entry.js */ "./src/addons/addons/editor-colored-context-menus/_manifest_entry.js");
4098
- /* harmony import */ var _addons_editor_stage_left_manifest_entry_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ../addons/editor-stage-left/_manifest_entry.js */ "./src/addons/addons/editor-stage-left/_manifest_entry.js");
4099
- /* harmony import */ var _addons_editor_buttons_reverse_order_manifest_entry_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ../addons/editor-buttons-reverse-order/_manifest_entry.js */ "./src/addons/addons/editor-buttons-reverse-order/_manifest_entry.js");
4100
- /* harmony import */ var _addons_search_sprites_manifest_entry_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ../addons/search-sprites/_manifest_entry.js */ "./src/addons/addons/search-sprites/_manifest_entry.js");
4101
- /* harmony import */ var _addons_sprite_properties_manifest_entry_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../addons/sprite-properties/_manifest_entry.js */ "./src/addons/addons/sprite-properties/_manifest_entry.js");
4102
- /* harmony import */ var _addons_gamepad_manifest_entry_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../addons/gamepad/_manifest_entry.js */ "./src/addons/addons/gamepad/_manifest_entry.js");
4103
- /* harmony import */ var _addons_editor_sounds_manifest_entry_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../addons/editor-sounds/_manifest_entry.js */ "./src/addons/addons/editor-sounds/_manifest_entry.js");
4104
- /* harmony import */ var _addons_folders_manifest_entry_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../addons/folders/_manifest_entry.js */ "./src/addons/addons/folders/_manifest_entry.js");
4105
- /* harmony import */ var _addons_block_switching_manifest_entry_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ../addons/block-switching/_manifest_entry.js */ "./src/addons/addons/block-switching/_manifest_entry.js");
4106
- /* harmony import */ var _addons_load_extensions_manifest_entry_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ../addons/load-extensions/_manifest_entry.js */ "./src/addons/addons/load-extensions/_manifest_entry.js");
4107
- /* harmony import */ var _addons_custom_zoom_manifest_entry_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ../addons/custom-zoom/_manifest_entry.js */ "./src/addons/addons/custom-zoom/_manifest_entry.js");
4108
- /* harmony import */ var _addons_initialise_sprite_position_manifest_entry_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ../addons/initialise-sprite-position/_manifest_entry.js */ "./src/addons/addons/initialise-sprite-position/_manifest_entry.js");
4109
- /* harmony import */ var _addons_blocks2image_manifest_entry_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ../addons/blocks2image/_manifest_entry.js */ "./src/addons/addons/blocks2image/_manifest_entry.js");
4110
- /* harmony import */ var _addons_remove_curved_stage_border_manifest_entry_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ../addons/remove-curved-stage-border/_manifest_entry.js */ "./src/addons/addons/remove-curved-stage-border/_manifest_entry.js");
4111
- /* harmony import */ var _addons_transparent_orphans_manifest_entry_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ../addons/transparent-orphans/_manifest_entry.js */ "./src/addons/addons/transparent-orphans/_manifest_entry.js");
4112
- /* harmony import */ var _addons_paint_by_default_manifest_entry_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ../addons/paint-by-default/_manifest_entry.js */ "./src/addons/addons/paint-by-default/_manifest_entry.js");
4113
- /* harmony import */ var _addons_block_cherry_picking_manifest_entry_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../addons/block-cherry-picking/_manifest_entry.js */ "./src/addons/addons/block-cherry-picking/_manifest_entry.js");
4114
- /* harmony import */ var _addons_hide_new_variables_manifest_entry_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../addons/hide-new-variables/_manifest_entry.js */ "./src/addons/addons/hide-new-variables/_manifest_entry.js");
4115
- /* harmony import */ var _addons_editor_extra_keys_manifest_entry_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../addons/editor-extra-keys/_manifest_entry.js */ "./src/addons/addons/editor-extra-keys/_manifest_entry.js");
4116
- /* harmony import */ var _addons_hide_delete_button_manifest_entry_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../addons/hide-delete-button/_manifest_entry.js */ "./src/addons/addons/hide-delete-button/_manifest_entry.js");
4117
- /* harmony import */ var _addons_no_script_bumping_manifest_entry_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../addons/no-script-bumping/_manifest_entry.js */ "./src/addons/addons/no-script-bumping/_manifest_entry.js");
4118
- /* harmony import */ var _addons_paint_gradient_maker_manifest_entry_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../addons/paint-gradient-maker/_manifest_entry.js */ "./src/addons/addons/paint-gradient-maker/_manifest_entry.js");
4119
- /* harmony import */ var _addons_paint_rounded_rect_seperate_manifest_entry_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../addons/paint-rounded-rect-seperate/_manifest_entry.js */ "./src/addons/addons/paint-rounded-rect-seperate/_manifest_entry.js");
4120
- /* harmony import */ var _addons_paint_default_smoothing_manifest_entry_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../addons/paint-default-smoothing/_manifest_entry.js */ "./src/addons/addons/paint-default-smoothing/_manifest_entry.js");
4121
- /* harmony import */ var _addons_waveform_chunk_size_manifest_entry_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../addons/waveform-chunk-size/_manifest_entry.js */ "./src/addons/addons/waveform-chunk-size/_manifest_entry.js");
4122
- /* harmony import */ var _addons_toolbox_full_blocks_on_hover_manifest_entry_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../addons/toolbox-full-blocks-on-hover/_manifest_entry.js */ "./src/addons/addons/toolbox-full-blocks-on-hover/_manifest_entry.js");
4123
- /* harmony import */ var _addons_disable_stage_drag_select_manifest_entry_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../addons/disable-stage-drag-select/_manifest_entry.js */ "./src/addons/addons/disable-stage-drag-select/_manifest_entry.js");
4124
- /* harmony import */ var _addons_move_to_top_bottom_manifest_entry_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../addons/move-to-top-bottom/_manifest_entry.js */ "./src/addons/addons/move-to-top-bottom/_manifest_entry.js");
4125
- /* harmony import */ var _addons_multi_tab_code_manifest_entry_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../addons/multi-tab-code/_manifest_entry.js */ "./src/addons/addons/multi-tab-code/_manifest_entry.js");
4126
- /* harmony import */ var _addons_editor_animations_manifest_entry_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../addons/editor-animations/_manifest_entry.js */ "./src/addons/addons/editor-animations/_manifest_entry.js");
4127
- /* harmony import */ var _addons_reorder_custom_inputs_manifest_entry_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../addons/reorder-custom-inputs/_manifest_entry.js */ "./src/addons/addons/reorder-custom-inputs/_manifest_entry.js");
4128
- /* harmony import */ var _addons_disable_paste_offset_manifest_entry_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../addons/disable-paste-offset/_manifest_entry.js */ "./src/addons/addons/disable-paste-offset/_manifest_entry.js");
4129
- /* harmony import */ var _addons_block_duplicate_manifest_entry_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../addons/block-duplicate/_manifest_entry.js */ "./src/addons/addons/block-duplicate/_manifest_entry.js");
4130
- /* harmony import */ var _addons_swap_local_global_manifest_entry_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../addons/swap-local-global/_manifest_entry.js */ "./src/addons/addons/swap-local-global/_manifest_entry.js");
4131
- /* harmony import */ var _addons_editor_comment_previews_manifest_entry_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../addons/editor-comment-previews/_manifest_entry.js */ "./src/addons/addons/editor-comment-previews/_manifest_entry.js");
4132
- /* harmony import */ var _addons_columns_manifest_entry_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../addons/columns/_manifest_entry.js */ "./src/addons/addons/columns/_manifest_entry.js");
4133
- /* harmony import */ var _addons_number_pad_manifest_entry_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../addons/number-pad/_manifest_entry.js */ "./src/addons/addons/number-pad/_manifest_entry.js");
4134
- /* harmony import */ var _addons_script_snap_manifest_entry_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../addons/script-snap/_manifest_entry.js */ "./src/addons/addons/script-snap/_manifest_entry.js");
4135
- /* harmony import */ var _addons_fullscreen_manifest_entry_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../addons/fullscreen/_manifest_entry.js */ "./src/addons/addons/fullscreen/_manifest_entry.js");
4136
- /* harmony import */ var _addons_hide_stage_manifest_entry_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../addons/hide-stage/_manifest_entry.js */ "./src/addons/addons/hide-stage/_manifest_entry.js");
4137
- /* harmony import */ var _addons_tw_straighten_comments_manifest_entry_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../addons/tw-straighten-comments/_manifest_entry.js */ "./src/addons/addons/tw-straighten-comments/_manifest_entry.js");
4138
- /* harmony import */ var _addons_tw_remove_feedback_manifest_entry_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../addons/tw-remove-feedback/_manifest_entry.js */ "./src/addons/addons/tw-remove-feedback/_manifest_entry.js");
4139
- /* harmony import */ var _addons_tw_remove_backpack_manifest_entry_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../addons/tw-remove-backpack/_manifest_entry.js */ "./src/addons/addons/tw-remove-backpack/_manifest_entry.js");
4140
- /* harmony import */ var _addons_tw_disable_cloud_variables_manifest_entry_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../addons/tw-disable-cloud-variables/_manifest_entry.js */ "./src/addons/addons/tw-disable-cloud-variables/_manifest_entry.js");
 
4141
  /* generated by pull.js */
4142
 
4143
 
@@ -4216,89 +4251,91 @@ __webpack_require__.r(__webpack_exports__);
4216
 
4217
 
4218
 
 
4219
 
4220
 
4221
  /* harmony default export */ __webpack_exports__["default"] = ({
4222
- "paint-gradient-maker": _addons_paint_gradient_maker_manifest_entry_js__WEBPACK_IMPORTED_MODULE_55__["default"],
4223
- "paint-rounded-rect-seperate": _addons_paint_rounded_rect_seperate_manifest_entry_js__WEBPACK_IMPORTED_MODULE_56__["default"],
4224
- "paint-tool-panel": _addons_paint_tool_panel_manifest_entry_js__WEBPACK_IMPORTED_MODULE_6__["default"],
4225
- "paint-default-smoothing": _addons_paint_default_smoothing_manifest_entry_js__WEBPACK_IMPORTED_MODULE_57__["default"],
4226
- "toolbox-full-blocks-on-hover": _addons_toolbox_full_blocks_on_hover_manifest_entry_js__WEBPACK_IMPORTED_MODULE_59__["default"],
4227
- "waveform-chunk-size": _addons_waveform_chunk_size_manifest_entry_js__WEBPACK_IMPORTED_MODULE_58__["default"],
4228
- "fps": _addons_fps_manifest_entry_js__WEBPACK_IMPORTED_MODULE_2__["default"],
4229
- "debug-console": _addons_debug_console_manifest_entry_js__WEBPACK_IMPORTED_MODULE_3__["default"],
4230
- "ScratchHighlightFullwidthNumber": _addons_cat_blocks_manifest_entry_js__WEBPACK_IMPORTED_MODULE_1__["default"],
4231
- "cat-blocks": _addons_cat_blocks_manifest_entry_js__WEBPACK_IMPORTED_MODULE_1__["default"],
4232
- "editor-devtools": _addons_ScratchHighlightFullwidthNumber_manifest_entry_js__WEBPACK_IMPORTED_MODULE_4__["default"],
4233
- "find-bar": _addons_find_bar_manifest_entry_js__WEBPACK_IMPORTED_MODULE_5__["default"],
4234
- "middle-click-popup": _addons_middle_click_popup_manifest_entry_js__WEBPACK_IMPORTED_MODULE_7__["default"],
4235
- "editor-block-chomping": _addons_editor_block_chomping_manifest_entry_js__WEBPACK_IMPORTED_MODULE_8__["default"],
4236
- "jump-to-def": _addons_jump_to_def_manifest_entry_js__WEBPACK_IMPORTED_MODULE_9__["default"],
4237
- "editor-searchable-dropdowns": _addons_editor_searchable_dropdowns_manifest_entry_js__WEBPACK_IMPORTED_MODULE_10__["default"],
4238
- "block-palette-icons": _addons_block_palette_icons_manifest_entry_js__WEBPACK_IMPORTED_MODULE_11__["default"],
4239
- "hide-flyout": _addons_hide_flyout_manifest_entry_js__WEBPACK_IMPORTED_MODULE_12__["default"],
4240
- "mediarecorder": _addons_mediarecorder_manifest_entry_js__WEBPACK_IMPORTED_MODULE_13__["default"],
4241
- "drag-drop": _addons_drag_drop_manifest_entry_js__WEBPACK_IMPORTED_MODULE_14__["default"],
4242
- "debugger": _addons_debugger_manifest_entry_js__WEBPACK_IMPORTED_MODULE_15__["default"],
4243
- "mute-project": _addons_mute_project_manifest_entry_js__WEBPACK_IMPORTED_MODULE_16__["default"],
4244
- "vol-slider": _addons_vol_slider_manifest_entry_js__WEBPACK_IMPORTED_MODULE_17__["default"],
4245
- "clones": _addons_clones_manifest_entry_js__WEBPACK_IMPORTED_MODULE_18__["default"],
4246
- "mouse-pos": _addons_mouse_pos_manifest_entry_js__WEBPACK_IMPORTED_MODULE_19__["default"],
4247
- "color-picker": _addons_color_picker_manifest_entry_js__WEBPACK_IMPORTED_MODULE_20__["default"],
4248
- "remove-sprite-confirm": _addons_remove_sprite_confirm_manifest_entry_js__WEBPACK_IMPORTED_MODULE_21__["default"],
4249
- "block-count": _addons_block_count_manifest_entry_js__WEBPACK_IMPORTED_MODULE_22__["default"],
4250
- "onion-skinning": _addons_onion_skinning_manifest_entry_js__WEBPACK_IMPORTED_MODULE_23__["default"],
4251
- "paint-snap": _addons_paint_snap_manifest_entry_js__WEBPACK_IMPORTED_MODULE_24__["default"],
4252
- "default-costume-editor-color": _addons_default_costume_editor_color_manifest_entry_js__WEBPACK_IMPORTED_MODULE_25__["default"],
4253
- "bitmap-copy": _addons_bitmap_copy_manifest_entry_js__WEBPACK_IMPORTED_MODULE_26__["default"],
4254
- "2d-color-picker": _addons_2d_color_picker_manifest_entry_js__WEBPACK_IMPORTED_MODULE_27__["default"],
4255
- "better-img-uploads": _addons_better_img_uploads_manifest_entry_js__WEBPACK_IMPORTED_MODULE_28__["default"],
4256
- "pick-colors-from-stage": _addons_pick_colors_from_stage_manifest_entry_js__WEBPACK_IMPORTED_MODULE_29__["default"],
4257
- "custom-block-shape": _addons_custom_block_shape_manifest_entry_js__WEBPACK_IMPORTED_MODULE_30__["default"],
4258
- "zebra-striping": _addons_zebra_striping_manifest_entry_js__WEBPACK_IMPORTED_MODULE_31__["default"],
4259
- "editor-theme3": _addons_editor_theme3_manifest_entry_js__WEBPACK_IMPORTED_MODULE_32__["default"],
4260
- "custom-block-text": _addons_custom_block_text_manifest_entry_js__WEBPACK_IMPORTED_MODULE_33__["default"],
4261
- "editor-colored-context-menus": _addons_editor_colored_context_menus_manifest_entry_js__WEBPACK_IMPORTED_MODULE_34__["default"],
4262
- "editor-stage-left": _addons_editor_stage_left_manifest_entry_js__WEBPACK_IMPORTED_MODULE_35__["default"],
4263
- "editor-buttons-reverse-order": _addons_editor_buttons_reverse_order_manifest_entry_js__WEBPACK_IMPORTED_MODULE_36__["default"],
4264
- "search-sprites": _addons_search_sprites_manifest_entry_js__WEBPACK_IMPORTED_MODULE_37__["default"],
4265
- "sprite-properties": _addons_sprite_properties_manifest_entry_js__WEBPACK_IMPORTED_MODULE_38__["default"],
4266
- "gamepad": _addons_gamepad_manifest_entry_js__WEBPACK_IMPORTED_MODULE_39__["default"],
4267
- "editor-sounds": _addons_editor_sounds_manifest_entry_js__WEBPACK_IMPORTED_MODULE_40__["default"],
4268
- "folders": _addons_folders_manifest_entry_js__WEBPACK_IMPORTED_MODULE_41__["default"],
4269
- "block-switching": _addons_block_switching_manifest_entry_js__WEBPACK_IMPORTED_MODULE_42__["default"],
4270
- "load-extensions": _addons_load_extensions_manifest_entry_js__WEBPACK_IMPORTED_MODULE_43__["default"],
4271
- "custom-zoom": _addons_custom_zoom_manifest_entry_js__WEBPACK_IMPORTED_MODULE_44__["default"],
4272
- "initialise-sprite-position": _addons_initialise_sprite_position_manifest_entry_js__WEBPACK_IMPORTED_MODULE_45__["default"],
4273
- "blocks2image": _addons_blocks2image_manifest_entry_js__WEBPACK_IMPORTED_MODULE_46__["default"],
4274
- "remove-curved-stage-border": _addons_remove_curved_stage_border_manifest_entry_js__WEBPACK_IMPORTED_MODULE_47__["default"],
4275
- "transparent-orphans": _addons_transparent_orphans_manifest_entry_js__WEBPACK_IMPORTED_MODULE_48__["default"],
4276
- "paint-by-default": _addons_paint_by_default_manifest_entry_js__WEBPACK_IMPORTED_MODULE_49__["default"],
4277
- "block-cherry-picking": _addons_block_cherry_picking_manifest_entry_js__WEBPACK_IMPORTED_MODULE_50__["default"],
4278
- "hide-new-variables": _addons_hide_new_variables_manifest_entry_js__WEBPACK_IMPORTED_MODULE_51__["default"],
4279
- "editor-extra-keys": _addons_editor_extra_keys_manifest_entry_js__WEBPACK_IMPORTED_MODULE_52__["default"],
 
4280
  "toolbox-category-drag": _addons_toolbox_category_drag_manifest_entry_js__WEBPACK_IMPORTED_MODULE_0__["default"],
4281
- "hide-delete-button": _addons_hide_delete_button_manifest_entry_js__WEBPACK_IMPORTED_MODULE_53__["default"],
4282
- "no-script-bumping": _addons_no_script_bumping_manifest_entry_js__WEBPACK_IMPORTED_MODULE_54__["default"],
4283
- "disable-stage-drag-select": _addons_disable_stage_drag_select_manifest_entry_js__WEBPACK_IMPORTED_MODULE_60__["default"],
4284
- "move-to-top-bottom": _addons_move_to_top_bottom_manifest_entry_js__WEBPACK_IMPORTED_MODULE_61__["default"],
4285
- "disable-paste-offset": _addons_disable_paste_offset_manifest_entry_js__WEBPACK_IMPORTED_MODULE_65__["default"],
4286
- "block-duplicate": _addons_block_duplicate_manifest_entry_js__WEBPACK_IMPORTED_MODULE_66__["default"],
4287
- "swap-local-global": _addons_swap_local_global_manifest_entry_js__WEBPACK_IMPORTED_MODULE_67__["default"],
4288
- "editor-comment-previews": _addons_editor_comment_previews_manifest_entry_js__WEBPACK_IMPORTED_MODULE_68__["default"],
4289
- "columns": _addons_columns_manifest_entry_js__WEBPACK_IMPORTED_MODULE_69__["default"],
4290
- "number-pad": _addons_number_pad_manifest_entry_js__WEBPACK_IMPORTED_MODULE_70__["default"],
4291
- "script-snap": _addons_script_snap_manifest_entry_js__WEBPACK_IMPORTED_MODULE_71__["default"],
4292
- "fullscreen": _addons_fullscreen_manifest_entry_js__WEBPACK_IMPORTED_MODULE_72__["default"],
4293
- "hide-stage": _addons_hide_stage_manifest_entry_js__WEBPACK_IMPORTED_MODULE_73__["default"],
4294
- "tw-straighten-comments": _addons_tw_straighten_comments_manifest_entry_js__WEBPACK_IMPORTED_MODULE_74__["default"],
4295
- "tw-remove-feedback": _addons_tw_remove_feedback_manifest_entry_js__WEBPACK_IMPORTED_MODULE_75__["default"],
4296
- "tw-remove-backpack": _addons_tw_remove_backpack_manifest_entry_js__WEBPACK_IMPORTED_MODULE_76__["default"],
4297
- "tw-disable-cloud-variables": _addons_tw_disable_cloud_variables_manifest_entry_js__WEBPACK_IMPORTED_MODULE_77__["default"],
4298
- "vol-slider": _addons_vol_slider_manifest_entry_js__WEBPACK_IMPORTED_MODULE_17__["default"],
4299
- "multi-tab-code": _addons_multi_tab_code_manifest_entry_js__WEBPACK_IMPORTED_MODULE_62__["default"],
4300
- "editor-animations": _addons_editor_animations_manifest_entry_js__WEBPACK_IMPORTED_MODULE_63__["default"],
4301
- "reorder-custom-inputs": _addons_reorder_custom_inputs_manifest_entry_js__WEBPACK_IMPORTED_MODULE_64__["default"]
4302
  });
4303
 
4304
  /***/ }),
 
3252
  "userscripts": [{
3253
  "url": "userscript.js"
3254
  }],
3255
+ "tags": ["editor", "recommended"],
3256
  "enabledByDefault": true,
3257
  "dynamicEnable": true,
3258
  "dynamicDisable": false
 
3484
 
3485
  /***/ }),
3486
 
3487
+ /***/ "./src/addons/addons/sounds-newgrounds-button/_manifest_entry.js":
3488
+ /*!***********************************************************************!*\
3489
+ !*** ./src/addons/addons/sounds-newgrounds-button/_manifest_entry.js ***!
3490
+ \***********************************************************************/
3491
+ /*! exports provided: default */
3492
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
3493
+
3494
+ "use strict";
3495
+ __webpack_require__.r(__webpack_exports__);
3496
+ /* generated by pull.js */
3497
+ const manifest = {
3498
+ "name": "Newgrounds Audio Import",
3499
+ "description": "Import audio directly from Newgrounds into the sound editor.",
3500
+ "credits": [{
3501
+ "name": "SharkPool",
3502
+ "link": "https://github.com/SharkPool-SP/"
3503
+ }],
3504
+ "info": [{
3505
+ "type": "notice",
3506
+ "text": "Some audio on Newgrounds may not be licensed for public or commercial use. This addon will try to warn you or block downloads when restrictions apply.",
3507
+ "id": "copyright-notice"
3508
+ }],
3509
+ "userscripts": [{
3510
+ "url": "userscript.js"
3511
+ }],
3512
+ "tags": ["editor", "new"],
3513
+ "enabledByDefault": false,
3514
+ "dynamicEnable": true,
3515
+ "dynamicDisable": false
3516
+ };
3517
+ /* harmony default export */ __webpack_exports__["default"] = (manifest);
3518
+
3519
+ /***/ }),
3520
+
3521
  /***/ "./src/addons/addons/sprite-properties/_manifest_entry.js":
3522
  /*!****************************************************************!*\
3523
  !*** ./src/addons/addons/sprite-properties/_manifest_entry.js ***!
 
4095
  "use strict";
4096
  __webpack_require__.r(__webpack_exports__);
4097
  /* harmony import */ var _addons_toolbox_category_drag_manifest_entry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../addons/toolbox-category-drag/_manifest_entry.js */ "./src/addons/addons/toolbox-category-drag/_manifest_entry.js");
4098
+ /* harmony import */ var _addons_sounds_newgrounds_button_manifest_entry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../addons/sounds-newgrounds-button/_manifest_entry.js */ "./src/addons/addons/sounds-newgrounds-button/_manifest_entry.js");
4099
+ /* harmony import */ var _addons_cat_blocks_manifest_entry_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../addons/cat-blocks/_manifest_entry.js */ "./src/addons/addons/cat-blocks/_manifest_entry.js");
4100
+ /* harmony import */ var _addons_fps_manifest_entry_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../addons/fps/_manifest_entry.js */ "./src/addons/addons/fps/_manifest_entry.js");
4101
+ /* harmony import */ var _addons_debug_console_manifest_entry_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../addons/debug-console/_manifest_entry.js */ "./src/addons/addons/debug-console/_manifest_entry.js");
4102
+ /* harmony import */ var _addons_ScratchHighlightFullwidthNumber_manifest_entry_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../addons/ScratchHighlightFullwidthNumber/_manifest_entry.js */ "./src/addons/addons/ScratchHighlightFullwidthNumber/_manifest_entry.js");
4103
+ /* harmony import */ var _addons_find_bar_manifest_entry_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../addons/find-bar/_manifest_entry.js */ "./src/addons/addons/find-bar/_manifest_entry.js");
4104
+ /* harmony import */ var _addons_paint_tool_panel_manifest_entry_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../addons/paint-tool-panel/_manifest_entry.js */ "./src/addons/addons/paint-tool-panel/_manifest_entry.js");
4105
+ /* harmony import */ var _addons_middle_click_popup_manifest_entry_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../addons/middle-click-popup/_manifest_entry.js */ "./src/addons/addons/middle-click-popup/_manifest_entry.js");
4106
+ /* harmony import */ var _addons_editor_block_chomping_manifest_entry_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../addons/editor-block-chomping/_manifest_entry.js */ "./src/addons/addons/editor-block-chomping/_manifest_entry.js");
4107
+ /* harmony import */ var _addons_jump_to_def_manifest_entry_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../addons/jump-to-def/_manifest_entry.js */ "./src/addons/addons/jump-to-def/_manifest_entry.js");
4108
+ /* harmony import */ var _addons_editor_searchable_dropdowns_manifest_entry_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../addons/editor-searchable-dropdowns/_manifest_entry.js */ "./src/addons/addons/editor-searchable-dropdowns/_manifest_entry.js");
4109
+ /* harmony import */ var _addons_block_palette_icons_manifest_entry_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../addons/block-palette-icons/_manifest_entry.js */ "./src/addons/addons/block-palette-icons/_manifest_entry.js");
4110
+ /* harmony import */ var _addons_hide_flyout_manifest_entry_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../addons/hide-flyout/_manifest_entry.js */ "./src/addons/addons/hide-flyout/_manifest_entry.js");
4111
+ /* harmony import */ var _addons_mediarecorder_manifest_entry_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../addons/mediarecorder/_manifest_entry.js */ "./src/addons/addons/mediarecorder/_manifest_entry.js");
4112
+ /* harmony import */ var _addons_drag_drop_manifest_entry_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../addons/drag-drop/_manifest_entry.js */ "./src/addons/addons/drag-drop/_manifest_entry.js");
4113
+ /* harmony import */ var _addons_debugger_manifest_entry_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../addons/debugger/_manifest_entry.js */ "./src/addons/addons/debugger/_manifest_entry.js");
4114
+ /* harmony import */ var _addons_mute_project_manifest_entry_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../addons/mute-project/_manifest_entry.js */ "./src/addons/addons/mute-project/_manifest_entry.js");
4115
+ /* harmony import */ var _addons_vol_slider_manifest_entry_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../addons/vol-slider/_manifest_entry.js */ "./src/addons/addons/vol-slider/_manifest_entry.js");
4116
+ /* harmony import */ var _addons_clones_manifest_entry_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../addons/clones/_manifest_entry.js */ "./src/addons/addons/clones/_manifest_entry.js");
4117
+ /* harmony import */ var _addons_mouse_pos_manifest_entry_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../addons/mouse-pos/_manifest_entry.js */ "./src/addons/addons/mouse-pos/_manifest_entry.js");
4118
+ /* harmony import */ var _addons_color_picker_manifest_entry_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../addons/color-picker/_manifest_entry.js */ "./src/addons/addons/color-picker/_manifest_entry.js");
4119
+ /* harmony import */ var _addons_remove_sprite_confirm_manifest_entry_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../addons/remove-sprite-confirm/_manifest_entry.js */ "./src/addons/addons/remove-sprite-confirm/_manifest_entry.js");
4120
+ /* harmony import */ var _addons_block_count_manifest_entry_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../addons/block-count/_manifest_entry.js */ "./src/addons/addons/block-count/_manifest_entry.js");
4121
+ /* harmony import */ var _addons_onion_skinning_manifest_entry_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../addons/onion-skinning/_manifest_entry.js */ "./src/addons/addons/onion-skinning/_manifest_entry.js");
4122
+ /* harmony import */ var _addons_paint_snap_manifest_entry_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../addons/paint-snap/_manifest_entry.js */ "./src/addons/addons/paint-snap/_manifest_entry.js");
4123
+ /* harmony import */ var _addons_default_costume_editor_color_manifest_entry_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../addons/default-costume-editor-color/_manifest_entry.js */ "./src/addons/addons/default-costume-editor-color/_manifest_entry.js");
4124
+ /* harmony import */ var _addons_bitmap_copy_manifest_entry_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../addons/bitmap-copy/_manifest_entry.js */ "./src/addons/addons/bitmap-copy/_manifest_entry.js");
4125
+ /* harmony import */ var _addons_2d_color_picker_manifest_entry_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../addons/2d-color-picker/_manifest_entry.js */ "./src/addons/addons/2d-color-picker/_manifest_entry.js");
4126
+ /* harmony import */ var _addons_better_img_uploads_manifest_entry_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../addons/better-img-uploads/_manifest_entry.js */ "./src/addons/addons/better-img-uploads/_manifest_entry.js");
4127
+ /* harmony import */ var _addons_pick_colors_from_stage_manifest_entry_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../addons/pick-colors-from-stage/_manifest_entry.js */ "./src/addons/addons/pick-colors-from-stage/_manifest_entry.js");
4128
+ /* harmony import */ var _addons_custom_block_shape_manifest_entry_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../addons/custom-block-shape/_manifest_entry.js */ "./src/addons/addons/custom-block-shape/_manifest_entry.js");
4129
+ /* harmony import */ var _addons_zebra_striping_manifest_entry_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../addons/zebra-striping/_manifest_entry.js */ "./src/addons/addons/zebra-striping/_manifest_entry.js");
4130
+ /* harmony import */ var _addons_editor_theme3_manifest_entry_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../addons/editor-theme3/_manifest_entry.js */ "./src/addons/addons/editor-theme3/_manifest_entry.js");
4131
+ /* harmony import */ var _addons_custom_block_text_manifest_entry_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../addons/custom-block-text/_manifest_entry.js */ "./src/addons/addons/custom-block-text/_manifest_entry.js");
4132
+ /* harmony import */ var _addons_editor_colored_context_menus_manifest_entry_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ../addons/editor-colored-context-menus/_manifest_entry.js */ "./src/addons/addons/editor-colored-context-menus/_manifest_entry.js");
4133
+ /* harmony import */ var _addons_editor_stage_left_manifest_entry_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ../addons/editor-stage-left/_manifest_entry.js */ "./src/addons/addons/editor-stage-left/_manifest_entry.js");
4134
+ /* harmony import */ var _addons_editor_buttons_reverse_order_manifest_entry_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ../addons/editor-buttons-reverse-order/_manifest_entry.js */ "./src/addons/addons/editor-buttons-reverse-order/_manifest_entry.js");
4135
+ /* harmony import */ var _addons_search_sprites_manifest_entry_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../addons/search-sprites/_manifest_entry.js */ "./src/addons/addons/search-sprites/_manifest_entry.js");
4136
+ /* harmony import */ var _addons_sprite_properties_manifest_entry_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../addons/sprite-properties/_manifest_entry.js */ "./src/addons/addons/sprite-properties/_manifest_entry.js");
4137
+ /* harmony import */ var _addons_gamepad_manifest_entry_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../addons/gamepad/_manifest_entry.js */ "./src/addons/addons/gamepad/_manifest_entry.js");
4138
+ /* harmony import */ var _addons_editor_sounds_manifest_entry_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../addons/editor-sounds/_manifest_entry.js */ "./src/addons/addons/editor-sounds/_manifest_entry.js");
4139
+ /* harmony import */ var _addons_folders_manifest_entry_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ../addons/folders/_manifest_entry.js */ "./src/addons/addons/folders/_manifest_entry.js");
4140
+ /* harmony import */ var _addons_block_switching_manifest_entry_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ../addons/block-switching/_manifest_entry.js */ "./src/addons/addons/block-switching/_manifest_entry.js");
4141
+ /* harmony import */ var _addons_load_extensions_manifest_entry_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ../addons/load-extensions/_manifest_entry.js */ "./src/addons/addons/load-extensions/_manifest_entry.js");
4142
+ /* harmony import */ var _addons_custom_zoom_manifest_entry_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ../addons/custom-zoom/_manifest_entry.js */ "./src/addons/addons/custom-zoom/_manifest_entry.js");
4143
+ /* harmony import */ var _addons_initialise_sprite_position_manifest_entry_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ../addons/initialise-sprite-position/_manifest_entry.js */ "./src/addons/addons/initialise-sprite-position/_manifest_entry.js");
4144
+ /* harmony import */ var _addons_blocks2image_manifest_entry_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ../addons/blocks2image/_manifest_entry.js */ "./src/addons/addons/blocks2image/_manifest_entry.js");
4145
+ /* harmony import */ var _addons_remove_curved_stage_border_manifest_entry_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ../addons/remove-curved-stage-border/_manifest_entry.js */ "./src/addons/addons/remove-curved-stage-border/_manifest_entry.js");
4146
+ /* harmony import */ var _addons_transparent_orphans_manifest_entry_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ../addons/transparent-orphans/_manifest_entry.js */ "./src/addons/addons/transparent-orphans/_manifest_entry.js");
4147
+ /* harmony import */ var _addons_paint_by_default_manifest_entry_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../addons/paint-by-default/_manifest_entry.js */ "./src/addons/addons/paint-by-default/_manifest_entry.js");
4148
+ /* harmony import */ var _addons_block_cherry_picking_manifest_entry_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../addons/block-cherry-picking/_manifest_entry.js */ "./src/addons/addons/block-cherry-picking/_manifest_entry.js");
4149
+ /* harmony import */ var _addons_hide_new_variables_manifest_entry_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../addons/hide-new-variables/_manifest_entry.js */ "./src/addons/addons/hide-new-variables/_manifest_entry.js");
4150
+ /* harmony import */ var _addons_editor_extra_keys_manifest_entry_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../addons/editor-extra-keys/_manifest_entry.js */ "./src/addons/addons/editor-extra-keys/_manifest_entry.js");
4151
+ /* harmony import */ var _addons_hide_delete_button_manifest_entry_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../addons/hide-delete-button/_manifest_entry.js */ "./src/addons/addons/hide-delete-button/_manifest_entry.js");
4152
+ /* harmony import */ var _addons_no_script_bumping_manifest_entry_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../addons/no-script-bumping/_manifest_entry.js */ "./src/addons/addons/no-script-bumping/_manifest_entry.js");
4153
+ /* harmony import */ var _addons_paint_gradient_maker_manifest_entry_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../addons/paint-gradient-maker/_manifest_entry.js */ "./src/addons/addons/paint-gradient-maker/_manifest_entry.js");
4154
+ /* harmony import */ var _addons_paint_rounded_rect_seperate_manifest_entry_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../addons/paint-rounded-rect-seperate/_manifest_entry.js */ "./src/addons/addons/paint-rounded-rect-seperate/_manifest_entry.js");
4155
+ /* harmony import */ var _addons_paint_default_smoothing_manifest_entry_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../addons/paint-default-smoothing/_manifest_entry.js */ "./src/addons/addons/paint-default-smoothing/_manifest_entry.js");
4156
+ /* harmony import */ var _addons_waveform_chunk_size_manifest_entry_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../addons/waveform-chunk-size/_manifest_entry.js */ "./src/addons/addons/waveform-chunk-size/_manifest_entry.js");
4157
+ /* harmony import */ var _addons_toolbox_full_blocks_on_hover_manifest_entry_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../addons/toolbox-full-blocks-on-hover/_manifest_entry.js */ "./src/addons/addons/toolbox-full-blocks-on-hover/_manifest_entry.js");
4158
+ /* harmony import */ var _addons_disable_stage_drag_select_manifest_entry_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../addons/disable-stage-drag-select/_manifest_entry.js */ "./src/addons/addons/disable-stage-drag-select/_manifest_entry.js");
4159
+ /* harmony import */ var _addons_move_to_top_bottom_manifest_entry_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../addons/move-to-top-bottom/_manifest_entry.js */ "./src/addons/addons/move-to-top-bottom/_manifest_entry.js");
4160
+ /* harmony import */ var _addons_multi_tab_code_manifest_entry_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../addons/multi-tab-code/_manifest_entry.js */ "./src/addons/addons/multi-tab-code/_manifest_entry.js");
4161
+ /* harmony import */ var _addons_editor_animations_manifest_entry_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../addons/editor-animations/_manifest_entry.js */ "./src/addons/addons/editor-animations/_manifest_entry.js");
4162
+ /* harmony import */ var _addons_reorder_custom_inputs_manifest_entry_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../addons/reorder-custom-inputs/_manifest_entry.js */ "./src/addons/addons/reorder-custom-inputs/_manifest_entry.js");
4163
+ /* harmony import */ var _addons_disable_paste_offset_manifest_entry_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../addons/disable-paste-offset/_manifest_entry.js */ "./src/addons/addons/disable-paste-offset/_manifest_entry.js");
4164
+ /* harmony import */ var _addons_block_duplicate_manifest_entry_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../addons/block-duplicate/_manifest_entry.js */ "./src/addons/addons/block-duplicate/_manifest_entry.js");
4165
+ /* harmony import */ var _addons_swap_local_global_manifest_entry_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../addons/swap-local-global/_manifest_entry.js */ "./src/addons/addons/swap-local-global/_manifest_entry.js");
4166
+ /* harmony import */ var _addons_editor_comment_previews_manifest_entry_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../addons/editor-comment-previews/_manifest_entry.js */ "./src/addons/addons/editor-comment-previews/_manifest_entry.js");
4167
+ /* harmony import */ var _addons_columns_manifest_entry_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../addons/columns/_manifest_entry.js */ "./src/addons/addons/columns/_manifest_entry.js");
4168
+ /* harmony import */ var _addons_number_pad_manifest_entry_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../addons/number-pad/_manifest_entry.js */ "./src/addons/addons/number-pad/_manifest_entry.js");
4169
+ /* harmony import */ var _addons_script_snap_manifest_entry_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../addons/script-snap/_manifest_entry.js */ "./src/addons/addons/script-snap/_manifest_entry.js");
4170
+ /* harmony import */ var _addons_fullscreen_manifest_entry_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../addons/fullscreen/_manifest_entry.js */ "./src/addons/addons/fullscreen/_manifest_entry.js");
4171
+ /* harmony import */ var _addons_hide_stage_manifest_entry_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../addons/hide-stage/_manifest_entry.js */ "./src/addons/addons/hide-stage/_manifest_entry.js");
4172
+ /* harmony import */ var _addons_tw_straighten_comments_manifest_entry_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../addons/tw-straighten-comments/_manifest_entry.js */ "./src/addons/addons/tw-straighten-comments/_manifest_entry.js");
4173
+ /* harmony import */ var _addons_tw_remove_feedback_manifest_entry_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../addons/tw-remove-feedback/_manifest_entry.js */ "./src/addons/addons/tw-remove-feedback/_manifest_entry.js");
4174
+ /* harmony import */ var _addons_tw_remove_backpack_manifest_entry_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../addons/tw-remove-backpack/_manifest_entry.js */ "./src/addons/addons/tw-remove-backpack/_manifest_entry.js");
4175
+ /* harmony import */ var _addons_tw_disable_cloud_variables_manifest_entry_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../addons/tw-disable-cloud-variables/_manifest_entry.js */ "./src/addons/addons/tw-disable-cloud-variables/_manifest_entry.js");
4176
  /* generated by pull.js */
4177
 
4178
 
 
4251
 
4252
 
4253
 
4254
+
4255
 
4256
 
4257
  /* harmony default export */ __webpack_exports__["default"] = ({
4258
+ "paint-gradient-maker": _addons_paint_gradient_maker_manifest_entry_js__WEBPACK_IMPORTED_MODULE_56__["default"],
4259
+ "sounds-newgrounds-button": _addons_sounds_newgrounds_button_manifest_entry_js__WEBPACK_IMPORTED_MODULE_1__["default"],
4260
+ "paint-rounded-rect-seperate": _addons_paint_rounded_rect_seperate_manifest_entry_js__WEBPACK_IMPORTED_MODULE_57__["default"],
4261
+ "paint-tool-panel": _addons_paint_tool_panel_manifest_entry_js__WEBPACK_IMPORTED_MODULE_7__["default"],
4262
+ "paint-default-smoothing": _addons_paint_default_smoothing_manifest_entry_js__WEBPACK_IMPORTED_MODULE_58__["default"],
4263
+ "toolbox-full-blocks-on-hover": _addons_toolbox_full_blocks_on_hover_manifest_entry_js__WEBPACK_IMPORTED_MODULE_60__["default"],
4264
+ "waveform-chunk-size": _addons_waveform_chunk_size_manifest_entry_js__WEBPACK_IMPORTED_MODULE_59__["default"],
4265
+ "fps": _addons_fps_manifest_entry_js__WEBPACK_IMPORTED_MODULE_3__["default"],
4266
+ "debug-console": _addons_debug_console_manifest_entry_js__WEBPACK_IMPORTED_MODULE_4__["default"],
4267
+ "ScratchHighlightFullwidthNumber": _addons_cat_blocks_manifest_entry_js__WEBPACK_IMPORTED_MODULE_2__["default"],
4268
+ "cat-blocks": _addons_cat_blocks_manifest_entry_js__WEBPACK_IMPORTED_MODULE_2__["default"],
4269
+ "editor-devtools": _addons_ScratchHighlightFullwidthNumber_manifest_entry_js__WEBPACK_IMPORTED_MODULE_5__["default"],
4270
+ "find-bar": _addons_find_bar_manifest_entry_js__WEBPACK_IMPORTED_MODULE_6__["default"],
4271
+ "middle-click-popup": _addons_middle_click_popup_manifest_entry_js__WEBPACK_IMPORTED_MODULE_8__["default"],
4272
+ "editor-block-chomping": _addons_editor_block_chomping_manifest_entry_js__WEBPACK_IMPORTED_MODULE_9__["default"],
4273
+ "jump-to-def": _addons_jump_to_def_manifest_entry_js__WEBPACK_IMPORTED_MODULE_10__["default"],
4274
+ "editor-searchable-dropdowns": _addons_editor_searchable_dropdowns_manifest_entry_js__WEBPACK_IMPORTED_MODULE_11__["default"],
4275
+ "block-palette-icons": _addons_block_palette_icons_manifest_entry_js__WEBPACK_IMPORTED_MODULE_12__["default"],
4276
+ "hide-flyout": _addons_hide_flyout_manifest_entry_js__WEBPACK_IMPORTED_MODULE_13__["default"],
4277
+ "mediarecorder": _addons_mediarecorder_manifest_entry_js__WEBPACK_IMPORTED_MODULE_14__["default"],
4278
+ "drag-drop": _addons_drag_drop_manifest_entry_js__WEBPACK_IMPORTED_MODULE_15__["default"],
4279
+ "debugger": _addons_debugger_manifest_entry_js__WEBPACK_IMPORTED_MODULE_16__["default"],
4280
+ "mute-project": _addons_mute_project_manifest_entry_js__WEBPACK_IMPORTED_MODULE_17__["default"],
4281
+ "vol-slider": _addons_vol_slider_manifest_entry_js__WEBPACK_IMPORTED_MODULE_18__["default"],
4282
+ "clones": _addons_clones_manifest_entry_js__WEBPACK_IMPORTED_MODULE_19__["default"],
4283
+ "mouse-pos": _addons_mouse_pos_manifest_entry_js__WEBPACK_IMPORTED_MODULE_20__["default"],
4284
+ "color-picker": _addons_color_picker_manifest_entry_js__WEBPACK_IMPORTED_MODULE_21__["default"],
4285
+ "remove-sprite-confirm": _addons_remove_sprite_confirm_manifest_entry_js__WEBPACK_IMPORTED_MODULE_22__["default"],
4286
+ "block-count": _addons_block_count_manifest_entry_js__WEBPACK_IMPORTED_MODULE_23__["default"],
4287
+ "onion-skinning": _addons_onion_skinning_manifest_entry_js__WEBPACK_IMPORTED_MODULE_24__["default"],
4288
+ "paint-snap": _addons_paint_snap_manifest_entry_js__WEBPACK_IMPORTED_MODULE_25__["default"],
4289
+ "default-costume-editor-color": _addons_default_costume_editor_color_manifest_entry_js__WEBPACK_IMPORTED_MODULE_26__["default"],
4290
+ "bitmap-copy": _addons_bitmap_copy_manifest_entry_js__WEBPACK_IMPORTED_MODULE_27__["default"],
4291
+ "2d-color-picker": _addons_2d_color_picker_manifest_entry_js__WEBPACK_IMPORTED_MODULE_28__["default"],
4292
+ "better-img-uploads": _addons_better_img_uploads_manifest_entry_js__WEBPACK_IMPORTED_MODULE_29__["default"],
4293
+ "pick-colors-from-stage": _addons_pick_colors_from_stage_manifest_entry_js__WEBPACK_IMPORTED_MODULE_30__["default"],
4294
+ "custom-block-shape": _addons_custom_block_shape_manifest_entry_js__WEBPACK_IMPORTED_MODULE_31__["default"],
4295
+ "zebra-striping": _addons_zebra_striping_manifest_entry_js__WEBPACK_IMPORTED_MODULE_32__["default"],
4296
+ "editor-theme3": _addons_editor_theme3_manifest_entry_js__WEBPACK_IMPORTED_MODULE_33__["default"],
4297
+ "custom-block-text": _addons_custom_block_text_manifest_entry_js__WEBPACK_IMPORTED_MODULE_34__["default"],
4298
+ "editor-colored-context-menus": _addons_editor_colored_context_menus_manifest_entry_js__WEBPACK_IMPORTED_MODULE_35__["default"],
4299
+ "editor-stage-left": _addons_editor_stage_left_manifest_entry_js__WEBPACK_IMPORTED_MODULE_36__["default"],
4300
+ "editor-buttons-reverse-order": _addons_editor_buttons_reverse_order_manifest_entry_js__WEBPACK_IMPORTED_MODULE_37__["default"],
4301
+ "search-sprites": _addons_search_sprites_manifest_entry_js__WEBPACK_IMPORTED_MODULE_38__["default"],
4302
+ "sprite-properties": _addons_sprite_properties_manifest_entry_js__WEBPACK_IMPORTED_MODULE_39__["default"],
4303
+ "gamepad": _addons_gamepad_manifest_entry_js__WEBPACK_IMPORTED_MODULE_40__["default"],
4304
+ "editor-sounds": _addons_editor_sounds_manifest_entry_js__WEBPACK_IMPORTED_MODULE_41__["default"],
4305
+ "folders": _addons_folders_manifest_entry_js__WEBPACK_IMPORTED_MODULE_42__["default"],
4306
+ "block-switching": _addons_block_switching_manifest_entry_js__WEBPACK_IMPORTED_MODULE_43__["default"],
4307
+ "load-extensions": _addons_load_extensions_manifest_entry_js__WEBPACK_IMPORTED_MODULE_44__["default"],
4308
+ "custom-zoom": _addons_custom_zoom_manifest_entry_js__WEBPACK_IMPORTED_MODULE_45__["default"],
4309
+ "initialise-sprite-position": _addons_initialise_sprite_position_manifest_entry_js__WEBPACK_IMPORTED_MODULE_46__["default"],
4310
+ "blocks2image": _addons_blocks2image_manifest_entry_js__WEBPACK_IMPORTED_MODULE_47__["default"],
4311
+ "remove-curved-stage-border": _addons_remove_curved_stage_border_manifest_entry_js__WEBPACK_IMPORTED_MODULE_48__["default"],
4312
+ "transparent-orphans": _addons_transparent_orphans_manifest_entry_js__WEBPACK_IMPORTED_MODULE_49__["default"],
4313
+ "paint-by-default": _addons_paint_by_default_manifest_entry_js__WEBPACK_IMPORTED_MODULE_50__["default"],
4314
+ "block-cherry-picking": _addons_block_cherry_picking_manifest_entry_js__WEBPACK_IMPORTED_MODULE_51__["default"],
4315
+ "hide-new-variables": _addons_hide_new_variables_manifest_entry_js__WEBPACK_IMPORTED_MODULE_52__["default"],
4316
+ "editor-extra-keys": _addons_editor_extra_keys_manifest_entry_js__WEBPACK_IMPORTED_MODULE_53__["default"],
4317
  "toolbox-category-drag": _addons_toolbox_category_drag_manifest_entry_js__WEBPACK_IMPORTED_MODULE_0__["default"],
4318
+ "hide-delete-button": _addons_hide_delete_button_manifest_entry_js__WEBPACK_IMPORTED_MODULE_54__["default"],
4319
+ "no-script-bumping": _addons_no_script_bumping_manifest_entry_js__WEBPACK_IMPORTED_MODULE_55__["default"],
4320
+ "disable-stage-drag-select": _addons_disable_stage_drag_select_manifest_entry_js__WEBPACK_IMPORTED_MODULE_61__["default"],
4321
+ "move-to-top-bottom": _addons_move_to_top_bottom_manifest_entry_js__WEBPACK_IMPORTED_MODULE_62__["default"],
4322
+ "disable-paste-offset": _addons_disable_paste_offset_manifest_entry_js__WEBPACK_IMPORTED_MODULE_66__["default"],
4323
+ "block-duplicate": _addons_block_duplicate_manifest_entry_js__WEBPACK_IMPORTED_MODULE_67__["default"],
4324
+ "swap-local-global": _addons_swap_local_global_manifest_entry_js__WEBPACK_IMPORTED_MODULE_68__["default"],
4325
+ "editor-comment-previews": _addons_editor_comment_previews_manifest_entry_js__WEBPACK_IMPORTED_MODULE_69__["default"],
4326
+ "columns": _addons_columns_manifest_entry_js__WEBPACK_IMPORTED_MODULE_70__["default"],
4327
+ "number-pad": _addons_number_pad_manifest_entry_js__WEBPACK_IMPORTED_MODULE_71__["default"],
4328
+ "script-snap": _addons_script_snap_manifest_entry_js__WEBPACK_IMPORTED_MODULE_72__["default"],
4329
+ "fullscreen": _addons_fullscreen_manifest_entry_js__WEBPACK_IMPORTED_MODULE_73__["default"],
4330
+ "hide-stage": _addons_hide_stage_manifest_entry_js__WEBPACK_IMPORTED_MODULE_74__["default"],
4331
+ "tw-straighten-comments": _addons_tw_straighten_comments_manifest_entry_js__WEBPACK_IMPORTED_MODULE_75__["default"],
4332
+ "tw-remove-feedback": _addons_tw_remove_feedback_manifest_entry_js__WEBPACK_IMPORTED_MODULE_76__["default"],
4333
+ "tw-remove-backpack": _addons_tw_remove_backpack_manifest_entry_js__WEBPACK_IMPORTED_MODULE_77__["default"],
4334
+ "tw-disable-cloud-variables": _addons_tw_disable_cloud_variables_manifest_entry_js__WEBPACK_IMPORTED_MODULE_78__["default"],
4335
+ "vol-slider": _addons_vol_slider_manifest_entry_js__WEBPACK_IMPORTED_MODULE_18__["default"],
4336
+ "multi-tab-code": _addons_multi_tab_code_manifest_entry_js__WEBPACK_IMPORTED_MODULE_63__["default"],
4337
+ "editor-animations": _addons_editor_animations_manifest_entry_js__WEBPACK_IMPORTED_MODULE_64__["default"],
4338
+ "reorder-custom-inputs": _addons_reorder_custom_inputs_manifest_entry_js__WEBPACK_IMPORTED_MODULE_65__["default"]
4339
  });
4340
 
4341
  /***/ }),
js/addon-settings~addons~editor~fullscreen~player~playground.js.map CHANGED
The diff for this file is too large to render. See raw diff
 
js/addons.js CHANGED
@@ -62,10 +62,10 @@ const getPrecedence = addonId => addonPrecedence.indexOf(addonId) + 1;
62
  /*!****************************************!*\
63
  !*** ./src/addons/addons-l10n/en.json ***!
64
  \****************************************/
65
- /*! exports provided: editor-devtools/clean-plus, editor-devtools/copy-all, editor-devtools/copy-block, editor-devtools/cut-block, editor-devtools/lists, editor-devtools/make-space, editor-devtools/orphaned, editor-devtools/paste, editor-devtools/replace, editor-devtools/swap, editor-devtools/unused-list, editor-devtools/unused-var, editor-devtools/var-not-exist, editor-devtools/variables, find-bar/complex-broadcast, find-bar/find-placeholder, middle-click-popup/start-typing, editor-searchable-dropdowns/createBroadcast, editor-searchable-dropdowns/createGlobalList, editor-searchable-dropdowns/createGlobalVariable, editor-searchable-dropdowns/createLocalList, editor-searchable-dropdowns/createLocalVariable, data-category-tweaks-v2/for-all-sprites, data-category-tweaks-v2/for-this-sprite-only, data-category-tweaks-v2/list-category, hide-flyout/lock, hide-flyout/unlock, mediarecorder/cancel, mediarecorder/click-flag, mediarecorder/click-flag-description, mediarecorder/option-title, mediarecorder/record, mediarecorder/record-after-flag, mediarecorder/record-audio, mediarecorder/record-audio-description, mediarecorder/record-description, mediarecorder/record-duration, mediarecorder/record-mic, mediarecorder/record-until-stop, mediarecorder/record-until-stop-disabled, mediarecorder/start, mediarecorder/start-delay, mediarecorder/starting-in, mediarecorder/stop, debugger/block-breakpoint, debugger/block-error, debugger/block-log, debugger/block-warn, debugger/cannot-pause-player, debugger/clear, debugger/clone-of, debugger/close, debugger/console, debugger/debug, debugger/empty-string, debugger/enter-format, debugger/export, debugger/export-desc, debugger/icon-error, debugger/icon-warn, debugger/log-msg-broadcasted, debugger/log-msg-clone-cap, debugger/log-msg-clone-created, debugger/log-msg-flag-clicked, debugger/no-logs, debugger/no-threads-running, debugger/step, debugger/step-desc, debugger/tab-logs, debugger/tab-threads, debugger/thread, debugger/unknown-sprite, debugger/unpause, pause/pause, clones/clones, color-picker/hex, remove-sprite-confirm/confirm, block-count/blocks, onion-skinning/behind, onion-skinning/front, onion-skinning/layering, onion-skinning/merge, onion-skinning/mode, onion-skinning/next, onion-skinning/opacity, onion-skinning/opacityStep, onion-skinning/previous, onion-skinning/settings, onion-skinning/tint, onion-skinning/toggle, paint-snap/boxCenter, paint-snap/boxCorners, paint-snap/boxEdgeMids, paint-snap/objectCenters, paint-snap/objectCorners, paint-snap/objectEdges, paint-snap/objectMidlines, paint-snap/off, paint-snap/on, paint-snap/pageAxes, paint-snap/pageCenter, paint-snap/pageCorners, paint-snap/pageEdges, paint-snap/settings, paint-snap/snapFrom, paint-snap/snapTo, paint-snap/threshold, paint-snap/toggle, 2d-color-picker/shade, better-img-uploads/upload, variable-manager/for-all-sprites, variable-manager/for-this-sprite, variable-manager/search, variable-manager/too-big, variable-manager/variables, search-sprites/placeholder, sprite-properties/close-properties-panel-tooltip, sprite-properties/open-properties-panel-tooltip, gamepad/axes-a-b, gamepad/axis-arrows, gamepad/axis-cursor, gamepad/axis-custom, gamepad/axis-none, gamepad/browser-support, gamepad/button-n, gamepad/clear, gamepad/config-header, gamepad/key-click, gamepad/key-down, gamepad/key-enter, gamepad/key-left, gamepad/key-none, gamepad/key-right, gamepad/key-space, gamepad/key-up, gamepad/keyinput-title, gamepad/no-controllers, gamepad/reset, gamepad/settings, gamepad/store-in-project, folders/add-to-folder, folders/closed-folder, folders/confirm-backpack-folder, folders/create-folder, folders/name-not-allowed, folders/name-prompt, folders/name-prompt-title, folders/open-folder, folders/remove-folder, folders/remove-from-folder, folders/rename-folder, folders/rename-folder-prompt, folders/rename-folder-prompt-title, block-switching/control_forever, block-switching/control_if, block-switching/control_if_else, block-switching/control_repeat_until, block-switching/control_while, block-switching/control_wait_until, block-switching/data_changevariableby, block-switching/data_deletealloflist, block-switching/data_deleteoflist, block-switching/data_hidelist, block-switching/data_hidevariable, block-switching/data_insertatlist, block-switching/data_replaceitemoflist, block-switching/data_setvariableto, block-switching/data_showlist, block-switching/data_showvariable, block-switching/debugger_error, block-switching/debugger_log, block-switching/debugger_warn, block-switching/event_broadcast, block-switching/event_broadcastandwait, block-switching/looks_backdropnumbername, block-switching/looks_changeeffectby, block-switching/looks_changesizeby, block-switching/looks_costumenumbername, block-switching/looks_goforwardbackwardlayers, block-switching/looks_gotofrontback, block-switching/looks_hide, block-switching/looks_nextbackdrop, block-switching/looks_nextcostume, block-switching/looks_say, block-switching/looks_sayforsecs, block-switching/looks_seteffectto, block-switching/looks_setsizeto, block-switching/looks_show, block-switching/looks_switchbackdropto, block-switching/looks_switchbackdroptoandwait, block-switching/looks_think, block-switching/looks_thinkforsecs, block-switching/motion_changexby, block-switching/motion_changeyby, block-switching/motion_setx, block-switching/motion_sety, block-switching/motion_changebyxy, block-switching/motion_gotoxy, block-switching/motion_turnleft, block-switching/motion_turnright, block-switching/motion_xposition, block-switching/motion_yposition, block-switching/music_changeTempo, block-switching/music_setTempo, block-switching/operator_add, block-switching/operator_and, block-switching/operator_divide, block-switching/operator_equals, block-switching/operator_notequal, block-switching/operator_gt, block-switching/operator_lt, block-switching/operator_gtorequal, block-switching/operator_ltorequal, block-switching/operator_mod, block-switching/operator_multiply, block-switching/operator_or, block-switching/operator_subtract, block-switching/operator_trueBoolean, block-switching/operator_falseBoolean, block-switching/operator_power, block-switching/pen_changePenColorParamBy, block-switching/pen_changePenHueBy, block-switching/pen_changePenShadeBy, block-switching/pen_changePenSizeBy, block-switching/pen_penDown, block-switching/pen_penUp, block-switching/pen_setPenColorParamTo, block-switching/pen_setPenHueToNumber, block-switching/pen_setPenShadeToNumber, block-switching/pen_setPenSizeTo, block-switching/sensing_coloristouchingcolor, block-switching/sensing_mousex, block-switching/sensing_mousey, block-switching/sensing_touchingcolor, block-switching/sound_changeeffectby, block-switching/sound_changevolumeby, block-switching/sound_play, block-switching/sound_playuntildone, block-switching/sound_seteffectto, block-switching/sound_setvolumeto, blocks2image/error_blocks_not_added, blocks2image/export_all_to_PNG, blocks2image/export_all_to_SVG, blocks2image/export_selected_to_PNG, blocks2image/export_selected_to_SVG, editor-extra-keys/enter-key, move-to-top-bottom/bottom, move-to-top-bottom/top, swap-local-global/cant-convert-cloud, swap-local-global/cant-convert-conflict, swap-local-global/cant-convert-stage, swap-local-global/cant-convert-to-local, swap-local-global/cant-convert-used-elsewhere, swap-local-global/edit, swap-local-global/edit-list-header, swap-local-global/edit-list-option, swap-local-global/edit-variable-header, swap-local-global/edit-variable-option, swap-local-global/to-global, swap-local-global/to-local, hide-stage/hide-stage, default */
66
  /***/ (function(module) {
67
 
68
- module.exports = JSON.parse("{\"editor-devtools/clean-plus\":\"Clean up Blocks +\",\"editor-devtools/copy-all\":\"Copy All\",\"editor-devtools/copy-block\":\"Copy Block\",\"editor-devtools/cut-block\":\"Cut Block\",\"editor-devtools/lists\":\"lists\",\"editor-devtools/make-space\":\"Make Space\",\"editor-devtools/orphaned\":\"{count, plural, one {Developer tools: Delete 1 orphaned reporter block?} other {Developer tools: Delete # orphaned reporter blocks?} }\",\"editor-devtools/paste\":\"Paste\",\"editor-devtools/replace\":\"Developer tools: Switch all {name} in this sprite for the variable named:\",\"editor-devtools/swap\":\"Swap {var} in Sprite\",\"editor-devtools/unused-list\":\"{count, plural, one {Developer tools: Delete 1 unused local list? Here it is:\\n} other {Developer tools: Delete # unused local lists? Here they are:\\n} }\",\"editor-devtools/unused-var\":\"{count, plural, one {Developer tools: Delete 1 unused local variable? Here it is:\\n} other {Developer tools: Delete # unused local variables? Here they are:\\n} }\",\"editor-devtools/var-not-exist\":\"That variable does not exist...\",\"editor-devtools/variables\":\"variables\",\"find-bar/complex-broadcast\":\"(expression)\",\"find-bar/find-placeholder\":\"Find (Ctrl+F)\",\"middle-click-popup/start-typing\":\"Start Typing...\",\"editor-searchable-dropdowns/createBroadcast\":\"Create message \\\"{name}\\\"\",\"editor-searchable-dropdowns/createGlobalList\":\"Create list \\\"{name}\\\" for all sprites\",\"editor-searchable-dropdowns/createGlobalVariable\":\"Create variable \\\"{name}\\\" for all sprites\",\"editor-searchable-dropdowns/createLocalList\":\"Create list \\\"{name}\\\" for this sprite only\",\"editor-searchable-dropdowns/createLocalVariable\":\"Create variable \\\"{name}\\\" for this sprite only\",\"data-category-tweaks-v2/for-all-sprites\":\"For all sprites:\",\"data-category-tweaks-v2/for-this-sprite-only\":\"For this sprite only:\",\"data-category-tweaks-v2/list-category\":\"Lists\",\"hide-flyout/lock\":\"Lock Palette\",\"hide-flyout/unlock\":\"Unlock Palette\",\"mediarecorder/cancel\":\"Cancel\",\"mediarecorder/click-flag\":\"Waiting...\",\"mediarecorder/click-flag-description\":\"Click the green flag to start recording. Click this button to stop.\",\"mediarecorder/option-title\":\"Record Options\",\"mediarecorder/record\":\"Record\",\"mediarecorder/record-after-flag\":\"Do not start recording until the Green Flag is clicked\",\"mediarecorder/record-audio\":\"Include project sounds\",\"mediarecorder/record-audio-description\":\"This does not include Text-to-Speech.\",\"mediarecorder/record-description\":\"Record the stage as an MP4 or WebM file. You can save it to your computer after the recording is finished.\\nNote: variable and list monitors will not be visible.\",\"mediarecorder/record-duration\":\"Record Duration (in seconds)\",\"mediarecorder/record-mic\":\"Include sounds from microphone\",\"mediarecorder/record-until-stop\":\"Stop recording after the project has stopped\",\"mediarecorder/record-until-stop-disabled\":\"You need to enable \\\"{afterFlagOption}\\\" to use this option.\",\"mediarecorder/start\":\"Start\",\"mediarecorder/start-delay\":\"Start Delay (in seconds)\",\"mediarecorder/starting-in\":\"Starting in {secs}...\",\"mediarecorder/stop\":\"Stop Recording\",\"debugger/block-breakpoint\":\"breakpoint\",\"debugger/block-error\":\"error %s\",\"debugger/block-log\":\"log %s\",\"debugger/block-warn\":\"warn %s\",\"debugger/cannot-pause-player\":\"Breakpoint block can only be used while on the editor.\",\"debugger/clear\":\"Clear\",\"debugger/clone-of\":\"Clone of {sprite}\",\"debugger/close\":\"Close\",\"debugger/console\":\"Logs\",\"debugger/debug\":\"Debug\",\"debugger/empty-string\":\"(empty string)\",\"debugger/enter-format\":\"Enter export format:\",\"debugger/export\":\"Export\",\"debugger/export-desc\":\"Click while holding Shift to customize export format.\",\"debugger/icon-error\":\"Error\",\"debugger/icon-warn\":\"Warning\",\"debugger/log-msg-broadcasted\":\"Broadcasted '{broadcast}'.\",\"debugger/log-msg-clone-cap\":\"Failed to create clone of '{sprite}', cannot create over 300 clones.\",\"debugger/log-msg-clone-created\":\"Created clone of '{sprite}'.\",\"debugger/log-msg-flag-clicked\":\"Green flag clicked.\",\"debugger/no-logs\":\"There are no logs to display.\",\"debugger/no-threads-running\":\"No threads running.\",\"debugger/step\":\"Step\",\"debugger/step-desc\":\"Executes one block.\",\"debugger/tab-logs\":\"Logs\",\"debugger/tab-threads\":\"Threads\",\"debugger/thread\":\"Thread {id}\",\"debugger/unknown-sprite\":\"(unknown sprite)\",\"debugger/unpause\":\"Resume\",\"pause/pause\":\"Pause\",\"clones/clones\":\"clones: {cloneCount}\",\"color-picker/hex\":\"hex color\",\"remove-sprite-confirm/confirm\":\"Do you want to delete the sprite?\",\"block-count/blocks\":\"{num, plural, one {1 block} other {# blocks}}\",\"onion-skinning/behind\":\"Behind\",\"onion-skinning/front\":\"Front\",\"onion-skinning/layering\":\"Layering\",\"onion-skinning/merge\":\"Merge\",\"onion-skinning/mode\":\"Mode\",\"onion-skinning/next\":\"Next costumes\",\"onion-skinning/opacity\":\"Opacity (%)\",\"onion-skinning/opacityStep\":\"Opacity step (%)\",\"onion-skinning/previous\":\"Previous costumes\",\"onion-skinning/settings\":\"Onion Skinning Settings\",\"onion-skinning/tint\":\"Tint\",\"onion-skinning/toggle\":\"Toggle Onion Skinning\",\"paint-snap/boxCenter\":\"Center of selection\",\"paint-snap/boxCorners\":\"Corners of selection\",\"paint-snap/boxEdgeMids\":\"Selection edge midpoints\",\"paint-snap/objectCenters\":\"Centers of objects\",\"paint-snap/objectCorners\":\"Corners of objects\",\"paint-snap/objectEdges\":\"Edges of objects\",\"paint-snap/objectMidlines\":\"Midlines of objects\",\"paint-snap/off\":\"Off\",\"paint-snap/on\":\"On\",\"paint-snap/pageAxes\":\"Page x and y axes\",\"paint-snap/pageCenter\":\"Center of the page\",\"paint-snap/pageCorners\":\"Corners of the page\",\"paint-snap/pageEdges\":\"Edges of the page\",\"paint-snap/settings\":\"Snap Settings\",\"paint-snap/snapFrom\":\"Snap from:\",\"paint-snap/snapTo\":\"Snap to:\",\"paint-snap/threshold\":\"Snapping distance\",\"paint-snap/toggle\":\"Toggle Snapping\",\"2d-color-picker/shade\":\"Shade\",\"better-img-uploads/upload\":\"HD Upload\",\"variable-manager/for-all-sprites\":\"Variables for all sprites\",\"variable-manager/for-this-sprite\":\"Variables for this sprite\",\"variable-manager/search\":\"Search\",\"variable-manager/too-big\":\"Click to display very large value.\",\"variable-manager/variables\":\"Variables\",\"search-sprites/placeholder\":\"Search sprites...\",\"sprite-properties/close-properties-panel-tooltip\":\"Collapse properties panel\",\"sprite-properties/open-properties-panel-tooltip\":\"Open properties panel\",\"gamepad/axes-a-b\":\"Axes {a} & {b}\",\"gamepad/axis-arrows\":\"Arrow Keys\",\"gamepad/axis-cursor\":\"Cursor\",\"gamepad/axis-custom\":\"Custom\",\"gamepad/axis-none\":\"None\",\"gamepad/browser-support\":\"This browser and operating system have known bugs that may make this addon difficult to use. Try another browser if you encounter problems.\",\"gamepad/button-n\":\"Button {n}\",\"gamepad/clear\":\"Clear all controls\",\"gamepad/config-header\":\"This comment contains configuration for gamepad support in third-party tools or websites such as https://turbowarp.org/\\nDo not edit by hand\",\"gamepad/key-click\":\"Click\",\"gamepad/key-down\":\"Down\",\"gamepad/key-enter\":\"Enter\",\"gamepad/key-left\":\"Left\",\"gamepad/key-none\":\"(none)\",\"gamepad/key-right\":\"Right\",\"gamepad/key-space\":\"Space\",\"gamepad/key-up\":\"Up\",\"gamepad/keyinput-title\":\"Click and press a key or click to change button. Escape to cancel. Backspace or delete to clear.\",\"gamepad/no-controllers\":\"No controllers detected. Try plugging one in and pressing a button on it.\",\"gamepad/reset\":\"Reset all controls to project defaults\",\"gamepad/settings\":\"Gamepad Settings\",\"gamepad/store-in-project\":\"Store these settings in the project to override the default configuration (Experimental tool for project creators)\",\"folders/add-to-folder\":\"add to folder: {folder}\",\"folders/closed-folder\":\"Folder\",\"folders/confirm-backpack-folder\":\"Save entire folder to backpack?\",\"folders/create-folder\":\"create folder\",\"folders/name-not-allowed\":\"Invalid folder name\",\"folders/name-prompt\":\"Name of folder:\",\"folders/name-prompt-title\":\"Create Folder\",\"folders/open-folder\":\"Opened\",\"folders/remove-folder\":\"remove folder\",\"folders/remove-from-folder\":\"remove from folder\",\"folders/rename-folder\":\"rename folder\",\"folders/rename-folder-prompt\":\"Rename folder to:\",\"folders/rename-folder-prompt-title\":\"Rename Folder\",\"block-switching/control_forever\":\"forever\",\"block-switching/control_if\":\"if\",\"block-switching/control_if_else\":\"if... else\",\"block-switching/control_repeat_until\":\"repeat until\",\"block-switching/control_while\":\"while\",\"block-switching/control_wait_until\":\"wait until\",\"block-switching/data_changevariableby\":\"change variable\",\"block-switching/data_deletealloflist\":\"delete all\",\"block-switching/data_deleteoflist\":\"delete item\",\"block-switching/data_hidelist\":\"hide list\",\"block-switching/data_hidevariable\":\"hide variable\",\"block-switching/data_insertatlist\":\"insert item\",\"block-switching/data_replaceitemoflist\":\"replace item\",\"block-switching/data_setvariableto\":\"set variable\",\"block-switching/data_showlist\":\"show list\",\"block-switching/data_showvariable\":\"show variable\",\"block-switching/debugger_error\":\"error\",\"block-switching/debugger_log\":\"log\",\"block-switching/debugger_warn\":\"warn\",\"block-switching/event_broadcast\":\"broadcast\",\"block-switching/event_broadcastandwait\":\"broadcast and wait\",\"block-switching/looks_backdropnumbername\":\"backdrop number or name\",\"block-switching/looks_changeeffectby\":\"change effect\",\"block-switching/looks_changesizeby\":\"change size\",\"block-switching/looks_costumenumbername\":\"costume number or name\",\"block-switching/looks_goforwardbackwardlayers\":\"go forward or backward layers\",\"block-switching/looks_gotofrontback\":\"go to front or back layer\",\"block-switching/looks_hide\":\"hide\",\"block-switching/looks_nextbackdrop\":\"next backdrop\",\"block-switching/looks_nextcostume\":\"next costume\",\"block-switching/looks_say\":\"say\",\"block-switching/looks_sayforsecs\":\"say for seconds\",\"block-switching/looks_seteffectto\":\"set effect\",\"block-switching/looks_setsizeto\":\"set size\",\"block-switching/looks_show\":\"show\",\"block-switching/looks_switchbackdropto\":\"switch backdrop\",\"block-switching/looks_switchbackdroptoandwait\":\"switch backdrop and wait\",\"block-switching/looks_think\":\"think\",\"block-switching/looks_thinkforsecs\":\"think for seconds\",\"block-switching/motion_changexby\":\"change x\",\"block-switching/motion_changeyby\":\"change y\",\"block-switching/motion_setx\":\"set x\",\"block-switching/motion_sety\":\"set y\",\"block-switching/motion_changebyxy\":\"change by x y\",\"block-switching/motion_gotoxy\":\"goto x y\",\"block-switching/motion_turnleft\":\"turn left\",\"block-switching/motion_turnright\":\"turn right\",\"block-switching/motion_xposition\":\"x position\",\"block-switching/motion_yposition\":\"y position\",\"block-switching/music_changeTempo\":\"change tempo\",\"block-switching/music_setTempo\":\"set tempo\",\"block-switching/operator_add\":\"+\",\"block-switching/operator_and\":\"and\",\"block-switching/operator_divide\":\"/\",\"block-switching/operator_equals\":\"=\",\"block-switching/operator_notequal\":\"≠\",\"block-switching/operator_gt\":\">\",\"block-switching/operator_lt\":\"<\",\"block-switching/operator_gtorequal\":\"≥\",\"block-switching/operator_ltorequal\":\"≤\",\"block-switching/operator_mod\":\"mod\",\"block-switching/operator_multiply\":\"*\",\"block-switching/operator_or\":\"or\",\"block-switching/operator_subtract\":\"-\",\"block-switching/operator_trueBoolean\":\"true\",\"block-switching/operator_falseBoolean\":\"false\",\"block-switching/operator_power\":\"^\",\"block-switching/pen_changePenColorParamBy\":\"change parameter\",\"block-switching/pen_changePenHueBy\":\"change hue\",\"block-switching/pen_changePenShadeBy\":\"change shade\",\"block-switching/pen_changePenSizeBy\":\"change size\",\"block-switching/pen_penDown\":\"pen down\",\"block-switching/pen_penUp\":\"pen up\",\"block-switching/pen_setPenColorParamTo\":\"set parameter\",\"block-switching/pen_setPenHueToNumber\":\"set hue\",\"block-switching/pen_setPenShadeToNumber\":\"set shade\",\"block-switching/pen_setPenSizeTo\":\"set size\",\"block-switching/sensing_coloristouchingcolor\":\"color touching color\",\"block-switching/sensing_mousex\":\"mouse x\",\"block-switching/sensing_mousey\":\"mouse y\",\"block-switching/sensing_touchingcolor\":\"touching color\",\"block-switching/sound_changeeffectby\":\"change effect\",\"block-switching/sound_changevolumeby\":\"change volume\",\"block-switching/sound_play\":\"start\",\"block-switching/sound_playuntildone\":\"play until done\",\"block-switching/sound_seteffectto\":\"set effect\",\"block-switching/sound_setvolumeto\":\"set volume\",\"blocks2image/error_blocks_not_added\":\"Add blocks to workspace!\",\"blocks2image/export_all_to_PNG\":\"Export all as PNG\",\"blocks2image/export_all_to_SVG\":\"Export all as SVG\",\"blocks2image/export_selected_to_PNG\":\"Export block as PNG\",\"blocks2image/export_selected_to_SVG\":\"Export block as SVG\",\"editor-extra-keys/enter-key\":\"enter\",\"move-to-top-bottom/bottom\":\"move to bottom\",\"move-to-top-bottom/top\":\"move to top\",\"swap-local-global/cant-convert-cloud\":\"Cloud variables can't be converted to this sprite only.\",\"swap-local-global/cant-convert-conflict\":\"Can't convert because it would conflict with variables in another sprite: {sprites}\",\"swap-local-global/cant-convert-stage\":\"The stage can't have variables for this sprite only.\",\"swap-local-global/cant-convert-to-local\":\"Can't convert because it's used by multiple sprites: {sprites}\",\"swap-local-global/cant-convert-used-elsewhere\":\"Can't convert because it's used by another sprite: {sprite}\",\"swap-local-global/edit\":\"Edit properties:\",\"swap-local-global/edit-list-header\":\"Edit List\",\"swap-local-global/edit-list-option\":\"Rename or edit list\",\"swap-local-global/edit-variable-header\":\"Edit Variable\",\"swap-local-global/edit-variable-option\":\"Rename or edit variable\",\"swap-local-global/to-global\":\"Convert to \\\"For all sprites\\\"\",\"swap-local-global/to-local\":\"Convert to \\\"For this sprite only\\\"\",\"hide-stage/hide-stage\":\"Hide stage\"}");
69
 
70
  /***/ }),
71
 
@@ -1451,21 +1451,27 @@ class Tab extends _event_target__WEBPACK_IMPORTED_MODULE_3__["default"] {
1451
  let {
1452
  isOpen = false
1453
  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1454
- return _modal__WEBPACK_IMPORTED_MODULE_10__["createEditorModal"](this, title, {
1455
  isOpen
1456
  });
 
 
1457
  }
1458
  confirm() {
1459
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1460
  args[_key4] = arguments[_key4];
1461
  }
1462
- return _modal__WEBPACK_IMPORTED_MODULE_10__["confirm"](this, ...args);
 
 
1463
  }
1464
  prompt() {
1465
  for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1466
  args[_key5] = arguments[_key5];
1467
  }
1468
- return _modal__WEBPACK_IMPORTED_MODULE_10__["prompt"](this, ...args);
 
 
1469
  }
1470
  }
1471
  class Settings extends _event_target__WEBPACK_IMPORTED_MODULE_3__["default"] {
@@ -2025,6 +2031,7 @@ __webpack_require__.r(__webpack_exports__);
2025
  /* generated by pull.js */
2026
  /* harmony default export */ __webpack_exports__["default"] = ({
2027
  "multi-tab-code": () => __webpack_require__.e(/*! import() | addon-default-entry */ "addon-default-entry").then(__webpack_require__.bind(null, /*! ../addons/multi-tab-code/_runtime_entry.js */ "./src/addons/addons/multi-tab-code/_runtime_entry.js")),
 
2028
  "ScratchHighlightFullwidthNumber": () => __webpack_require__.e(/*! import() */ 2).then(__webpack_require__.bind(null, /*! ../addons/ScratchHighlightFullwidthNumber/_runtime_entry.js */ "./src/addons/addons/ScratchHighlightFullwidthNumber/_runtime_entry.js")),
2029
  "paint-gradient-maker": () => __webpack_require__.e(/*! import() | addon-default-entry */ "addon-default-entry").then(__webpack_require__.bind(null, /*! ../addons/paint-gradient-maker/_runtime_entry.js */ "./src/addons/addons/paint-gradient-maker/_runtime_entry.js")),
2030
  "paint-rounded-rect-seperate": () => __webpack_require__.e(/*! import() | addon-default-entry */ "addon-default-entry").then(__webpack_require__.bind(null, /*! ../addons/paint-rounded-rect-seperate/_runtime_entry.js */ "./src/addons/addons/paint-rounded-rect-seperate/_runtime_entry.js")),
 
62
  /*!****************************************!*\
63
  !*** ./src/addons/addons-l10n/en.json ***!
64
  \****************************************/
65
+ /*! exports provided: editor-devtools/clean-plus, editor-devtools/copy-all, editor-devtools/copy-block, editor-devtools/cut-block, editor-devtools/lists, editor-devtools/make-space, editor-devtools/orphaned, editor-devtools/paste, editor-devtools/replace, editor-devtools/swap, editor-devtools/unused-list, editor-devtools/unused-var, editor-devtools/var-not-exist, editor-devtools/variables, find-bar/complex-broadcast, find-bar/find-placeholder, middle-click-popup/start-typing, editor-searchable-dropdowns/createBroadcast, editor-searchable-dropdowns/createGlobalList, editor-searchable-dropdowns/createGlobalVariable, editor-searchable-dropdowns/createLocalList, editor-searchable-dropdowns/createLocalVariable, data-category-tweaks-v2/for-all-sprites, data-category-tweaks-v2/for-this-sprite-only, data-category-tweaks-v2/list-category, hide-flyout/lock, hide-flyout/unlock, mediarecorder/cancel, mediarecorder/click-flag, mediarecorder/click-flag-description, mediarecorder/option-title, mediarecorder/record, mediarecorder/record-after-flag, mediarecorder/record-audio, mediarecorder/record-audio-description, mediarecorder/record-description, mediarecorder/record-duration, mediarecorder/record-mic, mediarecorder/record-until-stop, mediarecorder/record-until-stop-disabled, mediarecorder/start, mediarecorder/start-delay, mediarecorder/starting-in, mediarecorder/stop, debugger/block-breakpoint, debugger/block-error, debugger/block-log, debugger/block-warn, debugger/cannot-pause-player, debugger/clear, debugger/clone-of, debugger/close, debugger/console, debugger/debug, debugger/empty-string, debugger/enter-format, debugger/export, debugger/export-desc, debugger/icon-error, debugger/icon-warn, debugger/log-msg-broadcasted, debugger/log-msg-clone-cap, debugger/log-msg-clone-created, debugger/log-msg-flag-clicked, debugger/no-logs, debugger/no-threads-running, debugger/step, debugger/step-desc, debugger/tab-logs, debugger/tab-threads, debugger/thread, debugger/unknown-sprite, debugger/unpause, pause/pause, clones/clones, color-picker/hex, remove-sprite-confirm/confirm, block-count/blocks, onion-skinning/behind, onion-skinning/front, onion-skinning/layering, onion-skinning/merge, onion-skinning/mode, onion-skinning/next, onion-skinning/opacity, onion-skinning/opacityStep, onion-skinning/previous, onion-skinning/settings, onion-skinning/tint, onion-skinning/toggle, paint-snap/boxCenter, paint-snap/boxCorners, paint-snap/boxEdgeMids, paint-snap/objectCenters, paint-snap/objectCorners, paint-snap/objectEdges, paint-snap/objectMidlines, paint-snap/off, paint-snap/on, paint-snap/pageAxes, paint-snap/pageCenter, paint-snap/pageCorners, paint-snap/pageEdges, paint-snap/settings, paint-snap/snapFrom, paint-snap/snapTo, paint-snap/threshold, paint-snap/toggle, 2d-color-picker/shade, better-img-uploads/upload, variable-manager/for-all-sprites, variable-manager/for-this-sprite, variable-manager/search, variable-manager/too-big, variable-manager/variables, search-sprites/placeholder, sprite-properties/close-properties-panel-tooltip, sprite-properties/open-properties-panel-tooltip, gamepad/axes-a-b, gamepad/axis-arrows, gamepad/axis-cursor, gamepad/axis-custom, gamepad/axis-none, gamepad/browser-support, gamepad/button-n, gamepad/clear, gamepad/config-header, gamepad/key-click, gamepad/key-down, gamepad/key-enter, gamepad/key-left, gamepad/key-none, gamepad/key-right, gamepad/key-space, gamepad/key-up, gamepad/keyinput-title, gamepad/no-controllers, gamepad/reset, gamepad/settings, gamepad/store-in-project, folders/add-to-folder, folders/closed-folder, folders/confirm-backpack-folder, folders/create-folder, folders/name-not-allowed, folders/name-prompt, folders/name-prompt-title, folders/open-folder, folders/remove-folder, folders/remove-from-folder, folders/rename-folder, folders/rename-folder-prompt, folders/rename-folder-prompt-title, block-switching/control_forever, block-switching/control_if, block-switching/control_if_else, block-switching/control_repeat_until, block-switching/control_while, block-switching/control_wait_until, block-switching/data_changevariableby, block-switching/data_deletealloflist, block-switching/data_deleteoflist, block-switching/data_hidelist, block-switching/data_hidevariable, block-switching/data_insertatlist, block-switching/data_replaceitemoflist, block-switching/data_setvariableto, block-switching/data_showlist, block-switching/data_showvariable, block-switching/debugger_error, block-switching/debugger_log, block-switching/debugger_warn, block-switching/event_broadcast, block-switching/event_broadcastandwait, block-switching/looks_backdropnumbername, block-switching/looks_changeeffectby, block-switching/looks_changesizeby, block-switching/looks_costumenumbername, block-switching/looks_goforwardbackwardlayers, block-switching/looks_gotofrontback, block-switching/looks_hide, block-switching/looks_nextbackdrop, block-switching/looks_nextcostume, block-switching/looks_say, block-switching/looks_sayforsecs, block-switching/looks_seteffectto, block-switching/looks_setsizeto, block-switching/looks_show, block-switching/looks_switchbackdropto, block-switching/looks_switchbackdroptoandwait, block-switching/looks_think, block-switching/looks_thinkforsecs, block-switching/motion_changexby, block-switching/motion_changeyby, block-switching/motion_setx, block-switching/motion_sety, block-switching/motion_changebyxy, block-switching/motion_gotoxy, block-switching/motion_turnleft, block-switching/motion_turnright, block-switching/motion_xposition, block-switching/motion_yposition, block-switching/music_changeTempo, block-switching/music_setTempo, block-switching/operator_add, block-switching/operator_and, block-switching/operator_divide, block-switching/operator_equals, block-switching/operator_notequal, block-switching/operator_gt, block-switching/operator_lt, block-switching/operator_gtorequal, block-switching/operator_ltorequal, block-switching/operator_mod, block-switching/operator_multiply, block-switching/operator_or, block-switching/operator_subtract, block-switching/operator_trueBoolean, block-switching/operator_falseBoolean, block-switching/operator_power, block-switching/pen_changePenColorParamBy, block-switching/pen_changePenHueBy, block-switching/pen_changePenShadeBy, block-switching/pen_changePenSizeBy, block-switching/pen_penDown, block-switching/pen_penUp, block-switching/pen_setPenColorParamTo, block-switching/pen_setPenHueToNumber, block-switching/pen_setPenShadeToNumber, block-switching/pen_setPenSizeTo, block-switching/sensing_coloristouchingcolor, block-switching/sensing_mousex, block-switching/sensing_mousey, block-switching/sensing_touchingcolor, block-switching/sound_changeeffectby, block-switching/sound_changevolumeby, block-switching/sound_play, block-switching/sound_playuntildone, block-switching/sound_seteffectto, block-switching/sound_setvolumeto, blocks2image/error_blocks_not_added, blocks2image/export_all_to_PNG, blocks2image/export_all_to_SVG, blocks2image/export_selected_to_PNG, blocks2image/export_selected_to_SVG, editor-extra-keys/enter-key, move-to-top-bottom/bottom, move-to-top-bottom/top, swap-local-global/cant-convert-cloud, swap-local-global/cant-convert-conflict, swap-local-global/cant-convert-stage, swap-local-global/cant-convert-to-local, swap-local-global/cant-convert-used-elsewhere, swap-local-global/edit, swap-local-global/edit-list-header, swap-local-global/edit-list-option, swap-local-global/edit-variable-header, swap-local-global/edit-variable-option, swap-local-global/to-global, swap-local-global/to-local, hide-stage/hide-stage, mediarecorder/Recordtheentirescreen, default */
66
  /***/ (function(module) {
67
 
68
+ module.exports = JSON.parse("{\"editor-devtools/clean-plus\":\"Clean up Blocks +\",\"editor-devtools/copy-all\":\"Copy All\",\"editor-devtools/copy-block\":\"Copy Block\",\"editor-devtools/cut-block\":\"Cut Block\",\"editor-devtools/lists\":\"lists\",\"editor-devtools/make-space\":\"Make Space\",\"editor-devtools/orphaned\":\"{count, plural, one {Developer tools: Delete 1 orphaned reporter block?} other {Developer tools: Delete # orphaned reporter blocks?} }\",\"editor-devtools/paste\":\"Paste\",\"editor-devtools/replace\":\"Developer tools: Switch all {name} in this sprite for the variable named:\",\"editor-devtools/swap\":\"Swap {var} in Sprite\",\"editor-devtools/unused-list\":\"{count, plural, one {Developer tools: Delete 1 unused local list? Here it is:\\n} other {Developer tools: Delete # unused local lists? Here they are:\\n} }\",\"editor-devtools/unused-var\":\"{count, plural, one {Developer tools: Delete 1 unused local variable? Here it is:\\n} other {Developer tools: Delete # unused local variables? Here they are:\\n} }\",\"editor-devtools/var-not-exist\":\"That variable does not exist...\",\"editor-devtools/variables\":\"variables\",\"find-bar/complex-broadcast\":\"(expression)\",\"find-bar/find-placeholder\":\"Find (Ctrl+F)\",\"middle-click-popup/start-typing\":\"Start Typing...\",\"editor-searchable-dropdowns/createBroadcast\":\"Create message \\\"{name}\\\"\",\"editor-searchable-dropdowns/createGlobalList\":\"Create list \\\"{name}\\\" for all sprites\",\"editor-searchable-dropdowns/createGlobalVariable\":\"Create variable \\\"{name}\\\" for all sprites\",\"editor-searchable-dropdowns/createLocalList\":\"Create list \\\"{name}\\\" for this sprite only\",\"editor-searchable-dropdowns/createLocalVariable\":\"Create variable \\\"{name}\\\" for this sprite only\",\"data-category-tweaks-v2/for-all-sprites\":\"For all sprites:\",\"data-category-tweaks-v2/for-this-sprite-only\":\"For this sprite only:\",\"data-category-tweaks-v2/list-category\":\"Lists\",\"hide-flyout/lock\":\"Lock Palette\",\"hide-flyout/unlock\":\"Unlock Palette\",\"mediarecorder/cancel\":\"Cancel\",\"mediarecorder/click-flag\":\"Waiting...\",\"mediarecorder/click-flag-description\":\"Click the green flag to start recording. Click this button to stop.\",\"mediarecorder/option-title\":\"Record Options\",\"mediarecorder/record\":\"Record\",\"mediarecorder/record-after-flag\":\"Do not start recording until the Green Flag is clicked\",\"mediarecorder/record-audio\":\"Include project sounds\",\"mediarecorder/record-audio-description\":\"This does not include Text-to-Speech.\",\"mediarecorder/record-description\":\"Record the stage as an MP4 or WebM file. You can save it to your computer after the recording is finished.\\nNote: variable and list monitors will not be visible.\",\"mediarecorder/record-duration\":\"Record Duration (in seconds)\",\"mediarecorder/record-mic\":\"Include sounds from microphone\",\"mediarecorder/record-until-stop\":\"Stop recording after the project has stopped\",\"mediarecorder/record-until-stop-disabled\":\"You need to enable \\\"{afterFlagOption}\\\" to use this option.\",\"mediarecorder/start\":\"Start\",\"mediarecorder/start-delay\":\"Start Delay (in seconds)\",\"mediarecorder/starting-in\":\"Starting in {secs}...\",\"mediarecorder/stop\":\"Stop Recording\",\"debugger/block-breakpoint\":\"breakpoint\",\"debugger/block-error\":\"error %s\",\"debugger/block-log\":\"log %s\",\"debugger/block-warn\":\"warn %s\",\"debugger/cannot-pause-player\":\"Breakpoint block can only be used while on the editor.\",\"debugger/clear\":\"Clear\",\"debugger/clone-of\":\"Clone of {sprite}\",\"debugger/close\":\"Close\",\"debugger/console\":\"Logs\",\"debugger/debug\":\"Debug\",\"debugger/empty-string\":\"(empty string)\",\"debugger/enter-format\":\"Enter export format:\",\"debugger/export\":\"Export\",\"debugger/export-desc\":\"Click while holding Shift to customize export format.\",\"debugger/icon-error\":\"Error\",\"debugger/icon-warn\":\"Warning\",\"debugger/log-msg-broadcasted\":\"Broadcasted '{broadcast}'.\",\"debugger/log-msg-clone-cap\":\"Failed to create clone of '{sprite}', cannot create over 300 clones.\",\"debugger/log-msg-clone-created\":\"Created clone of '{sprite}'.\",\"debugger/log-msg-flag-clicked\":\"Green flag clicked.\",\"debugger/no-logs\":\"There are no logs to display.\",\"debugger/no-threads-running\":\"No threads running.\",\"debugger/step\":\"Step\",\"debugger/step-desc\":\"Executes one block.\",\"debugger/tab-logs\":\"Logs\",\"debugger/tab-threads\":\"Threads\",\"debugger/thread\":\"Thread {id}\",\"debugger/unknown-sprite\":\"(unknown sprite)\",\"debugger/unpause\":\"Resume\",\"pause/pause\":\"Pause\",\"clones/clones\":\"clones: {cloneCount}\",\"color-picker/hex\":\"hex color\",\"remove-sprite-confirm/confirm\":\"Do you want to delete the sprite?\",\"block-count/blocks\":\"{num, plural, one {1 block} other {# blocks}}\",\"onion-skinning/behind\":\"Behind\",\"onion-skinning/front\":\"Front\",\"onion-skinning/layering\":\"Layering\",\"onion-skinning/merge\":\"Merge\",\"onion-skinning/mode\":\"Mode\",\"onion-skinning/next\":\"Next costumes\",\"onion-skinning/opacity\":\"Opacity (%)\",\"onion-skinning/opacityStep\":\"Opacity step (%)\",\"onion-skinning/previous\":\"Previous costumes\",\"onion-skinning/settings\":\"Onion Skinning Settings\",\"onion-skinning/tint\":\"Tint\",\"onion-skinning/toggle\":\"Toggle Onion Skinning\",\"paint-snap/boxCenter\":\"Center of selection\",\"paint-snap/boxCorners\":\"Corners of selection\",\"paint-snap/boxEdgeMids\":\"Selection edge midpoints\",\"paint-snap/objectCenters\":\"Centers of objects\",\"paint-snap/objectCorners\":\"Corners of objects\",\"paint-snap/objectEdges\":\"Edges of objects\",\"paint-snap/objectMidlines\":\"Midlines of objects\",\"paint-snap/off\":\"Off\",\"paint-snap/on\":\"On\",\"paint-snap/pageAxes\":\"Page x and y axes\",\"paint-snap/pageCenter\":\"Center of the page\",\"paint-snap/pageCorners\":\"Corners of the page\",\"paint-snap/pageEdges\":\"Edges of the page\",\"paint-snap/settings\":\"Snap Settings\",\"paint-snap/snapFrom\":\"Snap from:\",\"paint-snap/snapTo\":\"Snap to:\",\"paint-snap/threshold\":\"Snapping distance\",\"paint-snap/toggle\":\"Toggle Snapping\",\"2d-color-picker/shade\":\"Shade\",\"better-img-uploads/upload\":\"HD Upload\",\"variable-manager/for-all-sprites\":\"Variables for all sprites\",\"variable-manager/for-this-sprite\":\"Variables for this sprite\",\"variable-manager/search\":\"Search\",\"variable-manager/too-big\":\"Click to display very large value.\",\"variable-manager/variables\":\"Variables\",\"search-sprites/placeholder\":\"Search sprites...\",\"sprite-properties/close-properties-panel-tooltip\":\"Collapse properties panel\",\"sprite-properties/open-properties-panel-tooltip\":\"Open properties panel\",\"gamepad/axes-a-b\":\"Axes {a} & {b}\",\"gamepad/axis-arrows\":\"Arrow Keys\",\"gamepad/axis-cursor\":\"Cursor\",\"gamepad/axis-custom\":\"Custom\",\"gamepad/axis-none\":\"None\",\"gamepad/browser-support\":\"This browser and operating system have known bugs that may make this addon difficult to use. Try another browser if you encounter problems.\",\"gamepad/button-n\":\"Button {n}\",\"gamepad/clear\":\"Clear all controls\",\"gamepad/config-header\":\"This comment contains configuration for gamepad support in third-party tools or websites such as https://turbowarp.org/\\nDo not edit by hand\",\"gamepad/key-click\":\"Click\",\"gamepad/key-down\":\"Down\",\"gamepad/key-enter\":\"Enter\",\"gamepad/key-left\":\"Left\",\"gamepad/key-none\":\"(none)\",\"gamepad/key-right\":\"Right\",\"gamepad/key-space\":\"Space\",\"gamepad/key-up\":\"Up\",\"gamepad/keyinput-title\":\"Click and press a key or click to change button. Escape to cancel. Backspace or delete to clear.\",\"gamepad/no-controllers\":\"No controllers detected. Try plugging one in and pressing a button on it.\",\"gamepad/reset\":\"Reset all controls to project defaults\",\"gamepad/settings\":\"Gamepad Settings\",\"gamepad/store-in-project\":\"Store these settings in the project to override the default configuration (Experimental tool for project creators)\",\"folders/add-to-folder\":\"add to folder: {folder}\",\"folders/closed-folder\":\"Folder\",\"folders/confirm-backpack-folder\":\"Save entire folder to backpack?\",\"folders/create-folder\":\"create folder\",\"folders/name-not-allowed\":\"Invalid folder name\",\"folders/name-prompt\":\"Name of folder:\",\"folders/name-prompt-title\":\"Create Folder\",\"folders/open-folder\":\"Opened\",\"folders/remove-folder\":\"remove folder\",\"folders/remove-from-folder\":\"remove from folder\",\"folders/rename-folder\":\"rename folder\",\"folders/rename-folder-prompt\":\"Rename folder to:\",\"folders/rename-folder-prompt-title\":\"Rename Folder\",\"block-switching/control_forever\":\"forever\",\"block-switching/control_if\":\"if\",\"block-switching/control_if_else\":\"if... else\",\"block-switching/control_repeat_until\":\"repeat until\",\"block-switching/control_while\":\"while\",\"block-switching/control_wait_until\":\"wait until\",\"block-switching/data_changevariableby\":\"change variable\",\"block-switching/data_deletealloflist\":\"delete all\",\"block-switching/data_deleteoflist\":\"delete item\",\"block-switching/data_hidelist\":\"hide list\",\"block-switching/data_hidevariable\":\"hide variable\",\"block-switching/data_insertatlist\":\"insert item\",\"block-switching/data_replaceitemoflist\":\"replace item\",\"block-switching/data_setvariableto\":\"set variable\",\"block-switching/data_showlist\":\"show list\",\"block-switching/data_showvariable\":\"show variable\",\"block-switching/debugger_error\":\"error\",\"block-switching/debugger_log\":\"log\",\"block-switching/debugger_warn\":\"warn\",\"block-switching/event_broadcast\":\"broadcast\",\"block-switching/event_broadcastandwait\":\"broadcast and wait\",\"block-switching/looks_backdropnumbername\":\"backdrop number or name\",\"block-switching/looks_changeeffectby\":\"change effect\",\"block-switching/looks_changesizeby\":\"change size\",\"block-switching/looks_costumenumbername\":\"costume number or name\",\"block-switching/looks_goforwardbackwardlayers\":\"go forward or backward layers\",\"block-switching/looks_gotofrontback\":\"go to front or back layer\",\"block-switching/looks_hide\":\"hide\",\"block-switching/looks_nextbackdrop\":\"next backdrop\",\"block-switching/looks_nextcostume\":\"next costume\",\"block-switching/looks_say\":\"say\",\"block-switching/looks_sayforsecs\":\"say for seconds\",\"block-switching/looks_seteffectto\":\"set effect\",\"block-switching/looks_setsizeto\":\"set size\",\"block-switching/looks_show\":\"show\",\"block-switching/looks_switchbackdropto\":\"switch backdrop\",\"block-switching/looks_switchbackdroptoandwait\":\"switch backdrop and wait\",\"block-switching/looks_think\":\"think\",\"block-switching/looks_thinkforsecs\":\"think for seconds\",\"block-switching/motion_changexby\":\"change x\",\"block-switching/motion_changeyby\":\"change y\",\"block-switching/motion_setx\":\"set x\",\"block-switching/motion_sety\":\"set y\",\"block-switching/motion_changebyxy\":\"change by x y\",\"block-switching/motion_gotoxy\":\"goto x y\",\"block-switching/motion_turnleft\":\"turn left\",\"block-switching/motion_turnright\":\"turn right\",\"block-switching/motion_xposition\":\"x position\",\"block-switching/motion_yposition\":\"y position\",\"block-switching/music_changeTempo\":\"change tempo\",\"block-switching/music_setTempo\":\"set tempo\",\"block-switching/operator_add\":\"+\",\"block-switching/operator_and\":\"and\",\"block-switching/operator_divide\":\"/\",\"block-switching/operator_equals\":\"=\",\"block-switching/operator_notequal\":\"≠\",\"block-switching/operator_gt\":\">\",\"block-switching/operator_lt\":\"<\",\"block-switching/operator_gtorequal\":\"≥\",\"block-switching/operator_ltorequal\":\"≤\",\"block-switching/operator_mod\":\"mod\",\"block-switching/operator_multiply\":\"*\",\"block-switching/operator_or\":\"or\",\"block-switching/operator_subtract\":\"-\",\"block-switching/operator_trueBoolean\":\"true\",\"block-switching/operator_falseBoolean\":\"false\",\"block-switching/operator_power\":\"^\",\"block-switching/pen_changePenColorParamBy\":\"change parameter\",\"block-switching/pen_changePenHueBy\":\"change hue\",\"block-switching/pen_changePenShadeBy\":\"change shade\",\"block-switching/pen_changePenSizeBy\":\"change size\",\"block-switching/pen_penDown\":\"pen down\",\"block-switching/pen_penUp\":\"pen up\",\"block-switching/pen_setPenColorParamTo\":\"set parameter\",\"block-switching/pen_setPenHueToNumber\":\"set hue\",\"block-switching/pen_setPenShadeToNumber\":\"set shade\",\"block-switching/pen_setPenSizeTo\":\"set size\",\"block-switching/sensing_coloristouchingcolor\":\"color touching color\",\"block-switching/sensing_mousex\":\"mouse x\",\"block-switching/sensing_mousey\":\"mouse y\",\"block-switching/sensing_touchingcolor\":\"touching color\",\"block-switching/sound_changeeffectby\":\"change effect\",\"block-switching/sound_changevolumeby\":\"change volume\",\"block-switching/sound_play\":\"start\",\"block-switching/sound_playuntildone\":\"play until done\",\"block-switching/sound_seteffectto\":\"set effect\",\"block-switching/sound_setvolumeto\":\"set volume\",\"blocks2image/error_blocks_not_added\":\"Add blocks to workspace!\",\"blocks2image/export_all_to_PNG\":\"Export all as PNG\",\"blocks2image/export_all_to_SVG\":\"Export all as SVG\",\"blocks2image/export_selected_to_PNG\":\"Export block as PNG\",\"blocks2image/export_selected_to_SVG\":\"Export block as SVG\",\"editor-extra-keys/enter-key\":\"enter\",\"move-to-top-bottom/bottom\":\"move to bottom\",\"move-to-top-bottom/top\":\"move to top\",\"swap-local-global/cant-convert-cloud\":\"Cloud variables can't be converted to this sprite only.\",\"swap-local-global/cant-convert-conflict\":\"Can't convert because it would conflict with variables in another sprite: {sprites}\",\"swap-local-global/cant-convert-stage\":\"The stage can't have variables for this sprite only.\",\"swap-local-global/cant-convert-to-local\":\"Can't convert because it's used by multiple sprites: {sprites}\",\"swap-local-global/cant-convert-used-elsewhere\":\"Can't convert because it's used by another sprite: {sprite}\",\"swap-local-global/edit\":\"Edit properties:\",\"swap-local-global/edit-list-header\":\"Edit List\",\"swap-local-global/edit-list-option\":\"Rename or edit list\",\"swap-local-global/edit-variable-header\":\"Edit Variable\",\"swap-local-global/edit-variable-option\":\"Rename or edit variable\",\"swap-local-global/to-global\":\"Convert to \\\"For all sprites\\\"\",\"swap-local-global/to-local\":\"Convert to \\\"For this sprite only\\\"\",\"hide-stage/hide-stage\":\"Hide stage\",\"mediarecorder/Recordtheentirescreen\":\"Record the entire screen\"}");
69
 
70
  /***/ }),
71
 
 
1451
  let {
1452
  isOpen = false
1453
  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1454
+ const createdModal = _modal__WEBPACK_IMPORTED_MODULE_10__["createEditorModal"](this, title, {
1455
  isOpen
1456
  });
1457
+ this.traps.vm.emit("ADDON_WORKER_MODAL", createdModal);
1458
+ return createdModal;
1459
  }
1460
  confirm() {
1461
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1462
  args[_key4] = arguments[_key4];
1463
  }
1464
+ const createdModal = _modal__WEBPACK_IMPORTED_MODULE_10__["confirm"](this, ...args);
1465
+ this.traps.vm.emit("ADDON_WORKER_MODAL", createdModal);
1466
+ return createdModal;
1467
  }
1468
  prompt() {
1469
  for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1470
  args[_key5] = arguments[_key5];
1471
  }
1472
+ const createdModal = _modal__WEBPACK_IMPORTED_MODULE_10__["prompt"](this, ...args);
1473
+ this.traps.vm.emit("ADDON_WORKER_MODAL", createdModal);
1474
+ return createdModal;
1475
  }
1476
  }
1477
  class Settings extends _event_target__WEBPACK_IMPORTED_MODULE_3__["default"] {
 
2031
  /* generated by pull.js */
2032
  /* harmony default export */ __webpack_exports__["default"] = ({
2033
  "multi-tab-code": () => __webpack_require__.e(/*! import() | addon-default-entry */ "addon-default-entry").then(__webpack_require__.bind(null, /*! ../addons/multi-tab-code/_runtime_entry.js */ "./src/addons/addons/multi-tab-code/_runtime_entry.js")),
2034
+ "sounds-newgrounds-button": () => __webpack_require__.e(/*! import() | addon-default-entry */ "addon-default-entry").then(__webpack_require__.bind(null, /*! ../addons/sounds-newgrounds-button/_runtime_entry.js */ "./src/addons/addons/sounds-newgrounds-button/_runtime_entry.js")),
2035
  "ScratchHighlightFullwidthNumber": () => __webpack_require__.e(/*! import() */ 2).then(__webpack_require__.bind(null, /*! ../addons/ScratchHighlightFullwidthNumber/_runtime_entry.js */ "./src/addons/addons/ScratchHighlightFullwidthNumber/_runtime_entry.js")),
2036
  "paint-gradient-maker": () => __webpack_require__.e(/*! import() | addon-default-entry */ "addon-default-entry").then(__webpack_require__.bind(null, /*! ../addons/paint-gradient-maker/_runtime_entry.js */ "./src/addons/addons/paint-gradient-maker/_runtime_entry.js")),
2037
  "paint-rounded-rect-seperate": () => __webpack_require__.e(/*! import() | addon-default-entry */ "addon-default-entry").then(__webpack_require__.bind(null, /*! ../addons/paint-rounded-rect-seperate/_runtime_entry.js */ "./src/addons/addons/paint-rounded-rect-seperate/_runtime_entry.js")),
js/addons.js.map CHANGED
The diff for this file is too large to render. See raw diff
 
js/credits.js CHANGED
@@ -149,7 +149,7 @@ var GUI =
149
  /******/
150
  /******/
151
  /******/ // add entry module to deferred list
152
- /******/ deferredModules.push(["./src/playground/credits/credits.jsx","vendors~addon-settings~credits~editor~embed~fullscreen~player~playground","vendors~addon-settings~credits~editor~embed~fullscreen~playground"]);
153
  /******/ // run deferred modules when ready
154
  /******/ return checkDeferredModules();
155
  /******/ })
@@ -168,7 +168,7 @@ exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loa
168
 
169
 
170
  // module
171
- exports.push([module.i, "/*基本色(#6f00ffを基調)*/\n/* #F0E5FF */\n/* #F3E9FC */\n/* #E7D9F2 */\n/* #B366FF with 90% opacity */\n/* #FFFFFF */\n/* 75% */\n/* 25% */\n/* 0% */\n/* 15% black */\n/* 渋めの紫文字色 */\n/* #6f00ff */\n/* #5c00cc */\n/* #6f00ff 35% */\n/* #5c00cc 15% */\n/* opt-in theme overrides */\n/* ダークモードのトップバー色 */\n/* #6f00ff */\n/* #5c00cc */\n/* #9966ff */\n/* #8040ff */\n/* #9966ff 代替コントロール色 */\n/* #8a33ff */\n/* #5900b8 */\n/* #5900b8 25% */\n/* #8a33ff */\n/* #b380ff */\n/* #8a33ff 25% */\n/* #d1a6ff より明るい紫 */\n* {\n box-sizing: border-box;\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n margin: 0;\n padding: 0;\n background: white;\n}\nbody[theme=\"dark\"] {\n background-color: #111;\n color: #eee;\n}\na {\n color: blue;\n}\n[theme=\"dark\"] a {\n color: #4af;\n}\n.credits_main_1Rb15 section {\n max-width: 900px;\n margin: auto;\n margin-bottom: 30px;\n}\n.credits_header-container_10IXn {\n color: white;\n background-color: hsla(266, 100%, 50%, 1);\n padding: 20px 0;\n text-align: center;\n margin-bottom: 30px;\n}\n.credits_header-text_2vWAl {\n\n}\n.credits_users_2AuwB {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n}\n.credits_user-image_2rw9X {\n margin-right: 12px;\n}\n.credits_user_2nYLS {\n display: flex;\n align-items: center;\n width: 300px;\n padding: 4px;\n border-radius: 4px;\n font-size: 1.25rem;\n color: inherit !important;\n text-decoration: none;\n transition: background .2s;\n}\n.credits_user_2nYLS:link:hover {\n background: #eee;\n}\n[theme=\"dark\"] .credits_user_2nYLS:link:hover {\n background: #222;\n}\n", ""]);
172
 
173
  // exports
174
  exports.locals = {
 
149
  /******/
150
  /******/
151
  /******/ // add entry module to deferred list
152
+ /******/ deferredModules.push(["./src/playground/credits/credits.jsx","vendors~addon-settings~credits~editor~embed~fullscreen~player~playground","vendors~addon-settings~credits"]);
153
  /******/ // run deferred modules when ready
154
  /******/ return checkDeferredModules();
155
  /******/ })
 
168
 
169
 
170
  // module
171
+ exports.push([module.i, "/* 基本色(#625edbを基調) */\n/* #F0EFFF */\n/* #F3F2FC */\n/* #E6E6F7 */\n/* #625edb with 90% opacity */\n/* #FFFFFF */\n/* 75% */\n/* 25% */\n/* 0% */\n/* 15% black */\n/* 渋めの青紫文字色 */\n/* #625edb */\n/* #504db8 */\n/* #625edb 35% */\n/* #504db8 15% */\n/* opt-in theme overrides */\n/* ダークモードのトップバー色 */\n/* #625edb */\n/* #504db8 */\n/* #7366e6 */\n/* #5a40cc */\n/* #6d6dec */\n/* #5545d4 */\n/* #2f1f80 */\n/* 25% */\n/* #5545d4 */\n/* #8b80f0 */\n/* 25% */\n/* #625edb */\n/* #504db8 */\n/* #c6bfff 明るい紫青 */\n* {\n box-sizing: border-box;\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n margin: 0;\n padding: 0;\n background: white;\n}\nbody[theme=\"dark\"] {\n background-color: #111;\n color: #eee;\n}\na {\n color: blue;\n}\n[theme=\"dark\"] a {\n color: #4af;\n}\n.credits_main_1Rb15 section {\n max-width: 900px;\n margin: auto;\n margin-bottom: 30px;\n}\n.credits_header-container_10IXn {\n color: white;\n background-color: hsla(248, 66%, 62%, 1);\n padding: 20px 0;\n text-align: center;\n margin-bottom: 30px;\n}\n.credits_header-text_2vWAl {\n\n}\n.credits_users_2AuwB {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n}\n.credits_user-image_2rw9X {\n margin-right: 12px;\n}\n.credits_user_2nYLS {\n display: flex;\n align-items: center;\n width: 300px;\n padding: 4px;\n border-radius: 4px;\n font-size: 1.25rem;\n color: inherit !important;\n text-decoration: none;\n transition: background .2s;\n}\n.credits_user_2nYLS:link:hover {\n background: #eee;\n}\n[theme=\"dark\"] .credits_user_2nYLS:link:hover {\n background: #222;\n}\n", ""]);
172
 
173
  // exports
174
  exports.locals = {
js/credits.js.map CHANGED
The diff for this file is too large to render. See raw diff
 
js/editor.js CHANGED
The diff for this file is too large to render. See raw diff
 
js/editor.js.map CHANGED
The diff for this file is too large to render. See raw diff
 
js/editor~embed~fullscreen~player~playground.js ADDED
The diff for this file is too large to render. See raw diff
 
js/editor~embed~fullscreen~player~playground.js.map ADDED
The diff for this file is too large to render. See raw diff
 
js/embed.js CHANGED
@@ -218,7 +218,7 @@ var GUI =
218
  /******/
219
  /******/
220
  /******/ // add entry module to deferred list
221
- /******/ deferredModules.push(["./src/playground/embed.jsx","vendors~addon-settings~credits~editor~embed~fullscreen~player~playground","vendors~addon-settings~credits~editor~embed~fullscreen~playground","vendors~editor~embed~fullscreen~player~playground","embed~player"]);
222
  /******/ // run deferred modules when ready
223
  /******/ return checkDeferredModules();
224
  /******/ })
@@ -326,26 +326,20 @@ const TWFullScreenHOC = function TWFullScreenHOC(WrappedComponent) {
326
 
327
  "use strict";
328
  __webpack_require__.r(__webpack_exports__);
329
- /* harmony import */ var core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js */ "./node_modules/core-js/index.js");
330
- /* harmony import */ var core_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js__WEBPACK_IMPORTED_MODULE_0__);
331
- /* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! regenerator-runtime/runtime */ "./node_modules/regenerator-runtime/runtime.js");
332
- /* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_1__);
333
- /* harmony import */ var _import_first__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./import-first */ "./src/playground/import-first.js");
334
- /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js");
335
- /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_3__);
336
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
337
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
338
- /* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! redux */ "./node_modules/redux/es/index.js");
339
- /* harmony import */ var react_modal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-modal */ "./node_modules/react-modal/lib/index.js");
340
- /* harmony import */ var react_modal__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_modal__WEBPACK_IMPORTED_MODULE_6__);
341
- /* harmony import */ var _lib_app_state_hoc_jsx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../lib/app-state-hoc.jsx */ "./src/lib/app-state-hoc.jsx");
342
- /* harmony import */ var _lib_tw_embed_fullscreen_hoc_jsx__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../lib/tw-embed-fullscreen-hoc.jsx */ "./src/lib/tw-embed-fullscreen-hoc.jsx");
343
- /* harmony import */ var _lib_tw_state_manager_hoc_jsx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../lib/tw-state-manager-hoc.jsx */ "./src/lib/tw-state-manager-hoc.jsx");
344
- /* harmony import */ var _addons_entry__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../addons/entry */ "./src/addons/entry.js");
345
- /* harmony import */ var _render_gui_jsx__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./render-gui.jsx */ "./src/playground/render-gui.jsx");
346
- /* harmony import */ var _app_target__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./app-target */ "./src/playground/app-target.js");
347
-
348
-
349
 
350
 
351
 
@@ -360,20 +354,20 @@ __webpack_require__.r(__webpack_exports__);
360
  const getProjectId = () => {
361
  // For compatibility reasons, we first look at the hash.
362
  // eg. https://turbowarp.org/embed.html#1
363
- const hashMatch = __cpLocation.hash.slice(1);
364
  if (hashMatch !== '') {
365
  return hashMatch;
366
  }
367
  // Otherwise, we'll recreate what "wildcard" routing does.
368
  // eg. https://turbowarp.org/1/embed
369
- const pathMatch = __cpLocation.pathname.match(/(\d+)\/embed/);
370
  if (pathMatch !== null) {
371
  return pathMatch[pathMatch.length - 1];
372
  }
373
  return '0';
374
  };
375
  const projectId = getProjectId();
376
- const urlParams = new URLSearchParams(__cpLocation.search);
377
  let vm;
378
  const onVmInit = _vm => {
379
  var _vm$runtime$renderer;
@@ -386,17 +380,17 @@ const onProjectLoaded = () => {
386
  vm.greenFlag();
387
  }
388
  };
389
- const WrappedGUI = Object(redux__WEBPACK_IMPORTED_MODULE_5__["compose"])(_lib_app_state_hoc_jsx__WEBPACK_IMPORTED_MODULE_7__["default"], _lib_tw_state_manager_hoc_jsx__WEBPACK_IMPORTED_MODULE_9__["default"], _lib_tw_embed_fullscreen_hoc_jsx__WEBPACK_IMPORTED_MODULE_8__["default"])(_render_gui_jsx__WEBPACK_IMPORTED_MODULE_11__["default"]);
390
- Object(react_modal__WEBPACK_IMPORTED_MODULE_6__["setAppElement"])(_app_target__WEBPACK_IMPORTED_MODULE_12__["default"]);
391
- react_dom__WEBPACK_IMPORTED_MODULE_3___default.a.render(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(WrappedGUI, {
392
  isEmbedded: true,
393
  projectId: projectId,
394
  onVmInit: onVmInit,
395
  onProjectLoaded: onProjectLoaded,
396
  routingStyle: "none"
397
- }), _app_target__WEBPACK_IMPORTED_MODULE_12__["default"]);
398
  if (urlParams.has('addons')) {
399
- Object(_addons_entry__WEBPACK_IMPORTED_MODULE_10__["default"])();
400
  }
401
 
402
  /***/ })
 
218
  /******/
219
  /******/
220
  /******/ // add entry module to deferred list
221
+ /******/ deferredModules.push(["./src/playground/embed.jsx","vendors~addon-settings~credits~editor~embed~fullscreen~player~playground","vendors~editor~embed~fullscreen~player~playground","editor~embed~fullscreen~player~playground"]);
222
  /******/ // run deferred modules when ready
223
  /******/ return checkDeferredModules();
224
  /******/ })
 
326
 
327
  "use strict";
328
  __webpack_require__.r(__webpack_exports__);
329
+ /* harmony import */ var _import_first__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./import-first */ "./src/playground/import-first.js");
330
+ /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js");
331
+ /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);
332
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
333
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
334
+ /* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! redux */ "./node_modules/redux/es/index.js");
335
+ /* harmony import */ var react_modal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-modal */ "./node_modules/react-modal/lib/index.js");
336
+ /* harmony import */ var react_modal__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_modal__WEBPACK_IMPORTED_MODULE_4__);
337
+ /* harmony import */ var _lib_app_state_hoc_jsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../lib/app-state-hoc.jsx */ "./src/lib/app-state-hoc.jsx");
338
+ /* harmony import */ var _lib_tw_embed_fullscreen_hoc_jsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../lib/tw-embed-fullscreen-hoc.jsx */ "./src/lib/tw-embed-fullscreen-hoc.jsx");
339
+ /* harmony import */ var _lib_tw_state_manager_hoc_jsx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../lib/tw-state-manager-hoc.jsx */ "./src/lib/tw-state-manager-hoc.jsx");
340
+ /* harmony import */ var _addons_entry__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../addons/entry */ "./src/addons/entry.js");
341
+ /* harmony import */ var _render_gui_jsx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./render-gui.jsx */ "./src/playground/render-gui.jsx");
342
+ /* harmony import */ var _app_target__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./app-target */ "./src/playground/app-target.js");
 
 
 
 
 
 
343
 
344
 
345
 
 
354
  const getProjectId = () => {
355
  // For compatibility reasons, we first look at the hash.
356
  // eg. https://turbowarp.org/embed.html#1
357
+ const hashMatch = location.hash.slice(1);
358
  if (hashMatch !== '') {
359
  return hashMatch;
360
  }
361
  // Otherwise, we'll recreate what "wildcard" routing does.
362
  // eg. https://turbowarp.org/1/embed
363
+ const pathMatch = location.pathname.match(/(\d+)\/embed/);
364
  if (pathMatch !== null) {
365
  return pathMatch[pathMatch.length - 1];
366
  }
367
  return '0';
368
  };
369
  const projectId = getProjectId();
370
+ const urlParams = new URLSearchParams(location.search);
371
  let vm;
372
  const onVmInit = _vm => {
373
  var _vm$runtime$renderer;
 
380
  vm.greenFlag();
381
  }
382
  };
383
+ const WrappedGUI = Object(redux__WEBPACK_IMPORTED_MODULE_3__["compose"])(_lib_app_state_hoc_jsx__WEBPACK_IMPORTED_MODULE_5__["default"], _lib_tw_state_manager_hoc_jsx__WEBPACK_IMPORTED_MODULE_7__["default"], _lib_tw_embed_fullscreen_hoc_jsx__WEBPACK_IMPORTED_MODULE_6__["default"])(_render_gui_jsx__WEBPACK_IMPORTED_MODULE_9__["default"]);
384
+ Object(react_modal__WEBPACK_IMPORTED_MODULE_4__["setAppElement"])(_app_target__WEBPACK_IMPORTED_MODULE_10__["default"]);
385
+ react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.render(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(WrappedGUI, {
386
  isEmbedded: true,
387
  projectId: projectId,
388
  onVmInit: onVmInit,
389
  onProjectLoaded: onProjectLoaded,
390
  routingStyle: "none"
391
+ }), _app_target__WEBPACK_IMPORTED_MODULE_10__["default"]);
392
  if (urlParams.has('addons')) {
393
+ Object(_addons_entry__WEBPACK_IMPORTED_MODULE_8__["default"])();
394
  }
395
 
396
  /***/ })
js/embed.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"js/embed.js","sources":["webpack://GUI/webpack/bootstrap","webpack://GUI/./src/lib/tw-embed-fullscreen-hoc.jsx","webpack://GUI/./src/playground/embed.jsx"],"sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"embed\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"addon-settings~addons~editor~fullscreen~player~playground\":\"addon-settings~addons~editor~fullscreen~player~playground\",\"addons\":\"addons\",\"iframe-extension-worker\":\"iframe-extension-worker\",\"library-backdrops\":\"library-backdrops\",\"library-costumes\":\"library-costumes\",\"library-sounds\":\"library-sounds\",\"library-sprites\":\"library-sprites\",\"sb\":\"sb\",\"addon-default-entry\":\"addon-default-entry\",\"addon-entry-2d-color-picker\":\"addon-entry-2d-color-picker\",\"addon-entry-better-img-uploads\":\"addon-entry-better-img-uploads\",\"addon-entry-block-count\":\"addon-entry-block-count\",\"addon-entry-block-palette-icons\":\"addon-entry-block-palette-icons\",\"addon-entry-blocks2image\":\"addon-entry-blocks2image\",\"addon-entry-cat-blocks\":\"addon-entry-cat-blocks\",\"addon-entry-clones\":\"addon-entry-clones\",\"addon-entry-columns\":\"addon-entry-columns\",\"addon-entry-custom-block-shape\":\"addon-entry-custom-block-shape\",\"addon-entry-custom-block-text\":\"addon-entry-custom-block-text\",\"addon-entry-custom-zoom\":\"addon-entry-custom-zoom\",\"addon-entry-debugger\":\"addon-entry-debugger\",\"addon-entry-default-costume-editor-color\":\"addon-entry-default-costume-editor-color\",\"addon-entry-disable-paste-offset\":\"addon-entry-disable-paste-offset\",\"addon-entry-disable-stage-drag-select\":\"addon-entry-disable-stage-drag-select\",\"addon-entry-editor-buttons-reverse-order\":\"addon-entry-editor-buttons-reverse-order\",\"addon-entry-editor-colored-context-menus\":\"addon-entry-editor-colored-context-menus\",\"addon-entry-editor-extra-keys\":\"addon-entry-editor-extra-keys\",\"addon-entry-editor-sounds\":\"addon-entry-editor-sounds\",\"addon-entry-editor-stage-left\":\"addon-entry-editor-stage-left\",\"addon-entry-editor-theme3\":\"addon-entry-editor-theme3\",\"addon-entry-fullscreen\":\"addon-entry-fullscreen\",\"addon-entry-gamepad\":\"addon-entry-gamepad\",\"addon-entry-hide-delete-button\":\"addon-entry-hide-delete-button\",\"addon-entry-hide-flyout\":\"addon-entry-hide-flyout\",\"addon-entry-hide-new-variables\":\"addon-entry-hide-new-variables\",\"addon-entry-hide-stage\":\"addon-entry-hide-stage\",\"addon-entry-initialise-sprite-position\":\"addon-entry-initialise-sprite-position\",\"addon-entry-load-extensions\":\"addon-entry-load-extensions\",\"addon-entry-mediarecorder\":\"addon-entry-mediarecorder\",\"addon-entry-mouse-pos\":\"addon-entry-mouse-pos\",\"addon-entry-no-script-bumping\":\"addon-entry-no-script-bumping\",\"addon-entry-number-pad\":\"addon-entry-number-pad\",\"addon-entry-paint-by-default\":\"addon-entry-paint-by-default\",\"addon-entry-paint-snap\":\"addon-entry-paint-snap\",\"addon-entry-remove-curved-stage-border\":\"addon-entry-remove-curved-stage-border\",\"addon-entry-remove-sprite-confirm\":\"addon-entry-remove-sprite-confirm\",\"addon-entry-script-snap\":\"addon-entry-script-snap\",\"addon-entry-search-sprites\":\"addon-entry-search-sprites\",\"addon-entry-sprite-properties\":\"addon-entry-sprite-properties\",\"addon-entry-swap-local-global\":\"addon-entry-swap-local-global\",\"addon-entry-transparent-orphans\":\"addon-entry-transparent-orphans\",\"addon-entry-tw-disable-cloud-variables\":\"addon-entry-tw-disable-cloud-variables\",\"addon-entry-tw-remove-backpack\":\"addon-entry-tw-remove-backpack\",\"addon-entry-tw-remove-feedback\":\"addon-entry-tw-remove-feedback\",\"addon-entry-tw-straighten-comments\":\"addon-entry-tw-straighten-comments\",\"addon-entry-vol-slider\":\"addon-entry-vol-slider\",\"addon-entry-zebra-striping\":\"addon-entry-zebra-striping\",\"addon-l10n-de\":\"addon-l10n-de\",\"addon-l10n-es\":\"addon-l10n-es\",\"addon-l10n-fr\":\"addon-l10n-fr\",\"addon-l10n-hu\":\"addon-l10n-hu\",\"addon-l10n-it\":\"addon-l10n-it\",\"addon-l10n-ja\":\"addon-l10n-ja\",\"addon-l10n-ko\":\"addon-l10n-ko\",\"addon-l10n-nl\":\"addon-l10n-nl\",\"addon-l10n-pl\":\"addon-l10n-pl\",\"addon-l10n-pt\":\"addon-l10n-pt\",\"addon-l10n-ro\":\"addon-l10n-ro\",\"addon-l10n-ru\":\"addon-l10n-ru\",\"addon-l10n-sl\":\"addon-l10n-sl\",\"addon-l10n-tr\":\"addon-l10n-tr\"}[chunkId]||chunkId) + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonpGUI\"] = window[\"webpackJsonpGUI\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"./src/playground/embed.jsx\",\"vendors~addon-settings~credits~editor~embed~fullscreen~player~playground\",\"vendors~addon-settings~credits~editor~embed~fullscreen~playground\",\"vendors~editor~embed~fullscreen~player~playground\",\"embed~player\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import bindAll from 'lodash.bindall';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\n\nimport {setFullScreen} from '../reducers/mode';\nimport {setIsWindowFullScreen} from '../reducers/tw';\nimport FullscreenAPI from './tw-fullscreen-api';\n\nconst TWFullScreenHOC = function (WrappedComponent) {\n class FullScreenComponent extends React.Component {\n constructor (props) {\n super(props);\n bindAll(this, [\n 'handleFullScreenChange'\n ]);\n }\n componentDidMount () {\n document.addEventListener('fullscreenchange', this.handleFullScreenChange);\n document.addEventListener('webkitfullscreenchange', this.handleFullScreenChange);\n }\n shouldComponentUpdate (nextProps) {\n return this.props.isFullScreen !== nextProps.isFullScreen;\n }\n componentDidUpdate () {\n if (FullscreenAPI.available()) {\n if (this.props.isFullScreen) {\n FullscreenAPI.request();\n } else if (FullscreenAPI.enabled()) {\n FullscreenAPI.exit();\n }\n }\n }\n componentWillUnmount () {\n document.removeEventListener('fullscreenchange', this.handleFullScreenChange);\n document.removeEventListener('webkitfullscreenchange', this.handleFullScreenChange);\n }\n handleFullScreenChange () {\n const isFullScreen = FullscreenAPI.enabled();\n this.props.onSetWindowIsFullScreen(isFullScreen);\n this.props.onSetIsFullScreen(isFullScreen);\n }\n render () {\n const {\n /* eslint-disable no-unused-vars */\n isFullScreen,\n onSetIsFullScreen,\n onSetWindowIsFullScreen,\n /* eslint-enable no-unused-vars */\n ...props\n } = this.props;\n return (\n <WrappedComponent\n {...props}\n />\n );\n }\n }\n FullScreenComponent.propTypes = {\n isFullScreen: PropTypes.bool,\n onSetIsFullScreen: PropTypes.func,\n onSetWindowIsFullScreen: PropTypes.func\n };\n const mapStateToProps = state => ({\n isFullScreen: state.scratchGui.mode.isFullScreen\n });\n const mapDispatchToProps = dispatch => ({\n onSetIsFullScreen: isFullScreen => dispatch(setFullScreen(isFullScreen)),\n onSetWindowIsFullScreen: isFullScreen => dispatch(setIsWindowFullScreen(isFullScreen))\n });\n return connect(\n mapStateToProps,\n mapDispatchToProps\n )(FullScreenComponent);\n};\n\nexport {\n TWFullScreenHOC as default\n};\n","import 'core-js';\nimport 'regenerator-runtime/runtime';\n\nimport './import-first';\n\nimport ReactDOM from 'react-dom';\nimport React from 'react';\nimport {compose} from 'redux';\nimport {setAppElement} from 'react-modal';\nimport AppStateHOC from '../lib/app-state-hoc.jsx';\nimport TWEmbedFullScreenHOC from '../lib/tw-embed-fullscreen-hoc.jsx';\nimport TWStateManagerHOC from '../lib/tw-state-manager-hoc.jsx';\nimport runAddons from '../addons/entry';\n\nimport GUI from './render-gui.jsx';\nimport appTarget from './app-target';\n\nconst getProjectId = () => {\n // For compatibility reasons, we first look at the hash.\n // eg. https://turbowarp.org/embed.html#1\n const hashMatch = __cpLocation.hash.slice(1);\n if (hashMatch !== '') {\n return hashMatch;\n }\n // Otherwise, we'll recreate what \"wildcard\" routing does.\n // eg. https://turbowarp.org/1/embed\n const pathMatch = __cpLocation.pathname.match(/(\\d+)\\/embed/);\n if (pathMatch !== null) {\n return pathMatch[pathMatch.length - 1];\n }\n return '0';\n};\n\nconst projectId = getProjectId();\nconst urlParams = new URLSearchParams(__cpLocation.search);\n\nlet vm;\n\nconst onVmInit = _vm => {\n vm = _vm;\n if (vm.runtime.renderer?.setPrivateSkinAccess)\n vm.runtime.renderer.setPrivateSkinAccess(false);\n};\n\nconst onProjectLoaded = () => {\n if (urlParams.has('autoplay')) {\n vm.start();\n vm.greenFlag();\n }\n};\n\nconst WrappedGUI = compose(\n AppStateHOC,\n TWStateManagerHOC,\n TWEmbedFullScreenHOC\n)(GUI);\n\nsetAppElement(appTarget);\nReactDOM.render(<WrappedGUI\n isEmbedded\n projectId={projectId}\n onVmInit={onVmInit}\n onProjectLoaded={onProjectLoaded}\n routingStyle=\"none\"\n/>, appTarget);\n\nif (urlParams.has('addons')) {\n runAddons();\n}"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5NA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AADA;AAEA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;;;;;AC1EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;;;;A","sourceRoot":""}
 
1
+ {"version":3,"file":"js/embed.js","sources":["webpack://GUI/webpack/bootstrap","webpack://GUI/./src/lib/tw-embed-fullscreen-hoc.jsx","webpack://GUI/./src/playground/embed.jsx"],"sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"embed\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"addon-settings~addons~editor~fullscreen~player~playground\":\"addon-settings~addons~editor~fullscreen~player~playground\",\"addons\":\"addons\",\"iframe-extension-worker\":\"iframe-extension-worker\",\"library-backdrops\":\"library-backdrops\",\"library-costumes\":\"library-costumes\",\"library-sounds\":\"library-sounds\",\"library-sprites\":\"library-sprites\",\"sb\":\"sb\",\"addon-default-entry\":\"addon-default-entry\",\"addon-entry-2d-color-picker\":\"addon-entry-2d-color-picker\",\"addon-entry-better-img-uploads\":\"addon-entry-better-img-uploads\",\"addon-entry-block-count\":\"addon-entry-block-count\",\"addon-entry-block-palette-icons\":\"addon-entry-block-palette-icons\",\"addon-entry-blocks2image\":\"addon-entry-blocks2image\",\"addon-entry-cat-blocks\":\"addon-entry-cat-blocks\",\"addon-entry-clones\":\"addon-entry-clones\",\"addon-entry-columns\":\"addon-entry-columns\",\"addon-entry-custom-block-shape\":\"addon-entry-custom-block-shape\",\"addon-entry-custom-block-text\":\"addon-entry-custom-block-text\",\"addon-entry-custom-zoom\":\"addon-entry-custom-zoom\",\"addon-entry-debugger\":\"addon-entry-debugger\",\"addon-entry-default-costume-editor-color\":\"addon-entry-default-costume-editor-color\",\"addon-entry-disable-paste-offset\":\"addon-entry-disable-paste-offset\",\"addon-entry-disable-stage-drag-select\":\"addon-entry-disable-stage-drag-select\",\"addon-entry-editor-buttons-reverse-order\":\"addon-entry-editor-buttons-reverse-order\",\"addon-entry-editor-colored-context-menus\":\"addon-entry-editor-colored-context-menus\",\"addon-entry-editor-extra-keys\":\"addon-entry-editor-extra-keys\",\"addon-entry-editor-sounds\":\"addon-entry-editor-sounds\",\"addon-entry-editor-stage-left\":\"addon-entry-editor-stage-left\",\"addon-entry-editor-theme3\":\"addon-entry-editor-theme3\",\"addon-entry-fullscreen\":\"addon-entry-fullscreen\",\"addon-entry-gamepad\":\"addon-entry-gamepad\",\"addon-entry-hide-delete-button\":\"addon-entry-hide-delete-button\",\"addon-entry-hide-flyout\":\"addon-entry-hide-flyout\",\"addon-entry-hide-new-variables\":\"addon-entry-hide-new-variables\",\"addon-entry-hide-stage\":\"addon-entry-hide-stage\",\"addon-entry-initialise-sprite-position\":\"addon-entry-initialise-sprite-position\",\"addon-entry-load-extensions\":\"addon-entry-load-extensions\",\"addon-entry-mediarecorder\":\"addon-entry-mediarecorder\",\"addon-entry-mouse-pos\":\"addon-entry-mouse-pos\",\"addon-entry-no-script-bumping\":\"addon-entry-no-script-bumping\",\"addon-entry-number-pad\":\"addon-entry-number-pad\",\"addon-entry-paint-by-default\":\"addon-entry-paint-by-default\",\"addon-entry-paint-snap\":\"addon-entry-paint-snap\",\"addon-entry-remove-curved-stage-border\":\"addon-entry-remove-curved-stage-border\",\"addon-entry-remove-sprite-confirm\":\"addon-entry-remove-sprite-confirm\",\"addon-entry-script-snap\":\"addon-entry-script-snap\",\"addon-entry-search-sprites\":\"addon-entry-search-sprites\",\"addon-entry-sprite-properties\":\"addon-entry-sprite-properties\",\"addon-entry-swap-local-global\":\"addon-entry-swap-local-global\",\"addon-entry-transparent-orphans\":\"addon-entry-transparent-orphans\",\"addon-entry-tw-disable-cloud-variables\":\"addon-entry-tw-disable-cloud-variables\",\"addon-entry-tw-remove-backpack\":\"addon-entry-tw-remove-backpack\",\"addon-entry-tw-remove-feedback\":\"addon-entry-tw-remove-feedback\",\"addon-entry-tw-straighten-comments\":\"addon-entry-tw-straighten-comments\",\"addon-entry-vol-slider\":\"addon-entry-vol-slider\",\"addon-entry-zebra-striping\":\"addon-entry-zebra-striping\",\"addon-l10n-de\":\"addon-l10n-de\",\"addon-l10n-es\":\"addon-l10n-es\",\"addon-l10n-fr\":\"addon-l10n-fr\",\"addon-l10n-hu\":\"addon-l10n-hu\",\"addon-l10n-it\":\"addon-l10n-it\",\"addon-l10n-ja\":\"addon-l10n-ja\",\"addon-l10n-ko\":\"addon-l10n-ko\",\"addon-l10n-nl\":\"addon-l10n-nl\",\"addon-l10n-pl\":\"addon-l10n-pl\",\"addon-l10n-pt\":\"addon-l10n-pt\",\"addon-l10n-ro\":\"addon-l10n-ro\",\"addon-l10n-ru\":\"addon-l10n-ru\",\"addon-l10n-sl\":\"addon-l10n-sl\",\"addon-l10n-tr\":\"addon-l10n-tr\"}[chunkId]||chunkId) + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonpGUI\"] = window[\"webpackJsonpGUI\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"./src/playground/embed.jsx\",\"vendors~addon-settings~credits~editor~embed~fullscreen~player~playground\",\"vendors~editor~embed~fullscreen~player~playground\",\"editor~embed~fullscreen~player~playground\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import bindAll from 'lodash.bindall';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\n\nimport {setFullScreen} from '../reducers/mode';\nimport {setIsWindowFullScreen} from '../reducers/tw';\nimport FullscreenAPI from './tw-fullscreen-api';\n\nconst TWFullScreenHOC = function (WrappedComponent) {\n class FullScreenComponent extends React.Component {\n constructor (props) {\n super(props);\n bindAll(this, [\n 'handleFullScreenChange'\n ]);\n }\n componentDidMount () {\n document.addEventListener('fullscreenchange', this.handleFullScreenChange);\n document.addEventListener('webkitfullscreenchange', this.handleFullScreenChange);\n }\n shouldComponentUpdate (nextProps) {\n return this.props.isFullScreen !== nextProps.isFullScreen;\n }\n componentDidUpdate () {\n if (FullscreenAPI.available()) {\n if (this.props.isFullScreen) {\n FullscreenAPI.request();\n } else if (FullscreenAPI.enabled()) {\n FullscreenAPI.exit();\n }\n }\n }\n componentWillUnmount () {\n document.removeEventListener('fullscreenchange', this.handleFullScreenChange);\n document.removeEventListener('webkitfullscreenchange', this.handleFullScreenChange);\n }\n handleFullScreenChange () {\n const isFullScreen = FullscreenAPI.enabled();\n this.props.onSetWindowIsFullScreen(isFullScreen);\n this.props.onSetIsFullScreen(isFullScreen);\n }\n render () {\n const {\n /* eslint-disable no-unused-vars */\n isFullScreen,\n onSetIsFullScreen,\n onSetWindowIsFullScreen,\n /* eslint-enable no-unused-vars */\n ...props\n } = this.props;\n return (\n <WrappedComponent\n {...props}\n />\n );\n }\n }\n FullScreenComponent.propTypes = {\n isFullScreen: PropTypes.bool,\n onSetIsFullScreen: PropTypes.func,\n onSetWindowIsFullScreen: PropTypes.func\n };\n const mapStateToProps = state => ({\n isFullScreen: state.scratchGui.mode.isFullScreen\n });\n const mapDispatchToProps = dispatch => ({\n onSetIsFullScreen: isFullScreen => dispatch(setFullScreen(isFullScreen)),\n onSetWindowIsFullScreen: isFullScreen => dispatch(setIsWindowFullScreen(isFullScreen))\n });\n return connect(\n mapStateToProps,\n mapDispatchToProps\n )(FullScreenComponent);\n};\n\nexport {\n TWFullScreenHOC as default\n};\n","import './import-first';\n\nimport ReactDOM from 'react-dom';\nimport React from 'react';\nimport {compose} from 'redux';\nimport {setAppElement} from 'react-modal';\nimport AppStateHOC from '../lib/app-state-hoc.jsx';\nimport TWEmbedFullScreenHOC from '../lib/tw-embed-fullscreen-hoc.jsx';\nimport TWStateManagerHOC from '../lib/tw-state-manager-hoc.jsx';\nimport runAddons from '../addons/entry';\n\nimport GUI from './render-gui.jsx';\nimport appTarget from './app-target';\n\nconst getProjectId = () => {\n // For compatibility reasons, we first look at the hash.\n // eg. https://turbowarp.org/embed.html#1\n const hashMatch = location.hash.slice(1);\n if (hashMatch !== '') {\n return hashMatch;\n }\n // Otherwise, we'll recreate what \"wildcard\" routing does.\n // eg. https://turbowarp.org/1/embed\n const pathMatch = location.pathname.match(/(\\d+)\\/embed/);\n if (pathMatch !== null) {\n return pathMatch[pathMatch.length - 1];\n }\n return '0';\n};\n\nconst projectId = getProjectId();\nconst urlParams = new URLSearchParams(location.search);\n\nlet vm;\n\nconst onVmInit = _vm => {\n vm = _vm;\n if (vm.runtime.renderer?.setPrivateSkinAccess)\n vm.runtime.renderer.setPrivateSkinAccess(false);\n};\n\nconst onProjectLoaded = () => {\n if (urlParams.has('autoplay')) {\n vm.start();\n vm.greenFlag();\n }\n};\n\nconst WrappedGUI = compose(\n AppStateHOC,\n TWStateManagerHOC,\n TWEmbedFullScreenHOC\n)(GUI);\n\nsetAppElement(appTarget);\nReactDOM.render(<WrappedGUI\n isEmbedded\n projectId={projectId}\n onVmInit={onVmInit}\n onProjectLoaded={onProjectLoaded}\n routingStyle=\"none\"\n/>, appTarget);\n\nif (urlParams.has('addons')) {\n runAddons();\n}"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5NA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AADA;AAEA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;;;;;AC1EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;;;;A","sourceRoot":""}
js/fullscreen.js CHANGED
The diff for this file is too large to render. See raw diff
 
js/fullscreen.js.map CHANGED
The diff for this file is too large to render. See raw diff
 
js/player.js CHANGED
@@ -218,7 +218,7 @@ var GUI =
218
  /******/
219
  /******/
220
  /******/ // add entry module to deferred list
221
- /******/ deferredModules.push(["./src/playground/player.jsx","vendors~addon-settings~credits~editor~embed~fullscreen~player~playground","vendors~editor~embed~fullscreen~player~playground","addon-settings~addons~editor~fullscreen~player~playground","embed~player"]);
222
  /******/ // run deferred modules when ready
223
  /******/ return checkDeferredModules();
224
  /******/ })
@@ -1599,7 +1599,7 @@ exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loa
1599
 
1600
 
1601
  // module
1602
- exports.push([module.i, "/*基本色(#6f00ffを基調)*/\n/* #F0E5FF */\n/* #F3E9FC */\n/* #E7D9F2 */\n/* #B366FF with 90% opacity */\n/* #FFFFFF */\n/* 75% */\n/* 25% */\n/* 0% */\n/* 15% black */\n/* 渋めの紫文字色 */\n/* #6f00ff */\n/* #5c00cc */\n/* #6f00ff 35% */\n/* #5c00cc 15% */\n/* opt-in theme overrides */\n/* ダークモードのトップバー色 */\n/* #6f00ff */\n/* #5c00cc */\n/* #9966ff */\n/* #8040ff */\n/* #9966ff 代替コントロール色 */\n/* #8a33ff */\n/* #5900b8 */\n/* #5900b8 25% */\n/* #8a33ff */\n/* #b380ff */\n/* #8a33ff 25% */\n/* #d1a6ff より明るい紫 */\n.cloud-variable-badge_badge_2kZVK {\n padding: 0.5rem;\n margin: 5px 0 8px 0;\n border: 1px solid #b9d6ff;\n background-color: #dbebff;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n border-radius: 0.5rem;\n}\n[theme=\"dark\"] .cloud-variable-badge_badge_2kZVK {\n border-color: #203652;\n background-color: #16202c;\n}\n.cloud-variable-badge_title_2xJoL {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: bold;\n}\n[theme=\"dark\"] .cloud-variable-badge_cloud-icon_1JP1e {\n filter: invert(100%);\n}\n.cloud-variable-badge_servers_1fLAL {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n}\n.cloud-variable-badge_server_3s9y9 {\n border: 1px solid var(--ui-black-transparent, hsla(0, 0%, 0%, 0.15));\n padding: 0.25rem 0.5rem;\n margin: 0;\n background: none;\n border-radius: 1rem;\n}\n.cloud-variable-badge_server_3s9y9.cloud-variable-badge_selected_3ZyWW {\n background-color: hsla(266, 100%, 50%, 1);\n color: hsla(0, 100%, 100%, 1);\n}\n", ""]);
1603
 
1604
  // exports
1605
  exports.locals = {
@@ -1681,7 +1681,7 @@ exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loa
1681
 
1682
 
1683
  // module
1684
- exports.push([module.i, "/*基本色(#6f00ffを基調)*/\n/* #F0E5FF */\n/* #F3E9FC */\n/* #E7D9F2 */\n/* #B366FF with 90% opacity */\n/* #FFFFFF */\n/* 75% */\n/* 25% */\n/* 0% */\n/* 15% black */\n/* 渋めの紫文字色 */\n/* #6f00ff */\n/* #5c00cc */\n/* #6f00ff 35% */\n/* #5c00cc 15% */\n/* opt-in theme overrides */\n/* ダークモードのトップバー色 */\n/* #6f00ff */\n/* #5c00cc */\n/* #9966ff */\n/* #8040ff */\n/* #9966ff 代替コントロール色 */\n/* #8a33ff */\n/* #5900b8 */\n/* #5900b8 25% */\n/* #8a33ff */\n/* #b380ff */\n/* #8a33ff 25% */\n/* #d1a6ff より明るい紫 */\n/*\n Contains constants for the z-index values of elements that are part of the global stack context.\n In other words, z-index values that are \"inside\" a component are not added here.\n This prevents conflicts between identical z-index values in different components.\n*/\n/* Toolbox z-index: 40; set in scratch-blocks */\n/* tooltips should go over add buttons if they overlap */\n/* monitors go over add buttons */\n/* \"ask\" block text input goes above monitors */\n/* menu-bar should go over monitors, alerts and tutorials */\n/* tw: show below menu bar normally */\n/* Block drag z-index: 1000; default 50 is overriden in blocks.css */\n/* so it is draggable into other panes */\n/* in most interfaces, the context menu is always on top */\n.project-input_input_1E6Af {\n border: none;\n width: 100%;\n font-size: 23px;\n line-height: 32px;\n opacity: 0.5;\n background-color: transparent;\n color: inherit;\n}\n.project-input_input_1E6Af:focus {\n opacity: 1;\n}\n.project-input_input_1E6Af:disabled {\n opacity: 0.8;\n}\n.project-input_tooltip_3_EoA {\n opacity: 1 !important;\n background-color: hsla(266, 100%, 50%, 1) !important;\n border: 1px solid hsla(0, 0%, 0%, .1) !important;\n box-shadow: 0 0 .5rem hsla(0, 0%, 0%, .25) !important;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !important;\n border: 1px solid hsla(0, 0%, 0%, .1) !important;\n z-index: 491 !important;\n}\n.project-input_tooltip_3_EoA:after {\n border-top-color: hsla(266, 100%, 50%, 1) !important;\n}\n", ""]);
1685
 
1686
  // exports
1687
  exports.locals = {
 
218
  /******/
219
  /******/
220
  /******/ // add entry module to deferred list
221
+ /******/ deferredModules.push(["./src/playground/player.jsx","vendors~addon-settings~credits~editor~embed~fullscreen~player~playground","vendors~editor~embed~fullscreen~player~playground","addon-settings~addons~editor~fullscreen~player~playground","editor~embed~fullscreen~player~playground"]);
222
  /******/ // run deferred modules when ready
223
  /******/ return checkDeferredModules();
224
  /******/ })
 
1599
 
1600
 
1601
  // module
1602
+ exports.push([module.i, "/* 基本色(#625edbを基調) */\n/* #F0EFFF */\n/* #F3F2FC */\n/* #E6E6F7 */\n/* #625edb with 90% opacity */\n/* #FFFFFF */\n/* 75% */\n/* 25% */\n/* 0% */\n/* 15% black */\n/* 渋めの青紫文字色 */\n/* #625edb */\n/* #504db8 */\n/* #625edb 35% */\n/* #504db8 15% */\n/* opt-in theme overrides */\n/* ダークモードのトップバー色 */\n/* #625edb */\n/* #504db8 */\n/* #7366e6 */\n/* #5a40cc */\n/* #6d6dec */\n/* #5545d4 */\n/* #2f1f80 */\n/* 25% */\n/* #5545d4 */\n/* #8b80f0 */\n/* 25% */\n/* #625edb */\n/* #504db8 */\n/* #c6bfff 明るい紫青 */\n.cloud-variable-badge_badge_2kZVK {\n padding: 0.5rem;\n margin: 5px 0 8px 0;\n border: 1px solid #b9d6ff;\n background-color: #dbebff;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n border-radius: 0.5rem;\n}\n[theme=\"dark\"] .cloud-variable-badge_badge_2kZVK {\n border-color: #203652;\n background-color: #16202c;\n}\n.cloud-variable-badge_title_2xJoL {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: bold;\n}\n[theme=\"dark\"] .cloud-variable-badge_cloud-icon_1JP1e {\n filter: invert(100%);\n}\n.cloud-variable-badge_servers_1fLAL {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n}\n.cloud-variable-badge_server_3s9y9 {\n border: 1px solid var(--ui-black-transparent, hsla(0, 0%, 0%, 0.15));\n padding: 0.25rem 0.5rem;\n margin: 0;\n background: none;\n border-radius: 1rem;\n}\n.cloud-variable-badge_server_3s9y9.cloud-variable-badge_selected_3ZyWW {\n background-color: hsla(248, 66%, 62%, 1);\n color: hsla(0, 100%, 100%, 1);\n}\n", ""]);
1603
 
1604
  // exports
1605
  exports.locals = {
 
1681
 
1682
 
1683
  // module
1684
+ exports.push([module.i, "/* 基本色(#625edbを基調) */\n/* #F0EFFF */\n/* #F3F2FC */\n/* #E6E6F7 */\n/* #625edb with 90% opacity */\n/* #FFFFFF */\n/* 75% */\n/* 25% */\n/* 0% */\n/* 15% black */\n/* 渋めの青紫文字色 */\n/* #625edb */\n/* #504db8 */\n/* #625edb 35% */\n/* #504db8 15% */\n/* opt-in theme overrides */\n/* ダークモードのトップバー色 */\n/* #625edb */\n/* #504db8 */\n/* #7366e6 */\n/* #5a40cc */\n/* #6d6dec */\n/* #5545d4 */\n/* #2f1f80 */\n/* 25% */\n/* #5545d4 */\n/* #8b80f0 */\n/* 25% */\n/* #625edb */\n/* #504db8 */\n/* #c6bfff 明るい紫青 */\n/*\n Contains constants for the z-index values of elements that are part of the global stack context.\n In other words, z-index values that are \"inside\" a component are not added here.\n This prevents conflicts between identical z-index values in different components.\n*/\n/* Toolbox z-index: 40; set in scratch-blocks */\n/* tooltips should go over add buttons if they overlap */\n/* monitors go over add buttons */\n/* \"ask\" block text input goes above monitors */\n/* menu-bar should go over monitors, alerts and tutorials */\n/* tw: show below menu bar normally */\n/* Block drag z-index: 1000; default 50 is overriden in blocks.css */\n/* so it is draggable into other panes */\n/* in most interfaces, the context menu is always on top */\n.project-input_input_1E6Af {\n border: none;\n width: 100%;\n font-size: 23px;\n line-height: 32px;\n opacity: 0.5;\n background-color: transparent;\n color: inherit;\n}\n.project-input_input_1E6Af:focus {\n opacity: 1;\n}\n.project-input_input_1E6Af:disabled {\n opacity: 0.8;\n}\n.project-input_tooltip_3_EoA {\n opacity: 1 !important;\n background-color: hsla(248, 66%, 62%, 1) !important;\n border: 1px solid hsla(0, 0%, 0%, .1) !important;\n box-shadow: 0 0 .5rem hsla(0, 0%, 0%, .25) !important;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !important;\n border: 1px solid hsla(0, 0%, 0%, .1) !important;\n z-index: 491 !important;\n}\n.project-input_tooltip_3_EoA:after {\n border-top-color: hsla(248, 66%, 62%, 1) !important;\n}\n", ""]);
1685
 
1686
  // exports
1687
  exports.locals = {
js/player.js.map CHANGED
The diff for this file is too large to render. See raw diff
 
js/playground.js CHANGED
The diff for this file is too large to render. See raw diff
 
js/playground.js.map CHANGED
The diff for this file is too large to render. See raw diff
 
js/vendors~addon-settings~credits.js ADDED
The diff for this file is too large to render. See raw diff
 
js/vendors~addon-settings~credits.js.map ADDED
The diff for this file is too large to render. See raw diff
 
js/vendors~editor~embed~fullscreen~player~playground.js CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:df74d528fe3537bf204c393e1fd81c6c702b68cebd8819b2618c6d1ff7d30650
3
- size 24227598
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:00bfe7fe6b24a14dcc9a04678d7a1387b2235fbce6f50371b61380246a171bdb
3
+ size 24227673
js/vendors~editor~embed~fullscreen~player~playground.js.map CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:f52ff2ba07aae32d306b3e366be0a2ffa98118273b20dac45a569d84b4b5e529
3
- size 24104399
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e9a3a4de4b0f242fdc6a28895498d5fe857a9abc62c99dc3af4c6f439c52a08e
3
+ size 24124687
playground.html CHANGED
@@ -49,5 +49,5 @@
49
  })();
50
  </script>
51
  <div id="app"></div>
52
- <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~playground.js"></script><script src="js/vendors~editor~embed~fullscreen~player~playground.js"></script><script src="js/addon-settings~addons~editor~fullscreen~player~playground.js"></script><script src="js/playground.js"></script></body>
53
  </html>
 
49
  })();
50
  </script>
51
  <div id="app"></div>
52
+ <script src="js/vendors~addon-settings~credits~editor~embed~fullscreen~player~playground.js"></script><script src="js/vendors~editor~embed~fullscreen~player~playground.js"></script><script src="js/addon-settings~addons~editor~fullscreen~player~playground.js"></script><script src="js/editor~embed~fullscreen~player~playground.js"></script><script src="js/playground.js"></script></body>
53
  </html>
static/assets/0fbcc52d8e7b3094e009bd54d76d6648.svg ADDED
static/assets/14481bcaa2b79b9ddbaf7d5d6301cc97.svg ADDED
static/assets/1667bada0f4c7d183f1206ca05f4f8e0.svg ADDED
static/assets/1af90e14452a64be26722ded9e5e39cd.svg ADDED
static/assets/1b40be6633fec134e36277988c4f8f9f.svg ADDED
static/assets/1dddb4d8057f7befe561ab361d052eaa.svg ADDED
static/assets/1e1804ca944c786b3e222ae2d9204997.svg ADDED
static/assets/249eb53fdf0ad465d99c53e5bf34548e.svg ADDED
static/assets/25ca1de1cd50dbbab4467a03d274c024.svg ADDED
static/assets/284c6d9fcaa673502673ec4760405e5e.svg ADDED
static/assets/2e8ed4c351767c4049864395e8f7b521.svg ADDED
static/assets/328602156cb1881903816d471f0cc290.svg ADDED
static/assets/376eb9c9c4086a80a8fe8dfc16b2f609.svg ADDED