Plugin Directory

Changeset 3192586


Ignore:
Timestamp:
11/19/2024 07:22:59 PM (17 months ago)
Author:
orderable
Message:

Update to version 1.17.0 from GitHub

Location:
orderable
Files:
16 added
34 edited
1 copied

Legend:

Unmodified
Added
Removed
  • orderable/tags/1.17.0/assets/frontend/js/main.js

    r3143111 r3192586  
    15101510      const $trigger_element = $(this),
    15111511        trigger = $trigger_element.data('orderable-trigger');
     1512      if ($trigger_element.is('button') || $trigger_element.is('a')) {
     1513        e.preventDefault();
     1514      }
    15121515      $(document.body).trigger('orderable-' + trigger, [$trigger_element]);
    15131516    }
  • orderable/tags/1.17.0/assets/frontend/js/main.min.js

    r3143111 r3192586  
    1 !function(o,e,s){var n="scrollBox",r={containerClass:"sb-container",containerNoScrollClass:"sb-container-noscroll",contentClass:"sb-content",scrollbarContainerClass:"sb-scrollbar-container",scrollBarClass:"sb-scrollbar"};function t(e,t){this.element=e,this.settings=o.extend({},r,t),this._defaults=r,this._name=n,this.init()}o.extend(t.prototype,{init:function(){this.addScrollbar(),this.addEvents(),this.onResize()},addScrollbar:function(){o(this.element).addClass(this.settings.containerClass),this.wrapper=o("<div class='"+this.settings.contentClass+"' />"),this.wrapper.append(o(this.element).contents()),o(this.element).append(this.wrapper),this.scollbarContainer=o("<div class='"+this.settings.scrollbarContainerClass+"' />"),this.scrollBar=o("<div class='"+this.settings.scrollBarClass+"' />"),this.scollbarContainer.append(this.scrollBar),o(this.element).prepend(this.scollbarContainer)},addEvents:function(){this.wrapper.on("scroll."+n,o.proxy(this.onScroll,this)),o(e).on("resize."+n,o.proxy(this.onResize,this)),this.scrollBar.on("mousedown."+n,o.proxy(this.onMousedown,this)),this.scrollBar.on("touchstart."+n,o.proxy(this.onTouchstart,this))},onTouchstart:function(t){var r=this,a=(t.preventDefault(),r.scrollBar[0].offsetTop);o(s).on("touchmove."+n,function(e){e=e.touches[0].pageY-t.touches[0].pageY;r.scrollBar[0].style.top=Math.min(r.scollbarContainer[0].clientHeight-r.scrollBar[0].clientHeight,Math.max(0,a+e))+"px",r.wrapper[0].scrollTop=r.wrapper[0].scrollHeight*r.scrollBar[0].offsetTop/r.scollbarContainer[0].clientHeight}),o(s).on("touchend."+n,function(){o(s).off("touchmove."+n),o(s).off("touchend."+n)})},onMousedown:function(t){var r=this,a=(t.preventDefault(),r.scrollBar[0].offsetTop);o(s).on("mousemove."+n,function(e){e=e.pageY-t.pageY;r.scrollBar[0].style.top=Math.min(r.scollbarContainer[0].clientHeight-r.scrollBar[0].clientHeight,Math.max(0,a+e))+"px",r.wrapper[0].scrollTop=r.wrapper[0].scrollHeight*r.scrollBar[0].offsetTop/r.scollbarContainer[0].clientHeight}),o(s).on("mouseup."+n,function(){o(s).off("mousemove."+n),o(s).off("mouseup."+n)})},onResize:function(){this.wrapper.css("max-height",o(this.element).height());var e=this.wrapper[0].clientHeight;this.scrollBar.css("height",this.scollbarContainer[0].clientHeight*e/this.wrapper[0].scrollHeight+"px"),this.scollbarContainer[0].clientHeight<=this.scrollBar[0].clientHeight?o(this.element).addClass(this.settings.containerNoScrollClass):o(this.element).removeClass(this.settings.containerNoScrollClass),this.onScroll()},onScroll:function(){this.scrollBar.css("top",Math.min(this.scollbarContainer[0].clientHeight-this.scrollBar[0].clientHeight,this.scollbarContainer[0].clientHeight*this.wrapper[0].scrollTop/this.wrapper[0].scrollHeight)+"px")}}),o.fn[n]=function(e){return this.each(function(){o.data(this,"plugin_"+n)||o.data(this,"plugin_"+n,new t(this,e))})}}(jQuery,window,document),function(e,o){"function"!=typeof e.CustomEvent&&(e.CustomEvent=function(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var r=o.createEvent("CustomEvent");return r.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r},e.CustomEvent.prototype=e.Event.prototype),o.addEventListener("touchstart",function(e){"true"!==e.target.getAttribute("data-swipe-ignore")&&(c=e.target,l=Date.now(),s=e.touches[0].clientX,n=e.touches[0].clientY,d=i=0)},!1),o.addEventListener("touchmove",function(e){var t;s&&n&&(t=e.touches[0].clientX,e=e.touches[0].clientY,i=s-t,d=n-e)},!1),o.addEventListener("touchend",function(e){var t,r,a,o;c===e.target&&(o=parseInt(_(c,"data-swipe-threshold","20"),10),t=parseInt(_(c,"data-swipe-timeout","500"),10),r=Date.now()-l,a="",e=e.changedTouches||e.touches||[],Math.abs(i)>Math.abs(d)?Math.abs(i)>o&&r<t&&(a=0<i?"swiped-left":"swiped-right"):Math.abs(d)>o&&r<t&&(a=0<d?"swiped-up":"swiped-down"),""!==a&&(o={dir:a.replace(/swiped-/,""),touchType:(e[0]||{}).touchType||"direct",xStart:parseInt(s,10),xEnd:parseInt((e[0]||{}).clientX||-1,10),yStart:parseInt(n,10),yEnd:parseInt((e[0]||{}).clientY||-1,10)},c.dispatchEvent(new CustomEvent("swiped",{bubbles:!0,cancelable:!0,detail:o})),c.dispatchEvent(new CustomEvent(a,{bubbles:!0,cancelable:!0,detail:o}))),l=n=s=null)},!1);var s=null,n=null,i=null,d=null,l=null,c=null;function _(e,t,r){for(;e&&e!==o.documentElement;){var a=e.getAttribute(t);if(a)return a;e=e.parentNode}return r}}(window,document),function(o,s){var n={on_ready(){n.cache(),n.watch()},cache(){n.vars={classes:{parent:"orderable-accordion",link:"orderable-accordion__item-link",content:"orderable-accordion__item-content",link_active:"orderable-accordion__item-link--active",content_active:"orderable-accordion__item-content--active"}}},watch(){o(s.body).on("click","."+n.vars.classes.link,function(e){e.preventDefault();var e=o(this),t=e.closest("."+n.vars.classes.parent),r=e.attr("href"),r=o(r),a=e.hasClass(n.vars.classes.link_active);t.find("."+n.vars.classes.link).removeClass(n.vars.classes.link_active),t.find("."+n.vars.classes.content).removeClass(n.vars.classes.content_active),a||(e.addClass(n.vars.classes.link_active),r.addClass(n.vars.classes.content_active)),o(s.body).trigger("orderable-accordion.toggled",{link:e,content:r})}),o(s.body).on("orderable-scrollbar.created",function(e,t){var r=o(".orderable-drawer ."+n.vars.classes.link_active);r.length<=0||(r=(t=t.content).scrollTop()-t.offset().top+r.offset().top,t.scrollTop(r))})}};o(s).ready(n.on_ready)}(jQuery,document),function(l,c){var r={debounce(t,r=700){let a;return(...e)=>{clearTimeout(a),a=setTimeout(()=>{t.apply(this,e)},r)}},allow_only_numbers(e){var t=String.fromCharCode(e.which);/^\d+$/.test(t)||e.preventDefault()},on_change_quantity(e){let t=l(e.currentTarget);var e=t.data("orderable-product-id"),r=t.data("orderable-cart-item-key"),a=parseInt(t.text());jQuery.post(orderable_vars.ajax_url,{action:"orderable_cart_quantity",cart_item_key:r,product_id:e,quantity:a},function(e){e&&(l(c.body).trigger("added_to_cart",[e.fragments,e.cart_hash,t]),l(c.body).trigger("orderable-drawer.quantity-updated"))})},on_ready(){r.cache(),r.watch(),l(c.body).on("keypress",".orderable-quantity-roller__quantity",r.allow_only_numbers),l(".orderable-drawer__cart, .orderable-product--add-to-cart, .orderable-products-list").on("input",".orderable-quantity-roller__quantity",r.debounce(r.on_change_quantity)),l(c.body).on("click",".orderable-quantity-roller__quantity",function(e){e.stopPropagation()}),orderable_vars&&!orderable_vars.woocommerce_enable_ajax_add_to_cart&&l(c.body).off("click",".add_to_cart_button")},cache(){r.vars={classes:{overlay:"orderable-drawer-overlay",drawer:"orderable-drawer",drawer_cart:"orderable-drawer__cart",drawer_html:"orderable-drawer__html",overlay_open:"orderable-drawer-overlay--open",drawer_open:"orderable-drawer--open",drawer_open_body:"orderable-drawer-open"}},r.elements={body:l("body"),overlay:l("."+r.vars.classes.overlay),drawer:l("."+r.vars.classes.drawer),drawer_cart:l("."+r.vars.classes.drawer_cart),drawer_html:l("."+r.vars.classes.drawer_html),floating_cart_button_class:".orderable-floating-cart__button"}},watch(){var e,t;void 0!==r.elements.drawer&&(l(c.body).on("orderable-drawer.open",r.open),l(c.body).on("orderable-drawer.close",r.close),l(c.body).on("click",r.elements.floating_cart_button_class,function(){l(c.body).trigger("orderable-drawer.open",{show_cart:!0})}),l(c.body).on("orderable-increase-quantity",r.cart.handle_quantity_change_by_button),l(c.body).on("orderable-decrease-quantity",r.cart.handle_quantity_change_by_button),e=r.debounce(r.cart.click_increase_decrease_quantity),l(c.body).on("orderable-increase-quantity",e),l(c.body).on("orderable-decrease-quantity",e),e=c.querySelector("body:not( .rtl ) .orderable-drawer"),t=c.querySelector("body.rtl .orderable-drawer"),e&&e.addEventListener("swiped-right",function(e){r.close()}),t)&&t.addEventListener("swiped-left",function(e){r.close()})},open(e,t){t.html=t.html||!1,t.show_cart=t.show_cart||!1,r.elements.drawer_html.hide(),r.elements.drawer_cart.hide(),t.html&&(r.elements.drawer_html.html(t.html),r.elements.drawer_html.show()),t.show_cart&&(r.elements.drawer_html.html(""),r.elements.drawer_cart.show()),r.elements.overlay.addClass(r.vars.classes.overlay_open),r.elements.drawer.addClass(r.vars.classes.drawer_open),r.elements.body.addClass(r.vars.classes.drawer_open_body),l(c.body).trigger("orderable-drawer.opened",t)},close(){r.elements.overlay.removeClass(r.vars.classes.overlay_open),r.elements.drawer.removeClass(r.vars.classes.drawer_open),r.elements.body.removeClass(r.vars.classes.drawer_open_body),r.elements.drawer_html.html(""),l(c.body).trigger("orderable-drawer.closed")},cart:{click_increase_decrease_quantity(e,r){var t=r.data("orderable-trigger"),a=r.attr("data-orderable-product-id"),o=r.attr("data-orderable-cart-item-key"),s=r.attr("data-orderable-quantity");let n=r.siblings(".orderable-quantity-roller__button--"+("increase-quantity"===t?"decrease":"increase")),i=r.siblings(".orderable-quantity-roller__quantity"),d={action:"orderable_cart_quantity",cart_item_key:o,product_id:a,quantity:s};this.currentRequest&&(this.currentRequest.abort(),this.currentRequest=void 0),r.addClass("orderable-button--loading"),r.attr("disabled",!0),n.attr("disabled",!0),i.attr("contenteditable",!1),this.currentRequest=jQuery.post(orderable_vars.ajax_url,d,function(e){if(e){var t=r.siblings(".orderable-quantity-roller__quantity");switch(e&&e.fragments&&e.fragments[".orderable-mini-cart__notices"]&&l(c.body).trigger("orderable-drawer.open",{show_cart:!0}),d.quantity){case"0":l(c.body).trigger("removed_from_cart",[e.fragments,e.cart_hash,r]);break;case t.attr("data-orderable-updating-quantity"):l(c.body).trigger("added_to_cart",[e.fragments,e.cart_hash,r]),l(c.body).trigger("orderable-drawer.quantity-updated")}}}.bind(this)).always(function(){this.currentRequest=void 0,r.removeClass("orderable-button--loading"),r.attr("disabled",!1),n.attr("disabled",!1),i.attr("contenteditable",!0)}.bind(this))},handle_quantity_change_by_button(e,t){var r,a=t.data("orderable-trigger"),o=parseInt(t.attr("data-orderable-quantity")),s=t.siblings(".orderable-quantity-roller__button--"+("increase-quantity"===a?"decrease":"increase")),n=t.siblings(".orderable-quantity-roller__quantity"),a="increase-quantity"===a?o+1:Math.max(0,o-1),o=t.parents(".orderable-product__actions-button");0===a&&o.length&&(r=o.find("button.orderable-button[data-orderable-trigger]"),(o=o.find(".orderable-quantity-roller")).length)&&(r.removeClass("orderable-button--product-in-the-cart"),o.removeClass("orderable-quantity-roller--is-active")),t.attr("data-orderable-quantity",a),s.attr("data-orderable-quantity",a),n.attr("data-orderable-updating-quantity",a),n.text(a),n.attr("contenteditable",!1)}}};l(c).ready(r.on_ready)}(jQuery,document),function(d,l){var c={on_ready(){c.cache(),c.watch()},cache(){c.vars={classes:{clickable_product:"orderable-product--add-to-cart ",add_to_order_button:"orderable-product__add-to-order",product_messages:"orderable-product__messages",product_price:"orderable-product__actions-price",invalid_field:"orderable-field--invalid",option_select_td:"orderable-product__option-select",button_loading:"orderable-button--loading",out_of_stock:"orderable-button--out-of-stock"},parent_price:null,variable_product_types:["variable","variable-subscription"]},c.elements={}},watch(){d(l.body).on("orderable-drawer.opened",c.init_product_options),d(l.body).on("orderable-add-to-cart",c.click_add_to_order),d(l.body).on("orderable-product-options",c.click_add_to_order),d(l.body).on("orderable-view-product",c.view_product),d(l.body).on("mouseenter mouseleave","."+c.vars.classes.clickable_product,c.simulate_add_to_order_hover),d(l.body).on("orderable-edit-cart-item",c.edit_cart_item),d(l.body).on("orderable-update-cart-item",c.update_cart_item),d(l.body).on("orderable-show-cart",c.show_cart),d(l.body).on("orderable-add-to-cart-without-side-drawer",c.click_add_to_order),d(l.body).on("added_to_cart",c.remove_fragments),d(l.body).on("added_to_cart",c.remove_animation),d(l.body).on("added_to_cart",c.shake_floating_cart),d(l.body).on("removed_from_cart",c.hide_quantity_roller),d(l.body).on("wc_cart_button_updated",c.remove_view_cart_link)},simulate_add_to_order_hover(e){d(this).find("."+c.vars.classes.add_to_order_button).toggleClass("orderable-button--hover","mouseenter"===e.type)},click_add_to_order(e,t){let r=(t=void 0!==t?t:d(this)).is("button")?t:t.find("."+c.vars.classes.add_to_order_button),a=r.data("orderable-trigger"),o=r.data("orderable-product-id"),s=r.data("orderable-variation-id"),n=r.data("orderable-variation-attributes"),i={action:a};if(!r.hasClass(c.vars.classes.button_loading)&&!r.hasClass(c.vars.classes.out_of_stock))switch(r.addClass(c.vars.classes.button_loading),a){case"add-to-cart":c.add_to_cart({product_id:o,variation_id:s,attributes:n,thisbutton:t},function(e){i.show_cart=!0,i.response=e,d(l.body).trigger("orderable-drawer.open",i),r.removeClass(c.vars.classes.button_loading);e=d(".orderable-product .orderable-product__actions-button button.orderable-product__add-to-order[data-orderable-product-id="+o+"]");e.siblings(".orderable-quantity-roller").length&&e.addClass("orderable-button--product-in-the-cart")});break;case"add-to-cart-without-side-drawer":c.add_to_cart({product_id:o,variation_id:s,attributes:n},function(e){i.response=e,r.addClass("orderable-button--product-in-the-cart"),r.removeClass(c.vars.classes.button_loading)});break;case"product-options":c.get_product_options({product_id:o,focus:r.data("orderable-focus")},function(e){i.html=e.html,d(l.body).trigger("orderable-drawer.open",i),r.removeClass(c.vars.classes.button_loading)})}},show_cart(){d(l.body).trigger("orderable-drawer.open",{show_cart:!0})},view_product(e,t){let r=t.data("orderable-product-id"),a={action:"product-options"};c.get_product_options({product_id:r,focus:t.data("orderable-focus")},function(e){a.html=e.html,d(l.body).trigger("orderable-drawer.open",a)})},add_to_cart(t,r){if(void 0!==t.product_id){let e={action:"orderable_add_to_cart",product_id:t.product_id,variation_id:t.variation_id||!1,attributes:t.attributes||!1};var a;d(".orderable-product-fields-group").length&&(a=jQuery(".orderable-product-fields-group :input").serializeArray(),a=c.add_unchecked_checkbox_fields(a),a=c.convert_to_flat_object(a),jQuery.isEmptyObject(a)||(e=Object.assign(e,a))),jQuery.post(orderable_vars.ajax_url,e,function(e){e&&(d(l.body).trigger("added_to_cart",[e.fragments,e.cart_hash,t.thisbutton]),"function"==typeof r)&&r(e)})}},edit_cart_item(e,t){var r=t.data("orderable-cart-item-key");t.addClass(c.vars.classes.button_loading),c.get_cart_item_options({cart_item_key:r},function(e){e={html:e.html,action:"update-cart-item"};d(l.body).trigger("orderable-drawer.open",e),t.removeClass(c.vars.classes.button_loading)})},update_cart_item(e,r){var t=r.data("orderable-cart-item-key"),a=r.data("orderable-product-id"),o=r.data("orderable-variation-id"),s=r.data("orderable-variation-attributes");r.addClass(c.vars.classes.button_loading),c.update_cart_item_options({cart_item_key:t,product_id:a,variation_id:o,attributes:s},function(e){var t={show_cart:!0,response:e};d(l.body).trigger("added_to_cart",[e.fragments,e.cart_hash]),d(l.body).trigger("orderable-drawer.open",t),r.removeClass(c.vars.classes.button_loading)})},convert_to_flat_object(e){let a={};return e.forEach(function(e){var t="[]"===e.name.substr(-2)||Array.isArray(e.name),r=t?e.name.substr(0,e.name.length-2):e.name;t?(a[r]=void 0===a[r]?[]:a[r],a[r].push(e.value)):a[r]=e.value}),a},get_product_options(e,t){void 0!==e.product_id&&(e.action="orderable_get_product_options",jQuery.post(orderable_vars.ajax_url,e,function(e){e.success&&"function"==typeof t&&t(e.data)}))},get_cart_item_options(e,t){void 0!==e.cart_item_key&&(e.action="orderable_get_cart_item_options",jQuery.post(orderable_vars.ajax_url,e,function(e){e.success&&"function"==typeof t&&t(e.data)}))},update_cart_item_options(e,t){var r;void 0!==e.cart_item_key&&(e.action="orderable_update_cart_item_options",d(".orderable-product-fields-group").length&&(r=jQuery(".orderable-product-fields-group :input").serializeArray(),r=c.add_unchecked_checkbox_fields(r),r=c.convert_to_flat_object(r),jQuery.isEmptyObject(r)||(e=Object.assign(e,r))),jQuery.post(orderable_vars.ajax_url,e,function(e){e&&"function"==typeof t&&t(e)}))},init_product_options(e,a){if(void 0!==a.action&&("product-options"===a.action||"update-cart-item"===a.action)){a=".orderable-drawer .orderable-product__options input, .orderable-drawer .orderable-product__options select, .orderable-product__options textarea";let e=d(a),t=(c.vars.parent_price=d(".orderable-drawer .orderable-product__actions-price").html(),c.product_options_change(e),c.update_button_state(),c.debounce(c.update_button_state,500)),r=c.debounce(c.product_options_change,500);d(l).on("change keyup",a,function(){r(e),t()})}},product_options_change(e){var t=d(".orderable-drawer .orderable-product__add-to-order, .orderable-drawer .orderable-product__update-cart-item"),r=c.check_options(e),a=t.data("orderable-product-type");"product-options"===t.attr("data-orderable-trigger")&&t.attr("data-orderable-trigger","add-to-cart"),d("."+c.vars.classes.product_messages).html(""),c.vars.variable_product_types.includes(a)&&(r?(a=c.check_variation(e),c.set_variation(t,a)):c.clear_variation(t))},check_options(e){if(e.length<=0)return!1;let r=!0;return e.each(function(e,t){d(t).hasClass("orderable-input--validate")&&(""===d(t).val()?(d(t).addClass(c.vars.classes.invalid_field),r=!1):d(t).removeClass(c.vars.classes.invalid_field))}),r},check_variation(e){var t=(t=e.closest(".orderable-drawer").find(".orderable-product__variations").text())?JSON.parse(t):"",e=c.serialize_object(e),t=c.find_matching_variations(t,e);return!c.is_empty(t)&&((t=t.shift()).attributes=e,t.attributes_json=JSON.stringify(e),void 0!==t)&&t},set_variation(e,t){let r=t.variation_id||"",a=t.attributes_json||"",o=t.price_html||c.vars.parent_price,s="";t&&""!==t.availability_html&&(s=t.availability_html),t&&!t.is_in_stock&&(s="<p>"+orderable_vars.i18n.out_of_stock+"</p>"),t&&!t.is_purchasable&&(s="<p>"+orderable_vars.i18n.unavailable+"</p>"),!1===t&&(s="<p>"+orderable_vars.i18n.no_exist+"</p>"),!t||t.is_purchasable&&t.is_in_stock||(r="",a=""),""!==s&&d("."+c.vars.classes.product_messages).html(s),e.data("orderable-variation-id",r),e.data("orderable-variation-attributes",a),d(".orderable-drawer .orderable-product__actions-price").html(o),e.trigger("orderable_variation_set",{variation:t,variation_id:r,attributes:a,price:o})},clear_variation(e){c.set_variation(e,""),c.vars.parent_price&&d(".orderable-drawer .orderable-product__actions-price").html(c.vars.parent_price)},find_matching_variations(t,r){var a=[];for(let e=0;e<t.length;e++){var o=t[e];c.is_matching_variation(o.attributes,r)&&a.push(o)}return a},is_matching_variation(e,t){let r=!0;for(var a in e){var o;e.hasOwnProperty(a)&&(o=e[a],a=t[a],void 0!==o)&&void 0!==a&&0!==o.length&&0!==a.length&&o!==a&&(r=!1)}return r},is_empty(e){return void 0===e||!1===e||e.length<=0||!e},serialize_object:function(e){var t=e.serializeArray(),r={};for(let e=0;e<t.length;e++)r[t[e].name]=t[e].value;return r},update_button_state(){setTimeout(function(){let e=d(".orderable-drawer .orderable-product__add-to-order, .orderable-drawer .orderable-product__update-cart-item"),t=d(".orderable-drawer__html ."+c.vars.classes.invalid_field).length,r=e.data("orderable-product-type"),a=!0;"variable"===r&&(a=""!==e.data("orderable-variation-id")),e.prop("disabled",t||!a)},50)},debounce(a,o,s){let n;return function(){let e=this,t=arguments;var r=s&&!n;clearTimeout(n),n=setTimeout(function(){n=null,s||a.apply(e,t)},o),r&&a.apply(e,t)}},remove_fragments(e,t){if(t&&"undefined"!=typeof wc_cart_fragments_params&&wc_cart_fragments_params.fragment_name){var r,a=/\.orderable-product\[data-orderable-product-id='[1-9][0-9]*'\] \.orderable-product__actions-button \.orderable-quantity-roller/,o=/\.orderable-product\[data-orderable-product-id='[1-9][0-9]*'\] \.orderable-product__actions-button \.orderable-product__actions-counter/;for(r in t)(a.test(r)||o.test(r))&&(t[r]=void 0);sessionStorage.setItem(wc_cart_fragments_params.fragment_name,JSON.stringify(t))}},remove_animation(){setTimeout(function(){d(".orderable-product__actions-counter").css("animation","")},1e3)},hide_quantity_roller(e,t,r,a){var o,a=a.attr("data-product_id")||a.attr("data-orderable-product-id");a&&(a=d(".orderable-product[data-orderable-product-id="+a+"] .orderable-product__actions-button")).length&&(o=a.find(".orderable-quantity-roller")).length&&(a.find("button.orderable-product__add-to-order[data-orderable-trigger]").removeClass("orderable-button--product-in-the-cart"),o.addClass("orderable-button--hide"))},add_unchecked_checkbox_fields(r){return jQuery('.orderable-product-fields-group :input[type="checkbox"]:not(:checked)').each(function(e,t){r.push({name:t.getAttribute("name"),value:""})}),r},shake_floating_cart(){d(".orderable-floating-cart__button").css("animation","wobble-hor-bottom .8s both")},remove_view_cart_link(e,t){t?.hasClass("orderable-product__add-to-order")&&t?.siblings(".added_to_cart.wc-forward").remove()}};d(l).ready(c.on_ready)}(jQuery,document),function(o,s){var n={on_ready(){n.cache(),n.watch()},cache(){n.vars={top:{}},n.elements={}},watch(){o(s.body).on("orderable-drawer.opened",n.trigger),o(s.body).on("orderable-tabs.changed",n.trigger),o(s.body).on("orderable-accordion.toggled",n.trigger),o(s.body).on("wc_fragments_loaded",n.trigger)},trigger(){o(".orderable-sb-container").each(function(e,t){var r,t=o(t),a=t.data("orderable-scroll-id");n.has_scrollbar(t)||(t.scrollBox({containerClass:"orderable-sb-container",containerNoScrollClass:"orderable-sb-container-noscroll",contentClass:"orderable-sb-content",scrollbarContainerClass:"orderable-sb-scrollbar-container",scrollBarClass:"orderable-sb-scrollbar"}),0<(r=t.find(".orderable-sb-content")).length&&(r.on("scroll.scrollBox",n.log_top_position),void 0!==n.vars.top[a])&&r.scrollTop(n.vars.top[a]),o(s.body).trigger("orderable-scrollbar.created",{element:t,content:r}))}),o(window).trigger("resize.scrollBox")},has_scrollbar(e){return 0<e.find(".orderable-sb-content").length},log_top_position(e){var t=o(e.currentTarget).closest(".orderable-sb-container").data("orderable-scroll-id");n.vars.top[t]=o(e.currentTarget).scrollTop()}};o(s).ready(n.on_ready)}(jQuery,document),function(n,i){var d={on_ready(){d.cache(),d.watch(),d.toggle_scroll()},on_resize(){d.toggle_scroll()},cache(){d.vars={classes:{tabs:"orderable-tabs",tabs_list:"orderable-tabs__list",tab_items:"orderable-tabs__item",tab_item_active:"orderable-tabs__item--active",tab_links:"orderable-tabs__link",tab_arrow_right:"orderable-tabs__arrow-right",tab_arrow_left:"orderable-tabs__arrow-left"},dragging:!1},d.elements={}},watch(){n("body").on("touchstart",function(){d.vars.dragging=!1}).on("touchmove",function(){d.vars.dragging=!0}),n(i.body).on("click mouseup touchend","."+d.vars.classes.tab_links,function(e){var t,r,a,o,s;d.vars.dragging||(e.preventDefault(),t=(e=n(this)).attr("href"),r=e.closest("."+d.vars.classes.tab_items),a=(s=e.closest("."+d.vars.classes.tabs)).find("."+d.vars.classes.tabs_list),o=s.find("."+d.vars.classes.tab_items),s=s.data("orderable-tabs"),s=(e=e.closest(s.wrapper)).find(s.sections),e=e.find(t),s.hide(),e.show(),o.removeClass(d.vars.classes.tab_item_active),r.addClass(d.vars.classes.tab_item_active),a.animate({scrollLeft:a.scrollLeft()+r.position().left}),n(i.body).trigger("orderable-tabs.changed",{tab:r}))}),n("."+d.vars.classes.tabs_list).on("scroll",function(e){var t=n(this),r=t.parent("."+d.vars.classes.tabs),a=t.siblings("."+d.vars.classes.tab_arrow_right),o=t.siblings("."+d.vars.classes.tab_arrow_left);t[0].scrollWidth<=r.width()+t.scrollLeft()?a.fadeOut():a.fadeIn(),t.scrollLeft()-o.width()<=0?o.fadeOut():o.fadeIn()}),n("."+d.vars.classes.tabs_list).on("wheel DOMMouseScroll mousewheel touchmove",function(){n(this).stop()}),n(i).on("click","."+d.vars.classes.tab_arrow_right,function(e){e.preventDefault();var e=n(this).parent(),t=e.find("."+d.vars.classes.tabs_list);t.animate({scrollLeft:t.scrollLeft()+.5*e.width()})}),n(i).on("click","."+d.vars.classes.tab_arrow_left,function(e){e.preventDefault();var e=n(this).parent(),t=e.find("."+d.vars.classes.tabs_list);t.animate({scrollLeft:t.scrollLeft()-.5*e.width()})})},toggle_scroll(){n("."+d.vars.classes.tabs).each(function(e,t){var r=n(this),a=r.data("orderable-tabs"),r=r.closest(a.wrapper),a=r.find("."+d.vars.classes.tabs_list),o=r.find("."+d.vars.classes.tab_arrow_right);r.outerWidth()<a[0].scrollWidth?o.show():o.hide()})}};n(i).ready(d.on_ready),n(window).on("resize",d.on_resize)}(jQuery,document);let orderable_timings={};!function(l,e){orderable_timings={on_ready(){orderable_timings.watch()},restore(){var e,t=orderable_timings.get_timings();t&&t.date&&(0<(e=l(".orderable-order-timings__date")).find('option[value="'+t.date+'"]').length&&(e.val(t.date),e.change()),t.time)&&0<(e=l(".orderable-order-timings__time")).find('option[value="'+t.time+'"]').length&&(e.val(t.time),e.change())},watch(){l(e.body).on("wc_fragments_refreshed",function(){orderable_timings.restore()}),l(e.body).on("updated_checkout",function(){orderable_timings.restore()}),l(e.body).on("change",".orderable-order-timings__date",function(e){let t=l(this),r=t.find("option:selected"),a=r.data("orderable-slots"),o=l(".orderable-order-timings--time"),s=l(".orderable-order-timings__time"),n=s.find("option").first(),i=s.find('option[value="asap"]').first();var d=orderable_timings.get_timings();d.date=l(".orderable-order-timings__date").val(),window.localStorage.setItem("orderable_timings",JSON.stringify(d)),s.html(n),i&&s.append(i),a?"all-day"===a[0].value?(o.hide(),s.prop("disabled",!0)):(s.prop("disabled",!1),o.show(),l.each(a,function(e,t){s.append(l("<option />").attr("value",t.value).attr("data-orderable-time-slot-id",t?.setting_row?.time_slot_id).text(t.formatted))})):(s.prop("disabled",!0),o.hide())}),l(e.body).on("change",".orderable-order-timings__time",function(e){var t=orderable_timings.get_timings();t.time=l(".orderable-order-timings__time").val(),window.localStorage.setItem("orderable_timings",JSON.stringify(t)),l(this).siblings('input[name="orderable_order_time_slot_id"]').val(l(this).find(":selected").attr("data-orderable-time-slot-id"))})},get_timings(){return JSON.parse(window.localStorage.getItem("orderable_timings"))||{}}},l(e).ready(orderable_timings.on_ready)}(jQuery,document),function(r,a){var e={on_ready(){e.watch()},watch(){r(a.body).on("click","[data-orderable-trigger]",e.trigger)},trigger(e){e.stopImmediatePropagation();var e=r(this),t=e.data("orderable-trigger");r(a.body).trigger("orderable-"+t,[e])}};r(a).ready(e.on_ready)}(jQuery,document);
     1!function(o,e,s){"use strict";var n="scrollBox",r={containerClass:"sb-container",containerNoScrollClass:"sb-container-noscroll",contentClass:"sb-content",scrollbarContainerClass:"sb-scrollbar-container",scrollBarClass:"sb-scrollbar"};function t(e,t){this.element=e,this.settings=o.extend({},r,t),this._defaults=r,this._name=n,this.init()}o.extend(t.prototype,{init:function(){this.addScrollbar(),this.addEvents(),this.onResize()},addScrollbar:function(){o(this.element).addClass(this.settings.containerClass),this.wrapper=o("<div class='"+this.settings.contentClass+"' />"),this.wrapper.append(o(this.element).contents()),o(this.element).append(this.wrapper),this.scollbarContainer=o("<div class='"+this.settings.scrollbarContainerClass+"' />"),this.scrollBar=o("<div class='"+this.settings.scrollBarClass+"' />"),this.scollbarContainer.append(this.scrollBar),o(this.element).prepend(this.scollbarContainer)},addEvents:function(){this.wrapper.on("scroll."+n,o.proxy(this.onScroll,this)),o(e).on("resize."+n,o.proxy(this.onResize,this)),this.scrollBar.on("mousedown."+n,o.proxy(this.onMousedown,this)),this.scrollBar.on("touchstart."+n,o.proxy(this.onTouchstart,this))},onTouchstart:function(t){var r=this,a=(t.preventDefault(),r.scrollBar[0].offsetTop);o(s).on("touchmove."+n,function(e){e=e.touches[0].pageY-t.touches[0].pageY;r.scrollBar[0].style.top=Math.min(r.scollbarContainer[0].clientHeight-r.scrollBar[0].clientHeight,Math.max(0,a+e))+"px",r.wrapper[0].scrollTop=r.wrapper[0].scrollHeight*r.scrollBar[0].offsetTop/r.scollbarContainer[0].clientHeight}),o(s).on("touchend."+n,function(){o(s).off("touchmove."+n),o(s).off("touchend."+n)})},onMousedown:function(t){var r=this,a=(t.preventDefault(),r.scrollBar[0].offsetTop);o(s).on("mousemove."+n,function(e){e=e.pageY-t.pageY;r.scrollBar[0].style.top=Math.min(r.scollbarContainer[0].clientHeight-r.scrollBar[0].clientHeight,Math.max(0,a+e))+"px",r.wrapper[0].scrollTop=r.wrapper[0].scrollHeight*r.scrollBar[0].offsetTop/r.scollbarContainer[0].clientHeight}),o(s).on("mouseup."+n,function(){o(s).off("mousemove."+n),o(s).off("mouseup."+n)})},onResize:function(){this.wrapper.css("max-height",o(this.element).height());var e=this.wrapper[0].clientHeight;this.scrollBar.css("height",this.scollbarContainer[0].clientHeight*e/this.wrapper[0].scrollHeight+"px"),this.scollbarContainer[0].clientHeight<=this.scrollBar[0].clientHeight?o(this.element).addClass(this.settings.containerNoScrollClass):o(this.element).removeClass(this.settings.containerNoScrollClass),this.onScroll()},onScroll:function(){this.scrollBar.css("top",Math.min(this.scollbarContainer[0].clientHeight-this.scrollBar[0].clientHeight,this.scollbarContainer[0].clientHeight*this.wrapper[0].scrollTop/this.wrapper[0].scrollHeight)+"px")}}),o.fn[n]=function(e){return this.each(function(){o.data(this,"plugin_"+n)||o.data(this,"plugin_"+n,new t(this,e))})}}(jQuery,window,document),function(e,o){"use strict";"function"!=typeof e.CustomEvent&&(e.CustomEvent=function(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var r=o.createEvent("CustomEvent");return r.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r},e.CustomEvent.prototype=e.Event.prototype),o.addEventListener("touchstart",function(e){"true"!==e.target.getAttribute("data-swipe-ignore")&&(c=e.target,l=Date.now(),s=e.touches[0].clientX,n=e.touches[0].clientY,d=i=0)},!1),o.addEventListener("touchmove",function(e){var t;s&&n&&(t=e.touches[0].clientX,e=e.touches[0].clientY,i=s-t,d=n-e)},!1),o.addEventListener("touchend",function(e){var t,r,a,o;c===e.target&&(o=parseInt(_(c,"data-swipe-threshold","20"),10),t=parseInt(_(c,"data-swipe-timeout","500"),10),r=Date.now()-l,a="",e=e.changedTouches||e.touches||[],Math.abs(i)>Math.abs(d)?Math.abs(i)>o&&r<t&&(a=0<i?"swiped-left":"swiped-right"):Math.abs(d)>o&&r<t&&(a=0<d?"swiped-up":"swiped-down"),""!==a&&(o={dir:a.replace(/swiped-/,""),touchType:(e[0]||{}).touchType||"direct",xStart:parseInt(s,10),xEnd:parseInt((e[0]||{}).clientX||-1,10),yStart:parseInt(n,10),yEnd:parseInt((e[0]||{}).clientY||-1,10)},c.dispatchEvent(new CustomEvent("swiped",{bubbles:!0,cancelable:!0,detail:o})),c.dispatchEvent(new CustomEvent(a,{bubbles:!0,cancelable:!0,detail:o}))),l=n=s=null)},!1);var s=null,n=null,i=null,d=null,l=null,c=null;function _(e,t,r){for(;e&&e!==o.documentElement;){var a=e.getAttribute(t);if(a)return a;e=e.parentNode}return r}}(window,document),function(o,s){"use strict";var n={on_ready(){n.cache(),n.watch()},cache(){n.vars={classes:{parent:"orderable-accordion",link:"orderable-accordion__item-link",content:"orderable-accordion__item-content",link_active:"orderable-accordion__item-link--active",content_active:"orderable-accordion__item-content--active"}}},watch(){o(s.body).on("click","."+n.vars.classes.link,function(e){e.preventDefault();var e=o(this),t=e.closest("."+n.vars.classes.parent),r=e.attr("href"),r=o(r),a=e.hasClass(n.vars.classes.link_active);t.find("."+n.vars.classes.link).removeClass(n.vars.classes.link_active),t.find("."+n.vars.classes.content).removeClass(n.vars.classes.content_active),a||(e.addClass(n.vars.classes.link_active),r.addClass(n.vars.classes.content_active)),o(s.body).trigger("orderable-accordion.toggled",{link:e,content:r})}),o(s.body).on("orderable-scrollbar.created",function(e,t){var r=o(".orderable-drawer ."+n.vars.classes.link_active);r.length<=0||(r=(t=t.content).scrollTop()-t.offset().top+r.offset().top,t.scrollTop(r))})}};o(s).ready(n.on_ready)}(jQuery,document),function(l,c){"use strict";var r={debounce(t,r=700){let a;return(...e)=>{clearTimeout(a),a=setTimeout(()=>{t.apply(this,e)},r)}},allow_only_numbers(e){var t=String.fromCharCode(e.which);/^\d+$/.test(t)||e.preventDefault()},on_change_quantity(e){const t=l(e.currentTarget);var e=t.data("orderable-product-id"),r=t.data("orderable-cart-item-key"),a=parseInt(t.text());jQuery.post(orderable_vars.ajax_url,{action:"orderable_cart_quantity",cart_item_key:r,product_id:e,quantity:a},function(e){e&&(l(c.body).trigger("added_to_cart",[e.fragments,e.cart_hash,t]),l(c.body).trigger("orderable-drawer.quantity-updated"))})},on_ready(){r.cache(),r.watch(),l(c.body).on("keypress",".orderable-quantity-roller__quantity",r.allow_only_numbers),l(".orderable-drawer__cart, .orderable-product--add-to-cart, .orderable-products-list").on("input",".orderable-quantity-roller__quantity",r.debounce(r.on_change_quantity)),l(c.body).on("click",".orderable-quantity-roller__quantity",function(e){e.stopPropagation()}),orderable_vars&&!orderable_vars.woocommerce_enable_ajax_add_to_cart&&l(c.body).off("click",".add_to_cart_button")},cache(){r.vars={classes:{overlay:"orderable-drawer-overlay",drawer:"orderable-drawer",drawer_cart:"orderable-drawer__cart",drawer_html:"orderable-drawer__html",overlay_open:"orderable-drawer-overlay--open",drawer_open:"orderable-drawer--open",drawer_open_body:"orderable-drawer-open"}},r.elements={body:l("body"),overlay:l("."+r.vars.classes.overlay),drawer:l("."+r.vars.classes.drawer),drawer_cart:l("."+r.vars.classes.drawer_cart),drawer_html:l("."+r.vars.classes.drawer_html),floating_cart_button_class:".orderable-floating-cart__button"}},watch(){var e,t;void 0!==r.elements.drawer&&(l(c.body).on("orderable-drawer.open",r.open),l(c.body).on("orderable-drawer.close",r.close),l(c.body).on("click",r.elements.floating_cart_button_class,function(){l(c.body).trigger("orderable-drawer.open",{show_cart:!0})}),l(c.body).on("orderable-increase-quantity",r.cart.handle_quantity_change_by_button),l(c.body).on("orderable-decrease-quantity",r.cart.handle_quantity_change_by_button),e=r.debounce(r.cart.click_increase_decrease_quantity),l(c.body).on("orderable-increase-quantity",e),l(c.body).on("orderable-decrease-quantity",e),e=c.querySelector("body:not( .rtl ) .orderable-drawer"),t=c.querySelector("body.rtl .orderable-drawer"),e&&e.addEventListener("swiped-right",function(e){r.close()}),t)&&t.addEventListener("swiped-left",function(e){r.close()})},open(e,t){t.html=t.html||!1,t.show_cart=t.show_cart||!1,r.elements.drawer_html.hide(),r.elements.drawer_cart.hide(),t.html&&(r.elements.drawer_html.html(t.html),r.elements.drawer_html.show()),t.show_cart&&(r.elements.drawer_html.html(""),r.elements.drawer_cart.show()),r.elements.overlay.addClass(r.vars.classes.overlay_open),r.elements.drawer.addClass(r.vars.classes.drawer_open),r.elements.body.addClass(r.vars.classes.drawer_open_body),l(c.body).trigger("orderable-drawer.opened",t)},close(){r.elements.overlay.removeClass(r.vars.classes.overlay_open),r.elements.drawer.removeClass(r.vars.classes.drawer_open),r.elements.body.removeClass(r.vars.classes.drawer_open_body),r.elements.drawer_html.html(""),l(c.body).trigger("orderable-drawer.closed")},cart:{click_increase_decrease_quantity(e,r){var t=r.data("orderable-trigger"),a=r.attr("data-orderable-product-id"),o=r.attr("data-orderable-cart-item-key"),s=r.attr("data-orderable-quantity");const n=r.siblings(".orderable-quantity-roller__button--"+("increase-quantity"===t?"decrease":"increase")),i=r.siblings(".orderable-quantity-roller__quantity"),d={action:"orderable_cart_quantity",cart_item_key:o,product_id:a,quantity:s};this.currentRequest&&(this.currentRequest.abort(),this.currentRequest=void 0),r.addClass("orderable-button--loading"),r.attr("disabled",!0),n.attr("disabled",!0),i.attr("contenteditable",!1),this.currentRequest=jQuery.post(orderable_vars.ajax_url,d,function(e){if(e){var t=r.siblings(".orderable-quantity-roller__quantity");switch(e&&e.fragments&&e.fragments[".orderable-mini-cart__notices"]&&l(c.body).trigger("orderable-drawer.open",{show_cart:!0}),d.quantity){case"0":l(c.body).trigger("removed_from_cart",[e.fragments,e.cart_hash,r]);break;case t.attr("data-orderable-updating-quantity"):l(c.body).trigger("added_to_cart",[e.fragments,e.cart_hash,r]),l(c.body).trigger("orderable-drawer.quantity-updated")}}}.bind(this)).always(function(){this.currentRequest=void 0,r.removeClass("orderable-button--loading"),r.attr("disabled",!1),n.attr("disabled",!1),i.attr("contenteditable",!0)}.bind(this))},handle_quantity_change_by_button(e,t){var r,a=t.data("orderable-trigger"),o=parseInt(t.attr("data-orderable-quantity")),s=t.siblings(".orderable-quantity-roller__button--"+("increase-quantity"===a?"decrease":"increase")),n=t.siblings(".orderable-quantity-roller__quantity"),a="increase-quantity"===a?o+1:Math.max(0,o-1),o=t.parents(".orderable-product__actions-button");0===a&&o.length&&(r=o.find("button.orderable-button[data-orderable-trigger]"),(o=o.find(".orderable-quantity-roller")).length)&&(r.removeClass("orderable-button--product-in-the-cart"),o.removeClass("orderable-quantity-roller--is-active")),t.attr("data-orderable-quantity",a),s.attr("data-orderable-quantity",a),n.attr("data-orderable-updating-quantity",a),n.text(a),n.attr("contenteditable",!1)}}};l(c).ready(r.on_ready)}(jQuery,document),function(d,l){"use strict";var c={on_ready(){c.cache(),c.watch()},cache(){c.vars={classes:{clickable_product:"orderable-product--add-to-cart ",add_to_order_button:"orderable-product__add-to-order",product_messages:"orderable-product__messages",product_price:"orderable-product__actions-price",invalid_field:"orderable-field--invalid",option_select_td:"orderable-product__option-select",button_loading:"orderable-button--loading",out_of_stock:"orderable-button--out-of-stock"},parent_price:null,variable_product_types:["variable","variable-subscription"]},c.elements={}},watch(){d(l.body).on("orderable-drawer.opened",c.init_product_options),d(l.body).on("orderable-add-to-cart",c.click_add_to_order),d(l.body).on("orderable-product-options",c.click_add_to_order),d(l.body).on("orderable-view-product",c.view_product),d(l.body).on("mouseenter mouseleave","."+c.vars.classes.clickable_product,c.simulate_add_to_order_hover),d(l.body).on("orderable-edit-cart-item",c.edit_cart_item),d(l.body).on("orderable-update-cart-item",c.update_cart_item),d(l.body).on("orderable-show-cart",c.show_cart),d(l.body).on("orderable-add-to-cart-without-side-drawer",c.click_add_to_order),d(l.body).on("added_to_cart",c.remove_fragments),d(l.body).on("added_to_cart",c.remove_animation),d(l.body).on("added_to_cart",c.shake_floating_cart),d(l.body).on("removed_from_cart",c.hide_quantity_roller),d(l.body).on("wc_cart_button_updated",c.remove_view_cart_link)},simulate_add_to_order_hover(e){d(this).find("."+c.vars.classes.add_to_order_button).toggleClass("orderable-button--hover","mouseenter"===e.type)},click_add_to_order(e,t){const r=(t=void 0!==t?t:d(this)).is("button")?t:t.find("."+c.vars.classes.add_to_order_button),a=r.data("orderable-trigger"),o=r.data("orderable-product-id"),s=r.data("orderable-variation-id"),n=r.data("orderable-variation-attributes"),i={action:a};if(!r.hasClass(c.vars.classes.button_loading)&&!r.hasClass(c.vars.classes.out_of_stock))switch(r.addClass(c.vars.classes.button_loading),a){case"add-to-cart":c.add_to_cart({product_id:o,variation_id:s,attributes:n,thisbutton:t},function(e){i.show_cart=!0,i.response=e,d(l.body).trigger("orderable-drawer.open",i),r.removeClass(c.vars.classes.button_loading);e=d(".orderable-product .orderable-product__actions-button button.orderable-product__add-to-order[data-orderable-product-id="+o+"]");e.siblings(".orderable-quantity-roller").length&&e.addClass("orderable-button--product-in-the-cart")});break;case"add-to-cart-without-side-drawer":c.add_to_cart({product_id:o,variation_id:s,attributes:n},function(e){i.response=e,r.addClass("orderable-button--product-in-the-cart"),r.removeClass(c.vars.classes.button_loading)});break;case"product-options":c.get_product_options({product_id:o,focus:r.data("orderable-focus")},function(e){i.html=e.html,d(l.body).trigger("orderable-drawer.open",i),r.removeClass(c.vars.classes.button_loading)})}},show_cart(){d(l.body).trigger("orderable-drawer.open",{show_cart:!0})},view_product(e,t){const r=t.data("orderable-product-id"),a={action:"product-options"};c.get_product_options({product_id:r,focus:t.data("orderable-focus")},function(e){a.html=e.html,d(l.body).trigger("orderable-drawer.open",a)})},add_to_cart(t,r){if(void 0!==t.product_id){let e={action:"orderable_add_to_cart",product_id:t.product_id,variation_id:t.variation_id||!1,attributes:t.attributes||!1};var a;d(".orderable-product-fields-group").length&&(a=jQuery(".orderable-product-fields-group :input").serializeArray(),a=c.add_unchecked_checkbox_fields(a),a=c.convert_to_flat_object(a),jQuery.isEmptyObject(a)||(e=Object.assign(e,a))),jQuery.post(orderable_vars.ajax_url,e,function(e){e&&(d(l.body).trigger("added_to_cart",[e.fragments,e.cart_hash,t.thisbutton]),"function"==typeof r)&&r(e)})}},edit_cart_item(e,t){var r=t.data("orderable-cart-item-key");t.addClass(c.vars.classes.button_loading),c.get_cart_item_options({cart_item_key:r},function(e){e={html:e.html,action:"update-cart-item"};d(l.body).trigger("orderable-drawer.open",e),t.removeClass(c.vars.classes.button_loading)})},update_cart_item(e,r){var t=r.data("orderable-cart-item-key"),a=r.data("orderable-product-id"),o=r.data("orderable-variation-id"),s=r.data("orderable-variation-attributes");r.addClass(c.vars.classes.button_loading),c.update_cart_item_options({cart_item_key:t,product_id:a,variation_id:o,attributes:s},function(e){var t={show_cart:!0,response:e};d(l.body).trigger("added_to_cart",[e.fragments,e.cart_hash]),d(l.body).trigger("orderable-drawer.open",t),r.removeClass(c.vars.classes.button_loading)})},convert_to_flat_object(e){const a={};return e.forEach(function(e){var t="[]"===e.name.substr(-2)||Array.isArray(e.name),r=t?e.name.substr(0,e.name.length-2):e.name;t?(a[r]=void 0===a[r]?[]:a[r],a[r].push(e.value)):a[r]=e.value}),a},get_product_options(e,t){void 0!==e.product_id&&(e.action="orderable_get_product_options",jQuery.post(orderable_vars.ajax_url,e,function(e){e.success&&"function"==typeof t&&t(e.data)}))},get_cart_item_options(e,t){void 0!==e.cart_item_key&&(e.action="orderable_get_cart_item_options",jQuery.post(orderable_vars.ajax_url,e,function(e){e.success&&"function"==typeof t&&t(e.data)}))},update_cart_item_options(e,t){var r;void 0!==e.cart_item_key&&(e.action="orderable_update_cart_item_options",d(".orderable-product-fields-group").length&&(r=jQuery(".orderable-product-fields-group :input").serializeArray(),r=c.add_unchecked_checkbox_fields(r),r=c.convert_to_flat_object(r),jQuery.isEmptyObject(r)||(e=Object.assign(e,r))),jQuery.post(orderable_vars.ajax_url,e,function(e){e&&"function"==typeof t&&t(e)}))},init_product_options(e,t){if(void 0!==t.action&&("product-options"===t.action||"update-cart-item"===t.action)){t=".orderable-drawer .orderable-product__options input, .orderable-drawer .orderable-product__options select, .orderable-product__options textarea";const r=d(t),a=(c.vars.parent_price=d(".orderable-drawer .orderable-product__actions-price").html(),c.product_options_change(r),c.update_button_state(),c.debounce(c.update_button_state,500)),o=c.debounce(c.product_options_change,500);d(l).on("change keyup",t,function(){o(r),a()})}},product_options_change(e){var t=d(".orderable-drawer .orderable-product__add-to-order, .orderable-drawer .orderable-product__update-cart-item"),r=c.check_options(e),a=t.data("orderable-product-type");"product-options"===t.attr("data-orderable-trigger")&&t.attr("data-orderable-trigger","add-to-cart"),d("."+c.vars.classes.product_messages).html(""),c.vars.variable_product_types.includes(a)&&(r?(a=c.check_variation(e),c.set_variation(t,a)):c.clear_variation(t))},check_options(e){if(e.length<=0)return!1;let r=!0;return e.each(function(e,t){d(t).hasClass("orderable-input--validate")&&(""===d(t).val()?(d(t).addClass(c.vars.classes.invalid_field),r=!1):d(t).removeClass(c.vars.classes.invalid_field))}),r},check_variation(e){var t=(t=e.closest(".orderable-drawer").find(".orderable-product__variations").text())?JSON.parse(t):"",e=c.serialize_object(e),t=c.find_matching_variations(t,e);return!c.is_empty(t)&&((t=t.shift()).attributes=e,t.attributes_json=JSON.stringify(e),void 0!==t)&&t},set_variation(e,t){let r=t.variation_id||"",a=t.attributes_json||"",o=t.price_html||c.vars.parent_price,s="";t&&""!==t.availability_html&&(s=t.availability_html),t&&!t.is_in_stock&&(s="<p>"+orderable_vars.i18n.out_of_stock+"</p>"),t&&!t.is_purchasable&&(s="<p>"+orderable_vars.i18n.unavailable+"</p>"),!1===t&&(s="<p>"+orderable_vars.i18n.no_exist+"</p>"),!t||t.is_purchasable&&t.is_in_stock||(r="",a=""),""!==s&&d("."+c.vars.classes.product_messages).html(s),e.data("orderable-variation-id",r),e.data("orderable-variation-attributes",a),d(".orderable-drawer .orderable-product__actions-price").html(o),e.trigger("orderable_variation_set",{variation:t,variation_id:r,attributes:a,price:o})},clear_variation(e){c.set_variation(e,""),c.vars.parent_price&&d(".orderable-drawer .orderable-product__actions-price").html(c.vars.parent_price)},find_matching_variations(t,r){var a=[];for(let e=0;e<t.length;e++){var o=t[e];c.is_matching_variation(o.attributes,r)&&a.push(o)}return a},is_matching_variation(e,t){let r=!0;for(const s in e){var a,o;e.hasOwnProperty(s)&&(a=e[s],o=t[s],void 0!==a)&&void 0!==o&&0!==a.length&&0!==o.length&&a!==o&&(r=!1)}return r},is_empty(e){return void 0===e||!1===e||e.length<=0||!e},serialize_object:function(e){var t=e.serializeArray(),r={};for(let e=0;e<t.length;e++)r[t[e].name]=t[e].value;return r},update_button_state(){setTimeout(function(){let e=d(".orderable-drawer .orderable-product__add-to-order, .orderable-drawer .orderable-product__update-cart-item"),t=d(".orderable-drawer__html ."+c.vars.classes.invalid_field).length,r=e.data("orderable-product-type"),a=!0;"variable"===r&&(a=""!==e.data("orderable-variation-id")),e.prop("disabled",t||!a)},50)},debounce(a,o,s){let n;return function(){const e=this,t=arguments;var r=s&&!n;clearTimeout(n),n=setTimeout(function(){n=null,s||a.apply(e,t)},o),r&&a.apply(e,t)}},remove_fragments(e,t){if(t&&"undefined"!=typeof wc_cart_fragments_params&&wc_cart_fragments_params.fragment_name){var r=/\.orderable-product\[data-orderable-product-id='[1-9][0-9]*'\] \.orderable-product__actions-button \.orderable-quantity-roller/,a=/\.orderable-product\[data-orderable-product-id='[1-9][0-9]*'\] \.orderable-product__actions-button \.orderable-product__actions-counter/;for(const o in t)(r.test(o)||a.test(o))&&(t[o]=void 0);sessionStorage.setItem(wc_cart_fragments_params.fragment_name,JSON.stringify(t))}},remove_animation(){setTimeout(function(){d(".orderable-product__actions-counter").css("animation","")},1e3)},hide_quantity_roller(e,t,r,a){var o,a=a.attr("data-product_id")||a.attr("data-orderable-product-id");a&&(a=d(".orderable-product[data-orderable-product-id="+a+"] .orderable-product__actions-button")).length&&(o=a.find(".orderable-quantity-roller")).length&&(a.find("button.orderable-product__add-to-order[data-orderable-trigger]").removeClass("orderable-button--product-in-the-cart"),o.addClass("orderable-button--hide"))},add_unchecked_checkbox_fields(r){return jQuery('.orderable-product-fields-group :input[type="checkbox"]:not(:checked)').each(function(e,t){r.push({name:t.getAttribute("name"),value:""})}),r},shake_floating_cart(){d(".orderable-floating-cart__button").css("animation","wobble-hor-bottom .8s both")},remove_view_cart_link(e,t){t?.hasClass("orderable-product__add-to-order")&&t?.siblings(".added_to_cart.wc-forward").remove()}};d(l).ready(c.on_ready)}(jQuery,document),function(o,s){"use strict";var n={on_ready(){n.cache(),n.watch()},cache(){n.vars={top:{}},n.elements={}},watch(){o(s.body).on("orderable-drawer.opened",n.trigger),o(s.body).on("orderable-tabs.changed",n.trigger),o(s.body).on("orderable-accordion.toggled",n.trigger),o(s.body).on("wc_fragments_loaded",n.trigger)},trigger(){o(".orderable-sb-container").each(function(e,t){var r,t=o(t),a=t.data("orderable-scroll-id");n.has_scrollbar(t)||(t.scrollBox({containerClass:"orderable-sb-container",containerNoScrollClass:"orderable-sb-container-noscroll",contentClass:"orderable-sb-content",scrollbarContainerClass:"orderable-sb-scrollbar-container",scrollBarClass:"orderable-sb-scrollbar"}),0<(r=t.find(".orderable-sb-content")).length&&(r.on("scroll.scrollBox",n.log_top_position),void 0!==n.vars.top[a])&&r.scrollTop(n.vars.top[a]),o(s.body).trigger("orderable-scrollbar.created",{element:t,content:r}))}),o(window).trigger("resize.scrollBox")},has_scrollbar(e){return 0<e.find(".orderable-sb-content").length},log_top_position(e){var t=o(e.currentTarget).closest(".orderable-sb-container").data("orderable-scroll-id");n.vars.top[t]=o(e.currentTarget).scrollTop()}};o(s).ready(n.on_ready)}(jQuery,document),function(n,i){"use strict";var d={on_ready(){d.cache(),d.watch(),d.toggle_scroll()},on_resize(){d.toggle_scroll()},cache(){d.vars={classes:{tabs:"orderable-tabs",tabs_list:"orderable-tabs__list",tab_items:"orderable-tabs__item",tab_item_active:"orderable-tabs__item--active",tab_links:"orderable-tabs__link",tab_arrow_right:"orderable-tabs__arrow-right",tab_arrow_left:"orderable-tabs__arrow-left"},dragging:!1},d.elements={}},watch(){n("body").on("touchstart",function(){d.vars.dragging=!1}).on("touchmove",function(){d.vars.dragging=!0}),n(i.body).on("click mouseup touchend","."+d.vars.classes.tab_links,function(e){var t,r,a,o,s;d.vars.dragging||(e.preventDefault(),t=(e=n(this)).attr("href"),r=e.closest("."+d.vars.classes.tab_items),a=(s=e.closest("."+d.vars.classes.tabs)).find("."+d.vars.classes.tabs_list),o=s.find("."+d.vars.classes.tab_items),s=s.data("orderable-tabs"),s=(e=e.closest(s.wrapper)).find(s.sections),e=e.find(t),s.hide(),e.show(),o.removeClass(d.vars.classes.tab_item_active),r.addClass(d.vars.classes.tab_item_active),a.animate({scrollLeft:a.scrollLeft()+r.position().left}),n(i.body).trigger("orderable-tabs.changed",{tab:r}))}),n("."+d.vars.classes.tabs_list).on("scroll",function(e){var t=n(this),r=t.parent("."+d.vars.classes.tabs),a=t.siblings("."+d.vars.classes.tab_arrow_right),o=t.siblings("."+d.vars.classes.tab_arrow_left);t[0].scrollWidth<=r.width()+t.scrollLeft()?a.fadeOut():a.fadeIn(),t.scrollLeft()-o.width()<=0?o.fadeOut():o.fadeIn()}),n("."+d.vars.classes.tabs_list).on("wheel DOMMouseScroll mousewheel touchmove",function(){n(this).stop()}),n(i).on("click","."+d.vars.classes.tab_arrow_right,function(e){e.preventDefault();var e=n(this).parent(),t=e.find("."+d.vars.classes.tabs_list);t.animate({scrollLeft:t.scrollLeft()+.5*e.width()})}),n(i).on("click","."+d.vars.classes.tab_arrow_left,function(e){e.preventDefault();var e=n(this).parent(),t=e.find("."+d.vars.classes.tabs_list);t.animate({scrollLeft:t.scrollLeft()-.5*e.width()})})},toggle_scroll(){n("."+d.vars.classes.tabs).each(function(e,t){var r=n(this),a=r.data("orderable-tabs"),r=r.closest(a.wrapper),a=r.find("."+d.vars.classes.tabs_list),o=r.find("."+d.vars.classes.tab_arrow_right);r.outerWidth()<a[0].scrollWidth?o.show():o.hide()})}};n(i).ready(d.on_ready),n(window).on("resize",d.on_resize)}(jQuery,document);let orderable_timings={};!function(l,e){"use strict";orderable_timings={on_ready(){orderable_timings.watch()},restore(){var e,t=orderable_timings.get_timings();t&&t.date&&(0<(e=l(".orderable-order-timings__date")).find('option[value="'+t.date+'"]').length&&(e.val(t.date),e.change()),t.time)&&0<(e=l(".orderable-order-timings__time")).find('option[value="'+t.time+'"]').length&&(e.val(t.time),e.change())},watch(){l(e.body).on("wc_fragments_refreshed",function(){orderable_timings.restore()}),l(e.body).on("updated_checkout",function(){orderable_timings.restore()}),l(e.body).on("change",".orderable-order-timings__date",function(e){const t=l(this),r=t.find("option:selected"),a=r.data("orderable-slots"),o=l(".orderable-order-timings--time"),s=l(".orderable-order-timings__time"),n=s.find("option").first(),i=s.find('option[value="asap"]').first();var d=orderable_timings.get_timings();d.date=l(".orderable-order-timings__date").val(),window.localStorage.setItem("orderable_timings",JSON.stringify(d)),s.html(n),i&&s.append(i),a?"all-day"===a[0].value?(o.hide(),s.prop("disabled",!0)):(s.prop("disabled",!1),o.show(),l.each(a,function(e,t){s.append(l("<option />").attr("value",t.value).attr("data-orderable-time-slot-id",t?.setting_row?.time_slot_id).text(t.formatted))})):(s.prop("disabled",!0),o.hide())}),l(e.body).on("change",".orderable-order-timings__time",function(e){var t=orderable_timings.get_timings();t.time=l(".orderable-order-timings__time").val(),window.localStorage.setItem("orderable_timings",JSON.stringify(t)),l(this).siblings('input[name="orderable_order_time_slot_id"]').val(l(this).find(":selected").attr("data-orderable-time-slot-id"))})},get_timings(){return JSON.parse(window.localStorage.getItem("orderable_timings"))||{}}},l(e).ready(orderable_timings.on_ready)}(jQuery,document),function(a,o){"use strict";var e={on_ready(){e.watch()},watch(){void 0===window.orderable_triggers_admin&&a(o.body).on("click","[data-orderable-trigger]",e.trigger)},trigger(e){e.stopImmediatePropagation();var t=a(this),r=t.data("orderable-trigger");(t.is("button")||t.is("a"))&&e.preventDefault(),a(o.body).trigger("orderable-"+r,[t])}};a(o).ready(e.on_ready)}(jQuery,document);
  • orderable/tags/1.17.0/docs/filters.json

    r3143111 r3192586  
    564564        },
    565565        {
     566            "name": "orderable_get_time_slots_for_zone",
     567            "file": "inc/modules/location/zones/class-location-zones.php",
     568            "type": "filter",
     569            "doc": {
     570                "description": "Module: Location (Zones).",
     571                "long_description": "",
     572                "tags": [
     573                    {
     574                        "name": "since",
     575                        "content": "1.18.0"
     576                    },
     577                    {
     578                        "name": "package",
     579                        "content": "Orderable/Classes"
     580                    }
     581                ],
     582                "long_description_html": ""
     583            },
     584            "args": 2
     585        },
     586        {
     587            "name": "orderable_get_time_slots_for_zone",
     588            "file": "inc/modules/location/zones/class-location-zones.php",
     589            "type": "filter",
     590            "doc": {
     591                "description": "",
     592                "long_description": "",
     593                "tags": [],
     594                "long_description_html": ""
     595            },
     596            "args": 2
     597        },
     598        {
    566599            "name": "orderable_get_unique_categories",
    567600            "file": "inc/modules/layouts/class-layouts.php",
     
    9731006                            "array"
    9741007                        ]
     1008                    }
     1009                ],
     1010                "long_description_html": ""
     1011            },
     1012            "args": 1
     1013        },
     1014        {
     1015            "name": "orderable_location_open_hours_override_description",
     1016            "file": "inc/modules/location/admin/meta-boxes/class-location-open-hours-meta-box.php",
     1017            "type": "filter",
     1018            "doc": {
     1019                "description": "Filter the override open hours description.",
     1020                "long_description": "",
     1021                "tags": [
     1022                    {
     1023                        "name": "since",
     1024                        "content": "1.18.0"
    9751025                    }
    9761026                ],
  • orderable/tags/1.17.0/inc/class-products.php

    r3123410 r3192586  
    830830     */
    831831    public static function get_accordion_data( $product ) {
    832         $data = array();
     832        $data = [];
    833833
    834834        $description = Orderable_Settings::get_setting( 'drawer_quickview_description' );
    835835
    836         if ( 'none' !== $description ) {
    837             $description = 'short' === $description ? $product->get_short_description() : $product->get_description();
    838 
    839             $data[] = array(
    840                 'title'   => __( 'Description', 'orderable' ),
    841                 'content' => apply_filters( 'the_content', $description ),
    842                 'id'      => 'accordion-description',
    843             );
    844         }
     836        if ( 'none' === $description ) {
     837            // phpcs:ignore WooCommerce.Commenting.CommentHooks
     838            return apply_filters( 'orderable_get_accordion_data', $data, $product );
     839        }
     840
     841        $description = 'short' === $description ? $product->get_short_description() : $product->get_description();
     842
     843        // phpcs:ignore WooCommerce.Commenting.CommentHooks
     844        $content = apply_filters( 'the_content', $description );
     845
     846        if ( empty( $content ) ) {
     847            // phpcs:ignore WooCommerce.Commenting.CommentHooks
     848            return apply_filters( 'orderable_get_accordion_data', $data, $product );
     849        }
     850
     851        $data[] = array(
     852            'title'   => __( 'Description', 'orderable' ),
     853            'content' => $content,
     854            'id'      => 'accordion-description',
     855        );
    845856
    846857        /**
     
    849860         * @var array      $data
    850861         * @var WC_Product $product
     862         * @since 1.0.0
    851863         */
    852864        return apply_filters( 'orderable_get_accordion_data', $data, $product );
  • orderable/tags/1.17.0/inc/modules/checkout/blocks/order-date/build/checkout-order-date-block-frontend.asset.php

    r3069084 r3192586  
    1 <?php return array('dependencies' => array('lodash', 'react', 'wc-blocks-checkout', 'wc-blocks-components', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => '0646eb9149c10d8c6265');
     1<?php return array('dependencies' => array('lodash', 'react', 'wc-blocks-checkout', 'wc-blocks-components', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => '3995f2a4c13d839e3885');
  • orderable/tags/1.17.0/inc/modules/checkout/blocks/order-date/build/checkout-order-date-block-frontend.js

    r3069084 r3192586  
    1 (()=>{"use strict";var e={432:(e,r,t)=>{t.d(r,{k:()=>n});const a=window.React,o=window.wp.element,s=window.wp.components,d=window.wp.data,i=window.wp.i18n,c=window.lodash,l=window.wc.blocksComponents,n=({checkoutExtensionData:e,extensions:r,validation:t})=>{const{setExtensionData:n}=e,{getValidationError:p,setValidationErrors:u,clearValidationError:m}=t,v=r?.["orderable/order-service-date"]?.serviceDates,b=r?.["orderable/order-service-date"]?.serviceDatesLabel,w=(0,d.useSelect)((e=>e("wc/store/checkout").getExtensionData()?.["orderable/order-service-date"]?.timestamp)),f=(0,d.useSelect)((e=>e("wc/store/cart").isShippingRateBeingSelected())),g=(0,d.useSelect)((e=>f||e("wc/store/cart").isCustomerDataUpdating()),[f]),h=(0,d.useSelect)((e=>!(0,c.isEmpty)(e("wc/store/cart").getShippingRates()?.[0]?.shipping_rates))),E=r?.["orderable/order-service-date"]?.shouldSelectFirstAvailableDate,[k,S]=(0,o.useState)(!1),x=p("orderable/order-service-date"),y=p("orderable/order-no-service-date-selected");return(0,o.useEffect)((()=>{E&&S(!0)}),[E]),(0,o.useEffect)((()=>{if(k&&!g){const e=(0,c.head)((0,c.sortBy)((0,c.filter)(v,(e=>e?.value&&"asap"!==e?.value)),["value"]))?.value;if(!e)return;n("orderable/order-service-date","timestamp",`${e}`),S(!1)}}),[k,v,g,n]),(0,o.useEffect)((()=>{v||!h?m("orderable/order-service-date"):u({"orderable/order-service-date":{message:(0,i.__)("No service dates available","orderable"),hidden:!1}})}),[v,u,m,h]),(0,o.useEffect)((()=>{w||n("orderable/order-service-date","timestamp",v?.[0]?.value)}),[v,n,w]),(0,o.useEffect)((()=>{w?m("orderable/order-no-service-date-selected"):u({"orderable/order-no-service-date-selected":{message:(0,i.__)("Please select a service date","orderable"),hidden:!0}})}),[w,u,m]),(0,a.createElement)("div",{className:"wp-block-orderable-checkout__service-date "+(y?"has-error":"")},x?.message&&(0,a.createElement)(l.ValidationInputError,{errorMessage:x.message}),v&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)(s.SelectControl,{label:b,disabled:g,value:w,options:(0,c.map)(v),onChange:e=>{n("orderable/order-service-date","timestamp",e)}}),y&&!y.hidden&&(0,a.createElement)(l.ValidationInputError,{errorMessage:y.message})))}}},r={};function t(a){var o=r[a];if(void 0!==o)return o.exports;var s=r[a]={exports:{}};return e[a](s,s.exports,t),s.exports}t.d=(e,r)=>{for(var a in r)t.o(r,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:r[a]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{const e=window.wc.blocksCheckout;var r=t(432);const a=JSON.parse('{"apiVersion":2,"name":"orderable/order-service-date-block","version":"1.0.0","title":"Orderable - Service date field","category":"woocommerce","description":"Shows a select field to allow customers to select a service date.","supports":{"html":false,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-shipping-methods-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"orderable"}');(0,e.registerCheckoutBlock)({metadata:a,component:r.k})})()})();
     1(()=>{"use strict";var e={362:(e,r,t)=>{t.d(r,{e:()=>n});const a=window.React,o=window.wp.element,s=window.wp.components,c=window.wp.data,i=window.wp.i18n,d=window.lodash,l=window.wc.blocksComponents,n=({checkoutExtensionData:e,extensions:r,validation:t})=>{const{setExtensionData:n}=e,{getValidationError:p,setValidationErrors:u,clearValidationError:m}=t,v=r?.["orderable/order-service-date"]?.serviceDates,b=r?.["orderable/order-service-date"]?.serviceDatesLabel,w=(0,c.useSelect)((e=>e("wc/store/checkout").getExtensionData()?.["orderable/order-service-date"]?.timestamp)),f=(0,c.useSelect)((e=>e("wc/store/cart").isShippingRateBeingSelected())),h=(0,c.useSelect)((e=>f||e("wc/store/cart").isCustomerDataUpdating()),[f]),g=(0,c.useSelect)((e=>!(0,d.isEmpty)(e("wc/store/cart").getShippingRates()?.[0]?.shipping_rates))),E=r?.["orderable/order-service-date"]?.shouldSelectFirstAvailableDate,[k,S]=(0,o.useState)(!1),x=p("orderable/order-service-date"),y=p("orderable/order-no-service-date-selected");return(0,o.useEffect)((()=>{E&&S(!0)}),[E]),(0,o.useEffect)((()=>{if(k&&!h){const e=(0,d.head)((0,d.sortBy)((0,d.filter)(v,(e=>e?.value&&"asap"!==e?.value)),["value"]))?.value;if(!e)return;n("orderable/order-service-date","timestamp",`${e}`),S(!1)}}),[k,v,h,n]),(0,o.useEffect)((()=>{v||!g?m("orderable/order-service-date"):u({"orderable/order-service-date":{message:(0,i.__)("No service dates available","orderable"),hidden:!1}})}),[v,u,m,g]),(0,o.useEffect)((()=>{w||n("orderable/order-service-date","timestamp",v?.[0]?.value)}),[v,n,w]),(0,o.useEffect)((()=>{w?m("orderable/order-no-service-date-selected"):u({"orderable/order-no-service-date-selected":{message:(0,i.__)("Please select a service date","orderable"),hidden:!0}})}),[w,u,m]),(0,a.createElement)("div",{className:"wp-block-orderable-checkout__service-date "+(y?"has-error":"")},x?.message&&(0,a.createElement)(l.ValidationInputError,{errorMessage:x.message}),v&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)(s.SelectControl,{label:b,disabled:h,value:w,options:(0,d.map)(v),onChange:e=>{n("orderable/order-service-date","timestamp",e)}}),y&&!y.hidden&&(0,a.createElement)(l.ValidationInputError,{errorMessage:y.message})))}}},r={};function t(a){var o=r[a];if(void 0!==o)return o.exports;var s=r[a]={exports:{}};return e[a](s,s.exports,t),s.exports}t.d=(e,r)=>{for(var a in r)t.o(r,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:r[a]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);const a=window.wc.blocksCheckout;var o=t(362);const s=JSON.parse('{"apiVersion":2,"name":"orderable/order-service-date-block","version":"1.0.0","title":"Orderable - Service date field","category":"woocommerce","description":"Shows a select field to allow customers to select a service date.","supports":{"html":false,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-shipping-methods-block","woocommerce/checkout-pickup-options-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"orderable"}');(0,a.registerCheckoutBlock)({metadata:s,component:o.e})})();
  • orderable/tags/1.17.0/inc/modules/checkout/blocks/order-date/build/index.asset.php

    r3069084 r3192586  
    1 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => 'a14d70b709702dd7225f');
     1<?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => '1d89ce0313abe52bcc53');
  • orderable/tags/1.17.0/inc/modules/checkout/blocks/order-date/build/index.js

    r3069084 r3192586  
    1 (()=>{"use strict";const e=window.wp.blocks,o=window.wp.element,t=window.React,l=window.wp.i18n,r=window.wp.blockEditor,a=window.wp.components,i=JSON.parse('{"apiVersion":2,"name":"orderable/order-service-date-block","version":"1.0.0","title":"Orderable - Service date field","category":"woocommerce","description":"Shows a select field to allow customers to select a service date.","supports":{"html":false,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-shipping-methods-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"orderable"}'),c=(0,o.createElement)("svg",{width:20,height:15,viewBox:"0 0 20 15"},(0,o.createElement)("path",{"fill-rule":"evenodd","clip-rule":"evenodd",fill:"#BD47F5",d:"M15.6129 13.6639C18.6362 11.6975 20.7599 7.52818 19.7423 4.61553C18.7247 1.71768 14.5511 0.0765439 10.1415 0.00261896C5.7467 -0.071306 1.1159 1.42198 0.186796 4.20155C-0.75706 6.98113 2.01552 11.0618 5.36326 13.2204C8.69625 15.379 12.6044 15.6303 15.6129 13.6639ZM7.10944 2.68222C6.69369 2.68222 6.35667 3.01988 6.35667 3.43641C6.35667 3.85293 6.69369 4.1906 7.10944 4.1906H10.5044L10.5036 4.19159C10.8969 4.21733 11.2078 4.54442 11.2078 4.94415C11.2078 5.36068 10.8702 5.69834 10.4537 5.69834H9.7826L9.78247 5.69897H4.34928C3.93354 5.69897 3.59651 6.03664 3.59651 6.45316C3.59651 6.86969 3.93354 7.20735 4.34928 7.20735H10.4848C10.8869 7.2237 11.2078 7.55483 11.2078 7.96091C11.2078 8.36064 10.8969 8.68774 10.5037 8.71347L10.5055 8.71573H6.10574C5.69 8.71573 5.35297 9.0534 5.35297 9.46992C5.35297 9.88645 5.69 10.2241 6.10574 10.2241H13.8007C13.8251 10.2241 13.8492 10.223 13.8729 10.2207C16.018 10.1438 17.7318 8.48614 17.7318 6.45253C17.7318 4.36989 15.9344 2.68158 13.7171 2.68158H13.7162L7.10944 2.68222ZM15.0192 6.45253C15.0192 6.87904 14.599 7.51057 13.7171 7.51057C12.8351 7.51057 12.415 6.87904 12.415 6.45253C12.415 6.02602 12.8351 5.39449 13.7171 5.39449C14.599 5.39449 15.0192 6.02602 15.0192 6.45253ZM12.3659 11.2742C12.4644 11.5671 12.2588 11.9864 11.9662 12.1841C11.675 12.3818 11.2968 12.3566 10.9742 12.1395C10.6502 11.9224 10.3819 11.5121 10.4732 11.2326C10.5631 10.9531 11.0113 10.8029 11.4367 10.8103C11.8634 10.8178 12.2674 10.9828 12.3659 11.2742ZM13.6518 12.1841C13.3592 11.9864 13.1536 11.5671 13.2521 11.2742C13.3506 10.9828 13.7546 10.8178 14.1813 10.8103C14.6067 10.8029 15.0549 10.9531 15.1448 11.2326C15.2361 11.5121 14.9678 11.9224 14.6438 12.1395C14.3212 12.3566 13.943 12.3818 13.6518 12.1841Z"}));(0,e.registerBlockType)(i,{icon:c,edit:()=>{const e=(0,r.useBlockProps)();return(0,t.createElement)("div",{...e},(0,t.createElement)(a.Disabled,null,(0,t.createElement)(a.SelectControl,{label:(0,l.__)("Delivery Date","orderable"),options:[{value:"today",label:(0,l.__)("Today","orderable")},{value:"tomorrow",label:(0,l.__)("Tomorrow","orderable")}]})))}})})();
     1(()=>{"use strict";const e=window.wp.blocks,o=window.wp.element,t=window.React,l=window.wp.i18n,r=window.wp.blockEditor,a=window.wp.components,c=JSON.parse('{"apiVersion":2,"name":"orderable/order-service-date-block","version":"1.0.0","title":"Orderable - Service date field","category":"woocommerce","description":"Shows a select field to allow customers to select a service date.","supports":{"html":false,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-shipping-methods-block","woocommerce/checkout-pickup-options-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"orderable"}'),i=(0,o.createElement)("svg",{width:20,height:15,viewBox:"0 0 20 15"},(0,o.createElement)("path",{"fill-rule":"evenodd","clip-rule":"evenodd",fill:"#BD47F5",d:"M15.6129 13.6639C18.6362 11.6975 20.7599 7.52818 19.7423 4.61553C18.7247 1.71768 14.5511 0.0765439 10.1415 0.00261896C5.7467 -0.071306 1.1159 1.42198 0.186796 4.20155C-0.75706 6.98113 2.01552 11.0618 5.36326 13.2204C8.69625 15.379 12.6044 15.6303 15.6129 13.6639ZM7.10944 2.68222C6.69369 2.68222 6.35667 3.01988 6.35667 3.43641C6.35667 3.85293 6.69369 4.1906 7.10944 4.1906H10.5044L10.5036 4.19159C10.8969 4.21733 11.2078 4.54442 11.2078 4.94415C11.2078 5.36068 10.8702 5.69834 10.4537 5.69834H9.7826L9.78247 5.69897H4.34928C3.93354 5.69897 3.59651 6.03664 3.59651 6.45316C3.59651 6.86969 3.93354 7.20735 4.34928 7.20735H10.4848C10.8869 7.2237 11.2078 7.55483 11.2078 7.96091C11.2078 8.36064 10.8969 8.68774 10.5037 8.71347L10.5055 8.71573H6.10574C5.69 8.71573 5.35297 9.0534 5.35297 9.46992C5.35297 9.88645 5.69 10.2241 6.10574 10.2241H13.8007C13.8251 10.2241 13.8492 10.223 13.8729 10.2207C16.018 10.1438 17.7318 8.48614 17.7318 6.45253C17.7318 4.36989 15.9344 2.68158 13.7171 2.68158H13.7162L7.10944 2.68222ZM15.0192 6.45253C15.0192 6.87904 14.599 7.51057 13.7171 7.51057C12.8351 7.51057 12.415 6.87904 12.415 6.45253C12.415 6.02602 12.8351 5.39449 13.7171 5.39449C14.599 5.39449 15.0192 6.02602 15.0192 6.45253ZM12.3659 11.2742C12.4644 11.5671 12.2588 11.9864 11.9662 12.1841C11.675 12.3818 11.2968 12.3566 10.9742 12.1395C10.6502 11.9224 10.3819 11.5121 10.4732 11.2326C10.5631 10.9531 11.0113 10.8029 11.4367 10.8103C11.8634 10.8178 12.2674 10.9828 12.3659 11.2742ZM13.6518 12.1841C13.3592 11.9864 13.1536 11.5671 13.2521 11.2742C13.3506 10.9828 13.7546 10.8178 14.1813 10.8103C14.6067 10.8029 15.0549 10.9531 15.1448 11.2326C15.2361 11.5121 14.9678 11.9224 14.6438 12.1395C14.3212 12.3566 13.943 12.3818 13.6518 12.1841Z"}));(0,e.registerBlockType)(c,{icon:i,edit:()=>{const e=(0,r.useBlockProps)();return(0,t.createElement)("div",{...e},(0,t.createElement)(a.Disabled,null,(0,t.createElement)(a.SelectControl,{label:(0,l.__)("Delivery Date","orderable"),options:[{value:"today",label:(0,l.__)("Today","orderable")},{value:"tomorrow",label:(0,l.__)("Tomorrow","orderable")}]})))}})})();
  • orderable/tags/1.17.0/inc/modules/checkout/blocks/order-date/src/js/block.json

    r3069084 r3192586  
    1212        "reusable": false
    1313    },
    14     "parent": [ "woocommerce/checkout-shipping-methods-block" ],
     14    "parent": [
     15        "woocommerce/checkout-shipping-methods-block",
     16        "woocommerce/checkout-pickup-options-block"
     17    ],
    1518    "attributes": {
    1619        "lock": {
  • orderable/tags/1.17.0/inc/modules/location/admin/class-location-admin.php

    r3143111 r3192586  
    341341        foreach ( WC_Shipping_Zones::get_zones() as $zone ) {
    342342            wp_cache_delete( 'orderable_time_slots_for_zone_' . $zone['zone_id'] );
     343            wp_cache_delete( "has_zone_{$location_id}_{$zone['zone_id']}_true" );
     344            wp_cache_delete( "has_zone_{$location_id}_{$zone['zone_id']}_false" );
     345            wp_cache_delete( "{$time_slots_cache_key}_delivery_{$zone['zone_id']}" );
     346            wp_cache_delete( "{$time_slots_cache_key}_pickup_{$zone['zone_id']}" );
    343347        }
    344348
  • orderable/tags/1.17.0/inc/modules/location/class-location-single.php

    r3143111 r3192586  
    346346        }
    347347
    348         wp_cache_set( $cache_key, $service_hours );
     348        wp_cache_set( $cache_key, $service_hours, '', ORDERABLE_CACHE_EXPIRATION_TIME );
    349349
    350350        // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment
     
    816816            $service_dates = apply_filters( 'orderable_location_service_dates', $result, $type, $this );
    817817
    818             wp_cache_set( $cache_key, $service_dates );
     818            wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME );
    819819
    820820            return $service_dates;
     
    839839            $service_dates = apply_filters( 'orderable_location_service_dates', $result, $type, $this );
    840840
    841             wp_cache_set( $cache_key, $service_dates );
     841            wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME );
    842842
    843843            return $service_dates;
     
    859859            $service_dates = apply_filters( 'orderable_location_service_dates', $result, $type, $this );
    860860
    861             wp_cache_set( $cache_key, $service_dates );
     861            wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME );
    862862
    863863            return $service_dates;
     
    10291029        $service_dates = apply_filters( 'orderable_location_service_dates', $service_dates, $type, $this );
    10301030
    1031         wp_cache_set( $cache_key, $service_dates );
     1031        wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME );
    10321032
    10331033        return $service_dates;
  • orderable/tags/1.17.0/inc/modules/location/zones/class-location-zones-crud-handler.php

    r2912589 r3192586  
    145145
    146146            $normalized_postcodes = array_map( 'wc_normalize_postcode', explode( ',', $data['zone_postcodes'] ) );
    147             $locations            = ( ! empty( $data['zone_postcodes'] ) ) ? self::convert_postcodes_to_locations( $normalized_postcodes ) : array();
     147            // clear postcodes but keep other locations type e.g. state, country.
     148            $zone->clear_locations( ['postcode'] );
    148149
    149150            // NOTE: Shipping methods are added in class-location-zones.php;
    150151            // see the `on_shipping_zone_save` method.
    151             $zone->set_locations( $locations );
     152            foreach ( $normalized_postcodes as $postcode ) {
     153                $zone->add_location( $postcode, 'postcode' );
     154            }
    152155
    153156            $data_store->update( $zone );
  • orderable/tags/1.17.0/languages/orderable.pot

    r3143111 r3192586  
    77"Content-Type: text/plain; charset=UTF-8\n"
    88"Content-Transfer-Encoding: 8bit\n"
    9 "POT-Creation-Date: 2024-08-28 16:46+0000\n"
     9"POT-Creation-Date: 2024-11-19 18:56+0000\n"
    1010"X-Poedit-Basepath: ..\n"
    1111"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
     
    182182msgstr ""
    183183
    184 #: inc/class-products.php:840
     184#: inc/class-products.php:852
    185185msgid "Description"
    186186msgstr ""
     
    10921092
    10931093#. translators: zone name
    1094 #: inc/modules/location/zones/class-location-zones-crud-handler.php:164
     1094#: inc/modules/location/zones/class-location-zones-crud-handler.php:167
    10951095msgid "%s succcessfully updated!"
    10961096msgstr ""
    10971097
    1098 #: inc/modules/location/zones/class-location-zones-crud-handler.php:240
     1098#: inc/modules/location/zones/class-location-zones-crud-handler.php:243
    10991099msgid "Zone succcessfully deleted!"
    11001100msgstr ""
    11011101
    1102 #: inc/modules/location/zones/class-location-zones-crud-handler.php:281
     1102#: inc/modules/location/zones/class-location-zones-crud-handler.php:284
    11031103msgid "Zone(s) succcessfully removed"
    11041104msgstr ""
  • orderable/tags/1.17.0/orderable.php

    r3143111 r3192586  
    44 * Author URI: https://orderable.com
    55 * Description: Take local online ordering to a whole new level with Orderable.
    6  * Version: 1.16.0
     6 * Version: 1.17.0
    77 * Author: Orderable
    88 * Text Domain: orderable
    99 * WC requires at least: 5.4.0
    10  * WC tested up to: 9.2
     10 * WC tested up to: 9.4
    1111 */
    1212
     
    2020     * @var string Plugin version.
    2121     */
    22     public static $version = '1.16.0';
     22    public static $version = '1.17.0';
    2323
    2424    /**
    2525     * @var string Required pro version.
    2626     */
    27     public static $required_pro_version = '1.16.0';
     27    public static $required_pro_version = '1.17.0';
    2828
    2929    /**
     
    164164        $this->define( 'ORDERABLE_LANGUAGES_PATH', dirname( ORDERABLE_BASENAME ) . '/languages/' );
    165165        $this->define( 'ORDERABLE_VERSION', self::$version );
     166        $this->define( 'ORDERABLE_CACHE_EXPIRATION_TIME', 5 * MINUTE_IN_SECONDS );
    166167    }
    167168
     
    195196        require_once ORDERABLE_INC_PATH . 'class-ask-review.php';
    196197        require_once ORDERABLE_INC_PATH . 'class-integrations.php';
     198        require_once ORDERABLE_INC_PATH . 'class-compat-flux-checkout.php';
    197199
    198200        Orderable_Settings::run();
     
    204206        Orderable_Ask_Review::run();
    205207        Orderable_Integrations::run();
     208        Orderable_Compat_Flux_Checkout::run();
    206209    }
    207210
  • orderable/tags/1.17.0/phpcs.xml

    r3123410 r3192586  
    22<ruleset name="IconicWP-Default">
    33    <description>Generally-applicable sniffs for Iconic plugins</description>
     4
     5    <!--
     6    Prevent errors caused by WordPress Coding Standards not supporting PHP 8.0+.
     7    See https://github.com/WordPress/WordPress-Coding-Standards/issues/2035
     8    -->
     9    <ini name="error_reporting" value="E_ALL &#38; ~E_DEPRECATED" />
    410
    511    <!-- Configs -->
  • orderable/tags/1.17.0/phpstan.neon

    r3123410 r3192586  
    1212        - vendor/php-stubs/woocommerce-stubs/woocommerce-packages-stubs.php
    1313        - stubs/orderable-stubs.php
     14        - stubs/iconic-stubs.php
  • orderable/tags/1.17.0/readme.txt

    r3143111 r3192586  
    33Tags: restaurant, food ordering, food menu, food delivery, restaurant menu
    44Requires at least: 5.4
    5 Tested up to: 6.6
     5Tested up to: 6.7
    66Requires PHP: 5.6
    7 Stable tag: 1.16.0
     7Stable tag: 1.17.0
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    186186
    187187== Changelog ==
     188**v1.17.0** (19 Nov 2024)
     189[fix] Compatibility with Flux Checkout for WooCommerce plugin
     190[fix] Incorrect shipping methods showing in the Find Locations modal
     191[fix] Region being removed from shipping zones when a zone is added to a location
     192[fix] Order Date block to be compatible with the new WooCommerce Local pickup
     193[fix] Description accordion showing when the product description is empty
     194[fix] Race condition causing page to reload when changing tabs for locations in WCFM dashboard
     195
    188196**v1.16.0** (28 Aug 2024)
    189197[new] Multi-vendor plugin integration
  • orderable/trunk/assets/frontend/js/main.js

    r3143111 r3192586  
    15101510      const $trigger_element = $(this),
    15111511        trigger = $trigger_element.data('orderable-trigger');
     1512      if ($trigger_element.is('button') || $trigger_element.is('a')) {
     1513        e.preventDefault();
     1514      }
    15121515      $(document.body).trigger('orderable-' + trigger, [$trigger_element]);
    15131516    }
  • orderable/trunk/assets/frontend/js/main.min.js

    r3143111 r3192586  
    1 !function(o,e,s){var n="scrollBox",r={containerClass:"sb-container",containerNoScrollClass:"sb-container-noscroll",contentClass:"sb-content",scrollbarContainerClass:"sb-scrollbar-container",scrollBarClass:"sb-scrollbar"};function t(e,t){this.element=e,this.settings=o.extend({},r,t),this._defaults=r,this._name=n,this.init()}o.extend(t.prototype,{init:function(){this.addScrollbar(),this.addEvents(),this.onResize()},addScrollbar:function(){o(this.element).addClass(this.settings.containerClass),this.wrapper=o("<div class='"+this.settings.contentClass+"' />"),this.wrapper.append(o(this.element).contents()),o(this.element).append(this.wrapper),this.scollbarContainer=o("<div class='"+this.settings.scrollbarContainerClass+"' />"),this.scrollBar=o("<div class='"+this.settings.scrollBarClass+"' />"),this.scollbarContainer.append(this.scrollBar),o(this.element).prepend(this.scollbarContainer)},addEvents:function(){this.wrapper.on("scroll."+n,o.proxy(this.onScroll,this)),o(e).on("resize."+n,o.proxy(this.onResize,this)),this.scrollBar.on("mousedown."+n,o.proxy(this.onMousedown,this)),this.scrollBar.on("touchstart."+n,o.proxy(this.onTouchstart,this))},onTouchstart:function(t){var r=this,a=(t.preventDefault(),r.scrollBar[0].offsetTop);o(s).on("touchmove."+n,function(e){e=e.touches[0].pageY-t.touches[0].pageY;r.scrollBar[0].style.top=Math.min(r.scollbarContainer[0].clientHeight-r.scrollBar[0].clientHeight,Math.max(0,a+e))+"px",r.wrapper[0].scrollTop=r.wrapper[0].scrollHeight*r.scrollBar[0].offsetTop/r.scollbarContainer[0].clientHeight}),o(s).on("touchend."+n,function(){o(s).off("touchmove."+n),o(s).off("touchend."+n)})},onMousedown:function(t){var r=this,a=(t.preventDefault(),r.scrollBar[0].offsetTop);o(s).on("mousemove."+n,function(e){e=e.pageY-t.pageY;r.scrollBar[0].style.top=Math.min(r.scollbarContainer[0].clientHeight-r.scrollBar[0].clientHeight,Math.max(0,a+e))+"px",r.wrapper[0].scrollTop=r.wrapper[0].scrollHeight*r.scrollBar[0].offsetTop/r.scollbarContainer[0].clientHeight}),o(s).on("mouseup."+n,function(){o(s).off("mousemove."+n),o(s).off("mouseup."+n)})},onResize:function(){this.wrapper.css("max-height",o(this.element).height());var e=this.wrapper[0].clientHeight;this.scrollBar.css("height",this.scollbarContainer[0].clientHeight*e/this.wrapper[0].scrollHeight+"px"),this.scollbarContainer[0].clientHeight<=this.scrollBar[0].clientHeight?o(this.element).addClass(this.settings.containerNoScrollClass):o(this.element).removeClass(this.settings.containerNoScrollClass),this.onScroll()},onScroll:function(){this.scrollBar.css("top",Math.min(this.scollbarContainer[0].clientHeight-this.scrollBar[0].clientHeight,this.scollbarContainer[0].clientHeight*this.wrapper[0].scrollTop/this.wrapper[0].scrollHeight)+"px")}}),o.fn[n]=function(e){return this.each(function(){o.data(this,"plugin_"+n)||o.data(this,"plugin_"+n,new t(this,e))})}}(jQuery,window,document),function(e,o){"function"!=typeof e.CustomEvent&&(e.CustomEvent=function(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var r=o.createEvent("CustomEvent");return r.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r},e.CustomEvent.prototype=e.Event.prototype),o.addEventListener("touchstart",function(e){"true"!==e.target.getAttribute("data-swipe-ignore")&&(c=e.target,l=Date.now(),s=e.touches[0].clientX,n=e.touches[0].clientY,d=i=0)},!1),o.addEventListener("touchmove",function(e){var t;s&&n&&(t=e.touches[0].clientX,e=e.touches[0].clientY,i=s-t,d=n-e)},!1),o.addEventListener("touchend",function(e){var t,r,a,o;c===e.target&&(o=parseInt(_(c,"data-swipe-threshold","20"),10),t=parseInt(_(c,"data-swipe-timeout","500"),10),r=Date.now()-l,a="",e=e.changedTouches||e.touches||[],Math.abs(i)>Math.abs(d)?Math.abs(i)>o&&r<t&&(a=0<i?"swiped-left":"swiped-right"):Math.abs(d)>o&&r<t&&(a=0<d?"swiped-up":"swiped-down"),""!==a&&(o={dir:a.replace(/swiped-/,""),touchType:(e[0]||{}).touchType||"direct",xStart:parseInt(s,10),xEnd:parseInt((e[0]||{}).clientX||-1,10),yStart:parseInt(n,10),yEnd:parseInt((e[0]||{}).clientY||-1,10)},c.dispatchEvent(new CustomEvent("swiped",{bubbles:!0,cancelable:!0,detail:o})),c.dispatchEvent(new CustomEvent(a,{bubbles:!0,cancelable:!0,detail:o}))),l=n=s=null)},!1);var s=null,n=null,i=null,d=null,l=null,c=null;function _(e,t,r){for(;e&&e!==o.documentElement;){var a=e.getAttribute(t);if(a)return a;e=e.parentNode}return r}}(window,document),function(o,s){var n={on_ready(){n.cache(),n.watch()},cache(){n.vars={classes:{parent:"orderable-accordion",link:"orderable-accordion__item-link",content:"orderable-accordion__item-content",link_active:"orderable-accordion__item-link--active",content_active:"orderable-accordion__item-content--active"}}},watch(){o(s.body).on("click","."+n.vars.classes.link,function(e){e.preventDefault();var e=o(this),t=e.closest("."+n.vars.classes.parent),r=e.attr("href"),r=o(r),a=e.hasClass(n.vars.classes.link_active);t.find("."+n.vars.classes.link).removeClass(n.vars.classes.link_active),t.find("."+n.vars.classes.content).removeClass(n.vars.classes.content_active),a||(e.addClass(n.vars.classes.link_active),r.addClass(n.vars.classes.content_active)),o(s.body).trigger("orderable-accordion.toggled",{link:e,content:r})}),o(s.body).on("orderable-scrollbar.created",function(e,t){var r=o(".orderable-drawer ."+n.vars.classes.link_active);r.length<=0||(r=(t=t.content).scrollTop()-t.offset().top+r.offset().top,t.scrollTop(r))})}};o(s).ready(n.on_ready)}(jQuery,document),function(l,c){var r={debounce(t,r=700){let a;return(...e)=>{clearTimeout(a),a=setTimeout(()=>{t.apply(this,e)},r)}},allow_only_numbers(e){var t=String.fromCharCode(e.which);/^\d+$/.test(t)||e.preventDefault()},on_change_quantity(e){let t=l(e.currentTarget);var e=t.data("orderable-product-id"),r=t.data("orderable-cart-item-key"),a=parseInt(t.text());jQuery.post(orderable_vars.ajax_url,{action:"orderable_cart_quantity",cart_item_key:r,product_id:e,quantity:a},function(e){e&&(l(c.body).trigger("added_to_cart",[e.fragments,e.cart_hash,t]),l(c.body).trigger("orderable-drawer.quantity-updated"))})},on_ready(){r.cache(),r.watch(),l(c.body).on("keypress",".orderable-quantity-roller__quantity",r.allow_only_numbers),l(".orderable-drawer__cart, .orderable-product--add-to-cart, .orderable-products-list").on("input",".orderable-quantity-roller__quantity",r.debounce(r.on_change_quantity)),l(c.body).on("click",".orderable-quantity-roller__quantity",function(e){e.stopPropagation()}),orderable_vars&&!orderable_vars.woocommerce_enable_ajax_add_to_cart&&l(c.body).off("click",".add_to_cart_button")},cache(){r.vars={classes:{overlay:"orderable-drawer-overlay",drawer:"orderable-drawer",drawer_cart:"orderable-drawer__cart",drawer_html:"orderable-drawer__html",overlay_open:"orderable-drawer-overlay--open",drawer_open:"orderable-drawer--open",drawer_open_body:"orderable-drawer-open"}},r.elements={body:l("body"),overlay:l("."+r.vars.classes.overlay),drawer:l("."+r.vars.classes.drawer),drawer_cart:l("."+r.vars.classes.drawer_cart),drawer_html:l("."+r.vars.classes.drawer_html),floating_cart_button_class:".orderable-floating-cart__button"}},watch(){var e,t;void 0!==r.elements.drawer&&(l(c.body).on("orderable-drawer.open",r.open),l(c.body).on("orderable-drawer.close",r.close),l(c.body).on("click",r.elements.floating_cart_button_class,function(){l(c.body).trigger("orderable-drawer.open",{show_cart:!0})}),l(c.body).on("orderable-increase-quantity",r.cart.handle_quantity_change_by_button),l(c.body).on("orderable-decrease-quantity",r.cart.handle_quantity_change_by_button),e=r.debounce(r.cart.click_increase_decrease_quantity),l(c.body).on("orderable-increase-quantity",e),l(c.body).on("orderable-decrease-quantity",e),e=c.querySelector("body:not( .rtl ) .orderable-drawer"),t=c.querySelector("body.rtl .orderable-drawer"),e&&e.addEventListener("swiped-right",function(e){r.close()}),t)&&t.addEventListener("swiped-left",function(e){r.close()})},open(e,t){t.html=t.html||!1,t.show_cart=t.show_cart||!1,r.elements.drawer_html.hide(),r.elements.drawer_cart.hide(),t.html&&(r.elements.drawer_html.html(t.html),r.elements.drawer_html.show()),t.show_cart&&(r.elements.drawer_html.html(""),r.elements.drawer_cart.show()),r.elements.overlay.addClass(r.vars.classes.overlay_open),r.elements.drawer.addClass(r.vars.classes.drawer_open),r.elements.body.addClass(r.vars.classes.drawer_open_body),l(c.body).trigger("orderable-drawer.opened",t)},close(){r.elements.overlay.removeClass(r.vars.classes.overlay_open),r.elements.drawer.removeClass(r.vars.classes.drawer_open),r.elements.body.removeClass(r.vars.classes.drawer_open_body),r.elements.drawer_html.html(""),l(c.body).trigger("orderable-drawer.closed")},cart:{click_increase_decrease_quantity(e,r){var t=r.data("orderable-trigger"),a=r.attr("data-orderable-product-id"),o=r.attr("data-orderable-cart-item-key"),s=r.attr("data-orderable-quantity");let n=r.siblings(".orderable-quantity-roller__button--"+("increase-quantity"===t?"decrease":"increase")),i=r.siblings(".orderable-quantity-roller__quantity"),d={action:"orderable_cart_quantity",cart_item_key:o,product_id:a,quantity:s};this.currentRequest&&(this.currentRequest.abort(),this.currentRequest=void 0),r.addClass("orderable-button--loading"),r.attr("disabled",!0),n.attr("disabled",!0),i.attr("contenteditable",!1),this.currentRequest=jQuery.post(orderable_vars.ajax_url,d,function(e){if(e){var t=r.siblings(".orderable-quantity-roller__quantity");switch(e&&e.fragments&&e.fragments[".orderable-mini-cart__notices"]&&l(c.body).trigger("orderable-drawer.open",{show_cart:!0}),d.quantity){case"0":l(c.body).trigger("removed_from_cart",[e.fragments,e.cart_hash,r]);break;case t.attr("data-orderable-updating-quantity"):l(c.body).trigger("added_to_cart",[e.fragments,e.cart_hash,r]),l(c.body).trigger("orderable-drawer.quantity-updated")}}}.bind(this)).always(function(){this.currentRequest=void 0,r.removeClass("orderable-button--loading"),r.attr("disabled",!1),n.attr("disabled",!1),i.attr("contenteditable",!0)}.bind(this))},handle_quantity_change_by_button(e,t){var r,a=t.data("orderable-trigger"),o=parseInt(t.attr("data-orderable-quantity")),s=t.siblings(".orderable-quantity-roller__button--"+("increase-quantity"===a?"decrease":"increase")),n=t.siblings(".orderable-quantity-roller__quantity"),a="increase-quantity"===a?o+1:Math.max(0,o-1),o=t.parents(".orderable-product__actions-button");0===a&&o.length&&(r=o.find("button.orderable-button[data-orderable-trigger]"),(o=o.find(".orderable-quantity-roller")).length)&&(r.removeClass("orderable-button--product-in-the-cart"),o.removeClass("orderable-quantity-roller--is-active")),t.attr("data-orderable-quantity",a),s.attr("data-orderable-quantity",a),n.attr("data-orderable-updating-quantity",a),n.text(a),n.attr("contenteditable",!1)}}};l(c).ready(r.on_ready)}(jQuery,document),function(d,l){var c={on_ready(){c.cache(),c.watch()},cache(){c.vars={classes:{clickable_product:"orderable-product--add-to-cart ",add_to_order_button:"orderable-product__add-to-order",product_messages:"orderable-product__messages",product_price:"orderable-product__actions-price",invalid_field:"orderable-field--invalid",option_select_td:"orderable-product__option-select",button_loading:"orderable-button--loading",out_of_stock:"orderable-button--out-of-stock"},parent_price:null,variable_product_types:["variable","variable-subscription"]},c.elements={}},watch(){d(l.body).on("orderable-drawer.opened",c.init_product_options),d(l.body).on("orderable-add-to-cart",c.click_add_to_order),d(l.body).on("orderable-product-options",c.click_add_to_order),d(l.body).on("orderable-view-product",c.view_product),d(l.body).on("mouseenter mouseleave","."+c.vars.classes.clickable_product,c.simulate_add_to_order_hover),d(l.body).on("orderable-edit-cart-item",c.edit_cart_item),d(l.body).on("orderable-update-cart-item",c.update_cart_item),d(l.body).on("orderable-show-cart",c.show_cart),d(l.body).on("orderable-add-to-cart-without-side-drawer",c.click_add_to_order),d(l.body).on("added_to_cart",c.remove_fragments),d(l.body).on("added_to_cart",c.remove_animation),d(l.body).on("added_to_cart",c.shake_floating_cart),d(l.body).on("removed_from_cart",c.hide_quantity_roller),d(l.body).on("wc_cart_button_updated",c.remove_view_cart_link)},simulate_add_to_order_hover(e){d(this).find("."+c.vars.classes.add_to_order_button).toggleClass("orderable-button--hover","mouseenter"===e.type)},click_add_to_order(e,t){let r=(t=void 0!==t?t:d(this)).is("button")?t:t.find("."+c.vars.classes.add_to_order_button),a=r.data("orderable-trigger"),o=r.data("orderable-product-id"),s=r.data("orderable-variation-id"),n=r.data("orderable-variation-attributes"),i={action:a};if(!r.hasClass(c.vars.classes.button_loading)&&!r.hasClass(c.vars.classes.out_of_stock))switch(r.addClass(c.vars.classes.button_loading),a){case"add-to-cart":c.add_to_cart({product_id:o,variation_id:s,attributes:n,thisbutton:t},function(e){i.show_cart=!0,i.response=e,d(l.body).trigger("orderable-drawer.open",i),r.removeClass(c.vars.classes.button_loading);e=d(".orderable-product .orderable-product__actions-button button.orderable-product__add-to-order[data-orderable-product-id="+o+"]");e.siblings(".orderable-quantity-roller").length&&e.addClass("orderable-button--product-in-the-cart")});break;case"add-to-cart-without-side-drawer":c.add_to_cart({product_id:o,variation_id:s,attributes:n},function(e){i.response=e,r.addClass("orderable-button--product-in-the-cart"),r.removeClass(c.vars.classes.button_loading)});break;case"product-options":c.get_product_options({product_id:o,focus:r.data("orderable-focus")},function(e){i.html=e.html,d(l.body).trigger("orderable-drawer.open",i),r.removeClass(c.vars.classes.button_loading)})}},show_cart(){d(l.body).trigger("orderable-drawer.open",{show_cart:!0})},view_product(e,t){let r=t.data("orderable-product-id"),a={action:"product-options"};c.get_product_options({product_id:r,focus:t.data("orderable-focus")},function(e){a.html=e.html,d(l.body).trigger("orderable-drawer.open",a)})},add_to_cart(t,r){if(void 0!==t.product_id){let e={action:"orderable_add_to_cart",product_id:t.product_id,variation_id:t.variation_id||!1,attributes:t.attributes||!1};var a;d(".orderable-product-fields-group").length&&(a=jQuery(".orderable-product-fields-group :input").serializeArray(),a=c.add_unchecked_checkbox_fields(a),a=c.convert_to_flat_object(a),jQuery.isEmptyObject(a)||(e=Object.assign(e,a))),jQuery.post(orderable_vars.ajax_url,e,function(e){e&&(d(l.body).trigger("added_to_cart",[e.fragments,e.cart_hash,t.thisbutton]),"function"==typeof r)&&r(e)})}},edit_cart_item(e,t){var r=t.data("orderable-cart-item-key");t.addClass(c.vars.classes.button_loading),c.get_cart_item_options({cart_item_key:r},function(e){e={html:e.html,action:"update-cart-item"};d(l.body).trigger("orderable-drawer.open",e),t.removeClass(c.vars.classes.button_loading)})},update_cart_item(e,r){var t=r.data("orderable-cart-item-key"),a=r.data("orderable-product-id"),o=r.data("orderable-variation-id"),s=r.data("orderable-variation-attributes");r.addClass(c.vars.classes.button_loading),c.update_cart_item_options({cart_item_key:t,product_id:a,variation_id:o,attributes:s},function(e){var t={show_cart:!0,response:e};d(l.body).trigger("added_to_cart",[e.fragments,e.cart_hash]),d(l.body).trigger("orderable-drawer.open",t),r.removeClass(c.vars.classes.button_loading)})},convert_to_flat_object(e){let a={};return e.forEach(function(e){var t="[]"===e.name.substr(-2)||Array.isArray(e.name),r=t?e.name.substr(0,e.name.length-2):e.name;t?(a[r]=void 0===a[r]?[]:a[r],a[r].push(e.value)):a[r]=e.value}),a},get_product_options(e,t){void 0!==e.product_id&&(e.action="orderable_get_product_options",jQuery.post(orderable_vars.ajax_url,e,function(e){e.success&&"function"==typeof t&&t(e.data)}))},get_cart_item_options(e,t){void 0!==e.cart_item_key&&(e.action="orderable_get_cart_item_options",jQuery.post(orderable_vars.ajax_url,e,function(e){e.success&&"function"==typeof t&&t(e.data)}))},update_cart_item_options(e,t){var r;void 0!==e.cart_item_key&&(e.action="orderable_update_cart_item_options",d(".orderable-product-fields-group").length&&(r=jQuery(".orderable-product-fields-group :input").serializeArray(),r=c.add_unchecked_checkbox_fields(r),r=c.convert_to_flat_object(r),jQuery.isEmptyObject(r)||(e=Object.assign(e,r))),jQuery.post(orderable_vars.ajax_url,e,function(e){e&&"function"==typeof t&&t(e)}))},init_product_options(e,a){if(void 0!==a.action&&("product-options"===a.action||"update-cart-item"===a.action)){a=".orderable-drawer .orderable-product__options input, .orderable-drawer .orderable-product__options select, .orderable-product__options textarea";let e=d(a),t=(c.vars.parent_price=d(".orderable-drawer .orderable-product__actions-price").html(),c.product_options_change(e),c.update_button_state(),c.debounce(c.update_button_state,500)),r=c.debounce(c.product_options_change,500);d(l).on("change keyup",a,function(){r(e),t()})}},product_options_change(e){var t=d(".orderable-drawer .orderable-product__add-to-order, .orderable-drawer .orderable-product__update-cart-item"),r=c.check_options(e),a=t.data("orderable-product-type");"product-options"===t.attr("data-orderable-trigger")&&t.attr("data-orderable-trigger","add-to-cart"),d("."+c.vars.classes.product_messages).html(""),c.vars.variable_product_types.includes(a)&&(r?(a=c.check_variation(e),c.set_variation(t,a)):c.clear_variation(t))},check_options(e){if(e.length<=0)return!1;let r=!0;return e.each(function(e,t){d(t).hasClass("orderable-input--validate")&&(""===d(t).val()?(d(t).addClass(c.vars.classes.invalid_field),r=!1):d(t).removeClass(c.vars.classes.invalid_field))}),r},check_variation(e){var t=(t=e.closest(".orderable-drawer").find(".orderable-product__variations").text())?JSON.parse(t):"",e=c.serialize_object(e),t=c.find_matching_variations(t,e);return!c.is_empty(t)&&((t=t.shift()).attributes=e,t.attributes_json=JSON.stringify(e),void 0!==t)&&t},set_variation(e,t){let r=t.variation_id||"",a=t.attributes_json||"",o=t.price_html||c.vars.parent_price,s="";t&&""!==t.availability_html&&(s=t.availability_html),t&&!t.is_in_stock&&(s="<p>"+orderable_vars.i18n.out_of_stock+"</p>"),t&&!t.is_purchasable&&(s="<p>"+orderable_vars.i18n.unavailable+"</p>"),!1===t&&(s="<p>"+orderable_vars.i18n.no_exist+"</p>"),!t||t.is_purchasable&&t.is_in_stock||(r="",a=""),""!==s&&d("."+c.vars.classes.product_messages).html(s),e.data("orderable-variation-id",r),e.data("orderable-variation-attributes",a),d(".orderable-drawer .orderable-product__actions-price").html(o),e.trigger("orderable_variation_set",{variation:t,variation_id:r,attributes:a,price:o})},clear_variation(e){c.set_variation(e,""),c.vars.parent_price&&d(".orderable-drawer .orderable-product__actions-price").html(c.vars.parent_price)},find_matching_variations(t,r){var a=[];for(let e=0;e<t.length;e++){var o=t[e];c.is_matching_variation(o.attributes,r)&&a.push(o)}return a},is_matching_variation(e,t){let r=!0;for(var a in e){var o;e.hasOwnProperty(a)&&(o=e[a],a=t[a],void 0!==o)&&void 0!==a&&0!==o.length&&0!==a.length&&o!==a&&(r=!1)}return r},is_empty(e){return void 0===e||!1===e||e.length<=0||!e},serialize_object:function(e){var t=e.serializeArray(),r={};for(let e=0;e<t.length;e++)r[t[e].name]=t[e].value;return r},update_button_state(){setTimeout(function(){let e=d(".orderable-drawer .orderable-product__add-to-order, .orderable-drawer .orderable-product__update-cart-item"),t=d(".orderable-drawer__html ."+c.vars.classes.invalid_field).length,r=e.data("orderable-product-type"),a=!0;"variable"===r&&(a=""!==e.data("orderable-variation-id")),e.prop("disabled",t||!a)},50)},debounce(a,o,s){let n;return function(){let e=this,t=arguments;var r=s&&!n;clearTimeout(n),n=setTimeout(function(){n=null,s||a.apply(e,t)},o),r&&a.apply(e,t)}},remove_fragments(e,t){if(t&&"undefined"!=typeof wc_cart_fragments_params&&wc_cart_fragments_params.fragment_name){var r,a=/\.orderable-product\[data-orderable-product-id='[1-9][0-9]*'\] \.orderable-product__actions-button \.orderable-quantity-roller/,o=/\.orderable-product\[data-orderable-product-id='[1-9][0-9]*'\] \.orderable-product__actions-button \.orderable-product__actions-counter/;for(r in t)(a.test(r)||o.test(r))&&(t[r]=void 0);sessionStorage.setItem(wc_cart_fragments_params.fragment_name,JSON.stringify(t))}},remove_animation(){setTimeout(function(){d(".orderable-product__actions-counter").css("animation","")},1e3)},hide_quantity_roller(e,t,r,a){var o,a=a.attr("data-product_id")||a.attr("data-orderable-product-id");a&&(a=d(".orderable-product[data-orderable-product-id="+a+"] .orderable-product__actions-button")).length&&(o=a.find(".orderable-quantity-roller")).length&&(a.find("button.orderable-product__add-to-order[data-orderable-trigger]").removeClass("orderable-button--product-in-the-cart"),o.addClass("orderable-button--hide"))},add_unchecked_checkbox_fields(r){return jQuery('.orderable-product-fields-group :input[type="checkbox"]:not(:checked)').each(function(e,t){r.push({name:t.getAttribute("name"),value:""})}),r},shake_floating_cart(){d(".orderable-floating-cart__button").css("animation","wobble-hor-bottom .8s both")},remove_view_cart_link(e,t){t?.hasClass("orderable-product__add-to-order")&&t?.siblings(".added_to_cart.wc-forward").remove()}};d(l).ready(c.on_ready)}(jQuery,document),function(o,s){var n={on_ready(){n.cache(),n.watch()},cache(){n.vars={top:{}},n.elements={}},watch(){o(s.body).on("orderable-drawer.opened",n.trigger),o(s.body).on("orderable-tabs.changed",n.trigger),o(s.body).on("orderable-accordion.toggled",n.trigger),o(s.body).on("wc_fragments_loaded",n.trigger)},trigger(){o(".orderable-sb-container").each(function(e,t){var r,t=o(t),a=t.data("orderable-scroll-id");n.has_scrollbar(t)||(t.scrollBox({containerClass:"orderable-sb-container",containerNoScrollClass:"orderable-sb-container-noscroll",contentClass:"orderable-sb-content",scrollbarContainerClass:"orderable-sb-scrollbar-container",scrollBarClass:"orderable-sb-scrollbar"}),0<(r=t.find(".orderable-sb-content")).length&&(r.on("scroll.scrollBox",n.log_top_position),void 0!==n.vars.top[a])&&r.scrollTop(n.vars.top[a]),o(s.body).trigger("orderable-scrollbar.created",{element:t,content:r}))}),o(window).trigger("resize.scrollBox")},has_scrollbar(e){return 0<e.find(".orderable-sb-content").length},log_top_position(e){var t=o(e.currentTarget).closest(".orderable-sb-container").data("orderable-scroll-id");n.vars.top[t]=o(e.currentTarget).scrollTop()}};o(s).ready(n.on_ready)}(jQuery,document),function(n,i){var d={on_ready(){d.cache(),d.watch(),d.toggle_scroll()},on_resize(){d.toggle_scroll()},cache(){d.vars={classes:{tabs:"orderable-tabs",tabs_list:"orderable-tabs__list",tab_items:"orderable-tabs__item",tab_item_active:"orderable-tabs__item--active",tab_links:"orderable-tabs__link",tab_arrow_right:"orderable-tabs__arrow-right",tab_arrow_left:"orderable-tabs__arrow-left"},dragging:!1},d.elements={}},watch(){n("body").on("touchstart",function(){d.vars.dragging=!1}).on("touchmove",function(){d.vars.dragging=!0}),n(i.body).on("click mouseup touchend","."+d.vars.classes.tab_links,function(e){var t,r,a,o,s;d.vars.dragging||(e.preventDefault(),t=(e=n(this)).attr("href"),r=e.closest("."+d.vars.classes.tab_items),a=(s=e.closest("."+d.vars.classes.tabs)).find("."+d.vars.classes.tabs_list),o=s.find("."+d.vars.classes.tab_items),s=s.data("orderable-tabs"),s=(e=e.closest(s.wrapper)).find(s.sections),e=e.find(t),s.hide(),e.show(),o.removeClass(d.vars.classes.tab_item_active),r.addClass(d.vars.classes.tab_item_active),a.animate({scrollLeft:a.scrollLeft()+r.position().left}),n(i.body).trigger("orderable-tabs.changed",{tab:r}))}),n("."+d.vars.classes.tabs_list).on("scroll",function(e){var t=n(this),r=t.parent("."+d.vars.classes.tabs),a=t.siblings("."+d.vars.classes.tab_arrow_right),o=t.siblings("."+d.vars.classes.tab_arrow_left);t[0].scrollWidth<=r.width()+t.scrollLeft()?a.fadeOut():a.fadeIn(),t.scrollLeft()-o.width()<=0?o.fadeOut():o.fadeIn()}),n("."+d.vars.classes.tabs_list).on("wheel DOMMouseScroll mousewheel touchmove",function(){n(this).stop()}),n(i).on("click","."+d.vars.classes.tab_arrow_right,function(e){e.preventDefault();var e=n(this).parent(),t=e.find("."+d.vars.classes.tabs_list);t.animate({scrollLeft:t.scrollLeft()+.5*e.width()})}),n(i).on("click","."+d.vars.classes.tab_arrow_left,function(e){e.preventDefault();var e=n(this).parent(),t=e.find("."+d.vars.classes.tabs_list);t.animate({scrollLeft:t.scrollLeft()-.5*e.width()})})},toggle_scroll(){n("."+d.vars.classes.tabs).each(function(e,t){var r=n(this),a=r.data("orderable-tabs"),r=r.closest(a.wrapper),a=r.find("."+d.vars.classes.tabs_list),o=r.find("."+d.vars.classes.tab_arrow_right);r.outerWidth()<a[0].scrollWidth?o.show():o.hide()})}};n(i).ready(d.on_ready),n(window).on("resize",d.on_resize)}(jQuery,document);let orderable_timings={};!function(l,e){orderable_timings={on_ready(){orderable_timings.watch()},restore(){var e,t=orderable_timings.get_timings();t&&t.date&&(0<(e=l(".orderable-order-timings__date")).find('option[value="'+t.date+'"]').length&&(e.val(t.date),e.change()),t.time)&&0<(e=l(".orderable-order-timings__time")).find('option[value="'+t.time+'"]').length&&(e.val(t.time),e.change())},watch(){l(e.body).on("wc_fragments_refreshed",function(){orderable_timings.restore()}),l(e.body).on("updated_checkout",function(){orderable_timings.restore()}),l(e.body).on("change",".orderable-order-timings__date",function(e){let t=l(this),r=t.find("option:selected"),a=r.data("orderable-slots"),o=l(".orderable-order-timings--time"),s=l(".orderable-order-timings__time"),n=s.find("option").first(),i=s.find('option[value="asap"]').first();var d=orderable_timings.get_timings();d.date=l(".orderable-order-timings__date").val(),window.localStorage.setItem("orderable_timings",JSON.stringify(d)),s.html(n),i&&s.append(i),a?"all-day"===a[0].value?(o.hide(),s.prop("disabled",!0)):(s.prop("disabled",!1),o.show(),l.each(a,function(e,t){s.append(l("<option />").attr("value",t.value).attr("data-orderable-time-slot-id",t?.setting_row?.time_slot_id).text(t.formatted))})):(s.prop("disabled",!0),o.hide())}),l(e.body).on("change",".orderable-order-timings__time",function(e){var t=orderable_timings.get_timings();t.time=l(".orderable-order-timings__time").val(),window.localStorage.setItem("orderable_timings",JSON.stringify(t)),l(this).siblings('input[name="orderable_order_time_slot_id"]').val(l(this).find(":selected").attr("data-orderable-time-slot-id"))})},get_timings(){return JSON.parse(window.localStorage.getItem("orderable_timings"))||{}}},l(e).ready(orderable_timings.on_ready)}(jQuery,document),function(r,a){var e={on_ready(){e.watch()},watch(){r(a.body).on("click","[data-orderable-trigger]",e.trigger)},trigger(e){e.stopImmediatePropagation();var e=r(this),t=e.data("orderable-trigger");r(a.body).trigger("orderable-"+t,[e])}};r(a).ready(e.on_ready)}(jQuery,document);
     1!function(o,e,s){"use strict";var n="scrollBox",r={containerClass:"sb-container",containerNoScrollClass:"sb-container-noscroll",contentClass:"sb-content",scrollbarContainerClass:"sb-scrollbar-container",scrollBarClass:"sb-scrollbar"};function t(e,t){this.element=e,this.settings=o.extend({},r,t),this._defaults=r,this._name=n,this.init()}o.extend(t.prototype,{init:function(){this.addScrollbar(),this.addEvents(),this.onResize()},addScrollbar:function(){o(this.element).addClass(this.settings.containerClass),this.wrapper=o("<div class='"+this.settings.contentClass+"' />"),this.wrapper.append(o(this.element).contents()),o(this.element).append(this.wrapper),this.scollbarContainer=o("<div class='"+this.settings.scrollbarContainerClass+"' />"),this.scrollBar=o("<div class='"+this.settings.scrollBarClass+"' />"),this.scollbarContainer.append(this.scrollBar),o(this.element).prepend(this.scollbarContainer)},addEvents:function(){this.wrapper.on("scroll."+n,o.proxy(this.onScroll,this)),o(e).on("resize."+n,o.proxy(this.onResize,this)),this.scrollBar.on("mousedown."+n,o.proxy(this.onMousedown,this)),this.scrollBar.on("touchstart."+n,o.proxy(this.onTouchstart,this))},onTouchstart:function(t){var r=this,a=(t.preventDefault(),r.scrollBar[0].offsetTop);o(s).on("touchmove."+n,function(e){e=e.touches[0].pageY-t.touches[0].pageY;r.scrollBar[0].style.top=Math.min(r.scollbarContainer[0].clientHeight-r.scrollBar[0].clientHeight,Math.max(0,a+e))+"px",r.wrapper[0].scrollTop=r.wrapper[0].scrollHeight*r.scrollBar[0].offsetTop/r.scollbarContainer[0].clientHeight}),o(s).on("touchend."+n,function(){o(s).off("touchmove."+n),o(s).off("touchend."+n)})},onMousedown:function(t){var r=this,a=(t.preventDefault(),r.scrollBar[0].offsetTop);o(s).on("mousemove."+n,function(e){e=e.pageY-t.pageY;r.scrollBar[0].style.top=Math.min(r.scollbarContainer[0].clientHeight-r.scrollBar[0].clientHeight,Math.max(0,a+e))+"px",r.wrapper[0].scrollTop=r.wrapper[0].scrollHeight*r.scrollBar[0].offsetTop/r.scollbarContainer[0].clientHeight}),o(s).on("mouseup."+n,function(){o(s).off("mousemove."+n),o(s).off("mouseup."+n)})},onResize:function(){this.wrapper.css("max-height",o(this.element).height());var e=this.wrapper[0].clientHeight;this.scrollBar.css("height",this.scollbarContainer[0].clientHeight*e/this.wrapper[0].scrollHeight+"px"),this.scollbarContainer[0].clientHeight<=this.scrollBar[0].clientHeight?o(this.element).addClass(this.settings.containerNoScrollClass):o(this.element).removeClass(this.settings.containerNoScrollClass),this.onScroll()},onScroll:function(){this.scrollBar.css("top",Math.min(this.scollbarContainer[0].clientHeight-this.scrollBar[0].clientHeight,this.scollbarContainer[0].clientHeight*this.wrapper[0].scrollTop/this.wrapper[0].scrollHeight)+"px")}}),o.fn[n]=function(e){return this.each(function(){o.data(this,"plugin_"+n)||o.data(this,"plugin_"+n,new t(this,e))})}}(jQuery,window,document),function(e,o){"use strict";"function"!=typeof e.CustomEvent&&(e.CustomEvent=function(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var r=o.createEvent("CustomEvent");return r.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r},e.CustomEvent.prototype=e.Event.prototype),o.addEventListener("touchstart",function(e){"true"!==e.target.getAttribute("data-swipe-ignore")&&(c=e.target,l=Date.now(),s=e.touches[0].clientX,n=e.touches[0].clientY,d=i=0)},!1),o.addEventListener("touchmove",function(e){var t;s&&n&&(t=e.touches[0].clientX,e=e.touches[0].clientY,i=s-t,d=n-e)},!1),o.addEventListener("touchend",function(e){var t,r,a,o;c===e.target&&(o=parseInt(_(c,"data-swipe-threshold","20"),10),t=parseInt(_(c,"data-swipe-timeout","500"),10),r=Date.now()-l,a="",e=e.changedTouches||e.touches||[],Math.abs(i)>Math.abs(d)?Math.abs(i)>o&&r<t&&(a=0<i?"swiped-left":"swiped-right"):Math.abs(d)>o&&r<t&&(a=0<d?"swiped-up":"swiped-down"),""!==a&&(o={dir:a.replace(/swiped-/,""),touchType:(e[0]||{}).touchType||"direct",xStart:parseInt(s,10),xEnd:parseInt((e[0]||{}).clientX||-1,10),yStart:parseInt(n,10),yEnd:parseInt((e[0]||{}).clientY||-1,10)},c.dispatchEvent(new CustomEvent("swiped",{bubbles:!0,cancelable:!0,detail:o})),c.dispatchEvent(new CustomEvent(a,{bubbles:!0,cancelable:!0,detail:o}))),l=n=s=null)},!1);var s=null,n=null,i=null,d=null,l=null,c=null;function _(e,t,r){for(;e&&e!==o.documentElement;){var a=e.getAttribute(t);if(a)return a;e=e.parentNode}return r}}(window,document),function(o,s){"use strict";var n={on_ready(){n.cache(),n.watch()},cache(){n.vars={classes:{parent:"orderable-accordion",link:"orderable-accordion__item-link",content:"orderable-accordion__item-content",link_active:"orderable-accordion__item-link--active",content_active:"orderable-accordion__item-content--active"}}},watch(){o(s.body).on("click","."+n.vars.classes.link,function(e){e.preventDefault();var e=o(this),t=e.closest("."+n.vars.classes.parent),r=e.attr("href"),r=o(r),a=e.hasClass(n.vars.classes.link_active);t.find("."+n.vars.classes.link).removeClass(n.vars.classes.link_active),t.find("."+n.vars.classes.content).removeClass(n.vars.classes.content_active),a||(e.addClass(n.vars.classes.link_active),r.addClass(n.vars.classes.content_active)),o(s.body).trigger("orderable-accordion.toggled",{link:e,content:r})}),o(s.body).on("orderable-scrollbar.created",function(e,t){var r=o(".orderable-drawer ."+n.vars.classes.link_active);r.length<=0||(r=(t=t.content).scrollTop()-t.offset().top+r.offset().top,t.scrollTop(r))})}};o(s).ready(n.on_ready)}(jQuery,document),function(l,c){"use strict";var r={debounce(t,r=700){let a;return(...e)=>{clearTimeout(a),a=setTimeout(()=>{t.apply(this,e)},r)}},allow_only_numbers(e){var t=String.fromCharCode(e.which);/^\d+$/.test(t)||e.preventDefault()},on_change_quantity(e){const t=l(e.currentTarget);var e=t.data("orderable-product-id"),r=t.data("orderable-cart-item-key"),a=parseInt(t.text());jQuery.post(orderable_vars.ajax_url,{action:"orderable_cart_quantity",cart_item_key:r,product_id:e,quantity:a},function(e){e&&(l(c.body).trigger("added_to_cart",[e.fragments,e.cart_hash,t]),l(c.body).trigger("orderable-drawer.quantity-updated"))})},on_ready(){r.cache(),r.watch(),l(c.body).on("keypress",".orderable-quantity-roller__quantity",r.allow_only_numbers),l(".orderable-drawer__cart, .orderable-product--add-to-cart, .orderable-products-list").on("input",".orderable-quantity-roller__quantity",r.debounce(r.on_change_quantity)),l(c.body).on("click",".orderable-quantity-roller__quantity",function(e){e.stopPropagation()}),orderable_vars&&!orderable_vars.woocommerce_enable_ajax_add_to_cart&&l(c.body).off("click",".add_to_cart_button")},cache(){r.vars={classes:{overlay:"orderable-drawer-overlay",drawer:"orderable-drawer",drawer_cart:"orderable-drawer__cart",drawer_html:"orderable-drawer__html",overlay_open:"orderable-drawer-overlay--open",drawer_open:"orderable-drawer--open",drawer_open_body:"orderable-drawer-open"}},r.elements={body:l("body"),overlay:l("."+r.vars.classes.overlay),drawer:l("."+r.vars.classes.drawer),drawer_cart:l("."+r.vars.classes.drawer_cart),drawer_html:l("."+r.vars.classes.drawer_html),floating_cart_button_class:".orderable-floating-cart__button"}},watch(){var e,t;void 0!==r.elements.drawer&&(l(c.body).on("orderable-drawer.open",r.open),l(c.body).on("orderable-drawer.close",r.close),l(c.body).on("click",r.elements.floating_cart_button_class,function(){l(c.body).trigger("orderable-drawer.open",{show_cart:!0})}),l(c.body).on("orderable-increase-quantity",r.cart.handle_quantity_change_by_button),l(c.body).on("orderable-decrease-quantity",r.cart.handle_quantity_change_by_button),e=r.debounce(r.cart.click_increase_decrease_quantity),l(c.body).on("orderable-increase-quantity",e),l(c.body).on("orderable-decrease-quantity",e),e=c.querySelector("body:not( .rtl ) .orderable-drawer"),t=c.querySelector("body.rtl .orderable-drawer"),e&&e.addEventListener("swiped-right",function(e){r.close()}),t)&&t.addEventListener("swiped-left",function(e){r.close()})},open(e,t){t.html=t.html||!1,t.show_cart=t.show_cart||!1,r.elements.drawer_html.hide(),r.elements.drawer_cart.hide(),t.html&&(r.elements.drawer_html.html(t.html),r.elements.drawer_html.show()),t.show_cart&&(r.elements.drawer_html.html(""),r.elements.drawer_cart.show()),r.elements.overlay.addClass(r.vars.classes.overlay_open),r.elements.drawer.addClass(r.vars.classes.drawer_open),r.elements.body.addClass(r.vars.classes.drawer_open_body),l(c.body).trigger("orderable-drawer.opened",t)},close(){r.elements.overlay.removeClass(r.vars.classes.overlay_open),r.elements.drawer.removeClass(r.vars.classes.drawer_open),r.elements.body.removeClass(r.vars.classes.drawer_open_body),r.elements.drawer_html.html(""),l(c.body).trigger("orderable-drawer.closed")},cart:{click_increase_decrease_quantity(e,r){var t=r.data("orderable-trigger"),a=r.attr("data-orderable-product-id"),o=r.attr("data-orderable-cart-item-key"),s=r.attr("data-orderable-quantity");const n=r.siblings(".orderable-quantity-roller__button--"+("increase-quantity"===t?"decrease":"increase")),i=r.siblings(".orderable-quantity-roller__quantity"),d={action:"orderable_cart_quantity",cart_item_key:o,product_id:a,quantity:s};this.currentRequest&&(this.currentRequest.abort(),this.currentRequest=void 0),r.addClass("orderable-button--loading"),r.attr("disabled",!0),n.attr("disabled",!0),i.attr("contenteditable",!1),this.currentRequest=jQuery.post(orderable_vars.ajax_url,d,function(e){if(e){var t=r.siblings(".orderable-quantity-roller__quantity");switch(e&&e.fragments&&e.fragments[".orderable-mini-cart__notices"]&&l(c.body).trigger("orderable-drawer.open",{show_cart:!0}),d.quantity){case"0":l(c.body).trigger("removed_from_cart",[e.fragments,e.cart_hash,r]);break;case t.attr("data-orderable-updating-quantity"):l(c.body).trigger("added_to_cart",[e.fragments,e.cart_hash,r]),l(c.body).trigger("orderable-drawer.quantity-updated")}}}.bind(this)).always(function(){this.currentRequest=void 0,r.removeClass("orderable-button--loading"),r.attr("disabled",!1),n.attr("disabled",!1),i.attr("contenteditable",!0)}.bind(this))},handle_quantity_change_by_button(e,t){var r,a=t.data("orderable-trigger"),o=parseInt(t.attr("data-orderable-quantity")),s=t.siblings(".orderable-quantity-roller__button--"+("increase-quantity"===a?"decrease":"increase")),n=t.siblings(".orderable-quantity-roller__quantity"),a="increase-quantity"===a?o+1:Math.max(0,o-1),o=t.parents(".orderable-product__actions-button");0===a&&o.length&&(r=o.find("button.orderable-button[data-orderable-trigger]"),(o=o.find(".orderable-quantity-roller")).length)&&(r.removeClass("orderable-button--product-in-the-cart"),o.removeClass("orderable-quantity-roller--is-active")),t.attr("data-orderable-quantity",a),s.attr("data-orderable-quantity",a),n.attr("data-orderable-updating-quantity",a),n.text(a),n.attr("contenteditable",!1)}}};l(c).ready(r.on_ready)}(jQuery,document),function(d,l){"use strict";var c={on_ready(){c.cache(),c.watch()},cache(){c.vars={classes:{clickable_product:"orderable-product--add-to-cart ",add_to_order_button:"orderable-product__add-to-order",product_messages:"orderable-product__messages",product_price:"orderable-product__actions-price",invalid_field:"orderable-field--invalid",option_select_td:"orderable-product__option-select",button_loading:"orderable-button--loading",out_of_stock:"orderable-button--out-of-stock"},parent_price:null,variable_product_types:["variable","variable-subscription"]},c.elements={}},watch(){d(l.body).on("orderable-drawer.opened",c.init_product_options),d(l.body).on("orderable-add-to-cart",c.click_add_to_order),d(l.body).on("orderable-product-options",c.click_add_to_order),d(l.body).on("orderable-view-product",c.view_product),d(l.body).on("mouseenter mouseleave","."+c.vars.classes.clickable_product,c.simulate_add_to_order_hover),d(l.body).on("orderable-edit-cart-item",c.edit_cart_item),d(l.body).on("orderable-update-cart-item",c.update_cart_item),d(l.body).on("orderable-show-cart",c.show_cart),d(l.body).on("orderable-add-to-cart-without-side-drawer",c.click_add_to_order),d(l.body).on("added_to_cart",c.remove_fragments),d(l.body).on("added_to_cart",c.remove_animation),d(l.body).on("added_to_cart",c.shake_floating_cart),d(l.body).on("removed_from_cart",c.hide_quantity_roller),d(l.body).on("wc_cart_button_updated",c.remove_view_cart_link)},simulate_add_to_order_hover(e){d(this).find("."+c.vars.classes.add_to_order_button).toggleClass("orderable-button--hover","mouseenter"===e.type)},click_add_to_order(e,t){const r=(t=void 0!==t?t:d(this)).is("button")?t:t.find("."+c.vars.classes.add_to_order_button),a=r.data("orderable-trigger"),o=r.data("orderable-product-id"),s=r.data("orderable-variation-id"),n=r.data("orderable-variation-attributes"),i={action:a};if(!r.hasClass(c.vars.classes.button_loading)&&!r.hasClass(c.vars.classes.out_of_stock))switch(r.addClass(c.vars.classes.button_loading),a){case"add-to-cart":c.add_to_cart({product_id:o,variation_id:s,attributes:n,thisbutton:t},function(e){i.show_cart=!0,i.response=e,d(l.body).trigger("orderable-drawer.open",i),r.removeClass(c.vars.classes.button_loading);e=d(".orderable-product .orderable-product__actions-button button.orderable-product__add-to-order[data-orderable-product-id="+o+"]");e.siblings(".orderable-quantity-roller").length&&e.addClass("orderable-button--product-in-the-cart")});break;case"add-to-cart-without-side-drawer":c.add_to_cart({product_id:o,variation_id:s,attributes:n},function(e){i.response=e,r.addClass("orderable-button--product-in-the-cart"),r.removeClass(c.vars.classes.button_loading)});break;case"product-options":c.get_product_options({product_id:o,focus:r.data("orderable-focus")},function(e){i.html=e.html,d(l.body).trigger("orderable-drawer.open",i),r.removeClass(c.vars.classes.button_loading)})}},show_cart(){d(l.body).trigger("orderable-drawer.open",{show_cart:!0})},view_product(e,t){const r=t.data("orderable-product-id"),a={action:"product-options"};c.get_product_options({product_id:r,focus:t.data("orderable-focus")},function(e){a.html=e.html,d(l.body).trigger("orderable-drawer.open",a)})},add_to_cart(t,r){if(void 0!==t.product_id){let e={action:"orderable_add_to_cart",product_id:t.product_id,variation_id:t.variation_id||!1,attributes:t.attributes||!1};var a;d(".orderable-product-fields-group").length&&(a=jQuery(".orderable-product-fields-group :input").serializeArray(),a=c.add_unchecked_checkbox_fields(a),a=c.convert_to_flat_object(a),jQuery.isEmptyObject(a)||(e=Object.assign(e,a))),jQuery.post(orderable_vars.ajax_url,e,function(e){e&&(d(l.body).trigger("added_to_cart",[e.fragments,e.cart_hash,t.thisbutton]),"function"==typeof r)&&r(e)})}},edit_cart_item(e,t){var r=t.data("orderable-cart-item-key");t.addClass(c.vars.classes.button_loading),c.get_cart_item_options({cart_item_key:r},function(e){e={html:e.html,action:"update-cart-item"};d(l.body).trigger("orderable-drawer.open",e),t.removeClass(c.vars.classes.button_loading)})},update_cart_item(e,r){var t=r.data("orderable-cart-item-key"),a=r.data("orderable-product-id"),o=r.data("orderable-variation-id"),s=r.data("orderable-variation-attributes");r.addClass(c.vars.classes.button_loading),c.update_cart_item_options({cart_item_key:t,product_id:a,variation_id:o,attributes:s},function(e){var t={show_cart:!0,response:e};d(l.body).trigger("added_to_cart",[e.fragments,e.cart_hash]),d(l.body).trigger("orderable-drawer.open",t),r.removeClass(c.vars.classes.button_loading)})},convert_to_flat_object(e){const a={};return e.forEach(function(e){var t="[]"===e.name.substr(-2)||Array.isArray(e.name),r=t?e.name.substr(0,e.name.length-2):e.name;t?(a[r]=void 0===a[r]?[]:a[r],a[r].push(e.value)):a[r]=e.value}),a},get_product_options(e,t){void 0!==e.product_id&&(e.action="orderable_get_product_options",jQuery.post(orderable_vars.ajax_url,e,function(e){e.success&&"function"==typeof t&&t(e.data)}))},get_cart_item_options(e,t){void 0!==e.cart_item_key&&(e.action="orderable_get_cart_item_options",jQuery.post(orderable_vars.ajax_url,e,function(e){e.success&&"function"==typeof t&&t(e.data)}))},update_cart_item_options(e,t){var r;void 0!==e.cart_item_key&&(e.action="orderable_update_cart_item_options",d(".orderable-product-fields-group").length&&(r=jQuery(".orderable-product-fields-group :input").serializeArray(),r=c.add_unchecked_checkbox_fields(r),r=c.convert_to_flat_object(r),jQuery.isEmptyObject(r)||(e=Object.assign(e,r))),jQuery.post(orderable_vars.ajax_url,e,function(e){e&&"function"==typeof t&&t(e)}))},init_product_options(e,t){if(void 0!==t.action&&("product-options"===t.action||"update-cart-item"===t.action)){t=".orderable-drawer .orderable-product__options input, .orderable-drawer .orderable-product__options select, .orderable-product__options textarea";const r=d(t),a=(c.vars.parent_price=d(".orderable-drawer .orderable-product__actions-price").html(),c.product_options_change(r),c.update_button_state(),c.debounce(c.update_button_state,500)),o=c.debounce(c.product_options_change,500);d(l).on("change keyup",t,function(){o(r),a()})}},product_options_change(e){var t=d(".orderable-drawer .orderable-product__add-to-order, .orderable-drawer .orderable-product__update-cart-item"),r=c.check_options(e),a=t.data("orderable-product-type");"product-options"===t.attr("data-orderable-trigger")&&t.attr("data-orderable-trigger","add-to-cart"),d("."+c.vars.classes.product_messages).html(""),c.vars.variable_product_types.includes(a)&&(r?(a=c.check_variation(e),c.set_variation(t,a)):c.clear_variation(t))},check_options(e){if(e.length<=0)return!1;let r=!0;return e.each(function(e,t){d(t).hasClass("orderable-input--validate")&&(""===d(t).val()?(d(t).addClass(c.vars.classes.invalid_field),r=!1):d(t).removeClass(c.vars.classes.invalid_field))}),r},check_variation(e){var t=(t=e.closest(".orderable-drawer").find(".orderable-product__variations").text())?JSON.parse(t):"",e=c.serialize_object(e),t=c.find_matching_variations(t,e);return!c.is_empty(t)&&((t=t.shift()).attributes=e,t.attributes_json=JSON.stringify(e),void 0!==t)&&t},set_variation(e,t){let r=t.variation_id||"",a=t.attributes_json||"",o=t.price_html||c.vars.parent_price,s="";t&&""!==t.availability_html&&(s=t.availability_html),t&&!t.is_in_stock&&(s="<p>"+orderable_vars.i18n.out_of_stock+"</p>"),t&&!t.is_purchasable&&(s="<p>"+orderable_vars.i18n.unavailable+"</p>"),!1===t&&(s="<p>"+orderable_vars.i18n.no_exist+"</p>"),!t||t.is_purchasable&&t.is_in_stock||(r="",a=""),""!==s&&d("."+c.vars.classes.product_messages).html(s),e.data("orderable-variation-id",r),e.data("orderable-variation-attributes",a),d(".orderable-drawer .orderable-product__actions-price").html(o),e.trigger("orderable_variation_set",{variation:t,variation_id:r,attributes:a,price:o})},clear_variation(e){c.set_variation(e,""),c.vars.parent_price&&d(".orderable-drawer .orderable-product__actions-price").html(c.vars.parent_price)},find_matching_variations(t,r){var a=[];for(let e=0;e<t.length;e++){var o=t[e];c.is_matching_variation(o.attributes,r)&&a.push(o)}return a},is_matching_variation(e,t){let r=!0;for(const s in e){var a,o;e.hasOwnProperty(s)&&(a=e[s],o=t[s],void 0!==a)&&void 0!==o&&0!==a.length&&0!==o.length&&a!==o&&(r=!1)}return r},is_empty(e){return void 0===e||!1===e||e.length<=0||!e},serialize_object:function(e){var t=e.serializeArray(),r={};for(let e=0;e<t.length;e++)r[t[e].name]=t[e].value;return r},update_button_state(){setTimeout(function(){let e=d(".orderable-drawer .orderable-product__add-to-order, .orderable-drawer .orderable-product__update-cart-item"),t=d(".orderable-drawer__html ."+c.vars.classes.invalid_field).length,r=e.data("orderable-product-type"),a=!0;"variable"===r&&(a=""!==e.data("orderable-variation-id")),e.prop("disabled",t||!a)},50)},debounce(a,o,s){let n;return function(){const e=this,t=arguments;var r=s&&!n;clearTimeout(n),n=setTimeout(function(){n=null,s||a.apply(e,t)},o),r&&a.apply(e,t)}},remove_fragments(e,t){if(t&&"undefined"!=typeof wc_cart_fragments_params&&wc_cart_fragments_params.fragment_name){var r=/\.orderable-product\[data-orderable-product-id='[1-9][0-9]*'\] \.orderable-product__actions-button \.orderable-quantity-roller/,a=/\.orderable-product\[data-orderable-product-id='[1-9][0-9]*'\] \.orderable-product__actions-button \.orderable-product__actions-counter/;for(const o in t)(r.test(o)||a.test(o))&&(t[o]=void 0);sessionStorage.setItem(wc_cart_fragments_params.fragment_name,JSON.stringify(t))}},remove_animation(){setTimeout(function(){d(".orderable-product__actions-counter").css("animation","")},1e3)},hide_quantity_roller(e,t,r,a){var o,a=a.attr("data-product_id")||a.attr("data-orderable-product-id");a&&(a=d(".orderable-product[data-orderable-product-id="+a+"] .orderable-product__actions-button")).length&&(o=a.find(".orderable-quantity-roller")).length&&(a.find("button.orderable-product__add-to-order[data-orderable-trigger]").removeClass("orderable-button--product-in-the-cart"),o.addClass("orderable-button--hide"))},add_unchecked_checkbox_fields(r){return jQuery('.orderable-product-fields-group :input[type="checkbox"]:not(:checked)').each(function(e,t){r.push({name:t.getAttribute("name"),value:""})}),r},shake_floating_cart(){d(".orderable-floating-cart__button").css("animation","wobble-hor-bottom .8s both")},remove_view_cart_link(e,t){t?.hasClass("orderable-product__add-to-order")&&t?.siblings(".added_to_cart.wc-forward").remove()}};d(l).ready(c.on_ready)}(jQuery,document),function(o,s){"use strict";var n={on_ready(){n.cache(),n.watch()},cache(){n.vars={top:{}},n.elements={}},watch(){o(s.body).on("orderable-drawer.opened",n.trigger),o(s.body).on("orderable-tabs.changed",n.trigger),o(s.body).on("orderable-accordion.toggled",n.trigger),o(s.body).on("wc_fragments_loaded",n.trigger)},trigger(){o(".orderable-sb-container").each(function(e,t){var r,t=o(t),a=t.data("orderable-scroll-id");n.has_scrollbar(t)||(t.scrollBox({containerClass:"orderable-sb-container",containerNoScrollClass:"orderable-sb-container-noscroll",contentClass:"orderable-sb-content",scrollbarContainerClass:"orderable-sb-scrollbar-container",scrollBarClass:"orderable-sb-scrollbar"}),0<(r=t.find(".orderable-sb-content")).length&&(r.on("scroll.scrollBox",n.log_top_position),void 0!==n.vars.top[a])&&r.scrollTop(n.vars.top[a]),o(s.body).trigger("orderable-scrollbar.created",{element:t,content:r}))}),o(window).trigger("resize.scrollBox")},has_scrollbar(e){return 0<e.find(".orderable-sb-content").length},log_top_position(e){var t=o(e.currentTarget).closest(".orderable-sb-container").data("orderable-scroll-id");n.vars.top[t]=o(e.currentTarget).scrollTop()}};o(s).ready(n.on_ready)}(jQuery,document),function(n,i){"use strict";var d={on_ready(){d.cache(),d.watch(),d.toggle_scroll()},on_resize(){d.toggle_scroll()},cache(){d.vars={classes:{tabs:"orderable-tabs",tabs_list:"orderable-tabs__list",tab_items:"orderable-tabs__item",tab_item_active:"orderable-tabs__item--active",tab_links:"orderable-tabs__link",tab_arrow_right:"orderable-tabs__arrow-right",tab_arrow_left:"orderable-tabs__arrow-left"},dragging:!1},d.elements={}},watch(){n("body").on("touchstart",function(){d.vars.dragging=!1}).on("touchmove",function(){d.vars.dragging=!0}),n(i.body).on("click mouseup touchend","."+d.vars.classes.tab_links,function(e){var t,r,a,o,s;d.vars.dragging||(e.preventDefault(),t=(e=n(this)).attr("href"),r=e.closest("."+d.vars.classes.tab_items),a=(s=e.closest("."+d.vars.classes.tabs)).find("."+d.vars.classes.tabs_list),o=s.find("."+d.vars.classes.tab_items),s=s.data("orderable-tabs"),s=(e=e.closest(s.wrapper)).find(s.sections),e=e.find(t),s.hide(),e.show(),o.removeClass(d.vars.classes.tab_item_active),r.addClass(d.vars.classes.tab_item_active),a.animate({scrollLeft:a.scrollLeft()+r.position().left}),n(i.body).trigger("orderable-tabs.changed",{tab:r}))}),n("."+d.vars.classes.tabs_list).on("scroll",function(e){var t=n(this),r=t.parent("."+d.vars.classes.tabs),a=t.siblings("."+d.vars.classes.tab_arrow_right),o=t.siblings("."+d.vars.classes.tab_arrow_left);t[0].scrollWidth<=r.width()+t.scrollLeft()?a.fadeOut():a.fadeIn(),t.scrollLeft()-o.width()<=0?o.fadeOut():o.fadeIn()}),n("."+d.vars.classes.tabs_list).on("wheel DOMMouseScroll mousewheel touchmove",function(){n(this).stop()}),n(i).on("click","."+d.vars.classes.tab_arrow_right,function(e){e.preventDefault();var e=n(this).parent(),t=e.find("."+d.vars.classes.tabs_list);t.animate({scrollLeft:t.scrollLeft()+.5*e.width()})}),n(i).on("click","."+d.vars.classes.tab_arrow_left,function(e){e.preventDefault();var e=n(this).parent(),t=e.find("."+d.vars.classes.tabs_list);t.animate({scrollLeft:t.scrollLeft()-.5*e.width()})})},toggle_scroll(){n("."+d.vars.classes.tabs).each(function(e,t){var r=n(this),a=r.data("orderable-tabs"),r=r.closest(a.wrapper),a=r.find("."+d.vars.classes.tabs_list),o=r.find("."+d.vars.classes.tab_arrow_right);r.outerWidth()<a[0].scrollWidth?o.show():o.hide()})}};n(i).ready(d.on_ready),n(window).on("resize",d.on_resize)}(jQuery,document);let orderable_timings={};!function(l,e){"use strict";orderable_timings={on_ready(){orderable_timings.watch()},restore(){var e,t=orderable_timings.get_timings();t&&t.date&&(0<(e=l(".orderable-order-timings__date")).find('option[value="'+t.date+'"]').length&&(e.val(t.date),e.change()),t.time)&&0<(e=l(".orderable-order-timings__time")).find('option[value="'+t.time+'"]').length&&(e.val(t.time),e.change())},watch(){l(e.body).on("wc_fragments_refreshed",function(){orderable_timings.restore()}),l(e.body).on("updated_checkout",function(){orderable_timings.restore()}),l(e.body).on("change",".orderable-order-timings__date",function(e){const t=l(this),r=t.find("option:selected"),a=r.data("orderable-slots"),o=l(".orderable-order-timings--time"),s=l(".orderable-order-timings__time"),n=s.find("option").first(),i=s.find('option[value="asap"]').first();var d=orderable_timings.get_timings();d.date=l(".orderable-order-timings__date").val(),window.localStorage.setItem("orderable_timings",JSON.stringify(d)),s.html(n),i&&s.append(i),a?"all-day"===a[0].value?(o.hide(),s.prop("disabled",!0)):(s.prop("disabled",!1),o.show(),l.each(a,function(e,t){s.append(l("<option />").attr("value",t.value).attr("data-orderable-time-slot-id",t?.setting_row?.time_slot_id).text(t.formatted))})):(s.prop("disabled",!0),o.hide())}),l(e.body).on("change",".orderable-order-timings__time",function(e){var t=orderable_timings.get_timings();t.time=l(".orderable-order-timings__time").val(),window.localStorage.setItem("orderable_timings",JSON.stringify(t)),l(this).siblings('input[name="orderable_order_time_slot_id"]').val(l(this).find(":selected").attr("data-orderable-time-slot-id"))})},get_timings(){return JSON.parse(window.localStorage.getItem("orderable_timings"))||{}}},l(e).ready(orderable_timings.on_ready)}(jQuery,document),function(a,o){"use strict";var e={on_ready(){e.watch()},watch(){void 0===window.orderable_triggers_admin&&a(o.body).on("click","[data-orderable-trigger]",e.trigger)},trigger(e){e.stopImmediatePropagation();var t=a(this),r=t.data("orderable-trigger");(t.is("button")||t.is("a"))&&e.preventDefault(),a(o.body).trigger("orderable-"+r,[t])}};a(o).ready(e.on_ready)}(jQuery,document);
  • orderable/trunk/docs/filters.json

    r3143111 r3192586  
    564564        },
    565565        {
     566            "name": "orderable_get_time_slots_for_zone",
     567            "file": "inc/modules/location/zones/class-location-zones.php",
     568            "type": "filter",
     569            "doc": {
     570                "description": "Module: Location (Zones).",
     571                "long_description": "",
     572                "tags": [
     573                    {
     574                        "name": "since",
     575                        "content": "1.18.0"
     576                    },
     577                    {
     578                        "name": "package",
     579                        "content": "Orderable/Classes"
     580                    }
     581                ],
     582                "long_description_html": ""
     583            },
     584            "args": 2
     585        },
     586        {
     587            "name": "orderable_get_time_slots_for_zone",
     588            "file": "inc/modules/location/zones/class-location-zones.php",
     589            "type": "filter",
     590            "doc": {
     591                "description": "",
     592                "long_description": "",
     593                "tags": [],
     594                "long_description_html": ""
     595            },
     596            "args": 2
     597        },
     598        {
    566599            "name": "orderable_get_unique_categories",
    567600            "file": "inc/modules/layouts/class-layouts.php",
     
    9731006                            "array"
    9741007                        ]
     1008                    }
     1009                ],
     1010                "long_description_html": ""
     1011            },
     1012            "args": 1
     1013        },
     1014        {
     1015            "name": "orderable_location_open_hours_override_description",
     1016            "file": "inc/modules/location/admin/meta-boxes/class-location-open-hours-meta-box.php",
     1017            "type": "filter",
     1018            "doc": {
     1019                "description": "Filter the override open hours description.",
     1020                "long_description": "",
     1021                "tags": [
     1022                    {
     1023                        "name": "since",
     1024                        "content": "1.18.0"
    9751025                    }
    9761026                ],
  • orderable/trunk/inc/class-products.php

    r3123410 r3192586  
    830830     */
    831831    public static function get_accordion_data( $product ) {
    832         $data = array();
     832        $data = [];
    833833
    834834        $description = Orderable_Settings::get_setting( 'drawer_quickview_description' );
    835835
    836         if ( 'none' !== $description ) {
    837             $description = 'short' === $description ? $product->get_short_description() : $product->get_description();
    838 
    839             $data[] = array(
    840                 'title'   => __( 'Description', 'orderable' ),
    841                 'content' => apply_filters( 'the_content', $description ),
    842                 'id'      => 'accordion-description',
    843             );
    844         }
     836        if ( 'none' === $description ) {
     837            // phpcs:ignore WooCommerce.Commenting.CommentHooks
     838            return apply_filters( 'orderable_get_accordion_data', $data, $product );
     839        }
     840
     841        $description = 'short' === $description ? $product->get_short_description() : $product->get_description();
     842
     843        // phpcs:ignore WooCommerce.Commenting.CommentHooks
     844        $content = apply_filters( 'the_content', $description );
     845
     846        if ( empty( $content ) ) {
     847            // phpcs:ignore WooCommerce.Commenting.CommentHooks
     848            return apply_filters( 'orderable_get_accordion_data', $data, $product );
     849        }
     850
     851        $data[] = array(
     852            'title'   => __( 'Description', 'orderable' ),
     853            'content' => $content,
     854            'id'      => 'accordion-description',
     855        );
    845856
    846857        /**
     
    849860         * @var array      $data
    850861         * @var WC_Product $product
     862         * @since 1.0.0
    851863         */
    852864        return apply_filters( 'orderable_get_accordion_data', $data, $product );
  • orderable/trunk/inc/modules/checkout/blocks/order-date/build/checkout-order-date-block-frontend.asset.php

    r3069084 r3192586  
    1 <?php return array('dependencies' => array('lodash', 'react', 'wc-blocks-checkout', 'wc-blocks-components', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => '0646eb9149c10d8c6265');
     1<?php return array('dependencies' => array('lodash', 'react', 'wc-blocks-checkout', 'wc-blocks-components', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => '3995f2a4c13d839e3885');
  • orderable/trunk/inc/modules/checkout/blocks/order-date/build/checkout-order-date-block-frontend.js

    r3069084 r3192586  
    1 (()=>{"use strict";var e={432:(e,r,t)=>{t.d(r,{k:()=>n});const a=window.React,o=window.wp.element,s=window.wp.components,d=window.wp.data,i=window.wp.i18n,c=window.lodash,l=window.wc.blocksComponents,n=({checkoutExtensionData:e,extensions:r,validation:t})=>{const{setExtensionData:n}=e,{getValidationError:p,setValidationErrors:u,clearValidationError:m}=t,v=r?.["orderable/order-service-date"]?.serviceDates,b=r?.["orderable/order-service-date"]?.serviceDatesLabel,w=(0,d.useSelect)((e=>e("wc/store/checkout").getExtensionData()?.["orderable/order-service-date"]?.timestamp)),f=(0,d.useSelect)((e=>e("wc/store/cart").isShippingRateBeingSelected())),g=(0,d.useSelect)((e=>f||e("wc/store/cart").isCustomerDataUpdating()),[f]),h=(0,d.useSelect)((e=>!(0,c.isEmpty)(e("wc/store/cart").getShippingRates()?.[0]?.shipping_rates))),E=r?.["orderable/order-service-date"]?.shouldSelectFirstAvailableDate,[k,S]=(0,o.useState)(!1),x=p("orderable/order-service-date"),y=p("orderable/order-no-service-date-selected");return(0,o.useEffect)((()=>{E&&S(!0)}),[E]),(0,o.useEffect)((()=>{if(k&&!g){const e=(0,c.head)((0,c.sortBy)((0,c.filter)(v,(e=>e?.value&&"asap"!==e?.value)),["value"]))?.value;if(!e)return;n("orderable/order-service-date","timestamp",`${e}`),S(!1)}}),[k,v,g,n]),(0,o.useEffect)((()=>{v||!h?m("orderable/order-service-date"):u({"orderable/order-service-date":{message:(0,i.__)("No service dates available","orderable"),hidden:!1}})}),[v,u,m,h]),(0,o.useEffect)((()=>{w||n("orderable/order-service-date","timestamp",v?.[0]?.value)}),[v,n,w]),(0,o.useEffect)((()=>{w?m("orderable/order-no-service-date-selected"):u({"orderable/order-no-service-date-selected":{message:(0,i.__)("Please select a service date","orderable"),hidden:!0}})}),[w,u,m]),(0,a.createElement)("div",{className:"wp-block-orderable-checkout__service-date "+(y?"has-error":"")},x?.message&&(0,a.createElement)(l.ValidationInputError,{errorMessage:x.message}),v&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)(s.SelectControl,{label:b,disabled:g,value:w,options:(0,c.map)(v),onChange:e=>{n("orderable/order-service-date","timestamp",e)}}),y&&!y.hidden&&(0,a.createElement)(l.ValidationInputError,{errorMessage:y.message})))}}},r={};function t(a){var o=r[a];if(void 0!==o)return o.exports;var s=r[a]={exports:{}};return e[a](s,s.exports,t),s.exports}t.d=(e,r)=>{for(var a in r)t.o(r,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:r[a]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{const e=window.wc.blocksCheckout;var r=t(432);const a=JSON.parse('{"apiVersion":2,"name":"orderable/order-service-date-block","version":"1.0.0","title":"Orderable - Service date field","category":"woocommerce","description":"Shows a select field to allow customers to select a service date.","supports":{"html":false,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-shipping-methods-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"orderable"}');(0,e.registerCheckoutBlock)({metadata:a,component:r.k})})()})();
     1(()=>{"use strict";var e={362:(e,r,t)=>{t.d(r,{e:()=>n});const a=window.React,o=window.wp.element,s=window.wp.components,c=window.wp.data,i=window.wp.i18n,d=window.lodash,l=window.wc.blocksComponents,n=({checkoutExtensionData:e,extensions:r,validation:t})=>{const{setExtensionData:n}=e,{getValidationError:p,setValidationErrors:u,clearValidationError:m}=t,v=r?.["orderable/order-service-date"]?.serviceDates,b=r?.["orderable/order-service-date"]?.serviceDatesLabel,w=(0,c.useSelect)((e=>e("wc/store/checkout").getExtensionData()?.["orderable/order-service-date"]?.timestamp)),f=(0,c.useSelect)((e=>e("wc/store/cart").isShippingRateBeingSelected())),h=(0,c.useSelect)((e=>f||e("wc/store/cart").isCustomerDataUpdating()),[f]),g=(0,c.useSelect)((e=>!(0,d.isEmpty)(e("wc/store/cart").getShippingRates()?.[0]?.shipping_rates))),E=r?.["orderable/order-service-date"]?.shouldSelectFirstAvailableDate,[k,S]=(0,o.useState)(!1),x=p("orderable/order-service-date"),y=p("orderable/order-no-service-date-selected");return(0,o.useEffect)((()=>{E&&S(!0)}),[E]),(0,o.useEffect)((()=>{if(k&&!h){const e=(0,d.head)((0,d.sortBy)((0,d.filter)(v,(e=>e?.value&&"asap"!==e?.value)),["value"]))?.value;if(!e)return;n("orderable/order-service-date","timestamp",`${e}`),S(!1)}}),[k,v,h,n]),(0,o.useEffect)((()=>{v||!g?m("orderable/order-service-date"):u({"orderable/order-service-date":{message:(0,i.__)("No service dates available","orderable"),hidden:!1}})}),[v,u,m,g]),(0,o.useEffect)((()=>{w||n("orderable/order-service-date","timestamp",v?.[0]?.value)}),[v,n,w]),(0,o.useEffect)((()=>{w?m("orderable/order-no-service-date-selected"):u({"orderable/order-no-service-date-selected":{message:(0,i.__)("Please select a service date","orderable"),hidden:!0}})}),[w,u,m]),(0,a.createElement)("div",{className:"wp-block-orderable-checkout__service-date "+(y?"has-error":"")},x?.message&&(0,a.createElement)(l.ValidationInputError,{errorMessage:x.message}),v&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)(s.SelectControl,{label:b,disabled:h,value:w,options:(0,d.map)(v),onChange:e=>{n("orderable/order-service-date","timestamp",e)}}),y&&!y.hidden&&(0,a.createElement)(l.ValidationInputError,{errorMessage:y.message})))}}},r={};function t(a){var o=r[a];if(void 0!==o)return o.exports;var s=r[a]={exports:{}};return e[a](s,s.exports,t),s.exports}t.d=(e,r)=>{for(var a in r)t.o(r,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:r[a]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);const a=window.wc.blocksCheckout;var o=t(362);const s=JSON.parse('{"apiVersion":2,"name":"orderable/order-service-date-block","version":"1.0.0","title":"Orderable - Service date field","category":"woocommerce","description":"Shows a select field to allow customers to select a service date.","supports":{"html":false,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-shipping-methods-block","woocommerce/checkout-pickup-options-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"orderable"}');(0,a.registerCheckoutBlock)({metadata:s,component:o.e})})();
  • orderable/trunk/inc/modules/checkout/blocks/order-date/build/index.asset.php

    r3069084 r3192586  
    1 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => 'a14d70b709702dd7225f');
     1<?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => '1d89ce0313abe52bcc53');
  • orderable/trunk/inc/modules/checkout/blocks/order-date/build/index.js

    r3069084 r3192586  
    1 (()=>{"use strict";const e=window.wp.blocks,o=window.wp.element,t=window.React,l=window.wp.i18n,r=window.wp.blockEditor,a=window.wp.components,i=JSON.parse('{"apiVersion":2,"name":"orderable/order-service-date-block","version":"1.0.0","title":"Orderable - Service date field","category":"woocommerce","description":"Shows a select field to allow customers to select a service date.","supports":{"html":false,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-shipping-methods-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"orderable"}'),c=(0,o.createElement)("svg",{width:20,height:15,viewBox:"0 0 20 15"},(0,o.createElement)("path",{"fill-rule":"evenodd","clip-rule":"evenodd",fill:"#BD47F5",d:"M15.6129 13.6639C18.6362 11.6975 20.7599 7.52818 19.7423 4.61553C18.7247 1.71768 14.5511 0.0765439 10.1415 0.00261896C5.7467 -0.071306 1.1159 1.42198 0.186796 4.20155C-0.75706 6.98113 2.01552 11.0618 5.36326 13.2204C8.69625 15.379 12.6044 15.6303 15.6129 13.6639ZM7.10944 2.68222C6.69369 2.68222 6.35667 3.01988 6.35667 3.43641C6.35667 3.85293 6.69369 4.1906 7.10944 4.1906H10.5044L10.5036 4.19159C10.8969 4.21733 11.2078 4.54442 11.2078 4.94415C11.2078 5.36068 10.8702 5.69834 10.4537 5.69834H9.7826L9.78247 5.69897H4.34928C3.93354 5.69897 3.59651 6.03664 3.59651 6.45316C3.59651 6.86969 3.93354 7.20735 4.34928 7.20735H10.4848C10.8869 7.2237 11.2078 7.55483 11.2078 7.96091C11.2078 8.36064 10.8969 8.68774 10.5037 8.71347L10.5055 8.71573H6.10574C5.69 8.71573 5.35297 9.0534 5.35297 9.46992C5.35297 9.88645 5.69 10.2241 6.10574 10.2241H13.8007C13.8251 10.2241 13.8492 10.223 13.8729 10.2207C16.018 10.1438 17.7318 8.48614 17.7318 6.45253C17.7318 4.36989 15.9344 2.68158 13.7171 2.68158H13.7162L7.10944 2.68222ZM15.0192 6.45253C15.0192 6.87904 14.599 7.51057 13.7171 7.51057C12.8351 7.51057 12.415 6.87904 12.415 6.45253C12.415 6.02602 12.8351 5.39449 13.7171 5.39449C14.599 5.39449 15.0192 6.02602 15.0192 6.45253ZM12.3659 11.2742C12.4644 11.5671 12.2588 11.9864 11.9662 12.1841C11.675 12.3818 11.2968 12.3566 10.9742 12.1395C10.6502 11.9224 10.3819 11.5121 10.4732 11.2326C10.5631 10.9531 11.0113 10.8029 11.4367 10.8103C11.8634 10.8178 12.2674 10.9828 12.3659 11.2742ZM13.6518 12.1841C13.3592 11.9864 13.1536 11.5671 13.2521 11.2742C13.3506 10.9828 13.7546 10.8178 14.1813 10.8103C14.6067 10.8029 15.0549 10.9531 15.1448 11.2326C15.2361 11.5121 14.9678 11.9224 14.6438 12.1395C14.3212 12.3566 13.943 12.3818 13.6518 12.1841Z"}));(0,e.registerBlockType)(i,{icon:c,edit:()=>{const e=(0,r.useBlockProps)();return(0,t.createElement)("div",{...e},(0,t.createElement)(a.Disabled,null,(0,t.createElement)(a.SelectControl,{label:(0,l.__)("Delivery Date","orderable"),options:[{value:"today",label:(0,l.__)("Today","orderable")},{value:"tomorrow",label:(0,l.__)("Tomorrow","orderable")}]})))}})})();
     1(()=>{"use strict";const e=window.wp.blocks,o=window.wp.element,t=window.React,l=window.wp.i18n,r=window.wp.blockEditor,a=window.wp.components,c=JSON.parse('{"apiVersion":2,"name":"orderable/order-service-date-block","version":"1.0.0","title":"Orderable - Service date field","category":"woocommerce","description":"Shows a select field to allow customers to select a service date.","supports":{"html":false,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-shipping-methods-block","woocommerce/checkout-pickup-options-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"orderable"}'),i=(0,o.createElement)("svg",{width:20,height:15,viewBox:"0 0 20 15"},(0,o.createElement)("path",{"fill-rule":"evenodd","clip-rule":"evenodd",fill:"#BD47F5",d:"M15.6129 13.6639C18.6362 11.6975 20.7599 7.52818 19.7423 4.61553C18.7247 1.71768 14.5511 0.0765439 10.1415 0.00261896C5.7467 -0.071306 1.1159 1.42198 0.186796 4.20155C-0.75706 6.98113 2.01552 11.0618 5.36326 13.2204C8.69625 15.379 12.6044 15.6303 15.6129 13.6639ZM7.10944 2.68222C6.69369 2.68222 6.35667 3.01988 6.35667 3.43641C6.35667 3.85293 6.69369 4.1906 7.10944 4.1906H10.5044L10.5036 4.19159C10.8969 4.21733 11.2078 4.54442 11.2078 4.94415C11.2078 5.36068 10.8702 5.69834 10.4537 5.69834H9.7826L9.78247 5.69897H4.34928C3.93354 5.69897 3.59651 6.03664 3.59651 6.45316C3.59651 6.86969 3.93354 7.20735 4.34928 7.20735H10.4848C10.8869 7.2237 11.2078 7.55483 11.2078 7.96091C11.2078 8.36064 10.8969 8.68774 10.5037 8.71347L10.5055 8.71573H6.10574C5.69 8.71573 5.35297 9.0534 5.35297 9.46992C5.35297 9.88645 5.69 10.2241 6.10574 10.2241H13.8007C13.8251 10.2241 13.8492 10.223 13.8729 10.2207C16.018 10.1438 17.7318 8.48614 17.7318 6.45253C17.7318 4.36989 15.9344 2.68158 13.7171 2.68158H13.7162L7.10944 2.68222ZM15.0192 6.45253C15.0192 6.87904 14.599 7.51057 13.7171 7.51057C12.8351 7.51057 12.415 6.87904 12.415 6.45253C12.415 6.02602 12.8351 5.39449 13.7171 5.39449C14.599 5.39449 15.0192 6.02602 15.0192 6.45253ZM12.3659 11.2742C12.4644 11.5671 12.2588 11.9864 11.9662 12.1841C11.675 12.3818 11.2968 12.3566 10.9742 12.1395C10.6502 11.9224 10.3819 11.5121 10.4732 11.2326C10.5631 10.9531 11.0113 10.8029 11.4367 10.8103C11.8634 10.8178 12.2674 10.9828 12.3659 11.2742ZM13.6518 12.1841C13.3592 11.9864 13.1536 11.5671 13.2521 11.2742C13.3506 10.9828 13.7546 10.8178 14.1813 10.8103C14.6067 10.8029 15.0549 10.9531 15.1448 11.2326C15.2361 11.5121 14.9678 11.9224 14.6438 12.1395C14.3212 12.3566 13.943 12.3818 13.6518 12.1841Z"}));(0,e.registerBlockType)(c,{icon:i,edit:()=>{const e=(0,r.useBlockProps)();return(0,t.createElement)("div",{...e},(0,t.createElement)(a.Disabled,null,(0,t.createElement)(a.SelectControl,{label:(0,l.__)("Delivery Date","orderable"),options:[{value:"today",label:(0,l.__)("Today","orderable")},{value:"tomorrow",label:(0,l.__)("Tomorrow","orderable")}]})))}})})();
  • orderable/trunk/inc/modules/checkout/blocks/order-date/src/js/block.json

    r3069084 r3192586  
    1212        "reusable": false
    1313    },
    14     "parent": [ "woocommerce/checkout-shipping-methods-block" ],
     14    "parent": [
     15        "woocommerce/checkout-shipping-methods-block",
     16        "woocommerce/checkout-pickup-options-block"
     17    ],
    1518    "attributes": {
    1619        "lock": {
  • orderable/trunk/inc/modules/location/admin/class-location-admin.php

    r3143111 r3192586  
    341341        foreach ( WC_Shipping_Zones::get_zones() as $zone ) {
    342342            wp_cache_delete( 'orderable_time_slots_for_zone_' . $zone['zone_id'] );
     343            wp_cache_delete( "has_zone_{$location_id}_{$zone['zone_id']}_true" );
     344            wp_cache_delete( "has_zone_{$location_id}_{$zone['zone_id']}_false" );
     345            wp_cache_delete( "{$time_slots_cache_key}_delivery_{$zone['zone_id']}" );
     346            wp_cache_delete( "{$time_slots_cache_key}_pickup_{$zone['zone_id']}" );
    343347        }
    344348
  • orderable/trunk/inc/modules/location/class-location-single.php

    r3143111 r3192586  
    346346        }
    347347
    348         wp_cache_set( $cache_key, $service_hours );
     348        wp_cache_set( $cache_key, $service_hours, '', ORDERABLE_CACHE_EXPIRATION_TIME );
    349349
    350350        // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment
     
    816816            $service_dates = apply_filters( 'orderable_location_service_dates', $result, $type, $this );
    817817
    818             wp_cache_set( $cache_key, $service_dates );
     818            wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME );
    819819
    820820            return $service_dates;
     
    839839            $service_dates = apply_filters( 'orderable_location_service_dates', $result, $type, $this );
    840840
    841             wp_cache_set( $cache_key, $service_dates );
     841            wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME );
    842842
    843843            return $service_dates;
     
    859859            $service_dates = apply_filters( 'orderable_location_service_dates', $result, $type, $this );
    860860
    861             wp_cache_set( $cache_key, $service_dates );
     861            wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME );
    862862
    863863            return $service_dates;
     
    10291029        $service_dates = apply_filters( 'orderable_location_service_dates', $service_dates, $type, $this );
    10301030
    1031         wp_cache_set( $cache_key, $service_dates );
     1031        wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME );
    10321032
    10331033        return $service_dates;
  • orderable/trunk/inc/modules/location/zones/class-location-zones-crud-handler.php

    r2912589 r3192586  
    145145
    146146            $normalized_postcodes = array_map( 'wc_normalize_postcode', explode( ',', $data['zone_postcodes'] ) );
    147             $locations            = ( ! empty( $data['zone_postcodes'] ) ) ? self::convert_postcodes_to_locations( $normalized_postcodes ) : array();
     147            // clear postcodes but keep other locations type e.g. state, country.
     148            $zone->clear_locations( ['postcode'] );
    148149
    149150            // NOTE: Shipping methods are added in class-location-zones.php;
    150151            // see the `on_shipping_zone_save` method.
    151             $zone->set_locations( $locations );
     152            foreach ( $normalized_postcodes as $postcode ) {
     153                $zone->add_location( $postcode, 'postcode' );
     154            }
    152155
    153156            $data_store->update( $zone );
  • orderable/trunk/languages/orderable.pot

    r3143111 r3192586  
    77"Content-Type: text/plain; charset=UTF-8\n"
    88"Content-Transfer-Encoding: 8bit\n"
    9 "POT-Creation-Date: 2024-08-28 16:46+0000\n"
     9"POT-Creation-Date: 2024-11-19 18:56+0000\n"
    1010"X-Poedit-Basepath: ..\n"
    1111"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
     
    182182msgstr ""
    183183
    184 #: inc/class-products.php:840
     184#: inc/class-products.php:852
    185185msgid "Description"
    186186msgstr ""
     
    10921092
    10931093#. translators: zone name
    1094 #: inc/modules/location/zones/class-location-zones-crud-handler.php:164
     1094#: inc/modules/location/zones/class-location-zones-crud-handler.php:167
    10951095msgid "%s succcessfully updated!"
    10961096msgstr ""
    10971097
    1098 #: inc/modules/location/zones/class-location-zones-crud-handler.php:240
     1098#: inc/modules/location/zones/class-location-zones-crud-handler.php:243
    10991099msgid "Zone succcessfully deleted!"
    11001100msgstr ""
    11011101
    1102 #: inc/modules/location/zones/class-location-zones-crud-handler.php:281
     1102#: inc/modules/location/zones/class-location-zones-crud-handler.php:284
    11031103msgid "Zone(s) succcessfully removed"
    11041104msgstr ""
  • orderable/trunk/orderable.php

    r3143111 r3192586  
    44 * Author URI: https://orderable.com
    55 * Description: Take local online ordering to a whole new level with Orderable.
    6  * Version: 1.16.0
     6 * Version: 1.17.0
    77 * Author: Orderable
    88 * Text Domain: orderable
    99 * WC requires at least: 5.4.0
    10  * WC tested up to: 9.2
     10 * WC tested up to: 9.4
    1111 */
    1212
     
    2020     * @var string Plugin version.
    2121     */
    22     public static $version = '1.16.0';
     22    public static $version = '1.17.0';
    2323
    2424    /**
    2525     * @var string Required pro version.
    2626     */
    27     public static $required_pro_version = '1.16.0';
     27    public static $required_pro_version = '1.17.0';
    2828
    2929    /**
     
    164164        $this->define( 'ORDERABLE_LANGUAGES_PATH', dirname( ORDERABLE_BASENAME ) . '/languages/' );
    165165        $this->define( 'ORDERABLE_VERSION', self::$version );
     166        $this->define( 'ORDERABLE_CACHE_EXPIRATION_TIME', 5 * MINUTE_IN_SECONDS );
    166167    }
    167168
     
    195196        require_once ORDERABLE_INC_PATH . 'class-ask-review.php';
    196197        require_once ORDERABLE_INC_PATH . 'class-integrations.php';
     198        require_once ORDERABLE_INC_PATH . 'class-compat-flux-checkout.php';
    197199
    198200        Orderable_Settings::run();
     
    204206        Orderable_Ask_Review::run();
    205207        Orderable_Integrations::run();
     208        Orderable_Compat_Flux_Checkout::run();
    206209    }
    207210
  • orderable/trunk/phpcs.xml

    r3123410 r3192586  
    22<ruleset name="IconicWP-Default">
    33    <description>Generally-applicable sniffs for Iconic plugins</description>
     4
     5    <!--
     6    Prevent errors caused by WordPress Coding Standards not supporting PHP 8.0+.
     7    See https://github.com/WordPress/WordPress-Coding-Standards/issues/2035
     8    -->
     9    <ini name="error_reporting" value="E_ALL &#38; ~E_DEPRECATED" />
    410
    511    <!-- Configs -->
  • orderable/trunk/phpstan.neon

    r3123410 r3192586  
    1212        - vendor/php-stubs/woocommerce-stubs/woocommerce-packages-stubs.php
    1313        - stubs/orderable-stubs.php
     14        - stubs/iconic-stubs.php
  • orderable/trunk/readme.txt

    r3143111 r3192586  
    33Tags: restaurant, food ordering, food menu, food delivery, restaurant menu
    44Requires at least: 5.4
    5 Tested up to: 6.6
     5Tested up to: 6.7
    66Requires PHP: 5.6
    7 Stable tag: 1.16.0
     7Stable tag: 1.17.0
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    186186
    187187== Changelog ==
     188**v1.17.0** (19 Nov 2024)
     189[fix] Compatibility with Flux Checkout for WooCommerce plugin
     190[fix] Incorrect shipping methods showing in the Find Locations modal
     191[fix] Region being removed from shipping zones when a zone is added to a location
     192[fix] Order Date block to be compatible with the new WooCommerce Local pickup
     193[fix] Description accordion showing when the product description is empty
     194[fix] Race condition causing page to reload when changing tabs for locations in WCFM dashboard
     195
    188196**v1.16.0** (28 Aug 2024)
    189197[new] Multi-vendor plugin integration
Note: See TracChangeset for help on using the changeset viewer.