@nanas-home/hub-common 0.56.1271 → 0.58.1306
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/{77A4D4VS.js → HW5CRR4G.js} +141 -11
- package/dist/index.css +1 -1
- package/dist/node-utils/index.d.ts +27 -7
- package/dist/node-utils/index.js +91 -19
- package/dist/{textValidation-BfD85KGx.d.ts → textValidation-DJ7gkLTW.d.ts} +307 -9
- package/dist/web/index.d.ts +76 -48
- package/dist/web/index.js +222 -180
- package/dist/web/index.jsx +326 -145
- package/package.json +3 -3
|
@@ -46,6 +46,71 @@ var monthTranslationKeyOrder = [
|
|
|
46
46
|
"dec"
|
|
47
47
|
];
|
|
48
48
|
|
|
49
|
+
// src/constants/cdnAppImage.ts
|
|
50
|
+
var cdnUrl = (path) => `https://cdn.nanashome.club/${path}`;
|
|
51
|
+
var cdnWebUrl = (path) => cdnUrl(`web-app/${path}`);
|
|
52
|
+
var CdnAppImage = {
|
|
53
|
+
nav: {
|
|
54
|
+
logo: {
|
|
55
|
+
dark: cdnWebUrl("nav-dark.png"),
|
|
56
|
+
light: cdnWebUrl("nav-light.png")
|
|
57
|
+
},
|
|
58
|
+
logo96: {
|
|
59
|
+
dark: cdnUrl("favicon/favicon-96x96.png"),
|
|
60
|
+
light: cdnUrl("favicon/favicon-96x96.png")
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
membership: {
|
|
64
|
+
Club: cdnWebUrl("Club.svg"),
|
|
65
|
+
ClubPlus: cdnWebUrl("ClubPlus.svg")
|
|
66
|
+
},
|
|
67
|
+
illustration: {
|
|
68
|
+
catInPark: cdnWebUrl("illustration/cat_in_park.svg"),
|
|
69
|
+
emptyBed: cdnWebUrl("illustration/empty_bed.svg")
|
|
70
|
+
},
|
|
71
|
+
thirdParty: {
|
|
72
|
+
hubspot: cdnWebUrl("third-party/hubspot.svg"),
|
|
73
|
+
stripe: cdnWebUrl("third-party/stripe.svg")
|
|
74
|
+
},
|
|
75
|
+
email: {
|
|
76
|
+
defaultLayout: {
|
|
77
|
+
logo: cdnUrl("email/defaultLayoutLogo.png"),
|
|
78
|
+
banner: cdnUrl("email/defaultLayoutBanner.jpg")
|
|
79
|
+
},
|
|
80
|
+
icons: {
|
|
81
|
+
facebookIcon: cdnUrl("email/icon/facebookIcon.png"),
|
|
82
|
+
instagramIcon: cdnUrl("email/icon/instagramIcon.png"),
|
|
83
|
+
linkedInIcon: cdnUrl("email/icon/linkedInIcon.png")
|
|
84
|
+
},
|
|
85
|
+
sentSuccessfully: cdnWebUrl("mail-sent.svg")
|
|
86
|
+
},
|
|
87
|
+
map: {
|
|
88
|
+
pin: cdnWebUrl("map-pin.svg")
|
|
89
|
+
},
|
|
90
|
+
portal: {
|
|
91
|
+
admin: cdnWebUrl("portal/admin.png"),
|
|
92
|
+
cdn: cdnWebUrl("portal/cdn.png"),
|
|
93
|
+
client: cdnWebUrl("portal/client.png"),
|
|
94
|
+
coverage: cdnWebUrl("portal/coverage.png"),
|
|
95
|
+
databasus: cdnWebUrl("portal/databasus.svg"),
|
|
96
|
+
docs: cdnWebUrl("portal/docs.png"),
|
|
97
|
+
fileBrowser: cdnWebUrl("portal/file-browser.svg"),
|
|
98
|
+
healthchecks: cdnWebUrl("portal/healthchecks.png"),
|
|
99
|
+
hostCal: cdnWebUrl("portal/hostCal.png"),
|
|
100
|
+
landing: cdnWebUrl("portal/landing.png"),
|
|
101
|
+
newTab: cdnWebUrl("portal/new-tab.svg"),
|
|
102
|
+
passbolt: cdnWebUrl("portal/passbolt.svg"),
|
|
103
|
+
portal: cdnWebUrl("portal/portal.png"),
|
|
104
|
+
registry: cdnWebUrl("portal/registry.png"),
|
|
105
|
+
tolgee: cdnWebUrl("portal/tolgee.svg"),
|
|
106
|
+
traefik: cdnWebUrl("portal/traefik.png")
|
|
107
|
+
},
|
|
108
|
+
error: {
|
|
109
|
+
cat: cdnWebUrl("error_cat.svg"),
|
|
110
|
+
dog: cdnWebUrl("error_dog.svg")
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
|
|
49
114
|
// src/constants/font.ts
|
|
50
115
|
var nanasFonts = {
|
|
51
116
|
default: "https://fonts.googleapis.com/css2?family=Hanken+Grotesk:ital,wght@0,100..900;1,100..900&display=swap"
|
|
@@ -128,6 +193,7 @@ var apiRouteParam = {
|
|
|
128
193
|
petUuid: ":petUuid",
|
|
129
194
|
addressUuid: ":addressUuid",
|
|
130
195
|
bookingUuid: ":bookingUuid",
|
|
196
|
+
bookingHostUuid: ":bookingHostUuid",
|
|
131
197
|
bookingAddonUuid: ":bookingAddonUuid",
|
|
132
198
|
uploadUuid: ":uploadUuid",
|
|
133
199
|
userMembershipUuid: ":userMembershipUuid",
|
|
@@ -148,6 +214,7 @@ var apiRoute = {
|
|
|
148
214
|
signup: "/signup",
|
|
149
215
|
signupProgress: "/signup-progress",
|
|
150
216
|
signupQuestions: "/signup-questions",
|
|
217
|
+
signupTempPetImageUpload: "/signup-temp-pet-upload",
|
|
151
218
|
confirmEmail: `/confirm-email/${apiRouteParam.linkUuid}`,
|
|
152
219
|
requestPasswordResetLink: `/password-reset`,
|
|
153
220
|
passwordResetFromTempLink: `/password-reset/${apiRouteParam.linkUuid}`,
|
|
@@ -188,7 +255,7 @@ var apiRoute = {
|
|
|
188
255
|
byPet: `/pet/${apiRouteParam.petUuid}`,
|
|
189
256
|
withRelationships: `/with-relationships/${apiRouteParam.bookingUuid}`,
|
|
190
257
|
assignHost: `/assign-host/${apiRouteParam.bookingUuid}/${apiRouteParam.userUuid}`,
|
|
191
|
-
removeHost: `/remove-host/${apiRouteParam.bookingUuid}`,
|
|
258
|
+
removeHost: `/remove-host/${apiRouteParam.bookingUuid}/${apiRouteParam.bookingHostUuid}`,
|
|
192
259
|
calendarOverview: "/calendar-overview",
|
|
193
260
|
swagger: { name: "Bookings", description: "Endpoints for managing bookings" }
|
|
194
261
|
},
|
|
@@ -234,6 +301,7 @@ var apiRoute = {
|
|
|
234
301
|
user: {
|
|
235
302
|
prefix: "/admin/user",
|
|
236
303
|
searchHosts: "/search-hosts",
|
|
304
|
+
migrationReport: "/migration-report",
|
|
237
305
|
swagger: { name: "Users", description: "Endpoints for Admins to manage Users" }
|
|
238
306
|
},
|
|
239
307
|
userMembership: {
|
|
@@ -611,6 +679,7 @@ var UploadLinkType = /* @__PURE__ */ ((UploadLinkType2) => {
|
|
|
611
679
|
UploadLinkType2[UploadLinkType2["Unknown"] = 0] = "Unknown";
|
|
612
680
|
UploadLinkType2[UploadLinkType2["User"] = 1] = "User";
|
|
613
681
|
UploadLinkType2[UploadLinkType2["Pet"] = 2] = "Pet";
|
|
682
|
+
UploadLinkType2[UploadLinkType2["UserRegistration"] = 3] = "UserRegistration";
|
|
614
683
|
return UploadLinkType2;
|
|
615
684
|
})(UploadLinkType || {});
|
|
616
685
|
var UploadType = /* @__PURE__ */ ((UploadType2) => {
|
|
@@ -748,7 +817,15 @@ var AnswerRestriction = {
|
|
|
748
817
|
|
|
749
818
|
// src/contracts/generated/restrictions/authRestriction.ts
|
|
750
819
|
var AuthRegisterRestriction = {
|
|
751
|
-
pets: {
|
|
820
|
+
pets: {
|
|
821
|
+
minItems: 1,
|
|
822
|
+
maxItems: 5,
|
|
823
|
+
upload: {
|
|
824
|
+
url: { minLength: 0, maxLength: 1e3 },
|
|
825
|
+
mimeType: { minLength: 3, maxLength: 50 },
|
|
826
|
+
extension: { minLength: 3, maxLength: 5 }
|
|
827
|
+
}
|
|
828
|
+
},
|
|
752
829
|
answers: { minItems: 3, maxItems: 50 }
|
|
753
830
|
};
|
|
754
831
|
|
|
@@ -1168,8 +1245,6 @@ var addToParallelTasks = async (tasks, newTask, numTasksInParallel = 5) => {
|
|
|
1168
1245
|
tasks.push(newTask);
|
|
1169
1246
|
return tasks;
|
|
1170
1247
|
};
|
|
1171
|
-
|
|
1172
|
-
// src/helpers/bookingCalendarHelper.ts
|
|
1173
1248
|
var getBookingStatusLabelForAdmin = (status) => {
|
|
1174
1249
|
switch (status) {
|
|
1175
1250
|
case 0 /* Cancelled */:
|
|
@@ -1205,12 +1280,40 @@ var getMembershipTypeLabel = (type) => {
|
|
|
1205
1280
|
return "None";
|
|
1206
1281
|
}
|
|
1207
1282
|
};
|
|
1283
|
+
var getPetTypeLabel = (type) => {
|
|
1284
|
+
switch (type) {
|
|
1285
|
+
case 1 /* Dog */:
|
|
1286
|
+
return "Dog";
|
|
1287
|
+
case 2 /* Cat */:
|
|
1288
|
+
return "Cat";
|
|
1289
|
+
case 3 /* Bird */:
|
|
1290
|
+
return "Bird";
|
|
1291
|
+
case 4 /* Rodent */:
|
|
1292
|
+
return "Rodent";
|
|
1293
|
+
case 5 /* Reptile */:
|
|
1294
|
+
return "Reptile";
|
|
1295
|
+
case 6 /* Other */:
|
|
1296
|
+
return "Other";
|
|
1297
|
+
case 0 /* Unknown */:
|
|
1298
|
+
default:
|
|
1299
|
+
return "Unknown";
|
|
1300
|
+
}
|
|
1301
|
+
};
|
|
1302
|
+
var formatPetTypesLabel = (types) => {
|
|
1303
|
+
const uniqueTypes = [];
|
|
1304
|
+
for (const type of types) {
|
|
1305
|
+
if (uniqueTypes.includes(type) == false) uniqueTypes.push(type);
|
|
1306
|
+
}
|
|
1307
|
+
const labels = uniqueTypes.map((type) => getPetTypeLabel(type)).filter((label) => label !== "Unknown");
|
|
1308
|
+
return labels.length > 0 ? labels.join(", ") : "Unknown";
|
|
1309
|
+
};
|
|
1208
1310
|
var formatBookingCalendarLabel = (item) => {
|
|
1209
1311
|
const status = getBookingStatusLabelForAdmin(item.status);
|
|
1210
|
-
const
|
|
1312
|
+
const petNames = item.petNames.join(", ") || "No pets";
|
|
1211
1313
|
const membership = getMembershipTypeLabel(item.ownerMembershipType);
|
|
1212
|
-
const
|
|
1213
|
-
|
|
1314
|
+
const petTypes = formatPetTypesLabel(item.petTypes);
|
|
1315
|
+
const hostPart = item.hostNames.length > 0 ? ` [with ${item.hostNames.join(", ")}]` : "";
|
|
1316
|
+
return `${status}: ${petNames}, ${membership} (${item.ownerName}) ${petTypes}${hostPart}`;
|
|
1214
1317
|
};
|
|
1215
1318
|
var BOOKING_OVERVIEW_STATUSES = [
|
|
1216
1319
|
1 /* IntakeCall */,
|
|
@@ -1233,9 +1336,29 @@ var computeBookingStatusCounts = (bookings) => {
|
|
|
1233
1336
|
}
|
|
1234
1337
|
return counts;
|
|
1235
1338
|
};
|
|
1236
|
-
var filterBookingsByOverviewStatus = (bookings,
|
|
1237
|
-
if (
|
|
1238
|
-
|
|
1339
|
+
var filterBookingsByOverviewStatus = (bookings, statuses) => {
|
|
1340
|
+
if (statuses == null || statuses.length === 0) return bookings;
|
|
1341
|
+
const allowed = new Set(statuses);
|
|
1342
|
+
return bookings.filter((booking) => allowed.has(booking.status));
|
|
1343
|
+
};
|
|
1344
|
+
var computeBookingNightCount = (startDate, endDate) => {
|
|
1345
|
+
const nights = Math.abs(
|
|
1346
|
+
dayjs(endDate).startOf("day").diff(dayjs(startDate).startOf("day"), "day")
|
|
1347
|
+
);
|
|
1348
|
+
return Math.max(1, nights);
|
|
1349
|
+
};
|
|
1350
|
+
var formatBookingNightsTooltip = (startDate, endDate) => {
|
|
1351
|
+
const nights = computeBookingNightCount(startDate, endDate);
|
|
1352
|
+
return nights === 1 ? "1 night" : `${nights} nights`;
|
|
1353
|
+
};
|
|
1354
|
+
var serializeBookingOverviewStatuses = (statuses) => {
|
|
1355
|
+
if (statuses.length === 0) return void 0;
|
|
1356
|
+
return statuses.join(",");
|
|
1357
|
+
};
|
|
1358
|
+
var parseBookingOverviewStatuses = (statuses) => {
|
|
1359
|
+
if (statuses == null || statuses.trim().length === 0) return void 0;
|
|
1360
|
+
const parsed = statuses.split(",").map((value) => value.trim()).filter((value) => value.length > 0).map((value) => Number(value)).filter((value) => Number.isFinite(value));
|
|
1361
|
+
return parsed.length > 0 ? parsed : void 0;
|
|
1239
1362
|
};
|
|
1240
1363
|
|
|
1241
1364
|
// src/components/form/calendar/calendarPicker.functions.ts
|
|
@@ -1660,6 +1783,13 @@ var urlRef = (url) => {
|
|
|
1660
1783
|
}
|
|
1661
1784
|
return url + `?ref=${ref}`;
|
|
1662
1785
|
};
|
|
1786
|
+
var urlAddQueryParam = (url, queryParamName, queryParamValue) => {
|
|
1787
|
+
if (url.includes(`${queryParamName}=`)) return url;
|
|
1788
|
+
if (url.includes("?")) {
|
|
1789
|
+
return url + `&${queryParamName}=${queryParamValue}`;
|
|
1790
|
+
}
|
|
1791
|
+
return url + `?${queryParamName}=${queryParamValue}`;
|
|
1792
|
+
};
|
|
1663
1793
|
|
|
1664
1794
|
// src/helpers/userAccountFlagHelper.ts
|
|
1665
1795
|
var userMustChangePassword = (flags) => flags?.includes(1 /* ChangePassword */) === true;
|
|
@@ -2022,4 +2152,4 @@ var shouldBeYoutubeUrl = (value) => {
|
|
|
2022
2152
|
};
|
|
2023
2153
|
};
|
|
2024
2154
|
|
|
2025
|
-
export { APP_TYPE_TOKEN, ActivityRestriction, ActivityType, AddressLinkType, AddressRestriction, AnswerLinkType, AnswerRestriction, AppType, AuthRegisterRestriction, BOOKING_OVERVIEW_STATUSES, BOT_PATH_TOKEN, BookingAddonRestriction, BookingAddonType, BookingRestriction, BookingStatusType, BugReportRestriction, BugReportStatusType, CommentLinkType, CommentRestriction, CommonConfigService, DependencyInjectionContainer, DrivingRouteRestriction, InvoiceRestriction, InvoiceStatusType, LogService, MembershipBillingCycleType, MembershipRestriction, MembershipStatus, MembershipType, MouseButton, NANAS_PALLETTE, NetworkState, OrderDirectionType, PermissionRestriction, PermissionType, PetRestriction, PetSexType, PetStatusType, PetType, QuestionForType, QuestionRestriction, QuestionType, SITE_CONFIG_TOKEN, SearchableColumnType, StripeRestriction, SupportedLanguageArray, TempLinkType, TempRegistrationStatus, UnavailabilityRestriction, UploadLinkType, UploadRestriction, UploadType, UserAccountFlagType, UserRestriction, UserType, UuidRestriction, activityShortCode, addDays, addMinutes, addMonths, addSeconds, addSpacesForEnum, addToParallelTasks, allowedNonNumericalValuesInContactNumber, anyObject, apiRoute, apiRouteParam, arrayContains, arrayOfNLength, capitalizeFirstLetter, changeMonth, colourPalette, commonEmailLinks, computeBookingStatusCounts, contactNumberCharValid, contactNumberValid, convertToDate, convertToFullDateSelection, createToken, cyrb53, dateDiffInDays, debounceLeading, defaultSiteColour, emailValid, fakePromise, filterBookingsByOverviewStatus, formatBookingCalendarLabel, formatDate, formatFileSize, formatForBookingDate, formatForDateDropdown, formatForDateLocal, formatForDateLocalDetailed, formatForDateOfBirth, formatForDateWithTime, getActiveUserMembership, getAgeInYears, getAllPetQuestionForType, getAppType, getArrFromEnum, getBookingStatusLabelForAdmin, getBotPath, getCalendarDropdownDisplayValue, getCalendarDropdownForDateOfBirthDisplayValue, getCommonConfig, getDayClassObject, getDayElements, getDayHeadingElements, getImageParams, getLog, getMembershipTypeLabel, getMimeTypeFromExtension, getPayloadFromJwt, getPerformanceTimer, getPetAvatarUrl, getQuestionGroups, getSiteColour, getSiteConfig, getUserAvatarUrl, getUsersName, getWeekNumber, hasRequiredPermissions, hubspotQuestionsExport, isBefore, isDateAfterStart, isDateBeforeEnd, isDateDisabledByDisabledDays, isDateEnabledByEnabledDays, isNumber, isSameDay, isWebApp, lowercaseFirstLetter, makeArrayOrDefault, maxDate, maxItems, maxLength, maxValue, mimeTypeLookup, minDate, minItems, minLength, minUrlLength, minValue, monthTranslationKeyOrder, multiValidation, nameof, nanasFonts, noValidation, notNull, onlyUnique, passwordValid, portalGlyphLength, postCodeValid, promiseFromValue, randomIntFromRange, randomItemFromArray, rootContainer, rootDependencyInjectionSetup, searchColumns, selectedItemsExist, selectedOptionIsInEnum, separateValidation, setContainerToken, setContainerTokenLazy, setSiteConfig, shouldBeUrl, shouldBeYoutubeUrl, showSecondCalendar, socialLinks, timeout, tryParseNumber, uploadsThatNeedEncryption, urlRef, userMustChangePassword, uuidv4, validUuidChars, validateForEach, webAppTypes, weekdayTranslationKeyOrder };
|
|
2155
|
+
export { APP_TYPE_TOKEN, ActivityRestriction, ActivityType, AddressLinkType, AddressRestriction, AnswerLinkType, AnswerRestriction, AppType, AuthRegisterRestriction, BOOKING_OVERVIEW_STATUSES, BOT_PATH_TOKEN, BookingAddonRestriction, BookingAddonType, BookingRestriction, BookingStatusType, BugReportRestriction, BugReportStatusType, CdnAppImage, CommentLinkType, CommentRestriction, CommonConfigService, DependencyInjectionContainer, DrivingRouteRestriction, InvoiceRestriction, InvoiceStatusType, LogService, MembershipBillingCycleType, MembershipRestriction, MembershipStatus, MembershipType, MouseButton, NANAS_PALLETTE, NetworkState, OrderDirectionType, PermissionRestriction, PermissionType, PetRestriction, PetSexType, PetStatusType, PetType, QuestionForType, QuestionRestriction, QuestionType, SITE_CONFIG_TOKEN, SearchableColumnType, StripeRestriction, SupportedLanguageArray, TempLinkType, TempRegistrationStatus, UnavailabilityRestriction, UploadLinkType, UploadRestriction, UploadType, UserAccountFlagType, UserRestriction, UserType, UuidRestriction, activityShortCode, addDays, addMinutes, addMonths, addSeconds, addSpacesForEnum, addToParallelTasks, allowedNonNumericalValuesInContactNumber, anyObject, apiRoute, apiRouteParam, arrayContains, arrayOfNLength, capitalizeFirstLetter, changeMonth, colourPalette, commonEmailLinks, computeBookingNightCount, computeBookingStatusCounts, contactNumberCharValid, contactNumberValid, convertToDate, convertToFullDateSelection, createToken, cyrb53, dateDiffInDays, debounceLeading, defaultSiteColour, emailValid, fakePromise, filterBookingsByOverviewStatus, formatBookingCalendarLabel, formatBookingNightsTooltip, formatDate, formatFileSize, formatForBookingDate, formatForDateDropdown, formatForDateLocal, formatForDateLocalDetailed, formatForDateOfBirth, formatForDateWithTime, formatPetTypesLabel, getActiveUserMembership, getAgeInYears, getAllPetQuestionForType, getAppType, getArrFromEnum, getBookingStatusLabelForAdmin, getBotPath, getCalendarDropdownDisplayValue, getCalendarDropdownForDateOfBirthDisplayValue, getCommonConfig, getDayClassObject, getDayElements, getDayHeadingElements, getImageParams, getLog, getMembershipTypeLabel, getMimeTypeFromExtension, getPayloadFromJwt, getPerformanceTimer, getPetAvatarUrl, getPetTypeLabel, getQuestionGroups, getSiteColour, getSiteConfig, getUserAvatarUrl, getUsersName, getWeekNumber, hasRequiredPermissions, hubspotQuestionsExport, isBefore, isDateAfterStart, isDateBeforeEnd, isDateDisabledByDisabledDays, isDateEnabledByEnabledDays, isNumber, isSameDay, isWebApp, lowercaseFirstLetter, makeArrayOrDefault, maxDate, maxItems, maxLength, maxValue, mimeTypeLookup, minDate, minItems, minLength, minUrlLength, minValue, monthTranslationKeyOrder, multiValidation, nameof, nanasFonts, noValidation, notNull, onlyUnique, parseBookingOverviewStatuses, passwordValid, portalGlyphLength, postCodeValid, promiseFromValue, randomIntFromRange, randomItemFromArray, rootContainer, rootDependencyInjectionSetup, searchColumns, selectedItemsExist, selectedOptionIsInEnum, separateValidation, serializeBookingOverviewStatuses, setContainerToken, setContainerTokenLazy, setSiteConfig, shouldBeUrl, shouldBeYoutubeUrl, showSecondCalendar, socialLinks, timeout, tryParseNumber, uploadsThatNeedEncryption, urlAddQueryParam, urlRef, userMustChangePassword, uuidv4, validUuidChars, validateForEach, webAppTypes, weekdayTranslationKeyOrder };
|