{"version":3,"sources":["webpack://Unipol/./src/legacy/js/_/site-functions.js","webpack://Unipol/./src/legacy/js/vendors/datepicker.esm.js"],"names":["$","fn","center","this","css","Math","max","window","height","outerHeight","scrollTop","width","outerWidth","scrollLeft","gotoAnchor","anchor","location","href","selector","spinnerVisible","showProgress","addClass","hideProgress","removeClass","BindElements","length","datepicker","autoClose","dateFormat","changeYear","changeMonth","beforeShow","input","inst","keypress","e","keydown","keyCode","currentTarget","val","stopPropagation","preventDefault","bindToolTips","each","$this","checkboxID","id","checked","slideDown","hide","undefined","indexOf","slideUp","ids","data","selectedId","dropdownID","attr","targets","target","tooltip","tip","document","on","removeAttr","html","appendTo","init_tooltip","pos_left","offset","left","pos_top","top","animate","opacity","resize","remove_tooltip","remove","sendGTM","element","props","getAttributeNames","filter","startsWith","newDataLayer","forEach","slice","getAttribute","dataLayer","push","unipolSharedNamespace","setSelectedCityReloadPage","city","get","reload","gtmTracking","modalsFunctions","_alert","options","show","el","text","ok","title","dialog","footer","find","unbind","modal","_confirm","url","cancel","method","dataType","$deferred","Deferred","is_done","ajax","type","done","result","resolve","fail","xhr","ajaxOptions","error","reject","promise","_notification","unipolLastResortNamespace","baseUrl","event_category","gtag","theForm","event_label","submit","_classCallCheck","instance","Constructor","TypeError","_defineProperties","i","descriptor","enumerable","configurable","writable","Object","defineProperty","key","DEFAULTS","autoShow","autoHide","autoPick","inline","container","trigger","language","format","date","startDate","endDate","startView","weekStart","yearFirst","yearSuffix","days","daysShort","daysMin","months","monthsShort","itemTag","mutedClass","pickedClass","disabledClass","highlightedClass","template","zIndex","pick","IS_BROWSER","WINDOW","IS_TOUCH_DEVICE","documentElement","NAMESPACE","EVENT_CLICK","concat","EVENT_FOCUS","EVENT_HIDE","EVENT_KEYUP","EVENT_PICK","EVENT_RESIZE","EVENT_SCROLL","EVENT_SHOW","EVENT_TOUCH_START","CLASS_HIDE","LANGUAGES","toString","prototype","isString","value","isNaN","Number","isNumber","isUndefined","isDate","obj","call","toLowerCase","getTime","proxy","context","_len","arguments","args","Array","_key","_len2","args2","_key2","apply","selectorOf","view","isLeapYear","year","getDaysInMonth","month","getMinDay","day","min","formatParts","getScrollParent","includeHidden","$element","position","excludeStaticParent","overflowRegex","scrollParent","parents","index","parent","$parent","test","eq","ownerDocument","addLeadingZero","str","String","abs","REGEXP_DIGITS","methods","built","build","shown","isDefaultPrevented","$picker","click","showView","$scrollParent","place","onResize","onGlobalClick","globalClick","onGlobalKeyup","globalKeyup","onTouchStart","touchstart","off","toggle","update","getValue","oldValue","setDate","_view","formatDate","setValue","isInput","reset","initialDate","initialValue","getMonthName","shortForm","getMonth","getDayName","getDay","getDate","formatted","Date","_updated","parseDate","viewDate","render","setStartDate","setEndDate","parts","match","part","parseInt","setFullYear","setMonth","getFullYear","values","d","dd","m","mm","yy","substring","yyyy","source","replace","destroy","unbuild","removeData","handlers","$target","hasClass","viewYear","viewMonth","viewDay","renderYears","renderMonths","hasYear","hasMonth","siblings","hideView","renderDays","hasDay","_ref","$trigger","hidden","parentNode","keyup","_ref2","_ref3","blur","renderWeek","_this","items","_this$options","createItem","$week","join","thisYear","prevDisabled","nextDisabled","disabled","picked","highlighted","$yearsPrev","toggleClass","$yearsNext","$yearsCurrent","$years","now","thisMonth","$yearPrev","$yearNext","$yearCurrent","$months","n","currentDate","thisDay","prevItems","prevViewYear","prevViewMonth","firstDay","prevViewDate","muted","nextItems","nextViewYear","nextViewMonth","lastDate","_disabled","_date","_disabled2","_picked","$monthPrev","$monthNext","$monthCurrent","$days","CLASS_TOP_LEFT","CLASS_TOP_RIGHT","CLASS_BOTTOM_LEFT","CLASS_BOTTOM_RIGHT","CLASS_PLACEMENTS","Datepicker","init","protoProps","staticProps","is","Error","parseFormat","bind","$yearsPicker","$monthsPicker","$daysPicker","append","body","containerWidth","containerHeight","elementWidth","elementHeight","_$this$offset","parseFloat","placement","item","classes","AnotherDatepicker","option","isDestroy","setDefaults"],"mappings":"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","file":"205.394ea68ec95bfcff81ec.js","sourcesContent":["import '../vendors/datepicker.esm.js';\n/*eslint-disable */\n$.fn.center = function () {\n this.css(\"position\", \"absolute\");\n this.css(\"top\", Math.max(0, $(window).height() - $(this).outerHeight() / 2 + $(window).scrollTop()) + \"px\");\n this.css(\"left\", Math.max(0, $(window).width() - $(this).outerWidth() / 2 + $(window).scrollLeft()) + \"px\");\n return this;\n};\n\n\n$.fn.gotoAnchor = function (anchor) {\n location.href = '#' + this.selector;\n};\nvar spinnerVisible = false;\n\nfunction collision($div1, $div2) {\n var x1 = $div1.offset().left;\n var y1 = $div1.offset().top;\n var h1 = $div1.outerHeight(true);\n var w1 = $div1.outerWidth(true);\n var b1 = y1 + h1;\n var r1 = x1 + w1;\n var x2 = $div2.offset().left;\n var y2 = $div2.offset().top;\n var h2 = $div2.outerHeight(true);\n var w2 = $div2.outerWidth(true);\n var b2 = y2 + h2;\n var r2 = x2 + w2;\n\n if (b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2) return false;\n return true;\n}\n\nfunction showPager() {\n if ($('.panel:visible').length >= 48) {\n $('.pagination').show();\n } else {\n $('.pagination').hide();\n }\n}\n\nwindow.unipolSharedNamespace = {\n showProgress,\n hideProgress,\n setSelectedCityReloadPage,\n gtmTracking,\n sendGTM,\n}\n\nfunction showProgress() {\n if (!spinnerVisible) {\n $(\".js-spinner\").addClass('spinner-show');\n spinnerVisible = true;\n }\n}\n\nfunction hideProgress() {\n if (spinnerVisible) {\n var spinner = $(\".js-spinner\");\n spinner.removeClass('spinner-show');\n spinnerVisible = false;\n }\n}\n\nfunction scrollToTop() {\n $('html, body').animate({ scrollTop: '0px' }, 300);\n}\n\nfunction _alert(options) {\n if (!options) { options = {}; }\n\n var show = function (el, text) {\n if (text) { el.html(text); el.show(); } else { el.hide(); }\n };\n\n var ok = options.ok ? options.ok : 'OK';\n var title = options.title;\n var text = options.text;\n var dialog = $('#alert-dialog');\n var header = dialog.find('.modal-header');\n var footer = dialog.find('.modal-footer');\n\n show(dialog.find('.modal-body'), text);\n show(dialog.find('.modal-header h3'), title);\n footer.find('.btn-warning').unbind('click').html(ok);\n dialog.modal('show');\n}\n\nfunction _confirm(options) {\n if (!options) { options = {}; }\n\n var show = function (el, text) {\n if (text) { el.html(text); el.show(); } else { el.hide(); }\n };\n\n var url = options.url ? options.url : '';\n var data = options.data ? options.data : '';\n var ok = options.ok ? options.ok : 'OK';\n var cancel = options.cancel ? options.cancel : 'Cancel';\n var title = options.title;\n var text = options.text;\n var dialog = $('#confirm-dialog');\n var header = dialog.find('.modal-header');\n var footer = dialog.find('.modal-footer');\n var method = 'POST';\n var dataType = 'json';\n\n\n //debugger;\n if (typeof options.method !== 'undefined') {\n method = options.method;\n }\n\n if (typeof options.dataType !== 'undefined') {\n dataType = options.dataType;\n }\n\n show(dialog.find('.modal-body'), text);\n show(dialog.find('.modal-title'), title);\n footer.find('.btn-ok').unbind('click').html(ok);\n footer.find('.btn-cancel').unbind('click').html(cancel);\n dialog.modal('show');\n\n var $deferred = $.Deferred();\n var is_done = false;\n\n footer.find('.btn-ok').on('click', function (e) {\n e.preventDefault();\n is_done = true;\n dialog.modal('hide');\n if (url && url !== '') {\n $.ajax({\n url: url,\n data: data,\n type: method,\n dataType: dataType\n }).done(function (result) {\n $deferred.resolve(result);\n hideProgress();\n }).fail(function (xhr, ajaxOptions, error) {\n $deferred.reject();\n hideProgress();\n });\n } else {\n $deferred.resolve();\n }\n });\n\n dialog.on('hide', function () {\n showProgress();\n if (!is_done) {\n $deferred.reject();\n }\n });\n\n return $deferred.promise();\n}\n\nfunction setSelectedCity(city) {\n $.get('/my-unipol/setselectedcity/' + city, function (data) {\n //Do something\n });\n}\n\nfunction setSelectedCityReloadPage(city) {\n $.get('/my-unipol/setselectedcity/' + city, function (data) {\n location.reload();\n });\n}\n\nfunction _notification(options) {\n if (!options) { options = {}; }\n var show = function (el, text) {\n if (text) { el.html(text); el.show(); } else { el.hide(); }\n };\n\n var title = options.title;\n var text = options.text;\n var dialog = $('#notification-dialog');\n var header = dialog.find('.modal-header');\n var footer = dialog.find('.modal-footer');\n\n show(dialog.find('.modal-body'), text);\n show(dialog.find('.modal-header h3'), title);\n dialog.modal('show');\n}\n\nwindow.modalsFunctions = {\n _alert,\n _confirm,\n _notification\n}\n\nfunction hideEmptyCols(table) {\n\n var rows = $(\"tr\", table).length - 1;\n var numCols = $(\"th\", table).length;\n for (var i = 1; i <= numCols; i++) {\n\n if ($(\"parent:empty\", $(\"td:nth-child(\" + i + \")\", table)).length === rows) {\n $(\"td:nth-child(\" + i + \")\", table).hide(); //hide 's\n $(\"th:nth-child(\" + i + \")\", table).hide(); //hide header \n }\n }\n}\n\n//Refactor this later\nfunction sortColumn(sortBy, sortDirection, source) {\n\n var currentSortColumn = \"ItemID\";\n var currentSortOrder = \"asc\";\n\n //loadEventAttendeeList\n if (source === \"events\") {\n $.get('/my-unipol/setsortorder/' + sortBy + '/' + sortDirection, function (data) {\n currentSortColumn = \"Name\";\n currentSortOrder = \"asc\";\n\n loadEventAttendeeList();\n });\n } else {\n $.get('/my-unipol/setsortorder/' + sortBy + '/' + sortDirection, function (data) {\n advertlist();\n });\n }\n}\n\nfunction setCurrentSort() {\n var currentSortColumn = \"ItemID\";\n var currentSortOrder = \"asc\";\n\n $.get('/my-unipol/getCurrentSort/', function (data) {\n currentSortColumn = data.currentSortColumn;\n currentSortOrder = data.currentSortOrder;\n\n var $currentSortLink = $('thead.sortable').find(\"[data-sort-column='\" + currentSortColumn + \"']\");\n //Set icon\n $('thead.sortable a').removeClass(\"sort\");\n $currentSortLink.addClass(\"sort\");\n\n //set direction\n if (currentSortOrder === \"desc\") {\n $currentSortLink.addClass(\"desc\");\n } else {\n $currentSortLink.removeClass(\"desc\");\n }\n });\n}\n\nfunction getParameterByName(name) {\n var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);\n return match && decodeURIComponent(match[1].replace(/\\+/g, ' '));\n}\n\nfunction currentSortOrder() {\n $.get('/my-unipol/currentSortOrder/', function (data) {\n if (data !== null) {\n return data;\n } else {\n return 'ItemID';\n }\n });\n}\n\nfunction doCascade(delay) {\n // Initiate an array\n var items = [\"First\", \"Second\", \"Third\", \"Fourth\", \"Fifth\"];\n // Loop through it with jQuery.each()\n $(items).each(function (i, text) {\n // Create a new DIV.\n var item = $('
');\n\n // Give it a class for styling\n $(item).addClass('item');\n\n // Add our text from the array.\n $(item).text(text);\n\n // Make it so it doesn't display\n // when it's added to the DOM.\n $(item).css({\n 'display': 'none'\n });\n\n // Tell jQuery to delay the fadeIn by i * delay,\n // (no. times loop has iterated) * (delay in ms)\n $(item).delay(i * delay).fadeIn();\n\n // Finally, append it to a wrapper.\n // This is just an empty div, somewhere\n // to put the result.\n $('#cascade-wrap').append(item);\n });\n}\n\nfunction GetBaseUrl() {\n try {\n\n var l = window.location;\n var baseURL = \"//\" + l.host + \"/\" + l.pathname.split('/')[0];\n if (document.location.hostname === \"localhost\") {\n //var baseURL = l.protocol + \"//\" + l.host + \"/\" + l.pathname.split('/')[1];\n baseURL = \"//\" + l.host + \"/\" + l.pathname.split('/')[1];\n return baseURL;\n }\n\n return baseURL;\n\n }\n catch (arg) {\n return null;\n }\n}\n\nfunction selectedCity() {\n $.get('/my-unipol/selectedcity', function (data) {\n return data;\n });\n}\n\nfunction equalHeights() {\n //Make elements with a class of equalize the same height, (matches the tallest.)\n var boxes = $('.equalize');\n\n if (boxes.length > 3) {\n equalHeight(boxes);\n }\n}\n\nfunction equalHeight(group) {\n var tallest = 0;\n group.each(function () {\n var thisHeight = $(this).height();\n if (thisHeight > tallest) {\n tallest = thisHeight;\n }\n });\n group.height(tallest);\n}\n\nfunction currentSection() {\n var retCurrentSection;\n var pathArray = window.location.pathname.split('/');\n var pathSectionLower = \"\";\n\n if (pathArray[1].toLowerCase() === \"unipol\") {\n //MATCHES - //Unipol/section //Unipol/{city/all}/Section\n pathSectionLower = pathArray[2].toLowerCase();\n retCurrentSection = pathSectionLower === \"all\" || pathSectionLower === \"leeds\" || pathSectionLower === \"bradford\" || pathSectionLower === \"nottingham\" ? pathArray[3] : pathArray[2];\n }\n else {\n //MATCHES - //section //{city/all}/Section\n pathSectionLower = pathArray[1].toLowerCase();\n retCurrentSection = pathSectionLower === \"all\" || pathSectionLower === \"leeds\" || pathSectionLower === \"bradford\" || pathSectionLower === \"nottingham\" ? pathArray[2] : pathArray[1];\n }\n\n return retCurrentSection;\n}\n\nfunction LoadTwitterFeed() {\n $.ajax({\n url: \"https://api.twitter.com/1/statuses/user_timeline.json?screen_name=unipol&count=3&include_entities=true&include_rts=true&callback=?\",\n dataType: \"jsonp\",\n jsonpCallback: \"displayFeeds\"\n });\n}\n\nexport function BindElements() {\n if ($('.datepicker').length) {\n $('.datepicker').datepicker({ \"format\": \"dd/M/yyyy\" });\n }\n\n if ( $('[rel=\"datetime\"]').length) {\n $('[rel=\"datetime\"]').datepicker({\n autoClose: true,\n dateFormat: \"dd/M/yyyy\",\n changeYear: true,\n changeMonth: true,\n beforeShow: function (input, inst) {\n $(inst).css(\"z-index\", \"1060\");\n }\n });\n }\n $('input[rel=\"datetime\"]').keypress(function (e) {\n return false;\n });\n\n $('input[rel=\"datetime\"]').keydown(function (e) {\n if (e.keyCode !== 46 && e.keyCode !== 8)\n return false;\n\n $(e.currentTarget).val(\"\");\n e.stopPropagation();\n e.preventDefault();\n return false;\n });\n\n\n bindToolTips();\n\n //bindCheckBoxes();\n\n //equalHeights();\n\n\n //Show additional _Details field for selected checkboxes.\n RefreshCheckboxDetails();\n RefreshDropdownDetails();\n}\n\nfunction bindKenticoFormControls() {\n $(\"form input:checkbox\").addClass(\"styled-checkbox\");\n bindCheckBoxes();\n}\n\nfunction bindCheckBoxes() {\n\n //Checkbox Toggle Binding\n $('.unipol-style-checkbox, .unipol-style-checkbox-blue , .unipol-style-checkbox-green, .unipol-style-checkbox-purple').each(function () {\n\n var thisID = $(this).attr('id');\n var thisClass = $(this).attr('class');\n var setClass;\n\n switch (thisClass) {\n\n case \"unipol-style-checkbox\":\n setClass = \"unipol-style\";\n break;\n case \"unipol-style-checkbox-blue\":\n setClass = \"unipol-style-blue\";\n break;\n case \"unipol-style-checkbox-green\":\n setClass = \"unipol-style-green\";\n break;\n case \"unipol-style-checkbox-purple\":\n setClass = \"unipol-style-purple\";\n break;\n }\n $(this).addClass('hidden');\n\n\n if ($(this)[0].checked === true)\n $(this).after('
 
');\n else\n $(this).after('
 
');\n\n });\n\n}\n\nfunction RefreshCheckboxDetails() {\n\n //Shows _Details areas for checked checkboxes\n\n $(\".styled-checkbox\").each(function () {\n\n var $this = $(this)[0];\n var checkboxID = '#' + $this.id;\n\n if ($(checkboxID + \"_Details\").length > 0) {\n if ($this.checked === true) {\n $(checkboxID + \"_Details\").slideDown('fast');\n } else {\n $(checkboxID + \"_Details\").hide();\n }\n }\n\n //if ($this.id !== undefined && $this.id.indexOf('NeedsLicense') > 1) {\n // if ($this.checked === false) {\n // $(checkboxID + \"_NoLicense_Details\").slideDown('fast');\n // } else {\n // $(checkboxID + \"_NoLicense_Details\").hide();\n // }\n //}\n\n if ($this.id !== undefined && $this.id.indexOf('HasLicense') > 1) {\n if ($this.checked) {\n $(checkboxID + \"_NoLicense_Details\").slideUp('fast');\n } else {\n $(checkboxID + \"_NoLicense_Details\").slideDown('fast');\n }\n }\n\n });\n\n //Checkbox Toggle Binding\n //$('div[rel$=_WashingMachine]').click(function () {\n //\tthisID = $(this).attr('id');\n //\tthisClass = $(this).attr('class');\n //\tthisRel = $(this).attr('rel');\n //\tlistIndex = thisRel.substring(thisRel.indexOf('_') + 1, thisRel.lastIndexOf('_') - 1);\n //\tvar checkboxUI = $(\"div[rel=PropertyList_\" + listIndex + \"__WashingMachinePoint]\");\n //\tvar checkboxControl = $(\"#PropertyList_\" + listIndex + \"__WashingMachinePoint\");\n\n //\tif (thisClass.indexOf('off') > 1) {\n //\t\tcheckboxControl[0].checked = true;\n //\t\tcheckboxUI.addClass('on').removeClass('off');\n //\t}\n //});\n\n //$('div[rel$=_WasherDryer]').click(function () {\n //\tthisID = $(this).attr('id');\n //\tthisClass = $(this).attr('class');\n //\tthisRel = $(this).attr('rel');\n //\tlistIndex = thisRel.substring(thisRel.indexOf('_') + 1, thisRel.lastIndexOf('_') - 1);\n //\tvar checkboxUI = $(\"div[rel=PropertyList_\" + listIndex + \"__WashingMachinePoint]\");\n //\tvar checkboxControl = $(\"#PropertyList_\" + listIndex + \"__WashingMachinePoint\");\n\n //\tif (thisClass.indexOf('off') > 1) {\n //\t\tcheckboxControl[0].checked = true;\n //\t\tcheckboxUI.addClass('on').removeClass('off');\n //\t}\n //});\n\n}\n\nfunction RefreshDropdownDetails() {\n $('select.has-dependencies').each(function () {\n\n var ids = $(this).data(\"display-ids\");\n var selectedId = $(this).val();\n\n var dropdownID = \"#\" + $(this).attr('id');\n\n if (selectedId == ids) {\n $(dropdownID + \"_Details\").slideDown('fast');\n } else {\n $(dropdownID + \"_Details\").hide();\n }\n });\n\n}\n\nwindow.unipolLastResortNamespace = {\n bindToolTips,\n}\n\nfunction bindToolTips() {\n\n var targets = '[rel~=tooltip]',\n target = false,\n tooltip = false,\n title = false,\n tip = null;\n\n $(document).on('mouseenter', targets, function (e) {\n target = $(this);\n tip = target.attr('title');\n tooltip = $('
');\n\n if (!tip || tip === '')\n return false;\n\n target.removeAttr('title');\n tooltip.css('opacity', 0)\n .html(tip)\n .appendTo('body');\n\n var init_tooltip = function () {\n if ($(window).width() < tooltip.outerWidth() * 1.5)\n tooltip.css('max-width', $(window).width() / 2);\n else\n tooltip.css('max-width', 340);\n\n var pos_left = target.offset().left + target.outerWidth() / 2 - tooltip.outerWidth() / 2,\n pos_top = target.offset().top - tooltip.outerHeight() - 20;\n\n if (pos_left < 0) {\n pos_left = target.offset().left + target.outerWidth() / 2 - 20;\n tooltip.addClass('left');\n }\n else\n tooltip.removeClass('left');\n\n if (pos_left + tooltip.outerWidth() > $(window).width()) {\n pos_left = target.offset().left - tooltip.outerWidth() + target.outerWidth() / 2 + 20;\n tooltip.addClass('right');\n }\n else\n tooltip.removeClass('right');\n\n if (pos_top < 0) {\n pos_top = target.offset().top + target.outerHeight();\n tooltip.addClass('top');\n }\n else\n tooltip.removeClass('top');\n\n tooltip.css({ left: pos_left, top: pos_top })\n .animate({ top: '+=10', opacity: 1 }, 50);\n };\n\n init_tooltip();\n $(window).resize(init_tooltip);\n\n var remove_tooltip = function () {\n tooltip.animate({ top: '-=10', opacity: 0 }, 50, function () {\n $(this).remove();\n });\n\n target.attr('title', tip);\n };\n\n $(document).on('mouseleave', targets, remove_tooltip);\n $(document).on('click', '#tooltip', remove_tooltip);\n });\n}\n\n\n/* right panel sticky scroll ****************************************************/\nfunction resetRightPanelStickyScroll(name, rightPanel, leftPanel) {\n\n var scrollEvent = 'scroll.' + name;\n\n $(rightPanel).parent().height('auto');\n $(leftPanel).parent().height('auto');\n\n $(window).off(scrollEvent);\n\n $(rightPanel).css({\n position: '',\n top: '',\n left: '',\n bottom: '',\n width: ''\n });\n}\n\nfunction updateRightPanelStickyScroll(rightPanel, topLimit, bottomLimit) {\n\n if ($(window).scrollTop() > topLimit) {\n if ($(window).scrollTop() > bottomLimit) {\n $(rightPanel).css({\n position: 'absolute',\n top: '',\n left: '',\n bottom: '0',\n width: width.toString() + 'px'\n });\n } else {\n $(rightPanel).css({\n position: 'fixed',\n top: yPos.toString() + 'px',\n left: xPos.toString() + 'px',\n bottom: '',\n width: width.toString() + 'px'\n });\n }\n } else {\n $(rightPanel).css({\n position: '',\n top: '',\n left: '',\n bottom: '',\n width: ''\n });\n }\n}\n\nfunction rightPanelStickyScroll(name, rightPanel, leftPanel) {\n\n if ($(rightPanel).length && $(leftPanel).length) {\n\n resetRightPanelStickyScroll(name, rightPanel, leftPanel);\n\n var scrollEvent = 'scroll.' + name;\n\n var yPos = $('#page-header').height() + 0;\n\n var xPos = $(rightPanel).offset().left;\n var width = $(rightPanel).outerWidth() - 40;\n var height = $(rightPanel).outerHeight();\n\n var colHeight = $(rightPanel).outerHeight() > $(leftPanel).outerHeight() ?\n $(rightPanel).outerHeight() : $(leftPanel).outerHeight();\n\n var topLimit = $(rightPanel).offset().top - yPos;\n var bottomLimit = $(leftPanel).offset().top + colHeight - (yPos + height);\n\n $(rightPanel).parent().height(colHeight);\n $(leftPanel).parent().height(colHeight);\n\n update();\n\n $(window).on(scrollEvent, function () {\n update();\n });\n }\n}\n\nfunction update() {\n if ($(window).scrollTop() > topLimit) {\n if ($(window).scrollTop() > bottomLimit) {\n $(rightPanel).css({\n position: 'absolute',\n top: '',\n left: '',\n bottom: '0',\n width: width.toString() + 'px'\n });\n } else {\n $(rightPanel).css({\n position: 'fixed',\n top: yPos.toString() + 'px',\n left: xPos.toString() + 'px',\n bottom: '',\n width: width.toString() + 'px'\n });\n }\n } else {\n $(rightPanel).css({\n position: '',\n top: '',\n left: '',\n bottom: '',\n width: ''\n });\n }\n}\n\nfunction updateActiveNav() {\n var currentSectionName = currentSection();\n $(\"#nav a\").removeClass('active is-active');\n $(\"#nav a[data-section*='\" + currentSectionName + \"']\").closest('li').addClass('active is-active');\n}\n\n// Track anchor links having class=ga-tracked with GA events\n$(document).on('click', 'a.ga-tracked', function (e) {\n\n if (baseUrl !== \"//localhost\") {\n var $this = $(this);\n var url = $this.attr('href');\n var event_category = $this.data('event-category') || \"outbound\";\n\n gtag('event', 'click', {\n 'event_category': event_category,\n 'event_label': url,\n 'transport_type': 'beacon',\n 'event_callback': function () { }\n });\n }\n});\n\n// Track form submissions having class=ga-tracked with GA events\n$(document).on('submit', 'form.ga-tracked', function (e) {\n\n if (baseUrl !== \"//localhost\") {\n e.preventDefault();\n var theForm = $(this);\n var event_label = theForm.data('event-label') || \"accommodation booking form\";\n\n gtag('event', 'submit', {\n 'event_category': 'form',\n 'event_label': event_label,\n 'transport_type': 'beacon',\n 'event_callback': function () { theForm.submit(); }\n });\n }\n});\n\nfunction sendGTM(element) {\n let props = element.getAttributeNames().filter(attr => (attr.startsWith('data-gtm')));\n if(!props.length) return;\n let newDataLayer = {};\n props.forEach(attr => {\n newDataLayer[attr.slice(9)] = element.getAttribute(attr);\n });\n\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(newDataLayer);\n}\n\nfunction gtmTracking() {\n $(document).on('click', '[data-click-gtm]', function (e) {\n sendGTM(e.currentTarget);\n });\n}\n\n\n\n","/*!\n * Datepicker v1.0.10\n * https://fengyuanchen.github.io/datepicker\n *\n * Copyright 2014-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2020-09-29T14:46:10.983Z\n */\n\nimport $ from 'jquery';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nvar DEFAULTS = {\n // Show the datepicker automatically when initialized\n autoShow: false,\n // Hide the datepicker automatically when picked\n autoHide: false,\n // Pick the initial date automatically when initialized\n autoPick: false,\n // Enable inline mode\n inline: false,\n // A element (or selector) for putting the datepicker\n container: null,\n // A element (or selector) for triggering the datepicker\n trigger: null,\n // The ISO language code (built-in: en-US)\n language: '',\n // The date string format\n format: 'mm/dd/yyyy',\n // The initial date\n date: null,\n // The start view date\n startDate: null,\n // The end view date\n endDate: null,\n // The start view when initialized\n startView: 0,\n // 0 for days, 1 for months, 2 for years\n // The start day of the week\n // 0 for Sunday, 1 for Monday, 2 for Tuesday, 3 for Wednesday,\n // 4 for Thursday, 5 for Friday, 6 for Saturday\n weekStart: 0,\n // Show year before month on the datepicker header\n yearFirst: false,\n // A string suffix to the year number.\n yearSuffix: '',\n // Days' name of the week.\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n // Shorter days' name\n daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n // Shortest days' name\n daysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n // Months' name\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n // Shorter months' name\n monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n // A element tag for each item of years, months and days\n itemTag: 'li',\n // A class (CSS) for muted date item\n mutedClass: 'muted',\n // A class (CSS) for picked date item\n pickedClass: 'picked',\n // A class (CSS) for disabled date item\n disabledClass: 'disabled',\n // A class (CSS) for highlight date item\n highlightedClass: 'highlighted',\n // The template of the datepicker\n template: '
' + '
' + '' + '' + '
' + '
' + '' + '' + '
' + '
' + '' + '' + '' + '
' + '
',\n // The offset top or bottom of the datepicker from the element\n offset: 10,\n // The `z-index` of the datepicker\n zIndex: 1000,\n // Filter each date item (return `false` to disable a date item)\n filter: null,\n // Event shortcuts\n show: null,\n hide: null,\n pick: null\n};\n\nvar IS_BROWSER = typeof window !== 'undefined';\nvar WINDOW = IS_BROWSER ? window : {};\nvar IS_TOUCH_DEVICE = IS_BROWSER ? 'ontouchstart' in WINDOW.document.documentElement : false;\nvar NAMESPACE = 'datepicker';\nvar EVENT_CLICK = \"click.\".concat(NAMESPACE);\nvar EVENT_FOCUS = \"focus.\".concat(NAMESPACE);\nvar EVENT_HIDE = \"hide.\".concat(NAMESPACE);\nvar EVENT_KEYUP = \"keyup.\".concat(NAMESPACE);\nvar EVENT_PICK = \"pick.\".concat(NAMESPACE);\nvar EVENT_RESIZE = \"resize.\".concat(NAMESPACE);\nvar EVENT_SCROLL = \"scroll.\".concat(NAMESPACE);\nvar EVENT_SHOW = \"show.\".concat(NAMESPACE);\nvar EVENT_TOUCH_START = \"touchstart.\".concat(NAMESPACE);\nvar CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\nvar LANGUAGES = {};\nvar VIEWS = {\n DAYS: 0,\n MONTHS: 1,\n YEARS: 2\n};\n\nvar toString = Object.prototype.toString;\nfunction typeOf(obj) {\n return toString.call(obj).slice(8, -1).toLowerCase();\n}\nfunction isString(value) {\n return typeof value === 'string';\n}\nvar isNaN = Number.isNaN || WINDOW.isNaN;\nfunction isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n}\nfunction isUndefined(value) {\n return typeof value === 'undefined';\n}\nfunction isDate(value) {\n return typeOf(value) === 'date' && !isNaN(value.getTime());\n}\nfunction proxy(fn, context) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n return function () {\n for (var _len2 = arguments.length, args2 = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args2[_key2] = arguments[_key2];\n }\n\n return fn.apply(context, args.concat(args2));\n };\n}\nfunction selectorOf(view) {\n return \"[data-view=\\\"\".concat(view, \"\\\"]\");\n}\nfunction isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\nfunction getDaysInMonth(year, month) {\n return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n}\nfunction getMinDay(year, month, day) {\n return Math.min(day, getDaysInMonth(year, month));\n}\nvar formatParts = /(y|m|d)+/g;\nfunction parseFormat(format) {\n var source = String(format).toLowerCase();\n var parts = source.match(formatParts);\n\n if (!parts || parts.length === 0) {\n throw new Error('Invalid date format.');\n }\n\n format = {\n source: source,\n parts: parts\n };\n $.each(parts, function (i, part) {\n switch (part) {\n case 'dd':\n case 'd':\n format.hasDay = true;\n break;\n\n case 'mm':\n case 'm':\n format.hasMonth = true;\n break;\n\n case 'yyyy':\n case 'yy':\n format.hasYear = true;\n break;\n }\n });\n return format;\n}\nfunction getScrollParent(element) {\n var includeHidden = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var $element = $(element);\n var position = $element.css('position');\n var excludeStaticParent = position === 'absolute';\n var overflowRegex = includeHidden ? /auto|scroll|hidden/ : /auto|scroll/;\n var scrollParent = $element.parents().filter(function (index, parent) {\n var $parent = $(parent);\n\n if (excludeStaticParent && $parent.css('position') === 'static') {\n return false;\n }\n\n return overflowRegex.test($parent.css('overflow') + $parent.css('overflow-y') + $parent.css('overflow-x'));\n }).eq(0);\n return position === 'fixed' || !scrollParent.length ? $(element.ownerDocument || document) : scrollParent;\n}\n/**\n * Add leading zeroes to the given value\n * @param {number} value - The value to add.\n * @param {number} [length=1] - The expected value length.\n * @returns {string} Returns converted value.\n */\n\nfunction addLeadingZero(value) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var str = String(Math.abs(value));\n var i = str.length;\n var result = '';\n\n if (value < 0) {\n result += '-';\n }\n\n while (i < length) {\n i += 1;\n result += '0';\n }\n\n return result + str;\n}\n\nvar REGEXP_DIGITS = /\\d+/g;\nvar methods = {\n // Show the datepicker\n show: function show() {\n if (!this.built) {\n this.build();\n }\n\n if (this.shown) {\n return;\n }\n\n if (this.trigger(EVENT_SHOW).isDefaultPrevented()) {\n return;\n }\n\n this.shown = true;\n this.$picker.removeClass(CLASS_HIDE).on(EVENT_CLICK, $.proxy(this.click, this));\n this.showView(this.options.startView);\n\n if (!this.inline) {\n this.$scrollParent.on(EVENT_SCROLL, $.proxy(this.place, this));\n $(window).on(EVENT_RESIZE, this.onResize = proxy(this.place, this));\n $(document).on(EVENT_CLICK, this.onGlobalClick = proxy(this.globalClick, this));\n $(document).on(EVENT_KEYUP, this.onGlobalKeyup = proxy(this.globalKeyup, this));\n\n if (IS_TOUCH_DEVICE) {\n $(document).on(EVENT_TOUCH_START, this.onTouchStart = proxy(this.touchstart, this));\n }\n\n this.place();\n }\n },\n // Hide the datepicker\n hide: function hide() {\n if (!this.shown) {\n return;\n }\n\n if (this.trigger(EVENT_HIDE).isDefaultPrevented()) {\n return;\n }\n\n this.shown = false;\n this.$picker.addClass(CLASS_HIDE).off(EVENT_CLICK, this.click);\n\n if (!this.inline) {\n this.$scrollParent.off(EVENT_SCROLL, this.place);\n $(window).off(EVENT_RESIZE, this.onResize);\n $(document).off(EVENT_CLICK, this.onGlobalClick);\n $(document).off(EVENT_KEYUP, this.onGlobalKeyup);\n\n if (IS_TOUCH_DEVICE) {\n $(document).off(EVENT_TOUCH_START, this.onTouchStart);\n }\n }\n },\n toggle: function toggle() {\n if (this.shown) {\n this.hide();\n } else {\n this.show();\n }\n },\n // Update the datepicker with the current input value\n update: function update() {\n var value = this.getValue();\n\n if (value === this.oldValue) {\n return;\n }\n\n this.setDate(value, true);\n this.oldValue = value;\n },\n\n /**\n * Pick the current date to the element\n *\n * @param {String} _view (private)\n */\n pick: function pick(_view) {\n var $this = this.$element;\n var date = this.date;\n\n if (this.trigger(EVENT_PICK, {\n view: _view || '',\n date: date\n }).isDefaultPrevented()) {\n return;\n }\n\n date = this.formatDate(this.date);\n this.setValue(date);\n\n if (this.isInput) {\n $this.trigger('input');\n $this.trigger('change');\n }\n },\n // Reset the datepicker\n reset: function reset() {\n this.setDate(this.initialDate, true);\n this.setValue(this.initialValue);\n\n if (this.shown) {\n this.showView(this.options.startView);\n }\n },\n\n /**\n * Get the month name with given argument or the current date\n *\n * @param {Number} month (optional)\n * @param {Boolean} shortForm (optional)\n * @return {String} (month name)\n */\n getMonthName: function getMonthName(month, shortForm) {\n var options = this.options;\n var monthsShort = options.monthsShort;\n var months = options.months;\n\n if ($.isNumeric(month)) {\n month = Number(month);\n } else if (isUndefined(shortForm)) {\n shortForm = month;\n }\n\n if (shortForm === true) {\n months = monthsShort;\n }\n\n return months[isNumber(month) ? month : this.date.getMonth()];\n },\n\n /**\n * Get the day name with given argument or the current date\n *\n * @param {Number} day (optional)\n * @param {Boolean} shortForm (optional)\n * @param {Boolean} min (optional)\n * @return {String} (day name)\n */\n getDayName: function getDayName(day, shortForm, min) {\n var options = this.options;\n var days = options.days;\n\n if ($.isNumeric(day)) {\n day = Number(day);\n } else {\n if (isUndefined(min)) {\n min = shortForm;\n }\n\n if (isUndefined(shortForm)) {\n shortForm = day;\n }\n }\n\n if (min) {\n days = options.daysMin;\n } else if (shortForm) {\n days = options.daysShort;\n }\n\n return days[isNumber(day) ? day : this.date.getDay()];\n },\n\n /**\n * Get the current date\n *\n * @param {Boolean} formatted (optional)\n * @return {Date|String} (date)\n */\n getDate: function getDate(formatted) {\n var date = this.date;\n return formatted ? this.formatDate(date) : new Date(date);\n },\n\n /**\n * Set the current date with a new date\n *\n * @param {Date} date\n * @param {Boolean} _updated (private)\n */\n setDate: function setDate(date, _updated) {\n var filter = this.options.filter;\n\n if (isDate(date) || isString(date)) {\n date = this.parseDate(date);\n\n if ($.isFunction(filter) && filter.call(this.$element, date, 'day') === false) {\n return;\n }\n\n this.date = date;\n this.viewDate = new Date(date);\n\n if (!_updated) {\n this.pick();\n }\n\n if (this.built) {\n this.render();\n }\n }\n },\n\n /**\n * Set the start view date with a new date\n *\n * @param {Date|string|null} date\n */\n setStartDate: function setStartDate(date) {\n if (isDate(date) || isString(date)) {\n this.startDate = this.parseDate(date);\n } else {\n this.startDate = null;\n }\n\n if (this.built) {\n this.render();\n }\n },\n\n /**\n * Set the end view date with a new date\n *\n * @param {Date|string|null} date\n */\n setEndDate: function setEndDate(date) {\n if (isDate(date) || isString(date)) {\n this.endDate = this.parseDate(date);\n } else {\n this.endDate = null;\n }\n\n if (this.built) {\n this.render();\n }\n },\n\n /**\n * Parse a date string with the set date format\n *\n * @param {String} date\n * @return {Date} (parsed date)\n */\n parseDate: function parseDate(date) {\n var format = this.format;\n var parts = [];\n\n if (!isDate(date)) {\n if (isString(date)) {\n parts = date.match(REGEXP_DIGITS) || [];\n }\n\n date = date ? new Date(date) : new Date();\n\n if (!isDate(date)) {\n date = new Date();\n }\n\n if (parts.length === format.parts.length) {\n // Set year and month first\n $.each(parts, function (i, part) {\n var value = parseInt(part, 10);\n\n switch (format.parts[i]) {\n case 'yy':\n date.setFullYear(2000 + value);\n break;\n\n case 'yyyy':\n // Converts 2-digit year to 2000+\n date.setFullYear(part.length === 2 ? 2000 + value : value);\n break;\n\n case 'mm':\n case 'm':\n date.setMonth(value - 1);\n break;\n }\n }); // Set day in the last to avoid converting `31/10/2019` to `01/10/2019`\n\n $.each(parts, function (i, part) {\n var value = parseInt(part, 10);\n\n switch (format.parts[i]) {\n case 'dd':\n case 'd':\n date.setDate(value);\n break;\n }\n });\n }\n } // Ignore hours, minutes, seconds and milliseconds to avoid side effect (#192)\n\n\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n },\n\n /**\n * Format a date object to a string with the set date format\n *\n * @param {Date} date\n * @return {String} (formatted date)\n */\n formatDate: function formatDate(date) {\n var format = this.format;\n var formatted = '';\n\n if (isDate(date)) {\n var year = date.getFullYear();\n var month = date.getMonth();\n var day = date.getDate();\n var values = {\n d: day,\n dd: addLeadingZero(day, 2),\n m: month + 1,\n mm: addLeadingZero(month + 1, 2),\n yy: String(year).substring(2),\n yyyy: addLeadingZero(year, 4)\n };\n formatted = format.source;\n $.each(format.parts, function (i, part) {\n formatted = formatted.replace(part, values[part]);\n });\n }\n\n return formatted;\n },\n // Destroy the datepicker and remove the instance from the target element\n destroy: function destroy() {\n this.unbind();\n this.unbuild();\n this.$element.removeData(NAMESPACE);\n }\n};\n\nvar handlers = {\n click: function click(e) {\n var $target = $(e.target);\n var options = this.options,\n date = this.date,\n viewDate = this.viewDate,\n format = this.format;\n e.stopPropagation();\n e.preventDefault();\n\n if ($target.hasClass('disabled')) {\n return;\n }\n\n var view = $target.data('view');\n var viewYear = viewDate.getFullYear();\n var viewMonth = viewDate.getMonth();\n var viewDay = viewDate.getDate();\n\n switch (view) {\n case 'years prev':\n case 'years next':\n {\n viewYear = view === 'years prev' ? viewYear - 10 : viewYear + 10;\n viewDate.setFullYear(viewYear);\n viewDate.setDate(getMinDay(viewYear, viewMonth, viewDay));\n this.renderYears();\n break;\n }\n\n case 'year prev':\n case 'year next':\n viewYear = view === 'year prev' ? viewYear - 1 : viewYear + 1;\n viewDate.setFullYear(viewYear);\n viewDate.setDate(getMinDay(viewYear, viewMonth, viewDay));\n this.renderMonths();\n break;\n\n case 'year current':\n if (format.hasYear) {\n this.showView(VIEWS.YEARS);\n }\n\n break;\n\n case 'year picked':\n if (format.hasMonth) {\n this.showView(VIEWS.MONTHS);\n } else {\n $target.siblings(\".\".concat(options.pickedClass)).removeClass(options.pickedClass).data('view', 'year');\n this.hideView();\n }\n\n this.pick('year');\n break;\n\n case 'year':\n viewYear = parseInt($target.text(), 10); // Set date first to avoid month changing (#195)\n\n date.setDate(getMinDay(viewYear, viewMonth, viewDay));\n date.setFullYear(viewYear);\n viewDate.setDate(getMinDay(viewYear, viewMonth, viewDay));\n viewDate.setFullYear(viewYear);\n\n if (format.hasMonth) {\n this.showView(VIEWS.MONTHS);\n } else {\n $target.addClass(options.pickedClass).data('view', 'year picked').siblings(\".\".concat(options.pickedClass)).removeClass(options.pickedClass).data('view', 'year');\n this.hideView();\n }\n\n this.pick('year');\n break;\n\n case 'month prev':\n case 'month next':\n viewMonth = view === 'month prev' ? viewMonth - 1 : viewMonth + 1;\n\n if (viewMonth < 0) {\n viewYear -= 1;\n viewMonth += 12;\n } else if (viewMonth > 11) {\n viewYear += 1;\n viewMonth -= 12;\n }\n\n viewDate.setFullYear(viewYear);\n viewDate.setDate(getMinDay(viewYear, viewMonth, viewDay));\n viewDate.setMonth(viewMonth);\n this.renderDays();\n break;\n\n case 'month current':\n if (format.hasMonth) {\n this.showView(VIEWS.MONTHS);\n }\n\n break;\n\n case 'month picked':\n if (format.hasDay) {\n this.showView(VIEWS.DAYS);\n } else {\n $target.siblings(\".\".concat(options.pickedClass)).removeClass(options.pickedClass).data('view', 'month');\n this.hideView();\n }\n\n this.pick('month');\n break;\n\n case 'month':\n viewMonth = $.inArray($target.text(), options.monthsShort);\n date.setFullYear(viewYear); // Set date before month to avoid month changing (#195)\n\n date.setDate(getMinDay(viewYear, viewMonth, viewDay));\n date.setMonth(viewMonth);\n viewDate.setFullYear(viewYear);\n viewDate.setDate(getMinDay(viewYear, viewMonth, viewDay));\n viewDate.setMonth(viewMonth);\n\n if (format.hasDay) {\n this.showView(VIEWS.DAYS);\n } else {\n $target.addClass(options.pickedClass).data('view', 'month picked').siblings(\".\".concat(options.pickedClass)).removeClass(options.pickedClass).data('view', 'month');\n this.hideView();\n }\n\n this.pick('month');\n break;\n\n case 'day prev':\n case 'day next':\n case 'day':\n if (view === 'day prev') {\n viewMonth -= 1;\n } else if (view === 'day next') {\n viewMonth += 1;\n }\n\n viewDay = parseInt($target.text(), 10); // Set date to 1 to avoid month changing (#195)\n\n date.setDate(1);\n date.setFullYear(viewYear);\n date.setMonth(viewMonth);\n date.setDate(viewDay);\n viewDate.setDate(1);\n viewDate.setFullYear(viewYear);\n viewDate.setMonth(viewMonth);\n viewDate.setDate(viewDay);\n this.renderDays();\n\n if (view === 'day') {\n this.hideView();\n }\n\n this.pick('day');\n break;\n\n case 'day picked':\n this.hideView();\n this.pick('day');\n break;\n }\n },\n globalClick: function globalClick(_ref) {\n var target = _ref.target;\n var element = this.element,\n $trigger = this.$trigger;\n var trigger = $trigger[0];\n var hidden = true;\n\n while (target !== document) {\n if (target === trigger || target === element) {\n hidden = false;\n break;\n }\n\n target = target.parentNode;\n }\n\n if (hidden) {\n this.hide();\n }\n },\n keyup: function keyup() {\n this.update();\n },\n globalKeyup: function globalKeyup(_ref2) {\n var target = _ref2.target,\n key = _ref2.key,\n keyCode = _ref2.keyCode;\n\n if (this.isInput && target !== this.element && this.shown && (key === 'Tab' || keyCode === 9)) {\n this.hide();\n }\n },\n touchstart: function touchstart(_ref3) {\n var target = _ref3.target;\n\n // Emulate click in touch devices to support hiding the picker automatically (#197).\n if (this.isInput && target !== this.element && !$.contains(this.$picker[0], target)) {\n this.hide();\n this.element.blur();\n }\n }\n};\n\nvar render = {\n render: function render() {\n this.renderYears();\n this.renderMonths();\n this.renderDays();\n },\n renderWeek: function renderWeek() {\n var _this = this;\n\n var items = [];\n var _this$options = this.options,\n weekStart = _this$options.weekStart,\n daysMin = _this$options.daysMin;\n weekStart = parseInt(weekStart, 10) % 7;\n daysMin = daysMin.slice(weekStart).concat(daysMin.slice(0, weekStart));\n $.each(daysMin, function (i, day) {\n items.push(_this.createItem({\n text: day\n }));\n });\n this.$week.html(items.join(''));\n },\n renderYears: function renderYears() {\n var options = this.options,\n startDate = this.startDate,\n endDate = this.endDate;\n var disabledClass = options.disabledClass,\n filter = options.filter,\n yearSuffix = options.yearSuffix;\n var viewYear = this.viewDate.getFullYear();\n var now = new Date();\n var thisYear = now.getFullYear();\n var year = this.date.getFullYear();\n var start = -5;\n var end = 6;\n var items = [];\n var prevDisabled = false;\n var nextDisabled = false;\n var i;\n\n for (i = start; i <= end; i += 1) {\n var date = new Date(viewYear + i, 1, 1);\n var disabled = false;\n\n if (startDate) {\n disabled = date.getFullYear() < startDate.getFullYear();\n\n if (i === start) {\n prevDisabled = disabled;\n }\n }\n\n if (!disabled && endDate) {\n disabled = date.getFullYear() > endDate.getFullYear();\n\n if (i === end) {\n nextDisabled = disabled;\n }\n }\n\n if (!disabled && filter) {\n disabled = filter.call(this.$element, date, 'year') === false;\n }\n\n var picked = viewYear + i === year;\n var view = picked ? 'year picked' : 'year';\n items.push(this.createItem({\n picked: picked,\n disabled: disabled,\n text: viewYear + i,\n view: disabled ? 'year disabled' : view,\n highlighted: date.getFullYear() === thisYear\n }));\n }\n\n this.$yearsPrev.toggleClass(disabledClass, prevDisabled);\n this.$yearsNext.toggleClass(disabledClass, nextDisabled);\n this.$yearsCurrent.toggleClass(disabledClass, true).html(\"\".concat(viewYear + start + yearSuffix, \" - \").concat(viewYear + end).concat(yearSuffix));\n this.$years.html(items.join(''));\n },\n renderMonths: function renderMonths() {\n var options = this.options,\n startDate = this.startDate,\n endDate = this.endDate,\n viewDate = this.viewDate;\n var disabledClass = options.disabledClass || '';\n var months = options.monthsShort;\n var filter = $.isFunction(options.filter) && options.filter;\n var viewYear = viewDate.getFullYear();\n var now = new Date();\n var thisYear = now.getFullYear();\n var thisMonth = now.getMonth();\n var year = this.date.getFullYear();\n var month = this.date.getMonth();\n var items = [];\n var prevDisabled = false;\n var nextDisabled = false;\n var i;\n\n for (i = 0; i <= 11; i += 1) {\n var date = new Date(viewYear, i, 1);\n var disabled = false;\n\n if (startDate) {\n prevDisabled = date.getFullYear() === startDate.getFullYear();\n disabled = prevDisabled && date.getMonth() < startDate.getMonth();\n }\n\n if (!disabled && endDate) {\n nextDisabled = date.getFullYear() === endDate.getFullYear();\n disabled = nextDisabled && date.getMonth() > endDate.getMonth();\n }\n\n if (!disabled && filter) {\n disabled = filter.call(this.$element, date, 'month') === false;\n }\n\n var picked = viewYear === year && i === month;\n var view = picked ? 'month picked' : 'month';\n items.push(this.createItem({\n disabled: disabled,\n picked: picked,\n highlighted: viewYear === thisYear && date.getMonth() === thisMonth,\n index: i,\n text: months[i],\n view: disabled ? 'month disabled' : view\n }));\n }\n\n this.$yearPrev.toggleClass(disabledClass, prevDisabled);\n this.$yearNext.toggleClass(disabledClass, nextDisabled);\n this.$yearCurrent.toggleClass(disabledClass, prevDisabled && nextDisabled).html(viewYear + options.yearSuffix || '');\n this.$months.html(items.join(''));\n },\n renderDays: function renderDays() {\n var $element = this.$element,\n options = this.options,\n startDate = this.startDate,\n endDate = this.endDate,\n viewDate = this.viewDate,\n currentDate = this.date;\n var disabledClass = options.disabledClass,\n filter = options.filter,\n months = options.months,\n weekStart = options.weekStart,\n yearSuffix = options.yearSuffix;\n var viewYear = viewDate.getFullYear();\n var viewMonth = viewDate.getMonth();\n var now = new Date();\n var thisYear = now.getFullYear();\n var thisMonth = now.getMonth();\n var thisDay = now.getDate();\n var year = currentDate.getFullYear();\n var month = currentDate.getMonth();\n var day = currentDate.getDate();\n var length;\n var i;\n var n; // Days of prev month\n // -----------------------------------------------------------------------\n\n var prevItems = [];\n var prevViewYear = viewYear;\n var prevViewMonth = viewMonth;\n var prevDisabled = false;\n\n if (viewMonth === 0) {\n prevViewYear -= 1;\n prevViewMonth = 11;\n } else {\n prevViewMonth -= 1;\n } // The length of the days of prev month\n\n\n length = getDaysInMonth(prevViewYear, prevViewMonth); // The first day of current month\n\n var firstDay = new Date(viewYear, viewMonth, 1); // The visible length of the days of prev month\n // [0,1,2,3,4,5,6] - [0,1,2,3,4,5,6] => [-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6]\n\n n = firstDay.getDay() - parseInt(weekStart, 10) % 7; // [-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6] => [1,2,3,4,5,6,7]\n\n if (n <= 0) {\n n += 7;\n }\n\n if (startDate) {\n prevDisabled = firstDay.getTime() <= startDate.getTime();\n }\n\n for (i = length - (n - 1); i <= length; i += 1) {\n var prevViewDate = new Date(prevViewYear, prevViewMonth, i);\n var disabled = false;\n\n if (startDate) {\n disabled = prevViewDate.getTime() < startDate.getTime();\n }\n\n if (!disabled && filter) {\n disabled = filter.call($element, prevViewDate, 'day') === false;\n }\n\n prevItems.push(this.createItem({\n disabled: disabled,\n highlighted: prevViewYear === thisYear && prevViewMonth === thisMonth && prevViewDate.getDate() === thisDay,\n muted: true,\n picked: prevViewYear === year && prevViewMonth === month && i === day,\n text: i,\n view: 'day prev'\n }));\n } // Days of next month\n // -----------------------------------------------------------------------\n\n\n var nextItems = [];\n var nextViewYear = viewYear;\n var nextViewMonth = viewMonth;\n var nextDisabled = false;\n\n if (viewMonth === 11) {\n nextViewYear += 1;\n nextViewMonth = 0;\n } else {\n nextViewMonth += 1;\n } // The length of the days of current month\n\n\n length = getDaysInMonth(viewYear, viewMonth); // The visible length of next month (42 means 6 rows and 7 columns)\n\n n = 42 - (prevItems.length + length); // The last day of current month\n\n var lastDate = new Date(viewYear, viewMonth, length);\n\n if (endDate) {\n nextDisabled = lastDate.getTime() >= endDate.getTime();\n }\n\n for (i = 1; i <= n; i += 1) {\n var date = new Date(nextViewYear, nextViewMonth, i);\n var picked = nextViewYear === year && nextViewMonth === month && i === day;\n var _disabled = false;\n\n if (endDate) {\n _disabled = date.getTime() > endDate.getTime();\n }\n\n if (!_disabled && filter) {\n _disabled = filter.call($element, date, 'day') === false;\n }\n\n nextItems.push(this.createItem({\n disabled: _disabled,\n picked: picked,\n highlighted: nextViewYear === thisYear && nextViewMonth === thisMonth && date.getDate() === thisDay,\n muted: true,\n text: i,\n view: 'day next'\n }));\n } // Days of current month\n // -----------------------------------------------------------------------\n\n\n var items = [];\n\n for (i = 1; i <= length; i += 1) {\n var _date = new Date(viewYear, viewMonth, i);\n\n var _disabled2 = false;\n\n if (startDate) {\n _disabled2 = _date.getTime() < startDate.getTime();\n }\n\n if (!_disabled2 && endDate) {\n _disabled2 = _date.getTime() > endDate.getTime();\n }\n\n if (!_disabled2 && filter) {\n _disabled2 = filter.call($element, _date, 'day') === false;\n }\n\n var _picked = viewYear === year && viewMonth === month && i === day;\n\n var view = _picked ? 'day picked' : 'day';\n items.push(this.createItem({\n disabled: _disabled2,\n picked: _picked,\n highlighted: viewYear === thisYear && viewMonth === thisMonth && _date.getDate() === thisDay,\n text: i,\n view: _disabled2 ? 'day disabled' : view\n }));\n } // Render days picker\n // -----------------------------------------------------------------------\n\n\n this.$monthPrev.toggleClass(disabledClass, prevDisabled);\n this.$monthNext.toggleClass(disabledClass, nextDisabled);\n this.$monthCurrent.toggleClass(disabledClass, prevDisabled && nextDisabled).html(options.yearFirst ? \"\".concat(viewYear + yearSuffix, \" \").concat(months[viewMonth]) : \"\".concat(months[viewMonth], \" \").concat(viewYear).concat(yearSuffix));\n this.$days.html(prevItems.join('') + items.join('') + nextItems.join(''));\n }\n};\n\nvar CLASS_TOP_LEFT = \"\".concat(NAMESPACE, \"-top-left\");\nvar CLASS_TOP_RIGHT = \"\".concat(NAMESPACE, \"-top-right\");\nvar CLASS_BOTTOM_LEFT = \"\".concat(NAMESPACE, \"-bottom-left\");\nvar CLASS_BOTTOM_RIGHT = \"\".concat(NAMESPACE, \"-bottom-right\");\nvar CLASS_PLACEMENTS = [CLASS_TOP_LEFT, CLASS_TOP_RIGHT, CLASS_BOTTOM_LEFT, CLASS_BOTTOM_RIGHT].join(' ');\n\nvar Datepicker = /*#__PURE__*/function () {\n function Datepicker(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Datepicker);\n\n this.$element = $(element);\n this.element = element;\n this.options = $.extend({}, DEFAULTS, LANGUAGES[options.language], $.isPlainObject(options) && options);\n this.$scrollParent = getScrollParent(element, true);\n this.built = false;\n this.shown = false;\n this.isInput = false;\n this.inline = false;\n this.initialValue = '';\n this.initialDate = null;\n this.startDate = null;\n this.endDate = null;\n this.init();\n }\n\n _createClass(Datepicker, [{\n key: \"init\",\n value: function init() {\n var $this = this.$element,\n options = this.options;\n var startDate = options.startDate,\n endDate = options.endDate,\n date = options.date;\n this.$trigger = $(options.trigger);\n this.isInput = $this.is('input') || $this.is('textarea');\n this.inline = options.inline && (options.container || !this.isInput);\n this.format = parseFormat(options.format);\n var initialValue = this.getValue();\n this.initialValue = initialValue;\n this.oldValue = initialValue;\n date = this.parseDate(date || initialValue);\n\n if (startDate) {\n startDate = this.parseDate(startDate);\n\n if (date.getTime() < startDate.getTime()) {\n date = new Date(startDate);\n }\n\n this.startDate = startDate;\n }\n\n if (endDate) {\n endDate = this.parseDate(endDate);\n\n if (startDate && endDate.getTime() < startDate.getTime()) {\n endDate = new Date(startDate);\n }\n\n if (date.getTime() > endDate.getTime()) {\n date = new Date(endDate);\n }\n\n this.endDate = endDate;\n }\n\n this.date = date;\n this.viewDate = new Date(date);\n this.initialDate = new Date(this.date);\n this.bind();\n\n if (options.autoShow || this.inline) {\n this.show();\n }\n\n if (options.autoPick) {\n this.pick();\n }\n }\n }, {\n key: \"build\",\n value: function build() {\n if (this.built) {\n return;\n }\n\n this.built = true;\n var $this = this.$element,\n options = this.options;\n var $picker = $(options.template);\n this.$picker = $picker;\n this.$week = $picker.find(selectorOf('week')); // Years view\n\n this.$yearsPicker = $picker.find(selectorOf('years picker'));\n this.$yearsPrev = $picker.find(selectorOf('years prev'));\n this.$yearsNext = $picker.find(selectorOf('years next'));\n this.$yearsCurrent = $picker.find(selectorOf('years current'));\n this.$years = $picker.find(selectorOf('years')); // Months view\n\n this.$monthsPicker = $picker.find(selectorOf('months picker'));\n this.$yearPrev = $picker.find(selectorOf('year prev'));\n this.$yearNext = $picker.find(selectorOf('year next'));\n this.$yearCurrent = $picker.find(selectorOf('year current'));\n this.$months = $picker.find(selectorOf('months')); // Days view\n\n this.$daysPicker = $picker.find(selectorOf('days picker'));\n this.$monthPrev = $picker.find(selectorOf('month prev'));\n this.$monthNext = $picker.find(selectorOf('month next'));\n this.$monthCurrent = $picker.find(selectorOf('month current'));\n this.$days = $picker.find(selectorOf('days'));\n\n if (this.inline) {\n $(options.container || $this).append($picker.addClass(\"\".concat(NAMESPACE, \"-inline\")));\n } else {\n $(document.body).append($picker.addClass(\"\".concat(NAMESPACE, \"-dropdown\")));\n $picker.addClass(CLASS_HIDE).css({\n zIndex: parseInt(options.zIndex, 10)\n });\n }\n\n this.renderWeek();\n }\n }, {\n key: \"unbuild\",\n value: function unbuild() {\n if (!this.built) {\n return;\n }\n\n this.built = false;\n this.$picker.remove();\n }\n }, {\n key: \"bind\",\n value: function bind() {\n var options = this.options,\n $this = this.$element;\n\n if ($.isFunction(options.show)) {\n $this.on(EVENT_SHOW, options.show);\n }\n\n if ($.isFunction(options.hide)) {\n $this.on(EVENT_HIDE, options.hide);\n }\n\n if ($.isFunction(options.pick)) {\n $this.on(EVENT_PICK, options.pick);\n }\n\n if (this.isInput) {\n $this.on(EVENT_KEYUP, $.proxy(this.keyup, this));\n }\n\n if (!this.inline) {\n if (options.trigger) {\n this.$trigger.on(EVENT_CLICK, $.proxy(this.toggle, this));\n } else if (this.isInput) {\n $this.on(EVENT_FOCUS, $.proxy(this.show, this));\n } else {\n $this.on(EVENT_CLICK, $.proxy(this.show, this));\n }\n }\n }\n }, {\n key: \"unbind\",\n value: function unbind() {\n var $this = this.$element,\n options = this.options;\n\n if ($.isFunction(options.show)) {\n $this.off(EVENT_SHOW, options.show);\n }\n\n if ($.isFunction(options.hide)) {\n $this.off(EVENT_HIDE, options.hide);\n }\n\n if ($.isFunction(options.pick)) {\n $this.off(EVENT_PICK, options.pick);\n }\n\n if (this.isInput) {\n $this.off(EVENT_KEYUP, this.keyup);\n }\n\n if (!this.inline) {\n if (options.trigger) {\n this.$trigger.off(EVENT_CLICK, this.toggle);\n } else if (this.isInput) {\n $this.off(EVENT_FOCUS, this.show);\n } else {\n $this.off(EVENT_CLICK, this.show);\n }\n }\n }\n }, {\n key: \"showView\",\n value: function showView(view) {\n var $yearsPicker = this.$yearsPicker,\n $monthsPicker = this.$monthsPicker,\n $daysPicker = this.$daysPicker,\n format = this.format;\n\n if (format.hasYear || format.hasMonth || format.hasDay) {\n switch (Number(view)) {\n case VIEWS.YEARS:\n $monthsPicker.addClass(CLASS_HIDE);\n $daysPicker.addClass(CLASS_HIDE);\n\n if (format.hasYear) {\n this.renderYears();\n $yearsPicker.removeClass(CLASS_HIDE);\n this.place();\n } else {\n this.showView(VIEWS.DAYS);\n }\n\n break;\n\n case VIEWS.MONTHS:\n $yearsPicker.addClass(CLASS_HIDE);\n $daysPicker.addClass(CLASS_HIDE);\n\n if (format.hasMonth) {\n this.renderMonths();\n $monthsPicker.removeClass(CLASS_HIDE);\n this.place();\n } else {\n this.showView(VIEWS.YEARS);\n }\n\n break;\n // case VIEWS.DAYS:\n\n default:\n $yearsPicker.addClass(CLASS_HIDE);\n $monthsPicker.addClass(CLASS_HIDE);\n\n if (format.hasDay) {\n this.renderDays();\n $daysPicker.removeClass(CLASS_HIDE);\n this.place();\n } else {\n this.showView(VIEWS.MONTHS);\n }\n\n }\n }\n }\n }, {\n key: \"hideView\",\n value: function hideView() {\n if (!this.inline && this.options.autoHide) {\n this.hide();\n }\n }\n }, {\n key: \"place\",\n value: function place() {\n if (this.inline) {\n return;\n }\n\n var $this = this.$element,\n options = this.options,\n $picker = this.$picker;\n var containerWidth = $(document).outerWidth();\n var containerHeight = $(document).outerHeight();\n var elementWidth = $this.outerWidth();\n var elementHeight = $this.outerHeight();\n var width = $picker.width();\n var height = $picker.height();\n\n var _$this$offset = $this.offset(),\n left = _$this$offset.left,\n top = _$this$offset.top;\n\n var offset = parseFloat(options.offset);\n var placement = CLASS_TOP_LEFT;\n\n if (isNaN(offset)) {\n offset = 10;\n }\n\n if (top > height && top + elementHeight + height > containerHeight) {\n top -= height + offset;\n placement = CLASS_BOTTOM_LEFT;\n } else {\n top += elementHeight + offset;\n }\n\n if (left + width > containerWidth) {\n left += elementWidth - width;\n placement = placement.replace('left', 'right');\n }\n\n $picker.removeClass(CLASS_PLACEMENTS).addClass(placement).css({\n top: top,\n left: left\n });\n } // A shortcut for triggering custom events\n\n }, {\n key: \"trigger\",\n value: function trigger(type, data) {\n var e = $.Event(type, data);\n this.$element.trigger(e);\n return e;\n }\n }, {\n key: \"createItem\",\n value: function createItem(data) {\n var options = this.options;\n var itemTag = options.itemTag;\n var item = {\n text: '',\n view: '',\n muted: false,\n picked: false,\n disabled: false,\n highlighted: false\n };\n var classes = [];\n $.extend(item, data);\n\n if (item.muted) {\n classes.push(options.mutedClass);\n }\n\n if (item.highlighted) {\n classes.push(options.highlightedClass);\n }\n\n if (item.picked) {\n classes.push(options.pickedClass);\n }\n\n if (item.disabled) {\n classes.push(options.disabledClass);\n }\n\n return \"<\".concat(itemTag, \" class=\\\"\").concat(classes.join(' '), \"\\\" data-view=\\\"\").concat(item.view, \"\\\">\").concat(item.text, \"\");\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n var $this = this.$element;\n return this.isInput ? $this.val() : $this.text();\n }\n }, {\n key: \"setValue\",\n value: function setValue() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var $this = this.$element;\n\n if (this.isInput) {\n $this.val(value);\n } else if (!this.inline || this.options.container) {\n $this.text(value);\n }\n }\n }], [{\n key: \"setDefaults\",\n value: function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n $.extend(DEFAULTS, LANGUAGES[options.language], $.isPlainObject(options) && options);\n }\n }]);\n\n return Datepicker;\n}();\n\nif ($.extend) {\n $.extend(Datepicker.prototype, render, handlers, methods);\n}\n\nif ($.fn) {\n var AnotherDatepicker = $.fn.datepicker;\n\n $.fn.datepicker = function jQueryDatepicker(option) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var result;\n this.each(function (i, element) {\n var $element = $(element);\n var isDestroy = option === 'destroy';\n var datepicker = $element.data(NAMESPACE);\n\n if (!datepicker) {\n if (isDestroy) {\n return;\n }\n\n var options = $.extend({}, $element.data(), $.isPlainObject(option) && option);\n datepicker = new Datepicker(element, options);\n $element.data(NAMESPACE, datepicker);\n }\n\n if (isString(option)) {\n var fn = datepicker[option];\n\n if ($.isFunction(fn)) {\n result = fn.apply(datepicker, args);\n\n if (isDestroy) {\n $element.removeData(NAMESPACE);\n }\n }\n }\n });\n return !isUndefined(result) ? result : this;\n };\n\n $.fn.datepicker.Constructor = Datepicker;\n $.fn.datepicker.languages = LANGUAGES;\n $.fn.datepicker.setDefaults = Datepicker.setDefaults;\n\n $.fn.datepicker.noConflict = function noConflict() {\n $.fn.datepicker = AnotherDatepicker;\n return this;\n };\n}"],"sourceRoot":""}