<?xml version='1.0' encoding='UTF-8'?><uidget><metadata><name>Hours</name><description>Display your opening hours</description><help><![CDATA[
			With the Hour block, you can display your regular opening hours and schedule exceptional closed days or specific hours.]]></help><api_version>1.0</api_version><size height='310' width='250' /><blog en='1157' /><server>local://HourCptServer</server></metadata><view><content>&lt;div class=&quot;uih_view&quot;&gt;
  &lt;h3 class=&quot;title_uih_view font_title_3&quot;&gt;&lt;/h3&gt;
  &lt;div class=&quot;uih_open_or_close font_title_4&quot;&gt;&lt;/div&gt;
  &lt;div class=&quot;uih_all_days_week&quot;&gt;&lt;/div&gt;
  &lt;div class=&quot;uih_holiday_exist&quot; style= &quot;font-size: 10px; text-align: right;&quot;&gt;&lt;/div&gt;
  &lt;div class=&quot;warning_different_time_zone&quot; style= &quot;font-size: 10px;&quot;&gt;&lt;/div&gt;
&lt;/div&gt;</content><properties><inputText default='"Opening Hours"' name='title_view' title='Title' /><trigger_view help='Set your regular opening hours' icon='ui_menu' method='init_panel' text='Regular Hours' url='/cpt/add_hours' /><trigger_view help='Schedule your holidays' icon='ui_menu' method='init_holidays' text='Days off' url='/cpt/holidays' /><trigger_view help='Schedule your exceptional openings' icon='ui_menu' method='init_exceptions' text='Exceptional Openings' url='/cpt/exceptional_opening' /><checkbox class='uic_prop_slider_anim' default='true' help='Display the opening hours or only Opened/Closed' name='only_open_or_close' value='Display hours' /><checkbox class='uic_prop_slider_anim regroup_days' default='false' help='Automatically group the consecutive days with the same hours' name='regroup_days' value='Group similar days' /><checkbox class='uic_prop_slider_anim start_from_today' default='false' help='First day displayed can be either the first day of the week or the current day (e.g. when your website is visited on Friday, the hours are displayed from Friday, then, Saturday, ... until the next Thursday).' name='start_from_today' value='Start with current day' /></properties><design_properties><checkbox default='true' help='If checked, the height of the block will automatically be adapted to its content.' name='auto_size' value='Auto-Size' /><colors background='' colspan='1' default='[&apos;rgba(255, 0, 0, 1)&apos;]' display='' elts='1' name='closed_color' title='Text color when Closed' /><checkbox default='true' name='toggle_odd' value='Alternative colors' /><colors background='' class='odd_bgcolor' colspan='1' default='[&apos;rgba(125, 125, 125, 0.1)&apos;]' display='' elts='1' name='odd_bgcolor' title='Second background color' /><checkbox class='toggle_odd_font_color' default='false' name='toggle_odd_font_color' value='Second font color' /><colors background='' class='odd_font_color' colspan='1' default='[&apos;rgba(0, 0, 0, 0.8)&apos;]' display='' elts='1' name='font_color_hour' title='Font color' /><align default='&apos;left&apos;' name='align' title='Title alignment' with_justify='false' /></design_properties></view><script>UI_List.UI_Hour={initialize:function(a){this.cpt=a
},onDisplay:function(b){this.format_hour=&quot;hh:mm A&quot;;
this.format_date=&quot;MM/DD/YYYY&quot;;
this.size_getter_el=$(&quot;&lt;div&gt;&lt;/div&gt;&quot;).appendTo(b)[0];
this.cpt.setOptions([&quot;locked&quot;,&quot;fixed&quot;,&quot;footer&quot;,&quot;sticky&quot;]);
this.cpt_id=this.cpt.getId();
this.cpt.node.removeClassMatch(/ui_hour_/).addClass(&quot;ui_hour_&quot;+this.cpt_id);
var a=this;
if(!this.cpt.getData(&quot;regular_hours&quot;)){this.cpt.data.regular_hours={};
$.each([&quot;monday&quot;,&quot;tuesday&quot;,&quot;wednesday&quot;,&quot;thursday&quot;,&quot;friday&quot;],function(d,c){a.cpt.data.regular_hours[c]={open:true,list:[{start:moment(&quot;08:00&quot;,&quot;HH:mm&quot;).format(a.format_hour),end:moment(&quot;18:00&quot;,&quot;HH:mm&quot;).format(a.format_hour)}]}
});
$.each([&quot;saturday&quot;,&quot;sunday&quot;],function(d,c){a.cpt.data.regular_hours[c]={open:false,list:[{start:moment(&quot;09:00&quot;,&quot;HH:mm&quot;).format(a.format_hour),end:moment(&quot;12:00&quot;,&quot;HH:mm&quot;).format(a.format_hour)},{start:moment(&quot;14:00&quot;,&quot;HH:mm&quot;).format(a.format_hour),end:moment(&quot;17:00&quot;,&quot;HH:mm&quot;).format(a.format_hour)}]}
})
}$(&quot;.title_uih_view&quot;,this.cpt.node).html(this.cpt.data.title_view);
if(v.mode==&quot;editor&quot;&amp;&amp;!(this.cpt.data.timezone_editor)){this.cpt.data.timezone_editor=moment().utcOffset()
}this.set_view_hour()
},onSelect:function(){this.showProp();
if(blockSelector.selected_cpts.length==1){this.cpt.init_colorPickers()
}},onPropertyChanged:function(a){if(a.include(&quot;title_view&quot;)){$(&quot;.title_uih_view&quot;,this.cpt.node).html(this.cpt.data.title_view)
}if(a.include(&quot;regular_hours&quot;)||a.include(&quot;regroup_days&quot;)||a.include(&quot;start_from_today&quot;)||a.include(&quot;only_open_or_close&quot;)){this.set_view_hour()
}this.applyStyle();
this.showProp();
this._autoSize()
},onResizeStop:function(){this._autoSize()
},onDeselect:function(){},onDeviceChanged:function(){this._autoSize()
},_autoSize:function(){if(this.cpt.data.auto_size){var a=this;
a.cpt.setSize({h:a.size_getter_el.offsetTop})
}},init_panel:function(d){var a=$(&quot;.dt_pickers_day&quot;);
var b=this;
var c=this.cpt.data.regular_hours;
$(&quot;.warning_wrapper&quot;).hide();
$.each(a,function(f,h){var i=$(&quot;.dt_picker&quot;,this);
var e=h.closest(&quot;fieldset&quot;).className.split(&quot; &quot;)[0].replace(&quot;uih_&quot;,&quot;&quot;);
var g=$(&quot;.regular_hour_openclosed&quot;,$(h).parent());
g.prop(&quot;checked&quot;,c[e].open);
$(&quot;.add_hours&quot;,$(h)).hide();
if(!c[e].open){$(h).hide();
$(h).parent().toggleClass(&quot;closed_day&quot;,!$(h).is(&quot;:visible&quot;))
}$(g).on(&quot;click&quot;,function(){e=h.closest(&quot;fieldset&quot;).className.split(&quot; &quot;)[0].replace(&quot;uih_&quot;,&quot;&quot;);
$(h).toggle();
$(h).parent().toggleClass(&quot;closed_day&quot;,!$(h).is(&quot;:visible&quot;));
var j=!c[e].open;
c[e].open=j;
b.set_view_hour()
});
b.double_time_pickers(i,h,c,true,e)
})
},init_holidays:function(b){var a=this;
this.confirm_save_then(function(){var c=[];
a.cpt.ask({request:&quot;get_holidays&quot;},function(d){if(d.holidays){d.holidays.each(function(f){f.datetime_end=moment(f.datetime_end).format(a.format_date);
f.datetime_start=moment(f.datetime_start).format(a.format_date);
c.push(f)
});
c.sort(a.compare_holidays);
var e=$(&quot;#uih_hidden_template_holidays&quot;).html();
c.each(function(f){$(&quot;.uih_all_holidays&quot;).append(e);
$(&quot;.uih_one_holiday&quot;).last().data(&quot;holiday&quot;,f);
a.picker_holidays($(&quot;.uih_one_holiday&quot;).last(),c,true)
});
if($(&quot;.uih_one_holiday:first&quot;).is(&quot;:visible&quot;)){$(&quot;.uih_no_holiday&quot;).hide()
}$(&quot;#uih_add_holidays&quot;).on(&quot;click&quot;,function(){$(&quot;.uih_all_holidays&quot;).append(e);
one_hol=$(&quot;.uih_one_holiday&quot;);
var g={datetime_start:moment().format(a.format_date),datetime_end:moment().format(a.format_date),name:&quot;&quot;};
var f=$(&quot;.uih_one_holiday&quot;).last().data(&quot;holiday&quot;,g);
$(&quot;.uih_no_holiday&quot;).hide();
one_hol=$(&quot;.uih_one_holiday&quot;);
c.push(g);
a.picker_holidays(f,c,false);
a.save_holidays(f);
a.set_view()
})
}})
})
},picker_holidays:function(b,g,d){var i=this;
var c=$(b).find(&quot;.uih_dt_wrapper_holiday&quot;).first();
var h=$(b).find(&quot;.uih_dt_wrapper_holiday&quot;).last();
var e=c.find(&quot;input[type=text]&quot;);
var f=h.find(&quot;input[type=text]&quot;);
var a=$(&quot;.input_name_holiday&quot;,$(b));
if(d){e.val(b.data(&quot;holiday&quot;).datetime_start);
f.val(b.data(&quot;holiday&quot;).datetime_end);
a.val(b.data(&quot;holiday&quot;).name)
}a.on(&quot;change&quot;,function(){b.data(&quot;holiday&quot;).name=$(this).val();
i.save_holidays(b)
});
i.init_defaultpicker(c,h,this.format_date);
c.on(&quot;dp.change&quot;,function(l){var n=l.date.format(i.format_date);
var k=b.data(&quot;holiday&quot;).datetime_end;
var j=moment(n,i.format_date);
var m=moment(k,i.format_date);
b.data(&quot;holiday&quot;).datetime_start=n;
if(j.diff(m)&gt;0){f.val(n);
b.data(&quot;holiday&quot;).datetime_end=n
}i.save_holidays(b);
i.set_view()
});
h.on(&quot;dp.change&quot;,function(l){var k=l.date.format(i.format_date);
var n=b.data(&quot;holiday&quot;).datetime_start;
var j=moment(n,i.format_date);
var m=moment(k,i.format_date);
if(m&lt;moment().startOf(&quot;day&quot;)){k=moment().format(i.format_date)
}f.val(k);
b.data(&quot;holiday&quot;).datetime_end=k;
if(j.diff(m)&gt;0){e.val(k);
b.data(&quot;holiday&quot;).datetime_start=k
}i.save_holidays(b);
i.set_view()
});
$(&quot;.remove_one_holiday&quot;,$(b)).on(&quot;click&quot;,function(){b.data(&quot;holiday&quot;)[&quot;statut&quot;]=&quot;delete&quot;;
i.save_holidays(b,5000)
})
},save_holidays:function(b,a){self=this;
if(a){this.undo_save(b,a)
}else{holiday_send=JSON.parse(JSON.stringify(b.data(&quot;holiday&quot;)));
holiday_send.datetime_start=moment(holiday_send.datetime_start,self.format_date).format(&quot;YYYY-MM-DD&quot;);
holiday_send.datetime_end=moment(holiday_send.datetime_end,self.format_date).format(&quot;YYYY-MM-DD&quot;);
this.cpt.ask({request:&quot;save_holiday&quot;,holiday:holiday_send},function(c){if(!b.data(&quot;holiday&quot;).id){b.data(&quot;holiday&quot;).id=c.id_holiday
}if(b.data(&quot;holiday&quot;).statut){$(b).remove();
if(!$(&quot;.uih_one_holiday:first&quot;).is(&quot;:visible&quot;)){$(&quot;.uih_no_holiday&quot;).show()
}}self.set_view_hour()
})
}},undo_save:function(b,a){self=this;
save_to=setTimeout(function(){if(!jQuery.contains(document,b[0])){return
}if(b.data(&quot;holiday&quot;)){self.save_holidays(b)
}else{self.save_exception(b)
}},a);
b.children().hide();
compteur=a/1000;
b.append($(sprintf(&quot;&lt;a id = &apos;uih_undo_remove&apos;&gt;Date will be deleted in %1$s s...&quot;,&quot;&lt;span class = &apos;uih_compteur&apos;&gt;&quot;+compteur+&quot;&lt;/span&gt;&quot;)+&quot; Cancel &lt;/a&gt;&quot;).on(&quot;click&quot;,function(){clearTimeout(save_to);
$(&quot;#uih_undo_remove&quot;).remove();
b.children().show();
self.set_view_hour()
}));
$(&quot;#uih_undo_remove&quot;,b).data(&quot;compteur&quot;,compteur);
var c=setInterval(function(){$(&quot;.uih_compteur&quot;,b).text($(&quot;#uih_undo_remove&quot;,b).data(&quot;compteur&quot;,$(&quot;#uih_undo_remove&quot;,b).data(&quot;compteur&quot;)-1).data(&quot;compteur&quot;))
},1000);
setTimeout(function(){clearInterval(c);
c=null
},$(&quot;#uih_undo_remove&quot;,b).data(&quot;compteur&quot;)*1000)
},init_exceptions:function(){var a=this;
this.confirm_save_then(function(){var b=[];
a.cpt.ask({request:&quot;get_exceptions&quot;},function(c){if(c.exceptions){c.exceptions.each(function(e){e.day=moment(e.day).format(a.format_date);
e.datetime_end=moment(e.datetime_end,&quot;HH:mm&quot;).format(a.format_hour);
e.datetime_start=moment(e.datetime_start,&quot;HH:mm&quot;).format(a.format_hour);
if(e.datetime_start_opt!=&quot;&quot;){e.datetime_start_opt=moment(e.datetime_start_opt,&quot;HH:mm&quot;).format(a.format_hour);
e.datetime_end_opt=moment(e.datetime_end_opt,&quot;HH:mm&quot;).format(a.format_hour)
}b.push(e)
});
b.sort(a.compare_exceptions);
var d=$(&quot;#uih_hidden_template_exceptions&quot;).html();
b.each(function(e){$(&quot;.uih_all_exceptions&quot;).append(d);
$(&quot;.uih_one_exception&quot;).last().data(&quot;exception&quot;,e);
a.picker_exceptions($(&quot;.uih_one_exception&quot;).last(),b,true)
});
if($(&quot;.uih_one_exception:first&quot;).is(&quot;:visible&quot;)){$(&quot;.uih_no_exception&quot;).hide()
}$(&quot;.warning_wrapper&quot;).hide();
$(&quot;#uih_add_exceptions&quot;).on(&quot;click&quot;,function(){$(&quot;.uih_all_exceptions&quot;).append(d);
var f={day:moment().format(a.format_date),datetime_start:moment(&quot;08:00&quot;,&quot;HH:mm&quot;).format(a.format_hour),datetime_end:moment(&quot;18:00&quot;,&quot;HH:mm&quot;).format(a.format_hour),datetime_start_opt:&quot;&quot;,datetime_end_opt:&quot;&quot;,name:&quot;&quot;};
var e=$(&quot;.uih_one_exception&quot;).last().data(&quot;exception&quot;,f);
$(&quot;.uih_no_exception&quot;).hide();
b.push(f);
a.picker_exceptions(e,b,false);
a.save_exception(e);
a.set_view_hour()
})
}})
})
},picker_exceptions:function(c,b,e){var a=this;
var d=$(c).find(&quot;.dt_wrapper_date_exception&quot;);
var g=d.find(&quot;input[type=text]&quot;);
var f=$(&quot;.uih_input_name_exception&quot;,$(c));
if(e){f.val(c.data(&quot;exception&quot;).name);
g.val(c.data(&quot;exception&quot;).day)
}$(&quot;.add_hours&quot;,$(c)).hide();
$(&quot;.warning_wrapper&quot;,$(c)).hide();
a.double_time_pickers($(&quot;.dt_picker&quot;,c),c,c,false);
d.datetimepicker({format:a.format_date,defaultDate:moment().format(a.format_date)});
f.on(&quot;change&quot;,function(){c.data(&quot;exception&quot;).name=$(this).val();
a.save_exception(c)
});
d.on(&quot;dp.change&quot;,function(i){var h=i.date.format(a.format_date);
var j=moment(h,a.format_date);
if(j&lt;moment().startOf(&quot;day&quot;)){g.val(moment().format(a.format_date));
h=moment().format(a.format_date)
}c.data(&quot;exception&quot;).day=h;
a.save_exception(c);
a.set_view_hour()
});
$(&quot;.remove_one_exception&quot;,$(c)).on(&quot;click&quot;,function(){c.data(&quot;exception&quot;)[&quot;statut&quot;]=&quot;delete&quot;;
a.save_exception(c,5000)
})
},save_exception:function(b,a){self=this;
if(a){this.undo_save(b,a)
}else{exception_copy=JSON.parse(JSON.stringify(b.data(&quot;exception&quot;)));
exception_copy.day=moment(exception_copy.day,self.format_date).format(&quot;YYYY-MM-DD&quot;);
exception_copy.datetime_start=moment(exception_copy.datetime_start,self.format_hour).format(&quot;HH:mm&quot;);
exception_copy.datetime_end=moment(exception_copy.datetime_end,self.format_hour).format(&quot;HH:mm&quot;);
if(exception_copy.datetime_start_opt){exception_copy.datetime_start_opt=moment(exception_copy.datetime_start_opt,self.format_hour).format(&quot;HH:mm&quot;);
exception_copy.datetime_end_opt=moment(exception_copy.datetime_end_opt,self.format_hour).format(&quot;HH:mm&quot;)
}self.cpt.ask({request:&quot;save_exception&quot;,exception:exception_copy},function(c){if(c.id_new_excep){b.data(&quot;exception&quot;).id=c.id_new_excep
}if(b.data(&quot;exception&quot;).statut){$(b).remove();
if(!$(&quot;.uih_one_exception:first&quot;).is(&quot;:visible&quot;)){$(&quot;.uih_no_exception&quot;).show()
}}self.set_view_hour()
})
}},compare_holidays:function(d,c){var f=moment(d.datetime_end,this.format_date);
var e=moment(c.datetime_end,this.format_date);
if(f.isAfter(e)){return 1
}else{return -1
}},compare_exceptions:function(d,c){var f=moment(d.date,this.format_date);
var e=moment(c.date,this.format_date);
if(f.isAfter(e)){return 1
}else{return -1
}},init_defaultpicker:function(b,a,c){b.datetimepicker({format:c,defaultDate:moment().format(c)}).css({cursor:&quot;pointer&quot;});
a.datetimepicker({format:c,defaultDate:moment().format(c)}).css({cursor:&quot;pointer&quot;})
},initpicker:function(c,a,b,f,e,d){if(d){numb=e*1;
b.val(c[a].list[numb].start);
f.val(c[a].list[numb].end)
}else{if(e){b.val(c.data(&quot;exception&quot;).datetime_start_opt);
f.val(c.data(&quot;exception&quot;).datetime_end_opt)
}else{b.val(c.data(&quot;exception&quot;).datetime_start);
f.val(c.data(&quot;exception&quot;).datetime_end)
}}},d_time_pickers:function(a,j,b,g,i){var c=$(j).find(&quot;.dt_wrapper&quot;).first();
var f=$(j).find(&quot;.dt_wrapper&quot;).last();
var d=c.find(&quot;input[type=text]&quot;);
var e=f.find(&quot;input[type=text]&quot;);
var k=this;
var h=($(j).attr(&quot;class&quot;)==&quot;second_dt_pickers dt_picker&quot;);
if(g){if(h&amp;&amp;(!b[i].list[1])){$(j).hide();
$(&quot;.add_hours&quot;,$(a)).show()
}}else{if(h&amp;&amp;b.data(&quot;exception&quot;).datetime_end_opt==&quot;&quot;){$(j).hide();
$(&quot;.add_hours&quot;,$(a)).show()
}}if(!h){k.initpicker(b,i,d,e,h,g)
}else{if((g&amp;&amp;b[i].list[1])||(!g&amp;&amp;b.data(&quot;exception&quot;).datetime_start_opt!=&quot;&quot;)){k.initpicker(b,i,d,e,h,g)
}}k.init_defaultpicker(c,f,this.format_hour);
c.on(&quot;dp.change&quot;,function(n){start_date=n.date.format(k.format_hour);
if(!h){if(g){i=j.closest(&quot;fieldset&quot;).className.replace(&quot;uih_&quot;,&quot;&quot;);
end_date=b[i].list[0].end;
b[i].list[0].start=start_date
}else{b.data(&quot;exception&quot;).datetime_start=start_date;
end_date=b.data(&quot;exception&quot;).datetime_end;
k.save_exception(b)
}}else{if(g){i=j.closest(&quot;fieldset&quot;).className.replace(&quot;uih_&quot;,&quot;&quot;);
end_date=b[i].list[1].end;
b[i].list[1].start=start_date
}else{b.data(&quot;exception&quot;).datetime_start_opt=start_date;
end_date=b.data(&quot;exception&quot;).datetime_end_opt;
k.save_exception(b)
}}var m=moment(start_date,k.format_hour);
var l=moment(end_date,k.format_hour);
if(h){$(&quot;.warning_wrapper:last&quot;,$(a)).toggle(m.diff(l)&gt;0)
}else{$(&quot;.warning_wrapper:first&quot;,$(a)).toggle(m.diff(l)&gt;0)
}k.set_view_hour()
});
f.on(&quot;dp.change&quot;,function(n){var o=n.date.format(k.format_hour);
if(!h){if(g){i=j.closest(&quot;fieldset&quot;).className.replace(&quot;uih_&quot;,&quot;&quot;);
start_date=b[i].list[0].start;
b[i].list[0].end=o
}else{b.data(&quot;exception&quot;).datetime_end=o;
start_date=b.data(&quot;exception&quot;).datetime_start;
k.save_exception(b)
}}else{if(g){i=j.closest(&quot;fieldset&quot;).className.replace(&quot;uih_&quot;,&quot;&quot;);
start_date=b[i].list[1].start;
b[i].list[1].end=o
}else{b.data(&quot;exception&quot;).datetime_end_opt=o;
start_date=b.data(&quot;exception&quot;).datetime_start_opt;
k.save_exception(b)
}}var m=moment(start_date,k.format_hour);
var l=moment(o,k.format_hour);
if(h){$(&quot;.warning_wrapper:last&quot;,$(a)).toggle(m.diff(l)&gt;0)
}else{$(&quot;.warning_wrapper:first&quot;,$(a)).toggle(m.diff(l)&gt;0)
}k.set_view_hour()
})
},double_time_pickers:function(c,f,d,e,b){var a=this;
$.each(c,function(h,g){a.d_time_pickers(f,g,d,e,b)
});
$(&quot;.add_hours&quot;,$(f)).on(&quot;click&quot;,function(){if(!$(&quot;.second_dt_pickers&quot;,f).is(&quot;:visible&quot;)){$(&quot;.second_dt_pickers&quot;,$(f)).show();
$(&quot;.warning_wrapper&quot;,$(f)).hide();
var j=moment(&quot;08:00&quot;,&quot;HH:mm&quot;).format(a.format_hour);
var i=moment(&quot;14:00&quot;,&quot;HH:mm&quot;).format(a.format_hour);
var h=moment(&quot;12:00&quot;,&quot;HH:mm&quot;).format(a.format_hour);
var g=moment(&quot;18:00&quot;,&quot;HH:mm&quot;).format(a.format_hour);
if(e){d[b].list=[{start:j,end:h},{start:i,end:g}]
}else{d.data(&quot;exception&quot;).datetime_start=j;
d.data(&quot;exception&quot;).datetime_start_opt=i;
d.data(&quot;exception&quot;).datetime_end=h;
d.data(&quot;exception&quot;).datetime_end_opt=g;
a.save_exception(d)
}a.set_view_hour();
$(&quot;.add_hours&quot;,$(f)).hide();
$(f).find(&quot;.first_dt_pickers .dt_wrapper:first .dtpd_start&quot;).val(j);
$(f).find(&quot;.first_dt_pickers .dt_wrapper:last .dtpd_end&quot;).val(h);
$(f).find(&quot;.second_dt_pickers .dt_wrapper:first .dtpd_start&quot;).val(i);
$(f).find(&quot;.second_dt_pickers .dt_wrapper:last .dtpd_end&quot;).val(g)
}});
$(&quot;.remove_hours&quot;,$(f)).on(&quot;click&quot;,function(){if($(&quot;.second_dt_pickers&quot;,f).is(&quot;:visible&quot;)){$(&quot;.add_hours&quot;,$(f)).show();
if(e){d[b].list=[d[b].list[0]]
}else{d.data(&quot;exception&quot;).datetime_start_opt=&quot;&quot;;
d.data(&quot;exception&quot;).datetime_end_opt=&quot;&quot;;
a.save_exception(d)
}a.set_view_hour();
$(&quot;.second_dt_pickers&quot;,$(f)).hide()
}})
},set_view_hour:function(){var a=this;
if(this.cpt.idserver){a.cpt.ask({request:&quot;get_for_view_start_today&quot;},function(b){a.set_view(true,b)
})
}else{this.set_view(false)
}},set_view:function(h,n){var j=[[&quot;monday&quot;,&quot;Monday&quot;],[&quot;tuesday&quot;,&quot;Tuesday&quot;],[&quot;wednesday&quot;,&quot;Wednesday&quot;],[&quot;thursday&quot;,&quot;Thursday&quot;],[&quot;friday&quot;,&quot;Friday&quot;],[&quot;saturday&quot;,&quot;Saturday&quot;],[&quot;sunday&quot;,&quot;Sunday&quot;]];
var g=[];
var f;
var l=this;
var e=this.cpt.getData(&quot;regroup_days&quot;);
var b=0;
var m=JSON.parse(JSON.stringify(this.cpt.getData(&quot;regular_hours&quot;)));
$(&quot;.uih_all_days_week&quot;,l.cpt.node).html(&quot;&lt;div class = &apos;uih_day_week&apos;&gt; &lt;div class = &apos;uih_name_day&apos;&gt;&lt;/div&gt; &lt;div class = &apos;hour_opening_day&apos;&gt; &lt;/div&gt; &lt;/div&gt;&quot;);
$(&quot;.uih_holiday_exist&quot;,l.cpt.node).empty();
if(this.cpt.data.timezone_editor==moment().utcOffset()){var a=moment()
}else{diff=this.cpt.data.timezone_editor-moment().utcOffset();
var a=moment().add(diff/60,&quot;h&quot;);
$(&quot;.warning_different_time_zone&quot;,this.cpt.node).html(&quot;Warning: you are not located in the same timezone.&quot;)
}for(var c=0;
c&lt;7;
c++){g.push(a);
a=a.clone().add(1,&quot;d&quot;)
}a=a.clone().add(-7,&quot;d&quot;);
if(!this.cpt.getData(&quot;start_from_today&quot;)){var d=g[0].isoWeekday()-1;
for(var c=0;
c&lt;d;
c++){g.splice(c,0,g.splice(7-d+c,1)[0])
}}if(h&amp;&amp;(n.exceptions||n.holidays)){for(b=0;
b&lt;7;
b++){f=g[b].isoWeekday()-1;
n.holidays.each(function(i){if(moment(i.datetime_start).diff(g[b].startOf(&quot;day&quot;))&lt;=0&amp;&amp;moment(i.datetime_end).diff(g[b].startOf(&quot;day&quot;))&gt;=0){m[j[f][0]].open=false;
m[j[f][0]].holiday=true;
m[j[f][0]].date=g[b].format(&quot;DD/MM&quot;)
}});
n.exceptions.each(function(i){if(moment(i.day).format(&quot;YYYY-MM-DD&quot;)==g[b].format(&quot;YYYY-MM-DD&quot;)){m[j[f][0]].open=true;
m[j[f][0]].list=[{start:moment(i.datetime_start,&quot;HH:mm&quot;).format(l.format_hour),end:moment(i.datetime_end,&quot;HH:mm&quot;).format(l.format_hour)}];
if(i.datetime_start_opt!=&quot;&quot;){m[j[f][0]].list.push({start:moment(i.datetime_start_opt,&quot;HH:mm&quot;).format(l.format_hour),end:moment(i.datetime_end_opt,&quot;HH:mm&quot;).format(l.format_hour)})
}m[j[f][0]].exception=true;
m[j[f][0]].date=g[b].format(&quot;DD/MM&quot;)
}})
}}this.open_or_closed_at(m,j,a,g);
this.cpt.node.find(&quot;.uih_all_days_week&quot;).toggle(this.cpt.getData(&quot;only_open_or_close&quot;));
if(this.cpt.getData(&quot;only_open_or_close&quot;)){this.regroup_days(m,e,g,j);
this.inserthtml(g,m,e,j)
}this.applyStyle();
this._autoSize()
},comparedatadays:function(c,b){if(c.open!=b.open){return false
}if(!c.open&amp;&amp;!b.open){return true
}if(c.list.length!=b.list.length){return false
}if(c.exception||b.exception){return false
}for(var a=0;
a&lt;c.list.length;
a++){if(c.list[a].start!=b.list[a].start){return false
}if(c.list[a].end!=b.list[a].end){return false
}}return true
},regroup_days:function(g,h,d,c){var b=1;
var a=this;
var f=false;
index=d[1].isoWeekday()-1;
if(index==0){f=true;
index_moins=7
}var e=false;
while(c[b]&amp;&amp;b&lt;7){if(!c[index]){index=0;
f=true;
if(!e){index_moins=index_moins+1
}}else{if(!f){index_moins=index-1
}else{index_moins=index_moins-1
}}if(h&amp;&amp;a.comparedatadays(g[c[index][0]],g[c[index_moins][0]])){delete g[c[index][0]];
c[index_moins][1]=c[index_moins][1].split(&quot; - &quot;)[0]+&quot; - &quot;+c[index][1];
if(c[index][0]==&quot;sunday&quot;){e=true
}c.splice(index,1);
d.splice(b,1)
}else{$(&quot;.uih_all_days_week&quot;,a.cpt.node).append($(&quot;.uih_day_week:first&quot;,a.cpt.node.clone()));
b++;
index++;
f=false
}}},inserthtml:function(d,e,g,c){var f=false;
var a=this;
var b=$(&quot;.uih_day_week&quot;,this.cpt.node);
$(&quot;.uih_view&quot;,this.cpt.node).html();
$.each(b,function(h,i){if(g){index2=a.find_index(d[h],c)
}else{index2=d[h].isoWeekday()-1
}$(&quot;.uih_name_day&quot;,this).html(c[index2][1]);
if(e[c[index2][0]].open){$(&quot;.hour_opening_day&quot;,this).html(&quot;&lt;p class = &apos;first_hour_opening&apos;&gt; &lt;/p&gt;&quot;);
$(&quot;.first_hour_opening&quot;,this).html(e[c[index2][0]].list[0].start+&quot; - &quot;+e[c[index2][0]].list[0].end);
if(e[c[index2][0]].list[1]){$(&quot;.hour_opening_day&quot;,this).append(&quot;&lt;p class = &apos;second_hour_opening&apos;&gt; &lt;/p&gt;&quot;);
$(&quot;.second_hour_opening&quot;,this).html(e[c[index2][0]].list[1].start+&quot; - &quot;+e[c[index2][0]].list[1].end)
}if(e[c[index2][0]].exception){$(&quot;.hour_opening_day&quot;,this).addClass(&quot;exception&quot;)
}}else{$(&quot;.hour_opening_day&quot;,this).html(&quot;CLOSED&quot;);
$(&quot;.hour_opening_day&quot;,this).addClass(&quot;closed_day&quot;);
if(e[c[index2][0]].holiday){$(&quot;.hour_opening_day&quot;,this).addClass(&quot;holiday&quot;);
$(&quot;.hour_opening_day&quot;,this).append(&quot;*&quot;);
f=true
}}});
if(f){$(&quot;.uih_holiday_exist&quot;,this.cpt.node).html(&quot;(*) Exceptional Days off&quot;)
}},confirm_save_then:function(b){var a=this;
if(!this.cpt.idserver){if(confirm(sprintf(&quot;Do you want to save this page (as a draft) to start the block configuration?&quot;))){this.cpt.page.saveAndCleanHistory().done(b)
}else{$(&quot;#design_blocks_wrapper&quot;).desactivate()
}}else{b()
}},open_or_closed_at:function(h,f,a,d){day=f[a.isoWeekday()-1][0];
var c=moment(h[day].list[0].start,this.format_hour);
var i=moment(h[day].list[0].end,this.format_hour);
var g=2*60*60*1000;
if(c.diff(i)&gt;=0){i.add(1,&quot;days&quot;)
}if(h[day].open){if(c.diff(a)&lt;=0&amp;&amp;i.diff(a)&gt;=0){this.insert_open(i,g,h,a,0,day)
}else{if(a.diff(c)&lt;=0){this.insert_closed(c,g,h,a,0,day)
}else{if(h[day].list[1]){var e=moment(h[day].list[1].start,this.format_hour);
var b=moment(h[day].list[1].end,this.format_hour);
if(c.diff(e)&gt;=0){e.add(1,&quot;days&quot;)
}if(c.diff(b)&gt;=0){b.add(1,&quot;days&quot;)
}if(e.diff(a)&lt;=0&amp;&amp;b.diff(a)&gt;=0){this.insert_open(b,g,h,a,1,day)
}else{if(a.diff(e)&lt;=0){this.insert_closed(e,g,h,a,1,day)
}else{this.find_next_day_open_same_week(h,f,a,d)
}}}else{this.find_next_day_open_same_week(h,f,a,d)
}}}}else{this.find_next_day_open_same_week(h,f,a,d)
}},find_index:function(a,b){var d=null;
var c=a._d.getDayName().toLowerCase();
$.each(b,function(f,e){if(c==e[0]){d=f
}});
return d
},insert_open:function(c,b,f,e,a,d){if(c.diff(e)&lt;=b){$(&quot;.uih_open_or_close&quot;,this.cpt.node).html(sprintf(&quot;OPENED: Closing Soon, at %1$s&quot;,f[d].list[a].end));
$(&quot;.uih_open_or_close&quot;,this.cpt.node).addClass(&quot;time_closed_soon&quot;)
}else{$(&quot;.uih_open_or_close&quot;,this.cpt.node).html(sprintf(&quot;OPENED: Closes at %1$s&quot;,f[d].list[a].end));
$(&quot;.uih_open_or_close&quot;,this.cpt.node).addClass(&quot;time_open&quot;)
}},insert_closed:function(d,b,f,e,a,c){if(e.diff(d)&gt;=-b){$(&quot;.uih_open_or_close&quot;,this.cpt.node).html(sprintf(&quot;CLOSED: Opening Soon, at %1$s&quot;,f[c].list[a].start));
$(&quot;.uih_open_or_close&quot;,this.cpt.node).addClass(&quot;time_open_soon&quot;)
}else{$(&quot;.uih_open_or_close&quot;,this.cpt.node).html(sprintf(&quot;CLOSED: Opens at %1$s&quot;,f[c].list[a].start));
$(&quot;.uih_open_or_close&quot;,this.cpt.node).addClass(&quot;time_closed&quot;)
}},find_next_day_open_same_week:function(j,g,b,f){var e=b.isoWeekday();
var h=this;
var d;
var a;
if(this.cpt.getData(&quot;start_from_today&quot;)){d=1;
a=0
}else{d=b.isoWeekday();
a=d-1
}var c=null;
while(f[d]!=f[a]&amp;&amp;!c){e=e%7;
if(j[g[e][0]].open){c=sprintf(&quot;%1$s at %2$s&quot;,g[e][1],j[g[e][0]].list[0].start)
}e++;
d=++d%7
}$(&quot;.uih_open_or_close&quot;,this.cpt.node).addClass(&quot;time_closed&quot;);
if(!c){this.cpt.ask({request:&quot;next_day_open&quot;,regular_hours:this.cpt.data.regular_hours},function(i){if(i.next_day_open[0]){var l=moment(i.next_day_open[0]).format(h.format_date);
var k=moment(i.next_day_open[1],&quot;HH:mm&quot;).format(h.format_hour);
$(&quot;.uih_open_or_close&quot;,h.cpt.node).html(sprintf(&quot;CLOSED: Opens %1$s at %2$s&quot;,l,k))
}else{$(&quot;.uih_open_or_close&quot;,h.cpt.node).html(&quot;CLOSED&quot;)
}});
$(&quot;.uih_open_or_close&quot;,this.cpt.node).html(&quot;CLOSED&quot;)
}else{$(&quot;.uih_open_or_close&quot;,this.cpt.node).html(sprintf(&quot;CLOSED: Opened %1$s&quot;,c))
}},showProp:function(){var a=$(this.component.propertyNode).add(this.component.propertyDesignNode);
$(&quot;.start_from_today, .regroup_days&quot;,a).toggle(this.cpt.getData(&quot;only_open_or_close&quot;));
$(&quot;.odd_bgcolor&quot;).toggle(this.cpt.data.toggle_odd);
$(&quot;.toggle_odd_font_color&quot;).toggle(this.cpt.data.toggle_odd);
$(&quot;.odd_font_color&quot;).toggle(this.cpt.data.toggle_odd_font_color&amp;&amp;this.cpt.data.toggle_odd)
},applyStyle:function(){$(&quot;#ui_hour_style_&quot;+this.cpt_id).remove();
var a=&quot;&quot;;
a+=&quot;.ui_hour_&quot;+this.cpt_id+&quot; .hour_opening_day.closed_day{color:&quot;+this.cpt.data.closed_color+&quot;;}&quot;;
if(this.cpt.data.toggle_odd){a+=&quot;.ui_hour_&quot;+this.cpt_id+&quot; .uih_day_week:nth-child(odd) {background-color: &quot;+(this.cpt.data.odd_bgcolor||&quot;rgba(0, 0, 0, 0.05)&quot;)+&quot;;}&quot;;
if(this.cpt.data.toggle_odd_font_color){a+=&quot;.ui_hour_&quot;+this.cpt_id+&quot; .uih_day_week:nth-child(odd) {color: &quot;+(this.cpt.data.font_color_hour||&quot;rgba(0, 0, 0, 0.8)&quot;)+&quot;;}&quot;
}}a+=&quot;.ui_hour_&quot;+this.cpt_id+&quot; .title_uih_view, .ui_hour_&quot;+this.cpt_id+&quot; .uih_open_or_close{text-align:&quot;+this.cpt.data.align+&quot;}&quot;;
$(&quot;head&quot;).append(&quot;&lt;style id=&apos;ui_hour_style_&quot;+this.cpt_id+&quot;&apos;&gt;&quot;+a+&quot;&lt;/style&gt;&quot;)
}};</script><style>.uih_all_days_week{padding-top:10px}
.uih_day_week{display:grid;grid-template-columns:1fr 1fr;padding:5px 3px;align-items:center}
.uih_name_day{text-align:left}
.hour_opening_day{text-align:right}
.hour_opening_day.closed_day{font-weight:700}
.uih_open_or_close{padding-top:10px}
.detected_device_mobile .uih_view{text-align:center}
.detected_device_mobile .uih_all_days_week{padding:0 20px}
.title_uih_view:empty{display:none}
.title_uih_view:empty+.uih_open_or_close{padding:0}</style></uidget>