@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/esm/hooks.native.js
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
-
import { createBooking, fetchBooking, fetchEventType, fetchSlots, CalendarError } from "./client.native.js";
|
|
3
|
-
function _instanceof(left, right) {
|
|
4
|
-
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
5
|
-
return !!right[Symbol.hasInstance](left);
|
|
6
|
-
} else {
|
|
7
|
-
return left instanceof right;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
function useEventType(api, eventSlug, username) {
|
|
11
|
-
var [state, setState] = useState({
|
|
12
|
-
data: null,
|
|
13
|
-
loading: true,
|
|
14
|
-
error: null
|
|
15
|
-
});
|
|
16
|
-
useEffect(function () {
|
|
17
|
-
var ctrl = new AbortController();
|
|
18
|
-
setState({
|
|
19
|
-
data: null,
|
|
20
|
-
loading: true,
|
|
21
|
-
error: null
|
|
22
|
-
});
|
|
23
|
-
fetchEventType(api, eventSlug, username, ctrl.signal).then(function (data) {
|
|
24
|
-
return setState({
|
|
25
|
-
data,
|
|
26
|
-
loading: false,
|
|
27
|
-
error: null
|
|
28
|
-
});
|
|
29
|
-
}).catch(function (err) {
|
|
30
|
-
if (ctrl.signal.aborted) return;
|
|
31
|
-
setState({
|
|
32
|
-
data: null,
|
|
33
|
-
loading: false,
|
|
34
|
-
error: errorText(err)
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
return function () {
|
|
38
|
-
return ctrl.abort();
|
|
39
|
-
};
|
|
40
|
-
}, [api, eventSlug, username]);
|
|
41
|
-
return state;
|
|
42
|
-
}
|
|
43
|
-
function useAvailableSlots(api, query) {
|
|
44
|
-
var {
|
|
45
|
-
eventTypeSlug,
|
|
46
|
-
username,
|
|
47
|
-
startTime,
|
|
48
|
-
endTime,
|
|
49
|
-
timeZone,
|
|
50
|
-
enabled = true
|
|
51
|
-
} = query;
|
|
52
|
-
var [state, setState] = useState({
|
|
53
|
-
data: null,
|
|
54
|
-
loading: enabled,
|
|
55
|
-
error: null
|
|
56
|
-
});
|
|
57
|
-
var [nonce, setNonce] = useState(0);
|
|
58
|
-
var refetch = useCallback(function () {
|
|
59
|
-
return setNonce(function (n) {
|
|
60
|
-
return n + 1;
|
|
61
|
-
});
|
|
62
|
-
}, []);
|
|
63
|
-
useEffect(function () {
|
|
64
|
-
if (!enabled) return;
|
|
65
|
-
var ctrl = new AbortController();
|
|
66
|
-
setState(function (s) {
|
|
67
|
-
return {
|
|
68
|
-
data: s.data,
|
|
69
|
-
loading: true,
|
|
70
|
-
error: null
|
|
71
|
-
};
|
|
72
|
-
});
|
|
73
|
-
fetchSlots(api, {
|
|
74
|
-
eventTypeSlug,
|
|
75
|
-
username,
|
|
76
|
-
startTime,
|
|
77
|
-
endTime,
|
|
78
|
-
timeZone
|
|
79
|
-
}, ctrl.signal).then(function (data) {
|
|
80
|
-
return setState({
|
|
81
|
-
data,
|
|
82
|
-
loading: false,
|
|
83
|
-
error: null
|
|
84
|
-
});
|
|
85
|
-
}).catch(function (err) {
|
|
86
|
-
if (ctrl.signal.aborted) return;
|
|
87
|
-
setState({
|
|
88
|
-
data: null,
|
|
89
|
-
loading: false,
|
|
90
|
-
error: errorText(err)
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
return function () {
|
|
94
|
-
return ctrl.abort();
|
|
95
|
-
};
|
|
96
|
-
}, [api, eventTypeSlug, username, startTime, endTime, timeZone, enabled, nonce]);
|
|
97
|
-
return {
|
|
98
|
-
...state,
|
|
99
|
-
refetch
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
function useCreateBooking(api) {
|
|
103
|
-
var [submitting, setSubmitting] = useState(false);
|
|
104
|
-
var [error, setError] = useState(null);
|
|
105
|
-
var [conflict, setConflict] = useState(false);
|
|
106
|
-
var mounted = useRef(true);
|
|
107
|
-
useEffect(function () {
|
|
108
|
-
mounted.current = true;
|
|
109
|
-
return function () {
|
|
110
|
-
mounted.current = false;
|
|
111
|
-
};
|
|
112
|
-
}, []);
|
|
113
|
-
var reset = useCallback(function () {
|
|
114
|
-
setError(null);
|
|
115
|
-
setConflict(false);
|
|
116
|
-
}, []);
|
|
117
|
-
var submit = useCallback(async function (input) {
|
|
118
|
-
setSubmitting(true);
|
|
119
|
-
setError(null);
|
|
120
|
-
setConflict(false);
|
|
121
|
-
try {
|
|
122
|
-
var booking = await createBooking(api, input);
|
|
123
|
-
return {
|
|
124
|
-
ok: true,
|
|
125
|
-
booking
|
|
126
|
-
};
|
|
127
|
-
} catch (err) {
|
|
128
|
-
var isConflict = _instanceof(err, CalendarError) && err.conflict;
|
|
129
|
-
var message = errorText(err);
|
|
130
|
-
if (mounted.current) {
|
|
131
|
-
setError(message);
|
|
132
|
-
setConflict(isConflict);
|
|
133
|
-
}
|
|
134
|
-
return {
|
|
135
|
-
ok: false,
|
|
136
|
-
conflict: isConflict,
|
|
137
|
-
message
|
|
138
|
-
};
|
|
139
|
-
} finally {
|
|
140
|
-
if (mounted.current) setSubmitting(false);
|
|
141
|
-
}
|
|
142
|
-
}, [api]);
|
|
143
|
-
return {
|
|
144
|
-
submit,
|
|
145
|
-
submitting,
|
|
146
|
-
error,
|
|
147
|
-
conflict,
|
|
148
|
-
reset
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
function useBooking(api, uid) {
|
|
152
|
-
var [state, setState] = useState({
|
|
153
|
-
data: null,
|
|
154
|
-
loading: !!uid,
|
|
155
|
-
error: null
|
|
156
|
-
});
|
|
157
|
-
useEffect(function () {
|
|
158
|
-
if (!uid) return;
|
|
159
|
-
var ctrl = new AbortController();
|
|
160
|
-
setState({
|
|
161
|
-
data: null,
|
|
162
|
-
loading: true,
|
|
163
|
-
error: null
|
|
164
|
-
});
|
|
165
|
-
fetchBooking(api, uid, ctrl.signal).then(function (data) {
|
|
166
|
-
return setState({
|
|
167
|
-
data,
|
|
168
|
-
loading: false,
|
|
169
|
-
error: null
|
|
170
|
-
});
|
|
171
|
-
}).catch(function (err) {
|
|
172
|
-
if (ctrl.signal.aborted) return;
|
|
173
|
-
setState({
|
|
174
|
-
data: null,
|
|
175
|
-
loading: false,
|
|
176
|
-
error: errorText(err)
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
return function () {
|
|
180
|
-
return ctrl.abort();
|
|
181
|
-
};
|
|
182
|
-
}, [api, uid]);
|
|
183
|
-
return state;
|
|
184
|
-
}
|
|
185
|
-
function errorText(err) {
|
|
186
|
-
if (_instanceof(err, Error)) return err.message;
|
|
187
|
-
return "Something went wrong";
|
|
188
|
-
}
|
|
189
|
-
export { useAvailableSlots, useBooking, useCreateBooking, useEventType };
|
|
190
|
-
//# sourceMappingURL=hooks.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useRef","useState","createBooking","fetchBooking","fetchEventType","fetchSlots","CalendarError","_instanceof","left","right","Symbol","hasInstance","useEventType","api","eventSlug","username","state","setState","data","loading","error","ctrl","AbortController","signal","then","catch","err","aborted","errorText","abort","useAvailableSlots","query","eventTypeSlug","startTime","endTime","timeZone","enabled","nonce","setNonce","refetch","n","s","useCreateBooking","submitting","setSubmitting","setError","conflict","setConflict"],"sources":["../../src/hooks.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.mjs
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Booker } from "./Booker.mjs";
|
|
2
|
-
import { CalendarEmbed } from "./CalendarEmbed.mjs";
|
|
3
|
-
import { Confirmation } from "./Confirmation.mjs";
|
|
4
|
-
import { EventHeader } from "./EventHeader.mjs";
|
|
5
|
-
import { MonthCalendar } from "./MonthCalendar.mjs";
|
|
6
|
-
import { TimeSlots } from "./TimeSlots.mjs";
|
|
7
|
-
import { BookingForm } from "./BookingForm.mjs";
|
|
8
|
-
import { useBooker } from "./useBooker.mjs";
|
|
9
|
-
import { useEventType, useAvailableSlots, useCreateBooking, useBooking } from "./hooks.mjs";
|
|
10
|
-
import { DEFAULT_API_URL, CAL_API_VERSION, CalendarError, fetchEventType, fetchSlots, createBooking, fetchBooking, cancelBooking } from "./client.mjs";
|
|
11
|
-
import { visitorTimeZone, ymd, monthMatrix, monthRange, weekdayLabels, formatMonthLabel, formatDayLong, formatSlotTime, formatBookingWhen, dateFromKey, startOfMonth, addMonths, sameMonth, isBeforeToday } from "./time.mjs";
|
|
12
|
-
export { Booker, BookingForm, CAL_API_VERSION, CalendarEmbed, CalendarError, Confirmation, DEFAULT_API_URL, EventHeader, MonthCalendar, TimeSlots, addMonths, cancelBooking, createBooking, dateFromKey, fetchBooking, fetchEventType, fetchSlots, formatBookingWhen, formatDayLong, formatMonthLabel, formatSlotTime, isBeforeToday, monthMatrix, monthRange, sameMonth, startOfMonth, useAvailableSlots, useBooker, useBooking, useCreateBooking, useEventType, visitorTimeZone, weekdayLabels, ymd };
|
|
13
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Booker","CalendarEmbed","Confirmation","EventHeader","MonthCalendar","TimeSlots","BookingForm","useBooker","useEventType","useAvailableSlots","useCreateBooking","useBooking","DEFAULT_API_URL","CAL_API_VERSION","CalendarError","fetchEventType","fetchSlots","createBooking","fetchBooking","cancelBooking","visitorTimeZone","ymd","monthMatrix","monthRange","weekdayLabels","formatMonthLabel","formatDayLong","formatSlotTime","formatBookingWhen","dateFromKey","startOfMonth","addMonths","sameMonth","isBeforeToday"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAGA,SAASA,MAAA,QAAgC;AACzC,SAASC,aAAA,QAA8C;AACvD,SAASC,YAAA,QAA4C;AAGrD,SAASC,WAAA,QAA0C;AACnD,SAASC,aAAA,QAA8C;AACvD,SAASC,SAAA,QAAsC;AAC/C,SAASC,WAAA,QAA0C;AAGnD,SACEC,SAAA,QAIK;AACP,SACEC,YAAA,EACAC,iBAAA,EACAC,gBAAA,EACAC,UAAA,QAMK;AAGP,SACEC,eAAA,EACAC,eAAA,EACAC,aAAA,EACAC,cAAA,EACAC,UAAA,EACAC,aAAA,EACAC,YAAA,EACAC,aAAA,QAWK;AAGP,SACEC,eAAA,EACAC,GAAA,EACAC,WAAA,EACAC,UAAA,EACAC,aAAA,EACAC,gBAAA,EACAC,aAAA,EACAC,cAAA,EACAC,iBAAA,EACAC,WAAA,EACAC,YAAA,EACAC,SAAA,EACAC,SAAA,EACAC,aAAA,QAEK","ignoreList":[]}
|
package/dist/esm/index.native.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Booker } from "./Booker.native.js";
|
|
2
|
-
import { CalendarEmbed } from "./CalendarEmbed.native.js";
|
|
3
|
-
import { Confirmation } from "./Confirmation.native.js";
|
|
4
|
-
import { EventHeader } from "./EventHeader.native.js";
|
|
5
|
-
import { MonthCalendar } from "./MonthCalendar.native.js";
|
|
6
|
-
import { TimeSlots } from "./TimeSlots.native.js";
|
|
7
|
-
import { BookingForm } from "./BookingForm.native.js";
|
|
8
|
-
import { useBooker } from "./useBooker.native.js";
|
|
9
|
-
import { useEventType, useAvailableSlots, useCreateBooking, useBooking } from "./hooks.native.js";
|
|
10
|
-
import { DEFAULT_API_URL, CAL_API_VERSION, CalendarError, fetchEventType, fetchSlots, createBooking, fetchBooking, cancelBooking } from "./client.native.js";
|
|
11
|
-
import { visitorTimeZone, ymd, monthMatrix, monthRange, weekdayLabels, formatMonthLabel, formatDayLong, formatSlotTime, formatBookingWhen, dateFromKey, startOfMonth, addMonths, sameMonth, isBeforeToday } from "./time.native.js";
|
|
12
|
-
export { Booker, BookingForm, CAL_API_VERSION, CalendarEmbed, CalendarError, Confirmation, DEFAULT_API_URL, EventHeader, MonthCalendar, TimeSlots, addMonths, cancelBooking, createBooking, dateFromKey, fetchBooking, fetchEventType, fetchSlots, formatBookingWhen, formatDayLong, formatMonthLabel, formatSlotTime, isBeforeToday, monthMatrix, monthRange, sameMonth, startOfMonth, useAvailableSlots, useBooker, useBooking, useCreateBooking, useEventType, visitorTimeZone, weekdayLabels, ymd };
|
|
13
|
-
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Booker","CalendarEmbed","Confirmation","EventHeader","MonthCalendar","TimeSlots","BookingForm","useBooker","useEventType","useAvailableSlots","useCreateBooking","useBooking","DEFAULT_API_URL","CAL_API_VERSION","CalendarError","fetchEventType","fetchSlots","createBooking","fetchBooking","cancelBooking","visitorTimeZone","ymd","monthMatrix","monthRange","weekdayLabels","formatMonthLabel","formatDayLong","formatSlotTime","formatBookingWhen","dateFromKey","startOfMonth","addMonths","sameMonth","isBeforeToday"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAGA,SAASA,MAAA,QAAgC;AACzC,SAASC,aAAA,QAA8C;AACvD,SAASC,YAAA,QAA4C;AAGrD,SAASC,WAAA,QAA0C;AACnD,SAASC,aAAA,QAA8C;AACvD,SAASC,SAAA,QAAsC;AAC/C,SAASC,WAAA,QAA0C;AAGnD,SAAAC,SAAA;AAAA,SACEC,YAAA,EAAAC,iBAAA,EAAAC,gBAAA,EAAAC,UAAA;AAAA,SAIKC,eAAA,EAAAC,eAAA,EAAAC,aAAA,EAAAC,cAAA,EAAAC,UAAA,EAAAC,aAAA,EAAAC,YAAA,EAAAC,aAAA;AACP,SAAAC,eAAA,EAAAC,GAAA,EAAAC,WAAA,EAAAC,UAAA,EAAAC,aAAA,EAAAC,gBAAA,EAAAC,aAAA,EAAAC,cAAA,EAAAC,iBAAA,EAAAC,WAAA,EAAAC,YAAA,EAAAC,SAAA,EAAAC,SAAA,EAAAC,aAAA;AAAA,SAEEjC,MAAA,EACAM,WAAA,EACAO,eAAA,EAAAZ,aAMK,EAGPa,aAAA,EACEZ,YAAA,EACAU,eAAA,EACAT,WAAA,EACAC,aAAA,EACAC,SAAA,EACA0B,SAAA,EACAZ,aAAA,EACAF,aAAA,EAAAY,WAWK,EAGPX,YAAA,EACEH,cAAA,EACAC,UAAA,EACAY,iBAAA,EACAF,aAAA,EACAD,gBAAA,EACAE,cAAA,EACAM,aAAA,EACAX,WAAA,EACAC,UAAA,EACAS,SAAA,EACAF,YAAA,EACArB,iBAAA,EACAF,SAAA,EACAI,UAAA,EAAAD,gBAEK,E","ignoreList":[]}
|
package/dist/esm/time.mjs
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
function visitorTimeZone() {
|
|
2
|
-
try {
|
|
3
|
-
return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
|
|
4
|
-
} catch {
|
|
5
|
-
return "UTC";
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
function ymd(d) {
|
|
9
|
-
const y = d.getFullYear();
|
|
10
|
-
const m = String(d.getMonth() + 1).padStart(2, "0");
|
|
11
|
-
const day = String(d.getDate()).padStart(2, "0");
|
|
12
|
-
return `${y}-${m}-${day}`;
|
|
13
|
-
}
|
|
14
|
-
function startOfMonth(d) {
|
|
15
|
-
return new Date(d.getFullYear(), d.getMonth(), 1);
|
|
16
|
-
}
|
|
17
|
-
function addMonths(d, n) {
|
|
18
|
-
return new Date(d.getFullYear(), d.getMonth() + n, 1);
|
|
19
|
-
}
|
|
20
|
-
function sameMonth(a, b) {
|
|
21
|
-
return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
|
|
22
|
-
}
|
|
23
|
-
function isBeforeToday(key) {
|
|
24
|
-
return key < ymd(/* @__PURE__ */new Date());
|
|
25
|
-
}
|
|
26
|
-
function monthMatrix(viewDate, weekStartsOn = 0) {
|
|
27
|
-
const year = viewDate.getFullYear();
|
|
28
|
-
const month = viewDate.getMonth();
|
|
29
|
-
const firstWeekday = new Date(year, month, 1).getDay();
|
|
30
|
-
const startOffset = (firstWeekday - weekStartsOn + 7) % 7;
|
|
31
|
-
const cells = [];
|
|
32
|
-
for (let i = 0; i < 42; i++) {
|
|
33
|
-
const date = new Date(year, month, 1 - startOffset + i);
|
|
34
|
-
cells.push({
|
|
35
|
-
date,
|
|
36
|
-
key: ymd(date),
|
|
37
|
-
inMonth: date.getMonth() === month
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return cells;
|
|
41
|
-
}
|
|
42
|
-
function monthRange(viewDate) {
|
|
43
|
-
const year = viewDate.getFullYear();
|
|
44
|
-
const month = viewDate.getMonth();
|
|
45
|
-
const startOfView = new Date(year, month, 1, 0, 0, 0, 0);
|
|
46
|
-
const now = /* @__PURE__ */new Date();
|
|
47
|
-
const start = startOfView.getTime() > now.getTime() ? startOfView : now;
|
|
48
|
-
const endOfView = new Date(year, month + 1, 0, 23, 59, 59, 999);
|
|
49
|
-
return {
|
|
50
|
-
startTime: start.toISOString(),
|
|
51
|
-
endTime: endOfView.toISOString()
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
function weekdayLabels(weekStartsOn = 0) {
|
|
55
|
-
const fmt = new Intl.DateTimeFormat(void 0, {
|
|
56
|
-
weekday: "short"
|
|
57
|
-
});
|
|
58
|
-
const out = [];
|
|
59
|
-
for (let i = 0; i < 7; i++) {
|
|
60
|
-
const d = new Date(2023, 0, 1 + (i + weekStartsOn) % 7);
|
|
61
|
-
out.push(fmt.format(d));
|
|
62
|
-
}
|
|
63
|
-
return out;
|
|
64
|
-
}
|
|
65
|
-
function formatMonthLabel(d) {
|
|
66
|
-
return new Intl.DateTimeFormat(void 0, {
|
|
67
|
-
month: "long",
|
|
68
|
-
year: "numeric"
|
|
69
|
-
}).format(d);
|
|
70
|
-
}
|
|
71
|
-
function formatDayLong(d) {
|
|
72
|
-
return new Intl.DateTimeFormat(void 0, {
|
|
73
|
-
weekday: "long",
|
|
74
|
-
month: "long",
|
|
75
|
-
day: "numeric"
|
|
76
|
-
}).format(d);
|
|
77
|
-
}
|
|
78
|
-
function formatSlotTime(iso, timeZone) {
|
|
79
|
-
return new Intl.DateTimeFormat(void 0, {
|
|
80
|
-
hour: "numeric",
|
|
81
|
-
minute: "2-digit",
|
|
82
|
-
timeZone
|
|
83
|
-
}).format(new Date(iso));
|
|
84
|
-
}
|
|
85
|
-
function formatBookingWhen(iso, timeZone) {
|
|
86
|
-
const at = new Date(iso);
|
|
87
|
-
const date = new Intl.DateTimeFormat(void 0, {
|
|
88
|
-
weekday: "long",
|
|
89
|
-
month: "long",
|
|
90
|
-
day: "numeric",
|
|
91
|
-
year: "numeric",
|
|
92
|
-
timeZone
|
|
93
|
-
}).format(at);
|
|
94
|
-
const time = new Intl.DateTimeFormat(void 0, {
|
|
95
|
-
hour: "numeric",
|
|
96
|
-
minute: "2-digit",
|
|
97
|
-
timeZoneName: "short",
|
|
98
|
-
timeZone
|
|
99
|
-
}).format(at);
|
|
100
|
-
return `${date} at ${time}`;
|
|
101
|
-
}
|
|
102
|
-
function dateFromKey(key) {
|
|
103
|
-
const [y, m, d] = key.split("-").map(Number);
|
|
104
|
-
return new Date(y, (m ?? 1) - 1, d ?? 1, 12, 0, 0, 0);
|
|
105
|
-
}
|
|
106
|
-
export { addMonths, dateFromKey, formatBookingWhen, formatDayLong, formatMonthLabel, formatSlotTime, isBeforeToday, monthMatrix, monthRange, sameMonth, startOfMonth, visitorTimeZone, weekdayLabels, ymd };
|
|
107
|
-
//# sourceMappingURL=time.mjs.map
|
package/dist/esm/time.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["visitorTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","ymd","d","y","getFullYear","m","String","getMonth","padStart","day","getDate","startOfMonth","Date","addMonths","n","sameMonth","a","b","isBeforeToday","key","monthMatrix","viewDate","weekStartsOn","year","month","firstWeekday","getDay","startOffset","cells","i","date","push","inMonth","monthRange","startOfView","now","start","getTime","endOfView","startTime","toISOString","endTime","weekdayLabels","fmt","weekday","out","format","formatMonthLabel","formatDayLong","formatSlotTime","iso","hour","minute","formatBookingWhen","at","time","timeZoneName","dateFromKey","split","map","Number"],"sources":["../../src/time.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/time.native.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
function visitorTimeZone() {
|
|
2
|
-
try {
|
|
3
|
-
return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
|
|
4
|
-
} catch (e) {
|
|
5
|
-
return "UTC";
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
function ymd(d) {
|
|
9
|
-
var y = d.getFullYear();
|
|
10
|
-
var m = String(d.getMonth() + 1).padStart(2, "0");
|
|
11
|
-
var day = String(d.getDate()).padStart(2, "0");
|
|
12
|
-
return `${y}-${m}-${day}`;
|
|
13
|
-
}
|
|
14
|
-
function startOfMonth(d) {
|
|
15
|
-
return new Date(d.getFullYear(), d.getMonth(), 1);
|
|
16
|
-
}
|
|
17
|
-
function addMonths(d, n) {
|
|
18
|
-
return new Date(d.getFullYear(), d.getMonth() + n, 1);
|
|
19
|
-
}
|
|
20
|
-
function sameMonth(a, b) {
|
|
21
|
-
return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
|
|
22
|
-
}
|
|
23
|
-
function isBeforeToday(key) {
|
|
24
|
-
return key < ymd(/* @__PURE__ */new Date());
|
|
25
|
-
}
|
|
26
|
-
function monthMatrix(viewDate) {
|
|
27
|
-
var weekStartsOn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
|
|
28
|
-
var year = viewDate.getFullYear();
|
|
29
|
-
var month = viewDate.getMonth();
|
|
30
|
-
var firstWeekday = new Date(year, month, 1).getDay();
|
|
31
|
-
var startOffset = (firstWeekday - weekStartsOn + 7) % 7;
|
|
32
|
-
var cells = [];
|
|
33
|
-
for (var i = 0; i < 42; i++) {
|
|
34
|
-
var date = new Date(year, month, 1 - startOffset + i);
|
|
35
|
-
cells.push({
|
|
36
|
-
date,
|
|
37
|
-
key: ymd(date),
|
|
38
|
-
inMonth: date.getMonth() === month
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
return cells;
|
|
42
|
-
}
|
|
43
|
-
function monthRange(viewDate) {
|
|
44
|
-
var year = viewDate.getFullYear();
|
|
45
|
-
var month = viewDate.getMonth();
|
|
46
|
-
var startOfView = new Date(year, month, 1, 0, 0, 0, 0);
|
|
47
|
-
var now = /* @__PURE__ */new Date();
|
|
48
|
-
var start = startOfView.getTime() > now.getTime() ? startOfView : now;
|
|
49
|
-
var endOfView = new Date(year, month + 1, 0, 23, 59, 59, 999);
|
|
50
|
-
return {
|
|
51
|
-
startTime: start.toISOString(),
|
|
52
|
-
endTime: endOfView.toISOString()
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
function weekdayLabels() {
|
|
56
|
-
var weekStartsOn = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
|
|
57
|
-
var fmt = new Intl.DateTimeFormat(void 0, {
|
|
58
|
-
weekday: "short"
|
|
59
|
-
});
|
|
60
|
-
var out = [];
|
|
61
|
-
for (var i = 0; i < 7; i++) {
|
|
62
|
-
var d = new Date(2023, 0, 1 + (i + weekStartsOn) % 7);
|
|
63
|
-
out.push(fmt.format(d));
|
|
64
|
-
}
|
|
65
|
-
return out;
|
|
66
|
-
}
|
|
67
|
-
function formatMonthLabel(d) {
|
|
68
|
-
return new Intl.DateTimeFormat(void 0, {
|
|
69
|
-
month: "long",
|
|
70
|
-
year: "numeric"
|
|
71
|
-
}).format(d);
|
|
72
|
-
}
|
|
73
|
-
function formatDayLong(d) {
|
|
74
|
-
return new Intl.DateTimeFormat(void 0, {
|
|
75
|
-
weekday: "long",
|
|
76
|
-
month: "long",
|
|
77
|
-
day: "numeric"
|
|
78
|
-
}).format(d);
|
|
79
|
-
}
|
|
80
|
-
function formatSlotTime(iso, timeZone) {
|
|
81
|
-
return new Intl.DateTimeFormat(void 0, {
|
|
82
|
-
hour: "numeric",
|
|
83
|
-
minute: "2-digit",
|
|
84
|
-
timeZone
|
|
85
|
-
}).format(new Date(iso));
|
|
86
|
-
}
|
|
87
|
-
function formatBookingWhen(iso, timeZone) {
|
|
88
|
-
var at = new Date(iso);
|
|
89
|
-
var date = new Intl.DateTimeFormat(void 0, {
|
|
90
|
-
weekday: "long",
|
|
91
|
-
month: "long",
|
|
92
|
-
day: "numeric",
|
|
93
|
-
year: "numeric",
|
|
94
|
-
timeZone
|
|
95
|
-
}).format(at);
|
|
96
|
-
var time = new Intl.DateTimeFormat(void 0, {
|
|
97
|
-
hour: "numeric",
|
|
98
|
-
minute: "2-digit",
|
|
99
|
-
timeZoneName: "short",
|
|
100
|
-
timeZone
|
|
101
|
-
}).format(at);
|
|
102
|
-
return `${date} at ${time}`;
|
|
103
|
-
}
|
|
104
|
-
function dateFromKey(key) {
|
|
105
|
-
var [y, m, d] = key.split("-").map(Number);
|
|
106
|
-
return new Date(y, (m !== null && m !== void 0 ? m : 1) - 1, d !== null && d !== void 0 ? d : 1, 12, 0, 0, 0);
|
|
107
|
-
}
|
|
108
|
-
export { addMonths, dateFromKey, formatBookingWhen, formatDayLong, formatMonthLabel, formatSlotTime, isBeforeToday, monthMatrix, monthRange, sameMonth, startOfMonth, visitorTimeZone, weekdayLabels, ymd };
|
|
109
|
-
//# sourceMappingURL=time.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["visitorTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","e","ymd","d","y","getFullYear","m","String","getMonth","padStart","day","getDate","startOfMonth","Date","addMonths","n","sameMonth","a","b","isBeforeToday","key","monthMatrix","viewDate","weekStartsOn","arguments","length","year","month","firstWeekday","getDay","startOffset","cells","i","date","push","inMonth","monthRange","startOfView","now","start","getTime","endOfView","startTime","toISOString","endTime","weekdayLabels","fmt","weekday","out","format","formatMonthLabel","formatDayLong","formatSlotTime","iso","hour","minute","formatBookingWhen","at"],"sources":["../../src/time.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/useBooker.mjs
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { useEffect, useMemo, useState } from "react";
|
|
2
|
-
import { DEFAULT_API_URL } from "./client.mjs";
|
|
3
|
-
import { useAvailableSlots, useCreateBooking, useEventType } from "./hooks.mjs";
|
|
4
|
-
import { addMonths, monthRange, startOfMonth, visitorTimeZone } from "./time.mjs";
|
|
5
|
-
function useBooker(opts) {
|
|
6
|
-
const api = opts.apiUrl ?? DEFAULT_API_URL;
|
|
7
|
-
const timeZone = opts.timeZone ?? visitorTimeZone();
|
|
8
|
-
const weekStartsOn = opts.weekStartsOn ?? 0;
|
|
9
|
-
const event = useEventType(api, opts.eventSlug, opts.host);
|
|
10
|
-
const [viewDate, setViewDate] = useState(() => startOfMonth(/* @__PURE__ */new Date()));
|
|
11
|
-
const {
|
|
12
|
-
startTime,
|
|
13
|
-
endTime
|
|
14
|
-
} = useMemo(() => monthRange(viewDate), [viewDate]);
|
|
15
|
-
const slots = useAvailableSlots(api, {
|
|
16
|
-
eventTypeSlug: opts.eventSlug,
|
|
17
|
-
username: opts.host,
|
|
18
|
-
startTime,
|
|
19
|
-
endTime,
|
|
20
|
-
timeZone,
|
|
21
|
-
enabled: !!event.data
|
|
22
|
-
});
|
|
23
|
-
const [selectedDay, setSelectedDay] = useState(null);
|
|
24
|
-
const [selectedSlot, setSelectedSlot] = useState(null);
|
|
25
|
-
const [phase, setPhase] = useState("pick");
|
|
26
|
-
const [booking, setBooking] = useState(null);
|
|
27
|
-
const create = useCreateBooking(api);
|
|
28
|
-
const availableKeys = useMemo(() => {
|
|
29
|
-
const map = slots.data ?? {};
|
|
30
|
-
return new Set(Object.keys(map).filter(k => (map[k]?.length ?? 0) > 0));
|
|
31
|
-
}, [slots.data]);
|
|
32
|
-
const daySlots = useMemo(() => {
|
|
33
|
-
if (!selectedDay) return [];
|
|
34
|
-
return slots.data?.[selectedDay] ?? [];
|
|
35
|
-
}, [slots.data, selectedDay]);
|
|
36
|
-
useEffect(() => {
|
|
37
|
-
if (!opts.autoSelectFirst) return;
|
|
38
|
-
if (selectedDay && availableKeys.has(selectedDay)) return;
|
|
39
|
-
const first = [...availableKeys].sort()[0];
|
|
40
|
-
if (first) {
|
|
41
|
-
setSelectedDay(first);
|
|
42
|
-
setSelectedSlot(null);
|
|
43
|
-
}
|
|
44
|
-
}, [opts.autoSelectFirst, availableKeys, selectedDay]);
|
|
45
|
-
const now = startOfMonth(/* @__PURE__ */new Date());
|
|
46
|
-
const atFirstMonth = viewDate.getFullYear() === now.getFullYear() && viewDate.getMonth() === now.getMonth();
|
|
47
|
-
const goPrevMonth = () => {
|
|
48
|
-
if (atFirstMonth) return;
|
|
49
|
-
setViewDate(d => addMonths(d, -1));
|
|
50
|
-
setSelectedDay(null);
|
|
51
|
-
setSelectedSlot(null);
|
|
52
|
-
};
|
|
53
|
-
const goNextMonth = () => {
|
|
54
|
-
setViewDate(d => addMonths(d, 1));
|
|
55
|
-
setSelectedDay(null);
|
|
56
|
-
setSelectedSlot(null);
|
|
57
|
-
};
|
|
58
|
-
const selectDay = key => {
|
|
59
|
-
setSelectedDay(key);
|
|
60
|
-
setSelectedSlot(null);
|
|
61
|
-
};
|
|
62
|
-
const selectSlot = iso => {
|
|
63
|
-
setSelectedSlot(iso);
|
|
64
|
-
setPhase("form");
|
|
65
|
-
create.reset();
|
|
66
|
-
};
|
|
67
|
-
const back = () => {
|
|
68
|
-
setPhase("pick");
|
|
69
|
-
setSelectedSlot(null);
|
|
70
|
-
create.reset();
|
|
71
|
-
};
|
|
72
|
-
const reset = () => {
|
|
73
|
-
setBooking(null);
|
|
74
|
-
setSelectedSlot(null);
|
|
75
|
-
setSelectedDay(null);
|
|
76
|
-
setPhase("pick");
|
|
77
|
-
create.reset();
|
|
78
|
-
slots.refetch();
|
|
79
|
-
};
|
|
80
|
-
const submit = async responses => {
|
|
81
|
-
if (!selectedSlot) return;
|
|
82
|
-
const result = await create.submit({
|
|
83
|
-
eventTypeSlug: opts.eventSlug,
|
|
84
|
-
username: opts.host,
|
|
85
|
-
start: selectedSlot,
|
|
86
|
-
timeZone,
|
|
87
|
-
responses
|
|
88
|
-
});
|
|
89
|
-
if (result.ok) {
|
|
90
|
-
setBooking(result.booking);
|
|
91
|
-
setPhase("done");
|
|
92
|
-
opts.onBooked?.(result.booking);
|
|
93
|
-
} else if (result.conflict) {
|
|
94
|
-
slots.refetch();
|
|
95
|
-
setSelectedSlot(null);
|
|
96
|
-
setPhase("pick");
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
return {
|
|
100
|
-
api,
|
|
101
|
-
timeZone,
|
|
102
|
-
weekStartsOn,
|
|
103
|
-
event,
|
|
104
|
-
slots,
|
|
105
|
-
viewDate,
|
|
106
|
-
availableKeys,
|
|
107
|
-
selectedDay,
|
|
108
|
-
daySlots,
|
|
109
|
-
selectedSlot,
|
|
110
|
-
phase,
|
|
111
|
-
booking,
|
|
112
|
-
submitting: create.submitting,
|
|
113
|
-
error: create.error,
|
|
114
|
-
conflict: create.conflict,
|
|
115
|
-
goPrevMonth,
|
|
116
|
-
goNextMonth,
|
|
117
|
-
atFirstMonth,
|
|
118
|
-
selectDay,
|
|
119
|
-
selectSlot,
|
|
120
|
-
submit,
|
|
121
|
-
back,
|
|
122
|
-
reset
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
export { useBooker };
|
|
126
|
-
//# sourceMappingURL=useBooker.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useMemo","useState","DEFAULT_API_URL","useAvailableSlots","useCreateBooking","useEventType","addMonths","monthRange","startOfMonth","visitorTimeZone","useBooker","opts","api","apiUrl","timeZone","weekStartsOn","event","eventSlug","host","viewDate","setViewDate","Date","startTime","endTime","slots","eventTypeSlug","username","enabled","data","selectedDay","setSelectedDay","selectedSlot","setSelectedSlot","phase","setPhase","booking","setBooking","create","availableKeys","map","Set","Object","keys","filter","k","length","daySlots","autoSelectFirst","has","first","sort","now","atFirstMonth","getFullYear","getMonth","goPrevMonth","d","goNextMonth","selectDay","key","selectSlot","iso","reset","back","refetch","submit","responses","result","start","ok","onBooked","conflict","submitting","error"],"sources":["../../src/useBooker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|