{"version":3,"sources":["NSDServiceDetails.js"],"names":["searchHandleBarsTemplate","initDetails","serviceType","serviceId","console","log","getServiceDetails","then","result","UpdateServicePageWithLiveDetails","catch","$","find","removeClass","html","text","Promise","resolve","reject","sData","ajax","url","method","data","done","fail","sd","serviceWrapper","addClass","isEmptyOrSpaces","Description","Service","length","items","each","index","value","ServiceSubType","Text","add","Contact","Address1","Address2","Address3","Town","AddrPostcodeess1","Postcode","pPhone","phones","Phone","primary","phoneLink","Primary","secondary","Secondary","tertiary","Tertiary","Missing","Number","web","ExternalUrl","Uri","attr","ot","Schedule","DailySchedule","times","show","DayOfWeek","Open","Close","thisDay","formatTime","ScheduleInformation","Accessibility","acc","time","substring","timeBits","split","timeHour","parseInt","suffix","pDetails","p","str","trim","match"],"mappings":"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","file":"../NSDServiceDetails.js","sourcesContent":["var searchHandleBarsTemplate = null;\r\n\r\n// Init\r\n// ==========================\r\n\r\nfunction initDetails(serviceType, serviceId) {\r\n console.log(\"Init details\");\r\n\r\n getServiceDetails(serviceType, serviceId).then(function (result) {\r\n UpdateServicePageWithLiveDetails(result);\r\n }).catch(function () {\r\n //alert('Failed to get data from NDS');\r\n $('#serviceResults').find('.loading').removeClass('hidden').html('Sorry, Failed to get latest results. Cached version shown below.');\r\n $('.opening-times-loading').text('Failed to get opening times. Please try again later');\r\n });\r\n}\r\n\r\n// API Call\r\n// ==========================\r\n\r\nfunction getServiceDetails(serviceType, serviceId) {\r\n return new Promise(function (resolve, reject) {\r\n var sData = {\r\n serviceType: serviceType,\r\n serviceId: serviceId\r\n }\r\n\r\n $.ajax({\r\n url: \"/umbraco/surface/NSD/GetServiceDetails\",\r\n method: 'post',\r\n data: sData\r\n }).done(function (result) {\r\n console.log('Success : %o', result);\r\n resolve(result);\r\n }).fail(function (result) {\r\n console.log('Failed');\r\n reject(result);\r\n });\r\n\r\n //return new Promise(function (resolve, reject) {\r\n // $.ajax({\r\n // url: \"/umbraco/surface/NSD/GetServiceDetails\",\r\n // method: 'post',\r\n // data: sData\r\n // }).done(function (result) {\r\n // console.log('Success : %o', result);\r\n // resolve(result);\r\n // }).fail(function (result) {\r\n // console.log('Failed');\r\n // reject(result);\r\n // });\r\n //});\r\n }\r\n )\r\n};\r\n\r\n// Helpers\r\n// ==========================\r\n\r\nfunction UpdateServicePageWithLiveDetails(sd) {\r\n var serviceWrapper = $('#serviceResults');\r\n\r\n serviceWrapper.find('.loading').addClass('hidden');\r\n\r\n // Summary\r\n if (!isEmptyOrSpaces(sd.Description)) {\r\n serviceWrapper.find('.summary').html(sd.Description).removeClass('hidden');\r\n }\r\n\r\n // Service list\r\n if (sd.Service.length > 0) {\r\n var items = \"\";\r\n\r\n serviceWrapper.find('.servicesTitle').removeClass('hidden');\r\n\r\n serviceWrapper.find('.servicesList').removeClass('hidden').html(items);\r\n }\r\n\r\n // Address\r\n var add = sd.Contact;\r\n if (!isEmptyOrSpaces(add.Address1)) {\r\n serviceWrapper.find('.address1').html(sd.Address1).removeClass('hidden');\r\n }\r\n if (!isEmptyOrSpaces(add.Address2)) {\r\n serviceWrapper.find('.address2').html(sd.Address2).removeClass('hidden');\r\n }\r\n if (!isEmptyOrSpaces(add.Address3)) {\r\n serviceWrapper.find('.address3').html(sd.Address3).removeClass('hidden');\r\n }\r\n if (!isEmptyOrSpaces(add.Town)) {\r\n serviceWrapper.find('.addressTown').html(sd.Town).removeClass('hidden');\r\n }\r\n if (!isEmptyOrSpaces(add.AddrPostcodeess1)) {\r\n serviceWrapper.find('.addressPostcode').html(sd.Postcode).removeClass('hidden');\r\n }\r\n\r\n // Phone\r\n var phones = add.Phone;\r\n var primary = phoneLink(phones.Primary);\r\n var secondary = phoneLink(phones.Secondary);\r\n var tertiary = phoneLink(phones.Tertiary);\r\n\r\n if (primary.Missing === false) {\r\n var pPhone = serviceWrapper.find('.PrimaryPhone').removeClass('hidden');\r\n pPhone.find('label').text(primary.Description);\r\n pPhone.find('span').html(primary.Number);\r\n }\r\n if (secondary.Missing === false) {\r\n var pPhone = serviceWrapper.find('.SecondaryPhone').removeClass('hidden');\r\n pPhone.find('label').text(secondary.Description);\r\n pPhone.find('span').html(secondary.Number);\r\n }\r\n if (tertiary.Missing === false) {\r\n var pPhone = serviceWrapper.find('.TertiaryPhone').removeClass('hidden');\r\n pPhone.find('label').text(tertiary.Description);\r\n pPhone.find('span').html(tertiary.Number);\r\n }\r\n\r\n // Website\r\n var web = add.ExternalUrl;\r\n if (web !== null) {\r\n if (!isEmptyOrSpaces(web.Uri)) {\r\n serviceWrapper.find('.externalUrl a').attr('href', web.Uri).removeClass('hidden');\r\n }\r\n }\r\n\r\n // Opening times\r\n var ot = sd.Schedule.DailySchedule;\r\n if (ot !== null) {\r\n var times = serviceWrapper.find('.opening-times')\r\n $.each(ot, function (index, value) {\r\n var show = true;\r\n console.log(\"Value:%o Open: %o Close: %o\", value.DayOfWeek, value.Open, value.Close)\r\n\r\n if (value.Open == \"00:00:00\" && value.Close == \"00:00:00\") {\r\n show = false;\r\n }\r\n\r\n var thisDay = times.find('.' + value.DayOfWeek);\r\n thisDay.find('strong').text(value.DayOfWeek);\r\n thisDay.find('.open').text(formatTime(value.Open));\r\n thisDay.find('.close').text(formatTime(value.Close));\r\n if (show) {\r\n thisDay.removeClass(\"hidden\");\r\n }\r\n });\r\n }\r\n serviceWrapper.find('.opening-times-loading').addClass('hidden');\r\n serviceWrapper.find('.opening-times').removeClass('hidden');\r\n\r\n // Other\r\n\r\n if (!isEmptyOrSpaces(sd.Schedule.ScheduleInformation)) {\r\n serviceWrapper.find('.ScheduleInformation').html(sd.Schedule.ScheduleInformation).removeClass('hidden');\r\n }\r\n if (sd.Accessibility.length > 0) {\r\n var acc = \"\";\r\n $.each(sd.Accessibility, function (index, value) {\r\n acc += value.Text + \"
\";\r\n });\r\n\r\n serviceWrapper.find('.accessibility').removeClass('hidden');\r\n serviceWrapper.find('.accessibilityItems').html(acc).removeClass('hidden');\r\n }\r\n}\r\n\r\nfunction formatTime(time) {\r\n time = time.substring(0, 5);\r\n timeBits = time.split(':');\r\n timeHour = parseInt(timeBits[0]);\r\n\r\n // Get rid of the first digit if it's a 0\r\n //if (time.substring(0, 1) === \"0\") {\r\n // time = time.substring(1, 5)\r\n //}\r\n\r\n if (timeHour < 12) {\r\n suffix = \"am\";\r\n } else {\r\n timeHour = timeHour - 12;\r\n time = timeHour + ':' + timeBits[1]\r\n suffix = \"pm\";\r\n }\r\n return (time + suffix);\r\n}\r\n\r\nfunction phoneLink(pDetails) {\r\n var p = {};\r\n if (pDetails != null) {\r\n p.Description = pDetails.Description;\r\n if (pDetails.Description == 'Fax') {\r\n p.Number = pDetails.Number;\r\n } else {\r\n p.Number = '' + pDetails.Number + '';\r\n }\r\n p.Missing = false;\r\n return p;\r\n } else {\r\n p.Missing = true;\r\n return p;\r\n }\r\n}\r\n\r\nfunction isEmptyOrSpaces(str) {\r\n return str === null || $.trim(str).match(/^ *$/) !== null;\r\n}"]}