@publidata/utils-opening-hours
Version:
Collection of methods to handle opening hours
1 lines • 23.6 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("dayjs"),require("opening_hours"),require("dayjs/plugin/customParseFormat"),require("dayjs/plugin/isBetween"),require("dayjs/plugin/localizedFormat"),require("dayjs/plugin/relativeTime"),require("dayjs/locale/fr"),require("@publidata/utils-dates")):"function"==typeof define&&define.amd?define(["dayjs","opening_hours","dayjs/plugin/customParseFormat","dayjs/plugin/isBetween","dayjs/plugin/localizedFormat","dayjs/plugin/relativeTime","dayjs/locale/fr","@publidata/utils-dates"],t):"object"==typeof exports?exports["Utils-opening-hours"]=t(require("dayjs"),require("opening_hours"),require("dayjs/plugin/customParseFormat"),require("dayjs/plugin/isBetween"),require("dayjs/plugin/localizedFormat"),require("dayjs/plugin/relativeTime"),require("dayjs/locale/fr"),require("@publidata/utils-dates")):(e.Publidata=e.Publidata||{},e.Publidata["Utils-opening-hours"]=t(e.dayjs,e.opening_hours,e["dayjs/plugin/customParseFormat"],e["dayjs/plugin/isBetween"],e["dayjs/plugin/localizedFormat"],e["dayjs/plugin/relativeTime"],e["dayjs/locale/fr"],e.Publidata["Utils-dates"]))}(this,(function(e,t,n,a,r,s,o,u){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var r=t[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(a,r,function(t){return e[t]}.bind(null,r));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t){var n={place_id:"178940152",licence:"Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright",osm_type:"relation",osm_id:"8649",lat:"48.6443057",lon:"2.7537863",display_name:"Île-de-France, France métropolitaine, France",address:{state:"Île-de-France",country:"France",country_code:"fr"},boundingbox:["48.1201456","49.241431","1.4462445","3.5592208"]};e.exports={get:()=>n,set:e=>{n=e}}},function(e,t,n){var a=n(0),r=n(4),s=n(5),o=n(6),u=n(7);n(8),a.extend(r),a.extend(s),a.extend(o),a.extend(u),a.locale("fr");var i=n(1),{getDate:l,getDaysBefore:g}=n(9),p=n(2),d=n(10),m=new Date,c={minMonths:["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],maxMonths:["january","february","march","april","may","june","july","august","september","october","november","december"],minWeekdays:["sun","mon","tue","wed","thu","fri","sat"],maxWeekdays:["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],formatdate:(e,t,n)=>{var a=new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=(t.getTime()-a.getTime())/1e3/60/60/24,s=[],o=Math.floor((t.getTime()-e.getTime())/1e3/60);o<60&&s.push({key:"+minutes_minutes",params:{count:o}});var u=o%60;(o=Math.floor(o/60))<24&&""===s&&(s.push({key:"in"}),s.push({key:"+hours_hours",params:{count:o,hours:o}}),s.push({key:"and"}),s.push({key:"+minutes_minutes",params:{count:u,minutes:c.pad(u)}}));var i=o%24;(o=Math.floor(o/24))<14&&""===s?(s.push({key:"in"}),s.push({key:"in_+days_days",params:{count:o,days:o}}),s.push({key:"and"}),s.push({key:"+hours_hours",params:{count:i,hours:i}})):""===s&&(s.push({key:"in"}),s.push({key:"in_+days_days",params:{count:o,days:o}}));var l=[];(n?r<1:r<=1)?l.push({key:"today"}):(n?r<2:r<=2)?l.push({key:"tomorrow"}):(n?r<7:r<=7)&&l.push({key:"next_+day",params:{day:{key:c.maxWeekdays[t.getDay()]}}});var g=c.maxMonths[t.getMonth()],p={key:"+month_+date",params:{date:t.getDate(),month:{key:g}}},d=[];return 0!==l.length&&d.push(l),0===l.length&&0!==p.length&&d.push(p),0!==s.length&&d.push(s),d},pad:e=>e<10?"0".concat(e):e,plural:(e,t)=>e>1?"".concat(t,"s"):t,printDate:e=>"".concat(a(e).format("DD/MM/YYYY")),printTime:e=>a(e).format("HH:mm"),drawTable:(e,t,n,r)=>{var s=new Date(t);(s.getDay()+6)%7==6&&s.setDate(s.getDate()-7),s.setHours(0,0,0,0);var o=new Date(s);o.setDate(o.getDate()-(o.getDay()+!r));for(var u=[],i=0;i<7;i+=1){o.setDate(o.getDate()+1),e.setDate(o);var l=e.getState(),g=e.getUnknown(),p=o,d=o;u[i]={display:{day:"",date:""},date:new Date(o),html:"",times:[],text:[]};for(var m=0;e.advance()&&d.getTime()-o.getTime()<864e5;){d=e.getDate();var y=p.getTime()-o.getTime(),h=d.getTime()-o.getTime(),f=[],v=[];if(h>864e5&&(h=864e5),h*=.1/60/60/24,99.93055555555556!==(y*=.1/60/60/24)){m+=h-y;var x='<div class="timebar '.concat(l||g?"open":"closed",'" style="width: calc(').concat(h-y,'% - 2px)"></div>');u[i].html+=x,(l||g)&&(f.push({key:"open_from_+time_to_+time2",params:{time:c.printTime(p),time2:p.getDay()!==d.getDay()?"24:00":c.printTime(d)}}),p.getDay()===d.getDay()&&"00:00"===c.printTime(p)&&"23:59"===c.printTime(d)?v.push({key:"all_day_long"}):(v.push({key:"open"}),v.push({key:"beginning_at"}),v.push({value:c.printTime(p)})),u[i].text.push(f)),u[i].times.push({isOpen:l,to:{value:d,percent:h},from:{value:p,percent:y},text:f,output:v,html:x,percent:h-y})}p=d,l=e.getState(),g=e.getUnknown()}if(n||(l=!1),!n&&0===u[i].text.length){var w='<div class="timebar '.concat(l||g?"open":"closed",'" style="width:100%"></div>'),D=l?["Ouvert de 00:00 à 24:00"]:["Fermé"];u[i].times.push({isOpen:l,to:{value:d,percent:100},from:{value:p,percent:0},text:D,html:w,percent:100}),u[i].html=w,u[i].text=D}if((""===u[i].html||m>0&&m<100)&&u[i].times.push({isOpen:!1,from:{value:p,percent:m},to:{value:a(d).hour(23).minute(59).second(59).millisecond(99),percent:100},text:"",percent:100-m}),""===u[i].html){u[i].html+='<div class="timebar closed" style="width: 100%"></div>'}else if(m>0&&m<100){var k='<div class="timebar closed" style="width: calc('.concat(100-m,'% - 2px)"></div>');u[i].html+=k}}var _="";for(var O in _+="<table>",_+='\n <tr class="header">\n <td class="day">\n Date | Jour\n </td>\n <td>Plages horaire</td>\n <td>Commentaires</td>\n </tr>',u){var b=a(u[O].date).isSame(a(),"day"),T=a(),C=100*(T.second()+60*T.minute()+3600*T.hour())/60/24/60,S=(u[O].date.getDay()+1)%7===s.getDay(),H=b?' class="today"':S?' class="endweek"':"",j=c.printDate(u[O].date),M={key:c.maxWeekdays[a(u[O].date).day()]};u[O].display.date=j,u[O].display.weekday=M,u[O].display.isToday=b,u[O].display.todayPercent=C,u[O].display.comment=u[O].text.join(", "),_+="<tr".concat(H,'><td class="day ').concat(u[O].date.getDay()%6==0?"weekend":"workday",'">'),_+="<b>".concat(u[O].display.date,"</b> ").concat(u[O].display.weekday),_+='</td><td class="times">',_+=u[O].html,b&&(_+='<div class="today-marker" style="left: '.concat(u[O].display.todayPercent,'%"></div>')),_+="</td><td>",_+=u[O].display.comment||" ",_+="</td></tr>"}return{table:u,html:_+="</table>"}},drawTableAndComments:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=n?new Date(n):new Date,o=t.getDate(),u=t.getUnknown(),i=e.getState(s),l=t.getStateString(!0),g=t.advance(),p=e.getNextChange(s),d=p?e.getState(p):null,m=t.getStateString(!1),y=c.drawTable(t,o,g,r),h=e.isWeekStable(s);if(!n||a)for(var f=!1;i===d&&!f;)l=t.getStateString(!0),(p=e.getNextChange(p)).getTime()-s.getTime()>=94608e6?(f=!0,l="closed",m="close",g=!1,p=null):(m=t.getStateString(!1),y=c.drawTable(t,o,g),h=e.isWeekStable(p),i=e.getState(p));var v={date:o,is:{open:"closed"!==l,closed:"closed"===l,text:["open"===l?{key:"open"}:{key:"closed"},g?{key:"currently"}:{key:"permanently"}],comment:t.getComment(),stable:h,stableText:h?{key:"the_schedule_is_valid_in_any_given_week"}:{key:"please_note_this_schedule_may_change_for_other_weeks"}},will:{change:g,open:"open"===m,unknow:"unknow"===m,close:"close"===m,text:[],nextDate:p},html:[],weekdays:y};if(void 0!==v.is.comment&&(u?v.html.push({key:"depends_on_+comment",params:{comment:v.is.comment}}):(v.html.push({value:", "}),v.html.push({key:"comment"}),v.html.push({value:": ".concat(v.is.comment)}))),v.will.change&&p){var x=[];"string"!=typeof t.getComment()&&"string"!=typeof comment||(x.push({value:", "}),x.push({key:"comment"}),x.push({value:": "}),"string"==typeof t.getComment()?x.push({value:'"'.concat(t.getComment(),'"')}):x.push({key:"undefined"}));var w={timestring:c.formatdate(o,p,!0),comment:x};v.will.close&&(v.will.text.push({key:"but_will_close"}),v.will.text.push({value:w.timestring}),v.will.text.push({value:w.comment})),v.will.unknow&&(v.will.text.push({key:"but_may_open"}),v.will.text.push({value:w.timestring}),v.will.text.push({value:w.comment})),v.will.open&&(v.will.text.push({key:"but_will_open"}),v.will.text.push({value:w.timestring}),v.will.text.push({value:w.comment}))}return v.html+=y.html,v}},y=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=w(e),r=t||new Date,s=new i(a,p.get(),2),o=s.getIterator(new Date(r));return c.drawTableAndComments(s,o,r,!1,n)},h=(e,t)=>{var n=w(e),r=new i(n,p.get()),s=t||new Date,o=r.getState(s),u=r.getIterator(s),l=u.advance(),{nextDate:g}=c.drawTableAndComments(r,u,s,!0).will,d=g?a(g).fromNow(!0):null,m=g?d.split(" "):null,y=g?m&&m[0]<=60&&"minutes"===m[1]:null;return o&&!y?{string:{key:"open"},state:"opened",isOpen:o,nextChange:g}:o&&y?{string:{key:"closing"},state:"closing",isOpen:o,nextChange:g}:!o&&y?{string:{key:"opening"},state:"opening",isOpen:o,nextChange:g}:o||l&&g?{string:{key:"closed"},state:"closed",isOpen:o,nextChange:g}:{string:{key:"long_term_closure"},state:"closed_forever",isOpen:o,nextChange:g}},f=e=>{var t=(e.match(/-(\d){1,2}\/(\d)/g)||[]).map(e=>Number(e[e.length-1]));return Math.max(0,...t)},v=e=>{if(!e)return!1;var t=new Date,n=t.getFullYear(),a=new i(e,p.get()),r=a.getNextChange(t);if(!r)return!1;if(a.getState(r))return!0;var s=a.getIterator(t),o=new Date(n+2,0,1);for(o.setHours("00","00","00");r;){if("open"===s.getStateString())return!0;r=s.advance(o)}return!1},x=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date,n=w(e),r=new i(n,p.get()),s=new Date(t);s.setHours("00","00","00");var o=new Date(t);o.setHours("23","59","59");var u=r.getOpenIntervals(s,o);if(u.length<=1)return!1;var l=a(t),g=null;if(l.isBefore(u[0][1]))return!0;if(l.isAfter(u[u.length-1][1]))return!1;u.forEach((e,t)=>{l.isBetween(e[0],e[1])&&(g=t)});var d=u[g+1]||null;return!!d},w=e=>e&&"off"!==e&&0!==e.length?e.replace(/ ?"[^"]*" ?/g,""):"24/7 off",D=(e,t,n)=>{for(var r=new Date(t||m),s=new Date(n||m),o=0,u=w(e),l=new i(u,p.get()),g=l.getNextChange(r);g&&!a(g).isAfter(s);){l.getState(g)&&o++,g=l.getNextChange(g)}return o},k=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!e)return t?String(t):null;var n=/[1,2][0-9]{3}\s/g,a=e.match(n);return!a&&t?String(t):a[0].trim()},_=e=>{var t=k(e,m.getFullYear()),n=new Date(t,0,1),a=new Date(t,11,31);return 1===D(e,n,a)};e.exports={OpeningHoursTable:c,displayOpenings:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=w(e);if("24/7 off"===n)return{string:{key:"unknown_schedules"},open:!1};var r=new i(n,p.get()),s=r.getState(),o=r.getUnknown(),u=r.getComment(),g=r.getNextChange(),d=[];if(o?(d.push({key:"might_be_open"}),u&&d.push({key:"depends_on_+comment",params:{comment:u}})):(r.getState()?d.push({key:"open"}):d.push({key:"closed"}),u&&d.push({value:", ".concat(u)})),void 0===g)s?d.push({key:"but_will_never_close"}):d.push({key:"but_will_never_open"});else if(t){var m=a(g).format("HH[h]mm");d.push({key:"until",params:{moment:m}})}else s?r.getUnknown(g)?d.push({key:"but_may_close"}):d.push({key:"but_will_close"}):r.getUnknown(g)?d.push({key:"but_may_open"}):d.push({key:"but_will_open"}),d.push({value:l(g,!0,"à")});return{output:d,open:r.getState()}},getOpenIntervals:e=>{var t=w(e);if("24/7 off"===e)return null;var n=new Date;n.setHours("00","00","00");var a=new Date;a.setHours("23","59","59");var r=new i(t,p.get());return[r.getOpenIntervals(n,a)[0],r.getOpenIntervals(n,a)[1]]},getRegularOpeningDays:e=>{var t=[],n="";return e.split(" ")[0].split(",").forEach(e=>{"Mo"===e?(n={key:"monday"},t.push(n)):"Tu"===e?(n={key:"tuesday"},t.push(n)):"We"===e?(n={key:"wednesday"},t.push(n)):"Th"===e?(n={key:"thursday"},t.push(n)):"Fr"===e?(n={key:"friday"},t.push(n)):"Sa"===e?(n={key:"saturday"},t.push(n)):"Su"===e&&(n={key:"sunday"},t.push(n))}),t},getTable:y,getOhYear:k,openOnceAYear:_,getCollectsOpeningsDates:e=>{var t=[],n={},r=w(e);if("24/7 off"!==r){for(var s=new i(r),o=s.getNextChange(),u=s.getIterator(),l=0;l<100;l++)u.advance()&&(n={date:a(u.getDate()).format("YYYY-MM-DD"),hours:{key:"all_day_long"}},t.push(n));return n={date:a(o).format("YYYY-MM-DD"),hours:{key:"all_day_long"}},t.push(n),t}return n={date:{key:"unknown_schedules"}},t.push(n),t},collectTimeRewritting:e=>{var t=e.split(" ");if("Ouvert mais ne fermera jamais"===e)return"Ouvert 24h/24 - 7j/7";if("Fermé mais n'ouvrira jamais"===e)return"Aucune collecte programmée";if("Ouvert mais fermera le"==="".concat(t[0]," ").concat(t[1]," ").concat(t[2]," ").concat(t[3])){var n=e.replace("Ouvert mais fermera",i18next.t("next_collect"));n=n.replace(" le "," ");for(var a=0;a<n.split(" ").length;a++)"à"===n.split(" ")[a]&&"23h59"===n.split(" ")[a+1]&&(n=(n=n.replace("à","")).replace("23h59",""));return n}if("Fermé mais ouvrira le"==="".concat(t[0]," ").concat(t[1]," ").concat(t[2]," ").concat(t[3])){for(var r=e.replace("Fermé mais ouvrira",i18next.t("next_collect")),s=0;s<r.split(" ").length;s++)"à"===r.split(" ")[s]&&"00h00"===r.split(" ")[s+1]&&(r=(r=r.replace("à","")).replace("00h00",""));return r}return e},getCollectsDate:(e,t)=>{var n=w(e),r=a(t).year();if("24/7 off"!==n){var s=n.getIterator(new Date(a(t).year(r)));return c.drawTableAndComments(n,s,t)}return null},getOpeningState:h,handleCustomOpeningDateOutput:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Date,r=w(e);if("24/7 off"===r)return{output:{key:"no_schedules"},state:"disabled"};var s,o=new i(r,p.get()),u=new Date(n);if(v(e)){var l=f(e),d=new Date,m=o.getState(d);if(m)s=d;else if(l){var c=7*l,y=Array.from({length:c},(e,t)=>{var n=new Date((new Date).setDate(u.getDate()+t));return o.getNextChange(n)});y=y.filter(e=>e),s=new Date(Math.min(...y))}if(!s)for(s=o.getNextChange(u);!o.getState(s)&&s;)s=o.getNextChange(s)}if(!s)return{string:{key:"long_term_closure"},state:"closed_forever"};var x=o.getState(u),{nextChange:D,isOpen:k}=h(r,u),O=a(s).isSame(a(u),"day")||x,b=a(u).isBefore(s,"day")&&1===g(s),T=a(u).isBefore(s,"day")&&g(s)>1,C=new Date(D);C.setHours("00","00","00");var S=new Date(D);S.setHours("23","59","59");var H=o.getOpenIntervals(C,S)[0],j=H&&H[0]?H[0].getHours():null,M=H&&H[0]?H[0].getMinutes():null,I=H&&H[1]?H[1].getHours():null,N=H&&H[1]?H[1].getMinutes():null,F=u.getHours(),P=D?D.getHours():null,Y={nextDate:s,nextDateOpeningTimeInHours:j,nextDateOpeningTimeInMinutes:M,nextDateClosingTimeInHours:I,nextDateClosingTimeInMinutes:N};if(t){var q,{morningStartInHours:A,afternoonStartInHours:B,eveningStartInHours:U}=t,L=null!==j?j:P;if(L>=A&&L<B?q="morning":L>=B&&L<U?q="afternoon":L>=U&&(q="evening"),O)return{output:{key:"today"},state:"warning",nextDateOpeningTimeInHours:j,nextDate:Y,translatedNextOpeningTime:q};if(b)return{output:{key:"tomorrow"},state:"success",nextDateOpeningTimeInHours:j,nextDate:Y,translatedNextOpeningTime:q};if(_(e))return{output:{key:"the_+date",params:{date:a(s).format("LL")}},state:"disabled",nextDateOpeningTimeInHours:j,nextDate:Y,translatedNextOpeningTime:q};if(T){var W=g(s)<=30,z=W?{key:"in_+days_days",params:{count:g(s),days:g(s)}}:{key:"from_+date",params:{date:a(s).format("LL")}};return{output:z,state:"disabled",nextDateOpeningTimeInHours:j,nextDate:Y,translatedNextOpeningTime:q}}return{translatedNextOpeningTime:q}}if(0===j&&M||23===I&&59===N){if(O)return{output:{key:"today"},state:"warning",nextDateOpeningTimeInHours:j,nextDate:Y};if(b)return{output:{key:"tomorrow"},state:"success",nextDateOpeningTimeInHours:j,nextDate:Y}}return O&&j<=12&&F<j?{output:{key:"this_morning"},state:"warning",nextDate:Y}:O&&j>=12&&j<18&&F>=12?{output:{key:"this_afternoon"},state:"warning",nextDate:Y}:O&&j>=12&&j<18&&F<j&&F<=12?{output:{key:"this_afternoon"},state:"success",nextDate:Y}:O&&j>=18&&j<=23&&F<j&&F>=18?{output:{key:"this_evening"},state:"warning",nextDate:Y}:O&&j>=18&&F<j&&F<=18?{output:{key:"this_evening"},state:"success",nextDate:Y}:b&&!k&&P>=0&&P<12?{output:{key:"tomorrow_morning"},state:"success",nextDate:Y}:b&&!k&&P>=12&&P<18?{output:{key:"tomorrow_afternoon"},state:"success",nextDate:Y}:b&&!k&&P>=18&&P<=23?{output:{key:"tomorrow_evening"},state:"success",nextDate:Y}:O&&j<=12&&I<=23&&F<=P||k?{output:{key:"today"},state:"warning",nextDate:Y}:_(e)?{output:{key:"the_+date",params:{date:a(s).format("LL")}},state:"disabled",nextDateOpeningTimeInHours:j,nextDate:Y}:T?{output:{key:"in_+days_days",params:{count:g(s),days:g(s)}},state:"disabled",nextDateOpeningTimeInHours:j,nextDate:Y}:{output:{key:"no_schedules"},state:"disabled"}},getOpeningWeekDays:e=>{var t=[];if(!e)return t;if("24/7"===e)return[{key:"monday"},{key:"tuesday"},{key:"wednesday"},{key:"thursday"},{key:"friday"},{key:"saturday"},{key:"sunday"}];var n=y(e),{weekdays:a}=n;return a&&a.table.map(e=>(e.times&&e.times.map(n=>{var a=t.indexOf(e.display.weekday);return n.isOpen&&-1===a&&t.push(e.display.weekday),t}),t)),t},willOpenAgain:v,getOpeningCountsFromRange:D,willOpenAgainToday:x,getTodaysNextOpening:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date,n=w(e),r=new i(n,p.get());if(!x(e,t))return null;var s=new Date(t);s.setHours("00","00","00");var o=new Date(t);o.setHours("23","59","59");var u=r.getOpenIntervals(s,o),l=a(t),g=l.isBefore(u[0][0]);if(g)return u[0][0];var d=null;return u.forEach((e,t)=>{l.isAfter(e[0])&&(d=t+1)}),u[d][0]||null},cleanOpeningHoursString:w,displayCustomOpenings:(e,t)=>{var n=w(e);if("24/7 off"===e)return{string:t.unknown,open:!1};var r=new i(n,p.get()),s=r.getState(),o=r.getUnknown(),u=r.getComment(),g=r.getNextChange(),{open:d,closed:m}=t,c=[];return o?c.push({value:t.unknown}):(r.getState()?d.state.display&&c.push({value:d.state.string}):d.state.display&&c.push({value:m.state.string}),u&&c.push({value:", (".concat(u,")")})),void 0!==g?s&&d.next_change.display?(c.push({value:" ".concat(d.next_change.string)}),d.next_change.date?"aujourd'hui"===l(g)?c.push({key:"today"}):c.push({key:"the_+date",params:{date:l(g)}}):c.push({value:""}),d.next_change.time?c.push({key:"at_+time",params:a(g).format("HH[h]mm")}):c.push({value:""})):!s&&m.next_change.display&&(c.push({value:" ".concat(m.next_change.string)}),m.next_change.date?"aujourd'hui"===l(g)?c.push({key:"today"}):c.push({key:"the_+date",params:{date:l(g)}}):c.push({value:""}),m.next_change.time?c.push({key:"at_+time",params:{time:a(g).format("HH[h]mm")}}):c.push({value:""})):(function(e){throw new Error('"'+e+'" is read-only')}("output"),c=s?d.next_change.undefined:m.next_change.undefined),{output:c,open:r.getState()}},getAvailabilityState:e=>{var t=w(e);if("24/7 off"===t)return{output:{key:"no_schedules"},state:"disabled"};var n=new i(t,p.get()),r=new Date,{nextDate:s}=y(t).will,{nextChange:o,isOpen:u}=h(t),l=a(s).format("DD-MM")===a(r).format("DD-MM"),d=a(r).isBefore(s,"day")&&1===g(s),m=a(r).isBefore(s,"day")&&g(s)>1,c=new Date(o);c.setHours("00","00","00");var f=new Date(o);f.setHours("23","59","59");var v=n.getOpenIntervals(c,f)[0],x=v&&v[0]?v[0].getHours():null,D=v&&v[0]?v[0].getMinutes():null,k=v&&v[1]?v[1].getHours():null,_=v&&v[1]?v[1].getMinutes():null,O=r.getHours(),b=o?o.getHours():null,T={nextDate:s,nextDateOpeningTimeInHours:x,nextDateOpeningTimeInMinutes:D,nextDateClosingTimeInHours:k,nextDateClosingTimeInMinutes:_};if(0===x&&D||23===k&&59===_){if(l)return{output:{key:"available"},state:"success",nextDateOpeningTimeInHours:x,nextDate:T,nextChange:o};if(d)return{output:{key:"tomorrow"},state:"warning",nextDateOpeningTimeInHours:x,nextDate:T,nextChange:o}}return m?{output:{key:"in_+days_days",params:{count:g(s),days:g(s)}},state:"disabled",nextDateOpeningTimeInHours:x,nextDate:T,nextChange:o}:l&&x<=12&&O<x?{output:{key:"this_morning"},state:"warning",nextDate:T,nextChange:o}:l&&x>=12&&x<18&&O>=12||l&&x>=12&&x<18&&O<x&&O<=12?{output:{key:"this_afternoon"},state:"warning",nextDate:T,nextChange:o}:l&&x>=18&&x<=23&&O<x&&O>=18||l&&x>=18&&O<x&&O<=18?{output:{key:"this_evening"},state:"warning",nextDate:T,nextChange:o}:d&&!u&&b>=0&&b<12?{output:{key:"tomorrow_morning"},state:"warning",nextDate:T,nextChange:o}:d&&!u&&b>=12&&b<18?{output:{key:"tomorrow_afternoon"},state:"warning",nextDate:T,nextChange:o}:d&&!u&&b>=18&&b<=23?{output:{key:"tomorrow_evening"},state:"warning",nextDate:T,nextChange:o}:l&&x<=12&&k<=23&&O<=b||u?{output:{key:"available"},state:"success",nextDate:T,nextChange:o}:{output:{key:"no_schedules"},state:"disabled"}},getPublicHolidaysFromDateMonth:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p.get(),n=new Date(e),a=n.getMonth();t.address&&t.address.county&&(t.address.state=t.address.county);var r=[],s=new i("PH",t),o=new Date(n);o.setMonth(a-1);var u=o.getMonth(),l=new Date(n);l.setMonth(a+1);var g,d=l.getMonth();for(g=s.getNextChange(o);g.getMonth()===u||g.getMonth()===d||g.getMonth()===a;){if(s.getState(g)){var m=s.getComment(g);r.push({date:g,name:m})}g=s.getNextChange(g)}return r},getLastKnownOpeningDate:e=>{var t,n=w(e),a=(null===(t=n.match(/\b[1-2][0-9]{3}\b/g))||void 0===t?void 0:t.map(Number))||[];if(a.length){var r=Math.min(...a),s=Math.max(...a),o=new Date(r-1,0,1);o.setHours(0,0,0,0);var u=new Date(s+1,0,1);u.setHours(0,0,0,0);var l=new i(n,p.get()).getOpenIntervals(o,u);if(l.length){var[g]=l[l.length-1];return g||void 0}}},getCachedOpeningHours:d.getCachedOpeningHours,getOpeningStateAt:d.getOpeningStateAt,getNextOpeningChange:d.getNextOpeningChange,hasOpenIntervalOnDay:d.hasOpenIntervalOnDay,nominatim:p}},function(e,t){e.exports=n},function(e,t){e.exports=a},function(e,t){e.exports=r},function(e,t){e.exports=s},function(e,t){e.exports=o},function(e,t){e.exports=u},function(e,t,n){var a=n(1),r=n(0),s=n(2),o=new Map;function u(e,t){if(!e)return null;var n=null!=t?t:s.get(),r="".concat(e,"\0").concat(function(e){if(!e)return"default";try{return JSON.stringify(e)}catch(e){return"default"}}(n));if(o.has(r))return o.get(r);try{var u=new a(e,n);return o.set(r,u),u}catch(e){return null}}e.exports={getCachedOpeningHours:u,getOpeningStateAt:function(e,t,n){var a=u(e,n);if(!a)return null;var r=t instanceof Date?t:new Date(t);return a.getState(r)},getNextOpeningChange:function(e,t,n){var a=u(e,n);if(!a)return null;var r=t instanceof Date?t:new Date(t);return a.getNextChange(r)},hasOpenIntervalOnDay:function(e,t,n){var a=u(e,n);if(!a)return!1;var s=t.startOf("day").toDate();if(a.getState(s))return!0;var o=a.getNextChange(new Date(s.valueOf()-1));return null!==o&&r(o).isSame(t,"day")&&a.getState(o)}}}])}));