-
-
Notifications
You must be signed in to change notification settings - Fork 7
/
heat.min.js
1 lines (1 loc) · 61 KB
/
heat.min.js
1
"use strict";var Constant,Is,Default2,Str,Str2,DateTime,DomElement,ToolTip,Trigger,Binding,Config,Disabled;(Constant||(Constant={})).HEAT_JS_ATTRIBUTE_NAME="data-heat-js",(e=>{function t(e){return null!=e&&""!==e.toString()}function n(e){return t(e)&&"object"==typeof e}function o(e){return n(e)&&e instanceof Array}e.defined=t,e.definedObject=n,e.definedBoolean=function(e){return t(e)&&"boolean"==typeof e},e.definedString=function(e){return t(e)&&"string"==typeof e},e.definedFunction=function(e){return t(e)&&"function"==typeof e},e.definedNumber=function(e){return t(e)&&"number"==typeof e},e.definedArray=o,e.definedDate=function(e){return n(e)&&e instanceof Date},e.invalidOptionArray=function(e,t=1){return!o(e)||e.length<t}})(Is||(Is={})),(Default=>{function getAnyString(e,t){return"string"==typeof e?e:t}function getString(e,t){return Is.definedString(e)?e:t}function getBoolean(e,t){return Is.definedBoolean(e)?e:t}function getNumber(e,t){return Is.definedNumber(e)?e:t}function getFunction(e,t){return Is.definedFunction(e)?e:t}function getArray(e,t){return Is.definedArray(e)?e:t}function getObject(e,t){return Is.definedObject(e)?e:t}function getStringOrArray(e,t){let n=t;if(Is.definedString(e)){const o=e.toString().split(" ");0===o.length?e=t:n=o}else n=getArray(e,t);return n}function getObjectFromString(objectString,configuration){const result={parsed:!0,object:null};try{Is.definedString(objectString)&&(result.object=JSON.parse(objectString))}catch(e1){try{result.object=eval(`(${objectString})`),Is.definedFunction(result.object)&&(result.object=result.object())}catch(e){configuration.safeMode||(console.error(configuration.text.objectErrorText.replace("{{error_1}}",e1.message).replace("{{error_2}}",e.message)),result.parsed=!1),result.object=null}}return result}Default.getAnyString=getAnyString,Default.getString=getString,Default.getBoolean=getBoolean,Default.getNumber=getNumber,Default.getFunction=getFunction,Default.getArray=getArray,Default.getObject=getObject,Default.getStringOrArray=getStringOrArray,Default.getObjectFromString=getObjectFromString})(Default2||(Default2={})),Str2=Str||(Str={}),Str2.padNumber=function(e){const t=e.toString();return 1===t.length?"0"+t:t},Str2.startsWithAnyCase=function(e,t){return e.substring(0,t.length).toLowerCase()===t.toLowerCase()},(e=>{function t(e){return e.getDay()-1<0?6:e.getDay()-1}function n(e,t){let n=e.text.thText;return 31===t||21===t||1===t?n=e.text.stText:22===t||2===t?n=e.text.ndText:23!==t&&3!==t||(n=e.text.rdText),n}e.getTotalDaysInMonth=function(e,t){return new Date(e,t+1,0).getDate()},e.getWeekdayNumber=t,e.getDayOrdinal=n,e.getCustomFormattedDateText=function(e,o,r){let i=o;const s=t(r);return i=i.replace("{dddd}",e.text.dayNames[s]),i=i.replace("{dd}",Str.padNumber(r.getDate())),i=i.replace("{d}",r.getDate().toString()),i=i.replace("{o}",n(e,r.getDate())),i=i.replace("{mmmm}",e.text.monthNames[r.getMonth()]),i=i.replace("{mm}",Str.padNumber(r.getMonth()+1)),i=i.replace("{m}",(r.getMonth()+1).toString()),i=i.replace("{yyyy}",r.getFullYear().toString()),i=i.replace("{yyy}",r.getFullYear().toString().substring(1)),i=i.replace("{yy}",r.getFullYear().toString().substring(2)),i=i.replace("{y}",parseInt(r.getFullYear().toString().substring(2)).toString()),i},e.toStorageDate=function(e){return e.getFullYear()+"-"+Str.padNumber(e.getMonth()+1)+"-"+Str.padNumber(e.getDate())},e.getStorageDate=function(e){return e.split("-")},e.getStorageDateYear=function(e){return e.split("-")[0]}})(DateTime||(DateTime={})),(e=>{function t(e,t,n="",o=null){const r=t.toLowerCase();let i="text"===r?document.createTextNode(""):document.createElement(r);return Is.defined(n)&&(i.className=n),Is.defined(o)?e.insertBefore(i,o):e.appendChild(i),i}function n(e,n,o,r,i=null){const s=t(e,n,o,i);return s.innerHTML=r,s}function o(){const e=document.documentElement;return{left:e.scrollLeft-(e.clientLeft||0),top:e.scrollTop-(e.clientTop||0)}}e.createWithNoContainer=function(e){const t=e.toLowerCase();return"text"===t?document.createTextNode(""):document.createElement(t)},e.create=t,e.createWithHTML=n,e.getStyleValueByName=function(e,t,n=!1){let o=getComputedStyle(e).getPropertyValue(t);return n&&(o=parseFloat(o)),o},e.addClass=function(e,t){e.classList.add(t)},e.removeClass=function(e,t){e.classList.remove(t)},e.cancelBubble=function(e){e.preventDefault(),e.stopPropagation()},e.getScrollPosition=o,e.showElementAtMousePosition=function(e,t){let n=e.pageX,r=e.pageY;const i=o();t.style.display="block",n+t.offsetWidth>window.innerWidth?n-=t.offsetWidth:n++,r+t.offsetHeight>window.innerHeight?r-=t.offsetHeight:r++,n<i.left&&(n=e.pageX+1),r<i.top&&(r=e.pageY+1),t.style.left=`${n}px`,t.style.top=`${r}px`},e.reverseChildrenOrder=function(e){const t=e.children;let n=t.length-1;for(;n--;)e.appendChild(t[n])},e.createCheckBox=function(e,o,r){const i=t(e,"div"),s=t(i,"label","checkbox"),a=t(s,"input");return a.type="checkbox",a.name=r,t(s,"span","check-mark"),n(s,"span","text",o),a}})(DomElement||(DomElement={})),(e=>{function t(e,t=!0){let n=t?window.addEventListener:window.removeEventListener,r=t?document.addEventListener:document.removeEventListener;n("mousemove",(()=>o(e))),r("scroll",(()=>o(e)))}function n(e,t,n){DomElement.cancelBubble(e),o(t),t._currentView.tooltipTimer=setTimeout((()=>{t._currentView.tooltip.innerHTML=n,t._currentView.tooltip.style.display="block",DomElement.showElementAtMousePosition(e,t._currentView.tooltip)}),t.tooltip.delay)}function o(e){Is.defined(e._currentView.tooltip)&&(0!==e._currentView.tooltipTimer&&(clearTimeout(e._currentView.tooltipTimer),e._currentView.tooltipTimer=0),"none"!==e._currentView.tooltip.style.display&&(e._currentView.tooltip.style.display="none"))}e.renderControl=function(e){Is.defined(e._currentView.tooltip)||(e._currentView.tooltip=DomElement.create(document.body,"div","heat-js-tooltip"),e._currentView.tooltip.style.display="none",t(e))},e.assignToEvents=t,e.add=function(e,t,o){null!==e&&(e.onmousemove=e=>n(e,t,o))},e.show=n,e.hide=o})(ToolTip||(ToolTip={})),(Trigger||(Trigger={})).customEvent=function(e,...t){let n=null;return Is.definedFunction(e)&&(n=e.apply(null,[].slice.call(t,0))),n},(e=>{let t;(e=>{const t=[1,2,3,4,5,6,7,8,9,10,11,12],n=[1,2,3,4,5,6,7];function o(e){const o=Default2.getObject(e,{});return o.views=Default2.getObject(o.views,{}),o.exportOnlyYearBeingViewed=Default2.getBoolean(o.exportOnlyYearBeingViewed,!0),o.year=Default2.getNumber(o.year,(new Date).getFullYear()),o.view=Default2.getString(o.view,"map"),o.exportType=Default2.getString(o.exportType,"csv"),o.useLocalStorageForData=Default2.getBoolean(o.useLocalStorageForData,!1),o.allowFileImports=Default2.getBoolean(o.allowFileImports,!0),o.yearsToHide=Default2.getArray(o.yearsToHide,[]),o.dataFetchDelay=Default2.getNumber(o.dataFetchDelay,6e4),o.showOnlyDataForYearsAvailable=Default2.getBoolean(o.showOnlyDataForYearsAvailable,!1),o.showHolidaysInDayToolTips=Default2.getBoolean(o.showHolidaysInDayToolTips,!1),o.colorRanges=function(e){let t=[];if(Is.definedArray(e.colorRanges)){const n=e.colorRanges.length;for(let o=0;o<n;o++){const n=e.colorRanges[o];n.id=Default2.getString(n.id,crypto.randomUUID()),n.name=Default2.getString(n.name,""),n.minimum=Default2.getNumber(n.minimum,0),n.cssClassName=Default2.getString(n.cssClassName,""),n.mapCssClassName=Default2.getString(n.mapCssClassName,""),n.chartCssClassName=Default2.getString(n.chartCssClassName,""),n.statisticsCssClassName=Default2.getString(n.statisticsCssClassName,""),n.tooltipText=Default2.getString(n.tooltipText,""),n.visible=Default2.getBoolean(n.visible,!0),t.push(n)}}else t=[{id:crypto.randomUUID(),name:"Day Color 1",minimum:10,cssClassName:"day-color-1",tooltipText:"Day Color 1",visible:!0},{id:crypto.randomUUID(),name:"Day Color 2",minimum:15,cssClassName:"day-color-2",tooltipText:"Day Color 2",visible:!0},{id:crypto.randomUUID(),name:"Day Color 3",minimum:20,cssClassName:"day-color-3",tooltipText:"Day Color 3",visible:!0},{id:crypto.randomUUID(),name:"Day Color 4",minimum:25,cssClassName:"day-color-4",tooltipText:"Day Color 4",visible:!0}];return t}(o),o.holidays=function(e){let t=[];if(Is.definedArray(e.holidays)){const n=e.holidays.length;for(let o=0;o<n;o++){const n=e.holidays[o];n.date=Default2.getString(n.date,""),n.name=Default2.getString(n.name,""),n.showInViews=Default2.getBoolean(n.showInViews,!0),t.push(n)}}return t}(o),o.title=function(e){return e.title=Default2.getObject(e.title,{}),e.title.text=Default2.getString(e.title.text,"Heat.js"),e.title.showText=Default2.getBoolean(e.title.showText,!0),e.title.showYearSelector=Default2.getBoolean(e.title.showYearSelector,!0),e.title.showRefreshButton=Default2.getBoolean(e.title.showRefreshButton,!1),e.title.showExportButton=Default2.getBoolean(e.title.showExportButton,!1),e.title.extraSelectionYears=Default2.getNumber(e.title.extraSelectionYears,50),e.title.showYearSelectionDropDown=Default2.getBoolean(e.title.showYearSelectionDropDown,!0),e.title.showImportButton=Default2.getBoolean(e.title.showImportButton,!1),e.title.showConfigurationButton=Default2.getBoolean(e.title.showConfigurationButton,!0),e.title.showTitleDropDownButton=Default2.getBoolean(e.title.showTitleDropDownButton,!0),e.title.showTitleDropDownHeaders=Default2.getBoolean(e.title.showTitleDropDownHeaders,!0),e.title.showCurrentYearButton=Default2.getBoolean(e.title.showCurrentYearButton,!0),e.title}(o),o.description=function(e){return e.description=Default2.getObject(e.description,{}),e.description.text=Default2.getString(e.description.text,""),e.description.url=Default2.getString(e.description.url,""),e.description.urlTarget=Default2.getString(e.description.urlTarget,"_blank"),e.description}(o),o.guide=function(e){return e.guide=Default2.getObject(e.guide,{}),e.guide.enabled=Default2.getBoolean(e.guide.enabled,!0),e.guide.colorRangeTogglesEnabled=Default2.getBoolean(e.guide.colorRangeTogglesEnabled,!0),e.guide.showLessAndMoreLabels=Default2.getBoolean(e.guide.showLessAndMoreLabels,!0),e.guide.showNumbersInGuide=Default2.getBoolean(e.guide.showNumbersInGuide,!1),e.guide}(o),o.tooltip=function(e){return e.tooltip=Default2.getObject(e.tooltip,{}),e.tooltip.delay=Default2.getNumber(e.tooltip.delay,750),e.tooltip.dayText=Default2.getString(e.tooltip.dayText,"{d}{o} {mmmm} {yyyy}"),e.tooltip}(o),o.views.map=function(e){e.views.map=Default2.getObject(e.views.map,{}),e.views.map.showMonthDayGaps=Default2.getBoolean(e.views.map.showMonthDayGaps,!0),e.views.map.showDayNames=Default2.getBoolean(e.views.map.showDayNames,!0),e.views.map.placeMonthNamesOnTheBottom=Default2.getBoolean(e.views.map.placeMonthNamesOnTheBottom,!1),e.views.map.showDayNumbers=Default2.getBoolean(e.views.map.showDayNumbers,!1),e.views.map.showMonthNames=Default2.getBoolean(e.views.map.showMonthNames,!0),e.views.map.showDaysInReverseOrder=Default2.getBoolean(e.views.map.showDaysInReverseOrder,!1),e.views.map.showNoDataMessageWhenDataIsNotAvailable=Default2.getBoolean(e.views.map.showNoDataMessageWhenDataIsNotAvailable,!1),e.views.map.showMinimalDayNames=Default2.getBoolean(e.views.map.showMinimalDayNames,!1),e.views.map.showMonthsInReverseOrder=Default2.getBoolean(e.views.map.showMonthsInReverseOrder,!1),e.views.map.keepScrollPositions=Default2.getBoolean(e.views.map.keepScrollPositions,!1),Is.invalidOptionArray(e.views.map.monthsToShow)&&(e.views.map.monthsToShow=t);Is.invalidOptionArray(e.views.map.daysToShow)&&(e.views.map.daysToShow=n);return e.views.map}(o),o.views.chart=function(e){e.views.chart=Default2.getObject(e.views.chart,{}),e.views.chart.enabled=Default2.getBoolean(e.views.chart.enabled,!0),e.views.chart.showChartYLabels=Default2.getBoolean(e.views.chart.showChartYLabels,!0),e.views.chart.showMonthNames=Default2.getBoolean(e.views.chart.showMonthNames,!0),e.views.chart.showLineNumbers=Default2.getBoolean(e.views.chart.showLineNumbers,!1),e.views.chart.showInReverseOrder=Default2.getBoolean(e.views.chart.showInReverseOrder,!1),e.views.chart.keepScrollPositions=Default2.getBoolean(e.views.chart.keepScrollPositions,!1),Is.invalidOptionArray(e.views.chart.monthsToShow)&&(e.views.chart.monthsToShow=t);Is.invalidOptionArray(e.views.chart.daysToShow)&&(e.views.chart.daysToShow=n);return e.views.chart}(o),o.views.days=function(e){e.views.days=Default2.getObject(e.views.days,{}),e.views.days.enabled=Default2.getBoolean(e.views.days.enabled,!0),e.views.days.showChartYLabels=Default2.getBoolean(e.views.days.showChartYLabels,!0),e.views.days.showDayNames=Default2.getBoolean(e.views.days.showDayNames,!0),e.views.days.showInReverseOrder=Default2.getBoolean(e.views.days.showInReverseOrder,!1),e.views.days.showDayNumbers=Default2.getBoolean(e.views.days.showDayNumbers,!1),e.views.days.keepScrollPositions=Default2.getBoolean(e.views.days.keepScrollPositions,!1),Is.invalidOptionArray(e.views.days.monthsToShow)&&(e.views.days.monthsToShow=t);Is.invalidOptionArray(e.views.days.daysToShow)&&(e.views.days.daysToShow=n);return e.views.days}(o),o.views.statistics=function(e){e.views.statistics=Default2.getObject(e.views.statistics,{}),e.views.statistics.enabled=Default2.getBoolean(e.views.statistics.enabled,!0),e.views.statistics.showChartYLabels=Default2.getBoolean(e.views.statistics.showChartYLabels,!0),e.views.statistics.showColorRangeLabels=Default2.getBoolean(e.views.statistics.showColorRangeLabels,!0),e.views.statistics.useColorRangeNamesForLabels=Default2.getBoolean(e.views.statistics.useColorRangeNamesForLabels,!1),e.views.statistics.showRangeNumbers=Default2.getBoolean(e.views.statistics.showRangeNumbers,!1),e.views.statistics.showInReverseOrder=Default2.getBoolean(e.views.statistics.showInReverseOrder,!1),e.views.statistics.keepScrollPositions=Default2.getBoolean(e.views.statistics.keepScrollPositions,!1),Is.invalidOptionArray(e.views.statistics.monthsToShow)&&(e.views.statistics.monthsToShow=t);Is.invalidOptionArray(e.views.statistics.daysToShow)&&(e.views.statistics.daysToShow=n);return e.views.statistics}(o),o.events=function(e){return e.events=Default2.getObject(e.events,{}),e.events.onDayClick=Default2.getFunction(e.events.onDayClick,null),e.events.onBackYear=Default2.getFunction(e.events.onBackYear,null),e.events.onNextYear=Default2.getFunction(e.events.onNextYear,null),e.events.onRefresh=Default2.getFunction(e.events.onRefresh,null),e.events.onBeforeRender=Default2.getFunction(e.events.onBeforeRender,null),e.events.onRenderComplete=Default2.getFunction(e.events.onRenderComplete,null),e.events.onDestroy=Default2.getFunction(e.events.onDestroy,null),e.events.onExport=Default2.getFunction(e.events.onExport,null),e.events.onSetYear=Default2.getFunction(e.events.onSetYear,null),e.events.onTypeSwitch=Default2.getFunction(e.events.onTypeSwitch,null),e.events.onDayToolTipRender=Default2.getFunction(e.events.onDayToolTipRender,null),e.events.onAdd=Default2.getFunction(e.events.onAdd,null),e.events.onRemove=Default2.getFunction(e.events.onRemove,null),e.events.onReset=Default2.getFunction(e.events.onReset,null),e.events.onViewSwitch=Default2.getFunction(e.events.onViewSwitch,null),e.events.onColorRangeTypeToggle=Default2.getFunction(e.events.onColorRangeTypeToggle,null),e.events.onImport=Default2.getFunction(e.events.onImport,null),e.events.onStatisticClick=Default2.getFunction(e.events.onStatisticClick,null),e.events.onDataFetch=Default2.getFunction(e.events.onDataFetch,null),e.events.onClear=Default2.getFunction(e.events.onClear,null),e.events.onUpdate=Default2.getFunction(e.events.onUpdate,null),e.events.onOptionsUpdate=Default2.getFunction(e.events.onOptionsUpdate,null),e.events.onWeekDayClick=Default2.getFunction(e.events.onWeekDayClick,null),e.events}(o),o}e.getForNewInstance=function(e,t,n){const r=o(t),i=Default2.getString(r.view,"").toLowerCase();return r._currentView={},r._currentView.element=n,r._currentView.disabledBackground=null,r._currentView.configurationDialog=null,r._currentView.dayCheckBoxes=[],r._currentView.monthCheckBoxes=[],r._currentView.tooltip=null,r._currentView.tooltipTimer=0,r._currentView.mapContents=null,r._currentView.mapContentsScrollLeft=0,r._currentView.year=r.year,r._currentView.type=e.text.unknownTrendText,r._currentView.isInFetchMode=Is.definedFunction(r.events.onDataFetch),r._currentView.isInFetchModeTimer=0,r._currentView.yearsAvailable=[],r._currentView.dayWidth=0,r.views.chart.enabled&&(r._currentView.chartContents=null,r._currentView.chartContentsScrollLeft=0),r.views.days.enabled&&(r._currentView.daysContents=null,r._currentView.daysContentsScrollLeft=0),r.views.statistics.enabled&&(r._currentView.statisticsContents=null,r._currentView.statisticsContentsScrollLeft=0),r._currentView.view="map"===i?1:"chart"===i?2:"days"===i?3:"statistics"===i?4:1,r},e.get=o})(t=e.Options||(e.Options={}))})(Binding||(Binding={})),(e=>{let t;(t=e.Options||(e.Options={})).get=function(e=null){const t=Default2.getObject(e,{});return t.safeMode=Default2.getBoolean(t.safeMode,!0),t.domElementTypes=Default2.getStringOrArray(t.domElementTypes,["*"]),t.text=function(e){return e.text=Default2.getObject(e.text,{}),e.text.stText=Default2.getAnyString(e.text.stText,"st"),e.text.ndText=Default2.getAnyString(e.text.ndText,"nd"),e.text.rdText=Default2.getAnyString(e.text.rdText,"rd"),e.text.thText=Default2.getAnyString(e.text.thText,"th"),e.text.backButtonText=Default2.getAnyString(e.text.backButtonText,"Back"),e.text.nextButtonText=Default2.getAnyString(e.text.nextButtonText,"Next"),e.text.refreshButtonText=Default2.getAnyString(e.text.refreshButtonText,"Refresh"),e.text.exportButtonText=Default2.getAnyString(e.text.exportButtonText,"Export"),e.text.lessText=Default2.getAnyString(e.text.lessText,"Less"),e.text.moreText=Default2.getAnyString(e.text.moreText,"More"),e.text.dateText=Default2.getAnyString(e.text.dateText,"Date"),e.text.countText=Default2.getAnyString(e.text.countText,"Count"),e.text.mapText=Default2.getAnyString(e.text.mapText,"Map"),e.text.chartText=Default2.getAnyString(e.text.chartText,"Chart"),e.text.noChartDataMessage=Default2.getAnyString(e.text.noChartDataMessage,"There is currently no data to view."),e.text.statisticsText=Default2.getAnyString(e.text.statisticsText,"Statistics"),e.text.noStatisticsDataMessage=Default2.getAnyString(e.text.noStatisticsDataMessage,"There are currently no statistics to view."),e.text.unknownTrendText=Default2.getAnyString(e.text.unknownTrendText,"Unknown"),e.text.importButtonText=Default2.getAnyString(e.text.importButtonText,"Import"),e.text.noMapDataMessage=Default2.getAnyString(e.text.noMapDataMessage,"There is currently no data to view."),e.text.objectErrorText=Default2.getAnyString(e.text.objectErrorText,"Errors in object: {{error_1}}, {{error_2}}"),e.text.attributeNotValidErrorText=Default2.getAnyString(e.text.attributeNotValidErrorText,"The attribute '{{attribute_name}}' is not a valid object."),e.text.attributeNotSetErrorText=Default2.getAnyString(e.text.attributeNotSetErrorText,"The attribute '{{attribute_name}}' has not been set correctly."),e.text.closeToolTipText=Default2.getAnyString(e.text.closeToolTipText,"Close"),e.text.configurationToolTipText=Default2.getAnyString(e.text.configurationToolTipText,"Configuration"),e.text.configurationTitleText=Default2.getAnyString(e.text.configurationTitleText,"Configuration"),e.text.visibleMonthsText=Default2.getAnyString(e.text.visibleMonthsText,"Visible Months"),e.text.visibleDaysText=Default2.getAnyString(e.text.visibleDaysText,"Visible Days"),e.text.dataText=Default2.getAnyString(e.text.dataText,"Data"),e.text.colorRangesText=Default2.getAnyString(e.text.colorRangesText,"Color Ranges"),e.text.yearText=Default2.getAnyString(e.text.yearText,"Year"),e.text.daysText=Default2.getAnyString(e.text.daysText,"Days"),e.text.noDaysDataMessage=Default2.getAnyString(e.text.noDaysDataMessage,"There are currently no days to view."),e.text.backButtonSymbolText=Default2.getAnyString(e.text.backButtonSymbolText,"←"),e.text.nextButtonSymbolText=Default2.getAnyString(e.text.nextButtonSymbolText,"→"),e.text.refreshButtonSymbolText=Default2.getAnyString(e.text.refreshButtonSymbolText,"↻"),e.text.exportButtonSymbolText=Default2.getAnyString(e.text.exportButtonSymbolText,"↓"),e.text.importButtonSymbolText=Default2.getAnyString(e.text.importButtonSymbolText,"↑"),e.text.currentYearText=Default2.getAnyString(e.text.currentYearText,"Current Year"),e.text.currentYearSymbolText=Default2.getAnyString(e.text.currentYearSymbolText,"⏎"),e.text}(t),t.text=(n=t.text,Is.invalidOptionArray(n.monthNames,12)&&(n.monthNames=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),Is.invalidOptionArray(n.dayNames,7)&&(n.dayNames=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]),n),t;var n}})(Config||(Config={})),(e=>{let t;var n;(n=t=e.Background||(e.Background={})).render=function(e){e._currentView.disabledBackground=DomElement.create(e._currentView.element,"div","disabled")},n.show=function(e){Is.defined(e._currentView.disabledBackground)&&"block"!==e._currentView.disabledBackground.style.display&&(e._currentView.disabledBackground.style.display="block")},n.hide=function(e){Is.defined(e._currentView.disabledBackground)&&"none"!==e._currentView.disabledBackground.style.display&&(e._currentView.disabledBackground.style.display="none")}})(Disabled||(Disabled={})),(()=>{let e={},t={};const n="HOLIDAY",o="HJS_";function r(){const t=e.domElementTypes,n=t.length;for(let e=0;e<n;e++){const n=document.getElementsByTagName(t[e]),o=[].slice.call(n),r=o.length;for(let e=0;e<r&&i(o[e]);e++);}}function i(t){let n=!0;if(Is.defined(t)&&t.hasAttribute(Constant.HEAT_JS_ATTRIBUTE_NAME)){const o=t.getAttribute(Constant.HEAT_JS_ATTRIBUTE_NAME);if(Is.definedString(o)){const r=Default2.getObjectFromString(o,e);r.parsed&&Is.definedObject(r.object)?s(Binding.Options.getForNewInstance(e,r.object,t)):e.safeMode||(console.error(e.text.attributeNotValidErrorText.replace("{{attribute_name}}",Constant.HEAT_JS_ATTRIBUTE_NAME)),n=!1)}else e.safeMode||(console.error(e.text.attributeNotSetErrorText.replace("{{attribute_name}}",Constant.HEAT_JS_ATTRIBUTE_NAME)),n=!1)}return n}function s(e){Trigger.customEvent(e.events.onBeforeRender,e._currentView.element),Is.definedString(e._currentView.element.id)||(e._currentView.element.id=crypto.randomUUID()),""===e._currentView.element.className.trim()?e._currentView.element.className="heat-js":DomElement.addClass(e._currentView.element,"heat-js"),e._currentView.element.removeAttribute(Constant.HEAT_JS_ATTRIBUTE_NAME),p(e._currentView.element.id,e),a(e),Trigger.customEvent(e.events.onRenderComplete,e._currentView.element)}function a(n,r=!1,i=!1){r&&function(e){if(e.useLocalStorageForData&&window.localStorage){const n=e._currentView.element.id;!function(e){if(e.useLocalStorageForData&&window.localStorage){const t=window.localStorage.length,n=[],r=e._currentView.element.id;for(let e=0;e<t;e++)Str.startsWithAnyCase(window.localStorage.key(e),o+r)&&n.push(window.localStorage.key(e));const i=n.length;for(let e=0;e<i;e++)window.localStorage.removeItem(n[e])}}(e);const r=JSON.stringify(t[n].typeData);window.localStorage.setItem(o+n,r)}}(n),Is.defined(n._currentView.mapContents)&&(n._currentView.mapContentsScrollLeft=n._currentView.mapContents.scrollLeft),n.views.chart.enabled&&Is.defined(n._currentView.chartContents)&&(n._currentView.chartContentsScrollLeft=n._currentView.chartContents.scrollLeft),n.views.days.enabled&&Is.defined(n._currentView.daysContents)&&(n._currentView.daysContentsScrollLeft=n._currentView.daysContents.scrollLeft),n.views.statistics.enabled&&Is.defined(n._currentView.statisticsContents)&&(n._currentView.statisticsContentsScrollLeft=n._currentView.statisticsContents.scrollLeft),n._currentView.element.innerHTML="",n._currentView.yearsAvailable=function(e){let t=[];if(e.showOnlyDataForYearsAvailable){let n=D(e);for(const e in n)if(n.hasOwnProperty(e)){let n=parseInt(DateTime.getStorageDateYear(e));-1===t.indexOf(n)&&t.push(n)}}return t=t.sort((function(e,t){return e-t})),t}(n),ToolTip.hide(n),function(e){e._currentView.isInFetchMode&&(0===e._currentView.isInFetchModeTimer&&V(e),0===e._currentView.isInFetchModeTimer&&(e._currentView.isInFetchModeTimer=setInterval((()=>{V(e),a(e)}),e.dataFetchDelay)))}(n),n.title.showConfigurationButton&&(Disabled.Background.render(n),function(t){t._currentView.configurationDialog=DomElement.create(t._currentView.disabledBackground,"div","dialog configuration");const n=DomElement.create(t._currentView.configurationDialog,"div","dialog-title-bar"),o=DomElement.create(t._currentView.configurationDialog,"div","dialog-contents"),r=DomElement.create(n,"div","dialog-close"),i=DomElement.create(o,"div","side-container panel"),s=DomElement.create(o,"div","side-container panel");DomElement.createWithHTML(n,"span","dialog-title-bar-text",e.text.configurationTitleText),DomElement.createWithHTML(i,"div","side-container-title-text",`${e.text.visibleDaysText}:`),DomElement.createWithHTML(s,"div","side-container-title-text",`${e.text.visibleMonthsText}:`);const l=DomElement.create(s,"div","side-container"),c=DomElement.create(s,"div","side-container");r.onclick=()=>function(e){Disabled.Background.hide(e),Is.defined(e._currentView.configurationDialog)&&"none"!==e._currentView.configurationDialog.style.display&&(e._currentView.configurationDialog.style.display="none");const t=[],n=[];let o=!1;for(let n=0;n<7;n++)e._currentView.dayCheckBoxes[n].checked&&t.push(n+1);for(let t=0;t<12;t++)e._currentView.monthCheckBoxes[t].checked&&n.push(t+1);t.length>=1&&(1===e._currentView.view?e.views.map.daysToShow=t:e.views.chart.enabled&&2===e._currentView.view?e.views.chart.daysToShow=t:e.views.days.enabled&&3===e._currentView.view?e.views.days.daysToShow=t:e.views.statistics.enabled&&4===e._currentView.view?e.views.statistics.daysToShow=t:e.views.map.daysToShow=t,o=!0);n.length>=1&&(1===e._currentView.view?e.views.map.monthsToShow=n:e.views.chart.enabled&&2===e._currentView.view?e.views.chart.monthsToShow=n:e.views.days.enabled&&3===e._currentView.view?e.views.days.monthsToShow=n:e.views.statistics.enabled&&4===e._currentView.view?e.views.statistics.monthsToShow=n:e.views.map.monthsToShow=n,o=!0);o?(a(e),Trigger.customEvent(e.events.onOptionsUpdate,e._currentView.element,e)):ToolTip.hide(e)}(t);for(let n=0;n<7;n++)t._currentView.dayCheckBoxes[n]=DomElement.createCheckBox(i,e.text.dayNames[n],n.toString());for(let n=0;n<7;n++)t._currentView.monthCheckBoxes[n]=DomElement.createCheckBox(l,e.text.monthNames[n],n.toString());for(let n=7;n<12;n++)t._currentView.monthCheckBoxes[n]=DomElement.createCheckBox(c,e.text.monthNames[n],n.toString());ToolTip.add(r,t,e.text.closeToolTipText)}(n)),ToolTip.renderControl(n),function(t){if(t.title.showText||t.title.showYearSelector||t.title.showRefreshButton||t.title.showExportButton||t.title.showImportButton){const n=DomElement.create(t._currentView.element,"div","title-bar"),o=DomElement.create(n,"div","title");if(t.views.chart.enabled||t.views.days.enabled||t.views.statistics.enabled?t.title.showTitleDropDownButton&&DomElement.create(o,"div","down-arrow"):DomElement.addClass(o,"no-click"),t.title.showText&&(o.innerHTML+=t.title.text),(t.views.chart.enabled||t.views.days.enabled||t.views.statistics.enabled)&&function(t,n){const o=DomElement.create(n,"div","titles-menu-container"),r=DomElement.create(o,"div","titles-menu");t.title.showTitleDropDownHeaders&&DomElement.createWithHTML(r,"div","title-menu-header",`${e.text.dataText}:`);const i=DomElement.createWithHTML(r,"div","title-menu-item",e.text.mapText);if(l(t,i,1,"map"),t.views.chart.enabled){l(t,DomElement.createWithHTML(r,"div","title-menu-item",e.text.chartText),2,"chart")}if(t.views.days.enabled){t.title.showTitleDropDownHeaders&&DomElement.createWithHTML(r,"div","title-menu-header",`${e.text.yearText}:`);l(t,DomElement.createWithHTML(r,"div","title-menu-item",e.text.daysText),3,"days")}if(t.views.statistics.enabled){t.title.showTitleDropDownHeaders&&DomElement.createWithHTML(r,"div","title-menu-header",`${e.text.statisticsText}:`);l(t,DomElement.createWithHTML(r,"div","title-menu-item",e.text.colorRangesText),4,"statistics")}}(t,o),t.title.showImportButton&&!t._currentView.isInFetchMode){const o=DomElement.createWithHTML(n,"button","import",e.text.importButtonSymbolText);o.onclick=()=>N(t),ToolTip.add(o,t,e.text.importButtonText)}if(t.title.showExportButton){const o=DomElement.createWithHTML(n,"button","export",e.text.exportButtonSymbolText);o.onclick=()=>H(t),ToolTip.add(o,t,e.text.exportButtonText)}if(t.title.showRefreshButton){const o=DomElement.createWithHTML(n,"button","refresh",e.text.refreshButtonSymbolText);ToolTip.add(o,t,e.text.refreshButtonText),o.onclick=()=>{a(t),Trigger.customEvent(t.events.onRefresh,t._currentView.element)}}if(t.title.showYearSelector){const o=DomElement.createWithHTML(n,"button","back",e.text.backButtonSymbolText);if(o.onclick=()=>Y(t),ToolTip.add(o,t,e.text.backButtonText),S(t,t._currentView.year)&&(o.disabled=!0),t._currentView.yearText=DomElement.createWithHTML(n,"div","year-text",t._currentView.year.toString()),t.title.showYearSelectionDropDown?function(e){DomElement.create(e._currentView.yearText,"div","down-arrow");const t=DomElement.create(e._currentView.yearText,"div","years-menu-container"),n=DomElement.create(t,"div","years-menu"),o=(new Date).getFullYear();let r=null;t.style.display="block",t.style.visibility="hidden";for(let t=o-e.title.extraSelectionYears;t<o+e.title.extraSelectionYears;t++)if(x(e,t)){let i=c(e,n,t,o);Is.defined(r)||(r=i)}Is.defined(r)&&(n.scrollTop=r.offsetTop-n.offsetHeight/2);t.style.display="none",t.style.visibility="visible"}(t):DomElement.addClass(t._currentView.yearText,"no-click"),t.title.showConfigurationButton){let o=DomElement.create(n,"div","configure");o.onclick=()=>function(e){Disabled.Background.show(e),Is.defined(e._currentView.configurationDialog)&&"block"!==e._currentView.configurationDialog.style.display&&(e._currentView.configurationDialog.style.display="block");let t=[],n=[];1===e._currentView.view?(t=e.views.map.daysToShow,n=e.views.map.monthsToShow):e.views.chart.enabled&&2===e._currentView.view?(t=e.views.chart.daysToShow,n=e.views.chart.monthsToShow):e.views.days.enabled&&3===e._currentView.view?(t=e.views.days.daysToShow,n=e.views.days.monthsToShow):e.views.statistics.enabled&&4===e._currentView.view?(t=e.views.statistics.daysToShow,n=e.views.statistics.monthsToShow):(t=e.views.map.daysToShow,n=e.views.map.monthsToShow);for(let n=0;n<7;n++)e._currentView.dayCheckBoxes[n].checked=T(t,n+1);for(let t=0;t<12;t++)e._currentView.monthCheckBoxes[t].checked=v(n,t);ToolTip.hide(e)}(t),ToolTip.add(o,t,e.text.configurationToolTipText)}if(t.title.showCurrentYearButton){const o=DomElement.createWithHTML(n,"button","current",e.text.currentYearSymbolText);ToolTip.add(o,t,e.text.currentYearText),o.onclick=()=>{t._currentView.year=(new Date).getFullYear()-1,j(t,!1),Trigger.customEvent(t.events.onSetYear,t._currentView.year)}}const r=DomElement.createWithHTML(n,"button","next",e.text.nextButtonSymbolText);r.onclick=()=>j(t),ToolTip.add(r,t,e.text.nextButtonText),b(t,t._currentView.year)&&(r.disabled=!0)}}}(n),function(n,o){n._currentView.mapContents=DomElement.create(n._currentView.element,"div","map-contents"),n.views.chart.enabled&&function(e){e._currentView.chartContents=DomElement.create(e._currentView.element,"div","chart-contents"),O(e._currentView.chartContents,e)}(n);n.views.days.enabled&&function(e){e._currentView.daysContents=DomElement.create(e._currentView.element,"div","days-contents"),O(e._currentView.daysContents,e)}(n);n.views.statistics.enabled&&function(e){e._currentView.statisticsContents=DomElement.create(e._currentView.element,"div","statistics-contents"),O(e._currentView.statisticsContents,e)}(n);if(function(n){const o=DomElement.create(n._currentView.element,"div","guide"),r=DomElement.create(o,"div","map-types");let i=0;for(const o in t[n._currentView.element.id].typeData[e.text.unknownTrendText])if(t[n._currentView.element.id].typeData[e.text.unknownTrendText].hasOwnProperty(o)){i++;break}if(t[n._currentView.element.id].totalTypes>1){if(Is.definedString(n.description.text)){const e=DomElement.create(n._currentView.element,"div","description",o);h(n,e)}for(const o in t[n._currentView.element.id].typeData)(o!==e.text.unknownTrendText||i>0)&&(0===i&&n._currentView.type===e.text.unknownTrendText&&(n._currentView.type=o),g(n,r,o))}else h(n,r);if(n.guide.enabled){const t=DomElement.create(o,"div","map-toggles");if(n.guide.showLessAndMoreLabels){let o=DomElement.createWithHTML(t,"div","less-text",e.text.lessText);n.guide.colorRangeTogglesEnabled?o.onclick=()=>C(n,!1):DomElement.addClass(o,"no-click")}const r=DomElement.create(t,"div","days"),i=M(n),s=i.length;for(let e=0;e<s;e++)f(n,r,i[e]);if(n.guide.showLessAndMoreLabels){const o=DomElement.createWithHTML(t,"div","more-text",e.text.moreText);n.guide.colorRangeTogglesEnabled?o.onclick=()=>C(n,!0):DomElement.addClass(o,"no-click")}}}(n),n.views.map.showNoDataMessageWhenDataIsNotAvailable&&!function(e){let t=!1;const n=D(e),o=e._currentView.year.toString();for(const e in n)if(n.hasOwnProperty(e)&&DateTime.getStorageDateYear(e)===o){t=!0;break}return t}(n)){const t=DomElement.createWithHTML(n._currentView.mapContents,"div","no-data-message",e.text.noMapDataMessage);o&&DomElement.addClass(t,"view-switch")}else{n._currentView.mapContents.style.minHeight="unset",O(n._currentView.mapContents,n);const t=DomElement.create(n._currentView.mapContents,"div","map"),r=n._currentView.year;let i=!1;if(o&&DomElement.addClass(t,"view-switch"),n.views.map.showDayNames){const o=DomElement.create(t,"div","days"),r=n.views.map.showMinimalDayNames&&7===n.views.map.daysToShow.length;n.views.map.showMonthNames&&!n.views.map.placeMonthNamesOnTheBottom||(o.className="days-months-bottom");for(let t=0;t<7;t++)if(T(n.views.map.daysToShow,t+1)){const n=r&&t%3!=0?" ":e.text.dayNames[t];DomElement.createWithHTML(o,"div","day-name",n)}n.views.map.showDaysInReverseOrder&&DomElement.reverseChildrenOrder(o)}const s=DomElement.create(t,"div","months"),a=M(n);for(let t=0;t<12;t++)if(v(n.views.map.monthsToShow,t)){const o=DomElement.create(s,"div","month"),l=DomElement.create(o,"div","day-columns");let c=DateTime.getTotalDaysInMonth(r,t),d=DomElement.create(l,"div","day-column"),m=!1;const w=new Date(r,t,1),g=DateTime.getWeekdayNumber(w);let f=1;c+=g;for(let e=0;e<c;e++){if(e>=g?m=!0:T(n.views.map.daysToShow,f)&&DomElement.create(d,"div","day-disabled"),m){let o=null;if(T(n.views.map.daysToShow,f)&&(o=u(n,d,e-g,t,r,a)),(e+1)%7==0&&(n.views.map.showDaysInReverseOrder&&DomElement.reverseChildrenOrder(d),d=DomElement.create(l,"div","day-column"),f=0,0===n._currentView.dayWidth&&Is.defined(o))){let e=DomElement.getStyleValueByName(o,"margin-left",!0),t=DomElement.getStyleValueByName(o,"margin-right",!0);n._currentView.dayWidth=o.offsetWidth+e+t}}f++}if(n.views.map.showMonthNames){let r;const i=o.offsetWidth;r=n.views.map.placeMonthNamesOnTheBottom?DomElement.createWithHTML(o,"div","month-name-bottom",e.text.monthNames[t]):DomElement.createWithHTML(o,"div","month-name",e.text.monthNames[t],l),Is.defined(r)&&(n.views.map.showMonthDayGaps?r.style.width=`${i}px`:r.style.width=i-n._currentView.dayWidth+"px")}i&&Is.defined(n._currentView.dayWidth)&&(g>0&&!n.views.map.showMonthDayGaps?o.style.marginLeft=-n._currentView.dayWidth+"px":0===g&&n.views.map.showMonthDayGaps&&(o.style.marginLeft=`${n._currentView.dayWidth}px`)),n.views.map.showMonthsInReverseOrder&&DomElement.reverseChildrenOrder(l),i=!0}n.views.map.showMonthsInReverseOrder&&DomElement.reverseChildrenOrder(s),n.views.map.keepScrollPositions&&(n._currentView.mapContents.scrollLeft=n._currentView.mapContentsScrollLeft)}}(n,i),n.views.chart.enabled&&(!function(t,n){const o=DomElement.create(t._currentView.chartContents,"div","chart");let r=DomElement.create(o,"div","y-labels");const i=DomElement.create(o,"div","day-lines"),s=M(t),a=function(e){let t=0;const n=D(e);for(let o=0;o<12;o++){const r=DateTime.getTotalDaysInMonth(e._currentView.year,o);for(let i=0;i<r;i++){const r=new Date(e._currentView.year,o,i+1),s=DateTime.toStorageDate(r),a=DateTime.getWeekdayNumber(r);n.hasOwnProperty(s)&&v(e.views.chart.monthsToShow,o)&&T(e.views.chart.daysToShow,a)&&(t=Math.max(t,n[s]))}}return t}(t),l=t._currentView.year;let c=0;n&&DomElement.addClass(o,"view-switch");if(a>0&&t.views.chart.showChartYLabels){const e=DomElement.createWithHTML(r,"div","label-0",a.toString());DomElement.createWithHTML(r,"div","label-25",(3*Math.floor(a/4)).toString()),DomElement.createWithHTML(r,"div","label-50",Math.floor(a/2).toString()),DomElement.createWithHTML(r,"div","label-75",Math.floor(a/4).toString()),DomElement.createWithHTML(r,"div","label-100","0"),r.style.width=`${e.offsetWidth}px`,c=r.offsetWidth+DomElement.getStyleValueByName(r,"margin-right",!0)}else r.parentNode.removeChild(r),r=null;if(0===a){t._currentView.chartContents.style.minHeight=`${t._currentView.mapContents.offsetHeight}px`,o.parentNode.removeChild(o);const r=DomElement.createWithHTML(t._currentView.chartContents,"div","no-data-message",e.text.noChartDataMessage);n&&DomElement.addClass(r,"view-switch")}else{const n=t._currentView.mapContents.offsetHeight/a;let o=0,r=0;for(let e=0;e<12;e++)if(v(t.views.chart.monthsToShow,e)){const a=DateTime.getTotalDaysInMonth(l,e);let c=1;o++;for(let o=0;o<a;o++)T(t.views.chart.daysToShow,c)&&d(i,t,o+1,e,l,s,n),(o+1)%7==0&&(c=0),c++,r++}if(t.views.chart.showInReverseOrder&&DomElement.reverseChildrenOrder(i),t.views.chart.showMonthNames){const n=DomElement.create(t._currentView.chartContents,"div","chart-months"),r=i.offsetWidth/o;let s=0;const a=o=>{if(v(t.views.chart.monthsToShow,o)){DomElement.createWithHTML(n,"div","month-name",e.text.monthNames[o]).style.left=`${c+r*s}px`,s++}};if(t.views.chart.showInReverseOrder)for(let e=12;e--;)a(e);else for(let e=0;e<12;e++)a(e);n.style.width=`${i.offsetWidth}px`;const l=DomElement.create(n,"div","month-name-space");l.style.height=`${n.offsetHeight}px`,l.style.width=`${c}px`}t.views.chart.keepScrollPositions&&(t._currentView.chartContents.scrollLeft=t._currentView.chartContentsScrollLeft)}}(n,i),n._currentView.chartContents.style.display="none"),n.views.days.enabled&&(!function(t,n){const o=DomElement.create(t._currentView.daysContents,"div","days"),r=DomElement.create(t._currentView.daysContents,"div","day-names");let i=DomElement.create(o,"div","y-labels");const s=DomElement.create(o,"div","day-lines"),a=function(e){const t={days:{1:0,2:0,3:0,4:0,5:0,6:0,7:0},largestValue:0},n=D(e);for(let o=0;o<12;o++){const r=DateTime.getTotalDaysInMonth(e._currentView.year,o);for(let i=0;i<r;i++){const r=DateTime.toStorageDate(new Date(e._currentView.year,o,i+1));if(n.hasOwnProperty(r)){const o=DateTime.getStorageDate(r),i=new Date(parseInt(o[2]),parseInt(o[1]),parseInt(o[0])),s=DateTime.getWeekdayNumber(i)+1;!B(e,i).matched&&v(e.views.days.monthsToShow,i.getMonth())&&T(e.views.days.daysToShow,s)&&(t.days[s]+=n[r],t.largestValue=Math.max(t.largestValue,t.days[s]))}}}return t}(t);n&&DomElement.addClass(o,"view-switch");if(a.largestValue>0&&t.views.days.showChartYLabels){const e=DomElement.createWithHTML(i,"div","label-0",a.largestValue.toString());DomElement.createWithHTML(i,"div","label-25",(3*Math.floor(a.largestValue/4)).toString()),DomElement.createWithHTML(i,"div","label-50",Math.floor(a.largestValue/2).toString()),DomElement.createWithHTML(i,"div","label-75",Math.floor(a.largestValue/4).toString()),DomElement.createWithHTML(i,"div","label-100","0"),i.style.width=`${e.offsetWidth}px`,r.style.paddingLeft=`${i.offsetWidth+DomElement.getStyleValueByName(i,"margin-right",!0)}px`}else i.parentNode.removeChild(i),i=null;if(0===a.largestValue){t._currentView.daysContents.style.minHeight=`${t._currentView.mapContents.offsetHeight}px`,o.parentNode.removeChild(o),r.parentNode.removeChild(r);const i=DomElement.createWithHTML(t._currentView.daysContents,"div","no-days-message",e.text.noDaysDataMessage);n&&DomElement.addClass(i,"view-switch")}else{const n=t._currentView.mapContents.offsetHeight/a.largestValue;for(const o in a.days)a.days.hasOwnProperty(o)&&T(t.views.days.daysToShow,parseInt(o))&&(m(s,parseInt(o),a.days[o],t,n),t.views.days.showDayNames&&DomElement.createWithHTML(r,"div","day-name",e.text.dayNames[parseInt(o)-1]));t.views.days.showInReverseOrder&&(DomElement.reverseChildrenOrder(s),DomElement.reverseChildrenOrder(r)),t.views.days.keepScrollPositions&&(t._currentView.daysContents.scrollLeft=t._currentView.daysContentsScrollLeft)}}(n,i),n._currentView.daysContents.style.display="none"),n.views.statistics.enabled&&(!function(t,n){const o=DomElement.create(t._currentView.statisticsContents,"div","statistics"),r=DomElement.create(t._currentView.statisticsContents,"div","statistics-ranges");let i=DomElement.create(o,"div","y-labels");const s=DomElement.create(o,"div","range-lines"),a=M(t),l=function(e,t){const n=D(e),o={types:{},largestValue:0};o.types[0]=0;for(let r=0;r<12;r++){const i=DateTime.getTotalDaysInMonth(e._currentView.year,r);for(let s=0;s<i;s++){const i=DateTime.toStorageDate(new Date(e._currentView.year,r,s+1));if(n.hasOwnProperty(i)){const r=DateTime.getStorageDate(i),s=new Date(parseInt(r[2]),parseInt(r[1]),parseInt(r[0])),a=DateTime.getWeekdayNumber(s)+1;if(!B(e,s).matched&&v(e.views.statistics.monthsToShow,s.getMonth())&&T(e.views.statistics.daysToShow,a)){const r=E(e,t,n[i]);Is.defined(r)?(o.types.hasOwnProperty(r.minimum.toString())||(o.types[r.minimum.toString()]=0),o.types[r.minimum]++,o.largestValue=Math.max(o.largestValue,o.types[r.minimum])):o.types[0]++}}}}return o}(t,a);n&&DomElement.addClass(o,"view-switch");if(l.largestValue>0&&t.views.statistics.showChartYLabels){const e=DomElement.createWithHTML(i,"div","label-0",l.largestValue.toString());DomElement.createWithHTML(i,"div","label-25",(3*Math.floor(l.largestValue/4)).toString()),DomElement.createWithHTML(i,"div","label-50",Math.floor(l.largestValue/2).toString()),DomElement.createWithHTML(i,"div","label-75",Math.floor(l.largestValue/4).toString()),DomElement.createWithHTML(i,"div","label-100","0"),i.style.width=`${e.offsetWidth}px`,r.style.paddingLeft=`${i.offsetWidth+DomElement.getStyleValueByName(i,"margin-right",!0)}px`}else i.parentNode.removeChild(i),i=null;if(0===l.largestValue){t._currentView.statisticsContents.style.minHeight=`${t._currentView.mapContents.offsetHeight}px`,o.parentNode.removeChild(o),r.parentNode.removeChild(r);const i=DomElement.createWithHTML(t._currentView.statisticsContents,"div","no-statistics-message",e.text.noStatisticsDataMessage);n&&DomElement.addClass(i,"view-switch")}else{const e=t._currentView.mapContents.offsetHeight/l.largestValue;t.views.statistics.showColorRangeLabels||r.parentNode.removeChild(r);for(const n in l.types)if(l.types.hasOwnProperty(n)){w(parseInt(n),s,l.types[n],t,a,e);const o=I(a,parseInt(n));t.views.statistics.showColorRangeLabels&&(t.views.statistics.useColorRangeNamesForLabels&&Is.defined(o)&&Is.definedString(o.name)?DomElement.createWithHTML(r,"div","range-name",o.name):DomElement.createWithHTML(r,"div","range-name",`${n}+`))}t.views.statistics.showInReverseOrder&&(DomElement.reverseChildrenOrder(s),DomElement.reverseChildrenOrder(r)),t.views.statistics.keepScrollPositions&&(t._currentView.statisticsContents.scrollLeft=t._currentView.statisticsContentsScrollLeft)}}(n,i),n._currentView.statisticsContents.style.display="none"),n._currentView.mapContents.style.display="none",1===n._currentView.view?n._currentView.mapContents.style.display="block":n.views.chart.enabled&&2===n._currentView.view?n._currentView.chartContents.style.display="block":n.views.days.enabled&&3===n._currentView.view?n._currentView.daysContents.style.display="block":n.views.statistics.enabled&&4===n._currentView.view?n._currentView.statisticsContents.style.display="block":(n._currentView.view=1,n._currentView.mapContents.style.display="block")}function l(e,t,n,o){e._currentView.view===n?DomElement.addClass(t,"title-menu-item-active"):t.onclick=()=>{e._currentView.view=n,Trigger.customEvent(e.events.onViewSwitch,o),a(e,!1,!0)}}function c(e,t,n,o){let r=null;const i=DomElement.createWithHTML(t,"div","year-menu-item",n.toString());return e._currentView.year!==n?(i.onclick=()=>{e._currentView.year=n,a(e),Trigger.customEvent(e.events.onSetYear,e._currentView.year)},n===o&&DomElement.addClass(i,"year-menu-item-current")):(DomElement.addClass(i,"year-menu-item-active"),r=i),r}function u(e,n,o,r,i,s){const a=o+1,l=DomElement.create(n,"div","day"),c=new Date(i,r,a);let u=t[e._currentView.element.id].typeData[e._currentView.type][DateTime.toStorageDate(c)];u=Default2.getNumber(u,0),y(e,l,c,u),e.views.map.showDayNumbers&&u>0&&(l.innerHTML=u.toString()),Is.definedFunction(e.events.onDayClick)?l.onclick=()=>Trigger.customEvent(e.events.onDayClick,c,u):DomElement.addClass(l,"no-hover");const d=E(e,s,u,c);return Is.defined(d)&&_(e,d.id)&&(Is.definedString(d.mapCssClassName)?DomElement.addClass(l,d.mapCssClassName):DomElement.addClass(l,d.cssClassName)),l}function d(e,t,n,o,r,i,s){const a=new Date(r,o,n),l=DomElement.create(e,"div","day-line");let c=D(t)[DateTime.toStorageDate(a)];c=Default2.getNumber(c,0),y(t,l,a,c),t.views.chart.showLineNumbers&&c>0&&(DomElement.addClass(l,"day-line-number"),l.innerHTML=c.toString());const u=c*s;l.style.height=`${u}px`,u<=0&&(l.style.visibility="hidden"),Is.definedFunction(t.events.onDayClick)?l.onclick=()=>Trigger.customEvent(t.events.onDayClick,a,c):DomElement.addClass(l,"no-hover");const d=E(t,i,c,a);Is.defined(d)&&_(t,d.id)&&(Is.definedString(d.chartCssClassName)?DomElement.addClass(l,d.chartCssClassName):DomElement.addClass(l,d.cssClassName))}function m(e,t,n,o,r){const i=DomElement.create(e,"div","day-line"),s=n*r;i.style.height=`${s}px`,s<=0&&(i.style.visibility="hidden"),ToolTip.add(i,o,n.toString()),Is.definedFunction(o.events.onWeekDayClick)?i.onclick=()=>Trigger.customEvent(o.events.onWeekDayClick,t,n):DomElement.addClass(i,"no-hover"),o.views.days.showDayNumbers&&n>0&&(DomElement.addClass(i,"day-line-number"),DomElement.createWithHTML(i,"div","count",n.toString()))}function w(e,t,n,o,r,i){const s=DomElement.create(t,"div","range-line"),a=I(r,e),l=n*i;s.style.height=`${l}px`,l<=0&&(s.style.visibility="hidden"),ToolTip.add(s,o,n.toString()),o.views.statistics.showRangeNumbers&&n>0&&(DomElement.addClass(s,"range-line-number"),DomElement.createWithHTML(s,"div","count",n.toString())),Is.definedFunction(o.events.onStatisticClick)?s.onclick=()=>Trigger.customEvent(o.events.onStatisticClick,a):DomElement.addClass(s,"no-hover"),Is.defined(a)&&_(o,a.id)&&(Is.definedString(a.statisticsCssClassName)?DomElement.addClass(s,a.statisticsCssClassName):DomElement.addClass(s,a.cssClassName))}function g(e,t,n){const o=DomElement.createWithHTML(t,"button","type",n);e._currentView.type===n&&DomElement.addClass(o,"active"),o.onclick=()=>{e._currentView.type!==n&&(e._currentView.type=n,Trigger.customEvent(e.events.onTypeSwitch,n),a(e))}}function f(e,t,n){const o=DomElement.create(t,"div");o.className="day",ToolTip.add(o,e,n.tooltipText),_(e,n.id)&&(1===e._currentView.view&&Is.definedString(n.mapCssClassName)?DomElement.addClass(o,n.mapCssClassName):e.views.chart.enabled&&2===e._currentView.view&&Is.definedString(n.chartCssClassName)?DomElement.addClass(o,n.chartCssClassName):e.views.statistics.enabled&&4===e._currentView.view&&Is.definedString(n.statisticsCssClassName)?DomElement.addClass(o,n.statisticsCssClassName):DomElement.addClass(o,n.cssClassName)),e.guide.showNumbersInGuide&&(DomElement.addClass(o,"day-number"),o.innerHTML=`${n.minimum}+`),e.guide.colorRangeTogglesEnabled?o.onclick=()=>function(e,t){const n=e.colorRanges.length;for(let o=0;o<n;o++){const n=e.colorRanges[o];if(n.id===t){n.visible=!Default2.getBoolean(n.visible,!0),Trigger.customEvent(e.events.onColorRangeTypeToggle,n.id,n.visible),a(e);break}}}(e,n.id):DomElement.addClass(o,"no-hover")}function h(e,t){if(Is.definedString(e.description.text))if(Is.definedString(e.description.url)){const n=DomElement.createWithHTML(t,"a","label",e.description.text);n.href=e.description.url,n.target=e.description.urlTarget}else DomElement.createWithHTML(t,"span","label",e.description.text)}function y(t,n,o,r){if(Is.definedFunction(t.events.onDayToolTipRender))ToolTip.add(n,t,Trigger.customEvent(t.events.onDayToolTipRender,o,r));else{let r=DateTime.getCustomFormattedDateText(e,t.tooltip.dayText,o);if(t.showHolidaysInDayToolTips){let e=B(t,o);e.matched&&Is.definedString(e.name)&&(r+=`: ${e.name}`)}ToolTip.add(n,t,r)}}function p(n,r,i=!0){t[n]={options:r,typeData:{},totalTypes:1},t[n].typeData[e.text.unknownTrendText]={},i&&!r._currentView.isInFetchMode&&function(n){if(n.useLocalStorageForData&&window.localStorage){const r=window.localStorage.length,i=n._currentView.element.id;for(let n=0;n<r;n++){const r=window.localStorage.key(n);if(Str.startsWithAnyCase(r,o)){const n=window.localStorage.getItem(r),o=Default2.getObjectFromString(n,e);if(o.parsed){t[i].typeData=o.object,t[i].totalTypes=0;for(const e in t[i].typeData)t[i].typeData.hasOwnProperty(e)&&t[i].totalTypes++}}}}}(r)}function D(e){return t[e._currentView.element.id].typeData[e._currentView.type]}function v(e,t){return e.indexOf(t+1)>-1}function T(e,t){return e.indexOf(t)>-1}function x(e,t){return-1===e.yearsToHide.indexOf(t)&&(0===e._currentView.yearsAvailable.length||e._currentView.yearsAvailable.indexOf(t)>-1)}function S(e,t){return e._currentView.yearsAvailable.length>0&&t<=e._currentView.yearsAvailable[0]}function b(e,t){return e._currentView.yearsAvailable.length>0&&t>=e._currentView.yearsAvailable[e._currentView.yearsAvailable.length-1]}function V(n){const o=n._currentView.element.id,r=Trigger.customEvent(n.events.onDataFetch,o);if(Is.definedObject(r)){p(o,n,!1);for(const n in r)r.hasOwnProperty(n)&&(t[o].typeData[e.text.unknownTrendText].hasOwnProperty(n)||(t[o].typeData[e.text.unknownTrendText][n]=0),t[o].typeData[e.text.unknownTrendText][n]+=r[n])}}function _(e,t){let o=!1;if(t===n)o=!0;else{const n=e.colorRanges.length;for(let r=0;r<n;r++){const n=e.colorRanges[r];if(n.id===t&&Default2.getBoolean(n.visible,!0)){o=!0;break}}}return o}function C(e,t){const n=e.colorRanges.length;for(let o=0;o<n;o++)e.colorRanges[o].visible=t,Trigger.customEvent(e.events.onColorRangeTypeToggle,e.colorRanges[o].id,t);a(e)}function E(e,t,o,r=null){let i=null;if(Is.defined(r)&&B(e,r).matched&&(i={cssClassName:"holiday",id:n,visible:!0,minimum:0}),!Is.defined(i)){const e=t.length;for(let n=0;n<e;n++){const e=t[n];if(!(o>=e.minimum))break;i=e}}return i}function I(e,t){const n=e.length;let o=null;for(let r=0;r<n;r++){const n=e[r];if(t.toString()===n.minimum.toString()){o=n;break}}return o}function M(e){return e.colorRanges.sort((function(e,t){return e.minimum-t.minimum}))}function B(e,t){const n={matched:!1,name:null},o=e.holidays.length,r=t.getDate(),i=t.getMonth()+1,s=t.getFullYear();for(let t=0;t<o;t++){let o=e.holidays[t];if(Is.definedString(o.date)&&o.showInViews){const e=o.date.split("/");if(2===e.length?n.matched=r===parseInt(e[0])&&i===parseInt(e[1]):3===e.length&&(n.matched=r===parseInt(e[0])&&i===parseInt(e[1])&&s===parseInt(e[2])),n.matched){n.name=o.name;break}}}return n}function O(e,t){t.allowFileImports&&!t._currentView.isInFetchMode&&(e.ondragover=DomElement.cancelBubble,e.ondragenter=DomElement.cancelBubble,e.ondragleave=DomElement.cancelBubble,e.ondrop=e=>{DomElement.cancelBubble(e),Is.defined(window.FileReader)&&e.dataTransfer.files.length>0&&k(e.dataTransfer.files,t)})}function N(e){const t=DomElement.createWithNoContainer("input");t.type="file",t.accept=".json, .txt, .csv",t.multiple=!0,t.onchange=()=>k(t.files,e),t.click()}function k(e,t){const n=e.length,o=[],r=D(t),i=(e,i)=>{o.push(e);for(const e in i)i.hasOwnProperty(e)&&(r.hasOwnProperty(e)||(r[e]=0),r[e]+=i[e]);o.length===n&&(Trigger.customEvent(t.events.onImport,t._currentView.element),a(t))};for(let t=0;t<n;t++){const n=e[t],o=n.name.split(".").pop().toLowerCase();"json"===o?L(n,i):"txt"===o?A(n,i):"csv"===o&&F(n,i)}}function L(t,n){const o=new FileReader;let r={};o.onloadend=()=>n(t.name,r),o.onload=t=>{const n=Default2.getObjectFromString(t.target.result,e);n.parsed&&Is.definedObject(n.object)&&(r=n.object)},o.readAsText(t)}function A(e,t){const n=new FileReader,o={};n.onloadend=()=>t(e.name,o),n.onload=e=>{const t=e.target.result.toString().split("\n"),n=t.length;for(let e=0;e<n;e++){const n=t[e].split(":");o[n[0].trim()]=parseInt(n[1].trim())}},n.readAsText(e)}function F(e,t){const n=new FileReader,o={};n.onloadend=()=>t(e.name,o),n.onload=e=>{const t=e.target.result.toString().replace(new RegExp('"',"g"),"").split("\n");t.shift();let n=t.length;for(let e=0;e<n;e++){let n=t[e].split(",");o[n[0].trim()]=parseInt(n[1].trim())}},n.readAsText(e)}function H(t,n=null){let o=null;const r=function(e){let t=null;"csv"===e.exportType.toLowerCase()?t="text/csv":"json"===e.exportType.toLowerCase()?t="application/json":"xml"===e.exportType.toLowerCase()?t="application/xml":"txt"===e.exportType.toLowerCase()&&(t="text/plain");return t}(t),i=Default2.getString(n,t.exportType).toLowerCase();if("csv"===i?o=function(t){const n=R(t),o=[];for(const e in n)n.hasOwnProperty(e)&&o.push(P([W(e),W(n[e].toString())]));o.length>0&&o.unshift(P([W(e.text.dateText),W(e.text.countText)]));return o.join("\n")}(t):"json"===i?o=function(e){return JSON.stringify(R(e))}(t):"xml"===i?o=function(e){const t=R(e),n=[];n.push('<?xml version="1.0" ?>'),n.push("<Dates>");for(const e in t)t.hasOwnProperty(e)&&(n.push("<Date>"),n.push(`<FullDate>${e}</FullDate>`),n.push(`<Count>${t[e].toString()}</Count>`),n.push("</Date>"));return n.push("</Dates>"),n.join("\n")}(t):"txt"===i&&(o=function(e){const t=R(e),n=[];for(const e in t)t.hasOwnProperty(e)&&n.push(`${e}: ${t[e].toString()}`);return n.join("\n")}(t)),Is.definedString(o)){const n=DomElement.create(document.body,"a");n.style.display="none",n.setAttribute("target","_blank"),n.setAttribute("href",`data:${r};charset=utf-8,${encodeURIComponent(o)}`),n.setAttribute("download",function(t){const n=new Date,o=`${Str.padNumber(n.getDate())}-${Str.padNumber(n.getMonth()+1)}-${n.getFullYear()}`,r=`${Str.padNumber(n.getHours())}-${Str.padNumber(n.getMinutes())}`;let i="";t._currentView.type!==e.text.unknownTrendText&&(i=`${t._currentView.type.toLowerCase().replace(/ /g,"_")}_`);return`${i}${o}_${r}.${t.exportType.toLowerCase()}`}(t)),n.click(),document.body.removeChild(n),Trigger.customEvent(t.events.onExport,t._currentView.element)}}function R(e){const t={},n=D(e);if(e.exportOnlyYearBeingViewed)for(let o=0;o<12;o++){const r=DateTime.getTotalDaysInMonth(e._currentView.year,o);for(let i=0;i<r;i++){const r=DateTime.toStorageDate(new Date(e._currentView.year,o,i+1));n.hasOwnProperty(r)&&(t[r]=n[r])}}else{const e=[];for(const t in n)n.hasOwnProperty(t)&&e.push(t);e.sort();const o=e.length;for(let r=0;r<o;r++){const o=e[r];n.hasOwnProperty(o)&&(t[o]=n[o])}}return t}function W(e){let t=e.toString().replace(/(\r\n|\n|\r)/gm,"").replace(/(\s\s)/gm," ");return t=t.replace(/"/g,'""'),t=`"${t}"`,t}function P(e){return e.join(",")}function Y(e,t=!0){let n=!0,o=e._currentView.year;for(o--;!x(e,o);){if(S(e,o)){n=!1;break}o--}n&&(e._currentView.year=o,a(e),t&&Trigger.customEvent(e.events.onBackYear,e._currentView.year))}function j(e,t=!0){let n=!0,o=e._currentView.year;for(o++;!x(e,o);){if(b(e,o)){n=!1;break}o++}n&&(e._currentView.year=o,a(e),t&&Trigger.customEvent(e.events.onNextYear,e._currentView.year))}function $(e){e._currentView.element.innerHTML="",DomElement.removeClass(e._currentView.element,"heat-js"),ToolTip.assignToEvents(e,!1),document.body.removeChild(e._currentView.tooltip),e._currentView.isInFetchMode&&Is.defined(e._currentView.isInFetchModeTimer)&&clearInterval(e._currentView.isInFetchModeTimer),Trigger.customEvent(e.events.onDestroy,e._currentView.element)}const U={addDates:function(n,o,r=null,i=!0){if(Is.definedString(n)&&Is.definedArray(o)&&t.hasOwnProperty(n)){const s=t[n].options;if(!s._currentView.isInFetchMode){r=Default2.getString(r,e.text.unknownTrendText);const t=o.length;for(let e=0;e<t;e++)U.addDate(n,o[e],r,!1);i&&a(s,!0)}}return U},addDate:function(n,o,r=null,i=!0){if(Is.definedString(n)&&Is.definedDate(o)&&t.hasOwnProperty(n)){const s=t[n].options;if(!s._currentView.isInFetchMode){r=Default2.getString(r,e.text.unknownTrendText);const l=DateTime.toStorageDate(o);t[n].typeData.hasOwnProperty(r)||(t[n].typeData[r]={},t[n].totalTypes++),t[n].typeData[r].hasOwnProperty(l)||(t[n].typeData[r][l]=0),t[n].typeData[r][l]++,Trigger.customEvent(s.events.onAdd,s._currentView.element),i&&a(s,!0)}}return U},updateDate:function(n,o,r,i=null,s=!0){if(Is.definedString(n)&&Is.definedDate(o)&&t.hasOwnProperty(n)){const l=t[n].options;if(!l._currentView.isInFetchMode&&r>0){const c=DateTime.toStorageDate(o);t[n].typeData.hasOwnProperty(i)&&(i=Default2.getString(i,e.text.unknownTrendText),t[n].typeData[i][c]=r,Trigger.customEvent(l.events.onUpdate,l._currentView.element),s&&a(l,!0))}}return U},removeDates:function(n,o,r=null,i=!0){if(Is.definedString(n)&&Is.definedArray(o)&&t.hasOwnProperty(n)){const s=t[n].options;if(!s._currentView.isInFetchMode){r=Default2.getString(r,e.text.unknownTrendText);const t=o.length;for(let e=0;e<t;e++)U.removeDate(n,o[e],r,!1);i&&a(s,!0)}}return U},removeDate:function(n,o,r=null,i=!0){if(Is.definedString(n)&&Is.definedDate(o)&&t.hasOwnProperty(n)){const s=t[n].options;if(!s._currentView.isInFetchMode){const l=DateTime.toStorageDate(o);t[n].typeData.hasOwnProperty(r)&&t[n].typeData[r].hasOwnProperty(l)&&(r=Default2.getString(r,e.text.unknownTrendText),t[n].typeData[r][l]>0&&t[n].typeData[r][l]--,Trigger.customEvent(s.events.onRemove,s._currentView.element),i&&a(s,!0))}}return U},clearDate:function(n,o,r=null,i=!0){if(Is.definedString(n)&&Is.definedDate(o)&&t.hasOwnProperty(n)){const s=t[n].options;if(!s._currentView.isInFetchMode){const l=DateTime.toStorageDate(o);t[n].typeData.hasOwnProperty(r)&&t[n].typeData[r].hasOwnProperty(l)&&(r=Default2.getString(r,e.text.unknownTrendText),delete t[n].typeData[r][l],Trigger.customEvent(s.events.onClear,s._currentView.element),i&&a(s,!0))}}return U},resetAll:function(e=!0){for(const n in t)t.hasOwnProperty(n)&&U.reset(n,e);return U},reset:function(n,o=!0){if(Is.definedString(n)&&t.hasOwnProperty(n)){const r=t[n].options;r._currentView.isInFetchMode||(r._currentView.type=e.text.unknownTrendText,p(n,r,!1),Trigger.customEvent(r.events.onReset,r._currentView.element),o&&a(r,!0))}return U},import:function(e,n=null){return Is.definedString(e)&&t.hasOwnProperty(e)&&(Is.definedArray(n)?k(n,t[e].options):N(t[e].options)),U},export:function(e,n=null){return Is.definedString(e)&&t.hasOwnProperty(e)&&H(t[e].options,n),U},refresh:function(e){if(Is.definedString(e)&&t.hasOwnProperty(e)){const n=t[e].options;a(n,!0),Trigger.customEvent(n.events.onRefresh,n._currentView.element)}return U},refreshAll:function(){for(const e in t)if(t.hasOwnProperty(e)){const n=t[e].options;a(n,!0),Trigger.customEvent(n.events.onRefresh,n._currentView.element)}return U},setYear:function(e,n){if(Is.definedString(e)&&Is.definedNumber(n)&&t.hasOwnProperty(e)){const o=t[e].options;o._currentView.year=n,x(o,o._currentView.year)?a(o):j(o,!1),Trigger.customEvent(o.events.onSetYear,o._currentView.year)}return U},setYearToHighest:function(e){if(Is.definedString(e)&&t.hasOwnProperty(e)){const n=t[e].options,o=D(n);let r=0;for(const e in o)o.hasOwnProperty(e)&&(r=Math.max(r,parseInt(DateTime.getStorageDateYear(e))));r>0&&(n._currentView.year=r,x(n,n._currentView.year)?a(n):j(n,!1),Trigger.customEvent(n.events.onSetYear,n._currentView.year))}return U},setYearToLowest:function(e){if(Is.definedString(e)&&t.hasOwnProperty(e)){const n=t[e].options,o=D(n);let r=9999;for(const e in o)o.hasOwnProperty(e)&&(r=Math.min(r,parseInt(DateTime.getStorageDateYear(e))));r<9999&&(n._currentView.year=r,x(n,n._currentView.year)?a(n):Y(n,!1),Trigger.customEvent(n.events.onSetYear,n._currentView.year))}return U},moveToPreviousYear:function(e){return Is.definedString(e)&&t.hasOwnProperty(e)&&Y(t[e].options),U},moveToNextYear:function(e){return Is.definedString(e)&&t.hasOwnProperty(e)&&j(t[e].options),U},moveToCurrentYear:function(e){if(Is.definedString(e)&&t.hasOwnProperty(e)){const n=t[e].options;n._currentView.year=(new Date).getFullYear(),x(n,n._currentView.year)?a(n):j(n,!1),Trigger.customEvent(n.events.onSetYear,n._currentView.year)}return U},getYear:function(e){let n=-1;if(Is.definedString(e)&&t.hasOwnProperty(e)){n=t[e].options._currentView.year}return n},render:function(t,n){return Is.definedObject(t)&&Is.definedObject(n)&&s(Binding.Options.getForNewInstance(e,n,t)),U},renderAll:function(){return r(),U},switchView:function(e,n){if(Is.definedString(e)&&Is.definedString(n)&&t.hasOwnProperty(e)){const o=t[e].options;let r;r="map"===n.toLowerCase()?1:"chart"===n.toLowerCase()?2:"days"===n.toLowerCase()?3:"statistics"===n.toLowerCase()?4:1,Is.definedNumber(r)&&(o._currentView.view=r,Trigger.customEvent(o.events.onViewSwitch,n),a(o,!1,!0))}return U},switchType:function(e,n){if(Is.definedString(e)&&Is.definedString(n)&&t.hasOwnProperty(e)&&t[e].typeData.hasOwnProperty(n)){const o=t[e].options;o._currentView.type!==n&&(o._currentView.type=n,Trigger.customEvent(o.events.onTypeSwitch,n),a(o))}return U},updateOptions:function(e,n){if(Is.definedString(e)&&Is.definedObject(n)&&t.hasOwnProperty(e)){const o=t[e].options,r=Binding.Options.get(n);let i=!1;for(const e in r)r.hasOwnProperty(e)&&o.hasOwnProperty(e)&&o[e]!==r[e]&&(o[e]=r[e],i=!0);i&&(a(o,!0),Trigger.customEvent(o.events.onRefresh,o._currentView.element),Trigger.customEvent(o.events.onOptionsUpdate,o._currentView.element,o))}return U},destroyAll:function(){for(const e in t)t.hasOwnProperty(e)&&$(t[e].options);return t={},U},destroy:function(e){return Is.definedString(e)&&t.hasOwnProperty(e)&&($(t[e].options),delete t[e]),U},setConfiguration:function(t,n=!0){if(Is.definedObject(t)){let o=!1;const r=e;for(const n in t)t.hasOwnProperty(n)&&e.hasOwnProperty(n)&&r[n]!==t[n]&&(r[n]=t[n],o=!0);o&&(e=Config.Options.get(r),n&&U.refreshAll())}return U},getIds:function(){const e=[];for(const n in t)t.hasOwnProperty(n)&&e.push(n);return e},getVersion:function(){return"4.2.2"}};e=Config.Options.get(),document.addEventListener("DOMContentLoaded",(()=>r())),window.addEventListener("pagehide",(()=>function(){for(const e in t)if(t.hasOwnProperty(e)){const n=t[e].options;Is.defined(n._currentView.isInFetchModeTimer)&&(clearInterval(n._currentView.isInFetchModeTimer),n._currentView.isInFetchModeTimer=0)}}())),Is.defined(window.$heat)||(window.$heat=U)})();