var Utilities,FieldType,Mode,StatusType,__extends=this&&this.__extends||function(){var n=function(t,i){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i])})(t,i)};return function(t,i){function r(){this.constructor=t}if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");n(t,i);t.prototype=null===i?Object.create(i):(r.prototype=i.prototype,new r)}}(),Base=function(n,t,i,r){void 0===r&&(r=void 0);this.getLang=function(){return $("html").attr("lang")||"en"};this.lang="string"!=typeof n?this.getLang():n;this.masterId=t;this.options=$.extend(this.options,i);void 0===r?(void 0===window.masterDom&&(window.masterDom=new MasterDom),this.dom=window.masterDom):this.dom=r},Repository=function(n){this.options={};this.list=[];this.timeZoneOffset=0;this.sort=function(n,t){for(var e,f,i,r=0,u=n.length-1;r<u;r++){for(f=!1,i=0;i<u;)t(n[i])>t(n[i+1])&&(e=n[i],n[i]=n[i+1],n[i+1]=e,f=!0),i++;if(!f)break}return n};this.options=$.extend(this.options,n);this.timeZoneOffset=moment().utcOffset()},Services=function(n){var t=this;this.update=function(){var n=$(t.serviceSelector).filter(".active");t.list=t.parseServices(n);t.totalParams()};this.parseServices=function(n){var t=[];return n.each(function(n,i){var i=$(i),r=i.data("service-id"),l=i.data("service-name"),u=i.data("service-cost"),f=i.data("service-duration"),e=i.data("service-setsize"),o=i.data("service-groupsize"),s=i.data("service-currentsize"),h=i.data("service-max-count"),c=i.data("service-count"),a=i.data("service-count-label"),i=i.data("service-bookingid");0===t.filter(function(n){return n.id===r}).length&&t.push({id:r,name:l,cost:parseFloat(""===u?"0":u),duration:parseInt(""===f?"0":f),courseSetSize:parseInt(""===e?"0":e),groupSize:parseInt(""===o?"0":o),currentSize:parseInt(""===s?"0":s),maxCount:parseFloat(""===h?1:h),count:parseFloat(""==c?1:c),countLabel:a,bookingId:i})}),t};this.syncToogleBtn=function(n){function u(n){n.data("service-count",0).removeClass("active").children("input").prop("checked",!1);n.find("span").text(c)}var i=$(n).children("input").is(":checked"),f=n.getAttribute("data-service-id"),e=n.getAttribute("data-service-bookingid"),h="radio"===$(".appoint").data("bhv"),c=n.getAttribute("data-service-btn-text"),o=$(n).data("service-max-count"),s=$(n).data("service-count"),r=$(t.serviceSelector);e&&i?u(r.not(n)):1<o?(i=0<s,e=$(n).children("input").val(),o=$(n).children("span").text(),$(n).addClass(i?"active":""),r.not(n).filter('[data-service-id="'+f+'"]').css("min-width",$(n).outerWidth()).data("service-count",s).addClass(i?"active":"").removeClass(i?"":"active").children("input").val(e).prop("checked",i),r.not(n).filter('[data-service-id="'+f+'"]').find("span").text(o),r.filter(':not([data-service-bookingid=""])').removeClass("active").children("input").prop("checked",!1),h&&0<s&&u(r.not(n))):(h&&i&&(u(r.not(n)),$(".picker")[0].scrollIntoView({block:"end"})),r.filter('[data-service-id="'+f+'"]').not(n).addClass(i?"active":"").removeClass(i?"":"active").children("input").prop("checked",i),r.filter(':not([data-service-bookingid=""])').removeClass("active").children("input").prop("checked",!1))};this.totalParams=function(){var r=0,n=0,i=0;t.list.forEach(function(t,u){r+=t.cost*t.count;n+=t.duration*t.count;i=u+1});t.totalCost=r;t.totalDuration=0<i&&0===n?1:n;t.totalCount=i};this.generateHtmlList=function(){var n="";return t.list.forEach(function(t){var i=t.name.trim(),r=t.count,t=t.countLabel;n+="<li>"+i.substr(0,50)+(50<i.length?"...":"")+'<br><div class="small" style="text-align:right"> '+(1<r?t+": "+r:"")+"<\/div>"}),n};this.generateShortHtmlList=function(n,i){for(var e="",r=0;r<t.list.length;r++){var u=t.list[r],o=document.createElement("li"),f=u.countLabel;if(o.innerHTML=u.name.trim()+(1<u.count?", "+f+": "+u.count:""),o.attributes.title=u.name.trim(),e+=o.outerHTML,3<t.list.length&&2===r){f=document.createElement("li");f.innerHTML=(i||"and {0} more").replace("{0}",(t.list.length-r-1).toString());f.classList.add("text-muted");e+=f.outerHTML;break}}return e};this.serviceSelector=n.selector},IntervalsRepository=function(n){function t(t){return t=n.call(this,t)||this,t._lastLoadedDate=null,t.add=function(n){n=this.normalize(n);this.merge(n);this.LastDate=0===this.list.length?null:this.list[this.list.length-1].date;this.onAdd(this.list);this.log()},t.addStatic=function(n){n=this.normalize(n);this.merge(n);this.LastDate=0===this.list.length?null:this.list[this.list.length-1].date;this.onAddStatic(this.list);this.log()},t.get=function(n){return this.list.filter(function(t){return t.date===n})},t.dateIsExists=function(n){return 0<this.list.filter(function(t){return t.date===n}).length},t.getSideIntervals=function(n){var t=[];return(n=void 0===n?this.list:n).forEach(function(n){t.push({employeeId:n.employeeId,date:n.date,dateMinutes:n.dateMinutes,from:n.from,to:n.to,left:n.left,right:n.right,fromLastRest:n.fromLastRest,fromDisplay:n.fromDisplay,toDisplay:n.toDisplay,setLeft:!0,setRight:!0,bookingId:n.bookingId})}),t},t.split=function(n,t){var f=[],i,r,e,o;for(t<30&&(t=30),i=0;i<n.length;i++){var s=n[i].from,h=n[i].to,u=Math.floor((h-s)/t);if(1<u)for(r=0;r<u;r++)e=n[i].from+t*r,o=r===u-1?n[i].to:n[i].from+t*(r+1),f.push({employeeId:n[i].employeeId,date:n[i].date,dateMinutes:n[i].dateMinutes,from:e,to:o,left:n[i].left,right:n[i].right,fromLastRest:n[i].fromLastRest,fromDisplay:"",toDisplay:"",setLeft:!0,setRight:r===u-1,bookingId:n[i].bookingId});else f.push({employeeId:n[i].employeeId,date:n[i].date,dateMinutes:n[i].dateMinutes,from:n[i].from,to:n[i].to,left:n[i].left,right:n[i].right,fromLastRest:n[i].fromLastRest,fromDisplay:n[i].fromDisplay,toDisplay:n[i].toDisplay,setLeft:!0,setRight:!0,bookingId:n[i].bookingId})}return f},t.groupByDate=function(n){var t;return t="date",n.reduce(function(n,i){return(n[i[t]]=n[i[t]]||[]).push(i),n},{})},t.skippedDaysBefore=function(n){var t=this.list.filter(function(t){return t.date<n});return 0===t.length?0:(t=t[t.length-1].date,Utilities.DateDiffDays(n,t)-1)},t.normalize=function(n){function t(n,t){return Math.floor(moment(n+t,u).unix()/60+r.timeZoneOffset)}var r=this,i=[],u=this.options.dateFormat+this.options.timeFormat;return n.forEach(function(n){var f=parseInt(n.date),u=t(n.date,"00:00");r.dateIsExists(f)||(0===n.free.length?i.push({employeeId:"",from:u,to:u,left:"rest",right:"rest",fromLastRest:0,date:f,dateMinutes:u,fromDisplay:"00:00",toDisplay:"00:00",bookingId:""}):n.free.forEach(function(r){i.push({employeeId:r.employeeId,from:t(n.date,r.from),to:t(n.date,r.to),left:r.left,right:r.right,fromLastRest:r.fromLastRest,date:f,dateMinutes:u,fromDisplay:r.from,toDisplay:r.to,bookingId:r.bookingId})}))}),i},t.merge=function(n){n=this.excludePast(n);this.list=this.sort(this.list.concat(n),function(n){return n.date})},t.excludePast=function(n){if(null!=n&&0<n.length){for(var i=15*Math.ceil(moment().unix()/900)+this.timeZoneOffset,r=[],t=0;t<n.length&&!(n[t].from>=i);t++)if(n[t].to<=i)r.push(t);else if(n[t].from<=i&&n[t].to>i){n[t].fromLastRest=n[t].fromLastRest+(i-n[t].from);n[t].from=i;break}r.reverse().forEach(function(t){n[t].from=n[t].to})}return n},t.log=function(){var n=this;this.options.debug&&0!==this.list.length&&setTimeout(function(){var r,t="",i=n.groupByDate(n.list);for(r in i)!function(r){var f,u;i.hasOwnProperty(r)&&(f=i[r],t+=moment(r.toString(),n.options.dateFormat).format("DD-MM-YYYY"),u="    ",0<f.length?f.forEach(function(n,t){u+=n.from===n.to?"no time\r\n":n.fromDisplay+"-"+n.toDisplay+(t===f.length-1?"\r\n":"work"===n.right?" | work | ":" | ")}):u+="-\r\n",t+=u+"\r\n")}(r);console.log(t)},0)},t.LastDate=Utilities.GetNumberDate(new Date),t}return __extends(t,n),Object.defineProperty(t.prototype,"LastDate",{get:function(){return this._lastLoadedDate},set:function(n){this._lastLoadedDate=n},enumerable:!1,configurable:!0}),t}(Repository),EntriesRepository=function(n){function t(t,i){var r=n.call(this,t)||this;return r.needDuration=0,r.rang={"default":10,cutBegin:-15,cutEnd:-15,preferred:11,stackOnly:30},r.addIntervals=function(n){n=r.calculate(n);r.list=r.list.concat(n)},r.addStaticIntervals=function(n){n=r.calculateStatic(n);r.list=n},r.setDuration=function(n){r.needDuration=n;r.list=r.calculate(r.intervalsRepository.list)},r.setOptions=function(n){r.options=$.extend(r.options,n);r.list=r.calculate(r.intervalsRepository.list)},r.get=function(n){var t=r.dateToInterval(n),i=r.list.filter(function(n){return n.time>=t.from&&n.time<t.to});return r.filter(i,n)},r.hasEntries=function(n){var t;return r.intervalsRepository.dateIsExists(n)?(t=r.dateToInterval(n),0<r.list.filter(function(n){return n.time>=t.from&&n.time<t.to}).length):null},r.calculate=function(n){var t=[];if(0<n.length)switch(r.options.mode){case 0:t=r.getEntriesBySmart(n);break;case 2:t=r.getEntriesByStack(n);break;case 3:t=r.getEntriesByExact(n);break;default:t=r.getEntriesByGrid(n)}return r.excludeLastClosest(t,r.needDuration,r.options.deadInterval,r.options.limitInterval)},r.calculateStatic=function(n){var t=[];return 0!==n.length&&n.forEach(function(n){var i=n.from,u=n.to;i!==u&&t.push({employeeId:n.employeeId,bookingId:n.bookingId,time:i,rang:r.rang.default,duration:u-i})}),t},r.dateToInterval=function(n){return n=moment(n.toString(),r.options.dateFormat).unix()/60+r.intervalsRepository.timeZoneOffset,{from:n,to:n+1440}},r.filter=function(n,t){var i,u,f;return 0===n.length?[]:(i=[],n.forEach(function(n){i.push({employeeId:n.employeeId,bookingId:n.bookingId,time:n.time,rang:n.rang,duration:n.duration})}),0!==(n=r.intervalsRepository.get(t)).length&&(t=r.intervalsRepository.getSideIntervals(n),u=n[0].from,f=n[n.length-1].to,2!==r.options.mode&&(t.forEach(function(n){0<r.options.cutBegin&&n.from===u&&n.from+r.options.cutBegin+r.needDuration<=n.to&&i.push({employeeId:n.employeeId,bookingId:n.bookingId,time:n.from+r.options.cutBegin,rang:r.rang.default,duration:r.needDuration});0<r.options.cutEnd&&n.to===f&&n.from<=n.to-r.options.cutEnd-r.needDuration&&i.push({employeeId:n.employeeId,bookingId:n.bookingId,time:n.to-r.options.cutEnd-r.needDuration,rang:r.rang.default,duration:r.needDuration})}),i=r.cutLeftRight(i,r.needDuration,r.options.cutBegin,r.options.cutEnd,u,f)),r.preferredTime(i,u,f),i=r.sort(i,function(n){return n.time}),r.log(i),i=r.filterByIceberg(i),i=r.deleteDuplicates(i)),i)},r.getEntriesByGrid=function(n){var t=[],i=r.needDuration,u=r.options.step,f=r.options;return 0!==n.length&&n.forEach(function(n){for(var s,h,c,l,e=[],o=f.flexGrid?n.from:n.dateMinutes;o<=n.to;)e.push(o),o+=u;for(c=0;c<e.length;c++)l=e[c],(h={from:l,to:l+i}).from>=(s=n).from&&h.from<s.to&&h.to>=s.from&&h.to<=s.to&&t.push({employeeId:n.employeeId,bookingId:n.bookingId,time:l,rang:r.rang.default,duration:r.needDuration})}),t},r.getEntriesByExact=function(n){var t,i=[],u=r.needDuration;return 0!==n.length&&0!==r.options.schedule.length&&(t=r.options,n.forEach(function(n){for(var f,e,s,h=t.schedule.map(function(t){return n.dateMinutes+t}),o=0;o<h.length;o++)s=h[o],(e={from:s,to:s+u}).from>=(f=n).from&&e.from<f.to&&e.to>=f.from&&e.to<=f.to&&i.push({employeeId:n.employeeId,bookingId:n.bookingId,time:s,rang:r.rang.default,duration:r.needDuration})})),i},r.getEntriesBySmart=function(n){for(var e,f=[],u=r.needDuration,t=r.intervalsRepository.getSideIntervals(n),t=r.intervalsRepository.split(t,u),i=0;i<t.length;i++)e=t[i].to-u,t[i].to-t[i].from>=u&&(f.push({employeeId:t[i].employeeId,bookingId:t[i].bookingId,time:t[i].from,rang:r.rang.default,duration:u}),t[i].setRight&&10<=e-t[i].from&&f.push({employeeId:t[i].employeeId,bookingId:t[i].bookingId,time:e,rang:r.rang.default,duration:u}));return f},r.getEntriesByStack=function(n){for(var o,e,f=[],u=r.needDuration,i=r.intervalsRepository.getSideIntervals(n),t=0;t<i.length;t++)e=i[t].to-u,i[t].to-i[t].from>=u&&(1.5*u<480&&480<=i[t].to-i[t].from&&(o=(i[t].to-i[t].from)/2-u/2+i[t].from,f.push({employeeId:i[t].employeeId,bookingId:i[t].bookingId,time:o,rang:r.rang.default,duration:u})),f.push({employeeId:i[t].employeeId,bookingId:i[t].bookingId,time:i[t].from,rang:"work"===i[t].left?r.rang.default+5:r.rang.default,duration:u}),i[t].setRight&&10<=e-i[t].from&&f.push({employeeId:i[t].employeeId,bookingId:i[t].bookingId,time:e,rang:"work"===i[t].right?r.rang.default+5:r.rang.default,duration:u}));return f},r.preferredTime=function(n,t,i){var f,e,u;0!==r.options.preferred&&(e=i-t,(u=[]).push({from:t,to:i}),u.push({from:t,to:u[0].from+e/3}),u.push({from:u[1].to+1,to:u[1].from+e/3*2}),u.push({from:u[2].to+1,to:i}),f=u,(t=function(t,i){n.forEach(function(n){n.time>=f[t].from&&n.time<f[t].to&&(n.rang+=i)})})(r.options.preferred,r.rang.preferred),1===r.options.preferred&&t(3,-r.rang.preferred/2),3===r.options.preferred&&t(1,-r.rang.preferred/2))},r.deleteDuplicates=function(n){return n.filter(function(t,i){return 0===i||t.time!==n[i-1].time})},r.cutLeftRight=function(n,t,i,u,f,e){if(0<n.length&&(0<i||0<u))for(var h=f+i,s=e-u,o=0;o<n.length;o++)h>n[o].time&&(n[o].rang+=r.rang.cutBegin),s<e&&s-t<n[o].time&&(n[o].rang+=r.rang.cutEnd);return n},r.filterByIceberg=function(n){var t=0<n.length?n[0].rang:0,i=t,o=0,u=(n.forEach(function(n){n.rang>t&&(t=n.rang);n.rang<i&&(i=n.rang);o+=n.rang}),n.length,(t+i)/2),f=u+(t-u)/2,e=(r.logWaterline(f),[]);return n.forEach(function(n){n.rang>=f&&e.push(n)}),e},r.excludeLastClosest=function(n,t,i,r){var u=moment().unix()/60+this.timeZoneOffset,f=r<=4320?r:1440*Math.ceil(moment().unix()/86400)+this.timeZoneOffset;return n.reduce(function(n,e){return e.time>=u+i&&e.time+t<=f+r&&n.push(e),n},[])},r.log=function(n){setTimeout(function(){var i,t,u;if(r.options.debug){for(i="",t=0;t<n.length;t++)i+=(u=n[t].time,moment(6e4*(u-r.timeZoneOffset)).format(r.options.timeFormat)+" / rang: "+n[t].rang+"\r\n");console.log(i)}},0)},r.logWaterline=function(n){setTimeout(function(){r.options.debug&&console.log("Waterline: "+n)})},r.intervalsRepository=i,r.intervalsRepository.onAdd=r.addIntervals,r.intervalsRepository.onAddStatic=r.addStaticIntervals,r}return __extends(t,n),t}(Repository),Master=(!function(n){function t(n){return 99999999<n||n<1e7?(console.error("Wrong number date"),null):(n=n.toString(),new Date(parseInt(n.substr(0,4)),parseInt(n.substr(4,2))-1,parseInt(n.substr(6,2))))}n.timeToMinutes=function(n){return moment.duration(n,this.options.timeFormat).asMinutes()};n.minutesToTime=function(n,t){var i=(n=new Date(6e4*(n+(new Date).getTimezoneOffset()))).getHours(),n=n.getMinutes();return t?(9<i?i:"0"+i)+":"+(9<n?n:"0"+n):(i<13?i:i-12)+":"+(9<n?n:"0"+n)+(i<12?"am":"pm")};n.NumberToDate=t;n.GetNumberDate=function(n){return null===n&&(n=new Date),parseInt(moment(n).format("YYYYMMDD"))};n.DateDiffDays=function(n,i){return n=t(n),i=t(i),n=Math.abs(n.getTime()-i.getTime()),Math.ceil(n/864e5)};n.DateNumberAddDays=function(n,i){return parseInt(moment(t(n)).add(i,"days").format("YYYYMMDD"))}}(Utilities=Utilities||{}),function(n){var t=this,i=(this.options={locale:"en",masterId:null,canEdit:!1,debug:!1,cart:{showPrice:!0,showDuration:!0,currency:"",currencyDecimalDigits:2,currencySeparator:".",currencyPatternCode:0},picker:{mode:0,cutBegin:0,cutEnd:0,cutDelimeter:2,preferred:0,stackOnly:0,step:15,daysToLoad:30,dateFormat:"YYYYMMDD",timeFormat:"HH:mm",deadInterval:120,limitInterval:144e3,gap:0,use24timeFormat:!0,fixPhoneCountryCode:!1,firstDayOfWeek:1},locales:{other:"Another time",emptyResponse:"Empty response",settingsAreSaved:"Settings are saved",settingsAreSaving:"Saving"}},this.updatePicker=function(n){var i=$.extend({debug:t.options.debug,locales:t.options.locales},t.options.picker),r=$.extend({debug:t.options.debug,locales:t.options.locales},t.options.cart);t.picker=n;t.options.canEdit&&(t.pickerOptions=new PickerOptions(t.options.locale,t.options.masterId,i,t.dom,t.picker));t.cart=new ServiceCart(t.options.locale,t.options.masterId,r,t.dom,t.picker);t.modal=new OrderModal(t.options.locale,t.options.masterId,i,t.dom,t.cart);t.course=new CourseModal(t.options.locale,t.options.masterId,i,t.dom,t.cart);t.svCount=new CountModal(t.options.locale,t.options.masterId,i,t.dom,t.cart)},this.options=$.extend(!0,this.options,n),$.extend({debug:this.options.debug,locales:n.locales},this.options.picker)),n=$.extend({debug:this.options.debug,locales:n.locales},this.options.cart);this.dom=new MasterDom;this.picker=new Picker(this.options.locale,this.options.masterId,"","",i,this.dom);this.options.canEdit&&(this.pickerOptions=new PickerOptions(this.options.locale,this.options.masterId,i,this.dom,this.picker));this.cart=new ServiceCart(this.options.locale,this.options.masterId,n,this.dom,this.picker);this.modal=new OrderModal(this.options.locale,this.options.masterId,i,this.dom,this.cart);this.course=new CourseModal(this.options.locale,this.options.masterId,i,this.dom,this.cart);this.svCount=new CountModal(this.options.locale,this.options.masterId,i,this.dom,this.cart);this.options.canEdit&&new ServiceEditor(this.options.masterId)}),OptionsDom=function(){function n(){}return Object.defineProperty(n.prototype,"pickerOptionsPanel",{get:function(){return $(".picker__options")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerOptionsToggle",{get:function(){return $(".picker__options-toggle input")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerOptionsCancel",{get:function(){return $(".picker__options-cancel")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerOptionsSave",{get:function(){return $(".picker__options-save")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerOptionsForm",{get:function(){return $(".picker__options-form")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerOptionsStatus",{get:function(){return $(".picker__options-status")},enumerable:!1,configurable:!0}),n}(),MasterDom=function(){function n(){}return Object.defineProperty(n.prototype,"callBtn",{get:function(){return $("._call__btn")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"datepicker",{get:function(){return $("#datepicker")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"masterForm",{get:function(){return $("._master__form")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"services",{get:function(){return $("._service-cart__services ._service-cart__toggle-item")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"serviceSelectBtn",{get:function(){return $("._service-cart__toggle-item")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"serviceCartList",{get:function(){return $("._service-cart__list")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"serviceCartCost",{get:function(){return $("._service-cart__cost")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"serviceCartCostInput",{get:function(){return $("._service-cart__cost-input")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"serviceCartDuration",{get:function(){return $("._service-cart__duration")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"serviceCartBooked",{get:function(){return $("._service-cart__booked")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"serviceCartSummary",{get:function(){return $("._service-cart__summary")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"serviceCartMaterialsBlock",{get:function(){return $("._service-cart__materials-wrapper")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"serviceCartMaterials",{get:function(){return $("._service-cart__materials")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"serviceCartStages",{get:function(){return $("._service-cart__stage")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"summaryBtn",{get:function(){return $("._summary__btn")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"serviceCartBookBtn",{get:function(){return $("._book__btn")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"picker",{get:function(){return $("._picker")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerTime",{get:function(){return $("._picker__time")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerTimeEnd",{get:function(){return $("._picker__time_end")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerTimeToggle",{get:function(){return $("._picker__time_toggle")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerTimeToggleInput",{get:function(){return this.pickerTimeToggle.find("input")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerTimeToggleLabel",{get:function(){return this.pickerTimeToggle.find("label")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerDate",{get:function(){return $("._picker__date")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerDateDisplay",{get:function(){return $("._picker__date_display")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerMessage",{get:function(){return $("._picker__message")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerLoading",{get:function(){return $("._picker__loading")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerFooter",{get:function(){return $("._picker__footer")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerBookBtn",{get:function(){return $("._picker__footer .picker__btn .btn")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerWaitListPanel",{get:function(){return $(".awaiting-panel")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerOptionsPanel",{get:function(){return $(".picker__options")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerOptionsToggle",{get:function(){return $(".picker__options-toggle input")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerOptionsCancel",{get:function(){return $(".picker__options-cancel")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerOptionsSave",{get:function(){return $(".picker__options-save")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerOptionsForm",{get:function(){return $(".picker__options-form")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"pickerOptionsStatus",{get:function(){return $(".picker__options-status")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orderModal",{get:function(){return $("#OrderModal")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orderDesc",{get:function(){return $(".order-modal__desc")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orderModalStages",{get:function(){return $(".order-modal__stage")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orderName",{get:function(){return $("._order__name")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orderDate",{get:function(){return $("._order__date")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orderTime",{get:function(){return $("._order__time")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orderCount",{get:function(){return $("._order__count")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orderPrice",{get:function(){return $("._order__price")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orderServices",{get:function(){return $("._order__services")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orderWaitListBtn",{get:function(){return $(".awaiting-btn")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"courseModal",{get:function(){return $("#CourseModal")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"courseService",{get:function(){return $("#CourseModal .course-service")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"courseAppoints",{get:function(){return $("#CourseModal .course-apts")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"courseAddBtn",{get:function(){return $("#CourseModal .add-btn")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"countModal",{get:function(){return $("#CountModal")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"countIncBtn",{get:function(){return $("#CountModal .btn-inc-count")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"countDecBtn",{get:function(){return $("#CountModal .btn-dec-count")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"countOkBtn",{get:function(){return $("#CountModal .btn-ok")},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"countCancelBtn",{get:function(){return $("#CountModal .btn-cancel")},enumerable:!1,configurable:!0}),n}(),ServiceCart=(!function(n){n[n.cost=0]="cost";n[n.materials=1]="materials";n[n.booked=2]="booked";n[n.duration=3]="duration"}(FieldType=FieldType||{}),function(n){function t(t,i,r,u,f){var e=n.call(this,t,i,r,u)||this;return e.setUpListeners=function(){e.dom.masterForm.off("click",'._service-cart__toggle-item[data-service-max-count="1"]');e.dom.masterForm.delegate('._service-cart__toggle-item[data-service-max-count="1"]',"click",function(n){return e.onServiceClick(n)});e.dom.masterForm.off("countChanged","._service-cart__toggle-item");e.dom.masterForm.delegate("._service-cart__toggle-item","countChanged",function(n){return e.onServiceClick(n)});e.dom.masterForm.off("click","._summary__btn");e.dom.masterForm.delegate("._summary__btn","click",function(n){return e.onSummaryClick(n)});e.update()},e.onSummaryClick=function(){e.picker.show()},e.onServiceClick=function(n){setTimeout(function(){e.services.syncToogleBtn(n.target);e.update()},300)},e.update=function(){var n;e.services.update();e.onServiceChanged&&e.onServiceChanged(e.services);0===e.services.totalCount?(e.showStage("empty"),e.totalDuration=0):(n=0<e.services.list.filter(function(n){return!!n.bookingId}).length,e.totalDuration=e.options.servCalcEnd?e.services.totalDuration:e.options.defaultDuration,e.dom.serviceCartList.html(e.services.generateHtmlList()),e.dom.serviceCartCost.html(e.getFormatedPrice(e.services.totalCost)),e.dom.serviceCartCostInput.val(e.services.totalCost),e.dom.serviceCartDuration.data("duration",e.totalDuration),e.dom.serviceCartDuration.html(1<e.totalDuration&&e.options.servCalcEnd?e.durationHumanize(e.totalDuration):""),e.toggleField(FieldType.cost,e.options.showPrice&&0<e.services.totalCost),e.toggleField(FieldType.duration,e.options.showDuration&&e.options.servCalcEnd),e.toggleField(FieldType.booked,n),e.dom.summaryBtn.toggle(!n),e.dom.serviceCartBookBtn.toggle(n),n?(n=e.services.list[0].groupSize-e.services.list[0].currentSize,e.dom.serviceCartBooked.find("#availableCnt").text(n),e.dom.serviceCartBookBtn.prop("disabled",n<=0),e.dom.masterForm.find("input[name='bookingId']").val(e.services.list[0].bookingId),e.dom.masterForm.find("input[name='employeeId']").val(0),e.picker.hide()):1===e.totalDuration&&(e.totalDuration=e.options.defaultDuration),e.showStage("summary"));e.picker.onCartUpdated(e);e.logDuration(e.durationHumanize(e.totalDuration))},e.getCurrencyPattern=function(){switch(e.options.currencyPatternCode){case 1:return"d<span>$<\/span>";case 2:return"<span>$<\/span> d";case 3:return"d <span>$<\/span>";default:return"<span>$<\/span>d"}},e.getFormatedPrice=function(n){var t=0<(n=void 0===n||0===n?e.services.totalCost:n)-Math.floor(n)?e.options.currencyDecimalDigits:0;return e.options.currencyPattern.replace("$",e.options.currency).replace("d",$.number(n,t,e.options.currencyDecimalSeparator))},e.durationHumanize=function(n){return humanizeDuration(6e4*n,{language:e.lang,delimiter:" "})},e.showStage=function(n){e.dom.serviceCartStages.hide();void 0!==n&&e.dom.serviceCartStages.filter('[data-cart="'+n+'"]').show()},e.toggleField=function(n,t){switch(n){case FieldType.cost:e.dom.serviceCartCost.toggle(t);break;case FieldType.booked:e.dom.serviceCartBooked.toggle(t);break;case FieldType.materials:e.dom.serviceCartMaterialsBlock.toggle(t);break;case FieldType.duration:e.dom.serviceCartDuration.toggle(t)}},e.logDuration=function(n){setTimeout(function(){e.options.debug&&console.log("Total duration: "+n)})},e.picker=f,e.options.currencyPattern=e.getCurrencyPattern(),e.services=new Services(e.dom.services),e.setUpListeners(),e.totalDuration=0,e}return __extends(t,n),t}(Base)),Picker=function(n){function t(t,i,r,u,f,e){var o=n.call(this,t,i,f,e)||this;return o.initRepositories=function(){o.intervalsRepository=new IntervalsRepository(o.options);o.entriesRepository=new EntriesRepository(o.options,o.intervalsRepository)},o.show=function(){o.dom.picker.removeClass("flipOutX").addClass("flipInX").show()},o.hide=function(){o.dom.picker.removeClass("flipInX").addClass("flipOutX")},o.drawCalendar=function(n){var i=this,t=(void 0===n&&(n=void 0),this.dom.datepicker),r=t.datepicker("getDate"),u=new Date,u=void 0===n||isNaN(n)?null===r?u:r:moment(n.toString(),this.options.dateFormat).toDate();return t.off(),t.datepicker("destroy"),t.datepicker({language:this.lang,weekStart:this.options.firstDayOfWeek,format:this.options.dateFormat.toLowerCase(),startDate:new Date,endDate:Utilities.NumberToDate(this.endDate),beforeShowDay:function(n){var n=parseInt(moment(n).format(i.options.dateFormat)),t=i.entriesRepository.hasEntries(n);if(null!==t&&n<=i.endDate)return t?{classes:"available"}:{classes:"notavailable"}}}),t.datepicker("setDate",u),t.on("changeDate",function(){var n=parseInt(moment(t.datepicker("getDate")).format(i.options.dateFormat));i.dom.pickerDate.val(n);i.showHumanDate();i.showEntries(n,!1)}),this.showHumanDate(),parseInt(moment(t.datepicker("getDate")).format(this.options.dateFormat))},o.refreshCalendar=function(){var n=o.dom.datepicker.datepicker("getDate"),t=Utilities.GetNumberDate(new Date);o.loadIntervals(t,!0,n)},o.loadingCalendar=function(n){var t=o.dom.datepicker.children(".datepicker");n?t.addClass("datepicker-disabled"):t.removeClass("datepicker-disabled")},o.getCalendarDate=function(){var n=o.dom.datepicker.datepicker("getDate");return Utilities.GetNumberDate(n)},o.showEntries=function(n,t){var i;0===o.services.list.length?(o.showMessage("noservices"),o.toggleAppointBtn(!1)):o.lastAvailableDate&&n>o.lastAvailableDate?(o.showMessage("wrong_data"),o.toggleAppointBtn(!1)):!o.intervalsRepository.dateIsExists(n)||t?(i=Utilities.GetNumberDate(new Date))<n?o.loadIntervals(i,t):o.loadIntervals(n,t):0===(i=o.entriesRepository.get(n)).length?(o.showMessage("empty"),o.toggleAppointBtn(!1),o.options.useWaitList?(t=o.dom.courseModal.find("input[name^='appoints[']"),o.toggleWaitListBtn(0===t.length),0===t.length&&o.toggleWaitListBtn(!0)):o.toggleWaitListBtn(!1)):o.displayEntries(i)},o.loadIntervals=function(n,t,i){void 0===t&&(t=!1);void 0===i&&(i=void 0);var r=n=void 0===n?void 0:n,u=o.options.daysToLoad,f=(void 0!==n&&!isNaN(n)||(r=o.getCalendarDate(),n=r),o.intervalsRepository.skippedDaysBefore(n)),u=f>o.options.daysToLoad?2*o.options.daysToLoad:u+f,r=Utilities.DateNumberAddDays(r,-(f>o.options.daysToLoad?o.options.daysToLoad:f)),f=Utilities.DateNumberAddDays(r,u),e=Utilities.DateDiffDays(r,o.endDate);u=f>o.endDate?e+1:u;$.ajax({dataType:"json",async:!0,type:"POST",url:"/Master/FreeTime",data:{id:o.masterId,employeeId:o.employeeId,branchId:o.branchId,services:o.services.list.map(function(n){return n.id+":"+n.count}),date_start:r,days:u},beforeSend:function(){o.loading(!0)},success:function(r){o.validateFreeTimes(r)&&(t&&(o.entriesRepository.list.length=0,o.intervalsRepository.list.length=0),1===o.services.list.length&&1<o.services.list[0].groupSize?o.intervalsRepository.addStatic(r):o.intervalsRepository.add(r),o.intervalsRepository.dateIsExists(n)||(o.lastAvailableDate=o.intervalsRepository.LastDate),o.showEntries(n,!1),o.drawCalendar(n),i&&o.dom.datepicker.datepicker("setDate",i))},complete:function(){o.loading(!1)},error:function(n){alert(n.responseText)}})},o.validateFreeTimes=function(n){return null!=n&&0!=n.length||(o.showMessage("wrong_data"),console.error("Wrong free time data"),!1)},o.onCartUpdated=function(n){o.services=n.services;o.entriesRepository.setDuration(n.totalDuration);0<o.services.list.length?(n=o.drawCalendar(),o.showEntries(n,!0),o.drawCalendar(n)):o.hide();n=0<o.services.list.length&&o.options.allowCourses?o.services.list.map(function(n){return n.courseSetSize}).reduce(function(n,t){return n<t?n:t}):0;o.dom.pickerBookBtn.attr("data-target",1<n?"#CourseModal":"#OrderModal")},o.updateOptions=function(n){var t=o.getCalendarDate();$.extend(o.options,n);o.setEndDate();o.entriesRepository.setOptions(n);o.showEntries(t,!1);o.drawCalendar(t)},o.setEndDate=function(){o.endDate=Utilities.GetNumberDate(new Date(1e3*(moment().unix()+60*(new Date).getTimezoneOffset()+60*o.options.limitInterval)))},o.selectDefaultTime=function(){var n=o.dom.pickerTimeToggleLabel.first(),r=n.children("input").data("bookingid"),t=n.children("input").val(),i=(o.dom.pickerTime,(i=n.children("input").data("employeeid"))||"0");o.dom.masterForm.find("input[name='employeeId']").val(i);o.dom.masterForm.find("input[name='bookingId']").val(r);"manual"===t?(o.showMessage("overflow"),o.toggleAppointBtn(!1)):void 0!==t&&0<t.length&&(o.toggleTimeBtn(n,!0),o.showBookTime(t),o.showMessage(),o.showEndTime(n.children("input")))},o.toggleTimeBtn=function(n,t){var i;t?(i=n.children("input").attr("name"),n.parent().find('input[name="'+i+'"]').prop("checked",!1),n.addClass("active")):n.removeClass("active");n.prop("checked",t)},o.toggleAppointBtn=function(n){o.dom.pickerFooter.toggle(n)},o.toggleWaitListPanel=function(){o.dom.pickerWaitListPanel.toggle();o.dom.orderWaitListBtn.toggle(!1)},o.toggleWaitListBtn=function(n){o.dom.pickerWaitListPanel.toggle(!1);o.dom.orderWaitListBtn.toggle(n)},o.showBookTime=function(n){var t=$("._picker__time"),i=$("[name=time_manual]"),r=$("._picker__time_toggle_manual");o.toggleTimeBtn(r,!1);t.text(n);i.val(n)},o.toggleTime=function(n){var i=("INPUT"===n.currentTarget.nodeName?n.currentTarget:n.currentTarget.firstChild).value,t=("INPUT"===n.currentTarget.nodeName?$(n.currentTarget):$(n.currentTarget).firstChild()).data("employeeid"),t=(o.dom.masterForm.find("input[name='employeeId']").val(t),("INPUT"===n.currentTarget.nodeName?$(n.currentTarget):$(n.currentTarget).firstChild()).data("bookingid"));o.dom.masterForm.find("input[name='bookingId']").val(t);o.showBookTime(i);o.showEndTime($(n.currentTarget));$(".picker")[0].scrollIntoView({block:"end"})},o.showEndTime=function(n){var t=o.dom.pickerTime.text(),i=o.dom.pickerDate.val(),r=o.dom.pickerTimeEnd,i=moment(i+" "+t,o.options.dateFormat+" "+o.options.timeFormat).locale("en"),t=o.dom.serviceCartDuration.data("duration");1===o.services.list.length&&1<o.services.list[0].groupSize&&n&&(t=n.data("duration"));r.text(i.add(t,"minutes").format(o.options.timeFormat))},o.showHumanDate=function(){o.dom.pickerDateDisplay.text(moment(o.dom.pickerDate.val(),o.options.dateFormat).format("DD MMMM"))},o.displayEntries=function(n){var r=o.dom.pickerTimeToggle,t,i;for(o.toggleAppointBtn(!0),r.find("label").remove(),t=n.length-1;0<=t;t--){i=Utilities.minutesToTime(n[t].time,o.options.use24timeFormat);$("<label/>",{"class":"radio btn btn-default btn-rounded btn-alt",html:$("<input/>",{type:"radio","data-employeeId":n[t].employeeId,"data-bookingId":n[t].bookingId,"data-duration":n[t].duration,name:"time",value:i})}).append(i).prependTo(r).find("input").on("change",function(n){return o.toggleTime(n)})}o.selectDefaultTime()},o.showMessage=function(n){void 0===n&&(n=void 0);var t=this.dom.pickerTimeToggle,i=this.dom.pickerMessage;i.hide();t.show();void 0!==n&&(t.hide(),i.filter("[data-message="+n+"]").show())},o.loading=function(n){n?(o.dom.picker.addClass("panel-disabled"),o.dom.pickerOptionsPanel.addClass("panel-disabled")):(o.dom.picker.removeClass("panel-disabled"),o.dom.pickerOptionsPanel.removeClass("panel-disabled"))},o.setEndDate(),o.initRepositories(),o.dom.pickerTimeToggleInput.off("change"),o.dom.pickerTimeToggleInput.on("change",function(n){return o.toggleTime(n)}),o.dom.pickerTime.off("blur"),o.dom.pickerTime.on("blur",function(){setTimeout(o.showEndTime,50)}),o.employeeId=r,o.branchId=u,o.dom.pickerBookBtn.prop("disabled",!1),o.dom.orderWaitListBtn.off("click"),o.dom.orderWaitListBtn.on("click",function(n){return o.toggleWaitListPanel(n)}),o}return __extends(t,n),t}(Base),PickerOptionControls=(!function(n){n[n.Smart=0]="Smart";n[n.Grid=1]="Grid";n[n.Stack=2]="Stack";n[n.Exact=3]="Exact"}(Mode=Mode||{}),function(n,t){var i=this;this.lang="en";this.optionsForm=null;this.preferredInput=null;this.stepInput=null;this.cutBeginInput=null;this.cutEndInput=null;this.modeInput=null;this.lastTimeInput=null;this.closestTimeInput=null;this.gapInput=null;this.scheduleInput=null;this.debounceDelay=200;this.schedulePanel=null;this.addScheduleTime=null;this.timePicker=null;this.timePickable=null;this.onChanged=function(){};this.use24Format=function(){return i.use24HourFormat&&i.use24HourFormat.prop("checked")};this.buildPicker=function(){var u=[],n,e;if(i.use24Format())for(n=0;n<24;n++)u.push(n);else for(n=1;n<=12;n++)u.push(n);for(var s=u.map(i.numberToOption),f=[],n=0;n<60;n+=5)f.push(n);if(e=f.map(i.numberToOption),i.timePicker.find(".time-picker__select").each(function(n,t){0===n?$(t).html(s.join("")):1===n?$(t).html(e.join("")):2===n&&i.use24Format()&&$(t).hide()}),i.timePicker.find(".btn-save").on("click",function(){return i.onSaveTime()}),i.options.schedule){for(var r=i.options.schedule,o=[],n=0;n<r.length;n++){var t=i.use24Format()?i._minutesTo24Hour(r[n]):i._minutesToAMPM(r[n]),t="".concat(t.hour,":").concat(t.minute," ").concat(t.meridiem),t=i.createTimePanel(t,r[n]);o.push(t[0])}i.schedulePanel.append(o)}};this.onSaveTime=function(){var r,n=i.getTimeStringFromPicker(i.timePicker),t=i.schedulePanel.find(".time-panel").toArray();0<=t.map(function(n){return n.innerText}).indexOf(n)||(r=i._timeToMinutes(i.getTimePartsFromString(n)),i.timePickable?(i.timePickable.innerText=n,$(i.timePickable).parent()[0].dataset.minutes=r.toString()):(n=i.createTimePanel(n,r),t.push(n[0])),t.sort(function(n,t){return n.dataset.minutes-t.dataset.minutes}),i.schedulePanel.empty(),i.schedulePanel.append(t),i.updateSchedule())};this.createTimePanel=function(n,t){return t=$('<div class="time-panel" data-minutes="'.concat(t,'">')),n=$('<div class="time-label">'.concat(n,'<\/div><div class="time-delete"><span class="micon-cross"/><\/div>')),t.append(n),t};this.onDeleteTime=function(n){$(n.target).parents(".time-panel").remove();i.updateSchedule()};this.getTimePartsFromPickable=function(n){return i.getTimePartsFromString(n.innerText)};this.getTimePartsFromString=function(n){var t=i.use24Format()?/^(\d+):(\d+)$/:/^(\d+):(\d+) (am|pm)$/,n=n.match(t).splice(1);return{hour:n[0],minute:n[1],meridiem:n[2]}};this.getSelectsFromPicker=function(n){return n=n.find(".time-picker__select"),{hour:n[0],minute:n[1],meridiem:n[2]}};this.getTimeStringFromPicker=function(n){return n=this.getSelectsFromPicker(n),"".concat(n.hour.value,":").concat(n.minute.value)+(this.use24Format()?"":" ".concat(n.meridiem.value))};this.numberToOption=function(n){return n=n.toString().padStart(2,"0"),'<option value="'.concat(n,'">').concat(n,"<\/option>")};this.onTimeClick=function(n){i.timePickable=n.target;var r,u,t,n=i.getSelectsFromPicker(i.timePicker);i.timePickable.innerText&&(r=(t=i.getTimePartsFromPickable(i.timePickable)).hour,u=t.minute,t=t.meridiem,n.hour.value=r,n.minute.value=u,n.meridiem.value=t);i.timePicker.modal("show")};this.onAddNewTime=function(){i.timePickable=null;var n=i.getSelectsFromPicker(i.timePicker);i.use24Format()?(n.hour.value="00",n.minute.value="00"):(n.hour.value="12",n.minute.value="00",n.meridiem.value="am");i.timePicker.modal("show")};this.updateSchedule=function(){var n=[],t=(i.optionsForm.find(".time-label").each(function(t,r){r=i.getTimePartsFromPickable(r);r=i._timeToMinutes(r);n.push(r)}),JSON.stringify(n));i.scheduleInput.val(t)};this._timeToMinutes=function(n){var t=n.hour,i=n.minute,n=n.meridiem,t=Number(t);return"am"===n&&12===t?t-=12:"pm"===n&&t<12&&(t+=12),60*t+Number(i)};this._minutesToAMPM=function(n){var t=n%60,n=(n-t)/60,i=12<=n?"pm":"am";return{hour:(n=0==n?n+12:12<n?n-12:n).toString().padStart(2,"0"),minute:t.toString().padStart(2,"0"),meridiem:i}};this._minutesTo24Hour=function(n){var t=n%60;return{hour:((n-t)/60).toString().padStart(2,"0"),minute:t.toString().padStart(2,"0"),meridiem:""}};this.initSlider=function(n,t){return void 0===t&&(t=function(n){return n}),new SliderControl(n.attr("name"),{lang:i.lang,onChanged:i.onChange,onFormat:t})};this.togglePanel=function(n){$(n.target).is(":checked")?i.dom.pickerOptionsPanel.removeClass("flipOutX").addClass("flipInX").show():(i.dom.pickerOptionsPanel.addClass("flipOutX").removeClass("flipInX"),setTimeout(function(){i.dom.pickerOptionsPanel.hide()},600))};this.toggleFields=function(n){n=parseInt(n.target.value);i.showFields(n)};this.showFields=function(n){switch(i.optionsForm.find('[class*="picker-option-"]').hide(),n){case Mode.Smart:i.optionsForm.find('[class*="picker-option-smart"]').show();break;case Mode.Grid:i.optionsForm.find('[class*="picker-option-grid"]').show();break;case Mode.Stack:i.optionsForm.find('[class*="picker-option-stack"]').show();break;case Mode.Exact:i.optionsForm.find('[class*="picker-option-exact"]').show()}};this.onChange=function(n){var n=$(n.target).val();null!==n&&0<n.length&&(n=$.extend(i.options,{mode:parseInt(i.modeInput.filter(":checked").val()),step:parseInt(i.stepInput.val()),cutBegin:parseInt(i.cutBeginInput.val()),cutEnd:parseInt(i.cutEndInput.val()),preferred:parseInt(i.preferredInput.val()),deadInterval:60*parseInt(i.closestTimeInput.val()),limitInterval:1440*parseInt(i.lastTimeInput.val()),schedule:i.scheduleInput.val()}),i.onChanged(n))};this.lang=n;this.dom=new OptionsDom;this.options=$.extend({},t);this.optionsForm=$(".picker__options-form");this.stepInput=this.optionsForm.find('[name="Step"]');this.preferredInput=this.optionsForm.find('[name="Preferred"]');this.cutBeginInput=this.optionsForm.find('[name="CutEdgeBegin"]');this.cutEndInput=this.optionsForm.find('[name="CutEdgeEnd"]');this.modeInput=this.optionsForm.find('[name="Mode"]');this.lastTimeInput=this.optionsForm.find('[name="LastTime"]');this.closestTimeInput=this.optionsForm.find('[name="ClosestTime"]');this.gapInput=this.optionsForm.find('[name="Gap"]');this.scheduleInput=$("#AppointGrid");this.use24HourFormat=$("#common").find("#Use24HourFormat");this.schedulePanel=$(".time-schedule");this.addScheduleTime=$(".add-time");this.timePicker=$(".time-picker");this.modeInput.on("change",function(n){return i.onChange(n)});this.preferredInput.on("change",function(n){return i.onChange(n)});this.scheduleInput.on("change",function(n){return i.onChange(n)});this.initSlider(this.stepInput);this.initSlider(this.cutBeginInput);this.initSlider(this.cutEndInput);this.initSlider(this.lastTimeInput);this.initSlider(this.closestTimeInput);this.initSlider(this.gapInput);this.dom.pickerOptionsToggle.on("change",function(n){return i.togglePanel(n)});this.dom.pickerOptionsCancel.on("click",function(){i.dom.pickerOptionsToggle.prop("checked",!1).change().parent().removeClass("active")});this.modeInput.on("change",function(n){return i.toggleFields(n)});this.showFields(this.options.mode);this.schedulePanel.off("click",".time-delete");this.schedulePanel.delegate(".time-delete","click",function(n){return i.onDeleteTime(n)});this.schedulePanel.off("click",".time-label");this.schedulePanel.delegate(".time-label","click",function(n){return i.onTimeClick(n)});this.addScheduleTime.on("click",function(){return i.onAddNewTime()});this.buildPicker()}),PickerOptions=(!function(n){n[n.Success=0]="Success";n[n.Error=1]="Error";n[n.Message=2]="Message"}(StatusType=StatusType||{}),function(n){function t(t,i,r,u,f){var e=n.call(this,t,i,r,u)||this;return e.save=function(){var n=e.dom.pickerOptionsSave,t=e.dom.pickerOptionsForm.find("input, select, textarea").serialize();$.ajax({url:"/Master/ShortOptionsSave/"+e.masterId,method:"POST",data:t,beforeSend:function(){n.prop("disabled",!0);e.loading(!0)},success:function(n){""===n?e.setStatus(StatusType.Message,e.options.locales.emptyResponse):0===n.response?e.setStatus(StatusType.Success,e.options.locales.settingsAreSaved):0<n.response?e.setStatus(StatusType.Error,n.error):e.setStatus(StatusType.Error,n)},complete:function(){n.prop("disabled",!1);e.loading(!1);e.savedOptions=$.extend({},e.options)},error:function(n){console.error(e.options.locales.settingsAreSaving+". "+n.statusText+": "+n.responseText)}})},e.cancel=function(){e.controlsInstance.options=$.extend({},e.savedOptions);e.pickerInstance.updateOptions(e.controlsInstance.options)},e.setStatus=function(n,t){var i="";switch(n){case StatusType.Error:i="text-danger";break;case StatusType.Success:i="text-primary"}t=$("<span/>",{"class":i,text:t});e.dom.pickerOptionsStatus.html(t.html());n===StatusType.Success&&setTimeout(function(){e.dom.pickerOptionsStatus.html("")},5e3)},e.loading=function(n){n?e.dom.pickerOptionsPanel.addClass("panel-disabled"):e.dom.pickerOptionsPanel.removeClass("panel-disabled")},e.savedOptions=$.extend({},e.options),e.pickerInstance=f,e.controlsInstance=new PickerOptionControls(t,r),e.dom.pickerOptionsSave.off("click"),e.dom.pickerOptionsSave.on("click",function(){return e.save()}),e.dom.pickerOptionsCancel.off("click"),e.dom.pickerOptionsCancel.on("click",function(){return e.cancel()}),e.controlsInstance.onChanged=function(n){e.pickerInstance.updateOptions(n)},e}return __extends(t,n),t}(Base)),OrderModal=function(n){function t(t,i,r,u,f){var e=n.call(this,t,i,r,u)||this,t=(e.dateFormat="YYYYMMDD",e.fields={},e.isAwaitng=!1,e.isTimeless=!1,e.decodeHTMLEntities=function(n){return n&&"string"==typeof n?n.replace(/&quot;/gim,'"').replace(/&#160;/gim,""):n},e.putValues=function(n){this.dom.orderName.text(this.dom.masterForm.find('input[name="master"]').val());var t,i=this.dom.courseModal.find("input[name^='appoints[']"),r=this.dom.orderModal.data("i18n"),u=this.dom.picker.find("[name=time_manual]");this.isAwaitng?(t=this.dom.masterForm.find("input[name='dtime']").parent("label.active").text(),this.dom.orderTime.text(t.toLowerCase()),this.dom.orderDate.text(this.orderDateText),this.dom.orderCount.hide()):this.isTimeless?(u.val(""),this.dom.orderTime.text(""),this.dom.orderDate.text(""),this.dom.orderCount.hide()):(1<i.length?(t=JSON.parse($(i[0]).val()),this.dom.orderDate.text(moment(t.date,this.dateFormat).format("D MMMM")),this.dom.orderCount.find("._count_value").text(i.length),this.dom.orderCount.show()):(this.dom.orderDate.text(moment(n.date,this.dateFormat).format("D MMMM")),this.dom.orderCount.hide()),this.dom.orderTime.text(n.time_manual));this.dom.orderPrice.html(0<this.serviceCartInstance.services.totalCost?this.serviceCartInstance.getFormatedPrice():"");this.dom.orderServices.html(this.serviceCartInstance.services.generateShortHtmlList(3,r))},e.send=function(n){var r,i,t=this;n.preventDefault();n.result&&n.result&&(this.isAwaitng?(n=this.dom.pickerDate.val(),this.dom.pickerDate.val("19700101"),this.dom.masterForm.find("input[name='preferredDate']").val(n),this.dom.masterForm.find("input[name='employeeId']").val()||this.dom.masterForm.find("input[name='employeeId']").val(0)):this.isTimeless&&this.dom.pickerDate.val("19700102"),r=(n=this.dom.masterForm).attr("action"),i=n.find('button[type="submit"]'),n=n.serialize(),n+="&duration="+this.serviceCartInstance.totalDuration,$.ajax({url:r,type:"POST",data:n,beforeSend:function(){i.prop("disabled",!0)},success:function(n){""===n?(console.error("Букинг: сервер вернул пустой ответ."),t.openStage("error")):0===n.response?t.openStage("success"):-2===n.response?(t.dom.orderModal.find("#payBtn").data(n.pdata),t.openStage("payment")):0<n.response?t.openStage("customError",n.error):console.warn("Букинг. "+n)},complete:function(){i.prop("disabled",!1)},error:function(n){t.openStage("error");console.error("Букинг. "+n.statusText+": "+n.responseText)}}))},e.beginPay=function(){var n=this.dom.orderModal.find("#payBtn"),t=n.data();$.ajax({type:"POST",url:"/master/PayOrder",data:t,beforeSend:function(){n.prop("disabled",!0)},success:function(n){0===n.response?document.location.assign(n.url):this.openStage("payError",n.error)},complete:function(){n.prop("disabled",!1)}})},e.timeIsAvailable=function(){var n,i=this,t=!1;return!!this.isAwaitng||(n=this.dom.masterForm.serializeObject(),$.ajax({dataType:"json",async:!1,type:"POST",url:"/Master/ApproveAppoint",data:{id:this.masterId,employeeId:n.employeeId,branchId:n.branchId,services:n.services,date_start:n.date,appointTime:n.time_manual,duration:this.serviceCartInstance.totalDuration,appoints:n.appoints,bookingId:n.bookingId,days:0},beforeSend:function(){},success:function(n){0===n.response?t=!0:i.openStage("customInfo",n.error)},complete:function(){},error:function(n){alert(n.responseText)}}),t)},e.openStage=function(n,t){void 0===t&&(t=void 0);"exit"===n&&(n="form",this.dom.orderModal.modal("hide"));var i=this.dom.orderModalStages,i=(i.hide(),i.filter('[data-stage="'+n+'"]'));i.show();void 0!==t&&i.find("._stage-message").text(t);"success"===n&&(this.dom.pickerBookBtn.prop("disabled",!0),this.dom.orderWaitListBtn.prop("disabled",!0))},e.goStage=function(n){n.preventDefault();this.openStage($(n.currentTarget).data("go-stage"))},e.loading=function(n){n?imageEditor.loader.show():imageEditor.loader.hide()},e.createMask=function(){var t=this.fields.intltel.intlTelInput("getSelectedCountryData"),n=this.fields.intltel.attr("placeholder");return n?(n=n.replace(/[0-9]/g,"9"),"ru"!==t.iso2&&(n+="?99"),n):""},e.serviceCartInstance=f,e.orderDateText=e.dom.orderDate.text(),e.dom.orderModal.off("show.bs.modal"),e.dom.orderModal.on("show.bs.modal",function(n){n=$(n.relatedTarget);e.isAwaitng=n.hasClass("order-awaiting-btn");e.isTimeless=n.hasClass("_book__btn");n=e.dom.masterForm.serializeObject();e.putValues(n)}),e.dom.orderModal.off("hide.bs.modal"),e.dom.orderModal.on("hide.bs.modal",function(){e.serviceCartInstance.picker.refreshCalendar()}),e.openStage("form"),e.fields={name:e.dom.orderModal.find('input[name="name"]'),phone:e.dom.orderModal.find('input[name="phone"]'),intltel:e.dom.orderModal.find('input[name="intltel"]')},e.fields.intltel.intlTelInput({preferredCountries:["us","gb","ru","uk","br","pt","de"],separateDialCode:!0,autoHideDialCode:!0,nationalMode:!0,autoPlaceholder:"aggressive",allowDropdown:!e.options.fixPhoneCountryCode,initialCountry:e.options.fixPhoneCountryCode?e.options.countryCode:"auto",utilsScript:"/Content/v2/js/utils.js",geoIpLookup:function(n){$.get("https://ipinfo.io",function(){},"jsonp").always(function(t){t=t&&t.country?t.country:"";n(t)})}}),e.fields.intltel.on("input change countrychange",function(){e.fields.phone.val(e.fields.intltel.intlTelInput("getNumber"))}),e.fields.intltel.on("blur",function(){e.fields.phone.val(e.fields.intltel.intlTelInput("getNumber"))}),e.fields.intltel.on("countrychange",function(){e.fields.intltel.mask(e.createMask())}),e.fields.intltel.on("click",function(){e.fields.intltel.setCursorPosition(0)}),e.fields.intltel.on("paste",function(n){n.preventDefault();var t=e.fields.intltel.intlTelInput("getSelectedCountryData"),n=(n=n.originalEvent.clipboardData.getData("text/plain")).replace("+","").replace(t.dialCode,"");e.fields.intltel.val(n)}),$.removeData(e.dom.masterForm.get(0),"validator"),e.fields.name.data("validate")),i=(e.dom.masterForm.off("submit"),e.dom.masterForm.validate({rules:{name:{nameSurname:"surname"===t},intltel:{intlTel:!0},agree:{required:!0}},messages:{agree:{required:"Требуется согласие"}}}),e.dom.masterForm.on("submit",function(n){return e.send(n)}),e.intervalsRepository=new IntervalsRepository(e.options),e.entriesRepository=new EntriesRepository(e.options,e.intervalsRepository),e.dom.orderModal.find("[data-go-stage]")),r=(i.off("click"),i.on("click",function(n){return e.goStage(n)}),e.dom.orderModal.find("#payBtn"));return r.off("click"),r.on("click",function(){return e.beginPay()}),$.fn.setCursorPosition=function(n){var t=$(this).get(0);t.setSelectionRange?t.setSelectionRange(n,n):t.createTextRange&&((t=t.createTextRange()).collapse(!0),t.moveEnd("character",n),t.moveStart("character",n),t.select())},window.setTimeout(function(){e.fields.intltel.mask(e.createMask())},300),e}return __extends(t,n),t}(Base),CourseModal=function(n){function t(t,i,r,u,f){var e=n.call(this,t,i,r,u)||this;return e.dateFormat="YYYYMMDD",e.appointments=[],e.minCourseSetSize=0,e.showOrder=!1,e.setupDialog=function(){e.dom.courseAppoints.empty();e.appointments=[];e.minCourseSetSize=0<e.serviceCartInstance.services.list.length?e.serviceCartInstance.services.list.map(function(n){return n.courseSetSize}).reduce(function(n,t){return n<t?n:t}):0},e.addAppoint=function(n){var u=e.options.use24timeFormat?n.time_manual:moment(n.time_manual,["h:mm A"],"en").format("HH:mm"),f=e.dom.pickerDate.val(),s=e.dom.serviceCartDuration.data("duration"),f=moment(f+" "+u,e.options.dateFormat+" "+e.options.timeFormat).locale("en"),n={bookingId:n.bookingId,date:n.date,time:u,end_time:f.add(s,"minutes").format(e.options.timeFormat)},h=JSON.stringify(n),i;if(!e.appointments.some(function(n){return JSON.stringify(n)===h})&&e.appointments.length<e.minCourseSetSize){for(e.appointments.push(n),e.appointments.sort(function(n,t){return n.date+n.time==t.date+t.time?0:n.date+n.time>t.date+t.time?1:-1}),e.dom.courseAppoints.empty(),i=0;i<e.appointments.length;i++){var t=e.appointments[i],r=$("<div>").addClass("panel course-apt-panel panel-default master__panel_description"),o=($("<input>").attr("type","hidden").attr("name","appoints["+i+"]").attr("value",JSON.stringify(t)).appendTo(r),$("<div>").addClass("panel-body").css({padding:"10px"}).appendTo(r));$("<button>").data("apt",t).addClass("close course-apt-remove").attr("type","button").css({position:"absolute",top:"0",bottom:"0",right:"0",color:"red"}).on("click",function(n){e.removeAppoint($(n.currentTarget))}).append($("<span>").addClass("micon-cross")).appendTo(o);$("<div>").css({"white-space":"nowrap","text-overflow":"ellipsis",overflow:"hidden"}).addClass("course-atp-time").html(moment(t.date,e.dateFormat).format("dd D MMMM")+' <span style="font-size: 16px;">'+(e.options.use24timeFormat?t.time:moment(t.time,["HH:mm"]).locale("en").format("h:mmA"))+'<\/span><span style="font-size: 14px; opacity: 0.6; vertical-align: bottom"> - '+t.end_time+"<\/span>").appendTo(o);e.dom.courseAppoints.append(r)}e.onAppointmentsChanged()}},e.onAppointmentsChanged=function(){e.appointments.length>=e.minCourseSetSize?e.dom.courseAddBtn.hide():e.dom.courseAddBtn.show()},e.removeAppoint=function(n){var i,t=n.data("apt"),t=e.appointments.indexOf(t);-1!==t&&((i=n.parents(".course-apt-panel")).slideUp(300,function(){i.remove()}),e.appointments.splice(t,1),e.onAppointmentsChanged())},e.serviceCartInstance=f,e.showOrder=!1,e.dom.courseModal.find(".add-btn").off("click"),e.dom.courseModal.find(".add-btn").on("click",function(){e.showOrder=!1;e.dom.courseModal.modal("hide")}),e.dom.courseModal.find(".end-btn").off("click"),e.dom.courseModal.find(".end-btn").on("click",function(){e.showOrder=!0;e.dom.courseModal.modal("hide")}),e.dom.courseModal.off("show.bs.modal"),e.dom.courseModal.on("show.bs.modal",function(){var n=e.dom.masterForm.serializeObject();e.dom.courseService.html(e.serviceCartInstance.services.list.map(function(n){return n.name}).join(","));e.addAppoint(n)}),e.dom.courseModal.off("hidden.bs.modal"),e.dom.courseModal.on("hidden.bs.modal",function(){e.showOrder&&e.dom.orderModal.modal("show")}),e.serviceCartInstance.onServiceChanged=e.setupDialog,e}return __extends(t,n),t}(Base),CountModal=function(n){function t(t,i,r,u,f){var e=n.call(this,t,i,r,u)||this;return e.serviceCartInstance=f,e.btnWidth=$("._service-cart__toggle-item").outerWidth(),e.dom.countModal.find(".input-group > input").off("change"),e.dom.countModal.find(".input-group > input").on("change",function(n){""===n.target.value&&(n.target.value="0")}),e.dom.countModal.off("show.bs.modal"),e.dom.countModal.on("show.bs.modal",function(n){e.serviceToggleItem=n.relatedTarget;var n=$(e.serviceToggleItem).data("service-max-count"),i=$(e.serviceToggleItem).data("service-count"),t=u.countModal.find(".input-group > input");t.attr("max",n);t.focus();t.val(i||1)}),e.dom.countModal.off("shown.bs.modal"),e.dom.countModal.on("shown.bs.modal",function(){var n=u.countModal.find(".input-group > input"),i,t;if(n&&0<n.length){n=n[0];t=n.value.length;try{n.type="text";n.setSelectionRange?(n.focus(),n.setSelectionRange(t,t)):n.createTextRange&&((i=n.createTextRange()).collapse(!0),i.moveEnd("character",t),i.moveStart("character",t),i.select())}finally{n.type="number"}}}),e.dom.countModal.off("hide.bs.modal"),e.dom.countModal.on("hide.bs.modal",function(){var n=$(e.serviceToggleItem).data("service-count"),t=0<n,i=$(e.serviceToggleItem).find("input");i.prop("checked",t);t?i.val($(e.serviceToggleItem).data("service-id")+":"+n):$(e.serviceToggleItem).data("service-count",0).removeClass("active").children("input").prop("checked",!1)}),e.dom.countModal.find(".btn-inc-count").off("click"),e.dom.countModal.find(".btn-inc-count").on("click",function(n){n.preventDefault();var n=$(e.serviceToggleItem).data("service-max-count"),t=u.countModal.find(".input-group > input"),i=parseFloat(t.val());i<n&&t.val(i+=1)}),e.dom.countModal.find(".btn-dec-count").off("click"),e.dom.countModal.find(".btn-dec-count").on("click",function(n){n.preventDefault();var n=u.countModal.find(".input-group > input"),t=parseFloat(n.val());0<t&&n.val(--t)}),e.dom.countModal.find(".btn-ok").off("click"),e.dom.countModal.find(".btn-ok").on("click",function(n){n.preventDefault();var n=$(e.serviceToggleItem),i=$(e.serviceToggleItem).data("service-max-count"),t=u.countModal.find(".input-group > input"),r=n.data("service-btn-text"),t=parseFloat(t.val());n.css("min-width",e.btnWidth);0<t&&t<=i?(n.find("span").text(t),n.data("service-count",t)):0===t&&(n.find("span").text(r),n.data("service-count",t));n.trigger("countChanged",[t])}),e}return __extends(t,n),t}(Base),ServiceEditor=function(n){var t=this;this.options={editableClass:"services__row_editable",disabledClass:"services__row_disabled",checkboxClass:"_services__input-toggle"};this.checkboxes=null;this.masterId="";this.setUpListeners=function(){$("._master__form").delegate("."+t.options.editableClass+" input."+t.options.checkboxClass,"change",function(n){return t.onServiceToggle(n)})};this.onServiceToggle=function(n){setTimeout(function(){t.syncToogleBtn(n.target)},0)};this.syncToogleBtn=function(n){var i=n.getAttribute("value");t.checkboxes=$("."+t.options.editableClass+" input."+t.options.checkboxClass);t.checkboxes.filter('[value="'+i+'"]').each(function(i,r){return t.toggleClass(r,n.checked)}).not(n).prop("checked",n.checked);t.send(i,n.checked);n.checked||(i=$(n).parents("."+t.options.editableClass).find("._service-cart__toggle-item")).find("input").is(":checked")&&i.click()};this.toggleClass=function(n,i){n=$(n).parents("."+t.options.editableClass);i?n.removeClass(t.options.disabledClass):n.addClass(t.options.disabledClass)};this.send=function(n,i){$.ajax({url:"/Master/ServiceToogle/"+t.masterId,type:"POST",data:"serviceId="+n+"&enabled="+i,success:function(t){0<t.response?console.error(t.error):console.info("Услуга "+n+" теперь "+(i?"активна":"скрыта"))},error:function(){console.error("Услуга "+n+" не изменена")}})};this.masterId=n;this.checkboxes=$("."+this.options.editableClass+" input."+this.options.checkboxClass);this.setUpListeners()},Call=function(n){function t(t,i,r,u,f){var e=n.call(this,t,i,f)||this;return e.process=function(){var n=e.dom.callBtn;$.ajax({url:"/Master/Call",type:"POST",data:{id:e.masterId,employeeId:e.employeeId},beforeSend:function(){n.prop("disabled",!0)},success:function(t){"object"==typeof t?(n.prop("disabled",!0),"call"===t.type?(e.pasteImage(t.image),window.location.href="tel:"+t.number):"image"===t.type&&e.pasteImage(t.image)):e.pasteText(t)},complete:function(){n.prop("disabled",!1)},error:function(n){console.error("Звонок. "+n.statusText+": "+n.responseText)}})},e.pasteImage=function(n){n=$("<img/>",{src:n});e.dom.callBtn.html(n[0].outerHTML)},e.pasteText=function(n){e.dom.callBtn.text(n)},e.dom.callBtn.off("click"),e.dom.callBtn.on("click",function(){return e.process()}),e.dom.callBtn.text(u),e.employeeId=r,e}return __extends(t,n),t}(Base)