PageSourceSearch

https://championdogproducts.com/cdn/shop/t/9/assets/tipo.booking.bundle.product.92bc520659807889617d.js

js championdogproducts.com collected 2026-09-24 14:40:12 UTC 37,496 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunktipoBooking=self.webpackChunktipoBooking||[]).push([[18],{61:(t,e,o)=>{o.d(e,{Z:()=>i});var n=o(645),s=o.n(n)()((function(t){return t[1]}));s.push([t.id,'.ss-main{position:relative;display:inline-block;user-select:none;color:#666;width:100%}.ss-main .ss-single-selected{display:flex;cursor:pointer;width:100%;height:30px;padding:6px;border:1px solid #dcdee2;border-radius:4px;background-color:#fff;outline:0;box-sizing:border-box;transition:background-color .2s}.ss-main .ss-single-selected.ss-disabled{background-color:#dcdee2;cursor:not-allowed}.ss-main .ss-single-selected.ss-open-above{border-top-left-radius:0;border-top-right-radius:0}.ss-main .ss-single-selected.ss-open-below{border-bottom-left-radius:0;border-bottom-right-radius:0}.ss-main .ss-single-selected .placeholder{flex:1 1 100%;text-align:left;width:calc(100% - 30px);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ss-main .ss-single-selected .placeholder,.ss-main .ss-single-selected .placeholder *{display:flex;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-main .ss-single-selected .placeholder *{width:auto}.ss-main .ss-single-selected .placeholder .ss-disabled{color:#dedede}.ss-main .ss-single-selected .ss-deselect{display:flex;align-items:center;justify-content:flex-end;flex:0 1 auto;margin:0 6px;font-weight:700}.ss-main .ss-single-selected .ss-deselect.ss-hide{display:none}.ss-main .ss-single-selected .ss-arrow{display:flex;align-items:center;justify-content:flex-end;flex:0 1 auto;margin:0 6px}.ss-main .ss-single-selected .ss-arrow span{border:solid #666;border-width:0 2px 2px 0;display:inline-block;padding:3px;transition:transform .2s,margin .2s}.ss-main .ss-single-selected .ss-arrow span.arrow-up{transform:rotate(-135deg);margin:3px 0 0}.ss-main .ss-single-selected .ss-arrow span.arrow-down{transform:rotate(45deg);margin:-3px 0 0}.ss-main .ss-multi-selected{display:flex;flex-direction:row;cursor:pointer;min-height:30px;width:100%;padding:0 0 0 3px;border:1px solid #dcdee2;border-radius:4px;background-color:#fff;outline:0;box-sizing:border-box;transition:background-color .2s}.ss-main .ss-multi-selected.ss-disabled{background-color:#dcdee2;cursor:not-allowed}.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-disabled{color:#666}.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-value .ss-value-delete{cursor:not-allowed}.ss-main .ss-multi-selected.ss-open-above{border-top-left-radius:0;border-top-right-radius:0}.ss-main .ss-multi-selected.ss-open-below{border-bottom-left-radius:0;border-bottom-right-radius:0}.ss-main .ss-multi-selected .ss-values{display:flex;flex-wrap:wrap;justify-content:flex-start;flex:1 1 100%;width:calc(100% - 30px)}.ss-main .ss-multi-selected .ss-values .ss-disabled{display:flex;padding:4px 5px;margin:2px 0;line-height:1em;align-items:center;width:100%;color:#dedede;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scaleOut{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:0}}.ss-main .ss-multi-selected .ss-values .ss-value{display:flex;user-select:none;align-items:center;font-size:12px;padding:3px 5px;margin:3px 5px 3px 0;color:#fff;background-color:#5897fb;border-radius:4px;animation-name:scaleIn;animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:both}.ss-main .ss-multi-selected .ss-values .ss-value.ss-out{animation-name:scaleOut;animation-duration:.2s;animation-timing-function:ease-out}.ss-main .ss-multi-selected .ss-values .ss-value .ss-value-delete{margin:0 0 0 5px;cursor:pointer}.ss-main .ss-multi-selected .ss-add{display:flex;flex:0 1 3px;margin:9px 12px 0 5px}.ss-main .ss-multi-selected .ss-add .ss-plus{display:flex;justify-content:center;align-items:center;background:#666;position:relative;height:10px;width:2px;transition:transform .2s}.ss-main .ss-multi-selected .ss-add .ss-plus:after{background:#666;content:"";position:absolute;height:2px;width:10px;left:-4px;top:4px}.ss-main .ss-multi-selected .ss-add .ss-plus.ss-cross{transform:rotate(45deg)}.ss-main .ss-content{position:absolute;width:100%;margin:-1px 0 0;box-sizing:border-box;border:1px solid #dcdee2;z-index:1010;background-color:#fff;transform-origin:center top;transition:transform .2s,opacity .2s;opacity:0;transform:scaleY(0)}.ss-main .ss-content.ss-open{display:block;opacity:1;transform:scaleY(1)}.ss-main .ss-content .ss-search{display:flex;flex-direction:row;padding:8px 8px 6px}.ss-main .ss-content .ss-search.ss-hide,.ss-main .ss-content .ss-search.ss-hide input{height:0;opacity:0;padding:0;margin:0}.ss-main .ss-content .ss-search input{display:inline-flex;font-size:inherit;line-height:inherit;flex:1 1 auto;width:100%;min-width:0;height:30px;padding:6px 8px;margin:0;border:1px solid #dcdee2;border-radius:4px;background-color:#fff;outline:0;text-align:left;box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-appearance:textfield}.ss-main .ss-content .ss-search input::placeholder{color:#8a8a8a;vertical-align:middle}.ss-main .ss-content .ss-search input:focus{box-shadow:0 0 5px #5897fb}.ss-main .ss-content .ss-search .ss-addable{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;font-size:22px;font-weight:700;flex:0 0 30px;height:30px;margin:0 0 0 8px;border:1px solid #dcdee2;border-radius:4px;box-sizing:border-box}.ss-main .ss-content .ss-addable{padding-top:0}.ss-main .ss-content .ss-list{max-height:200px;overflow-x:hidden;overflow-y:auto;text-align:left}.ss-main .ss-content .ss-list .ss-optgroup .ss-optgroup-label{padding:6px 10px;font-weight:700}.ss-main .ss-content .ss-list .ss-optgroup .ss-option{padding:6px 6px 6px 25px}.ss-main .ss-content .ss-list .ss-optgroup-label-selectable{cursor:pointer}.ss-main .ss-content .ss-list .ss-optgroup-label-selectable:hover{color:#fff;background-color:#5897fb}.ss-main .ss-content .ss-list .ss-option{padding:6px 10px;cursor:pointer;user-select:none}.ss-main .ss-content .ss-list .ss-option *{display:inline-block}.ss-main .ss-content .ss-list .ss-option.ss-highlighted,.ss-main .ss-content .ss-list .ss-option:hover{color:#fff;background-color:#5897fb}.ss-main .ss-content .ss-list .ss-option.ss-disabled{cursor:not-allowed;color:#dedede;background-color:#fff}.ss-main .ss-content .ss-list .ss-option:not(.ss-disabled).ss-option-selected{color:#666;background-color:rgba(88,151,251,.1)}.ss-main .ss-content .ss-list .ss-option.ss-hide{display:none}.ss-main .ss-content .ss-list .ss-option .ss-search-highlight{background-color:#fffb8c}.ss-main .ss-single-selected .ss-arrow span{border-color:#6370a7}.ss-main .ss-content.ss-open{border-radius:4px;overflow:hidden}.ss-main .ss-content .ss-list .ss-option{height:36px;font-size:14px;color:#6370a7;line-height:36px;padding:0 23px;background:#fff;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ss-main .ss-content .ss-list .ss-option:hover{background:#f9fafd;color:#6370a7}.ss-main .ss-content .ss-list{max-height:110px}.ss-main .ss-content .ss-search{display:none}.ss-main .ss-single-selected .placeholder{display:block}.ss-main .ss-content .ss-list::-webkit-scrollbar-track{background:none}.ss-main .ss-content .ss-list::-webkit-scrollbar-thumb{background:#d0d5e8;border-radius:4px}.ss-main .ss-content .ss-list::-webkit-scrollbar-thumb:hover{background:#c1c8e2}.tpb-booking-form{display:flex;align-items:center;justify-content:center;max-width:840px;position:relative;background:#fff;text-align:left;margin:0 auto;width:100%}@media only screen and (max-width: 768px){.tpb-booking-form{margin:20px 55px}}@media only screen and (max-width: 640px)and (orientation: portrait){.tpb-booking-form{margin:20px}}.tpb-booking-form *{box-sizing:border-box;color:inherit}.tpb-booking-form .tpb-box-wrapper{width:100%;height:100%;border:1px solid #e2e6ec;border-radius:10px;-moz-box-shadow:0 10px 50px rgba(37,49,98,.15);-webkit-box-shadow:0 10px 50px rgba(37,49,98,.15);box-shadow:0 10px 50px rgba(37,49,98,.15)}.tpb-booking-form .tpb-box{width:100%;background-color:#fff;overflow:hidden;border-radius:10px}.tpb-booking-form .tpb-box h2{color:#323a45;font-size:27px;line-height:60px;font-style:normal;font-weight:400;letter-spacing:0px;text-transform:none;text-align:center}.tpb-booking-form .tpb-box .tpb-form{display:block}.tpb-booking-form .tpb-box .tpb-form-control{color:#323a45;margin-bottom:22px;display:none}.tpb-booking-form .tpb-box .tpb-form-control.visible{display:block;width:100%;padding:0}.tpb-booking-form .tpb-box .tpb-form-control .tpb-form-control-option{dis
1play:none}.tpb-booking-form .tpb-box .tpb-form-control label{float:none;display:inline-block;text-align:left;max-width:100%;margin:0 0 8px;font-weight:300;padding:0;font-size:14px;line-height:1}.tpb-booking-form .tpb-box .tpb-form-control label.inline{display:flex;align-items:center;justify-content:space-between}.tpb-booking-form .tpb-box .tpb-form-control #tpb-message-bring_qty{font-size:14px;margin:10px 0 0 10px;font-weight:300}.tpb-booking-form .tpb-box .tpb-form-control .ss-single-selected{font-family:"Roboto",sans-serif;font-size:14px;font-weight:400;line-height:1;width:100%;height:44px;background-color:#f8f9fd;background-image:none;border-radius:4px;border:none;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;padding:0 20px 0 17px;margin:0;-webkit-appearance:none;-webkit-transition:border-color .2s cubic-bezier(0.645, 0.045, 0.355, 1);transition:border-color .2s cubic-bezier(0.645, 0.045, 0.355, 1);box-shadow:none;line-height:44px}.tpb-booking-form .tpb-box .tpb-form-control .ss-single-selected .placeholder{background:none}.tpb-booking-form .tpb-box .tpb-form-control .bringQty-input,.tpb-booking-form .tpb-box .tpb-form-control #tpb-productTitle-input{display:block;width:100%;height:44px;border:none;background:#f8f9fd;padding:0 20px 0 18px}.tpb-booking-form .tpb-box .tpb-form-control .bringQty-input:focus{outline:none}.tpb-booking-form .tpb-box .tpb-form-control .switch{position:relative;display:inline-block;width:40px;height:22px;margin:0}.tpb-booking-form .tpb-box .tpb-form-control .switch input{opacity:0;width:0;height:0}.tpb-booking-form .tpb-box .tpb-form-control .switch input:checked+.tpb-slider{background-color:#2196f3}.tpb-booking-form .tpb-box .tpb-form-control .switch input:focus+.tpb-slider{box-shadow:0 0 1px #2196f3}.tpb-booking-form .tpb-box .tpb-form-control .switch input:checked+.tpb-slider:before{-webkit-transform:translateX(18px);-ms-transform:translateX(18px);transform:translateX(18px)}.tpb-booking-form .tpb-box .tpb-form-control .switch .tpb-slider{position:absolute !important;cursor:pointer;top:0;left:0;right:0;bottom:0;padding:0 0 23px 0 !important;background-color:#ccc !important;-webkit-transition:.4s !important;transition:.4s}.tpb-booking-form .tpb-box .tpb-form-control .switch .tpb-slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:2px;background-color:#fff !important;-webkit-transition:.4s;transition:.4s}.tpb-booking-form .tpb-box .tpb-form-control .switch .tpb-slider.round{border-radius:22px}.tpb-booking-form .tpb-box .tpb-form-control .switch .tpb-slider.round:before{border-radius:50%}.tpb-booking-form .tpb-box .content{padding:0;width:300%;transition:all .5s}.tpb-booking-form .tpb-box .content ul li:before{content:unset}.tpb-booking-form .tpb-box .content .step1{width:33.3333333%;float:left;transition:all .5s;background-color:#fff;padding:65px 40px 65px 30px;background-repeat:no-repeat;background-size:cover;background-position:center}@media only screen and (max-width: 640px)and (orientation: portrait){.tpb-booking-form .tpb-box .content .step1{padding:25px}}.tpb-booking-form .tpb-box .content .step1 .inner-step{width:50%;margin:0 auto;transition:all .5s;float:right}@media only screen and (max-width: 640px)and (orientation: portrait){.tpb-booking-form .tpb-box .content .step1 .inner-step{width:100%}}.tpb-booking-form .tpb-box .content .step1 .inner-step h5{font-size:24px;font-weight:400}.tpb-booking-form .tpb-box .content[data-step="1"] .step2{height:0}.tpb-booking-form .tpb-box .content[data-step="1"] .step3{height:0}.tpb-booking-form .copyright{position:absolute;bottom:calc(0% + 5px);right:15px;font-size:13px;z-index:9999}.tpb-booking-form .copyright a{border:none;color:#000;font-family:sans-serif}.tpb-booking-form .copyright .company{font-weight:600}.tpb-booking-form .booking-note{word-break:break-word}.tpb-message_not-available{display:none;margin-top:10px;font-weight:300;background:#faebd7;padding:2px 5px;font-size:13px}.tpb-message_not-available .dismiss{display:flex;align-items:center}.tpb-message_not-available .dismiss svg{width:14px;height:14px;cursor:pointer}.tpb-box .action{text-align:center;margin-bottom:15px}.tpb-box .action.fullwidth{padding:15px}@media only screen and (max-width: 640px)and (orientation: portrait){.tpb-box .action{padding:15px}}.tpb-box .action button[disabled]{cursor:no-drop !important;opacity:.6}.tpb-box .action .continue-button{width:100%;border:none;white-space:nowrap;cursor:pointer;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;-webkit-transition:.1s;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px;color:#fff;margin:0 auto;line-height:initial}.tpb-box .action .back-button{background:#f8f9fd;padding:12px 37px;border:1px solid #e7eaf4;border-radius:4px;margin-bottom:30px;line-height:initial}.tpb-box .action .back-button.c2{display:none}@media only screen and (max-width: 640px)and (orientation: portrait){.tpb-box .action .back-button{width:100%;margin-bottom:15px}.tpb-box .action .back-button.c2{display:block}}.tbp-hidden{display:none !important}.tpb-disabled{opacity:.5;pointer-events:none}.x480.tpb-booking-form{margin:0px;width:100%;padding:0}.x480.tpb-booking-form .content .step1{padding:25px;background-color:#fff}.x480.tpb-booking-form .content .step1 .inner-step{width:100%}.x480 .action .back-button{width:100%;margin-bottom:15px}.x480 .action .confirm-button{width:100%;margin-bottom:0}',""]);const i=s},225:(t,e,o)=>{o.d(e,{BE:()=>n,lb:()=>s,V$:()=>i,Ds:()=>a,wY:()=>l});const n=(t,e)=>{t.parentNode.insertBefore(e,t.nextSibling)},s=function(t,e){"string"==typeof t&&(t=t.replace(".",""));var o="",n=/\{\{\s*(\w+)\s*\}\}/,s=e||Tipo&&Tipo.Booking&&Tipo.Booking.money_format||"${{amount}}";function i(t,e){return void 0===t?e:t}function a(t,e,o,n){if(e=i(e,2),o=i(o,","),n=i(n,"."),isNaN(t)||null==t)return 0;var s=(t=(t/100).toFixed(e)).split(".");
1return s[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+o)+(s[1]?n+s[1]:"")}switch(s.match(n)[1]){case"amount":o=a(t,2);break;case"amount_no_decimals":o=a(t,0);break;case"amount_with_comma_separator":o=a(t,2,".",",");break;case"amount_no_decimals_with_comma_separator":o=a(t,0,".",",");break;case"amount_no_decimals_with_space_separator":o=a(t,0,"."," ")}return s.replace(n,o)},i=(t,e)=>t&&t!=document?t.classList.contains(e)?t:i(t.parentNode,e):null,a=(t,e,o)=>{var n;return function(){var s=this,i=arguments,a=function(){n=null,o||t.apply(s,i)},l=o&&!n;clearTimeout(n),n=setTimeout(a,e),l&&t.apply(s,i)}},l=function(t){t=(t=t.replace(/^\s+|\s+$/g,"")).toLowerCase();for(var e="ÁÄÂÀÃÅČÇĆĎÉĚËÈÊẼĔȆÍÌÎÏŇÑÓÖÒÔÕØŘŔŠŤÚŮÜÙÛÝŸŽáäâàãåčçćďéěëèêẽĕȇíìîïňñóöòôõøðřŕšťúůüùûýÿžþÞĐđ߯a·/_,:;",o=0,n=e.length;o<n;o++)t=t.replace(new RegExp(e.charAt(o),"g"),"AAAAAACCCDEEEEEEEEIIIINNOOOOOORRSTUUUUUYYZaaaaaacccdeeeeeeeeiiiinnooooooorrstuuuuuyyzbBDdBAa------".charAt(o));return t.replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-")}},876:(t,e,o)=>{o.r(e),o.d(e,{default:()=>c});var n=o(379),s=o.n(n),i=o(61);s()(i.Z,{insert:"head",singleton:!1}),i.Z.locals;const a=o(723);a.templates={widget:'\n<div class="tpb-box-wrapper">\n    <div class="tpb-box">\n        <div class="spinner">\n            <div class="lds-ellipsis">\n                <div></div>\n                <div></div>\n                <div></div>\n                <div></div>\n            </div>\n        </div>\n        <form class="tpb-form" novalidate>\n            <div class="content" data-step="1">\n                <input type="hidden" class="timeSlots" value=""/>\n                <input type="hidden" class="shopId" name="shopId" value="{{it.tpbShopId}}"/>\n                <input type="hidden" class="duration" name="duration" value=""\n                    data-label="{{it.tpbText.duration}}"/>\n                <input type="hidden" class="datetime" name="datetime" value=""\n                    data-label="{{it.tpbText.datetime}}"/>\n                <textarea class="hidden extraFieldSets" style="display:none;"></textarea>\n                <div class="step1">\n                    <div class="inner-step">\n                        <h5>{{*it.tpbText.please_select}}</h5>\n                        <div class="tpb-form-control product visible">\n                            <label for="product">{{*it.tpbText.product}}</label>\n                            <select class="slim-select tpb-select-product"\n                                    placeholder="{{it.tpbText.product_placeholder}}" name="productId"\n                                    data-label="{{*it.tpbText.product}}">\n                                <option data-placeholder="true" value>{{it.tpbText.product_placeholder}}</option>\n                                {{@foreach(it.products) => key, product}}\n                                    <option value="{{product.id}}" data-handle="{{product.handle}}">{{product.title}}</option>\n                                {{/foreach}}\n                            </select>\n                        </div>\n                        <div class="tpb-form-control variant">\n                            <div class="tpb-form-control-option tpb-option-1">\n                                <label for="option-1" class="tpb-label-option1"></label>\n                                <select class="slim-select tpb-select-option tpb-select-option-1"\n                                        placeholder="{{it.tpbText.variant_placeholder}}" name="option1"\n                                        data-label="option1">\n                                    <option data-placeholder="true"/>\n                                </select>\n                            </div>\n                            <div class="tpb-form-control-option tpb-option-2">\n                                <label for="option-2" class="tpb-label-option2"></label>\n                                <select class="slim-select tpb-select-option tpb-select-option-2"\n                                        placeholder="{{it.tpbText.variant_placeholder}}" name="option2"\n                                        data-label="option2">\n                                    <option data-placeholder="true"/>\n                                </select>\n                            </div>\n                            <div class="tpb-form-control-option tpb-option-3">\n                                <label for="option-3" class="tpb-label-option3"></label>\n                                <select class="slim-select tpb-select-option tpb-select-option-3  "\n                                        placeholder="{{it.tpbText.variant_placeholder}}" name="option3"\n                                        data-label="option3">\n                                    <option data-placeholder="true"/>\n                                </select>\n                            </div>\n\n                        </div>\n                        <div class="tpb-form-control employee {{! !it.settings.general.multipleEmployees && \'tbp-hidden\' }}">\n                            <label for="product">{{*it.tpbText.employee}}</label>\n                            <select class="slim-select tpb-select-employee"\n                                    placeholder="{{it.tpbText.employee_placeholder}}" name="employeeId"\n                                    data-label="{{*it.tpbText.employee}}">\n                                <option data-placeholder="true"></option>\n                            </select>\n                        </div>\n                        <div class="tpb-form-control location {{ (!it.settings.general.multipleLocations || it.settings.general.show_location_on_front_store === false) && \'tbp-hidden\' }}">\n                            <label>{{*it.tpbText.location}}</label>\n                            <select class="slim-select tpb-select-location"\n                                    placeholder="{{it.tpbText.location_placeholder}}" name="locationId"\n                                    data-label="{{*it.tpbText.location}}">\n                                <option data-placeholder="true"></option>\n                            </select>\n                        </div>\n                        {{@if(it.settings.general.allow_bring_more)}}\n                        <div class="tpb-form-control visible" style="display:none">\n                            <label class="inline" for="bring_qty">
1\n                                <span>{{*it.tpbText.bringing_anyone}}</span>\n                                <label class="switch">\n                                    <input type="checkbox" class="bringToggle">\n                                    <span class="tpb-slider round"></span>\n                                </label>\n                            </label>\n                        </div>\n                        <div class="tpb-form-control bringQty">\n                            <label for="product">{{*it.tpbText.num_of_additional}}</label>\n                            <input class="bringQty-input" type="text" id="bring_qty" name="bring_qty" data-label="{{it.tpbText.num_of_additional}}" value min="1"/>\n                            <p id="tpb-message-bring_qty"></p>\n                        </div>\n                        {{/if}}\n                        <div class="tpb-form-control price" >\n                            <p>{{*it.tpbText.price}} : <span class="tpb-text-price"/></p>\n                        </div>\n                        <div class="tpb-form-control booking-note">\n                            <p></p>\n                        </div>\n                        <div class="action">\n                            <button disabled type="button" class="continue-button c1">\n                                {{*it.tpbText.continue}}\n                            </button>\n                        </div>\n                        <div class="tpb-message_not-available">\n                            <div class="content">{{*it.tpbText.not_available}}</div>\n                            <div class="dismiss">\n                                <svg viewBox="0 0 20 20" class="" focusable="false" aria-hidden="true">\n                                    <path\n                                        d="M11.414 10l4.293-4.293a.999.999 0 1 0-1.414-1.414L10 8.586 5.707 4.293a.999.999 0 1 0-1.414 1.414L8.586 10l-4.293 4.293a.999.999 0 1 0 1.414 1.414L10 11.414l4.293 4.293a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414L11.414 10z"\n                                        fill-rule="evenodd"></path>\n                                </svg>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class="step2">\n                    <div class="inner-step">\n                        <input type="hidden" name="date" class="date" data-label="{{it.tpbText.date}}"/>\n                        <div class="tpb-datepicker"></div>\n                        <div class="timezone-note" >\n                            <div class="timezone-icon"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="globe-americas" class="svg-inline--fa fa-globe-americas fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"></path></svg></div>\n                            <div class="timezone-text">{{it.tpbTimeZoneShop}}<span class="currentTime"></span></div>\n                        </div>\n                        <div class="tpb-timepicker">\n                        </div>\n                    </div>\n                    <div class="action">\n                        <button type="button" class="back-button c2">{{*it.tpbText.back}}</button>\n                        <button disabled type="button" class="continue-button c2">\n                            {{*it.tpbText.continue}}\n                        </button>\n                    </div>\n                </div>\n                <div class="step3">\n\n                </div>\n            </div>\n        </form>\n    </div>\n    {{@if(it.settings.general.hideWaterMark)}}\n    <div class="copyright">\n        <a href="//apps.shopify.com/partners/tipo" rel="nofollow" attribute target="_blank">Made by <span\n            class="company">Tipo Appointment Booking</span></a>\n    </div>\n    {{/if}}\n    </div>\n'};const l=a;var r=o(466),p=o(225);const c={initCalendar:function(t){let e=document.querySelector("#tpb-booking-form")?document.querySelector("#tpb-booking-form").innerHTML:"";e||(e=l.templates.widget);
1const n=l.render(e,{products:this.configs.products,tpbShopId:this.shop.id,settings:this.settings,tpbText:this.trans,isProductPage:!0,tpbProduct:this.product,tpbTimeZoneShop:this.timezone.shop}),s=!t.classList.contains("page"),i=t.parentNode.querySelector(".tpb-booking-form");i&&(i.innerHTML="");const a=document.createElement("div");a.innerHTML=n,a.className=s?"tpb-booking-form product":"tpb-booking-form page",(0,p.BE)(t,a),document.body.className+=" booking-widget-appended",s&&(2!=this.settings.general.hide_add_to_cart&&1!=this.settings.general.hide_add_to_cart||document.querySelectorAll('.tpb-atc-add_to_cart,.tpb-atc-wrapper,form[action*="cart"] [type="submit"]').forEach((t=>t.style.display="none")),2!=this.settings.general.hide_buy_now&&1!=this.settings.general.hide_buy_now||document.querySelectorAll(".tpb-atc-buy_now,.shopify-payment-button").forEach((t=>t.style.display="none")),2!=this.settings.general.hide_product_form&&1!=this.settings.general.hide_product_form||document.querySelectorAll('.tpb-product-form,form[action*="cart"]:not(.tpb-exclude)').forEach((t=>t.style.display="none"))),this.handleOptionElement(a),a.querySelector(".continue-button.c1").addEventListener("click",(()=>{const t=this.getParameters(a),e=[Promise.all([o.e(788),o.e(326),o.e(321),o.e(267)]).then(o.bind(o,510)),this.getSlots(a,t)];Promise.all(e).then((t=>{const{default:e}=t[0];Object.assign(this,e),document.dispatchEvent(new CustomEvent("tipo:booking:loaded")),this.goToCalendar(a,t[1]),this.goToStep(a,2)}))})),window.addEventListener("resize",(t=>{const e=a.offsetWidth,o=t.target.innerWidth;e<=599&&o>e?a.classList.add("x480"):a.classList.remove("x480")})),window.dispatchEvent(new Event("resize")),document.dispatchEvent(new CustomEvent("tipo:booking:loaded"))},handleOptionElement:function(t){const e=t.querySelector(".tpb-select-product"),o=t.querySelectorAll("select.tpb-select-option"),n=t.querySelector(".tpb-select-location"),s=t.querySelector(".tpb-select-employee"),i=t.querySelector(".bringToggle"),a=t.querySelector(".bringQty"),l=t.querySelector(".bringQty-input"),c=new r.Z({select:e});let d={variants:[],employee:null,location:null};const{multipleLocations:b,multipleEmployees:u}=this.settings.general,g=e=>{const o=t.querySelector('[name="productId"]').value,n=this.productApi[o],s=t.querySelectorAll("select.tpb-select-option"),a=t.querySelector(".tpb-message_not-available"),r=t.querySelector(".tpb-form-control.price"),c=r.querySelector(".tpb-text-price"),d=Array.from(s).reduce(((t,e)=>(e.value&&t.push(e.value),t)),[]);let b=n.variants.find((t=>t.options.toString()==d.toString()));1==n.variants.length&&"Default Title"==n.variants[0].options[0]&&(b=n.variants[0]),this.selectedVariant=b,b&&b.available?(b.price?(c.innerHTML=(0,p.lb)(b.price),r.style.display="block"):r.style.display="none",a.style.display="none"):(r.style.display="none",a.style.display="flex");const u=this.getAvailableCapacity(t),g=i&&(0,p.V$)(i,"tpb-form-control");g&&(g.style.display=0==u?"none":"block"),l&&l.dispatchEvent(new Event("change"));const m=this.configs.products.find((t=>t.id==o)).duration;this.updateDuration(t,m)},m=t=>{t.stopPropagation(),(0,p.V$)(t.target,"tpb-message_not-available").style.display="none"},h=(0,p.Ds)((async t=>{const e=(0,p.V$)(t.target,"tpb-box"),o=this.getParameters(e),{productId:n,locationId:s,employeeId:i,bringQty:a}=o,l=this.configs.products.find((t=>t.id==n));let r=n&&!0;if(r=r&&this.selectedVariant&&this.selectedVariant.available,"1"==this.settings.general.multipleEmployees&&"product"!==l.available_time_basis&&(r=r&&!isNaN(i)),"1"==this.settings.general.multipleLocations&&(r=r&&!isNaN(s)),a){const t=this.getAvailableCapacity(e);r=r&&a<=t}const c=e.querySelector(".step1 .continue-button");if(r?c.removeAttribute("disabled"):c.setAttribute("disabled","disabled"),2==this.getStep(e)&&(this.unsetSlots(e),r)){const t=await this.get
1Slots(e,o);this.goToCalendar(e,t)}return document.dispatchEvent(new CustomEvent("tipo:booking:options:update")),r}),150);if(e.addEventListener("change",(async e=>{d.location&&d.location.set(""),d.employee&&d.employee.set("");const o=this.configs.products.find((t=>t.id==e.target.value)),i="/products/"+o.handle+"?view=tipo_booking_raw_data_do_not_select";this.setLoading(t,!0);const a=await fetch(i).then((e=>(this.setLoading(t,!1),e.text())));new Function(a)(),this.productApi=this.productApi||{},this.productApi[e.target.value]=tpbProductApi,d.variants.forEach((t=>t&&t.set(""))),this.buildOptionSelectors(t,tpbProductApi,d.variants),n.parentNode.style.display="none",s.parentNode.style.display="none","1"==u&&"product"!==o.available_time_basis?this.buildEmployeeSelector(o,d,s):"1"==b&&this.buildLocationSelector(o,null,d,n);const l=o.duration;this.updateDuration(t,l);const r=t.querySelector(".booking-note");r&&(r.innerHTML=o.note,r.style.display="block")})),o.forEach((t=>t.addEventListener("change",g))),s.addEventListener("change",(t=>{const o=this.configs.products.find((t=>t.id==e.value)),s=this.configs.employees.find((e=>e.id==t.target.value));s&&this.buildLocationSelector(o,s,d,n)})),i&&i.addEventListener("change",(t=>{a.style.display=t.target.checked?"block":"none"})),l&&l.addEventListener("change",(t=>{const e=t.target.value,o=(0,p.V$)(t.target,"tpb-box"),n=this.getAvailableCapacity(o);o.querySelector("#bring_qty").setAttribute("max",n);const s=o.querySelector("#tpb-message-bring_qty");if(e>n){const t=this.trans.you_can_only_bring.replace("{number}",n);s.innerHTML=t}else s.innerHTML=""})),t.querySelectorAll("select,input").forEach((t=>{t.addEventListener("change",h)})),t.querySelectorAll(".dismiss").forEach((t=>{t.addEventListener("click",m)})),this.product){const o=e.querySelector('option[value="'+this.product.id+'"]'),n=t.classList.contains("product");o&&n&&(c.set(this.product.id),e.dispatchEvent(new Event("change")),c.disable())}},setLoading:function(t,e){const o=t.querySelector(".spinner");e?o.classList.add("loading"):o.classList.remove("loading")},updateDuration:function(t,e){const o=t.querySelector(".duration");if("product"==e.type&&(o.value=e.rule),"variant"==e.type&&this.selectedVariant){let t;t=e.option?e.rule.find((t=>this.selectedVariant.title.indexOf(t.value)>-1)):e.rule.find((t=>t.value==this.selectedVariant.id)),o.value=t&&t.duration}},getStep:function(t){return parseInt(t.querySelector(".content[data-step]").getAttribute("data-step"))},goToStep:function(t,e){const o=(0,p.V$)(t,"tpb-booking-form").classList.contains("x480");t.querySelector(".content[data-step]").setAttribute("data-step",e);const n=t.querySelector(".continue-button.c"+(e-1)),s=t.querySelector(`.continue-button.c${e}`),i=t.querySelector(`.back-button.c${e}`);i&&(i.style.display=o||3==e?"block":"none"),n&&(n.style.display="none"),s&&(s.style.display="block")},getParameters:function(t){const e=new Date,o=t.querySelector('[name="productId"]').value,n=t.querySelector('[name="employeeId"]').value,s=t.querySelector('[name="locationId"]').value,i=t.querySelector(".bringToggle")&&t.querySelector(".bringToggle").checked,a=t.querySelector('[name="bring_qty"]')&&t.querySelector('[name="bring_qty"]').value,l=e.getFullYear()+"-"+(parseInt(e.getMonth())+1)+"-"+e.getDate()+" "+e.getHours()+":"+e.getMinutes(),r={shop:this.shop.url,productId:o,variantId:this.selectedVariant&&this.selectedVariant.id,employeeId:n,locationId:s,customerIds:this.customer&&this.customer.id,currentDay:l};return i&&parseInt(a)&&(r.bringQty=parseInt(a)),r},getSlots:function(t,e){this.setLoading(t,!0);const o=new URLSearchParams(e);return fetch(`${this.appUrl}/booking_api/slots?${o.toString()}`).then((e=>(this.setLoading(t,!1),e.json())))},buildOptionSelectors:function(t,e,o){const n=e.options;if(n.length>0&&"Default Title"!==n[0].values[0]){if(this.buildSingleOptionSelector(t,n,o,1),n.length>1)if(this.buildSingleOptionSelector(t,n,o,2),n.length>2)this.buildSingleOptionSelector(t,n,o,3);else{const e=t.querySelector(".tpb-form-control-option.tpb-option-3"),o=e.querySelector("select.tpb-select-option-3");e.style.display="none",o.value="",o.dispatchEvent(new Event("change"))}else{const e=t.querySelector(".tpb-form-control-option.tpb-option-2"),o=e.querySelector("select.tpb-select-option-2");e.style.display="none",o.value="",o.dispatchEvent(new Event("change"))}t.querySelector(".tpb-form-control.variant").style.display="block"}else t.querySelector("select.tpb-select-option-1").dispatchEvent(new Event("change")),t.querySelector(".tpb-form-control.variant").style.display="none"},buildSingleOptionSelector:function(t,e,o,n){t.querySelector("label.tpb-label-option"+n).innerHTML=e[n-1].name,t.querySelector(".tpb-form-control-option.tpb-option-"+n).style.display="block";const s=e[n-1].values.map((t=>({text:t.replace(/"/g,"&quot;"),value:t}))),i=t.querySelector("select.tpb-select-option-"+n);o[n]&&o[n].destroy(),o[n]=new r.Z({select:i,data:s}),i.dispatchEvent(new Event("change"))},buildLocationSelector:function(t,e,o,n){let s=e&&this.configs.locations.filter((t=>e.location_ids.includes(t.id)));s||(s=t&&this.configs.locations.filter((e=>t.location_ids.includes(e.id)))),s=s.map((t=>({text:t.name,value:t.id}))),o.location&&(o.location.set(""),o.location.destroy()),o.location=new r.Z({select:n,placeholder:this.trans.location_placeholder,data:[{placeholder:!0,text:this.trans.location_placeholder,value:""},...s]}),1!=s.length&&!1!==this.settings.general.show_location_on_front_store||o.location.set(s[0].value),!1!==this.settings.general.show_location_on_front_store&&"1"==this.settings.general.multipleLocations&&(n.parentNode.style.display="block")},buildEmployeeSelector:function(t,e,o){let n=this.configs.employees.filter((e=>t.employee_ids.includes(e.id)));if(!n)return;const s=n.map((t=>
1({text:t.first_name+" "+t.last_name,id:t.id,value:t.id})));e.employee&&(e.employee.set(""),e.employee.destroy()),e.employee=new r.Z({select:o,data:[{placeholder:!0,text:this.trans.employee_placeholder,value:""},...s]}),1==s.length&&e.employee.set(s[0].value);const i=(0,p.V$)(o,"tpb-form");1==s.length&&this.settings.general.hide_employee_on_front_store?(o.parentNode.style.display="none",i&&i.classList.add("should_hide_employee_at_step3")):(o.parentNode.style.display="block",i&&i.classList.remove("should_hide_employee_at_step3")),o.dispatchEvent(new Event("change"))},getAvailableCapacity:function(t){const e=t.querySelector('[name="productId"]').value,o=this.configs.products.find((t=>t.id==e)),n=o&&o.capacity;let s=0;return n&&("product"==n.type&&(s=parseInt(n.rule)-1),"variant"==n.type&&(s=parseInt(n.rule[this.selectedVariant&&this.selectedVariant.id])-1)),this.selectedVariant&&"shopify"==this.selectedVariant.inventory_management&&"deny"==this.selectedVariant.inventory_policy&&(this.selectedVariant.inventory_quantity>1&&this.selectedVariant.inventory_quantity-1<s&&(s=this.selectedVariant.inventory_quantity-1),this.selectedVariant.inventory_quantity<=1&&(s=0)),s}}}}]);

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.