@puzzmo/sdk 1.0.23 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{createSimulator-HQPoM1pd.cjs → createSimulator-BVMKhHqV.cjs} +33 -13
- package/dist/createSimulator-BVMKhHqV.cjs.map +1 -0
- package/dist/{createSimulator-jeSc_X3r.js → createSimulator-D-hDsmgQ.js} +87 -67
- package/dist/createSimulator-D-hDsmgQ.js.map +1 -0
- package/dist/editor.d.ts +52 -2
- package/dist/editor.d.ts.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/simulator/index.cjs +1 -1
- package/dist/simulator/index.js +1 -1
- package/dist/simulator/standalone.cjs +1 -1
- package/dist/simulator/standalone.js +1 -1
- package/dist/simulator/styles.d.ts +1 -1
- package/dist/simulator/styles.d.ts.map +1 -1
- package/dist/simulator/views/DoneView.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/createSimulator-HQPoM1pd.cjs.map +0 -1
- package/dist/createSimulator-jeSc_X3r.js.map +0 -1
|
@@ -525,7 +525,7 @@ function re() {
|
|
|
525
525
|
},
|
|
526
526
|
onMessage(e, t, n) {
|
|
527
527
|
let r = n.getElement("#simulator-start"), i = n.getElement("#simulator-pause"), a = n.getElement("#simulator-retry");
|
|
528
|
-
e === "READY_GAME_LOADED" && (r && (r.disabled = !1), a && (a.disabled = !1), n.updateStatus("Ready", "ready")), e === "GAME_COMPLETED" && (n.state.hasStarted = !1, i && (i.disabled = !0), r && (r.disabled = !0), n.updateStatus("Completed!", "
|
|
528
|
+
e === "READY_GAME_LOADED" && (r && (r.disabled = !1), a && (a.disabled = !1), n.updateStatus("Ready", "ready")), e === "GAME_COMPLETED" && (n.state.hasStarted = !1, i && (i.disabled = !0), r && (r.disabled = !0), n.updateStatus("Completed!", "complete"));
|
|
529
529
|
}
|
|
530
530
|
};
|
|
531
531
|
}
|
|
@@ -791,6 +791,10 @@ function oe() {
|
|
|
791
791
|
bind(e) {},
|
|
792
792
|
onMessage(e, t, n) {
|
|
793
793
|
var r, i;
|
|
794
|
+
if (e === "SHOW_GAME_COMPLETE_SCREEN") {
|
|
795
|
+
n.setCollapsed(!1), n.switchTab("done");
|
|
796
|
+
return;
|
|
797
|
+
}
|
|
794
798
|
if (e !== "GAME_COMPLETED") return;
|
|
795
799
|
n.state.completionData = t;
|
|
796
800
|
let a = n.getElement("#simulator-done-empty"), o = n.getElement("#simulator-done-content"), s = n.getElement("#simulator-done-text"), c = n.getElement("#simulator-done-input"), l = n.getElement("#simulator-done-deeds"), u = n.getElement("#simulator-done-raw");
|
|
@@ -810,7 +814,7 @@ function oe() {
|
|
|
810
814
|
`, l.appendChild(t);
|
|
811
815
|
}) : l.innerHTML = "<div class=\"simulator-empty\">No deeds</div>";
|
|
812
816
|
}
|
|
813
|
-
u && (u.value = JSON.stringify(t, null, 2))
|
|
817
|
+
u && (u.value = JSON.stringify(t, null, 2));
|
|
814
818
|
}
|
|
815
819
|
};
|
|
816
820
|
}
|
|
@@ -975,17 +979,17 @@ var F = "puzzmo_sim_api_mode", I = "http://localhost:8911", L = "https://api.puz
|
|
|
975
979
|
}), U = () => {
|
|
976
980
|
let e = new Uint8Array(32);
|
|
977
981
|
return crypto.getRandomValues(e), Array.from(e, (e) => e.toString(16).padStart(2, "0")).join("");
|
|
978
|
-
}, W = "puzzmo_sim_oauth_token", G = "puzzmo_sim_oauth_refresh_token",
|
|
982
|
+
}, W = "puzzmo_sim_oauth_token", G = "puzzmo_sim_oauth_refresh_token", ue = (e) => localStorage.setItem(W, e), de = (e) => localStorage.setItem(G, e), K = () => {
|
|
979
983
|
let e = localStorage.getItem(W);
|
|
980
984
|
return e && `${e.substring(0, 20)}`, e;
|
|
981
|
-
},
|
|
985
|
+
}, q = () => localStorage.getItem(G), J = () => {
|
|
982
986
|
localStorage.removeItem(W), localStorage.removeItem(G);
|
|
983
|
-
},
|
|
987
|
+
}, fe = () => {
|
|
984
988
|
let e = H(), t = U();
|
|
985
989
|
sessionStorage.setItem("oauth_state", t), sessionStorage.setItem("oauth_return_url", window.location.href);
|
|
986
990
|
let n = new URL(`${e.apiURL}/oauth/auth`);
|
|
987
991
|
n.searchParams.set("client_id", e.clientID), n.searchParams.set("response_type", "code"), n.searchParams.set("redirect_uri", e.redirectUri), n.searchParams.set("state", t), window.location.href = n.toString();
|
|
988
|
-
},
|
|
992
|
+
}, pe = (e) => {
|
|
989
993
|
try {
|
|
990
994
|
let t = e.split(".");
|
|
991
995
|
if (t.length !== 3) return !0;
|
|
@@ -994,9 +998,9 @@ var F = "puzzmo_sim_api_mode", I = "http://localhost:8911", L = "https://api.puz
|
|
|
994
998
|
} catch (e) {
|
|
995
999
|
return !0;
|
|
996
1000
|
}
|
|
997
|
-
},
|
|
1001
|
+
}, me = function() {
|
|
998
1002
|
var t = e(function* () {
|
|
999
|
-
let e =
|
|
1003
|
+
let e = q();
|
|
1000
1004
|
if (!e) return !1;
|
|
1001
1005
|
let t = H();
|
|
1002
1006
|
try {
|
|
@@ -1012,9 +1016,9 @@ var F = "puzzmo_sim_api_mode", I = "http://localhost:8911", L = "https://api.puz
|
|
|
1012
1016
|
if (!r.ok) return r.statusText, !1;
|
|
1013
1017
|
let i = yield r.json(), a = i.access_token || i.accessToken;
|
|
1014
1018
|
if (!a) return !1;
|
|
1015
|
-
|
|
1019
|
+
ue(a);
|
|
1016
1020
|
let o = i.refresh_token || i.refreshToken;
|
|
1017
|
-
return o &&
|
|
1021
|
+
return o && de(o), !0;
|
|
1018
1022
|
} catch (e) {
|
|
1019
1023
|
return !1;
|
|
1020
1024
|
}
|
|
@@ -1022,7 +1026,7 @@ var F = "puzzmo_sim_api_mode", I = "http://localhost:8911", L = "https://api.puz
|
|
|
1022
1026
|
return function() {
|
|
1023
1027
|
return t.apply(this, arguments);
|
|
1024
1028
|
};
|
|
1025
|
-
}(),
|
|
1029
|
+
}(), he = function() {
|
|
1026
1030
|
var t = e(function* (e, t) {
|
|
1027
1031
|
let n = H(), r = sessionStorage.getItem("oauth_state");
|
|
1028
1032
|
if (!r || r !== t) return null;
|
|
@@ -1046,13 +1050,13 @@ var F = "puzzmo_sim_api_mode", I = "http://localhost:8911", L = "https://api.puz
|
|
|
1046
1050
|
return function(e, n) {
|
|
1047
1051
|
return t.apply(this, arguments);
|
|
1048
1052
|
};
|
|
1049
|
-
}(),
|
|
1053
|
+
}(), ge = function() {
|
|
1050
1054
|
var t = e(function* (e, t = {}) {
|
|
1051
|
-
let n = H(), r =
|
|
1055
|
+
let n = H(), r = K();
|
|
1052
1056
|
if (!r) throw Error("Not authenticated");
|
|
1053
|
-
if (
|
|
1054
|
-
if (r =
|
|
1055
|
-
} else throw
|
|
1057
|
+
if (pe(r)) if (yield me()) {
|
|
1058
|
+
if (r = K(), !r) throw Error("Token refresh succeeded but no token available");
|
|
1059
|
+
} else throw J(), Error("Session expired. Please log in again.");
|
|
1056
1060
|
let i = yield fetch(`${n.apiURL}/graphql`, {
|
|
1057
1061
|
method: "POST",
|
|
1058
1062
|
headers: {
|
|
@@ -1071,7 +1075,7 @@ var F = "puzzmo_sim_api_mode", I = "http://localhost:8911", L = "https://api.puz
|
|
|
1071
1075
|
return function(e) {
|
|
1072
1076
|
return t.apply(this, arguments);
|
|
1073
1077
|
};
|
|
1074
|
-
}(),
|
|
1078
|
+
}(), _e = (e) => {
|
|
1075
1079
|
try {
|
|
1076
1080
|
let t = e.split(".");
|
|
1077
1081
|
return t.length, t.length === 3 ? JSON.parse(atob(t[1])) : null;
|
|
@@ -1079,15 +1083,15 @@ var F = "puzzmo_sim_api_mode", I = "http://localhost:8911", L = "https://api.puz
|
|
|
1079
1083
|
return null;
|
|
1080
1084
|
}
|
|
1081
1085
|
};
|
|
1082
|
-
function
|
|
1086
|
+
function ve() {
|
|
1083
1087
|
let t = !1;
|
|
1084
1088
|
return {
|
|
1085
1089
|
id: "auth",
|
|
1086
1090
|
label: "Auth",
|
|
1087
1091
|
render() {
|
|
1088
|
-
let e =
|
|
1092
|
+
let e = K(), t = !!e, n = R(), r = n === "dev" ? I : L, i = `<button class="simulator-btn tiny" id="auth-dev-toggle" style="display: none;">${n === "dev" ? "Using Dev" : "Dev"}</button>`;
|
|
1089
1093
|
if (t) {
|
|
1090
|
-
let t =
|
|
1094
|
+
let t = _e(e), n = t != null && t.exp ? (/* @__PURE__ */ new Date(t.exp * 1e3)).toLocaleString() : "Unknown", a = !!q(), o = a ? _e(q()) : null, s = o != null && o.exp ? (/* @__PURE__ */ new Date(o.exp * 1e3)).toLocaleString() : null;
|
|
1091
1095
|
return `
|
|
1092
1096
|
<div class="simulator-section">
|
|
1093
1097
|
<div class="simulator-section-title auth-title-row">
|
|
@@ -1142,18 +1146,18 @@ function _e() {
|
|
|
1142
1146
|
t ? B && c && (c.style.display = "", R() === "dev" && c.classList.add("active")) : (t = !0, V().then((e) => {
|
|
1143
1147
|
e && c && (c.style.display = "", R() === "dev" && c.classList.add("active"));
|
|
1144
1148
|
})), c == null || c.addEventListener("click", () => {
|
|
1145
|
-
z(R() === "dev" ? "prod" : "dev"),
|
|
1149
|
+
z(R() === "dev" ? "prod" : "dev"), J(), window.location.reload();
|
|
1146
1150
|
}), r == null || r.addEventListener("click", () => {
|
|
1147
|
-
|
|
1151
|
+
fe();
|
|
1148
1152
|
}), i == null || i.addEventListener("click", () => {
|
|
1149
|
-
|
|
1153
|
+
J(), window.location.reload();
|
|
1150
1154
|
}), a == null || a.addEventListener("click", e(function* () {
|
|
1151
|
-
a.disabled = !0, a.textContent = "Refreshing...", (yield
|
|
1155
|
+
a.disabled = !0, a.textContent = "Refreshing...", (yield me()) ? window.location.reload() : (a.textContent = "Refresh Failed", a.disabled = !1);
|
|
1152
1156
|
})), o == null || o.addEventListener("click", e(function* () {
|
|
1153
1157
|
if (s) {
|
|
1154
1158
|
s.innerHTML = "<div class=\"loading\">Loading...</div>";
|
|
1155
1159
|
try {
|
|
1156
|
-
let t = yield
|
|
1160
|
+
let t = yield ge("\n query {\n currentUser {\n id\n username\n usernameID\n name\n }\n }\n ");
|
|
1157
1161
|
if (t.errors) {
|
|
1158
1162
|
var e;
|
|
1159
1163
|
s.innerHTML = `<div class="error">Error: ${((e = t.errors[0]) == null ? void 0 : e.message) || "Unknown error"}</div>`;
|
|
@@ -1175,13 +1179,13 @@ function _e() {
|
|
|
1175
1179
|
if (n && r) {
|
|
1176
1180
|
let e = t.getElement("#auth-status");
|
|
1177
1181
|
e && (e.innerHTML = "<span class=\"indicator waiting\"></span><span>Exchanging code...</span>");
|
|
1178
|
-
let i = yield
|
|
1182
|
+
let i = yield he(n, r);
|
|
1179
1183
|
if (window.history.replaceState({}, "", window.location.pathname), i) {
|
|
1180
1184
|
let e = i.access_token || i.accessToken;
|
|
1181
1185
|
if (e) {
|
|
1182
|
-
|
|
1186
|
+
ue(e);
|
|
1183
1187
|
let t = i.refresh_token || i.refreshToken;
|
|
1184
|
-
t &&
|
|
1188
|
+
t && de(t);
|
|
1185
1189
|
}
|
|
1186
1190
|
window.location.reload();
|
|
1187
1191
|
} else {
|
|
@@ -1193,9 +1197,9 @@ function _e() {
|
|
|
1193
1197
|
}
|
|
1194
1198
|
};
|
|
1195
1199
|
}
|
|
1196
|
-
var
|
|
1197
|
-
localStorage.removeItem(
|
|
1198
|
-
},
|
|
1200
|
+
var ye = "puzzmo_sim_api_mode", be = "http://localhost:8911", xe = "https://api.puzzmo.com", Y = "puzzmo_sim_oauth_token", X = "puzzmo_sim_oauth_refresh_token", Se = () => localStorage.getItem(ye) === "dev" ? "dev" : "prod", Z = () => localStorage.getItem(Y), Ce = () => localStorage.getItem(X), we = (e) => localStorage.setItem(Y, e), Te = (e) => localStorage.setItem(X, e), Ee = () => {
|
|
1201
|
+
localStorage.removeItem(Y), localStorage.removeItem(X);
|
|
1202
|
+
}, De = (e) => {
|
|
1199
1203
|
try {
|
|
1200
1204
|
let t = e.split(".");
|
|
1201
1205
|
if (t.length !== 3) return !0;
|
|
@@ -1204,11 +1208,11 @@ var ve = "puzzmo_sim_api_mode", ye = "http://localhost:8911", be = "https://api.
|
|
|
1204
1208
|
} catch (e) {
|
|
1205
1209
|
return !0;
|
|
1206
1210
|
}
|
|
1207
|
-
},
|
|
1211
|
+
}, Oe = function() {
|
|
1208
1212
|
var t = e(function* () {
|
|
1209
|
-
let e =
|
|
1213
|
+
let e = Ce();
|
|
1210
1214
|
if (!e) return !1;
|
|
1211
|
-
let t =
|
|
1215
|
+
let t = Se() === "dev" ? be : xe;
|
|
1212
1216
|
try {
|
|
1213
1217
|
let n = new URLSearchParams({
|
|
1214
1218
|
grant_type: "refresh_token",
|
|
@@ -1222,9 +1226,9 @@ var ve = "puzzmo_sim_api_mode", ye = "http://localhost:8911", be = "https://api.
|
|
|
1222
1226
|
if (!r.ok) return !1;
|
|
1223
1227
|
let i = yield r.json(), a = i.access_token || i.accessToken;
|
|
1224
1228
|
if (!a) return !1;
|
|
1225
|
-
|
|
1229
|
+
we(a);
|
|
1226
1230
|
let o = i.refresh_token || i.refreshToken;
|
|
1227
|
-
return o &&
|
|
1231
|
+
return o && Te(o), !0;
|
|
1228
1232
|
} catch (e) {
|
|
1229
1233
|
return !1;
|
|
1230
1234
|
}
|
|
@@ -1232,13 +1236,13 @@ var ve = "puzzmo_sim_api_mode", ye = "http://localhost:8911", be = "https://api.
|
|
|
1232
1236
|
return function() {
|
|
1233
1237
|
return t.apply(this, arguments);
|
|
1234
1238
|
};
|
|
1235
|
-
}(),
|
|
1239
|
+
}(), ke = function() {
|
|
1236
1240
|
var t = e(function* (e, t = {}) {
|
|
1237
|
-
let n =
|
|
1241
|
+
let n = Se() === "dev" ? be : xe, r = Z();
|
|
1238
1242
|
if (!r) throw Error("Not authenticated");
|
|
1239
|
-
if (
|
|
1240
|
-
if (r =
|
|
1241
|
-
} else throw
|
|
1243
|
+
if (De(r)) if (yield Oe()) {
|
|
1244
|
+
if (r = Z(), !r) throw Error("Token refresh succeeded but no token available");
|
|
1245
|
+
} else throw Ee(), Error("Session expired. Please log in again.");
|
|
1242
1246
|
let i = yield fetch(`${n}/graphql`, {
|
|
1243
1247
|
method: "POST",
|
|
1244
1248
|
headers: {
|
|
@@ -1257,19 +1261,19 @@ var ve = "puzzmo_sim_api_mode", ye = "http://localhost:8911", be = "https://api.
|
|
|
1257
1261
|
return function(e) {
|
|
1258
1262
|
return t.apply(this, arguments);
|
|
1259
1263
|
};
|
|
1260
|
-
}(),
|
|
1264
|
+
}(), Ae = "\n query GameFeaturesQuery($slug: ID!) {\n game(id: $slug) {\n id\n slug\n displayName\n featuresArr\n gameFeatures {\n slug\n title\n features {\n featureID\n title\n isEnabled\n }\n }\n }\n }\n", je = "\n mutation ToggleFeatureMutation($gameSlug: ID!, $input: UpdateGameInput!) {\n updateGame(id: $gameSlug, input: $input) {\n id\n featuresArr\n gameFeatures {\n slug\n title\n features {\n featureID\n title\n isEnabled\n }\n }\n }\n }\n", Me = (e, t) => {
|
|
1261
1265
|
let n = t - 1, r = Math.floor(n / 31), i = n % 31, a = [...e];
|
|
1262
1266
|
for (; a.length <= r;) a.push(0);
|
|
1263
1267
|
return a[r] = a[r] ^ 1 << i, a;
|
|
1264
1268
|
};
|
|
1265
|
-
const
|
|
1266
|
-
function
|
|
1269
|
+
const Ne = () => !!Z();
|
|
1270
|
+
function Pe() {
|
|
1267
1271
|
let n = null, r = !1, i = null, a = function() {
|
|
1268
1272
|
var t = e(function* (e) {
|
|
1269
1273
|
r = !0, i = null;
|
|
1270
1274
|
try {
|
|
1271
1275
|
var t;
|
|
1272
|
-
let r = yield
|
|
1276
|
+
let r = yield ke(Ae, { slug: e });
|
|
1273
1277
|
if (r.errors) {
|
|
1274
1278
|
var a;
|
|
1275
1279
|
i = ((a = r.errors[0]) == null ? void 0 : a.message) || "Unknown error", n = null;
|
|
@@ -1286,10 +1290,10 @@ function Ne() {
|
|
|
1286
1290
|
}(), o = function() {
|
|
1287
1291
|
var r = e(function* (e) {
|
|
1288
1292
|
if (!n) return;
|
|
1289
|
-
let r =
|
|
1293
|
+
let r = Me(n.featuresArr, e);
|
|
1290
1294
|
try {
|
|
1291
1295
|
var i;
|
|
1292
|
-
let e = yield
|
|
1296
|
+
let e = yield ke(je, {
|
|
1293
1297
|
gameSlug: n.slug,
|
|
1294
1298
|
input: { featuresArr: r }
|
|
1295
1299
|
});
|
|
@@ -1337,7 +1341,7 @@ function Ne() {
|
|
|
1337
1341
|
id: "features",
|
|
1338
1342
|
label: "Features",
|
|
1339
1343
|
render() {
|
|
1340
|
-
return
|
|
1344
|
+
return Ne() ? `
|
|
1341
1345
|
<div class="features-view-container">
|
|
1342
1346
|
<div class="simulator-section">
|
|
1343
1347
|
<div class="simulator-section-title">Game Features</div>
|
|
@@ -1378,7 +1382,7 @@ function Ne() {
|
|
|
1378
1382
|
e && (yield d(e));
|
|
1379
1383
|
})), i == null || i.addEventListener("keypress", (e) => {
|
|
1380
1384
|
e.key === "Enter" && (r == null || r.click());
|
|
1381
|
-
}), console.log("[FeaturesView] bind called, ctx.gameSlug:", t.gameSlug, "slugInput:", i), t.gameSlug && i && (i.value = t.gameSlug,
|
|
1385
|
+
}), console.log("[FeaturesView] bind called, ctx.gameSlug:", t.gameSlug, "slugInput:", i), t.gameSlug && i && (i.value = t.gameSlug, Ne() && !n && d(t.gameSlug)), u();
|
|
1382
1386
|
},
|
|
1383
1387
|
onActivate(e) {
|
|
1384
1388
|
let t = e.getElement("#simulator-tab-features");
|
|
@@ -1387,7 +1391,7 @@ function Ne() {
|
|
|
1387
1391
|
};
|
|
1388
1392
|
}
|
|
1389
1393
|
/** Renders a single keyboard key as an HTML button string */
|
|
1390
|
-
var
|
|
1394
|
+
var Fe = (e, t) => {
|
|
1391
1395
|
var n, r;
|
|
1392
1396
|
let i = (n = t.symbols[e]) == null ? e : n, a = t.disabled.includes(e), o = t.highlight.includes(e), s = t.xl.includes(e), c = t.l.includes(e), l = (r = t.flexGrowSymbols) == null ? void 0 : r.includes(e);
|
|
1393
1397
|
return `<button class="${[
|
|
@@ -1398,9 +1402,9 @@ var Pe = (e, t) => {
|
|
|
1398
1402
|
c ? "l" : "",
|
|
1399
1403
|
l ? "grow" : ""
|
|
1400
1404
|
].filter(Boolean).join(" ")}" data-key="${e}" ${a ? "disabled" : ""}>${i}</button>`;
|
|
1401
|
-
},
|
|
1402
|
-
function
|
|
1403
|
-
let e = null, t = () => e ?
|
|
1405
|
+
}, Ie = (e) => `<div class="sim-kb">${e.layout.filter((e) => e != null).map((t) => `<div class="sim-kb-row">${[...t].map((t) => Fe(t, e)).join("")}</div>`).join("")}</div>`;
|
|
1406
|
+
function Le() {
|
|
1407
|
+
let e = null, t = () => e ? Ie(e) : "<div class=\"sim-kb-empty\">No keyboard config received from game yet.<br>The game calls <code>sdk.keyboard.show(config)</code> to display a keyboard.</div>";
|
|
1404
1408
|
return {
|
|
1405
1409
|
id: "kbd",
|
|
1406
1410
|
label: "Kbd",
|
|
@@ -1414,19 +1418,19 @@ function Ie() {
|
|
|
1414
1418
|
`;
|
|
1415
1419
|
},
|
|
1416
1420
|
bind(e) {
|
|
1417
|
-
|
|
1421
|
+
Q(e);
|
|
1418
1422
|
},
|
|
1419
1423
|
onMessage(n, r, i) {
|
|
1420
1424
|
var a;
|
|
1421
1425
|
if (n !== "KEYBOARD_UPDATE_CONFIG") return;
|
|
1422
1426
|
e = !(!(r == null || (a = r.layout) == null) && a.length) || r.layout.every((e) => !e) ? null : r;
|
|
1423
1427
|
let o = i.getElement("#sim-kb-content");
|
|
1424
|
-
o && (o.innerHTML = t(),
|
|
1428
|
+
o && (o.innerHTML = t(), Q(i)), i.updateBadge("kbd", void 0);
|
|
1425
1429
|
}
|
|
1426
1430
|
};
|
|
1427
1431
|
}
|
|
1428
1432
|
/** Attach click handlers to all rendered keys */
|
|
1429
|
-
function
|
|
1433
|
+
function Q(e) {
|
|
1430
1434
|
var t;
|
|
1431
1435
|
let n = (t = e.getElement("#sim-kb-content")) == null ? void 0 : t.querySelectorAll(".sim-kb-key");
|
|
1432
1436
|
n == null || n.forEach((t) => {
|
|
@@ -1487,9 +1491,9 @@ function Re(t = {}) {
|
|
|
1487
1491
|
se(),
|
|
1488
1492
|
c,
|
|
1489
1493
|
le(),
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1494
|
+
ve(),
|
|
1495
|
+
Pe(),
|
|
1496
|
+
Le()
|
|
1493
1497
|
], p = f.map((e) => e.id), m = l(t, o, p), h = {
|
|
1494
1498
|
pause: "<svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\"><rect x=\"1\" y=\"1\" width=\"3\" height=\"8\"/><rect x=\"6\" y=\"1\" width=\"3\" height=\"8\"/></svg>",
|
|
1495
1499
|
play: "<svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\"><polygon points=\"2,1 9,5 2,9\"/></svg>",
|
|
@@ -1620,6 +1624,16 @@ function Re(t = {}) {
|
|
|
1620
1624
|
background: var(--sim-error);
|
|
1621
1625
|
box-shadow: 0 0 4px var(--sim-error);
|
|
1622
1626
|
}
|
|
1627
|
+
#simulator-header-indicator.complete {
|
|
1628
|
+
background: transparent;
|
|
1629
|
+
box-shadow: none;
|
|
1630
|
+
color: var(--sim-success);
|
|
1631
|
+
width: auto;
|
|
1632
|
+
height: auto;
|
|
1633
|
+
font-size: 11px;
|
|
1634
|
+
line-height: 1;
|
|
1635
|
+
font-weight: bold;
|
|
1636
|
+
}
|
|
1623
1637
|
#simulator-timer {
|
|
1624
1638
|
font-size: 11px;
|
|
1625
1639
|
color: var(--sim-text);
|
|
@@ -1809,6 +1823,16 @@ function Re(t = {}) {
|
|
|
1809
1823
|
background: var(--sim-error);
|
|
1810
1824
|
box-shadow: 0 0 6px var(--sim-error);
|
|
1811
1825
|
}
|
|
1826
|
+
#simulator-status .indicator.complete {
|
|
1827
|
+
background: transparent;
|
|
1828
|
+
box-shadow: none;
|
|
1829
|
+
color: var(--sim-success);
|
|
1830
|
+
width: auto;
|
|
1831
|
+
height: auto;
|
|
1832
|
+
font-size: 12px;
|
|
1833
|
+
line-height: 1;
|
|
1834
|
+
font-weight: bold;
|
|
1835
|
+
}
|
|
1812
1836
|
.simulator-row {
|
|
1813
1837
|
display: flex;
|
|
1814
1838
|
gap: 4px;
|
|
@@ -2680,8 +2704,8 @@ function Re(t = {}) {
|
|
|
2680
2704
|
let _ = g.querySelector("#simulator-panel"), y = g.querySelector("#simulator-header"), b = g.querySelector("#simulator-header-indicator"), x = g.querySelector("#simulator-header-status-text"), S = g.querySelector("#simulator-header-pause"), C = g.querySelector("#simulator-header-retry"), w = g.querySelector("#simulator-header-settings"), T = g.querySelector("#simulator-toggle"), E = g.querySelector("#simulator-timer"), D = g.querySelector("#simulator-tabs"), O = g.querySelector("#simulator-content"), k = (e) => g.querySelector(e), A = (e) => {
|
|
2681
2705
|
S.innerHTML = e ? h.play : h.pause, S.title = e ? "Resume" : "Pause";
|
|
2682
2706
|
}, j = (e, t) => {
|
|
2683
|
-
let n = k("#simulator-status .text"), r = k("#simulator-status .indicator");
|
|
2684
|
-
n && (n.textContent = e), r && (r.className = `indicator ${t}
|
|
2707
|
+
let n = k("#simulator-status .text"), r = k("#simulator-status .indicator"), i = t === "complete" ? "✓" : "";
|
|
2708
|
+
n && (n.textContent = e), r && (r.className = `indicator ${t}`, r.textContent = i), b.className = t, b.textContent = i, x.textContent = e;
|
|
2685
2709
|
}, M = (e, t) => {
|
|
2686
2710
|
t && t !== "0" ? E.innerHTML = `${e}<span class="penalty">+${t}</span>` : E.textContent = e;
|
|
2687
2711
|
}, N = (e) => {
|
|
@@ -2847,10 +2871,6 @@ function Re(t = {}) {
|
|
|
2847
2871
|
return;
|
|
2848
2872
|
}
|
|
2849
2873
|
if (e === "TIMER_SYNC") return;
|
|
2850
|
-
if (e === "SHOW_GAME_COMPLETE_SCREEN") {
|
|
2851
|
-
console.log("Simulator: Show completion screen", t);
|
|
2852
|
-
return;
|
|
2853
|
-
}
|
|
2854
2874
|
if (e === "SIDEBAR_UPDATE") {
|
|
2855
2875
|
console.log("Simulator: Sidebar update", t);
|
|
2856
2876
|
return;
|
|
@@ -2860,7 +2880,7 @@ function Re(t = {}) {
|
|
|
2860
2880
|
return (r = n.onMessage) == null ? void 0 : r.call(n, e, t, B);
|
|
2861
2881
|
});
|
|
2862
2882
|
let i = (n = t == null || (r = t.input) == null ? void 0 : r.boardState) == null ? t == null ? void 0 : t.boardState : n;
|
|
2863
|
-
e === "UPLOAD_NEW_GAME_STATE" && i && (m.currentInputStr = i, m.activeTab === "thumb" && F(), console.log("Simulator: Game state uploaded", t)), e === "GAME_COMPLETED" && (console.log("Simulator: Game completed!", t), S.disabled = !0, m.hasStarted = !1, j("Completed!", "
|
|
2883
|
+
e === "UPLOAD_NEW_GAME_STATE" && i && (m.currentInputStr = i, m.activeTab === "thumb" && F(), console.log("Simulator: Game state uploaded", t)), e === "GAME_COMPLETED" && (console.log("Simulator: Game completed!", t), S.disabled = !0, m.hasStarted = !1, j("Completed!", "complete"));
|
|
2864
2884
|
}, L), console.log("Simulator initialized"), $ = {
|
|
2865
2885
|
updateFixtures: (e) => {
|
|
2866
2886
|
a = v(e), o = Array.from(a.keys()).sort(), B.fixtures = a, B.fixtureCategories = o;
|
|
@@ -2881,4 +2901,4 @@ function Re(t = {}) {
|
|
|
2881
2901
|
}
|
|
2882
2902
|
export { Re as t };
|
|
2883
2903
|
|
|
2884
|
-
//# sourceMappingURL=createSimulator-
|
|
2904
|
+
//# sourceMappingURL=createSimulator-D-hDsmgQ.js.map
|