@ancon/wildcat-utils 1.43.0-timezone-refactor.3 → 1.43.0-timezone-refactor.5

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.
Files changed (52) hide show
  1. package/date/createLocalTimezoneDate.js +1 -1
  2. package/date/createLocalTimezoneDate.mjs +5 -5
  3. package/date/createLocalTimezoneMoment.d.ts +9 -0
  4. package/date/createLocalTimezoneMoment.js +1 -0
  5. package/date/createLocalTimezoneMoment.mjs +8 -0
  6. package/date/index.d.ts +2 -1
  7. package/date/index.js +1 -1
  8. package/date/index.mjs +3 -1
  9. package/index.js +1 -1
  10. package/index.mjs +32 -30
  11. package/outlet/getExpressAvailableOrderFormats.js +1 -1
  12. package/outlet/getExpressAvailableOrderFormats.mjs +27 -26
  13. package/outlet/getExpressNextAvailabilityShiftTime.d.ts +2 -2
  14. package/outlet/getExpressNextAvailabilityShiftTime.js +1 -1
  15. package/outlet/getExpressNextAvailabilityShiftTime.mjs +19 -18
  16. package/outlet/getExpressServiceIntervalEnd.d.ts +2 -2
  17. package/outlet/getExpressServiceIntervalEnd.js +1 -1
  18. package/outlet/getExpressServiceIntervalEnd.mjs +7 -9
  19. package/outlet/getExpressServiceIntervalStart.d.ts +2 -2
  20. package/outlet/getExpressServiceIntervalStart.js +1 -1
  21. package/outlet/getExpressServiceIntervalStart.mjs +7 -9
  22. package/outlet/getListOutletOpeningHoursTable.js +1 -1
  23. package/outlet/getListOutletOpeningHoursTable.mjs +62 -61
  24. package/outlet/getOutletActiveOpeningInterval.js +1 -1
  25. package/outlet/getOutletActiveOpeningInterval.mjs +15 -12
  26. package/outlet/getOutletAvailabilityInfo.js +1 -1
  27. package/outlet/getOutletAvailabilityInfo.mjs +23 -25
  28. package/outlet/getOutletCurrentAvailabilityInfo.js +1 -1
  29. package/outlet/getOutletCurrentAvailabilityInfo.mjs +2 -2
  30. package/outlet/getOutletCurrentClosingTimeText.js +1 -1
  31. package/outlet/getOutletCurrentClosingTimeText.mjs +8 -7
  32. package/outlet/getOutletNextOpeningTagInformation.js +1 -1
  33. package/outlet/getOutletNextOpeningTagInformation.mjs +2 -2
  34. package/outlet/getOutletNextOpeningTimeText.js +1 -1
  35. package/outlet/getOutletNextOpeningTimeText.mjs +10 -10
  36. package/outlet/getOutletNextReadyToOrderTime.js +1 -1
  37. package/outlet/getOutletNextReadyToOrderTime.mjs +1 -1
  38. package/outlet/getOutletPickerTimesForDay.js +1 -1
  39. package/outlet/getOutletPickerTimesForDay.mjs +1 -1
  40. package/outlet/getOutletPickerTimesForWeek.js +1 -1
  41. package/outlet/getOutletPickerTimesForWeek.mjs +1 -1
  42. package/outlet/getOutletTagInformation.js +1 -1
  43. package/outlet/getOutletTagInformation.mjs +51 -53
  44. package/outlet/getOutletTodayOpeningTimes.js +1 -1
  45. package/outlet/getOutletTodayOpeningTimes.mjs +20 -19
  46. package/outlet/getPickerIntervalsForDay.js +1 -1
  47. package/outlet/getPickerIntervalsForDay.mjs +16 -18
  48. package/outlet/index.js +1 -1
  49. package/outlet/index.mjs +1 -1
  50. package/outlet/searchNextOpeningMoment.js +1 -1
  51. package/outlet/searchNextOpeningMoment.mjs +49 -52
  52. package/package.json +6 -1
@@ -1,9 +1,10 @@
1
- import T from "moment";
1
+ import W from "moment";
2
2
  import { OrderFormat as p, DayOfWeek as f, IntervalType as l, IntervalState as F } from "@ancon/wildcat-types";
3
- import W from "../shared/isWithinFlag.mjs";
3
+ import H from "../shared/isWithinFlag.mjs";
4
4
  import I from "../shared/generateId.mjs";
5
5
  import "react";
6
- import h from "../time/getTimeSpanParts.mjs";
6
+ import T from "../time/getTimeSpanParts.mjs";
7
+ import M from "../date/createLocalTimezoneMoment.mjs";
7
8
  const k = [
8
9
  { id: p.EatIn, name: "eatIn" },
9
10
  { id: p.TakeAway, name: "takeaway" },
@@ -11,35 +12,35 @@ const k = [
11
12
  { id: p.Delivery, name: "delivery" },
12
13
  { id: p.BoxPickup, name: "boxPickup" }
13
14
  ];
14
- function H(r) {
15
- const n = T(r).subtract(1, "day").startOf("day"), e = [];
16
- for (let o = 0, t = n; o < 7; o += 1)
15
+ function h(r) {
16
+ const s = W(r).subtract(1, "day").startOf("day"), e = [];
17
+ for (let n = 0, t = s; n < 7; n += 1)
17
18
  t = t.clone().add(1, "day").startOf("day"), e.push(t.clone());
18
19
  return e;
19
20
  }
20
- function M(r) {
21
- return [...r].sort((n, e) => n.isoWeekday() - e.isoWeekday());
21
+ function Y(r) {
22
+ return [...r].sort((s, e) => s.isoWeekday() - e.isoWeekday());
22
23
  }
23
- function Y(r, n) {
24
- const e = h(r.from), o = h(r.duration);
24
+ function x(r, s) {
25
+ const e = T(r.from), n = T(r.duration);
25
26
  if (r.type === l.Normal) {
26
- let t = n.clone().add(e.hours, "hour").add(e.minutes, "minute");
27
- const i = t.date() - n.date();
27
+ let t = s.clone().add(e.hours, "hour").add(e.minutes, "minute");
28
+ const i = t.date() - s.date();
28
29
  i !== 0 && (t = t.subtract(i, "day"));
29
- const s = t.clone().add(o.hours, "hour").add(o.minutes, "minute");
30
+ const o = t.clone().add(n);
30
31
  return {
31
32
  id: r.id,
32
33
  start: t.format("YYYY-MM-DDTHH:mm:ss"),
33
- end: s.format("YYYY-MM-DDTHH:mm:ss")
34
+ end: o.format("YYYY-MM-DDTHH:mm:ss")
34
35
  };
35
36
  }
36
37
  if (r.type === l.Exception) {
37
- const t = T(r.periodFrom), i = T(r.periodTo);
38
- if (n.isBetween(t, i, void 0, "[]")) {
39
- const s = n.clone().add(e.hours, "hour").add(e.minutes, "minute"), a = s.clone().add(o.hours, "hour").add(o.minutes, "minute");
38
+ const t = M(r.periodFrom), i = M(r.periodTo);
39
+ if (s.isBetween(t, i, void 0, "[]")) {
40
+ const o = s.clone().add(e.hours, "hour").add(e.minutes, "minute"), a = o.clone().add(n);
40
41
  return {
41
42
  id: r.id,
42
- start: s.format("YYYY-MM-DDTHH:mm:ss"),
43
+ start: o.format("YYYY-MM-DDTHH:mm:ss"),
43
44
  end: a.format("YYYY-MM-DDTHH:mm:ss"),
44
45
  reason: r.reason
45
46
  };
@@ -48,8 +49,8 @@ function Y(r, n) {
48
49
  }
49
50
  throw new Error("Invalid interval type");
50
51
  }
51
- function x(r, n, e) {
52
- const o = {
52
+ function D(r, s, e) {
53
+ const n = {
53
54
  [f.Monday]: 1,
54
55
  [f.Tuesday]: 2,
55
56
  [f.Wednesday]: 3,
@@ -59,21 +60,21 @@ function x(r, n, e) {
59
60
  [f.Sunday]: 7,
60
61
  [f.Everyday]: null
61
62
  };
62
- for (let t = 0; t < n.length; t += 1) {
63
- const i = n[t], s = i.isoWeekday(), a = r.dayOfWeek, m = (o[a] ?? null) === s || a === f.Everyday;
64
- if (e[s] || (e[s] = {
65
- isoWeekday: s,
63
+ for (let t = 0; t < s.length; t += 1) {
64
+ const i = s[t], o = i.isoWeekday(), a = r.dayOfWeek, m = (n[a] ?? null) === o || a === f.Everyday;
65
+ if (e[o] || (e[o] = {
66
+ isoWeekday: o,
66
67
  key: "",
67
68
  open: [],
68
69
  adjusted: [],
69
70
  closed: []
70
71
  }), m) {
71
- const d = Y(r, i);
72
- d && (e[s].key += d.id, r.type === l.Normal && r.state === F.Opened ? e[s].open.push(d) : r.type === l.Normal && r.state === F.Closed ? e[s].closed.push(d) : r.type === l.Exception && r.state === F.Opened ? e[s].adjusted.push(d) : r.type === l.Exception && r.state === F.Closed && e[s].closed.push(d));
72
+ const d = x(r, i);
73
+ d && (e[o].key += d.id, r.type === l.Normal && r.state === F.Opened ? e[o].open.push(d) : r.type === l.Normal && r.state === F.Closed ? e[o].closed.push(d) : r.type === l.Exception && r.state === F.Opened ? e[o].adjusted.push(d) : r.type === l.Exception && r.state === F.Closed && e[o].closed.push(d));
73
74
  }
74
75
  }
75
76
  }
76
- function D(r) {
77
+ function v(r) {
77
78
  switch (r.type) {
78
79
  case l.Exception:
79
80
  return I("interval-exception");
@@ -83,76 +84,76 @@ function D(r) {
83
84
  return I("interval-unknown");
84
85
  }
85
86
  }
86
- function v(r) {
87
- const n = r.reduce((e, o) => (k.forEach((t) => {
88
- W(t.id, o.orderFormats) && (e[t.id] || (e[t.id] = {
87
+ function E(r) {
88
+ const s = r.reduce((e, n) => (k.forEach((t) => {
89
+ H(t.id, n.orderFormats) && (e[t.id] || (e[t.id] = {
89
90
  orderFormat: t,
90
91
  intervals: []
91
92
  }), e[t.id].intervals.push(
92
- ...o.intervals.sort(
93
- (i, s) => i.dayOfWeek - s.dayOfWeek
93
+ ...n.intervals.sort(
94
+ (i, o) => i.dayOfWeek - o.dayOfWeek
94
95
  )
95
96
  ));
96
97
  }), e), {});
97
- return Object.values(n);
98
+ return Object.values(s);
98
99
  }
99
- function E(r, n) {
100
- const e = n.reduce((o, t) => t <= r ? o + 1 : o, 0);
100
+ function S(r, s) {
101
+ const e = s.reduce((n, t) => t <= r ? n + 1 : n, 0);
101
102
  return r - e;
102
103
  }
103
- function S(r) {
104
- const { mergedTables: n } = r.reduce(
105
- (e, o, t) => {
104
+ function j(r) {
105
+ const { mergedTables: s } = r.reduce(
106
+ (e, n, t) => {
106
107
  const i = e.mergedTables.findIndex(
107
- (s) => s !== o && !s.orderFormats.some(
108
- (a) => o.orderFormats.some(
108
+ (o) => o !== n && !o.orderFormats.some(
109
+ (a) => n.orderFormats.some(
109
110
  (u) => u.id === a.id
110
111
  )
111
- ) && s.openingHours.every(
112
- (a) => o.openingHours.some((u) => u.key === a.key)
113
112
  ) && o.openingHours.every(
114
- (a) => s.openingHours.some((u) => u.key === a.key)
113
+ (a) => n.openingHours.some((u) => u.key === a.key)
114
+ ) && n.openingHours.every(
115
+ (a) => o.openingHours.some((u) => u.key === a.key)
115
116
  )
116
117
  );
117
118
  if (i >= 0) {
118
119
  if (e.skipOrderFormats.some(
119
- (d) => o.orderFormats.every((y) => y.id === d.id)
120
+ (d) => n.orderFormats.every((y) => y.id === d.id)
120
121
  ))
121
122
  return e;
122
123
  const a = e.mergedTables[i];
123
124
  e.mergedTables.splice(i, 1, {
124
125
  ...a,
125
- orderFormats: [...o.orderFormats, ...a.orderFormats]
126
+ orderFormats: [...n.orderFormats, ...a.orderFormats]
126
127
  });
127
128
  const u = a.orderFormats.filter(
128
129
  (d) => !e.skipOrderFormats.some((y) => y.id === d.id)
129
130
  );
130
131
  u.length > 0 && e.skipOrderFormats.push(...u);
131
- const m = E(t, [...e.removedIndexes]);
132
+ const m = S(t, [...e.removedIndexes]);
132
133
  return e.mergedTables.splice(m, 1), e.removedIndexes.push(t), e;
133
134
  }
134
135
  return e;
135
136
  },
136
137
  { mergedTables: [...r], removedIndexes: [], skipOrderFormats: [] }
137
138
  );
138
- return n;
139
+ return s;
139
140
  }
140
- function j(r) {
141
- return r.map((n) => ({
142
- ...n,
143
- intervals: n.intervals.map((e) => ({
141
+ function w(r) {
142
+ return r.map((s) => ({
143
+ ...s,
144
+ intervals: s.intervals.map((e) => ({
144
145
  ...e,
145
- id: D(e)
146
+ id: v(e)
146
147
  }))
147
148
  }));
148
149
  }
149
- function R(r, n) {
150
- const e = v(
151
- j(r.serviceDateTimes)
152
- ), o = H(n), t = M(o), i = e.reduce(
153
- (m, d) => (m[d.orderFormat.id] || (m[d.orderFormat.id] = {}), d.intervals.reduce((y, c) => (x(c, t, y), y), m[d.orderFormat.id]), m),
150
+ function L(r, s) {
151
+ const e = E(
152
+ w(r.serviceDateTimes)
153
+ ), n = h(s), t = Y(n), i = e.reduce(
154
+ (m, d) => (m[d.orderFormat.id] || (m[d.orderFormat.id] = {}), d.intervals.reduce((y, c) => (D(c, t, y), y), m[d.orderFormat.id]), m),
154
155
  {}
155
- ), s = {
156
+ ), o = {
156
157
  [p.EatIn]: k[0],
157
158
  [p.TakeAway]: k[1],
158
159
  [p.TableOrder]: k[2],
@@ -161,7 +162,7 @@ function R(r, n) {
161
162
  }, a = Object.entries(
162
163
  i
163
164
  ).map(([m, d]) => ({
164
- orderFormats: [s[Number(m)]],
165
+ orderFormats: [o[Number(m)]],
165
166
  openingHours: Object.entries(d).map(
166
167
  ([y, c]) => ({
167
168
  isoWeekday: Number(y),
@@ -178,10 +179,10 @@ function R(r, n) {
178
179
  })
179
180
  )
180
181
  }));
181
- return S(a).sort(
182
+ return j(a).sort(
182
183
  (m, d) => m.orderFormats[0].id - d.orderFormats[0].id
183
184
  );
184
185
  }
185
186
  export {
186
- R as default
187
+ L as default
187
188
  };
@@ -1 +1 @@
1
- "use strict";const n=require("@ancon/wildcat-types"),p=require("moment"),l=require("../shared/constants.js");function y(r,c,i){const a=c.reduce((t,e)=>{if((e.orderFormat&i)===i)switch(e.type){case n.IntervalType.Exception:{const s=p(e.periodFrom),f=p(e.periodTo);r.isBetween(s,f,"day","[]")&&(e.state===n.IntervalState.Closed?t.closedExceptions.push(e):t.openExceptions.push(e))}break;case n.IntervalType.Interval:default:(e.dayOfWeek===n.DayOfWeek.Everyday||e.dayOfWeek===l.DaysOfWeekMap[r.isoWeekday()])&&t.openIntervals.push(e);break}return t},{closedExceptions:[],openExceptions:[],openIntervals:[]}),{closedExceptions:d,openExceptions:o,openIntervals:u}=a;if(!d.length){if(o.length){if(o.length>1){const[t]=o.sort((e,s)=>e.position-s.position);return t}return o[0]}return u[0]}}module.exports=y;
1
+ "use strict";const n=require("@ancon/wildcat-types"),f=require("../shared/constants.js"),p=require("../date/createLocalTimezoneMoment.js");require("moment");function y(r,c,i){const a=c.reduce((t,e)=>{if((e.orderFormat&i)===i)switch(e.type){case n.IntervalType.Exception:{const s=p(e.periodFrom),l=p(e.periodTo);r.isBetween(s,l,"day","[]")&&(e.state===n.IntervalState.Closed?t.closedExceptions.push(e):t.openExceptions.push(e))}break;case n.IntervalType.Normal:default:(e.dayOfWeek===n.DayOfWeek.Everyday||e.dayOfWeek===f.DaysOfWeekMap[r.isoWeekday()])&&t.openIntervals.push(e);break}return t},{closedExceptions:[],openExceptions:[],openIntervals:[]}),{closedExceptions:d,openExceptions:o,openIntervals:u}=a;if(!d.length){if(o.length){if(o.length>1){const[t]=o.sort((e,s)=>e.position-s.position);return t}return o[0]}return u[0]}}module.exports=y;
@@ -1,21 +1,24 @@
1
- import { DayOfWeek as l, IntervalType as r, IntervalState as m } from "@ancon/wildcat-types";
2
- import i from "moment";
1
+ import { DayOfWeek as u, IntervalType as r, IntervalState as m } from "@ancon/wildcat-types";
3
2
  import { DaysOfWeekMap as y } from "../shared/constants.mjs";
4
- function k(s, f, p) {
5
- const c = f.reduce(
3
+ import i from "../date/createLocalTimezoneMoment.mjs";
4
+ import "moment";
5
+ function O(s, c, p) {
6
+ const f = c.reduce(
6
7
  (o, e) => {
7
8
  if ((e.orderFormat & p) === p)
8
9
  switch (e.type) {
9
10
  case r.Exception:
10
11
  {
11
- const n = i(e.periodFrom), u = i(e.periodTo);
12
- s.isBetween(n, u, "day", "[]") && (e.state === m.Closed ? o.closedExceptions.push(e) : o.openExceptions.push(e));
12
+ const n = i(
13
+ e.periodFrom
14
+ ), l = i(e.periodTo);
15
+ s.isBetween(n, l, "day", "[]") && (e.state === m.Closed ? o.closedExceptions.push(e) : o.openExceptions.push(e));
13
16
  }
14
17
  break;
15
- case r.Interval:
18
+ case r.Normal:
16
19
  default:
17
20
  // Every day in the week
18
- (e.dayOfWeek === l.Everyday || // Specific day in the week
21
+ (e.dayOfWeek === u.Everyday || // Specific day in the week
19
22
  e.dayOfWeek === y[s.isoWeekday()]) && o.openIntervals.push(e);
20
23
  break;
21
24
  }
@@ -26,8 +29,8 @@ function k(s, f, p) {
26
29
  openExceptions: [],
27
30
  openIntervals: []
28
31
  }
29
- ), { closedExceptions: d, openExceptions: t, openIntervals: a } = c;
30
- if (!d.length) {
32
+ ), { closedExceptions: a, openExceptions: t, openIntervals: d } = f;
33
+ if (!a.length) {
31
34
  if (t.length) {
32
35
  if (t.length > 1) {
33
36
  const [o] = t.sort(
@@ -37,9 +40,9 @@ function k(s, f, p) {
37
40
  }
38
41
  return t[0];
39
42
  }
40
- return a[0];
43
+ return d[0];
41
44
  }
42
45
  }
43
46
  export {
44
- k as default
47
+ O as default
45
48
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("moment"),l=require("@ancon/wildcat-types"),r=60;var d=(e=>(e[e.Today=0]="Today",e[e.Tomorrow=1]="Tomorrow",e))(d||{});function o(e,t,c=!1){let s=null;if(e.openNow&&e.closingTime!==null)(e.closingTime.diff(t,"minutes")<r||c)&&(s={time:e.closingTime.utcOffset(t.utcOffset()).format("LT"),state:l.OutletState.Closed});else if(!e.openNow&&e.openingTime)if(e.openingTime.isSame(t,"d"))s={time:f(e.openingTime).utcOffset(t.utcOffset()).calendar(),state:l.OutletState.Opened};else{const u=f().add(1,"day").utcOffset(t.utcOffset()),i=f(e.openingTime).utcOffset(t.utcOffset());i.isSame(u,"d")?s={time:i.format("LT"),state:l.OutletState.Opened,day:1}:i.isAfter(t.clone().add(1,"week"))?s={time:i.format("D MMMM LT"),state:l.OutletState.Opened}:i&&(s={time:i.format("ddd LT"),state:l.OutletState.Opened})}return s}exports.OutletAvailabilityDay=d;exports.default=o;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("moment"),s=require("@ancon/wildcat-types"),m=60;var u=(e=>(e[e.Today=0]="Today",e[e.Tomorrow=1]="Tomorrow",e))(u||{});function n(e,l,r=!1){let t=null;if(e.openNow&&e.closingTime!==null)(e.closingTime.diff(l,"minutes")<m||r)&&(t={time:e.closingTime.format("LT"),state:s.OutletState.Closed});else if(!e.openNow&&e.openingTime)if(e.openingTime.isSame(l,"d"))t={time:o(e.openingTime).calendar(),state:s.OutletState.Opened};else{const d=o().add(1,"day"),i=o(e.openingTime);i.isSame(d,"d")?t={time:i.format("LT"),state:s.OutletState.Opened,day:1}:i.isAfter(l.clone().add(1,"week"))?t={time:i.format("D MMMM LT"),state:s.OutletState.Opened}:i&&(t={time:i.format("ddd LT"),state:s.OutletState.Opened})}return t}exports.OutletAvailabilityDay=u;exports.default=n;
@@ -1,40 +1,38 @@
1
- import c from "moment";
2
- import { OutletState as i } from "@ancon/wildcat-types";
3
- const l = 60;
4
- var o = /* @__PURE__ */ ((e) => (e[e.Today = 0] = "Today", e[e.Tomorrow = 1] = "Tomorrow", e))(o || {});
5
- function T(e, t, m = !1) {
1
+ import m from "moment";
2
+ import { OutletState as t } from "@ancon/wildcat-types";
3
+ const r = 60;
4
+ var T = /* @__PURE__ */ ((e) => (e[e.Today = 0] = "Today", e[e.Tomorrow = 1] = "Tomorrow", e))(T || {});
5
+ function p(e, o, l = !1) {
6
6
  let s = null;
7
7
  if (e.openNow && e.closingTime !== null)
8
- (e.closingTime.diff(t, "minutes") < l || m) && (s = {
9
- time: e.closingTime.utcOffset(t.utcOffset()).format("LT"),
10
- state: i.Closed
8
+ (e.closingTime.diff(o, "minutes") < r || l) && (s = {
9
+ time: e.closingTime.format("LT"),
10
+ state: t.Closed
11
11
  });
12
12
  else if (!e.openNow && e.openingTime)
13
- if (e.openingTime.isSame(t, "d"))
13
+ if (e.openingTime.isSame(o, "d"))
14
14
  s = {
15
- time: c(e.openingTime).utcOffset(t.utcOffset()).calendar(),
16
- state: i.Opened
15
+ time: m(e.openingTime).calendar(),
16
+ state: t.Opened
17
17
  };
18
18
  else {
19
- const d = c().add(1, "day").utcOffset(t.utcOffset()), f = c(e.openingTime).utcOffset(
20
- t.utcOffset()
21
- );
22
- f.isSame(d, "d") ? s = {
23
- time: f.format("LT"),
24
- state: i.Opened,
19
+ const d = m().add(1, "day"), i = m(e.openingTime);
20
+ i.isSame(d, "d") ? s = {
21
+ time: i.format("LT"),
22
+ state: t.Opened,
25
23
  day: 1
26
24
  /* Tomorrow */
27
- } : f.isAfter(t.clone().add(1, "week")) ? s = {
28
- time: f.format("D MMMM LT"),
29
- state: i.Opened
30
- } : f && (s = {
31
- time: f.format("ddd LT"),
32
- state: i.Opened
25
+ } : i.isAfter(o.clone().add(1, "week")) ? s = {
26
+ time: i.format("D MMMM LT"),
27
+ state: t.Opened
28
+ } : i && (s = {
29
+ time: i.format("ddd LT"),
30
+ state: t.Opened
33
31
  });
34
32
  }
35
33
  return s;
36
34
  }
37
35
  export {
38
- o as OutletAvailabilityDay,
39
- T as default
36
+ T as OutletAvailabilityDay,
37
+ p as default
40
38
  };
@@ -1 +1 @@
1
- "use strict";const f=require("@ancon/wildcat-types"),T=require("moment"),u=require("./getOutletTagInformation.js"),p=require("./getOutletAvailabilityInfo.js");require("../date/createLocalTimezoneDate.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("../time/getTimeSpanParts.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");function a(o,e){let{openingTime:n}=o,{closingTime:i}=o;return!!e.openingTime&&!!e.closingTime?(o.openingTime?o.openingTime.isBetween(e.openingTime,e.closingTime)&&(n=e.openingTime):n=e.openingTime,o.closingTime?o.closingTime.isBetween(e.openingTime,e.closingTime)&&(i=e.closingTime):i=e.closingTime):((!n&&e.openingTime||e.openingTime&&n&&e.openingTime.isBefore(n))&&(n=e.openingTime),!i&&e.closingTime?i=e.closingTime:e.closingTime&&i&&(e.closingTime.isBefore(i)||(i=e.closingTime))),{openingTime:n,closingTime:i}}function d(o){const{serviceDateTimes:e,state:n}=o,i=T(),g=n===f.OutletState.Opened,r=e.reduce((s,l)=>{const m=(l==null?void 0:l.intervals)||[],t=u.default(m,g,i,i);return s?s.openNow&&!t.openNow?s:{...a(s,t),openNow:s.openNow||t.openNow,openDuringSpecifiedTime:s.openDuringSpecifiedTime||t.openDuringSpecifiedTime}:t},void 0);return r?p.default(r,i,!1):null}module.exports=d;
1
+ "use strict";const f=require("@ancon/wildcat-types"),T=require("moment"),u=require("./getOutletTagInformation.js"),p=require("./getOutletAvailabilityInfo.js");require("../date/createLocalTimezoneMoment.js");require("../time/getTimeSpanParts.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");function a(o,e){let{openingTime:n}=o,{closingTime:i}=o;return!!e.openingTime&&!!e.closingTime?(o.openingTime?o.openingTime.isBetween(e.openingTime,e.closingTime)&&(n=e.openingTime):n=e.openingTime,o.closingTime?o.closingTime.isBetween(e.openingTime,e.closingTime)&&(i=e.closingTime):i=e.closingTime):((!n&&e.openingTime||e.openingTime&&n&&e.openingTime.isBefore(n))&&(n=e.openingTime),!i&&e.closingTime?i=e.closingTime:e.closingTime&&i&&(e.closingTime.isBefore(i)||(i=e.closingTime))),{openingTime:n,closingTime:i}}function d(o){const{serviceDateTimes:e,state:n}=o,i=T(),g=n===f.OutletState.Opened,r=e.reduce((s,l)=>{const m=(l==null?void 0:l.intervals)||[],t=u.default(m,g,i,i);return s?s.openNow&&!t.openNow?s:{...a(s,t),openNow:s.openNow||t.openNow,openDuringSpecifiedTime:s.openDuringSpecifiedTime||t.openDuringSpecifiedTime}:t},void 0);return r?p.default(r,i,!1):null}module.exports=d;
@@ -2,10 +2,10 @@ import { OutletState as p } from "@ancon/wildcat-types";
2
2
  import f from "moment";
3
3
  import T from "./getOutletTagInformation.mjs";
4
4
  import a from "./getOutletAvailabilityInfo.mjs";
5
- import "../date/createLocalTimezoneDate.mjs";
5
+ import "../date/createLocalTimezoneMoment.mjs";
6
+ import "../time/getTimeSpanParts.mjs";
6
7
  import "./constants.mjs";
7
8
  import "./getOutletCurrentActiveOperatingHour.mjs";
8
- import "../time/getTimeSpanParts.mjs";
9
9
  import "./getMomentFromDateAndTimeString.mjs";
10
10
  import "./searchNextOpeningMoment.mjs";
11
11
  function d(n, i) {
@@ -1 +1 @@
1
- "use strict";const t=require("moment"),d=require("./getOutletTodayOpeningTimes.js");require("../_baseIteratee-075c204c.js");require("../_getTag-b8923c48.js");require("../isArray-640f9811.js");require("../_baseIsEqual-bcac9024.js");require("../identity-1bae7cf8.js");require("../toString-9eae9442.js");require("../noop-7ea3b37b.js");require("./getListOutletOpeningHoursTable.js");require("@ancon/wildcat-types");require("../shared/isWithinFlag.js");require("../shared/generateId.js");require("react");require("../time/getTimeSpanParts.js");function m(c,q){const i=t(),u=d(c);if(u){const s=u.find(e=>{const r=t(e.start),n=t(e.end);return i.isBetween(r,n)});if(s){const{end:e}=s,r=t(e),n=i.isSame(r,"day"),o=r.format(n?"LT":"ddd LT");return q("untilTime",{time:o})||""}}}module.exports=m;
1
+ "use strict";const t=require("moment"),d=require("./getOutletTodayOpeningTimes.js");require("../_baseIteratee-075c204c.js");require("../_getTag-b8923c48.js");require("../isArray-640f9811.js");require("../_baseIsEqual-bcac9024.js");require("../identity-1bae7cf8.js");require("../toString-9eae9442.js");require("../noop-7ea3b37b.js");require("./getListOutletOpeningHoursTable.js");require("@ancon/wildcat-types");require("../shared/isWithinFlag.js");require("../shared/generateId.js");require("react");require("../time/getTimeSpanParts.js");require("../date/createLocalTimezoneMoment.js");function m(q,c){const n=t(),u=d(q);if(u){const s=u.find(e=>{const r=t(e.start),i=t(e.end);return n.isBetween(r,i)});if(s){const{end:e}=s,r=t(e),i=n.isSame(r,"day"),o=r.format(i?"LT":"ddd LT");return c("untilTime",{time:o})||""}}}module.exports=m;
@@ -1,4 +1,4 @@
1
- import o from "moment";
1
+ import e from "moment";
2
2
  import c from "./getOutletTodayOpeningTimes.mjs";
3
3
  import "../_baseIteratee-4c4d0995.mjs";
4
4
  import "../_getTag-4e44633b.mjs";
@@ -13,19 +13,20 @@ import "../shared/isWithinFlag.mjs";
13
13
  import "../shared/generateId.mjs";
14
14
  import "react";
15
15
  import "../time/getTimeSpanParts.mjs";
16
- function D(p, d) {
17
- const n = o(), r = c(p);
16
+ import "../date/createLocalTimezoneMoment.mjs";
17
+ function H(p, d) {
18
+ const n = e(), r = c(p);
18
19
  if (r) {
19
20
  const m = r.find((t) => {
20
- const e = o(t.start), i = o(t.end);
21
- return n.isBetween(e, i);
21
+ const o = e(t.start), i = e(t.end);
22
+ return n.isBetween(o, i);
22
23
  });
23
24
  if (m) {
24
- const { end: t } = m, e = o(t), i = n.isSame(e, "day"), s = e.format(i ? "LT" : "ddd LT");
25
+ const { end: t } = m, o = e(t), i = n.isSame(o, "day"), s = o.format(i ? "LT" : "ddd LT");
25
26
  return d("untilTime", { time: s }) || "";
26
27
  }
27
28
  }
28
29
  }
29
30
  export {
30
- D as default
31
+ H as default
31
32
  };
@@ -1 +1 @@
1
- "use strict";const s=require("@ancon/wildcat-types"),g=require("moment"),f=require("./getOutletTagInformation.js");require("../date/createLocalTimezoneDate.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("../time/getTimeSpanParts.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");function m(o){const r=g();return o.serviceDateTimes.reduce((e,t)=>{const i=(t==null?void 0:t.intervals)||[],n=f.default(i,o.state===s.OutletState.Opened,r,r);if(!e&&!n.openNow)return n;const u=(e==null?void 0:e.openingTime)&&n.openingTime&&n.openingTime.isBefore(e.openingTime);return!n.openNow&&u?n:e},void 0)}module.exports=m;
1
+ "use strict";const s=require("@ancon/wildcat-types"),g=require("moment"),f=require("./getOutletTagInformation.js");require("../date/createLocalTimezoneMoment.js");require("../time/getTimeSpanParts.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");function m(o){const r=g();return o.serviceDateTimes.reduce((e,t)=>{const i=(t==null?void 0:t.intervals)||[],n=f.default(i,o.state===s.OutletState.Opened,r,r);if(!e&&!n.openNow)return n;const u=(e==null?void 0:e.openingTime)&&n.openingTime&&n.openingTime.isBefore(e.openingTime);return!n.openNow&&u?n:e},void 0)}module.exports=m;
@@ -1,10 +1,10 @@
1
1
  import { OutletState as p } from "@ancon/wildcat-types";
2
2
  import f from "moment";
3
3
  import g from "./getOutletTagInformation.mjs";
4
- import "../date/createLocalTimezoneDate.mjs";
4
+ import "../date/createLocalTimezoneMoment.mjs";
5
+ import "../time/getTimeSpanParts.mjs";
5
6
  import "./constants.mjs";
6
7
  import "./getOutletCurrentActiveOperatingHour.mjs";
7
- import "../time/getTimeSpanParts.mjs";
8
8
  import "./getMomentFromDateAndTimeString.mjs";
9
9
  import "./searchNextOpeningMoment.mjs";
10
10
  function N(e) {
@@ -1 +1 @@
1
- "use strict";const t=require("moment"),u=require("./getOutletNextOpeningTagInformation.js");require("@ancon/wildcat-types");require("./getOutletTagInformation.js");require("../date/createLocalTimezoneDate.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("../time/getTimeSpanParts.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");function a(n,r){const i=t(),e=u(n);if(e&&!e.openNow&&e.openingTime){const o=t(e.openingTime).utcOffset(i.utcOffset()).calendar({sameDay:"[Today] [at] LT",nextDay:"[Tomorrow] [at] LT",nextWeek:"ddd [at] LT"});return r("openingTime",{time:o})}return null}module.exports=a;
1
+ "use strict";const i=require("moment"),o=require("./getOutletNextOpeningTagInformation.js");require("@ancon/wildcat-types");require("./getOutletTagInformation.js");require("../date/createLocalTimezoneMoment.js");require("../time/getTimeSpanParts.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");function u(t,r){const e=o(t);if(e&&!e.openNow&&e.openingTime){const n=i(e.openingTime).calendar({sameDay:"[Today] [at] LT",nextDay:"[Tomorrow] [at] LT",nextWeek:"ddd [at] LT"});return r("openingTime",{time:n})}return null}module.exports=u;
@@ -1,27 +1,27 @@
1
- import e from "moment";
2
- import r from "./getOutletNextOpeningTagInformation.mjs";
1
+ import i from "moment";
2
+ import m from "./getOutletNextOpeningTagInformation.mjs";
3
3
  import "@ancon/wildcat-types";
4
4
  import "./getOutletTagInformation.mjs";
5
- import "../date/createLocalTimezoneDate.mjs";
5
+ import "../date/createLocalTimezoneMoment.mjs";
6
+ import "../time/getTimeSpanParts.mjs";
6
7
  import "./constants.mjs";
7
8
  import "./getOutletCurrentActiveOperatingHour.mjs";
8
- import "../time/getTimeSpanParts.mjs";
9
9
  import "./getMomentFromDateAndTimeString.mjs";
10
10
  import "./searchNextOpeningMoment.mjs";
11
- function x(o, n) {
12
- const i = e(), t = r(o);
11
+ function c(e, o) {
12
+ const t = m(e);
13
13
  if (t && !t.openNow && t.openingTime) {
14
- const m = e(t.openingTime).utcOffset(i.utcOffset()).calendar({
14
+ const n = i(t.openingTime).calendar({
15
15
  sameDay: "[Today] [at] LT",
16
16
  nextDay: "[Tomorrow] [at] LT",
17
17
  nextWeek: "ddd [at] LT"
18
18
  });
19
- return n("openingTime", {
20
- time: m
19
+ return o("openingTime", {
20
+ time: n
21
21
  });
22
22
  }
23
23
  return null;
24
24
  }
25
25
  export {
26
- x as default
26
+ c as default
27
27
  };
@@ -1 +1 @@
1
- "use strict";const O=require("@ancon/wildcat-types"),r=require("moment"),p=require("../time/getTimeSpanParts.js"),q=require("./getSettingsForOrderFormat.js"),u=require("./isOutletAcceptingPreOrders.js"),T=require("./getOutletTagInformation.js"),f=require("./getNextTenthMinute.js"),S=require("./getServiceIntervalsForOrderFormat.js");require("../date/createLocalTimezoneDate.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");function _(e,i){const t=(e==null?void 0:e.state)===O.OutletState.Opened,{preparationTime:s="00:00:00"}=q(i,e==null?void 0:e.orderFormatSettings)??{},g=u((e==null?void 0:e.orderFormatSettings)||[]),m=S(i,(e==null?void 0:e.serviceDateTimes)||[]),c=T.default(m,t,r(),r()),d=!t&&g&&c.openingTime?c.openingTime:void 0,o=r(),a=r(d),n=(o>a?o:a).second(0).millisecond(0);return s&&n.add(p(s)),n.minute(f(n))}module.exports=_;
1
+ "use strict";const O=require("@ancon/wildcat-types"),r=require("moment"),p=require("../time/getTimeSpanParts.js"),q=require("./getSettingsForOrderFormat.js"),u=require("./isOutletAcceptingPreOrders.js"),T=require("./getOutletTagInformation.js"),f=require("./getNextTenthMinute.js"),S=require("./getServiceIntervalsForOrderFormat.js");require("../date/createLocalTimezoneMoment.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");function _(e,i){const t=(e==null?void 0:e.state)===O.OutletState.Opened,{preparationTime:s="00:00:00"}=q(i,e==null?void 0:e.orderFormatSettings)??{},g=u((e==null?void 0:e.orderFormatSettings)||[]),m=S(i,(e==null?void 0:e.serviceDateTimes)||[]),c=T.default(m,t,r(),r()),d=!t&&g&&c.openingTime?c.openingTime:void 0,o=r(),a=r(d),n=(o>a?o:a).second(0).millisecond(0);return s&&n.add(p(s)),n.minute(f(n))}module.exports=_;
@@ -6,7 +6,7 @@ import T from "./isOutletAcceptingPreOrders.mjs";
6
6
  import S from "./getOutletTagInformation.mjs";
7
7
  import v from "./getNextTenthMinute.mjs";
8
8
  import x from "./getServiceIntervalsForOrderFormat.mjs";
9
- import "../date/createLocalTimezoneDate.mjs";
9
+ import "../date/createLocalTimezoneMoment.mjs";
10
10
  import "./constants.mjs";
11
11
  import "./getOutletCurrentActiveOperatingHour.mjs";
12
12
  import "./getMomentFromDateAndTimeString.mjs";
@@ -1 +1 @@
1
- "use strict";const f=require("@ancon/wildcat-types"),g=require("moment"),O=require("./getPickerIntervalsForDay.js"),S=require("./getSettingsForOrderFormat.js"),h=require("./getServiceIntervalStart.js"),D=require("./generatePickerTimesForDay.js"),T=require("./getServiceIntervalEnd.js"),_=require("./getOutletNextReadyToOrderTime.js");require("../shared/constants.js");require("../date/createLocalTimezoneDate.js");require("./getServiceIntervalsForOrderFormat.js");require("../time/getTimeSpanParts.js");require("./getNextTenthMinute.js");require("./hoursAndMinutesToMinutes.js");require("./isOutletAcceptingPreOrders.js");require("./getOutletTagInformation.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");function k(e,o,l,m){const{preparationTime:u="00:00:00"}=S(o,e==null?void 0:e.orderFormatSettings)??{},i=_(e,o);let a=i.clone();const s=g(l);if(s>i)a=i.clone().set({year:s.year(),month:s.month(),date:s.date()});else if(i.diff(s,"day")>0)return[];let t=[];const p=O(a,e==null?void 0:e.serviceDateTimes,o);let d;return p.forEach(r=>{!d&&r.type&&(t=[]);const c=h(a,r,u),y=T(a,r,u);c<i&&c.add(i.valueOf()-c.valueOf(),"millisecond");const n=D(c,y,t,void 0,m);n.length>0&&r.state===f.IntervalState.Closed?t=t.filter(q=>q.timestamp<n[0].timestamp||q.timestamp>n[n.length-1].timestamp):n.length>0&&r.state===f.IntervalState.Opened&&(t=t.concat(n)),d=r.type}),t}module.exports=k;
1
+ "use strict";const f=require("@ancon/wildcat-types"),g=require("moment"),O=require("./getPickerIntervalsForDay.js"),S=require("./getSettingsForOrderFormat.js"),h=require("./getServiceIntervalStart.js"),D=require("./generatePickerTimesForDay.js"),T=require("./getServiceIntervalEnd.js"),_=require("./getOutletNextReadyToOrderTime.js");require("../shared/constants.js");require("../date/createLocalTimezoneMoment.js");require("./getServiceIntervalsForOrderFormat.js");require("../time/getTimeSpanParts.js");require("./getNextTenthMinute.js");require("./hoursAndMinutesToMinutes.js");require("./isOutletAcceptingPreOrders.js");require("./getOutletTagInformation.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");function k(e,o,l,m){const{preparationTime:u="00:00:00"}=S(o,e==null?void 0:e.orderFormatSettings)??{},i=_(e,o);let a=i.clone();const s=g(l);if(s>i)a=i.clone().set({year:s.year(),month:s.month(),date:s.date()});else if(i.diff(s,"day")>0)return[];let t=[];const p=O(a,e==null?void 0:e.serviceDateTimes,o);let d;return p.forEach(r=>{!d&&r.type&&(t=[]);const c=h(a,r,u),y=T(a,r,u);c<i&&c.add(i.valueOf()-c.valueOf(),"millisecond");const n=D(c,y,t,void 0,m);n.length>0&&r.state===f.IntervalState.Closed?t=t.filter(q=>q.timestamp<n[0].timestamp||q.timestamp>n[n.length-1].timestamp):n.length>0&&r.state===f.IntervalState.Opened&&(t=t.concat(n)),d=r.type}),t}module.exports=k;
@@ -7,7 +7,7 @@ import T from "./generatePickerTimesForDay.mjs";
7
7
  import F from "./getServiceIntervalEnd.mjs";
8
8
  import x from "./getOutletNextReadyToOrderTime.mjs";
9
9
  import "../shared/constants.mjs";
10
- import "../date/createLocalTimezoneDate.mjs";
10
+ import "../date/createLocalTimezoneMoment.mjs";
11
11
  import "./getServiceIntervalsForOrderFormat.mjs";
12
12
  import "../time/getTimeSpanParts.mjs";
13
13
  import "./getNextTenthMinute.mjs";
@@ -1 +1 @@
1
- "use strict";const n=require("./getOutletNextReadyToOrderTime.js"),l=require("./getOutletPickerTimesForDay.js");require("@ancon/wildcat-types");require("moment");require("../time/getTimeSpanParts.js");require("./getSettingsForOrderFormat.js");require("./isOutletAcceptingPreOrders.js");require("./getOutletTagInformation.js");require("../date/createLocalTimezoneDate.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");require("./getNextTenthMinute.js");require("./getServiceIntervalsForOrderFormat.js");require("./getPickerIntervalsForDay.js");require("../shared/constants.js");require("./getServiceIntervalStart.js");require("./generatePickerTimesForDay.js");require("./getServiceIntervalEnd.js");require("./hoursAndMinutesToMinutes.js");function k(r,i,q){const c=n(r,i),u=[],t=c.clone();for(let e=0;e<7;e+=1)u.push(t.clone()),t.add(1,"day");return u.reduce((e,s)=>{const o=l(r,i,s,q);return e.push(o),e},[]).filter(e=>e.length>0)}module.exports=k;
1
+ "use strict";const n=require("./getOutletNextReadyToOrderTime.js"),l=require("./getOutletPickerTimesForDay.js");require("@ancon/wildcat-types");require("moment");require("../time/getTimeSpanParts.js");require("./getSettingsForOrderFormat.js");require("./isOutletAcceptingPreOrders.js");require("./getOutletTagInformation.js");require("../date/createLocalTimezoneMoment.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");require("./getNextTenthMinute.js");require("./getServiceIntervalsForOrderFormat.js");require("./getPickerIntervalsForDay.js");require("../shared/constants.js");require("./getServiceIntervalStart.js");require("./generatePickerTimesForDay.js");require("./getServiceIntervalEnd.js");require("./hoursAndMinutesToMinutes.js");function k(r,i,q){const c=n(r,i),u=[],t=c.clone();for(let e=0;e<7;e+=1)u.push(t.clone()),t.add(1,"day");return u.reduce((e,s)=>{const o=l(r,i,s,q);return e.push(o),e},[]).filter(e=>e.length>0)}module.exports=k;
@@ -6,7 +6,7 @@ import "../time/getTimeSpanParts.mjs";
6
6
  import "./getSettingsForOrderFormat.mjs";
7
7
  import "./isOutletAcceptingPreOrders.mjs";
8
8
  import "./getOutletTagInformation.mjs";
9
- import "../date/createLocalTimezoneDate.mjs";
9
+ import "../date/createLocalTimezoneMoment.mjs";
10
10
  import "./constants.mjs";
11
11
  import "./getOutletCurrentActiveOperatingHour.mjs";
12
12
  import "./getMomentFromDateAndTimeString.mjs";
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const v=require("@ancon/wildcat-types"),r=require("moment"),d=require("../date/createLocalTimezoneDate.js"),f=require("./constants.js"),x=require("./getOutletCurrentActiveOperatingHour.js"),D=require("./getMomentFromDateAndTimeString.js"),k=require("./searchNextOpeningMoment.js");require("../time/getTimeSpanParts.js");const M={0:127,1:1,2:2,3:4,4:8,5:16,6:32,7:64};function S(n,e){const o=n.isSame(e,"d"),a={[e.format(f.OutletMapKeyFormatter)]:{intervals:[],exception:null,metadata:{dayOfWeek:M[e.isoWeekday()]}}};for(let s=o?1:0;s<f.OutletTimelineDayCount;s+=1){const i=r(n).add(s,"d");a[i.format(f.OutletMapKeyFormatter)]={intervals:[],exception:null,metadata:{dayOfWeek:M[i.isoWeekday()]}}}return a}function T(n,e){const o=r(d(e.periodFrom)),t=r(d(e.periodTo));if(!o.isSame(t,"d"))Object.keys(n).forEach(s=>{const i=r(s);if(i.isSame(o,"d")||i.isSame(t,"d")||i.isBetween(o,t)){const l=n[s],c=l.exception?l.exception.position:0;e.position>c&&(l.exception=e)}});else{const s=o.format(f.OutletMapKeyFormatter),i=n[s];if(i){const y=i.exception?i.exception.position:0;e.position>y&&(i.exception=e)}}}function W(n,e){Object.keys(n).forEach(o=>{const t=n[o],{dayOfWeek:a}=t.metadata,{dayOfWeek:s}=e;(a&s)===a&&t.intervals.push(e)})}function q(n,e,o){const t=S(e,o);return n.forEach(a=>{a.type===v.IntervalType.Exception?T(t,a):W(t,a)}),t}function g(n,e,o,t){const a=q(n,o,t),s=t.format(f.OutletMapKeyFormatter),i=x(s,a[s],t)!==null,y=e;let l=null,c=null;if(e){const m=o.format(f.OutletMapKeyFormatter),p=x(m,a[m],o);if(p){const[u,O]=p.duration.split(":").map(Number);c=D(m,p.from),l=c.clone().add(u,"hours").add(O,"minutes")}}else c=k(a,o);if(!e&&!c){const m=n.filter(u=>u.state&&r(d(u.periodTo)).isAfter(o)),[p]=m.sort((u,O)=>t.valueOf()-(r(d(u.periodTo)).valueOf()-r(d(O.periodTo)).valueOf()));if(p)return g(n,e,r(d(p.periodTo)),t)}return{closingTime:l,openingTime:c,openDuringSpecifiedTime:y,openNow:i}}exports.DaysOfWeekMap=M;exports.default=g;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const v=require("@ancon/wildcat-types"),x=require("moment"),u=require("../date/createLocalTimezoneMoment.js"),D=require("../time/getTimeSpanParts.js"),d=require("./constants.js"),M=require("./getOutletCurrentActiveOperatingHour.js"),k=require("./getMomentFromDateAndTimeString.js"),S=require("./searchNextOpeningMoment.js"),O={0:127,1:1,2:2,3:4,4:8,5:16,6:32,7:64};function T(n,e){const o=n.isSame(e,"d"),a={[e.format(d.OutletMapKeyFormatter)]:{intervals:[],exception:null,metadata:{dayOfWeek:O[e.isoWeekday()]}}};for(let s=o?1:0;s<d.OutletTimelineDayCount;s+=1){const i=x(n).add(s,"d");a[i.format(d.OutletMapKeyFormatter)]={intervals:[],exception:null,metadata:{dayOfWeek:O[i.isoWeekday()]}}}return a}function W(n,e){const o=u(e.periodFrom),t=u(e.periodTo);if(!o.isSame(t,"d"))Object.keys(n).forEach(s=>{const i=x(s);if(i.isSame(o,"d")||i.isSame(t,"d")||i.isBetween(o,t)){const c=n[s],r=c.exception?c.exception.position:0;e.position>r&&(c.exception=e)}});else{const s=o.format(d.OutletMapKeyFormatter),i=n[s];if(i){const m=i.exception?i.exception.position:0;e.position>m&&(i.exception=e)}}}function q(n,e){Object.keys(n).forEach(o=>{const t=n[o],{dayOfWeek:a}=t.metadata,{dayOfWeek:s}=e;(a&s)===a&&t.intervals.push(e)})}function E(n,e,o){const t=T(e,o);return n.forEach(a=>{a.type===v.IntervalType.Exception?W(t,a):q(t,a)}),t}function g(n,e,o,t){const a=E(n,o,t),s=t.format(d.OutletMapKeyFormatter),i=M(s,a[s],t)!==null,m=e;let c=null,r=null;if(e){const f=o.format(d.OutletMapKeyFormatter),l=M(f,a[f],o);if(l){const{hours:p,minutes:y}=D(l.duration);r=k(f,l.from),c=r.clone().add(p,"hours").add(y,"minutes")}}else r=S(a,o);if(!e&&!r){const f=n.filter(p=>p.state&&u(p.periodTo).isAfter(o)),[l]=f.sort((p,y)=>t.valueOf()-(u(p.periodTo).valueOf()-u(y.periodTo).valueOf()));if(l)return g(n,e,u(l.periodTo),t)}return{closingTime:c,openingTime:r,openDuringSpecifiedTime:m,openNow:i}}exports.DaysOfWeekMap=O;exports.default=g;