@timardex/cluemart-shared 1.5.740 → 1.5.742
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/{ad-CqfSmtG_.d.ts → ad-DTOtubs3.d.ts} +1 -1
- package/dist/{ad-sgD-lSbO.d.mts → ad-DpwV6VZX.d.mts} +1 -1
- package/dist/{chunk-6OBMKN7F.mjs → chunk-64ZADXXH.mjs} +2 -2
- package/dist/{chunk-XWFE6U3E.mjs → chunk-K5OWNJY5.mjs} +131 -119
- package/dist/chunk-K5OWNJY5.mjs.map +1 -0
- package/dist/{chunk-6YISZ3OD.mjs → chunk-KXQLOILF.mjs} +2 -2
- package/dist/{chunk-7VNXO63T.mjs → chunk-LNIT5OS3.mjs} +1 -1
- package/dist/chunk-LNIT5OS3.mjs.map +1 -0
- package/dist/{chunk-3AI2ROPT.mjs → chunk-TIXEG66V.mjs} +19 -1
- package/dist/chunk-TIXEG66V.mjs.map +1 -0
- package/dist/{contactUs-DA3p41Uq.d.ts → contactUs-BK5MKYPx.d.ts} +1 -1
- package/dist/{contactUs-B6lQQq-x.d.mts → contactUs-CRypzI-A.d.mts} +1 -1
- package/dist/formFields/index.cjs +28 -4
- package/dist/formFields/index.cjs.map +1 -1
- package/dist/formFields/index.d.mts +1 -1
- package/dist/formFields/index.d.ts +1 -1
- package/dist/formFields/index.mjs +3 -3
- package/dist/{global-BEUzBSyY.d.mts → global-q9JjONd1.d.mts} +280 -1
- package/dist/{global-585slmSH.d.ts → global-vWzQNI8w.d.ts} +280 -1
- package/dist/graphql/index.cjs +18 -0
- package/dist/graphql/index.cjs.map +1 -1
- package/dist/graphql/index.d.mts +3 -4
- package/dist/graphql/index.d.ts +3 -4
- package/dist/graphql/index.mjs +1 -1
- package/dist/hooks/index.cjs +34 -6
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.mts +3 -4
- package/dist/hooks/index.d.ts +3 -4
- package/dist/hooks/index.mjs +5 -5
- package/dist/index.cjs +171 -141
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +922 -914
- package/dist/index.d.ts +922 -914
- package/dist/index.mjs +170 -141
- package/dist/index.mjs.map +1 -1
- package/dist/{resourceActivities-CZqXBve8.d.mts → resourceActivities-CpjJeH23.d.mts} +1 -1
- package/dist/{resourceActivities-CjJdhVR7.d.ts → resourceActivities-DtxRUlrT.d.ts} +1 -1
- package/dist/sharing/index.cjs +82 -58
- package/dist/sharing/index.cjs.map +1 -1
- package/dist/sharing/index.d.mts +1 -1
- package/dist/sharing/index.d.ts +1 -1
- package/dist/sharing/index.mjs +3 -3
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.mts +5 -6
- package/dist/types/index.d.ts +5 -6
- package/dist/types/index.mjs +1 -1
- package/dist/utils/index.cjs +167 -141
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.mts +6 -3
- package/dist/utils/index.d.ts +6 -3
- package/dist/utils/index.mjs +4 -2
- package/package.json +1 -1
- package/dist/chunk-3AI2ROPT.mjs.map +0 -1
- package/dist/chunk-7VNXO63T.mjs.map +0 -1
- package/dist/chunk-XWFE6U3E.mjs.map +0 -1
- package/dist/post-CdLrXuH1.d.mts +0 -279
- package/dist/post-D6n4Vszs.d.ts +0 -279
- /package/dist/{chunk-6OBMKN7F.mjs.map → chunk-64ZADXXH.mjs.map} +0 -0
- /package/dist/{chunk-6YISZ3OD.mjs.map → chunk-KXQLOILF.mjs.map} +0 -0
package/dist/hooks/index.d.mts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { L as LocationType,
|
|
2
|
-
import { U as UserFormData, C as CreateUserFormData, i as CreateLoginFormData, j as CreateRegisterFormData, k as CreateRequestPasswordResetFormData, l as CreateValidateVerificationTokenFormData, m as CreateResetPasswordFormData, n as PartnerFormData, o as AdFormData, p as CreateAdFormState, q as CreatePartnerFormData, r as AppSettingsFormData, s as CreateAppSettingsFormData, t as SchoolFormData, u as CreateSchoolFormData } from '../ad-
|
|
3
|
-
import { C as ContactUsFormData, a as CreateContactUsFormData } from '../contactUs-
|
|
4
|
-
import { b as PostFormData, C as CreatePostFormData } from '../post-CdLrXuH1.mjs';
|
|
1
|
+
import { L as LocationType, l as VendorFormData, m as CreateVendorFormData, n as VendorInfoFormData, o as CreateVendorInfoFormData, p as UnregisteredVendorFormData, q as CreateUnregisteredVendorFormData, r as EventFormData, s as CreateEventFormData, t as EventInfoFormData, u as CreateEventInfoFormData, B as BaseResourceTypeFormData, v as PostFormData, w as CreatePostFormData } from '../global-q9JjONd1.mjs';
|
|
2
|
+
import { U as UserFormData, C as CreateUserFormData, i as CreateLoginFormData, j as CreateRegisterFormData, k as CreateRequestPasswordResetFormData, l as CreateValidateVerificationTokenFormData, m as CreateResetPasswordFormData, n as PartnerFormData, o as AdFormData, p as CreateAdFormState, q as CreatePartnerFormData, r as AppSettingsFormData, s as CreateAppSettingsFormData, t as SchoolFormData, u as CreateSchoolFormData } from '../ad-DpwV6VZX.mjs';
|
|
3
|
+
import { C as ContactUsFormData, a as CreateContactUsFormData } from '../contactUs-CRypzI-A.mjs';
|
|
5
4
|
import 'react-hook-form';
|
|
6
5
|
import '../enums/index.mjs';
|
|
7
6
|
import '../images/index.mjs';
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { L as LocationType,
|
|
2
|
-
import { U as UserFormData, C as CreateUserFormData, i as CreateLoginFormData, j as CreateRegisterFormData, k as CreateRequestPasswordResetFormData, l as CreateValidateVerificationTokenFormData, m as CreateResetPasswordFormData, n as PartnerFormData, o as AdFormData, p as CreateAdFormState, q as CreatePartnerFormData, r as AppSettingsFormData, s as CreateAppSettingsFormData, t as SchoolFormData, u as CreateSchoolFormData } from '../ad-
|
|
3
|
-
import { C as ContactUsFormData, a as CreateContactUsFormData } from '../contactUs-
|
|
4
|
-
import { b as PostFormData, C as CreatePostFormData } from '../post-D6n4Vszs.js';
|
|
1
|
+
import { L as LocationType, l as VendorFormData, m as CreateVendorFormData, n as VendorInfoFormData, o as CreateVendorInfoFormData, p as UnregisteredVendorFormData, q as CreateUnregisteredVendorFormData, r as EventFormData, s as CreateEventFormData, t as EventInfoFormData, u as CreateEventInfoFormData, B as BaseResourceTypeFormData, v as PostFormData, w as CreatePostFormData } from '../global-vWzQNI8w.js';
|
|
2
|
+
import { U as UserFormData, C as CreateUserFormData, i as CreateLoginFormData, j as CreateRegisterFormData, k as CreateRequestPasswordResetFormData, l as CreateValidateVerificationTokenFormData, m as CreateResetPasswordFormData, n as PartnerFormData, o as AdFormData, p as CreateAdFormState, q as CreatePartnerFormData, r as AppSettingsFormData, s as CreateAppSettingsFormData, t as SchoolFormData, u as CreateSchoolFormData } from '../ad-DTOtubs3.js';
|
|
3
|
+
import { C as ContactUsFormData, a as CreateContactUsFormData } from '../contactUs-BK5MKYPx.js';
|
|
5
4
|
import 'react-hook-form';
|
|
6
5
|
import '../enums/index.js';
|
|
7
6
|
import '../images/index.js';
|
package/dist/hooks/index.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import "../chunk-
|
|
2
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-KXQLOILF.mjs";
|
|
2
|
+
import "../chunk-TIXEG66V.mjs";
|
|
3
3
|
import "../chunk-NPFJ2CN2.mjs";
|
|
4
|
-
import "../chunk-
|
|
4
|
+
import "../chunk-64ZADXXH.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-K5OWNJY5.mjs";
|
|
11
11
|
import {
|
|
12
12
|
EnumAdShowOn,
|
|
13
13
|
EnumAdStatus,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
EnumAdType,
|
|
16
16
|
EnumPostContentType,
|
|
17
17
|
EnumPostType
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-LNIT5OS3.mjs";
|
|
19
19
|
import {
|
|
20
20
|
EnumEventDateStatus,
|
|
21
21
|
EnumEventType,
|
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" && !Number.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;
|
|
@@ -3323,6 +3334,12 @@ var EVENT_LIST_ITEM = import_client2.gql`
|
|
|
3323
3334
|
${RESOURCE_IMAGE_FIELDS_FRAGMENT}
|
|
3324
3335
|
${RELATION_DATES_FRAGMENT}
|
|
3325
3336
|
`;
|
|
3337
|
+
var RELATED_POST_FIELDS_FRAGMENT = import_client2.gql`
|
|
3338
|
+
fragment RelatedPostFields on RelatedPostType {
|
|
3339
|
+
postId
|
|
3340
|
+
postType
|
|
3341
|
+
}
|
|
3342
|
+
`;
|
|
3326
3343
|
|
|
3327
3344
|
// src/graphql/queries/event.ts
|
|
3328
3345
|
var EVENT_INFO = import_client3.gql`
|
|
@@ -3414,6 +3431,9 @@ var EVENT = import_client3.gql`
|
|
|
3414
3431
|
rating
|
|
3415
3432
|
reviewCount
|
|
3416
3433
|
rainOrShine
|
|
3434
|
+
relatedPost {
|
|
3435
|
+
...RelatedPostFields
|
|
3436
|
+
}
|
|
3417
3437
|
socialMedia {
|
|
3418
3438
|
...SocialMediaFields
|
|
3419
3439
|
}
|
|
@@ -3433,6 +3453,7 @@ var EVENT = import_client3.gql`
|
|
|
3433
3453
|
${CONTACT_DETAILS_FIELDS_FRAGMENT}
|
|
3434
3454
|
${TERMS_AGREEMENT_FIELDS_FRAGMENT}
|
|
3435
3455
|
${RELATION_DATES_FRAGMENT}
|
|
3456
|
+
${RELATED_POST_FIELDS_FRAGMENT}
|
|
3436
3457
|
`;
|
|
3437
3458
|
var GET_EVENTS = import_client3.gql`
|
|
3438
3459
|
query getEvents($dateStatus: EventDateStatusEnumType) {
|
|
@@ -3602,6 +3623,9 @@ var VENDOR = import_client4.gql`
|
|
|
3602
3623
|
rating
|
|
3603
3624
|
region
|
|
3604
3625
|
reviewCount
|
|
3626
|
+
relatedPost {
|
|
3627
|
+
...RelatedPostFields
|
|
3628
|
+
}
|
|
3605
3629
|
relations {
|
|
3606
3630
|
relationId
|
|
3607
3631
|
relationDates {
|
|
@@ -3630,6 +3654,7 @@ var VENDOR = import_client4.gql`
|
|
|
3630
3654
|
${CONTACT_DETAILS_FIELDS_FRAGMENT}
|
|
3631
3655
|
${TERMS_AGREEMENT_FIELDS_FRAGMENT}
|
|
3632
3656
|
${RELATION_DATES_FRAGMENT}
|
|
3657
|
+
${RELATED_POST_FIELDS_FRAGMENT}
|
|
3633
3658
|
`;
|
|
3634
3659
|
var VENDOR_ATTRIBUTES_FRAGMENT = import_client4.gql`
|
|
3635
3660
|
fragment VendorAttributesFields on VendorAttributesType {
|
|
@@ -4362,6 +4387,9 @@ var PARTNER = import_client16.gql`
|
|
|
4362
4387
|
rating
|
|
4363
4388
|
region
|
|
4364
4389
|
reviewCount
|
|
4390
|
+
relatedPost {
|
|
4391
|
+
...RelatedPostFields
|
|
4392
|
+
}
|
|
4365
4393
|
socialMedia {
|
|
4366
4394
|
...SocialMediaFields
|
|
4367
4395
|
}
|
|
@@ -4378,6 +4406,7 @@ var PARTNER = import_client16.gql`
|
|
|
4378
4406
|
${POSTER_USAGE_FIELDS_FRAGMENT}
|
|
4379
4407
|
${SOCIAL_MEDIA_FIELDS_FRAGMENT}
|
|
4380
4408
|
${CONTACT_DETAILS_FIELDS_FRAGMENT}
|
|
4409
|
+
${RELATED_POST_FIELDS_FRAGMENT}
|
|
4381
4410
|
`;
|
|
4382
4411
|
var GET_PARTNERS = import_client16.gql`
|
|
4383
4412
|
query getPartners {
|
|
@@ -7712,6 +7741,7 @@ var fonts = {
|
|
|
7712
7741
|
formatShareTagsSection,
|
|
7713
7742
|
formatStallCapacityLabel,
|
|
7714
7743
|
formatTimestamp,
|
|
7744
|
+
futureTimePeriods,
|
|
7715
7745
|
gameScreenIdentifierList,
|
|
7716
7746
|
gameTypeToDisplayName,
|
|
7717
7747
|
getAllowedEventDateStatuses,
|