@timardex/cluemart-shared 1.5.740 → 1.5.741
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/{chunk-6OBMKN7F.mjs → chunk-7JDAKGGH.mjs} +2 -2
- package/dist/{chunk-6YISZ3OD.mjs → chunk-L5BYCXXP.mjs} +2 -2
- package/dist/{chunk-XWFE6U3E.mjs → chunk-VPYYAF3L.mjs} +129 -117
- package/dist/chunk-VPYYAF3L.mjs.map +1 -0
- package/dist/formFields/index.cjs +28 -4
- package/dist/formFields/index.cjs.map +1 -1
- package/dist/formFields/index.mjs +2 -2
- package/dist/hooks/index.cjs +16 -6
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.mjs +3 -3
- package/dist/index.cjs +153 -141
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.mjs +152 -141
- package/dist/index.mjs.map +1 -1
- package/dist/sharing/index.cjs +82 -58
- package/dist/sharing/index.cjs.map +1 -1
- package/dist/sharing/index.mjs +2 -2
- package/dist/utils/index.cjs +167 -141
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.mts +5 -1
- package/dist/utils/index.d.ts +5 -1
- package/dist/utils/index.mjs +3 -1
- package/package.json +1 -1
- package/dist/chunk-XWFE6U3E.mjs.map +0 -1
- /package/dist/{chunk-6OBMKN7F.mjs.map → chunk-7JDAKGGH.mjs.map} +0 -0
- /package/dist/{chunk-6YISZ3OD.mjs.map → chunk-L5BYCXXP.mjs.map} +0 -0
package/dist/hooks/index.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-L5BYCXXP.mjs";
|
|
2
2
|
import "../chunk-3AI2ROPT.mjs";
|
|
3
3
|
import "../chunk-NPFJ2CN2.mjs";
|
|
4
|
-
import "../chunk-
|
|
4
|
+
import "../chunk-7JDAKGGH.mjs";
|
|
5
5
|
import {
|
|
6
6
|
SCHOOL_MIN_STUDENT_COUNT,
|
|
7
7
|
dateFormat,
|
|
8
8
|
normalizeUrl,
|
|
9
9
|
timeFormat
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-VPYYAF3L.mjs";
|
|
11
11
|
import {
|
|
12
12
|
EnumAdShowOn,
|
|
13
13
|
EnumAdStatus,
|
package/dist/index.cjs
CHANGED
|
@@ -170,6 +170,7 @@ __export(index_exports, {
|
|
|
170
170
|
formatShareTagsSection: () => formatShareTagsSection,
|
|
171
171
|
formatStallCapacityLabel: () => formatStallCapacityLabel,
|
|
172
172
|
formatTimestamp: () => formatTimestamp,
|
|
173
|
+
futureTimePeriods: () => futureTimePeriods,
|
|
173
174
|
gameScreenIdentifierList: () => gameScreenIdentifierList,
|
|
174
175
|
gameTypeToDisplayName: () => gameTypeToDisplayName,
|
|
175
176
|
getAllowedEventDateStatuses: () => getAllowedEventDateStatuses,
|
|
@@ -938,147 +939,6 @@ var import_customParseFormat = __toESM(require("dayjs/plugin/customParseFormat.j
|
|
|
938
939
|
var import_isSameOrAfter = __toESM(require("dayjs/plugin/isSameOrAfter.js"));
|
|
939
940
|
var import_timezone = __toESM(require("dayjs/plugin/timezone.js"));
|
|
940
941
|
var import_utc = __toESM(require("dayjs/plugin/utc.js"));
|
|
941
|
-
var dateFormat = "DD-MM-YYYY";
|
|
942
|
-
var timeFormat = "HH:mm";
|
|
943
|
-
import_dayjs.default.extend(import_customParseFormat.default);
|
|
944
|
-
import_dayjs.default.extend(import_utc.default);
|
|
945
|
-
import_dayjs.default.extend(import_timezone.default);
|
|
946
|
-
import_dayjs.default.extend(import_isSameOrAfter.default);
|
|
947
|
-
var NZ_TZ = "Pacific/Auckland";
|
|
948
|
-
function toNZTime(date) {
|
|
949
|
-
return date ? (0, import_dayjs.default)(date).tz(NZ_TZ) : (0, import_dayjs.default)().tz(NZ_TZ);
|
|
950
|
-
}
|
|
951
|
-
function nzStartOfDay(input) {
|
|
952
|
-
if (input == null) {
|
|
953
|
-
return (0, import_dayjs.default)().tz(NZ_TZ).startOf("day");
|
|
954
|
-
}
|
|
955
|
-
return import_dayjs.default.tz(input, NZ_TZ).startOf("day");
|
|
956
|
-
}
|
|
957
|
-
var formatDate = (dateStr, display = "datetime", timeStr) => {
|
|
958
|
-
const dateTimeStr = timeStr ? `${dateStr} ${timeStr}` : dateStr;
|
|
959
|
-
const dateTime = timeStr ? (0, import_dayjs.default)(dateTimeStr, `${dateFormat} ${timeFormat}`) : (0, import_dayjs.default)(dateStr, dateFormat);
|
|
960
|
-
const formattedDate = dateTime.format("dddd, D MMMM, YYYY");
|
|
961
|
-
const formattedTime = dateTime.format("h:mm a");
|
|
962
|
-
switch (display) {
|
|
963
|
-
case "date":
|
|
964
|
-
return formattedDate;
|
|
965
|
-
case "time":
|
|
966
|
-
return formattedTime;
|
|
967
|
-
case "datetime":
|
|
968
|
-
return `${formattedDate} at ${formattedTime}`;
|
|
969
|
-
default:
|
|
970
|
-
return formattedDate;
|
|
971
|
-
}
|
|
972
|
-
};
|
|
973
|
-
var getCurrentAndFutureDates = (dates) => {
|
|
974
|
-
const now = (0, import_dayjs.default)();
|
|
975
|
-
return dates.filter((dateObj) => {
|
|
976
|
-
const dateTime = (0, import_dayjs.default)(
|
|
977
|
-
`${dateObj.startDate} ${dateObj.startTime}`,
|
|
978
|
-
`${dateFormat} ${timeFormat}`
|
|
979
|
-
);
|
|
980
|
-
return dateTime.isSameOrAfter(now);
|
|
981
|
-
});
|
|
982
|
-
};
|
|
983
|
-
var isFutureDatesBeforeThreshold = (date, minHoursFromNow) => {
|
|
984
|
-
const threshold = minHoursFromNow ? (0, import_dayjs.default)().add(minHoursFromNow, "hour") : (0, import_dayjs.default)().startOf("day");
|
|
985
|
-
const dateTime = (0, import_dayjs.default)(
|
|
986
|
-
`${date.startDate} ${date.startTime}`,
|
|
987
|
-
`${dateFormat} ${timeFormat}`
|
|
988
|
-
);
|
|
989
|
-
return dateTime.isSameOrAfter(threshold);
|
|
990
|
-
};
|
|
991
|
-
var formatTimestamp = (timestamp) => {
|
|
992
|
-
const formattedDate = toNZTime(timestamp).format(dateFormat);
|
|
993
|
-
return formatDate(formattedDate, "date");
|
|
994
|
-
};
|
|
995
|
-
var isIsoDateString = (value) => {
|
|
996
|
-
return typeof value === "string" && !isNaN(Date.parse(value));
|
|
997
|
-
};
|
|
998
|
-
function sortDatesChronologically(dates) {
|
|
999
|
-
if (!dates || !dates.length) {
|
|
1000
|
-
return [];
|
|
1001
|
-
}
|
|
1002
|
-
return [...dates].sort((a, b) => {
|
|
1003
|
-
const dateTimeFormat = `${dateFormat} ${timeFormat}`;
|
|
1004
|
-
const dateA = (0, import_dayjs.default)(`${a.startDate} ${a.startTime}`, dateTimeFormat);
|
|
1005
|
-
const dateB = (0, import_dayjs.default)(`${b.startDate} ${b.startTime}`, dateTimeFormat);
|
|
1006
|
-
return dateA.valueOf() - dateB.valueOf();
|
|
1007
|
-
});
|
|
1008
|
-
}
|
|
1009
|
-
|
|
1010
|
-
// src/utils/dailyClueGame.ts
|
|
1011
|
-
function createSeededRng(seed) {
|
|
1012
|
-
let t = seed >>> 0;
|
|
1013
|
-
return function random() {
|
|
1014
|
-
t += 1831565813;
|
|
1015
|
-
let x = t;
|
|
1016
|
-
x = Math.imul(x ^ x >>> 15, x | 1);
|
|
1017
|
-
x ^= x + Math.imul(x ^ x >>> 7, x | 61);
|
|
1018
|
-
return ((x ^ x >>> 14) >>> 0) / 4294967296;
|
|
1019
|
-
};
|
|
1020
|
-
}
|
|
1021
|
-
function hashStringToNumber(seed) {
|
|
1022
|
-
let hash = 2166136261;
|
|
1023
|
-
for (let i = 0; i < seed.length; i++) {
|
|
1024
|
-
hash ^= seed.codePointAt(i) ?? 0;
|
|
1025
|
-
hash = Math.imul(hash, 16777619);
|
|
1026
|
-
}
|
|
1027
|
-
return hash >>> 0;
|
|
1028
|
-
}
|
|
1029
|
-
function seededShuffle(array, seed) {
|
|
1030
|
-
const rng = createSeededRng(hashStringToNumber(seed));
|
|
1031
|
-
const result = [...array];
|
|
1032
|
-
for (let i = result.length - 1; i > 0; i--) {
|
|
1033
|
-
const j = Math.floor(rng() * (i + 1));
|
|
1034
|
-
[result[i], result[j]] = [result[j], result[i]];
|
|
1035
|
-
}
|
|
1036
|
-
return result;
|
|
1037
|
-
}
|
|
1038
|
-
function getDayIndex(start, today) {
|
|
1039
|
-
return today.diff(start, "day");
|
|
1040
|
-
}
|
|
1041
|
-
function computeDailyClueState(dailyClue) {
|
|
1042
|
-
const { startDate, endDate } = dailyClue.gameFields.gameDate;
|
|
1043
|
-
const { solutionShuffled, collected } = dailyClue.letterInfo;
|
|
1044
|
-
const today = nzStartOfDay();
|
|
1045
|
-
const start = nzStartOfDay(startDate);
|
|
1046
|
-
const end = nzStartOfDay(endDate);
|
|
1047
|
-
if (today.isBefore(start)) {
|
|
1048
|
-
return null;
|
|
1049
|
-
}
|
|
1050
|
-
const shuffledPlacements = seededShuffle(
|
|
1051
|
-
gameScreenIdentifierList,
|
|
1052
|
-
start.toISOString()
|
|
1053
|
-
);
|
|
1054
|
-
const index = getDayIndex(start, today);
|
|
1055
|
-
if (today.isAfter(end)) {
|
|
1056
|
-
return {
|
|
1057
|
-
todaysClue: null,
|
|
1058
|
-
todaysLetter: null,
|
|
1059
|
-
todaysPlacement: null
|
|
1060
|
-
};
|
|
1061
|
-
}
|
|
1062
|
-
if (index < 0 || index >= solutionShuffled.length || index >= shuffledPlacements.length) {
|
|
1063
|
-
return null;
|
|
1064
|
-
}
|
|
1065
|
-
const letterToday = solutionShuffled[index];
|
|
1066
|
-
const placement = shuffledPlacements[index];
|
|
1067
|
-
if (!letterToday || !placement) return null;
|
|
1068
|
-
const alreadyCollectedToday = (collected ?? []).includes(letterToday);
|
|
1069
|
-
if (alreadyCollectedToday) {
|
|
1070
|
-
return {
|
|
1071
|
-
todaysClue: null,
|
|
1072
|
-
todaysLetter: null,
|
|
1073
|
-
todaysPlacement: null
|
|
1074
|
-
};
|
|
1075
|
-
}
|
|
1076
|
-
return {
|
|
1077
|
-
todaysClue: placement.clue,
|
|
1078
|
-
todaysLetter: letterToday,
|
|
1079
|
-
todaysPlacement: placement.id
|
|
1080
|
-
};
|
|
1081
|
-
}
|
|
1082
942
|
|
|
1083
943
|
// src/types/auth.ts
|
|
1084
944
|
var EnumVerificationType = /* @__PURE__ */ ((EnumVerificationType2) => {
|
|
@@ -1284,6 +1144,157 @@ var PostTypeLabels = {
|
|
|
1284
1144
|
["play_and_win" /* PLAY_AND_WIN */]: "Play & Win"
|
|
1285
1145
|
};
|
|
1286
1146
|
|
|
1147
|
+
// src/utils/date.ts
|
|
1148
|
+
var dateFormat = "DD-MM-YYYY";
|
|
1149
|
+
var timeFormat = "HH:mm";
|
|
1150
|
+
import_dayjs.default.extend(import_customParseFormat.default);
|
|
1151
|
+
import_dayjs.default.extend(import_utc.default);
|
|
1152
|
+
import_dayjs.default.extend(import_timezone.default);
|
|
1153
|
+
import_dayjs.default.extend(import_isSameOrAfter.default);
|
|
1154
|
+
var NZ_TZ = "Pacific/Auckland";
|
|
1155
|
+
function toNZTime(date) {
|
|
1156
|
+
return date ? (0, import_dayjs.default)(date).tz(NZ_TZ) : (0, import_dayjs.default)().tz(NZ_TZ);
|
|
1157
|
+
}
|
|
1158
|
+
function nzStartOfDay(input) {
|
|
1159
|
+
if (input == null) {
|
|
1160
|
+
return (0, import_dayjs.default)().tz(NZ_TZ).startOf("day");
|
|
1161
|
+
}
|
|
1162
|
+
return import_dayjs.default.tz(input, NZ_TZ).startOf("day");
|
|
1163
|
+
}
|
|
1164
|
+
var formatDate = (dateStr, display = "datetime", timeStr) => {
|
|
1165
|
+
const dateTimeStr = timeStr ? `${dateStr} ${timeStr}` : dateStr;
|
|
1166
|
+
const dateTime = timeStr ? (0, import_dayjs.default)(dateTimeStr, `${dateFormat} ${timeFormat}`) : (0, import_dayjs.default)(dateStr, dateFormat);
|
|
1167
|
+
const formattedDate = dateTime.format("dddd, D MMMM, YYYY");
|
|
1168
|
+
const formattedTime = dateTime.format("h:mm a");
|
|
1169
|
+
switch (display) {
|
|
1170
|
+
case "date":
|
|
1171
|
+
return formattedDate;
|
|
1172
|
+
case "time":
|
|
1173
|
+
return formattedTime;
|
|
1174
|
+
case "datetime":
|
|
1175
|
+
return `${formattedDate} at ${formattedTime}`;
|
|
1176
|
+
default:
|
|
1177
|
+
return formattedDate;
|
|
1178
|
+
}
|
|
1179
|
+
};
|
|
1180
|
+
var getCurrentAndFutureDates = (dates) => {
|
|
1181
|
+
const now = (0, import_dayjs.default)();
|
|
1182
|
+
return dates.filter((dateObj) => {
|
|
1183
|
+
const dateTime = (0, import_dayjs.default)(
|
|
1184
|
+
`${dateObj.startDate} ${dateObj.startTime}`,
|
|
1185
|
+
`${dateFormat} ${timeFormat}`
|
|
1186
|
+
);
|
|
1187
|
+
return dateTime.isSameOrAfter(now);
|
|
1188
|
+
});
|
|
1189
|
+
};
|
|
1190
|
+
var isFutureDatesBeforeThreshold = (date, minHoursFromNow) => {
|
|
1191
|
+
const threshold = minHoursFromNow ? (0, import_dayjs.default)().add(minHoursFromNow, "hour") : (0, import_dayjs.default)().startOf("day");
|
|
1192
|
+
const dateTime = (0, import_dayjs.default)(
|
|
1193
|
+
`${date.startDate} ${date.startTime}`,
|
|
1194
|
+
`${dateFormat} ${timeFormat}`
|
|
1195
|
+
);
|
|
1196
|
+
return dateTime.isSameOrAfter(threshold);
|
|
1197
|
+
};
|
|
1198
|
+
var formatTimestamp = (timestamp) => {
|
|
1199
|
+
const formattedDate = toNZTime(timestamp).format(dateFormat);
|
|
1200
|
+
return formatDate(formattedDate, "date");
|
|
1201
|
+
};
|
|
1202
|
+
var isIsoDateString = (value) => {
|
|
1203
|
+
return typeof value === "string" && !isNaN(Date.parse(value));
|
|
1204
|
+
};
|
|
1205
|
+
function sortDatesChronologically(dates) {
|
|
1206
|
+
if (!dates?.length) {
|
|
1207
|
+
return [];
|
|
1208
|
+
}
|
|
1209
|
+
return [...dates].sort((a, b) => {
|
|
1210
|
+
const dateTimeFormat = `${dateFormat} ${timeFormat}`;
|
|
1211
|
+
const dateA = (0, import_dayjs.default)(`${a.startDate} ${a.startTime}`, dateTimeFormat);
|
|
1212
|
+
const dateB = (0, import_dayjs.default)(`${b.startDate} ${b.startTime}`, dateTimeFormat);
|
|
1213
|
+
return dateA.valueOf() - dateB.valueOf();
|
|
1214
|
+
});
|
|
1215
|
+
}
|
|
1216
|
+
var futureTimePeriods = mapArrayToOptions(
|
|
1217
|
+
Object.values(EnumEventDateStatus)
|
|
1218
|
+
).filter(
|
|
1219
|
+
(period) => period.value !== "Starting_Soon" /* STARTING_SOON */ && period.value !== "Canceled" /* CANCELED */ && period.value !== "Rescheduled" /* RE_SCHEDULED */ && period.value !== "Started" /* STARTED */ && period.value !== "Ended" /* ENDED */ && period.value !== "Invalid" /* INVALID */
|
|
1220
|
+
).map((period) => ({
|
|
1221
|
+
label: period.value.replaceAll("_", " "),
|
|
1222
|
+
value: period.value
|
|
1223
|
+
}));
|
|
1224
|
+
|
|
1225
|
+
// src/utils/dailyClueGame.ts
|
|
1226
|
+
function createSeededRng(seed) {
|
|
1227
|
+
let t = seed >>> 0;
|
|
1228
|
+
return function random() {
|
|
1229
|
+
t += 1831565813;
|
|
1230
|
+
let x = t;
|
|
1231
|
+
x = Math.imul(x ^ x >>> 15, x | 1);
|
|
1232
|
+
x ^= x + Math.imul(x ^ x >>> 7, x | 61);
|
|
1233
|
+
return ((x ^ x >>> 14) >>> 0) / 4294967296;
|
|
1234
|
+
};
|
|
1235
|
+
}
|
|
1236
|
+
function hashStringToNumber(seed) {
|
|
1237
|
+
let hash = 2166136261;
|
|
1238
|
+
for (let i = 0; i < seed.length; i++) {
|
|
1239
|
+
hash ^= seed.codePointAt(i) ?? 0;
|
|
1240
|
+
hash = Math.imul(hash, 16777619);
|
|
1241
|
+
}
|
|
1242
|
+
return hash >>> 0;
|
|
1243
|
+
}
|
|
1244
|
+
function seededShuffle(array, seed) {
|
|
1245
|
+
const rng = createSeededRng(hashStringToNumber(seed));
|
|
1246
|
+
const result = [...array];
|
|
1247
|
+
for (let i = result.length - 1; i > 0; i--) {
|
|
1248
|
+
const j = Math.floor(rng() * (i + 1));
|
|
1249
|
+
[result[i], result[j]] = [result[j], result[i]];
|
|
1250
|
+
}
|
|
1251
|
+
return result;
|
|
1252
|
+
}
|
|
1253
|
+
function getDayIndex(start, today) {
|
|
1254
|
+
return today.diff(start, "day");
|
|
1255
|
+
}
|
|
1256
|
+
function computeDailyClueState(dailyClue) {
|
|
1257
|
+
const { startDate, endDate } = dailyClue.gameFields.gameDate;
|
|
1258
|
+
const { solutionShuffled, collected } = dailyClue.letterInfo;
|
|
1259
|
+
const today = nzStartOfDay();
|
|
1260
|
+
const start = nzStartOfDay(startDate);
|
|
1261
|
+
const end = nzStartOfDay(endDate);
|
|
1262
|
+
if (today.isBefore(start)) {
|
|
1263
|
+
return null;
|
|
1264
|
+
}
|
|
1265
|
+
const shuffledPlacements = seededShuffle(
|
|
1266
|
+
gameScreenIdentifierList,
|
|
1267
|
+
start.toISOString()
|
|
1268
|
+
);
|
|
1269
|
+
const index = getDayIndex(start, today);
|
|
1270
|
+
if (today.isAfter(end)) {
|
|
1271
|
+
return {
|
|
1272
|
+
todaysClue: null,
|
|
1273
|
+
todaysLetter: null,
|
|
1274
|
+
todaysPlacement: null
|
|
1275
|
+
};
|
|
1276
|
+
}
|
|
1277
|
+
if (index < 0 || index >= solutionShuffled.length || index >= shuffledPlacements.length) {
|
|
1278
|
+
return null;
|
|
1279
|
+
}
|
|
1280
|
+
const letterToday = solutionShuffled[index];
|
|
1281
|
+
const placement = shuffledPlacements[index];
|
|
1282
|
+
if (!letterToday || !placement) return null;
|
|
1283
|
+
const alreadyCollectedToday = (collected ?? []).includes(letterToday);
|
|
1284
|
+
if (alreadyCollectedToday) {
|
|
1285
|
+
return {
|
|
1286
|
+
todaysClue: null,
|
|
1287
|
+
todaysLetter: null,
|
|
1288
|
+
todaysPlacement: null
|
|
1289
|
+
};
|
|
1290
|
+
}
|
|
1291
|
+
return {
|
|
1292
|
+
todaysClue: placement.clue,
|
|
1293
|
+
todaysLetter: letterToday,
|
|
1294
|
+
todaysPlacement: placement.id
|
|
1295
|
+
};
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1287
1298
|
// src/utils/school.ts
|
|
1288
1299
|
var SCHOOL_MIN_STUDENT_COUNT = 300;
|
|
1289
1300
|
var SCHOOL_MAX_STUDENT_COUNT = 0;
|
|
@@ -7712,6 +7723,7 @@ var fonts = {
|
|
|
7712
7723
|
formatShareTagsSection,
|
|
7713
7724
|
formatStallCapacityLabel,
|
|
7714
7725
|
formatTimestamp,
|
|
7726
|
+
futureTimePeriods,
|
|
7715
7727
|
gameScreenIdentifierList,
|
|
7716
7728
|
gameTypeToDisplayName,
|
|
7717
7729
|
getAllowedEventDateStatuses,
|