イベント のカレンダー

0イベント,

0イベント,

1イベント,

0イベント,

1イベント,

2イベント,

0イベント,

0イベント,

0イベント,

0イベント,

1イベント,

1イベント,

1イベント,

1イベント,

1イベント,

0イベント,

1イベント,

0イベント,

1イベント,

1イベント,

1イベント,

0イベント,

0イベント,

1イベント,

0イベント,

1イベント,

2イベント,

2イベント,

1イベント,

1イベント,

1イベント,

0イベント,

1イベント,

1イベント,

1イベント,

`,props)} var external_wp_i18n_=__webpack_require__("l3Sj");function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})),keys.push.apply(keys,symbols)}return keys} function _objectSpread(target){for(var i=1;i{if(timerElement.dataset.token&&timerElement.dataset.postId&&timerElement.dataset.redirectUrl){token=timerElement.dataset.token;postId=timerElement.dataset.postId;redirectUrl=timerElement.dataset.redirectUrl;return!0} return!1});if(!(token&&postId&&redirectUrl)){return null} return{token,postId,redirectUrl}} function setTimerTimeLeft(timerElement,minutes,seconds){timerElement.classList.remove(hiddenClassName);const minutesElement=timerElement.querySelector('.tec-tickets-seating__time-minutes');const secondsElement=timerElement.querySelector('.tec-tickets-seating__time-seconds');if(!minutesElement||!secondsElement){return} minutesElement.innerText=minutes;secondsElement.innerText=String(seconds).padStart(2,'0')} function fetchInterruptModalData(){return _fetchInterruptModalData.apply(this,arguments)} function _fetchInterruptModalData(){_fetchInterruptModalData=asyncToGenerator_default()(function*(){const{postId,token}=findTimerData();const requestUrl=new URL(ajaxUrl);requestUrl.searchParams.set('_ajaxNonce',ajaxNonce);requestUrl.searchParams.set('action',ACTION_INTERRUPT_GET_DATA);requestUrl.searchParams.set('postId',postId);requestUrl.searchParams.set('token',token);const response=yield fetch(requestUrl.toString(),{method:'GET'});const defaultData={title:Object(external_wp_i18n_._x)('Time limit expired','Seat selection expired timer title','event-tickets'),content:Object(external_wp_i18n_._x)('Your seat selections are no longer reserved, but tickets are still available.','Seat selection expired timer content','event-tickets'),buttonLabel:Object(external_wp_i18n_._x)('Find Seats','Seat selection expired timer button label','event-tickets'),redirectUrl:window.location.href};if(!response.ok){console.error('Failed to fetch interrupt modal data');return defaultData} const responseJson=yield response.json();if(!(responseJson.success&&responseJson.data)){console.error('Failed to fetch interrupt modal data');return defaultData} return{title:responseJson.data.title||defaultData.title,content:responseJson.data.content||defaultData.content,buttonLabel:responseJson.data.buttonLabel||defaultData.buttonLabel,redirectUrl:responseJson.data.redirectUrl||defaultData.redirectUrl}});return _fetchInterruptModalData.apply(this,arguments)} function getInterruptDialogElement(){return _getInterruptDialogElement.apply(this,arguments)} function _getInterruptDialogElement(){_getInterruptDialogElement=asyncToGenerator_default()(function*(){var _getTimerElements;const firstTimerElement=(_getTimerElements=getTimerElements())===null||_getTimerElements===void 0?void 0:_getTimerElements[0];if(!firstTimerElement){console.warn('No timer element found');return null} const dialogDataJSAttribute='dialog-content-tec-tickets-seating-timer-interrupt';const{title,content,buttonLabel,redirectUrl}=yield fetchInterruptModalData();firstTimerElement.dataset.content=dialogDataJSAttribute;let appendTarget='.tec-tickets-seating__timer';const dialogParent=firstTimerElement.closest('.tribe-dialog');if(dialogParent){appendTarget='.tribe-tickets__tickets-form, .tec-tickets-seating__tickets-block'} if(!interruptDialogElement){var _targetDom$querySelec;interruptDialogElement=InterruptDialogComponent({dataJs:dialogDataJSAttribute,title,content,buttonLabel,redirectUrl});(_targetDom$querySelec=targetDom.querySelector(appendTarget))===null||_targetDom$querySelec===void 0?void 0:_targetDom$querySelec.appendChild(interruptDialogElement)} return new A11yDialog({trigger:'.tec-tickets-seating__timer',appendTarget,wrapperClasses:'tribe-dialog',overlayClasses:'tribe-dialog__overlay tribe-modal__overlay',contentClasses:'tribe-dialog__wrapper tribe-tickets-seating__interrupt-wrapper',overlayClickCloses:!1})});return _getInterruptDialogElement.apply(this,arguments)} function interrupt(){return _interrupt.apply(this,arguments)} function _interrupt(){_interrupt=asyncToGenerator_default()(function*(){if(!isInterruptable()){return} setIsInterruptable(!0);getTimerElements().forEach(timerElement=>{setTimerTimeLeft(timerElement,0,0)});setIsExpired(!0);clearTimeout(countdownTimeoutId);countdownTimeoutId=null;clearTimeout(healthCheckTimeoutId);healthCheckTimeoutId=null;const interruptDialog=yield getInterruptDialogElement();Object(external_wp_hooks_.doAction)('tec.tickets.seating.timer_interrupt');if(interruptDialog){interruptDialog.show();interruptDialog.shown=!1} setIsInterruptable(!1)});return _interrupt.apply(this,arguments)} function beaconInterrupt(){if(!isInterruptable()){return} const{postId,token}=findTimerData();const requestUrl=new URL(ajaxUrl);requestUrl.searchParams.set('_ajaxNonce',ajaxNonce);requestUrl.searchParams.set('action',ACTION_INTERRUPT_GET_DATA);requestUrl.searchParams.set('postId',postId);requestUrl.searchParams.set('token',token);window.navigator.sendBeacon(requestUrl.toString())} function startCountdownLoop(secondsLeft){if(!isInterruptable()){return} if(secondsLeft<=0){interrupt();return} setIsStarted(!0);countdownTimeoutId=setTimeout(()=>{secondsLeft-=1;getTimerElements().forEach(timerElement=>{setTimerTimeLeft(timerElement,Math.floor(secondsLeft/60),secondsLeft%60)});if(!isExpired()){startCountdownLoop(secondsLeft)}},1000)} function startHealthCheckLoop(){if(isExpired()||!isInterruptable()){return} healthCheckTimeoutId=setTimeout(asyncToGenerator_default()(function*(){yield syncWithBackend();startHealthCheckLoop()}),3*1000)} function syncWithBackend(){return _syncWithBackend.apply(this,arguments)} function _syncWithBackend(){_syncWithBackend=asyncToGenerator_default()(function*(){if(isExpired()||getTimerElements().length===0||!isInterruptable()){return} const secondsLeft=yield requestToBackend(ACTION_SYNC);if(secondsLeft<=0){interrupt();return} if(countdownTimeoutId){clearTimeout(countdownTimeoutId);countdownTimeoutId=null} startCountdownLoop(secondsLeft);if(!healthCheckTimeoutId){startHealthCheckLoop()}});return _syncWithBackend.apply(this,arguments)} function requestToBackend(_x2){return _requestToBackend.apply(this,arguments)} function _requestToBackend(){_requestToBackend=asyncToGenerator_default()(function*(action){const timerData=findTimerData();if(timerData===null){return!1} if([ACTION_START,ACTION_SYNC].indexOf(action)===-1){return!1} const requestUrl=new URL(ajaxUrl);requestUrl.searchParams.set('_ajaxNonce',ajaxNonce);requestUrl.searchParams.set('action',action);requestUrl.searchParams.set('token',timerData.token);requestUrl.searchParams.set('postId',timerData.postId);const response=yield fetch(requestUrl.toString(),{method:'POST'});if(!response.ok){return!1} const responseJson=yield response.json();if(!(responseJson.success&&responseJson.data.secondsLeft&&responseJson.data.timestamp)){console.error('Failed to communicate with the backend');return!1} const startTimerResponse=responseJson.data;return startTimerResponse.secondsLeft-Math.max(0,Math.floor(startTimerResponse.timestamp-Date.now()/1000))});return _requestToBackend.apply(this,arguments)} function start(){return _start.apply(this,arguments)} function _start(){_start=asyncToGenerator_default()(function*(){if(setIsStarted()||getTimerElements().length===0){return} const secondsLeft=yield requestToBackend(ACTION_START);const{postId,token}=findTimerData();if(!(secondsLeft&&postId&&token)){interrupt();return} const minutes=Math.floor(secondsLeft/60);const seconds=secondsLeft%60;getTimerElements().forEach(timerElement=>{setTimerTimeLeft(timerElement,minutes,seconds)});setIsStarted(!0);startCountdownLoop(secondsLeft);startHealthCheckLoop()});return _start.apply(this,arguments)} function session_reset(){if(countdownTimeoutId){clearTimeout(countdownTimeoutId)} if(healthCheckTimeoutId){clearTimeout(healthCheckTimeoutId)} if(resumeTimeoutId){clearTimeout(resumeTimeoutId)} started=!1;expired=!1;healthCheckTimeoutId=null;countdownTimeoutId=null;resumeTimeoutId=null;interruptable=!0;stopWatchingCheckoutControls()} function pause(){setIsInterruptable(!1);if(healthCheckTimeoutId){clearTimeout(healthCheckTimeoutId);healthCheckTimeoutId=null} if(countdownTimeoutId){clearTimeout(countdownTimeoutId);countdownTimeoutId=null} resumeTimeoutId=setTimeout(resume,30000)} function resume(){return _resume.apply(this,arguments)} function _resume(){_resume=asyncToGenerator_default()(function*(){if(resumeTimeoutId){clearTimeout(resumeTimeoutId);resumeTimeoutId=null} setIsInterruptable(!0);yield syncWithBackend()});return _resume.apply(this,arguments)} function setTargetDom(targetDocument){targetDom=targetDocument||document} function syncOnLoad(){return _syncOnLoad.apply(this,arguments)} function _syncOnLoad(){_syncOnLoad=asyncToGenerator_default()(function*(){const syncTimerElements=Array.from(getTimerElements()).filter(syncTimerElement=>{return'syncOnLoad' in syncTimerElement.dataset});if(syncTimerElements.length===0){return} setIsInterruptable(!0);window.addEventListener('beforeunload',beaconInterrupt);yield syncWithBackend()});return _syncOnLoad.apply(this,arguments)} function watchCheckoutControls(){const filteredCheckoutControls=Object(external_wp_hooks_.applyFilters)('tec.tickets.seating.frontend.session.checkoutControls',checkoutControlsSelectors);const checkoutControlElements=targetDom.querySelectorAll(filteredCheckoutControls);checkoutControlElements.forEach(checkoutControlElement=>{watchedCheckoutControls.push(checkoutControlElement);checkoutControlElement.addEventListener('click',pause);checkoutControlElement.addEventListener('submit',pause)})} function stopWatchingCheckoutControls(){watchedCheckoutControls.forEach(checkoutControlElement=>{checkoutControlElement.removeEventListener('click',pause);checkoutControlElement.removeEventListener('submit',pause)});watchedCheckoutControls=[]} function getWatchedCheckoutControls(){return watchedCheckoutControls} function setHealthcheckLoopId(id){healthCheckTimeoutId=id;return healthCheckTimeoutId} function getHealthcheckTimeoutId(){return healthCheckTimeoutId} function getCountdownTimeoutId(){return countdownTimeoutId} function getResumeTimeoutId(){return resumeTimeoutId} Object(external_tec_tickets_seating_utils_.onReady)(()=>syncOnLoad());Object(external_tec_tickets_seating_utils_.onReady)(()=>watchCheckoutControls());window.tec=window.tec||{};window.tec.tickets=window.tec.tickets||{};window.tec.tickets.seating=window.tec.tickets.seating||{};window.tec.tickets.seating.frontend=window.tec.tickets.seating.frontend||{};window.tec.tickets.seating.frontend.session=_objectSpread(_objectSpread({},window.tec.tickets.seating.frontend.session||{}),{},{start,reset:session_reset,syncOnLoad,interrupt,setIsInterruptable})}),"MsaN":(function(module,exports){module.exports=tec.tickets.seating.utils}),"g56x":(function(module,exports){module.exports=wp.hooks}),"l3Sj":(function(module,exports){module.exports=wp.i18n}),"lo4d":(function(module,exports,__webpack_require__){})})