Changeset 3192586
- Timestamp:
- 11/19/2024 07:22:59 PM (17 months ago)
- Location:
- orderable
- Files:
-
- 16 added
- 34 edited
- 1 copied
-
tags/1.17.0 (copied) (copied from orderable/trunk)
-
tags/1.17.0/assets/frontend/js/main.js (modified) (1 diff)
-
tags/1.17.0/assets/frontend/js/main.min.js (modified) (1 diff)
-
tags/1.17.0/docs/filters.json (modified) (2 diffs)
-
tags/1.17.0/inc/class-compat-flux-checkout.php (added)
-
tags/1.17.0/inc/class-products.php (modified) (2 diffs)
-
tags/1.17.0/inc/modules/checkout/blocks/order-date/build/checkout-order-date-block-frontend.asset.php (modified) (1 diff)
-
tags/1.17.0/inc/modules/checkout/blocks/order-date/build/checkout-order-date-block-frontend.js (modified) (1 diff)
-
tags/1.17.0/inc/modules/checkout/blocks/order-date/build/index.asset.php (modified) (1 diff)
-
tags/1.17.0/inc/modules/checkout/blocks/order-date/build/index.js (modified) (1 diff)
-
tags/1.17.0/inc/modules/checkout/blocks/order-date/src/js/block.json (modified) (1 diff)
-
tags/1.17.0/inc/modules/location/admin/class-location-admin.php (modified) (1 diff)
-
tags/1.17.0/inc/modules/location/class-location-single.php (modified) (5 diffs)
-
tags/1.17.0/inc/modules/location/zones/class-location-zones-crud-handler.php (modified) (1 diff)
-
tags/1.17.0/inc/modules/timings/assets/frontend (added)
-
tags/1.17.0/inc/modules/timings/assets/frontend/css (added)
-
tags/1.17.0/inc/modules/timings/assets/frontend/css/compat-flux-checkout-timings.css (added)
-
tags/1.17.0/inc/modules/timings/assets/frontend/css/compat-flux-checkout-timings.min.css (added)
-
tags/1.17.0/inc/modules/timings/source/frontend (added)
-
tags/1.17.0/inc/modules/timings/source/frontend/scss (added)
-
tags/1.17.0/inc/modules/timings/source/frontend/scss/compat-flux-checkout-timings.scss (added)
-
tags/1.17.0/languages/orderable.pot (modified) (3 diffs)
-
tags/1.17.0/orderable.php (modified) (5 diffs)
-
tags/1.17.0/phpcs.xml (modified) (1 diff)
-
tags/1.17.0/phpstan.neon (modified) (1 diff)
-
tags/1.17.0/readme.txt (modified) (2 diffs)
-
trunk/assets/frontend/js/main.js (modified) (1 diff)
-
trunk/assets/frontend/js/main.min.js (modified) (1 diff)
-
trunk/docs/filters.json (modified) (2 diffs)
-
trunk/inc/class-compat-flux-checkout.php (added)
-
trunk/inc/class-products.php (modified) (2 diffs)
-
trunk/inc/modules/checkout/blocks/order-date/build/checkout-order-date-block-frontend.asset.php (modified) (1 diff)
-
trunk/inc/modules/checkout/blocks/order-date/build/checkout-order-date-block-frontend.js (modified) (1 diff)
-
trunk/inc/modules/checkout/blocks/order-date/build/index.asset.php (modified) (1 diff)
-
trunk/inc/modules/checkout/blocks/order-date/build/index.js (modified) (1 diff)
-
trunk/inc/modules/checkout/blocks/order-date/src/js/block.json (modified) (1 diff)
-
trunk/inc/modules/location/admin/class-location-admin.php (modified) (1 diff)
-
trunk/inc/modules/location/class-location-single.php (modified) (5 diffs)
-
trunk/inc/modules/location/zones/class-location-zones-crud-handler.php (modified) (1 diff)
-
trunk/inc/modules/timings/assets/frontend (added)
-
trunk/inc/modules/timings/assets/frontend/css (added)
-
trunk/inc/modules/timings/assets/frontend/css/compat-flux-checkout-timings.css (added)
-
trunk/inc/modules/timings/assets/frontend/css/compat-flux-checkout-timings.min.css (added)
-
trunk/inc/modules/timings/source/frontend (added)
-
trunk/inc/modules/timings/source/frontend/scss (added)
-
trunk/inc/modules/timings/source/frontend/scss/compat-flux-checkout-timings.scss (added)
-
trunk/languages/orderable.pot (modified) (3 diffs)
-
trunk/orderable.php (modified) (5 diffs)
-
trunk/phpcs.xml (modified) (1 diff)
-
trunk/phpstan.neon (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
orderable/tags/1.17.0/assets/frontend/js/main.js
r3143111 r3192586 1510 1510 const $trigger_element = $(this), 1511 1511 trigger = $trigger_element.data('orderable-trigger'); 1512 if ($trigger_element.is('button') || $trigger_element.is('a')) { 1513 e.preventDefault(); 1514 } 1512 1515 $(document.body).trigger('orderable-' + trigger, [$trigger_element]); 1513 1516 } -
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 564 564 }, 565 565 { 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 { 566 599 "name": "orderable_get_unique_categories", 567 600 "file": "inc/modules/layouts/class-layouts.php", … … 973 1006 "array" 974 1007 ] 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" 975 1025 } 976 1026 ], -
orderable/tags/1.17.0/inc/class-products.php
r3123410 r3192586 830 830 */ 831 831 public static function get_accordion_data( $product ) { 832 $data = array();832 $data = []; 833 833 834 834 $description = Orderable_Settings::get_setting( 'drawer_quickview_description' ); 835 835 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 ); 845 856 846 857 /** … … 849 860 * @var array $data 850 861 * @var WC_Product $product 862 * @since 1.0.0 851 863 */ 852 864 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 12 12 "reusable": false 13 13 }, 14 "parent": [ "woocommerce/checkout-shipping-methods-block" ], 14 "parent": [ 15 "woocommerce/checkout-shipping-methods-block", 16 "woocommerce/checkout-pickup-options-block" 17 ], 15 18 "attributes": { 16 19 "lock": { -
orderable/tags/1.17.0/inc/modules/location/admin/class-location-admin.php
r3143111 r3192586 341 341 foreach ( WC_Shipping_Zones::get_zones() as $zone ) { 342 342 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']}" ); 343 347 } 344 348 -
orderable/tags/1.17.0/inc/modules/location/class-location-single.php
r3143111 r3192586 346 346 } 347 347 348 wp_cache_set( $cache_key, $service_hours );348 wp_cache_set( $cache_key, $service_hours, '', ORDERABLE_CACHE_EXPIRATION_TIME ); 349 349 350 350 // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment … … 816 816 $service_dates = apply_filters( 'orderable_location_service_dates', $result, $type, $this ); 817 817 818 wp_cache_set( $cache_key, $service_dates );818 wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME ); 819 819 820 820 return $service_dates; … … 839 839 $service_dates = apply_filters( 'orderable_location_service_dates', $result, $type, $this ); 840 840 841 wp_cache_set( $cache_key, $service_dates );841 wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME ); 842 842 843 843 return $service_dates; … … 859 859 $service_dates = apply_filters( 'orderable_location_service_dates', $result, $type, $this ); 860 860 861 wp_cache_set( $cache_key, $service_dates );861 wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME ); 862 862 863 863 return $service_dates; … … 1029 1029 $service_dates = apply_filters( 'orderable_location_service_dates', $service_dates, $type, $this ); 1030 1030 1031 wp_cache_set( $cache_key, $service_dates );1031 wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME ); 1032 1032 1033 1033 return $service_dates; -
orderable/tags/1.17.0/inc/modules/location/zones/class-location-zones-crud-handler.php
r2912589 r3192586 145 145 146 146 $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'] ); 148 149 149 150 // NOTE: Shipping methods are added in class-location-zones.php; 150 151 // 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 } 152 155 153 156 $data_store->update( $zone ); -
orderable/tags/1.17.0/languages/orderable.pot
r3143111 r3192586 7 7 "Content-Type: text/plain; charset=UTF-8\n" 8 8 "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" 10 10 "X-Poedit-Basepath: ..\n" 11 11 "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" … … 182 182 msgstr "" 183 183 184 #: inc/class-products.php:8 40184 #: inc/class-products.php:852 185 185 msgid "Description" 186 186 msgstr "" … … 1092 1092 1093 1093 #. translators: zone name 1094 #: inc/modules/location/zones/class-location-zones-crud-handler.php:16 41094 #: inc/modules/location/zones/class-location-zones-crud-handler.php:167 1095 1095 msgid "%s succcessfully updated!" 1096 1096 msgstr "" 1097 1097 1098 #: inc/modules/location/zones/class-location-zones-crud-handler.php:24 01098 #: inc/modules/location/zones/class-location-zones-crud-handler.php:243 1099 1099 msgid "Zone succcessfully deleted!" 1100 1100 msgstr "" 1101 1101 1102 #: inc/modules/location/zones/class-location-zones-crud-handler.php:28 11102 #: inc/modules/location/zones/class-location-zones-crud-handler.php:284 1103 1103 msgid "Zone(s) succcessfully removed" 1104 1104 msgstr "" -
orderable/tags/1.17.0/orderable.php
r3143111 r3192586 4 4 * Author URI: https://orderable.com 5 5 * Description: Take local online ordering to a whole new level with Orderable. 6 * Version: 1.1 6.06 * Version: 1.17.0 7 7 * Author: Orderable 8 8 * Text Domain: orderable 9 9 * WC requires at least: 5.4.0 10 * WC tested up to: 9. 210 * WC tested up to: 9.4 11 11 */ 12 12 … … 20 20 * @var string Plugin version. 21 21 */ 22 public static $version = '1.1 6.0';22 public static $version = '1.17.0'; 23 23 24 24 /** 25 25 * @var string Required pro version. 26 26 */ 27 public static $required_pro_version = '1.1 6.0';27 public static $required_pro_version = '1.17.0'; 28 28 29 29 /** … … 164 164 $this->define( 'ORDERABLE_LANGUAGES_PATH', dirname( ORDERABLE_BASENAME ) . '/languages/' ); 165 165 $this->define( 'ORDERABLE_VERSION', self::$version ); 166 $this->define( 'ORDERABLE_CACHE_EXPIRATION_TIME', 5 * MINUTE_IN_SECONDS ); 166 167 } 167 168 … … 195 196 require_once ORDERABLE_INC_PATH . 'class-ask-review.php'; 196 197 require_once ORDERABLE_INC_PATH . 'class-integrations.php'; 198 require_once ORDERABLE_INC_PATH . 'class-compat-flux-checkout.php'; 197 199 198 200 Orderable_Settings::run(); … … 204 206 Orderable_Ask_Review::run(); 205 207 Orderable_Integrations::run(); 208 Orderable_Compat_Flux_Checkout::run(); 206 209 } 207 210 -
orderable/tags/1.17.0/phpcs.xml
r3123410 r3192586 2 2 <ruleset name="IconicWP-Default"> 3 3 <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 & ~E_DEPRECATED" /> 4 10 5 11 <!-- Configs --> -
orderable/tags/1.17.0/phpstan.neon
r3123410 r3192586 12 12 - vendor/php-stubs/woocommerce-stubs/woocommerce-packages-stubs.php 13 13 - stubs/orderable-stubs.php 14 - stubs/iconic-stubs.php -
orderable/tags/1.17.0/readme.txt
r3143111 r3192586 3 3 Tags: restaurant, food ordering, food menu, food delivery, restaurant menu 4 4 Requires at least: 5.4 5 Tested up to: 6. 65 Tested up to: 6.7 6 6 Requires PHP: 5.6 7 Stable tag: 1.1 6.07 Stable tag: 1.17.0 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 186 186 187 187 == 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 188 196 **v1.16.0** (28 Aug 2024) 189 197 [new] Multi-vendor plugin integration -
orderable/trunk/assets/frontend/js/main.js
r3143111 r3192586 1510 1510 const $trigger_element = $(this), 1511 1511 trigger = $trigger_element.data('orderable-trigger'); 1512 if ($trigger_element.is('button') || $trigger_element.is('a')) { 1513 e.preventDefault(); 1514 } 1512 1515 $(document.body).trigger('orderable-' + trigger, [$trigger_element]); 1513 1516 } -
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 564 564 }, 565 565 { 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 { 566 599 "name": "orderable_get_unique_categories", 567 600 "file": "inc/modules/layouts/class-layouts.php", … … 973 1006 "array" 974 1007 ] 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" 975 1025 } 976 1026 ], -
orderable/trunk/inc/class-products.php
r3123410 r3192586 830 830 */ 831 831 public static function get_accordion_data( $product ) { 832 $data = array();832 $data = []; 833 833 834 834 $description = Orderable_Settings::get_setting( 'drawer_quickview_description' ); 835 835 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 ); 845 856 846 857 /** … … 849 860 * @var array $data 850 861 * @var WC_Product $product 862 * @since 1.0.0 851 863 */ 852 864 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 12 12 "reusable": false 13 13 }, 14 "parent": [ "woocommerce/checkout-shipping-methods-block" ], 14 "parent": [ 15 "woocommerce/checkout-shipping-methods-block", 16 "woocommerce/checkout-pickup-options-block" 17 ], 15 18 "attributes": { 16 19 "lock": { -
orderable/trunk/inc/modules/location/admin/class-location-admin.php
r3143111 r3192586 341 341 foreach ( WC_Shipping_Zones::get_zones() as $zone ) { 342 342 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']}" ); 343 347 } 344 348 -
orderable/trunk/inc/modules/location/class-location-single.php
r3143111 r3192586 346 346 } 347 347 348 wp_cache_set( $cache_key, $service_hours );348 wp_cache_set( $cache_key, $service_hours, '', ORDERABLE_CACHE_EXPIRATION_TIME ); 349 349 350 350 // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment … … 816 816 $service_dates = apply_filters( 'orderable_location_service_dates', $result, $type, $this ); 817 817 818 wp_cache_set( $cache_key, $service_dates );818 wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME ); 819 819 820 820 return $service_dates; … … 839 839 $service_dates = apply_filters( 'orderable_location_service_dates', $result, $type, $this ); 840 840 841 wp_cache_set( $cache_key, $service_dates );841 wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME ); 842 842 843 843 return $service_dates; … … 859 859 $service_dates = apply_filters( 'orderable_location_service_dates', $result, $type, $this ); 860 860 861 wp_cache_set( $cache_key, $service_dates );861 wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME ); 862 862 863 863 return $service_dates; … … 1029 1029 $service_dates = apply_filters( 'orderable_location_service_dates', $service_dates, $type, $this ); 1030 1030 1031 wp_cache_set( $cache_key, $service_dates );1031 wp_cache_set( $cache_key, $service_dates, '', ORDERABLE_CACHE_EXPIRATION_TIME ); 1032 1032 1033 1033 return $service_dates; -
orderable/trunk/inc/modules/location/zones/class-location-zones-crud-handler.php
r2912589 r3192586 145 145 146 146 $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'] ); 148 149 149 150 // NOTE: Shipping methods are added in class-location-zones.php; 150 151 // 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 } 152 155 153 156 $data_store->update( $zone ); -
orderable/trunk/languages/orderable.pot
r3143111 r3192586 7 7 "Content-Type: text/plain; charset=UTF-8\n" 8 8 "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" 10 10 "X-Poedit-Basepath: ..\n" 11 11 "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" … … 182 182 msgstr "" 183 183 184 #: inc/class-products.php:8 40184 #: inc/class-products.php:852 185 185 msgid "Description" 186 186 msgstr "" … … 1092 1092 1093 1093 #. translators: zone name 1094 #: inc/modules/location/zones/class-location-zones-crud-handler.php:16 41094 #: inc/modules/location/zones/class-location-zones-crud-handler.php:167 1095 1095 msgid "%s succcessfully updated!" 1096 1096 msgstr "" 1097 1097 1098 #: inc/modules/location/zones/class-location-zones-crud-handler.php:24 01098 #: inc/modules/location/zones/class-location-zones-crud-handler.php:243 1099 1099 msgid "Zone succcessfully deleted!" 1100 1100 msgstr "" 1101 1101 1102 #: inc/modules/location/zones/class-location-zones-crud-handler.php:28 11102 #: inc/modules/location/zones/class-location-zones-crud-handler.php:284 1103 1103 msgid "Zone(s) succcessfully removed" 1104 1104 msgstr "" -
orderable/trunk/orderable.php
r3143111 r3192586 4 4 * Author URI: https://orderable.com 5 5 * Description: Take local online ordering to a whole new level with Orderable. 6 * Version: 1.1 6.06 * Version: 1.17.0 7 7 * Author: Orderable 8 8 * Text Domain: orderable 9 9 * WC requires at least: 5.4.0 10 * WC tested up to: 9. 210 * WC tested up to: 9.4 11 11 */ 12 12 … … 20 20 * @var string Plugin version. 21 21 */ 22 public static $version = '1.1 6.0';22 public static $version = '1.17.0'; 23 23 24 24 /** 25 25 * @var string Required pro version. 26 26 */ 27 public static $required_pro_version = '1.1 6.0';27 public static $required_pro_version = '1.17.0'; 28 28 29 29 /** … … 164 164 $this->define( 'ORDERABLE_LANGUAGES_PATH', dirname( ORDERABLE_BASENAME ) . '/languages/' ); 165 165 $this->define( 'ORDERABLE_VERSION', self::$version ); 166 $this->define( 'ORDERABLE_CACHE_EXPIRATION_TIME', 5 * MINUTE_IN_SECONDS ); 166 167 } 167 168 … … 195 196 require_once ORDERABLE_INC_PATH . 'class-ask-review.php'; 196 197 require_once ORDERABLE_INC_PATH . 'class-integrations.php'; 198 require_once ORDERABLE_INC_PATH . 'class-compat-flux-checkout.php'; 197 199 198 200 Orderable_Settings::run(); … … 204 206 Orderable_Ask_Review::run(); 205 207 Orderable_Integrations::run(); 208 Orderable_Compat_Flux_Checkout::run(); 206 209 } 207 210 -
orderable/trunk/phpcs.xml
r3123410 r3192586 2 2 <ruleset name="IconicWP-Default"> 3 3 <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 & ~E_DEPRECATED" /> 4 10 5 11 <!-- Configs --> -
orderable/trunk/phpstan.neon
r3123410 r3192586 12 12 - vendor/php-stubs/woocommerce-stubs/woocommerce-packages-stubs.php 13 13 - stubs/orderable-stubs.php 14 - stubs/iconic-stubs.php -
orderable/trunk/readme.txt
r3143111 r3192586 3 3 Tags: restaurant, food ordering, food menu, food delivery, restaurant menu 4 4 Requires at least: 5.4 5 Tested up to: 6. 65 Tested up to: 6.7 6 6 Requires PHP: 5.6 7 Stable tag: 1.1 6.07 Stable tag: 1.17.0 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 186 186 187 187 == 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 188 196 **v1.16.0** (28 Aug 2024) 189 197 [new] Multi-vendor plugin integration
Note: See TracChangeset
for help on using the changeset viewer.