PageSourceSearch

https://www.rimi.ee/epood/front/js/chunks/reserve.bkOm_vYQ.js

js rimi.ee collected 2026-10-02 06:28:22 UTC 16,197 bytes, 13 lines download raw bytes

1import{$ as o}from"./jquery.CBbbV0PI.js";import{C as g}from"../controllers/modals/choose-shop-modal.Ckl2c_nk.js";import{a as S,d as C,m as E,c as k,b,h as y,g as T,f as R,n as O,o as u,p as _,q as D,k as w,r as A,s}from"./config.mMsEHLZc.js";import{C as I}from"../controllers/modals/choose-city-modal.CcZUk8bv.js";import{T as L,a as N,g as U}from"../controllers/modals/TimeSlotModal.tQ8Vp38h.js";import{T as H}from"./easytimer.BqCO8n_2.js";import{R as x}from"../controllers/modals/reservation-warning-modal.xFXXgggq.js";import{H as V}from"../controllers/modals/home-delivery-guest-modal.CR3eSrt7.js";import{H as P}from"../controllers/modals/home-delivery-user-modal.C5_p5HRi.js";import{w as n,C as G}from"../controllers/modals/car-plate-modal.B2KZP7cv.js";import{A as W}from"../controllers/modals/address-modal.BPd6qay2.js";import{U as $,M as d}from"../controllers/modals/unavailable-items-modal.By85exIh.js";import{a as c}from"../vendor/vendor~common.CTequiZZ.js";import{M as j}from"../controllers/modal.CY5gecMM.js";import"./slick.C3xXTE8u.js";import{s as v}from"./storage.CX6KZSSv.js";import{L as B}from"../controllers/modals/locker-delivery-modal.BTyMV2hL.js";import{P as z}from"./config.Bjm4JPTP.js";import{R as F}from"./modal.CTvA-Hdt.js";const f=".js-reservation-timer";class K{static instance;$timerContainer;timer;modal;warningShown=!1;isAware=!1;documentTitle=document.title;static init(){return this.instance||(this.instance=new this)}constructor(){this.timer=new H,this.modal=new x(Storefront.routes.reservation_warning,"fullscreen-popover"),this.addListeners(),this.startTimer()}addListeners(){this.timer.addEventListener("secondsUpdated",this.secondsUpdated),this.timer.addEventListener("targetAchieved",this.targetAchieved),window.addEventListener("focus",this.secondsUpdated)}targetAchieved=async()=>{this.$timerContainer.html("00:00"),this.warningShown||(await this.showWarning(),this.warningShown=!0)};secondsUpdated=()=>{const e=o(f).data("reservationAware"),t=this.timer.getTimeValues().toString(this.getFormat());if(this.$timerContainer.html(t),this.timer.getTotalTimeValues().seconds<=e){if(this.updatePageTitle(),this.isAware)return;this.changeColor()}};updatePageTitle(){if(this.timer.getTotalTimeValues().seconds===0){document.title=this.documentTitle;return}if(this.timer.getTotalTimeValues().seconds%2===0){document.title="‎";return}document.title=[this.$timerContainer.eq(0).text(),this.documentTitle].join(" | ")}startTimer(){this.$timerContainer=o(f);const e=this.$timerContainer.data("reservationEnd");this.timer.isRunning()&&this.timer.stop(),this.timer.start({countdown:!0,startValues:{seconds:e}}),this.$timerContainer.html(this.timer.getTimeValues().toString(this.getFormat()))}getFormat(){return this.timer.getTimeValues().hours>0?(this.$timerContainer.addClass("hours"),["hours","minutes","seconds"]):(this.$timerContainer.removeClass("hours"),["minutes","seconds"])}async showWarning(){o(".modal").remove(),await this.modal.open(),this.warningShown=!1}changeColor(){this.isAware=!0,o(".notification-reservation, .notification-reservation-mobile").addClass("aware")}}class Z{static instance;$body;$sliderContainer;static init(){return this.instance||(this.instance=new this)}constructor(){this.$body=o("body"),this.listen()}listen=()=>{this.$body.on("click",".out-of-stock-card .js-toggle-similar",this.toggleSimilarProducts)};toggleSimilarProducts=e=>{this.$sliderContainer=this.$sliderContainer||o(".out-of-stock-card__slider-wrapper");const i=o(e.currentTarget).parents(".out-of-stock-card"),m=i.find(".js-slider");this.toggleWrapper(i),this.handleSimilarProductSlider(m)};toggleWrapper(e){if(e.find(".out-of-stock-card__slider-wrapper").is(":visible")){e.find(".out-of-stock-card__slider-wrapper").slideToggle(300);return}this.$sliderContainer.slideUp(300),e.find(".out-of-stock-card__slider-wrapper").slideDown(300)}handleSimilarProductSlider(e){const t=o(window).width();e.data("items")>3&&t>=768&&!e.hasClass("slick-initialized")?this.initSlider(e):e.hasClass("slick-initialized")&&setTimeout(()=>{e.slick("setPosition")},200)}initSlider(e){const t={swipe:!1,infinite:!0,slidesToShow:3,slidesToScroll:3,prevArrow:`
2                <button type="button" class="slick-prev" aria-label="Previous" data-gtm-ignore>
3                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48">
4                        <path d="M32 8L16 24l16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-miterlimit="10"/>
5                    </svg>
6                </button>
7            `,nextArrow:`
8                <button type="button" class="slick-next" aria-label="Next" data-gtm-ignore>
9                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48">
10                        <path d="M16 40l16-16L16 8" fill="none" stroke="currentColor" stroke-width="2" stroke-miterlimit="10"/>
11                    </svg>
12                </button>
13            `};e.slick(t)}}class J extends j{ALLOW_CLICK_OUTSIDE=!1;cookieName;constructor(e,t){super(e,t),this.cookieName=Storefront.cookies.out_of_stock_cookie_name,this.createModal()}afterCreate(){Z.init(),super.afterCreate()}beforeClose(){this.clearCookie(),super.beforeClose()}close=()=>{this.beforeClose();const e=this.modal.close();p.init().setModalAsClosed();const t=o(".js-close-modal").data("href");return t?q.openCarPlateModal(t):n.reload(),e};clearCookie=()=>{c.remove(this.cookieName)};unhook=()=>
13{this.body.off("click",".button",this.beforeClose),this.body.off("click",".modal__close",this.close),this.body.off("click",".js-close-modal",this.close),this.ALLOW_CLICK_OUTSIDE&&this.body.off("click",this.clickOutside),this.body.trigger(z)}}class p{static instance;page;cookieName;outOfStockModal;modalIsOpen;static init(){return this.instance||(this.instance=new this)}constructor(){this.page=o("body"),this.modalIsOpen=!1,this.cookieName=Storefront.cookies.out_of_stock_cookie_name,this.listen()}listen=()=>{this.page.on("contentloaded",this.checkOutOfStock)};shouldOpen=()=>c.get(this.cookieName)!==void 0&&this.modalIsOpen!==!0;checkOutOfStock=()=>{this.shouldOpen()&&this.open(Storefront.routes.cart_out_of_stock)};setModalAsClosed=()=>{this.modalIsOpen=!1};open=async(e,t)=>{if(this.shouldOpen()){this.modalIsOpen=!0,this.outOfStockModal!==void 0&&this.outOfStockModal.unhook(),this.outOfStockModal=new J(e,"out-of-stock-modal");try{return await this.outOfStockModal.open()}catch(i){this.outOfStockModal.clearCookie(),n.reload(),i===F&&t!==void 0&&(globalThis.location.href=t)}}};isShownOrNeedsToBeShown=()=>c.get(this.cookieName)!==void 0?!0:this.outOfStockModal?.isOpen()}class a{static SELECTOR="[data-link-with-loader]";static SELECTOR_BOUND="[data-link-with-loader-bound]";static EVENT_HIDE_LOADER="hide-loader";static EVENT_HIDE_CHILD_LOADERS="hide-child-loaders";static LOADER_SELECTOR="[data-loader]";trigger;loader;constructor(e){e.is(a.SELECTOR_BOUND)||(this.trigger=e,this.markBound(),this.loader=this.trigger.find(a.LOADER_SELECTOR),this.listen())}listen(){this.trigger.on("click",this.showLoader),this.trigger.on(a.EVENT_HIDE_LOADER,this.hideLoader)}showLoader=()=>{const e=this.trigger.outerWidth()+"px";this.trigger.css({width:e,flex:"0 0 "+e}),this.trigger.addClass("-loading"),this.loader.removeClass("-hidden")};hideLoader=()=>{this.trigger[0].style.removeProperty("width"),this.trigger.removeClass("-loading"),this.loader.addClass("-hidden")};markBound(){this.trigger.attr("data-link-with-loader-bound","true")}}const M=o("body");M.on("contentloaded",function(r){o(r.target).find(a.SELECTOR).get().forEach(t=>new a(o(t)))});M.on(a.EVENT_HIDE_CHILD_LOADERS,function(r){o(r.target).find(a.SELECTOR_BOUND).trigger(a.EVENT_HIDE_LOADER)});const h="[data-reservation-mobile]",l=".modal";class Y{body;chooseShopModal;chooseCityModal;chooseTimeSlotModal;homeDeliveryGuestModal;homeDeliveryUserModal;addAddressUserModal;carPlateModal;unavailableItemsModal;cartOutOfStock;homeDeliveryModalUrl;lockerDeliveryModal;constructor(){this.body=o("body"),this.cartOutOfStock=p.init(),this.listen()}listen=()=>{this.body.on(S,this.reservationStoreChosen),this.body.on(C,this.reservationAddressChosen),this.body.on(E,this.reservationSlotChosen),this.body.on(k,this.reservationCityChosen),this.body.on(b,this.openChooseCityModal),this.body.on(y,this.reservationLockerChosen),this.body.on(T,this.addressAdded),this.body.on(R,this.openAddAddressModal),this.body.on(O,this.returnFromSlotSelect),this.body.on(u,this.getReservations),document.addEventListener(u,this.getReservations),this.body.on("click",l+" .js-tab-collect-link[href]",this.clickOpenCollectModal),this.body.on("click",l+" .js-tab-home-delivery-link[href]",this.openHomeDeliveryModal),this.body.on("click",l+" .js-tab-locker-delivery-link[href]",this.openLockerDeliveryModal),this.body.on("click",_,this.openHomeDeliveryModal),this.body.on("click",D,this.clickOpenCollectModal),this.body.on("click",w,this.onSlotReservationTriggerClick),this.body.on("click",A,this.openLockerDeliveryModal),o(s).on("contentloaded",()=>o(s+", "+h).trigger(a.EVENT_HIDE_CHILD_LOADERS))};returnFromSlotSelect=()=>{const e=this.body.find(l+" .js-tab-option-link.-active"),t=e.attr("href");t&&(e.hasClass("js-tab-home-delivery-link")&&this.openHomeDeliveryModal(),e.hasClass("js-tab-collect-link")&&this.generateCollectModal(t))};openHomeDeliveryModal=async e=>{if(e!==void 0&&e.preventDefault(),o(s).find("[data-user-is-guest]").length){this.homeDeliveryGuestModal!==void 0&&(this.homeDeliveryGuestModal.unhook(),await this.homeDeliveryGuestModal.close()),this.homeDeliveryGuestModal=new V(this.homeDeliveryModalUrl,"choose-shop-modal"),await this.homeDeliveryGuestModal.open(),o(s).trigger("contentloaded");return}this.homeDeliveryUserModal!==void 0&&this.homeDeliveryUserModal.unhook(),this.homeDeliveryUserModal=new P(this.homeDeliveryModalUrl,"choose-shop-modal"),await this.homeDeliveryUserModal.open(),o(s).trigger("contentloaded")};openChooseShopModal=e=>{this.chooseShopModal!==void 0&&(this.chooseShopModal.unhook(),this.chooseShopModal.close()),this.chooseShopModal=new g(e,"choose-shop-modal"),this.chooseShopModal.open()};onSlotReservationTriggerClick=e=>{e.preventDefault();const t=e.currentTarget.href;if(!t)return!1;this.openSlotReservation(t)};openSlotReservation=e=>{this.chooseTimeSlotModal!==void 0&&this.chooseTimeSlotModal.unhook(),this.chooseTimeSlotModal=new L(e,"select-date-modal"),this.chooseTimeSlotModal.open().then(()=>{o(s).trigger("contentloaded")}).catch(t=>{let i;try{i=JSON.parse(t.message)}catch{return}i?.errors?.address&&this.openHomeDeliveryModal().then(()=>{o(l).find(".validation-errors").empty().append(o("<p/>").text(i.errors.address[0])).addClass("show")})})};openCarPlateModal=e=>{this.carPlateModal!==void 0&&this.carPlateModal.unhook(),this.carPlateModal=new G(e,"car-plate-modal"),this.carPlateModal.open()};openUnavailableItems=e=>(this.unavailableItemsModal!==void 0&&(this.unavailableItemsModal.unhook(),this.unavailableItemsModal.close()),this.unavailableItemsModal=new $(e,"unavailable-items-modal"),this.unavailableItemsModal.open());reservationStoreChosen=(e,t)=>{this.chooseShopModal.close().then(()=>
13{if(t.modalType===d){this.openUnavailableItems(t.modalUrl).then(()=>{this.unavailableItemsModal.getModalBox().find("[data-unavailable-items-cancel]").on("click",this.unavailableItemsModal.close),this.unavailableItemsModal.getModalBox().find("[data-unavailable-items-confirm]").on("click",()=>{this.unavailableItemsModal.close().then(()=>{this.openSlotReservation(t.reservationNextUrl)})})});return}t.reservationNextUrl&&this.openSlotReservation(t.reservationNextUrl)}),this.updateReservationHtml(t)};reservationAddressChosen=(e,t)=>{this.homeDeliveryGuestModal!==void 0&&(this.homeDeliveryGuestModal.unhook(),this.homeDeliveryGuestModal.close().then(()=>{this.openSlotReservation(t.reserveNext)})),this.homeDeliveryUserModal!==void 0&&(this.homeDeliveryUserModal.unhook(),this.homeDeliveryUserModal.close().then(()=>{this.openSlotReservation(t.reserveNext)})),this.updateReservationHtml({reservationMobileHtml:t.reservationMobileHtml,reservationWizardHtml:t.reservationWizardHtml})};reservationSlotChosen=(e,t)=>{this.updateReservationHtml({reservationMobileHtml:t.reservationMobileHtml,reservationWizardHtml:t.reservationWizardHtml}),n.enableReload(),this.chooseTimeSlotModal.close().then(()=>{if(t.modalType===d){this.openUnavailableItems(t.modalUrl).then(this.bindUnavailableSlotActions);return}if(t.reservationNextUrl){this.openCarPlateModal(t.reservationNextUrl);return}n.reload()})};bindUnavailableSlotActions=()=>{const e=this.unavailableItemsModal.getModalBox();e.find("[data-unavailable-items-cancel]").on("click",this.unavailableItemsModal.close),e.find("[data-unavailable-items-confirm]").on("click",this.confirmUnavailableSlot)};confirmUnavailableSlot=e=>{this.unavailableItemsModal.hideGenericError(),N(o(e.currentTarget).attr("data-time-slot-id"),!0).then(this.unavailableItemsModal.close).catch(this.handleUnavailableSlotError)};handleUnavailableSlotError=e=>{this.unavailableItemsModal.displayGenericError({message:U(e)})};getReservations=()=>{const e="storefront_reservation",t=v.get(e);t&&this.updateReservationHtml(t.value),o.ajax({url:Storefront.routes.api.reservation_get,type:"get",headers:{Accept:"application/json"}}).fail(i=>console.error(i)).done(i=>{this.updateReservationHtml(i),v.set(e,i)})};updateReservationHtml=({reservationMobileHtml:e,reservationWizardHtml:t,homeDeliveryModalUrl:i})=>{t!==void 0&&this.updateWizardHtml(t),e!==void 0&&this.updateMobileHtml(e),i!==void 0&&(this.homeDeliveryModalUrl=i),this.refreshTimer()};refreshTimer=()=>{setTimeout(()=>{K.init().startTimer()},100)};updateWizardHtml=e=>{o(s).html(e),o(s).trigger("contentloaded")};updateMobileHtml=e=>{o(h).html(e),o(h).trigger("contentloaded")};openAddAddressModal=(e,t)=>{this.addAddressUserModal!==void 0&&this.addAddressUserModal.unhook(),this.addAddressUserModal=new W(t,"choose-shop-modal"),this.addAddressUserModal.open()};addressAdded=(e,t)=>{this.addAddressUserModal===void 0||t.next==null||(this.addAddressUserModal.unhook(),this.addAddressUserModal.close().then(()=>this.openHomeDeliveryModal()))};openChooseCityModal=(e,t)=>{this.chooseCityModal!==void 0&&this.chooseCityModal.unhook(),this.chooseCityModal=new I(t,"choose-city-modal"),this.chooseCityModal.open().then(()=>{o(s).trigger("contentloaded")}).catch(i=>{console.error(i)})};reservationCityChosen=(e,t)=>{setTimeout(()=>{this.openChooseShopModal(t.next)},550)};clickOpenCollectModal=e=>{e.preventDefault();const t=e.currentTarget.href;if(!t)return!1;this.generateCollectModal(t)};generateCollectModal=e=>{o.ajax({url:e,type:"get",headers:{Accept:"application/json"}}).fail(t=>console.error(t)).done(this.openCollectModal)};openCollectModal=e=>{if(e.skipChooseCity){this.openChooseShopModal(e.next);return}this.openChooseCityModal(null,e.next)};openLockerDeliveryModal=e=>{e.preventDefault();const t=e.currentTarget.href;this.lockerDeliveryModal!==void 0&&(this.lockerDeliveryModal.unhook(),this.lockerDeliveryModal.close()),this.lockerDeliveryModal=new B(t,"locker-delivery-modal"),this.lockerDeliveryModal.open().then(()=>{o(s).trigger("contentloaded")})};reservationLockerChosen=(e,t)=>{if(t.modalType!==d){this.updateReservationHtml({reservationMobileHtml:t.reservationMobileHtml,reservationWizardHtml:t.reservationWizardHtml}),this.lockerDeliveryModal.close();return}this.lockerDeliveryModal.close().then(()=>{this.openUnavailableItems(t.modalUrl).then(this.bindUnavailableLockerActions)})};bindUnavailableLockerActions=()=>{const e=this.unavailableItemsModal.getModalBox();e.find("[data-unavailable-items-cancel]").on("click",this.unavailableItemsModal.close),e.find("[data-unavailable-items-confirm]").on("click",this.confirmUnavailableLocker)};confirmUnavailableLocker=()=>{this.unavailableItemsModal.hideGenericError(),this.lockerDeliveryModal.confirmUnavailableItems().done(this.applyConfirmedLocker).fail(e=>{this.unavailableItemsModal.displayGenericError(e.responseJSON??{})})};applyConfirmedLocker=e=>{this.updateReservationHtml({reservationMobileHtml:e.reservationMobileHtml,reservationWizardHtml:e.reservationWizardHtml}),this.unavailableItemsModal.close()}}const q=new Y;export{p as C,K as R};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.