@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/client.mjs
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
const DEFAULT_API_URL = "https://api.hanzo.ai/v1/calendar";
|
|
2
|
-
const CAL_API_VERSION = "2024-08-13";
|
|
3
|
-
class CalendarError extends Error {
|
|
4
|
-
status;
|
|
5
|
-
conflict;
|
|
6
|
-
constructor(message, status) {
|
|
7
|
-
super(message);
|
|
8
|
-
this.name = "CalendarError";
|
|
9
|
-
this.status = status;
|
|
10
|
-
this.conflict = status === 409;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
function messageOf(body, status) {
|
|
14
|
-
const b = body;
|
|
15
|
-
return b?.error?.message || b?.message || `Request failed (${status})`;
|
|
16
|
-
}
|
|
17
|
-
async function readJson(res) {
|
|
18
|
-
return res.json().catch(() => null);
|
|
19
|
-
}
|
|
20
|
-
async function getJson(url, signal) {
|
|
21
|
-
const res = await fetch(url, {
|
|
22
|
-
headers: {
|
|
23
|
-
Accept: "application/json"
|
|
24
|
-
},
|
|
25
|
-
signal
|
|
26
|
-
});
|
|
27
|
-
const body = await readJson(res);
|
|
28
|
-
if (!res.ok) throw new CalendarError(messageOf(body, res.status), res.status);
|
|
29
|
-
return body.data;
|
|
30
|
-
}
|
|
31
|
-
function normalizeEventType(raw) {
|
|
32
|
-
const length = raw.length ?? raw.lengthInMinutes ?? raw.durationMinutes ?? 30;
|
|
33
|
-
return {
|
|
34
|
-
id: Number(raw.id ?? 0),
|
|
35
|
-
slug: String(raw.slug ?? ""),
|
|
36
|
-
title: String(raw.title ?? ""),
|
|
37
|
-
description: String(raw.description ?? ""),
|
|
38
|
-
length,
|
|
39
|
-
locations: raw.locations ?? [],
|
|
40
|
-
price: Number(raw.price ?? 0),
|
|
41
|
-
currency: String(raw.currency ?? "usd"),
|
|
42
|
-
profile: raw.profile
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
async function fetchEventType(api, eventSlug, username, signal) {
|
|
46
|
-
const url = `${api}/atoms/event-types/${encodeURIComponent(eventSlug)}/public?username=${encodeURIComponent(username)}`;
|
|
47
|
-
const raw = await getJson(url, signal);
|
|
48
|
-
return normalizeEventType(raw);
|
|
49
|
-
}
|
|
50
|
-
async function fetchSlots(api, input, signal) {
|
|
51
|
-
const q = new URLSearchParams({
|
|
52
|
-
eventTypeSlug: input.eventTypeSlug,
|
|
53
|
-
usernameList: input.username,
|
|
54
|
-
startTime: input.startTime,
|
|
55
|
-
endTime: input.endTime,
|
|
56
|
-
timeZone: input.timeZone
|
|
57
|
-
});
|
|
58
|
-
const data = await getJson(`${api}/slots/available?${q.toString()}`, signal);
|
|
59
|
-
const slots = data.slots ?? data;
|
|
60
|
-
return slots ?? {};
|
|
61
|
-
}
|
|
62
|
-
async function createBooking(api, input, signal) {
|
|
63
|
-
const res = await fetch(`${api}/bookings`, {
|
|
64
|
-
method: "POST",
|
|
65
|
-
headers: {
|
|
66
|
-
"Content-Type": "application/json",
|
|
67
|
-
Accept: "application/json",
|
|
68
|
-
"cal-api-version": CAL_API_VERSION
|
|
69
|
-
},
|
|
70
|
-
body: JSON.stringify({
|
|
71
|
-
eventTypeSlug: input.eventTypeSlug,
|
|
72
|
-
user: input.username,
|
|
73
|
-
start: input.start,
|
|
74
|
-
timeZone: input.timeZone,
|
|
75
|
-
responses: input.responses
|
|
76
|
-
}),
|
|
77
|
-
signal
|
|
78
|
-
});
|
|
79
|
-
const body = await readJson(res);
|
|
80
|
-
if (!res.ok) throw new CalendarError(messageOf(body, res.status), res.status);
|
|
81
|
-
return body.data;
|
|
82
|
-
}
|
|
83
|
-
async function fetchBooking(api, uid, signal) {
|
|
84
|
-
return getJson(`${api}/bookings/${encodeURIComponent(uid)}`, signal);
|
|
85
|
-
}
|
|
86
|
-
async function cancelBooking(api, uid, reason, signal) {
|
|
87
|
-
const res = await fetch(`${api}/bookings/${encodeURIComponent(uid)}/cancel`, {
|
|
88
|
-
method: "POST",
|
|
89
|
-
headers: {
|
|
90
|
-
"Content-Type": "application/json",
|
|
91
|
-
Accept: "application/json",
|
|
92
|
-
"cal-api-version": CAL_API_VERSION
|
|
93
|
-
},
|
|
94
|
-
body: JSON.stringify({
|
|
95
|
-
reason: reason ?? ""
|
|
96
|
-
}),
|
|
97
|
-
signal
|
|
98
|
-
});
|
|
99
|
-
const body = await readJson(res);
|
|
100
|
-
if (!res.ok) throw new CalendarError(messageOf(body, res.status), res.status);
|
|
101
|
-
return body.data;
|
|
102
|
-
}
|
|
103
|
-
export { CAL_API_VERSION, CalendarError, DEFAULT_API_URL, cancelBooking, createBooking, fetchBooking, fetchEventType, fetchSlots };
|
|
104
|
-
//# sourceMappingURL=client.mjs.map
|
package/dist/esm/client.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_API_URL","CAL_API_VERSION","CalendarError","Error","status","conflict","constructor","message","name","messageOf","body","b","error","readJson","res","json","catch","getJson","url","signal","fetch","headers","Accept","ok","data","normalizeEventType","raw","length","lengthInMinutes","durationMinutes","id","Number","slug","String","title","description","locations","price","currency","profile","fetchEventType","api","eventSlug","username","encodeURIComponent","fetchSlots","input","q","URLSearchParams","eventTypeSlug","usernameList","startTime","endTime","timeZone","toString","slots","createBooking","method","JSON","stringify","user","start","responses","fetchBooking","uid","cancelBooking","reason"],"sources":["../../src/client.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
function _assert_this_initialized(self) {
|
|
2
|
-
if (self === void 0) {
|
|
3
|
-
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
4
|
-
}
|
|
5
|
-
return self;
|
|
6
|
-
}
|
|
7
|
-
function _call_super(_this, derived, args) {
|
|
8
|
-
derived = _get_prototype_of(derived);
|
|
9
|
-
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
10
|
-
}
|
|
11
|
-
function _class_call_check(instance, Constructor) {
|
|
12
|
-
if (!(instance instanceof Constructor)) {
|
|
13
|
-
throw new TypeError("Cannot call a class as a function");
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
function _construct(Parent, args, Class) {
|
|
17
|
-
if (_is_native_reflect_construct()) {
|
|
18
|
-
_construct = Reflect.construct;
|
|
19
|
-
} else {
|
|
20
|
-
_construct = function construct(Parent2, args2, Class2) {
|
|
21
|
-
var a = [null];
|
|
22
|
-
a.push.apply(a, args2);
|
|
23
|
-
var Constructor = Function.bind.apply(Parent2, a);
|
|
24
|
-
var instance = new Constructor();
|
|
25
|
-
if (Class2) _set_prototype_of(instance, Class2.prototype);
|
|
26
|
-
return instance;
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
return _construct.apply(null, arguments);
|
|
30
|
-
}
|
|
31
|
-
function _define_property(obj, key, value) {
|
|
32
|
-
if (key in obj) {
|
|
33
|
-
Object.defineProperty(obj, key, {
|
|
34
|
-
value,
|
|
35
|
-
enumerable: true,
|
|
36
|
-
configurable: true,
|
|
37
|
-
writable: true
|
|
38
|
-
});
|
|
39
|
-
} else {
|
|
40
|
-
obj[key] = value;
|
|
41
|
-
}
|
|
42
|
-
return obj;
|
|
43
|
-
}
|
|
44
|
-
function _get_prototype_of(o) {
|
|
45
|
-
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o2) {
|
|
46
|
-
return o2.__proto__ || Object.getPrototypeOf(o2);
|
|
47
|
-
};
|
|
48
|
-
return _get_prototype_of(o);
|
|
49
|
-
}
|
|
50
|
-
function _inherits(subClass, superClass) {
|
|
51
|
-
if (typeof superClass !== "function" && superClass !== null) {
|
|
52
|
-
throw new TypeError("Super expression must either be null or a function");
|
|
53
|
-
}
|
|
54
|
-
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
55
|
-
constructor: {
|
|
56
|
-
value: subClass,
|
|
57
|
-
writable: true,
|
|
58
|
-
configurable: true
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
if (superClass) _set_prototype_of(subClass, superClass);
|
|
62
|
-
}
|
|
63
|
-
function _is_native_function(fn) {
|
|
64
|
-
return Function.toString.call(fn).indexOf("[native code]") !== -1;
|
|
65
|
-
}
|
|
66
|
-
function _possible_constructor_return(self, call) {
|
|
67
|
-
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
68
|
-
return call;
|
|
69
|
-
}
|
|
70
|
-
return _assert_this_initialized(self);
|
|
71
|
-
}
|
|
72
|
-
function _set_prototype_of(o, p) {
|
|
73
|
-
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o2, p2) {
|
|
74
|
-
o2.__proto__ = p2;
|
|
75
|
-
return o2;
|
|
76
|
-
};
|
|
77
|
-
return _set_prototype_of(o, p);
|
|
78
|
-
}
|
|
79
|
-
function _type_of(obj) {
|
|
80
|
-
"@swc/helpers - typeof";
|
|
81
|
-
|
|
82
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
83
|
-
}
|
|
84
|
-
function _wrap_native_super(Class) {
|
|
85
|
-
var _cache = typeof Map === "function" ? /* @__PURE__ */new Map() : void 0;
|
|
86
|
-
_wrap_native_super = function wrapNativeSuper(Class2) {
|
|
87
|
-
if (Class2 === null || !_is_native_function(Class2)) return Class2;
|
|
88
|
-
if (typeof Class2 !== "function") {
|
|
89
|
-
throw new TypeError("Super expression must either be null or a function");
|
|
90
|
-
}
|
|
91
|
-
if (typeof _cache !== "undefined") {
|
|
92
|
-
if (_cache.has(Class2)) return _cache.get(Class2);
|
|
93
|
-
_cache.set(Class2, Wrapper);
|
|
94
|
-
}
|
|
95
|
-
function Wrapper() {
|
|
96
|
-
return _construct(Class2, arguments, _get_prototype_of(this).constructor);
|
|
97
|
-
}
|
|
98
|
-
Wrapper.prototype = Object.create(Class2.prototype, {
|
|
99
|
-
constructor: {
|
|
100
|
-
value: Wrapper,
|
|
101
|
-
enumerable: false,
|
|
102
|
-
writable: true,
|
|
103
|
-
configurable: true
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
return _set_prototype_of(Wrapper, Class2);
|
|
107
|
-
};
|
|
108
|
-
return _wrap_native_super(Class);
|
|
109
|
-
}
|
|
110
|
-
function _is_native_reflect_construct() {
|
|
111
|
-
try {
|
|
112
|
-
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
|
113
|
-
} catch (_) {}
|
|
114
|
-
return (_is_native_reflect_construct = function () {
|
|
115
|
-
return !!result;
|
|
116
|
-
})();
|
|
117
|
-
}
|
|
118
|
-
var DEFAULT_API_URL = "https://api.hanzo.ai/v1/calendar";
|
|
119
|
-
var CAL_API_VERSION = "2024-08-13";
|
|
120
|
-
var CalendarError = /* @__PURE__ */function (Error1) {
|
|
121
|
-
"use strict";
|
|
122
|
-
|
|
123
|
-
_inherits(CalendarError2, Error1);
|
|
124
|
-
function CalendarError2(message, status) {
|
|
125
|
-
_class_call_check(this, CalendarError2);
|
|
126
|
-
var _this;
|
|
127
|
-
_this = _call_super(this, CalendarError2, [message]), _define_property(_this, "status", void 0), _define_property(_this, "conflict", void 0);
|
|
128
|
-
_this.name = "CalendarError";
|
|
129
|
-
_this.status = status;
|
|
130
|
-
_this.conflict = status === 409;
|
|
131
|
-
return _this;
|
|
132
|
-
}
|
|
133
|
-
return CalendarError2;
|
|
134
|
-
}(_wrap_native_super(Error));
|
|
135
|
-
function messageOf(body, status) {
|
|
136
|
-
var _b_error;
|
|
137
|
-
var b = body;
|
|
138
|
-
return (b === null || b === void 0 ? void 0 : (_b_error = b.error) === null || _b_error === void 0 ? void 0 : _b_error.message) || (b === null || b === void 0 ? void 0 : b.message) || `Request failed (${status})`;
|
|
139
|
-
}
|
|
140
|
-
async function readJson(res) {
|
|
141
|
-
return res.json().catch(function () {
|
|
142
|
-
return null;
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
async function getJson(url, signal) {
|
|
146
|
-
var res = await fetch(url, {
|
|
147
|
-
headers: {
|
|
148
|
-
Accept: "application/json"
|
|
149
|
-
},
|
|
150
|
-
signal
|
|
151
|
-
});
|
|
152
|
-
var body = await readJson(res);
|
|
153
|
-
if (!res.ok) throw new CalendarError(messageOf(body, res.status), res.status);
|
|
154
|
-
return body.data;
|
|
155
|
-
}
|
|
156
|
-
function normalizeEventType(raw) {
|
|
157
|
-
var _raw_length, _ref, _ref1;
|
|
158
|
-
var length = (_ref1 = (_ref = (_raw_length = raw.length) !== null && _raw_length !== void 0 ? _raw_length : raw.lengthInMinutes) !== null && _ref !== void 0 ? _ref : raw.durationMinutes) !== null && _ref1 !== void 0 ? _ref1 : 30;
|
|
159
|
-
var _raw_id, _raw_slug, _raw_title, _raw_description, _raw_locations, _raw_price, _raw_currency;
|
|
160
|
-
return {
|
|
161
|
-
id: Number((_raw_id = raw.id) !== null && _raw_id !== void 0 ? _raw_id : 0),
|
|
162
|
-
slug: String((_raw_slug = raw.slug) !== null && _raw_slug !== void 0 ? _raw_slug : ""),
|
|
163
|
-
title: String((_raw_title = raw.title) !== null && _raw_title !== void 0 ? _raw_title : ""),
|
|
164
|
-
description: String((_raw_description = raw.description) !== null && _raw_description !== void 0 ? _raw_description : ""),
|
|
165
|
-
length,
|
|
166
|
-
locations: (_raw_locations = raw.locations) !== null && _raw_locations !== void 0 ? _raw_locations : [],
|
|
167
|
-
price: Number((_raw_price = raw.price) !== null && _raw_price !== void 0 ? _raw_price : 0),
|
|
168
|
-
currency: String((_raw_currency = raw.currency) !== null && _raw_currency !== void 0 ? _raw_currency : "usd"),
|
|
169
|
-
profile: raw.profile
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
async function fetchEventType(api, eventSlug, username, signal) {
|
|
173
|
-
var url = `${api}/atoms/event-types/${encodeURIComponent(eventSlug)}/public?username=${encodeURIComponent(username)}`;
|
|
174
|
-
var raw = await getJson(url, signal);
|
|
175
|
-
return normalizeEventType(raw);
|
|
176
|
-
}
|
|
177
|
-
async function fetchSlots(api, input, signal) {
|
|
178
|
-
var q = new URLSearchParams({
|
|
179
|
-
eventTypeSlug: input.eventTypeSlug,
|
|
180
|
-
usernameList: input.username,
|
|
181
|
-
startTime: input.startTime,
|
|
182
|
-
endTime: input.endTime,
|
|
183
|
-
timeZone: input.timeZone
|
|
184
|
-
});
|
|
185
|
-
var data = await getJson(`${api}/slots/available?${q.toString()}`, signal);
|
|
186
|
-
var _data_slots;
|
|
187
|
-
var slots = (_data_slots = data.slots) !== null && _data_slots !== void 0 ? _data_slots : data;
|
|
188
|
-
return slots !== null && slots !== void 0 ? slots : {};
|
|
189
|
-
}
|
|
190
|
-
async function createBooking(api, input, signal) {
|
|
191
|
-
var res = await fetch(`${api}/bookings`, {
|
|
192
|
-
method: "POST",
|
|
193
|
-
headers: {
|
|
194
|
-
"Content-Type": "application/json",
|
|
195
|
-
Accept: "application/json",
|
|
196
|
-
"cal-api-version": CAL_API_VERSION
|
|
197
|
-
},
|
|
198
|
-
body: JSON.stringify({
|
|
199
|
-
eventTypeSlug: input.eventTypeSlug,
|
|
200
|
-
user: input.username,
|
|
201
|
-
start: input.start,
|
|
202
|
-
timeZone: input.timeZone,
|
|
203
|
-
responses: input.responses
|
|
204
|
-
}),
|
|
205
|
-
signal
|
|
206
|
-
});
|
|
207
|
-
var body = await readJson(res);
|
|
208
|
-
if (!res.ok) throw new CalendarError(messageOf(body, res.status), res.status);
|
|
209
|
-
return body.data;
|
|
210
|
-
}
|
|
211
|
-
async function fetchBooking(api, uid, signal) {
|
|
212
|
-
return getJson(`${api}/bookings/${encodeURIComponent(uid)}`, signal);
|
|
213
|
-
}
|
|
214
|
-
async function cancelBooking(api, uid, reason, signal) {
|
|
215
|
-
var res = await fetch(`${api}/bookings/${encodeURIComponent(uid)}/cancel`, {
|
|
216
|
-
method: "POST",
|
|
217
|
-
headers: {
|
|
218
|
-
"Content-Type": "application/json",
|
|
219
|
-
Accept: "application/json",
|
|
220
|
-
"cal-api-version": CAL_API_VERSION
|
|
221
|
-
},
|
|
222
|
-
body: JSON.stringify({
|
|
223
|
-
reason: reason !== null && reason !== void 0 ? reason : ""
|
|
224
|
-
}),
|
|
225
|
-
signal
|
|
226
|
-
});
|
|
227
|
-
var body = await readJson(res);
|
|
228
|
-
if (!res.ok) throw new CalendarError(messageOf(body, res.status), res.status);
|
|
229
|
-
return body.data;
|
|
230
|
-
}
|
|
231
|
-
export { CAL_API_VERSION, CalendarError, DEFAULT_API_URL, cancelBooking, createBooking, fetchBooking, fetchEventType, fetchSlots };
|
|
232
|
-
//# sourceMappingURL=client.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","o","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","Symbol","_wrap_native_super","_cache","Map","wrapNativeSuper","has","get","set","Wrapper"],"sources":["../../src/client.ts"],"sourcesContent":[null],"mappings":"AAGO,SAAMA,wBAAkBA,CAAAC,IAAA;EACxB,IAAMA,IAAA;IA4EN,MAAM,IAAAC,cAAsB,4DAAM;EACvC;EACA,OAAAD,IAAA;AAAA;AAEE,SAAAE,WAAaA,CAAAC,KAAA,EAAAC,OAAA,EAAAC,IAAA;EACbD,OAAK,GAAAE,iBAAO,CAAAF,OAAA;EACZ,OAAKG,4BAAS,CAAAJ,KAAA,EAAAK,4BAAA,KAAAC,OAAA,CAAAC,SAAA,CAAAN,OAAA,EAAAC,IAAA,QAAAC,iBAAA,CAAAH,KAAA,EAAAQ,WAAA,IAAAP,OAAA,CAAAQ,KAAA,CAAAT,KAAA,EAAAE,IAAA;AACd;AAA2B,SAC7BQ,kBAAAC,QAAA,EAAAC,WAAA;EACF,MAAAD,QAAA,YAAAC,WAAA;IAQA,MAAS,IAAAC,SAAU,oCAAuC;EACxD;AACA;AACF,SAAAC,WAAAC,MAAA,EAAAb,IAAA,EAAAc,KAAA;EAEA,IAAAX,4BAAyD;IACvDS,UAAW,GAAAR,OAAO,CAAAC,SAAY;EAChC;IAEAO,UAAA,GAAe,SAAWP,SAAaA,CAAkCU,OAAA,EAAAC,KAAA,EAAAC,MAAA;MACvE,IAAMC,CAAA,GAAM,CACN,KACD;MACLA,CAAA,CAAAC,IAAQ,CAAAZ,KAAqB,CAAAW,CAAA,EAAAF,KAAA;MAC/B,IAAAN,WAAA,GAAAU,QAAA,CAAAC,IAAA,CAAAd,KAAA,CAAAQ,OAAA,EAAAG,CAAA;MAEA,IAAST,QAAA,OAAAC,WAA4D;MACnE,IAAMO,MAAA,EACHK,iBACI,CAAAb,QAAA,EAAAQ,MAAA,CAAAM,SACA;MAEP,OAAOd,QAAA;IACL;EAAsB;EACK,OAC3BG,UAAc,CAAAL,KAAI,OAASiB,SAAE;AAAA;AACY,SACzCC,iBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA;EAAA,IACAD,GAAA,IAAAD,GAAY;IACZG,MAAA,CAAOC,cAAW,CAAAJ,GAAA,EAASC,GAAC;MAC5BC,KAAA;MACAG,UAAS,EAAI;MACfC,YAAA;MACFC,QAAA;IAEA;EAME,OAAM;IACNP,GAAA,CAAMC,GAAA,IAAMC,KAAM;EAClB;EACF,OAAAF,GAAA;AAEA;AAKE,SAAMzB,iBAAQA,CAAAiC,CAAA;EAAgBjC,iBACb,GAAA4B,MAAM,CAAAM,cAAA,GAAAN,MAAA,CAAAO,cAAA,YAAAA,eAAAC,EAAA;IACrB,OAAAA,EAAA,CAAAC,SAAc,IAAMT,MAAA,CAAAO,cAAA,CAAAC,EAAA;EAAA;EACH,OACjBpC,iBAAe,CAAAiC,CAAA;AAAA;AACC,SACjBK,UAAAC,QAAA,EAAAC,UAAA;EACD,WAAMA,UAAa,mBAAAA,UAAA;IACjB,MAAM,IAAA9B,SAAA,qDAAgC;EAAA;EAExC6B,QAAA,CAAAjB,SAAA,GAAAM,MAAA,CAAAa,MAAA,CAAAD,UAAA,IAAAA,UAAA,CAAAlB,SAAA;IAEAjB,WAAM,EAAS;MACfsB,KAAO,EAAAY,QAAU;MACnBP,QAAA;MAEAD,YAAsB;IAKpB;EAA2C,EACzC;EAAQ,IACRS,UAAS,EAAAnB,iBAAA,CAAAkB,QAAA,EAAAC,UAAA;AAAA;AACS,SAChBE,mBAAQA,CAAAC,EAAA;EAAA,OACRxB,QAAA,CAAAyB,QAAmB,CAAAC,IAAA,CAAAF,EAAA,EAAAG,OAAA;AAAA;AACrB,SACA7C,4BAAqBA,CAAAP,IAAA,EAAAmD,IAAA;EAAA,IACnBA,IAAA,KAAAE,QAAe,CAAAF,IAAM,yBAAAA,IAAA;IAAA,OACrBA,IAAM;EAAM;EACC,OACbpD,wBAAgB,CAAAC,IAAA;AAAA;AACC,SAClB2B,kBAAAY,CAAA,EAAAe,CAAA;EAAA3B,iBACD,GAAAO,MAAA,CAAAM,cAAA,aAAAA,eAAAE,EAAA,EAAAa,EAAA;IACDb,EAAA,CAAAC,SAAA,GAAAY,EAAA;IACD,OAAMb,EAAA;EACN;EACA,OAAQf,iBAA2B,CAAAY,CAAA,EAAAe,CAAA;AACrC;AAEA,SAAAD,QAAsBA,CAAAtB,GAAA;EAKpB,uBAA8B;;EAChC,OAAAA,GAAA,WAAAyB,MAAA,oBAAAzB,GAAA,CAAApB,WAAA,KAAA6C,MAAA,qBAAAzB,GAAA;AAEA;AAME,SAAM0B,kBAAkBA,CAAAtC,KAAM;EAA+C,IAC3EuC,MAAQ,UAAAC,GAAA,qCAAAA,GAAA;EAAAF,kBACC,YAAAG,gBAAAtC,MAAA;IAAA,IACPA,MAAA,SAAgB,KAAA0B,mBAAA,CAAA1B,MAAA,UAAAA,MAAA;IAAA,IAChB,OAAQA,MAAA;MACR,UAAAN,SAAmB;IACrB;IACA,WAAW0C,MAAA,KAAU,WAAU;MAC/B,IAAAA,MAAA,CAAAG,GAAA,CAAAvC,MAAA,UAAAoC,MAAA,CAAAI,GAAA,CAAAxC,MAAA;MACDoC,MAAA,CAAAK,GAAA,CAAAzC,MAAA,EAAA0C,OAAA;IACD;IACA,SAASA,OAAIA,CAAA,EAAM;MACnB,OAAQ/C,UAA2B,CAAAK,MAAA,EAAAO,SAAA,EAAAvB,iBAAA,OAAAK,WAAA;IACrC","ignoreList":[]}
|
package/dist/esm/hooks.mjs
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
-
import { createBooking, fetchBooking, fetchEventType, fetchSlots, CalendarError } from "./client.mjs";
|
|
3
|
-
function useEventType(api, eventSlug, username) {
|
|
4
|
-
const [state, setState] = useState({
|
|
5
|
-
data: null,
|
|
6
|
-
loading: true,
|
|
7
|
-
error: null
|
|
8
|
-
});
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
const ctrl = new AbortController();
|
|
11
|
-
setState({
|
|
12
|
-
data: null,
|
|
13
|
-
loading: true,
|
|
14
|
-
error: null
|
|
15
|
-
});
|
|
16
|
-
fetchEventType(api, eventSlug, username, ctrl.signal).then(data => setState({
|
|
17
|
-
data,
|
|
18
|
-
loading: false,
|
|
19
|
-
error: null
|
|
20
|
-
})).catch(err => {
|
|
21
|
-
if (ctrl.signal.aborted) return;
|
|
22
|
-
setState({
|
|
23
|
-
data: null,
|
|
24
|
-
loading: false,
|
|
25
|
-
error: errorText(err)
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
return () => ctrl.abort();
|
|
29
|
-
}, [api, eventSlug, username]);
|
|
30
|
-
return state;
|
|
31
|
-
}
|
|
32
|
-
function useAvailableSlots(api, query) {
|
|
33
|
-
const {
|
|
34
|
-
eventTypeSlug,
|
|
35
|
-
username,
|
|
36
|
-
startTime,
|
|
37
|
-
endTime,
|
|
38
|
-
timeZone,
|
|
39
|
-
enabled = true
|
|
40
|
-
} = query;
|
|
41
|
-
const [state, setState] = useState({
|
|
42
|
-
data: null,
|
|
43
|
-
loading: enabled,
|
|
44
|
-
error: null
|
|
45
|
-
});
|
|
46
|
-
const [nonce, setNonce] = useState(0);
|
|
47
|
-
const refetch = useCallback(() => setNonce(n => n + 1), []);
|
|
48
|
-
useEffect(() => {
|
|
49
|
-
if (!enabled) return;
|
|
50
|
-
const ctrl = new AbortController();
|
|
51
|
-
setState(s => ({
|
|
52
|
-
data: s.data,
|
|
53
|
-
loading: true,
|
|
54
|
-
error: null
|
|
55
|
-
}));
|
|
56
|
-
fetchSlots(api, {
|
|
57
|
-
eventTypeSlug,
|
|
58
|
-
username,
|
|
59
|
-
startTime,
|
|
60
|
-
endTime,
|
|
61
|
-
timeZone
|
|
62
|
-
}, ctrl.signal).then(data => setState({
|
|
63
|
-
data,
|
|
64
|
-
loading: false,
|
|
65
|
-
error: null
|
|
66
|
-
})).catch(err => {
|
|
67
|
-
if (ctrl.signal.aborted) return;
|
|
68
|
-
setState({
|
|
69
|
-
data: null,
|
|
70
|
-
loading: false,
|
|
71
|
-
error: errorText(err)
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
return () => ctrl.abort();
|
|
75
|
-
}, [api, eventTypeSlug, username, startTime, endTime, timeZone, enabled, nonce]);
|
|
76
|
-
return {
|
|
77
|
-
...state,
|
|
78
|
-
refetch
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
function useCreateBooking(api) {
|
|
82
|
-
const [submitting, setSubmitting] = useState(false);
|
|
83
|
-
const [error, setError] = useState(null);
|
|
84
|
-
const [conflict, setConflict] = useState(false);
|
|
85
|
-
const mounted = useRef(true);
|
|
86
|
-
useEffect(() => {
|
|
87
|
-
mounted.current = true;
|
|
88
|
-
return () => {
|
|
89
|
-
mounted.current = false;
|
|
90
|
-
};
|
|
91
|
-
}, []);
|
|
92
|
-
const reset = useCallback(() => {
|
|
93
|
-
setError(null);
|
|
94
|
-
setConflict(false);
|
|
95
|
-
}, []);
|
|
96
|
-
const submit = useCallback(async input => {
|
|
97
|
-
setSubmitting(true);
|
|
98
|
-
setError(null);
|
|
99
|
-
setConflict(false);
|
|
100
|
-
try {
|
|
101
|
-
const booking = await createBooking(api, input);
|
|
102
|
-
return {
|
|
103
|
-
ok: true,
|
|
104
|
-
booking
|
|
105
|
-
};
|
|
106
|
-
} catch (err) {
|
|
107
|
-
const isConflict = err instanceof CalendarError && err.conflict;
|
|
108
|
-
const message = errorText(err);
|
|
109
|
-
if (mounted.current) {
|
|
110
|
-
setError(message);
|
|
111
|
-
setConflict(isConflict);
|
|
112
|
-
}
|
|
113
|
-
return {
|
|
114
|
-
ok: false,
|
|
115
|
-
conflict: isConflict,
|
|
116
|
-
message
|
|
117
|
-
};
|
|
118
|
-
} finally {
|
|
119
|
-
if (mounted.current) setSubmitting(false);
|
|
120
|
-
}
|
|
121
|
-
}, [api]);
|
|
122
|
-
return {
|
|
123
|
-
submit,
|
|
124
|
-
submitting,
|
|
125
|
-
error,
|
|
126
|
-
conflict,
|
|
127
|
-
reset
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
function useBooking(api, uid) {
|
|
131
|
-
const [state, setState] = useState({
|
|
132
|
-
data: null,
|
|
133
|
-
loading: !!uid,
|
|
134
|
-
error: null
|
|
135
|
-
});
|
|
136
|
-
useEffect(() => {
|
|
137
|
-
if (!uid) return;
|
|
138
|
-
const ctrl = new AbortController();
|
|
139
|
-
setState({
|
|
140
|
-
data: null,
|
|
141
|
-
loading: true,
|
|
142
|
-
error: null
|
|
143
|
-
});
|
|
144
|
-
fetchBooking(api, uid, ctrl.signal).then(data => setState({
|
|
145
|
-
data,
|
|
146
|
-
loading: false,
|
|
147
|
-
error: null
|
|
148
|
-
})).catch(err => {
|
|
149
|
-
if (ctrl.signal.aborted) return;
|
|
150
|
-
setState({
|
|
151
|
-
data: null,
|
|
152
|
-
loading: false,
|
|
153
|
-
error: errorText(err)
|
|
154
|
-
});
|
|
155
|
-
});
|
|
156
|
-
return () => ctrl.abort();
|
|
157
|
-
}, [api, uid]);
|
|
158
|
-
return state;
|
|
159
|
-
}
|
|
160
|
-
function errorText(err) {
|
|
161
|
-
if (err instanceof Error) return err.message;
|
|
162
|
-
return "Something went wrong";
|
|
163
|
-
}
|
|
164
|
-
export { useAvailableSlots, useBooking, useCreateBooking, useEventType };
|
|
165
|
-
//# sourceMappingURL=hooks.mjs.map
|
package/dist/esm/hooks.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useRef","useState","createBooking","fetchBooking","fetchEventType","fetchSlots","CalendarError","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","mounted","current","reset","submit","input","booking","ok","isConflict","message","useBooking","uid","Error"],"sources":["../../src/hooks.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,WAAA,EAAaC,SAAA,EAAWC,MAAA,EAAQC,QAAA,QAAgB;AACzD,SACEC,aAAA,EACAC,YAAA,EACAC,cAAA,EACAC,UAAA,EACAC,aAAA,QAKK;AAQA,SAASC,aACdC,GAAA,EACAC,SAAA,EACAC,QAAA,EACuB;EACvB,MAAM,CAACC,KAAA,EAAOC,QAAQ,IAAIX,QAAA,CAAgC;IACxDY,IAAA,EAAM;IACNC,OAAA,EAAS;IACTC,KAAA,EAAO;EACT,CAAC;EACDhB,SAAA,CAAU,MAAM;IACd,MAAMiB,IAAA,GAAO,IAAIC,eAAA,CAAgB;IACjCL,QAAA,CAAS;MAAEC,IAAA,EAAM;MAAMC,OAAA,EAAS;MAAMC,KAAA,EAAO;IAAK,CAAC;IACnDX,cAAA,CAAeI,GAAA,EAAKC,SAAA,EAAWC,QAAA,EAAUM,IAAA,CAAKE,MAAM,EACjDC,IAAA,CAAMN,IAAA,IAASD,QAAA,CAAS;MAAEC,IAAA;MAAMC,OAAA,EAAS;MAAOC,KAAA,EAAO;IAAK,CAAC,CAAC,EAC9DK,KAAA,CAAOC,GAAA,IAAiB;MACvB,IAAIL,IAAA,CAAKE,MAAA,CAAOI,OAAA,EAAS;MACzBV,QAAA,CAAS;QAAEC,IAAA,EAAM;QAAMC,OAAA,EAAS;QAAOC,KAAA,EAAOQ,SAAA,CAAUF,GAAG;MAAE,CAAC;IAChE,CAAC;IACH,OAAO,MAAML,IAAA,CAAKQ,KAAA,CAAM;EAC1B,GAAG,CAAChB,GAAA,EAAKC,SAAA,EAAWC,QAAQ,CAAC;EAC7B,OAAOC,KAAA;AACT;AAeO,SAASc,kBAAkBjB,GAAA,EAAakB,KAAA,EAA+B;EAC5E,MAAM;IAAEC,aAAA;IAAejB,QAAA;IAAUkB,SAAA;IAAWC,OAAA;IAASC,QAAA;IAAUC,OAAA,GAAU;EAAK,IAAIL,KAAA;EAClF,MAAM,CAACf,KAAA,EAAOC,QAAQ,IAAIX,QAAA,CAAiC;IACzDY,IAAA,EAAM;IACNC,OAAA,EAASiB,OAAA;IACThB,KAAA,EAAO;EACT,CAAC;EACD,MAAM,CAACiB,KAAA,EAAOC,QAAQ,IAAIhC,QAAA,CAAS,CAAC;EACpC,MAAMiC,OAAA,GAAUpC,WAAA,CAAY,MAAMmC,QAAA,CAAUE,CAAA,IAAMA,CAAA,GAAI,CAAC,GAAG,EAAE;EAE5DpC,SAAA,CAAU,MAAM;IACd,IAAI,CAACgC,OAAA,EAAS;IACd,MAAMf,IAAA,GAAO,IAAIC,eAAA,CAAgB;IACjCL,QAAA,CAAUwB,CAAA,KAAO;MAAEvB,IAAA,EAAMuB,CAAA,CAAEvB,IAAA;MAAMC,OAAA,EAAS;MAAMC,KAAA,EAAO;IAAK,EAAE;IAC9DV,UAAA,CACEG,GAAA,EACA;MAAEmB,aAAA;MAAejB,QAAA;MAAUkB,SAAA;MAAWC,OAAA;MAASC;IAAS,GACxDd,IAAA,CAAKE,MACP,EACGC,IAAA,CAAMN,IAAA,IAASD,QAAA,CAAS;MAAEC,IAAA;MAAMC,OAAA,EAAS;MAAOC,KAAA,EAAO;IAAK,CAAC,CAAC,EAC9DK,KAAA,CAAOC,GAAA,IAAiB;MACvB,IAAIL,IAAA,CAAKE,MAAA,CAAOI,OAAA,EAAS;MACzBV,QAAA,CAAS;QAAEC,IAAA,EAAM;QAAMC,OAAA,EAAS;QAAOC,KAAA,EAAOQ,SAAA,CAAUF,GAAG;MAAE,CAAC;IAChE,CAAC;IACH,OAAO,MAAML,IAAA,CAAKQ,KAAA,CAAM;EAC1B,GAAG,CAAChB,GAAA,EAAKmB,aAAA,EAAejB,QAAA,EAAUkB,SAAA,EAAWC,OAAA,EAASC,QAAA,EAAUC,OAAA,EAASC,KAAK,CAAC;EAE/E,OAAO;IAAE,GAAGrB,KAAA;IAAOuB;EAAQ;AAC7B;AAoBO,SAASG,iBAAiB7B,GAAA,EAAiC;EAChE,MAAM,CAAC8B,UAAA,EAAYC,aAAa,IAAItC,QAAA,CAAS,KAAK;EAClD,MAAM,CAACc,KAAA,EAAOyB,QAAQ,IAAIvC,QAAA,CAAwB,IAAI;EACtD,MAAM,CAACwC,QAAA,EAAUC,WAAW,IAAIzC,QAAA,CAAS,KAAK;EAC9C,MAAM0C,OAAA,GAAU3C,MAAA,CAAO,IAAI;EAC3BD,SAAA,CAAU,MAAM;IACd4C,OAAA,CAAQC,OAAA,GAAU;IAClB,OAAO,MAAM;MACXD,OAAA,CAAQC,OAAA,GAAU;IACpB;EACF,GAAG,EAAE;EAEL,MAAMC,KAAA,GAAQ/C,WAAA,CAAY,MAAM;IAC9B0C,QAAA,CAAS,IAAI;IACbE,WAAA,CAAY,KAAK;EACnB,GAAG,EAAE;EAEL,MAAMI,MAAA,GAAShD,WAAA,CACb,MAAOiD,KAAA,IAMsB;IAC3BR,aAAA,CAAc,IAAI;IAClBC,QAAA,CAAS,IAAI;IACbE,WAAA,CAAY,KAAK;IACjB,IAAI;MACF,MAAMM,OAAA,GAAU,MAAM9C,aAAA,CAAcM,GAAA,EAAKuC,KAAK;MAC9C,OAAO;QAAEE,EAAA,EAAI;QAAMD;MAAQ;IAC7B,SAAS3B,GAAA,EAAc;MACrB,MAAM6B,UAAA,GAAa7B,GAAA,YAAef,aAAA,IAAiBe,GAAA,CAAIoB,QAAA;MACvD,MAAMU,OAAA,GAAU5B,SAAA,CAAUF,GAAG;MAC7B,IAAIsB,OAAA,CAAQC,OAAA,EAAS;QACnBJ,QAAA,CAASW,OAAO;QAChBT,WAAA,CAAYQ,UAAU;MACxB;MACA,OAAO;QAAED,EAAA,EAAI;QAAOR,QAAA,EAAUS,UAAA;QAAYC;MAAQ;IACpD,UAAE;MACA,IAAIR,OAAA,CAAQC,OAAA,EAASL,aAAA,CAAc,KAAK;IAC1C;EACF,GACA,CAAC/B,GAAG,CACN;EAEA,OAAO;IAAEsC,MAAA;IAAQR,UAAA;IAAYvB,KAAA;IAAO0B,QAAA;IAAUI;EAAM;AACtD;AAEO,SAASO,WAAW5C,GAAA,EAAa6C,GAAA,EAA8C;EACpF,MAAM,CAAC1C,KAAA,EAAOC,QAAQ,IAAIX,QAAA,CAA8B;IACtDY,IAAA,EAAM;IACNC,OAAA,EAAS,CAAC,CAACuC,GAAA;IACXtC,KAAA,EAAO;EACT,CAAC;EACDhB,SAAA,CAAU,MAAM;IACd,IAAI,CAACsD,GAAA,EAAK;IACV,MAAMrC,IAAA,GAAO,IAAIC,eAAA,CAAgB;IACjCL,QAAA,CAAS;MAAEC,IAAA,EAAM;MAAMC,OAAA,EAAS;MAAMC,KAAA,EAAO;IAAK,CAAC;IACnDZ,YAAA,CAAaK,GAAA,EAAK6C,GAAA,EAAKrC,IAAA,CAAKE,MAAM,EAC/BC,IAAA,CAAMN,IAAA,IAASD,QAAA,CAAS;MAAEC,IAAA;MAAMC,OAAA,EAAS;MAAOC,KAAA,EAAO;IAAK,CAAC,CAAC,EAC9DK,KAAA,CAAOC,GAAA,IAAiB;MACvB,IAAIL,IAAA,CAAKE,MAAA,CAAOI,OAAA,EAAS;MACzBV,QAAA,CAAS;QAAEC,IAAA,EAAM;QAAMC,OAAA,EAAS;QAAOC,KAAA,EAAOQ,SAAA,CAAUF,GAAG;MAAE,CAAC;IAChE,CAAC;IACH,OAAO,MAAML,IAAA,CAAKQ,KAAA,CAAM;EAC1B,GAAG,CAAChB,GAAA,EAAK6C,GAAG,CAAC;EACb,OAAO1C,KAAA;AACT;AAEA,SAASY,UAAUF,GAAA,EAAsB;EACvC,IAAIA,GAAA,YAAeiC,KAAA,EAAO,OAAOjC,GAAA,CAAI8B,OAAA;EACrC,OAAO;AACT","ignoreList":[]}
|