{"version":3,"mappings":"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","names":["ChevronRight","createLucideIcon","t","e","module","this","r","i","u","a","o","c","f","h","d","l","$","y","M","n","m","v","s","g","D","p","S","_","w","O","b","k","dayjsLocales","__vitePreload","Y","CampayaCoreApiClient","baseUrl","http","__publicField","eventType","propertyId","listIndex","url_","options_","_response","response","status","_headers","_responseText","throwException","priceAndFeesRequest_Adults","priceAndFeesRequest_Children","priceAndFeesRequest_Infants","selectedOptions","priceAndFeesRequest_FromDate","priceAndFeesRequest_ToDate","priceAndFeesRequest_Pets","priceAndFeesRequest_BookServices","priceAndFeesRequest_DiscountCode","priceAndFeesRequest_LanguageCurrencyKey","priceAndFeesRequest_Language","priceAndFeesRequest_SalesPartnerDetails_SalesPartner","priceAndFeesRequest_SalesPartnerDetails_BookingNumber","priceAndFeesRequest_SalesPartnerDetails_ServicePrices","priceAndFeesRequest_SalesPartnerDetails_RentalPrice","priceAndFeesRequest_SalesPartnerDetails_RentalCommission","priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage","priceAndFeesRequest_SalesPartnerDetails_CancellationTerm","priceAndFeesRequest_SalesPartnerDetails_StayPrice","priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking","priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking","priceAndFeesRequest_HybridDetails_RentalPrice","priceAndFeesRequest_HybridDetails_HybridFeeDetails","priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection","priceAndFeesRequest_FeeLanguage","item","index","attr","result200","body","agencyBookingNumber","bookingId","email","selectedPaymentMethod","serviceId","arrivalValue","departureValue","propertyIdWithType","guid","areaId","subject","content","logType","isOnline","date","adults","children","infants","fromDate","toDate","pets","bookServices","discountCode","languageCurrencyKey","language","salesPartnerDetails_SalesPartner","salesPartnerDetails_BookingNumber","salesPartnerDetails_ServicePrices","salesPartnerDetails_RentalPrice","salesPartnerDetails_RentalCommission","salesPartnerDetails_CommissionPercentage","salesPartnerDetails_CancellationTerm","salesPartnerDetails_StayPrice","salesPartnerDetails_IsDirectApiBooking","salesPartnerDetails_IsAffiliateBooking","hybridDetails_RentalPrice","hybridDetails_HybridFeeDetails","throwErrorOnInvalidMandatoryGroupSelection","feeLanguage","propertyIds","initialSearch","fieldList","fromIndex","size","areaName","sortMethod","fromPrice","toPrice","flexibleDates","salesPartnerIds","incrementalUpdateTimestamp","isFlexRent","aC","propertyType","dishwasher","washingMachine","tv","internet","wheelchairFriendly","eVChargingStation","indoorPool","spa","hotTub","firePlace","barbecue","coffeeMachine","petsAllowed","smokingAllowed","fromBedrooms","toBedrooms","bathrooms","themeId","distanceToWater","geoBoundingBox_SouthWestLat","geoBoundingBox_SouthWestLon","geoBoundingBox_NorthEastLat","geoBoundingBox_NorthEastLon","outdoorPool","hasLastMinuteAvailability","boostLastMinuteAvailability","germanChannels","dryer","privateOwner","scandinavianChannels","chromeCast","minAverageReviewsAsBoost","cancellationTemplateIds","query","month","year","timeZoneOffsetMinutes","textIds","BookingStatusType","DbAnalyticEventTypes","LogTypes","PaymentOptions","PressureTagType","ApiException","message","headers","result","obj","suspectProtoRx","suspectConstructorRx","JsonSigRx","jsonParseTransform","key","value","warnKeyDropped","destr","options","_value","_lval","error","apiClient","useSearchStore","defineStore","modal","state","updateURL","newSearchRequired","dayjs","updateFilter","confirmed","newFromDate","newToDate","_a","_b","params","defaultArea","persons","param","newValue","deleteParam","urlParams","flexPeriod","continentId","res","relatedThemeId","relatedAreaId","triggerModals","allowFullSearch","setCountryId","hasDestinations","fetchDestinations","depth","parentAreaId","countryAreaId","country","searchQuery","isMobile","formattedGuests","personsSingularPluralTable","getText","bc","x","deserialized"],"ignoreList":[0,1,3,4,5,6,7,8,10],"sources":["../../../../SPAs/POCViteVue/node_modules/lucide-vue-next/dist/esm/icons/chevron-right.js","../../../../SPAs/POCViteVue/node_modules/dayjs/dayjs.min.js","../../../../SPAs/POCViteVue/src/services/dayjs-locales.service.ts","../../../../SPAs/POCViteVue/node_modules/dayjs/plugin/localeData.js","../../../../SPAs/POCViteVue/node_modules/dayjs/plugin/isoWeek.js","../../../../SPAs/POCViteVue/node_modules/dayjs/plugin/isSameOrBefore.js","../../../../SPAs/POCViteVue/node_modules/dayjs/plugin/isBetween.js","../../../../SPAs/POCViteVue/node_modules/dayjs/plugin/customParseFormat.js","../../../../SPAs/POCViteVue/node_modules/dayjs/plugin/weekOfYear.js","../../../../SPAs/POCViteVue/src/services/campayacore-api.service.ts","../../../../SPAs/POCViteVue/node_modules/destr/dist/index.mjs","../../../../SPAs/POCViteVue/src/store/search.store.ts"],"sourcesContent":["/**\n * @license lucide-vue-next v0.445.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronRight = createLucideIcon(\"ChevronRightIcon\", [\n [\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]\n]);\n\nexport { ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) import('dayjs/locale/da.js'),\r\n 'da-DK': () => import('dayjs/locale/da.js'),\r\n 'nl': () => import('dayjs/locale/nl.js'),\r\n 'nl-NL': () => import('dayjs/locale/nl.js'),\r\n 'fr': () => import('dayjs/locale/fr.js'),\r\n 'fr-FR': () => import('dayjs/locale/fr.js'),\r\n 'de': () => import('dayjs/locale/de.js'),\r\n 'de-DE': () => import('dayjs/locale/de.js'),\r\n 'it': () => import('dayjs/locale/it.js'),\r\n 'it-IT': () => import('dayjs/locale/it.js'),\r\n 'no': () => import('dayjs/locale/nb.js'),\r\n 'no-NO': () => import('dayjs/locale/nb.js'),\r\n 'es': () => import('dayjs/locale/es.js'),\r\n 'es-ES': () => import('dayjs/locale/es.js'),\r\n 'sv': () => import('dayjs/locale/sv.js'),\r\n 'sv-SE': () => import('dayjs/locale/sv.js'),\r\n default: () => import('dayjs/locale/en.js'),\r\n});\r\n","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","//----------------------\r\n// \r\n// Generated using the NSwag toolchain v14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org)\r\n// \r\n//----------------------\r\n\r\n/* tslint:disable */\r\n/* eslint-disable */\r\n// ReSharper disable InconsistentNaming\r\n\r\nexport class CampayaCoreApiClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n this.http = http ? http : window as any;\r\n this.baseUrl = baseUrl ?? \"\";\r\n }\r\n\r\n /**\r\n * @param eventType (optional)\r\n * @param propertyId (optional)\r\n * @param listIndex (optional)\r\n * @return Success\r\n */\r\n trackSearchResultPropertyGET(eventType?: DbAnalyticEventTypes | undefined, propertyId?: string | undefined, listIndex?: number | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/analytics/TrackSearchResultProperty?\";\r\n if (eventType === null)\r\n throw new Error(\"The parameter 'eventType' cannot be null.\");\r\n else if (eventType !== undefined)\r\n url_ += \"eventType=\" + encodeURIComponent(\"\" + eventType) + \"&\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n if (listIndex === null)\r\n throw new Error(\"The parameter 'listIndex' cannot be null.\");\r\n else if (listIndex !== undefined)\r\n url_ += \"listIndex=\" + encodeURIComponent(\"\" + listIndex) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processTrackSearchResultPropertyGET(_response);\r\n });\r\n }\r\n\r\n protected processTrackSearchResultPropertyGET(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param eventType (optional)\r\n * @param propertyId (optional)\r\n * @param listIndex (optional)\r\n * @return Success\r\n */\r\n trackSearchResultPropertyPOST(eventType?: DbAnalyticEventTypes | undefined, propertyId?: string | undefined, listIndex?: number | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/analytics/TrackSearchResultProperty?\";\r\n if (eventType === null)\r\n throw new Error(\"The parameter 'eventType' cannot be null.\");\r\n else if (eventType !== undefined)\r\n url_ += \"eventType=\" + encodeURIComponent(\"\" + eventType) + \"&\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n if (listIndex === null)\r\n throw new Error(\"The parameter 'listIndex' cannot be null.\");\r\n else if (listIndex !== undefined)\r\n url_ += \"listIndex=\" + encodeURIComponent(\"\" + listIndex) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processTrackSearchResultPropertyPOST(_response);\r\n });\r\n }\r\n\r\n protected processTrackSearchResultPropertyPOST(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @param selectedOptions (optional)\r\n * @param priceAndFeesRequest_FromDate (optional)\r\n * @param priceAndFeesRequest_ToDate (optional)\r\n * @param priceAndFeesRequest_Pets (optional)\r\n * @param priceAndFeesRequest_BookServices (optional)\r\n * @param priceAndFeesRequest_DiscountCode (optional)\r\n * @param priceAndFeesRequest_LanguageCurrencyKey (optional)\r\n * @param priceAndFeesRequest_Language (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_SalesPartner (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_BookingNumber (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_ServicePrices (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_RentalPrice (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_RentalCommission (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_CancellationTerm (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_StayPrice (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking (optional)\r\n * @param priceAndFeesRequest_HybridDetails_RentalPrice (optional)\r\n * @param priceAndFeesRequest_HybridDetails_HybridFeeDetails (optional)\r\n * @param priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection (optional)\r\n * @param priceAndFeesRequest_FeeLanguage (optional)\r\n * @return Success\r\n */\r\n reservation(priceAndFeesRequest_Adults: number, priceAndFeesRequest_Children: number, priceAndFeesRequest_Infants: number, propertyId?: string | undefined, selectedOptions?: SelectedBookingOption[] | undefined, priceAndFeesRequest_FromDate?: Date | undefined, priceAndFeesRequest_ToDate?: Date | undefined, priceAndFeesRequest_Pets?: number | undefined, priceAndFeesRequest_BookServices?: { [key: string]: number; } | undefined, priceAndFeesRequest_DiscountCode?: string | undefined, priceAndFeesRequest_LanguageCurrencyKey?: string | undefined, priceAndFeesRequest_Language?: string | undefined, priceAndFeesRequest_SalesPartnerDetails_SalesPartner?: number | undefined, priceAndFeesRequest_SalesPartnerDetails_BookingNumber?: string | undefined, priceAndFeesRequest_SalesPartnerDetails_ServicePrices?: { [key: string]: number; } | undefined, priceAndFeesRequest_SalesPartnerDetails_RentalPrice?: number | undefined, priceAndFeesRequest_SalesPartnerDetails_RentalCommission?: number | undefined, priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage?: number | undefined, priceAndFeesRequest_SalesPartnerDetails_CancellationTerm?: number | undefined, priceAndFeesRequest_SalesPartnerDetails_StayPrice?: number | undefined, priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking?: boolean | undefined, priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking?: boolean | undefined, priceAndFeesRequest_HybridDetails_RentalPrice?: number | undefined, priceAndFeesRequest_HybridDetails_HybridFeeDetails?: HybridFeeDetail[] | undefined, priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection?: boolean | undefined, priceAndFeesRequest_FeeLanguage?: Language | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/reservation?\";\r\n if (priceAndFeesRequest_Adults === undefined || priceAndFeesRequest_Adults === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_Adults' must be defined and cannot be null.\");\r\n else\r\n url_ += \"PriceAndFeesRequest.Adults=\" + encodeURIComponent(\"\" + priceAndFeesRequest_Adults) + \"&\";\r\n if (priceAndFeesRequest_Children === undefined || priceAndFeesRequest_Children === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_Children' must be defined and cannot be null.\");\r\n else\r\n url_ += \"PriceAndFeesRequest.Children=\" + encodeURIComponent(\"\" + priceAndFeesRequest_Children) + \"&\";\r\n if (priceAndFeesRequest_Infants === undefined || priceAndFeesRequest_Infants === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_Infants' must be defined and cannot be null.\");\r\n else\r\n url_ += \"PriceAndFeesRequest.Infants=\" + encodeURIComponent(\"\" + priceAndFeesRequest_Infants) + \"&\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n if (selectedOptions === null)\r\n throw new Error(\"The parameter 'selectedOptions' cannot be null.\");\r\n else if (selectedOptions !== undefined)\r\n selectedOptions && selectedOptions.forEach((item, index) => {\r\n for (const attr in item)\r\n if (item.hasOwnProperty(attr)) {\r\n url_ += \"SelectedOptions[\" + index + \"].\" + attr + \"=\" + encodeURIComponent(\"\" + (item as any)[attr]) + \"&\";\r\n }\r\n });\r\n if (priceAndFeesRequest_FromDate === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_FromDate' cannot be null.\");\r\n else if (priceAndFeesRequest_FromDate !== undefined)\r\n url_ += \"PriceAndFeesRequest.FromDate=\" + encodeURIComponent(priceAndFeesRequest_FromDate ? \"\" + priceAndFeesRequest_FromDate.toISOString() : \"\") + \"&\";\r\n if (priceAndFeesRequest_ToDate === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_ToDate' cannot be null.\");\r\n else if (priceAndFeesRequest_ToDate !== undefined)\r\n url_ += \"PriceAndFeesRequest.ToDate=\" + encodeURIComponent(priceAndFeesRequest_ToDate ? \"\" + priceAndFeesRequest_ToDate.toISOString() : \"\") + \"&\";\r\n if (priceAndFeesRequest_Pets === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_Pets' cannot be null.\");\r\n else if (priceAndFeesRequest_Pets !== undefined)\r\n url_ += \"PriceAndFeesRequest.Pets=\" + encodeURIComponent(\"\" + priceAndFeesRequest_Pets) + \"&\";\r\n if (priceAndFeesRequest_BookServices === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_BookServices' cannot be null.\");\r\n else if (priceAndFeesRequest_BookServices !== undefined)\r\n url_ += \"PriceAndFeesRequest.BookServices=\" + encodeURIComponent(\"\" + priceAndFeesRequest_BookServices) + \"&\";\r\n if (priceAndFeesRequest_DiscountCode === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_DiscountCode' cannot be null.\");\r\n else if (priceAndFeesRequest_DiscountCode !== undefined)\r\n url_ += \"PriceAndFeesRequest.DiscountCode=\" + encodeURIComponent(\"\" + priceAndFeesRequest_DiscountCode) + \"&\";\r\n if (priceAndFeesRequest_LanguageCurrencyKey === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_LanguageCurrencyKey' cannot be null.\");\r\n else if (priceAndFeesRequest_LanguageCurrencyKey !== undefined)\r\n url_ += \"PriceAndFeesRequest.LanguageCurrencyKey=\" + encodeURIComponent(\"\" + priceAndFeesRequest_LanguageCurrencyKey) + \"&\";\r\n if (priceAndFeesRequest_Language === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_Language' cannot be null.\");\r\n else if (priceAndFeesRequest_Language !== undefined)\r\n url_ += \"PriceAndFeesRequest.Language=\" + encodeURIComponent(\"\" + priceAndFeesRequest_Language) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_SalesPartner === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_SalesPartner' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_SalesPartner !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.SalesPartner=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_SalesPartner) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_BookingNumber === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_BookingNumber' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_BookingNumber !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.BookingNumber=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_BookingNumber) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_ServicePrices === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_ServicePrices' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_ServicePrices !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.ServicePrices=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_ServicePrices) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_RentalPrice === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_RentalPrice' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_RentalPrice !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.RentalPrice=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_RentalPrice) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_RentalCommission === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_RentalCommission' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_RentalCommission !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.RentalCommission=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_RentalCommission) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.CommissionPercentage=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_CancellationTerm === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_CancellationTerm' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_CancellationTerm !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.CancellationTerm=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_CancellationTerm) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_StayPrice === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_StayPrice' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_StayPrice !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.StayPrice=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_StayPrice) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.IsDirectApiBooking=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.IsAffiliateBooking=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking) + \"&\";\r\n if (priceAndFeesRequest_HybridDetails_RentalPrice === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_HybridDetails_RentalPrice' cannot be null.\");\r\n else if (priceAndFeesRequest_HybridDetails_RentalPrice !== undefined)\r\n url_ += \"PriceAndFeesRequest.HybridDetails.RentalPrice=\" + encodeURIComponent(\"\" + priceAndFeesRequest_HybridDetails_RentalPrice) + \"&\";\r\n if (priceAndFeesRequest_HybridDetails_HybridFeeDetails === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_HybridDetails_HybridFeeDetails' cannot be null.\");\r\n else if (priceAndFeesRequest_HybridDetails_HybridFeeDetails !== undefined)\r\n priceAndFeesRequest_HybridDetails_HybridFeeDetails && priceAndFeesRequest_HybridDetails_HybridFeeDetails.forEach((item, index) => {\r\n for (const attr in item)\r\n if (item.hasOwnProperty(attr)) {\r\n url_ += \"PriceAndFeesRequest.HybridDetails.HybridFeeDetails[\" + index + \"].\" + attr + \"=\" + encodeURIComponent(\"\" + (item as any)[attr]) + \"&\";\r\n }\r\n });\r\n if (priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection' cannot be null.\");\r\n else if (priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection !== undefined)\r\n url_ += \"PriceAndFeesRequest.ThrowErrorOnInvalidMandatoryGroupSelection=\" + encodeURIComponent(\"\" + priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection) + \"&\";\r\n if (priceAndFeesRequest_FeeLanguage === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_FeeLanguage' cannot be null.\");\r\n else if (priceAndFeesRequest_FeeLanguage !== undefined)\r\n url_ += \"PriceAndFeesRequest.FeeLanguage=\" + encodeURIComponent(\"\" + priceAndFeesRequest_FeeLanguage) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processReservation(_response);\r\n });\r\n }\r\n\r\n protected processReservation(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BookingFlowResponseModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @param selectedOptions (optional)\r\n * @param priceAndFeesRequest_FromDate (optional)\r\n * @param priceAndFeesRequest_ToDate (optional)\r\n * @param priceAndFeesRequest_Pets (optional)\r\n * @param priceAndFeesRequest_BookServices (optional)\r\n * @param priceAndFeesRequest_DiscountCode (optional)\r\n * @param priceAndFeesRequest_LanguageCurrencyKey (optional)\r\n * @param priceAndFeesRequest_Language (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_SalesPartner (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_BookingNumber (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_ServicePrices (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_RentalPrice (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_RentalCommission (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_CancellationTerm (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_StayPrice (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking (optional)\r\n * @param priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking (optional)\r\n * @param priceAndFeesRequest_HybridDetails_RentalPrice (optional)\r\n * @param priceAndFeesRequest_HybridDetails_HybridFeeDetails (optional)\r\n * @param priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection (optional)\r\n * @param priceAndFeesRequest_FeeLanguage (optional)\r\n * @return Success\r\n */\r\n totalPrice(priceAndFeesRequest_Adults: number, priceAndFeesRequest_Children: number, priceAndFeesRequest_Infants: number, propertyId?: string | undefined, selectedOptions?: SelectedBookingOption[] | undefined, priceAndFeesRequest_FromDate?: Date | undefined, priceAndFeesRequest_ToDate?: Date | undefined, priceAndFeesRequest_Pets?: number | undefined, priceAndFeesRequest_BookServices?: { [key: string]: number; } | undefined, priceAndFeesRequest_DiscountCode?: string | undefined, priceAndFeesRequest_LanguageCurrencyKey?: string | undefined, priceAndFeesRequest_Language?: string | undefined, priceAndFeesRequest_SalesPartnerDetails_SalesPartner?: number | undefined, priceAndFeesRequest_SalesPartnerDetails_BookingNumber?: string | undefined, priceAndFeesRequest_SalesPartnerDetails_ServicePrices?: { [key: string]: number; } | undefined, priceAndFeesRequest_SalesPartnerDetails_RentalPrice?: number | undefined, priceAndFeesRequest_SalesPartnerDetails_RentalCommission?: number | undefined, priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage?: number | undefined, priceAndFeesRequest_SalesPartnerDetails_CancellationTerm?: number | undefined, priceAndFeesRequest_SalesPartnerDetails_StayPrice?: number | undefined, priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking?: boolean | undefined, priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking?: boolean | undefined, priceAndFeesRequest_HybridDetails_RentalPrice?: number | undefined, priceAndFeesRequest_HybridDetails_HybridFeeDetails?: HybridFeeDetail[] | undefined, priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection?: boolean | undefined, priceAndFeesRequest_FeeLanguage?: Language | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/reservation/total-price?\";\r\n if (priceAndFeesRequest_Adults === undefined || priceAndFeesRequest_Adults === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_Adults' must be defined and cannot be null.\");\r\n else\r\n url_ += \"PriceAndFeesRequest.Adults=\" + encodeURIComponent(\"\" + priceAndFeesRequest_Adults) + \"&\";\r\n if (priceAndFeesRequest_Children === undefined || priceAndFeesRequest_Children === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_Children' must be defined and cannot be null.\");\r\n else\r\n url_ += \"PriceAndFeesRequest.Children=\" + encodeURIComponent(\"\" + priceAndFeesRequest_Children) + \"&\";\r\n if (priceAndFeesRequest_Infants === undefined || priceAndFeesRequest_Infants === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_Infants' must be defined and cannot be null.\");\r\n else\r\n url_ += \"PriceAndFeesRequest.Infants=\" + encodeURIComponent(\"\" + priceAndFeesRequest_Infants) + \"&\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n if (selectedOptions === null)\r\n throw new Error(\"The parameter 'selectedOptions' cannot be null.\");\r\n else if (selectedOptions !== undefined)\r\n selectedOptions && selectedOptions.forEach((item, index) => {\r\n for (const attr in item)\r\n if (item.hasOwnProperty(attr)) {\r\n url_ += \"SelectedOptions[\" + index + \"].\" + attr + \"=\" + encodeURIComponent(\"\" + (item as any)[attr]) + \"&\";\r\n }\r\n });\r\n if (priceAndFeesRequest_FromDate === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_FromDate' cannot be null.\");\r\n else if (priceAndFeesRequest_FromDate !== undefined)\r\n url_ += \"PriceAndFeesRequest.FromDate=\" + encodeURIComponent(priceAndFeesRequest_FromDate ? \"\" + priceAndFeesRequest_FromDate.toISOString() : \"\") + \"&\";\r\n if (priceAndFeesRequest_ToDate === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_ToDate' cannot be null.\");\r\n else if (priceAndFeesRequest_ToDate !== undefined)\r\n url_ += \"PriceAndFeesRequest.ToDate=\" + encodeURIComponent(priceAndFeesRequest_ToDate ? \"\" + priceAndFeesRequest_ToDate.toISOString() : \"\") + \"&\";\r\n if (priceAndFeesRequest_Pets === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_Pets' cannot be null.\");\r\n else if (priceAndFeesRequest_Pets !== undefined)\r\n url_ += \"PriceAndFeesRequest.Pets=\" + encodeURIComponent(\"\" + priceAndFeesRequest_Pets) + \"&\";\r\n if (priceAndFeesRequest_BookServices === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_BookServices' cannot be null.\");\r\n else if (priceAndFeesRequest_BookServices !== undefined)\r\n url_ += \"PriceAndFeesRequest.BookServices=\" + encodeURIComponent(\"\" + priceAndFeesRequest_BookServices) + \"&\";\r\n if (priceAndFeesRequest_DiscountCode === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_DiscountCode' cannot be null.\");\r\n else if (priceAndFeesRequest_DiscountCode !== undefined)\r\n url_ += \"PriceAndFeesRequest.DiscountCode=\" + encodeURIComponent(\"\" + priceAndFeesRequest_DiscountCode) + \"&\";\r\n if (priceAndFeesRequest_LanguageCurrencyKey === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_LanguageCurrencyKey' cannot be null.\");\r\n else if (priceAndFeesRequest_LanguageCurrencyKey !== undefined)\r\n url_ += \"PriceAndFeesRequest.LanguageCurrencyKey=\" + encodeURIComponent(\"\" + priceAndFeesRequest_LanguageCurrencyKey) + \"&\";\r\n if (priceAndFeesRequest_Language === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_Language' cannot be null.\");\r\n else if (priceAndFeesRequest_Language !== undefined)\r\n url_ += \"PriceAndFeesRequest.Language=\" + encodeURIComponent(\"\" + priceAndFeesRequest_Language) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_SalesPartner === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_SalesPartner' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_SalesPartner !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.SalesPartner=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_SalesPartner) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_BookingNumber === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_BookingNumber' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_BookingNumber !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.BookingNumber=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_BookingNumber) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_ServicePrices === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_ServicePrices' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_ServicePrices !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.ServicePrices=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_ServicePrices) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_RentalPrice === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_RentalPrice' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_RentalPrice !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.RentalPrice=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_RentalPrice) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_RentalCommission === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_RentalCommission' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_RentalCommission !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.RentalCommission=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_RentalCommission) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.CommissionPercentage=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_CommissionPercentage) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_CancellationTerm === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_CancellationTerm' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_CancellationTerm !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.CancellationTerm=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_CancellationTerm) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_StayPrice === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_StayPrice' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_StayPrice !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.StayPrice=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_StayPrice) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.IsDirectApiBooking=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_IsDirectApiBooking) + \"&\";\r\n if (priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking' cannot be null.\");\r\n else if (priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking !== undefined)\r\n url_ += \"PriceAndFeesRequest.SalesPartnerDetails.IsAffiliateBooking=\" + encodeURIComponent(\"\" + priceAndFeesRequest_SalesPartnerDetails_IsAffiliateBooking) + \"&\";\r\n if (priceAndFeesRequest_HybridDetails_RentalPrice === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_HybridDetails_RentalPrice' cannot be null.\");\r\n else if (priceAndFeesRequest_HybridDetails_RentalPrice !== undefined)\r\n url_ += \"PriceAndFeesRequest.HybridDetails.RentalPrice=\" + encodeURIComponent(\"\" + priceAndFeesRequest_HybridDetails_RentalPrice) + \"&\";\r\n if (priceAndFeesRequest_HybridDetails_HybridFeeDetails === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_HybridDetails_HybridFeeDetails' cannot be null.\");\r\n else if (priceAndFeesRequest_HybridDetails_HybridFeeDetails !== undefined)\r\n priceAndFeesRequest_HybridDetails_HybridFeeDetails && priceAndFeesRequest_HybridDetails_HybridFeeDetails.forEach((item, index) => {\r\n for (const attr in item)\r\n if (item.hasOwnProperty(attr)) {\r\n url_ += \"PriceAndFeesRequest.HybridDetails.HybridFeeDetails[\" + index + \"].\" + attr + \"=\" + encodeURIComponent(\"\" + (item as any)[attr]) + \"&\";\r\n }\r\n });\r\n if (priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection' cannot be null.\");\r\n else if (priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection !== undefined)\r\n url_ += \"PriceAndFeesRequest.ThrowErrorOnInvalidMandatoryGroupSelection=\" + encodeURIComponent(\"\" + priceAndFeesRequest_ThrowErrorOnInvalidMandatoryGroupSelection) + \"&\";\r\n if (priceAndFeesRequest_FeeLanguage === null)\r\n throw new Error(\"The parameter 'priceAndFeesRequest_FeeLanguage' cannot be null.\");\r\n else if (priceAndFeesRequest_FeeLanguage !== undefined)\r\n url_ += \"PriceAndFeesRequest.FeeLanguage=\" + encodeURIComponent(\"\" + priceAndFeesRequest_FeeLanguage) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processTotalPrice(_response);\r\n });\r\n }\r\n\r\n protected processTotalPrice(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as TotalPrice;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @param body (optional)\r\n * @return Success\r\n */\r\n book(propertyId?: string | undefined, body?: BookingRequest | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/reservation/book?\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processBook(_response);\r\n });\r\n }\r\n\r\n protected processBook(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BookingResponseModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @param agencyBookingNumber (optional)\r\n * @param bookingId (optional)\r\n * @param email (optional)\r\n * @return Success\r\n */\r\n getBooking(propertyId?: string | undefined, agencyBookingNumber?: string | undefined, bookingId?: number | undefined, email?: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/reservation/get-booking?\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n if (agencyBookingNumber === null)\r\n throw new Error(\"The parameter 'agencyBookingNumber' cannot be null.\");\r\n else if (agencyBookingNumber !== undefined)\r\n url_ += \"agencyBookingNumber=\" + encodeURIComponent(\"\" + agencyBookingNumber) + \"&\";\r\n if (bookingId === null)\r\n throw new Error(\"The parameter 'bookingId' cannot be null.\");\r\n else if (bookingId !== undefined)\r\n url_ += \"bookingId=\" + encodeURIComponent(\"\" + bookingId) + \"&\";\r\n if (email === null)\r\n throw new Error(\"The parameter 'email' cannot be null.\");\r\n else if (email !== undefined)\r\n url_ += \"email=\" + encodeURIComponent(\"\" + email) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetBooking(_response);\r\n });\r\n }\r\n\r\n protected processGetBooking(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BookingResponseModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @param agencyBookingNumber (optional)\r\n * @return Success\r\n */\r\n markBookingAsAnalyticTracked(propertyId?: string | undefined, agencyBookingNumber?: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/reservation/mark-booking-as-analytic-tracked?\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n if (agencyBookingNumber === null)\r\n throw new Error(\"The parameter 'agencyBookingNumber' cannot be null.\");\r\n else if (agencyBookingNumber !== undefined)\r\n url_ += \"agencyBookingNumber=\" + encodeURIComponent(\"\" + agencyBookingNumber) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processMarkBookingAsAnalyticTracked(_response);\r\n });\r\n }\r\n\r\n protected processMarkBookingAsAnalyticTracked(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @param agencyBookingNumber (optional)\r\n * @param selectedPaymentMethod (optional)\r\n * @return Success\r\n */\r\n createPayment(propertyId?: string | undefined, agencyBookingNumber?: string | undefined, selectedPaymentMethod?: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/reservation/create-payment?\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n if (agencyBookingNumber === null)\r\n throw new Error(\"The parameter 'agencyBookingNumber' cannot be null.\");\r\n else if (agencyBookingNumber !== undefined)\r\n url_ += \"agencyBookingNumber=\" + encodeURIComponent(\"\" + agencyBookingNumber) + \"&\";\r\n if (selectedPaymentMethod === null)\r\n throw new Error(\"The parameter 'selectedPaymentMethod' cannot be null.\");\r\n else if (selectedPaymentMethod !== undefined)\r\n url_ += \"selectedPaymentMethod=\" + encodeURIComponent(\"\" + selectedPaymentMethod) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCreatePayment(_response);\r\n });\r\n }\r\n\r\n protected processCreatePayment(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BookingCreatePaymentResponseModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @param agencyBookingNumber (optional)\r\n * @return Success\r\n */\r\n getPaymentInformation(propertyId?: string | undefined, agencyBookingNumber?: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/reservation/get-payment-information?\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n if (agencyBookingNumber === null)\r\n throw new Error(\"The parameter 'agencyBookingNumber' cannot be null.\");\r\n else if (agencyBookingNumber !== undefined)\r\n url_ += \"agencyBookingNumber=\" + encodeURIComponent(\"\" + agencyBookingNumber) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetPaymentInformation(_response);\r\n });\r\n }\r\n\r\n protected processGetPaymentInformation(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as PaymentInformation;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @param agencyBookingNumber (optional)\r\n * @param serviceId (optional)\r\n * @param arrivalValue (optional)\r\n * @param departureValue (optional)\r\n * @return Success\r\n */\r\n saveConsumptionReading(propertyId?: string | undefined, agencyBookingNumber?: string | undefined, serviceId?: number | undefined, arrivalValue?: number | undefined, departureValue?: number | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/reservation/save-consumption-reading?\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n if (agencyBookingNumber === null)\r\n throw new Error(\"The parameter 'agencyBookingNumber' cannot be null.\");\r\n else if (agencyBookingNumber !== undefined)\r\n url_ += \"agencyBookingNumber=\" + encodeURIComponent(\"\" + agencyBookingNumber) + \"&\";\r\n if (serviceId === null)\r\n throw new Error(\"The parameter 'serviceId' cannot be null.\");\r\n else if (serviceId !== undefined)\r\n url_ += \"serviceId=\" + encodeURIComponent(\"\" + serviceId) + \"&\";\r\n if (arrivalValue === null)\r\n throw new Error(\"The parameter 'arrivalValue' cannot be null.\");\r\n else if (arrivalValue !== undefined)\r\n url_ += \"arrivalValue=\" + encodeURIComponent(\"\" + arrivalValue) + \"&\";\r\n if (departureValue === null)\r\n throw new Error(\"The parameter 'departureValue' cannot be null.\");\r\n else if (departureValue !== undefined)\r\n url_ += \"departureValue=\" + encodeURIComponent(\"\" + departureValue) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processSaveConsumptionReading(_response);\r\n });\r\n }\r\n\r\n protected processSaveConsumptionReading(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyIdWithType (optional)\r\n * @param agencyBookingNumber (optional)\r\n * @return Success\r\n */\r\n externalPayment(propertyIdWithType?: string | undefined, agencyBookingNumber?: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/reservation/external-payment?\";\r\n if (propertyIdWithType === null)\r\n throw new Error(\"The parameter 'propertyIdWithType' cannot be null.\");\r\n else if (propertyIdWithType !== undefined)\r\n url_ += \"propertyIdWithType=\" + encodeURIComponent(\"\" + propertyIdWithType) + \"&\";\r\n if (agencyBookingNumber === null)\r\n throw new Error(\"The parameter 'agencyBookingNumber' cannot be null.\");\r\n else if (agencyBookingNumber !== undefined)\r\n url_ += \"agencyBookingNumber=\" + encodeURIComponent(\"\" + agencyBookingNumber) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processExternalPayment(_response);\r\n });\r\n }\r\n\r\n protected processExternalPayment(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param guid (optional)\r\n * @return Success\r\n */\r\n getShortlist(guid?: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/favorites/get-shortlist?\";\r\n if (guid === null)\r\n throw new Error(\"The parameter 'guid' cannot be null.\");\r\n else if (guid !== undefined)\r\n url_ += \"guid=\" + encodeURIComponent(\"\" + guid) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetShortlist(_response);\r\n });\r\n }\r\n\r\n protected processGetShortlist(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ShortListProperties;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param areaId (optional)\r\n * @return Success\r\n */\r\n getPopularList(areaId?: number | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/favorites/get-popular-list?\";\r\n if (areaId === null)\r\n throw new Error(\"The parameter 'areaId' cannot be null.\");\r\n else if (areaId !== undefined)\r\n url_ += \"areaId=\" + encodeURIComponent(\"\" + areaId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetPopularList(_response);\r\n });\r\n }\r\n\r\n protected processGetPopularList(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ShortListProperties;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param subject (optional)\r\n * @param content (optional)\r\n * @param logType (optional)\r\n * @return Success\r\n */\r\n log(subject?: string | undefined, content?: string | undefined, logType?: LogTypes | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/logging/Log?\";\r\n if (subject === null)\r\n throw new Error(\"The parameter 'subject' cannot be null.\");\r\n else if (subject !== undefined)\r\n url_ += \"subject=\" + encodeURIComponent(\"\" + subject) + \"&\";\r\n if (content === null)\r\n throw new Error(\"The parameter 'content' cannot be null.\");\r\n else if (content !== undefined)\r\n url_ += \"content=\" + encodeURIComponent(\"\" + content) + \"&\";\r\n if (logType === null)\r\n throw new Error(\"The parameter 'logType' cannot be null.\");\r\n else if (logType !== undefined)\r\n url_ += \"logType=\" + encodeURIComponent(\"\" + logType) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"POST\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processLog(_response);\r\n });\r\n }\r\n\r\n protected processLog(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param isOnline (optional)\r\n * @return Success\r\n */\r\n getMeetingEvents(isOnline?: boolean | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/meeting/GetMeetingEvents?\";\r\n if (isOnline === null)\r\n throw new Error(\"The parameter 'isOnline' cannot be null.\");\r\n else if (isOnline !== undefined)\r\n url_ += \"isOnline=\" + encodeURIComponent(\"\" + isOnline) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetMeetingEvents(_response);\r\n });\r\n }\r\n\r\n protected processGetMeetingEvents(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as MeetingEvent[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param body (optional)\r\n * @return Success\r\n */\r\n saveParticipant(body?: MeetingEventParticipant | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/meeting/SaveParticipant\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_: RequestInit = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processSaveParticipant(_response);\r\n });\r\n }\r\n\r\n protected processSaveParticipant(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @return Success\r\n */\r\n availability(propertyId?: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/property-page/availability?\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAvailability(_response);\r\n });\r\n }\r\n\r\n protected processAvailability(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as CalendarEntity;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @param date (optional)\r\n * @return Success\r\n */\r\n availabilityForDate(propertyId?: string | undefined, date?: Date | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/property-page/availabilityForDate?\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n if (date === null)\r\n throw new Error(\"The parameter 'date' cannot be null.\");\r\n else if (date !== undefined)\r\n url_ += \"date=\" + encodeURIComponent(date ? \"\" + date.toISOString() : \"\") + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAvailabilityForDate(_response);\r\n });\r\n }\r\n\r\n protected processAvailabilityForDate(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as CalendarEntity;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * Get search based property details based on query parameters that are outside of the property object\r\n * @param propertyId (optional)\r\n * @param fromDate (optional)\r\n * @param toDate (optional)\r\n * @param pets (optional)\r\n * @param bookServices (optional)\r\n * @param discountCode (optional)\r\n * @param languageCurrencyKey (optional)\r\n * @param language (optional)\r\n * @param salesPartnerDetails_SalesPartner (optional)\r\n * @param salesPartnerDetails_BookingNumber (optional)\r\n * @param salesPartnerDetails_ServicePrices (optional)\r\n * @param salesPartnerDetails_RentalPrice (optional)\r\n * @param salesPartnerDetails_RentalCommission (optional)\r\n * @param salesPartnerDetails_CommissionPercentage (optional)\r\n * @param salesPartnerDetails_CancellationTerm (optional)\r\n * @param salesPartnerDetails_StayPrice (optional)\r\n * @param salesPartnerDetails_IsDirectApiBooking (optional)\r\n * @param salesPartnerDetails_IsAffiliateBooking (optional)\r\n * @param hybridDetails_RentalPrice (optional)\r\n * @param hybridDetails_HybridFeeDetails (optional)\r\n * @param throwErrorOnInvalidMandatoryGroupSelection (optional)\r\n * @param feeLanguage (optional)\r\n * @return Success\r\n */\r\n searchDetails(adults: number, children: number, infants: number, propertyId?: string | undefined, fromDate?: Date | undefined, toDate?: Date | undefined, pets?: number | undefined, bookServices?: { [key: string]: number; } | undefined, discountCode?: string | undefined, languageCurrencyKey?: string | undefined, language?: string | undefined, salesPartnerDetails_SalesPartner?: number | undefined, salesPartnerDetails_BookingNumber?: string | undefined, salesPartnerDetails_ServicePrices?: { [key: string]: number; } | undefined, salesPartnerDetails_RentalPrice?: number | undefined, salesPartnerDetails_RentalCommission?: number | undefined, salesPartnerDetails_CommissionPercentage?: number | undefined, salesPartnerDetails_CancellationTerm?: number | undefined, salesPartnerDetails_StayPrice?: number | undefined, salesPartnerDetails_IsDirectApiBooking?: boolean | undefined, salesPartnerDetails_IsAffiliateBooking?: boolean | undefined, hybridDetails_RentalPrice?: number | undefined, hybridDetails_HybridFeeDetails?: HybridFeeDetail[] | undefined, throwErrorOnInvalidMandatoryGroupSelection?: boolean | undefined, feeLanguage?: Language | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/property-page/search-details?\";\r\n if (adults === undefined || adults === null)\r\n throw new Error(\"The parameter 'adults' must be defined and cannot be null.\");\r\n else\r\n url_ += \"Adults=\" + encodeURIComponent(\"\" + adults) + \"&\";\r\n if (children === undefined || children === null)\r\n throw new Error(\"The parameter 'children' must be defined and cannot be null.\");\r\n else\r\n url_ += \"Children=\" + encodeURIComponent(\"\" + children) + \"&\";\r\n if (infants === undefined || infants === null)\r\n throw new Error(\"The parameter 'infants' must be defined and cannot be null.\");\r\n else\r\n url_ += \"Infants=\" + encodeURIComponent(\"\" + infants) + \"&\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n if (fromDate === null)\r\n throw new Error(\"The parameter 'fromDate' cannot be null.\");\r\n else if (fromDate !== undefined)\r\n url_ += \"FromDate=\" + encodeURIComponent(fromDate ? \"\" + fromDate.toISOString() : \"\") + \"&\";\r\n if (toDate === null)\r\n throw new Error(\"The parameter 'toDate' cannot be null.\");\r\n else if (toDate !== undefined)\r\n url_ += \"ToDate=\" + encodeURIComponent(toDate ? \"\" + toDate.toISOString() : \"\") + \"&\";\r\n if (pets === null)\r\n throw new Error(\"The parameter 'pets' cannot be null.\");\r\n else if (pets !== undefined)\r\n url_ += \"Pets=\" + encodeURIComponent(\"\" + pets) + \"&\";\r\n if (bookServices === null)\r\n throw new Error(\"The parameter 'bookServices' cannot be null.\");\r\n else if (bookServices !== undefined)\r\n url_ += \"BookServices=\" + encodeURIComponent(\"\" + bookServices) + \"&\";\r\n if (discountCode === null)\r\n throw new Error(\"The parameter 'discountCode' cannot be null.\");\r\n else if (discountCode !== undefined)\r\n url_ += \"DiscountCode=\" + encodeURIComponent(\"\" + discountCode) + \"&\";\r\n if (languageCurrencyKey === null)\r\n throw new Error(\"The parameter 'languageCurrencyKey' cannot be null.\");\r\n else if (languageCurrencyKey !== undefined)\r\n url_ += \"LanguageCurrencyKey=\" + encodeURIComponent(\"\" + languageCurrencyKey) + \"&\";\r\n if (language === null)\r\n throw new Error(\"The parameter 'language' cannot be null.\");\r\n else if (language !== undefined)\r\n url_ += \"Language=\" + encodeURIComponent(\"\" + language) + \"&\";\r\n if (salesPartnerDetails_SalesPartner === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_SalesPartner' cannot be null.\");\r\n else if (salesPartnerDetails_SalesPartner !== undefined)\r\n url_ += \"SalesPartnerDetails.SalesPartner=\" + encodeURIComponent(\"\" + salesPartnerDetails_SalesPartner) + \"&\";\r\n if (salesPartnerDetails_BookingNumber === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_BookingNumber' cannot be null.\");\r\n else if (salesPartnerDetails_BookingNumber !== undefined)\r\n url_ += \"SalesPartnerDetails.BookingNumber=\" + encodeURIComponent(\"\" + salesPartnerDetails_BookingNumber) + \"&\";\r\n if (salesPartnerDetails_ServicePrices === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_ServicePrices' cannot be null.\");\r\n else if (salesPartnerDetails_ServicePrices !== undefined)\r\n url_ += \"SalesPartnerDetails.ServicePrices=\" + encodeURIComponent(\"\" + salesPartnerDetails_ServicePrices) + \"&\";\r\n if (salesPartnerDetails_RentalPrice === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_RentalPrice' cannot be null.\");\r\n else if (salesPartnerDetails_RentalPrice !== undefined)\r\n url_ += \"SalesPartnerDetails.RentalPrice=\" + encodeURIComponent(\"\" + salesPartnerDetails_RentalPrice) + \"&\";\r\n if (salesPartnerDetails_RentalCommission === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_RentalCommission' cannot be null.\");\r\n else if (salesPartnerDetails_RentalCommission !== undefined)\r\n url_ += \"SalesPartnerDetails.RentalCommission=\" + encodeURIComponent(\"\" + salesPartnerDetails_RentalCommission) + \"&\";\r\n if (salesPartnerDetails_CommissionPercentage === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_CommissionPercentage' cannot be null.\");\r\n else if (salesPartnerDetails_CommissionPercentage !== undefined)\r\n url_ += \"SalesPartnerDetails.CommissionPercentage=\" + encodeURIComponent(\"\" + salesPartnerDetails_CommissionPercentage) + \"&\";\r\n if (salesPartnerDetails_CancellationTerm === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_CancellationTerm' cannot be null.\");\r\n else if (salesPartnerDetails_CancellationTerm !== undefined)\r\n url_ += \"SalesPartnerDetails.CancellationTerm=\" + encodeURIComponent(\"\" + salesPartnerDetails_CancellationTerm) + \"&\";\r\n if (salesPartnerDetails_StayPrice === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_StayPrice' cannot be null.\");\r\n else if (salesPartnerDetails_StayPrice !== undefined)\r\n url_ += \"SalesPartnerDetails.StayPrice=\" + encodeURIComponent(\"\" + salesPartnerDetails_StayPrice) + \"&\";\r\n if (salesPartnerDetails_IsDirectApiBooking === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_IsDirectApiBooking' cannot be null.\");\r\n else if (salesPartnerDetails_IsDirectApiBooking !== undefined)\r\n url_ += \"SalesPartnerDetails.IsDirectApiBooking=\" + encodeURIComponent(\"\" + salesPartnerDetails_IsDirectApiBooking) + \"&\";\r\n if (salesPartnerDetails_IsAffiliateBooking === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_IsAffiliateBooking' cannot be null.\");\r\n else if (salesPartnerDetails_IsAffiliateBooking !== undefined)\r\n url_ += \"SalesPartnerDetails.IsAffiliateBooking=\" + encodeURIComponent(\"\" + salesPartnerDetails_IsAffiliateBooking) + \"&\";\r\n if (hybridDetails_RentalPrice === null)\r\n throw new Error(\"The parameter 'hybridDetails_RentalPrice' cannot be null.\");\r\n else if (hybridDetails_RentalPrice !== undefined)\r\n url_ += \"HybridDetails.RentalPrice=\" + encodeURIComponent(\"\" + hybridDetails_RentalPrice) + \"&\";\r\n if (hybridDetails_HybridFeeDetails === null)\r\n throw new Error(\"The parameter 'hybridDetails_HybridFeeDetails' cannot be null.\");\r\n else if (hybridDetails_HybridFeeDetails !== undefined)\r\n hybridDetails_HybridFeeDetails && hybridDetails_HybridFeeDetails.forEach((item, index) => {\r\n for (const attr in item)\r\n if (item.hasOwnProperty(attr)) {\r\n url_ += \"HybridDetails.HybridFeeDetails[\" + index + \"].\" + attr + \"=\" + encodeURIComponent(\"\" + (item as any)[attr]) + \"&\";\r\n }\r\n });\r\n if (throwErrorOnInvalidMandatoryGroupSelection === null)\r\n throw new Error(\"The parameter 'throwErrorOnInvalidMandatoryGroupSelection' cannot be null.\");\r\n else if (throwErrorOnInvalidMandatoryGroupSelection !== undefined)\r\n url_ += \"ThrowErrorOnInvalidMandatoryGroupSelection=\" + encodeURIComponent(\"\" + throwErrorOnInvalidMandatoryGroupSelection) + \"&\";\r\n if (feeLanguage === null)\r\n throw new Error(\"The parameter 'feeLanguage' cannot be null.\");\r\n else if (feeLanguage !== undefined)\r\n url_ += \"FeeLanguage=\" + encodeURIComponent(\"\" + feeLanguage) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processSearchDetails(_response);\r\n });\r\n }\r\n\r\n protected processSearchDetails(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SearchDetailsResponseModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @return Success\r\n */\r\n propertyPage(propertyId?: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/property-page?\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processPropertyPage(_response);\r\n });\r\n }\r\n\r\n protected processPropertyPage(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as PropertyResponseModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @param fromDate (optional)\r\n * @param toDate (optional)\r\n * @param pets (optional)\r\n * @param bookServices (optional)\r\n * @param discountCode (optional)\r\n * @param languageCurrencyKey (optional)\r\n * @param language (optional)\r\n * @param salesPartnerDetails_SalesPartner (optional)\r\n * @param salesPartnerDetails_BookingNumber (optional)\r\n * @param salesPartnerDetails_ServicePrices (optional)\r\n * @param salesPartnerDetails_RentalPrice (optional)\r\n * @param salesPartnerDetails_RentalCommission (optional)\r\n * @param salesPartnerDetails_CommissionPercentage (optional)\r\n * @param salesPartnerDetails_CancellationTerm (optional)\r\n * @param salesPartnerDetails_StayPrice (optional)\r\n * @param salesPartnerDetails_IsDirectApiBooking (optional)\r\n * @param salesPartnerDetails_IsAffiliateBooking (optional)\r\n * @param hybridDetails_RentalPrice (optional)\r\n * @param hybridDetails_HybridFeeDetails (optional)\r\n * @param throwErrorOnInvalidMandatoryGroupSelection (optional)\r\n * @param feeLanguage (optional)\r\n * @return Success\r\n */\r\n pricesAndFees(adults: number, children: number, infants: number, propertyId?: string | undefined, fromDate?: Date | undefined, toDate?: Date | undefined, pets?: number | undefined, bookServices?: { [key: string]: number; } | undefined, discountCode?: string | undefined, languageCurrencyKey?: string | undefined, language?: string | undefined, salesPartnerDetails_SalesPartner?: number | undefined, salesPartnerDetails_BookingNumber?: string | undefined, salesPartnerDetails_ServicePrices?: { [key: string]: number; } | undefined, salesPartnerDetails_RentalPrice?: number | undefined, salesPartnerDetails_RentalCommission?: number | undefined, salesPartnerDetails_CommissionPercentage?: number | undefined, salesPartnerDetails_CancellationTerm?: number | undefined, salesPartnerDetails_StayPrice?: number | undefined, salesPartnerDetails_IsDirectApiBooking?: boolean | undefined, salesPartnerDetails_IsAffiliateBooking?: boolean | undefined, hybridDetails_RentalPrice?: number | undefined, hybridDetails_HybridFeeDetails?: HybridFeeDetail[] | undefined, throwErrorOnInvalidMandatoryGroupSelection?: boolean | undefined, feeLanguage?: Language | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/property-page/prices-and-fees?\";\r\n if (adults === undefined || adults === null)\r\n throw new Error(\"The parameter 'adults' must be defined and cannot be null.\");\r\n else\r\n url_ += \"Adults=\" + encodeURIComponent(\"\" + adults) + \"&\";\r\n if (children === undefined || children === null)\r\n throw new Error(\"The parameter 'children' must be defined and cannot be null.\");\r\n else\r\n url_ += \"Children=\" + encodeURIComponent(\"\" + children) + \"&\";\r\n if (infants === undefined || infants === null)\r\n throw new Error(\"The parameter 'infants' must be defined and cannot be null.\");\r\n else\r\n url_ += \"Infants=\" + encodeURIComponent(\"\" + infants) + \"&\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n if (fromDate === null)\r\n throw new Error(\"The parameter 'fromDate' cannot be null.\");\r\n else if (fromDate !== undefined)\r\n url_ += \"FromDate=\" + encodeURIComponent(fromDate ? \"\" + fromDate.toISOString() : \"\") + \"&\";\r\n if (toDate === null)\r\n throw new Error(\"The parameter 'toDate' cannot be null.\");\r\n else if (toDate !== undefined)\r\n url_ += \"ToDate=\" + encodeURIComponent(toDate ? \"\" + toDate.toISOString() : \"\") + \"&\";\r\n if (pets === null)\r\n throw new Error(\"The parameter 'pets' cannot be null.\");\r\n else if (pets !== undefined)\r\n url_ += \"Pets=\" + encodeURIComponent(\"\" + pets) + \"&\";\r\n if (bookServices === null)\r\n throw new Error(\"The parameter 'bookServices' cannot be null.\");\r\n else if (bookServices !== undefined)\r\n url_ += \"BookServices=\" + encodeURIComponent(\"\" + bookServices) + \"&\";\r\n if (discountCode === null)\r\n throw new Error(\"The parameter 'discountCode' cannot be null.\");\r\n else if (discountCode !== undefined)\r\n url_ += \"DiscountCode=\" + encodeURIComponent(\"\" + discountCode) + \"&\";\r\n if (languageCurrencyKey === null)\r\n throw new Error(\"The parameter 'languageCurrencyKey' cannot be null.\");\r\n else if (languageCurrencyKey !== undefined)\r\n url_ += \"LanguageCurrencyKey=\" + encodeURIComponent(\"\" + languageCurrencyKey) + \"&\";\r\n if (language === null)\r\n throw new Error(\"The parameter 'language' cannot be null.\");\r\n else if (language !== undefined)\r\n url_ += \"Language=\" + encodeURIComponent(\"\" + language) + \"&\";\r\n if (salesPartnerDetails_SalesPartner === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_SalesPartner' cannot be null.\");\r\n else if (salesPartnerDetails_SalesPartner !== undefined)\r\n url_ += \"SalesPartnerDetails.SalesPartner=\" + encodeURIComponent(\"\" + salesPartnerDetails_SalesPartner) + \"&\";\r\n if (salesPartnerDetails_BookingNumber === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_BookingNumber' cannot be null.\");\r\n else if (salesPartnerDetails_BookingNumber !== undefined)\r\n url_ += \"SalesPartnerDetails.BookingNumber=\" + encodeURIComponent(\"\" + salesPartnerDetails_BookingNumber) + \"&\";\r\n if (salesPartnerDetails_ServicePrices === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_ServicePrices' cannot be null.\");\r\n else if (salesPartnerDetails_ServicePrices !== undefined)\r\n url_ += \"SalesPartnerDetails.ServicePrices=\" + encodeURIComponent(\"\" + salesPartnerDetails_ServicePrices) + \"&\";\r\n if (salesPartnerDetails_RentalPrice === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_RentalPrice' cannot be null.\");\r\n else if (salesPartnerDetails_RentalPrice !== undefined)\r\n url_ += \"SalesPartnerDetails.RentalPrice=\" + encodeURIComponent(\"\" + salesPartnerDetails_RentalPrice) + \"&\";\r\n if (salesPartnerDetails_RentalCommission === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_RentalCommission' cannot be null.\");\r\n else if (salesPartnerDetails_RentalCommission !== undefined)\r\n url_ += \"SalesPartnerDetails.RentalCommission=\" + encodeURIComponent(\"\" + salesPartnerDetails_RentalCommission) + \"&\";\r\n if (salesPartnerDetails_CommissionPercentage === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_CommissionPercentage' cannot be null.\");\r\n else if (salesPartnerDetails_CommissionPercentage !== undefined)\r\n url_ += \"SalesPartnerDetails.CommissionPercentage=\" + encodeURIComponent(\"\" + salesPartnerDetails_CommissionPercentage) + \"&\";\r\n if (salesPartnerDetails_CancellationTerm === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_CancellationTerm' cannot be null.\");\r\n else if (salesPartnerDetails_CancellationTerm !== undefined)\r\n url_ += \"SalesPartnerDetails.CancellationTerm=\" + encodeURIComponent(\"\" + salesPartnerDetails_CancellationTerm) + \"&\";\r\n if (salesPartnerDetails_StayPrice === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_StayPrice' cannot be null.\");\r\n else if (salesPartnerDetails_StayPrice !== undefined)\r\n url_ += \"SalesPartnerDetails.StayPrice=\" + encodeURIComponent(\"\" + salesPartnerDetails_StayPrice) + \"&\";\r\n if (salesPartnerDetails_IsDirectApiBooking === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_IsDirectApiBooking' cannot be null.\");\r\n else if (salesPartnerDetails_IsDirectApiBooking !== undefined)\r\n url_ += \"SalesPartnerDetails.IsDirectApiBooking=\" + encodeURIComponent(\"\" + salesPartnerDetails_IsDirectApiBooking) + \"&\";\r\n if (salesPartnerDetails_IsAffiliateBooking === null)\r\n throw new Error(\"The parameter 'salesPartnerDetails_IsAffiliateBooking' cannot be null.\");\r\n else if (salesPartnerDetails_IsAffiliateBooking !== undefined)\r\n url_ += \"SalesPartnerDetails.IsAffiliateBooking=\" + encodeURIComponent(\"\" + salesPartnerDetails_IsAffiliateBooking) + \"&\";\r\n if (hybridDetails_RentalPrice === null)\r\n throw new Error(\"The parameter 'hybridDetails_RentalPrice' cannot be null.\");\r\n else if (hybridDetails_RentalPrice !== undefined)\r\n url_ += \"HybridDetails.RentalPrice=\" + encodeURIComponent(\"\" + hybridDetails_RentalPrice) + \"&\";\r\n if (hybridDetails_HybridFeeDetails === null)\r\n throw new Error(\"The parameter 'hybridDetails_HybridFeeDetails' cannot be null.\");\r\n else if (hybridDetails_HybridFeeDetails !== undefined)\r\n hybridDetails_HybridFeeDetails && hybridDetails_HybridFeeDetails.forEach((item, index) => {\r\n for (const attr in item)\r\n if (item.hasOwnProperty(attr)) {\r\n url_ += \"HybridDetails.HybridFeeDetails[\" + index + \"].\" + attr + \"=\" + encodeURIComponent(\"\" + (item as any)[attr]) + \"&\";\r\n }\r\n });\r\n if (throwErrorOnInvalidMandatoryGroupSelection === null)\r\n throw new Error(\"The parameter 'throwErrorOnInvalidMandatoryGroupSelection' cannot be null.\");\r\n else if (throwErrorOnInvalidMandatoryGroupSelection !== undefined)\r\n url_ += \"ThrowErrorOnInvalidMandatoryGroupSelection=\" + encodeURIComponent(\"\" + throwErrorOnInvalidMandatoryGroupSelection) + \"&\";\r\n if (feeLanguage === null)\r\n throw new Error(\"The parameter 'feeLanguage' cannot be null.\");\r\n else if (feeLanguage !== undefined)\r\n url_ += \"FeeLanguage=\" + encodeURIComponent(\"\" + feeLanguage) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processPricesAndFees(_response);\r\n });\r\n }\r\n\r\n protected processPricesAndFees(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReservationPriceFeeResponse;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * Main Search endpoint\r\n * @param propertyIds (optional)\r\n * @param initialSearch (optional)\r\n * @param fieldList (optional)\r\n * @param fromIndex (optional)\r\n * @param size (optional)\r\n * @param areaId (optional)\r\n * @param areaName (optional)\r\n * @param sortMethod (optional)\r\n * @param toDate (optional)\r\n * @param fromDate (optional)\r\n * @param fromPrice (optional)\r\n * @param toPrice (optional)\r\n * @param flexibleDates (optional)\r\n * @param salesPartnerIds (optional)\r\n * @param incrementalUpdateTimestamp (optional)\r\n * @param isFlexRent (optional)\r\n * @param aC (optional)\r\n * @param propertyType (optional)\r\n * @param dishwasher (optional)\r\n * @param washingMachine (optional)\r\n * @param tv (optional)\r\n * @param internet (optional)\r\n * @param wheelchairFriendly (optional)\r\n * @param eVChargingStation (optional)\r\n * @param indoorPool (optional)\r\n * @param spa (optional)\r\n * @param hotTub (optional)\r\n * @param firePlace (optional)\r\n * @param barbecue (optional)\r\n * @param coffeeMachine (optional)\r\n * @param petsAllowed (optional)\r\n * @param smokingAllowed (optional)\r\n * @param adults (optional)\r\n * @param children (optional)\r\n * @param infants (optional)\r\n * @param pets (optional)\r\n * @param fromBedrooms (optional)\r\n * @param toBedrooms (optional)\r\n * @param bathrooms (optional)\r\n * @param themeId (optional)\r\n * @param distanceToWater (optional)\r\n * @param geoBoundingBox_SouthWestLat (optional)\r\n * @param geoBoundingBox_SouthWestLon (optional)\r\n * @param geoBoundingBox_NorthEastLat (optional)\r\n * @param geoBoundingBox_NorthEastLon (optional)\r\n * @param outdoorPool (optional)\r\n * @param hasLastMinuteAvailability (optional)\r\n * @param boostLastMinuteAvailability (optional)\r\n * @param germanChannels (optional)\r\n * @param dryer (optional)\r\n * @param privateOwner (optional)\r\n * @param scandinavianChannels (optional)\r\n * @param chromeCast (optional)\r\n * @param minAverageReviewsAsBoost (optional)\r\n * @param cancellationTemplateIds (optional)\r\n * @return Success\r\n */\r\n search(propertyIds?: string[] | undefined, initialSearch?: boolean | undefined, fieldList?: string[] | undefined, fromIndex?: number | undefined, size?: number | undefined, areaId?: number | undefined, areaName?: string | undefined, sortMethod?: SortingMethods | undefined, toDate?: Date | undefined, fromDate?: Date | undefined, fromPrice?: number | undefined, toPrice?: number | undefined, flexibleDates?: number | undefined, salesPartnerIds?: number[] | undefined, incrementalUpdateTimestamp?: Date | undefined, isFlexRent?: boolean | undefined, aC?: boolean | undefined, propertyType?: number | undefined, dishwasher?: boolean | undefined, washingMachine?: boolean | undefined, tv?: boolean | undefined, internet?: boolean | undefined, wheelchairFriendly?: boolean | undefined, eVChargingStation?: boolean | undefined, indoorPool?: boolean | undefined, spa?: boolean | undefined, hotTub?: boolean | undefined, firePlace?: boolean | undefined, barbecue?: boolean | undefined, coffeeMachine?: boolean | undefined, petsAllowed?: boolean | undefined, smokingAllowed?: boolean | undefined, adults?: number | undefined, children?: number | undefined, infants?: number | undefined, pets?: number | undefined, fromBedrooms?: number | undefined, toBedrooms?: number | undefined, bathrooms?: number | undefined, themeId?: number | undefined, distanceToWater?: WaterDistance | undefined, geoBoundingBox_SouthWestLat?: number | undefined, geoBoundingBox_SouthWestLon?: number | undefined, geoBoundingBox_NorthEastLat?: number | undefined, geoBoundingBox_NorthEastLon?: number | undefined, outdoorPool?: boolean | undefined, hasLastMinuteAvailability?: boolean | undefined, boostLastMinuteAvailability?: boolean | undefined, germanChannels?: boolean | undefined, dryer?: boolean | undefined, privateOwner?: boolean | undefined, scandinavianChannels?: boolean | undefined, chromeCast?: boolean | undefined, minAverageReviewsAsBoost?: number | undefined, cancellationTemplateIds?: number[] | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/search?\";\r\n if (propertyIds === null)\r\n throw new Error(\"The parameter 'propertyIds' cannot be null.\");\r\n else if (propertyIds !== undefined)\r\n propertyIds && propertyIds.forEach(item => { url_ += \"PropertyIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\r\n if (initialSearch === null)\r\n throw new Error(\"The parameter 'initialSearch' cannot be null.\");\r\n else if (initialSearch !== undefined)\r\n url_ += \"InitialSearch=\" + encodeURIComponent(\"\" + initialSearch) + \"&\";\r\n if (fieldList === null)\r\n throw new Error(\"The parameter 'fieldList' cannot be null.\");\r\n else if (fieldList !== undefined)\r\n fieldList && fieldList.forEach(item => { url_ += \"FieldList=\" + encodeURIComponent(\"\" + item) + \"&\"; });\r\n if (fromIndex === null)\r\n throw new Error(\"The parameter 'fromIndex' cannot be null.\");\r\n else if (fromIndex !== undefined)\r\n url_ += \"FromIndex=\" + encodeURIComponent(\"\" + fromIndex) + \"&\";\r\n if (size === null)\r\n throw new Error(\"The parameter 'size' cannot be null.\");\r\n else if (size !== undefined)\r\n url_ += \"Size=\" + encodeURIComponent(\"\" + size) + \"&\";\r\n if (areaId === null)\r\n throw new Error(\"The parameter 'areaId' cannot be null.\");\r\n else if (areaId !== undefined)\r\n url_ += \"AreaId=\" + encodeURIComponent(\"\" + areaId) + \"&\";\r\n if (areaName === null)\r\n throw new Error(\"The parameter 'areaName' cannot be null.\");\r\n else if (areaName !== undefined)\r\n url_ += \"AreaName=\" + encodeURIComponent(\"\" + areaName) + \"&\";\r\n if (sortMethod === null)\r\n throw new Error(\"The parameter 'sortMethod' cannot be null.\");\r\n else if (sortMethod !== undefined)\r\n url_ += \"SortMethod=\" + encodeURIComponent(\"\" + sortMethod) + \"&\";\r\n if (toDate === null)\r\n throw new Error(\"The parameter 'toDate' cannot be null.\");\r\n else if (toDate !== undefined)\r\n url_ += \"ToDate=\" + encodeURIComponent(toDate ? \"\" + toDate.toISOString() : \"\") + \"&\";\r\n if (fromDate === null)\r\n throw new Error(\"The parameter 'fromDate' cannot be null.\");\r\n else if (fromDate !== undefined)\r\n url_ += \"FromDate=\" + encodeURIComponent(fromDate ? \"\" + fromDate.toISOString() : \"\") + \"&\";\r\n if (fromPrice === null)\r\n throw new Error(\"The parameter 'fromPrice' cannot be null.\");\r\n else if (fromPrice !== undefined)\r\n url_ += \"FromPrice=\" + encodeURIComponent(\"\" + fromPrice) + \"&\";\r\n if (toPrice === null)\r\n throw new Error(\"The parameter 'toPrice' cannot be null.\");\r\n else if (toPrice !== undefined)\r\n url_ += \"ToPrice=\" + encodeURIComponent(\"\" + toPrice) + \"&\";\r\n if (flexibleDates === null)\r\n throw new Error(\"The parameter 'flexibleDates' cannot be null.\");\r\n else if (flexibleDates !== undefined)\r\n url_ += \"FlexibleDates=\" + encodeURIComponent(\"\" + flexibleDates) + \"&\";\r\n if (salesPartnerIds === null)\r\n throw new Error(\"The parameter 'salesPartnerIds' cannot be null.\");\r\n else if (salesPartnerIds !== undefined)\r\n salesPartnerIds && salesPartnerIds.forEach(item => { url_ += \"SalesPartnerIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\r\n if (incrementalUpdateTimestamp === null)\r\n throw new Error(\"The parameter 'incrementalUpdateTimestamp' cannot be null.\");\r\n else if (incrementalUpdateTimestamp !== undefined)\r\n url_ += \"IncrementalUpdateTimestamp=\" + encodeURIComponent(incrementalUpdateTimestamp ? \"\" + incrementalUpdateTimestamp.toISOString() : \"\") + \"&\";\r\n if (isFlexRent === null)\r\n throw new Error(\"The parameter 'isFlexRent' cannot be null.\");\r\n else if (isFlexRent !== undefined)\r\n url_ += \"IsFlexRent=\" + encodeURIComponent(\"\" + isFlexRent) + \"&\";\r\n if (aC === null)\r\n throw new Error(\"The parameter 'aC' cannot be null.\");\r\n else if (aC !== undefined)\r\n url_ += \"AC=\" + encodeURIComponent(\"\" + aC) + \"&\";\r\n if (propertyType === null)\r\n throw new Error(\"The parameter 'propertyType' cannot be null.\");\r\n else if (propertyType !== undefined)\r\n url_ += \"PropertyType=\" + encodeURIComponent(\"\" + propertyType) + \"&\";\r\n if (dishwasher === null)\r\n throw new Error(\"The parameter 'dishwasher' cannot be null.\");\r\n else if (dishwasher !== undefined)\r\n url_ += \"Dishwasher=\" + encodeURIComponent(\"\" + dishwasher) + \"&\";\r\n if (washingMachine === null)\r\n throw new Error(\"The parameter 'washingMachine' cannot be null.\");\r\n else if (washingMachine !== undefined)\r\n url_ += \"WashingMachine=\" + encodeURIComponent(\"\" + washingMachine) + \"&\";\r\n if (tv === null)\r\n throw new Error(\"The parameter 'tv' cannot be null.\");\r\n else if (tv !== undefined)\r\n url_ += \"Tv=\" + encodeURIComponent(\"\" + tv) + \"&\";\r\n if (internet === null)\r\n throw new Error(\"The parameter 'internet' cannot be null.\");\r\n else if (internet !== undefined)\r\n url_ += \"Internet=\" + encodeURIComponent(\"\" + internet) + \"&\";\r\n if (wheelchairFriendly === null)\r\n throw new Error(\"The parameter 'wheelchairFriendly' cannot be null.\");\r\n else if (wheelchairFriendly !== undefined)\r\n url_ += \"WheelchairFriendly=\" + encodeURIComponent(\"\" + wheelchairFriendly) + \"&\";\r\n if (eVChargingStation === null)\r\n throw new Error(\"The parameter 'eVChargingStation' cannot be null.\");\r\n else if (eVChargingStation !== undefined)\r\n url_ += \"EVChargingStation=\" + encodeURIComponent(\"\" + eVChargingStation) + \"&\";\r\n if (indoorPool === null)\r\n throw new Error(\"The parameter 'indoorPool' cannot be null.\");\r\n else if (indoorPool !== undefined)\r\n url_ += \"IndoorPool=\" + encodeURIComponent(\"\" + indoorPool) + \"&\";\r\n if (spa === null)\r\n throw new Error(\"The parameter 'spa' cannot be null.\");\r\n else if (spa !== undefined)\r\n url_ += \"Spa=\" + encodeURIComponent(\"\" + spa) + \"&\";\r\n if (hotTub === null)\r\n throw new Error(\"The parameter 'hotTub' cannot be null.\");\r\n else if (hotTub !== undefined)\r\n url_ += \"HotTub=\" + encodeURIComponent(\"\" + hotTub) + \"&\";\r\n if (firePlace === null)\r\n throw new Error(\"The parameter 'firePlace' cannot be null.\");\r\n else if (firePlace !== undefined)\r\n url_ += \"FirePlace=\" + encodeURIComponent(\"\" + firePlace) + \"&\";\r\n if (barbecue === null)\r\n throw new Error(\"The parameter 'barbecue' cannot be null.\");\r\n else if (barbecue !== undefined)\r\n url_ += \"Barbecue=\" + encodeURIComponent(\"\" + barbecue) + \"&\";\r\n if (coffeeMachine === null)\r\n throw new Error(\"The parameter 'coffeeMachine' cannot be null.\");\r\n else if (coffeeMachine !== undefined)\r\n url_ += \"CoffeeMachine=\" + encodeURIComponent(\"\" + coffeeMachine) + \"&\";\r\n if (petsAllowed === null)\r\n throw new Error(\"The parameter 'petsAllowed' cannot be null.\");\r\n else if (petsAllowed !== undefined)\r\n url_ += \"PetsAllowed=\" + encodeURIComponent(\"\" + petsAllowed) + \"&\";\r\n if (smokingAllowed === null)\r\n throw new Error(\"The parameter 'smokingAllowed' cannot be null.\");\r\n else if (smokingAllowed !== undefined)\r\n url_ += \"SmokingAllowed=\" + encodeURIComponent(\"\" + smokingAllowed) + \"&\";\r\n if (adults === null)\r\n throw new Error(\"The parameter 'adults' cannot be null.\");\r\n else if (adults !== undefined)\r\n url_ += \"Adults=\" + encodeURIComponent(\"\" + adults) + \"&\";\r\n if (children === null)\r\n throw new Error(\"The parameter 'children' cannot be null.\");\r\n else if (children !== undefined)\r\n url_ += \"Children=\" + encodeURIComponent(\"\" + children) + \"&\";\r\n if (infants === null)\r\n throw new Error(\"The parameter 'infants' cannot be null.\");\r\n else if (infants !== undefined)\r\n url_ += \"Infants=\" + encodeURIComponent(\"\" + infants) + \"&\";\r\n if (pets === null)\r\n throw new Error(\"The parameter 'pets' cannot be null.\");\r\n else if (pets !== undefined)\r\n url_ += \"Pets=\" + encodeURIComponent(\"\" + pets) + \"&\";\r\n if (fromBedrooms === null)\r\n throw new Error(\"The parameter 'fromBedrooms' cannot be null.\");\r\n else if (fromBedrooms !== undefined)\r\n url_ += \"fromBedrooms=\" + encodeURIComponent(\"\" + fromBedrooms) + \"&\";\r\n if (toBedrooms === null)\r\n throw new Error(\"The parameter 'toBedrooms' cannot be null.\");\r\n else if (toBedrooms !== undefined)\r\n url_ += \"toBedrooms=\" + encodeURIComponent(\"\" + toBedrooms) + \"&\";\r\n if (bathrooms === null)\r\n throw new Error(\"The parameter 'bathrooms' cannot be null.\");\r\n else if (bathrooms !== undefined)\r\n url_ += \"Bathrooms=\" + encodeURIComponent(\"\" + bathrooms) + \"&\";\r\n if (themeId === null)\r\n throw new Error(\"The parameter 'themeId' cannot be null.\");\r\n else if (themeId !== undefined)\r\n url_ += \"ThemeId=\" + encodeURIComponent(\"\" + themeId) + \"&\";\r\n if (distanceToWater === null)\r\n throw new Error(\"The parameter 'distanceToWater' cannot be null.\");\r\n else if (distanceToWater !== undefined)\r\n url_ += \"DistanceToWater=\" + encodeURIComponent(\"\" + distanceToWater) + \"&\";\r\n if (geoBoundingBox_SouthWestLat === null)\r\n throw new Error(\"The parameter 'geoBoundingBox_SouthWestLat' cannot be null.\");\r\n else if (geoBoundingBox_SouthWestLat !== undefined)\r\n url_ += \"GeoBoundingBox.SouthWestLat=\" + encodeURIComponent(\"\" + geoBoundingBox_SouthWestLat) + \"&\";\r\n if (geoBoundingBox_SouthWestLon === null)\r\n throw new Error(\"The parameter 'geoBoundingBox_SouthWestLon' cannot be null.\");\r\n else if (geoBoundingBox_SouthWestLon !== undefined)\r\n url_ += \"GeoBoundingBox.SouthWestLon=\" + encodeURIComponent(\"\" + geoBoundingBox_SouthWestLon) + \"&\";\r\n if (geoBoundingBox_NorthEastLat === null)\r\n throw new Error(\"The parameter 'geoBoundingBox_NorthEastLat' cannot be null.\");\r\n else if (geoBoundingBox_NorthEastLat !== undefined)\r\n url_ += \"GeoBoundingBox.NorthEastLat=\" + encodeURIComponent(\"\" + geoBoundingBox_NorthEastLat) + \"&\";\r\n if (geoBoundingBox_NorthEastLon === null)\r\n throw new Error(\"The parameter 'geoBoundingBox_NorthEastLon' cannot be null.\");\r\n else if (geoBoundingBox_NorthEastLon !== undefined)\r\n url_ += \"GeoBoundingBox.NorthEastLon=\" + encodeURIComponent(\"\" + geoBoundingBox_NorthEastLon) + \"&\";\r\n if (outdoorPool === null)\r\n throw new Error(\"The parameter 'outdoorPool' cannot be null.\");\r\n else if (outdoorPool !== undefined)\r\n url_ += \"OutdoorPool=\" + encodeURIComponent(\"\" + outdoorPool) + \"&\";\r\n if (hasLastMinuteAvailability === null)\r\n throw new Error(\"The parameter 'hasLastMinuteAvailability' cannot be null.\");\r\n else if (hasLastMinuteAvailability !== undefined)\r\n url_ += \"HasLastMinuteAvailability=\" + encodeURIComponent(\"\" + hasLastMinuteAvailability) + \"&\";\r\n if (boostLastMinuteAvailability === null)\r\n throw new Error(\"The parameter 'boostLastMinuteAvailability' cannot be null.\");\r\n else if (boostLastMinuteAvailability !== undefined)\r\n url_ += \"BoostLastMinuteAvailability=\" + encodeURIComponent(\"\" + boostLastMinuteAvailability) + \"&\";\r\n if (germanChannels === null)\r\n throw new Error(\"The parameter 'germanChannels' cannot be null.\");\r\n else if (germanChannels !== undefined)\r\n url_ += \"GermanChannels=\" + encodeURIComponent(\"\" + germanChannels) + \"&\";\r\n if (dryer === null)\r\n throw new Error(\"The parameter 'dryer' cannot be null.\");\r\n else if (dryer !== undefined)\r\n url_ += \"Dryer=\" + encodeURIComponent(\"\" + dryer) + \"&\";\r\n if (privateOwner === null)\r\n throw new Error(\"The parameter 'privateOwner' cannot be null.\");\r\n else if (privateOwner !== undefined)\r\n url_ += \"PrivateOwner=\" + encodeURIComponent(\"\" + privateOwner) + \"&\";\r\n if (scandinavianChannels === null)\r\n throw new Error(\"The parameter 'scandinavianChannels' cannot be null.\");\r\n else if (scandinavianChannels !== undefined)\r\n url_ += \"ScandinavianChannels=\" + encodeURIComponent(\"\" + scandinavianChannels) + \"&\";\r\n if (chromeCast === null)\r\n throw new Error(\"The parameter 'chromeCast' cannot be null.\");\r\n else if (chromeCast !== undefined)\r\n url_ += \"ChromeCast=\" + encodeURIComponent(\"\" + chromeCast) + \"&\";\r\n if (minAverageReviewsAsBoost === null)\r\n throw new Error(\"The parameter 'minAverageReviewsAsBoost' cannot be null.\");\r\n else if (minAverageReviewsAsBoost !== undefined)\r\n url_ += \"MinAverageReviewsAsBoost=\" + encodeURIComponent(\"\" + minAverageReviewsAsBoost) + \"&\";\r\n if (cancellationTemplateIds === null)\r\n throw new Error(\"The parameter 'cancellationTemplateIds' cannot be null.\");\r\n else if (cancellationTemplateIds !== undefined)\r\n cancellationTemplateIds && cancellationTemplateIds.forEach(item => { url_ += \"CancellationTemplateIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processSearch(_response);\r\n });\r\n }\r\n\r\n protected processSearch(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SearchResponseModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param areaId (optional)\r\n * @param themeId (optional)\r\n * @return Success\r\n */\r\n relatedDestinations(areaId?: number | undefined, themeId?: number | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/search/related-destinations?\";\r\n if (areaId === null)\r\n throw new Error(\"The parameter 'areaId' cannot be null.\");\r\n else if (areaId !== undefined)\r\n url_ += \"areaId=\" + encodeURIComponent(\"\" + areaId) + \"&\";\r\n if (themeId === null)\r\n throw new Error(\"The parameter 'themeId' cannot be null.\");\r\n else if (themeId !== undefined)\r\n url_ += \"themeId=\" + encodeURIComponent(\"\" + themeId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processRelatedDestinations(_response);\r\n });\r\n }\r\n\r\n protected processRelatedDestinations(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as RelatedDestinationModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param propertyId (optional)\r\n * @return Success\r\n */\r\n propertyRelatedDestinations(propertyId?: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/search/property-related-destinations?\";\r\n if (propertyId === null)\r\n throw new Error(\"The parameter 'propertyId' cannot be null.\");\r\n else if (propertyId !== undefined)\r\n url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processPropertyRelatedDestinations(_response);\r\n });\r\n }\r\n\r\n protected processPropertyRelatedDestinations(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as RelatedDestinationModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @return Success\r\n */\r\n sortOptions(): Promise {\r\n let url_ = this.baseUrl + \"/api/search/sort-options\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processSortOptions(_response);\r\n });\r\n }\r\n\r\n protected processSortOptions(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SortOptionsResponseModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @return Success\r\n */\r\n filterOptions(): Promise {\r\n let url_ = this.baseUrl + \"/api/search/filter-options\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processFilterOptions(_response);\r\n });\r\n }\r\n\r\n protected processFilterOptions(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as FilterOptionsResponseModel;\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param query (optional)\r\n * @return Success\r\n */\r\n autocomplete(query?: string | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/search/autocomplete?\";\r\n if (query === null)\r\n throw new Error(\"The parameter 'query' cannot be null.\");\r\n else if (query !== undefined)\r\n url_ += \"query=\" + encodeURIComponent(\"\" + query) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"text/plain\"\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processAutocomplete(_response);\r\n });\r\n }\r\n\r\n protected processAutocomplete(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SearchItem[];\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * @param areaId (optional)\r\n * @param month (optional)\r\n * @param year (optional)\r\n * @param timeZoneOffsetMinutes (optional)\r\n * @return Success\r\n */\r\n calendarCss(areaId?: number | undefined, month?: number | undefined, year?: number | undefined, timeZoneOffsetMinutes?: number | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/search/calendar-css?\";\r\n if (areaId === null)\r\n throw new Error(\"The parameter 'areaId' cannot be null.\");\r\n else if (areaId !== undefined)\r\n url_ += \"areaId=\" + encodeURIComponent(\"\" + areaId) + \"&\";\r\n if (month === null)\r\n throw new Error(\"The parameter 'month' cannot be null.\");\r\n else if (month !== undefined)\r\n url_ += \"month=\" + encodeURIComponent(\"\" + month) + \"&\";\r\n if (year === null)\r\n throw new Error(\"The parameter 'year' cannot be null.\");\r\n else if (year !== undefined)\r\n url_ += \"year=\" + encodeURIComponent(\"\" + year) + \"&\";\r\n if (timeZoneOffsetMinutes === null)\r\n throw new Error(\"The parameter 'timeZoneOffsetMinutes' cannot be null.\");\r\n else if (timeZoneOffsetMinutes !== undefined)\r\n url_ += \"timeZoneOffsetMinutes=\" + encodeURIComponent(\"\" + timeZoneOffsetMinutes) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processCalendarCss(_response);\r\n });\r\n }\r\n\r\n protected processCalendarCss(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n\r\n /**\r\n * Get translations for a list of textIds\r\n * @param textIds (optional)\r\n * @return Success\r\n */\r\n getTranslations(textIds?: number[] | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/translation/GetTranslations?\";\r\n if (textIds === null)\r\n throw new Error(\"The parameter 'textIds' cannot be null.\");\r\n else if (textIds !== undefined)\r\n textIds && textIds.forEach(item => { url_ += \"textIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_: RequestInit = {\r\n method: \"GET\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.http.fetch(url_, options_).then((_response: Response) => {\r\n return this.processGetTranslations(_response);\r\n });\r\n }\r\n\r\n protected processGetTranslations(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null as any);\r\n }\r\n}\r\n\r\nexport interface AlternativeSearch {\r\n filterOption?: string | undefined;\r\n expectedResultCount?: number;\r\n areaId?: number | undefined;\r\n}\r\n\r\nexport interface AppliedDiscount {\r\n discount?: number;\r\n type?: DiscountTypes;\r\n discountPercent?: number | undefined;\r\n applyOnServices?: boolean | undefined;\r\n serviceDiscount?: number | undefined;\r\n}\r\n\r\nexport interface AppliedDiscountCode {\r\n code?: string | undefined;\r\n discountPercent?: number;\r\n discount?: number;\r\n currency?: string | undefined;\r\n}\r\n\r\nexport interface AreaLink {\r\n areaId?: number;\r\n areaName?: string | undefined;\r\n url?: string | undefined;\r\n}\r\n\r\nexport interface ArrivalInformation {\r\n isVisible?: boolean;\r\n highlightedTitle?: string | undefined;\r\n text?: string | undefined;\r\n address?: string | undefined;\r\n arrivalTime?: string | undefined;\r\n}\r\n\r\nexport interface BankTransferInformation {\r\n active?: boolean;\r\n instructions?: BankTransferInstructions;\r\n}\r\n\r\nexport interface BankTransferInstructions {\r\n reference?: string | undefined;\r\n amountRemainingWithCurrency?: string | undefined;\r\n financialAddresses?: FinancialAddress[] | undefined;\r\n hostedInstructionsUrl?: string | undefined;\r\n}\r\n\r\nexport interface BookedFee {\r\n name?: string | undefined;\r\n price?: number | undefined;\r\n currency?: string | undefined;\r\n priceInBookingCurrency?: string | undefined;\r\n included?: boolean;\r\n tooltip?: string | undefined;\r\n}\r\n\r\nexport interface BookingContactDetails {\r\n guest?: ContactDetail;\r\n ownerName?: string | undefined;\r\n}\r\n\r\nexport interface BookingCreatePaymentResponseModel {\r\n clientSecret?: string | undefined;\r\n}\r\n\r\nexport interface BookingDetails {\r\n period?: Period;\r\n guests?: Guests;\r\n bookedFees?: BookedFee[] | undefined;\r\n totalPrice?: TotalPrice;\r\n usageCostsAfterDeparture?: UsageCost[] | undefined;\r\n usageCostsOnLocation?: UsageCost[] | undefined;\r\n cancellationInsurancePolicyNumber?: string | undefined;\r\n appliedDiscountCode?: AppliedDiscountCode;\r\n}\r\n\r\nexport enum BookingErrors {\r\n _754 = 754,\r\n _1200 = 1200,\r\n _1346 = 1346,\r\n _1422 = 1422,\r\n _1451 = 1451,\r\n _1459 = 1459,\r\n _1510 = 1510,\r\n _1512 = 1512,\r\n _1513 = 1513,\r\n _1516 = 1516,\r\n _2251 = 2251,\r\n _2354 = 2354,\r\n _3493 = 3493,\r\n _3495 = 3495,\r\n _3496 = 3496,\r\n _3497 = 3497,\r\n _3498 = 3498,\r\n _3499 = 3499,\r\n _3501 = 3501,\r\n _3508 = 3508,\r\n _3643 = 3643,\r\n _3671 = 3671,\r\n _6518 = 6518,\r\n _6716 = 6716,\r\n _6717 = 6717,\r\n _6718 = 6718,\r\n _6719 = 6719,\r\n _6720 = 6720,\r\n _6729 = 6729,\r\n _6977 = 6977,\r\n _6978 = 6978,\r\n _6979 = 6979,\r\n _6980 = 6980,\r\n _6981 = 6981,\r\n _6985 = 6985,\r\n _6989 = 6989,\r\n _6990 = 6990,\r\n _6991 = 6991,\r\n _6992 = 6992,\r\n _6993 = 6993,\r\n _6994 = 6994,\r\n _7000 = 7000,\r\n _7014 = 7014,\r\n _7015 = 7015,\r\n _7016 = 7016,\r\n _7017 = 7017,\r\n _7078 = 7078,\r\n _7120 = 7120,\r\n _8402 = 8402,\r\n _8403 = 8403,\r\n _14067 = 14067,\r\n _14071 = 14071,\r\n _14072 = 14072,\r\n _14078 = 14078,\r\n}\r\n\r\nexport interface BookingFlowResponseModel {\r\n property?: Property;\r\n mandatoryFees?: MandatoryFee[] | undefined;\r\n optionalFees?: OptionalFee[] | undefined;\r\n usageCostsAfterDeparture?: UsageCost[] | undefined;\r\n usageCostsOnLocation?: UsageCost[] | undefined;\r\n mandatoryChoiceFees?: MandatoryChoiceFee[] | undefined;\r\n totalPrice?: TotalPrice;\r\n paymentOptions?: PaymentOption[] | undefined;\r\n nights?: number;\r\n countries?: CountryOption[] | undefined;\r\n defaultCountryCode?: string | undefined;\r\n termsAndConditions?: string | undefined;\r\n privacyPolicy?: string | undefined;\r\n errors?: ReservationError[] | undefined;\r\n flexiblePaymentTooltip?: string | undefined;\r\n bookingStartedTrackingData?: BookingStartedTrackingData;\r\n paymentMethods?: string[] | undefined;\r\n commissionPercentage?: number;\r\n}\r\n\r\nexport interface BookingRequest {\r\n personalDetails?: PersonalDetails;\r\n selectedOptions?: SelectedBookingOption[] | undefined;\r\n paymentOption?: PaymentOptions;\r\n subscribeToNewsLetters?: boolean;\r\n priceAndFeesRequest?: PriceAndFeesRequest;\r\n}\r\n\r\nexport interface BookingResponseModel {\r\n agencyBookingNumber?: string | undefined;\r\n errors?: ReservationError[] | undefined;\r\n property?: Property;\r\n generalInformation?: GeneralInformation;\r\n paymentInformation?: PaymentInformation;\r\n bookingStatus?: BookingStatus;\r\n bookingStatusSuccess?: BookingStatus;\r\n bookingContactDetails?: BookingContactDetails;\r\n bookingDetails?: BookingDetails;\r\n arrivalInformation?: ArrivalInformation;\r\n flexiblePaymentTooltip?: string | undefined;\r\n trackingData?: TrackingData;\r\n bookingSettlementDetails?: BookingSettlementDetails[] | undefined;\r\n gtmData?: GtmData;\r\n consumptionDetails?: ConsumptionDetails;\r\n shouldCurrentRateBePaidAtSalesPartner?: boolean;\r\n salesPartnerName?: string | undefined;\r\n}\r\n\r\nexport interface BookingSettlementDetails {\r\n consumptionCosts?: SettlementCost[] | undefined;\r\n damageCosts?: SettlementCost[] | undefined;\r\n extraServicesCosts?: SettlementCost[] | undefined;\r\n extraDiscounts?: SettlementCost[] | undefined;\r\n otherCosts?: SettlementCost[] | undefined;\r\n afterDeparturePriceSum?: number | undefined;\r\n afterDepartureCurrency?: string | undefined;\r\n depositAmount?: number | undefined;\r\n depositCurrency?: string | undefined;\r\n totalRefund?: SettlementTotal;\r\n totalPayment?: SettlementTotal;\r\n}\r\n\r\nexport interface BookingStartedTrackingData {\r\n price?: number;\r\n area?: string | undefined;\r\n currency?: string | undefined;\r\n brand?: string | undefined;\r\n country?: string | undefined;\r\n region?: string | undefined;\r\n city?: string | undefined;\r\n}\r\n\r\nexport interface BookingStatus {\r\n type?: BookingStatusType;\r\n highlightedTitle?: string | undefined;\r\n text?: string | undefined;\r\n isPartiallyPaid?: boolean;\r\n}\r\n\r\nexport enum BookingStatusType {\r\n _0 = 0,\r\n _1 = 1,\r\n _2 = 2,\r\n _3 = 3,\r\n _4 = 4,\r\n _5 = 5,\r\n}\r\n\r\nexport interface BoolFacilities {\r\n headline?: string | undefined;\r\n items?: string[] | undefined;\r\n}\r\n\r\n/** Current Language */\r\nexport interface BreadcrumbItem {\r\n name?: string | undefined;\r\n link?: string | undefined;\r\n}\r\n\r\nexport interface CalendarEntity {\r\n availableDates?: string[] | undefined;\r\n checkinDates?: string[] | undefined;\r\n checkoutDates?: string[] | undefined;\r\n}\r\n\r\nexport interface CategoryFacilities {\r\n facilities?: CategoryFacility[] | undefined;\r\n}\r\n\r\nexport interface CategoryFacility {\r\n headline?: string | undefined;\r\n text?: string | undefined;\r\n iconName?: string | undefined;\r\n}\r\n\r\nexport interface ConsumptionDetails {\r\n canEdit?: boolean;\r\n hasAutomaticElectricityReading?: boolean;\r\n consumptionEntries?: ConsumptionEntry[] | undefined;\r\n}\r\n\r\nexport interface ConsumptionEntry {\r\n name?: string | undefined;\r\n arrivalValue?: number;\r\n departureValue?: number;\r\n unit?: string | undefined;\r\n serviceId?: number;\r\n}\r\n\r\nexport interface ContactDetail {\r\n name?: string | undefined;\r\n email?: string | undefined;\r\n phone?: string | undefined;\r\n country?: string | undefined;\r\n}\r\n\r\nexport interface Coordinate {\r\n latitude?: number;\r\n longitude?: number;\r\n zoomLevel?: number;\r\n}\r\n\r\nexport interface CountryOption {\r\n countryCode?: string | undefined;\r\n name?: string | undefined;\r\n}\r\n\r\nexport enum Currency {\r\n _1 = 1,\r\n _5 = 5,\r\n _7 = 7,\r\n _13 = 13,\r\n _18 = 18,\r\n _71 = 71,\r\n}\r\n\r\nexport enum DbAnalyticEventTypes {\r\n _1 = 1,\r\n _2 = 2,\r\n _3 = 3,\r\n _4 = 4,\r\n _5 = 5,\r\n _6 = 6,\r\n _7 = 7,\r\n _8 = 8,\r\n _9 = 9,\r\n _10 = 10,\r\n _11 = 11,\r\n}\r\n\r\nexport interface DbLiveCurrency {\r\n currency?: Currency;\r\n currencyId?: number;\r\n currencyCode?: string | undefined;\r\n currencySign?: string | undefined;\r\n price?: number;\r\n}\r\n\r\nexport enum DbServiceUnits {\r\n _0 = 0,\r\n _1 = 1,\r\n _2 = 2,\r\n _3 = 3,\r\n _4 = 4,\r\n _5 = 5,\r\n _6 = 6,\r\n _7 = 7,\r\n _8 = 8,\r\n _9 = 9,\r\n _10 = 10,\r\n _11 = 11,\r\n _12 = 12,\r\n _13 = 13,\r\n _14 = 14,\r\n _15 = 15,\r\n _16 = 16,\r\n _17 = 17,\r\n _18 = 18,\r\n _19 = 19,\r\n}\r\n\r\nexport interface Descriptions {\r\n shortDescription?: string | undefined;\r\n longDescription?: string | undefined;\r\n}\r\n\r\nexport enum DiscountTypes {\r\n _1 = 1,\r\n _2 = 2,\r\n _3 = 3,\r\n _4 = 4,\r\n}\r\n\r\nexport interface DistanceFacilities {\r\n headline?: string | undefined;\r\n items?: string[] | undefined;\r\n}\r\n\r\nexport interface FacilitiesList {\r\n categoryFacilities?: CategoryFacilities;\r\n keyFacilities?: KeyFacilities;\r\n allFacilities?: ThemeFacilities[] | undefined;\r\n previewFacilities?: Facility[] | undefined;\r\n}\r\n\r\nexport interface Facility {\r\n items?: string[] | undefined;\r\n value?: string | undefined;\r\n priority?: number;\r\n}\r\n\r\nexport interface FilterOptionBool {\r\n name?: string | undefined;\r\n options?: OptionBool[] | undefined;\r\n}\r\n\r\nexport interface FilterOptionInt {\r\n name?: string | undefined;\r\n optionSearchName?: string | undefined;\r\n}\r\n\r\nexport interface FilterOptionInterval {\r\n name?: string | undefined;\r\n optionSearchFrom?: string | undefined;\r\n optionSearchTo?: string | undefined;\r\n maxValue?: number;\r\n}\r\n\r\nexport interface FilterOptionMultiSelect {\r\n name?: string | undefined;\r\n optionSearchName?: string | undefined;\r\n optionSearchValues?: number[] | undefined;\r\n}\r\n\r\nexport interface FilterOptionPriceInterval {\r\n name?: string | undefined;\r\n optionSearchFrom?: string | undefined;\r\n optionSearchTo?: string | undefined;\r\n maxValue?: number;\r\n currencyText?: string | undefined;\r\n currency?: string | undefined;\r\n}\r\n\r\nexport interface FilterOptionText {\r\n name?: string | undefined;\r\n optionSearchName?: string | undefined;\r\n options?: OptionText[] | undefined;\r\n}\r\n\r\nexport interface FilterOptionsResponseModel {\r\n price?: FilterOptionPriceInterval;\r\n bedrooms?: FilterOptionInterval;\r\n bathrooms?: FilterOptionInt;\r\n distanceToWater?: FilterOptionMultiSelect;\r\n propertyTypes?: FilterOptionText;\r\n popularFacilities?: FilterOptionBool;\r\n pets?: FilterOptionBool;\r\n additionalFacilities?: FilterOptionBool;\r\n smoking?: FilterOptionBool;\r\n}\r\n\r\nexport interface FinancialAddress {\r\n accountHolderName?: string | undefined;\r\n bic?: string | undefined;\r\n country?: string | undefined;\r\n iban?: string | undefined;\r\n}\r\n\r\nexport interface GeneralInformation {\r\n text?: string | undefined;\r\n textLastPaymentReminder?: string | undefined;\r\n paymentUrl?: string | undefined;\r\n}\r\n\r\nexport interface GtmData {\r\n bookingId?: string | undefined;\r\n street?: string | undefined;\r\n postalCode?: string | undefined;\r\n city?: string | undefined;\r\n country?: string | undefined;\r\n email?: string | undefined;\r\n phone?: string | undefined;\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n currencyCode?: string | undefined;\r\n brand?: string | undefined;\r\n commission?: number;\r\n breadcrumb?: string | undefined;\r\n startDate?: string | undefined;\r\n endDate?: string | undefined;\r\n propertyCountry?: string | undefined;\r\n propertyRegion?: string | undefined;\r\n propertyCity?: string | undefined;\r\n}\r\n\r\nexport interface Guests {\r\n adults?: number;\r\n children?: number;\r\n infants?: number;\r\n pets?: number;\r\n}\r\n\r\nexport interface HybridDetails {\r\n rentalPrice?: number;\r\n hybridFeeDetails?: HybridFeeDetail[] | undefined;\r\n}\r\n\r\nexport interface HybridFeeDetail {\r\n code?: string | undefined;\r\n pricePerUnit?: number;\r\n bookable?: number;\r\n payment?: number;\r\n unit?: number;\r\n name?: string | undefined;\r\n selected?: number;\r\n}\r\n\r\nexport interface IntFacilities {\r\n headline?: string | undefined;\r\n items?: string[] | undefined;\r\n}\r\n\r\nexport interface KeyFacilities {\r\n intFacilities?: IntFacilities;\r\n boolFacilities?: BoolFacilities;\r\n distanceFacilities?: DistanceFacilities;\r\n}\r\n\r\nexport enum Language {\r\n _0 = 0,\r\n _1 = 1,\r\n _2 = 2,\r\n _3 = 3,\r\n _4 = 4,\r\n _5 = 5,\r\n _7 = 7,\r\n _8 = 8,\r\n _9 = 9,\r\n _10 = 10,\r\n _14 = 14,\r\n _16 = 16,\r\n _18 = 18,\r\n _35 = 35,\r\n _37 = 37,\r\n _38 = 38,\r\n _39 = 39,\r\n _40 = 40,\r\n _41 = 41,\r\n _42 = 42,\r\n _43 = 43,\r\n _44 = 44,\r\n _45 = 45,\r\n _46 = 46,\r\n _47 = 47,\r\n _48 = 48,\r\n _49 = 49,\r\n _50 = 50,\r\n _51 = 51,\r\n _52 = 52,\r\n _53 = 53,\r\n _54 = 54,\r\n _55 = 55,\r\n _56 = 56,\r\n _57 = 57,\r\n _58 = 58,\r\n _59 = 59,\r\n _60 = 60,\r\n _61 = 61,\r\n _62 = 62,\r\n _63 = 63,\r\n _64 = 64,\r\n _65 = 65,\r\n _66 = 66,\r\n _68 = 68,\r\n _69 = 69,\r\n _70 = 70,\r\n _71 = 71,\r\n _72 = 72,\r\n _73 = 73,\r\n _74 = 74,\r\n _75 = 75,\r\n _76 = 76,\r\n _77 = 77,\r\n _78 = 78,\r\n _79 = 79,\r\n _80 = 80,\r\n _81 = 81,\r\n _82 = 82,\r\n _83 = 83,\r\n _84 = 84,\r\n _85 = 85,\r\n _86 = 86,\r\n _87 = 87,\r\n _88 = 88,\r\n _89 = 89,\r\n _90 = 90,\r\n _91 = 91,\r\n _92 = 92,\r\n _102 = 102,\r\n _104 = 104,\r\n _107 = 107,\r\n _108 = 108,\r\n _110 = 110,\r\n _111 = 111,\r\n _112 = 112,\r\n _113 = 113,\r\n _114 = 114,\r\n _115 = 115,\r\n _116 = 116,\r\n _117 = 117,\r\n}\r\n\r\nexport enum LogTypes {\r\n _1 = 1,\r\n _2 = 2,\r\n _4 = 4,\r\n _5 = 5,\r\n _7 = 7,\r\n _8 = 8,\r\n _9 = 9,\r\n _10 = 10,\r\n _11 = 11,\r\n _12 = 12,\r\n _13 = 13,\r\n _14 = 14,\r\n _15 = 15,\r\n _16 = 16,\r\n _17 = 17,\r\n _18 = 18,\r\n _20 = 20,\r\n _21 = 21,\r\n _22 = 22,\r\n _23 = 23,\r\n _24 = 24,\r\n _25 = 25,\r\n _29 = 29,\r\n _30 = 30,\r\n _31 = 31,\r\n _32 = 32,\r\n _37 = 37,\r\n _38 = 38,\r\n _39 = 39,\r\n _40 = 40,\r\n _41 = 41,\r\n _42 = 42,\r\n _43 = 43,\r\n _44 = 44,\r\n _45 = 45,\r\n _46 = 46,\r\n _47 = 47,\r\n _48 = 48,\r\n _49 = 49,\r\n _50 = 50,\r\n _51 = 51,\r\n _52 = 52,\r\n _53 = 53,\r\n _54 = 54,\r\n _55 = 55,\r\n _56 = 56,\r\n _57 = 57,\r\n _58 = 58,\r\n _59 = 59,\r\n _60 = 60,\r\n _61 = 61,\r\n _62 = 62,\r\n _63 = 63,\r\n _64 = 64,\r\n _65 = 65,\r\n _66 = 66,\r\n _67 = 67,\r\n _68 = 68,\r\n _69 = 69,\r\n _70 = 70,\r\n _71 = 71,\r\n _73 = 73,\r\n _74 = 74,\r\n _75 = 75,\r\n _76 = 76,\r\n _77 = 77,\r\n _78 = 78,\r\n _79 = 79,\r\n _80 = 80,\r\n _81 = 81,\r\n _82 = 82,\r\n _83 = 83,\r\n _84 = 84,\r\n _85 = 85,\r\n _86 = 86,\r\n _87 = 87,\r\n _88 = 88,\r\n _89 = 89,\r\n _90 = 90,\r\n _91 = 91,\r\n _92 = 92,\r\n _93 = 93,\r\n _94 = 94,\r\n _95 = 95,\r\n _96 = 96,\r\n _97 = 97,\r\n _98 = 98,\r\n _99 = 99,\r\n}\r\n\r\nexport interface MandatoryChoiceFee {\r\n name?: string | undefined;\r\n mandatoryChoiceOptions?: MandatoryChoiceOption[] | undefined;\r\n}\r\n\r\nexport interface MandatoryChoiceOption {\r\n id?: string | undefined;\r\n name?: string | undefined;\r\n price?: number;\r\n currency?: string | undefined;\r\n textToReplace?: string | undefined;\r\n}\r\n\r\nexport interface MandatoryFee {\r\n name?: string | undefined;\r\n price?: number;\r\n currency?: string | undefined;\r\n included?: boolean;\r\n tooltip?: string | undefined;\r\n}\r\n\r\nexport interface MeetingEvent {\r\n id?: number;\r\n dateFromUtc?: Date;\r\n dateToUtc?: Date;\r\n maxGuests?: number;\r\n description?: string | undefined;\r\n address?: string | undefined;\r\n link?: string | undefined;\r\n currentParticipants?: number;\r\n currentParticipantsTotal?: number;\r\n isOnline?: boolean;\r\n}\r\n\r\nexport interface MeetingEventParticipant {\r\n meetingEventId?: number;\r\n email?: string | undefined;\r\n name?: string | undefined;\r\n phone?: string | undefined;\r\n participants?: number;\r\n}\r\n\r\nexport interface OptionBool {\r\n name?: string | undefined;\r\n optionSearchName?: string | undefined;\r\n}\r\n\r\nexport interface OptionSort {\r\n name?: string | undefined;\r\n optionSearchValue?: SortingMethods;\r\n}\r\n\r\nexport interface OptionText {\r\n name?: string | undefined;\r\n optionSearchValue?: number;\r\n}\r\n\r\nexport interface OptionalFee {\r\n id?: string | undefined;\r\n name?: string | undefined;\r\n options?: OptionalFeeOption[] | undefined;\r\n tooltip?: string | undefined;\r\n}\r\n\r\nexport interface OptionalFeeOption {\r\n price?: number;\r\n currency?: string | undefined;\r\n textToReplace?: string | undefined;\r\n text?: string | undefined;\r\n}\r\n\r\nexport interface PaymentInformation {\r\n title?: string | undefined;\r\n amount?: number | undefined;\r\n currency?: string | undefined;\r\n paymentMethodTypes?: string[] | undefined;\r\n hasUnpaidRate?: boolean;\r\n publicKey?: string | undefined;\r\n emailAddress?: string | undefined;\r\n paymentButtonText?: string | undefined;\r\n paymentButtonTextToReplace?: string | undefined;\r\n paymentButtonPrice?: number | undefined;\r\n unpaidRates?: UnpaidRate[] | undefined;\r\n isUsagePayment?: boolean;\r\n bankTransferInformation?: BankTransferInformation;\r\n allowBankTransfer?: boolean;\r\n extraPaymentOptions?: string[] | undefined;\r\n paymentIntentStatus?: string | undefined;\r\n}\r\n\r\nexport interface PaymentOption {\r\n name?: string | undefined;\r\n description?: string | undefined;\r\n id?: number;\r\n}\r\n\r\nexport enum PaymentOptions {\r\n _1 = 1,\r\n _2 = 2,\r\n}\r\n\r\nexport interface PaymentRate {\r\n name?: string | undefined;\r\n price?: number;\r\n currency?: string | undefined;\r\n}\r\n\r\nexport interface Period {\r\n arrival?: string | undefined;\r\n departure?: string | undefined;\r\n nights?: number;\r\n checkIn?: string | undefined;\r\n checkOut?: string | undefined;\r\n}\r\n\r\nexport interface PersonalDetails {\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n email?: string | undefined;\r\n phone?: string | undefined;\r\n address?: string | undefined;\r\n zipCode?: string | undefined;\r\n city?: string | undefined;\r\n countryCode?: string | undefined;\r\n}\r\n\r\nexport interface PressureTag {\r\n name?: string | undefined;\r\n description?: string | undefined;\r\n type?: PressureTagType;\r\n}\r\n\r\nexport enum PressureTagType {\r\n _0 = 0,\r\n _1 = 1,\r\n}\r\n\r\nexport interface PriceAndFeesRequest {\r\n fromDate?: Date;\r\n toDate?: Date;\r\n adults: number;\r\n children: number;\r\n infants: number;\r\n pets?: number;\r\n bookServices?: { [key: string]: number; } | undefined;\r\n discountCode?: string | undefined;\r\n languageCurrencyKey?: string | undefined;\r\n language?: string | undefined;\r\n salesPartnerDetails?: SalesPartnerDetails;\r\n hybridDetails?: HybridDetails;\r\n throwErrorOnInvalidMandatoryGroupSelection?: boolean;\r\n feeLanguage?: Language;\r\n}\r\n\r\nexport interface Property {\r\n name?: string | undefined;\r\n image?: string | undefined;\r\n isFlexRent?: boolean;\r\n rooms?: string | undefined;\r\n bathrooms?: string | undefined;\r\n distanceToWater?: string | undefined;\r\n bedroomCount?: number | undefined;\r\n bathroomCount?: number | undefined;\r\n distanceToWaterDistance?: number | undefined;\r\n distanceToWaterTypeText?: string | undefined;\r\n sleepingPlaces?: number | undefined;\r\n}\r\n\r\nexport interface PropertyListingDataApiModel {\r\n propertyId?: string | undefined;\r\n title?: string | undefined;\r\n image?: string | undefined;\r\n}\r\n\r\nexport interface PropertyResponseModel {\r\n name?: string | undefined;\r\n facilitiesList?: FacilitiesList;\r\n descriptions?: Descriptions;\r\n reviewList?: ReviewList;\r\n suggestedPersonalizedProperties?: SuggestionProperties;\r\n suggestedOtherPropertiesInArea?: SuggestionProperties;\r\n images?: string[] | undefined;\r\n breadcrumbs?: BreadcrumbItem[] | undefined;\r\n coordinate?: Coordinate;\r\n brand?: string | undefined;\r\n paymentMethods?: string[] | undefined;\r\n isDisabled?: boolean;\r\n areaId?: number;\r\n pressureTags?: PressureTag[] | undefined;\r\n country?: string | undefined;\r\n region?: string | undefined;\r\n city?: string | undefined;\r\n}\r\n\r\nexport interface RelatedDestination {\r\n areaId?: number;\r\n title?: string | undefined;\r\n destinationLink?: string | undefined;\r\n areaName?: string | undefined;\r\n}\r\n\r\nexport interface RelatedDestinationModel {\r\n breadcrumbs?: AreaLink[] | undefined;\r\n destinations?: RelatedDestination[] | undefined;\r\n title?: string | undefined;\r\n subTitle?: string | undefined;\r\n}\r\n\r\nexport interface ReservationError {\r\n id?: number;\r\n message?: string | undefined;\r\n type?: BookingErrors;\r\n reference?: string | undefined;\r\n userGuide?: ReservationErrorUserGuide;\r\n}\r\n\r\nexport interface ReservationErrorDateWithFormat {\r\n date?: Date;\r\n formatted?: string | undefined;\r\n}\r\n\r\nexport interface ReservationErrorUserGuide {\r\n checkInDates?: ReservationErrorDateWithFormat[] | undefined;\r\n checkOutDates?: ReservationErrorDateWithFormat[] | undefined;\r\n}\r\n\r\nexport interface ReservationFee {\r\n id?: string | undefined;\r\n groupId?: number;\r\n name?: string | undefined;\r\n readonly calculatedPrice?: number;\r\n calculatedPriceInBookingCurrency?: number;\r\n readonly calculatedPriceWithVatInBookingCurrency?: number;\r\n readonly calculatedPriceWithVat?: number;\r\n calculatedVatInBookingCurrency?: number;\r\n readonly calculatedVat?: number;\r\n readonly price?: number;\r\n readonly vat?: number;\r\n readonly currencyCode?: string | undefined;\r\n currency?: DbLiveCurrency;\r\n priceInBookingCurrency?: number;\r\n vatInBookingCurrency?: number;\r\n currencyCodeBooking?: string | undefined;\r\n description?: string | undefined;\r\n tooltip?: string | undefined;\r\n readonly minimumPrice?: number;\r\n minimumPriceInBookingCurrency?: number;\r\n maxCount?: number;\r\n selectedCount?: number;\r\n feeType?: ReservationFeeType;\r\n unit?: DbServiceUnits;\r\n payment?: ReservationFeePayment;\r\n bookableOption?: ReservationFeeBookableOption;\r\n selectTexts?: string[] | undefined;\r\n selectedText?: string | undefined;\r\n unitText?: string | undefined;\r\n selectTextWithoutCurrency?: SelectTextWithoutCurrency;\r\n selectTextsWithoutCurrency?: SelectTextWithoutCurrency[] | undefined;\r\n mandatoryOptional?: boolean;\r\n}\r\n\r\nexport enum ReservationFeeBookableOption {\r\n _0 = 0,\r\n _1 = 1,\r\n _2 = 2,\r\n _3 = 3,\r\n _4 = 4,\r\n}\r\n\r\nexport enum ReservationFeePayment {\r\n _0 = 0,\r\n _1 = 1,\r\n _2 = 2,\r\n _3 = 3,\r\n}\r\n\r\nexport enum ReservationFeeType {\r\n _0 = 0,\r\n _1 = 1,\r\n _2 = 2,\r\n}\r\n\r\nexport interface ReservationFees {\r\n fees?: ReservationFee[] | undefined;\r\n readonly serviceGroups?: { [key: string]: ReservationFee[]; } | undefined;\r\n readonly mandatory?: number;\r\n readonly totalVat?: number;\r\n readonly mandatoryInBookingCurrency?: number;\r\n}\r\n\r\nexport interface ReservationPayment {\r\n due?: Date;\r\n payment?: number;\r\n}\r\n\r\nexport interface ReservationPaymentOption {\r\n paymentTerms?: ReservationPayment[] | undefined;\r\n id?: number;\r\n textId?: number;\r\n}\r\n\r\nexport interface ReservationPrice {\r\n available?: boolean;\r\n onRequest?: boolean;\r\n readonly priceBeforeDiscount?: number;\r\n discount?: number;\r\n readonly priceAfterDiscount?: number;\r\n fromDate?: Date;\r\n toDate?: Date;\r\n readonly currencyCode?: string | undefined;\r\n readonly currencySign?: string | undefined;\r\n currency?: DbLiveCurrency;\r\n readonly obsoleteCurrency?: string | undefined;\r\n priceInBookingCurrencyBeforeDiscount?: number;\r\n discountInBookingCurrency?: number;\r\n priceInBookingCurrencyAfterDiscount?: number;\r\n currencyCodeBooking?: string | undefined;\r\n termsConditions?: string[] | undefined;\r\n errors?: ReservationError[] | undefined;\r\n readonly hasErrors?: boolean;\r\n appliedDiscounts?: AppliedDiscount[] | undefined;\r\n}\r\n\r\nexport interface ReservationPriceFeeResponse {\r\n readonly calculatedPriceAndFeesAfterDiscount?: number;\r\n readonly calculatedPriceAndFeesBeforeDiscount?: number;\r\n price?: ReservationPrice;\r\n fees?: ReservationFees;\r\n message?: string | undefined;\r\n nights?: number;\r\n paymentOptions?: ReservationPaymentOption[] | undefined;\r\n flexiblePaymentTooltip?: string | undefined;\r\n paymentMethods?: string[] | undefined;\r\n lastFullRefundDay?: string | undefined;\r\n commissionPercentage?: number;\r\n}\r\n\r\nexport interface Review {\r\n author?: string | undefined;\r\n rating?: number | undefined;\r\n comment?: string | undefined;\r\n dateCreated?: string | undefined;\r\n countryName?: string | undefined;\r\n reviewRatings?: ReviewRating[] | undefined;\r\n}\r\n\r\nexport interface ReviewList {\r\n readonly averageRating?: number;\r\n readonly reviewCount?: number;\r\n reviews?: Review[] | undefined;\r\n}\r\n\r\nexport interface ReviewRating {\r\n ratingTypeId?: number;\r\n ratingName?: string | undefined;\r\n rating?: number;\r\n comment?: string | undefined;\r\n}\r\n\r\nexport interface SalesPartnerDetails {\r\n salesPartner?: number;\r\n bookingNumber?: string | undefined;\r\n servicePrices?: { [key: string]: number; } | undefined;\r\n rentalPrice?: number;\r\n rentalCommission?: number;\r\n commissionPercentage?: number;\r\n cancellationTerm?: number;\r\n stayPrice?: number;\r\n isDirectApiBooking?: boolean;\r\n isAffiliateBooking?: boolean;\r\n}\r\n\r\nexport interface SearchAreaData {\r\n country?: string | undefined;\r\n region?: string | undefined;\r\n city?: string | undefined;\r\n}\r\n\r\nexport interface SearchDetailsResponseModel {\r\n /** This is the price tag text that is shown to the user. */\r\n priceTag?: string | undefined;\r\n /** This is week Prices (not exact price the user will pay for the booking). */\r\n weekPrice?: number;\r\n weekPriceFrom?: number | undefined;\r\n weekPriceTo?: number | undefined;\r\n currency?: string | undefined;\r\n priceFeeResponse?: ReservationPriceFeeResponse;\r\n}\r\n\r\nexport interface SearchItem {\r\n id?: string | undefined;\r\n name?: string | undefined;\r\n path?: string | undefined;\r\n type?: string | undefined;\r\n url?: string | undefined;\r\n}\r\n\r\nexport interface SearchResponseModel {\r\n searchedProperties?: SearchedProperty[] | undefined;\r\n redirectUrl?: string | undefined;\r\n alternativeSearches?: AlternativeSearch[] | undefined;\r\n searchAreaData?: SearchAreaData;\r\n}\r\n\r\nexport interface SearchedProperty {\r\n id?: string | undefined;\r\n lon?: number | undefined;\r\n lat?: number | undefined;\r\n maxDiscount?: number | undefined;\r\n averageRating?: number | undefined;\r\n reviewCount?: number | undefined;\r\n}\r\n\r\nexport interface SelectTextWithoutCurrency {\r\n replacementTag?: string | undefined;\r\n price?: number;\r\n currency?: string | undefined;\r\n selectedText?: string | undefined;\r\n}\r\n\r\nexport interface SelectedBookingOption {\r\n id?: string | undefined;\r\n quantity?: number;\r\n}\r\n\r\nexport interface SelectedFee {\r\n name?: string | undefined;\r\n price?: number;\r\n currency?: string | undefined;\r\n}\r\n\r\nexport interface SettlementCost {\r\n name?: string | undefined;\r\n price?: number;\r\n currency?: string | undefined;\r\n}\r\n\r\nexport interface SettlementTotal {\r\n name?: string | undefined;\r\n price?: number;\r\n currency?: string | undefined;\r\n}\r\n\r\nexport interface ShortListProperties {\r\n properties?: PropertyListingDataApiModel[] | undefined;\r\n}\r\n\r\nexport interface SortOption {\r\n name?: string | undefined;\r\n optionSearchName?: string | undefined;\r\n options?: OptionSort[] | undefined;\r\n}\r\n\r\nexport interface SortOptionsResponseModel {\r\n sort?: SortOption;\r\n}\r\n\r\nexport enum SortingMethods {\r\n _1 = 1,\r\n _2 = 2,\r\n _3 = 3,\r\n _4 = 4,\r\n _5 = 5,\r\n _6 = 6,\r\n _7 = 7,\r\n}\r\n\r\nexport interface StringStringValueTuple {\r\n}\r\n\r\nexport interface SuggestionProperties {\r\n properties?: SuggestionProperty[] | undefined;\r\n}\r\n\r\nexport interface SuggestionProperty {\r\n image?: string | undefined;\r\n propertyLink?: string | undefined;\r\n title?: string | undefined;\r\n averagePrice?: number;\r\n stayPeriod?: StringStringValueTuple;\r\n averageRating?: number | undefined;\r\n sampleReview?: Review;\r\n}\r\n\r\nexport interface ThemeFacilities {\r\n headline?: string | undefined;\r\n priority?: number;\r\n closed?: boolean;\r\n items?: Facility[] | undefined;\r\n}\r\n\r\nexport interface TotalPrice {\r\n currency?: string | undefined;\r\n beforeDiscount?: number;\r\n afterDiscount?: number;\r\n discountPercentage?: string | undefined;\r\n hasDiscount?: boolean;\r\n depositCurrency?: string | undefined;\r\n deposit?: number | undefined;\r\n hasDifferentBookingCurrency?: boolean;\r\n afterDiscountInBookingCurrency?: string | undefined;\r\n depositInBookingCurrency?: string | undefined;\r\n rentalBeforeDiscount?: number | undefined;\r\n rentalAfterDiscount?: number | undefined;\r\n rentalDiscount?: number | undefined;\r\n priceConversionDescription?: string | undefined;\r\n paymentRates?: PaymentRate[] | undefined;\r\n selectedFeesInBookingCurrency?: SelectedFee[] | undefined;\r\n appliedDiscounts?: AppliedDiscount[] | undefined;\r\n}\r\n\r\nexport interface TrackingData {\r\n price?: number;\r\n currency?: string | undefined;\r\n hashedEmail?: string | undefined;\r\n}\r\n\r\nexport interface UnpaidRate {\r\n title?: string | undefined;\r\n name?: string | undefined;\r\n price?: number | undefined;\r\n currency?: string | undefined;\r\n deadline?: string | undefined;\r\n automaticPayment?: string | undefined;\r\n isAutomatic?: boolean;\r\n isCurrentRate?: boolean;\r\n}\r\n\r\nexport interface UsageCost {\r\n name?: string | undefined;\r\n price?: number;\r\n currency?: string | undefined;\r\n hasDifferentBookingCurrency?: boolean;\r\n priceInBookingCurrency?: string | undefined;\r\n}\r\n\r\nexport enum WaterDistance {\r\n _100 = 100,\r\n _300 = 300,\r\n _600 = 600,\r\n _1000 = 1000,\r\n _1500 = 1500,\r\n _3000 = 3000,\r\n _5000 = 5000,\r\n _10000 = 10000,\r\n}\r\n\r\nexport class ApiException extends Error {\r\n override message: string;\r\n status: number;\r\n response: string;\r\n headers: { [key: string]: any; };\r\n result: any;\r\n\r\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\r\n super();\r\n\r\n this.message = message;\r\n this.status = status;\r\n this.response = response;\r\n this.headers = headers;\r\n this.result = result;\r\n }\r\n\r\n protected isApiException = true;\r\n\r\n static isApiException(obj: any): obj is ApiException {\r\n return obj.isApiException === true;\r\n }\r\n}\r\n\r\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\r\n if (result !== null && result !== undefined)\r\n throw result;\r\n else\r\n throw new ApiException(message, status, response, headers, null);\r\n}\r\n","const suspectProtoRx = /\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/;\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nconst JsonSigRx = /^\\s*[\"[{]|^\\s*-?\\d{1,16}(\\.\\d{1,17})?([Ee][+-]?\\d+)?\\s*$/;\nfunction jsonParseTransform(key, value) {\n if (key === \"__proto__\" || key === \"constructor\" && value && typeof value === \"object\" && \"prototype\" in value) {\n warnKeyDropped(key);\n return;\n }\n return value;\n}\nfunction warnKeyDropped(key) {\n console.warn(`[destr] Dropping \"${key}\" key to prevent prototype pollution.`);\n}\nfunction destr(value, options = {}) {\n if (typeof value !== \"string\") {\n return value;\n }\n const _value = value.trim();\n if (\n // eslint-disable-next-line unicorn/prefer-at\n value[0] === '\"' && value.endsWith('\"') && !value.includes(\"\\\\\")\n ) {\n return _value.slice(1, -1);\n }\n if (_value.length <= 9) {\n const _lval = _value.toLowerCase();\n if (_lval === \"true\") {\n return true;\n }\n if (_lval === \"false\") {\n return false;\n }\n if (_lval === \"undefined\") {\n return void 0;\n }\n if (_lval === \"null\") {\n return null;\n }\n if (_lval === \"nan\") {\n return Number.NaN;\n }\n if (_lval === \"infinity\") {\n return Number.POSITIVE_INFINITY;\n }\n if (_lval === \"-infinity\") {\n return Number.NEGATIVE_INFINITY;\n }\n }\n if (!JsonSigRx.test(value)) {\n if (options.strict) {\n throw new SyntaxError(\"[destr] Invalid JSON\");\n }\n return value;\n }\n try {\n if (suspectProtoRx.test(value) || suspectConstructorRx.test(value)) {\n if (options.strict) {\n throw new Error(\"[destr] Possible prototype pollution\");\n }\n return JSON.parse(value, jsonParseTransform);\n }\n return JSON.parse(value);\n } catch (error) {\n if (options.strict) {\n throw error;\n }\n return value;\n }\n}\nfunction safeDestr(value, options = {}) {\n return destr(value, { ...options, strict: true });\n}\n\nexport { destr as default, destr, safeDestr };\n","import { defineStore, StateTree } from 'pinia';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport { CampayaCoreApiClient } from \"@/services/campayacore-api.service\"\r\nimport { getText } from '@/services/translation.service';\r\nimport { destr } from \"destr\";\r\nconst apiClient = new CampayaCoreApiClient();\r\n\r\nexport const useSearchStore = defineStore('search', {\r\n state: () => ({\r\n filters: {\r\n areaId: 3584,\r\n areaName: undefined as string | undefined,\r\n searchQuery: null as string | null,\r\n fromDate: null as Dayjs | null,\r\n toDate: null as Dayjs | null,\r\n flexPeriod: 2 as number,\r\n countryId: null,\r\n persons: {\r\n adults: 2,\r\n children: 0,\r\n infants: 0,\r\n pets: 0,\r\n confirmed: false,\r\n },\r\n previousPersons: {\r\n adults: 2,\r\n children: 0,\r\n infants: 0,\r\n pets: 0,\r\n },\r\n },\r\n modals: {\r\n datePickerModal: false,\r\n destinationModal: false,\r\n personModal: false,\r\n autoCompleteModal: false,\r\n },\r\n destinations: {\r\n countries: [],\r\n areas: {},\r\n breadcrumbs: [],\r\n shownAreas: [],\r\n countriesLoading: false,\r\n areasLoading: false,\r\n selectedCountry: 3584, // Denmark\r\n autoCompleteList: {\r\n loading: false,\r\n items: [],\r\n },\r\n countrySelectedOnMobile: false,\r\n },\r\n autocompleteSuggestions: {\r\n loading: false,\r\n error: false,\r\n suggestions: [],\r\n },\r\n newSearchRequired: false,\r\n }),\r\n actions: {\r\n toggleModal(modal: string, state: boolean) {\r\n this.modals[modal] = state;\r\n },\r\n updateFilter(key: string, value: any, updateURL: boolean = true) {\r\n this.filters[key] = value;\r\n if (updateURL) this.updateURLSearchParam(key, value);\r\n },\r\n setNewSearchRequired(newSearchRequired: boolean) {\r\n this.newSearchRequired = newSearchRequired;\r\n },\r\n setFromDate(date: string) {\r\n this.filters.fromDate = dayjs(date);\r\n this.updateURLSearchParam('fromDate', this.filters.fromDate.format('YYYY-MM-DD'));\r\n },\r\n setToDate(date: string) {\r\n this.filters.toDate = dayjs(date);\r\n this.updateURLSearchParam('toDate', this.filters.toDate.format('YYYY-MM-DD'));\r\n },\r\n clearDates() {\r\n this.filters.fromDate = null;\r\n this.filters.toDate = null;\r\n this.updateURLSearchParam('fromDate', null);\r\n this.updateURLSearchParam('toDate', null);\r\n },\r\n setSelectedCountry(areaId: number, updateFilter: boolean = false) {\r\n this.destinations.selectedCountry = areaId;\r\n this.destinations.countrySelectedOnMobile = true;\r\n if (updateFilter) this.updateURLSearchParam('countryId', areaId);\r\n },\r\n setAreaId(areaId: number) {\r\n this.filters.areaId = areaId;\r\n this.updateURLSearchParam('areaId', areaId);\r\n },\r\n setPersonsConfirmed(confirmed: boolean) {\r\n this.filters.persons.confirmed = confirmed;\r\n this.updateURLSearchParam('personsConfirmed', confirmed.toString());\r\n\r\n this.updateURLSearchParam('adults', this.filters.persons.adults.toString());\r\n this.updateURLSearchParam('children', this.filters.persons.children.toString());\r\n this.updateURLSearchParam('infants', this.filters.persons.infants.toString());\r\n this.updateURLSearchParam('pets', this.filters.persons.pets.toString());\r\n },\r\n updatePersonFilters(key: string, value: number) {\r\n this.filters.persons[key] = value;\r\n this.updateURLSearchParam(key, value.toString());\r\n },\r\n newDatesSameAsOld(newFromDate, newToDate) {\r\n return this.filters.fromDate?.isSame(newFromDate, 'day') && this.filters.toDate?.isSame(newToDate, 'day');\r\n },\r\n setupFiltersInState(params: URLSearchParams) {\r\n const fromDate = params.get('fromDate') || params.get('from');\r\n const toDate = params.get('toDate') || params.get('to');\r\n const areaId = params.get('areaId');\r\n\r\n let defaultArea = 3584;\r\n const themeId: any = document.getElementById('themeId');\r\n if (themeId && themeId.textContent.length >= 1) {\r\n if (themeId.textContent == '82') {\r\n defaultArea = 25;\r\n this.destinations.selectedCountry = null;\r\n }\r\n }\r\n\r\n this.filters.areaId = areaId ? +areaId : defaultArea;\r\n this.filters.areaName = params.get('areaName') ?? undefined;\r\n this.filters.fromDate = fromDate ? dayjs(fromDate) : this.filters.fromDate;\r\n this.filters.toDate = toDate ? dayjs(toDate) : this.filters.toDate;\r\n\r\n const persons = {\r\n adults: Number(params.get('adults')) || this.filters.persons.adults,\r\n children: Number(params.get('children')) || this.filters.persons.children,\r\n infants: Number(params.get('infants')) || this.filters.persons.infants,\r\n pets: Number(params.get('pets')) || this.filters.persons.pets,\r\n confirmed: params.get('personsConfirmed') === 'true' || this.filters.persons.confirmed,\r\n changed: false,\r\n }\r\n\r\n this.filters.persons = { ...persons };\r\n this.filters.previousPersons = { ...persons };\r\n\r\n // Destinations\r\n if (params.get('countryId')) {\r\n this.destinations.selectedCountry = Number(params.get('countryId'));\r\n }\r\n\r\n if (!areaId && params.get('countryId')) {\r\n this.updateFilter('areaId', +params.get('countryId'));\r\n }\r\n this.destinations.countrySelectedOnMobile = !!params.get('countryId');\r\n },\r\n updateURLSearchParam(param: string, newValue: any, deleteParam: boolean = true) {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n if (newValue && (newValue > 0 || newValue.length > 0 || newValue === '0')) {\r\n urlParams.set(param, newValue.toString())\r\n } else if (deleteParam) {\r\n urlParams.delete(param)\r\n }\r\n\r\n if (newValue === null) urlParams.delete(param);\r\n\r\n window.history.replaceState({}, '', `${location.pathname}?${urlParams}`)\r\n },\r\n updateSearhDatesIfBeforeToday() {\r\n if (this.filters.fromDate && this.filters.fromDate.isBefore(dayjs(), 'day')) {\r\n this.filters.fromDate = dayjs();\r\n }\r\n\r\n if (this.filters.toDate && this.filters.toDate.isBefore(dayjs(), 'day')) {\r\n this.filters.toDate = dayjs().add(7, 'day');\r\n }\r\n },\r\n updatePreviousPersons() {\r\n this.filters.previousPersons = { ...this.filters.persons };\r\n },\r\n updateFlexPeriod(flexPeriod: number) {\r\n this.filters.flexPeriod = flexPeriod;\r\n this.updateURLSearchParam('flexPeriod', flexPeriod.toString());\r\n },\r\n\r\n // Destinations\r\n async getCountries(continentId = 25) {\r\n this.destinations.countriesLoading = true;\r\n // 25 is id for Europe\r\n const res = await apiClient.relatedDestinations(continentId);\r\n this.destinations.countries = res.destinations;\r\n this.destinations.countriesLoading = false;\r\n },\r\n async apiGetRelatedDestinations(areaId: number, relatedThemeId?: number) {\r\n return await apiClient.relatedDestinations(areaId, relatedThemeId)\r\n },\r\n async getRelatedDestinations(\r\n relatedAreaId: number,\r\n triggerModals: boolean = false,\r\n allowFullSearch: boolean = true,\r\n setCountryId: boolean = false,\r\n relatedThemeId: number | undefined = undefined\r\n ) {\r\n if (!relatedAreaId) return false;\r\n\r\n this.destinations.areasLoading = true;\r\n if (this.destinations.areas[relatedAreaId]) {\r\n if (this.destinations.areas[relatedAreaId].destinations.length) {\r\n this.destinations.shownAreas = this.destinations.areas[relatedAreaId].destinations;\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n let hasDestinations = true;\r\n const fetchDestinations = async (areaId: number, depth: number = 0): Promise => {\r\n let res = await apiClient.relatedDestinations(areaId, relatedThemeId);\r\n this.destinations.areas[areaId] = res;\r\n\r\n if (!allowFullSearch && res.breadcrumbs.length === 3) {\r\n return res;\r\n }\r\n\r\n if (!res.destinations.length && depth < res.breadcrumbs.length - 1) {\r\n hasDestinations = false;\r\n const parentAreaId = res.breadcrumbs[res.breadcrumbs.length - 2 - depth].areaId;\r\n return fetchDestinations(parentAreaId, depth + 1);\r\n }\r\n\r\n return res;\r\n };\r\n\r\n let res = await fetchDestinations(relatedAreaId);\r\n\r\n if (!res.destinations.length && triggerModals) {\r\n this.modals.destinationModal = false;\r\n this.modals.datePickerModal = true;\r\n }\r\n\r\n if (res.breadcrumbs.length && setCountryId) {\r\n this.updateFilter('countryId', res.breadcrumbs[0].areaId);\r\n this.destinations.selectedCountry = res.breadcrumbs[0].areaId;\r\n }\r\n this.destinations.shownAreas = res.destinations;\r\n return hasDestinations;\r\n },\r\n async getRelatedPropertyDestinations(propertyId: string) {\r\n this.destinations.areasLoading = true;\r\n const res = await apiClient.propertyRelatedDestinations(propertyId);\r\n this.destinations.shownAreas = res.destinations;\r\n this.destinations.areasLoading = false;\r\n },\r\n clearDestinationInput() {\r\n this.updateFilter('searchQuery', null);\r\n this.updateFilter('areaId', null);\r\n this.updateFilter('areaName', null);\r\n this.destinations.countrySelectedOnMobile = null;\r\n\r\n // reset the shown areas to denmarks results\r\n if (this.destinations.areas[3584]) {\r\n this.destinations.shownAreas = this.destinations.areas[3584].destinations;\r\n\r\n this.destinations.selectedCountry = 3584;\r\n } else {\r\n this.getRelatedDestinations(3584);\r\n }\r\n },\r\n seeEntireCountry(countryAreaId: number) {\r\n this.updateFilter('areaId', countryAreaId);\r\n this.updateFilter('areaName', this.destinations.countries.find((country) => country.areaId === countryAreaId)?.title);\r\n\r\n this.getRelatedDestinations(countryAreaId);\r\n this.toggleModal('destinationModal', false);\r\n\r\n if (!this.filters.fromDate) {\r\n this.modals.datePickerModal = true;\r\n }\r\n },\r\n\r\n async fetchSuggestions(searchQuery: string, isMobile = false) {\r\n this.destinations.autoCompleteList.loading = true;\r\n if (!isMobile) {\r\n this.toggleModal('destinationModal', false);\r\n this.toggleModal('autoCompleteModal', true);\r\n }\r\n\r\n const res = await apiClient.autocomplete(searchQuery).finally(() => {\r\n this.destinations.autoCompleteList.loading = false;\r\n });\r\n\r\n this.destinations.autoCompleteList.items = res || [];\r\n }\r\n },\r\n getters: {\r\n isPersonsConfirmed(state) {\r\n return !!(state.filters.persons.confirmed && (state.filters.fromDate && state.filters.toDate));\r\n },\r\n formattedPersons(state) {\r\n let formattedGuests = \"\";\r\n\r\n const { adults, children, infants, pets, confirmed } = state.filters.persons;\r\n\r\n const personsSingularPluralTable = {\r\n adults: [ getText(13504), getText(1445) ],\r\n children: [ getText(8060), getText(8059) ],\r\n pets: [ getText(13875), getText(13875) ],\r\n }\r\n\r\n if (!confirmed) {\r\n return getText(13883)\r\n }\r\n\r\n if (adults > 0) {\r\n formattedGuests += `${adults} ${personsSingularPluralTable.adults[adults === 1 ? 0 : 1]}`;\r\n }\r\n\r\n if (children + infants > 0) {\r\n if (formattedGuests.length > 0) {\r\n formattedGuests += `, `;\r\n }\r\n\r\n formattedGuests += `${children + infants} ${personsSingularPluralTable.children[children + infants === 1 ? 0 : 1]}`;\r\n }\r\n\r\n if (pets > 0) {\r\n if (formattedGuests.length > 0) {\r\n formattedGuests += `, `;\r\n }\r\n\r\n formattedGuests += `${pets} ${personsSingularPluralTable.pets[pets === 1 ? 0 : 1]}`;\r\n }\r\n\r\n if (formattedGuests === \"\") {\r\n formattedGuests = getText(13883);\r\n }\r\n\r\n return formattedGuests;\r\n },\r\n formattedDate(state) {\r\n if (!state.filters.fromDate || !state.filters.toDate) {\r\n // Fallback for frontpage as translation store is slow to load\r\n return getText(13876);\r\n }\r\n\r\n if (state.filters.fromDate.isSame(state.filters.toDate, 'month')) {\r\n return `${state.filters.fromDate.format('D')} - ${state.filters.toDate.format('D. MMM')}`\r\n }\r\n\r\n if (state.filters.fromDate.isSame(state.filters.toDate, 'year')) {\r\n return `${state.filters.fromDate.format('D. MMM')} - ${state.filters.toDate.format('D. MMM')}`\r\n }\r\n\r\n return `${state.filters.fromDate.format('D/M-YY')} - ${state.filters.toDate.format('D/M-YY')}`\r\n },\r\n isPersonsUpdated(state) {\r\n if (state.filters.persons.adults !== state.filters.previousPersons.adults) {\r\n return true;\r\n }\r\n\r\n if (state.filters.persons.children !== state.filters.previousPersons.children) {\r\n return true;\r\n }\r\n\r\n if (state.filters.persons.infants !== state.filters.previousPersons.infants) {\r\n return true;\r\n }\r\n\r\n if (state.filters.persons.pets !== state.filters.previousPersons.pets) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // Destinations\r\n getSelectedAreas(state) {\r\n if (!state.destinations.shownAreas) return [];\r\n return state.destinations.shownAreas ?? [];\r\n },\r\n getBreadcrumbs(state) {\r\n let areaId = state.filters.areaId ?? 3584;\r\n if (!state.destinations.areas[areaId]) return [];\r\n\r\n return state.destinations.areas[areaId].breadcrumbs.map(bc => {\r\n return {\r\n title: bc.areaName,\r\n areaId: bc.areaId,\r\n hasDestinations: bc.areaId != areaId || state.destinations.areas[areaId].destinations.length > 0\r\n }\r\n }) ?? [];\r\n },\r\n getBreadcrumbsWithoutRoot(state) {\r\n let areaId = state.filters.areaId ?? 3584;\r\n if (!state.destinations.areas[areaId]) return [];\r\n\r\n return state.destinations.areas[areaId].breadcrumbs.filter((x: any) => x.areaId != this.destinations.selectedCountry) ?? [];\r\n },\r\n getSelectedCountry(state) {\r\n return state.destinations.countries.find((country) => country.areaId === state.destinations.selectedCountry);\r\n }\r\n },\r\n persist: {\r\n storage: sessionStorage,\r\n paths: ['filters.fromDate', 'filters.toDate', 'filters.persons', 'filters.previousPersons', 'filters.flexPeriod'],\r\n serializer: {\r\n serialize: (value) => {\r\n return JSON.stringify(value)\r\n },\r\n deserialize: (value) => {\r\n let deserialized = destr(value);\r\n\r\n const fromDate = dayjs(deserialized.filters.fromDate);\r\n const toDate = dayjs(deserialized.filters.toDate)\r\n if (fromDate.isValid()) {\r\n deserialized.filters.fromDate = fromDate;\r\n }\r\n if (toDate.isValid()) {\r\n deserialized.filters.toDate = toDate;\r\n }\r\n\r\n return deserialized;\r\n }\r\n }\r\n }\r\n})\r\n"],"file":"assets/search.store-M24PASuj.js"}