@odynn/awayz-flights 0.1.0 → 0.1.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.
@@ -0,0 +1,404 @@
1
+ import { jsxs as o, jsx as l, Fragment as L } from "react/jsx-runtime";
2
+ import f, { useMemo as U } from "react";
3
+ import { h as p } from "./moment-BGjjqtLQ.js";
4
+ import { ECabinClass as W } from "./types/enums.js";
5
+ import { l as k } from "./arrayExtensions-BS8S8Zke.js";
6
+ import { DUFFEL_ASSET_PATH as K } from "./constants/constants.js";
7
+ import './assets/FlightItinerary.css';const B = (t) => {
8
+ const r = Math.floor(t / 1440);
9
+ let e = t % 1440;
10
+ const n = Math.floor(e / 60), i = Math.floor(e % 60);
11
+ return `${r ? `${r}d` : ""} ${n}h ${i}m`;
12
+ };
13
+ function E({
14
+ departureAt: t,
15
+ departureTimeZone: r,
16
+ arrivalAt: e,
17
+ arrivalTimeZone: n
18
+ }) {
19
+ const i = p.tz(t, r);
20
+ return p.tz(e, n).diff(i, "minutes");
21
+ }
22
+ const S = (t, r) => {
23
+ if (!t)
24
+ return "";
25
+ const e = p(r).tz(t).format("z"), n = p(r).tz(t).format("Z");
26
+ return `${/^\s*[+\-]?\d+\s*$/.test(e) ? `${n} GMT` : e}`;
27
+ }, st = (t) => {
28
+ const r = /P((\d+)D)?T((\d+)H)?((\d+)M)?/, e = t.match(r);
29
+ if (e) {
30
+ const n = e[2] ? `${e[2]}d ` : "", i = e[4] ? `${e[4]}h ` : "", c = e[6] ? `${e[6]}m` : "";
31
+ return `${n}${i}${c}`.trim();
32
+ } else
33
+ return t;
34
+ }, z = (t) => {
35
+ var r;
36
+ if (!t) return "";
37
+ try {
38
+ return (r = k.byIso(t)) == null ? void 0 : r.country;
39
+ } catch (e) {
40
+ return console.error(e), "";
41
+ }
42
+ };
43
+ var y = /* @__PURE__ */ ((t) => (t.USStringDateFormat = "MMM DD, YYYY", t.USStringDateTimeFormat = "MMM DD, YYYY, h:mm A (z)", t.FlightShortDate = "MMM DD - h:mm A", t.FlightTime = "h:mm A", t.DateFormat = "MM/DD", t.StringDateFormat = "MMM DD", t.FullDateFormat = "MM/DD/YYYY", t.ServerDate = "YYYY-MM-DD", t.GoogleDateFormat = "YYYYMMDDTHHmmssZ", t.AppleDateFormat = "YYYYMMDDTHHmmss", t.USStringDateWithTimeFormat = "MMM DD, YYYY, h:mm A", t))(y || {}), G = {
44
+ color: void 0,
45
+ size: void 0,
46
+ className: void 0,
47
+ style: void 0,
48
+ attr: void 0
49
+ }, $ = f.createContext && /* @__PURE__ */ f.createContext(G), q = ["attr", "size", "title"];
50
+ function J(t, r) {
51
+ if (t == null) return {};
52
+ var e = Q(t, r), n, i;
53
+ if (Object.getOwnPropertySymbols) {
54
+ var c = Object.getOwnPropertySymbols(t);
55
+ for (i = 0; i < c.length; i++)
56
+ n = c[i], !(r.indexOf(n) >= 0) && Object.prototype.propertyIsEnumerable.call(t, n) && (e[n] = t[n]);
57
+ }
58
+ return e;
59
+ }
60
+ function Q(t, r) {
61
+ if (t == null) return {};
62
+ var e = {};
63
+ for (var n in t)
64
+ if (Object.prototype.hasOwnProperty.call(t, n)) {
65
+ if (r.indexOf(n) >= 0) continue;
66
+ e[n] = t[n];
67
+ }
68
+ return e;
69
+ }
70
+ function A() {
71
+ return A = Object.assign ? Object.assign.bind() : function(t) {
72
+ for (var r = 1; r < arguments.length; r++) {
73
+ var e = arguments[r];
74
+ for (var n in e)
75
+ Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
76
+ }
77
+ return t;
78
+ }, A.apply(this, arguments);
79
+ }
80
+ function x(t, r) {
81
+ var e = Object.keys(t);
82
+ if (Object.getOwnPropertySymbols) {
83
+ var n = Object.getOwnPropertySymbols(t);
84
+ r && (n = n.filter(function(i) {
85
+ return Object.getOwnPropertyDescriptor(t, i).enumerable;
86
+ })), e.push.apply(e, n);
87
+ }
88
+ return e;
89
+ }
90
+ function P(t) {
91
+ for (var r = 1; r < arguments.length; r++) {
92
+ var e = arguments[r] != null ? arguments[r] : {};
93
+ r % 2 ? x(Object(e), !0).forEach(function(n) {
94
+ X(t, n, e[n]);
95
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(e)) : x(Object(e)).forEach(function(n) {
96
+ Object.defineProperty(t, n, Object.getOwnPropertyDescriptor(e, n));
97
+ });
98
+ }
99
+ return t;
100
+ }
101
+ function X(t, r, e) {
102
+ return r = R(r), r in t ? Object.defineProperty(t, r, { value: e, enumerable: !0, configurable: !0, writable: !0 }) : t[r] = e, t;
103
+ }
104
+ function R(t) {
105
+ var r = tt(t, "string");
106
+ return typeof r == "symbol" ? r : r + "";
107
+ }
108
+ function tt(t, r) {
109
+ if (typeof t != "object" || !t) return t;
110
+ var e = t[Symbol.toPrimitive];
111
+ if (e !== void 0) {
112
+ var n = e.call(t, r || "default");
113
+ if (typeof n != "object") return n;
114
+ throw new TypeError("@@toPrimitive must return a primitive value.");
115
+ }
116
+ return (r === "string" ? String : Number)(t);
117
+ }
118
+ function V(t) {
119
+ return t && t.map((r, e) => /* @__PURE__ */ f.createElement(r.tag, P({
120
+ key: e
121
+ }, r.attr), V(r.child)));
122
+ }
123
+ function Z(t) {
124
+ return (r) => /* @__PURE__ */ f.createElement(et, A({
125
+ attr: P({}, t.attr)
126
+ }, r), V(t.child));
127
+ }
128
+ function et(t) {
129
+ var r = (e) => {
130
+ var {
131
+ attr: n,
132
+ size: i,
133
+ title: c
134
+ } = t, g = J(t, q), u = i || e.size || "1em", s;
135
+ return e.className && (s = e.className), t.className && (s = (s ? s + " " : "") + t.className), /* @__PURE__ */ f.createElement("svg", A({
136
+ stroke: "currentColor",
137
+ fill: "currentColor",
138
+ strokeWidth: "0"
139
+ }, e.attr, n, g, {
140
+ className: s,
141
+ style: P(P({
142
+ color: t.color || e.color
143
+ }, e.style), t.style),
144
+ height: u,
145
+ width: u,
146
+ xmlns: "http://www.w3.org/2000/svg"
147
+ }), c && /* @__PURE__ */ f.createElement("title", null, c), t.children);
148
+ };
149
+ return $ !== void 0 ? /* @__PURE__ */ f.createElement($.Consumer, null, (e) => r(e)) : r(G);
150
+ }
151
+ function I(t) {
152
+ return Z({ tag: "svg", attr: { viewBox: "0 0 448 512" }, child: [{ tag: "path", attr: { d: "M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z" }, child: [] }] })(t);
153
+ }
154
+ function mt(t) {
155
+ return Z({ tag: "svg", attr: { viewBox: "0 0 448 512" }, child: [{ tag: "path", attr: { d: "M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z" }, child: [] }] })(t);
156
+ }
157
+ function rt(t) {
158
+ return Z({ tag: "svg", attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { d: "M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z" }, child: [] }] })(t);
159
+ }
160
+ const ut = ({
161
+ itinerary: t,
162
+ origin: r,
163
+ destination: e,
164
+ onDisableRenderItinerary: n,
165
+ isMultiDayFlight: i
166
+ }) => {
167
+ var u, s, b, N, j, w;
168
+ const c = () => W.ECONOMY, g = U(() => {
169
+ var v, M, T, C, O, D, Y;
170
+ const a = [];
171
+ for (let h = 0; h < t.length; h++) {
172
+ const d = t[h], m = t[h + 1];
173
+ if (!m)
174
+ break;
175
+ const F = {
176
+ arrival: {
177
+ airport: (v = d.destination) == null ? void 0 : v.name,
178
+ city: (T = (M = d.destination) == null ? void 0 : M.city) == null ? void 0 : T.name,
179
+ country: "France",
180
+ //getCountryNameByCode(segment.destination?.iata_country_code),
181
+ time: d.arrivingAt,
182
+ // ?? segment.arrival_datetime,
183
+ arrivalTimeZone: d.destination.timeZone
184
+ },
185
+ departure: {
186
+ airport: (C = m.origin) == null ? void 0 : C.name,
187
+ city: (D = (O = m.origin) == null ? void 0 : O.city) == null ? void 0 : D.name,
188
+ country: "France",
189
+ //getCountryNameByCode(segment.destination?.iata_country_code),
190
+ time: m.departingAt,
191
+ // ?? segment.departure_datetime,
192
+ airline: m.operatingCarrier.name,
193
+ airlineCode: m.operatingCarrier.iataCode,
194
+ aircraft: (Y = m.aircraft) == null ? void 0 : Y.name,
195
+ flightNumber: m.operatingCarrierFlightNumber,
196
+ cabin: m.passengers[0].cabinClassMarketingName ?? c(),
197
+ departureTimeZone: m.origin.timeZone
198
+ },
199
+ layoverTime: E({
200
+ // we need to swap around the departure and arrival times
201
+ departureAt: d.arrivingAt,
202
+ departureTimeZone: d.destination.timeZone,
203
+ arrivalAt: m.departingAt,
204
+ arrivalTimeZone: m.origin.timeZone
205
+ })
206
+ };
207
+ F.layoverTime <= 0 && (n == null || n()), a.push(F);
208
+ }
209
+ return a;
210
+ }, [t]);
211
+ return /* @__PURE__ */ o("div", { className: "flight-itinerary", children: [
212
+ /* @__PURE__ */ l(
213
+ _,
214
+ {
215
+ airport: t[0].origin.name,
216
+ city: r.city,
217
+ country: z(r.country),
218
+ departureAt: t[0].departingAt,
219
+ departureTimeZone: t[0].origin.timeZone,
220
+ arrivalAt: t[0].arrivingAt,
221
+ arrivalTimeZone: t[0].destination.timeZone,
222
+ airline: t[0].operatingCarrier.name,
223
+ airlineCode: t[0].operatingCarrier.iataCode,
224
+ aircraft: (u = t[0].aircraft) == null ? void 0 : u.name,
225
+ flightNumber: t[0].operatingCarrierFlightNumber,
226
+ cabin: t[0].passengers[0].cabinClassMarketingName ?? c(),
227
+ isMultiDayFlight: i
228
+ }
229
+ ),
230
+ g.map((a, v) => {
231
+ var M, T, C, O, D, Y, h, d;
232
+ return /* @__PURE__ */ o(f.Fragment, { children: [
233
+ /* @__PURE__ */ l(
234
+ H,
235
+ {
236
+ airport: a.arrival.airport,
237
+ city: a.arrival.city,
238
+ country: a.arrival.country,
239
+ time: a.arrival.time,
240
+ isLayover: !0,
241
+ layoverTime: B(a.layoverTime),
242
+ arrivalTimeZone: S(
243
+ a.arrival.arrivalTimeZone,
244
+ a.arrival.time
245
+ )
246
+ }
247
+ ),
248
+ /* @__PURE__ */ l(
249
+ _,
250
+ {
251
+ airport: (M = a.departure) == null ? void 0 : M.airport,
252
+ city: (T = a.departure) == null ? void 0 : T.city,
253
+ country: (C = a.departure) == null ? void 0 : C.country,
254
+ departureAt: a.departure.time,
255
+ departureTimeZone: a.departure.departureTimeZone,
256
+ arrivalAt: t[v + 1].arrivingAt,
257
+ arrivalTimeZone: t[v + 1].destination.timeZone,
258
+ airline: (O = a.departure) == null ? void 0 : O.airline,
259
+ airlineCode: (D = a.departure) == null ? void 0 : D.airlineCode,
260
+ aircraft: (Y = a.departure) == null ? void 0 : Y.aircraft,
261
+ flightNumber: (h = a.departure) == null ? void 0 : h.flightNumber,
262
+ cabin: (d = a.departure) == null ? void 0 : d.cabin
263
+ }
264
+ )
265
+ ] }, a.departure.flightNumber || v);
266
+ }),
267
+ /* @__PURE__ */ l(
268
+ H,
269
+ {
270
+ airport: (b = (s = t.getLast()) == null ? void 0 : s.destination) == null ? void 0 : b.name,
271
+ city: e.city,
272
+ country: z(e.country),
273
+ time: (N = t.getLast()) == null ? void 0 : N.arrivingAt,
274
+ arrivalTimeZone: S(
275
+ (j = t.getLast()) == null ? void 0 : j.destination.timeZone,
276
+ (w = t.getLast()) == null ? void 0 : w.arrivingAt
277
+ // ?? itinerary.getLast()?.arrival_datetime
278
+ ),
279
+ isMultiDayFlight: i
280
+ }
281
+ )
282
+ ] });
283
+ }, _ = ({
284
+ airport: t,
285
+ city: r,
286
+ country: e,
287
+ airline: n,
288
+ airlineCode: i,
289
+ flightNumber: c,
290
+ aircraft: g,
291
+ cabin: u,
292
+ departureAt: s,
293
+ departureTimeZone: b,
294
+ arrivalAt: N,
295
+ arrivalTimeZone: j,
296
+ isMultiDayFlight: w
297
+ }) => {
298
+ const a = E({
299
+ departureAt: s,
300
+ departureTimeZone: b,
301
+ arrivalAt: N,
302
+ arrivalTimeZone: j
303
+ });
304
+ return /* @__PURE__ */ o("div", { className: "departure", children: [
305
+ /* @__PURE__ */ o("p", { children: [
306
+ p(s).format(y.FlightTime),
307
+ " ",
308
+ /* @__PURE__ */ o("span", { className: "time-zone", children: [
309
+ "(",
310
+ S(b, s),
311
+ ")"
312
+ ] }),
313
+ /* @__PURE__ */ l("br", {}),
314
+ w ? /* @__PURE__ */ o("div", { className: "travel-time", children: [
315
+ /* @__PURE__ */ l(I, {}),
316
+ /* @__PURE__ */ o("span", { children: [
317
+ " ",
318
+ "Departure:",
319
+ " ",
320
+ p(s).format(y.StringDateFormat)
321
+ ] })
322
+ ] }) : /* @__PURE__ */ l(L, {}),
323
+ /* @__PURE__ */ o("div", { className: "travel-time", children: [
324
+ /* @__PURE__ */ l(rt, {}),
325
+ /* @__PURE__ */ o("span", { children: [
326
+ "Travel Time: ",
327
+ B(a)
328
+ ] })
329
+ ] })
330
+ ] }),
331
+ /* @__PURE__ */ o("div", { children: [
332
+ /* @__PURE__ */ o("span", { children: [
333
+ t,
334
+ ", ",
335
+ r,
336
+ ", ",
337
+ e
338
+ ] }),
339
+ /* @__PURE__ */ l("img", { src: `${K}${i}.svg`, alt: n }),
340
+ /* @__PURE__ */ o("p", { children: [
341
+ /* @__PURE__ */ l("strong", { children: "Aircraft:" }),
342
+ " ",
343
+ g
344
+ ] }),
345
+ /* @__PURE__ */ o("p", { children: [
346
+ /* @__PURE__ */ l("strong", { children: "Flight:" }),
347
+ " ",
348
+ i,
349
+ " ",
350
+ c
351
+ ] }),
352
+ /* @__PURE__ */ o("p", { children: [
353
+ /* @__PURE__ */ l("strong", { children: "Cabin:" }),
354
+ " ",
355
+ u
356
+ ] })
357
+ ] })
358
+ ] });
359
+ }, H = ({
360
+ airport: t,
361
+ city: r,
362
+ country: e,
363
+ time: n,
364
+ isLayover: i,
365
+ layoverTime: c,
366
+ arrivalTimeZone: g,
367
+ isMultiDayFlight: u
368
+ }) => /* @__PURE__ */ o("div", { className: `arrival ${i ? "layover" : ""}`, children: [
369
+ /* @__PURE__ */ o("p", { children: [
370
+ p(n).format(y.FlightTime),
371
+ " ",
372
+ /* @__PURE__ */ o("span", { className: "time-zone", children: [
373
+ "(",
374
+ g,
375
+ ")"
376
+ ] }),
377
+ u && !i ? /* @__PURE__ */ o("div", { className: "travel-time", children: [
378
+ /* @__PURE__ */ l(I, {}),
379
+ /* @__PURE__ */ o("span", { children: [
380
+ "Arrival: ",
381
+ p(n).format(y.StringDateFormat)
382
+ ] })
383
+ ] }) : /* @__PURE__ */ l(L, {})
384
+ ] }),
385
+ /* @__PURE__ */ o("div", { children: [
386
+ /* @__PURE__ */ o("p", { children: [
387
+ i ? "Layover in" : "",
388
+ " ",
389
+ t,
390
+ ", ",
391
+ r,
392
+ ", ",
393
+ e
394
+ ] }),
395
+ /* @__PURE__ */ l("i", { children: i ? c : "" })
396
+ ] })
397
+ ] });
398
+ export {
399
+ y as E,
400
+ mt as F,
401
+ st as a,
402
+ ut as b,
403
+ z as g
404
+ };