@rero/rero-ils-ui
Version:
User interface for RERO integrated library system (RERO ILS).
2 lines (1 loc) • 3.12 kB
JavaScript
import{a}from"./chunk-MTJX6JRK.js";import{u as r}from"./chunk-WKOKZ3JO.js";var n=(function(e){return e.monday="monday",e.tuesday="tuesday",e.wednesday="wednesday",e.thursday="thursday",e.friday="friday",e.saturday="saturday",e.sunday="sunday",e})(n||{});var d=class e{get closedDays(){return this.opening_hours.filter(t=>!t.is_open).map(t=>e.convertDayToWeekDay(t.day)).filter(t=>t!==null)}constructor(t){this.$schema=null,this.pid=null,this.name=null,this.email=null,this.address=null,this.code=null,this.communication_language=null,this.opening_hours=[],this._initOpeningHours(),t&&this.update(t),this.exception_dates||(this.exception_dates=[]),this.exception_dates=this.exception_dates.map(s=>{if(s.repeat)for(;e.isExceptionDateOver(s,!1);)s=e._incrementExceptionDate(s);return s}),this.exception_dates=this.exception_dates.sort((s,i)=>a.fromISO(i.start_date)-a.fromISO(s.start_date))}update(t){Object.assign(this,t),this._cleanOpeningHours(),this._reorderOpeningHours(),this._cleanAcquisitionSettings()}static isExceptionDateOver(t,s=!0){return t.repeat&&s?!1:(t.end_date?a.fromISO(t.end_date):a.fromISO(t.start_date))<a.now()}_initOpeningHours(){let t=Object.keys(n);for(let s=0;s<7;s++)this.opening_hours.push({day:t[s],is_open:!1,times:[]})}_cleanOpeningHours(){this.opening_hours.forEach(t=>{let s=[];t.times.map(i=>{i.start_time!=="00:00"&&i.end_time!=="00:00"&&s.push(i)}),t.is_open=s.length!==0,t.times=s})}_reorderOpeningHours(){this.opening_hours.forEach(t=>{t.times.length>1&&t.times.sort((s,i)=>a.fromFormat(s.start_time,"HH:mm").diff(a.fromFormat(i.start_time,"HH:mm")))})}static _incrementExceptionDate(t){if(!t.repeat)throw new Error("Unable to increment not repeatable exception date.");let s={daily:"days",weekly:"weeks",monthly:"months",yearly:"years"},i=Object.hasOwn(s,t.repeat.period)?s[t.repeat.period]:"days";return typeof t.start_date=="string"&&(t.start_date=a.fromFormat(t.start_date,"yyyy-LL-dd")),t.start_date=t.start_date.plus({[i]:t.repeat.interval}).toISODate(),t.end_date&&(typeof t.end_date=="string"&&(t.end_date=a.fromFormat(t.end_date,"yyyy-LL-dd")),t.end_date=t.end_date.plus({[i]:t.repeat.interval}).toISODate()),t}_cleanAcquisitionSettings(){this.acquisition_settings&&(Object.keys(this.acquisition_settings).forEach(t=>{let s=this.acquisition_settings[t];Object.keys(s).length==1&&s.address&&Object.keys(s.address).length==1&&s.address.country&&delete this.acquisition_settings[t]}),Object.keys(this.acquisition_settings).length===0&&delete this.acquisition_settings),this.serial_acquisition_settings&&(Object.keys(this.serial_acquisition_settings).forEach(t=>{let s=this.serial_acquisition_settings[t];Object.keys(s).length==1&&s.address&&Object.keys(s.address).length==1&&s.address.country&&delete this.serial_acquisition_settings[t]}),Object.keys(this.serial_acquisition_settings).length===0&&delete this.serial_acquisition_settings)}static convertDayToWeekDay(t){let s={sunday:r.Sunday,monday:r.Monday,tuesday:r.Tuesday,wednesday:r.Wednesday,thursday:r.Thursday,friday:r.Friday,saturday:r.Saturday};return t.toLowerCase()in s?s[t.toLowerCase()]:null}};export{n as a,d as b};