@timardex/cluemart-shared 1.5.793 → 1.5.795
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-RBIYRMQB.mjs → chunk-B2ID4C66.mjs} +147 -5
- package/dist/chunk-B2ID4C66.mjs.map +1 -0
- package/dist/{chunk-P2YIB4MR.mjs → chunk-E7ZEBZ3O.mjs} +104 -231
- package/dist/chunk-E7ZEBZ3O.mjs.map +1 -0
- package/dist/{chunk-7TMY5XDJ.mjs → chunk-JD7CKX4S.mjs} +2 -2
- package/dist/{chunk-AM6MIXMX.mjs → chunk-KSFDYCSS.mjs} +2 -2
- package/dist/formFields/index.cjs +20 -18
- package/dist/formFields/index.cjs.map +1 -1
- package/dist/formFields/index.mjs +3 -3
- package/dist/hooks/index.cjs +22 -20
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.mjs +11 -11
- package/dist/index.cjs +167 -154
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.mjs +166 -154
- package/dist/index.mjs.map +1 -1
- package/dist/sharing/index.cjs +104 -317
- package/dist/sharing/index.cjs.map +1 -1
- package/dist/sharing/index.mjs +2 -3
- package/dist/utils/index.cjs +167 -154
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.mts +8 -8
- package/dist/utils/index.d.ts +8 -8
- package/dist/utils/index.mjs +26 -24
- package/package.json +1 -1
- package/dist/chunk-P2YIB4MR.mjs.map +0 -1
- package/dist/chunk-RBIYRMQB.mjs.map +0 -1
- /package/dist/{chunk-7TMY5XDJ.mjs.map → chunk-JD7CKX4S.mjs.map} +0 -0
- /package/dist/{chunk-AM6MIXMX.mjs.map → chunk-KSFDYCSS.mjs.map} +0 -0
package/dist/hooks/index.mjs
CHANGED
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import "../chunk-VA5YN2K3.mjs";
|
|
2
|
-
import "../chunk-
|
|
2
|
+
import "../chunk-KSFDYCSS.mjs";
|
|
3
3
|
import {
|
|
4
|
-
SCHOOL_MIN_STUDENT_COUNT
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import "../chunk-NPFJ2CN2.mjs";
|
|
8
|
-
import "../chunk-7TMY5XDJ.mjs";
|
|
9
|
-
import {
|
|
10
|
-
dateFormat,
|
|
11
|
-
normalizeUrl,
|
|
12
|
-
timeFormat
|
|
13
|
-
} from "../chunk-P2YIB4MR.mjs";
|
|
4
|
+
SCHOOL_MIN_STUDENT_COUNT,
|
|
5
|
+
normalizeUrl
|
|
6
|
+
} from "../chunk-B2ID4C66.mjs";
|
|
14
7
|
import {
|
|
15
8
|
EnumAdShowOn,
|
|
16
9
|
EnumAdStatus,
|
|
@@ -19,6 +12,13 @@ import {
|
|
|
19
12
|
EnumPostContentType,
|
|
20
13
|
EnumPostType
|
|
21
14
|
} from "../chunk-XY5XRXR3.mjs";
|
|
15
|
+
import "../chunk-2US6BYNF.mjs";
|
|
16
|
+
import "../chunk-NPFJ2CN2.mjs";
|
|
17
|
+
import "../chunk-JD7CKX4S.mjs";
|
|
18
|
+
import {
|
|
19
|
+
dateFormat,
|
|
20
|
+
timeFormat
|
|
21
|
+
} from "../chunk-E7ZEBZ3O.mjs";
|
|
22
22
|
import {
|
|
23
23
|
EnumEventDateStatus,
|
|
24
24
|
EnumEventType,
|
package/dist/index.cjs
CHANGED
|
@@ -184,6 +184,7 @@ __export(index_exports, {
|
|
|
184
184
|
foodFlavourOptions: () => foodFlavourOptions,
|
|
185
185
|
formatCategoryLabel: () => formatCategoryLabel,
|
|
186
186
|
formatDate: () => formatDate,
|
|
187
|
+
formatNZBankAccount: () => formatNZBankAccount,
|
|
187
188
|
formatShareApplicationCategoriesSection: () => formatShareApplicationCategoriesSection,
|
|
188
189
|
formatShareApplicationComplianceSection: () => formatShareApplicationComplianceSection,
|
|
189
190
|
formatShareApplicationPriceRangeLine: () => formatShareApplicationPriceRangeLine,
|
|
@@ -1008,6 +1009,163 @@ var import_isSameOrAfter = __toESM(require("dayjs/plugin/isSameOrAfter.js"));
|
|
|
1008
1009
|
var import_timezone = __toESM(require("dayjs/plugin/timezone.js"));
|
|
1009
1010
|
var import_utc = __toESM(require("dayjs/plugin/utc.js"));
|
|
1010
1011
|
|
|
1012
|
+
// src/utils/mapArrayToOptions.ts
|
|
1013
|
+
var mapArrayToOptions = (items) => items.map((item) => ({
|
|
1014
|
+
label: item,
|
|
1015
|
+
value: item
|
|
1016
|
+
}));
|
|
1017
|
+
|
|
1018
|
+
// src/utils/date.ts
|
|
1019
|
+
var dateFormat = "DD-MM-YYYY";
|
|
1020
|
+
var timeFormat = "HH:mm";
|
|
1021
|
+
import_dayjs.default.extend(import_customParseFormat.default);
|
|
1022
|
+
import_dayjs.default.extend(import_utc.default);
|
|
1023
|
+
import_dayjs.default.extend(import_timezone.default);
|
|
1024
|
+
import_dayjs.default.extend(import_isSameOrAfter.default);
|
|
1025
|
+
var NZ_TZ = "Pacific/Auckland";
|
|
1026
|
+
function toNZTime(date) {
|
|
1027
|
+
return date ? (0, import_dayjs.default)(date).tz(NZ_TZ) : (0, import_dayjs.default)().tz(NZ_TZ);
|
|
1028
|
+
}
|
|
1029
|
+
function nzStartOfDay(input) {
|
|
1030
|
+
if (input == null) {
|
|
1031
|
+
return (0, import_dayjs.default)().tz(NZ_TZ).startOf("day");
|
|
1032
|
+
}
|
|
1033
|
+
return import_dayjs.default.tz(input, NZ_TZ).startOf("day");
|
|
1034
|
+
}
|
|
1035
|
+
var formatDate = (dateStr, display = "datetime", timeStr) => {
|
|
1036
|
+
const dateTimeStr = timeStr ? `${dateStr} ${timeStr}` : dateStr;
|
|
1037
|
+
const dateTime = timeStr ? (0, import_dayjs.default)(dateTimeStr, `${dateFormat} ${timeFormat}`) : (0, import_dayjs.default)(dateStr, dateFormat);
|
|
1038
|
+
const formattedDate = dateTime.format("dddd, D MMMM, YYYY");
|
|
1039
|
+
const formattedTime = dateTime.format("h:mm a");
|
|
1040
|
+
switch (display) {
|
|
1041
|
+
case "date":
|
|
1042
|
+
return formattedDate;
|
|
1043
|
+
case "time":
|
|
1044
|
+
return formattedTime;
|
|
1045
|
+
case "datetime":
|
|
1046
|
+
return `${formattedDate} at ${formattedTime}`;
|
|
1047
|
+
default:
|
|
1048
|
+
return formattedDate;
|
|
1049
|
+
}
|
|
1050
|
+
};
|
|
1051
|
+
var getCurrentAndFutureDates = (dates) => {
|
|
1052
|
+
const now = (0, import_dayjs.default)();
|
|
1053
|
+
return dates.filter((dateObj) => {
|
|
1054
|
+
const dateTime = (0, import_dayjs.default)(
|
|
1055
|
+
`${dateObj.startDate} ${dateObj.startTime}`,
|
|
1056
|
+
`${dateFormat} ${timeFormat}`
|
|
1057
|
+
);
|
|
1058
|
+
return dateTime.isSameOrAfter(now);
|
|
1059
|
+
});
|
|
1060
|
+
};
|
|
1061
|
+
var isFutureDatesBeforeThreshold = (date, minHoursFromNow) => {
|
|
1062
|
+
const threshold = minHoursFromNow ? (0, import_dayjs.default)().add(minHoursFromNow, "hour") : (0, import_dayjs.default)().startOf("day");
|
|
1063
|
+
const dateTime = (0, import_dayjs.default)(
|
|
1064
|
+
`${date.startDate} ${date.startTime}`,
|
|
1065
|
+
`${dateFormat} ${timeFormat}`
|
|
1066
|
+
);
|
|
1067
|
+
return dateTime.isSameOrAfter(threshold);
|
|
1068
|
+
};
|
|
1069
|
+
var formatTimestamp = (timestamp) => {
|
|
1070
|
+
const formattedDate = toNZTime(timestamp).format(dateFormat);
|
|
1071
|
+
return formatDate(formattedDate, "date");
|
|
1072
|
+
};
|
|
1073
|
+
var isIsoDateString = (value) => {
|
|
1074
|
+
return typeof value === "string" && !Number.isNaN(Date.parse(value));
|
|
1075
|
+
};
|
|
1076
|
+
function sortDatesChronologically(dates) {
|
|
1077
|
+
if (!dates?.length) {
|
|
1078
|
+
return [];
|
|
1079
|
+
}
|
|
1080
|
+
return [...dates].sort((a, b) => {
|
|
1081
|
+
const dateTimeFormat = `${dateFormat} ${timeFormat}`;
|
|
1082
|
+
const dateA = (0, import_dayjs.default)(`${a.startDate} ${a.startTime}`, dateTimeFormat);
|
|
1083
|
+
const dateB = (0, import_dayjs.default)(`${b.startDate} ${b.startTime}`, dateTimeFormat);
|
|
1084
|
+
return dateA.valueOf() - dateB.valueOf();
|
|
1085
|
+
});
|
|
1086
|
+
}
|
|
1087
|
+
var futureTimePeriods = mapArrayToOptions(
|
|
1088
|
+
Object.values(EnumEventDateStatus)
|
|
1089
|
+
).filter(
|
|
1090
|
+
(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 */
|
|
1091
|
+
).map((period) => ({
|
|
1092
|
+
label: period.value.replaceAll("_", " "),
|
|
1093
|
+
value: period.value
|
|
1094
|
+
}));
|
|
1095
|
+
|
|
1096
|
+
// src/utils/dailyClueGame.ts
|
|
1097
|
+
function createSeededRng(seed) {
|
|
1098
|
+
let t = seed >>> 0;
|
|
1099
|
+
return function random() {
|
|
1100
|
+
t += 1831565813;
|
|
1101
|
+
let x = t;
|
|
1102
|
+
x = Math.imul(x ^ x >>> 15, x | 1);
|
|
1103
|
+
x ^= x + Math.imul(x ^ x >>> 7, x | 61);
|
|
1104
|
+
return ((x ^ x >>> 14) >>> 0) / 4294967296;
|
|
1105
|
+
};
|
|
1106
|
+
}
|
|
1107
|
+
function hashStringToNumber(seed) {
|
|
1108
|
+
let hash = 2166136261;
|
|
1109
|
+
for (let i = 0; i < seed.length; i++) {
|
|
1110
|
+
hash ^= seed.codePointAt(i) ?? 0;
|
|
1111
|
+
hash = Math.imul(hash, 16777619);
|
|
1112
|
+
}
|
|
1113
|
+
return hash >>> 0;
|
|
1114
|
+
}
|
|
1115
|
+
function seededShuffle(array, seed) {
|
|
1116
|
+
const rng = createSeededRng(hashStringToNumber(seed));
|
|
1117
|
+
const result = [...array];
|
|
1118
|
+
for (let i = result.length - 1; i > 0; i--) {
|
|
1119
|
+
const j = Math.floor(rng() * (i + 1));
|
|
1120
|
+
[result[i], result[j]] = [result[j], result[i]];
|
|
1121
|
+
}
|
|
1122
|
+
return result;
|
|
1123
|
+
}
|
|
1124
|
+
function getDayIndex(start, today) {
|
|
1125
|
+
return today.diff(start, "day");
|
|
1126
|
+
}
|
|
1127
|
+
function computeDailyClueState(dailyClue) {
|
|
1128
|
+
const { startDate, endDate } = dailyClue.gameFields.gameDate;
|
|
1129
|
+
const { solutionShuffled, collected } = dailyClue.letterInfo;
|
|
1130
|
+
const today = nzStartOfDay();
|
|
1131
|
+
const start = nzStartOfDay(startDate);
|
|
1132
|
+
const end = nzStartOfDay(endDate);
|
|
1133
|
+
if (today.isBefore(start)) {
|
|
1134
|
+
return null;
|
|
1135
|
+
}
|
|
1136
|
+
const shuffledPlacements = seededShuffle(
|
|
1137
|
+
gameScreenIdentifierList,
|
|
1138
|
+
start.toISOString()
|
|
1139
|
+
);
|
|
1140
|
+
const index = getDayIndex(start, today);
|
|
1141
|
+
if (today.isAfter(end)) {
|
|
1142
|
+
return {
|
|
1143
|
+
todaysClue: null,
|
|
1144
|
+
todaysLetter: null,
|
|
1145
|
+
todaysPlacement: null
|
|
1146
|
+
};
|
|
1147
|
+
}
|
|
1148
|
+
if (index < 0 || index >= solutionShuffled.length || index >= shuffledPlacements.length) {
|
|
1149
|
+
return null;
|
|
1150
|
+
}
|
|
1151
|
+
const letterToday = solutionShuffled[index];
|
|
1152
|
+
const placement = shuffledPlacements[index];
|
|
1153
|
+
if (!letterToday || !placement) return null;
|
|
1154
|
+
const alreadyCollectedToday = (collected ?? []).includes(letterToday);
|
|
1155
|
+
if (alreadyCollectedToday) {
|
|
1156
|
+
return {
|
|
1157
|
+
todaysClue: null,
|
|
1158
|
+
todaysLetter: null,
|
|
1159
|
+
todaysPlacement: null
|
|
1160
|
+
};
|
|
1161
|
+
}
|
|
1162
|
+
return {
|
|
1163
|
+
todaysClue: placement.clue,
|
|
1164
|
+
todaysLetter: letterToday,
|
|
1165
|
+
todaysPlacement: placement.id
|
|
1166
|
+
};
|
|
1167
|
+
}
|
|
1168
|
+
|
|
1011
1169
|
// src/sharing/relationShareTypes.ts
|
|
1012
1170
|
var RELATION_SHARE_INVITATION = "invitation";
|
|
1013
1171
|
var RELATION_SHARE_APPLICATION = "application";
|
|
@@ -1292,10 +1450,6 @@ var truncateText = (text, maxLength = 30) => {
|
|
|
1292
1450
|
const result = stripOverlaySubtitleSpecialChars(text);
|
|
1293
1451
|
return result.length > maxLength ? result.substring(0, maxLength) + "..." : result;
|
|
1294
1452
|
};
|
|
1295
|
-
var mapArrayToOptions = (items) => items.map((item) => ({
|
|
1296
|
-
label: item,
|
|
1297
|
-
value: item
|
|
1298
|
-
}));
|
|
1299
1453
|
var capitalizeFirstLetter = (str) => {
|
|
1300
1454
|
return str.split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(" ");
|
|
1301
1455
|
};
|
|
@@ -1372,156 +1526,14 @@ var PostTypeLabels = {
|
|
|
1372
1526
|
};
|
|
1373
1527
|
var CM_SCHOOL_PROMO_CODE = `${PROMO_CODE_PREFIX}SCHOOL`;
|
|
1374
1528
|
var CM_AFFILIATE_PROMO_CODE = `${PROMO_CODE_PREFIX}AFFILIATE`;
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
var NZ_TZ = "Pacific/Auckland";
|
|
1384
|
-
function toNZTime(date) {
|
|
1385
|
-
return date ? (0, import_dayjs.default)(date).tz(NZ_TZ) : (0, import_dayjs.default)().tz(NZ_TZ);
|
|
1386
|
-
}
|
|
1387
|
-
function nzStartOfDay(input) {
|
|
1388
|
-
if (input == null) {
|
|
1389
|
-
return (0, import_dayjs.default)().tz(NZ_TZ).startOf("day");
|
|
1390
|
-
}
|
|
1391
|
-
return import_dayjs.default.tz(input, NZ_TZ).startOf("day");
|
|
1392
|
-
}
|
|
1393
|
-
var formatDate = (dateStr, display = "datetime", timeStr) => {
|
|
1394
|
-
const dateTimeStr = timeStr ? `${dateStr} ${timeStr}` : dateStr;
|
|
1395
|
-
const dateTime = timeStr ? (0, import_dayjs.default)(dateTimeStr, `${dateFormat} ${timeFormat}`) : (0, import_dayjs.default)(dateStr, dateFormat);
|
|
1396
|
-
const formattedDate = dateTime.format("dddd, D MMMM, YYYY");
|
|
1397
|
-
const formattedTime = dateTime.format("h:mm a");
|
|
1398
|
-
switch (display) {
|
|
1399
|
-
case "date":
|
|
1400
|
-
return formattedDate;
|
|
1401
|
-
case "time":
|
|
1402
|
-
return formattedTime;
|
|
1403
|
-
case "datetime":
|
|
1404
|
-
return `${formattedDate} at ${formattedTime}`;
|
|
1405
|
-
default:
|
|
1406
|
-
return formattedDate;
|
|
1407
|
-
}
|
|
1408
|
-
};
|
|
1409
|
-
var getCurrentAndFutureDates = (dates) => {
|
|
1410
|
-
const now = (0, import_dayjs.default)();
|
|
1411
|
-
return dates.filter((dateObj) => {
|
|
1412
|
-
const dateTime = (0, import_dayjs.default)(
|
|
1413
|
-
`${dateObj.startDate} ${dateObj.startTime}`,
|
|
1414
|
-
`${dateFormat} ${timeFormat}`
|
|
1415
|
-
);
|
|
1416
|
-
return dateTime.isSameOrAfter(now);
|
|
1417
|
-
});
|
|
1418
|
-
};
|
|
1419
|
-
var isFutureDatesBeforeThreshold = (date, minHoursFromNow) => {
|
|
1420
|
-
const threshold = minHoursFromNow ? (0, import_dayjs.default)().add(minHoursFromNow, "hour") : (0, import_dayjs.default)().startOf("day");
|
|
1421
|
-
const dateTime = (0, import_dayjs.default)(
|
|
1422
|
-
`${date.startDate} ${date.startTime}`,
|
|
1423
|
-
`${dateFormat} ${timeFormat}`
|
|
1424
|
-
);
|
|
1425
|
-
return dateTime.isSameOrAfter(threshold);
|
|
1426
|
-
};
|
|
1427
|
-
var formatTimestamp = (timestamp) => {
|
|
1428
|
-
const formattedDate = toNZTime(timestamp).format(dateFormat);
|
|
1429
|
-
return formatDate(formattedDate, "date");
|
|
1430
|
-
};
|
|
1431
|
-
var isIsoDateString = (value) => {
|
|
1432
|
-
return typeof value === "string" && !Number.isNaN(Date.parse(value));
|
|
1433
|
-
};
|
|
1434
|
-
function sortDatesChronologically(dates) {
|
|
1435
|
-
if (!dates?.length) {
|
|
1436
|
-
return [];
|
|
1437
|
-
}
|
|
1438
|
-
return [...dates].sort((a, b) => {
|
|
1439
|
-
const dateTimeFormat = `${dateFormat} ${timeFormat}`;
|
|
1440
|
-
const dateA = (0, import_dayjs.default)(`${a.startDate} ${a.startTime}`, dateTimeFormat);
|
|
1441
|
-
const dateB = (0, import_dayjs.default)(`${b.startDate} ${b.startTime}`, dateTimeFormat);
|
|
1442
|
-
return dateA.valueOf() - dateB.valueOf();
|
|
1443
|
-
});
|
|
1444
|
-
}
|
|
1445
|
-
var futureTimePeriods = mapArrayToOptions(
|
|
1446
|
-
Object.values(EnumEventDateStatus)
|
|
1447
|
-
).filter(
|
|
1448
|
-
(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 */
|
|
1449
|
-
).map((period) => ({
|
|
1450
|
-
label: period.value.replaceAll("_", " "),
|
|
1451
|
-
value: period.value
|
|
1452
|
-
}));
|
|
1453
|
-
|
|
1454
|
-
// src/utils/dailyClueGame.ts
|
|
1455
|
-
function createSeededRng(seed) {
|
|
1456
|
-
let t = seed >>> 0;
|
|
1457
|
-
return function random() {
|
|
1458
|
-
t += 1831565813;
|
|
1459
|
-
let x = t;
|
|
1460
|
-
x = Math.imul(x ^ x >>> 15, x | 1);
|
|
1461
|
-
x ^= x + Math.imul(x ^ x >>> 7, x | 61);
|
|
1462
|
-
return ((x ^ x >>> 14) >>> 0) / 4294967296;
|
|
1463
|
-
};
|
|
1464
|
-
}
|
|
1465
|
-
function hashStringToNumber(seed) {
|
|
1466
|
-
let hash = 2166136261;
|
|
1467
|
-
for (let i = 0; i < seed.length; i++) {
|
|
1468
|
-
hash ^= seed.codePointAt(i) ?? 0;
|
|
1469
|
-
hash = Math.imul(hash, 16777619);
|
|
1470
|
-
}
|
|
1471
|
-
return hash >>> 0;
|
|
1472
|
-
}
|
|
1473
|
-
function seededShuffle(array, seed) {
|
|
1474
|
-
const rng = createSeededRng(hashStringToNumber(seed));
|
|
1475
|
-
const result = [...array];
|
|
1476
|
-
for (let i = result.length - 1; i > 0; i--) {
|
|
1477
|
-
const j = Math.floor(rng() * (i + 1));
|
|
1478
|
-
[result[i], result[j]] = [result[j], result[i]];
|
|
1479
|
-
}
|
|
1480
|
-
return result;
|
|
1481
|
-
}
|
|
1482
|
-
function getDayIndex(start, today) {
|
|
1483
|
-
return today.diff(start, "day");
|
|
1484
|
-
}
|
|
1485
|
-
function computeDailyClueState(dailyClue) {
|
|
1486
|
-
const { startDate, endDate } = dailyClue.gameFields.gameDate;
|
|
1487
|
-
const { solutionShuffled, collected } = dailyClue.letterInfo;
|
|
1488
|
-
const today = nzStartOfDay();
|
|
1489
|
-
const start = nzStartOfDay(startDate);
|
|
1490
|
-
const end = nzStartOfDay(endDate);
|
|
1491
|
-
if (today.isBefore(start)) {
|
|
1492
|
-
return null;
|
|
1493
|
-
}
|
|
1494
|
-
const shuffledPlacements = seededShuffle(
|
|
1495
|
-
gameScreenIdentifierList,
|
|
1496
|
-
start.toISOString()
|
|
1497
|
-
);
|
|
1498
|
-
const index = getDayIndex(start, today);
|
|
1499
|
-
if (today.isAfter(end)) {
|
|
1500
|
-
return {
|
|
1501
|
-
todaysClue: null,
|
|
1502
|
-
todaysLetter: null,
|
|
1503
|
-
todaysPlacement: null
|
|
1504
|
-
};
|
|
1505
|
-
}
|
|
1506
|
-
if (index < 0 || index >= solutionShuffled.length || index >= shuffledPlacements.length) {
|
|
1507
|
-
return null;
|
|
1508
|
-
}
|
|
1509
|
-
const letterToday = solutionShuffled[index];
|
|
1510
|
-
const placement = shuffledPlacements[index];
|
|
1511
|
-
if (!letterToday || !placement) return null;
|
|
1512
|
-
const alreadyCollectedToday = (collected ?? []).includes(letterToday);
|
|
1513
|
-
if (alreadyCollectedToday) {
|
|
1514
|
-
return {
|
|
1515
|
-
todaysClue: null,
|
|
1516
|
-
todaysLetter: null,
|
|
1517
|
-
todaysPlacement: null
|
|
1518
|
-
};
|
|
1519
|
-
}
|
|
1520
|
-
return {
|
|
1521
|
-
todaysClue: placement.clue,
|
|
1522
|
-
todaysLetter: letterToday,
|
|
1523
|
-
todaysPlacement: placement.id
|
|
1524
|
-
};
|
|
1529
|
+
function formatNZBankAccount(input) {
|
|
1530
|
+
const digitsOnly = input.replaceAll(/\D/g, "");
|
|
1531
|
+
const parts = [];
|
|
1532
|
+
if (digitsOnly.length > 0) parts.push(digitsOnly.slice(0, 2));
|
|
1533
|
+
if (digitsOnly.length > 2) parts.push(digitsOnly.slice(2, 6));
|
|
1534
|
+
if (digitsOnly.length > 6) parts.push(digitsOnly.slice(6, 13));
|
|
1535
|
+
if (digitsOnly.length > 13) parts.push(digitsOnly.slice(13, 15));
|
|
1536
|
+
return parts.join("-");
|
|
1525
1537
|
}
|
|
1526
1538
|
|
|
1527
1539
|
// src/utils/affiliate.ts
|
|
@@ -9231,6 +9243,7 @@ var fonts = {
|
|
|
9231
9243
|
foodFlavourOptions,
|
|
9232
9244
|
formatCategoryLabel,
|
|
9233
9245
|
formatDate,
|
|
9246
|
+
formatNZBankAccount,
|
|
9234
9247
|
formatShareApplicationCategoriesSection,
|
|
9235
9248
|
formatShareApplicationComplianceSection,
|
|
9236
9249
|
formatShareApplicationPriceRangeLine,
|