@hanzo/booker 8.2.1 → 8.3.2
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/README.md +6 -6
- package/dist/cjs/Booker.js +23 -0
- package/dist/cjs/Booker.js.map +1 -0
- package/dist/cjs/BookingForm.js +32 -0
- package/dist/cjs/BookingForm.js.map +1 -0
- package/dist/cjs/CalendarEmbed.js +20 -0
- package/dist/cjs/CalendarEmbed.js.map +1 -0
- package/dist/cjs/Confirmation.js +34 -0
- package/dist/cjs/Confirmation.js.map +1 -0
- package/dist/cjs/EventHeader.js +31 -0
- package/dist/cjs/EventHeader.js.map +1 -0
- package/dist/cjs/MonthCalendar.js +24 -0
- package/dist/cjs/MonthCalendar.js.map +1 -0
- package/dist/cjs/TimeSlots.js +21 -0
- package/dist/cjs/TimeSlots.js.map +1 -0
- package/dist/cjs/client.js +113 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/hooks.js +121 -0
- package/dist/cjs/hooks.js.map +1 -0
- package/dist/cjs/index.js +55 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/time.js +129 -0
- package/dist/cjs/time.js.map +1 -0
- package/dist/cjs/useBooker.js +135 -0
- package/dist/cjs/useBooker.js.map +1 -0
- package/dist/esm/Booker.js +20 -0
- package/dist/esm/Booker.js.map +1 -0
- package/dist/esm/BookingForm.js +29 -0
- package/dist/esm/BookingForm.js.map +1 -0
- package/dist/esm/CalendarEmbed.js +17 -0
- package/dist/esm/CalendarEmbed.js.map +1 -0
- package/dist/esm/Confirmation.js +31 -0
- package/dist/esm/Confirmation.js.map +1 -0
- package/dist/esm/EventHeader.js +28 -0
- package/dist/esm/EventHeader.js.map +1 -0
- package/dist/esm/MonthCalendar.js +21 -0
- package/dist/esm/MonthCalendar.js.map +1 -0
- package/dist/esm/TimeSlots.js +18 -0
- package/dist/esm/TimeSlots.js.map +1 -0
- package/dist/esm/client.js +104 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/hooks.js +115 -0
- package/dist/esm/hooks.js.map +1 -0
- package/dist/esm/index.js +18 -13
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/time.js +113 -0
- package/dist/esm/time.js.map +1 -0
- package/dist/esm/useBooker.js +132 -0
- package/dist/esm/useBooker.js.map +1 -0
- package/package.json +28 -28
- package/src/Booker.tsx +7 -7
- package/src/BookingForm.tsx +2 -2
- package/src/CalendarEmbed.tsx +7 -7
- package/src/Confirmation.tsx +4 -4
- package/src/EventHeader.tsx +1 -1
- package/src/MonthCalendar.tsx +1 -1
- package/src/TimeSlots.tsx +2 -2
- package/src/hooks.ts +1 -1
- package/src/index.ts +11 -11
- package/src/useBooker.ts +9 -4
- package/types/Booker.d.ts +2 -2
- package/types/Booker.d.ts.map +1 -1
- package/types/BookingForm.d.ts +2 -2
- package/types/BookingForm.d.ts.map +1 -1
- package/types/CalendarEmbed.d.ts +2 -2
- package/types/CalendarEmbed.d.ts.map +1 -1
- package/types/Confirmation.d.ts +2 -2
- package/types/Confirmation.d.ts.map +1 -1
- package/types/EventHeader.d.ts +2 -2
- package/types/EventHeader.d.ts.map +1 -1
- package/types/MonthCalendar.d.ts +1 -1
- package/types/MonthCalendar.d.ts.map +1 -1
- package/types/TimeSlots.d.ts +2 -2
- package/types/TimeSlots.d.ts.map +1 -1
- package/types/client.d.ts.map +1 -1
- package/types/hooks.d.ts +1 -1
- package/types/hooks.d.ts.map +1 -1
- package/types/index.d.ts +11 -11
- package/types/index.d.ts.map +1 -1
- package/types/useBooker.d.ts +3 -3
- package/types/useBooker.d.ts.map +1 -1
- package/dist/cjs/Booker.cjs +0 -153
- package/dist/cjs/Booker.native.js +0 -158
- package/dist/cjs/Booker.native.js.map +0 -1
- package/dist/cjs/BookingForm.cjs +0 -197
- package/dist/cjs/BookingForm.native.js +0 -203
- package/dist/cjs/BookingForm.native.js.map +0 -1
- package/dist/cjs/CalendarEmbed.cjs +0 -121
- package/dist/cjs/CalendarEmbed.native.js +0 -125
- package/dist/cjs/CalendarEmbed.native.js.map +0 -1
- package/dist/cjs/Confirmation.cjs +0 -177
- package/dist/cjs/Confirmation.native.js +0 -185
- package/dist/cjs/Confirmation.native.js.map +0 -1
- package/dist/cjs/EventHeader.cjs +0 -112
- package/dist/cjs/EventHeader.native.js +0 -118
- package/dist/cjs/EventHeader.native.js.map +0 -1
- package/dist/cjs/MonthCalendar.cjs +0 -177
- package/dist/cjs/MonthCalendar.native.js +0 -191
- package/dist/cjs/MonthCalendar.native.js.map +0 -1
- package/dist/cjs/TimeSlots.cjs +0 -119
- package/dist/cjs/TimeSlots.native.js +0 -126
- package/dist/cjs/TimeSlots.native.js.map +0 -1
- package/dist/cjs/client.cjs +0 -136
- package/dist/cjs/client.native.js +0 -267
- package/dist/cjs/client.native.js.map +0 -1
- package/dist/cjs/hooks.cjs +0 -193
- package/dist/cjs/hooks.native.js +0 -221
- package/dist/cjs/hooks.native.js.map +0 -1
- package/dist/cjs/index.cjs +0 -71
- package/dist/cjs/index.native.js +0 -74
- package/dist/cjs/index.native.js.map +0 -1
- package/dist/cjs/time.cjs +0 -145
- package/dist/cjs/time.native.js +0 -150
- package/dist/cjs/time.native.js.map +0 -1
- package/dist/cjs/useBooker.cjs +0 -151
- package/dist/cjs/useBooker.native.js +0 -173
- package/dist/cjs/useBooker.native.js.map +0 -1
- package/dist/esm/Booker.mjs +0 -128
- package/dist/esm/Booker.mjs.map +0 -1
- package/dist/esm/Booker.native.js +0 -130
- package/dist/esm/Booker.native.js.map +0 -1
- package/dist/esm/BookingForm.mjs +0 -172
- package/dist/esm/BookingForm.mjs.map +0 -1
- package/dist/esm/BookingForm.native.js +0 -175
- package/dist/esm/BookingForm.native.js.map +0 -1
- package/dist/esm/CalendarEmbed.mjs +0 -96
- package/dist/esm/CalendarEmbed.mjs.map +0 -1
- package/dist/esm/CalendarEmbed.native.js +0 -97
- package/dist/esm/CalendarEmbed.native.js.map +0 -1
- package/dist/esm/Confirmation.mjs +0 -152
- package/dist/esm/Confirmation.mjs.map +0 -1
- package/dist/esm/Confirmation.native.js +0 -157
- package/dist/esm/Confirmation.native.js.map +0 -1
- package/dist/esm/EventHeader.mjs +0 -87
- package/dist/esm/EventHeader.mjs.map +0 -1
- package/dist/esm/EventHeader.native.js +0 -90
- package/dist/esm/EventHeader.native.js.map +0 -1
- package/dist/esm/MonthCalendar.mjs +0 -152
- package/dist/esm/MonthCalendar.mjs.map +0 -1
- package/dist/esm/MonthCalendar.native.js +0 -163
- package/dist/esm/MonthCalendar.native.js.map +0 -1
- package/dist/esm/TimeSlots.mjs +0 -94
- package/dist/esm/TimeSlots.mjs.map +0 -1
- package/dist/esm/TimeSlots.native.js +0 -98
- package/dist/esm/TimeSlots.native.js.map +0 -1
- package/dist/esm/client.mjs +0 -104
- package/dist/esm/client.mjs.map +0 -1
- package/dist/esm/client.native.js +0 -232
- package/dist/esm/client.native.js.map +0 -1
- package/dist/esm/hooks.mjs +0 -165
- package/dist/esm/hooks.mjs.map +0 -1
- package/dist/esm/hooks.native.js +0 -190
- package/dist/esm/hooks.native.js.map +0 -1
- package/dist/esm/index.mjs +0 -13
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js +0 -13
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/time.mjs +0 -107
- package/dist/esm/time.mjs.map +0 -1
- package/dist/esm/time.native.js +0 -109
- package/dist/esm/time.native.js.map +0 -1
- package/dist/esm/useBooker.mjs +0 -126
- package/dist/esm/useBooker.mjs.map +0 -1
- package/dist/esm/useBooker.native.js +0 -145
- package/dist/esm/useBooker.native.js.map +0 -1
package/dist/cjs/time.cjs
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all) __defProp(target, name, {
|
|
7
|
-
get: all[name],
|
|
8
|
-
enumerable: true
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
-
get: () => from[key],
|
|
15
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value: true
|
|
22
|
-
}), mod);
|
|
23
|
-
var time_exports = {};
|
|
24
|
-
__export(time_exports, {
|
|
25
|
-
addMonths: () => addMonths,
|
|
26
|
-
dateFromKey: () => dateFromKey,
|
|
27
|
-
formatBookingWhen: () => formatBookingWhen,
|
|
28
|
-
formatDayLong: () => formatDayLong,
|
|
29
|
-
formatMonthLabel: () => formatMonthLabel,
|
|
30
|
-
formatSlotTime: () => formatSlotTime,
|
|
31
|
-
isBeforeToday: () => isBeforeToday,
|
|
32
|
-
monthMatrix: () => monthMatrix,
|
|
33
|
-
monthRange: () => monthRange,
|
|
34
|
-
sameMonth: () => sameMonth,
|
|
35
|
-
startOfMonth: () => startOfMonth,
|
|
36
|
-
visitorTimeZone: () => visitorTimeZone,
|
|
37
|
-
weekdayLabels: () => weekdayLabels,
|
|
38
|
-
ymd: () => ymd
|
|
39
|
-
});
|
|
40
|
-
module.exports = __toCommonJS(time_exports);
|
|
41
|
-
function visitorTimeZone() {
|
|
42
|
-
try {
|
|
43
|
-
return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
|
|
44
|
-
} catch {
|
|
45
|
-
return "UTC";
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
function ymd(d) {
|
|
49
|
-
const y = d.getFullYear();
|
|
50
|
-
const m = String(d.getMonth() + 1).padStart(2, "0");
|
|
51
|
-
const day = String(d.getDate()).padStart(2, "0");
|
|
52
|
-
return `${y}-${m}-${day}`;
|
|
53
|
-
}
|
|
54
|
-
function startOfMonth(d) {
|
|
55
|
-
return new Date(d.getFullYear(), d.getMonth(), 1);
|
|
56
|
-
}
|
|
57
|
-
function addMonths(d, n) {
|
|
58
|
-
return new Date(d.getFullYear(), d.getMonth() + n, 1);
|
|
59
|
-
}
|
|
60
|
-
function sameMonth(a, b) {
|
|
61
|
-
return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
|
|
62
|
-
}
|
|
63
|
-
function isBeforeToday(key) {
|
|
64
|
-
return key < ymd(/* @__PURE__ */new Date());
|
|
65
|
-
}
|
|
66
|
-
function monthMatrix(viewDate, weekStartsOn = 0) {
|
|
67
|
-
const year = viewDate.getFullYear();
|
|
68
|
-
const month = viewDate.getMonth();
|
|
69
|
-
const firstWeekday = new Date(year, month, 1).getDay();
|
|
70
|
-
const startOffset = (firstWeekday - weekStartsOn + 7) % 7;
|
|
71
|
-
const cells = [];
|
|
72
|
-
for (let i = 0; i < 42; i++) {
|
|
73
|
-
const date = new Date(year, month, 1 - startOffset + i);
|
|
74
|
-
cells.push({
|
|
75
|
-
date,
|
|
76
|
-
key: ymd(date),
|
|
77
|
-
inMonth: date.getMonth() === month
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
return cells;
|
|
81
|
-
}
|
|
82
|
-
function monthRange(viewDate) {
|
|
83
|
-
const year = viewDate.getFullYear();
|
|
84
|
-
const month = viewDate.getMonth();
|
|
85
|
-
const startOfView = new Date(year, month, 1, 0, 0, 0, 0);
|
|
86
|
-
const now = /* @__PURE__ */new Date();
|
|
87
|
-
const start = startOfView.getTime() > now.getTime() ? startOfView : now;
|
|
88
|
-
const endOfView = new Date(year, month + 1, 0, 23, 59, 59, 999);
|
|
89
|
-
return {
|
|
90
|
-
startTime: start.toISOString(),
|
|
91
|
-
endTime: endOfView.toISOString()
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
function weekdayLabels(weekStartsOn = 0) {
|
|
95
|
-
const fmt = new Intl.DateTimeFormat(void 0, {
|
|
96
|
-
weekday: "short"
|
|
97
|
-
});
|
|
98
|
-
const out = [];
|
|
99
|
-
for (let i = 0; i < 7; i++) {
|
|
100
|
-
const d = new Date(2023, 0, 1 + (i + weekStartsOn) % 7);
|
|
101
|
-
out.push(fmt.format(d));
|
|
102
|
-
}
|
|
103
|
-
return out;
|
|
104
|
-
}
|
|
105
|
-
function formatMonthLabel(d) {
|
|
106
|
-
return new Intl.DateTimeFormat(void 0, {
|
|
107
|
-
month: "long",
|
|
108
|
-
year: "numeric"
|
|
109
|
-
}).format(d);
|
|
110
|
-
}
|
|
111
|
-
function formatDayLong(d) {
|
|
112
|
-
return new Intl.DateTimeFormat(void 0, {
|
|
113
|
-
weekday: "long",
|
|
114
|
-
month: "long",
|
|
115
|
-
day: "numeric"
|
|
116
|
-
}).format(d);
|
|
117
|
-
}
|
|
118
|
-
function formatSlotTime(iso, timeZone) {
|
|
119
|
-
return new Intl.DateTimeFormat(void 0, {
|
|
120
|
-
hour: "numeric",
|
|
121
|
-
minute: "2-digit",
|
|
122
|
-
timeZone
|
|
123
|
-
}).format(new Date(iso));
|
|
124
|
-
}
|
|
125
|
-
function formatBookingWhen(iso, timeZone) {
|
|
126
|
-
const at = new Date(iso);
|
|
127
|
-
const date = new Intl.DateTimeFormat(void 0, {
|
|
128
|
-
weekday: "long",
|
|
129
|
-
month: "long",
|
|
130
|
-
day: "numeric",
|
|
131
|
-
year: "numeric",
|
|
132
|
-
timeZone
|
|
133
|
-
}).format(at);
|
|
134
|
-
const time = new Intl.DateTimeFormat(void 0, {
|
|
135
|
-
hour: "numeric",
|
|
136
|
-
minute: "2-digit",
|
|
137
|
-
timeZoneName: "short",
|
|
138
|
-
timeZone
|
|
139
|
-
}).format(at);
|
|
140
|
-
return `${date} at ${time}`;
|
|
141
|
-
}
|
|
142
|
-
function dateFromKey(key) {
|
|
143
|
-
const [y, m, d] = key.split("-").map(Number);
|
|
144
|
-
return new Date(y, (m ?? 1) - 1, d ?? 1, 12, 0, 0, 0);
|
|
145
|
-
}
|
package/dist/cjs/time.native.js
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all) __defProp(target, name, {
|
|
9
|
-
get: all[name],
|
|
10
|
-
enumerable: true
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
-
get: () => from[key],
|
|
17
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
return to;
|
|
21
|
-
};
|
|
22
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
-
value: true
|
|
24
|
-
}), mod);
|
|
25
|
-
var time_exports = {};
|
|
26
|
-
__export(time_exports, {
|
|
27
|
-
addMonths: () => addMonths,
|
|
28
|
-
dateFromKey: () => dateFromKey,
|
|
29
|
-
formatBookingWhen: () => formatBookingWhen,
|
|
30
|
-
formatDayLong: () => formatDayLong,
|
|
31
|
-
formatMonthLabel: () => formatMonthLabel,
|
|
32
|
-
formatSlotTime: () => formatSlotTime,
|
|
33
|
-
isBeforeToday: () => isBeforeToday,
|
|
34
|
-
monthMatrix: () => monthMatrix,
|
|
35
|
-
monthRange: () => monthRange,
|
|
36
|
-
sameMonth: () => sameMonth,
|
|
37
|
-
startOfMonth: () => startOfMonth,
|
|
38
|
-
visitorTimeZone: () => visitorTimeZone,
|
|
39
|
-
weekdayLabels: () => weekdayLabels,
|
|
40
|
-
ymd: () => ymd
|
|
41
|
-
});
|
|
42
|
-
module.exports = __toCommonJS(time_exports);
|
|
43
|
-
function visitorTimeZone() {
|
|
44
|
-
try {
|
|
45
|
-
return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
|
|
46
|
-
} catch (e) {
|
|
47
|
-
return "UTC";
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
function ymd(d) {
|
|
51
|
-
var y = d.getFullYear();
|
|
52
|
-
var m = String(d.getMonth() + 1).padStart(2, "0");
|
|
53
|
-
var day = String(d.getDate()).padStart(2, "0");
|
|
54
|
-
return `${y}-${m}-${day}`;
|
|
55
|
-
}
|
|
56
|
-
function startOfMonth(d) {
|
|
57
|
-
return new Date(d.getFullYear(), d.getMonth(), 1);
|
|
58
|
-
}
|
|
59
|
-
function addMonths(d, n) {
|
|
60
|
-
return new Date(d.getFullYear(), d.getMonth() + n, 1);
|
|
61
|
-
}
|
|
62
|
-
function sameMonth(a, b) {
|
|
63
|
-
return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
|
|
64
|
-
}
|
|
65
|
-
function isBeforeToday(key) {
|
|
66
|
-
return key < ymd(/* @__PURE__ */new Date());
|
|
67
|
-
}
|
|
68
|
-
function monthMatrix(viewDate) {
|
|
69
|
-
var weekStartsOn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
|
|
70
|
-
var year = viewDate.getFullYear();
|
|
71
|
-
var month = viewDate.getMonth();
|
|
72
|
-
var firstWeekday = new Date(year, month, 1).getDay();
|
|
73
|
-
var startOffset = (firstWeekday - weekStartsOn + 7) % 7;
|
|
74
|
-
var cells = [];
|
|
75
|
-
for (var i = 0; i < 42; i++) {
|
|
76
|
-
var date = new Date(year, month, 1 - startOffset + i);
|
|
77
|
-
cells.push({
|
|
78
|
-
date,
|
|
79
|
-
key: ymd(date),
|
|
80
|
-
inMonth: date.getMonth() === month
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
return cells;
|
|
84
|
-
}
|
|
85
|
-
function monthRange(viewDate) {
|
|
86
|
-
var year = viewDate.getFullYear();
|
|
87
|
-
var month = viewDate.getMonth();
|
|
88
|
-
var startOfView = new Date(year, month, 1, 0, 0, 0, 0);
|
|
89
|
-
var now = /* @__PURE__ */new Date();
|
|
90
|
-
var start = startOfView.getTime() > now.getTime() ? startOfView : now;
|
|
91
|
-
var endOfView = new Date(year, month + 1, 0, 23, 59, 59, 999);
|
|
92
|
-
return {
|
|
93
|
-
startTime: start.toISOString(),
|
|
94
|
-
endTime: endOfView.toISOString()
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
function weekdayLabels() {
|
|
98
|
-
var weekStartsOn = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
|
|
99
|
-
var fmt = new Intl.DateTimeFormat(void 0, {
|
|
100
|
-
weekday: "short"
|
|
101
|
-
});
|
|
102
|
-
var out = [];
|
|
103
|
-
for (var i = 0; i < 7; i++) {
|
|
104
|
-
var d = new Date(2023, 0, 1 + (i + weekStartsOn) % 7);
|
|
105
|
-
out.push(fmt.format(d));
|
|
106
|
-
}
|
|
107
|
-
return out;
|
|
108
|
-
}
|
|
109
|
-
function formatMonthLabel(d) {
|
|
110
|
-
return new Intl.DateTimeFormat(void 0, {
|
|
111
|
-
month: "long",
|
|
112
|
-
year: "numeric"
|
|
113
|
-
}).format(d);
|
|
114
|
-
}
|
|
115
|
-
function formatDayLong(d) {
|
|
116
|
-
return new Intl.DateTimeFormat(void 0, {
|
|
117
|
-
weekday: "long",
|
|
118
|
-
month: "long",
|
|
119
|
-
day: "numeric"
|
|
120
|
-
}).format(d);
|
|
121
|
-
}
|
|
122
|
-
function formatSlotTime(iso, timeZone) {
|
|
123
|
-
return new Intl.DateTimeFormat(void 0, {
|
|
124
|
-
hour: "numeric",
|
|
125
|
-
minute: "2-digit",
|
|
126
|
-
timeZone
|
|
127
|
-
}).format(new Date(iso));
|
|
128
|
-
}
|
|
129
|
-
function formatBookingWhen(iso, timeZone) {
|
|
130
|
-
var at = new Date(iso);
|
|
131
|
-
var date = new Intl.DateTimeFormat(void 0, {
|
|
132
|
-
weekday: "long",
|
|
133
|
-
month: "long",
|
|
134
|
-
day: "numeric",
|
|
135
|
-
year: "numeric",
|
|
136
|
-
timeZone
|
|
137
|
-
}).format(at);
|
|
138
|
-
var time = new Intl.DateTimeFormat(void 0, {
|
|
139
|
-
hour: "numeric",
|
|
140
|
-
minute: "2-digit",
|
|
141
|
-
timeZoneName: "short",
|
|
142
|
-
timeZone
|
|
143
|
-
}).format(at);
|
|
144
|
-
return `${date} at ${time}`;
|
|
145
|
-
}
|
|
146
|
-
function dateFromKey(key) {
|
|
147
|
-
var [y, m, d] = key.split("-").map(Number);
|
|
148
|
-
return new Date(y, (m !== null && m !== void 0 ? m : 1) - 1, d !== null && d !== void 0 ? d : 1, 12, 0, 0, 0);
|
|
149
|
-
}
|
|
150
|
-
//# sourceMappingURL=time.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","time_exports","__export","addMonths","dateFromKey","formatBookingWhen","formatDayLong","formatMonthLabel","formatSlotTime","isBeforeToday","monthMatrix","monthRange","sameMonth","startOfMonth","visitorTimeZone","weekdayLabels","ymd","module","exports","Intl","DateTimeFormat","resolvedOptions","timeZone","e","d","y","getFullYear","m","String","getMonth","padStart","day","getDate","Date","n","a","b","key","viewDate","weekStartsOn","arguments","length","year","month","firstWeekday","getDay","startOffset","cells","i","date","push","inMonth","startOfView","now","start","getTime","endOfView","startTime","toISOString","endTime","fmt","weekday","out","format","iso","hour","minute","at"],"sources":["../../src/time.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/useBooker.cjs
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all) __defProp(target, name, {
|
|
7
|
-
get: all[name],
|
|
8
|
-
enumerable: true
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
-
get: () => from[key],
|
|
15
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value: true
|
|
22
|
-
}), mod);
|
|
23
|
-
var useBooker_exports = {};
|
|
24
|
-
__export(useBooker_exports, {
|
|
25
|
-
useBooker: () => useBooker
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(useBooker_exports);
|
|
28
|
-
var import_react = require("react");
|
|
29
|
-
var import_client = require("./client.cjs");
|
|
30
|
-
var import_hooks = require("./hooks.cjs");
|
|
31
|
-
var import_time = require("./time.cjs");
|
|
32
|
-
function useBooker(opts) {
|
|
33
|
-
const api = opts.apiUrl ?? import_client.DEFAULT_API_URL;
|
|
34
|
-
const timeZone = opts.timeZone ?? (0, import_time.visitorTimeZone)();
|
|
35
|
-
const weekStartsOn = opts.weekStartsOn ?? 0;
|
|
36
|
-
const event = (0, import_hooks.useEventType)(api, opts.eventSlug, opts.host);
|
|
37
|
-
const [viewDate, setViewDate] = (0, import_react.useState)(() => (0, import_time.startOfMonth)(/* @__PURE__ */new Date()));
|
|
38
|
-
const {
|
|
39
|
-
startTime,
|
|
40
|
-
endTime
|
|
41
|
-
} = (0, import_react.useMemo)(() => (0, import_time.monthRange)(viewDate), [viewDate]);
|
|
42
|
-
const slots = (0, import_hooks.useAvailableSlots)(api, {
|
|
43
|
-
eventTypeSlug: opts.eventSlug,
|
|
44
|
-
username: opts.host,
|
|
45
|
-
startTime,
|
|
46
|
-
endTime,
|
|
47
|
-
timeZone,
|
|
48
|
-
enabled: !!event.data
|
|
49
|
-
});
|
|
50
|
-
const [selectedDay, setSelectedDay] = (0, import_react.useState)(null);
|
|
51
|
-
const [selectedSlot, setSelectedSlot] = (0, import_react.useState)(null);
|
|
52
|
-
const [phase, setPhase] = (0, import_react.useState)("pick");
|
|
53
|
-
const [booking, setBooking] = (0, import_react.useState)(null);
|
|
54
|
-
const create = (0, import_hooks.useCreateBooking)(api);
|
|
55
|
-
const availableKeys = (0, import_react.useMemo)(() => {
|
|
56
|
-
const map = slots.data ?? {};
|
|
57
|
-
return new Set(Object.keys(map).filter(k => (map[k]?.length ?? 0) > 0));
|
|
58
|
-
}, [slots.data]);
|
|
59
|
-
const daySlots = (0, import_react.useMemo)(() => {
|
|
60
|
-
if (!selectedDay) return [];
|
|
61
|
-
return slots.data?.[selectedDay] ?? [];
|
|
62
|
-
}, [slots.data, selectedDay]);
|
|
63
|
-
(0, import_react.useEffect)(() => {
|
|
64
|
-
if (!opts.autoSelectFirst) return;
|
|
65
|
-
if (selectedDay && availableKeys.has(selectedDay)) return;
|
|
66
|
-
const first = [...availableKeys].sort()[0];
|
|
67
|
-
if (first) {
|
|
68
|
-
setSelectedDay(first);
|
|
69
|
-
setSelectedSlot(null);
|
|
70
|
-
}
|
|
71
|
-
}, [opts.autoSelectFirst, availableKeys, selectedDay]);
|
|
72
|
-
const now = (0, import_time.startOfMonth)(/* @__PURE__ */new Date());
|
|
73
|
-
const atFirstMonth = viewDate.getFullYear() === now.getFullYear() && viewDate.getMonth() === now.getMonth();
|
|
74
|
-
const goPrevMonth = () => {
|
|
75
|
-
if (atFirstMonth) return;
|
|
76
|
-
setViewDate(d => (0, import_time.addMonths)(d, -1));
|
|
77
|
-
setSelectedDay(null);
|
|
78
|
-
setSelectedSlot(null);
|
|
79
|
-
};
|
|
80
|
-
const goNextMonth = () => {
|
|
81
|
-
setViewDate(d => (0, import_time.addMonths)(d, 1));
|
|
82
|
-
setSelectedDay(null);
|
|
83
|
-
setSelectedSlot(null);
|
|
84
|
-
};
|
|
85
|
-
const selectDay = key => {
|
|
86
|
-
setSelectedDay(key);
|
|
87
|
-
setSelectedSlot(null);
|
|
88
|
-
};
|
|
89
|
-
const selectSlot = iso => {
|
|
90
|
-
setSelectedSlot(iso);
|
|
91
|
-
setPhase("form");
|
|
92
|
-
create.reset();
|
|
93
|
-
};
|
|
94
|
-
const back = () => {
|
|
95
|
-
setPhase("pick");
|
|
96
|
-
setSelectedSlot(null);
|
|
97
|
-
create.reset();
|
|
98
|
-
};
|
|
99
|
-
const reset = () => {
|
|
100
|
-
setBooking(null);
|
|
101
|
-
setSelectedSlot(null);
|
|
102
|
-
setSelectedDay(null);
|
|
103
|
-
setPhase("pick");
|
|
104
|
-
create.reset();
|
|
105
|
-
slots.refetch();
|
|
106
|
-
};
|
|
107
|
-
const submit = async responses => {
|
|
108
|
-
if (!selectedSlot) return;
|
|
109
|
-
const result = await create.submit({
|
|
110
|
-
eventTypeSlug: opts.eventSlug,
|
|
111
|
-
username: opts.host,
|
|
112
|
-
start: selectedSlot,
|
|
113
|
-
timeZone,
|
|
114
|
-
responses
|
|
115
|
-
});
|
|
116
|
-
if (result.ok) {
|
|
117
|
-
setBooking(result.booking);
|
|
118
|
-
setPhase("done");
|
|
119
|
-
opts.onBooked?.(result.booking);
|
|
120
|
-
} else if (result.conflict) {
|
|
121
|
-
slots.refetch();
|
|
122
|
-
setSelectedSlot(null);
|
|
123
|
-
setPhase("pick");
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
return {
|
|
127
|
-
api,
|
|
128
|
-
timeZone,
|
|
129
|
-
weekStartsOn,
|
|
130
|
-
event,
|
|
131
|
-
slots,
|
|
132
|
-
viewDate,
|
|
133
|
-
availableKeys,
|
|
134
|
-
selectedDay,
|
|
135
|
-
daySlots,
|
|
136
|
-
selectedSlot,
|
|
137
|
-
phase,
|
|
138
|
-
booking,
|
|
139
|
-
submitting: create.submitting,
|
|
140
|
-
error: create.error,
|
|
141
|
-
conflict: create.conflict,
|
|
142
|
-
goPrevMonth,
|
|
143
|
-
goNextMonth,
|
|
144
|
-
atFirstMonth,
|
|
145
|
-
selectDay,
|
|
146
|
-
selectSlot,
|
|
147
|
-
submit,
|
|
148
|
-
back,
|
|
149
|
-
reset
|
|
150
|
-
};
|
|
151
|
-
}
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all) __defProp(target, name, {
|
|
9
|
-
get: all[name],
|
|
10
|
-
enumerable: true
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
-
get: () => from[key],
|
|
17
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
return to;
|
|
21
|
-
};
|
|
22
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
-
value: true
|
|
24
|
-
}), mod);
|
|
25
|
-
var useBooker_exports = {};
|
|
26
|
-
__export(useBooker_exports, {
|
|
27
|
-
useBooker: () => useBooker
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(useBooker_exports);
|
|
30
|
-
var import_react = require("react");
|
|
31
|
-
var import_client = require("./client.native.js");
|
|
32
|
-
var import_hooks = require("./hooks.native.js");
|
|
33
|
-
var import_time = require("./time.native.js");
|
|
34
|
-
function useBooker(opts) {
|
|
35
|
-
var _opts_apiUrl;
|
|
36
|
-
var api = (_opts_apiUrl = opts.apiUrl) !== null && _opts_apiUrl !== void 0 ? _opts_apiUrl : import_client.DEFAULT_API_URL;
|
|
37
|
-
var _opts_timeZone;
|
|
38
|
-
var timeZone = (_opts_timeZone = opts.timeZone) !== null && _opts_timeZone !== void 0 ? _opts_timeZone : (0, import_time.visitorTimeZone)();
|
|
39
|
-
var _opts_weekStartsOn;
|
|
40
|
-
var weekStartsOn = (_opts_weekStartsOn = opts.weekStartsOn) !== null && _opts_weekStartsOn !== void 0 ? _opts_weekStartsOn : 0;
|
|
41
|
-
var event = (0, import_hooks.useEventType)(api, opts.eventSlug, opts.host);
|
|
42
|
-
var [viewDate, setViewDate] = (0, import_react.useState)(function () {
|
|
43
|
-
return (0, import_time.startOfMonth)(/* @__PURE__ */new Date());
|
|
44
|
-
});
|
|
45
|
-
var {
|
|
46
|
-
startTime,
|
|
47
|
-
endTime
|
|
48
|
-
} = (0, import_react.useMemo)(function () {
|
|
49
|
-
return (0, import_time.monthRange)(viewDate);
|
|
50
|
-
}, [viewDate]);
|
|
51
|
-
var slots = (0, import_hooks.useAvailableSlots)(api, {
|
|
52
|
-
eventTypeSlug: opts.eventSlug,
|
|
53
|
-
username: opts.host,
|
|
54
|
-
startTime,
|
|
55
|
-
endTime,
|
|
56
|
-
timeZone,
|
|
57
|
-
enabled: !!event.data
|
|
58
|
-
});
|
|
59
|
-
var [selectedDay, setSelectedDay] = (0, import_react.useState)(null);
|
|
60
|
-
var [selectedSlot, setSelectedSlot] = (0, import_react.useState)(null);
|
|
61
|
-
var [phase, setPhase] = (0, import_react.useState)("pick");
|
|
62
|
-
var [booking, setBooking] = (0, import_react.useState)(null);
|
|
63
|
-
var create = (0, import_hooks.useCreateBooking)(api);
|
|
64
|
-
var availableKeys = (0, import_react.useMemo)(function () {
|
|
65
|
-
var _slots_data;
|
|
66
|
-
var map = (_slots_data = slots.data) !== null && _slots_data !== void 0 ? _slots_data : {};
|
|
67
|
-
return new Set(Object.keys(map).filter(function (k) {
|
|
68
|
-
var _map_k;
|
|
69
|
-
var _map_k_length;
|
|
70
|
-
return ((_map_k_length = (_map_k = map[k]) === null || _map_k === void 0 ? void 0 : _map_k.length) !== null && _map_k_length !== void 0 ? _map_k_length : 0) > 0;
|
|
71
|
-
}));
|
|
72
|
-
}, [slots.data]);
|
|
73
|
-
var daySlots = (0, import_react.useMemo)(function () {
|
|
74
|
-
var _slots_data;
|
|
75
|
-
if (!selectedDay) return [];
|
|
76
|
-
var _slots_data_selectedDay;
|
|
77
|
-
return (_slots_data_selectedDay = (_slots_data = slots.data) === null || _slots_data === void 0 ? void 0 : _slots_data[selectedDay]) !== null && _slots_data_selectedDay !== void 0 ? _slots_data_selectedDay : [];
|
|
78
|
-
}, [slots.data, selectedDay]);
|
|
79
|
-
(0, import_react.useEffect)(function () {
|
|
80
|
-
if (!opts.autoSelectFirst) return;
|
|
81
|
-
if (selectedDay && availableKeys.has(selectedDay)) return;
|
|
82
|
-
var first = [...availableKeys].sort()[0];
|
|
83
|
-
if (first) {
|
|
84
|
-
setSelectedDay(first);
|
|
85
|
-
setSelectedSlot(null);
|
|
86
|
-
}
|
|
87
|
-
}, [opts.autoSelectFirst, availableKeys, selectedDay]);
|
|
88
|
-
var now = (0, import_time.startOfMonth)(/* @__PURE__ */new Date());
|
|
89
|
-
var atFirstMonth = viewDate.getFullYear() === now.getFullYear() && viewDate.getMonth() === now.getMonth();
|
|
90
|
-
var goPrevMonth = function () {
|
|
91
|
-
if (atFirstMonth) return;
|
|
92
|
-
setViewDate(function (d) {
|
|
93
|
-
return (0, import_time.addMonths)(d, -1);
|
|
94
|
-
});
|
|
95
|
-
setSelectedDay(null);
|
|
96
|
-
setSelectedSlot(null);
|
|
97
|
-
};
|
|
98
|
-
var goNextMonth = function () {
|
|
99
|
-
setViewDate(function (d) {
|
|
100
|
-
return (0, import_time.addMonths)(d, 1);
|
|
101
|
-
});
|
|
102
|
-
setSelectedDay(null);
|
|
103
|
-
setSelectedSlot(null);
|
|
104
|
-
};
|
|
105
|
-
var selectDay = function (key) {
|
|
106
|
-
setSelectedDay(key);
|
|
107
|
-
setSelectedSlot(null);
|
|
108
|
-
};
|
|
109
|
-
var selectSlot = function (iso) {
|
|
110
|
-
setSelectedSlot(iso);
|
|
111
|
-
setPhase("form");
|
|
112
|
-
create.reset();
|
|
113
|
-
};
|
|
114
|
-
var back = function () {
|
|
115
|
-
setPhase("pick");
|
|
116
|
-
setSelectedSlot(null);
|
|
117
|
-
create.reset();
|
|
118
|
-
};
|
|
119
|
-
var reset = function () {
|
|
120
|
-
setBooking(null);
|
|
121
|
-
setSelectedSlot(null);
|
|
122
|
-
setSelectedDay(null);
|
|
123
|
-
setPhase("pick");
|
|
124
|
-
create.reset();
|
|
125
|
-
slots.refetch();
|
|
126
|
-
};
|
|
127
|
-
var submit = async function (responses) {
|
|
128
|
-
if (!selectedSlot) return;
|
|
129
|
-
var result = await create.submit({
|
|
130
|
-
eventTypeSlug: opts.eventSlug,
|
|
131
|
-
username: opts.host,
|
|
132
|
-
start: selectedSlot,
|
|
133
|
-
timeZone,
|
|
134
|
-
responses
|
|
135
|
-
});
|
|
136
|
-
if (result.ok) {
|
|
137
|
-
var _opts_onBooked;
|
|
138
|
-
setBooking(result.booking);
|
|
139
|
-
setPhase("done");
|
|
140
|
-
(_opts_onBooked = opts.onBooked) === null || _opts_onBooked === void 0 ? void 0 : _opts_onBooked.call(opts, result.booking);
|
|
141
|
-
} else if (result.conflict) {
|
|
142
|
-
slots.refetch();
|
|
143
|
-
setSelectedSlot(null);
|
|
144
|
-
setPhase("pick");
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
return {
|
|
148
|
-
api,
|
|
149
|
-
timeZone,
|
|
150
|
-
weekStartsOn,
|
|
151
|
-
event,
|
|
152
|
-
slots,
|
|
153
|
-
viewDate,
|
|
154
|
-
availableKeys,
|
|
155
|
-
selectedDay,
|
|
156
|
-
daySlots,
|
|
157
|
-
selectedSlot,
|
|
158
|
-
phase,
|
|
159
|
-
booking,
|
|
160
|
-
submitting: create.submitting,
|
|
161
|
-
error: create.error,
|
|
162
|
-
conflict: create.conflict,
|
|
163
|
-
goPrevMonth,
|
|
164
|
-
goNextMonth,
|
|
165
|
-
atFirstMonth,
|
|
166
|
-
selectDay,
|
|
167
|
-
selectSlot,
|
|
168
|
-
submit,
|
|
169
|
-
back,
|
|
170
|
-
reset
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
//# sourceMappingURL=useBooker.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useBooker_exports","__export","useBooker","module","exports","import_react","require","import_client","import_hooks","import_time","opts","_opts_apiUrl","api","apiUrl","DEFAULT_API_URL","_opts_timeZone","timeZone","visitorTimeZone","_opts_weekStartsOn","weekStartsOn","event","useEventType","eventSlug","host","viewDate","setViewDate","useState","startOfMonth","Date","startTime","endTime","useMemo","monthRange","slots","useAvailableSlots","eventTypeSlug","username","enabled","data","selectedDay","setSelectedDay","selectedSlot","setSelectedSlot","phase","setPhase","booking","setBooking","create","useCreateBooking","availableKeys","_slots_data","map","Set","Object","keys","filter","k","_map_k","_map_k_length","length","daySlots","_slots_data_selectedDay","useEffect","autoSelectFirst","has","first","sort","now","atFirstMonth","getFullYear","getMonth","goPrevMonth","d","addMonths","goNextMonth","selectDay","key","selectSlot","iso","reset","back","refetch","submit","responses","result","start","ok","_opts_onBooked"],"sources":["../../src/useBooker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|