@ancon/wildcat-utils 1.18.0 → 1.18.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/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./shared/enums.js"),r=require("./shared/isWithinFlag.js"),t=require("./shared/generateId.js"),i=require("./outlet/getListOutletOpeningHoursTable.js"),n=require("./outlet/getOutletTagInformation.js"),o=require("./outlet/getOutletAvailabilityInfo.js"),s=require("./outlet/getOutletOfflineOrderFormats.js"),u=require("./outlet/getOutletAvailableOrderFormats.js"),l=require("./outlet/getOutletFormattedDistance.js"),a=require("./outlet/isOutletAcceptingPreOrders.js"),g=require("./outlet/getOutletDeliveryFee.js"),c=require("./outlet/getOutletTodayOpeningTimes.js"),d=require("./outlet/getOutletOrderFormats.js"),q=require("./versioning/isVersionALessThanB.js"),O=require("./versioning/cleanVersionString.js"),_=require("./api/getUrlAndParams.js"),m=require("./api/getEndpointWithVersion.js"),p=require("./api/generateBackoffWithEqualJitter.js"),F=require("./string/slugify.js"),f=require("./string/truncate.js"),y=require("./color/lighten.js"),T=require("./color/brighten.js"),v=require("./color/darken.js"),P=require("./color/isDarkBackground.js"),h=require("./user/getFullName.js"),b=require("./user/getFullAddressString.js"),A=require("./logger/Logger.js"),I=require("./logger/types.js"),k=require("./logger/sanitizeAsStringDict.js"),S=require("./printing/getPrinterType.js"),V=require("./printing/isValidPrinter.js"),D=require("./printing/isValidNetworkPrinter.js"),L=require("./printing/isValidStarCloudPrinter.js"),W=require("./printing/isTerminalPrinter.js"),B=require("./number/randomIntFromInterval.js"),E=require("./tables/decodeTableQRPayload.js");require("moment");require("@ancon/wildcat-types");require("./outlet/types.js");require("./outlet/constants.js");require("./outlet/getOutletCurrentActiveOperatingHour.js");require("./outlet/getMomentFromDateAndTimeString.js");require("./outlet/searchNextOpeningMoment.js");require("lodash");require("compare-versions");require("tinycolor2");require("@ancon/wildcat-printing");exports.DayOfWeek=e.DayOfWeek;exports.IntervalState=e.IntervalState;exports.IntervalType=e.IntervalType;exports.OrderFormat=e.OrderFormat;exports.isWithinFlag=r;exports.generateId=t;exports.getListOutletOpeningHoursTable=i;exports.getOutletTagInformation=n.default;exports.getOutletAvailabilityInfo=o.default;exports.getOutletOfflineOrderFormats=s;exports.getOutletAvailableOrderFormats=u;exports.getOutletFormattedDistance=l;exports.isOutletAcceptingPreOrders=a;exports.getOutletDeliveryFee=g;exports.getOutletTodayOpeningTimes=c;exports.getOutletOrderFormats=d;exports.isVersionALessThanB=q;exports.cleanVersionString=O;exports.getUrlAndParams=_;exports.getEndpointWithVersion=m;exports.generateBackoffWithEqualJitter=p;exports.slugify=F;exports.truncate=f;exports.lighten=y;exports.brighten=T;exports.darken=v;exports.isDarkBackground=P;exports.getFullName=h;exports.getFullAddressString=b;exports.Logger=A;exports.LogLevel=I.LogLevel;exports.sanitizeAsStringDict=k;exports.getPrinterType=S;exports.isValidPrinter=V;exports.isValidNetworkPrinter=D;exports.isValidStarCloudPrinter=L;exports.isTerminalPrinter=W;exports.randomIntFromInterval=B;exports.decodeTableQRPayload=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./shared/enums.js"),r=require("./shared/isWithinFlag.js"),t=require("./shared/generateId.js"),i=require("./outlet/getListOutletOpeningHoursTable.js"),n=require("./outlet/getOutletTagInformation.js"),o=require("./outlet/getOutletAvailabilityInfo.js"),s=require("./outlet/getOutletOfflineOrderFormats.js"),u=require("./outlet/getOutletAvailableOrderFormats.js"),l=require("./outlet/getOutletFormattedDistance.js"),a=require("./outlet/isOutletAcceptingPreOrders.js"),g=require("./outlet/getOutletDeliveryFee.js"),c=require("./outlet/getOutletTodayOpeningTimes.js"),d=require("./outlet/getOutletOrderFormats.js"),q=require("./outlet/serviceDateTimesFromOpeningHours.js"),O=require("./versioning/isVersionALessThanB.js"),_=require("./versioning/cleanVersionString.js"),m=require("./api/getUrlAndParams.js"),p=require("./api/getEndpointWithVersion.js"),F=require("./api/generateBackoffWithEqualJitter.js"),T=require("./string/slugify.js"),f=require("./string/truncate.js"),v=require("./color/lighten.js"),y=require("./color/brighten.js"),P=require("./color/darken.js"),h=require("./color/isDarkBackground.js"),b=require("./user/getFullName.js"),A=require("./user/getFullAddressString.js"),I=require("./logger/Logger.js"),k=require("./logger/types.js"),D=require("./logger/sanitizeAsStringDict.js"),S=require("./printing/getPrinterType.js"),V=require("./printing/isValidPrinter.js"),L=require("./printing/isValidNetworkPrinter.js"),W=require("./printing/isValidStarCloudPrinter.js"),B=require("./printing/isTerminalPrinter.js"),E=require("./number/randomIntFromInterval.js"),H=require("./tables/decodeTableQRPayload.js");require("moment");require("@ancon/wildcat-types");require("./outlet/types.js");require("./outlet/constants.js");require("./outlet/getOutletCurrentActiveOperatingHour.js");require("./outlet/getMomentFromDateAndTimeString.js");require("./outlet/searchNextOpeningMoment.js");require("lodash");require("compare-versions");require("tinycolor2");require("@ancon/wildcat-printing");exports.DayOfWeek=e.DayOfWeek;exports.IntervalState=e.IntervalState;exports.IntervalType=e.IntervalType;exports.OrderFormat=e.OrderFormat;exports.isWithinFlag=r;exports.generateId=t;exports.getListOutletOpeningHoursTable=i;exports.getOutletTagInformation=n.default;exports.getOutletAvailabilityInfo=o.default;exports.getOutletOfflineOrderFormats=s;exports.getOutletAvailableOrderFormats=u;exports.getOutletFormattedDistance=l;exports.isOutletAcceptingPreOrders=a;exports.getOutletDeliveryFee=g;exports.getOutletTodayOpeningTimes=c;exports.getOutletOrderFormats=d;exports.serviceDateTimesFromOpeningHours=q;exports.isVersionALessThanB=O;exports.cleanVersionString=_;exports.getUrlAndParams=m;exports.getEndpointWithVersion=p;exports.generateBackoffWithEqualJitter=F;exports.slugify=T;exports.truncate=f;exports.lighten=v;exports.brighten=y;exports.darken=P;exports.isDarkBackground=h;exports.getFullName=b;exports.getFullAddressString=A;exports.Logger=I;exports.LogLevel=k.LogLevel;exports.sanitizeAsStringDict=D;exports.getPrinterType=S;exports.isValidPrinter=V;exports.isValidNetworkPrinter=L;exports.isValidStarCloudPrinter=W;exports.isTerminalPrinter=B;exports.randomIntFromInterval=E;exports.decodeTableQRPayload=H;
package/index.mjs CHANGED
@@ -1,39 +1,40 @@
1
1
  import { DayOfWeek as n, IntervalState as x, IntervalType as g, OrderFormat as O } from "./shared/enums.mjs";
2
2
  import { default as c } from "./shared/isWithinFlag.mjs";
3
- import { default as y } from "./shared/generateId.mjs";
4
- import { default as v } from "./outlet/getListOutletOpeningHoursTable.mjs";
3
+ import { default as v } from "./shared/generateId.mjs";
4
+ import { default as P } from "./outlet/getListOutletOpeningHoursTable.mjs";
5
5
  import { default as I } from "./outlet/getOutletTagInformation.mjs";
6
6
  import { default as k } from "./outlet/getOutletAvailabilityInfo.mjs";
7
- import { default as b } from "./outlet/getOutletOfflineOrderFormats.mjs";
7
+ import { default as V } from "./outlet/getOutletOfflineOrderFormats.mjs";
8
8
  import { default as L } from "./outlet/getOutletAvailableOrderFormats.mjs";
9
9
  import { default as W } from "./outlet/getOutletFormattedDistance.mjs";
10
10
  import { default as E } from "./outlet/isOutletAcceptingPreOrders.mjs";
11
- import { default as q } from "./outlet/getOutletDeliveryFee.mjs";
12
- import { default as z } from "./outlet/getOutletTodayOpeningTimes.mjs";
13
- import { default as H } from "./outlet/getOutletOrderFormats.mjs";
14
- import { default as Q } from "./versioning/isVersionALessThanB.mjs";
15
- import { default as U } from "./versioning/cleanVersionString.mjs";
16
- import { default as G } from "./api/getUrlAndParams.mjs";
17
- import { default as M } from "./api/getEndpointWithVersion.mjs";
18
- import { default as Y } from "./api/generateBackoffWithEqualJitter.mjs";
19
- import { default as _ } from "./string/slugify.mjs";
20
- import { default as tt } from "./string/truncate.mjs";
21
- import { default as rt } from "./color/lighten.mjs";
22
- import { default as ot } from "./color/brighten.mjs";
23
- import { default as lt } from "./color/darken.mjs";
24
- import { default as it } from "./color/isDarkBackground.mjs";
25
- import { default as dt } from "./user/getFullName.mjs";
26
- import { default as ut } from "./user/getFullAddressString.mjs";
27
- import { default as xt } from "./logger/Logger.mjs";
28
- import { LogLevel as Ot } from "./logger/types.mjs";
29
- import { default as ct } from "./logger/sanitizeAsStringDict.mjs";
30
- import { default as yt } from "./printing/getPrinterType.mjs";
31
- import { default as vt } from "./printing/isValidPrinter.mjs";
32
- import { default as It } from "./printing/isValidNetworkPrinter.mjs";
33
- import { default as kt } from "./printing/isValidStarCloudPrinter.mjs";
34
- import { default as bt } from "./printing/isTerminalPrinter.mjs";
35
- import { default as Lt } from "./number/randomIntFromInterval.mjs";
36
- import { default as Wt } from "./tables/decodeTableQRPayload.mjs";
11
+ import { default as N } from "./outlet/getOutletDeliveryFee.mjs";
12
+ import { default as w } from "./outlet/getOutletTodayOpeningTimes.mjs";
13
+ import { default as C } from "./outlet/getOutletOrderFormats.mjs";
14
+ import { default as Q } from "./outlet/serviceDateTimesFromOpeningHours.mjs";
15
+ import { default as U } from "./versioning/isVersionALessThanB.mjs";
16
+ import { default as G } from "./versioning/cleanVersionString.mjs";
17
+ import { default as M } from "./api/getUrlAndParams.mjs";
18
+ import { default as Y } from "./api/getEndpointWithVersion.mjs";
19
+ import { default as _ } from "./api/generateBackoffWithEqualJitter.mjs";
20
+ import { default as ee } from "./string/slugify.mjs";
21
+ import { default as re } from "./string/truncate.mjs";
22
+ import { default as oe } from "./color/lighten.mjs";
23
+ import { default as le } from "./color/brighten.mjs";
24
+ import { default as ie } from "./color/darken.mjs";
25
+ import { default as de } from "./color/isDarkBackground.mjs";
26
+ import { default as ue } from "./user/getFullName.mjs";
27
+ import { default as xe } from "./user/getFullAddressString.mjs";
28
+ import { default as Oe } from "./logger/Logger.mjs";
29
+ import { LogLevel as ce } from "./logger/types.mjs";
30
+ import { default as ve } from "./logger/sanitizeAsStringDict.mjs";
31
+ import { default as Pe } from "./printing/getPrinterType.mjs";
32
+ import { default as Ie } from "./printing/isValidPrinter.mjs";
33
+ import { default as ke } from "./printing/isValidNetworkPrinter.mjs";
34
+ import { default as Ve } from "./printing/isValidStarCloudPrinter.mjs";
35
+ import { default as Le } from "./printing/isTerminalPrinter.mjs";
36
+ import { default as We } from "./number/randomIntFromInterval.mjs";
37
+ import { default as Ee } from "./tables/decodeTableQRPayload.mjs";
37
38
  import "moment";
38
39
  import "@ancon/wildcat-types";
39
40
  import "./outlet/types.mjs";
@@ -49,40 +50,41 @@ export {
49
50
  n as DayOfWeek,
50
51
  x as IntervalState,
51
52
  g as IntervalType,
52
- Ot as LogLevel,
53
- xt as Logger,
53
+ ce as LogLevel,
54
+ Oe as Logger,
54
55
  O as OrderFormat,
55
- ot as brighten,
56
- U as cleanVersionString,
57
- lt as darken,
58
- Wt as decodeTableQRPayload,
59
- Y as generateBackoffWithEqualJitter,
60
- y as generateId,
61
- M as getEndpointWithVersion,
62
- ut as getFullAddressString,
63
- dt as getFullName,
64
- v as getListOutletOpeningHoursTable,
56
+ le as brighten,
57
+ G as cleanVersionString,
58
+ ie as darken,
59
+ Ee as decodeTableQRPayload,
60
+ _ as generateBackoffWithEqualJitter,
61
+ v as generateId,
62
+ Y as getEndpointWithVersion,
63
+ xe as getFullAddressString,
64
+ ue as getFullName,
65
+ P as getListOutletOpeningHoursTable,
65
66
  k as getOutletAvailabilityInfo,
66
67
  L as getOutletAvailableOrderFormats,
67
- q as getOutletDeliveryFee,
68
+ N as getOutletDeliveryFee,
68
69
  W as getOutletFormattedDistance,
69
- b as getOutletOfflineOrderFormats,
70
- H as getOutletOrderFormats,
70
+ V as getOutletOfflineOrderFormats,
71
+ C as getOutletOrderFormats,
71
72
  I as getOutletTagInformation,
72
- z as getOutletTodayOpeningTimes,
73
- yt as getPrinterType,
74
- G as getUrlAndParams,
75
- it as isDarkBackground,
73
+ w as getOutletTodayOpeningTimes,
74
+ Pe as getPrinterType,
75
+ M as getUrlAndParams,
76
+ de as isDarkBackground,
76
77
  E as isOutletAcceptingPreOrders,
77
- bt as isTerminalPrinter,
78
- It as isValidNetworkPrinter,
79
- vt as isValidPrinter,
80
- kt as isValidStarCloudPrinter,
81
- Q as isVersionALessThanB,
78
+ Le as isTerminalPrinter,
79
+ ke as isValidNetworkPrinter,
80
+ Ie as isValidPrinter,
81
+ Ve as isValidStarCloudPrinter,
82
+ U as isVersionALessThanB,
82
83
  c as isWithinFlag,
83
- rt as lighten,
84
- Lt as randomIntFromInterval,
85
- ct as sanitizeAsStringDict,
86
- _ as slugify,
87
- tt as truncate
84
+ oe as lighten,
85
+ We as randomIntFromInterval,
86
+ ve as sanitizeAsStringDict,
87
+ Q as serviceDateTimesFromOpeningHours,
88
+ ee as slugify,
89
+ re as truncate
88
90
  };
@@ -23,11 +23,9 @@ export declare type OpeningHoursTable = {
23
23
  };
24
24
  /**
25
25
  * Get an array of opening hours divided by order formats
26
- * @param outlet Outlet from nearby endpoint
26
+ * @param serviceDateTimes Array of service date times
27
27
  * @param nowISOString Optional ISO date string of current datetime
28
28
  * @returns Opening hours table
29
29
  */
30
- export default function getListOutletOpeningHoursTable(outlet: {
31
- serviceDateTimes: ServiceDateTime[];
32
- }, nowISOString?: string): OpeningHoursTable[];
30
+ export default function getListOutletOpeningHoursTable(serviceDateTimes: ServiceDateTime[], nowISOString?: string): OpeningHoursTable[];
33
31
  export {};
@@ -1 +1 @@
1
- "use strict";const W=require("moment"),p=require("@ancon/wildcat-types"),s=require("../shared/enums.js"),F=require("../shared/isWithinFlag.js"),k=require("../shared/generateId.js"),l=[{id:p.OrderFormat.EatIn,name:"eatIn"},{id:p.OrderFormat.TakeAway,name:"takeaway"},{id:p.OrderFormat.TableOrder,name:"tableOrder"},{id:p.OrderFormat.Delivery,name:"delivery"}];function v(e){const r=W.utc(e).subtract(1,"day").startOf("day"),t=[];for(let i=0,o=r;i<7;i+=1)o=o.clone().add(1,"day").startOf("day"),t.push(o.clone());return t}function S(e){return[...e].sort((r,t)=>r.isoWeekday()-t.isoWeekday())}function g(e){return e.split(":").map(Number)}function T(e,r){const[t,i]=g(e.start),[o,a]=g(e.duration);if(e.type===s.IntervalType.Interval){const n=r.clone().add(t,"hour").add(i,"minute"),u=n.clone().add(o,"hour").add(a,"minute");return{id:e.id,start:n.toISOString(),end:u.toISOString()}}if(e.type===s.IntervalType.Exception){const n=W(e.fromDate),u=W(e.toDate);if(r.isBetween(n,u,void 0,"[]")){const O=r.clone().add(t,"hour").add(i,"minute"),y=O.clone().add(o,"hour").add(a,"minute");return{id:e.id,start:O.toISOString(),end:y.toISOString(),reason:e.reason}}return null}throw new Error("Invalid interval type")}function h(e,r,t){const i={[s.DayOfWeek.Monday]:1,[s.DayOfWeek.Tuesday]:2,[s.DayOfWeek.Wednesday]:3,[s.DayOfWeek.Thursday]:4,[s.DayOfWeek.Friday]:5,[s.DayOfWeek.Saturday]:6,[s.DayOfWeek.Sunday]:7};for(let o=0;o<r.length;o+=1){const a=r[o],n=a.isoWeekday(),u=e.dayOfWeek,y=(i[u]??null)===n||u===s.DayOfWeek.Everyday;if(t[n]||(t[n]={isoWeekday:n,key:"",open:[],adjusted:[],closed:[]}),y){const d=T(e,a);d&&(t[n].key+=d.id,e.type===s.IntervalType.Interval&&e.state===s.IntervalState.Open?t[n].open.push(d):e.type===s.IntervalType.Interval&&e.state===s.IntervalState.Closed?t[n].closed.push(d):e.type===s.IntervalType.Exception&&e.state===s.IntervalState.Open?t[n].adjusted.push(d):e.type===s.IntervalType.Exception&&e.state===s.IntervalState.Closed&&t[n].closed.push(d))}}}function D(e){switch(e.type){case s.IntervalType.Exception:return k("interval-exception");case s.IntervalType.Interval:return k("interval-normal");default:return k("interval-unknown")}}function M(e){const r=e.reduce((t,i)=>(l.forEach(o=>{F(o.id,i.orderFormats)&&(t[o.id]||(t[o.id]={orderFormat:o,intervals:[]}),t[o.id].intervals.push(...i.intervals.sort((a,n)=>a.dayOfWeek-n.dayOfWeek)))}),t),{});return Object.values(r)}function H(e){return e.reduce((r,t,i)=>{const o=r.findIndex(a=>a!==t&&!a.orderFormats.some(n=>t.orderFormats.some(u=>u.id===n.id))&&a.openingHours.every(n=>t.openingHours.some(u=>u.key===n.key))&&t.openingHours.every(n=>a.openingHours.some(u=>u.key===n.key)));if(o>=0){const a=r[o];return r.splice(o,1,{...a,orderFormats:[...t.orderFormats,...a.orderFormats]}),r.splice(i,1),r}return r},[...e])}function E(e){return e.map(r=>({...r,intervals:r.intervals.map(t=>({...t,id:D(t)}))}))}function w(e,r){const t=M(E(e.serviceDateTimes)),i=v(r),o=S(i),a=t.reduce((y,d)=>(y[d.orderFormat.id]||(y[d.orderFormat.id]={}),d.intervals.reduce((I,m)=>(h(m,o,I),I),y[d.orderFormat.id]),y),{}),n={[p.OrderFormat.EatIn]:l[0],[p.OrderFormat.TakeAway]:l[1],[p.OrderFormat.TableOrder]:l[2],[p.OrderFormat.Delivery]:l[3]},u=Object.entries(a).map(([y,d])=>({orderFormats:[n[Number(y)]],openingHours:Object.entries(d).map(([I,m])=>({isoWeekday:Number(I),key:m.key,open:m.open.sort((c,f)=>c.start.localeCompare(f.start)),adjusted:m.adjusted.sort((c,f)=>c.start.localeCompare(f.start)),closed:m.closed.sort((c,f)=>c.start.localeCompare(f.start))}))}));return H(u).sort((y,d)=>y.orderFormats[0].id-d.orderFormats[0].id)}module.exports=w;
1
+ "use strict";const W=require("moment"),p=require("@ancon/wildcat-types"),s=require("../shared/enums.js"),F=require("../shared/isWithinFlag.js"),k=require("../shared/generateId.js"),c=[{id:p.OrderFormat.EatIn,name:"eatIn"},{id:p.OrderFormat.TakeAway,name:"takeaway"},{id:p.OrderFormat.TableOrder,name:"tableOrder"},{id:p.OrderFormat.Delivery,name:"delivery"}];function v(e){const r=W.utc(e).subtract(1,"day").startOf("day"),t=[];for(let i=0,o=r;i<7;i+=1)o=o.clone().add(1,"day").startOf("day"),t.push(o.clone());return t}function S(e){return[...e].sort((r,t)=>r.isoWeekday()-t.isoWeekday())}function g(e){return e.split(":").map(Number)}function h(e,r){const[t,i]=g(e.start),[o,a]=g(e.duration);if(e.type===s.IntervalType.Interval){const n=r.clone().add(t,"hour").add(i,"minute"),u=n.clone().add(o,"hour").add(a,"minute");return{id:e.id,start:n.toISOString(),end:u.toISOString()}}if(e.type===s.IntervalType.Exception){const n=W(e.fromDate),u=W(e.toDate);if(r.isBetween(n,u,void 0,"[]")){const O=r.clone().add(t,"hour").add(i,"minute"),y=O.clone().add(o,"hour").add(a,"minute");return{id:e.id,start:O.toISOString(),end:y.toISOString(),reason:e.reason}}return null}throw new Error("Invalid interval type")}function T(e,r,t){const i={[s.DayOfWeek.Monday]:1,[s.DayOfWeek.Tuesday]:2,[s.DayOfWeek.Wednesday]:3,[s.DayOfWeek.Thursday]:4,[s.DayOfWeek.Friday]:5,[s.DayOfWeek.Saturday]:6,[s.DayOfWeek.Sunday]:7};for(let o=0;o<r.length;o+=1){const a=r[o],n=a.isoWeekday(),u=e.dayOfWeek,y=(i[u]??null)===n||u===s.DayOfWeek.Everyday;if(t[n]||(t[n]={isoWeekday:n,key:"",open:[],adjusted:[],closed:[]}),y){const d=h(e,a);d&&(t[n].key+=d.id,e.type===s.IntervalType.Interval&&e.state===s.IntervalState.Open?t[n].open.push(d):e.type===s.IntervalType.Interval&&e.state===s.IntervalState.Closed?t[n].closed.push(d):e.type===s.IntervalType.Exception&&e.state===s.IntervalState.Open?t[n].adjusted.push(d):e.type===s.IntervalType.Exception&&e.state===s.IntervalState.Closed&&t[n].closed.push(d))}}}function D(e){switch(e.type){case s.IntervalType.Exception:return k("interval-exception");case s.IntervalType.Interval:return k("interval-normal");default:return k("interval-unknown")}}function M(e){const r=e.reduce((t,i)=>(c.forEach(o=>{F(o.id,i.orderFormats)&&(t[o.id]||(t[o.id]={orderFormat:o,intervals:[]}),t[o.id].intervals.push(...i.intervals.sort((a,n)=>a.dayOfWeek-n.dayOfWeek)))}),t),{});return Object.values(r)}function H(e){return e.reduce((r,t,i)=>{const o=r.findIndex(a=>a!==t&&!a.orderFormats.some(n=>t.orderFormats.some(u=>u.id===n.id))&&a.openingHours.every(n=>t.openingHours.some(u=>u.key===n.key))&&t.openingHours.every(n=>a.openingHours.some(u=>u.key===n.key)));if(o>=0){const a=r[o];return r.splice(o,1,{...a,orderFormats:[...t.orderFormats,...a.orderFormats]}),r.splice(i,1),r}return r},[...e])}function E(e){return e.map(r=>({...r,intervals:r.intervals.map(t=>({...t,id:D(t)}))}))}function w(e,r){const t=M(E(e)),i=v(r),o=S(i),a=t.reduce((y,d)=>(y[d.orderFormat.id]||(y[d.orderFormat.id]={}),d.intervals.reduce((I,m)=>(T(m,o,I),I),y[d.orderFormat.id]),y),{}),n={[p.OrderFormat.EatIn]:c[0],[p.OrderFormat.TakeAway]:c[1],[p.OrderFormat.TableOrder]:c[2],[p.OrderFormat.Delivery]:c[3]},u=Object.entries(a).map(([y,d])=>({orderFormats:[n[Number(y)]],openingHours:Object.entries(d).map(([I,m])=>({isoWeekday:Number(I),key:m.key,open:m.open.sort((f,l)=>f.start.localeCompare(l.start)),adjusted:m.adjusted.sort((f,l)=>f.start.localeCompare(l.start)),closed:m.closed.sort((f,l)=>f.start.localeCompare(l.start))}))}));return H(u).sort((y,d)=>y.orderFormats[0].id-d.orderFormats[0].id)}module.exports=w;
@@ -15,13 +15,13 @@ function M(e) {
15
15
  n = n.clone().add(1, "day").startOf("day"), t.push(n.clone());
16
16
  return t;
17
17
  }
18
- function v(e) {
18
+ function H(e) {
19
19
  return [...e].sort((r, t) => r.isoWeekday() - t.isoWeekday());
20
20
  }
21
21
  function S(e) {
22
22
  return e.split(":").map(Number);
23
23
  }
24
- function H(e, r) {
24
+ function v(e, r) {
25
25
  const [t, a] = S(e.start), [n, s] = S(
26
26
  e.duration
27
27
  );
@@ -67,12 +67,12 @@ function E(e, r, t) {
67
67
  adjusted: [],
68
68
  closed: []
69
69
  }), u) {
70
- const d = H(e, s);
70
+ const d = v(e, s);
71
71
  d && (t[o].key += d.id, e.type === y.Interval && e.state === O.Open ? t[o].open.push(d) : e.type === y.Interval && e.state === O.Closed ? t[o].closed.push(d) : e.type === y.Exception && e.state === O.Open ? t[o].adjusted.push(d) : e.type === y.Exception && e.state === O.Closed && t[o].closed.push(d));
72
72
  }
73
73
  }
74
74
  }
75
- function T(e) {
75
+ function x(e) {
76
76
  switch (e.type) {
77
77
  case y.Exception:
78
78
  return W("interval-exception");
@@ -82,7 +82,7 @@ function T(e) {
82
82
  return W("interval-unknown");
83
83
  }
84
84
  }
85
- function x(e) {
85
+ function T(e) {
86
86
  const r = e.reduce(
87
87
  (t, a) => (k.forEach((n) => {
88
88
  h(n.id, a.orderFormats) && (t[n.id] || (t[n.id] = {
@@ -129,14 +129,14 @@ function w(e) {
129
129
  ...r,
130
130
  intervals: r.intervals.map((t) => ({
131
131
  ...t,
132
- id: T(t)
132
+ id: x(t)
133
133
  }))
134
134
  }));
135
135
  }
136
136
  function B(e, r) {
137
- const t = x(
138
- w(e.serviceDateTimes)
139
- ), a = M(r), n = v(a), s = t.reduce(
137
+ const t = T(
138
+ w(e)
139
+ ), a = M(r), n = H(a), s = t.reduce(
140
140
  (u, d) => (u[d.orderFormat.id] || (u[d.orderFormat.id] = {}), d.intervals.reduce((g, f) => (E(f, n, g), g), u[d.orderFormat.id]), u),
141
141
  {}
142
142
  ), o = {
package/outlet/index.d.ts CHANGED
@@ -8,4 +8,5 @@ import isOutletAcceptingPreOrders from './isOutletAcceptingPreOrders';
8
8
  import getOutletDeliveryFee from './getOutletDeliveryFee';
9
9
  import getOutletTodayOpeningTimes from './getOutletTodayOpeningTimes';
10
10
  import getOutletOrderFormats from './getOutletOrderFormats';
11
- export { getListOutletOpeningHoursTable, getOutletTagInformation, getOutletAvailabilityInfo, getOutletOfflineOrderFormats, getOutletAvailableOrderFormats, getOutletFormattedDistance, isOutletAcceptingPreOrders, getOutletDeliveryFee, getOutletTodayOpeningTimes, getOutletOrderFormats, };
11
+ import serviceDateTimesFromOpeningHours from './serviceDateTimesFromOpeningHours';
12
+ export { getListOutletOpeningHoursTable, getOutletTagInformation, getOutletAvailabilityInfo, getOutletOfflineOrderFormats, getOutletAvailableOrderFormats, getOutletFormattedDistance, isOutletAcceptingPreOrders, getOutletDeliveryFee, getOutletTodayOpeningTimes, getOutletOrderFormats, serviceDateTimesFromOpeningHours, };
package/outlet/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./getListOutletOpeningHoursTable.js"),t=require("./getOutletTagInformation.js"),r=require("./getOutletAvailabilityInfo.js"),u=require("./getOutletOfflineOrderFormats.js"),i=require("./getOutletAvailableOrderFormats.js"),l=require("./getOutletFormattedDistance.js"),o=require("./isOutletAcceptingPreOrders.js"),O=require("./getOutletDeliveryFee.js"),n=require("./getOutletTodayOpeningTimes.js"),a=require("./getOutletOrderFormats.js");require("moment");require("@ancon/wildcat-types");require("../shared/enums.js");require("../shared/isWithinFlag.js");require("../shared/generateId.js");require("./types.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");require("lodash");exports.getListOutletOpeningHoursTable=e;exports.getOutletTagInformation=t.default;exports.getOutletAvailabilityInfo=r.default;exports.getOutletOfflineOrderFormats=u;exports.getOutletAvailableOrderFormats=i;exports.getOutletFormattedDistance=l;exports.isOutletAcceptingPreOrders=o;exports.getOutletDeliveryFee=O;exports.getOutletTodayOpeningTimes=n;exports.getOutletOrderFormats=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./getListOutletOpeningHoursTable.js"),t=require("./getOutletTagInformation.js"),r=require("./getOutletAvailabilityInfo.js"),u=require("./getOutletOfflineOrderFormats.js"),i=require("./getOutletAvailableOrderFormats.js"),l=require("./getOutletFormattedDistance.js"),o=require("./isOutletAcceptingPreOrders.js"),n=require("./getOutletDeliveryFee.js"),s=require("./getOutletTodayOpeningTimes.js"),O=require("./getOutletOrderFormats.js"),a=require("./serviceDateTimesFromOpeningHours.js");require("moment");require("@ancon/wildcat-types");require("../shared/enums.js");require("../shared/isWithinFlag.js");require("../shared/generateId.js");require("./types.js");require("./constants.js");require("./getOutletCurrentActiveOperatingHour.js");require("./getMomentFromDateAndTimeString.js");require("./searchNextOpeningMoment.js");require("lodash");exports.getListOutletOpeningHoursTable=e;exports.getOutletTagInformation=t.default;exports.getOutletAvailabilityInfo=r.default;exports.getOutletOfflineOrderFormats=u;exports.getOutletAvailableOrderFormats=i;exports.getOutletFormattedDistance=l;exports.isOutletAcceptingPreOrders=o;exports.getOutletDeliveryFee=n;exports.getOutletTodayOpeningTimes=s;exports.getOutletOrderFormats=O;exports.serviceDateTimesFromOpeningHours=a;
package/outlet/index.mjs CHANGED
@@ -1,13 +1,14 @@
1
1
  import { default as d } from "./getListOutletOpeningHoursTable.mjs";
2
2
  import { default as n } from "./getOutletTagInformation.mjs";
3
3
  import { default as F } from "./getOutletAvailabilityInfo.mjs";
4
- import { default as b } from "./getOutletOfflineOrderFormats.mjs";
5
- import { default as v } from "./getOutletAvailableOrderFormats.mjs";
4
+ import { default as c } from "./getOutletOfflineOrderFormats.mjs";
5
+ import { default as b } from "./getOutletAvailableOrderFormats.mjs";
6
6
  import { default as A } from "./getOutletFormattedDistance.mjs";
7
- import { default as I } from "./isOutletAcceptingPreOrders.mjs";
7
+ import { default as H } from "./isOutletAcceptingPreOrders.mjs";
8
8
  import { default as L } from "./getOutletDeliveryFee.mjs";
9
9
  import { default as h } from "./getOutletTodayOpeningTimes.mjs";
10
10
  import { default as k } from "./getOutletOrderFormats.mjs";
11
+ import { default as w } from "./serviceDateTimesFromOpeningHours.mjs";
11
12
  import "moment";
12
13
  import "@ancon/wildcat-types";
13
14
  import "../shared/enums.mjs";
@@ -22,12 +23,13 @@ import "lodash";
22
23
  export {
23
24
  d as getListOutletOpeningHoursTable,
24
25
  F as getOutletAvailabilityInfo,
25
- v as getOutletAvailableOrderFormats,
26
+ b as getOutletAvailableOrderFormats,
26
27
  L as getOutletDeliveryFee,
27
28
  A as getOutletFormattedDistance,
28
- b as getOutletOfflineOrderFormats,
29
+ c as getOutletOfflineOrderFormats,
29
30
  k as getOutletOrderFormats,
30
31
  n as getOutletTagInformation,
31
32
  h as getOutletTodayOpeningTimes,
32
- I as isOutletAcceptingPreOrders
33
+ H as isOutletAcceptingPreOrders,
34
+ w as serviceDateTimesFromOpeningHours
33
35
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ancon/wildcat-utils",
3
- "version": "1.18.0",
3
+ "version": "1.18.2",
4
4
  "private": false,
5
5
  "main": "index.js",
6
6
  "module": "index.mjs",