| Current File : /home/digitaw/www/wp-content/plugins/event-tickets/build/js/v2/rsvp-ari.js |
tribe.tickets=tribe.tickets||{},tribe.tickets.rsvp=tribe.tickets.rsvp||{},tribe.tickets.rsvp.ari={},function(t,e){const s=t(document);e.selectors={container:".tribe-tickets__rsvp-wrapper",rsvpForm:'form[name~="tribe-tickets-rsvp-form-ari"]',rsvpFormNameInput:".tribe-tickets__rsvp-form-field-name",rsvpFormEmailInput:".tribe-tickets__rsvp-form-field-email",hiddenElement:".tribe-common-a11y-hidden",addGuestButton:".tribe-tickets__rsvp-ar-quantity-input-number--plus",removeGuestButton:".tribe-tickets__rsvp-ar-quantity-input-number--minus",guestList:".tribe-tickets__rsvp-ar-guest-list",guestListItem:".tribe-tickets__rsvp-ar-guest-list-item",guestListItemTemplate:".tribe-tickets__rsvp-ar-guest-list-item-template",guestListItemButton:".tribe-tickets__rsvp-ar-guest-list-item-button",guestListItemButtonInactive:".tribe-tickets__rsvp-ar-guest-list-item-button--inactive",guestListItemButtonIcon:".tribe-tickets__rsvp-ar-guest-icon",guestFormWrapper:".tribe-tickets__rsvp-ar-form",guestFormFields:".tribe-tickets__rsvp-ar-form-guest",guestFormFieldsError:".tribe-tickets__form-message--error",guestFormFieldsTitle:".tribe-tickets__rsvp-ar-form-title",guestFormFieldsTemplate:".tribe-tickets__rsvp-ar-form-guest-template",nextGuestButton:".tribe-tickets__rsvp-form-button--next",submitButton:".tribe-tickets__rsvp-form-button--submit"},e.goToGuest=function(t,s){const n=t.find(e.selectors.guestFormWrapper).find(e.selectors.guestFormFields+'[data-guest-number="'+s+'"]'),i=t.find(e.selectors.guestListItemButton);t.find(e.selectors.guestFormFields).addClass(e.selectors.hiddenElement.className()),t.find(e.selectors.guestFormFields).prop("hidden",!0),e.showElement(n),n.removeAttr("hidden"),i.addClass(e.selectors.guestListItemButtonInactive.className()),i.attr("aria-selected","false");const r=t.find(e.selectors.guestListItemButton+'[data-guest-number="'+s+'"]');r.removeClass(e.selectors.guestListItemButtonInactive.className()),r.attr("aria-selected","true")},e.hasAriRequiredFields=function(t){const s=t.find(e.selectors.rsvpForm),n=s.find(tribe.tickets.meta.selectors.formFieldRequired),i=s.find(e.selectors.rsvpFormNameInput),r=s.find(e.selectors.rsvpFormEmailInput);return!!(0<n.length-(i.length+r.length))},e.showElement=function(t){t.removeClass(e.selectors.hiddenElement.className())},e.hideElement=function(t){t.addClass(e.selectors.hiddenElement.className())},e.isGuestValid=function(s){const n=s.find(tribe.tickets.meta.selectors.formFieldInput);let i=!0;n.each((function(){const e=t(this);tribe.tickets.meta.validateField(e[0])||(i=!1)}));const r=s.find(e.selectors.guestFormFieldsError);return i?e.hideElement(r):e.showElement(r),i},e.canGoToGuest=function(t,s){const n=e.getCurrentGuest(t),i=e.hasAriRequiredFields(t);if(s<n)return!0;if(i&&1<s-n)return!1;const r=t.find(e.selectors.guestFormFields+'[data-guest-number="'+n+'"]');return e.isGuestValid(r)},e.setNextAndSubmit=function(s){const n=s.find(e.selectors.guestFormFields),i=n.length;e.bindNextButton(s),n.each((function(s,n){const r=t(n).find(e.selectors.nextGuestButton),o=t(n).find(e.selectors.submitButton);s+1===i?(e.showElement(o),e.hideElement(r)):(e.showElement(r),e.hideElement(o))}))},e.bindGoToGuest=function(s,n,i){let r=i||1;n.on("click",(function(){const n=t(this).data("guest-number");void 0!==n&&(r=n),e.canGoToGuest(s,r)&&e.goToGuest(s,r)}))},e.addGuest=function(t){const s=t.find(e.selectors.guestList),n=t.find(e.selectors.guestFormWrapper),i=e.getTotalGuests(t),r=t.data("rsvp-id"),o=window.wp.template(e.selectors.guestFormFieldsTemplate.className()+"-"+r),u=window.wp.template(e.selectors.guestListItemTemplate.className()+"-"+r),c={attendee_id:i};s.append(u(c)),n.append(o(c));const a=s.children(e.selectors.guestListItem).last().find(e.selectors.guestListItemButton);e.setNextAndSubmit(t),e.bindGoToGuest(t,a),t.find(tribe.tickets.rsvp.block.selectors.cancelButton).off(),tribe.tickets.rsvp.block.bindCancel(t)},e.handleQuantityChangeValue=function(s){s.preventDefault();const n=t(s.target),i=s.data.container,r=n.attr("max"),o=n.attr("min");let u=parseInt(n.val(),10);u=isNaN(u)?0:u,r<u&&(u=r),u<o&&(u=o),n.val(u);const c=u-e.getTotalGuests(i),a=c>0;for(let t=0;t<Math.abs(c);t++)a?e.addGuest(i):e.removeGuest(i)},e.handleSubmission=function(s){s.preventDefault();const n=t(this),i=n.closest(e.selectors.container),r=n.data("rsvp-id"),o=n.serializeArray(),u={action:"tribe_tickets_rsvp_handle",ticket_id:r,step:"success",nonce:TribeRsvp.nonces.rsvpHandle};t(o).each((function(t,e){u[e.name]=e.value})),tribe.tickets.rsvp.manager.request(u,i)},e.bindForm=function(s){s.find(e.selectors.rsvpForm).each((function(s,n){t(n).on("submit",e.handleSubmission)}))},e.removeGuest=function(t){const s=e.getTotalGuests(t),n=e.getCurrentGuest(t);if(1===s)return;s===n&&e.goToGuest(t,n-1);const i=t.find(e.selectors.guestFormFields);t.find(e.selectors.guestListItem).last().remove(),i.last().remove();const r=t.find(e.selectors.guestFormFields).last(),o=r.find(e.selectors.nextGuestButton),u=r.find(e.selectors.submitButton);e.showElement(u),e.hideElement(o)},e.getTotalGuests=function(t){return t.find(e.selectors.guestFormFields).length},e.getCurrentGuest=function(t){return t.find(e.selectors.guestFormFields+":not("+e.selectors.hiddenElement+")").data("guest-number")},e.handleQuantityChange=function(s){s.preventDefault();const n=t(this).parent().find('input[type="number"]'),i=t(this).hasClass(e.selectors.addGuestButton.className()),r=n.attr("step")?Number(n.attr("step")):1,o=Number(n.val());if(i){const t=n.attr("max")?Number(n.attr("max")):-1;if("function"==typeof n[0].stepUp)try{if(t<o+r)return;n[0].stepUp()}catch(e){n[0].value=-1===t||t>=o+r?o+r:t}else n[0].value=-1===t||t>=o+r?o+r:t}else{const t=n.attr("min")?Number(n.attr("min")):0;if("function"==typeof n[0].stepDown)try{n[0].stepDown()}catch(e){n[0].value=t<=o-r?o-r:t}else n[0].value=t<=o-r?o-r:t}o!==n[0].value&&n.trigger("input")},e.bindGuestAddRemove=function(t){const s=t.find(e.selectors.addGuestButton),n=t.find(e.selectors.removeGuestButton),i=t.find(e.selectors.guestListItemButton),r=t.find('.tribe-tickets__rsvp-ar-quantity-input input[type="number"]');e.bindGoToGuest(t,i),s.on("click",e.handleQuantityChange),n.on("click",e.handleQuantityChange),r.on("input",{container:t},e.handleQuantityChangeValue)},e.bindNextButton=function(t){const s=t.find(e.selectors.guestFormFields).last(),n=s.find(e.selectors.nextGuestButton),i=s.data("guest-number");e.bindGoToGuest(t,n,i+1)},e.unbindEvents=function(t,s,n){const i=t.data.container,r=i.find(e.selectors.addGuestButton),o=i.find(e.selectors.removeGuestButton),u=i.find(e.selectors.guestListItemButton);r.off(),o.off(),u.off()},e.bindEvents=function(t){e.bindGuestAddRemove(t),e.bindForm(t),e.bindNextButton(t),t.on("beforeAjaxSuccess.tribeTicketsRsvp",{container:t},e.unbindEvents)},e.init=function(t,s,n){e.bindEvents(n)},e.ready=function(){s.on("afterSetup.tribeTicketsRsvp",tribe.tickets.rsvp.manager.selectors.container,e.init)},t(e.ready)}(jQuery,tribe.tickets.rsvp.ari),window.tec=window.tec||{},window.tec.tickets=window.tec.tickets||{},window.tec.tickets.v2=window.tec.tickets.v2||{},window.tec.tickets.v2.rsvpAri={};