@websy/websy-designs 1.12.3 → 1.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _websyDesignsQlikPluginEs=_interopRequireDefault(require("@websy/websy-designs-qlik-plugin/dist/websy-designs-qlik-plugin-es6"));function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_unsupportedIterableToArray(t)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(t,e){if(t){if("string"==typeof t)return _arrayLikeToArray(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?_arrayLikeToArray(t,e):void 0}}function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _extends(){return(_extends=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,_toPropertyKey(n.key),n)}}function _createClass(t,e,i){return e&&_defineProperties(t.prototype,e),i&&_defineProperties(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}function _toPropertyKey(t){var e=_toPrimitive(t,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(t,e){if("object"!==_typeof(t)||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0===i)return("string"===e?String:Number)(t);var n=i.call(t,e||"default");if("object"!==_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}var APIService=function(){function i(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,i),this.baseUrl=t,this.options=_extends({},{fieldValueSeparator:":",whereValueSeparator:";"},e)}return _createClass(i,[{key:"add",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},n=this.buildUrl(t);return this.run("POST",n,e,i)}},{key:"buildUrl",value:function(t,e,i){return void 0===i&&(i=[]),e&&i.push("id".concat(this.options.fieldValueSeparator).concat(e)),"".concat(this.baseUrl,"/").concat(t).concat(0<i.length?"".concat(-1===t.indexOf("?")?"?":"&","where=").concat(i.join(this.options.whereValueSeparator)):"")}},{key:"delete",value:function(t,e){var i=this.buildUrl(t,e);return this.run("DELETE",i)}},{key:"deleteMany",value:function(t,e){var i=this.buildUrl(t,null,e);return this.run("DELETE",i)}},{key:"get",value:function(t,e,i,n,s){var o=this.buildUrl(t,e,i);return n&&(-1!==o.indexOf("?")?o+="&offset=".concat(n):o+="?offset=".concat(n)),(s||this.options.rowLimit)&&(-1!==o.indexOf("?")?o+="&limit=".concat(s||this.options.rowLimit):o+="?limit=".concat(s||this.options.rowLimit)),this.run("GET",o)}},{key:"update",value:function(t,e,i){var n=this.buildUrl(t,e);return this.run("PUT",n,i)}},{key:"fetchData",value:function(t,e,i){3<arguments.length&&void 0!==arguments[3]&&arguments[3];return fetch(e,{method:t,mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:JSON.stringify(i)}).then(function(t){return t.json()})}},{key:"run",value:function(s,o,a){var l=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{},r=4<arguments.length&&void 0!==arguments[4]&&arguments[4];return new Promise(function(e,i){var n=new XMLHttpRequest;if(n.open(s,o),n.setRequestHeader("Content-Type","application/json"),n.responseType="text",l.responseType&&(n.responseType=l.responseType),l.headers)for(var t in l.headers)n.setRequestHeader(t,l.headers[t]);n.withCredentials=!0,n.onload=function(){if(401!==n.status){var t="text"===n.responseType?n.responseText:n.response;if(""!==t&&"null"!==t)try{t=JSON.parse(t)}catch(t){}else t=[];t.err?i(JSON.stringify(t)):e(!0===r?[t,function(t){t=t.split("\r\n");var e={};return t.forEach(function(t){2===(t=t.split(":")).length&&(e[t[0]]=t[1].trim())}),e}(n.getAllResponseHeaders())]:t)}else ENV&&ENV.AUTH_REDIRECT?window.location=ENV.AUTH_REDIRECT:window.location="/login"},n.onerror=function(){return i(n.statusText)},a?n.send(JSON.stringify(a)):n.send()})}}]),i}(),ButtonGroup=function(){function n(t,e){_classCallCheck(this,n),this.elementId=t;this.options=_extends({},{style:"button",subscribers:{},activeItem:-1,tag:"div",allowNone:!1,onActivate:function(){},onDeactivate:function(){}},e);var i=document.getElementById(this.elementId);i&&(i.addEventListener("click",this.handleClick.bind(this)),this.render())}return _createClass(n,[{key:"value",get:function(){return-1<this.options.activeItem?[this.options.items[this.options.activeItem]]:!0===this.options.multiSelect?this.options.items.filter(function(t){return t.selected}):[]},set:function(e){var t=-1;if(!0===this.options.multiSelect)Array.isArray(e)&&this.options.items.forEach(function(t){-1!==e.indexOf(t.value)?t.selected=!0:t.selected=!1});else{for(var i=0;i<this.options.items.length;i++)(this.options.items[i].value||this.options.items[i].label)===e&&(t=i);this.options.activeItem=t}this.render()}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-button-group-item")){var e=+t.target.getAttribute("data-index");if(!0===this.options.multiSelect)t.target.classList.contains("active")?(this.options.items[e].selected=!1,this.options.onDeactivate(this.options.items[e],e,t),t.target.classList.remove("active"),t.target.classList.add("inactive")):(this.options.items[e].selected=!0,this.options.onActivate(this.options.items[e],e,t),t.target.classList.add("active"),t.target.classList.remove("inactive"));else if(this.options.activeItem!==e){var i=document.getElementById(this.elementId);Array.from(i.querySelectorAll(".websy-button-group-item")).forEach(function(t){t.getAttribute("data-index");t.classList.add("inactive"),t.classList.remove("active")}),t.target.classList.remove("inactive"),t.target.classList.add("active"),this.options.onDeactivate&&-1!==this.options.activeItem&&this.options.onDeactivate(this.options.items[this.options.activeItem],this.options.activeItem,!0),this.options.activeItem=e,this.options.onActivate&&this.options.onActivate(this.options.items[e],e,t)}else this.options.activeItem===e&&!0===this.options.allowNone&&(this.options.onDeactivate&&this.options.onDeactivate(this.options.items[this.options.activeItem],this.options.activeItem),this.options.activeItem=-1,t.target.classList.remove("active"));this.options.onClick&&this.options.onClick(this.options.items[e],e,t,this)}}},{key:"on",value:function(t,e){this.options.subscribers[t]||(this.options.subscribers[t]=[]),this.options.subscribers[t].push(e)}},{key:"publish",value:function(t,e){this.options.subscribers[t].forEach(function(t){t.apply(null,e)})}},{key:"render",value:function(){var n=this,t=document.getElementById(this.elementId);t&&this.options.items&&(t.innerHTML=this.options.items.map(function(t,e){var i="";return-1!==n.options.activeItem?i=e===n.options.activeItem?"active":"inactive":!0===n.options.multiSelect&&(i=!0===t.selected?"active":"inactive"),"\n <".concat(n.options.tag," ").concat((t.attributes||[]).join(" "),' data-id="').concat(t.id||t.label,'" data-index="').concat(e,'" class="websy-button-group-item ').concat((t.classes||[]).join(" ")," ").concat(n.options.style,"-style ").concat(i,'">').concat(t.label,"</").concat(n.options.tag,">\n ")}).join(""))}}]),n}(),WebsyDatePicker=function(){function o(t,e){_classCallCheck(this,o),this.oneDay=864e5,this.currentselection=[],this.validDates=[],this.validYears=[],this.validHours=[],this.customRangeSelected=!0;var i={defaultRange:0,dateFormat:"%_m/%_d/%Y",allowClear:!(this.shiftPressed=!1),hideRanges:!1,arrowIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.677 18.52c.914 1.523-.183 3.472-1.967 3.472h-19.414c-1.784 0-2.881-1.949-1.967-3.472l9.709-16.18c.891-1.483 3.041-1.48 3.93 0l9.709 16.18z"/></svg>',clearIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512"><line x1="368" y1="368" x2="144" y2="144" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><line x1="368" y1="144" x2="144" y2="368" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',confirmIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512"><polyline points="416 128 192 384 96 288" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',minAllowedDate:this.floorDate(new Date(new Date((new Date).setFullYear((new Date).getFullYear()-1)).setDate(1))),maxAllowedDate:this.floorDate(new Date(new Date)),minAllowedYear:1970,maxAllowedYear:(new Date).getFullYear(),daysOfWeek:["S","M","T","W","T","F","S"],monthsOfYear:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],hours:new Array(24).fill(0).map(function(t,e){return{text:(e<10?"0":"")+e+":00",num:1/24*e}}),mode:"date",monthMap:{0:"Jan",1:"Feb",2:"Mar",3:"Apr",4:"May",5:"Jun",6:"Jul",7:"Aug",8:"Sep",9:"Oct",10:"Nov",11:"Dec"},ranges:[]};if(i.ranges={date:[{label:"All Dates",range:[i.minAllowedDate,i.maxAllowedDate]},{label:"Today",range:[this.floorDate(new Date)]},{label:"Yesterday",range:[this.floorDate((new Date).setDate((new Date).getDate()-1))]},{label:"Last 7 Days",range:[this.floorDate((new Date).setDate((new Date).getDate()-6)),this.floorDate(new Date)]},{label:"This Month",range:[this.floorDate((new Date).setDate(1)),this.floorDate(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()+1)-this.oneDay)]},{label:"Last Month",range:[this.floorDate(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-1)),this.floorDate(new Date((new Date).setDate(1)).setMonth((new Date).getMonth())-this.oneDay)]},{label:"This Year",range:[this.floorDate(new Date("1/1/".concat((new Date).getFullYear()))),this.floorDate(new Date("12/31/".concat((new Date).getFullYear())))]},{label:"Last Year",range:[this.floorDate(new Date("1/1/".concat((new Date).getFullYear()-1))),this.floorDate(new Date("12/31/".concat((new Date).getFullYear()-1)))]}],year:[{label:"All Years",range:[i.minAllowedYear,i.maxAllowedYear]},{label:"Last 5 Years",range:[(new Date).getFullYear()-4,i.maxAllowedYear]},{label:"Last 10 Years",range:[(new Date).getFullYear()-9,i.maxAllowedYear]}],monthyear:[{label:"All Month Years",range:[i.minAllowedDate,i.maxAllowedDate]},{label:"Last 12 Months",range:[this.floorDate(new Date(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-12))),this.floorDate(new Date((new Date).setDate(1)))]},{label:"Last 18 Months",range:[this.floorDate(new Date(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-18))),this.floorDate(new Date((new Date).setDate(1)))]},{label:"Last 24 Months",range:[this.floorDate(new Date(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-24))),this.floorDate(new Date((new Date).setDate(1)))]}],hour:[{label:"All Hours",range:["00:00","23:00"]}]},this.options=_extends({},i,e),this.selectedRange=this.options.defaultRange||0,this.selectedRangeDates=_toConsumableArray(this.options.ranges[this.options.mode][this.options.defaultRange||0].range),this.priorSelectedDates=null,this.priorselection=null,this.priorCustomRangeSelected=null,t){var n=document.getElementById(t);if(n){this.elementId=t,n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mousedown",this.handleMouseDown.bind(this)),n.addEventListener("mouseover",this.handleMouseOver.bind(this)),n.addEventListener("mouseup",this.handleMouseUp.bind(this)),document.addEventListener("keydown",this.handleKeyDown.bind(this)),document.addEventListener("keyup",this.handleKeyUp.bind(this));var s="\n <div class='websy-date-picker-container ".concat(this.options.mode,"'>\n <span class='websy-dropdown-header-label'>").concat(this.options.label||"Date",'</span>\n <div id="').concat(this.elementId,"_header\" class='websy-date-picker-header ").concat(!0===this.options.allowClear?"allow-clear":"","'>\n <span id='").concat(this.elementId,"_selectedRange'>").concat(this.options.ranges[this.options.mode][this.selectedRange].label,"</span>\n ").concat(this.options.arrowIcon,"\n ");!0===this.options.allowClear&&(s+="<div class='clear-selection'>".concat(this.options.clearIcon,"</div>")),s+="\n </div>\n <div id='".concat(this.elementId,"_mask' class='websy-date-picker-mask'></div>\n <div id='").concat(this.elementId,"_content' class='websy-date-picker-content ").concat(!0===this.options.hideRanges?"hide-ranges":"","'>\n <div class='websy-date-picker-ranges' >\n <ul id='").concat(this.elementId,"_rangelist'>\n ").concat(this.renderRanges(),"\n </ul>\n </div>\x3c!--\n --\x3e<div id='").concat(this.elementId,"_datelist' class='websy-date-picker-custom'>").concat(this.renderDates(),"</div>\n <div class='websy-dp-button-container'>\n <span class=\"dp-footnote\">Click and drag or hold Shift and click to select a range of values</span>\n <button class='").concat(this.options.cancelBtnClasses||""," websy-btn websy-dp-cancel'>\n ").concat(this.options.clearIcon,"\n </button>\n <button class='").concat(this.options.confirmBtnClasses||""," websy-btn websy-dp-confirm'>\n ").concat(this.options.confirmIcon,"\n </button>\n </div>\n </div> \n </div>\n "),n.innerHTML=s,this.render()}else console.log("No element found with Id",t)}else console.log("No element Id provided")}return _createClass(o,[{key:"close",value:function(t){var e=this,i=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=document.getElementById("".concat(this.elementId,"_mask")),s=document.getElementById("".concat(this.elementId,"_content")),o=document.getElementById(this.elementId);if(o&&(o.style.zIndex=""),n.classList.remove("active"),s.classList.remove("active"),!0===t){if(this.options.onChange)if(!0===this.customRangeSelected)if("hour"===this.options.mode){for(var a=[],l=this.selectedRangeDates[0];l<this.selectedRangeDates[1]+1;l++)a.push(this.options.hours[l]);this.options.onChange(a,!0,this.selectedRange)}else this.options.onChange(this.selectedRangeDates,!0,this.selectedRange);else if("hour"===this.options.mode){var r=this.currentselection.map(function(t){return e.options.hours[t]});this.options.onChange(r,!0,this.selectedRange)}else this.options.onChange(this.currentselection,i,this.selectedRange);this.priorSelectedDates=_toConsumableArray(this.selectedRangeDates),this.priorSelectedRange=this.selectedRange,this.priorselection=_toConsumableArray(this.currentselection),this.priorCustomRangeSelected=this.customRangeSelected,this.updateRange()}else this.selectedRangeDates=_toConsumableArray(this.priorSelectedDates||[]),this.selectedRange=this.priorSelectedRange,this.customRangeSelected=this.priorCustomRangeSelected,this.currentselection=_toConsumableArray(this.priorselection||[]),this.highlightRange()}},{key:"floorDate",value:function(t){return"number"==typeof t&&(t=new Date(t)),new Date(t.setUTCHours(12,0,0,0))}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-date-picker-header"))this.open();else if(t.target.classList.contains("websy-date-picker-mask"))this.close();else if(t.target.classList.contains("websy-date-picker-range")){if(t.target.classList.contains("websy-disabled-range"))return;var e=t.target.getAttribute("data-index");this.selectRange(e),this.updateRange(e)}else t.target.classList.contains("websy-dp-date")||(t.target.classList.contains("websy-dp-confirm")?this.close(!0):t.target.classList.contains("websy-dp-cancel")?this.close():t.target.classList.contains("clear-selection")&&(this.currentselection=[],this.selectedRangeDates=[],this.selectRange(0,!1),this.options.onClear&&this.options.onClear()))}},{key:"handleKeyDown",value:function(t){"Shift"===t.key&&(this.dragging=!0,this.shiftPressed=!0)}},{key:"handleKeyUp",value:function(t){this.dragging=!1,this.shiftPressed=!1}},{key:"handleMouseDown",value:function(t){if(!0===this.shiftPressed&&0<this.currentselection.length){this.mouseDownId=this.currentselection[this.currentselection.length-1];var e=t.target.getAttribute("data-id");this.selectDate(+e)}else if(this.mouseDown=!0,this.dragging=!1,t.target.classList.contains("websy-dp-date")){if(t.target.classList.contains("websy-disabled-date"))return;!0===this.customRangeSelected&&(this.currentselection=[],this.customRangeSelected=!1),this.mouseDownId=+t.target.getAttribute("data-id"),this.selectDate(this.mouseDownId)}}},{key:"handleMouseOver",value:function(t){if(!0===this.mouseDown&&t.target.classList.contains("websy-dp-date")){if(t.target.classList.contains("websy-disabled-date"))return;var e=+t.target.getAttribute("data-id");e!==this.mouseDownId&&(this.dragging=!0,this.selectDate(e))}}},{key:"handleMouseUp",value:function(t){this.mouseDown=!1,this.dragging=!1,this.mouseDownId=null}},{key:"highlightRange",value:function(){var s=this,t=document.getElementById("".concat(this.elementId,"_dateList"));if(t)for(var e=t.querySelectorAll(".websy-dp-date"),i=0;i<e.length;i++)e[i].classList.remove("selected"),e[i].classList.remove("first"),e[i].classList.remove("last");if(0!==this.selectedRange)if(!0===this.customRangeSelected)if(this.isContinuousRange||this.mouseDown){var n;if("date"===this.options.mode)n=Math.floor((this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()-this.selectedRangeDates[0].getTime())/this.oneDay);else if("year"===this.options.mode)n=this.selectedRangeDates[this.selectedRangeDates.length-1]-this.selectedRangeDates[0],this.selectedRangeDates[this.selectedRangeDates.length-1],this.selectedRangeDates[0];else if("monthyear"===this.options.mode){var o=12*(this.selectedRangeDates[this.selectedRangeDates.length-1].getFullYear()-this.selectedRangeDates[0].getFullYear());n=Math.floor(this.selectedRangeDates[this.selectedRangeDates.length-1].getMonth()-this.selectedRangeDates[0].getMonth())+o}else"hour"===this.options.mode&&(n=this.selectedRangeDates[this.selectedRangeDates.length-1]-this.selectedRangeDates[0]);for(var a=0;a<n+1;a++){var l=void 0,r=void 0,c=void 0;"date"===this.options.mode?(l=(l=this.floorDate(new Date(this.selectedRangeDates[0].getTime()+a*this.oneDay))).getTime(),r=this.selectedRangeDates[0].getTime(),c=this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()):"year"===this.options.mode?(l=this.selectedRangeDates[0]+a,r=this.selectedRangeDates[0],c=this.selectedRangeDates[this.selectedRangeDates.length-1]):"monthyear"===this.options.mode?(l=(l=this.floorDate(new Date(this.selectedRangeDates[0].getTime()).setMonth(this.selectedRangeDates[0].getMonth()+a))).getTime(),console.log("highlighting",this.selectedRangeDates[0].getTime(),l),r=this.selectedRangeDates[0].getTime(),c=this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()):"hour"===this.options.mode&&(l=this.selectedRangeDates[0]+a,r=this.selectedRangeDates[0],c=this.selectedRangeDates[this.selectedRangeDates.length-1]);var h=void 0;"date"===this.options.mode?h=document.getElementById("".concat(this.elementId,"_").concat(l,"_date")):"year"===this.options.mode?h=document.getElementById("".concat(this.elementId,"_").concat(l,"_year")):"monthyear"===this.options.mode?h=document.getElementById("".concat(this.elementId,"_").concat(l,"_monthyear")):"hour"===this.options.mode&&(h=document.getElementById("".concat(this.elementId,"_").concat(l,"_hour"))),h&&(h.classList.add("selected"),l===r&&h.classList.add("".concat("desc"===this.options.sortDirection?"last":"first")),l===c&&h.classList.add("".concat("desc"===this.options.sortDirection?"first":"last")))}}else this.selectedRangeDates.forEach(function(t){var e,i="_date";"date"===s.options.mode?e=(e=s.floorDate(new Date(t.getTime()))).getTime():"year"===s.options.mode?(e=t,i="_year"):"monthyear"===s.options.mode?(e=(e=s.floorDate(new Date(t.getTime()).setMonth(t.getMonth()))).getTime(),i="_monthyear"):"hour"===s.options.mode&&(e=t,i="_hour");var n=document.getElementById("".concat(s.elementId,"_").concat(e).concat(i));n&&n.classList.add("selected","first","last")});else this.currentselection.forEach(function(t){var e;"date"===s.options.mode?e=document.getElementById("".concat(s.elementId,"_").concat(t,"_date")):"year"===s.options.mode?e=document.getElementById("".concat(s.elementId,"_").concat(t,"_year")):"monthyear"===s.options.mode?e=document.getElementById("".concat(s.elementId,"_").concat(t,"_monthyear")):"hour"===s.options.mode&&(e=document.getElementById("".concat(s.elementId,"_").concat(t,"_hour"))),e&&(e.classList.add("selected"),e.classList.add("first"),e.classList.add("last"))})}},{key:"open",value:function(t){1<arguments.length&&void 0!==arguments[1]&&arguments[1];var e=document.getElementById("".concat(this.elementId,"_mask")),i=document.getElementById("".concat(this.elementId,"_content")),n=document.getElementById(this.elementId);n&&(n.style.zIndex=999),e.classList.add("active"),i.classList.add("active"),this.priorSelectedDates=_toConsumableArray(this.selectedRangeDates),this.priorSelectedRange=this.selectedRange,this.priorselection=_toConsumableArray(this.currentselection),this.priorCustomRangeSelected=this.customRangeSelected,this.scrollRangeIntoView()}},{key:"render",value:function(t){if(this.elementId){var e=document.getElementById("".concat(this.elementId,"_datelist"));e&&t&&(e.innerHTML=this.renderDates(t));var i=document.getElementById("".concat(this.elementId,"_rangelist"));i&&t&&(i.innerHTML=this.renderRanges()),this.highlightRange()}else console.log("No element Id provided for Websy Loading Dialog")}},{key:"renderDates",value:function(t){var e,i=this,n=[];this.validDates=[],this.validYears=[],this.validHours=[],this.monthYears={},this.monthYearMonths=[],t&&(n=t.map(function(t){if("date"===i.options.mode)return t.getTime();if("year"===i.options.mode)return t;if("monthyear"===i.options.mode);else if("hour"===i.options.mode)return t;return t.getTime()})),this.options.ranges[this.options.mode].forEach(function(t){return t.disabled=!0}),"date"===this.options.mode?e=Math.ceil((this.options.maxAllowedDate.getTime()-this.options.minAllowedDate.getTime())/this.oneDay)+1:"year"===this.options.mode?e=this.options.maxAllowedYear-this.options.minAllowedYear+1:"monthyear"===this.options.mode?e=Math.ceil((this.options.maxAllowedDate.getTime()-this.options.minAllowedDate.getTime())/this.oneDay)+1:"hour"===this.options.mode&&(e=24);for(var s={},o=[],a=0;a<e;a++)if("date"===this.options.mode||"monthyear"===this.options.mode){var l=this.floorDate(new Date(this.options.minAllowedDate.getTime()+a*this.oneDay)),r="".concat(this.options.monthMap[l.getMonth()]," ").concat(l.getFullYear());if(s[r]||(s[r]=[]),this.monthYears[l.getFullYear()]||(this.monthYears[l.getFullYear()]=[]),-1===this.monthYearMonths.indexOf("".concat(l.getMonth(),"-").concat(l.getFullYear()))){this.monthYearMonths.push("".concat(l.getMonth(),"-").concat(l.getFullYear()));var c=new Date(new Date(l).setDate(1));this.monthYears[l.getFullYear()].push({date:c,month:this.options.monthMap[l.getMonth()],monthNum:l.getMonth(),year:l.getFullYear(),id:c.getTime()})}-1===n.indexOf(l.getTime())&&this.validDates.push(l.getTime()),s[r].push({date:l,dayOfMonth:l.getDate(),dayOfWeek:l.getDay(),id:l.getTime(),disabled:-1!==n.indexOf(l.getTime())})}else if("year"===this.options.mode){var h=this.options.minAllowedYear+a;o.push({year:h,id:h,disabled:-1!==n.indexOf(h)}),-1===n.indexOf(h)&&this.validYears.push(h)}else this.options.mode;"hour"===this.options.mode&&this.options.hours.forEach(function(t){-1===n.indexOf(t.text)&&i.validHours.push(t)});for(var d=0;d<this.options.ranges[this.options.mode].length;d++){var p=this.options.ranges[this.options.mode][d];if("date"===this.options.mode||"monthyear"===this.options.mode){if(-1!==this.validDates.indexOf(p.range[0].getTime()))p.disabled=!1;else if(p.range[1])if(-1!==this.validDates.indexOf(p.range[1].getTime()))p.disabled=!1;else for(var u=p.range[0].getTime();u<=p.range[1].getTime();u+=this.oneDay){var m=this.floorDate(new Date(u));if(-1!==this.validDates.indexOf(m.getTime())){p.disabled=!1;break}}}else if("year"===this.options.mode){if(-1!==this.validYears.indexOf(p.range[0]))p.disabled=!1;else if(p.range[1])if(-1!==this.validYears.indexOf(p.range[1]))p.disabled=!1;else for(var g=p.range[0];g<=p.range[1];g++)if(-1!==this.validYears.indexOf(p.range[0]+g)){p.disabled=!1;break}}else if("monthyear"===this.options.mode);else if("hour"===this.options.mode)if(-1!==this.validDates.indexOf(p.range[0]))p.disabled=!1;else if(p.range[1])if(-1!==this.validDates.indexOf(p.range[1]))p.disabled=!1;else for(var v=p.range[0];v<=p.range[1];v++)if(-1!==this.validDates.indexOf(p.range[0]+v)){p.disabled=!1;break}}var f="";if("date"===this.options.mode){for(var y in f+="\n <ul class='websy-dp-days-header'>\n ",f+=this.options.daysOfWeek.map(function(t){return"<li>".concat(t,"</li>")}).join(""),f+="\n </ul> \n <div id='".concat(this.elementId,"_dateList' class='websy-dp-date-list'>\n "),s){if(f+="\n <div class='websy-dp-month-container'>\n <span id='".concat(y.replace(/\s/g,"_"),"'>").concat(y,"</span>\n <ul>\n "),0<s[y][0].dayOfWeek){for(var b=[],w=0;w<s[y][0].dayOfWeek;w++)b.push("<li>&nbsp;</li>");f+=b.join("")}f+=s[y].map(function(t){return"<li id='".concat(i.elementId,"_").concat(t.id,"_date' data-id='").concat(t.id,"' class='websy-dp-date ").concat(!0===t.disabled?"websy-disabled-date":"","'>").concat(t.dayOfMonth,"</li>")}).join(""),f+="\n </ul>\n </div>\n "}f+="</div>"}else if("year"===this.options.mode)"desc"===this.options.sortDirection&&o.reverse(),f+="<div id='".concat(this.elementId,"_dateList' class='websy-dp-date-list'><ul>"),f+=o.map(function(t){return"<li id='".concat(i.elementId,"_").concat(t.id,"_year' data-id='").concat(t.id,"' class='websy-dp-date websy-dp-year ").concat(!0===t.disabled?"websy-disabled-date":"","'>").concat(t.year,"</li>")}).join(""),f+="</ul></div>";else if("monthyear"===this.options.mode){for(var x in f+="<div id='".concat(this.elementId,"_dateList' class='websy-dp-monthyear-container'>"),this.monthYears){if(f+="\n <ul>\n <li>".concat(x,"</li>\n "),0<this.monthYears[x][0].monthNum){for(var I=[],L=0;L<this.monthYears[x][0].monthNum;L++)I.push("<li>&nbsp;</li>");f+=I.join("")}f+=this.monthYears[x].map(function(t){return"<li id='".concat(i.elementId,"_").concat(t.id,"_monthyear' data-id='").concat(t.id,"' data-year='").concat(t.year,"' class='websy-dp-date websy-dp-monthyear'>").concat(t.month,"</li>")}).join(""),f+="</ul>"}f+="</div>"}else"hour"===this.options.mode&&(f+="<div id='".concat(this.elementId,"_dateList' class='websy-dp-date-list'><ul>"),f+=this.options.hours.map(function(t){return"<li id='".concat(i.elementId,"_").concat(+t.text.split(":")[0],"_hour' data-id='").concat(+t.text.split(":")[0],"' data-hour='").concat(t.text,"' class='websy-dp-date websy-dp-hour'>").concat(t.text,"</li>")}).join(""),f+="</ul></div>");return f}},{key:"renderRanges",value:function(){var i=this;return this.options.ranges[this.options.mode].map(function(t,e){return"\n <li data-index='".concat(e,"' class='websy-date-picker-range ").concat(e===i.selectedRange?"active":""," ").concat(!0===t.disabled?"websy-disabled-range":"","'>").concat(t.label,"</li>\n ")}).join("")+"<li data-index='-1' class='websy-date-picker-range ".concat(-1===this.selectedRange?"active":"","'>Custom</li>")}},{key:"scrollRangeIntoView",value:function(){if(this.selectedRangeDates[0]){var t;"date"===this.options.mode?t=document.getElementById("".concat(this.elementId,"_").concat(this.selectedRangeDates[0].getTime(),"_date")):"year"===this.options.mode?t="desc"===this.options.sortDirection?document.getElementById("".concat(this.elementId,"_").concat(this.selectedRangeDates[this.selectedRangeDates.length-1],"_year")):document.getElementById("".concat(this.elementId,"_").concat(this.selectedRangeDates[0],"_year")):"monthyear"===this.options.mode||this.options.mode;var e=document.getElementById("".concat(this.elementId,"_dateList"));t&&e&&e.scrollTo(0,t.offsetTop)}}},{key:"selectDate",value:function(t){if(0===this.currentselection.length)this.currentselection.push(t);else if(!0===this.dragging)this.currentselection=[this.mouseDownId],t>this.currentselection[0]?this.currentselection.push(t):this.currentselection.splice(0,0,t),this.customRangeSelected=!0;else{var e=this.currentselection.indexOf(t);-1!==e?this.currentselection.splice(e,1):this.currentselection.push(t),this.currentselection.sort(function(t,e){return t-e}),this.customRangeSelected=!1}"date"===this.options.mode||"monthyear"===this.options.mode?this.selectedRangeDates=[new Date(this.currentselection[0]),new Date(this.currentselection[1]||this.currentselection[0])]:"year"===this.options.mode?this.selectedRangeDates=[this.currentselection[0],this.currentselection[1]||this.currentselection[0]]:"monthyear"===this.options.mode||"hour"===this.options.mode&&(this.selectedRangeDates=[this.currentselection[0],this.currentselection[1]||this.currentselection[0]]),this.selectedRange=-1,this.highlightRange()}},{key:"selectRange",value:function(t){var e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];this.options.ranges[this.options.mode][t]&&(this.selectedRangeDates=_toConsumableArray(this.options.ranges[this.options.mode][t].range),this.currentselection=[],this.selectedRange=+t,this.highlightRange(),this.updateRange(),!0===e&&this.close(e,!0))}},{key:"selectCustomRange",value:function(i){var n=this;this.selectedRange=-1,this.isContinuousRange=!0,this.selectedRangeDates=_toConsumableArray(i),this.customRangeSelected=!0,i.forEach(function(t,e){0<e&&("date"===n.options.mode||"monthyear"===n.options.mode?1<t.getTime()/n.oneDay-i[e-1]/n.oneDay&&(n.isContinuousRange=!1):"hour"!==n.options.mode&&"year"!==n.options.mode||1<t-i[e-1]&&(n.isContinuousRange=!1))}),2<i.length&&!0===this.isContinuousRange&&(this.selectedRangeDates=[i[0],i[i.length-1]],this.customRangeSelected=!0),!1===this.isContinuousRange&&(this.currentselection=[]);for(var t=0;t<this.options.ranges[this.options.mode].length;t++)if(1===this.options.ranges[this.options.mode][t].range.length){var e=this.options.ranges[this.options.mode][t].range[0],s=i[0];if("date"===this.options.mode&&(e=e.getTime(),s=s.getTime()),e===s){this.selectedRange=t,this.customRangeSelected=!1;break}}else if(2===this.options.ranges[this.options.mode][t].range.length){var o=this.options.ranges[this.options.mode][t].range[0],a=i[0],l=this.options.ranges[this.options.mode][t].range[1],r=i[i.length-1];if("date"===this.options.mode&&(o=o.getTime(),a=a.getTime(),l=l.getTime(),r=r.getTime()),o===a&&l===r){this.selectedRange=t,this.customRangeSelected=!1;break}}this.highlightRange(),this.updateRange()}},{key:"setDateBounds",value:function(t){-1!==["All Dates","All Years","All"].indexOf(this.options.ranges[this.options.mode][0].label)&&(this.options.ranges[this.options.mode][0].range=[t[0],t[1]||t[0]]),"date"===this.options.mode?(this.options.minAllowedDate=t[0],this.options.maxAllowedDate=t[1]||t[0]):"year"===this.options.mode?(this.options.minAllowedYear=t[0],this.options.maxAllowedYear=t[1]||t[0]):"monthyear"===this.options.mode?(this.options.minAllowedDate=t[0],this.options.maxAllowedDate=t[1]||t[0]):"hour"===this.options.mode&&(this.options.minAllowedHour=t[0],this.options.maxAllowedHour=t[1]||t[0])}},{key:"updateRange",value:function(){var t,e=this;if(-1===this.selectedRange){var i=(0<this.currentselection.length?this.currentselection:this.selectedRangeDates).map(function(t){return"date"===e.options.mode?(t.toLocaleDateString||(t=new Date(t)),t.toLocaleDateString()):"year"===e.options.mode?t:"monthyear"===e.options.mode?(t.getMonth||(t=new Date(t)),"".concat(e.options.monthMap[t.getMonth()]," ").concat(t.getFullYear())):"hour"===e.options.mode?t:void 0}),n=i[0],s="";!0===this.customRangeSelected&&!0===this.isContinuousRange?(1<i.length&&(s=" - ".concat(i[i.length-1])),"hour"===this.options.mode&&(n=this.options.hours[n].text,1<i.length&&(s="".concat(!0===this.customRangeSelected?" - ":"").concat(this.options.hours[i[i.length-1]].text)))):1<i.length?n="".concat(i.length," selected"):"hour"===this.options.mode&&(n=this.options.hours[n].text),t={label:"".concat(n).concat(s)}}else t=this.options.ranges[this.options.mode][this.selectedRange];var o=document.getElementById(this.elementId),a=document.getElementById("".concat(this.elementId,"_selectedRange"));if(o)for(var l=o.querySelectorAll(".websy-date-picker-range"),r=0;r<l.length;r++)l[r].classList.remove("active"),r===this.selectedRange&&l[r].classList.add("active");a&&(a.innerHTML=t.label);var c=document.getElementById("".concat(this.elementId,"_header"));c&&(0===this.selectedRange?c.classList.remove("range-selected"):c.classList.add("range-selected"))}}]),o}();Date.prototype.floor=function(){return new Date("".concat(this.getMonth()+1,"/").concat(this.getDate(),"/").concat(this.getFullYear()))};var WebsyDragDrop=function(){function n(t,e){_classCallCheck(this,n);if(this.busy=!1,this.options=_extends({},{items:[],orientation:"horizontal",dropPlaceholder:"Drop item here",accepts:"application/wd-item"},e),this.elementId=t){var i=document.getElementById(t);i?(i.innerHTML="\n <div id='".concat(this.elementId,"_container' class='websy-drag-drop-container ").concat(this.options.orientation,"'>\n <div>\n </div>\n "),i.addEventListener("click",this.handleClick.bind(this)),i.addEventListener("dragstart",this.handleDragStart.bind(this)),i.addEventListener("dragover",this.handleDragOver.bind(this)),i.addEventListener("dragleave",this.handleDragLeave.bind(this)),i.addEventListener("drop",this.handleDrop.bind(this)),window.addEventListener("dragend",this.handleDragEnd.bind(this))):console.error("No element found with ID ".concat(this.elementId)),GlobalPubSub.subscribe(this.elementId,"requestForDDItem",this.handleRequestForItem.bind(this)),GlobalPubSub.subscribe(this.elementId,"add",this.addItem.bind(this)),this.render()}else console.log("No element Id provided for Websy DragDrop")}return _createClass(n,[{key:"addItem",value:function(t){if(t.target===this.elementId&&!1===this.busy){if(this.busy=!0,console.log("adding item to dd"),-1===this.getItemIndex(t.item.id)){this.options.items.splice(t.index,0,t.item);var e=document.getElementById("".concat(this.elementId,"start_item"));e&&(0===this.options.items.length?e.classList.add("empty"):e.classList.remove("empty")),this.options.onItemAdded&&this.options.onItemAdded()}this.busy=!1}}},{key:"createItemHtml",value:function(t,e,i){i.id||(i.id=WebsyDesigns.Utils.createIdentity());var n="\n <div id='".concat(i.id,"_item' class='websy-dragdrop-item ").concat((i.classes||[]).join(" "),"' draggable='true' data-id='").concat(i.id,"'> \n <div id='").concat(i.id,"_itemInner' class='websy-dragdrop-item-inner' data-id='").concat(i.id,"'>\n ");return i.component?n+="<div id='".concat(i.id,"_component'></div>"):n+="".concat(i.html||i.label||""),n+="\n </div>\n <div id='".concat(i.id,"_dropZone' class='websy-drop-zone droppable' data-index='").concat(i.id,"' data-side='right' data-id='").concat(i.id,"' data-placeholder='").concat(this.options.dropPlaceholder,"'></div> \n </div>\n ")}},{key:"getItemIndex",value:function(t){for(var e=0;e<this.options.items.length;e++)if(this.options.items[e].id===t)return e;return-1}},{key:"handleClick",value:function(t){}},{key:"handleDragStart",value:function(t){this.draggedId=t.target.getAttribute("data-id"),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData(this.options.accepts,JSON.stringify({el:t.target.id,id:this.elementId,itemId:this.draggedId})),t.target.classList.add("dragging"),this.dragging=!0}},{key:"handleDragOver",value:function(t){t.preventDefault&&t.preventDefault(),console.log("drag",t.target.classList),t.target.classList.contains("droppable")&&-1!==t.dataTransfer.types.indexOf(this.options.accepts)&&t.target.classList.add("drag-over")}},{key:"handleDragLeave",value:function(t){t.target.classList.contains("droppable")&&t.target.classList.remove("drag-over")}},{key:"handleDrop",value:function(t){var e=JSON.parse(t.dataTransfer.getData(this.options.accepts));if(t.preventDefault&&t.preventDefault(),t.target.classList.contains("droppable")&&-1!==t.dataTransfer.types.indexOf(this.options.accepts)){var i=t.target.getAttribute("data-side"),n=t.target.getAttribute("data-id"),s=this.getItemIndex(n),o=this.getItemIndex(e.id),a=this.options.items[s];"right"===i&&(s+=1),-1===o?GlobalPubSub.publish(e.id,"requestForDDItem",{group:this.options.group,source:e.id,target:this.elementId,index:s,id:e.itemId}):(o<s?(this.options.items.splice(s,0,a),this.options.items.splice(o,1)):(this.options.items.splice(o,1),this.options.items.splice(s,0,a)),this.options.onOrderUpdated&&this.options.onOrderUpdated());var l=document.getElementById(e.el),r=document.getElementById("".concat(n,"_item"));l&&r.insertAdjacentElement("afterend",l);var c=r.querySelector(".drag-over");c&&c.classList.remove("drag-over")}}},{key:"handleDragEnd",value:function(t){t.target.style.opacity=1,t.target.classList.remove("dragging"),this.draggedId=null,this.dragging=!1;var e=document.getElementById("".concat(this.elementId,"start_item"));e&&(0===this.options.items.length?e.classList.add("empty"):e.classList.remove("empty"))}},{key:"handleRequestForItem",value:function(t){if(t.group===this.options.group){var e=this.getItemIndex(t.id);if(-1!==e){var i=this.options.items.splice(e,1);GlobalPubSub.publish(t.target,"add",{target:t.target,index:t.index,item:i[0]})}}}},{key:"measureItems",value:function(){document.getElementById("".concat(this.elementId,"_container"));this.options.items.forEach(function(t){})}},{key:"removeItem",value:function(t){}},{key:"render",value:function(){var i=this,t=document.getElementById("".concat(this.elementId,"_container"));if(t){this.measureItems();var e="\n <div id='".concat(this.elementId,"start_item' class='websy-dragdrop-item ").concat(0===this.options.items.length?"empty":"","' data-id='").concat(this.elementId,"start'>\n <div id='").concat(this.elementId,"start_dropZone' class='websy-drop-zone droppable' data-index='start' data-side='start' data-id='").concat(this.elementId,"start' data-placeholder='").concat(this.options.dropPlaceholder,"'></div>\n </div>\n ");e+=this.options.items.map(function(t,e){return i.createItemHtml(i.elementId,e,t)}).join(""),t.innerHTML=e,this.options.items.forEach(function(t,e){t.component&&(t.isQlikPlugin&&WebsyDesigns.QlikPlugins[t.component]?t.instance=new WebsyDesigns.QlikPlugins[t.component]("".concat(t.id,"_component"),t.options):WebsyDesigns[t.component]?t.instance=new WebsyDesigns[t.component]("".concat(t.id,"_component"),t.options):console.error("Component ".concat(t.component," not found.")))})}}}]),n}(),WebsyDropdown=function(){function c(t,e){var i=this;_classCallCheck(this,c);if(this.options=_extends({},{multiSelect:!1,multiValueDelimiter:",",allowClear:!0,style:"plain",items:[],label:"",disabled:!1,classes:[],minSearchCharacters:2,showCompleteSelectedList:!1,closeAfterSelection:!0,customActions:[],customButtons:[],minWidth:220,searchIcon:'<svg width="20" height="20" viewBox="0 0 512 512"><path d="M221.09,64A157.09,157.09,0,1,0,378.18,221.09,157.1,157.1,0,0,0,221.09,64Z" style="fill:none;stroke-miterlimit:10;stroke-width:32px"/><line x1="338.29" y1="338.29" x2="448" y2="448" style="fill:none;stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"/></svg>',clearIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512"><title>ionicons-v5-l</title><line x1="368" y1="368" x2="144" y2="144" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><line x1="368" y1="144" x2="144" y2="368" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',arrowIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.677 18.52c.914 1.523-.183 3.472-1.967 3.472h-19.414c-1.784 0-2.881-1.949-1.967-3.472l9.709-16.18c.891-1.483 3.041-1.48 3.93 0l9.709 16.18z"/></svg>',actionsIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 512 512">><circle cx="256" cy="256" r="32" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/><circle cx="416" cy="256" r="32" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/><circle cx="96" cy="256" r="32" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/></svg>'},e),0<this.options.items.length&&(this.options.items=this.options.items.map(function(t,e){return t.index=e,t})),this.searchText="",this.tooltipTimeoutFn=null,this._originalData=_toConsumableArray(this.options.items),this.selectedItems=this.options.selectedItems||[],t){var n=document.getElementById(t);if(n){this.elementId=t,n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("keyup",this.handleKeyUp.bind(this)),n.addEventListener("mouseout",this.handleMouseOut.bind(this)),n.addEventListener("mousemove",this.handleMouseMove.bind(this));var s=this.selectedItems.map(function(t){return i.options.items[t].label||i.options.items[t].value}).join(this.options.multiValueDelimiter),o=this.selectedItems.map(function(t){return i.options.items[t].value||i.options.items[t].label}).join(this.options.multiValueDelimiter),a="\n <div id='".concat(this.elementId,"_container' class='websy-dropdown-container ").concat(this.options.classes.join(" ")," ").concat(this.options.disabled?"disabled":""," ").concat(!0!==this.options.disableSearch?"with-search":""," ").concat(this.options.style," ").concat(0<this.options.customActions.length?"with-actions":"","'>\n <div id='").concat(this.elementId,"_header' class='websy-dropdown-header ").concat(1===this.selectedItems.length?"one-selected":""," ").concat(!0===this.options.allowClear?"allow-clear":"","'>\n ");!0!==this.options.disableSearch&&(a+="<div class='search'>".concat(this.options.searchIcon,"</div>")),a+="\n <div class='header-label'>\n <span class='websy-dropdown-header-value' data-info='".concat(s,"' id='").concat(this.elementId,"_selectedItems'>").concat(s,"</span> \n <span class='websy-dropdown-header-label' id='").concat(this.elementId,"_headerLabel'>").concat(this.options.label,"</span>\n </div>\n <input class='dropdown-input' id='").concat(this.elementId,"_input' name='").concat(this.options.field||this.options.label,"' value='").concat(o,"'>\n <div class='arrow'>").concat(this.options.arrowIcon,"</div>\n "),!0===this.options.allowClear&&(a+="<div class='clear'>".concat(this.options.clearIcon,"</div>")),a+=" \n </div>\n <div id='".concat(this.elementId,"_mask' class='websy-dropdown-mask'></div>\n <div id='").concat(this.elementId,"_content' class='websy-dropdown-content'>\n "),(0<this.options.customActions.length||0<this.options.customButtons.length)&&(a+="\n <div class='websy-dropdown-action-container'>\n ",0<this.options.customActions.length&&(a+="\n ".concat(this.options.actionsTitle||"","\n <button class='websy-dropdown-action-button'>\n ").concat(this.options.actionsIcon,"\n </button>\n ")),0<this.options.customButtons.length&&(a+="\n <div class='websy-dropdown-additional-buttons'>\n ",this.options.customButtons.forEach(function(t,e){a+="\n <button class='websy-dropdown-custom-button' data-index='".concat(e,"'>\n ").concat(t.label,"\n </button>\n ")}),a+="\n </div>\n "),0<this.options.customActions.length&&(a+=" \n <ul id='".concat(this.elementId,"_actionContainer'>\n "),this.options.customActions.forEach(function(t,e){a+="\n <li class='websy-dropdown-custom-action' data-index='".concat(e,"'>").concat(t.label,"</li>\n ")}),a+="\n </ul>\n </div>\n ")),!0!==this.options.disableSearch&&(a+="\n <div class='websy-dropdown-search-container'>\n <input id='".concat(this.elementId,"_search' class='websy-dropdown-search' placeholder='").concat(this.options.searchPlaceholder||"Search","'>\n </div>\n ")),a+="\n <div id='".concat(this.elementId,"_itemsContainer' class='websy-dropdown-items'>\n <ul id='").concat(this.elementId,"_items'> \n </ul>\n </div>\x3c!--\n --\x3e<div class='websy-dropdown-custom'></div>\n </div>\n </div>\n "),n.innerHTML=a;var l=document.getElementById("".concat(this.elementId,"_mask"));l&&l.addEventListener("mousewheel",function(t){t.target.classList.contains("websy-dropdown-mask")&&(t.preventDefault(),t.stopPropagation())});var r=document.getElementById("".concat(this.elementId,"_itemsContainer"));r&&r.addEventListener("scroll",this.handleScroll.bind(this)),this.render()}else console.log("No element found with Id",t)}else console.log("No element Id provided")}return _createClass(c,[{key:"selections",set:function(t){this.selectedItems=t||[]}},{key:"data",get:function(){return this.options.items},set:function(t){this.options.items=(t||[]).map(function(t,e){return void 0===t.index&&(t.index=e),t.currentIndex=e,t});var e=document.getElementById("".concat(this.elementId,"_header"));e&&e.classList["".concat(!0===this.options.allowClear?"add":"remove")]("allow-clear");var i=document.getElementById("".concat(this.elementId,"_items"));i&&(0===i.childElementCount?this.render():(0===this.options.items.length&&(this.options.items=[{label:this.options.noItemsText||"No Items"}]),this.renderItems()))}},{key:"appendRows",value:function(){}},{key:"clearSelected",value:function(){this.selectedItems=[],this.updateHeader(),this.options.onClearSelected&&this.options.onClearSelected()}},{key:"close",value:function(){this.hide();var t=document.getElementById("".concat(this.elementId,"_search"));t&&0<t.value.length&&this.options.onCancelSearch&&(this.options.onCancelSearch(""),t.value=""),this.options.onClose&&this.options.onClose(this.elementId)}},{key:"hide",value:function(){var t=document.getElementById("".concat(this.elementId,"_mask")),e=document.getElementById("".concat(this.elementId,"_content")),i=document.getElementById("".concat(this.elementId,"_itemsContainer")),n=document.getElementById("".concat(this.elementId,"_actionContainer")),s=document.getElementById("".concat(this.elementId,"_header")),o=WebsyUtils.getElementPos(s),a=WebsyUtils.getElementPos(e);"plain"===this.options.style&&0<o.width&&0<o.height&&(e.style.right="unset",o.bottom+a.height>window.innerHeight?e.style.bottom="unset":e.style.top="unset"),n&&n.classList.remove("active");var l=document.getElementById(this.elementId);l&&(l.style.zIndex=""),i&&i.scrollTo(0,0),t&&t.classList.remove("active"),e&&(e.classList.remove("active"),e.classList.remove("on-top"))}},{key:"handleClick",value:function(t){if(!0!==this.options.disabled)if(t.target.classList.contains("websy-dropdown-header"))this.open(t);else if(t.target.classList.contains("websy-dropdown-mask"))this.close();else if(t.target.classList.contains("websy-dropdown-item")){var e=t.target.getAttribute("data-index");this.updateSelected(+e)}else if(t.target.classList.contains("clear"))this.clearSelected();else if(t.target.classList.contains("search")){document.getElementById("".concat(this.elementId,"_container")).classList.toggle("search-open")}else if(t.target.classList.contains("websy-dropdown-custom-action")){var i=+t.target.getAttribute("data-index");this.options.customActions[i]&&this.options.customActions[i].fn&&this.options.customActions[i].fn()}else if(t.target.classList.contains("websy-dropdown-custom-button")){var n=+t.target.getAttribute("data-index");this.options.customButtons[n]&&this.options.customButtons[n].fn&&this.options.customButtons[n].fn()}else if(t.target.classList.contains("websy-dropdown-action-button")){var s=document.getElementById("".concat(this.elementId,"_actionContainer"));s&&s.classList.toggle("active")}}},{key:"handleKeyUp",value:function(e){e.target.classList.contains("websy-dropdown-search")&&(this.searchText=e.target.value,0===this._originalData.length&&(this._originalData=_toConsumableArray(this.options.items)),e.target.value.length>=this.options.minSearchCharacters?"Enter"===e.key?this.options.onConfirmSearch&&(this.options.onConfirmSearch(e.target.value),e.target.value=""):"Escape"===e.key?this.options.onCancelSearch?(this.options.onCancelSearch(e.target.value),e.target.value=""):(this.data=this._originalData,this._originalData=[]):this.options.onSearch?this.options.onSearch(e.target.value):this.data=this._originalData.filter(function(t){return-1!==t.label.toLowerCase().indexOf(e.target.value.toLowerCase())}):this.options.onCancelSearch?this.options.onCancelSearch(e.target.value):(this.data=this._originalData,this._originalData=[]))}},{key:"handleMouseMove",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed"),t.target.classList.remove("websy-delayed-info"),t.target.children[1]&&t.target.children[1].classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn)),"LI"===t.target.tagName&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.classList.add("websy-delayed")},500)),t.target.classList.contains("websy-dropdown-header")&&t.target.children[1]&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.children[1].classList.add("websy-delayed-info")},500))}},{key:"handleMouseOut",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed"),t.target.classList.remove("websy-delayed-info"),t.target.children[1]&&t.target.children[1].classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn))}},{key:"handleScroll",value:function(t){t.target.classList.contains("websy-dropdown-items")&&this.options.onScroll&&this.options.onScroll(t)}},{key:"open",value:function(t){1<arguments.length&&void 0!==arguments[1]&&arguments[1];var e=document.getElementById("".concat(this.elementId,"_mask")),i=document.getElementById("".concat(this.elementId,"_content")),n=document.getElementById("".concat(this.elementId,"_header"));e.classList.add("active"),i.classList.add("active");var s=WebsyUtils.getElementPos(n),o=WebsyUtils.getElementPos(i);if("plain"===this.options.style&&0<s.width&&0<s.height)i.style.left="unset",i.style.right="calc(100vw - ".concat(s.right,"px)"),i.style.width="".concat(Math.max(this.options.minWidth,n.clientWidth),"px"),s.bottom+o.height>window.innerHeight?i.style.bottom="calc(100vh - ".concat(s.top,"px)"):i.style.top=s.bottom+"px";else if("plain"===this.options.style&&0===s.width&&0===s.height){var a=WebsyUtils.getElementPos(t.target);Math.max(this.options.minWidth,a.width)>a.right?(i.style.left="".concat(a.left,"px"),i.style.right="unset"):(i.style.left="unset",i.style.right="calc(100vw - ".concat(a.right,"px)")),i.style.width="".concat(Math.max(this.options.minWidth,a.width),"px")}if(!0!==this.options.disableSearch){var l=document.getElementById("".concat(this.elementId,"_search"));l&&l.focus()}this.options.onOpen&&this.options.onOpen(this.elementId)}},{key:"items",set:function(t){this.options.items=_toConsumableArray(t),0<this.options.items.length&&(this.options.items=this.options.items.map(function(t,e){return void 0===t.index&&(t.index=e),t})),this._originalData=_toConsumableArray(this.options.items),this.render()}},{key:"render",value:function(){this.elementId?this.renderItems():console.log("No element Id provided for Websy Dropdown")}},{key:"renderItems",value:function(){var t,i=this,e=this.options.items.map(function(t,e){return"\n <li data-index='".concat(t.index,"' class='websy-dropdown-item ").concat((t.classes||[]).join(" ")," ").concat(-1!==i.selectedItems.indexOf(t.index)?"active":"","'>").concat(t.label,"</li>\n ")}).join(""),n=document.getElementById("".concat(this.elementId,"_items"));n&&(n.innerHTML=e),1===this.selectedItems.length&&(t=this.options.items[this.selectedItems[0]]),this.updateHeader(t)}},{key:"value",get:function(){var i=this;return this.selectedItems&&0<this.selectedItems.length?this.selectedItems.map(function(t,e){return i._originalData[+t]}):[]},set:function(e){var i=this;this.selectedItems=[],Array.isArray(e)?this.options.items.forEach(function(t){-1!==e.indexOf(t.value)&&i.selectedItems.push(t.index)}):this.options.items.forEach(function(t){t.value===e&&i.selectedItems.push(t.index)}),this.render()}},{key:"updateHeader",value:function(t){var e=document.getElementById(this.elementId),i=document.getElementById("".concat(this.elementId,"_header")),n=document.getElementById("".concat(this.elementId,"_headerLabel")),s=document.getElementById("".concat(this.elementId,"_selectedItems")),o=document.getElementById("".concat(this.elementId,"_input")),a=e.querySelectorAll(".websy-dropdown-item"),l=this._originalData;0===this._originalData.length&&""===this.searchText&&(l=this.options.items),this.options.onSearch&&(l=this.options.items);for(var r=0;r<a.length;r++){a[r].classList.remove("active");var c=a[r].getAttribute("data-index");-1!==this.selectedItems.indexOf(+c)&&a[r].classList.add("active")}if(n&&(n.innerHTML=this.options.label),i&&(i.classList.remove("one-selected"),i.classList.remove("multi-selected"),1===this.selectedItems.length?i.classList.add("one-selected"):1<this.selectedItems.length&&(!0===this.options.showCompleteSelectedList?i.classList.add("one-selected"):i.classList.add("multi-selected"))),s)if(1===this.selectedItems.length)t?(s.innerHTML=t.label,s.setAttribute("data-info",t.label),o.value=t.value):this.selectedItems[0]&&(s.innerHTML=l[this.selectedItems[0]].label,s.setAttribute("data-info",l[this.selectedItems[0]].label),o.value=l[this.selectedItems[0]].value);else if(1<this.selectedItems.length)if(!0===this.options.showCompleteSelectedList){var h=this.selectedItems.map(function(t){return l[t].label||l[t].value}).join(this.options.multiValueDelimiter),d=this.selectedItems.map(function(t){return l[t].value||l[t].label}).join(this.options.multiValueDelimiter);s.innerHTML=h,s.setAttribute("data-info",h),o.value=d}else{var p=this.selectedItems.map(function(t){return l[t].value||l[t].label}).join(this.options.multiValueDelimiter);s.innerHTML="".concat(this.selectedItems.length," selected"),s.setAttribute("data-info",""),o.value=p}else s.innerHTML="",s.setAttribute("data-info",""),o.value=""}},{key:"updateSelected",value:function(t){var e,i=this._originalData&&0<this._originalData.length?this._originalData:this.options.items;if(this.options.onSearch&&(i=this.options.items),null!=t){var n=this.selectedItems.indexOf(t);!1===this.options.multiSelect?(this.selectedItems=[t],e=i[t]):-1!==n?this.selectedItems.splice(n,1):(this.selectedItems.push(t),e=i[t])}this.updateHeader(e),e&&this.options.onItemSelected&&this.options.onItemSelected(e,this.selectedItems,i,this.options),this.options.onChange&&this.options.onChange(this),!0===this.options.closeAfterSelection&&this.close()}}]),c}(),WebsyForm=function(){function s(t,e){_classCallCheck(this,s);var i={submit:{text:"Save",classes:[]},useRecaptcha:!1,recaptchaAction:"submit",clearAfterSave:!1,fields:[],mode:"add",useLoader:!1,onSuccess:function(t){},onError:function(t){console.log("Error submitting form data:",t)}};if(GlobalPubSub.subscribe("recaptchaready",this.recaptchaReady.bind(this)),this.recaptchaResult=null,this.options=_extends({},i,e),t){this.apiService=new WebsyDesigns.APIService(""),this.fieldMap={},this.elementId=t;var n=document.getElementById(t);n&&(n.addEventListener("change",this.handleChange.bind(this)),n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("beforeinput",this.handleBeforeInput.bind(this)),n.addEventListener("input",this.handleInput.bind(this)),n.addEventListener("focusout",this.handleFocusOut.bind(this)),n.addEventListener("keyup",this.handleKeyUp.bind(this)),n.addEventListener("keydown",this.handleKeyDown.bind(this)),this.render())}else console.log("No element Id provided")}return _createClass(s,[{key:"cancelForm",value:function(){document.getElementById("".concat(this.elementId,"Form")).reset(),this.options.cancelFn&&this.options.cancelFn(this.elementId),this.loader.hide()}},{key:"checkRecaptcha",value:function(){var i=this;return new Promise(function(e,t){!0===i.options.useRecaptcha?i.recaptchaValue?i.apiService.add("google/checkrecaptcha",{grecaptcharesponse:i.recaptchaValue}).then(function(t){t.success&&!0===t.success?(e(!0),grecaptcha.reset("".concat(i.elementId,"_recaptcha"),{sitekey:ENVIRONMENT.RECAPTCHA_KEY})):e(!1)}):e(!1):!0===i.options.useRecaptchaV3?grecaptcha.ready(function(){grecaptcha.execute(ENVIRONMENT.RECAPTCHA_KEY,{action:i.options.recaptchaAction}).then(function(t){i.apiService.add("google/checkrecaptcha",{grecaptcharesponse:t}).then(function(t){t.success&&!0===t.success?(e(!0),grecaptcha.reset("".concat(i.elementId,"_recaptcha"),{sitekey:ENVIRONMENT.RECAPTCHA_KEY})):e(!1)})},function(t){console.log(t)})}):e(!0)})}},{key:"clear",value:function(){var e=this;document.getElementById("".concat(this.elementId,"Form")).reset(),this.options.fields||(this.options.fields=[]),this.options.fields.forEach(function(t){e.setValue(t.field,"")}),this.loader.hide()}},{key:"data",get:function(){var i=this,t=document.getElementById("".concat(this.elementId,"Form")),n={};new FormData(t).forEach(function(t,e){i.fieldMap[e]&&"checkbox"===i.fieldMap[e].type&&(n[e]=!0),i.fieldMap[e]&&i.fieldMap[e].instance&&i.fieldMap[e].instance.value?n[e]=i.fieldMap[e].instance.value:n[e]=t});var e=Object.keys(n);for(var s in this.fieldMap)-1===e.indexOf(s)&&(this.fieldMap[s]&&"checkbox"===this.fieldMap[s].type?n[s]=!1:!this.fieldMap[s]||"Switch"!==this.fieldMap[s].component&&"WebsySwitch"!==this.fieldMap[s].component?this.fieldMap[s]&&this.fieldMap[s].instance&&this.fieldMap[s].instance.value&&(n[s]=this.fieldMap[s].instance.value):n[s]=this.fieldMap[s].instance.options.enabled);return n},set:function(i){var n=this;this.options.fields||(this.options.fields=[]);var t=function(e){n.options.fields.forEach(function(t){t.field===e&&i[e]&&n.setValue(e,i[e])})};for(var e in i)t(e)}},{key:"confirmValidation",value:function(){var t=document.getElementById("".concat(this.elementId,"_validationFail"));t&&(t.innerHTML="")}},{key:"failValidation",value:function(t){var e=document.getElementById("".concat(this.elementId,"_validationFail"));e&&(e.innerHTML=t)}},{key:"handleChange",value:function(t){if("expiry"===t.target.getAttribute("data-user-type")&&7===t.target.value.length){var e=t.target.value.split("/");t.target.value="".concat(e[0],"/").concat(e[1].substring(2,4))}if(t.target.classList.contains("websy-input")){var i=t.target.getAttribute("data-index");this.options.fields[i]&&(this.options.fields[i].required||this.options.fields[i].validate)&&this.validateField(this.options.fields[i],t.target.value),this.options.fields[i].onChange&&this.options.fields[i].onChange({value:t.target.value,field:this.options.fields[i],form:this,index:i})}}},{key:"handleClick",value:function(t){t.target.classList.contains("submit")?(t.preventDefault(),t.stopPropagation(),this.submitForm()):t.target.classList.contains("cancel")&&(t.preventDefault(),this.cancelForm())}},{key:"handleFocusOut",value:function(t){if(t.target.classList.contains("websy-input")){var e=t.target.getAttribute("data-index");this.options.fields[e]&&(this.options.fields[e].required||this.options.fields[e].validate)&&this.validateField(this.options.fields[e],t.target.value),this.options.fields[e].onLeave&&this.options.fields[e].onLeave({value:t.target.value,field:this.options.fields[e],form:this,index:e})}}},{key:"handleKeyDown",value:function(t){"enter"===t.key&&!0===this.options.submitOnEnter&&this.submitForm()}},{key:"handleKeyUp",value:function(t){}},{key:"handleBeforeInput",value:function(t){if("expiry"===t.target.getAttribute("data-user-type")){var e=!isNaN(+t.data),i=!1;if(i||(i=-1!==["deleteContentBackward","deleteContentForward"].indexOf(t.inputType)),5===t.target.value.length&&!i||!i&&!e)return t.preventDefault(),!1;if("deleteContentBackward"===t.inputType&&t.target.value.indexOf("/")===t.target.selectionStart-1){var n=t.target.value.split("");n.pop(),t.target.value=n.join("")}}if("cvv"===t.target.getAttribute("data-user-type")){var s=!isNaN(+t.data),o=!1;if(o||(o=-1!==["deleteContentBackward","deleteContentForward"].indexOf(t.inputType)),3===t.target.value.length&&!o||!o&&!s)return t.preventDefault(),!1}}},{key:"handleInput",value:function(t){if("expiry"===t.target.getAttribute("data-user-type")){var e=t.target.value.split(""),i=!isNaN(+t.data);if("Backspace"===t.key&&"/"===e[e.length-1]&&3!==e.length)return e.pop(),void(t.target.value=e.join(""));2===t.target.selectionStart&&(e[2]&&-1===["deleteContentBackward","deleteContentForward"].indexOf(t.inputType)?t.target.setSelectionRange(3,3):i&&(t.target.value+="/"))}}},{key:"processComponents",value:function(t,e){var i=this;0===t.length?e():t.forEach(function(t){void 0!==WebsyDesigns[t.component]&&(t.options.onChange||(t.options.onChange=function(){(t.required||t.validate)&&i.validateField(t,t.instance.value)}),t.instance=new WebsyDesigns[t.component]("".concat(i.elementId,"_input_").concat(t.field,"_component"),t.options))})}},{key:"recaptchaReady",value:function(){var t=this;document.getElementById("".concat(this.elementId,"_recaptcha"))&&grecaptcha.ready(function(){grecaptcha.render("".concat(t.elementId,"_recaptcha"),{sitekey:ENVIRONMENT.RECAPTCHA_KEY,callback:t.validateRecaptcha.bind(t)})})}},{key:"render",value:function(t,e){var n=this,i=document.getElementById(this.elementId),s=[];if(i){var o='\n <form id="'.concat(this.elementId,'Form" class="websy-form ').concat((this.options.classes||[]).join(" "),'">\n ');this.options.fields.forEach(function(t,e){(n.fieldMap[t.field]=t).owningElement=n.elementId;var i="function"==typeof t.value?t.value():t.value;(t.disabled||t.readOnly||n.options.readOnly)&&(t.options||(t.options={}),t.disabled=!0,t.options.disabled=!0,t.classes||(t.classes=[]),t.options.classes||(t.options.classes=[]),t.classes.push("disabled"),t.options.classes.push("disabled"),(t.readOnly||n.options.readOnly)&&(t.classes.push("websy-input-readonly"),t.options.classes.push("websy-input-readonly"))),t.component?(s.push(t),o+="\n ".concat(0<e?"--\x3e":"","<div id='").concat(n.elementId,"_").concat(t.field,"_inputContainer' style='").concat(t.style||"","' class='websy-input-container ").concat(t.classes?t.classes.join(" "):""," ").concat("MediaUpload"===t.component?"media-upload":"","'>\n ").concat(t.label?'<label for="'.concat(t.field,'">').concat(t.label,"</label>"):"").concat(!0===t.required?'<span class="websy-form-required-value">*</span>':"","\n <div id='").concat(n.elementId,"_input_").concat(t.field,"_component' class='form-component'></div>\n <span id='").concat(n.elementId,"_").concat(t.field,"_error' class='websy-form-validation-error'></span>\n </div>\x3c!--\n ")):"longtext"===t.type?o+="\n ".concat(0<e?"--\x3e":"","<div id='").concat(n.elementId,"_").concat(t.field,"_inputContainer' style='").concat(t.style||"","' class='websy-input-container ").concat(t.classes?t.classes.join(" "):"","'>\n ").concat(t.label?'<label for="'.concat(t.field,'">').concat(t.label,"</label>"):"").concat(!0===t.required?'<span class="websy-form-required-value">*</span>':"",'\n <textarea\n id="').concat(n.elementId,"_input_").concat(t.field,'"\n ').concat(!0===t.required?"required":"",' \n placeholder="').concat(t.placeholder||"",'"\n data-user-type="').concat(t.type,'"\n data-index="').concat(e,'"\n name="').concat(t.field,'" \n ').concat(t.disabled||t.readOnly||n.options.readOnly?"disabled":"","\n ").concat((t.attributes||[]).join(" "),'\n class="websy-input websy-textarea ').concat(t.readOnly||n.options.readOnly?"websy-input-readonly":"",'"\n >').concat(i||"","</textarea>\n <span id='").concat(n.elementId,"_").concat(t.field,"_error' class='websy-form-validation-error'></span>\n </div>\x3c!--\n "):o+="\n ".concat(0<e?"--\x3e":"","<div id='").concat(n.elementId,"_").concat(t.field,"_inputContainer' style='").concat(t.style||"","' class='websy-input-container ").concat(t.classes?t.classes.join(" "):"","'>\n ").concat(t.label?'<label for="'.concat(t.field,'">').concat(t.label,"</label>"):"").concat(!0===t.required?'<span class="websy-form-required-value">*</span>':"",'\n <input \n id="').concat(n.elementId,"_input_").concat(t.field,'"\n ').concat(!0===t.required?"required":"",' \n type="').concat(("expiry"===t.type?"text":"cvv"===t.type?"number":t.type)||"text",'" \n data-user-type="').concat(t.type,'"\n data-index="').concat(e,'"\n class="websy-input ').concat(t.readOnly||n.options.readOnly?"websy-input-readonly":"",'" \n ').concat((t.attributes||[]).join(" "),'\n name="').concat(t.field,'" \n placeholder="').concat(t.placeholder||"",'"\n value="').concat("date"===t.type?"":i||"",'"\n valueAsDate="').concat("date"===t.type?i:"",'"\n ').concat(t.disabled||t.readOnly||n.options.readOnly?"disabled":"","\n oninvalidx=\"this.setCustomValidity('").concat(t.invalidMessage||"Please fill in this field.","')\"\n />\n <span id='").concat(n.elementId,"_").concat(t.field,"_error' class='websy-form-validation-error'></span>\n </div>\x3c!--\n ")}),!0===this.options.useRecaptcha&&(o+="\n --\x3e<div id='".concat(this.elementId,"_recaptcha' data-sitekey='").concat(ENVIRONMENT.RECAPTCHA_KEY,"' class='websy-form-recaptcha'></div>\n <div id='").concat(this.elementId,"_recaptchaError' class='websy-alert websy-alert-error websy-hidden'>Invalid recaptcha response</div>\x3c!--\n ")),this.options.readOnly?o+="--\x3e":o+='\n --\x3e<button class="websy-btn submit '.concat(this.options.submit.classes?this.options.submit.classes.join(" "):"",'">').concat(this.options.submit.text||"Save","</button>").concat(this.options.cancel?"\x3c!--":"","\n "),this.options.cancel&&(o+='\n --\x3e<button class="websy-btn cancel '.concat(this.options.cancel.classes?this.options.cancel.classes.join(" "):"",'">').concat(this.options.cancel.text||"Cancel","</button>\n ")),o+=' \n </form>\n <div id="'.concat(this.elementId,'_validationFail" class="websy-validation-failure"></div>\n <div id="').concat(this.elementId,'_loader" class=""></div>\n '),i.innerHTML=o,this.loader||(this.loader=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loader"),{title:"&nbsp;"})),this.processComponents(s,function(){!0!==n.options.useRecaptcha&&!0!==n.options.useRecaptchaV3||"undefined"==typeof grecaptcha||n.recaptchaReady()})}}},{key:"setValue",value:function(t,e){if(this.fieldMap[t])if(this.fieldMap[t].instance)this.fieldMap[t].instance.value=e;else{var i=document.getElementById("".concat(this.elementId,"_input_").concat(t));i?(i.value=e,i.setAttribute("value",e),"checkbox"===this.fieldMap[t].type&&(i.checked=e),"date"===this.fieldMap[t].type&&(i.valueAsDate=e)):console.error("Input for ".concat(t," does not exist in form."))}else console.error("Field ".concat(t," does not exist in form."))}},{key:"submitForm",value:function(){var s=this,o=document.getElementById("".concat(this.elementId,"Form")),a=o.querySelector("button.websy-btn.submit"),l=document.getElementById("".concat(this.elementId,"_recaptchaError"));this.options.preSubmitFn&&!1===this.options.preSubmitFn()||!0===this.validateForm()&&(a&&a.setAttribute("disabled",!0),this.checkRecaptcha().then(function(t){if(a&&a.removeAttribute("disabled"),!0===t){l&&l.classList.add("websy-hidden"),s.options.useLoader&&s.loader.show();new FormData(o);var i={};if(new FormData(o).forEach(function(t,e){i[e]=t}),s.options.url){var e,n=[s.options.url];"update"===s.options.mode&&n.push(s.options.id),n.push(i),(e=s.apiService)[s.options.mode].apply(e,n).then(function(t){!0===s.options.clearAfterSave&&o.reset(),a.removeAttribute("disabled"),s.options.onSuccess.call(s,t)},function(t){console.log("Error submitting form data:",t),s.options.onError.call(s,t)})}else s.options.submitFn&&s.options.submitFn(i,function(){s.loader.hide(),!0===s.options.clearAfterSave&&o.reset()},function(){s.loader.hide()})}else a&&a.removeAttribute("disabled"),l&&l.classList.remove("websy-hidden"),s.options.submitErr&&s.options.submitErr()}))}},{key:"validateForm",value:function(){for(var t=!0,e=this.data,i=0;i<this.options.fields.length;i++)(this.options.fields[i].required||this.options.fields[i].validate)&&!1===this.validateField(this.options.fields[i],e[this.options.fields[i].field])&&(t=!1);return t}},{key:"validateField",value:function(t,e){var i=document.getElementById("".concat(this.elementId,"_").concat(t.field,"_inputContainer")),n=document.getElementById("".concat(this.elementId,"_").concat(t.field,"_error"));if(t.required){if(!(t.component&&t.instance&&t.instance.value?0<t.instance.value.length:!(void 0===e||""===e)))return n&&(n.innerHTML=t.invalidMessage||"A value is required"),i&&i.classList.add("websy-form-input-has-error"),!1}if(t.validate&&!t.validate(t,e))return n&&(n.innerHTML=t.invalidMessage||"A value is required"),i&&i.classList.add("websy-form-input-has-error"),!1;return n&&(n.innerHTML=""),i&&i.classList.remove("websy-form-input-has-error"),!0}},{key:"validateRecaptcha",value:function(t){this.recaptchaValue=t}}]),s}(),MultiForm=function(){function n(t,e){_classCallCheck(this,n),this.elementId=t;this.options=_extends({},{addIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 512 512"><line x1="256" y1="112" x2="256" y2="400" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><line x1="400" y1="256" x2="112" y2="256" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',deleteIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 512 512"><line x1="368" y1="368" x2="144" y2="144" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><line x1="368" y1="144" x2="144" y2="368" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',allowAdd:!0,allowDelete:!0,addLabel:"",deleteLabel:"",emptyMessage:"No items to display"},e),this.formData=[],this.forms=[],this.recordsToDelete=[];var i=document.getElementById(t);i&&(i.addEventListener("click",this.handleClick.bind(this)),i.innerHTML="\n <div id='".concat(t,"_container' class='websy-multi-form-container' data-empty='").concat(this.options.emptyMessage,"'></div>\n <button id='").concat(this.elementId,"_addButton' class='websy-multi-form-add'>\n ").concat(this.options.addIcon).concat(this.options.addLabel,"\n </button> \n ")),this.render()}return _createClass(n,[{key:"addData",value:function(t){this.formData=this.formData.concat(t),this.render()}},{key:"addEntry",value:function(){var t=document.getElementById("".concat(this.elementId,"_addButton"));if(void 0===this.options.maxRows||this.forms.length<this.options.maxRows){var e=document.getElementById("".concat(this.elementId,"_container")),i=WebsyDesigns.Utils.createIdentity(),n=document.createElement("div");n.id="".concat(this.elementId,"_").concat(i,"_formContainer"),n.classList.add("websy-multi-form-form-container");var s="\n <div id='".concat(this.elementId,"_").concat(i,"_form' class='websy-multi-form-form'>\n </div>\n <button id='").concat(this.elementId,"_").concat(i,"_deleteButton' data-formid='").concat(i,"' class='websy-multi-form-delete'>\n ").concat(this.options.deleteIcon).concat(this.options.deleteLabel,"\n </button>\n ");n.innerHTML=s,e.appendChild(n);var o=_extends({},this.options,{fields:_toConsumableArray(this.options.fields.map(function(t){return _extends({},t)}))});this.forms.push(new WebsyDesigns.Form("".concat(this.elementId,"_").concat(i,"_form"),o)),t&&(t.style.display=this.forms.length<this.options.maxRows?"flex":"none")}}},{key:"clear",value:function(){this.formData=[],this.forms=[],this.recordsToDelete=[];var t=document.getElementById("".concat(this.elementId,"_container"));t&&(t.innerHTML="")}},{key:"data",get:function(){return this.forms.map(function(t){return t.data})},set:function(t){this.formData=t,this.render()}},{key:"deleted",get:function(){var e=this;return this.formData.filter(function(t){return e.recordsToDelete.includes("".concat(t.id))})}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-multi-form-add")&&!0===this.options.allowAdd&&this.addEntry(),t.target.classList.contains("websy-multi-form-delete")){var e=t.target.getAttribute("data-formid"),i=t.target.getAttribute("data-rowid");this.recordsToDelete.push(i);for(var n=-1,s=0;s<this.forms.length;s++)if(this.forms[s].elementId==="".concat(this.elementId,"_").concat(e,"_form")){n=s;break}-1!==n&&this.forms.splice(n,1);var o=document.getElementById("".concat(this.elementId,"_").concat(e,"_formContainer"));o&&o.remove();var a=document.getElementById("".concat(this.elementId,"_addButton"));a&&(a.style.display=void 0===this.options.maxRows||this.forms.length<this.options.maxRows?"flex":"none")}}},{key:"render",value:function(){var s=this;this.forms=[],this.recordsToDelete=[];var t=document.getElementById("".concat(this.elementId,"_container"));if(t){var e="";this.formData.forEach(function(t){t.formId=WebsyDesigns.Utils.createIdentity(),e+="\n <div id='".concat(s.elementId,"_").concat(t.formId,"_formContainer' class='websy-multi-form-form-container'>\n <div id='").concat(s.elementId,"_").concat(t.formId,"_form' class='websy-multi-form-form'>\n </div>\n "),!0!==s.options.allowDelete||s.options.readOnly||(e+="\n <button id='".concat(s.elementId,"_").concat(t.formId,"_deleteButton' data-formid='").concat(t.formId,"' data-rowid='").concat(t.id,"' class='websy-multi-form-delete'>\n ").concat(s.options.deleteIcon).concat(s.options.deleteLabel,"\n </button>\n ")),e+="\n </div>\n "});WebsyDesigns.Utils.createIdentity();t.innerHTML=e,this.forms=new Array(this.formData.length),this.formData.forEach(function(t,e){var i=_extends({},s.options,{fields:_toConsumableArray(s.options.fields.map(function(t){return _extends({},t)}))}),n=new WebsyDesigns.Form("".concat(s.elementId,"_").concat(t.formId,"_form"),i);n.data=t,s.forms[e]=n});var i=document.getElementById("".concat(this.elementId,"_addButton"));i&&(!0!==this.options.allowAdd||this.options.readOnly?i.style.display="none":i.style.display=void 0===this.options.maxRows||this.forms.length<this.options.maxRows?"flex":"none")}}},{key:"validateForm",value:function(){for(var t=0;t<this.forms.length-1;t++){if(!this.forms[t].validateForm())return!1}return!0}}]),n}(),WebsyIcons={"search-icon":'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" xml:space="preserve">\n<path d="M481.4,468.6c-17.2-17.2-34.4-34.4-51.6-51.6c-27.4-27.4-54.8-54.8-82.2-82.2c-4.8-4.8-9.5-9.5-14.3-14.3\n\tc29.4-32.5,47.4-75.5,47.4-122.7C380.7,97,298.7,15,197.9,15S15,97,15,197.9s82,182.9,182.9,182.9c47.2,0,90.3-18,122.7-47.4\n\tc15.7,15.7,31.4,31.4,47.1,47.1c27.4,27.4,54.8,54.8,82.2,82.2c6.3,6.3,12.5,12.5,18.8,18.8C476.8,489.6,489.6,476.8,481.4,468.6z\n\t M35,197.9C35,108.1,108.1,35,197.9,35s162.9,73.1,162.9,162.9s-73.1,162.9-162.9,162.9S35,287.7,35,197.9z"/>\n</svg>\n\n ',"bag-icon":'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500">\n<path d="M456.6,472.3H43.4c-5.3,0-10.2-2.1-13.7-6c-3.6-3.9-5.2-9.2-4.5-14.4l37-285.4c1.2-9,9-15.9,18.2-15.9h339.2\n\tc9.2,0,17,6.8,18.2,15.8l37,285.4c0.7,5.2-1,10.5-4.5,14.4l0,0C466.8,470.1,461.9,472.3,456.6,472.3z M46.5,451.2h407l-36.3-279.6\n\tH82.8L46.5,451.2z"/>\n<g>\n\t<path d="M361.3,157.1C357.3,94.8,308.4,46,249.9,46c-28,0-54.8,11.1-75.4,31.4c-20.7,20.3-33.5,47.9-35.9,77.8l-21.5-1.6\n\t\tc2.8-34.8,17.7-67.1,42.1-91C183.9,38.3,216.1,25,249.9,25c34.2,0,66.6,13.6,91.5,38.3c24.5,24.3,39.2,57.2,41.5,92.5L361.3,157.1z\n\t\t"/>\n</g>\n</svg>\n\n ',"user-icon":'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n<g>\n\t<path d="M248,260.5c-62,0-112.5-52.8-112.5-117.7S186,25,248,25s112.5,52.8,112.5,117.7S310,260.5,248,260.5z M248,45.9\n\t\tc-51,0-92.5,43.4-92.5,96.8s41.5,96.8,92.5,96.8c51,0,92.5-43.4,92.5-96.8S299,45.9,248,45.9z"/>\n</g>\n<path d="M45,475C45,475,45,475,45,475c0-118.3,92-214.5,205-214.5c113,0,205,96.2,205,214.5c0,0,0,0,0,0h20c0,0,0,0,0,0\n\tc0-62.9-23.4-122-65.9-166.5c-42.5-44.5-99-69-159.1-69s-116.6,24.5-159.1,69C48.4,353,25,412.1,25,475c0,0,0,0,0,0H45z"/>\n</svg>\n\n ',Search:'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" xml:space="preserve">\n<path d="M481.4,468.6c-17.2-17.2-34.4-34.4-51.6-51.6c-27.4-27.4-54.8-54.8-82.2-82.2c-4.8-4.8-9.5-9.5-14.3-14.3\n\tc29.4-32.5,47.4-75.5,47.4-122.7C380.7,97,298.7,15,197.9,15S15,97,15,197.9s82,182.9,182.9,182.9c47.2,0,90.3-18,122.7-47.4\n\tc15.7,15.7,31.4,31.4,47.1,47.1c27.4,27.4,54.8,54.8,82.2,82.2c6.3,6.3,12.5,12.5,18.8,18.8C476.8,489.6,489.6,476.8,481.4,468.6z\n\t M35,197.9C35,108.1,108.1,35,197.9,35s162.9,73.1,162.9,162.9s-73.1,162.9-162.9,162.9S35,287.7,35,197.9z"/>\n</svg>\n\n ',Bag:'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500">\n<path d="M456.6,472.3H43.4c-5.3,0-10.2-2.1-13.7-6c-3.6-3.9-5.2-9.2-4.5-14.4l37-285.4c1.2-9,9-15.9,18.2-15.9h339.2\n\tc9.2,0,17,6.8,18.2,15.8l37,285.4c0.7,5.2-1,10.5-4.5,14.4l0,0C466.8,470.1,461.9,472.3,456.6,472.3z M46.5,451.2h407l-36.3-279.6\n\tH82.8L46.5,451.2z"/>\n<g>\n\t<path d="M361.3,157.1C357.3,94.8,308.4,46,249.9,46c-28,0-54.8,11.1-75.4,31.4c-20.7,20.3-33.5,47.9-35.9,77.8l-21.5-1.6\n\t\tc2.8-34.8,17.7-67.1,42.1-91C183.9,38.3,216.1,25,249.9,25c34.2,0,66.6,13.6,91.5,38.3c24.5,24.3,39.2,57.2,41.5,92.5L361.3,157.1z\n\t\t"/>\n</g>\n</svg>\n\n ',User:'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n<g>\n\t<path d="M248,260.5c-62,0-112.5-52.8-112.5-117.7S186,25,248,25s112.5,52.8,112.5,117.7S310,260.5,248,260.5z M248,45.9\n\t\tc-51,0-92.5,43.4-92.5,96.8s41.5,96.8,92.5,96.8c51,0,92.5-43.4,92.5-96.8S299,45.9,248,45.9z"/>\n</g>\n<path d="M45,475C45,475,45,475,45,475c0-118.3,92-214.5,205-214.5c113,0,205,96.2,205,214.5c0,0,0,0,0,0h20c0,0,0,0,0,0\n\tc0-62.9-23.4-122-65.9-166.5c-42.5-44.5-99-69-159.1-69s-116.6,24.5-159.1,69C48.4,353,25,412.1,25,475c0,0,0,0,0,0H45z"/>\n</svg>\n\n ',DockLeft:'\n <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n\t<g>\n\t\t<path d="M419.7,425H80.3C49.8,425,25,400.2,25,369.7V130.3C25,99.8,49.8,75,80.3,75h339.4c30.5,0,55.3,24.8,55.3,55.3v239.4\n\t\t\tC475,400.2,450.2,425,419.7,425z M80.3,95C60.8,95,45,110.8,45,130.3v239.4c0,19.5,15.8,35.3,35.3,35.3h339.4\n\t\t\tc19.5,0,35.3-15.8,35.3-35.3V130.3c0-19.5-15.8-35.3-35.3-35.3H80.3z"/>\n\t</g>\n\t<path d="M92.8,90.1H92h-4.2c-24.8,0-45,20.2-45,45v229.8c0,24.8,20.2,45,45,45H92h0.8h105.4V90.1H92.8z"/>\n</svg>\n\n ',DockRight:'\n <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n\t<g>\n\t\t<path d="M25,369.7V130.3C25,99.8,49.8,75,80.3,75h339.4c30.5,0,55.3,24.8,55.3,55.3v239.4c0,30.5-24.8,55.3-55.3,55.3H80.3\n\t\t\tC49.8,425,25,400.2,25,369.7z M80.3,95C60.8,95,45,110.8,45,130.3v239.4c0,19.5,15.8,35.3,35.3,35.3h339.4\n\t\t\tc19.5,0,35.3-15.8,35.3-35.3V130.3c0-19.5-15.8-35.3-35.3-35.3H80.3z"/>\n\t</g>\n\t<path d="M407.2,90.1h0.8h4.2c24.8,0,45,20.2,45,45v229.8c0,24.8-20.2,45-45,45H408h-0.8H301.8V90.1H407.2z"/>\n</svg>\n\n ',Pin:'\n <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n\t<g>\n\t\t<path d="M368,312.1H132l-0.6-9.4c-0.1-2.4-0.2-4.8-0.2-7.1c0-40.3,20.7-78.1,54.4-99.9V73.2h-9c-13,0-23.6-10.6-23.6-23.6\n\t\t\tS163.5,26,176.6,26h146.9c13,0,23.6,10.6,23.6,23.6s-10.6,23.6-23.6,23.6h-9v122.5c33.7,21.8,54.4,59.5,54.4,99.9\n\t\t\tc0,2.3-0.1,4.7-0.2,7.1L368,312.1z M151.2,292.1h197.5c-1.2-33.8-19.9-65.1-49.4-82.1l-5-2.9V53.2h29c2,0,3.6-1.6,3.6-3.6\n\t\t\tc0-2-1.6-3.6-3.6-3.6H176.6c-2,0-3.6,1.6-3.6,3.6c0,2,1.6,3.6,3.6,3.6h29v153.9l-5,2.9C171.1,227,152.4,258.3,151.2,292.1z"/>\n\t</g>\n\t<path d="M260.9,403.8V299.9h-21.8v108.8h0c0.1,36.1,4.9,65.3,10.9,65.3c6,0,10.9-29.7,10.9-66.4\n\t\tC260.9,406.4,260.9,405.1,260.9,403.8z"/>\n</svg>\n\n ',WindowPopout:'\n <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n<style type="text/css">\n\t.st0{fill:none;stroke:#000000;stroke-width:20;stroke-miterlimit:10;}\n</style>\n<path class="st0" d="M420.1,359.6h-285c-24.7,0-45-20.2-45-45V124.9c0-24.7,20.2-45,45-45h285c24.7,0,45,20.2,45,45v189.7\n\tC465.1,339.3,444.9,359.6,420.1,359.6z"/>\n<path class="st0" d="M407.3,389.8c-6.3,17.3-22.9,29.7-42.3,29.7H80c-24.7,0-45-20.2-45-45V184.9c0-18.2,10.9-33.9,26.5-41"/>\n</svg>\n\n ',Plus:'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 500 500">\n<path d="M254.7,486h-10.3c-5.5,0-10-4.5-10-10V26c0-5.5,4.5-10,10-10h10.3c5.5,0,10,4.5,10,10v450C264.6,481.5,260.2,486,254.7,486z"/>\n<path d="M15,255.1v-10.3c0-5.5,4.5-10,10-10h450c5.5,0,10,4.5,10,10v10.3c0,5.5-4.5,10-10,10H25C19.5,265.1,15,260.7,15,255.1z"/>\n</svg>\n\n ',Minus:'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 500 500">\n<path d="M15,255.1v-10.3c0-5.5,4.5-10,10-10h450c5.5,0,10,4.5,10,10v10.3c0,5.5-4.5,10-10,10H25C19.5,265.1,15,260.7,15,255.1z"/>\n</svg>\n ',PlusFilled:'\n <?xml version="1.0" encoding="utf-8"?>\n<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n<style type="text/css">\n\t.st0{fill:#FFFFFF;}\n</style>\n<circle cx="249.6" cy="251" r="235"/>\n<path class="st0" d="M422.3,234.8H264.7V78.7c0-4.2-4.5-7.7-10-7.7h-10.3c-5.5,0-10,3.4-10,7.7v156.1H77.7c-4.2,0-7.7,4.5-7.7,10\n\tv10.3c0,5.6,3.4,10,7.7,10h156.7v158.2c0,4.2,4.5,7.7,10,7.7h10.3c5.5,0,9.9-3.4,10-7.7V265.1h157.6c4.2,0,7.7-4.5,7.7-10v-10.3\n\tC430,239.3,426.6,234.8,422.3,234.8z"/>\n</svg>\n\n ',MinusFilled:'\n <?xml version="1.0" encoding="utf-8"?>\n<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n<style type="text/css">\n\t.st0{fill:#FFFFFF;}\n</style>\n<circle cx="250.1" cy="255.4" r="235"/>\n<path class="st0" d="M70,255.1v-10.3c0-5.5,3.4-10,7.7-10h344.7c4.2,0,7.7,4.5,7.7,10v10.3c0,5.5-3.4,10-7.7,10H77.7\n\tC73.4,265.1,70,260.7,70,255.1z"/>\n</svg>\n\n '},WebsyLoadingDialog=function(){function i(t,e){_classCallCheck(this,i),this.options=_extends({},e),t?this.elementId=t:console.log("No element Id provided")}return _createClass(i,[{key:"hide",value:function(){var t=document.getElementById(this.elementId);t&&(t.classList.remove("loading"),t.innerHTML="")}},{key:"render",value:function(){if(this.elementId){var t=document.getElementById(this.elementId);if(t){var e="\n <div class='websy-loading-container ".concat((this.options.classes||[]).join(" "),"'>\n <div class='websy-ripple'>\n <div></div>\n <div></div>\n </div>\n <h4>").concat(this.options.title||"Loading...","</h4>\n ");if(this.options.messages)for(var i=0;i<this.options.messages.length;i++)e+="<p>".concat(this.options.messages[i],"</p>");e+="\n </div>\t\n ",t.classList.add("loading"),t.innerHTML=e}}else console.log("No element Id provided for Websy Loading Dialog")}},{key:"show",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1];t&&(this.options=!0===e?_extends({},t):_extends({},this.options,t)),this.render()}}]),i}(),WebsyNavigationMenu=function(){function n(t,e){if(_classCallCheck(this,n),this.options=_extends({},{collapsible:!1,orientation:"horizontal",parentMap:{},childIndentation:10,activeSymbol:"none",enableSearch:!1,searchProp:"text",indent:"padding",expandIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 512 512"><polyline points="112 184 256 328 400 184" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:48px"/></svg>',collapseIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 512 512"><polyline points="328 112 184 256 328 400" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:48px"/></svg>',menuIcon:'<svg viewbox="0 0 40 40" width="30" height="40"> \n <rect x="0" y="0" width="30" height="4" rx="2"></rect>\n <rect x="0" y="12" width="30" height="4" rx="2"></rect>\n <rect x="0" y="24" width="30" height="4" rx="2"></rect>\n </svg>',searchOptions:{}},e),t){this.maxLevel=0;var i=document.getElementById(t);i&&(this.elementId=t,this.lowestLevel=0,this.flatItems=[],this.itemMap={},this.flattenItems(0,this.options.items),i.classList.add("websy-".concat(this.options.orientation,"-list-container")),i.classList.add("websy-menu"),this.options.align&&i.classList.add("".concat(this.options.align,"-align")),Array.isArray(this.options.classes)&&(this.options.classes=this.options.classes.join(" ")),this.options.classes&&this.options.classes.split(" ").forEach(function(t){return i.classList.add(t)}),i.addEventListener("click",this.handleClick.bind(this)),this.render())}else console.log("No element Id provided for Websy Menu")}return _createClass(n,[{key:"activateItem",value:function(t){var e=document.getElementById(t);if(e){e.classList.add("active");for(var i=e.parentElement;i;)if("UL"===i.tagName){i.classList.remove("websy-menu-collapsed");var n=i.getAttribute("data-path").split("::").pop(),s=document.getElementById(n);s&&s.classList.contains("websy-menu-header")&&s.classList.add("menu-open"),i=i.parentElement}else i="LI"===i.tagName?i.parentElement:null}}},{key:"collapseAll",value:function(){var t=document.getElementById(this.elementId),e=t.querySelectorAll(".websy-child-list"),i=t.querySelectorAll(".websy-menu-header");Array.from(e).forEach(function(t){return t.classList.add("websy-menu-collapsed")}),Array.from(i).forEach(function(t){t.classList.remove("active"),t.classList.remove("menu-open")})}},{key:"flattenItems",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0,n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:"";e[t]&&(this.lowestLevel=Math.max(i,this.lowestLevel),e[t].id=e[t].id||"".concat(this.elementId,"_").concat(this.normaliseString(e[t].text)),e[t].level=i,e[t].hasChildren=e[t].items&&0<e[t].items.length,e[t].path=""!==n?"".concat(n,"::").concat(e[t].id):e[t].id,this.itemMap[e[t].id]=_extends({},e[t]),this.flatItems.push(e[t]),e[t].items&&this.flattenItems(0,e[t].items,i+1,e[t].path),this.flattenItems(++t,e,i,n))}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-menu-icon")&&this.toggleMobileMenu(),t.target.classList.contains("websy-menu-header")){var e=this.itemMap[t.target.id];if(t.target.classList.contains("trigger-item")&&e.level===this.lowestLevel&&this.toggleMobileMenu("remove"),e&&!0===e.hasChildren)t.target.classList.toggle("menu-open"),this.toggleMenu(e.id);else{var i=document.getElementById(this.elementId).querySelectorAll(".websy-menu-header");Array.from(i).forEach(function(t){return t.classList.remove("active")}),t.target.classList.add("active")}}t.target.classList.contains("websy-menu-mask")&&this.toggleMobileMenu()}},{key:"handleSearch",value:function(e){var i=this,t=document.getElementById(this.elementId),n=this.flatItems.filter(function(t){return!t.hasChildren}),s=n,o="remove";e&&1<e.length&&(o="add",s=n.filter(function(t){return-1!==t[i.options.searchProp].toLowerCase().indexOf(e.toLowerCase())}));for(var a=t.querySelectorAll("div.websy-menu-header"),l=0;l<a.length;l++)a[l].classList[o]("websy-hidden"),a[l].classList.remove("menu-open");for(var r=t.querySelectorAll("ul.websy-child-list"),c=0;c<r.length;c++)r[c].classList.add("websy-menu-collapsed");e&&1<e.length&&s.forEach(function(t){t.path.split("::").forEach(function(t){var e=document.getElementById(t);e&&(e.classList.remove("websy-hidden"),e.classList.add("menu-open"));var i=document.getElementById("".concat(t,"_list"));i&&i.classList.remove("websy-menu-collapsed")})})}},{key:"normaliseString",value:function(t){return t.replace(/-/g,"").replace(/\s/g,"_")}},{key:"render",value:function(){var t=document.getElementById(this.elementId);if(t){var e="";!0===this.options.collapsible&&(e+="\n <div id='".concat(this.elementId,"_menuIcon' class='websy-menu-icon'>\n ").concat(this.options.menuIcon,"\n </div>\n ")),this.options.logo&&(Array.isArray(this.options.logo.classes)&&(this.options.logo.classes=this.options.logo.classes.join(" ")),e+=" \n <div \n class='logo ".concat(this.options.logo.classes||"","'\n ").concat(this.options.logo.attributes&&this.options.logo.attributes.join(" "),"\n >\n <img src='").concat(this.options.logo.url,"'></img>\n </div>\n <div id='").concat(this.elementId,"_mask' class='websy-menu-mask'></div>\n <div id=\"").concat(this.elementId,'_menuContainer" class="websy-menu-block-container">\n ')),!0===this.options.enableSearch&&(e+="\n <div id='".concat(this.elementId,"_search' class='websy-menu-search'></div>\n ")),e+=this.renderBlock(this.elementId,this.elementId,this.options.items,"main",0),e+="</div>",this.options.secondaryItems&&(e+="<div class='websy-menu-secondary' style='height: ".concat(this.options.secondaryHeight||"100%","; width: ").concat(this.options.secondaryWidth||"100%","'>"),e+=this.renderBlock(this.elementId,this.elementId,this.options.secondaryItems,"main",0),e+="</div>"),t.innerHTML=e;var i=t.querySelector(".websy-menu-header.active");if(i)for(var n=i.parentElement;n;)if("UL"===n.tagName){n.classList.remove("websy-menu-collapsed");var s=n.getAttribute("data-path").split("::").pop(),o=document.getElementById(s);o&&o.classList.contains("websy-menu-header")&&o.classList.add("menu-open"),n=n.parentElement}else n="LI"===n.tagName?n.parentElement:null;!0===this.options.enableSearch&&(this.search=new WebsyDesigns.Search("".concat(this.elementId,"_search"),_extends({},{onSearch:this.handleSearch.bind(this),onClear:this.handleSearch.bind(this)},this.options.searchOptions)))}}},{key:"renderBlock",value:function(t,e,i,n){var s=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0;this.maxLevel=Math.max(this.maxLevel,s);var o="\n\t\t <ul class='websy-".concat(this.options.orientation,"-list ").concat(0<s?"websy-child-list":""," ").concat("main"!==n?"websy-menu-collapsed":"","' id='").concat(t,"_list' data-path='").concat(e,"'\n\t ");"main"!==n&&(o+=" data-collapsed='".concat("main"!==n?"true":"false","'")),o+=">";for(var a=0;a<i.length;a++){var l=!0===i[a].default?"active":"",r=this.normaliseString(i[a].text),c=i[a].items&&0<i[a].items.length?"":"websy-menu-last-level",h=i[a].id;Array.isArray(i[a].classes)&&(i[a].classes=i[a].classes.join(" ")),o+="\n\t\t\t<li class='websy-".concat(this.options.orientation,"-list-item ").concat(!0===i[a].alwaysOpen?"always-open":"","'>\n\t\t\t\t<div class='websy-menu-header ").concat(c," websy-menu-level-").concat(s," ").concat(i[a].classes||""," ").concat(""," ").concat(l,"' \n id='").concat(h,"' \n data-id='").concat(r,"'\n data-path='").concat(i[a].path,"'\n data-menu-id='").concat(this.elementId,"_").concat(r,"_list'\n data-popout-id='").concat(1<s?n:r,"'\n data-text='").concat(!0!==i[a].isLink?i[a].text:"","'\n style='").concat(this.options.indent,"-left: ").concat(s*this.options.childIndentation,"px'\n ").concat(i[a].attributes&&i[a].attributes.join(" ")||"","\n >\n "),"horizontal"===this.options.orientation&&(o+=i[a].text),"line"===this.options.activeSymbol&&(o+="\n <span class='selected-bar'></span>\n "),this.options.orientation,!0===i[a].isLink&&i[a].href&&(o+="<a href='".concat(i[a].href,"' target='").concat(i[a].openInNewTab?"blank":"_self","'>")),i[a].icon&&(o+="\n <div class='websy-menu-item-icon'>".concat(i[a].icon,"</div>\n ")),o+="<span>".concat(i[a].text,"</span>"),!0===i[a].isLink&&i[a].href&&(o+="</a>"),i[a].items&&0<i[a].items.length&&(o+=" \n <div class='websy-menu-expand-collapse-buttons'>".concat(this.options.expandIcon).concat(this.options.collapseIcon,"</div>\n ")),"triangle"===this.options.activeSymbol&&(o+="\n <span class='active-square'></span>\n "),o+=" \n\t\t\t\t</div>\n\t\t ",i[a].items&&(o+=this.renderBlock(h,i[a].path,i[a].items,r,i[a].level+1)),n&&"main"!==n&&(this.options.parentMap[r]||(this.options.parentMap[r]=n)),o+="\n\t\t\t</li>\n\t\t"}return o+="</ul>"}},{key:"toggleMenu",value:function(t){var e=document.getElementById("".concat(t,"_list"));e&&e.classList.toggle("websy-menu-collapsed")}},{key:"toggleMobileMenu",value:function(t){void 0===t&&(t="toggle");var e=document.getElementById("".concat(this.elementId));e&&e.classList[t]("open"),this.options.onToggle&&this.options.onToggle(t)}}]),n}(),Pager=function(){function o(t,e){var i=this;_classCallCheck(this,o),this.elementId=t;this.options=_extends({},{pageSizePrefix:"Show",pageSizeSuffix:"rows",pageSizeOptions:[{label:"10",value:10},{label:"20",value:20},{label:"50",value:50},{label:"100",value:100}],selectedPageSize:20,pageLabel:"Page",showPageSize:!0,activePage:0,pages:[]},e);var n=document.getElementById(this.elementId);if(n){var s='\n <div class="websy-pager-container">\n ';!0===this.options.showPageSize&&(s+="\n ".concat(this.options.pageSizePrefix,' <div id="').concat(this.elementId,'_pageSizeSelector" class="websy-page-selector"></div> ').concat(this.options.pageSizeSuffix," \n ")),s+='\n <ul id="'.concat(this.elementId,'_pageList" class="websy-page-list"></ul> \n </div> \n '),n.innerHTML=s,n.addEventListener("click",this.handleClick.bind(this)),!0===this.options.showPageSize&&(this.pageSizeSelector=new WebsyDesigns.Dropdown("".concat(this.elementId,"_pageSizeSelector"),{selectedItems:[this.options.pageSizeOptions.indexOf(this.options.selectedPageSize)],items:this.pageSizeOptions.map(function(t){return{label:t.toString(),value:t}}),allowClear:!1,disableSearch:!0,onItemSelected:function(t){i.options.onChangePageSize&&i.options.onChangePageSize(t.value)}})),this.render()}}return _createClass(o,[{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-page-num")){var e=+t.target.getAttribute("data-index");this.options.onSetPage&&this.options.onSetPage(this.options.pages[e])}}},{key:"render",value:function(){var i=this,t=document.getElementById("".concat(this.elementId,"_pageList"));if(t){var e=this.options.pages.map(function(t,e){return'<li data-index="'.concat(e,'" class="websy-page-num ').concat(i.options.activePage===e?"active":"",'">').concat(e+1,"</li>")}),n=0;8<this.options.pages.length&&(n=Math.max(0,this.options.activePage-4),e=e.splice(n,10),0<n?e.splice(0,0,"<li>".concat(this.options.pageLabel,'&nbsp;</li><li data-page="0" class="websy-page-num">First</li><li>...</li>')):e.splice(0,0,"<li>".concat(this.options.pageLabel,"&nbsp;</li>")),this.options.activePage<this.options.pages.length-1&&(e.push("<li>...</li>"),e.push('<li data-page="'.concat(this.options.pages.length-1,'" class="websy-page-num">Last</li>')))),t.innerHTML=e.join("")}}}]),o}(),WebsyPDFButton=function(){function n(t,e){_classCallCheck(this,n);this.elementId=t,this.options=_extends({},{classes:[],wait:0,buttonText:"Download",directDownload:!1,preProcess:function(t){return t(!0)},onError:function(){}},e),this.service=new WebsyDesigns.APIService("/pdf");var i=document.getElementById(this.elementId);i&&(i.addEventListener("click",this.handleClick.bind(this)),e.html?i.innerHTML=e.html:(i.innerHTML="\n \x3c!--<form style='display: none;' id='".concat(this.elementId,"_form' action='/pdf' method='POST'>\n <input id='").concat(this.elementId,"_pdfHeader' value='' name='header'>\n <input id='").concat(this.elementId,"_pdfHTML' value='' name='html'>\n <input id='").concat(this.elementId,"_pdfFooter' value='' name='footer'>\n </form>--\x3e\n <button class='websy-btn websy-pdf-button ").concat(this.options.classes.join(" "),'\'>\n Create PDF\n <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n viewBox="0 0 184.153 184.153" style="enable-background:new 0 0 184.153 184.153;" xml:space="preserve">\n <g>\n <g>\n <g>\n <path d="M129.318,0H26.06c-1.919,0-3.475,1.554-3.475,3.475v177.203c0,1.92,1.556,3.475,3.475,3.475h132.034\n c1.919,0,3.475-1.554,3.475-3.475V34.131C161.568,22.011,140.771,0,129.318,0z M154.62,177.203H29.535V6.949h99.784\n c7.803,0,25.301,18.798,25.301,27.182V177.203z"/>\n <path d="M71.23,76.441c15.327,0,27.797-12.47,27.797-27.797c0-15.327-12.47-27.797-27.797-27.797\n c-15.327,0-27.797,12.47-27.797,27.797C43.433,63.971,55.902,76.441,71.23,76.441z M71.229,27.797\n c11.497,0,20.848,9.351,20.848,20.847c0,0.888-0.074,1.758-0.183,2.617l-18.071-2.708L62.505,29.735\n C65.162,28.503,68.112,27.797,71.229,27.797z M56.761,33.668l11.951,19.869c0.534,0.889,1.437,1.49,2.462,1.646l18.669,2.799\n c-3.433,6.814-10.477,11.51-18.613,11.51c-11.496,0-20.847-9.351-20.847-20.847C50.381,42.767,52.836,37.461,56.761,33.668z"/>\n <rect x="46.907" y="90.339" width="73.058" height="6.949"/>\n <rect x="46.907" y="107.712" width="48.644" height="6.949"/>\n <rect x="46.907" y="125.085" width="62.542" height="6.949"/>\n </g>\n </g>\n </g> \n </svg>\n </button> \n <div id=\'').concat(this.elementId,"_loader'></div>\n <div id='").concat(this.elementId,"_popup'></div>\n "),this.loader=new WebsyDesigns.WebsyLoadingDialog("".concat(this.elementId,"_loader"),{classes:["global-loader"]}),this.popup=new WebsyDesigns.WebsyPopupDialog("".concat(this.elementId,"_popup"))))}return _createClass(n,[{key:"handleClick",value:function(t){var s=this;t.target.classList.contains("websy-pdf-button")?(this.loader.show(),this.options.preProcess(function(t){!0===t?setTimeout(function(){if(s.options.targetId){var t=document.getElementById(s.options.targetId);if(t){var e={options:{}};if(s.options.pdfOptions&&(e.options=_extends({},s.options.pdfOptions)),s.options.header)if(s.options.header.elementId){var i=document.getElementById(s.options.header.elementId);i&&(e.header=i.outerHTML,s.options.header.css&&(e.options.headerCSS=s.options.header.css))}else s.options.header.html?(e.header=s.options.header.html,s.options.header.css&&(e.options.headerCSS=s.options.header.css)):e.header=s.options.header;if(s.options.footer)if(s.options.footer.elementId){var n=document.getElementById(s.options.footer.elementId);n&&(e.footer=n.outerHTML,s.options.footer.css&&(e.options.footerCSS=s.options.footer.css))}else e.footer=s.options.footer;e.html=t.outerHTML,s.service.add("",e,{responseType:"blob"}).then(function(t){s.loader.hide();var e,i=new Blob([t],{type:"application/pdf"}),n="\n <div class='text-center websy-pdf-download'>\n <div>Your file is ready to download</div>\n <a href='".concat(URL.createObjectURL(i),"' target='_blank'\n ");!0===s.options.directDownload&&(e="function"==typeof s.options.fileName?s.options.fileName()||"Export":s.options.fileName||"Export",n+='download="'.concat(e.replace(/'/g,""),'.pdf"'));n+="\n >\n <button class='websy-btn download-pdf'>".concat(s.options.buttonText,"</button>\n </a>\n </div>\n "),s.popup.show({message:n,mask:!0})},function(t){console.error(t)})}}},s.options.wait):(s.loader.hide(),s.options.onError())})):t.target.classList.contains("download-pdf")&&(this.popup.hide(),this.options.onClose&&this.options.onClose())}},{key:"render",value:function(){}}]),n}(),WebsyPopupDialog=function(){function n(t,e){if(_classCallCheck(this,n),this.DEFAULTS={buttons:[],classes:[],style:""},this.options=_extends({},this.DEFAULTS,e),t){this.closeOnOutsideClick=!0;var i=document.getElementById(t);this.elementId=t,i&&i.addEventListener("click",this.handleClick.bind(this))}else console.log("No element Id provided for Websy Popup")}return _createClass(n,[{key:"hide",value:function(){var t=document.getElementById(this.elementId);t&&(t.innerHTML="")}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-btn")){var e=t.target.getAttribute("data-index"),i=this.options.buttons[e];if(i&&i.fn){if(void 0!==this.options.collectData){var n=document.getElementById("".concat(this.elementId,"_collect"));n&&(i.collectedData=n.value)}!0!==i.preventClose&&this.hide(),i.fn(i)}else i&&!0!==i.preventClose&&this.hide()}else!0===this.closeOnOutsideClick&&this.hide()}},{key:"render",value:function(){if(this.elementId){var t=document.getElementById(this.elementId);if(t){var e="";if(!0===this.options.mask&&(e+="<div class='websy-mask'></div>"),e+="\n <div class='websy-popup-dialog-container'>\n <div class='websy-popup-dialog ".concat(this.options.classes.join(" "),"' style='").concat(this.options.style,"'>\n "),this.options.title&&(e+="<h1>".concat(this.options.title,"</h1>")),this.options.message&&(e+="<p>".concat(this.options.message,"</p>")),void 0!==this.options.collectData&&(e+='\n <div>\n <input id="'.concat(this.elementId,'_collect" class="websy-input" value="').concat("boolean"==typeof this.options.collectData?"":this.options.collectData,'" placeholder="').concat(this.options.collectPlaceholder||"",'">\n </div>\n ')),this.closeOnOutsideClick=!0,this.options.buttons){!0!==this.options.allowCloseOnOutsideClick&&(this.closeOnOutsideClick=!1),e+="<div class='websy-popup-button-panel'>";for(var i=0;i<this.options.buttons.length;i++)e+="\n <button class='websy-btn ".concat((this.options.buttons[i].classes||[]).join(" "),"' data-index='").concat(i,"'>\n ").concat(this.options.buttons[i].label,"\n </button>\n ");e+="</div>"}e+="\n </div>\n </div>\n ",t.innerHTML=e}}else console.log("No element Id provided for Websy Popup")}},{key:"show",value:function(t){t&&(this.options=_extends({},this.DEFAULTS,t)),this.render()}}]),n}(),WebsyPubSub=function(){function i(t,e){_classCallCheck(this,i),this.options=_extends({},e),t?(this.elementId=t,this.subscriptions={}):console.log("No element Id provided")}return _createClass(i,[{key:"publish",value:function(t,e,i){this.subscriptions&&(3===arguments.length?this.subscriptions[t]&&this.subscriptions[t][e]&&this.subscriptions[t][e](i):this.subscriptions[t]&&this.subscriptions[t].forEach(function(t){t(e)}))}},{key:"subscribe",value:function(t,e,i){this.subscriptions||(this.subscriptions={}),3===arguments.length?(this.subscriptions[t]||(this.subscriptions[t]={}),this.subscriptions[t][e]||(this.subscriptions[t][e]=i)):(this.subscriptions[t]||(this.subscriptions[t]=[]),this.subscriptions[t].push(e))}}]),i}(),ResponsiveText=function(){function n(t,e){var i=this;_classCallCheck(this,n);this.options=_extends({},{textAlign:"center",verticalAlign:"flex-end",wrapText:!1},e),this.elementId=t,this.canvas=document.createElement("canvas"),window.addEventListener("resize",function(){return i.render()}),document.getElementById(this.elementId)&&this.render()}return _createClass(n,[{key:"css",value:function(t,e){return window.getComputedStyle(t,null).getPropertyValue(e)}},{key:"render",value:function(t){if(void 0!==t&&(this.options.text=t),this.options.text){var e=!1,i=document.getElementById(this.elementId),n=this.canvas.getContext("2d"),s=0,o=!1,a=i.clientHeight;if("string"==typeof this.options.maxHeight&&-1!==this.options.maxHeight.indexOf("%")){var l=+this.options.maxHeight.replace("%","");isNaN(l)||(this.options.maxHeight=Math.floor(a*(l/100)))}else"string"==typeof this.options.maxHeight&&-1!==this.options.maxHeight.indexOf("px")&&(this.options.maxHeight=+this.options.maxHeight.replace("px",""));if("string"==typeof this.options.minHeight&&-1!==this.options.minHeight.indexOf("%")){var r=+this.options.minHeight.replace("%","");isNaN(r)||(this.options.minHeight=Math.floor(a*(r/100)))}else"string"==typeof this.options.minHeight&&-1!==this.options.minHeight.indexOf("px")&&(this.options.minHeight=+this.options.minHeight.replace("px",""));var c=this.css(i,"font-family"),h=this.css(i,"font-weight"),d=i.clientWidth;if(0===d&&i.style.maxWidth&&"auto"!==i.style.maxWidth&&0<i.parentElement.clientWidth){var p=i.style.maxWidth;-1!==p.indexOf("calc")?(-1!==(p=(p=p.replace("calc(","").replace(")","")).split(" "))[0].indexOf("px")?d=p[0].replace("px",""):-1!==p[0].indexOf("%")&&(d=i.parentElement.clientWidth*(+p[0].replace("%","")/100)),p[2]&&p[4]&&("-"===p[2]&&-1!==p[4].indexOf("px")&&(d-=+p[4].replace("px","")),"+"===p[2]&&-1!==p[4].indexOf("px")&&(d+=+p[4].replace("px","")))):-1!==p.indexOf("px")?d=+p.replace("px",""):-1!==p.indexOf("%")&&(d=i.parentElement.clientWidth*(+p.replace("%","")/100))}for(var u=i.clientHeight;!1===o;){s++,n.font="".concat(h," ").concat(s,"px ").concat(c);var m=n.measureText(this.options.text);if(-1!==navigator.userAgent.indexOf("Safari"))for(var g=!1,v=i;!1===g;)0<v.clientHeight?(u=v.clientHeight,g=!0):v.parentNode?v=v.parentNode:g=!0;void 0!==this.options.maxHeight&&s===this.options.maxHeight?(s=this.options.maxHeight,a=m.actualBoundingBoxAscent,o=!0):(m.width>d||m.actualBoundingBoxAscent>=u)&&(s--,a=m.actualBoundingBoxAscent,o=!0)}if(""===this.options.minHeight&&(this.options.minHeight=void 0),void 0!==this.options.minHeight)if(this.options.minHeight>s&&!0===this.options.wrapText){o=!(e=!0),s=this.options.minHeight;var f=this.options.text.match(/ /g);if(f&&0<f.length){f=f.length;for(var y=this.options.text.split(" ");!1===o;){s++,n.font="".concat(h," ").concat(s,"px ").concat(c);for(var b=f;0<b;b--){var w=[y.slice(0,b).join(" "),y.slice(b,y.length).join(" ")].reduce(function(t,e){return t.length>e.length?t:e},""),x=n.measureText(w);if(-1!==navigator.userAgent.indexOf("Safari"))for(var I=!1,L=i;!1===I;)0<L.clientHeight?(u=L.clientHeight,I=!0):L.parentNode?L=L.parentNode:I=!0;if(void 0!==this.options.maxHeight&&s===this.options.maxHeight){s=this.options.maxHeight,a=x.actualBoundingBoxAscent,o=!0;break}if(x.width>d||x.actualBoundingBoxAscent>=u/2*.75){s--,a=x.actualBoundingBoxAscent,o=!0;break}}}}void 0!==this.options.minHeight&&this.options.minHeight>s&&(s=this.options.minHeight)}else this.options.minHeight>s&&(s=this.options.minHeight);var k=Math.min(u,a);i.innerHTML="\n <div \n class='websy-responsive-text' \n style='\n justify-content: ".concat(this.options.verticalAlign,";\n font-size: ").concat(s,"px;\n font-weight: ").concat(h||"normal",";\n '\n > \n <span\n style='\n white-space: ").concat(!0===this.options.wrapText?"normal":"nowrap",";\n height: ").concat(Math.floor(!0===e?k*(1/3)*2:k),"px;\n line-height: ").concat(Math.ceil(!0===e?1.2*s:k),"px;\n justify-content: ").concat(this.options.textAlign,";\n text-align: ").concat(this.options.textAlign,";\n '\n >").concat(this.options.text,"</span>\n </div>\n ")}}}]),n}(),WebsyResultList=function(){function s(t,e){var i=this;_classCallCheck(this,s);if(this.options=_extends({},{listeners:{click:{}}},e),this.elementId=t,this.rows=this.options.data||[],this.apiService=new WebsyDesigns.APIService("/api"),this.templateService=new WebsyDesigns.APIService(""),this.activeTemplate="",t){var n=document.getElementById(t);n&&(n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("change",this.handleChange.bind(this)),n.addEventListener("keyup",this.handleKeyUp.bind(this)),n.addEventListener("keydown",this.handleKeyDown.bind(this))),"object"===_typeof(e.template)&&e.template.url?this.templateService.get(e.template.url).then(function(t){i.options.template=t,i.render()}):this.render()}else console.log("No element Id provided for Websy Search List")}return _createClass(s,[{key:"appendData",value:function(t){var e=this.rows.length;this.rows=this.rows.concat(t),this.activeTemplate=this.options.template;var i=this.buildHTML(t,e);document.getElementById(this.elementId).innerHTML+=i.replace(/\n/g,""),this.options.onAppend&&this.options.onAppend()}},{key:"buildHTML",value:function(){var c=this,n=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],h=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,s=2<arguments.length?arguments[2]:void 0,d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:[],o="";return this.options.template&&(0<n.length?n.forEach(function(l,a){var r="".concat(0<a?"--\x3e":"").concat(s||c.options.template).concat(a<n.length-1?"\x3c!--":"");_toConsumableArray(r.matchAll(/<\s*if[^>]*>([\s\S]*?)<\s*\/\s*if>/g)).forEach(function(t){if(t[0]&&-1<t.index){var e=t[0].match(/(\scondition=["|']\w.+)["|']/g);if(e&&e[0]){var i=e[0].trim().replace("condition=","");'"'===i.split("")[0]?i=i.replace(/"/g,""):"'"===i.split("")[0]&&(i=i.replace(/'/g,""));var n=[],s=!0;-1!==i.indexOf("===")?n=i.split("==="):-1!==i.indexOf("!==")?(n=i.split("!=="),s=!1):-1!==i.indexOf("==")?n=i.split("=="):-1!==i.indexOf("!=")&&(n=i.split("!="),s=!1);var o=!0;if(2===n.length&&(isNaN(n[1])||(n[1]=+n[1]),"true"===n[1]&&(n[1]=!0),"false"===n[1]&&(n[1]=!1),"string"==typeof n[1]&&(-1!==n[1].indexOf('"')?n[1]=n[1].replace(/"/g,""):-1!==n[1].indexOf("'")&&(n[1]=n[1].replace(/'/g,""))),!0===s?void 0!==l[n[0]]&&l[n[0]]===n[1]?o=!1:n[0]===n[1]&&(o=!1):!1===s&&void 0!==l[n[0]]&&l[n[0]]!==n[1]&&(o=!1)),!0===o)r=r.replace(t[0],"");else{var a=t[0];a=a.replace("</if>","").replace(/<\s*if[^>]*>/g,""),r=r.replace(t[0],a)}}}}),_toConsumableArray(r.matchAll(/<\s*for[^>]*>([\s\S]*?)<\s*\/\s*for>/g)).forEach(function(t){var e=t[0].match(/(items=["|']\w.+)["|']/g),i=t[0].match(/<\s*for[^>]*>/),n=t[0].replace(i,"").replace("</for>","").replace(/<\s*for[^>]*>/g,"");if(e&&e[0]){var s=e[0].trim().replace("items=","");'"'===s.split("")[0]?s=s.replace(/"/g,""):"'"===s.split("")[0]&&(s=s.replace(/'/g,""));var o=l;s.split(".").forEach(function(t){o=o[t]}),r=r.replace(t[0],c.buildHTML(o,0,n,[].concat(_toConsumableArray(d),["".concat(h+a,":").concat(s)])))}}),_toConsumableArray(r.matchAll(/(\sdata-event=["|']\w.+)["|']/g)).forEach(function(t){t[0]&&-1<t.index&&(r=r.replace(t[0],"".concat(t[0]," data-id=").concat(h+a," data-locator='").concat(d.join(";"),"'")))});var t=c.flattenObject(l);for(var e in t){var i=new RegExp("{".concat(e,"}"),"gm");r=r.replace(i,t[e]||"")}r=r.replace(/\{(.*?)\}/g,""),o+=r}):this.options.noRowsHTML&&(o+=this.options.noRowsHTML)),o}},{key:"data",get:function(){return this.rows},set:function(t){this.rows=t||[],this.render()}},{key:"findById",value:function(t){for(var e=0;e<this.rows.length;e++)if(this.rows[e].id===t)return this.rows[e];return null}},{key:"flattenObject",value:function(t){var e={};for(var i in t)if(t.hasOwnProperty(i))if("object"===_typeof(t[i])){var n=this.flattenObject(t[i]);for(var s in n)n.hasOwnProperty(s)&&(e[i+"."+s]=n[s])}else e[i]=t[i];return JSON.parse(JSON.stringify(e))}},{key:"handleClick",value:function(t){t.target.classList.contains("clickable")&&this.handleEvent(t,"clickable","click")}},{key:"handleChange",value:function(t){this.handleEvent(t,"keyable","change")}},{key:"handleKeyUp",value:function(t){this.handleEvent(t,"keyable","keyup")}},{key:"handleKeyDown",value:function(t){this.handleEvent(t,"keyable","keydown")}},{key:"handleEvent",value:function(t,e,i){var n=t.target.getAttribute("data-event");if(n){n=n.split("(");var s=[],o=t.target.getAttribute("data-id"),a=t.target.getAttribute("data-locator");n[1]&&(n[1]=n[1].replace(")",""),s=n[1].split(",")),n=n[0];var l,r=this.rows;if(""!==a)a.split(";").forEach(function(t){var e=t.split(":");r[e[0]]&&(r=r[e[0]],e[1].split(".").forEach(function(t){r=r[t]}))});if(s=s.map(function(t){return"string"!=typeof t&&"number"!=typeof t?r[+o]&&(t=r[+o][t]):"string"==typeof t&&(t=t.replace(/"/g,"").replace(/'/g,"")),t}),t.target.classList.contains(e)&&this.options.listeners[i]&&this.options.listeners[i][n])t.stopPropagation(),(l=this.options.listeners[i][n]).call.apply(l,[this,t,r[+o]].concat(_toConsumableArray(s)))}}},{key:"render",value:function(){var e=this;if(this.options.entity){var t=this.options.entity;this.options.sortField&&(t+=(-1===t.indexOf("?")?"?":"&")+"by=".concat(this.options.sortField,"&order=").concat(this.options.sortOrder||"ASC")),this.apiService.get(t).then(function(t){e.rows=t.rows,e.resize()})}else this.resize()}},{key:"resize",value:function(){var t=this.buildHTML(this.rows);document.getElementById(this.elementId).innerHTML=t.replace(/\n/g,""),this.options.onResize&&this.options.onResize()}}]),s}(),WebsyRouter=function(){function e(t){_classCallCheck(this,e);this.apiService=new WebsyDesigns.APIService(""),this.triggerIdList=[],this.viewIdList=[],this.previousPath="",this.previousView="",this.currentView="",this.currentViewMain="",this.currentParams={path:"",items:{}},this.previousParams={path:"",items:{}},this.controlPressed=!1,this.usesHTMLSuffix=-1!==window.location.pathname.indexOf(".htm"),window.addEventListener("popstate",this.onPopState.bind(this)),window.addEventListener("keydown",this.handleKeyDown.bind(this)),window.addEventListener("keyup",this.handleKeyUp.bind(this)),window.addEventListener("focus",this.handleFocus.bind(this)),window.addEventListener("click",this.handleClick.bind(this)),this.options=_extends({},{triggerClass:"websy-trigger",triggerToggleClass:"websy-trigger-toggle",viewClass:"websy-view",activeClass:"active",viewAttribute:"data-view",groupAttribute:"data-group",parentAttribute:"data-parent",defaultView:"",defaultGroup:"main",subscribers:{show:[],hide:[]},persistentParameters:!1,fieldValueSeparator:":",views:{}},t),this.options.onShow&&this.on("show",this.options.onShow),this.options.onHide&&this.on("hide",this.options.onHide)}return _createClass(e,[{key:"addGroup",value:function(e){var i=this;if(!this.groups[e]){var t=document.querySelectorAll(".".concat(this.options.viewClass,'[data-group="').concat(e,'"]'));t&&this.getClosestParent(t[0],function(t){i.groups[e]={activeView:"",views:[],parent:t.getAttribute("data-view")}})}}},{key:"getClosestParent",value:function(t,e){t&&t.parentElement&&(t.parentElement.attributes["data-view"]||"BODY"===t.tagName?e(t.parentElement):this.getClosestParent(t.parentElement,e))}},{key:"addUrlParams",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],i=!(2<arguments.length&&void 0!==arguments[2])||arguments[2];if(void 0!==t){!1===e&&(this.previousParams=_extends({},this.currentParams));var n={path:"",items:{}},s="";this.currentParams&&this.currentParams.items?(n.items=_extends({},this.currentParams.items,t),s=this.buildUrlPath(n.items)):0<Object.keys(t).length&&(n.items=_extends({},t),s=this.buildUrlPath(n.items)),n.path=s,!1===e&&(this.currentParams=n);var o=this.currentView;this.options.urlPrefix&&(o="/".concat(this.options.urlPrefix,"/").concat(o)),!0===e?this.navigate("".concat(o,"?").concat(s),"main",null,i):this.updateHistory(o,!i,!0)}}},{key:"removeUrlParams",value:function(){var e=this,t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],i=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=!(2<arguments.length&&void 0!==arguments[2])||arguments[2];this.previousParams=_extends({},this.currentParams);var s="";this.currentParams&&this.currentParams.items&&(t.forEach(function(t){delete e.currentParams.items[t]}),s=this.buildUrlPath(this.currentParams.items));var o=this.currentView;this.options.urlPrefix&&(o="/".concat(this.options.urlPrefix,"/").concat(o)),!0===i?this.navigate("".concat(o,"?").concat(s),"main",null,n):!1===n&&(this.currentParams={items:this.currentParams.items,path:s},this.updateHistory(o,!n,!0))}},{key:"removeAllUrlParams",value:function(){var t=0<arguments.length&&void 0!==arguments[0]&&arguments[0],e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1],i=this.currentView;this.options.urlPrefix&&(i="/".concat(this.options.urlPrefix,"/").concat(i)),this.currentParams={path:"",items:{}},!0===t?this.navigate("".concat(i),"main",null,e):this.updateHistory(i,!e,!0)}},{key:"buildUrlPath",value:function(t){var e=[];for(var i in t)e.push("".concat(i,"=").concat(t[i]));return e.join("&")}},{key:"checkChildGroups",value:function(t){this.groups||(this.groups={});var e=document.querySelector(".".concat(this.options.viewClass,'[data-view="').concat(t,'"]'));if(e)for(var i=e.querySelectorAll(".".concat(this.options.viewClass,"[data-group]")),n=0;n<i.length;n++){var s=i[n].getAttribute("data-group"),o=i[n].getAttribute("data-view");this.groups[s]||this.addGroup(s),i[n].classList.contains(this.options.activeClass)&&(this.groups[s].activeView=o),-1===this.groups[s].views.indexOf(o)&&this.groups[s].views.push(o)}}},{key:"formatParams",value:function(t){this.previousParams=_extends({},this.currentParams);var e={path:t,items:{}};if(void 0!==t){for(var i=t.split("&"),n=0;n<i.length;n++){var s=i[n].split("=");s[0]&&""!==s[0]&&s[1]&&""!==s[1]&&(e.items[s[0]]=s[1])}return this.currentParams=e}}},{key:"generateId",value:function(t){for(var e="abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789",i=[],n=0;n<6;n++){var s=Math.floor(62*Math.random());i.push(e[s])}return"".concat(t,"_").concat(i.join(""))}},{key:"getActiveViewsFromParent",value:function(t){var e=[];for(var i in this.checkChildGroups(t),this.groups)this.groups[i].parent===t&&this.groups[i].activeView&&e.push({view:this.groups[i].activeView,group:i});return e}},{key:"getParamValues",value:function(t){return this.currentParams&&this.currentParams.items&&this.currentParams.items[t]&&""!==this.currentParams.items[t]?this.currentParams.items[t].split("|").map(function(t){return decodeURI(t)}):[]}},{key:"getAPIQuery",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];if(this.currentParams&&this.currentParams.items){var e=[];for(var i in this.currentParams.items)-1===t.indexOf(i)&&e.push("".concat(i).concat(this.options.fieldValueSeparator).concat(this.currentParams.items[i]));return e}return[]}},{key:"handleClick",value:function(t){if(t.target.classList.contains(this.options.triggerClass)){var e=t.target.getAttribute(this.options.viewAttribute),i=t.target.getAttribute(this.options.groupAttribute);this.navigate(e,i||"main",t)}}},{key:"init",value:function(){var t,e="",i=this.formatParams(this.queryParams);""===this.currentPath&&""!==this.options.defaultView?e=this.options.defaultView:""!==this.currentPath&&(e=this.currentPath),t=e,void 0!==i&&(t+="?".concat(i.path)),this.navigate(t)}},{key:"handleFocus",value:function(t){this.controlPressed=!1}},{key:"handleKeyDown",value:function(t){switch(t.key){case"Control":case"Meta":this.controlPressed=!0}}},{key:"handleKeyUp",value:function(t){this.controlPressed=!1}},{key:"hideChildren",value:function(t,e){for(var i=this.getActiveViewsFromParent(t),n=0;n<i.length;n++)this.hideTriggerItems(i[n].view,e),this.hideViewItems(i[n].view,e),this.publish("hide",[i[n].view])}},{key:"hideView",value:function(t,e){"/"!==t&&""!==t||(t=this.options.defaultView),this.hideChildren(t,e),this.previousView===this.currentView&&e===this.options.defaultGroup||(this.hideTriggerItems(t,e),this.hideViewItems(t,e),this.publish("hide",[t]),this.options.views&&this.options.views[t]&&this.options.views[t].components.forEach(function(t){void 0!==t.instance&&t.instance.close&&t.instance.close()}))}},{key:"prepComponent",value:function(t,e){var i=document.getElementById("".concat(t,"_content"));if(i)return"";var n="\n <article id='".concat(t,"_content' class='websy-content-article'></article>\n <div id='").concat(t,"_loading' class='websy-loading-container'><div class='websy-ripple'><div></div><div></div></div></div>\n ");e&&e.help&&""!==e.help&&(n+="\n <Help not yet supported>\n "),e&&e.tooltip&&e.tooltip.value&&""!==e.tooltip.value&&(n+='\n <div class="websy-info '.concat(this.options.tooltip.classes.join(" ")||"",'" data-info="').concat(this.options.tooltip.value,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><title>ionicons-v5-e</title><path d="M256,56C145.72,56,56,145.72,56,256s89.72,200,200,200,200-89.72,200-200S366.28,56,256,56Zm0,82a26,26,0,1,1-26,26A26,26,0,0,1,256,138Zm48,226H216a16,16,0,0,1,0-32h28V244H228a16,16,0,0,1,0-32h32a16,16,0,0,1,16,16V332h28a16,16,0,0,1,0,32Z"/></svg>\n </div> \n ')),(i=document.getElementById(t))&&(i.innerHTML=n)}},{key:"showComponents",value:function(t){var e=this;this.options.views&&this.options.views[t]&&this.options.views[t].components&&this.options.views[t].components.forEach(function(t){void 0===t.instance?(e.prepComponent(t.elementId,t.options),t.instance=new t.Component(t.elementId,t.options)):t.instance.render&&t.instance.render()})}},{key:"preloadView",value:function(t,e){this.options.views[t].load?this.options.views[t].load(e):e&&e()}},{key:"initView",value:function(n){var s=this;return new Promise(function(i,t){s.options.views[n]||(s.options.views[n]={components:[]}),!0===s.options.views[n].ready?i():s.options.views[n].template?s.preloadView(n,function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=document.querySelector("[data-view='".concat(n,"'].").concat(s.options.viewClass));e?s.options.views[n].templateInstance=new WebsyDesigns.Template(e,{template:s.options.views[n].template,data:t,readyCallbackFn:function(){s.options.views[n].ready=!0,i()}}):(console.log("No view element found for '".concat(n,"' to render template")),s.options.views[n].ready=!0,i())}):!0!==s.options.views[n].ready&&s.options.views[n].load?s.preloadView(n,function(){0<arguments.length&&void 0!==arguments[0]&&arguments[0];s.options.views[n].ready=!0,i()}):(s.options.views[n].ready=!0,i())})}},{key:"showView",value:function(i,n,s){var o=this;"/"!==i&&""!==i||(i=this.options.defaultView||""),this.initView(i).then(function(){o.activateItem(i,o.options.triggerClass),o.activateItem(i,o.options.viewClass);for(var t=o.getActiveViewsFromParent(i),e=0;e<t.length;e++)o.activateItem(t[e].view,o.options.triggerClass),o.activateItem(t[e].view,o.options.viewClass),o.showComponents(t[e].view),t[e].show&&t[e].show.call(t[e]),o.publish("show",[t[e].view,null,s]);o.previousView!==o.currentView||"main"!==s?(o.showComponents(i),o.options.views[i].show&&o.options.views[i].show.call(o.options.views[i]),o.publish("show",[i,n,s])):o.previousView===o.currentView&&o.previousParams.path!==o.currentParams.path&&(o.showComponents(i),o.options.views[i].show&&o.options.views[i].show.call(o.options.views[i]),o.publish("show",[i,n,s]))})}},{key:"reloadCurrentView",value:function(){this.showView(this.currentView,this.currentParams,"main")}},{key:"navigate",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"main",i=2<arguments.length?arguments[2]:void 0,n=3<arguments.length?arguments[3]:void 0;if(0!==t.indexOf("http")){void 0===n&&(n=!1),this.popped=n;var s,o=!1,a=(t.indexOf("?"),t);t.split("?")[0]===this.options.defaultView&&!1===this.usesHTMLSuffix&&(t=t.replace(this.options.defaultView,"/")),!0===this.options.persistentParameters&&-1===t.indexOf("?")&&this.queryParams&&(t+="?".concat(this.queryParams)),!0===this.usesHTMLSuffix&&(-1===t.indexOf("?")?t="?view=".concat(t):-1===t.indexOf("view=")&&(t="&view=".concat(t)));var l=this.currentParams.path;if(!0!==this.controlPressed||e!==this.options.defaultGroup){if(-1!==t.indexOf("?")&&e===this.options.defaultGroup){var r=t.split("?");this.formatParams(r[1]),t=r[0]}else e===this.options.defaultGroup&&(this.previousParams=_extends({},this.currentParams),this.currentParams={path:"",items:{}});if(i&&(i.target&&i.target.classList.contains(this.options.triggerToggleClass)?o=!0:"boolean"==typeof i&&(o=i)),this.groups||(this.groups={}),this.groups[e]||this.addGroup(e),!0===o&&""!==this.groups[e].activeView&&(a=t===this.groups[e].activeView?"":t),this.previousView=this.currentView,this.previousPath=this.currentPath,this.groups[e]&&(!1===o&&(s=this.groups[e].activeView),this.previousPath=this.groups[e].activeView),e&&this.groups[e]&&e!==this.options.defaultGroup&&(this.groups[e].activeView=a),!1===o&&"main"===e&&(this.currentView=t),"main"===e&&(this.currentViewMain=t),"/"===this.currentView&&(this.currentView=this.options.defaultView),"/"===this.currentViewMain&&(this.currentViewMain=this.options.defaultView),!0===o?""!==this.previousPath&&this.hideView(this.previousPath,e):e===this.options.defaultGroup?this.hideView(this.previousView,e):this.hideView(this.previousPath,e),!0!==o||a!==s){if(!0===this.usesHTMLSuffix&&(t=window.location.pathname.split("/").pop()+t),(this.currentPath!==t||l!==this.currentParams.path)&&e===this.options.defaultGroup){var c=t;this.updateHistory(c,n)}!1===o?this.showView(a.split("?")[0],this.currentParams,e):a&&""!==a&&this.showView(a,null,e)}}else window.open("".concat(window.location.origin,"/").concat(t),"_blank")}else window.open(t,"_blank")}},{key:"on",value:function(t,e){this.options.subscribers[t].push(e)}},{key:"onPopState",value:function(t){var e;t.state?(t.state.url?e=t.state.url:-1!==(e=t.state.inputPath).indexOf(this.options.urlPrefix)&&(e=e.replace("/".concat(this.options.urlPrefix,"/"),"")),this.navigate(e,"main",null,!0)):this.navigate(this.options.defaultView||"/","main",null,!0)}},{key:"publish",value:function(t,e){this.options.subscribers[t].forEach(function(t){t.apply(null,e)})}},{key:"updateHistory",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],i=2<arguments.length&&void 0!==arguments[2]&&arguments[2];this.options.urlPrefix&&(t="/"===t?"":"/".concat(t),t="/".concat(this.options.urlPrefix).concat(t).replace(/\/\//g,"/")),this.currentParams&&this.currentParams.path||!0===i?t+="?".concat(this.currentParams.path):this.queryParams&&!0===this.options.persistentParameters&&(t+="?".concat(this.queryParams)),!1===e?history.pushState({inputPath:t},"unused",t):history.replaceState({inputPath:t},"unused",t)}},{key:"subscribe",value:function(t,e){this.options.subscribers[t].push(e)}},{key:"currentPath",get:function(){var t=window.location.pathname.split("/").pop();return-1!==t.indexOf(".htm")?"":this.options.urlPrefix&&t===this.options.urlPrefix?"":t}},{key:"queryParams",get:function(){return 1<window.location.search.length?window.location.search.substring(1):""}},{key:"hideTriggerItems",value:function(t,e){this.hideItems(this.options.triggerClass,e)}},{key:"hideViewItems",value:function(t,e){this.hideItems(t,e)}},{key:"hideItems",value:function(t,e){var i;if(i=_toConsumableArray(e&&"main"!==e?document.querySelectorAll("[".concat(this.options.groupAttribute,"='").concat(e,"']")):document.querySelectorAll("[".concat(this.options.viewAttribute,"='").concat(t,"']"))))for(var n=0;n<i.length;n++)i[n].classList.remove(this.options.activeClass)}},{key:"activateItem",value:function(t,e){var i=document.getElementsByClassName(e);if(i)for(var n=0;n<i.length;n++)if(i[n].attributes[this.options.viewAttribute]&&i[n].attributes[this.options.viewAttribute].value===t){i[n].classList.add(this.options.activeClass);break}}}]),e}(),Switch=function(){function n(t,e){_classCallCheck(this,n),this.elementId=t;this.options=_extends({},{enabled:!1},e);var i=document.getElementById(this.elementId);i&&(i.addEventListener("click",this.handleClick.bind(this)),this.render())}return _createClass(n,[{key:"data",get:function(){return this.options.enabled},set:function(t){this.options.enabled=t}},{key:"disable",value:function(){var t=!(this.options.enabled=!1)===this.options.enabled?"add":"remove";document.getElementById("".concat(this.elementId,"_switch")).classList[t]("enabled"),this.options.onToggle&&this.options.onToggle(this.options.enabled)}},{key:"enable",value:function(){var t=(this.options.enabled=!0)===this.options.enabled?"add":"remove";document.getElementById("".concat(this.elementId,"_switch")).classList[t]("enabled"),this.options.onToggle&&this.options.onToggle(this.options.enabled)}},{key:"handleClick",value:function(t){this.options.enabled=!this.options.enabled;var e=!0===this.options.enabled?"add":"remove";document.getElementById("".concat(this.elementId,"_switch")).classList[e]("enabled"),this.options.onToggle&&this.options.onToggle(this.options.enabled)}},{key:"on",value:function(t,e){this.options.subscribers[t]||(this.options.subscribers[t]=[]),this.options.subscribers[t].push(e)}},{key:"publish",value:function(t,e){this.options.subscribers[t].forEach(function(t){t.apply(null,e)})}},{key:"render",value:function(){var t=document.getElementById(this.elementId);t&&(t.innerHTML='\n <div class="websy-switch-container">\n <div class="websy-switch-label">'.concat(this.options.label||"",'</div>\n <div id="').concat(this.elementId,'_switch" class="websy-switch ').concat(!0===this.options.enabled?"enabled":"",'"></div> \n </div>\n '))}}]),n}(),WebsyTemplate=function(){function s(t,e){var i=this;_classCallCheck(this,s);if(this.options=_extends({},{listeners:{click:{}}},e),"object"===_typeof(t)?(t.id||(t.id=WebsyDesigns.Utils.createIdentity()),this.elementId=t.id):this.elementId=t,this.templateService=new WebsyDesigns.APIService(""),t){var n=document.getElementById(t);n&&n.addEventListener("click",this.handleClick.bind(this)),"object"===_typeof(e.template)&&e.template.url?this.templateService.get(e.template.url).then(function(t){i.options.template=t,i.render()}):this.render()}else console.log("No element Id provided for Websy Template")}return _createClass(s,[{key:"buildHTML",value:function(){var l=this,t="";if(this.options.template){var r=this.options.template;_toConsumableArray(r.matchAll(/<\s*if[^>]*>([\s\S]*?)<\s*\/\s*if>/g)).forEach(function(t){if(t[0]&&-1<t.index){var e=t[0].match(/(\scondition=["|']\w.+)["|']/g);if(e&&e[0]){var i=e[0].trim().replace("condition=","");'"'===i.split("")[0]?i=i.replace(/"/g,""):"'"===i.split("")[0]&&(i=i.replace(/'/g,""));var n=[],s=!0;-1!==i.indexOf("===")?n=i.split("==="):-1!==i.indexOf("!==")?(n=i.split("!=="),s=!1):-1!==i.indexOf("==")?n=i.split("=="):-1!==i.indexOf("!=")&&(n=i.split("!="),s=!1);var o=!0;if(2===n.length&&(isNaN(n[1])||(n[1]=+n[1]),"true"===n[1]&&(n[1]=!0),"false"===n[1]&&(n[1]=!1),"string"==typeof n[1]&&(-1!==n[1].indexOf('"')?n[1]=n[1].replace(/"/g,""):-1!==n[1].indexOf("'")&&(n[1]=n[1].replace(/'/g,""))),!0===s?void 0!==l.options.data[n[0]]&&l.options.data[n[0]]===n[1]?o=!1:n[0]===n[1]&&(o=!1):!1===s&&void 0!==l.options.data[n[0]]&&l.options.data[n[0]]!==n[1]&&(o=!1)),!0===o)r=r.replace(t[0],"");else{var a=t[0];a=a.replace("</if>","").replace(/<\s*if[^>]*>/g,""),r=r.replace(t[0],a)}}}});var e=_toConsumableArray(r.matchAll(/(\sdata-event=["|']\w.+)["|']/g));for(var i in e.forEach(function(t){t[0]&&-1<t.index&&(r=r.replace(t[0],"".concat(t[0])))}),this.options.data){var n=new RegExp("{".concat(i,"}"),"gm");n&&(r=r.replace(n,this.options.data[i]))}t=r}return t}},{key:"data",set:function(t){this.options.data=t,this.render()}},{key:"handleClick",value:function(t){t.target.classList.contains("clickable")&&this.handleEvent(t,"clickable","click")}},{key:"handleEvent",value:function(t,e,i){var n=t.target.getAttribute("data-event");if(n){n=n.split("(");var s,o=t.target.getAttribute("data-id"),a=this.options.data;if(t.target.classList.contains(e)&&this.options.listeners[i]&&this.options.listeners[i][n])t.stopPropagation(),(s=this.options.listeners[i][n]).call.apply(s,[this,t,a[+o]].concat([]))}}},{key:"render",value:function(){this.resize()}},{key:"resize",value:function(){var t=this.buildHTML();document.getElementById(this.elementId).innerHTML=t.replace(/\n/g,""),this.options.readyCallbackFn&&this.options.readyCallbackFn()}}]),s}(),WebsyUtils={createIdentity:function(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:6,e="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=0;n<t;n++)e+=i.charAt(Math.floor(Math.random()*i.length));return e},getElementPos:function(t){var e=t.getBoundingClientRect();window.pageXOffset||document.documentElement.scrollLeft,window.pageYOffset||document.documentElement.scrollTop;return{top:e.top,left:e.left,bottom:e.top+t.clientHeight,right:e.left+t.clientWidth,width:e.width,height:e.height}},getLightDark:function(t){var e,i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"#000000",n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"#ffffff",s=0,o=0,a=0,l=1;return-1!==t.indexOf("#")?(e=(e=t=t.replace("#","")).split(""),s=parseInt(e[0]+e[1],16),o=parseInt(e[2]+e[3],16),a=parseInt(e[4]+e[5],16)):-1!==t.toLowerCase().indexOf("rgb")&&(s=(e=(e=(e=t.replace(/rgba\(/gi,"").replace(/\)/gi,"")).replace(/rgb\(/gi,"")).split(","))[0],o=e[1],a=e[2],l=e[3]||1),186<(.299*s+.587*o+.114*a)/l?i:n},measureText:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"12px";isNaN(i)||(i="".concat(i,"px"));var n="<div style='display: inline-block; width: auto; font-size: ".concat(i,"'>").concat(t,"</div>"),s=document.createElement("div");s.style.position="absolute",s.style.visibility="hidden",s.style.transform="rotate(".concat(e,"deg)"),s.innerHTML=n,document.body.appendChild(s);var o=s.getBoundingClientRect();return s.remove(),o},parseUrlParams:function(){for(var t={},e=window.location.search.replace("?","").split("&"),i=0;i<e.length;i++){var n=e[i].split("=");t[n[0]]=n[1]}return t},buildUrlParams:function(t){var e=[];for(var i in t)e.push("".concat(i,"=").concat(t[i]));return e.join("&")},fromQlikDate:function(t){var e=new Date(Math.round(864e5*(t-25569)));return e.setTime(e.getTime()+6e4*e.getTimezoneOffset()),e},toReduced:function(t){var e,i,n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,s=2<arguments.length&&void 0!==arguments[2]&&arguments[2],o=3<arguments.length&&void 0!==arguments[3]&&arguments[3],a=4<arguments.length?arguments[4]:void 0,l=[{divider:1e18,suffix:"E"},{divider:1e15,suffix:"P"},{divider:1e12,suffix:"T"},{divider:1e9,suffix:"G"},{divider:1e6,suffix:"M"},{divider:1e3,suffix:"K"}],r="";if(a){var c=function(t){for(var e="",i=1,n=0;n<l.length;n++)if(t>=l[n].divider){i=l[n].divider,e=l[n].suffix;break}return{divider:i,suffix:e}}(a);i=c.divider,r=c.suffix}if(0===t)e=0;else if(a)e=t/i;else if(t<1e3&&t%1==0)e=t;else{e=t;for(var h=0;h<l.length;h++)if(t>=l[h].divider){e=t/l[h].divider,r=l[h].suffix;break}}if(!0===s&&(e*=100),0<e%1&&(n=1),e<1&&0===n&&(n=function(t){var e=0;if(0===(t=Math.abs(t)))return 0;for(;t<10;)e++,t*=10;return e}(e)),e=(+e).toFixed(n),!0===o)return e;return e.replace&&(e=e.replace(/\B(?=(\d{3})+(?!\d))/g,",")),"".concat(e).concat(r).concat(!0===s?"%":"")},toQlikDateNum:function(t){return Math.floor(t.getTime()/864e5+25570)},toQlikDate:function(t){return Math.floor(t.getTime()/864e5+25570)}},WebsyTable=function(){function a(t,e){var i=this;_classCallCheck(this,a);this.elementId=t,this.options=_extends({},{pageSize:20,paging:"scroll"},e),this.rowCount=0,this.busy=!1,this.tooltipTimeoutFn=null,this.data=[],this._isRendered=!1;var n=document.getElementById(this.elementId);if(n){var s="\n <div id='".concat(this.elementId,"_tableContainer' class='websy-vis-table ").concat("pages"===this.options.paging?"with-paging":"",'\'>\n \x3c!--<div class="download-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11h5l-9 10-9-10h5v-11h8v11zm1 11h-10v2h10v-2z"/></svg>\n </div>--\x3e\n <table>\n <thead id="').concat(this.elementId,'_head">\n </thead>\n <tbody id="').concat(this.elementId,'_body">\n </tbody>\n <tfoot id="').concat(this.elementId,'_foot">\n </tfoot>\n </table> \n <div id="').concat(this.elementId,"_errorContainer\" class='websy-vis-error-container'>\n <div>\n <div id=\"").concat(this.elementId,'_errorTitle"></div>\n <div id="').concat(this.elementId,'_errorMessage"></div>\n </div> \n </div>\n <div id="').concat(this.elementId,'_loadingContainer"></div>\n </div>\n ');"pages"===this.options.paging&&(s+='\n <div class="websy-table-paging-container">\n Show <div id="'.concat(this.elementId,'_pageSizeSelector" class="websy-vis-page-selector"></div> rows\n <ul id="').concat(this.elementId,'_pageList" class="websy-vis-page-list"></ul>\n </div>\n '));var o=[10,20,50,100,200];n.innerHTML=s,"pages"===this.options.paging&&(this.pageSizeSelector=new WebsyDesigns.Dropdown("".concat(this.elementId,"_pageSizeSelector"),{selectedItems:[o.indexOf(this.options.pageSize)],items:o.map(function(t){return{label:t.toString(),value:t}}),allowClear:!1,disableSearch:!0,onItemSelected:function(t){i.options.onChangePageSize&&i.options.onChangePageSize(t.value)}})),n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mouseout",this.handleMouseOut.bind(this)),n.addEventListener("mousemove",this.handleMouseMove.bind(this)),document.getElementById("".concat(this.elementId,"_tableContainer")).addEventListener("scroll",this.handleScroll.bind(this)),this.loadingDialog=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loadingContainer")),this.render()}else console.error("No element found with ID ".concat(this.elementId))}return _createClass(a,[{key:"isRendered",get:function(){return this._isRendered}},{key:"appendRows",value:function(t){var a=this;this._isRendered=!1,this.hideError();var e="";t&&(e+=t.map(function(t,o){return"<tr>"+t.map(function(t,e){if(!1!==a.options.columns[e].show){var i="";if(t.style&&(i+=t.style),a.options.columns[e].width&&(i+="width: ".concat(a.options.columns[e].width,"; ")),t.backgroundColor&&(i+="background-color: ".concat(t.backgroundColor,"; "),t.color||(i+="color: ".concat(WebsyDesigns.Utils.getLightDark(t.backgroundColor),"; "))),t.color&&(i+="color: ".concat(t.color,"; ")),!0===a.options.columns[e].showAsLink&&""!==t.value.trim())return"\n <td \n data-row-index='".concat(a.rowCount+o,"' \n data-col-index='").concat(e,"' \n class='").concat(a.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >\n <a href='").concat(t.value,"' target='").concat(!0===a.options.columns[e].openInNewTab?"_blank":"_self","'>").concat(t.displayText||a.options.columns[e].linkText||t.value,"</a>\n </td>\n ");if(!0!==a.options.columns[e].showAsNavigatorLink&&!0!==a.options.columns[e].showAsRouterLink||""===t.value.trim()){var n=t.value;!0===a.options.columns[e].showAsImage&&(t.value="\n <img src='".concat(t.value,"'>\n "));var s="\n <td \n ";return!a.options.columns[e].showAsImage&&t.value&&t.value.indexOf&&-1===t.value.indexOf("<svg")&&-1===t.value.indexOf("<img")&&(s+="\n data-info='".concat(n,"'\n ")),s+="\n data-row-index='".concat(a.rowCount+o,"' \n data-col-index='").concat(e,"' \n class='").concat(a.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.value,"</td>\n ")}return"\n <td \n data-view='".concat(t.value,"' \n data-row-index='").concat(a.rowCount+o,"' \n data-col-index='").concat(e,"' \n class='websy-trigger trigger-item ").concat(!0===a.options.columns[e].clickable?"clickable":""," ").concat(a.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.displayText||a.options.columns[e].linkText||t.value,"</td>\n ")}}).join("")+"</tr>"}).join(""),this.data=this.data.concat(t),this.rowCount=this.data.length),document.getElementById("".concat(this.elementId,"_body")).innerHTML+=e,this._isRendered=!0}},{key:"buildSearchIcon",value:function(t){return'\n <div>\n <svg\n class="tableSearchIcon"\n data-field="'.concat(t,'"\n xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"\n >\n <path d="M0 0h24v24H0z" fill="none"/>\n <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>\n </svg>\n </div>\n ')}},{key:"handleClick",value:function(t){if(t.target.classList.contains("download-button")&&window.viewManager.dataExportController.exportData(this.options.model),t.target.classList.contains("sortable-column")){var e=+t.target.getAttribute("data-index"),i=this.options.columns[e];this.options.onSort?this.options.onSort(t,i,e):this.internalSort(i,e)}else if(t.target.classList.contains("tableSearchIcon")){var n=t.target.getAttribute("data-field");window.viewManager.views.global.objects[1].instance.show(n,{x:t.pageX,y:t.pageY},function(){t.target.classList.remove("active")})}else if(t.target.classList.contains("websy-page-num")){var s=+t.target.getAttribute("data-page");this.options.onSetPage&&this.options.onSetPage(s)}else{var o=+t.target.getAttribute("data-col-index"),a=+t.target.getAttribute("data-row-index");this.options.onClick&&this.options.onClick(t,{cell:this.data[a][o],row:this.data[a],column:this.options.columns[o],colIndex:o,rowIndex:a})}}},{key:"handleMouseMove",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn)),"TD"===t.target.tagName&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.classList.add("websy-delayed-info")},500))}},{key:"handleMouseOut",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn))}},{key:"handleScroll",value:function(t){this.options.onScroll&&"scroll"===this.options.paging&&this.options.onScroll(t)}},{key:"hideError",value:function(){var t=document.getElementById("".concat(this.elementId,"_errorContainer"));t&&t.classList.remove("active")}},{key:"hideLoading",value:function(){this.loadingDialog&&this.loadingDialog.hide()}},{key:"internalSort",value:function(t,i){if(this.options.columns.forEach(function(t,e){t.activeSort=e===i}),t.sortFunction)this.data=t.sortFunction(this.data,t);else{var n="value",s="asc"===t.sort?"desc":"asc";t.sort=s;var o=t.sortType||"alphanumeric";t.sortProp&&(n=t.sortProp),this.data.sort(function(t,e){switch(o){case"numeric":return"asc"===s?t[i][n]-e[i][n]:e[i][n]-t[i][n];default:return"asc"===s?t[i][n]>e[i][n]?1:-1:t[i][n]<e[i][n]?1:-1}})}this.render(this.data)}},{key:"render",value:function(t){var n=this;if(this._isRendered=!1,this.options.columns){if(this.hideError(),this.data=[],this.rowCount=0,!(document.getElementById("".concat(this.elementId,"_body")).innerHTML="")===this.options.allowDownload){var e=document.getElementById(this.elementId);e?e.classList.add("allow-download"):e.classList.remove("allow-download")}var i="<tr>"+this.options.columns.map(function(t,e){if(!1!==t.show){var i="";return t.style&&(i+=t.style),t.width&&(i+="width: ".concat(t.width||"auto",";")),'\n <th style="'.concat(i,'">\n <div class ="tableHeader">\n <div class="leftSection">\n <div\n class="tableHeaderField ').concat(-1!==["asc","desc"].indexOf(t.sort)?"sortable-column":"",'"\n data-index="').concat(e,'" \n data-sort="').concat(t.sort,'" \n >\n ').concat(t.name,'\n </div>\n </div>\n <div class="').concat(t.activeSort?t.sort+" sortOrder":"",'"></div>\n \x3c!--').concat(!0===t.searchable?n.buildSearchIcon(t.qGroupFieldDefs[0]):"","--\x3e\n </div>\n </th>\n ")}}).join("")+"</tr>";if(document.getElementById("".concat(this.elementId,"_head")).innerHTML=i,"pages"===this.options.paging){var s=document.getElementById("".concat(this.elementId,"_pageList"));if(s){var o=new Array(this.options.pageCount).fill("").map(function(t,e){return'<li data-page="'.concat(e,'" class="websy-page-num ').concat(n.options.pageNum===e?"active":"",'">').concat(e+1,"</li>")}),a=0;8<this.options.pageCount&&(a=Math.max(0,this.options.pageNum-4),o=o.splice(a,10),0<a?o.splice(0,0,'<li>Page&nbsp;</li><li data-page="0" class="websy-page-num">First</li><li>...</li>'):o.splice(0,0,"<li>Page&nbsp;</li>"),this.options.pageNum<this.options.pageCount-1&&(o.push("<li>...</li>"),o.push('<li data-page="'.concat(this.options.pageCount-1,'" class="websy-page-num">Last</li>')))),s.innerHTML=o.join("")}}t&&this.appendRows(t)}}},{key:"showError",value:function(t){var e=document.getElementById("".concat(this.elementId,"_errorContainer"));if(e&&e.classList.add("active"),t.title){var i=document.getElementById("".concat(this.elementId,"_errorTitle"));i&&(i.innerHTML=t.title)}if(t.message){var n=document.getElementById("".concat(this.elementId,"_errorTitle"));n&&(n.innerHTML=t.message)}this._isRendered=!0}},{key:"showLoading",value:function(t){this.loadingDialog&&this.loadingDialog.show(t)}}]),a}(),WebsyTable2=function(){function a(t,e){var i=this;_classCallCheck(this,a);this.elementId=t,this.options=_extends({},{pageSize:20,paging:"scroll",cellSize:35,virtualScroll:!1,leftColumns:0},e),this.rowCount=0,this.busy=!1,this.tooltipTimeoutFn=null,this.data=[];var n=document.getElementById(this.elementId);if(n){var s="\n <div id='".concat(this.elementId,"_tableContainer' class='websy-vis-table ").concat("pages"===this.options.paging?"with-paging":""," ").concat(!0===this.options.virtualScroll?"with-virtual-scroll":"",'\'>\n \x3c!--<div class="download-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11h5l-9 10-9-10h5v-11h8v11zm1 11h-10v2h10v-2z"/></svg>\n </div>--\x3e\n <table id="').concat(this.elementId,'_table"> \n <thead id="').concat(this.elementId,'_head">\n </thead>\n <tbody id="').concat(this.elementId,'_body">\n </tbody>\n <tfoot id="').concat(this.elementId,'_foot">\n </tfoot>\n </table> \n <div id="').concat(this.elementId,"_errorContainer\" class='websy-vis-error-container'>\n <div>\n <div id=\"").concat(this.elementId,'_errorTitle"></div>\n <div id="').concat(this.elementId,'_errorMessage"></div>\n </div> \n </div>\n <div id="').concat(this.elementId,'_vScrollContainer" class="websy-v-scroll-container">\n <div id="').concat(this.elementId,'_vScrollHandle" class="websy-scroll-handle websy-scroll-handle-y"></div>\n </div>\n <div id="').concat(this.elementId,'_hScrollContainer" class="websy-h-scroll-container">\n <div id="').concat(this.elementId,'_hScrollHandle" class="websy-scroll-handle websy-scroll-handle-x"></div>\n </div>\n <div id="').concat(this.elementId,'_dropdownContainer"></div>\n <div id="').concat(this.elementId,'_loadingContainer"></div>\n </div>\n ');"pages"===this.options.paging&&(s+='\n <div class="websy-table-paging-container">\n Show <div id="'.concat(this.elementId,'_pageSizeSelector" class="websy-vis-page-selector"></div> rows\n <ul id="').concat(this.elementId,'_pageList" class="websy-vis-page-list"></ul>\n </div>\n '));var o=[10,20,50,100,200];n.innerHTML=s,"pages"===this.options.paging&&(this.pageSizeSelector=new WebsyDesigns.Dropdown("".concat(this.elementId,"_pageSizeSelector"),{selectedItems:[o.indexOf(this.options.pageSize)],items:o.map(function(t){return{label:t.toString(),value:t}}),allowClear:!1,disableSearch:!0,onItemSelected:function(t){i.options.onChangePageSize&&i.options.onChangePageSize(t.value)}})),n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mouseout",this.handleMouseOut.bind(this)),n.addEventListener("mousemove",this.handleMouseMove.bind(this)),n.addEventListener("mousedown",this.handleMouseDown.bind(this)),n.addEventListener("mouseup",this.handleMouseUp.bind(this)),document.addEventListener("mouseup",this.handleGlobalMouseUp.bind(this)),document.getElementById("".concat(this.elementId,"_tableContainer")).addEventListener("scroll",this.handleScroll.bind(this)),this.loadingDialog=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loadingContainer")),this.render()}else console.error("No element found with ID ".concat(this.elementId))}return _createClass(a,[{key:"appendRows",value:function(t){var o=this;this.hideError();var e=document.getElementById("".concat(this.elementId,"_body")),i="";if(t&&(i+=t.map(function(t,s){return"<tr>"+t.map(function(t,e){if(!1!==o.options.columns[e].show){var i="height: ".concat(o.options.cellSize,"px; line-height: ").concat(o.options.cellSize,"px;");if(t.style&&(i+=t.style),o.options.columns[e].width&&(i+="width: ".concat(o.options.columns[e].width,"; ")),t.backgroundColor&&(i+="background-color: ".concat(t.backgroundColor,"; "),t.color||(i+="color: ".concat(WebsyDesigns.Utils.getLightDark(t.backgroundColor),"; "))),t.color&&(i+="color: ".concat(t.color,"; ")),!0===o.options.columns[e].showAsLink&&""!==t.value.trim())return"\n <td \n data-row-index='".concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >\n <a href='").concat(t.value,"' target='").concat(!0===o.options.columns[e].openInNewTab?"_blank":"_self","'>").concat(t.displayText||o.options.columns[e].linkText||t.value,"</a>\n </td>\n ");if(!0!==o.options.columns[e].showAsNavigatorLink&&!0!==o.options.columns[e].showAsRouterLink||""===t.value.trim()){var n=t.value;return!0===o.options.columns[e].showAsImage&&(t.value="\n <img src='".concat(t.value,"'>\n ")),"\n <td \n data-info='".concat(n,"' \n data-row-index='").concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.value,"</td>\n ")}return"\n <td \n data-view='".concat(t.value,"' \n data-row-index='").concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='websy-trigger trigger-item ").concat(!0===o.options.columns[e].clickable?"clickable":""," ").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.displayText||o.options.columns[e].linkText||t.value,"</td>\n ")}}).join("")+"</tr>"}).join(""),this.data=this.data.concat(t),this.rowCount=this.data.length),e.innerHTML+=i,!0===this.options.virtualScroll){if("pages"!==this.options.paging){var n=document.getElementById("".concat(this.elementId,"_head"));document.getElementById("".concat(this.elementId,"_vScrollContainer")).style.top="".concat(n.clientHeight,"px")}for(var s=document.getElementById("".concat(this.elementId,"_hScrollContainer")),a=0,l=e.querySelectorAll("tr:first-of-type td"),r=0;r<this.options.leftColumns;r++)a+=l[r].offsetWidth||l[r].clientWidth;s.style.left="".concat(a,"px")}}},{key:"buildSearchIcon",value:function(t){return'\n <div class="websy-table-search-icon" data-col-index="'.concat(t,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><title>ionicons-v5-f</title><path d="M221.09,64A157.09,157.09,0,1,0,378.18,221.09,157.1,157.1,0,0,0,221.09,64Z" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/><line x1="338.29" y1="338.29" x2="448" y2="448" style="fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"/></svg>\n </div>\n ')}},{key:"handleClick",value:function(t){if(t.target.classList.contains("download-button")&&window.viewManager.dataExportController.exportData(this.options.model),t.target.classList.contains("sortable-column")){var e=+t.target.getAttribute("data-index"),i=+t.target.getAttribute("data-sort-index"),n=this.options.columns[e];this.options.onSort?this.options.onSort(t,n,e,i):this.internalSort(n,e)}else if(t.target.classList.contains("websy-table-search-icon")){var s=+t.target.getAttribute("data-col-index");this.options.columns[s].onSearch&&this.options.columns[s].onSearch(t,this.options.columns[s])}else if(t.target.classList.contains("clickable")){var o=+t.target.getAttribute("data-col-index"),a=+t.target.getAttribute("data-row-index");this.options.onClick&&this.options.onClick(t,this.data[a][o],this.data[a],this.options.columns[o])}else if(t.target.classList.contains("websy-page-num")){var l=+t.target.getAttribute("data-page");this.options.onSetPage&&this.options.onSetPage(l)}else if(t.target.classList.contains("websy-h-scroll-container")){console.log("scroll handle clicked",t);var r=t.clientX,c=t.target.getBoundingClientRect().left,h=document.getElementById("".concat(this.elementId,"_hScrollHandle")),d=r-c-h.clientWidth/2;d=Math.max(0,Math.min(d,t.target.clientWidth-h.clientWidth)),h.style.left="".concat(d,"px"),this.options.onScrollX&&this.options.onScrollX(d)}}},{key:"handleMouseDown",value:function(t){t.target.classList.contains("websy-scroll-handle")&&(this.scrolling=!0,document.getElementById(this.elementId).classList.add("scrolling"));if(t.target.classList.contains("websy-scroll-handle-x")){var e=document.getElementById("".concat(this.elementId,"_hScrollHandle"));this.handleXStart=e.offsetLeft,this.scrollXStart=t.clientX,this.scrollDirection="X"}}},{key:"handleGlobalMouseUp",value:function(t){this.scrolling=!1;var e=document.getElementById(this.elementId);e&&e.classList.remove("scrolling")}},{key:"handleMouseUp",value:function(t){this.scrolling=!1,document.getElementById(this.elementId).classList.remove("scrolling")}},{key:"handleMouseMove",value:function(t){if(this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn)),"TD"===t.target.tagName&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.classList.add("websy-delayed-info")},500)),!0===this.scrolling&&!0===this.options.virtualScroll){document.getElementById("".concat(this.elementId,"_tableContainer"));if("X"===this.scrollDirection){var e=document.getElementById("".concat(this.elementId,"_hScrollHandle")),i=0;i=this.handleXStart+(t.clientX-this.scrollXStart)<this.columnParameters.scrollableWidth-e.offsetWidth?(e.style.left="".concat(this.handleXStart+(t.clientX-this.scrollXStart),"px"),this.handleXStart+(t.clientX-this.scrollXStart)):this.columnParameters.scrollableWidth-e.offsetWidth,this.handleXStart+(t.clientX-this.scrollXStart)<0&&(i=e.style.left=0),this.options.onScrollX&&this.options.onScrollX(i)}}}},{key:"handleMouseOut",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn))}},{key:"handleScroll",value:function(t){this.options.onScroll&&"scroll"===this.options.paging&&this.options.onScroll(t)}},{key:"hideError",value:function(){var t=document.getElementById("".concat(this.elementId,"_tableContainer"));t&&t.classList.remove("has-error"),document.getElementById("".concat(this.elementId,"_table")).classList.remove("hidden");var e=document.getElementById("".concat(this.elementId,"_errorContainer"));e&&e.classList.remove("active")}},{key:"hideLoading",value:function(){this.options.onLoading?this.options.onLoading(!1):this.loadingDialog.hide()}},{key:"internalSort",value:function(t,i){if(this.options.columns.forEach(function(t,e){t.activeSort=e===i}),t.sortFunction)this.data=t.sortFunction(this.data,t);else{var n="value",s="asc"===t.sort?"desc":"asc";t.sort=s;var o=t.sortType||"alphanumeric";t.sortProp&&(n=t.sortProp),this.data.sort(function(t,e){switch(o){case"numeric":return"asc"===s?t[i][n]-e[i][n]:e[i][n]-t[i][n];default:return"asc"===s?t[i][n]>e[i][n]?1:-1:t[i][n]<e[i][n]?1:-1}})}this.render(this.data)}},{key:"render",value:function(t){var n=this;if(this.options.columns){if(this.hideError(),this.data=[],this.rowCount=0,!(document.getElementById("".concat(this.elementId,"_body")).innerHTML="")===this.options.allowDownload){var e=document.getElementById(this.elementId);e?e.classList.add("allow-download"):e.classList.remove("allow-download")}var i="<tr>"+this.options.columns.map(function(t,e){if(!1!==t.show){var i="";return t.style&&(i+=t.style),t.width&&(i+="width: ".concat(t.width||"auto","; ")),'\n <th style="'.concat(i,'">\n <div class ="tableHeader">\n <div class="leftSection">\n <div\n class="tableHeaderField ').concat(-1!==["asc","desc"].indexOf(t.sort)?"sortable-column":"",'"\n data-sort-index="').concat(t.sortIndex||e,'"\n data-index="').concat(e,'"\n data-sort="').concat(t.sort,'"\n style="').concat(t.style||"",'" \n >\n ').concat(t.name,'\n </div>\n </div>\n <div class="').concat(t.activeSort?t.sort+" sortOrder":"",'"></div>\n ').concat(!0===t.searchable?n.buildSearchIcon(e):"","\n </div>\n </th>\n ")}}).join("")+"</tr>";document.getElementById("".concat(this.elementId,"_head")).innerHTML=i;var s=document.getElementById("".concat(this.elementId,"_dropdownContainer"));if(""===s.innerHTML){var o="";this.options.columns.forEach(function(t,e){t.searchable&&t.searchField&&(o+='\n <div id="'.concat(n.elementId,"_columnSearch_").concat(e,'" class="websy-modal-dropdown"></div>\n '))}),s.innerHTML=o}if("pages"===this.options.paging){var a=document.getElementById("".concat(this.elementId,"_pageList"));if(a){var l=new Array(this.options.pageCount).fill("").map(function(t,e){return'<li data-page="'.concat(e,'" class="websy-page-num ').concat(n.options.pageNum===e?"active":"",'">').concat(e+1,"</li>")}),r=0;8<this.options.pageCount&&(r=Math.max(0,this.options.pageNum-4),l=l.splice(r,10),0<r?l.splice(0,0,'<li>Page&nbsp;</li><li data-page="0" class="websy-page-num">First</li><li>...</li>'):l.splice(0,0,"<li>Page&nbsp;</li>"),this.options.pageNum<this.options.pageCount-1&&(l.push("<li>...</li>"),l.push('<li data-page="'.concat(this.options.pageCount-1,'" class="websy-page-num">Last</li>')))),a.innerHTML=l.join("")}}t&&this.appendRows(t)}}},{key:"showError",value:function(t){var e=document.getElementById("".concat(this.elementId,"_tableContainer"));e&&e.classList.add("has-error"),document.getElementById("".concat(this.elementId,"_table")).classList.add("hidden");var i=document.getElementById("".concat(this.elementId,"_errorContainer"));if(i&&i.classList.add("active"),t.title){var n=document.getElementById("".concat(this.elementId,"_errorTitle"));n&&(n.innerHTML=t.title)}if(t.message){var s=document.getElementById("".concat(this.elementId,"_errorMessage"));s&&(s.innerHTML=t.message)}}},{key:"setHorizontalScroll",value:function(t){var e=document.getElementById("".concat(this.elementId,"_hScrollHandle"));t.width&&(e.style.width="".concat(t.width,"px"))}},{key:"setWidth",value:function(t){var e=document.getElementById("".concat(this.elementId,"_table"));e&&(e.style.width="".concat(t,"px"))}},{key:"showLoading",value:function(t){this.options.onLoading?this.options.onLoading(!0):this.loadingDialog.show(t)}},{key:"getColumnParameters",value:function(t){var i=this,e=document.getElementById("".concat(this.elementId,"_table"));e.style.tableLayout="auto",e.style.width="auto";var n=document.getElementById("".concat(this.elementId,"_head")),s=document.getElementById("".concat(this.elementId,"_body"));n.innerHTML='<tr style="visibility: hidden;">'+t.map(function(t,e){return'\n <th>\n <div class ="tableHeader">\n <div class="leftSection">\n <div\n class="tableHeaderField" \n >\n '.concat(t.value||"nbsp;","\n </div>\n </div> \n ").concat(!0===t.searchable?i.buildSearchIcon(e):"","\n </div>\n </th>\n ")}).join("")+"</tr>",s.innerHTML='<tr style="visibility: hidden;">'+t.map(function(t){return"\n <td \n style='height: ".concat(i.options.cellSize,"px; line-height: ").concat(i.options.cellSize,"px; padding: 10px 5px;'\n >").concat(t.value||"&nbsp;","</td>\n ")}).join("")+"</tr>";for(var o=s.querySelectorAll("tr:first-of-type td"),a=document.getElementById("".concat(this.elementId,"_tableContainer")),l=o[0].offsetHeight||o[0].clientHeight,r=[],c=0,h=0,d=0;d<o.length;d++)d<this.options.leftColumns&&(h+=t[d].width||o[d].offsetWidth||o[d].clientWidth),r.push(t[d].width||o[d].offsetWidth||o[d].clientWidth),c+=t[d].width||o[d].offsetWidth||o[d].clientWidth;if(c<(a.offsetWidth||a.clientWidth)-h)for(var p=this.options.leftColumns;p<r.length;p++)r[p]=((a.offsetWidth||a.clientWidth)-h)/(r.length-this.options.leftColumns);return this.columnParameters={cellHeight:l,cellWidths:r,availableHeight:a.offsetHeight||a.clientHeight,availableWidth:a.offsetWidth||a.clientWidth,nonScrollableWidth:h,scrollableWidth:(a.offsetWidth||a.clientWidth)-h},s.innerHTML="",e.style.tableLayout="",e.style.width="",this.columnParameters}}]),a}(),WebsyTable3=function(){function r(t,e){_classCallCheck(this,r),this.elementId=t;var i={virtualScroll:!1,showTotalsAbove:!0,minHandleSize:20,maxColWidth:"50%",allowPivoting:!1,searchIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><title>ionicons-v5-f</title><path d="M221.09,64A157.09,157.09,0,1,0,378.18,221.09,157.1,157.1,0,0,0,221.09,64Z" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/><line x1="338.29" y1="338.29" x2="448" y2="448" style="fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"/></svg>',plusIcon:WebsyDesigns.Icons.PlusFilled,minusIcon:WebsyDesigns.Icons.MinusFilled,disableInternalLoader:!1,disableTouch:!1,scrollWidth:10,touchScrollWidth:30,autoFitColumns:!0};if(this.options=_extends({},i,e),this._isRendered=!1,this.isTouchDevice="ontouchstart"in window||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints,!0===this.options.disableTouch&&(this.isTouchDevice=!1),this.sizes={},this.currentData=[],this.scrollDragging=!1,this.cellDragging=!1,this.vScrollRequired=!1,this.hScrollRequired=!1,this.pinnedColumns=0,this.startRow=0,this.endRow=0,this.startCol=0,this.endCol=0,this.mouseYStart=0,this.mouseYStart=0,t){var n=document.getElementById(this.elementId);if(n.style.position="relative",n){var s="\n <div id='".concat(this.elementId,"_tableContainer' style='width: calc(100% - ").concat(this.options.isTouchDevice?this.options.touchScrollWidth:this.options.scrollWidth,"px); height: calc(100% - ").concat(this.options.isTouchDevice?this.options.touchScrollWidth:this.options.scrollWidth,"px);' class='websy-vis-table-3 ").concat("pages"===this.options.paging?"with-paging":""," ").concat(!0===this.options.virtualScroll?"with-virtual-scroll":""," ").concat(!0===this.isTouchDevice&&!0===this.options.virtualScroll?"touch-device":"",'\'>\n \x3c!--<div class="download-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11h5l-9 10-9-10h5v-11h8v11zm1 11h-10v2h10v-2z"/></svg>\n </div>--\x3e\n <div id="').concat(this.elementId,'_tableInner" class="websy-table-inner-container">\n <table id="').concat(this.elementId,'_tableHeader" class="websy-table-header"></table>\n <table id="').concat(this.elementId,'_tableBody" class="websy-table-body"></table>\n <table id="').concat(this.elementId,'_tableFooter" class="websy-table-footer"></table>\n ');!0===this.isTouchDevice&&!0===this.options.virtualScroll&&(s+='\n <div id="'.concat(this.elementId,'_touchScroller" class="websy-table-touch-scroller"></div>\n ')),s+=' \n </div> \n <div id="'.concat(this.elementId,"_errorContainer\" class='websy-vis-error-container'>\n <div>\n <div id=\"").concat(this.elementId,'_errorTitle"></div>\n <div id="').concat(this.elementId,'_errorMessage"></div>\n </div> \n </div>\n <div id="').concat(this.elementId,'_dropdownContainerx" class="table-dropdown-container"></div>\n <div id="').concat(this.elementId,'_loadingContainer"></div>\n </div>\n <div id="').concat(this.elementId,'_vScrollContainer" class="websy-v-scroll-container" style="width: ').concat(this.options.isTouchDevice?this.options.touchScrollWidth:this.options.scrollWidth,'px;">\n <div id="').concat(this.elementId,'_vScrollHandle" class="websy-scroll-handle websy-scroll-handle-y"></div>\n </div>\n <div id="').concat(this.elementId,'_hScrollContainer" class="websy-h-scroll-container" style="height: ').concat(this.options.isTouchDevice?this.options.touchScrollWidth:this.options.scrollWidth,'px;">\n <div id="').concat(this.elementId,'_hScrollHandle" class="websy-scroll-handle websy-scroll-handle-x"></div>\n </div> \n '),"pages"===this.options.paging&&(s+='\n <div class="websy-table-paging-container">\n Show <div id="'.concat(this.elementId,'_pageSizeSelector" class="websy-vis-page-selector"></div> rows\n <ul id="').concat(this.elementId,'_pageList" class="websy-vis-page-list"></ul>\n </div>\n ')),n.innerHTML=s;var o=document.getElementById("".concat(this.elementId,"_dropdownContainer"));if(o)o.innerHTML="";else{var a=document.createElement("div");a.id="".concat(this.elementId,"_dropdownContainer"),a.classList.add("table-dropdown-container"),document.body.appendChild(a)}n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mousedown",this.handleMouseDown.bind(this)),n.addEventListener("touchstart",this.handleTouchStart.bind(this)),n.addEventListener("touchmove",this.handleTouchMove.bind(this)),window.addEventListener("touchend",this.handleTouchEnd.bind(this)),window.addEventListener("mousemove",this.handleMouseMove.bind(this)),window.addEventListener("mouseup",this.handleMouseUp.bind(this));var l=document.getElementById("".concat(this.elementId,"_tableBody"));l&&l.addEventListener("wheel",this.handleScrollWheel.bind(this)),this.loadingDialog=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loadingContainer")),this.render(this.options.data)}else console.error("No element found with ID ".concat(this.elementId))}else console.log("No element Id provided for Websy Table")}return _createClass(r,[{key:"isRendered",get:function(){return this._isRendered}},{key:"columns",set:function(t){this.options.columns=t,this.renderColumnHeaders()}},{key:"totals",set:function(t){this.options.totals=t,this.renderTotals()}},{key:"appendRows",value:function(t){this._isRendered=!1,this.hideError();var e=document.getElementById("".concat(this.elementId,"_tableBody"));e&&(!0===this.options.virtualScroll?(e.innerHTML=this.buildBodyHtml(t,!0),this.currentData=t):(e.querySelector("tbody")?e.querySelector("tbody").innerHTML+=this.buildBodyHtml(t,!0,!0):(e.innerHTML+=this.buildBodyHtml(t,!0),this._isRendered=!0),this.currentData=this.currentData.concat(t)))}},{key:"buildBodyHtml",value:function(){var l=this,t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],r=1<arguments.length&&void 0!==arguments[1]&&arguments[1];if(!this.options.columns)return"";if(0===t.length)return"";var c="",h=this.options.columns[this.options.columns.length-1].filter(function(t){return!1!==t.show});return!0===r&&(c+="<colgroup>",c+=h.map(function(t){return"\n <col\n style='width: ".concat(t.width||t.actualWidth,"px!important'\n ></col>\n ")}).join(""),c+="</colgroup>"),t.forEach(function(t,a){c+='<tr class="websy-table-row">',t.forEach(function(t,e){var i=t.level||e,n=t.index||e;if(void 0!==h[i]&&!1!==l.options.columns[l.options.columns.length-1][n].show){var s="",o="";!0!==r||1!=+t.colspan&&t.colspan||(o=s="width: ".concat(h[i].width||h[i].actualWidth,"px!important; ")),t.style&&(s+=t.style),!0!==r||1!=+t.colspan&&t.colspan||(s+="max-width: ".concat(h[i].width||h[i].actualWidth,"px!important;"),o+="max-width: ".concat(h[i].width||h[i].actualWidth,"px!important;")),t.backgroundColor&&(s+="background-color: ".concat(t.backgroundColor,"; "),t.color||(s+="color: ".concat(WebsyDesigns.Utils.getLightDark(t.backgroundColor),"; "))),t.color&&(s+="color: ".concat(t.color,"; ")),c+="<td \n class='websy-table-cell ".concat(i<l.pinnedColumns?"pinned":"unpinned"," ").concat((t.classes||[]).join(" ")," ").concat((h[i].classes||[]).join(" "),"'\n style='").concat(s,"'\n "),h[i].showAsImage||-1!==t.value.indexOf("<svg")||-1!==t.value.indexOf("<img")||(c+="\n data-info='".concat(t.value.replace?t.value.replace(/'/g,"`"):t.value,"'\n ")),c+="\n colspan='".concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n data-row-index='").concat(a,"'\n data-cell-index='").concat(e,"'\n data-col-index='").concat(n,"'\n "),c+="\n ><div \n style='".concat(o,"' \n class='websy-table-cell-content'\n data-row-index='").concat(a,"'\n data-cell-index='").concat(e,"'\n data-col-index='").concat(n,"'\n >"),!0===t.expandable&&(c+="<i \n data-row-index='".concat(a,"'\n data-col-index='").concat(t.level||e,"'\n class='websy-table-cell-expand'\n >").concat(l.options.plusIcon,"</i>")),!0===t.collapsable&&(c+="<i \n data-row-index='".concat(a,"'\n data-col-index='").concat(t.level||e,"'\n class='websy-table-cell-collapse'\n >").concat(l.options.minusIcon,"</i>")),!0===h[i].showAsLink&&""!==t.value.trim()&&(t.value='\n <a href="'.concat(encodeURI(t.value),"\" target='").concat(!0===h[i].openInNewTab?"_blank":"_self","'>").concat(t.displayText||h[i].linkText||t.value,"</a>\n ")),!0===h[i].showAsRouterLink&&""!==t.value.trim()&&(t.value='\n <a data-view="'.concat((t.link||t.value).replace(/'/g,"'"),"\" class='websy-trigger'>").concat(t.value,"</a>\n ")),!0===h[i].showAsImage&&(t.value='\n <img \n style="width: '.concat(h[i].imgWidth?h[i].imgWidth:"auto","; height: ").concat(h[i].imgHeight?h[i].imgHeight:"auto",";\" \n src='").concat(t.value,"'\n ").concat(h[i].errorImage?"onerror=\"this.src='"+h[i].errorImage+"'\"":"","\n />\n ")),c+="\n ".concat(t.value,"\n </div></td>")}}),c+="</tr>"}),c}},{key:"buildHeaderHtml",value:function(){var s=this,o=0<arguments.length&&void 0!==arguments[0]&&arguments[0];if(!this.options.columns)return"";var a="",l=this.options.columns[this.options.columns.length-1].filter(function(t){return!1!==t.show});!0===o&&(a+="<colgroup>",a+=l.map(function(t){return"\n <col\n style='width: ".concat(t.width||t.actualWidth,"px!important'\n ></col>\n ")}).join(""),a+="</colgroup>"),this.options.columns.forEach(function(t,e){a+='<tr class="websy-table-row websy-table-header-row '.concat(e!==s.options.columns.length-1?"websy-table-parent-header":"",'">'),t.filter(function(t){return!1!==t.show}).forEach(function(t,e){if(void 0!==l[e]&&!1!==l[e].show){var i="width: ".concat(l[e].width||l[e].actualWidth,"px!important; "),n="width: ".concat(l[e].width||l[e].actualWidth,"px!important; ");!0===o&&(i+="max-width: ".concat(l[e].width||l[e].actualWidth,"px!important;"),n+="max-width: ".concat(l[e].width||l[e].actualWidth,"px!important;")),1<t.colspan&&(n="width: 100%;"),t.style&&(i+=t.style),a+="<td \n class='websy-table-cell ".concat(e<s.pinnedColumns?"pinned":"unpinned"," ").concat((t.classes||[]).join(" "),"' \n style='").concat(i,"' \n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n "),a+=">\n <div \n style='".concat(n,"'\n data-col-index=\"").concat(e,"\"\n class='").concat(-1!==["asc","desc"].indexOf(t.sort)?"sortable-column":"","'\n >\n ").concat(t.name).concat(t.activeSort?s.buildSortIcon(t.sort,e):"").concat(!0===t.searchable?s.buildSearchIcon(t,e):"","\n </div>\n </td>")}}),a+="</tr>"});var n=document.getElementById("".concat(this.elementId,"_dropdownContainer"));return this.options.columns[this.options.columns.length-1].forEach(function(t,e){if(t.searchable&&!0===t.isExternalSearch&&!document.getElementById("".concat(s.elementId,"_columnSearch_").concat(t.dimId||e))){var i=document.createElement("div");i.id="".concat(s.elementId,"_columnSearch_").concat(t.dimId||e),i.className="websy-modal-dropdown",n.appendChild(i)}}),a}},{key:"buildSearchIcon",value:function(t,e){return'<div class="websy-table-search-icon" data-col-index="'.concat(e,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><path d="M221.09,64A157.09,157.09,0,1,0,378.18,221.09,157.1,157.1,0,0,0,221.09,64Z" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/><line x1="338.29" y1="338.29" x2="448" y2="448" style="fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"/></svg>\n </div>')}},{key:"buildSortIcon",value:function(t,e){return'<div class="websy-table-sort-icon '.concat(t,'" data-col-index="').concat(e,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 512 512"><path d="M98,190.06,237.78,353.18a24,24,0,0,0,36.44,0L414,190.06c13.34-15.57,2.28-39.62-18.22-39.62H116.18C95.68,150.44,84.62,174.49,98,190.06Z"/></svg>\n </div>')}},{key:"buildTotalHtml",value:function(){var i=this,n=0<arguments.length&&void 0!==arguments[0]&&arguments[0];if(!this.options.totals)return"";var s=this.options.columns[this.options.columns.length-1].filter(function(t){return!1!==t.show}),o='<tr class="websy-table-row websy-table-total-row">';return this.options.totals.forEach(function(t,e){void 0!==s[e]&&!1!==s[e].show&&(o+="<td \n class='websy-table-cell ".concat((t.classes||[]).join(" "),"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n "),!0===n&&(o+="\n style='width: ".concat(i.options.columns[i.options.columns.length-1][e].width||i.options.columns[i.options.columns.length-1][e].actualWidth,"px'\n width='").concat(t.width||t.actualWidth,"'\n ")),o+=" \n >\n ".concat(t.value,"\n </td>"))}),o+="</tr>"}},{key:"calculateSizes",value:function(){var n=this,t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],e=1<arguments.length?arguments[1]:void 0,i=2<arguments.length?arguments[2]:void 0,s=3<arguments.length?arguments[3]:void 0;this.totalRowCount=e,this.totalColumnCount=i,this.pinnedColumns=s;var o=document.getElementById(this.elementId),a=document.getElementById("".concat(this.elementId,"_tableContainer")),l=document.getElementById("".concat(this.elementId,"_tableHeader"));if(l){var r;l.style.width="auto",l.innerHTML=this.buildHeaderHtml(),this.sizes.outer=o.getBoundingClientRect(),this.sizes.table=a.getBoundingClientRect(),this.sizes.header=l.getBoundingClientRect(),"number"==typeof this.options.maxColWidth?r=this.options.maxColWidth:-1!==this.options.maxColWidth.indexOf("%")?r=this.sizes.table.width*(+this.options.maxColWidth.replace("%","")/100):-1!==this.options.maxColWidth.indexOf("px")&&(r=+this.options.maxColWidth.replace("px",""));var c=document.getElementById("".concat(this.elementId,"_tableBody"));c.style.width="auto",c.innerHTML=this.buildBodyHtml([t]);var h=document.getElementById("".concat(this.elementId,"_tableFooter"));h.innerHTML=this.buildTotalHtml(),this.sizes.total=h.getBoundingClientRect();var d=Array.from(a.querySelectorAll(".websy-table-row:not(.websy-table-parent-header)"));this.sizes.scrollableWidth=this.sizes.table.width;var p=0,u=this.options.columns[this.options.columns.length-1].filter(function(t){return!1!==t.show});if(d.forEach(function(t,e){Array.from(t.children).forEach(function(t,e){var i=t.getBoundingClientRect();n.sizes.cellHeight=i.height,u[e]&&(u[e].actualWidth||(u[e].potentialWidth=0,u[e].actualWidth=0),u[e].potentialWidth=Math.max(u[e].potentialWidth,i.width),u[e].actualWidth=Math.min(Math.max(u[e].actualWidth,i.width),r),u[e].cellHeight=i.height,e>=n.pinnedColumns&&(p=u[e].actualWidth))})}),this.sizes.totalWidth=u.reduce(function(t,e){return t+(e.width||e.actualWidth)},0),this.sizes.totalNonPinnedWidth=u.filter(function(t,e){return e>=n.pinnedColumns}).reduce(function(t,e){return t+(e.width||e.actualWidth)},0),this.sizes.pinnedWidth=this.sizes.totalWidth-this.sizes.totalNonPinnedWidth,this.sizes.totalWidth<this.sizes.table.width){var m=0,g=this.sizes.table.width-this.sizes.totalWidth;u.forEach(function(t){!(t.shouldGrow=!0)===n.options.autoFitColumns&&(t.shouldGrow=!1,t.potentialWidth>t.actualWidth&&(t.shouldGrow=!0,t.growDiff=t.potentialWidth-t.actualWidth,t.growDiffPerc=(t.potentialWidth-t.actualWidth)/g,m+=t.growDiff))});var v=(this.sizes.table.width-this.sizes.totalWidth)/u.filter(function(t){return t.shouldGrow}).length;this.sizes.totalWidth=0,this.sizes.totalNonPinnedWidth=0,u.forEach(function(t,e){!0===n.options.autoFitColumns?(t.width&&(t.width+=v),t.actualWidth+=v):0<m&&m<=g?t.shouldGrow&&(t.width&&(t.width+=t.growDiff),t.actualWidth+=t.growDiff):t.shouldGrow&&(t.width&&(t.width+=g*(t.growDiff/m)),t.actualWidth+=g*(t.growDiff/m)),n.sizes.totalWidth+=t.width||t.actualWidth,e>n.pinnedColumns&&(n.sizes.totalNonPinnedWidth+=t.width||t.actualWidth)})}if(this.sizes.pinnedWidth>this.sizes.table.width-p){this.sizes.totalWidth=0;for(var f=this.sizes.pinnedWidth-(this.sizes.table.width-p),y=this.sizes.pinnedWidth,b=this.sizes.pinnedWidth=0;b<u.length;b++){if(b<this.pinnedColumns){var w=u[b].actualWidth/y*f;u[b].actualWidth-=w,this.sizes.pinnedWidth+=u[b].actualWidth}this.sizes.totalWidth+=u[b].width||u[b].actualWidth}}if(this.sizes.scrollableWidth=this.sizes.table.width-this.sizes.pinnedWidth,l.innerHTML="",c.innerHTML="",h.innerHTML="",l.style.width="initial",c.style.width="initial",this.sizes.bodyHeight=this.sizes.table.height-(this.sizes.header.height+this.sizes.total.height),this.options.maxHeight){var x=((this.totalRowCount||9)+1)*this.sizes.cellHeight;this.sizes.bodyHeight=Math.min(x,this.options.maxHeight-(this.sizes.header.height+this.sizes.total.height))}return this.sizes.rowsToRender=Math.ceil(this.sizes.bodyHeight/this.sizes.cellHeight),this.sizes.rowsToRenderPrecise=this.sizes.bodyHeight/this.sizes.cellHeight,this.endRow=this.startRow+this.sizes.rowsToRender,this.startCol=0,this.endCol=this.options.columns[this.options.columns.length-1].length,this.sizes.rowsToRender<this.totalRowCount?this.vScrollRequired=!0:this.vScrollRequired=!1,this.sizes.totalWidth.toFixed(3)>this.sizes.table.width.toFixed(3)?this.hScrollRequired=!0:this.hScrollRequired=!1,this.options.allColumns=this.options.columns.map(function(t){return t}),this.sizes}}},{key:"createSample",value:function(s){var o=this,a=[];return this.options.columns[this.options.columns.length-1].forEach(function(t,e){if(t.maxLength)a.push({value:new Array(t.maxLength).fill("W").join("")});else if(s){for(var i="",n=0;n<Math.min(s.length,1e3);n++)s[n].length===o.options.columns[o.options.columns.length-1].length&&i.length<s[n][e].value.length&&(i=s[n][e].value);a.push({value:i})}else a.push({value:""})}),a}},{key:"handleClick",value:function(t){var e=+t.target.getAttribute("data-col-index"),i=+t.target.getAttribute("data-cell-index"),n=+t.target.getAttribute("data-row-index");if(t.target.classList.contains("websy-table-search-icon")&&this.options.columns[this.options.columns.length-1][e].onSearch&&this.options.columns[this.options.columns.length-1][e].onSearch(t,this.options.columns[this.options.columns.length-1][e]),t.target.classList.contains("websy-table-cell-collapse"))this.options.onCollapseCell&&this.options.onCollapseCell(t,+n,+e);else if(t.target.classList.contains("websy-table-cell-expand"))this.options.onExpandCell&&this.options.onExpandCell(t,+n,+e);else if(t.target.classList.contains("sortable-column")){var s=this.options.columns[this.options.columns.length-1][e];this.options.onSort?this.options.onSort(t,s,e):this.internalSort(s,e)}else(t.target.classList.contains("websy-table-cell-content")||t.target.classList.contains("websy-table-cell"))&&this.options.onCellSelect&&this.options.onCellSelect(t,{cellIndex:i,colIndex:e,rowIndex:n,cell:(this.currentData[n]||[])[i],column:(this.options.columns[this.options.columns.length-1]||[])[e]})}},{key:"handleMouseDown",value:function(t){if(!this.isTouchDevice)if(t.target.classList.contains("websy-scroll-handle-y")){this.scrollDragging=!0,this.scrollDirection="y";var e=document.getElementById("".concat(this.elementId,"_vScrollHandle"));this.handleYStart=e.offsetTop,this.mouseYStart=t.pageY}else if(t.target.classList.contains("websy-scroll-handle-x")){this.isTouchDevice&&t.preventDefault(),this.scrollDragging=!0,this.scrollDirection="x";var i=document.getElementById("".concat(this.elementId,"_hScrollHandle"));this.handleXStart=i.offsetLeft,this.mouseXStart=t.pageX}}},{key:"handleMouseMove",value:function(t){if(!0===this.scrollDragging)if(this.isTouchDevice&&t.preventDefault(),"y"===this.scrollDirection){var e=t.pageY-this.mouseYStart;this.scrollY(e)}else if("x"===this.scrollDirection){var i=t.pageX-this.mouseXStart;this.scrollX(i)}}},{key:"handleMouseUp",value:function(t){this.scrollDragging=!1,this.cellDragging=!1,this.handleYStart=null,this.mouseYStart=null,this.handleXStart=null,this.mouseXStart=null}},{key:"handleScrollWheel",value:function(t){if(!0===this.options.virtualScroll)if(t.preventDefault(),Math.abs(t.deltaX)>Math.abs(t.deltaY)){if(!1===this.hScrollRequired)return;var e=document.getElementById("".concat(this.elementId,"_hScrollHandle")),i=(document.getElementById("".concat(this.elementId,"_hScrollContainer")).getBoundingClientRect().width-e.getBoundingClientRect().width)/this.totalColumnCount;t.deltaX<0&&(i*=-1),this.scrollX(i)}else{if(!1===this.vScrollRequired)return;var n=document.getElementById("".concat(this.elementId,"_vScrollHandle")),s=(document.getElementById("".concat(this.elementId,"_vScrollContainer")).getBoundingClientRect().height-n.getBoundingClientRect().height)/this.totalRowCount;t.deltaY<0&&(s*=-1),this.scrollY(s)}else if(this.options.onNativeScroll){var o=document.getElementById("".concat(this.elementId,"_tableBody"));this.options.onNativeScroll(o.scrollTop)}}},{key:"handleTouchEnd",value:function(t){this.scrollDragging=!1,this.cellDragging=!1,this.handleYStart=null,this.mouseYStart=null,this.handleXStart=null,this.mouseXStart=null,void 0!==t.targetTouches&&(this.isTouchScrolling=!1)}},{key:"handleTouchMove",value:function(t){if(!0===this.isTouchScrolling&&(t.preventDefault(),t.stopPropagation(),void 0!==t.targetTouches&&0<t.targetTouches.length&&(t.deltaX=this.touchXStart-t.targetTouches[0].pageX,t.deltaY=this.touchYStart-t.targetTouches[0].pageY,50<Math.abs(t.deltaY)?(t.deltaX=0,this.handleScrollWheel(t)):50<Math.abs(t.deltaX)&&(t.deltaY=0,this.handleScrollWheel(t)))),!0===this.scrollDragging)if(t.preventDefault(),"y"===this.scrollDirection){var e=t.targetTouches[0].pageY-this.mouseYStart;this.scrollY(e)}else if("x"===this.scrollDirection){var i=t.targetTouches[0].pageX-this.mouseXStart;this.scrollX(i)}}},{key:"handleTouchStart",value:function(t){if(!t.target.classList.contains("websy-table-cell-expand")&&!t.target.classList.contains("websy-table-cell-collapse"))if(t.target.classList.contains("websy-table-touch-scroller")&&!0===this.options.virtualScroll&&(this.isTouchScrolling=!0,this.touchYStart=t.targetTouches[0].pageY,this.touchXStart=t.targetTouches[0].pageX),t.target.classList.contains("websy-scroll-handle-y")){this.scrollDragging=!0,this.scrollDirection="y";var e=document.getElementById("".concat(this.elementId,"_vScrollHandle"));this.handleYStart=e.offsetTop,this.mouseYStart=t.targetTouches[0].pageY}else if(t.target.classList.contains("websy-scroll-handle-x")){this.isTouchDevice&&t.preventDefault(),this.scrollDragging=!0,this.scrollDirection="x";var i=document.getElementById("".concat(this.elementId,"_hScrollHandle"));this.handleXStart=i.offsetLeft,this.mouseXStart=t.targetTouches[0].pageX}}},{key:"hideError",value:function(){var t=document.getElementById("".concat(this.elementId,"_tableContainer"));t&&t.classList.remove("has-error");var e=document.getElementById("".concat(this.elementId,"_tableInner"));e&&e.classList.remove("hidden");var i=document.getElementById("".concat(this.elementId,"_errorContainer"));i&&i.classList.remove("active")}},{key:"hideLoading",value:function(){this.loadingDialog.hide()}},{key:"perpetualScroll",value:function(){var i=this;if(!(300<this.touchEndTime-this.currentTouchtime))for(var t=this.touchEndTime-this.touchStartTime,e=this.currentClientY-this.mouseYStart,n=Math.abs(e*(1/(t/1e3))),s=1.5*t/1e3,o=Math.abs(Math.ceil(n/this.sizes.cellHeight)),a=o/s,l=0<e?-1:1,r=function(e){setTimeout(function(){var t=i.mouseYStart-i.currentClientY+i.sizes.cellHeight*(e+1)*l;t=Math.min(10,t),t=Math.max(-10,t),!0===i.isPerpetual&&(i.scrollY(Math.max(-5,Math.min(5,t))),i.scrollTimeout&&clearTimeout(i.scrollTimeout))},1e3/a*e)},c=0;c<o;c++)r(c)}},{key:"render",value:function(t){var e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];if(!this.options.columns)return console.log("No columns provided for table with ID ".concat(this.elementId)),void(this._isRendered=!0);if(0===this.options.columns.length)return console.log("No columns provided for table with ID ".concat(this.elementId)),void(this._isRendered=!0);if(this.currentData=[],!0===e){var i=this.createSample(t);this.calculateSizes(i,t.length,(t[0]||[]).length,0)}var n=document.getElementById("".concat(this.elementId,"_tableInner"));n&&(n.style.width="".concat(this.sizes.totalWidth,"px")),this.renderColumnHeaders(),this.renderTotals(),t&&this.appendRows(t);var s=document.getElementById("".concat(this.elementId,"_tableBody"));if(s){if(s.style.height="".concat(this.sizes.bodyHeight,"px"),!0===this.isTouchDevice){var o=document.getElementById("".concat(this.elementId,"_touchScroller"));o&&(o.style.top="".concat(this.sizes.header.height,"px"),o.style.height="calc(100% - ".concat(this.sizes.header.height+30,"px)"))}if(!0===this.options.virtualScroll){var a=document.getElementById("".concat(this.elementId,"_vScrollContainer")),l=document.getElementById("".concat(this.elementId,"_vScrollHandle"));if(!0===this.vScrollRequired){a.style.top="".concat(this.sizes.header.height+this.sizes.total.height,"px"),a.style.height="".concat(this.sizes.bodyHeight,"px"),!0===this.isTouchDevice&&(a.style.visibility="unset"),l.style.height=Math.max(this.options.minHandleSize,this.sizes.bodyHeight*(this.sizes.rowsToRenderPrecise/this.totalRowCount))+"px";var r=a.getBoundingClientRect().height-l.getBoundingClientRect().height;l.style.top=Math.round(this.startRow/(this.totalRowCount-this.sizes.rowsToRender)*r)+"px"}else l.style.height="0px";var c=document.getElementById("".concat(this.elementId,"_hScrollContainer")),h=document.getElementById("".concat(this.elementId,"_hScrollHandle"));!0===this.hScrollRequired?(c.style.right="".concat(this.isTouchDevice?this.options.touchScrollWidth:this.options.scrollWidth,"px"),c.style.width="".concat(this.sizes.scrollableWidth,"px"),h.style.width=Math.max(this.options.minHandleSize,this.sizes.scrollableWidth*(this.sizes.scrollableWidth/this.sizes.totalNonPinnedWidth))+"px",!0===this.isTouchDevice&&(c.style.visibility="unset")):h.style.width="0px"}}else this._isRendered=!0}},{key:"renderColumnHeaders",value:function(){var t=document.getElementById("".concat(this.elementId,"_tableHeader"));t&&(t.innerHTML=this.buildHeaderHtml(!0))}},{key:"renderTotals",value:function(){var t=document.getElementById("".concat(this.elementId,"_tableHeader")),e=this.buildTotalHtml(!0);if(!0===this.options.showTotalsAbove&&t)t.innerHTML+=e;else{var i=document.getElementById("".concat(this.elementId,"_tableFooter"));i&&(i.innerHTML=e)}}},{key:"resize",value:function(){}},{key:"showError",value:function(t){var e=document.getElementById("".concat(this.elementId,"_tableContainer"));e&&e.classList.add("has-error");var i=document.getElementById("".concat(this.elementId,"_errorContainer"));if(i&&i.classList.add("active"),t.title){var n=document.getElementById("".concat(this.elementId,"_errorTitle"));n&&(n.innerHTML=t.title)}if(t.message){var s=document.getElementById("".concat(this.elementId,"_errorMessage"));s&&(s.innerHTML=t.message)}}},{key:"scrollX",value:function(t){var e=document.getElementById("".concat(this.elementId,"_tableContainer"));if(e.classList.contains("scrolling")||e.classList.add("scrolling"),this.scrollTimeoutFn&&clearTimeout(this.scrollTimeoutFn),this.scrollTimeoutFn=setTimeout(function(){e.classList.remove("scrolling")},200),!1!==this.hScrollRequired){var i,n=document.getElementById("".concat(this.elementId,"_hScrollContainer")),s=document.getElementById("".concat(this.elementId,"_hScrollHandle"));i=void 0!==this.handleXStart&&null!==this.handleXStart?this.handleXStart+t:s.offsetLeft+t;var o=n.getBoundingClientRect().width-s.getBoundingClientRect().width;if(s.style.left=Math.min(o,Math.max(0,i))+"px",this.options.onScroll){var a=(this.sizes.totalNonPinnedWidth-this.sizes.scrollableWidth)*(Math.min(o,Math.max(0,i))/o),l=0;this.startCol=0,this.endCol=0;for(var r=this.pinnedColumns;r<this.options.allColumns[this.options.allColumns.length-1].length;r++)if(!1!==this.options.allColumns[this.options.allColumns.length-1][r].show&&a<(l+=this.options.allColumns[this.options.allColumns.length-1][r].actualWidth)){this.startCol=r;break}l=0;for(var c=this.startCol;c<this.options.allColumns[this.options.allColumns.length-1].length;c++)!1!==this.options.allColumns[this.options.allColumns.length-1][c].show&&(l+=this.options.allColumns[this.options.allColumns.length-1][c].actualWidth)<this.sizes.scrollableWidth&&(this.endCol=c);if(this.endCol<this.options.allColumns[this.options.allColumns.length-1].length-1&&(this.endCol+=1),this.endCol===this.options.allColumns[this.options.allColumns.length-1].length-1&&l>this.sizes.scrollableWidth&&0<a&&(this.startCol+=1),s.offsetWidth+s.offsetLeft>=n.offsetWidth-0){this.endCol=this.options.allColumns[this.options.allColumns.length-1].length-1,this.startCol=this.endCol+1;for(var h=0,d=this.endCol;-1<d;d--)!1!==this.options.allColumns[this.options.allColumns.length-1][d].show&&(h+=this.options.allColumns[this.options.allColumns.length-1][d].actualWidth)<this.sizes.scrollableWidth&&this.startCol--}this.endCol=Math.max(this.startCol,this.endCol),this.options.onScroll("y",this.startRow,this.endRow,this.startCol-this.pinnedColumns,this.endCol-this.pinnedColumns)}}}},{key:"scrollY",value:function(t){var e=document.getElementById("".concat(this.elementId,"_tableContainer"));if(!1!==this.vScrollRequired){e.classList.contains("scrolling")||e.classList.add("scrolling"),this.scrollTimeoutFn&&clearTimeout(this.scrollTimeoutFn),this.scrollTimeoutFn=setTimeout(function(){e.classList.remove("scrolling")},200);var i,n=document.getElementById("".concat(this.elementId,"_vScrollContainer")),s=document.getElementById("".concat(this.elementId,"_vScrollHandle"));i=void 0!==this.handleYStart&&null!==this.handleYStart?this.handleYStart+t:+s.style.top.replace("px","")+t;var o=n.getBoundingClientRect().height-s.getBoundingClientRect().height;s.style.top=Math.min(o,Math.max(0,i))+"px",this.options.onScroll&&(this.startRow=Math.min(this.totalRowCount-this.sizes.rowsToRender,Math.max(0,Math.round((this.totalRowCount-this.sizes.rowsToRender)*(i/o)))),this.endRow=this.startRow+this.sizes.rowsToRender,this.endRow===this.totalRowCount&&(this.startRow+=1),this.options.onScroll("y",this.startRow,this.endRow,Math.max(0,this.startCol-this.pinnedColumns),this.endCol-this.pinnedColumns))}}},{key:"showLoading",value:function(t){!0!==this.options.disableInternalLoader&&this.loadingDialog.show(t)}}]),r}(),WebsyChart=function(){function s(t,e){var a=this;_classCallCheck(this,s);if(this.elementId=t,this.options=_extends({},{margin:{top:20,left:3,bottom:3,right:3,axisBottom:0,axisLeft:0,axisRight:0,axisTop:0,legendBottom:0,legendLeft:0,legendRight:0,legendTop:0},axis:{},orientation:"vertical",colors:["#5e4fa2","#3288bd","#66c2a5","#abdda4","#e6f598","#fee08b","#fdae61","#f46d43","#d53e4f","#9e0142"],transitionDuration:650,curveStyle:"curveLinear",lineWidth:2,forceZero:!0,grouping:"grouped",groupPadding:3,fontSize:14,symbolSize:20,showTrackingLine:!0,showTooltip:!0,showLegend:!1,legendPosition:"bottom",tooltipWidth:200,brushHeight:50,minBandWidth:30,maxBandWidth:100,allowUnevenBands:!0,allowBrushing:!0,balancedMinMax:!1,onRendered:function(){}},e),this._isRendered=!1,this.leftAxis=null,this.rightAxis=null,this.topAxis=null,this.bottomAxis=null,this.renderedKeys={},this.brushedDomain=[],this.brushBarsInitialized={},this.brushLinesInitialized={},t){this.invertOverride=function(t,e){var i,n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],s="bottom";"horizontal"===a.options.orientation&&(s="left"),!0===n&&(s+="Brush"),s+="Axis";a.options.data[s.replace("Brush","").replace("Axis","")].bandWidth;for(var o=0;o<a.customBottomRange.length;o++)if(t>a.customBottomRange[o]){if(!a.customBottomRange[o+1]){i=o;break}if(t<a.customBottomRange[o+1]){i=o;break}}return i};var n=this;this.brushed=function(t){var e=n.options.margin.left+n.options.margin.axisLeft+(1-t.selection[0]/(n.plotWidth/(n.widthForCalc+n.totalBandPadding))),i=n.options.margin.top+n.options.margin.axisTop;"horizontal"===n.options.orientation&&(e=n.options.brushHeight+n.options.margin.left+n.options.margin.axisLeft,i=n.options.margin.top+n.options.margin.axisTop+(1-t.selection[0]/(n.plotHeight/(n.widthForCalc+n.totalBandPadding)))),n.plotArea&&n.plotArea.attr("transform","translate(".concat(e,", ").concat(i,")")),n.areaLayer&&n.areaLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),n.lineLayer&&n.lineLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),n.barLayer&&n.barLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),n.labelLayer&&n.labelLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),n.symbolLayer&&n.symbolLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),n.refLineLayer&&n.refLineLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),"horizontal"===n.options.orientation?n.leftAxisLayer&&n.leftAxisLayer.attr("transform","translate(".concat(n.options.brushHeight+n.options.margin.left+n.options.margin.axisLeft,", ").concat(i,")")):n.bottomAxisLayer&&n.bottomAxisLayer.attr("transform","translate(".concat(e,", ").concat(i+n.plotHeight,")"))};var i=document.getElementById(this.elementId);i?(i.classList.add("websy-chart"),"undefined"==typeof d3?console.error("d3 library has not been loaded"):(i.innerHTML="",this.svg=d3.select(i).append("svg"),this.legendArea=d3.select(i).append("div").attr("id","".concat(this.elementId,"_legend")).attr("class","websy-chart-legend"),this.legend=new WebsyDesigns.Legend("".concat(this.elementId,"_legend"),{}),this.errorContainer=d3.select(i).append("div").attr("id","".concat(this.elementId,"_errorContainer")).attr("class","websy-vis-error-container").html(' \n <div>\n <div id="'.concat(this.elementId,'_errorTitle"></div>\n <div id="').concat(this.elementId,'_errorMessage"></div>\n </div>\n ')),this.loadingContainer=d3.select(i).append("div").attr("id","".concat(this.elementId,"_loadingContainer")),this.loadingDialog=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loadingContainer")),this.prep())):console.error("No element found with ID ".concat(this.elementId))}else console.log("No element Id provided for Websy Chart")}return _createClass(s,[{key:"data",set:function(t){this.options.data=t,this.render()}},{key:"isRendered",get:function(){return this._isRendered}},{key:"close",value:function(){this.leftAxisLayer&&this.leftAxisLayer.selectAll("*").remove(),this.rightAxisLayer&&this.rightAxisLayer.selectAll("*").remove(),this.bottomAxisLayer&&this.bottomAxisLayer.selectAll("*").remove(),this.leftAxisLabel&&this.leftAxisLabel.selectAll("*").remove(),this.rightAxisLabel&&this.rightAxisLabel.selectAll("*").remove(),this.bottomAxisLabel&&this.bottomAxisLabel.selectAll("*").remove(),this.plotArea&&this.plotArea.selectAll("*").remove(),this.areaLayer&&this.areaLayer.selectAll("*").remove(),this.lineLayer&&this.lineLayer.selectAll("*").remove(),this.barLayer&&this.barLayer.selectAll("*").remove(),this.labelLayer&&this.labelLayer.selectAll("*").remove(),this.symbolLayer&&this.symbolLayer.selectAll("*").remove()}},{key:"createDomain",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],i=[],n="bottom";if("horizontal"===this.options.orientation&&(n="left"),0<this.brushedDomain.length&&t===n&&!1===e)i=_toConsumableArray(this.brushedDomain);else if(void 0!==this.options.data[t].min&&void 0!==this.options.data[t].max&&(i=[this.options.data[t].min,this.options.data[t].max],!0===this.options.forceZero&&(i=[Math.min(0,this.options.data[t].min),this.options.data[t].max])),this.options.data[t].data&&(i=this.options.data[t].data.map(function(t){return t.value})),"Time"===this.options.data[t].scale){var s=this.options.data[t].data[0].value,o=this.options.data[t].data[this.options.data[t].data.length-1].value;i=[s=this.parseX(s),o=this.parseX(o)]}return i}},{key:"createIdentity",value:function(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:10,e="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=0;n<t;n++)e+=i.charAt(Math.floor(Math.random()*i.length));return e}},{key:"handleEventMouseOut",value:function(t,e){this.trackingLineLayer.select(".tracking-line").attr("stroke-opacity",0),this.tooltip.hide(),this.options.onMouseOut&&this.options.onMouseOut()}},{key:"handleEventMouseMove",value:function(l,t){var r=this,c=d3.bisector(function(t){return r.parseX(t.x.value)}).left;if(!0===this.options.showTrackingLine&&d3.pointer(l)){var h,d="bottomAxis",p="bottom",u=d3.pointer(l)[0];"horizontal"===this.options.orientation&&(d="leftAxis",p="left",u=d3.pointer(l)[1]);var e="",m="",g=[];if(this[d].invert||(this[d].invert=this.invertOverride),void 0===(u=this[d].invert(u)))return this.tooltip.hide(),void(this.options.onMouseOut&&this.options.onMouseOut());var v=this[d].domain()[u];"horizontal"===this.options.orientation&&(v=_toConsumableArray(this[d].domain().reverse())[u]),this.options.data.series.forEach(function(e){if("Time"!==r.options.data[p].scale)h=r.customBottomRange[u]+(r.customBottomRange[u+1]-r.customBottomRange[u])/2,e.data.forEach(function(t){t.x.value===v&&(m||(m=t.x.value),t.y.color||(t.y.color=e.color),g.push(t))});else{var t=c(e.data,u,1),i=e.data[t-1],n=e.data[t];if("horizontal"===r.options.orientation&&(i=_toConsumableArray(e.data).reverse()[t-1],n=_toConsumableArray(e.data).reverse()[t]),i&&!n&&(h=r[d](r.parseX(i.x.value)),m=i.x.value,i.y.color||(i.y.color=e.color),g.push(i),void 0!==i.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(i.x.value))),n&&!i&&(h=r[d](r.parseX(n.x.value)),m=n.x.value,n.y.color||(n.y.color=e.color),g.push(n),void 0!==n.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(n.x.value))),i&&n){var s=r[d](r.parseX(i.x.value)),o=r[d](r.parseX(n.x.value)),a=Math.abs(s-o)/2;d3.pointer(l)[0]-s>=a?(h=o,m=n.x.value,void 0!==n.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(n.x.value)),n.y.color||(n.y.color=e.color),g.push(n)):(h=s,m=i.x.value,void 0!==n.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(n.x.value)),i.y.color||(i.y.color=e.color),g.push(i))}}}),e=" \n <ul>\n ",e+=g.map(function(t){return"\n <li>\n <i style='background-color: ".concat(t.y.color,";'></i>\n ").concat(t.y.tooltipLabel||"","<span>: ").concat(t.y.tooltipValue||t.value,"</span>\n </li>\n ")}).join(""),this.options.onMouseOver&&this.options.onMouseOver(g),e+="</ul>";var i={width:this.options.tooltipWidth,left:0,top:0,onLeft:h>this.plotWidth/2};if(h>this.plotWidth/2?(i.left=h-this.options.tooltipWidth-15,"Time"!==this.options.data[p].scale&&(i.left+=10)):(i.left=h+this.options.margin.left+this.options.margin.axisLeft+15,"Time"!==this.options.data[p].scale&&(i.left+=this.options.data[d.replace("Axis","")].bandWidth/2)),i.top=this.options.margin.top+this.options.margin.axisTop,"horizontal"===this.options.orientation){delete i.onLeft;var n=0;"Time"!==this.options.data[p].scale&&(n=this.options.data[d.replace("Axis","")].bandWidth/2),i={width:this.options.tooltipWidth,left:this.options.margin.left+this.options.margin.axisLeft+this.plotWidth-this.options.tooltipWidth,onTop:h>this.plotHeight/2,positioning:"vertical"},h>this.plotHeight/2?i.bottom=h+this.options.margin.top+this.options.margin.axisTop:i.top=h+this.options.margin.top+this.options.margin.axisTop+15+n}if(this.tooltip.setHeight(this.plotHeight),isNaN(i.left))return this.tooltip.hide(),void(this.options.onMouseOut&&this.options.onMouseOut());this.options.showTooltip&&this.tooltip.show(m,e,i),"Time"!==this.options.data[p].scale&&0===this.customBottomRange.length&&(h+=this.options.data[d.replace("Axis","")].bandWidth/2);var s=h,o=h,a=0,f=this.plotHeight;"horizontal"===this.options.orientation&&(s=0,o=this.plotWidth,f=a=h),this.trackingLineLayer.select(".tracking-line").attr("x1",s).attr("x2",o).attr("y1",a).attr("y2",f).attr("stroke-width",1).attr("stroke-dasharray","4 2").attr("stroke","#cccccc").attr("stroke-opacity",1)}}},{key:"prep",value:function(){this.defs=this.svg.append("defs"),this.clip=this.defs.append("clipPath").attr("id","".concat(this.elementId,"_clip")).append("rect"),this.xAxisClip=this.defs.append("clipPath").attr("id","".concat(this.elementId,"_xAxisClip")).append("rect"),this.yAxisClip=this.defs.append("clipPath").attr("id","".concat(this.elementId,"_yAxisClip")).append("rect"),this.brushClip=this.defs.append("clipPath").attr("id","".concat(this.elementId,"_brushclip")).append("rect"),this.leftAxisLayer=this.svg.append("g").attr("class","left-axis-layer").attr("clip-path","url(#".concat(this.elementId,"_yAxisClip)")).append("g"),this.rightAxisLayer=this.svg.append("g").attr("class","right-axis-layer"),this.bottomAxisLayer=this.svg.append("g").attr("class","bottom-axis-layer").attr("clip-path","url(#".concat(this.elementId,"_xAxisClip)")).append("g"),this.leftAxisLabel=this.svg.append("g").attr("class","left-axis-label-layer"),this.rightAxisLabel=this.svg.append("g").attr("class","right-axis-label-layer"),this.bottomAxisLabel=this.svg.append("g").attr("class","bottom-axis-label-layer"),this.plotArea=this.svg.append("g").attr("class","plot-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.barLayer=this.svg.append("g").attr("class","bar-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.areaLayer=this.svg.append("g").attr("class","area-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.lineLayer=this.svg.append("g").attr("class","line-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.labelLayer=this.svg.append("g").attr("class","label-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.symbolLayer=this.svg.append("g").attr("class","symbol-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.refLineLayer=this.svg.append("g").attr("class","refline-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.trackingLineLayer=this.svg.append("g").attr("class","tracking-line-layer"),this.trackingLineLayer.append("line").attr("class","tracking-line"),this.tooltip=new WebsyDesigns.WebsyChartTooltip(this.svg),this.brushLayer=this.svg.append("g"),this.brushArea=this.brushLayer.append("g").attr("class","brush-area"),this.brushLayer.append("g").attr("class","brush"),this.eventLayer=this.svg.append("g").attr("class","event-line").append("rect"),this.eventLayer.on("mouseout",this.handleEventMouseOut.bind(this)).on("mousemove",this.handleEventMouseMove.bind(this)),this.render()}},{key:"render",value:function(t){var l=this;if(this._isRendered=!1,void 0!==t&&(this.options=_extends({},this.options,t),this.options.legendOptions&&this.legend.setOptions(this.options.legendOptions)),this.options.data){this.processedX={},this.transition=d3.transition().duration(this.options.transitionDuration),this.options.data.bottom.scale&&"Time"===this.options.data.bottom.scale?this.parseX=function(t){if(void 0!==t.getTime)return t;d3.timeParse(this.options.timeParseFormat)(t)}:this.parseX=function(t){return t},!0===this.options.disableTransitions&&(this.transition=d3.transition().duration(0)),this.options.data.left||(this.options.data.left={data:[]}),this.options.data.right||(this.options.data.right={data:[]}),this.options.data.bottom||(this.options.data.bottom={data:[]}),"vertical"===this.options.orientation?(this.leftAxisLayer&&this.leftAxisLayer.attr("class","y-axis"),this.rightAxisLayer&&this.rightAxisLayer.attr("class","y-axis"),this.bottomAxisLayer&&this.bottomAxisLayer.attr("class","x-axis")):(this.leftAxisLayer&&this.leftAxisLayer.attr("class","x-axis"),this.rightAxisLayer&&this.rightAxisLayer.attr("class","x-axis"),this.bottomAxisLayer&&this.bottomAxisLayer.attr("class","y-axis"));var e=document.getElementById(this.elementId);if(e){if(this.width=e.clientWidth,this.height=e.clientHeight,!0===this.options.showLegend){var i=[];if(this.options.legendData&&0<this.options.legendData.length?i=this.options.legendData:this.options.data.series.map(function(t,e){return{value:t.label||t.key,color:t.color||l.options.colors[e%l.options.colors.length]}}),"top"!==this.options.legendPosition&&"bottom"!==this.options.legendPosition||(this.legendArea.style("width","100%"),this.legend.options.maxSize&&this.legendArea.style("height","".concat(this.legend.options.maxSize,"px")),this.legend.options.align="center"),"left"===this.options.legendPosition||"right"===this.options.legendPosition){var n=i.reduce(function(t,e){return t.length>(e.value||"").length?t:e.value},"");this.legend.options.align="left",this.legendArea.style("height","100%"),this.legendArea.style("width",this.legend.testWidth(n)+"px"),this.legend.options.maxSize&&this.legendArea.style("width","".concat(this.legend.options.maxSize,"px"))}this.legend.data=i;var s=this.legend.getSize();this.options.margin.legendTop=0,this.options.margin.legendBottom=0,this.options.margin.legendLeft=0,this.options.margin.legendRight=0,"top"===this.options.legendPosition&&(this.options.margin.legendTop=s.height,this.legendArea.style("top","0").style("bottom","unset")),"bottom"===this.options.legendPosition&&(this.options.margin.legendBottom=s.height,this.legendArea.style("top","unset").style("bottom","0")),"left"===this.options.legendPosition&&(this.options.margin.legendLeft=s.width,this.legendArea.style("left","0").style("right","unset").style("top","0")),"right"===this.options.legendPosition&&(this.options.margin.legendRight=s.width,this.legendArea.style("left","unset").style("right","0").style("top","0"))}this.svg.attr("width",this.width-this.options.margin.legendLeft-this.options.margin.legendRight).attr("height",this.height-this.options.margin.legendTop-this.options.margin.legendBottom).attr("transform","translate(".concat(this.options.margin.legendLeft,", ").concat(this.options.margin.legendTop,")")),this.longestLeft=0,this.longestRight=0,this.longestBottom=0;var o="";if(this.options.data.bottom&&this.options.data.bottom.data&&void 0===this.options.data.bottom.max&&(this.options.data.bottom.max=this.options.data.bottom.data[this.options.data.bottom.data.length-1].value,this.options.data.bottom.min=this.options.data.bottom.data[0].value),this.options.data.bottom&&void 0!==this.options.data.bottom.max&&(this.longestBottom=this.options.data.bottom.max.toString(),this.options.data.bottom.formatter?(this.longestBottom=this.options.data.bottom.formatter(this.options.data.bottom.max).toString(),this.options.data.bottom.data&&this.options.data.bottom.data[0]&&this.options.data.bottom.data[0].value&&(o=this.options.data.bottom.formatter(this.options.data.bottom.data[0].value).toString())):"Time"===this.options.data.bottom.scale?o=this.longestBottom="01/01/2000":(this.longestBottom=this.options.data.bottom.data.reduce(function(t,e){return t.length>e.value.length?t:e.value},""),this.options.data.bottom.data&&this.options.data.bottom.data[0]&&this.options.data.bottom.data[0].value&&(o=this.options.data.bottom.data[0].value))),this.options.data.left&&this.options.data.left.data&&"undefined"===this.options.data.left.max&&(this.options.data.left.min=d3.min(this.options.data.left.data),this.options.data.left.max=d3.max(this.options.data.left.data)),!this.options.data.left.max&&this.options.data.left.data&&(this.options.data.left.max=this.options.data.left.data.reduce(function(t,e){return t.length>e.value.length?t:e.value},"")),!this.options.data.left.min&&this.options.data.left.data&&(this.options.data.left.min=this.options.data.left.data.reduce(function(t,e){return t.length<e.value.length?t:e.value},this.options.data.left.max)),this.options.data.left&&void 0!==this.options.data.left.max&&(this.longestLeft=this.options.data.left.max.toString(),this.options.data.left.formatter&&(this.longestLeft=this.options.data.left.formatter(this.options.data.left.max).toString())),this.options.data.right&&this.options.data.right.data&&"undefined"===this.options.data.right.max&&(this.options.data.right.min=d3.min(this.options.data.right.data),this.options.data.right.max=d3.max(this.options.data.right.data)),this.options.data.right&&void 0!==this.options.data.right.max&&(this.longestRight=this.options.data.right.max.length>this.options.data.right.min.length?this.options.data.right.max.toString():this.options.data.right.min.toString(),this.options.data.right.formatter&&(this.longestRight=this.options.data.right.formatter(this.longestRight).toString())),!0===this.options.balancedMinMax)if("horizontal"===this.options.orientation){var a=Math.max(Math.abs(this.options.data.bottom.min),this.options.data.bottom.max);this.options.data.bottom.min=1-a,this.options.data.bottom.max=a}else{var r=Math.max(Math.abs(this.options.data.left.min),this.options.data.left.max);this.options.data.left.min=-1*r,this.options.data.left.max=r;var c=Math.max(Math.abs(this.options.data.right.min),this.options.data.right.max);this.options.data.right.min=-1*c,this.options.data.right.max=c}var h,d=WebsyUtils.measureText(this.longestLeft,0,this.options.data.left&&this.options.data.left.fontSize||this.options.fontSize),p=WebsyUtils.measureText(this.longestRight,0,this.options.data.right&&this.options.data.right.fontSize||this.options.fontSize),u=WebsyUtils.measureText(this.longestBottom,this.options.data.bottom&&this.options.data.bottom.rotate||0,this.options.data.bottom&&this.options.data.bottom.fontSize||this.options.fontSize),m=0;"vertical"===this.options.orientation&&(m=WebsyUtils.measureText(o,this.options.data.bottom&&this.options.data.bottom.rotate||0,this.options.data.bottom&&this.options.data.bottom.fontSize||this.options.fontSize).width,90!==Math.abs(this.options.data.bottom&&this.options.data.bottom.rotate||0)?m/=2:90===Math.abs(this.options.data.bottom&&this.options.data.bottom.rotate||0)&&(m=0),"Time"!==this.options.data.bottom.scale&&(o=Math.max(0,m))),this.options.margin.axisLeft=Math.max(d.width,m)+5,this.options.margin.axisRight=p.width+10,this.options.margin.axisBottom=u.height+10,this.options.margin.axisTop=0,this.options.data.left&&!0===this.options.data.left.showTitle&&(1===this.options.data.left.titlePosition?this.options.margin.axisLeft+=(this.options.data.left.titleFontSize||10)+10:this.options.margin.axisTop+=(this.options.data.left.titleFontSize||10)+10),this.options.data.right&&!0===this.options.data.right.showTitle&&(1===this.options.data.right.titlePosition?this.options.margin.axisRight+=(this.options.data.right.titleFontSize||10)+10:0===this.options.margin.axisTop&&(this.options.margin.axisTop+=(this.options.data.right.titleFontSize||10)+10)),0===(this.options.data.bottom&&this.options.data.bottom.rotate||0)&&!0!==this.options.axis.hideBottom?this.options.margin.axisLeft=Math.max(this.options.margin.axisLeft,u.width/2):(this.options.data.bottom&&this.options.data.bottom.rotate||0)<0&&!0!==this.options.axis.hideBottom?this.options.margin.axisLeft=Math.max(this.options.margin.axisLeft,m/2):0<(this.options.data.bottom&&this.options.data.bottom.rotate||0)&&!0!==this.options.axis.hideBottom&&(this.options.margin.axisRight=Math.max(this.options.margin.axisRight,u.width)),this.options.axis&&(!0===this.options.axis.hideAll&&(this.options.margin.axisLeft=0,this.options.margin.axisRight=0,this.options.margin.axisBottom=0),!0===this.options.axis.hideLeft&&(this.options.margin.axisLeft=0),!0===this.options.axis.hideRight&&(this.options.margin.axisRight=0),!0===this.options.axis.hideBottom&&(this.options.margin.axisBottom=0)),this.plotWidth=this.width-this.options.margin.legendLeft-this.options.margin.legendRight-this.options.margin.left-this.options.margin.right-this.options.margin.axisLeft-this.options.margin.axisRight,this.plotHeight=this.height-this.options.margin.legendTop-this.options.margin.legendBottom-this.options.margin.top-this.options.margin.bottom-this.options.margin.axisBottom-this.options.margin.axisTop;var g=this.brushNeeded=!1;this.bandPadding=0,this.totalBandPadding=0,this.brushBandPadding=0;var v=this.totalBrushBandPadding=0,f=0,y=0;this.options.maxBandWidth&&(f="horizontal"===this.options.orientation?(this.options.data.left.totalValueCount=this.options.data.left.data.reduce(function(t,e){return void 0===e.valueCount?t+1:t+e.valueCount},0),this.options.data.left.padding&&(this.totalBandPadding=this.plotHeight*this.options.data.left.padding,this.bandPadding=this.totalBandPadding/this.options.data.left.data.length,this.totalBrushBandPadding=this.plotHeight*this.options.data.left.padding,this.brushBandPadding=this.totalBandPadding/this.options.data.left.data.length),y=this.plotHeight-this.totalBandPadding,v="grouped"===this.options.grouping&&!0===this.options.allowUnevenBands?this.options.data.left.totalValueCount:this.options.data.left.data.length,this.options.data.left.data.length):(this.options.data.bottom.totalValueCount=this.options.data.bottom.data.reduce(function(t,e){return void 0===e.valueCount?t+1:t+e.valueCount},0),this.options.data.bottom.padding&&(this.totalBandPadding=this.plotWidth*this.options.data.bottom.padding,this.bandPadding=this.totalBandPadding/this.options.data.bottom.data.length,this.totalBrushBandPadding=this.plotWidth*this.options.data.bottom.padding,this.brushBandPadding=this.totalBandPadding/this.options.data.bottom.data.length),y=this.plotWidth-this.totalBandPadding,v="grouped"===this.options.grouping&&!0===this.options.allowUnevenBands?this.options.data.bottom.totalValueCount:this.options.data.bottom.data.length,this.options.data.bottom.data.length),y/v>this.options.maxBandWidth&&(g=!0,h=this.options.maxBandWidth),g||!0!==this.options.allowBrushing||(y/v<this.options.minBandWidth?(this.brushNeeded=!0,h=this.options.minBandWidth,"horizontal"===this.options.orientation?this.plotWidth-=this.options.brushHeight:this.plotHeight-=this.options.brushHeight):h=y/v));var b="horizontal"===this.options.orientation&&!0===this.brushNeeded?this.options.brushHeight:0;this.leftAxisLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")).style("font-size",this.options.data.left&&this.options.data.left.fontSize||this.options.fontSize),this.rightAxisLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.plotWidth+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")).style("font-size",this.options.data.right&&this.options.data.right.fontSize||this.options.fontSize),this.bottomAxisLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight,")")).style("font-size",this.options.data.bottom&&this.options.data.bottom.fontSize||this.options.fontSize),this.leftAxisLabel.attr("transform","translate(".concat(b+this.options.margin.left,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.rightAxisLabel.attr("transform","translate(".concat(b+this.options.margin.left+this.plotWidth+this.options.margin.axisLeft+this.options.margin.axisRight,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.bottomAxisLabel.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight,")")),this.plotArea.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.areaLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.lineLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.barLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.labelLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.symbolLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.refLineLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.trackingLineLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.clip.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", 0)")).attr("width",this.plotWidth).attr("height",this.plotHeight+this.options.margin.top+this.options.margin.axisTop),"horizontal"===this.options.orientation?(this.brushLayer.attr("transform","translate(".concat(this.options.margin.left,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.yAxisClip.attr("transform","translate(".concat(b,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")).attr("width",this.options.margin.axisLeft+10).attr("height",this.plotHeight),this.xAxisClip.attr("transform","translate(".concat(this.options.margin.left,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight,")")).attr("width",this.plotWidth+this.options.margin.axisLeft+this.options.margin.axisRight+this.options.margin.right).attr("height",u.height+10),this.brushClip.attr("transform","translate(".concat(this.options.margin.left,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")).attr("height",this.plotHeight).attr("width",this.options.brushHeight)):(this.brushLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight+u.height,")")),this.yAxisClip.attr("transform","translate(0, ".concat(this.options.margin.top+this.options.margin.axisTop-10,")")).attr("width",this.options.margin.axisLeft+10).attr("height",this.plotHeight+20),this.xAxisClip.attr("transform","translate(".concat(this.options.margin.left,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight,")")).attr("width",this.plotWidth+this.options.margin.axisLeft+this.options.margin.axisRight+this.options.margin.right).attr("height",u.height+10),this.brushClip.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight+u.height,")")).attr("width",this.plotWidth).attr("height",this.options.brushHeight)),this.eventLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")"));this.eventLayer.attr("x",0).attr("y",0).attr("width",this.plotWidth).attr("height",this.plotHeight).attr("fill-opacity","0");var w=this.createDomain("bottom"),x=this.createDomain("bottom"),I=[0,this.plotWidth],L=[0,this.plotWidth],k=[this.plotHeight,0],C=[this.options.brushHeight,0];"horizontal"===this.options.orientation&&(C=[this.plotHeight,0],L=[0,this.options.brushHeight]),this.widthForCalc=h*v,this.customBottomRange=[],this.customBottomDetailRange=[],this.customBottomBrushRange=[],this.customLeftRange=[],this.customLeftDetailRange=[],this.customLeftBrushRange=[];var _="Bottom",S="bottom";if("horizontal"===this.options.orientation&&(_="Left",S="left"),this.options.data[S].data&&this.options.data[S].data[0]&&(this.options.data[S].data[0].valueCount,1)&&"Ordinal"===this.options.data[S].scale){var D=0;this["custom".concat(_,"Range")]=[0].concat(_toConsumableArray(this.options.data[S].data.map(function(t,e,i){for(var n=l.bandPadding*e+l.bandPadding,s=l.widthForCalc/v*D,o=0;o<(t.valueCount||1);o++){var a=o*h;l["custom".concat(_,"DetailRange")].push(s+n+a)}return D+="stacked"!==l.options.grouping&&!0===l.options.allowUnevenBands&&t.valueCount||1,l.widthForCalc/v*D+n}))),D=0,this["custom".concat(_,"BrushRange")]=[0].concat(_toConsumableArray(this.options.data[S].data.map(function(t,e,i){l.brushBandPadding,l.brushBandPadding;return D+="stacked"!==l.options.grouping&&!0===l.options.allowUnevenBands&&t.valueCount||1,("vertical"===l.options.orientation?l.plotWidth:l.plotHeight)/v*D})))}w.length;this.options.data.bottomBrush={},this.options.data.leftBrush={},this.options.data.rightBrush={},"vertical"===this.options.orientation?(this.options.data.bottom.bandWidth=h,this.options.data.bottomBrush.bandWidth=(this.plotWidth-this.totalBandPadding)/v):(this.options.data.left.bandWidth=h,this.options.data.leftBrush.bandWidth=(this.plotHeight-this.totalBandPadding)/v,this.options.data.rightBrush.bandWidth=(this.plotHeight-this.totalBandPadding)/v),this.brushBandPadding=this.totalBandPadding/f,"vertical"===this.options.orientation?I=[0,this.widthForCalc+this.totalBandPadding]:k=[this.widthForCalc+this.totalBandPadding,0],!0!==this.options.allowBrushing&&(I=L),this.bottomAxis=d3["scale".concat(this.options.data.bottom.scale||"Ordinal")]().domain(w).range(I),this.brushInitialized||(this.bottomBrushAxis=d3["scale".concat(this.options.data.bottom.scale||"Ordinal")]().domain(x).range(L)),this.bottomAxis.nice,this.bottomAxis.padding&&this.options.data.bottom.padding&&this.bottomAxis.padding(this.options.data.bottom.padding||0);var A="brushX",T=this.plotWidth,B=this.plotWidth,E=this.options.brushHeight;if("horizontal"===this.options.orientation?(A="brushY",T=this.options.brushHeight,E=this.plotHeight,this.brushNeeded&&(B=this.plotHeight*(this.plotHeight/(this.widthForCalc+this.totalBandPadding)))):this.brushNeeded&&(B=this.plotWidth*(this.plotWidth/(this.widthForCalc+this.totalBandPadding))),this.brush=d3[A]().extent([[0,0],[T,E]]).on("brush end",this.brushed),this.brushNeeded?this.brushInitialized?this.brushLayer.style("visibility","visible"):(this.brushLayer.style("visibility","visible"),this.brushInitialized=!0,this.brushLayer.select(".brush").call(this.brush).call(this.brush.move,[0,B])):this.brushLayer.style("visibility","hidden"),0<this.options.margin.axisBottom){var M,R="";if(this.options.data.bottom.data)if("Time"===this.options.data.bottom.scale){var W=this.options.data.bottom.max.getTime()-this.options.data.bottom.min.getTime(),P=864e5;R=W<6e5?(M=d3.timeSecond.every(15),"%H:%M:%S"):W<36e5?(M=d3.timeMinute.every(1),"%H:%M"):W<P/6?(M=d3.timeMinute.every(10),"%H:%M"):W<P/2?(M=d3.timeMinute.every(30),"%H:%M"):W<P?(M=d3.timeHour.every(1),"%H:%M"):W<7*P?(M=d3.timeDay.every(1),"%d %b @ %H:%M"):W<14*P?(M=d3.timeDay.every(2),"%d %b %Y"):W<21*P?(M=d3.timeDay.every(3),"%d %b %Y"):W<28*P?(M=d3.timeDay.every(4),"%d %b %Y"):W<60*P?(M=d3.timeDay.every(7),"%d %b %Y"):(M=d3.timeMonth.every(1),"%b %Y")}else M=this.options.data.bottom.ticks||Math.min(this.options.data.bottom.data.length,5);else M=this.options.data.bottom.ticks||5;this.options.calculatedTimeFormatPattern=R,this.bAxisFunc=d3.axisBottom(this.bottomAxis).ticks(M),this.options.data.bottom.formatter&&this.bAxisFunc.tickFormat(function(t){return l.options.data.bottom.formatter(t)}),this.bottomAxisLayer.call(this.bAxisFunc),this.options.data.bottom.rotate&&this.bottomAxisLayer.selectAll("text").attr("transform","rotate(".concat(this.options.data.bottom&&this.options.data.bottom.rotate||0,")")).style("text-anchor","".concat(0===(this.options.data.bottom&&this.options.data.bottom.rotate||0)?"middle":"end")).style("transform-origin",0===(this.options.data.bottom&&this.options.data.bottom.rotate||0)?"0 0":"0 ".concat(this.options.data.bottom&&this.options.data.bottom.fontSize||this.options.fontSize,"px")),0<this.customBottomRange.length&&this.bottomAxisLayer.selectAll("g").attr("transform",function(t,e){return"translate(".concat(l.customBottomRange[e]+(l.customBottomRange[e+1]-l.customBottomRange[e])/2,", 0)")})}var H=this.createDomain("left"),z=this.createDomain("left"),O=this.createDomain("right"),F=this.createDomain("right");if(this.leftAxis=d3["scale".concat(this.options.data.left.scale||"Linear")]().domain(H).range(k),this.leftBrushAxis=d3["scale".concat(this.options.data.left.scale||"Linear")]().domain(z).range(C),this.leftAxis.padding&&this.options.data.left.padding&&this.leftAxis.padding(this.options.data.left.padding||0),this.leftAxis.nice&&this.leftAxis.nice(),0<this.options.margin.axisLeft&&(this.leftAxisLayer.call(d3.axisLeft(this.leftAxis).ticks(this.options.data.left.ticks||5).tickFormat(function(t){return l.options.data.left.formatter&&(t=l.options.data.left.formatter(t)),t})),0<this.customLeftRange.length&&this.leftAxisLayer.selectAll("g").attr("transform",function(t,e){return"translate(0, ".concat(l.customLeftRange[e]+(l.customLeftRange[e+1]-l.customLeftRange[e])/2,")")})),this.options.data.left&&!0===this.options.data.left.showTitle)if(this.leftAxisLabel.selectAll(".title").remove(),this.leftAxisLabel.selectAll(".dot").remove(),1===this.options.data.left.titlePosition){var N=this.leftAxisLabel.append("text").attr("class","title").attr("x",1-this.plotHeight/2).attr("y",(this.options.data.left.titleFontSize||10)/2+2).attr("font-size",this.options.data.left.titleFontSize||10).attr("fill",this.options.data.left.titleColor||"#888888").attr("text-anchor","middle").style("transform","rotate(-90deg)").text(this.options.data.left.title||"");0<O.length&&this.leftAxisLabel.append("circle").attr("class","dot").style("fill",this.options.data.left.color||"transparent").attr("r",this.options.data.left.titleFontSize&&this.options.data.left.titleFontSize/2||5).attr("cx",3).attr("cy",this.plotHeight/2-N.node().getBBox().width/2-15)}else this.leftAxisLabel.append("text").attr("class","title").attr("x",0).attr("y",5).attr("font-size",this.options.data.left.titleFontSize||10).attr("fill",this.options.data.left.titleColor||"#888888").attr("text-anchor","left").text(this.options.data.left.title||"");if(0<O.length&&(this.rightAxis=d3["scale".concat(this.options.data.right.scale||"Linear")]().domain(O).range([this.plotHeight,0]),this.rightBrushAxis=d3["scale".concat(this.options.data.right.scale||"Linear")]().domain(F).range(C),this.rightAxis.nice&&this.rightAxis.nice(),0<this.options.margin.axisRight&&(0!==this.options.data.right.min||0!==this.options.data.right.max)&&this.rightAxisLayer.call(d3.axisRight(this.rightAxis).ticks(this.options.data.right.ticks||5).tickFormat(function(t){return l.options.data.right.formatter&&(t=l.options.data.right.formatter(t)),t}))),this.options.data.right&&!0===this.options.data.right.showTitle&&(this.rightAxisLabel.selectAll(".title").remove(),1===this.options.data.right.titlePosition)){var V=this.rightAxisLabel.append("text").attr("class","title").attr("x",this.plotHeight/2).attr("y",5).attr("font-size",this.options.data.right.titleFontSize||10).attr("fill",this.options.data.right.titleColor||"#888888").attr("text-anchor","middle").style("transform","rotate(90deg)").text(this.options.data.right.title||"");0<O.length&&this.rightAxisLabel.append("circle").attr("class","dot").style("fill",this.options.data.right.color||"transparent").attr("r",this.options.data.right.titleFontSize&&this.options.data.right.titleFontSize/2||5).attr("cx",-2).attr("cy",this.plotHeight/2-V.node().getBBox().width/2-15)}var j=this.options.data.series.map(function(t){return t.key});for(var Y in this.renderedKeys)-1===j.indexOf(Y)&&(this.removeline(Y),this.removebar(Y),this.removesymbol(Y),this.removelabel(Y));this.renderComponents()}}else;}},{key:"renderComponents",value:function(){var i=this;this.renderedKeys={},this.options.data.series.forEach(function(t,e){t.key||(t.key=i.createIdentity()),t.color||(t.color=i.options.colors[e%i.options.colors.length]),i["render".concat(t.type||"bar")](t,e),i.renderLabels(t,e),i.renderedKeys[t.key]=t.type}),this.refLineLayer.selectAll(".reference-line").remove(),this.refLineLayer.selectAll(".reference-line-label").remove(),this.options.refLines&&0<this.options.refLines.length&&this.options.refLines.forEach(function(t){return i.renderRefLine(t)}),this._isRendered=!0}},{key:"renderarea",value:function(e,t){var s=this,i=function(n,e,t){return d3.area().x(function(t){if("Time"===s.options.data[n].scale)return s["".concat(n,"Axis")](s.parseX(t.x.value));var e=s[n+"Axis"].domain().indexOf(t.x.value),i=s["custom".concat(n.toInitialCaps(),"Range")][e];return s["custom".concat(n.toInitialCaps(),"Range")][e+1]&&(i+=(s["custom".concat(n.toInitialCaps(),"Range")][e+1]-i)/2),i}).y0(function(t){return s["".concat(e,"Axis")](0)}).y1(function(t){return s["".concat(e,"Axis")](isNaN(t.y.value)?0:t.y.value)}).curve(d3[t||s.options.curveStyle])},n="bottom",o="secondary"===e.axis?"right":"left";"horizontal"===this.options.orientation&&(n="secondary"===e.axis?"right":"left",o="bottom");var a=this.areaLayer.selectAll(".area_".concat(e.key)).data([e.data]);a.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),a.attr("fill",function(t){return t[0].y.color||e.color}).transition(this.transition).attr("d",function(t){return i(n,o,e.curveStyle)(t)}),a.enter().append("path").attr("d",function(t){return i(n,o,e.curveStyle)(t)}).attr("class","area_".concat(e.key)).attr("id","area_".concat(e.key)).attr("fill",function(t){return t[0].y.color||e.color}).attr("stroke","transparent").style("fill-opacity",e.opacity||.3)}},{key:"renderbar",value:function(e,t){var i=this,n="bottom",s="left",o=this.barLayer.selectAll(".bar_".concat(e.key)).data(e.data),a=this.brushArea.selectAll(".bar_".concat(e.key)).data(e.data);new Array(this.options.data.series.length).fill(0);function d(t,e,i,n){var s;if("horizontal"===this.options.orientation)s=Math.max(1,this.options.data[n].bandWidth-(-1!==n.indexOf("Brush")?2:2*this.options.groupPadding));else{var o=l.call(this,t,e,i,n);if(null==o)return null;s=this["".concat(i,"Axis")](0)-this["".concat(i,"Axis")](Math.abs(t.y.value))}return isNaN(s)?null:s}function p(t,e,i,n){var s;if("horizontal"===this.options.orientation)s=this["".concat(i,"Axis")](0)-this["".concat(i,"Axis")](Math.abs(t.y.value));else{var o=l.call(this,t,e,i,n);if(null==o)return null;s=Math.max(1,this.options.data[n].bandWidth-(-1!==n.indexOf("Brush")?2:2*this.options.groupPadding))}return isNaN(s)?0:s}function l(t,e,i,n){var s;if("horizontal"===this.options.orientation)if("stacked"===this.options.grouping){var o=p.call(this,{x:t.x,y:{value:t.y.accumulative}},e,i,n),a=p.call(this,t,e,i,n);s=0<=t.y.value?this["".concat(i,"Axis")](0)+Math.abs(o)*(0<t.y.accumulative?1:0):this["".concat(i,"Axis")](0)-(Math.abs(o)+Math.abs(a))*(0<t.y.accumulative?1:0)}else{var l=p.call(this,t,e,i,n);s=0<=t.y.value?this["".concat(i,"Axis")](0):this["".concat(i,"Axis")](0)+l}else if("grouped"===this.options.grouping){var r=0;this.processedX[t.x.value]&&(r=Math.max(0,this.processedX[t.x.value].indexOf(t.y.tooltipLabel)));var c=this.options.data[n].bandWidth*r+(-1!==n.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==n.indexOf("Brush")?1:this.options.groupPadding);s=0<this["custom".concat(n.toInitialCaps(),"Range")].length?this["custom".concat(n.toInitialCaps(),"Range")][this[n+"Axis"].domain().indexOf(t.x.value)]+c:this["".concat(n,"Axis")](this.parseX(t.x.value))+c,this.processedX[t.x.value]||(this.processedX[t.x.value]=[]),-1===this.processedX[t.x.value].indexOf(t.y.tooltipLabel)&&this.processedX[t.x.value].push(t.y.tooltipLabel)}else{var h=(-1!==n.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==n.indexOf("Brush")?1:this.options.groupPadding);s=this["custom".concat(n.toInitialCaps(),"Range")][this[n+"Axis"].domain().indexOf(t.x.value)]+h}return isNaN(s)?null:s}function r(t,e,i,n){var s;if("horizontal"===this.options.orientation)if("grouped"!==this.options.grouping){var o=(-1!==n.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==n.indexOf("Brush")?1:this.options.groupPadding);s=this["custom".concat(n.toInitialCaps(),"Range")][this[n+"Axis"].domain().indexOf(t.x.value)]+o}else{var a=0;this.processedX[t.x.value]&&(a=Math.max(0,this.processedX[t.x.value].indexOf(t.y.tooltipLabel)));var l=this.options.data[n].bandWidth*a+(-1!==n.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==n.indexOf("Brush")?1:this.options.groupPadding);s=0<this["custom".concat(n.toInitialCaps(),"Range")].length?this["custom".concat(n.toInitialCaps(),"Range")][this[n+"Axis"].domain().indexOf(t.x.value)]+l:this["".concat(n,"Axis")](this.parseX(t.x.value))+l,this.processedX[t.x.value]||(this.processedX[t.x.value]=[]),-1===this.processedX[t.x.value].indexOf(t.y.tooltipLabel)&&this.processedX[t.x.value].push(t.y.tooltipLabel)}else if("stacked"===this.options.grouping){var r=d.call(this,{x:t.x,y:{value:t.y.accumulative}},e,i,n),c=d.call(this,t,e,i,n);s=this["".concat(i,"Axis")](0)-(r+c)*(t.y.accumulative<0?0:1)}else{var h=d.call(this,t,e,i,n);s=this["".concat(i,"Axis")](0)-h*(t.y.value<0?0:1)}return isNaN(s)?null:s}"horizontal"===this.options.orientation&&(n="left",s="bottom"),o.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),o.attr("width",function(t,e){return Math.abs(p.call(i,t,e,s,n))}).attr("height",function(t,e){return d.call(i,t,e,s,n)}).attr("x",function(t,e){return l.call(i,t,e,s,n)}).attr("y",function(t,e){return r.call(i,t,e,s,n)}).attr("fill",function(t){return t.y.color||t.color||e.color}),o.enter().append("rect").attr("width",function(t,e){return Math.abs(p.call(i,t,e,s,n))}).attr("height",function(t,e){return d.call(i,t,e,s,n)}).attr("x",function(t,e){return l.call(i,t,e,s,n)}).attr("y",function(t,e){return r.call(i,t,e,s,n)}).attr("fill",function(t){return t.y.color||t.color||e.color}).attr("class",function(t){return"bar bar_".concat(e.key)}),this.brushBarsInitialized[e.key]||(this.brushBarsInitialized[e.key]=!0,a.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),a.attr("width",function(t,e){return Math.abs(p.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush")))}).attr("height",function(t,e){return d.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush"))}).attr("x",function(t,e){return l.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush"))}).attr("y",function(t,e){return r.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush"))}).attr("fill",function(t){return t.y.color||t.color||e.color}),a.enter().append("rect").attr("width",function(t,e){return Math.abs(p.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush")))}).attr("height",function(t,e){return d.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush"))}).attr("x",function(t,e){return l.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush"))}).attr("y",function(t,e){return r.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush"))}).attr("fill",function(t){return t.y.color||t.color||e.color}).attr("class",function(t){return"bar bar_".concat(e.key)}))}},{key:"removebar",value:function(t){this.barLayer.selectAll(".bar_".concat(t)).transition(this.transition).style("fill-opacity",1e-6).remove(),this.brushArea.selectAll(".bar_".concat(t)).transition(this.transition).style("fill-opacity",1e-6).remove()}},{key:"renderLabels",value:function(i,t){var e=this,a="bottom",l="left",n=this;if("horizontal"===this.options.orientation&&(a="left",l="bottom"),!0===this.options.showLabels||!0===i.showLabels){var s=this.labelLayer.selectAll(".label_".concat(i.key)).data(i.data);s.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),s.attr("x",function(t){return o.call(e,t,i.labelPosition)}).attr("y",function(t){return r.call(e,t,i.labelPosition)}).attr("class","label_".concat(i.key)).attr("fill",function(t){return"stacked"===e.options.grouping&&0===t.y.value?"transparent":e.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color)}).style("font-size","".concat(this.options.labelSize||this.options.fontSize,"px")).transition(this.transition).text(function(t){return t.y.label||t.y.value}).each(function(t,e){"horizontal"===n.options.orientation?"stacked"===n.options.grouping&&"outside"!==i.labelPosition?this.setAttribute("text-anchor","middle"):n.plotWidth-o.call(n,t)<this.getComputedTextLength()?(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8),this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color))):t.y.value<0&&this.getAttribute("x")<0?(this.setAttribute("text-anchor","start"),this.setAttribute("x",Math.max(+this.getAttribute("x")+8,8)),this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color))):(t.y.value<0&&0<this.getAttribute("x")?(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8)):"outside"===i.labelPosition?(this.setAttribute("text-anchor","start"),this.setAttribute("x",+this.getAttribute("x")+8)):this.setAttribute("text-anchor","start"),this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark("#ffffff"))):n.plotheight-o.call(n,t)<(n.options.labelSize||n.options.fontSize)&&this.setAttribute("y",+this.getAttribute("y")+8)}),s.enter().append("text").attr("class","label_".concat(i.key)).attr("x",function(t){return o.call(e,t,i.labelPosition)}).attr("y",function(t){return r.call(e,t,i.labelPosition)}).attr("alignment-baseline","central").attr("text-anchor","horizontal"===this.options.orientation?"left":"middle").attr("fill",function(t){return"stacked"===e.options.grouping&&0===t.y.value?"transparent":e.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color)}).style("font-size","".concat(this.options.labelSize||this.options.fontSize,"px")).text(function(t){return t.y.label||t.y.value}).each(function(t,e){"horizontal"===n.options.orientation?"stacked"===n.options.grouping&&"outside"!==i.labelPosition?this.setAttribute("text-anchor","middle"):n.plotWidth-o.call(n,t)<this.getComputedTextLength()?(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8),this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color))):t.y.value<0&&this.getAttribute("x")<0?(this.setAttribute("text-anchor","start"),this.setAttribute("x",Math.max(+this.getAttribute("x")+8,8)),this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color))):(t.y.value<0&&0<this.getAttribute("x")?(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8)):"outside"===i.labelPosition&&(this.setAttribute("text-anchor","start"),this.setAttribute("x",+this.getAttribute("x")+8)),this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark("#ffffff"))):(n.plotheight-o.call(n,t)<(n.options.labelSize||n.options.fontSize)&&this.setAttribute("y",+this.getAttribute("y")+8),"outside"!==i.labelPosition&&this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color)))})}function o(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"inside";if("horizontal"===this.options.orientation)return"stacked"===this.options.grouping?this[l+"Axis"](t.y.accumulative)+this[l+"Axis"](t.y.value)/("inside"===e?2:1):this[l+"Axis"](isNaN(t.y.value)?0:t.y.value)+4;var i=this[a+"Axis"].domain().indexOf(t.x.value),n=this["custom".concat(a.toInitialCaps(),"Range")][i];return this["custom".concat(a.toInitialCaps(),"Range")][i+1]&&(n+=(this["custom".concat(a.toInitialCaps(),"Range")][i+1]-n)/2),n}function r(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"inside";if("horizontal"===this.options.orientation){var i=this[a+"Axis"].domain().indexOf(t.x.value),n=this["custom".concat(a.toInitialCaps(),"Range")][i];return this["custom".concat(a.toInitialCaps(),"Range")][i+1]&&(n+=(this["custom".concat(a.toInitialCaps(),"Range")][i+1]-n)/2),n}if("stacked"!==this.options.grouping)return this[l+"Axis"](isNaN(t.y.value)?0:t.y.value)-(this.options.labelSize||this.options.fontSize);var s=this["".concat(l,"Axis")](0)-this["".concat(l,"Axis")](Math.abs(t.y.accumulative)),o=this["".concat(l,"Axis")](0)-this["".concat(l,"Axis")](Math.abs(t.y.value));return this["".concat(l,"Axis")](0)-(s+o-("inside"===e?o/2:0))*(t.y.accumulative<0?0:1)}}},{key:"renderline",value:function(e,t){var o=this,i=function(n,s,t){return d3.line().x(function(t){if("horizontal"===o.options.orientation)return o["".concat(s,"Axis")](isNaN(t.y.value)?0:t.y.value);if("Time"===o.options.data[n].scale)return o["".concat(n,"Axis")](o.parseX(t.x.value));var e=o[n+"Axis"].domain().indexOf(t.x.value),i=o["custom".concat(n.toInitialCaps(),"Range")][e];return o["custom".concat(n.toInitialCaps(),"Range")][e+1]&&(i+=(o["custom".concat(n.toInitialCaps(),"Range")][e+1]-i)/2),i}).y(function(t){if("horizontal"!==o.options.orientation)return o["".concat(s,"Axis")](isNaN(t.y.value)?0:t.y.value);var e="Time"===o.options.data[n.replace("Brush","")].scale?0:o.options.data[n].bandWidth/2;return o["".concat(n,"Axis")](o.parseX(t.x.value))+e}).curve(d3[t||o.options.curveStyle])},n="bottom",s="secondary"===e.axis?"right":"left";"horizontal"===this.options.orientation&&(n="secondary"===e.axis?"right":"left",s="bottom");var a="bottomBrush",l="secondary"===e.axis?"rightBrush":"leftBrush";"horizontal"===this.options.orientation&&(a="leftBrush",l="bottomBrush");var r=this.lineLayer.selectAll(".line_".concat(e.key)).data([e.data]),c=this.brushArea.selectAll(".line_".concat(e.key)).data([e.data]);r.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),r.style("stroke-width",e.lineWidth||this.options.lineWidth).attr("stroke",function(t){return t[0].y.color||e.color}).attr("fill","transparent").transition(this.transition).attr("d",function(t){return i(n,s,e.curveStyle)(t)}),r.enter().append("path").attr("d",function(t){return i(n,s,e.curveStyle)(t)}).attr("class","line_".concat(e.key)).attr("id","line_".concat(e.key)).style("stroke-width",e.lineWidth||this.options.lineWidth).attr("stroke",function(t){return t[0].y.color||e.color}).attr("fill","transparent").style("stroke-opacity",1),this.brushLinesInitialized[e.key]||(this.brushLinesInitialized[e.key]=!0,c.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),c.style("stroke-width",1).attr("stroke",e.color).attr("fill","transparent").transition(this.transition).attr("d",function(t){return i(a,l,e.curveStyle)(t)}),c.enter().append("path").attr("d",function(t){return i(a,l,e.curveStyle)(t)}).attr("class","line_".concat(e.key)).attr("id","line_".concat(e.key)).style("stroke-width",1).attr("stroke",e.color).attr("fill","transparent").style("stroke-opacity",1)),!0===e.showArea&&this.renderarea(e,t),!0===e.showSymbols&&this.rendersymbol(e,t)}},{key:"renderRefLine",value:function(t){var e="left",i="y",n="x",s=this.plotWidth;"horizontal"===this.options.orientation&&("left",e="bottom",i="x",n="y",s=this.plotHeight),this.refLineLayer.append("line").attr("".concat(i,"1"),this["".concat(e,"Axis")](t.value)).attr("".concat(i,"2"),this["".concat(e,"Axis")](t.value)).attr("".concat(n,"2"),s).attr("class","reference-line").style("stroke",t.color).style("stroke-width","".concat(t.lineWidth,"px")).style("stroke-dasharray",t.lineStyle),t.label&&""!==t.label&&this.refLineLayer.append("text").attr("class","reference-line-label").attr("x",s).attr("y",this["".concat(e,"Axis")](t.value)).attr("font-size",this.options.fontSize).attr("fill",t.color).text(t.label).attr("text-anchor","end").attr("alignment-baseline","text-after-edge")}},{key:"removeline",value:function(t){this.lineLayer.selectAll(".line_".concat(t)).transition(this.transition).style("stroke-opacity",1e-6).remove(),this.areaLayer.selectAll(".area_".concat(t)).transition(this.transition).style("stroke-opacity",1e-6).remove()}},{key:"removelabel",value:function(t){this.labelLayer.selectAll(".label_".concat(t)).transition(this.transition).style("stroke-opacity",1e-6).remove()}},{key:"removesymbol",value:function(t){this.symbolLayer.selectAll(".symbol_".concat(t)).transition(this.transition).style("stroke-opacity",1e-6).remove()}},{key:"rendersymbol",value:function(e,t){var o=this,i=function(t){return d3.symbol().size(t||o.options.symbolSize)},a="bottom",l="secondary"===e.axis?"right":"left";"horizontal"===this.options.orientation&&(a="secondary"===e.axis?"right":"left",l="bottom");var n=this.symbolLayer.selectAll(".symbol_".concat(e.key)).data(e.data);n.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),n.attr("d",function(t){return i(t.y.size||e.symbolSize)(t)}).transition(this.transition).attr("fill",function(t){return e.fillSymbols?t.y.color||e.color:"white"}).attr("stroke",function(t){return t.y.color||e.color}).attr("transform",function(t){var e=o[a+"Axis"].domain().indexOf(t.x.value),i=o["custom".concat(a.toInitialCaps(),"Range")][e];o["custom".concat(a.toInitialCaps(),"Range")][e+1]&&(i+=(o["custom".concat(a.toInitialCaps(),"Range")][e+1]-i)/2);"Time"===o.options.data[a].scale||"Linear"===o.options.data[a].scale||o.options.data[a].bandWidth;if("horizontal"===o.options.orientation)return"translate(".concat(o["".concat(l,"Axis")](isNaN(t.y.value)?0:t.y.value),", ").concat(i,")");if("Time"===o.options.data[a].scale)i=o["".concat(a,"Axis")](o.parseX(t.x.value));else{var n=o[a+"Axis"].domain().indexOf(t.x.value),s=o["custom".concat(a.toInitialCaps(),"Range")][n];o["custom".concat(a.toInitialCaps(),"Range")][n+1]&&(s+=(o["custom".concat(a.toInitialCaps(),"Range")][n+1]-s)/2)}return"translate(".concat(i,", ").concat(o["".concat(l,"Axis")](isNaN(t.y.value)?0:t.y.value),")")}),n.enter().append("path").attr("d",function(t){return i(t.y.size||e.symbolSize)(t)}).attr("fill",function(t){return e.fillSymbols?t.y.color||e.color:"white"}).attr("stroke",function(t){return t.y.color||e.color}).attr("class",function(t){return"symbol symbol_".concat(e.key)}).attr("transform",function(t){var e=o[a+"Axis"].domain().indexOf(t.x.value),i=o["custom".concat(a.toInitialCaps(),"Range")][e];o["custom".concat(a.toInitialCaps(),"Range")][e+1]&&(i+=(o["custom".concat(a.toInitialCaps(),"Range")][e+1]-i)/2);"Time"===o.options.data[a].scale||"Linear"===o.options.data[a].scale||o.options.data[a].bandWidth;if("horizontal"===o.options.orientation)return"translate(".concat(o["".concat(l,"Axis")](isNaN(t.y.value)?0:t.y.value),", ").concat(i,")");if("Time"===o.options.data[a].scale)i=o["".concat(a,"Axis")](o.parseX(t.x.value));else{var n=o[a+"Axis"].domain().indexOf(t.x.value),s=o["custom".concat(a.toInitialCaps(),"Range")][n];o["custom".concat(a.toInitialCaps(),"Range")][n+1]&&(s+=(o["custom".concat(a.toInitialCaps(),"Range")][n+1]-s)/2)}return"translate(".concat(i,", ").concat(o["".concat(l,"Axis")](isNaN(t.y.value)?0:t.y.value),")")})}},{key:"resize",value:function(){var t=document.getElementById(this.elementId);t&&(this.width=t.clientWidth,this.height=t.clientHeight,this.svg.attr("width",this.width-this.options.margin.legendLeft-this.options.margin.legendRight).attr("height",this.height-this.options.margin.legendTop-this.options.margin.legendBottom).attr("transform","translate(".concat(this.options.margin.legendLeft,", ").concat(this.options.margin.legendTop,")")),this.plotWidth=this.width-this.options.margin.left-this.options.margin.right-this.options.margin.axisLeft-this.options.margin.axisRight,this.plotHeight=this.height-this.options.margin.top-this.options.margin.bottom-this.options.margin.axisBottom-this.options.margin.axisTop,this.longestRight=5,this.longestBottom=5,this.options.margin.axisLeft=this.longestLeft*(this.options.data.left&&this.options.data.left.fontSize||this.options.fontSize)*.7,this.options.margin.axisRight=this.longestRight*(this.options.data.right&&this.options.data.right.fontSize||this.options.fontSize)*.7,this.options.margin.axisBottom=(this.options.data.bottom&&this.options.data.bottom.fontSize||this.options.fontSize)+10,this.options.data.bottom.rotate&&(this.options.margin.axisBottom=this.longestBottom*(this.options.data.bottom&&this.options.data.bottom.fontSize||this.options.fontSize)*.4),this.options.axis&&(!0===this.options.axis.hideAll&&(this.options.margin.axisLeft=0,this.options.margin.axisRight=0,this.options.margin.axisBottom=0),!0===this.options.axis.hideLeft&&(this.options.margin.axisLeft=0),!0===this.options.axis.hideRight&&(this.options.margin.axisRight=0),!0===this.options.axis.hideBottom&&(this.options.margin.axisBottom=0)),this.leftAxisLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.rightAxisLayer.attr("transform","translate(".concat(this.options.margin.left+this.plotWidth+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.bottomAxisLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight,")")),this.leftAxisLabel.attr("transform","translate(".concat(this.options.margin.left,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.rightAxisLabel.attr("transform","translate(".concat(this.options.margin.left+this.plotWidth+this.options.margin.axisLeft+this.options.margin.axisRight,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.bottomAxisLabel.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight,")")),this.plotArea.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.areaLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.lineLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.barLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.labelLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.symbolLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.trackingLineLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.eventLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")))}},{key:"hideError",value:function(){var t=document.getElementById("".concat(this.elementId));t&&t.classList.remove("has-error"),this.svg&&this.svg.classed("hidden",!1);var e=document.getElementById("".concat(this.elementId,"_errorContainer"));e&&e.classList.remove("active")}},{key:"hideLoading",value:function(){this.loadingDialog.hide()}},{key:"showError",value:function(t){var e=document.getElementById("".concat(this.elementId));e&&e.classList.add("has-error"),this.svg&&this.svg.classed("hidden",!0);var i=document.getElementById("".concat(this.elementId,"_errorContainer"));if(i&&i.classList.add("active"),t.title){var n=document.getElementById("".concat(this.elementId,"_errorTitle"));n&&(n.innerHTML=t.title)}if(t.message){var s=document.getElementById("".concat(this.elementId,"_errorMessage"));s&&(s.innerHTML=t.message)}}},{key:"showLoading",value:function(t){this.loadingDialog.show(t)}}]),s}(),WebsyLegend=function(){function n(t,e){_classCallCheck(this,n);if(this.elementId=t,this.options=_extends({},{align:"center",direction:"horizontal",style:"circle",symbolSize:16,hPadding:20,vPadding:10},e),this._data=[],t){var i=document.getElementById(this.elementId);i?(i.classList.add("websy-legend"),this.render()):console.error("No element found with ID ".concat(this.elementId))}else console.log("No element Id provided for Websy Chart")}return _createClass(n,[{key:"getLegendItemHTML",value:function(t){return"\n <div \n class='websy-legend-item ".concat(this.options.direction,"' \n style='margin: ").concat(this.options.vPadding/2,"px ").concat(this.options.hPadding/2,"px;'\n >\n <span \n class='symbol ").concat(t.style||this.options.style,"' \n style='\n background-color: ").concat(t.color,";\n width: ").concat(this.options.symbolSize,"px;\n height: ").concat("line"===this.options.style?3:this.options.symbolSize,"px;\n '\n ></span>\n ").concat(t.value,"\n </div>\n ")}},{key:"getSize",value:function(){var t=document.getElementById(this.elementId);if(t)return{width:t.clientWidth,height:t.clientHeight}}},{key:"data",set:function(t){this._data=t,this.render()}},{key:"render",value:function(){this.resize()}},{key:"resize",value:function(){var i=this,t=document.getElementById(this.elementId);if(t){var e="\n <div class='text-".concat(this.options.align,"'>\n ");e+=this._data.map(function(t,e){return i.getLegendItemHTML(t)}).join(""),e+="\n <div>\n ",t.innerHTML=e}}},{key:"setOptions",value:function(t){this.options=_extends({},this.options,t)}},{key:"testWidth",value:function(t){var e=this.getLegendItemHTML({value:t}),i=document.createElement("div");i.style.position="absolute",i.style.visibility="hidden",i.innerHTML=e,document.body.appendChild(i);var n=i.clientWidth+30;return i.remove(),n}}]),n}(),WebsyKPI=function(){function i(t,e){_classCallCheck(this,i);this.elementId=t,this.options=_extends({},{tooltip:{},label:{value:""},value:{value:""}},e),this._isRendered=!1,this.render()}return _createClass(i,[{key:"isRendered",get:function(){return this._isRendered}},{key:"render",value:function(t){this._isRendered=!1,this.options=_extends({},this.options,t),this.options.label.classes||(this.options.label.classes=[]),this.options.value.classes||(this.options.value.classes=[]),this.options.subValue&&!this.options.subValue.classes&&(this.options.subValue.classes=[]),this.options.tooltip.classes||(this.options.tooltip.classes=[]),this.resize()}},{key:"resize",value:function(){var t=document.getElementById(this.elementId);if(t){var e='\n <div class="websy-kpi-container">\n ';this.options.icon&&(e+='\n <div class="websy-kpi-icon"><img src="'.concat(this.options.icon,'"></div> \n ')),e+=' \n <div class="websy-kpi-info">\n <div class="websy-kpi-label-container">\n <div class="websy-kpi-label '.concat(this.options.label.classes.join(" ")||"",'">\n ').concat((this.options.label||{}).value||"","\n </div>\n "),this.options.tooltip&&this.options.tooltip.value&&(e+='\n <div class="websy-info '.concat(this.options.tooltip.classes.join(" ")||"",'" data-info="').concat(this.options.tooltip.value,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><title>ionicons-v5-e</title><path d="M256,56C145.72,56,56,145.72,56,256s89.72,200,200,200,200-89.72,200-200S366.28,56,256,56Zm0,82a26,26,0,1,1-26,26A26,26,0,0,1,256,138Zm48,226H216a16,16,0,0,1,0-32h28V244H228a16,16,0,0,1,0-32h32a16,16,0,0,1,16,16V332h28a16,16,0,0,1,0,32Z"/></svg>\n </div> \n ')),e+='\n </div>\n <div class="websy-kpi-value '.concat(this.options.value.classes.join(" ")||"",'">').concat(this.options.value.value,"</div>\n "),this.options.subValue&&(e+='\n <div class="websy-kpi-sub-value '.concat(this.options.subValue.classes.join(" ")||"",'">').concat(this.options.subValue.value,"</div>\n ")),e+=" \n </div>\n </div>\n ",t.innerHTML=e,this._isRendered=!0}else this._isRendered=!0}}]),i}(),WebsyMap=function(){function s(t,e){_classCallCheck(this,s);if(this.elementId=t,this.options=_extends({},{tileUrl:"https://tile.openstreetmap.org/{z}/{x}/{y}.png",disablePan:!1,disableZoom:!1,markerSize:10,useClustering:!1,maxMarkerSize:50,minMarkerSize:20,data:{},legendPosition:"bottom",colors:["#5e4fa2","#3288bd","#66c2a5","#abdda4","#e6f598","#fee08b","#fdae61","#f46d43","#d53e4f","#9e0142"]},e),this._isRendered=!1,t){var i=_extends({},e.mapOptions);i.click=this.handleMapClick.bind(this),!0===this.options.disableZoom&&(i.scrollWheelZoom=!1,i.zoomControl=!1),!0===this.options.disablePan&&(i.dragging=!1);var n=document.getElementById(this.elementId);n&&("undefined"==typeof L&&console.error("Leaflet library has not been loaded"),n.innerHTML='\n <div id="'.concat(this.elementId,'_map"></div>\n <div id="').concat(this.elementId,'_legend" class="websy-map-legend"></div>\n '),n.addEventListener("click",this.handleClick.bind(this)),this.legend=new WebsyDesigns.Legend("".concat(this.elementId,"_legend"),{}),this.map=L.map("".concat(this.elementId,"_map"),i),this.render())}else console.log("No element Id provided for Websy Map")}return _createClass(s,[{key:"isRendered",get:function(){return this._isRendered}},{key:"handleClick",value:function(t){}},{key:"handleMapClick",value:function(t){}},{key:"render",value:function(){var n=this;this._isRendered=!1;var t=document.getElementById("".concat(this.elementId,"_map")),e=document.getElementById("".concat(this.elementId,"_map"));if(!0===this.options.showLegend&&this.options.data.polygons){var i=this.options.data.polygons.map(function(t,e){return{value:t.label||t.key,color:t.color||n.options.colors[e%n.options.colors.length]}}),s=i.map(function(t){return t.value}).reduce(function(t,e){return t.length>e.length?t:e});"top"!==this.options.legendPosition&&"bottom"!==this.options.legendPosition||(e.style.width="100%"),"left"!==this.options.legendPosition&&"right"!==this.options.legendPosition||(e.style.height="100%",e.style.width=this.legend.testWidth(s)+"px"),this.legend.data=i;var o=this.legend.getSize();t.style.position="relative","top"===this.options.legendPosition&&(e.style.top=0,e.style.bottom="unset",t.style.top=o.height,t.style.height="calc(100% - ".concat(o.height,"px)")),"bottom"===this.options.legendPosition&&(e.style.top="unset",e.style.bottom=0,t.style.height="calc(100% - ".concat(o.height,"px)")),"left"===this.options.legendPosition&&(e.style.left=0,e.style.right="unset",e.style.top=0,t.style.left="".concat(o.width,"px"),t.style.width="calc(100% - ".concat(o.width,"px)")),"right"===this.options.legendPosition&&(e.style.left="unset",e.style.right=0,e.style.top=0,t.style.width="calc(100% - ".concat(o.width,"px)"))}else t.style.width="100%",t.style.height="100%";L.tileLayer(this.options.tileUrl,{attribution:'Map data &copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'}).addTo(this.map);this.geo&&this.map.removeLayer(this.geo),this.polygons&&this.polygons.forEach(function(t){return n.map.removeLayer(t)}),this.polygons=[],this.options.geoJSON&&(this.geo=L.geoJSON(this.options.geoJSON,{style:function(t){return{color:t.color||"#ffffff",colorOpacity:t.colorOpacity||1,fillColor:t.fillColor||"#e6463c",fillOpacity:t.fillOpacity||0,weight:t.weight||1}},onEachFeature:function(t,e){e.bindTooltip(t.tooltip,{permanent:!0,direction:"center",className:t.tooltipClass||"websy-polygon-tooltip"})}}).addTo(this.map)),this.options.data.polygons&&this.options.data.polygons.forEach(function(t,e){t.options||(t.options={}),t.options.color||(t.options.color=n.options.colors[e%n.options.colors.length]);var i=L.polygon(t.data.map(function(t){return t.map(function(t){return[t.Latitude,t.Longitude]})}),t.options).addTo(n.map);n.polygons.push(i),n.map.fitBounds(i.getBounds())}),this.geo?this.map.fitBounds(this.geo.getBounds()):this.polygons||this.options.center&&this.map.setView(this.options.center,this.options.zoom||null),this._isRendered=!0}}]),s}(),WebsyChartTooltip=function(){function e(t){_classCallCheck(this,e),this.svg="string"==typeof t?document.getElementById(t):t,this.tooltipLayer=this.svg.append("g").attr("class","tooltip-layer"),this.tooltipContent=this.tooltipLayer.append("foreignObject").attr("class","websy-chart-tooltip").append("xhtml:div").attr("class","websy-chart-tooltip-content")}return _createClass(e,[{key:"hide",value:function(){this.tooltipContent.classed("active",!1)}},{key:"setHeight",value:function(t){this.tooltipLayer.select("foreignObject").style("height",t)}},{key:"show",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{top:"unset",bottom:"unset",left:0,width:0,height:0,onLeft:!1},n=["active"];"vertical"===i.positioning&&n.push("vertical"),!0===i.onLeft&&n.push("left"),!0===i.onTop&&n.push("top");var s=this.tooltipLayer.selectAll("foreignObject").attr("width","".concat(i.width,"px")).attr("class","websy-chart-tooltip ".concat(n.join(" ")));this.tooltipContent.attr("class","websy-chart-tooltip-content ".concat(n.join(" "))).style("width","".concat(i.width,"px")).html("<div class='title'>".concat(t,"</div>").concat(e)),-1===navigator.userAgent.indexOf("Chrome")&&-1!==navigator.userAgent.indexOf("Safari")?(s.attr("x","0px"),this.tooltipContent.style("left","vertical"!==i.positioning?"".concat(i.left,"px"):"unset").style("top",!0!==i.onTop?"".concat(i.top,"px"):"unset").style("bottom",!0===i.onTop?"".concat(i.bottom,"px"):"unset")):("vertical"===i.positioning?(s.attr("x","".concat(i.left,"px")),s.attr("y","".concat(!0===i.onTop?i.bottom-this.tooltipContent._groups[0][0].clientHeight:i.top,"px"))):(s.attr("x","".concat(i.left,"px")),s.attr("y","".concat(i.top,"px"))),this.tooltipContent.style("left","unset"),this.tooltipContent.style("top","unset"))}},{key:"transform",value:function(t,e){this.tooltipLayer.attr("transform","translate(".concat(t,", ").concat(e,")"))}}]),e}(),WebsyDesigns={WebsyPopupDialog:WebsyPopupDialog,PopupDialog:WebsyPopupDialog,WebsyLoadingDialog:WebsyLoadingDialog,LoadingDialog:WebsyLoadingDialog,WebsyNavigationMenu:WebsyNavigationMenu,NavigationMenu:WebsyNavigationMenu,WebsyForm:WebsyForm,Form:WebsyForm,MultiForm:MultiForm,WebsyDatePicker:WebsyDatePicker,DatePicker:WebsyDatePicker,WebsyDragDrop:WebsyDragDrop,DragDrop:WebsyDragDrop,WebsyDropdown:WebsyDropdown,Dropdown:WebsyDropdown,WebsyResultList:WebsyResultList,ResultList:WebsyResultList,WebsyTemplate:WebsyTemplate,Template:WebsyTemplate,WebsyPubSub:WebsyPubSub,PubSub:WebsyPubSub,WebsyRouter:WebsyRouter,Router:WebsyRouter,WebsyTable:WebsyTable,WebsyTable2:WebsyTable2,WebsyTable3:WebsyTable3,Table:WebsyTable,Table2:WebsyTable2,Table3:WebsyTable3,WebsyChart:WebsyChart,Chart:WebsyChart,WebsyChartTooltip:WebsyChartTooltip,ChartTooltip:WebsyChartTooltip,Legend:WebsyLegend,WebsyMap:WebsyMap,Map:WebsyMap,WebsyKPI:WebsyKPI,KPI:WebsyKPI,WebsyPDFButton:WebsyPDFButton,PDFButton:WebsyPDFButton,APIService:APIService,WebsyUtils:WebsyUtils,Utils:WebsyUtils,ButtonGroup:ButtonGroup,WebsySwitch:Switch,Pager:Pager,Switch:Switch,ResponsiveText:ResponsiveText,WebsyResponsiveText:ResponsiveText,QlikPlugin:_websyDesignsQlikPluginEs.default,Icons:WebsyIcons,WebsyIcons:WebsyIcons};WebsyDesigns.service=new WebsyDesigns.APIService(""),window.GlobalPubSub=new WebsyPubSub("empty",{});var _default=WebsyDesigns;exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _websyDesignsQlikPluginEs=_interopRequireDefault(require("@websy/websy-designs-qlik-plugin/dist/websy-designs-qlik-plugin-es6"));function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_unsupportedIterableToArray(t)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(t,e){if(t){if("string"==typeof t)return _arrayLikeToArray(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?_arrayLikeToArray(t,e):void 0}}function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _extends(){return(_extends=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,_toPropertyKey(n.key),n)}}function _createClass(t,e,i){return e&&_defineProperties(t.prototype,e),i&&_defineProperties(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}function _toPropertyKey(t){var e=_toPrimitive(t,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(t,e){if("object"!==_typeof(t)||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0===i)return("string"===e?String:Number)(t);var n=i.call(t,e||"default");if("object"!==_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}var APIService=function(){function i(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,i),this.baseUrl=t,this.options=_extends({},{fieldValueSeparator:":",whereValueSeparator:";"},e)}return _createClass(i,[{key:"add",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},n=this.buildUrl(t);return this.run("POST",n,e,i)}},{key:"buildUrl",value:function(t,e,i){return void 0===i&&(i=[]),e&&i.push("id".concat(this.options.fieldValueSeparator).concat(e)),"".concat(this.baseUrl,"/").concat(t).concat(0<i.length?"".concat(-1===t.indexOf("?")?"?":"&","where=").concat(i.join(this.options.whereValueSeparator)):"")}},{key:"delete",value:function(t,e){var i=this.buildUrl(t,e);return this.run("DELETE",i)}},{key:"deleteMany",value:function(t,e){var i=this.buildUrl(t,null,e);return this.run("DELETE",i)}},{key:"get",value:function(t,e,i,n,s){var o=this.buildUrl(t,e,i);return n&&(-1!==o.indexOf("?")?o+="&offset=".concat(n):o+="?offset=".concat(n)),(s||this.options.rowLimit)&&(-1!==o.indexOf("?")?o+="&limit=".concat(s||this.options.rowLimit):o+="?limit=".concat(s||this.options.rowLimit)),this.run("GET",o)}},{key:"update",value:function(t,e,i){var n=this.buildUrl(t,e);return this.run("PUT",n,i)}},{key:"fetchData",value:function(t,e,i){3<arguments.length&&void 0!==arguments[3]&&arguments[3];return fetch(e,{method:t,mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:JSON.stringify(i)}).then(function(t){return t.json()})}},{key:"run",value:function(s,o,a){var l=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{},r=4<arguments.length&&void 0!==arguments[4]&&arguments[4];return new Promise(function(e,i){var n=new XMLHttpRequest;if(n.open(s,o),n.setRequestHeader("Content-Type","application/json"),n.responseType="text",l.responseType&&(n.responseType=l.responseType),l.headers)for(var t in l.headers)n.setRequestHeader(t,l.headers[t]);n.withCredentials=!0,n.onload=function(){if(401!==n.status){var t="text"===n.responseType?n.responseText:n.response;if(""!==t&&"null"!==t)try{t=JSON.parse(t)}catch(t){}else t=[];t.err?i(JSON.stringify(t)):e(!0===r?[t,function(t){t=t.split("\r\n");var e={};return t.forEach(function(t){2===(t=t.split(":")).length&&(e[t[0]]=t[1].trim())}),e}(n.getAllResponseHeaders())]:t)}else ENV&&ENV.AUTH_REDIRECT?window.location=ENV.AUTH_REDIRECT:window.location="/login"},n.onerror=function(){return i(n.statusText)},a?n.send(JSON.stringify(a)):n.send()})}}]),i}(),ButtonGroup=function(){function n(t,e){_classCallCheck(this,n),this.elementId=t;this.options=_extends({},{style:"button",subscribers:{},activeItem:-1,tag:"div",allowNone:!1,onActivate:function(){},onDeactivate:function(){}},e);var i=document.getElementById(this.elementId);i&&(i.addEventListener("click",this.handleClick.bind(this)),this.render())}return _createClass(n,[{key:"value",get:function(){return-1<this.options.activeItem?[this.options.items[this.options.activeItem]]:!0===this.options.multiSelect?this.options.items.filter(function(t){return t.selected}):[]},set:function(e){var t=-1;if(!0===this.options.multiSelect)Array.isArray(e)&&this.options.items.forEach(function(t){-1!==e.indexOf(t.value)?t.selected=!0:t.selected=!1});else{for(var i=0;i<this.options.items.length;i++)(this.options.items[i].value||this.options.items[i].label)===e&&(t=i);this.options.activeItem=t}this.render()}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-button-group-item")){var e=+t.target.getAttribute("data-index");if(!0===this.options.multiSelect)t.target.classList.contains("active")?(this.options.items[e].selected=!1,this.options.onDeactivate(this.options.items[e],e,t),t.target.classList.remove("active"),t.target.classList.add("inactive")):(this.options.items[e].selected=!0,this.options.onActivate(this.options.items[e],e,t),t.target.classList.add("active"),t.target.classList.remove("inactive"));else if(this.options.activeItem!==e){var i=document.getElementById(this.elementId);Array.from(i.querySelectorAll(".websy-button-group-item")).forEach(function(t){t.getAttribute("data-index");t.classList.add("inactive"),t.classList.remove("active")}),t.target.classList.remove("inactive"),t.target.classList.add("active"),this.options.onDeactivate&&-1!==this.options.activeItem&&this.options.onDeactivate(this.options.items[this.options.activeItem],this.options.activeItem,!0),this.options.activeItem=e,this.options.onActivate&&this.options.onActivate(this.options.items[e],e,t)}else this.options.activeItem===e&&!0===this.options.allowNone&&(this.options.onDeactivate&&this.options.onDeactivate(this.options.items[this.options.activeItem],this.options.activeItem),this.options.activeItem=-1,t.target.classList.remove("active"));this.options.onClick&&this.options.onClick(this.options.items[e],e,t,this)}}},{key:"on",value:function(t,e){this.options.subscribers[t]||(this.options.subscribers[t]=[]),this.options.subscribers[t].push(e)}},{key:"publish",value:function(t,e){this.options.subscribers[t].forEach(function(t){t.apply(null,e)})}},{key:"render",value:function(){var n=this,t=document.getElementById(this.elementId);t&&this.options.items&&(t.innerHTML=this.options.items.map(function(t,e){var i="";return-1!==n.options.activeItem?i=e===n.options.activeItem?"active":"inactive":!0===n.options.multiSelect&&(i=!0===t.selected?"active":"inactive"),"\n <".concat(n.options.tag," ").concat((t.attributes||[]).join(" "),' data-id="').concat(t.id||t.label,'" data-index="').concat(e,'" class="websy-button-group-item ').concat((t.classes||[]).join(" ")," ").concat(n.options.style,"-style ").concat(i,'">').concat(t.label,"</").concat(n.options.tag,">\n ")}).join(""))}}]),n}(),WebsyDatePicker=function(){function o(t,e){_classCallCheck(this,o),this.oneDay=864e5,this.currentselection=[],this.validDates=[],this.validYears=[],this.validHours=[],this.customRangeSelected=!0;var i={defaultRange:0,dateFormat:"%_m/%_d/%Y",allowClear:!(this.shiftPressed=!1),hideRanges:!1,arrowIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.677 18.52c.914 1.523-.183 3.472-1.967 3.472h-19.414c-1.784 0-2.881-1.949-1.967-3.472l9.709-16.18c.891-1.483 3.041-1.48 3.93 0l9.709 16.18z"/></svg>',clearIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512"><line x1="368" y1="368" x2="144" y2="144" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><line x1="368" y1="144" x2="144" y2="368" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',confirmIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512"><polyline points="416 128 192 384 96 288" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',minAllowedDate:this.floorDate(new Date(new Date((new Date).setFullYear((new Date).getFullYear()-1)).setDate(1))),maxAllowedDate:this.floorDate(new Date(new Date)),minAllowedYear:1970,maxAllowedYear:(new Date).getFullYear(),daysOfWeek:["S","M","T","W","T","F","S"],monthsOfYear:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],hours:new Array(24).fill(0).map(function(t,e){return{text:(e<10?"0":"")+e+":00",num:1/24*e}}),mode:"date",monthMap:{0:"Jan",1:"Feb",2:"Mar",3:"Apr",4:"May",5:"Jun",6:"Jul",7:"Aug",8:"Sep",9:"Oct",10:"Nov",11:"Dec"},ranges:[]};if(i.ranges={date:[{label:"All Dates",range:[i.minAllowedDate,i.maxAllowedDate]},{label:"Today",range:[this.floorDate(new Date)]},{label:"Yesterday",range:[this.floorDate((new Date).setDate((new Date).getDate()-1))]},{label:"Last 7 Days",range:[this.floorDate((new Date).setDate((new Date).getDate()-6)),this.floorDate(new Date)]},{label:"This Month",range:[this.floorDate((new Date).setDate(1)),this.floorDate(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()+1)-this.oneDay)]},{label:"Last Month",range:[this.floorDate(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-1)),this.floorDate(new Date((new Date).setDate(1)).setMonth((new Date).getMonth())-this.oneDay)]},{label:"This Year",range:[this.floorDate(new Date("1/1/".concat((new Date).getFullYear()))),this.floorDate(new Date("12/31/".concat((new Date).getFullYear())))]},{label:"Last Year",range:[this.floorDate(new Date("1/1/".concat((new Date).getFullYear()-1))),this.floorDate(new Date("12/31/".concat((new Date).getFullYear()-1)))]}],year:[{label:"All Years",range:[i.minAllowedYear,i.maxAllowedYear]},{label:"Last 5 Years",range:[(new Date).getFullYear()-4,i.maxAllowedYear]},{label:"Last 10 Years",range:[(new Date).getFullYear()-9,i.maxAllowedYear]}],monthyear:[{label:"All Month Years",range:[i.minAllowedDate,i.maxAllowedDate]},{label:"Last 12 Months",range:[this.floorDate(new Date(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-12))),this.floorDate(new Date((new Date).setDate(1)))]},{label:"Last 18 Months",range:[this.floorDate(new Date(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-18))),this.floorDate(new Date((new Date).setDate(1)))]},{label:"Last 24 Months",range:[this.floorDate(new Date(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-24))),this.floorDate(new Date((new Date).setDate(1)))]}],hour:[{label:"All Hours",range:["00:00","23:00"]}]},this.options=_extends({},i,e),this.selectedRange=this.options.defaultRange||0,this.selectedRangeDates=_toConsumableArray(this.options.ranges[this.options.mode][this.options.defaultRange||0].range),this.priorSelectedDates=null,this.priorselection=null,this.priorCustomRangeSelected=null,t){var n=document.getElementById(t);if(n){this.elementId=t,n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mousedown",this.handleMouseDown.bind(this)),n.addEventListener("mouseover",this.handleMouseOver.bind(this)),n.addEventListener("mouseup",this.handleMouseUp.bind(this)),document.addEventListener("keydown",this.handleKeyDown.bind(this)),document.addEventListener("keyup",this.handleKeyUp.bind(this));var s="\n <div class='websy-date-picker-container ".concat(this.options.mode,"'>\n <span class='websy-dropdown-header-label'>").concat(this.options.label||"Date",'</span>\n <div id="').concat(this.elementId,"_header\" class='websy-date-picker-header ").concat(!0===this.options.allowClear?"allow-clear":"","'>\n <span id='").concat(this.elementId,"_selectedRange'>").concat(this.options.ranges[this.options.mode][this.selectedRange].label,"</span>\n ").concat(this.options.arrowIcon,"\n ");!0===this.options.allowClear&&(s+="<div class='clear-selection'>".concat(this.options.clearIcon,"</div>")),s+="\n </div>\n <div id='".concat(this.elementId,"_mask' class='websy-date-picker-mask'></div>\n <div id='").concat(this.elementId,"_content' class='websy-date-picker-content ").concat(!0===this.options.hideRanges?"hide-ranges":"","'>\n <div class='websy-date-picker-ranges' >\n <ul id='").concat(this.elementId,"_rangelist'>\n ").concat(this.renderRanges(),"\n </ul>\n </div>\x3c!--\n --\x3e<div id='").concat(this.elementId,"_datelist' class='websy-date-picker-custom'>").concat(this.renderDates(),"</div>\n <div class='websy-dp-button-container'>\n <span class=\"dp-footnote\">Click and drag or hold Shift and click to select a range of values</span>\n <button class='").concat(this.options.cancelBtnClasses||""," websy-btn websy-dp-cancel'>\n ").concat(this.options.clearIcon,"\n </button>\n <button class='").concat(this.options.confirmBtnClasses||""," websy-btn websy-dp-confirm'>\n ").concat(this.options.confirmIcon,"\n </button>\n </div>\n </div> \n </div>\n "),n.innerHTML=s,this.render()}else console.log("No element found with Id",t)}else console.log("No element Id provided")}return _createClass(o,[{key:"close",value:function(t){var e=this,i=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=document.getElementById("".concat(this.elementId,"_mask")),s=document.getElementById("".concat(this.elementId,"_content")),o=document.getElementById(this.elementId);if(o&&(o.style.zIndex=""),n.classList.remove("active"),s.classList.remove("active"),!0===t){if(this.options.onChange)if(!0===this.customRangeSelected)if("hour"===this.options.mode){for(var a=[],l=this.selectedRangeDates[0];l<this.selectedRangeDates[1]+1;l++)a.push(this.options.hours[l]);this.options.onChange(a,!0,this.selectedRange)}else this.options.onChange(this.selectedRangeDates,!0,this.selectedRange);else if("hour"===this.options.mode){var r=this.currentselection.map(function(t){return e.options.hours[t]});this.options.onChange(r,!0,this.selectedRange)}else this.options.onChange(this.currentselection,i,this.selectedRange);this.priorSelectedDates=_toConsumableArray(this.selectedRangeDates),this.priorSelectedRange=this.selectedRange,this.priorselection=_toConsumableArray(this.currentselection),this.priorCustomRangeSelected=this.customRangeSelected,this.updateRange()}else this.selectedRangeDates=_toConsumableArray(this.priorSelectedDates||[]),this.selectedRange=this.priorSelectedRange,this.customRangeSelected=this.priorCustomRangeSelected,this.currentselection=_toConsumableArray(this.priorselection||[]),this.highlightRange()}},{key:"floorDate",value:function(t){return"number"==typeof t&&(t=new Date(t)),new Date(t.setUTCHours(12,0,0,0))}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-date-picker-header"))this.open();else if(t.target.classList.contains("websy-date-picker-mask"))this.close();else if(t.target.classList.contains("websy-date-picker-range")){if(t.target.classList.contains("websy-disabled-range"))return;var e=t.target.getAttribute("data-index");this.selectRange(e),this.updateRange(e)}else t.target.classList.contains("websy-dp-date")||(t.target.classList.contains("websy-dp-confirm")?this.close(!0):t.target.classList.contains("websy-dp-cancel")?this.close():t.target.classList.contains("clear-selection")&&(this.currentselection=[],this.selectedRangeDates=[],this.selectRange(0,!1),this.options.onClear&&this.options.onClear()))}},{key:"handleKeyDown",value:function(t){"Shift"===t.key&&(this.dragging=!0,this.shiftPressed=!0)}},{key:"handleKeyUp",value:function(t){this.dragging=!1,this.shiftPressed=!1}},{key:"handleMouseDown",value:function(t){if(!0===this.shiftPressed&&0<this.currentselection.length){this.mouseDownId=this.currentselection[this.currentselection.length-1];var e=t.target.getAttribute("data-id");this.selectDate(+e)}else if(this.mouseDown=!0,this.dragging=!1,t.target.classList.contains("websy-dp-date")){if(t.target.classList.contains("websy-disabled-date"))return;!0===this.customRangeSelected&&(this.currentselection=[],this.customRangeSelected=!1),this.mouseDownId=+t.target.getAttribute("data-id"),this.selectDate(this.mouseDownId)}}},{key:"handleMouseOver",value:function(t){if(!0===this.mouseDown&&t.target.classList.contains("websy-dp-date")){if(t.target.classList.contains("websy-disabled-date"))return;var e=+t.target.getAttribute("data-id");e!==this.mouseDownId&&(this.dragging=!0,this.selectDate(e))}}},{key:"handleMouseUp",value:function(t){this.mouseDown=!1,this.dragging=!1,this.mouseDownId=null}},{key:"highlightRange",value:function(){var s=this,t=document.getElementById("".concat(this.elementId,"_dateList"));if(t)for(var e=t.querySelectorAll(".websy-dp-date"),i=0;i<e.length;i++)e[i].classList.remove("selected"),e[i].classList.remove("first"),e[i].classList.remove("last");if(0!==this.selectedRange)if(!0===this.customRangeSelected)if(this.isContinuousRange||this.mouseDown){var n;if("date"===this.options.mode)n=Math.floor((this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()-this.selectedRangeDates[0].getTime())/this.oneDay);else if("year"===this.options.mode)n=this.selectedRangeDates[this.selectedRangeDates.length-1]-this.selectedRangeDates[0],this.selectedRangeDates[this.selectedRangeDates.length-1],this.selectedRangeDates[0];else if("monthyear"===this.options.mode){var o=12*(this.selectedRangeDates[this.selectedRangeDates.length-1].getFullYear()-this.selectedRangeDates[0].getFullYear());n=Math.floor(this.selectedRangeDates[this.selectedRangeDates.length-1].getMonth()-this.selectedRangeDates[0].getMonth())+o}else"hour"===this.options.mode&&(n=this.selectedRangeDates[this.selectedRangeDates.length-1]-this.selectedRangeDates[0]);for(var a=0;a<n+1;a++){var l=void 0,r=void 0,c=void 0;"date"===this.options.mode?(l=(l=this.floorDate(new Date(this.selectedRangeDates[0].getTime()+a*this.oneDay))).getTime(),r=this.selectedRangeDates[0].getTime(),c=this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()):"year"===this.options.mode?(l=this.selectedRangeDates[0]+a,r=this.selectedRangeDates[0],c=this.selectedRangeDates[this.selectedRangeDates.length-1]):"monthyear"===this.options.mode?(l=(l=this.floorDate(new Date(this.selectedRangeDates[0].getTime()).setMonth(this.selectedRangeDates[0].getMonth()+a))).getTime(),console.log("highlighting",this.selectedRangeDates[0].getTime(),l),r=this.selectedRangeDates[0].getTime(),c=this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()):"hour"===this.options.mode&&(l=this.selectedRangeDates[0]+a,r=this.selectedRangeDates[0],c=this.selectedRangeDates[this.selectedRangeDates.length-1]);var h=void 0;"date"===this.options.mode?h=document.getElementById("".concat(this.elementId,"_").concat(l,"_date")):"year"===this.options.mode?h=document.getElementById("".concat(this.elementId,"_").concat(l,"_year")):"monthyear"===this.options.mode?h=document.getElementById("".concat(this.elementId,"_").concat(l,"_monthyear")):"hour"===this.options.mode&&(h=document.getElementById("".concat(this.elementId,"_").concat(l,"_hour"))),h&&(h.classList.add("selected"),l===r&&h.classList.add("".concat("desc"===this.options.sortDirection?"last":"first")),l===c&&h.classList.add("".concat("desc"===this.options.sortDirection?"first":"last")))}}else this.selectedRangeDates.forEach(function(t){var e,i="_date";"date"===s.options.mode?e=(e=s.floorDate(new Date(t.getTime()))).getTime():"year"===s.options.mode?(e=t,i="_year"):"monthyear"===s.options.mode?(e=(e=s.floorDate(new Date(t.getTime()).setMonth(t.getMonth()))).getTime(),i="_monthyear"):"hour"===s.options.mode&&(e=t,i="_hour");var n=document.getElementById("".concat(s.elementId,"_").concat(e).concat(i));n&&n.classList.add("selected","first","last")});else this.currentselection.forEach(function(t){var e;"date"===s.options.mode?e=document.getElementById("".concat(s.elementId,"_").concat(t,"_date")):"year"===s.options.mode?e=document.getElementById("".concat(s.elementId,"_").concat(t,"_year")):"monthyear"===s.options.mode?e=document.getElementById("".concat(s.elementId,"_").concat(t,"_monthyear")):"hour"===s.options.mode&&(e=document.getElementById("".concat(s.elementId,"_").concat(t,"_hour"))),e&&(e.classList.add("selected"),e.classList.add("first"),e.classList.add("last"))})}},{key:"open",value:function(t){1<arguments.length&&void 0!==arguments[1]&&arguments[1];var e=document.getElementById("".concat(this.elementId,"_mask")),i=document.getElementById("".concat(this.elementId,"_content")),n=document.getElementById(this.elementId);n&&(n.style.zIndex=999),e.classList.add("active"),i.classList.add("active"),this.priorSelectedDates=_toConsumableArray(this.selectedRangeDates),this.priorSelectedRange=this.selectedRange,this.priorselection=_toConsumableArray(this.currentselection),this.priorCustomRangeSelected=this.customRangeSelected,this.scrollRangeIntoView()}},{key:"render",value:function(t){if(this.elementId){var e=document.getElementById("".concat(this.elementId,"_datelist"));e&&t&&(e.innerHTML=this.renderDates(t));var i=document.getElementById("".concat(this.elementId,"_rangelist"));i&&t&&(i.innerHTML=this.renderRanges()),this.highlightRange()}else console.log("No element Id provided for Websy Loading Dialog")}},{key:"renderDates",value:function(t){var e,i=this,n=[];this.validDates=[],this.validYears=[],this.validHours=[],this.monthYears={},this.monthYearMonths=[],t&&(n=t.map(function(t){if("date"===i.options.mode)return t.getTime();if("year"===i.options.mode)return t;if("monthyear"===i.options.mode);else if("hour"===i.options.mode)return t;return t.getTime()})),this.options.ranges[this.options.mode].forEach(function(t){return t.disabled=!0}),"date"===this.options.mode?e=Math.ceil((this.options.maxAllowedDate.getTime()-this.options.minAllowedDate.getTime())/this.oneDay)+1:"year"===this.options.mode?e=this.options.maxAllowedYear-this.options.minAllowedYear+1:"monthyear"===this.options.mode?e=Math.ceil((this.options.maxAllowedDate.getTime()-this.options.minAllowedDate.getTime())/this.oneDay)+1:"hour"===this.options.mode&&(e=24);for(var s={},o=[],a=0;a<e;a++)if("date"===this.options.mode||"monthyear"===this.options.mode){var l=this.floorDate(new Date(this.options.minAllowedDate.getTime()+a*this.oneDay)),r="".concat(this.options.monthMap[l.getMonth()]," ").concat(l.getFullYear());if(s[r]||(s[r]=[]),this.monthYears[l.getFullYear()]||(this.monthYears[l.getFullYear()]=[]),-1===this.monthYearMonths.indexOf("".concat(l.getMonth(),"-").concat(l.getFullYear()))){this.monthYearMonths.push("".concat(l.getMonth(),"-").concat(l.getFullYear()));var c=new Date(new Date(l).setDate(1));this.monthYears[l.getFullYear()].push({date:c,month:this.options.monthMap[l.getMonth()],monthNum:l.getMonth(),year:l.getFullYear(),id:c.getTime()})}-1===n.indexOf(l.getTime())&&this.validDates.push(l.getTime()),s[r].push({date:l,dayOfMonth:l.getDate(),dayOfWeek:l.getDay(),id:l.getTime(),disabled:-1!==n.indexOf(l.getTime())})}else if("year"===this.options.mode){var h=this.options.minAllowedYear+a;o.push({year:h,id:h,disabled:-1!==n.indexOf(h)}),-1===n.indexOf(h)&&this.validYears.push(h)}else this.options.mode;"hour"===this.options.mode&&this.options.hours.forEach(function(t){-1===n.indexOf(t.text)&&i.validHours.push(t)});for(var d=0;d<this.options.ranges[this.options.mode].length;d++){var p=this.options.ranges[this.options.mode][d];if("date"===this.options.mode||"monthyear"===this.options.mode){if(-1!==this.validDates.indexOf(p.range[0].getTime()))p.disabled=!1;else if(p.range[1])if(-1!==this.validDates.indexOf(p.range[1].getTime()))p.disabled=!1;else for(var u=p.range[0].getTime();u<=p.range[1].getTime();u+=this.oneDay){var m=this.floorDate(new Date(u));if(-1!==this.validDates.indexOf(m.getTime())){p.disabled=!1;break}}}else if("year"===this.options.mode){if(-1!==this.validYears.indexOf(p.range[0]))p.disabled=!1;else if(p.range[1])if(-1!==this.validYears.indexOf(p.range[1]))p.disabled=!1;else for(var g=p.range[0];g<=p.range[1];g++)if(-1!==this.validYears.indexOf(p.range[0]+g)){p.disabled=!1;break}}else if("monthyear"===this.options.mode);else if("hour"===this.options.mode)if(-1!==this.validDates.indexOf(p.range[0]))p.disabled=!1;else if(p.range[1])if(-1!==this.validDates.indexOf(p.range[1]))p.disabled=!1;else for(var v=p.range[0];v<=p.range[1];v++)if(-1!==this.validDates.indexOf(p.range[0]+v)){p.disabled=!1;break}}var f="";if("date"===this.options.mode){for(var y in f+="\n <ul class='websy-dp-days-header'>\n ",f+=this.options.daysOfWeek.map(function(t){return"<li>".concat(t,"</li>")}).join(""),f+="\n </ul> \n <div id='".concat(this.elementId,"_dateList' class='websy-dp-date-list'>\n "),s){if(f+="\n <div class='websy-dp-month-container'>\n <span id='".concat(y.replace(/\s/g,"_"),"'>").concat(y,"</span>\n <ul>\n "),0<s[y][0].dayOfWeek){for(var b=[],w=0;w<s[y][0].dayOfWeek;w++)b.push("<li>&nbsp;</li>");f+=b.join("")}f+=s[y].map(function(t){return"<li id='".concat(i.elementId,"_").concat(t.id,"_date' data-id='").concat(t.id,"' class='websy-dp-date ").concat(!0===t.disabled?"websy-disabled-date":"","'>").concat(t.dayOfMonth,"</li>")}).join(""),f+="\n </ul>\n </div>\n "}f+="</div>"}else if("year"===this.options.mode)"desc"===this.options.sortDirection&&o.reverse(),f+="<div id='".concat(this.elementId,"_dateList' class='websy-dp-date-list'><ul>"),f+=o.map(function(t){return"<li id='".concat(i.elementId,"_").concat(t.id,"_year' data-id='").concat(t.id,"' class='websy-dp-date websy-dp-year ").concat(!0===t.disabled?"websy-disabled-date":"","'>").concat(t.year,"</li>")}).join(""),f+="</ul></div>";else if("monthyear"===this.options.mode){for(var x in f+="<div id='".concat(this.elementId,"_dateList' class='websy-dp-monthyear-container'>"),this.monthYears){if(f+="\n <ul>\n <li>".concat(x,"</li>\n "),0<this.monthYears[x][0].monthNum){for(var I=[],L=0;L<this.monthYears[x][0].monthNum;L++)I.push("<li>&nbsp;</li>");f+=I.join("")}f+=this.monthYears[x].map(function(t){return"<li id='".concat(i.elementId,"_").concat(t.id,"_monthyear' data-id='").concat(t.id,"' data-year='").concat(t.year,"' class='websy-dp-date websy-dp-monthyear'>").concat(t.month,"</li>")}).join(""),f+="</ul>"}f+="</div>"}else"hour"===this.options.mode&&(f+="<div id='".concat(this.elementId,"_dateList' class='websy-dp-date-list'><ul>"),f+=this.options.hours.map(function(t){return"<li id='".concat(i.elementId,"_").concat(+t.text.split(":")[0],"_hour' data-id='").concat(+t.text.split(":")[0],"' data-hour='").concat(t.text,"' class='websy-dp-date websy-dp-hour'>").concat(t.text,"</li>")}).join(""),f+="</ul></div>");return f}},{key:"renderRanges",value:function(){var i=this;return this.options.ranges[this.options.mode].map(function(t,e){return"\n <li data-index='".concat(e,"' class='websy-date-picker-range ").concat(e===i.selectedRange?"active":""," ").concat(!0===t.disabled?"websy-disabled-range":"","'>").concat(t.label,"</li>\n ")}).join("")+"<li data-index='-1' class='websy-date-picker-range ".concat(-1===this.selectedRange?"active":"","'>Custom</li>")}},{key:"scrollRangeIntoView",value:function(){if(this.selectedRangeDates[0]){var t;"date"===this.options.mode?t=document.getElementById("".concat(this.elementId,"_").concat(this.selectedRangeDates[0].getTime(),"_date")):"year"===this.options.mode?t="desc"===this.options.sortDirection?document.getElementById("".concat(this.elementId,"_").concat(this.selectedRangeDates[this.selectedRangeDates.length-1],"_year")):document.getElementById("".concat(this.elementId,"_").concat(this.selectedRangeDates[0],"_year")):"monthyear"===this.options.mode||this.options.mode;var e=document.getElementById("".concat(this.elementId,"_dateList"));t&&e&&e.scrollTo(0,t.offsetTop)}}},{key:"selectDate",value:function(t){if(0===this.currentselection.length)this.currentselection.push(t);else if(!0===this.dragging)this.currentselection=[this.mouseDownId],t>this.currentselection[0]?this.currentselection.push(t):this.currentselection.splice(0,0,t),this.customRangeSelected=!0;else{var e=this.currentselection.indexOf(t);-1!==e?this.currentselection.splice(e,1):this.currentselection.push(t),this.currentselection.sort(function(t,e){return t-e}),this.customRangeSelected=!1}"date"===this.options.mode||"monthyear"===this.options.mode?this.selectedRangeDates=[new Date(this.currentselection[0]),new Date(this.currentselection[1]||this.currentselection[0])]:"year"===this.options.mode?this.selectedRangeDates=[this.currentselection[0],this.currentselection[1]||this.currentselection[0]]:"monthyear"===this.options.mode||"hour"===this.options.mode&&(this.selectedRangeDates=[this.currentselection[0],this.currentselection[1]||this.currentselection[0]]),this.selectedRange=-1,this.highlightRange()}},{key:"selectRange",value:function(t){var e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];this.options.ranges[this.options.mode][t]&&(this.selectedRangeDates=_toConsumableArray(this.options.ranges[this.options.mode][t].range),this.currentselection=[],this.selectedRange=+t,this.highlightRange(),this.updateRange(),!0===e&&this.close(e,!0))}},{key:"selectCustomRange",value:function(i){var n=this;this.selectedRange=-1,this.isContinuousRange=!0,this.selectedRangeDates=_toConsumableArray(i),this.customRangeSelected=!0,i.forEach(function(t,e){0<e&&("date"===n.options.mode||"monthyear"===n.options.mode?1<t.getTime()/n.oneDay-i[e-1]/n.oneDay&&(n.isContinuousRange=!1):"hour"!==n.options.mode&&"year"!==n.options.mode||1<t-i[e-1]&&(n.isContinuousRange=!1))}),2<i.length&&!0===this.isContinuousRange&&(this.selectedRangeDates=[i[0],i[i.length-1]],this.customRangeSelected=!0),!1===this.isContinuousRange&&(this.currentselection=[]);for(var t=0;t<this.options.ranges[this.options.mode].length;t++)if(1===this.options.ranges[this.options.mode][t].range.length){var e=this.options.ranges[this.options.mode][t].range[0],s=i[0];if("date"===this.options.mode&&(e=e.getTime(),s=s.getTime()),e===s){this.selectedRange=t,this.customRangeSelected=!1;break}}else if(2===this.options.ranges[this.options.mode][t].range.length){var o=this.options.ranges[this.options.mode][t].range[0],a=i[0],l=this.options.ranges[this.options.mode][t].range[1],r=i[i.length-1];if("date"===this.options.mode&&(o=o.getTime(),a=a.getTime(),l=l.getTime(),r=r.getTime()),o===a&&l===r){this.selectedRange=t,this.customRangeSelected=!1;break}}this.highlightRange(),this.updateRange()}},{key:"setDateBounds",value:function(t){-1!==["All Dates","All Years","All"].indexOf(this.options.ranges[this.options.mode][0].label)&&(this.options.ranges[this.options.mode][0].range=[t[0],t[1]||t[0]]),"date"===this.options.mode?(this.options.minAllowedDate=t[0],this.options.maxAllowedDate=t[1]||t[0]):"year"===this.options.mode?(this.options.minAllowedYear=t[0],this.options.maxAllowedYear=t[1]||t[0]):"monthyear"===this.options.mode?(this.options.minAllowedDate=t[0],this.options.maxAllowedDate=t[1]||t[0]):"hour"===this.options.mode&&(this.options.minAllowedHour=t[0],this.options.maxAllowedHour=t[1]||t[0])}},{key:"updateRange",value:function(){var t,e=this;if(-1===this.selectedRange){var i=(0<this.currentselection.length?this.currentselection:this.selectedRangeDates).map(function(t){return"date"===e.options.mode?(t.toLocaleDateString||(t=new Date(t)),t.toLocaleDateString()):"year"===e.options.mode?t:"monthyear"===e.options.mode?(t.getMonth||(t=new Date(t)),"".concat(e.options.monthMap[t.getMonth()]," ").concat(t.getFullYear())):"hour"===e.options.mode?t:void 0}),n=i[0],s="";!0===this.customRangeSelected&&!0===this.isContinuousRange?(1<i.length&&(s=" - ".concat(i[i.length-1])),"hour"===this.options.mode&&(n=this.options.hours[n].text,1<i.length&&(s="".concat(!0===this.customRangeSelected?" - ":"").concat(this.options.hours[i[i.length-1]].text)))):1<i.length?n="".concat(i.length," selected"):"hour"===this.options.mode&&(n=this.options.hours[n].text),t={label:"".concat(n).concat(s)}}else t=this.options.ranges[this.options.mode][this.selectedRange];var o=document.getElementById(this.elementId),a=document.getElementById("".concat(this.elementId,"_selectedRange"));if(o)for(var l=o.querySelectorAll(".websy-date-picker-range"),r=0;r<l.length;r++)l[r].classList.remove("active"),r===this.selectedRange&&l[r].classList.add("active");a&&(a.innerHTML=t.label);var c=document.getElementById("".concat(this.elementId,"_header"));c&&(0===this.selectedRange?c.classList.remove("range-selected"):c.classList.add("range-selected"))}}]),o}();Date.prototype.floor=function(){return new Date("".concat(this.getMonth()+1,"/").concat(this.getDate(),"/").concat(this.getFullYear()))};var WebsyDragDrop=function(){function n(t,e){_classCallCheck(this,n);if(this.busy=!1,this.options=_extends({},{items:[],orientation:"horizontal",dropPlaceholder:"Drop item here",accepts:"application/wd-item"},e),this.elementId=t){var i=document.getElementById(t);i?(i.innerHTML="\n <div id='".concat(this.elementId,"_container' class='websy-drag-drop-container ").concat(this.options.orientation,"'>\n <div>\n </div>\n "),i.addEventListener("click",this.handleClick.bind(this)),i.addEventListener("dragstart",this.handleDragStart.bind(this)),i.addEventListener("dragover",this.handleDragOver.bind(this)),i.addEventListener("dragleave",this.handleDragLeave.bind(this)),i.addEventListener("drop",this.handleDrop.bind(this)),window.addEventListener("dragend",this.handleDragEnd.bind(this))):console.error("No element found with ID ".concat(this.elementId)),GlobalPubSub.subscribe(this.elementId,"requestForDDItem",this.handleRequestForItem.bind(this)),GlobalPubSub.subscribe(this.elementId,"add",this.addItem.bind(this)),this.render()}else console.log("No element Id provided for Websy DragDrop")}return _createClass(n,[{key:"addItem",value:function(t){if(t.target===this.elementId&&!1===this.busy){if(this.busy=!0,console.log("adding item to dd"),-1===this.getItemIndex(t.item.id)){this.options.items.splice(t.index,0,t.item);var e=document.getElementById("".concat(this.elementId,"start_item"));e&&(0===this.options.items.length?e.classList.add("empty"):e.classList.remove("empty")),this.options.onItemAdded&&this.options.onItemAdded()}this.busy=!1}}},{key:"createItemHtml",value:function(t,e,i){i.id||(i.id=WebsyDesigns.Utils.createIdentity());var n="\n <div id='".concat(i.id,"_item' class='websy-dragdrop-item ").concat((i.classes||[]).join(" "),"' draggable='true' data-id='").concat(i.id,"'> \n <div id='").concat(i.id,"_itemInner' class='websy-dragdrop-item-inner' data-id='").concat(i.id,"'>\n ");return i.component?n+="<div id='".concat(i.id,"_component'></div>"):n+="".concat(i.html||i.label||""),n+="\n </div>\n <div id='".concat(i.id,"_dropZone' class='websy-drop-zone droppable' data-index='").concat(i.id,"' data-side='right' data-id='").concat(i.id,"' data-placeholder='").concat(this.options.dropPlaceholder,"'></div> \n </div>\n ")}},{key:"getItemIndex",value:function(t){for(var e=0;e<this.options.items.length;e++)if(this.options.items[e].id===t)return e;return-1}},{key:"handleClick",value:function(t){}},{key:"handleDragStart",value:function(t){this.draggedId=t.target.getAttribute("data-id"),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData(this.options.accepts,JSON.stringify({el:t.target.id,id:this.elementId,itemId:this.draggedId})),t.target.classList.add("dragging"),this.dragging=!0}},{key:"handleDragOver",value:function(t){t.preventDefault&&t.preventDefault(),console.log("drag",t.target.classList),t.target.classList.contains("droppable")&&-1!==t.dataTransfer.types.indexOf(this.options.accepts)&&t.target.classList.add("drag-over")}},{key:"handleDragLeave",value:function(t){t.target.classList.contains("droppable")&&t.target.classList.remove("drag-over")}},{key:"handleDrop",value:function(t){var e=JSON.parse(t.dataTransfer.getData(this.options.accepts));if(t.preventDefault&&t.preventDefault(),t.target.classList.contains("droppable")&&-1!==t.dataTransfer.types.indexOf(this.options.accepts)){var i=t.target.getAttribute("data-side"),n=t.target.getAttribute("data-id"),s=this.getItemIndex(n),o=this.getItemIndex(e.id),a=this.options.items[s];"right"===i&&(s+=1),-1===o?GlobalPubSub.publish(e.id,"requestForDDItem",{group:this.options.group,source:e.id,target:this.elementId,index:s,id:e.itemId}):(o<s?(this.options.items.splice(s,0,a),this.options.items.splice(o,1)):(this.options.items.splice(o,1),this.options.items.splice(s,0,a)),this.options.onOrderUpdated&&this.options.onOrderUpdated());var l=document.getElementById(e.el),r=document.getElementById("".concat(n,"_item"));l&&r.insertAdjacentElement("afterend",l);var c=r.querySelector(".drag-over");c&&c.classList.remove("drag-over")}}},{key:"handleDragEnd",value:function(t){t.target.style.opacity=1,t.target.classList.remove("dragging"),this.draggedId=null,this.dragging=!1;var e=document.getElementById("".concat(this.elementId,"start_item"));e&&(0===this.options.items.length?e.classList.add("empty"):e.classList.remove("empty"))}},{key:"handleRequestForItem",value:function(t){if(t.group===this.options.group){var e=this.getItemIndex(t.id);if(-1!==e){var i=this.options.items.splice(e,1);GlobalPubSub.publish(t.target,"add",{target:t.target,index:t.index,item:i[0]})}}}},{key:"measureItems",value:function(){document.getElementById("".concat(this.elementId,"_container"));this.options.items.forEach(function(t){})}},{key:"removeItem",value:function(t){}},{key:"render",value:function(){var i=this,t=document.getElementById("".concat(this.elementId,"_container"));if(t){this.measureItems();var e="\n <div id='".concat(this.elementId,"start_item' class='websy-dragdrop-item ").concat(0===this.options.items.length?"empty":"","' data-id='").concat(this.elementId,"start'>\n <div id='").concat(this.elementId,"start_dropZone' class='websy-drop-zone droppable' data-index='start' data-side='start' data-id='").concat(this.elementId,"start' data-placeholder='").concat(this.options.dropPlaceholder,"'></div>\n </div>\n ");e+=this.options.items.map(function(t,e){return i.createItemHtml(i.elementId,e,t)}).join(""),t.innerHTML=e,this.options.items.forEach(function(t,e){t.component&&(t.isQlikPlugin&&WebsyDesigns.QlikPlugins[t.component]?t.instance=new WebsyDesigns.QlikPlugins[t.component]("".concat(t.id,"_component"),t.options):WebsyDesigns[t.component]?t.instance=new WebsyDesigns[t.component]("".concat(t.id,"_component"),t.options):console.error("Component ".concat(t.component," not found.")))})}}}]),n}(),WebsyDropdown=function(){function c(t,e){var i=this;_classCallCheck(this,c);if(this.options=_extends({},{multiSelect:!1,multiValueDelimiter:",",allowClear:!0,style:"plain",items:[],label:"",disabled:!1,classes:[],minSearchCharacters:2,showCompleteSelectedList:!1,closeAfterSelection:!0,customActions:[],customButtons:[],minWidth:220,searchIcon:'<svg width="20" height="20" viewBox="0 0 512 512"><path d="M221.09,64A157.09,157.09,0,1,0,378.18,221.09,157.1,157.1,0,0,0,221.09,64Z" style="fill:none;stroke-miterlimit:10;stroke-width:32px"/><line x1="338.29" y1="338.29" x2="448" y2="448" style="fill:none;stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"/></svg>',clearIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512"><title>ionicons-v5-l</title><line x1="368" y1="368" x2="144" y2="144" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><line x1="368" y1="144" x2="144" y2="368" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',arrowIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.677 18.52c.914 1.523-.183 3.472-1.967 3.472h-19.414c-1.784 0-2.881-1.949-1.967-3.472l9.709-16.18c.891-1.483 3.041-1.48 3.93 0l9.709 16.18z"/></svg>',actionsIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 512 512">><circle cx="256" cy="256" r="32" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/><circle cx="416" cy="256" r="32" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/><circle cx="96" cy="256" r="32" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/></svg>'},e),0<this.options.items.length&&(this.options.items=this.options.items.map(function(t,e){return t.index=e,t})),this.searchText="",this.tooltipTimeoutFn=null,this._originalData=_toConsumableArray(this.options.items),this.selectedItems=this.options.selectedItems||[],t){var n=document.getElementById(t);if(n){this.elementId=t,n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("keyup",this.handleKeyUp.bind(this)),n.addEventListener("mouseout",this.handleMouseOut.bind(this)),n.addEventListener("mousemove",this.handleMouseMove.bind(this));var s=this.selectedItems.map(function(t){return i.options.items[t].label||i.options.items[t].value}).join(this.options.multiValueDelimiter),o=this.selectedItems.map(function(t){return i.options.items[t].value||i.options.items[t].label}).join(this.options.multiValueDelimiter),a="\n <div id='".concat(this.elementId,"_container' class='websy-dropdown-container ").concat(this.options.classes.join(" ")," ").concat(this.options.disabled?"disabled":""," ").concat(!0!==this.options.disableSearch?"with-search":""," ").concat(this.options.style," ").concat(0<this.options.customActions.length?"with-actions":"","'>\n <div id='").concat(this.elementId,"_header' class='websy-dropdown-header ").concat(1===this.selectedItems.length?"one-selected":""," ").concat(!0===this.options.allowClear?"allow-clear":"","'>\n ");!0!==this.options.disableSearch&&(a+="<div class='search'>".concat(this.options.searchIcon,"</div>")),a+="\n <div class='header-label'>\n <span class='websy-dropdown-header-value' data-info='".concat(s,"' id='").concat(this.elementId,"_selectedItems'>").concat(s,"</span> \n <span class='websy-dropdown-header-label' id='").concat(this.elementId,"_headerLabel'>").concat(this.options.label,"</span>\n </div>\n <input class='dropdown-input' id='").concat(this.elementId,"_input' name='").concat(this.options.field||this.options.label,"' value='").concat(o,"'>\n <div class='arrow'>").concat(this.options.arrowIcon,"</div>\n "),!0===this.options.allowClear&&(a+="<div class='clear'>".concat(this.options.clearIcon,"</div>")),a+=" \n </div>\n <div id='".concat(this.elementId,"_mask' class='websy-dropdown-mask'></div>\n <div id='").concat(this.elementId,"_content' class='websy-dropdown-content'>\n "),(0<this.options.customActions.length||0<this.options.customButtons.length)&&(a+="\n <div class='websy-dropdown-action-container'>\n ",0<this.options.customActions.length&&(a+="\n ".concat(this.options.actionsTitle||"","\n <button class='websy-dropdown-action-button'>\n ").concat(this.options.actionsIcon,"\n </button>\n ")),0<this.options.customButtons.length&&(a+="\n <div class='websy-dropdown-additional-buttons'>\n ",this.options.customButtons.forEach(function(t,e){a+="\n <button class='websy-dropdown-custom-button' data-index='".concat(e,"'>\n ").concat(t.label,"\n </button>\n ")}),a+="\n </div>\n "),0<this.options.customActions.length&&(a+=" \n <ul id='".concat(this.elementId,"_actionContainer'>\n "),this.options.customActions.forEach(function(t,e){a+="\n <li class='websy-dropdown-custom-action' data-index='".concat(e,"'>").concat(t.label,"</li>\n ")}),a+="\n </ul>\n </div>\n ")),!0!==this.options.disableSearch&&(a+="\n <div class='websy-dropdown-search-container'>\n <input id='".concat(this.elementId,"_search' class='websy-dropdown-search' placeholder='").concat(this.options.searchPlaceholder||"Search","'>\n </div>\n ")),a+="\n <div id='".concat(this.elementId,"_itemsContainer' class='websy-dropdown-items'>\n <ul id='").concat(this.elementId,"_items'> \n </ul>\n </div>\x3c!--\n --\x3e<div class='websy-dropdown-custom'></div>\n </div>\n </div>\n "),n.innerHTML=a;var l=document.getElementById("".concat(this.elementId,"_mask"));l&&l.addEventListener("mousewheel",function(t){t.target.classList.contains("websy-dropdown-mask")&&(t.preventDefault(),t.stopPropagation())});var r=document.getElementById("".concat(this.elementId,"_itemsContainer"));r&&r.addEventListener("scroll",this.handleScroll.bind(this)),this.render()}else console.log("No element found with Id",t)}else console.log("No element Id provided")}return _createClass(c,[{key:"selections",set:function(t){this.selectedItems=t||[]}},{key:"data",get:function(){return this.options.items},set:function(t){this.options.items=(t||[]).map(function(t,e){return void 0===t.index&&(t.index=e),t.currentIndex=e,t});var e=document.getElementById("".concat(this.elementId,"_header"));e&&e.classList["".concat(!0===this.options.allowClear?"add":"remove")]("allow-clear");var i=document.getElementById("".concat(this.elementId,"_items"));i&&(0===i.childElementCount?this.render():(0===this.options.items.length&&(this.options.items=[{label:this.options.noItemsText||"No Items"}]),this.renderItems()))}},{key:"appendRows",value:function(){}},{key:"clearSelected",value:function(){this.selectedItems=[],this.updateHeader(),this.options.onClearSelected&&this.options.onClearSelected()}},{key:"close",value:function(){this.hide();var t=document.getElementById("".concat(this.elementId,"_search"));t&&0<t.value.length&&this.options.onCancelSearch&&(this.options.onCancelSearch(""),t.value=""),this.options.onClose&&this.options.onClose(this.elementId)}},{key:"hide",value:function(){var t=document.getElementById("".concat(this.elementId,"_mask")),e=document.getElementById("".concat(this.elementId,"_content")),i=document.getElementById("".concat(this.elementId,"_itemsContainer")),n=document.getElementById("".concat(this.elementId,"_actionContainer")),s=document.getElementById("".concat(this.elementId,"_header")),o=WebsyUtils.getElementPos(s),a=WebsyUtils.getElementPos(e);"plain"===this.options.style&&0<o.width&&0<o.height&&(e.style.right="unset",o.bottom+a.height>window.innerHeight?e.style.bottom="unset":e.style.top="unset"),n&&n.classList.remove("active");var l=document.getElementById(this.elementId);l&&(l.style.zIndex=""),i&&i.scrollTo(0,0),t&&t.classList.remove("active"),e&&(e.classList.remove("active"),e.classList.remove("on-top"))}},{key:"handleClick",value:function(t){if(!0!==this.options.disabled)if(t.target.classList.contains("websy-dropdown-header"))this.open(t);else if(t.target.classList.contains("websy-dropdown-mask"))this.close();else if(t.target.classList.contains("websy-dropdown-item")){var e=t.target.getAttribute("data-index");this.updateSelected(+e)}else if(t.target.classList.contains("clear"))this.clearSelected();else if(t.target.classList.contains("search")){document.getElementById("".concat(this.elementId,"_container")).classList.toggle("search-open")}else if(t.target.classList.contains("websy-dropdown-custom-action")){var i=+t.target.getAttribute("data-index");this.options.customActions[i]&&this.options.customActions[i].fn&&this.options.customActions[i].fn()}else if(t.target.classList.contains("websy-dropdown-custom-button")){var n=+t.target.getAttribute("data-index");this.options.customButtons[n]&&this.options.customButtons[n].fn&&this.options.customButtons[n].fn()}else if(t.target.classList.contains("websy-dropdown-action-button")){var s=document.getElementById("".concat(this.elementId,"_actionContainer"));s&&s.classList.toggle("active")}}},{key:"handleKeyUp",value:function(e){e.target.classList.contains("websy-dropdown-search")&&(this.searchText=e.target.value,0===this._originalData.length&&(this._originalData=_toConsumableArray(this.options.items)),e.target.value.length>=this.options.minSearchCharacters?"Enter"===e.key?this.options.onConfirmSearch&&(this.options.onConfirmSearch(e.target.value),e.target.value=""):"Escape"===e.key?this.options.onCancelSearch?(this.options.onCancelSearch(e.target.value),e.target.value=""):(this.data=this._originalData,this._originalData=[]):this.options.onSearch?this.options.onSearch(e.target.value):this.data=this._originalData.filter(function(t){return-1!==t.label.toLowerCase().indexOf(e.target.value.toLowerCase())}):this.options.onCancelSearch?this.options.onCancelSearch(e.target.value):(this.data=this._originalData,this._originalData=[]))}},{key:"handleMouseMove",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed"),t.target.classList.remove("websy-delayed-info"),t.target.children[1]&&t.target.children[1].classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn)),"LI"===t.target.tagName&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.classList.add("websy-delayed")},500)),t.target.classList.contains("websy-dropdown-header")&&t.target.children[1]&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.children[1].classList.add("websy-delayed-info")},500))}},{key:"handleMouseOut",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed"),t.target.classList.remove("websy-delayed-info"),t.target.children[1]&&t.target.children[1].classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn))}},{key:"handleScroll",value:function(t){t.target.classList.contains("websy-dropdown-items")&&this.options.onScroll&&this.options.onScroll(t)}},{key:"open",value:function(t){1<arguments.length&&void 0!==arguments[1]&&arguments[1];var e=document.getElementById("".concat(this.elementId,"_mask")),i=document.getElementById("".concat(this.elementId,"_content")),n=document.getElementById("".concat(this.elementId,"_header"));e.classList.add("active"),i.classList.add("active");var s=WebsyUtils.getElementPos(n),o=WebsyUtils.getElementPos(i);if("plain"===this.options.style&&0<s.width&&0<s.height)i.style.left="unset",i.style.right="calc(100vw - ".concat(s.right,"px)"),i.style.width="".concat(Math.max(this.options.minWidth,n.clientWidth),"px"),s.bottom+o.height>window.innerHeight?i.style.bottom="calc(100vh - ".concat(s.top,"px)"):i.style.top=s.bottom+"px";else if("plain"===this.options.style&&0===s.width&&0===s.height){var a=WebsyUtils.getElementPos(t.target);Math.max(this.options.minWidth,a.width)>a.right?(i.style.left="".concat(a.left,"px"),i.style.right="unset"):(i.style.left="unset",i.style.right="calc(100vw - ".concat(a.right,"px)")),i.style.width="".concat(Math.max(this.options.minWidth,a.width),"px")}if(!0!==this.options.disableSearch){var l=document.getElementById("".concat(this.elementId,"_search"));l&&l.focus()}this.options.onOpen&&this.options.onOpen(this.elementId)}},{key:"items",set:function(t){this.options.items=_toConsumableArray(t),0<this.options.items.length&&(this.options.items=this.options.items.map(function(t,e){return void 0===t.index&&(t.index=e),t})),this._originalData=_toConsumableArray(this.options.items),this.render()}},{key:"render",value:function(){this.elementId?this.renderItems():console.log("No element Id provided for Websy Dropdown")}},{key:"renderItems",value:function(){var t,i=this,e=this.options.items.map(function(t,e){return"\n <li data-index='".concat(t.index,"' class='websy-dropdown-item ").concat((t.classes||[]).join(" ")," ").concat(-1!==i.selectedItems.indexOf(t.index)?"active":"","'>").concat(t.label,"</li>\n ")}).join(""),n=document.getElementById("".concat(this.elementId,"_items"));n&&(n.innerHTML=e),1===this.selectedItems.length&&(t=this.options.items[this.selectedItems[0]]),this.updateHeader(t)}},{key:"value",get:function(){var i=this;return this.selectedItems&&0<this.selectedItems.length?this.selectedItems.map(function(t,e){return i._originalData[+t]}):[]},set:function(e){var i=this;this.selectedItems=[],Array.isArray(e)?this.options.items.forEach(function(t){-1!==e.indexOf(t.value)&&i.selectedItems.push(t.index)}):this.options.items.forEach(function(t){t.value===e&&i.selectedItems.push(t.index)}),this.render()}},{key:"updateHeader",value:function(t){var e=document.getElementById(this.elementId),i=document.getElementById("".concat(this.elementId,"_header")),n=document.getElementById("".concat(this.elementId,"_headerLabel")),s=document.getElementById("".concat(this.elementId,"_selectedItems")),o=document.getElementById("".concat(this.elementId,"_input")),a=e.querySelectorAll(".websy-dropdown-item"),l=this._originalData;0===this._originalData.length&&""===this.searchText&&(l=this.options.items),this.options.onSearch&&(l=this.options.items);for(var r=0;r<a.length;r++){a[r].classList.remove("active");var c=a[r].getAttribute("data-index");-1!==this.selectedItems.indexOf(+c)&&a[r].classList.add("active")}if(n&&(n.innerHTML=this.options.label),i&&(i.classList.remove("one-selected"),i.classList.remove("multi-selected"),1===this.selectedItems.length?i.classList.add("one-selected"):1<this.selectedItems.length&&(!0===this.options.showCompleteSelectedList?i.classList.add("one-selected"):i.classList.add("multi-selected"))),s)if(1===this.selectedItems.length)t?(s.innerHTML=t.label,s.setAttribute("data-info",t.label),o.value=t.value):this.selectedItems[0]&&(s.innerHTML=l[this.selectedItems[0]].label,s.setAttribute("data-info",l[this.selectedItems[0]].label),o.value=l[this.selectedItems[0]].value);else if(1<this.selectedItems.length)if(!0===this.options.showCompleteSelectedList){var h=this.selectedItems.map(function(t){return l[t].label||l[t].value}).join(this.options.multiValueDelimiter),d=this.selectedItems.map(function(t){return l[t].value||l[t].label}).join(this.options.multiValueDelimiter);s.innerHTML=h,s.setAttribute("data-info",h),o.value=d}else{var p=this.selectedItems.map(function(t){return l[t].value||l[t].label}).join(this.options.multiValueDelimiter);s.innerHTML="".concat(this.selectedItems.length," selected"),s.setAttribute("data-info",""),o.value=p}else s.innerHTML="",s.setAttribute("data-info",""),o.value=""}},{key:"updateSelected",value:function(t){var e,i=this._originalData&&0<this._originalData.length?this._originalData:this.options.items;if(this.options.onSearch&&(i=this.options.items),null!=t){var n=this.selectedItems.indexOf(t);!1===this.options.multiSelect?(this.selectedItems=[t],e=i[t]):-1!==n?this.selectedItems.splice(n,1):(this.selectedItems.push(t),e=i[t])}this.updateHeader(e),e&&this.options.onItemSelected&&this.options.onItemSelected(e,this.selectedItems,i,this.options),this.options.onChange&&this.options.onChange(this),!0===this.options.closeAfterSelection&&this.close()}}]),c}(),WebsyForm=function(){function s(t,e){_classCallCheck(this,s);var i={submit:{text:"Save",classes:[]},useRecaptcha:!1,recaptchaAction:"submit",clearAfterSave:!1,fields:[],mode:"add",useLoader:!1,onSuccess:function(t){},onError:function(t){console.log("Error submitting form data:",t)}};if(GlobalPubSub.subscribe("recaptchaready",this.recaptchaReady.bind(this)),this.recaptchaResult=null,this.options=_extends({},i,e),t){this.apiService=new WebsyDesigns.APIService(""),this.fieldMap={},this.elementId=t;var n=document.getElementById(t);n&&(n.addEventListener("change",this.handleChange.bind(this)),n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("beforeinput",this.handleBeforeInput.bind(this)),n.addEventListener("input",this.handleInput.bind(this)),n.addEventListener("focusout",this.handleFocusOut.bind(this)),n.addEventListener("keyup",this.handleKeyUp.bind(this)),n.addEventListener("keydown",this.handleKeyDown.bind(this)),this.render())}else console.log("No element Id provided")}return _createClass(s,[{key:"cancelForm",value:function(){document.getElementById("".concat(this.elementId,"Form")).reset(),this.options.cancelFn&&this.options.cancelFn(this.elementId),this.loader.hide()}},{key:"checkRecaptcha",value:function(){var i=this;return new Promise(function(e,t){!0===i.options.useRecaptcha?i.recaptchaValue?i.apiService.add("google/checkrecaptcha",{grecaptcharesponse:i.recaptchaValue}).then(function(t){t.success&&!0===t.success?(e(!0),grecaptcha.reset("".concat(i.elementId,"_recaptcha"),{sitekey:ENVIRONMENT.RECAPTCHA_KEY})):e(!1)}):e(!1):!0===i.options.useRecaptchaV3?grecaptcha.ready(function(){grecaptcha.execute(ENVIRONMENT.RECAPTCHA_KEY,{action:i.options.recaptchaAction}).then(function(t){i.apiService.add("google/checkrecaptcha",{grecaptcharesponse:t}).then(function(t){t.success&&!0===t.success?(e(!0),grecaptcha.reset("".concat(i.elementId,"_recaptcha"),{sitekey:ENVIRONMENT.RECAPTCHA_KEY})):e(!1)})},function(t){console.log(t)})}):e(!0)})}},{key:"clear",value:function(){var e=this;document.getElementById("".concat(this.elementId,"Form")).reset(),this.options.fields||(this.options.fields=[]),this.options.fields.forEach(function(t){e.setValue(t.field,"")}),this.loader.hide()}},{key:"data",get:function(){var i=this,t=document.getElementById("".concat(this.elementId,"Form")),n={};new FormData(t).forEach(function(t,e){i.fieldMap[e]&&"checkbox"===i.fieldMap[e].type&&(n[e]=!0),i.fieldMap[e]&&i.fieldMap[e].instance&&i.fieldMap[e].instance.value?n[e]=i.fieldMap[e].instance.value:n[e]=t});var e=Object.keys(n);for(var s in this.fieldMap)-1===e.indexOf(s)&&(this.fieldMap[s]&&"checkbox"===this.fieldMap[s].type?n[s]=!1:!this.fieldMap[s]||"Switch"!==this.fieldMap[s].component&&"WebsySwitch"!==this.fieldMap[s].component?this.fieldMap[s]&&this.fieldMap[s].instance&&this.fieldMap[s].instance.value&&(n[s]=this.fieldMap[s].instance.value):n[s]=this.fieldMap[s].instance.options.enabled);return n},set:function(i){var n=this;this.options.fields||(this.options.fields=[]);var t=function(e){n.options.fields.forEach(function(t){t.field===e&&i[e]&&n.setValue(e,i[e])})};for(var e in i)t(e)}},{key:"confirmValidation",value:function(){var t=document.getElementById("".concat(this.elementId,"_validationFail"));t&&(t.innerHTML="")}},{key:"failValidation",value:function(t){var e=document.getElementById("".concat(this.elementId,"_validationFail"));e&&(e.innerHTML=t)}},{key:"handleChange",value:function(t){if("expiry"===t.target.getAttribute("data-user-type")&&7===t.target.value.length){var e=t.target.value.split("/");t.target.value="".concat(e[0],"/").concat(e[1].substring(2,4))}if(t.target.classList.contains("websy-input")){var i=t.target.getAttribute("data-index");this.options.fields[i]&&(this.options.fields[i].required||this.options.fields[i].validate)&&this.validateField(this.options.fields[i],t.target.value),this.options.fields[i].onChange&&this.options.fields[i].onChange({value:t.target.value,field:this.options.fields[i],form:this,index:i})}}},{key:"handleClick",value:function(t){t.target.classList.contains("submit")?(t.preventDefault(),t.stopPropagation(),this.submitForm()):t.target.classList.contains("cancel")&&(t.preventDefault(),this.cancelForm())}},{key:"handleFocusOut",value:function(t){if(t.target.classList.contains("websy-input")){var e=t.target.getAttribute("data-index");this.options.fields[e]&&(this.options.fields[e].required||this.options.fields[e].validate)&&this.validateField(this.options.fields[e],t.target.value),this.options.fields[e].onLeave&&this.options.fields[e].onLeave({value:t.target.value,field:this.options.fields[e],form:this,index:e})}}},{key:"handleKeyDown",value:function(t){"enter"===t.key&&!0===this.options.submitOnEnter&&this.submitForm()}},{key:"handleKeyUp",value:function(t){}},{key:"handleBeforeInput",value:function(t){if("expiry"===t.target.getAttribute("data-user-type")){var e=!isNaN(+t.data),i=!1;if(i||(i=-1!==["deleteContentBackward","deleteContentForward"].indexOf(t.inputType)),5===t.target.value.length&&!i||!i&&!e)return t.preventDefault(),!1;if("deleteContentBackward"===t.inputType&&t.target.value.indexOf("/")===t.target.selectionStart-1){var n=t.target.value.split("");n.pop(),t.target.value=n.join("")}}if("cvv"===t.target.getAttribute("data-user-type")){var s=!isNaN(+t.data),o=!1;if(o||(o=-1!==["deleteContentBackward","deleteContentForward"].indexOf(t.inputType)),3===t.target.value.length&&!o||!o&&!s)return t.preventDefault(),!1}}},{key:"handleInput",value:function(t){if("expiry"===t.target.getAttribute("data-user-type")){var e=t.target.value.split(""),i=!isNaN(+t.data);if("Backspace"===t.key&&"/"===e[e.length-1]&&3!==e.length)return e.pop(),void(t.target.value=e.join(""));2===t.target.selectionStart&&(e[2]&&-1===["deleteContentBackward","deleteContentForward"].indexOf(t.inputType)?t.target.setSelectionRange(3,3):i&&(t.target.value+="/"))}}},{key:"processComponents",value:function(t,e){var i=this;0===t.length?e():t.forEach(function(t){void 0!==WebsyDesigns[t.component]&&(t.options.onChange||(t.options.onChange=function(){(t.required||t.validate)&&i.validateField(t,t.instance.value)}),t.instance=new WebsyDesigns[t.component]("".concat(i.elementId,"_input_").concat(t.field,"_component"),t.options))})}},{key:"recaptchaReady",value:function(){var t=this;document.getElementById("".concat(this.elementId,"_recaptcha"))&&grecaptcha.ready(function(){grecaptcha.render("".concat(t.elementId,"_recaptcha"),{sitekey:ENVIRONMENT.RECAPTCHA_KEY,callback:t.validateRecaptcha.bind(t)})})}},{key:"render",value:function(t,e){var n=this,i=document.getElementById(this.elementId),s=[];if(i){var o='\n <form id="'.concat(this.elementId,'Form" class="websy-form ').concat((this.options.classes||[]).join(" "),'">\n ');this.options.fields.forEach(function(t,e){(n.fieldMap[t.field]=t).owningElement=n.elementId;var i="function"==typeof t.value?t.value():t.value;(t.disabled||t.readOnly||n.options.readOnly)&&(t.options||(t.options={}),t.disabled=!0,t.options.disabled=!0,t.classes||(t.classes=[]),t.options.classes||(t.options.classes=[]),t.classes.push("disabled"),t.options.classes.push("disabled"),(t.readOnly||n.options.readOnly)&&(t.classes.push("websy-input-readonly"),t.options.classes.push("websy-input-readonly"))),t.component?(s.push(t),o+="\n ".concat(0<e?"--\x3e":"","<div id='").concat(n.elementId,"_").concat(t.field,"_inputContainer' style='").concat(t.style||"","' class='websy-input-container ").concat(t.classes?t.classes.join(" "):""," ").concat("MediaUpload"===t.component?"media-upload":"","'>\n ").concat(t.label?'<label for="'.concat(t.field,'">').concat(t.label,"</label>"):"").concat(!0===t.required?'<span class="websy-form-required-value">*</span>':"","\n <div id='").concat(n.elementId,"_input_").concat(t.field,"_component' class='form-component'></div>\n <span id='").concat(n.elementId,"_").concat(t.field,"_error' class='websy-form-validation-error'></span>\n </div>\x3c!--\n ")):"longtext"===t.type?o+="\n ".concat(0<e?"--\x3e":"","<div id='").concat(n.elementId,"_").concat(t.field,"_inputContainer' style='").concat(t.style||"","' class='websy-input-container ").concat(t.classes?t.classes.join(" "):"","'>\n ").concat(t.label?'<label for="'.concat(t.field,'">').concat(t.label,"</label>"):"").concat(!0===t.required?'<span class="websy-form-required-value">*</span>':"",'\n <textarea\n id="').concat(n.elementId,"_input_").concat(t.field,'"\n ').concat(!0===t.required?"required":"",' \n placeholder="').concat(t.placeholder||"",'"\n data-user-type="').concat(t.type,'"\n data-index="').concat(e,'"\n name="').concat(t.field,'" \n ').concat(t.disabled||t.readOnly||n.options.readOnly?"disabled":"","\n ").concat((t.attributes||[]).join(" "),'\n class="websy-input websy-textarea ').concat(t.readOnly||n.options.readOnly?"websy-input-readonly":"",'"\n >').concat(i||"","</textarea>\n <span id='").concat(n.elementId,"_").concat(t.field,"_error' class='websy-form-validation-error'></span>\n </div>\x3c!--\n "):o+="\n ".concat(0<e?"--\x3e":"","<div id='").concat(n.elementId,"_").concat(t.field,"_inputContainer' style='").concat(t.style||"","' class='websy-input-container ").concat(t.classes?t.classes.join(" "):"","'>\n ").concat(t.label?'<label for="'.concat(t.field,'">').concat(t.label,"</label>"):"").concat(!0===t.required?'<span class="websy-form-required-value">*</span>':"",'\n <input \n id="').concat(n.elementId,"_input_").concat(t.field,'"\n ').concat(!0===t.required?"required":"",' \n type="').concat(("expiry"===t.type?"text":"cvv"===t.type?"number":t.type)||"text",'" \n data-user-type="').concat(t.type,'"\n data-index="').concat(e,'"\n class="websy-input ').concat(t.readOnly||n.options.readOnly?"websy-input-readonly":"",'" \n ').concat((t.attributes||[]).join(" "),'\n name="').concat(t.field,'" \n placeholder="').concat(t.placeholder||"",'"\n value="').concat("date"===t.type?"":i||"",'"\n valueAsDate="').concat("date"===t.type?i:"",'"\n ').concat(t.disabled||t.readOnly||n.options.readOnly?"disabled":"","\n oninvalidx=\"this.setCustomValidity('").concat(t.invalidMessage||"Please fill in this field.","')\"\n />\n <span id='").concat(n.elementId,"_").concat(t.field,"_error' class='websy-form-validation-error'></span>\n </div>\x3c!--\n ")}),!0===this.options.useRecaptcha&&(o+="\n --\x3e<div id='".concat(this.elementId,"_recaptcha' data-sitekey='").concat(ENVIRONMENT.RECAPTCHA_KEY,"' class='websy-form-recaptcha'></div>\n <div id='").concat(this.elementId,"_recaptchaError' class='websy-alert websy-alert-error websy-hidden'>Invalid recaptcha response</div>\x3c!--\n ")),this.options.readOnly?o+="--\x3e":o+='\n --\x3e<button class="websy-btn submit '.concat(this.options.submit.classes?this.options.submit.classes.join(" "):"",'">').concat(this.options.submit.text||"Save","</button>").concat(this.options.cancel?"\x3c!--":"","\n "),this.options.cancel&&(o+='\n --\x3e<button class="websy-btn cancel '.concat(this.options.cancel.classes?this.options.cancel.classes.join(" "):"",'">').concat(this.options.cancel.text||"Cancel","</button>\n ")),o+=' \n </form>\n <div id="'.concat(this.elementId,'_validationFail" class="websy-validation-failure"></div>\n <div id="').concat(this.elementId,'_loader" class=""></div>\n '),i.innerHTML=o,this.loader||(this.loader=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loader"),{title:"&nbsp;"})),this.processComponents(s,function(){!0!==n.options.useRecaptcha&&!0!==n.options.useRecaptchaV3||"undefined"==typeof grecaptcha||n.recaptchaReady()})}}},{key:"setValue",value:function(t,e){if(this.fieldMap[t])if(this.fieldMap[t].instance)this.fieldMap[t].instance.value=e;else{var i=document.getElementById("".concat(this.elementId,"_input_").concat(t));i?(i.value=e,i.setAttribute("value",e),"checkbox"===this.fieldMap[t].type&&(i.checked=e),"date"===this.fieldMap[t].type&&(i.valueAsDate=e)):console.error("Input for ".concat(t," does not exist in form."))}else console.error("Field ".concat(t," does not exist in form."))}},{key:"submitForm",value:function(){var s=this,o=document.getElementById("".concat(this.elementId,"Form")),a=o.querySelector("button.websy-btn.submit"),l=document.getElementById("".concat(this.elementId,"_recaptchaError"));this.options.preSubmitFn&&!1===this.options.preSubmitFn()||!0===this.validateForm()&&(a&&a.setAttribute("disabled",!0),this.checkRecaptcha().then(function(t){if(a&&a.removeAttribute("disabled"),!0===t){l&&l.classList.add("websy-hidden"),s.options.useLoader&&s.loader.show();new FormData(o);var i={};if(new FormData(o).forEach(function(t,e){i[e]=t}),s.options.url){var e,n=[s.options.url];"update"===s.options.mode&&n.push(s.options.id),n.push(i),(e=s.apiService)[s.options.mode].apply(e,n).then(function(t){!0===s.options.clearAfterSave&&o.reset(),a.removeAttribute("disabled"),s.options.onSuccess.call(s,t)},function(t){console.log("Error submitting form data:",t),s.options.onError.call(s,t)})}else s.options.submitFn&&s.options.submitFn(i,function(){s.loader.hide(),!0===s.options.clearAfterSave&&o.reset()},function(){s.loader.hide()})}else a&&a.removeAttribute("disabled"),l&&l.classList.remove("websy-hidden"),s.options.submitErr&&s.options.submitErr()}))}},{key:"validateForm",value:function(){for(var t=!0,e=this.data,i=0;i<this.options.fields.length;i++)(this.options.fields[i].required||this.options.fields[i].validate)&&!1===this.validateField(this.options.fields[i],e[this.options.fields[i].field])&&(t=!1);return t}},{key:"validateField",value:function(t,e){var i=document.getElementById("".concat(this.elementId,"_").concat(t.field,"_inputContainer")),n=document.getElementById("".concat(this.elementId,"_").concat(t.field,"_error"));if(t.required){if(!(t.component&&t.instance&&t.instance.value?0<t.instance.value.length:!(void 0===e||""===e)))return n&&(n.innerHTML=t.invalidMessage||"A value is required"),i&&i.classList.add("websy-form-input-has-error"),!1}if(t.validate&&!t.validate(t,e))return n&&(n.innerHTML=t.invalidMessage||"A value is required"),i&&i.classList.add("websy-form-input-has-error"),!1;return n&&(n.innerHTML=""),i&&i.classList.remove("websy-form-input-has-error"),!0}},{key:"validateRecaptcha",value:function(t){this.recaptchaValue=t}}]),s}(),MultiForm=function(){function n(t,e){_classCallCheck(this,n),this.elementId=t;this.options=_extends({},{addIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 512 512"><line x1="256" y1="112" x2="256" y2="400" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><line x1="400" y1="256" x2="112" y2="256" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',deleteIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 512 512"><line x1="368" y1="368" x2="144" y2="144" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><line x1="368" y1="144" x2="144" y2="368" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',allowAdd:!0,allowDelete:!0,addLabel:"",deleteLabel:"",emptyMessage:"No items to display"},e),this.formData=[],this.forms=[],this.recordsToDelete=[];var i=document.getElementById(t);i&&(i.addEventListener("click",this.handleClick.bind(this)),i.innerHTML="\n <div id='".concat(t,"_container' class='websy-multi-form-container' data-empty='").concat(this.options.emptyMessage,"'></div>\n <button id='").concat(this.elementId,"_addButton' class='websy-multi-form-add'>\n ").concat(this.options.addIcon).concat(this.options.addLabel,"\n </button> \n ")),this.render()}return _createClass(n,[{key:"addData",value:function(t){this.formData=this.formData.concat(t),this.render()}},{key:"addEntry",value:function(){var t=document.getElementById("".concat(this.elementId,"_addButton"));if(void 0===this.options.maxRows||this.forms.length<this.options.maxRows){var e=document.getElementById("".concat(this.elementId,"_container")),i=WebsyDesigns.Utils.createIdentity(),n=document.createElement("div");n.id="".concat(this.elementId,"_").concat(i,"_formContainer"),n.classList.add("websy-multi-form-form-container");var s="\n <div id='".concat(this.elementId,"_").concat(i,"_form' class='websy-multi-form-form'>\n </div>\n <button id='").concat(this.elementId,"_").concat(i,"_deleteButton' data-formid='").concat(i,"' class='websy-multi-form-delete'>\n ").concat(this.options.deleteIcon).concat(this.options.deleteLabel,"\n </button>\n ");n.innerHTML=s,e.appendChild(n);var o=_extends({},this.options,{fields:_toConsumableArray(this.options.fields.map(function(t){return _extends({},t)}))});this.forms.push(new WebsyDesigns.Form("".concat(this.elementId,"_").concat(i,"_form"),o)),t&&(t.style.display=this.forms.length<this.options.maxRows?"flex":"none")}}},{key:"clear",value:function(){this.formData=[],this.forms=[],this.recordsToDelete=[];var t=document.getElementById("".concat(this.elementId,"_container"));t&&(t.innerHTML="")}},{key:"data",get:function(){return this.forms.map(function(t){return t.data})},set:function(t){this.formData=t,this.render()}},{key:"deleted",get:function(){var e=this;return this.formData.filter(function(t){return e.recordsToDelete.includes("".concat(t.id))})}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-multi-form-add")&&!0===this.options.allowAdd&&this.addEntry(),t.target.classList.contains("websy-multi-form-delete")){var e=t.target.getAttribute("data-formid"),i=t.target.getAttribute("data-rowid");this.recordsToDelete.push(i);for(var n=-1,s=0;s<this.forms.length;s++)if(this.forms[s].elementId==="".concat(this.elementId,"_").concat(e,"_form")){n=s;break}-1!==n&&this.forms.splice(n,1);var o=document.getElementById("".concat(this.elementId,"_").concat(e,"_formContainer"));o&&o.remove();var a=document.getElementById("".concat(this.elementId,"_addButton"));a&&this.options.allowAdd&&(a.style.display=void 0===this.options.maxRows||this.forms.length<this.options.maxRows?"flex":"none")}}},{key:"render",value:function(){var s=this;this.forms=[],this.recordsToDelete=[];var t=document.getElementById("".concat(this.elementId,"_container"));if(t){var e="";this.formData.forEach(function(t){t.formId=WebsyDesigns.Utils.createIdentity(),e+="\n <div id='".concat(s.elementId,"_").concat(t.formId,"_formContainer' class='websy-multi-form-form-container'>\n <div id='").concat(s.elementId,"_").concat(t.formId,"_form' class='websy-multi-form-form'>\n </div>\n "),!0!==s.options.allowDelete||s.options.readOnly||(e+="\n <button id='".concat(s.elementId,"_").concat(t.formId,"_deleteButton' data-formid='").concat(t.formId,"' data-rowid='").concat(t.id,"' class='websy-multi-form-delete'>\n ").concat(s.options.deleteIcon).concat(s.options.deleteLabel,"\n </button>\n ")),e+="\n </div>\n "});WebsyDesigns.Utils.createIdentity();t.innerHTML=e,this.forms=new Array(this.formData.length),this.formData.forEach(function(t,e){var i=_extends({},s.options,{fields:_toConsumableArray(s.options.fields.map(function(t){return _extends({},t)}))}),n=new WebsyDesigns.Form("".concat(s.elementId,"_").concat(t.formId,"_form"),i);n.data=t,s.forms[e]=n});var i=document.getElementById("".concat(this.elementId,"_addButton"));i&&(!0!==this.options.allowAdd||this.options.readOnly?i.style.display="none":i.style.display=void 0===this.options.maxRows||this.forms.length<this.options.maxRows?"flex":"none")}}},{key:"validateForm",value:function(){for(var t=0;t<this.forms.length-1;t++){if(!this.forms[t].validateForm())return!1}return!0}}]),n}(),WebsyIcons={"search-icon":'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" xml:space="preserve">\n<path d="M481.4,468.6c-17.2-17.2-34.4-34.4-51.6-51.6c-27.4-27.4-54.8-54.8-82.2-82.2c-4.8-4.8-9.5-9.5-14.3-14.3\n\tc29.4-32.5,47.4-75.5,47.4-122.7C380.7,97,298.7,15,197.9,15S15,97,15,197.9s82,182.9,182.9,182.9c47.2,0,90.3-18,122.7-47.4\n\tc15.7,15.7,31.4,31.4,47.1,47.1c27.4,27.4,54.8,54.8,82.2,82.2c6.3,6.3,12.5,12.5,18.8,18.8C476.8,489.6,489.6,476.8,481.4,468.6z\n\t M35,197.9C35,108.1,108.1,35,197.9,35s162.9,73.1,162.9,162.9s-73.1,162.9-162.9,162.9S35,287.7,35,197.9z"/>\n</svg>\n\n ',"bag-icon":'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500">\n<path d="M456.6,472.3H43.4c-5.3,0-10.2-2.1-13.7-6c-3.6-3.9-5.2-9.2-4.5-14.4l37-285.4c1.2-9,9-15.9,18.2-15.9h339.2\n\tc9.2,0,17,6.8,18.2,15.8l37,285.4c0.7,5.2-1,10.5-4.5,14.4l0,0C466.8,470.1,461.9,472.3,456.6,472.3z M46.5,451.2h407l-36.3-279.6\n\tH82.8L46.5,451.2z"/>\n<g>\n\t<path d="M361.3,157.1C357.3,94.8,308.4,46,249.9,46c-28,0-54.8,11.1-75.4,31.4c-20.7,20.3-33.5,47.9-35.9,77.8l-21.5-1.6\n\t\tc2.8-34.8,17.7-67.1,42.1-91C183.9,38.3,216.1,25,249.9,25c34.2,0,66.6,13.6,91.5,38.3c24.5,24.3,39.2,57.2,41.5,92.5L361.3,157.1z\n\t\t"/>\n</g>\n</svg>\n\n ',"user-icon":'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n<g>\n\t<path d="M248,260.5c-62,0-112.5-52.8-112.5-117.7S186,25,248,25s112.5,52.8,112.5,117.7S310,260.5,248,260.5z M248,45.9\n\t\tc-51,0-92.5,43.4-92.5,96.8s41.5,96.8,92.5,96.8c51,0,92.5-43.4,92.5-96.8S299,45.9,248,45.9z"/>\n</g>\n<path d="M45,475C45,475,45,475,45,475c0-118.3,92-214.5,205-214.5c113,0,205,96.2,205,214.5c0,0,0,0,0,0h20c0,0,0,0,0,0\n\tc0-62.9-23.4-122-65.9-166.5c-42.5-44.5-99-69-159.1-69s-116.6,24.5-159.1,69C48.4,353,25,412.1,25,475c0,0,0,0,0,0H45z"/>\n</svg>\n\n ',Search:'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" xml:space="preserve">\n<path d="M481.4,468.6c-17.2-17.2-34.4-34.4-51.6-51.6c-27.4-27.4-54.8-54.8-82.2-82.2c-4.8-4.8-9.5-9.5-14.3-14.3\n\tc29.4-32.5,47.4-75.5,47.4-122.7C380.7,97,298.7,15,197.9,15S15,97,15,197.9s82,182.9,182.9,182.9c47.2,0,90.3-18,122.7-47.4\n\tc15.7,15.7,31.4,31.4,47.1,47.1c27.4,27.4,54.8,54.8,82.2,82.2c6.3,6.3,12.5,12.5,18.8,18.8C476.8,489.6,489.6,476.8,481.4,468.6z\n\t M35,197.9C35,108.1,108.1,35,197.9,35s162.9,73.1,162.9,162.9s-73.1,162.9-162.9,162.9S35,287.7,35,197.9z"/>\n</svg>\n\n ',Bag:'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500">\n<path d="M456.6,472.3H43.4c-5.3,0-10.2-2.1-13.7-6c-3.6-3.9-5.2-9.2-4.5-14.4l37-285.4c1.2-9,9-15.9,18.2-15.9h339.2\n\tc9.2,0,17,6.8,18.2,15.8l37,285.4c0.7,5.2-1,10.5-4.5,14.4l0,0C466.8,470.1,461.9,472.3,456.6,472.3z M46.5,451.2h407l-36.3-279.6\n\tH82.8L46.5,451.2z"/>\n<g>\n\t<path d="M361.3,157.1C357.3,94.8,308.4,46,249.9,46c-28,0-54.8,11.1-75.4,31.4c-20.7,20.3-33.5,47.9-35.9,77.8l-21.5-1.6\n\t\tc2.8-34.8,17.7-67.1,42.1-91C183.9,38.3,216.1,25,249.9,25c34.2,0,66.6,13.6,91.5,38.3c24.5,24.3,39.2,57.2,41.5,92.5L361.3,157.1z\n\t\t"/>\n</g>\n</svg>\n\n ',User:'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n<g>\n\t<path d="M248,260.5c-62,0-112.5-52.8-112.5-117.7S186,25,248,25s112.5,52.8,112.5,117.7S310,260.5,248,260.5z M248,45.9\n\t\tc-51,0-92.5,43.4-92.5,96.8s41.5,96.8,92.5,96.8c51,0,92.5-43.4,92.5-96.8S299,45.9,248,45.9z"/>\n</g>\n<path d="M45,475C45,475,45,475,45,475c0-118.3,92-214.5,205-214.5c113,0,205,96.2,205,214.5c0,0,0,0,0,0h20c0,0,0,0,0,0\n\tc0-62.9-23.4-122-65.9-166.5c-42.5-44.5-99-69-159.1-69s-116.6,24.5-159.1,69C48.4,353,25,412.1,25,475c0,0,0,0,0,0H45z"/>\n</svg>\n\n ',DockLeft:'\n <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n\t<g>\n\t\t<path d="M419.7,425H80.3C49.8,425,25,400.2,25,369.7V130.3C25,99.8,49.8,75,80.3,75h339.4c30.5,0,55.3,24.8,55.3,55.3v239.4\n\t\t\tC475,400.2,450.2,425,419.7,425z M80.3,95C60.8,95,45,110.8,45,130.3v239.4c0,19.5,15.8,35.3,35.3,35.3h339.4\n\t\t\tc19.5,0,35.3-15.8,35.3-35.3V130.3c0-19.5-15.8-35.3-35.3-35.3H80.3z"/>\n\t</g>\n\t<path d="M92.8,90.1H92h-4.2c-24.8,0-45,20.2-45,45v229.8c0,24.8,20.2,45,45,45H92h0.8h105.4V90.1H92.8z"/>\n</svg>\n\n ',DockRight:'\n <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n\t<g>\n\t\t<path d="M25,369.7V130.3C25,99.8,49.8,75,80.3,75h339.4c30.5,0,55.3,24.8,55.3,55.3v239.4c0,30.5-24.8,55.3-55.3,55.3H80.3\n\t\t\tC49.8,425,25,400.2,25,369.7z M80.3,95C60.8,95,45,110.8,45,130.3v239.4c0,19.5,15.8,35.3,35.3,35.3h339.4\n\t\t\tc19.5,0,35.3-15.8,35.3-35.3V130.3c0-19.5-15.8-35.3-35.3-35.3H80.3z"/>\n\t</g>\n\t<path d="M407.2,90.1h0.8h4.2c24.8,0,45,20.2,45,45v229.8c0,24.8-20.2,45-45,45H408h-0.8H301.8V90.1H407.2z"/>\n</svg>\n\n ',Pin:'\n <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n\t<g>\n\t\t<path d="M368,312.1H132l-0.6-9.4c-0.1-2.4-0.2-4.8-0.2-7.1c0-40.3,20.7-78.1,54.4-99.9V73.2h-9c-13,0-23.6-10.6-23.6-23.6\n\t\t\tS163.5,26,176.6,26h146.9c13,0,23.6,10.6,23.6,23.6s-10.6,23.6-23.6,23.6h-9v122.5c33.7,21.8,54.4,59.5,54.4,99.9\n\t\t\tc0,2.3-0.1,4.7-0.2,7.1L368,312.1z M151.2,292.1h197.5c-1.2-33.8-19.9-65.1-49.4-82.1l-5-2.9V53.2h29c2,0,3.6-1.6,3.6-3.6\n\t\t\tc0-2-1.6-3.6-3.6-3.6H176.6c-2,0-3.6,1.6-3.6,3.6c0,2,1.6,3.6,3.6,3.6h29v153.9l-5,2.9C171.1,227,152.4,258.3,151.2,292.1z"/>\n\t</g>\n\t<path d="M260.9,403.8V299.9h-21.8v108.8h0c0.1,36.1,4.9,65.3,10.9,65.3c6,0,10.9-29.7,10.9-66.4\n\t\tC260.9,406.4,260.9,405.1,260.9,403.8z"/>\n</svg>\n\n ',WindowPopout:'\n <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n<style type="text/css">\n\t.st0{fill:none;stroke:#000000;stroke-width:20;stroke-miterlimit:10;}\n</style>\n<path class="st0" d="M420.1,359.6h-285c-24.7,0-45-20.2-45-45V124.9c0-24.7,20.2-45,45-45h285c24.7,0,45,20.2,45,45v189.7\n\tC465.1,339.3,444.9,359.6,420.1,359.6z"/>\n<path class="st0" d="M407.3,389.8c-6.3,17.3-22.9,29.7-42.3,29.7H80c-24.7,0-45-20.2-45-45V184.9c0-18.2,10.9-33.9,26.5-41"/>\n</svg>\n\n ',Plus:'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 500 500">\n<path d="M254.7,486h-10.3c-5.5,0-10-4.5-10-10V26c0-5.5,4.5-10,10-10h10.3c5.5,0,10,4.5,10,10v450C264.6,481.5,260.2,486,254.7,486z"/>\n<path d="M15,255.1v-10.3c0-5.5,4.5-10,10-10h450c5.5,0,10,4.5,10,10v10.3c0,5.5-4.5,10-10,10H25C19.5,265.1,15,260.7,15,255.1z"/>\n</svg>\n\n ',Minus:'\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 500 500">\n<path d="M15,255.1v-10.3c0-5.5,4.5-10,10-10h450c5.5,0,10,4.5,10,10v10.3c0,5.5-4.5,10-10,10H25C19.5,265.1,15,260.7,15,255.1z"/>\n</svg>\n ',PlusFilled:'\n <?xml version="1.0" encoding="utf-8"?>\n<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n<style type="text/css">\n\t.st0{fill:#FFFFFF;}\n</style>\n<circle cx="249.6" cy="251" r="235"/>\n<path class="st0" d="M422.3,234.8H264.7V78.7c0-4.2-4.5-7.7-10-7.7h-10.3c-5.5,0-10,3.4-10,7.7v156.1H77.7c-4.2,0-7.7,4.5-7.7,10\n\tv10.3c0,5.6,3.4,10,7.7,10h156.7v158.2c0,4.2,4.5,7.7,10,7.7h10.3c5.5,0,9.9-3.4,10-7.7V265.1h157.6c4.2,0,7.7-4.5,7.7-10v-10.3\n\tC430,239.3,426.6,234.8,422.3,234.8z"/>\n</svg>\n\n ',MinusFilled:'\n <?xml version="1.0" encoding="utf-8"?>\n<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">\n<style type="text/css">\n\t.st0{fill:#FFFFFF;}\n</style>\n<circle cx="250.1" cy="255.4" r="235"/>\n<path class="st0" d="M70,255.1v-10.3c0-5.5,3.4-10,7.7-10h344.7c4.2,0,7.7,4.5,7.7,10v10.3c0,5.5-3.4,10-7.7,10H77.7\n\tC73.4,265.1,70,260.7,70,255.1z"/>\n</svg>\n\n '},WebsyLoadingDialog=function(){function i(t,e){_classCallCheck(this,i),this.options=_extends({},e),t?this.elementId=t:console.log("No element Id provided")}return _createClass(i,[{key:"hide",value:function(){var t=document.getElementById(this.elementId);t&&(t.classList.remove("loading"),t.innerHTML="")}},{key:"render",value:function(){if(this.elementId){var t=document.getElementById(this.elementId);if(t){var e="\n <div class='websy-loading-container ".concat((this.options.classes||[]).join(" "),"'>\n <div class='websy-ripple'>\n <div></div>\n <div></div>\n </div>\n <h4>").concat(this.options.title||"Loading...","</h4>\n ");if(this.options.messages)for(var i=0;i<this.options.messages.length;i++)e+="<p>".concat(this.options.messages[i],"</p>");e+="\n </div>\t\n ",t.classList.add("loading"),t.innerHTML=e}}else console.log("No element Id provided for Websy Loading Dialog")}},{key:"show",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1];t&&(this.options=!0===e?_extends({},t):_extends({},this.options,t)),this.render()}}]),i}(),WebsyNavigationMenu=function(){function n(t,e){if(_classCallCheck(this,n),this.options=_extends({},{collapsible:!1,orientation:"horizontal",parentMap:{},childIndentation:10,activeSymbol:"none",enableSearch:!1,searchProp:"text",indent:"padding",expandIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 512 512"><polyline points="112 184 256 328 400 184" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:48px"/></svg>',collapseIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 512 512"><polyline points="328 112 184 256 328 400" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:48px"/></svg>',menuIcon:'<svg viewbox="0 0 40 40" width="30" height="40"> \n <rect x="0" y="0" width="30" height="4" rx="2"></rect>\n <rect x="0" y="12" width="30" height="4" rx="2"></rect>\n <rect x="0" y="24" width="30" height="4" rx="2"></rect>\n </svg>',searchOptions:{}},e),t){this.maxLevel=0;var i=document.getElementById(t);i&&(this.elementId=t,this.lowestLevel=0,this.flatItems=[],this.itemMap={},this.flattenItems(0,this.options.items),i.classList.add("websy-".concat(this.options.orientation,"-list-container")),i.classList.add("websy-menu"),this.options.align&&i.classList.add("".concat(this.options.align,"-align")),Array.isArray(this.options.classes)&&(this.options.classes=this.options.classes.join(" ")),this.options.classes&&this.options.classes.split(" ").forEach(function(t){return i.classList.add(t)}),i.addEventListener("click",this.handleClick.bind(this)),this.render())}else console.log("No element Id provided for Websy Menu")}return _createClass(n,[{key:"activateItem",value:function(t){var e=document.getElementById(t);if(e){e.classList.add("active");for(var i=e.parentElement;i;)if("UL"===i.tagName){i.classList.remove("websy-menu-collapsed");var n=i.getAttribute("data-path").split("::").pop(),s=document.getElementById(n);s&&s.classList.contains("websy-menu-header")&&s.classList.add("menu-open"),i=i.parentElement}else i="LI"===i.tagName?i.parentElement:null}}},{key:"collapseAll",value:function(){var t=document.getElementById(this.elementId),e=t.querySelectorAll(".websy-child-list"),i=t.querySelectorAll(".websy-menu-header");Array.from(e).forEach(function(t){return t.classList.add("websy-menu-collapsed")}),Array.from(i).forEach(function(t){t.classList.remove("active"),t.classList.remove("menu-open")})}},{key:"flattenItems",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0,n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:"";e[t]&&(this.lowestLevel=Math.max(i,this.lowestLevel),e[t].id=e[t].id||"".concat(this.elementId,"_").concat(this.normaliseString(e[t].text)),e[t].level=i,e[t].hasChildren=e[t].items&&0<e[t].items.length,e[t].path=""!==n?"".concat(n,"::").concat(e[t].id):e[t].id,this.itemMap[e[t].id]=_extends({},e[t]),this.flatItems.push(e[t]),e[t].items&&this.flattenItems(0,e[t].items,i+1,e[t].path),this.flattenItems(++t,e,i,n))}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-menu-icon")&&this.toggleMobileMenu(),t.target.classList.contains("websy-menu-header")){var e=this.itemMap[t.target.id];if(t.target.classList.contains("trigger-item")&&e.level===this.lowestLevel&&this.toggleMobileMenu("remove"),e&&!0===e.hasChildren)t.target.classList.toggle("menu-open"),this.toggleMenu(e.id);else{var i=document.getElementById(this.elementId).querySelectorAll(".websy-menu-header");Array.from(i).forEach(function(t){return t.classList.remove("active")}),t.target.classList.add("active")}}t.target.classList.contains("websy-menu-mask")&&this.toggleMobileMenu()}},{key:"handleSearch",value:function(e){var i=this,t=document.getElementById(this.elementId),n=this.flatItems.filter(function(t){return!t.hasChildren}),s=n,o="remove";e&&1<e.length&&(o="add",s=n.filter(function(t){return-1!==t[i.options.searchProp].toLowerCase().indexOf(e.toLowerCase())}));for(var a=t.querySelectorAll("div.websy-menu-header"),l=0;l<a.length;l++)a[l].classList[o]("websy-hidden"),a[l].classList.remove("menu-open");for(var r=t.querySelectorAll("ul.websy-child-list"),c=0;c<r.length;c++)r[c].classList.add("websy-menu-collapsed");e&&1<e.length&&s.forEach(function(t){t.path.split("::").forEach(function(t){var e=document.getElementById(t);e&&(e.classList.remove("websy-hidden"),e.classList.add("menu-open"));var i=document.getElementById("".concat(t,"_list"));i&&i.classList.remove("websy-menu-collapsed")})})}},{key:"normaliseString",value:function(t){return t.replace(/-/g,"").replace(/\s/g,"_")}},{key:"render",value:function(){var t=document.getElementById(this.elementId);if(t){var e="";!0===this.options.collapsible&&(e+="\n <div id='".concat(this.elementId,"_menuIcon' class='websy-menu-icon'>\n ").concat(this.options.menuIcon,"\n </div>\n ")),this.options.logo&&(Array.isArray(this.options.logo.classes)&&(this.options.logo.classes=this.options.logo.classes.join(" ")),e+=" \n <div \n class='logo ".concat(this.options.logo.classes||"","'\n ").concat(this.options.logo.attributes&&this.options.logo.attributes.join(" "),"\n >\n <img src='").concat(this.options.logo.url,"'></img>\n </div>\n <div id='").concat(this.elementId,"_mask' class='websy-menu-mask'></div>\n <div id=\"").concat(this.elementId,'_menuContainer" class="websy-menu-block-container">\n ')),!0===this.options.enableSearch&&(e+="\n <div id='".concat(this.elementId,"_search' class='websy-menu-search'></div>\n ")),e+=this.renderBlock(this.elementId,this.elementId,this.options.items,"main",0),e+="</div>",this.options.secondaryItems&&(e+="<div class='websy-menu-secondary' style='height: ".concat(this.options.secondaryHeight||"100%","; width: ").concat(this.options.secondaryWidth||"100%","'>"),e+=this.renderBlock(this.elementId,this.elementId,this.options.secondaryItems,"main",0),e+="</div>"),t.innerHTML=e;var i=t.querySelector(".websy-menu-header.active");if(i)for(var n=i.parentElement;n;)if("UL"===n.tagName){n.classList.remove("websy-menu-collapsed");var s=n.getAttribute("data-path").split("::").pop(),o=document.getElementById(s);o&&o.classList.contains("websy-menu-header")&&o.classList.add("menu-open"),n=n.parentElement}else n="LI"===n.tagName?n.parentElement:null;!0===this.options.enableSearch&&(this.search=new WebsyDesigns.Search("".concat(this.elementId,"_search"),_extends({},{onSearch:this.handleSearch.bind(this),onClear:this.handleSearch.bind(this)},this.options.searchOptions)))}}},{key:"renderBlock",value:function(t,e,i,n){var s=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0;this.maxLevel=Math.max(this.maxLevel,s);var o="\n\t\t <ul class='websy-".concat(this.options.orientation,"-list ").concat(0<s?"websy-child-list":""," ").concat("main"!==n?"websy-menu-collapsed":"","' id='").concat(t,"_list' data-path='").concat(e,"'\n\t ");"main"!==n&&(o+=" data-collapsed='".concat("main"!==n?"true":"false","'")),o+=">";for(var a=0;a<i.length;a++){var l=!0===i[a].default?"active":"",r=this.normaliseString(i[a].text),c=i[a].items&&0<i[a].items.length?"":"websy-menu-last-level",h=i[a].id;Array.isArray(i[a].classes)&&(i[a].classes=i[a].classes.join(" ")),o+="\n\t\t\t<li class='websy-".concat(this.options.orientation,"-list-item ").concat(!0===i[a].alwaysOpen?"always-open":"","'>\n\t\t\t\t<div class='websy-menu-header ").concat(c," websy-menu-level-").concat(s," ").concat(i[a].classes||""," ").concat(""," ").concat(l,"' \n id='").concat(h,"' \n data-id='").concat(r,"'\n data-path='").concat(i[a].path,"'\n data-menu-id='").concat(this.elementId,"_").concat(r,"_list'\n data-popout-id='").concat(1<s?n:r,"'\n data-text='").concat(!0!==i[a].isLink?i[a].text:"","'\n style='").concat(this.options.indent,"-left: ").concat(s*this.options.childIndentation,"px'\n ").concat(i[a].attributes&&i[a].attributes.join(" ")||"","\n >\n "),"horizontal"===this.options.orientation&&(o+=i[a].text),"line"===this.options.activeSymbol&&(o+="\n <span class='selected-bar'></span>\n "),this.options.orientation,!0===i[a].isLink&&i[a].href&&(o+="<a href='".concat(i[a].href,"' target='").concat(i[a].openInNewTab?"blank":"_self","'>")),i[a].icon&&(o+="\n <div class='websy-menu-item-icon'>".concat(i[a].icon,"</div>\n ")),o+="<span>".concat(i[a].text,"</span>"),!0===i[a].isLink&&i[a].href&&(o+="</a>"),i[a].items&&0<i[a].items.length&&(o+=" \n <div class='websy-menu-expand-collapse-buttons'>".concat(this.options.expandIcon).concat(this.options.collapseIcon,"</div>\n ")),"triangle"===this.options.activeSymbol&&(o+="\n <span class='active-square'></span>\n "),o+=" \n\t\t\t\t</div>\n\t\t ",i[a].items&&(o+=this.renderBlock(h,i[a].path,i[a].items,r,i[a].level+1)),n&&"main"!==n&&(this.options.parentMap[r]||(this.options.parentMap[r]=n)),o+="\n\t\t\t</li>\n\t\t"}return o+="</ul>"}},{key:"toggleMenu",value:function(t){var e=document.getElementById("".concat(t,"_list"));e&&e.classList.toggle("websy-menu-collapsed")}},{key:"toggleMobileMenu",value:function(t){void 0===t&&(t="toggle");var e=document.getElementById("".concat(this.elementId));e&&e.classList[t]("open"),this.options.onToggle&&this.options.onToggle(t)}}]),n}(),Pager=function(){function o(t,e){var i=this;_classCallCheck(this,o),this.elementId=t;this.options=_extends({},{pageSizePrefix:"Show",pageSizeSuffix:"rows",pageSizeOptions:[{label:"10",value:10},{label:"20",value:20},{label:"50",value:50},{label:"100",value:100}],selectedPageSize:20,pageLabel:"Page",showPageSize:!0,activePage:0,pages:[]},e);var n=document.getElementById(this.elementId);if(n){var s='\n <div class="websy-pager-container">\n ';!0===this.options.showPageSize&&(s+="\n ".concat(this.options.pageSizePrefix,' <div id="').concat(this.elementId,'_pageSizeSelector" class="websy-page-selector"></div> ').concat(this.options.pageSizeSuffix," \n ")),s+='\n <ul id="'.concat(this.elementId,'_pageList" class="websy-page-list"></ul> \n </div> \n '),n.innerHTML=s,n.addEventListener("click",this.handleClick.bind(this)),!0===this.options.showPageSize&&(this.pageSizeSelector=new WebsyDesigns.Dropdown("".concat(this.elementId,"_pageSizeSelector"),{selectedItems:[this.options.pageSizeOptions.indexOf(this.options.selectedPageSize)],items:this.pageSizeOptions.map(function(t){return{label:t.toString(),value:t}}),allowClear:!1,disableSearch:!0,onItemSelected:function(t){i.options.onChangePageSize&&i.options.onChangePageSize(t.value)}})),this.render()}}return _createClass(o,[{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-page-num")){var e=+t.target.getAttribute("data-index");this.options.onSetPage&&this.options.onSetPage(this.options.pages[e])}}},{key:"render",value:function(){var i=this,t=document.getElementById("".concat(this.elementId,"_pageList"));if(t){var e=this.options.pages.map(function(t,e){return'<li data-index="'.concat(e,'" class="websy-page-num ').concat(i.options.activePage===e?"active":"",'">').concat(e+1,"</li>")}),n=0;8<this.options.pages.length&&(n=Math.max(0,this.options.activePage-4),e=e.splice(n,10),0<n?e.splice(0,0,"<li>".concat(this.options.pageLabel,'&nbsp;</li><li data-page="0" class="websy-page-num">First</li><li>...</li>')):e.splice(0,0,"<li>".concat(this.options.pageLabel,"&nbsp;</li>")),this.options.activePage<this.options.pages.length-1&&(e.push("<li>...</li>"),e.push('<li data-page="'.concat(this.options.pages.length-1,'" class="websy-page-num">Last</li>')))),t.innerHTML=e.join("")}}}]),o}(),WebsyPDFButton=function(){function n(t,e){_classCallCheck(this,n);this.elementId=t,this.options=_extends({},{classes:[],wait:0,buttonText:"Download",directDownload:!1,preProcess:function(t){return t(!0)},onError:function(){}},e),this.service=new WebsyDesigns.APIService("/pdf");var i=document.getElementById(this.elementId);i&&(i.addEventListener("click",this.handleClick.bind(this)),e.html?i.innerHTML=e.html:(i.innerHTML="\n \x3c!--<form style='display: none;' id='".concat(this.elementId,"_form' action='/pdf' method='POST'>\n <input id='").concat(this.elementId,"_pdfHeader' value='' name='header'>\n <input id='").concat(this.elementId,"_pdfHTML' value='' name='html'>\n <input id='").concat(this.elementId,"_pdfFooter' value='' name='footer'>\n </form>--\x3e\n <button class='websy-btn websy-pdf-button ").concat(this.options.classes.join(" "),'\'>\n Create PDF\n <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n viewBox="0 0 184.153 184.153" style="enable-background:new 0 0 184.153 184.153;" xml:space="preserve">\n <g>\n <g>\n <g>\n <path d="M129.318,0H26.06c-1.919,0-3.475,1.554-3.475,3.475v177.203c0,1.92,1.556,3.475,3.475,3.475h132.034\n c1.919,0,3.475-1.554,3.475-3.475V34.131C161.568,22.011,140.771,0,129.318,0z M154.62,177.203H29.535V6.949h99.784\n c7.803,0,25.301,18.798,25.301,27.182V177.203z"/>\n <path d="M71.23,76.441c15.327,0,27.797-12.47,27.797-27.797c0-15.327-12.47-27.797-27.797-27.797\n c-15.327,0-27.797,12.47-27.797,27.797C43.433,63.971,55.902,76.441,71.23,76.441z M71.229,27.797\n c11.497,0,20.848,9.351,20.848,20.847c0,0.888-0.074,1.758-0.183,2.617l-18.071-2.708L62.505,29.735\n C65.162,28.503,68.112,27.797,71.229,27.797z M56.761,33.668l11.951,19.869c0.534,0.889,1.437,1.49,2.462,1.646l18.669,2.799\n c-3.433,6.814-10.477,11.51-18.613,11.51c-11.496,0-20.847-9.351-20.847-20.847C50.381,42.767,52.836,37.461,56.761,33.668z"/>\n <rect x="46.907" y="90.339" width="73.058" height="6.949"/>\n <rect x="46.907" y="107.712" width="48.644" height="6.949"/>\n <rect x="46.907" y="125.085" width="62.542" height="6.949"/>\n </g>\n </g>\n </g> \n </svg>\n </button> \n <div id=\'').concat(this.elementId,"_loader'></div>\n <div id='").concat(this.elementId,"_popup'></div>\n "),this.loader=new WebsyDesigns.WebsyLoadingDialog("".concat(this.elementId,"_loader"),{classes:["global-loader"]}),this.popup=new WebsyDesigns.WebsyPopupDialog("".concat(this.elementId,"_popup"))))}return _createClass(n,[{key:"handleClick",value:function(t){var s=this;t.target.classList.contains("websy-pdf-button")?(this.loader.show(),this.options.preProcess(function(t){!0===t?setTimeout(function(){if(s.options.targetId){var t=document.getElementById(s.options.targetId);if(t){var e={options:{}};if(s.options.pdfOptions&&(e.options=_extends({},s.options.pdfOptions)),s.options.header)if(s.options.header.elementId){var i=document.getElementById(s.options.header.elementId);i&&(e.header=i.outerHTML,s.options.header.css&&(e.options.headerCSS=s.options.header.css))}else s.options.header.html?(e.header=s.options.header.html,s.options.header.css&&(e.options.headerCSS=s.options.header.css)):e.header=s.options.header;if(s.options.footer)if(s.options.footer.elementId){var n=document.getElementById(s.options.footer.elementId);n&&(e.footer=n.outerHTML,s.options.footer.css&&(e.options.footerCSS=s.options.footer.css))}else e.footer=s.options.footer;e.html=t.outerHTML,s.service.add("",e,{responseType:"blob"}).then(function(t){s.loader.hide();var e,i=new Blob([t],{type:"application/pdf"}),n="\n <div class='text-center websy-pdf-download'>\n <div>Your file is ready to download</div>\n <a href='".concat(URL.createObjectURL(i),"' target='_blank'\n ");!0===s.options.directDownload&&(e="function"==typeof s.options.fileName?s.options.fileName()||"Export":s.options.fileName||"Export",n+='download="'.concat(e.replace(/'/g,""),'.pdf"'));n+="\n >\n <button class='websy-btn download-pdf'>".concat(s.options.buttonText,"</button>\n </a>\n </div>\n "),s.popup.show({message:n,mask:!0})},function(t){console.error(t)})}}},s.options.wait):(s.loader.hide(),s.options.onError())})):t.target.classList.contains("download-pdf")&&(this.popup.hide(),this.options.onClose&&this.options.onClose())}},{key:"render",value:function(){}}]),n}(),WebsyPopupDialog=function(){function n(t,e){if(_classCallCheck(this,n),this.DEFAULTS={buttons:[],classes:[],style:""},this.options=_extends({},this.DEFAULTS,e),t){this.closeOnOutsideClick=!0;var i=document.getElementById(t);this.elementId=t,i&&i.addEventListener("click",this.handleClick.bind(this))}else console.log("No element Id provided for Websy Popup")}return _createClass(n,[{key:"hide",value:function(){var t=document.getElementById(this.elementId);t&&(t.innerHTML="")}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-btn")){var e=t.target.getAttribute("data-index"),i=this.options.buttons[e];if(i&&i.fn){if(void 0!==this.options.collectData){var n=document.getElementById("".concat(this.elementId,"_collect"));n&&(i.collectedData=n.value)}!0!==i.preventClose&&this.hide(),i.fn(i)}else i&&!0!==i.preventClose&&this.hide()}else!0===this.closeOnOutsideClick&&this.hide()}},{key:"render",value:function(){if(this.elementId){var t=document.getElementById(this.elementId);if(t){var e="";if(!0===this.options.mask&&(e+="<div class='websy-mask'></div>"),e+="\n <div class='websy-popup-dialog-container'>\n <div class='websy-popup-dialog ".concat(this.options.classes.join(" "),"' style='").concat(this.options.style,"'>\n "),this.options.title&&(e+="<h1>".concat(this.options.title,"</h1>")),this.options.message&&(e+="<p>".concat(this.options.message,"</p>")),void 0!==this.options.collectData&&(e+='\n <div>\n <input id="'.concat(this.elementId,'_collect" class="websy-input" value="').concat("boolean"==typeof this.options.collectData?"":this.options.collectData,'" placeholder="').concat(this.options.collectPlaceholder||"",'">\n </div>\n ')),this.closeOnOutsideClick=!0,this.options.buttons){!0!==this.options.allowCloseOnOutsideClick&&(this.closeOnOutsideClick=!1),e+="<div class='websy-popup-button-panel'>";for(var i=0;i<this.options.buttons.length;i++)e+="\n <button class='websy-btn ".concat((this.options.buttons[i].classes||[]).join(" "),"' data-index='").concat(i,"'>\n ").concat(this.options.buttons[i].label,"\n </button>\n ");e+="</div>"}e+="\n </div>\n </div>\n ",t.innerHTML=e}}else console.log("No element Id provided for Websy Popup")}},{key:"show",value:function(t){t&&(this.options=_extends({},this.DEFAULTS,t)),this.render()}}]),n}(),WebsyPubSub=function(){function i(t,e){_classCallCheck(this,i),this.options=_extends({},e),t?(this.elementId=t,this.subscriptions={}):console.log("No element Id provided")}return _createClass(i,[{key:"publish",value:function(t,e,i){this.subscriptions&&(3===arguments.length?this.subscriptions[t]&&this.subscriptions[t][e]&&this.subscriptions[t][e](i):this.subscriptions[t]&&this.subscriptions[t].forEach(function(t){t(e)}))}},{key:"subscribe",value:function(t,e,i){this.subscriptions||(this.subscriptions={}),3===arguments.length?(this.subscriptions[t]||(this.subscriptions[t]={}),this.subscriptions[t][e]||(this.subscriptions[t][e]=i)):(this.subscriptions[t]||(this.subscriptions[t]=[]),this.subscriptions[t].push(e))}}]),i}(),ResponsiveText=function(){function n(t,e){var i=this;_classCallCheck(this,n);this.options=_extends({},{textAlign:"center",verticalAlign:"flex-end",wrapText:!1},e),this.elementId=t,this.canvas=document.createElement("canvas"),window.addEventListener("resize",function(){return i.render()}),document.getElementById(this.elementId)&&this.render()}return _createClass(n,[{key:"css",value:function(t,e){return window.getComputedStyle(t,null).getPropertyValue(e)}},{key:"render",value:function(t){if(void 0!==t&&(this.options.text=t),this.options.text){var e=!1,i=document.getElementById(this.elementId),n=this.canvas.getContext("2d"),s=0,o=!1,a=i.clientHeight;if("string"==typeof this.options.maxHeight&&-1!==this.options.maxHeight.indexOf("%")){var l=+this.options.maxHeight.replace("%","");isNaN(l)||(this.options.maxHeight=Math.floor(a*(l/100)))}else"string"==typeof this.options.maxHeight&&-1!==this.options.maxHeight.indexOf("px")&&(this.options.maxHeight=+this.options.maxHeight.replace("px",""));if("string"==typeof this.options.minHeight&&-1!==this.options.minHeight.indexOf("%")){var r=+this.options.minHeight.replace("%","");isNaN(r)||(this.options.minHeight=Math.floor(a*(r/100)))}else"string"==typeof this.options.minHeight&&-1!==this.options.minHeight.indexOf("px")&&(this.options.minHeight=+this.options.minHeight.replace("px",""));var c=this.css(i,"font-family"),h=this.css(i,"font-weight"),d=i.clientWidth;if(0===d&&i.style.maxWidth&&"auto"!==i.style.maxWidth&&0<i.parentElement.clientWidth){var p=i.style.maxWidth;-1!==p.indexOf("calc")?(-1!==(p=(p=p.replace("calc(","").replace(")","")).split(" "))[0].indexOf("px")?d=p[0].replace("px",""):-1!==p[0].indexOf("%")&&(d=i.parentElement.clientWidth*(+p[0].replace("%","")/100)),p[2]&&p[4]&&("-"===p[2]&&-1!==p[4].indexOf("px")&&(d-=+p[4].replace("px","")),"+"===p[2]&&-1!==p[4].indexOf("px")&&(d+=+p[4].replace("px","")))):-1!==p.indexOf("px")?d=+p.replace("px",""):-1!==p.indexOf("%")&&(d=i.parentElement.clientWidth*(+p.replace("%","")/100))}for(var u=i.clientHeight;!1===o;){s++,n.font="".concat(h," ").concat(s,"px ").concat(c);var m=n.measureText(this.options.text);if(-1!==navigator.userAgent.indexOf("Safari"))for(var g=!1,v=i;!1===g;)0<v.clientHeight?(u=v.clientHeight,g=!0):v.parentNode?v=v.parentNode:g=!0;void 0!==this.options.maxHeight&&s===this.options.maxHeight?(s=this.options.maxHeight,a=m.actualBoundingBoxAscent,o=!0):(m.width>d||m.actualBoundingBoxAscent>=u)&&(s--,a=m.actualBoundingBoxAscent,o=!0)}if(""===this.options.minHeight&&(this.options.minHeight=void 0),void 0!==this.options.minHeight)if(this.options.minHeight>s&&!0===this.options.wrapText){o=!(e=!0),s=this.options.minHeight;var f=this.options.text.match(/ /g);if(f&&0<f.length){f=f.length;for(var y=this.options.text.split(" ");!1===o;){s++,n.font="".concat(h," ").concat(s,"px ").concat(c);for(var b=f;0<b;b--){var w=[y.slice(0,b).join(" "),y.slice(b,y.length).join(" ")].reduce(function(t,e){return t.length>e.length?t:e},""),x=n.measureText(w);if(-1!==navigator.userAgent.indexOf("Safari"))for(var I=!1,L=i;!1===I;)0<L.clientHeight?(u=L.clientHeight,I=!0):L.parentNode?L=L.parentNode:I=!0;if(void 0!==this.options.maxHeight&&s===this.options.maxHeight){s=this.options.maxHeight,a=x.actualBoundingBoxAscent,o=!0;break}if(x.width>d||x.actualBoundingBoxAscent>=u/2*.75){s--,a=x.actualBoundingBoxAscent,o=!0;break}}}}void 0!==this.options.minHeight&&this.options.minHeight>s&&(s=this.options.minHeight)}else this.options.minHeight>s&&(s=this.options.minHeight);var k=Math.min(u,a);i.innerHTML="\n <div \n class='websy-responsive-text' \n style='\n justify-content: ".concat(this.options.verticalAlign,";\n font-size: ").concat(s,"px;\n font-weight: ").concat(h||"normal",";\n '\n > \n <span\n style='\n white-space: ").concat(!0===this.options.wrapText?"normal":"nowrap",";\n height: ").concat(Math.floor(!0===e?k*(1/3)*2:k),"px;\n line-height: ").concat(Math.ceil(!0===e?1.2*s:k),"px;\n justify-content: ").concat(this.options.textAlign,";\n text-align: ").concat(this.options.textAlign,";\n '\n >").concat(this.options.text,"</span>\n </div>\n ")}}}]),n}(),WebsyResultList=function(){function s(t,e){var i=this;_classCallCheck(this,s);if(this.options=_extends({},{listeners:{click:{}}},e),this.elementId=t,this.rows=this.options.data||[],this.apiService=new WebsyDesigns.APIService("/api"),this.templateService=new WebsyDesigns.APIService(""),this.activeTemplate="",t){var n=document.getElementById(t);n&&(n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("change",this.handleChange.bind(this)),n.addEventListener("keyup",this.handleKeyUp.bind(this)),n.addEventListener("keydown",this.handleKeyDown.bind(this))),"object"===_typeof(e.template)&&e.template.url?this.templateService.get(e.template.url).then(function(t){i.options.template=t,i.render()}):this.render()}else console.log("No element Id provided for Websy Search List")}return _createClass(s,[{key:"appendData",value:function(t){var e=this.rows.length;this.rows=this.rows.concat(t),this.activeTemplate=this.options.template;var i=this.buildHTML(t,e);document.getElementById(this.elementId).innerHTML+=i.replace(/\n/g,""),this.options.onAppend&&this.options.onAppend()}},{key:"buildHTML",value:function(){var c=this,n=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],h=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,s=2<arguments.length?arguments[2]:void 0,d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:[],o="";return this.options.template&&(0<n.length?n.forEach(function(l,a){var r="".concat(0<a?"--\x3e":"").concat(s||c.options.template).concat(a<n.length-1?"\x3c!--":"");_toConsumableArray(r.matchAll(/<\s*if[^>]*>([\s\S]*?)<\s*\/\s*if>/g)).forEach(function(t){if(t[0]&&-1<t.index){var e=t[0].match(/(\scondition=["|']\w.+)["|']/g);if(e&&e[0]){var i=e[0].trim().replace("condition=","");'"'===i.split("")[0]?i=i.replace(/"/g,""):"'"===i.split("")[0]&&(i=i.replace(/'/g,""));var n=[],s=!0;-1!==i.indexOf("===")?n=i.split("==="):-1!==i.indexOf("!==")?(n=i.split("!=="),s=!1):-1!==i.indexOf("==")?n=i.split("=="):-1!==i.indexOf("!=")&&(n=i.split("!="),s=!1);var o=!0;if(2===n.length&&(isNaN(n[1])||(n[1]=+n[1]),"true"===n[1]&&(n[1]=!0),"false"===n[1]&&(n[1]=!1),"string"==typeof n[1]&&(-1!==n[1].indexOf('"')?n[1]=n[1].replace(/"/g,""):-1!==n[1].indexOf("'")&&(n[1]=n[1].replace(/'/g,""))),!0===s?void 0!==l[n[0]]&&l[n[0]]===n[1]?o=!1:n[0]===n[1]&&(o=!1):!1===s&&void 0!==l[n[0]]&&l[n[0]]!==n[1]&&(o=!1)),!0===o)r=r.replace(t[0],"");else{var a=t[0];a=a.replace("</if>","").replace(/<\s*if[^>]*>/g,""),r=r.replace(t[0],a)}}}}),_toConsumableArray(r.matchAll(/<\s*for[^>]*>([\s\S]*?)<\s*\/\s*for>/g)).forEach(function(t){var e=t[0].match(/(items=["|']\w.+)["|']/g),i=t[0].match(/<\s*for[^>]*>/),n=t[0].replace(i,"").replace("</for>","").replace(/<\s*for[^>]*>/g,"");if(e&&e[0]){var s=e[0].trim().replace("items=","");'"'===s.split("")[0]?s=s.replace(/"/g,""):"'"===s.split("")[0]&&(s=s.replace(/'/g,""));var o=l;s.split(".").forEach(function(t){o=o[t]}),r=r.replace(t[0],c.buildHTML(o,0,n,[].concat(_toConsumableArray(d),["".concat(h+a,":").concat(s)])))}}),_toConsumableArray(r.matchAll(/(\sdata-event=["|']\w.+)["|']/g)).forEach(function(t){t[0]&&-1<t.index&&(r=r.replace(t[0],"".concat(t[0]," data-id=").concat(h+a," data-locator='").concat(d.join(";"),"'")))});var t=c.flattenObject(l);for(var e in t){var i=new RegExp("{".concat(e,"}"),"gm");r=r.replace(i,t[e]||"")}r=r.replace(/\{(.*?)\}/g,""),o+=r}):this.options.noRowsHTML&&(o+=this.options.noRowsHTML)),o}},{key:"data",get:function(){return this.rows},set:function(t){this.rows=t||[],this.render()}},{key:"findById",value:function(t){for(var e=0;e<this.rows.length;e++)if(this.rows[e].id===t)return this.rows[e];return null}},{key:"flattenObject",value:function(t){var e={};for(var i in t)if(t.hasOwnProperty(i))if("object"===_typeof(t[i])){var n=this.flattenObject(t[i]);for(var s in n)n.hasOwnProperty(s)&&(e[i+"."+s]=n[s])}else e[i]=t[i];return JSON.parse(JSON.stringify(e))}},{key:"handleClick",value:function(t){t.target.classList.contains("clickable")&&this.handleEvent(t,"clickable","click")}},{key:"handleChange",value:function(t){this.handleEvent(t,"keyable","change")}},{key:"handleKeyUp",value:function(t){this.handleEvent(t,"keyable","keyup")}},{key:"handleKeyDown",value:function(t){this.handleEvent(t,"keyable","keydown")}},{key:"handleEvent",value:function(t,e,i){var n=t.target.getAttribute("data-event");if(n){n=n.split("(");var s=[],o=t.target.getAttribute("data-id"),a=t.target.getAttribute("data-locator");n[1]&&(n[1]=n[1].replace(")",""),s=n[1].split(",")),n=n[0];var l,r=this.rows;if(""!==a)a.split(";").forEach(function(t){var e=t.split(":");r[e[0]]&&(r=r[e[0]],e[1].split(".").forEach(function(t){r=r[t]}))});if(s=s.map(function(t){return"string"!=typeof t&&"number"!=typeof t?r[+o]&&(t=r[+o][t]):"string"==typeof t&&(t=t.replace(/"/g,"").replace(/'/g,"")),t}),t.target.classList.contains(e)&&this.options.listeners[i]&&this.options.listeners[i][n])t.stopPropagation(),(l=this.options.listeners[i][n]).call.apply(l,[this,t,r[+o]].concat(_toConsumableArray(s)))}}},{key:"render",value:function(){var e=this;if(this.options.entity){var t=this.options.entity;this.options.sortField&&(t+=(-1===t.indexOf("?")?"?":"&")+"by=".concat(this.options.sortField,"&order=").concat(this.options.sortOrder||"ASC")),this.apiService.get(t).then(function(t){e.rows=t.rows,e.resize()})}else this.resize()}},{key:"resize",value:function(){var t=this.buildHTML(this.rows);document.getElementById(this.elementId).innerHTML=t.replace(/\n/g,""),this.options.onResize&&this.options.onResize()}}]),s}(),WebsyRouter=function(){function e(t){_classCallCheck(this,e);this.apiService=new WebsyDesigns.APIService(""),this.triggerIdList=[],this.viewIdList=[],this.previousPath="",this.previousView="",this.currentView="",this.currentViewMain="",this.currentParams={path:"",items:{}},this.previousParams={path:"",items:{}},this.controlPressed=!1,this.usesHTMLSuffix=-1!==window.location.pathname.indexOf(".htm"),window.addEventListener("popstate",this.onPopState.bind(this)),window.addEventListener("keydown",this.handleKeyDown.bind(this)),window.addEventListener("keyup",this.handleKeyUp.bind(this)),window.addEventListener("focus",this.handleFocus.bind(this)),window.addEventListener("click",this.handleClick.bind(this)),this.options=_extends({},{triggerClass:"websy-trigger",triggerToggleClass:"websy-trigger-toggle",viewClass:"websy-view",activeClass:"active",viewAttribute:"data-view",groupAttribute:"data-group",parentAttribute:"data-parent",defaultView:"",defaultGroup:"main",subscribers:{show:[],hide:[]},persistentParameters:!1,fieldValueSeparator:":",views:{}},t),this.options.onShow&&this.on("show",this.options.onShow),this.options.onHide&&this.on("hide",this.options.onHide)}return _createClass(e,[{key:"addGroup",value:function(e){var i=this;if(!this.groups[e]){var t=document.querySelectorAll(".".concat(this.options.viewClass,'[data-group="').concat(e,'"]'));t&&this.getClosestParent(t[0],function(t){i.groups[e]={activeView:"",views:[],parent:t.getAttribute("data-view")}})}}},{key:"getClosestParent",value:function(t,e){t&&t.parentElement&&(t.parentElement.attributes["data-view"]||"BODY"===t.tagName?e(t.parentElement):this.getClosestParent(t.parentElement,e))}},{key:"addUrlParams",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],i=!(2<arguments.length&&void 0!==arguments[2])||arguments[2];if(void 0!==t){!1===e&&(this.previousParams=_extends({},this.currentParams));var n={path:"",items:{}},s="";this.currentParams&&this.currentParams.items?(n.items=_extends({},this.currentParams.items,t),s=this.buildUrlPath(n.items)):0<Object.keys(t).length&&(n.items=_extends({},t),s=this.buildUrlPath(n.items)),n.path=s,!1===e&&(this.currentParams=n);var o=this.currentView;this.options.urlPrefix&&(o="/".concat(this.options.urlPrefix,"/").concat(o)),!0===e?this.navigate("".concat(o,"?").concat(s),"main",null,i):this.updateHistory(o,!i,!0)}}},{key:"removeUrlParams",value:function(){var e=this,t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],i=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=!(2<arguments.length&&void 0!==arguments[2])||arguments[2];this.previousParams=_extends({},this.currentParams);var s="";this.currentParams&&this.currentParams.items&&(t.forEach(function(t){delete e.currentParams.items[t]}),s=this.buildUrlPath(this.currentParams.items));var o=this.currentView;this.options.urlPrefix&&(o="/".concat(this.options.urlPrefix,"/").concat(o)),!0===i?this.navigate("".concat(o,"?").concat(s),"main",null,n):!1===n&&(this.currentParams={items:this.currentParams.items,path:s},this.updateHistory(o,!n,!0))}},{key:"removeAllUrlParams",value:function(){var t=0<arguments.length&&void 0!==arguments[0]&&arguments[0],e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1],i=this.currentView;this.options.urlPrefix&&(i="/".concat(this.options.urlPrefix,"/").concat(i)),this.currentParams={path:"",items:{}},!0===t?this.navigate("".concat(i),"main",null,e):this.updateHistory(i,!e,!0)}},{key:"buildUrlPath",value:function(t){var e=[];for(var i in t)e.push("".concat(i,"=").concat(t[i]));return e.join("&")}},{key:"checkChildGroups",value:function(t){this.groups||(this.groups={});var e=document.querySelector(".".concat(this.options.viewClass,'[data-view="').concat(t,'"]'));if(e)for(var i=e.querySelectorAll(".".concat(this.options.viewClass,"[data-group]")),n=0;n<i.length;n++){var s=i[n].getAttribute("data-group"),o=i[n].getAttribute("data-view");this.groups[s]||this.addGroup(s),i[n].classList.contains(this.options.activeClass)&&(this.groups[s].activeView=o),-1===this.groups[s].views.indexOf(o)&&this.groups[s].views.push(o)}}},{key:"formatParams",value:function(t){this.previousParams=_extends({},this.currentParams);var e={path:t,items:{}};if(void 0!==t){for(var i=t.split("&"),n=0;n<i.length;n++){var s=i[n].split("=");s[0]&&""!==s[0]&&s[1]&&""!==s[1]&&(e.items[s[0]]=s[1])}return this.currentParams=e}}},{key:"generateId",value:function(t){for(var e="abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789",i=[],n=0;n<6;n++){var s=Math.floor(62*Math.random());i.push(e[s])}return"".concat(t,"_").concat(i.join(""))}},{key:"getActiveViewsFromParent",value:function(t){var e=[];for(var i in this.checkChildGroups(t),this.groups)this.groups[i].parent===t&&this.groups[i].activeView&&e.push({view:this.groups[i].activeView,group:i});return e}},{key:"getParamValues",value:function(t){return this.currentParams&&this.currentParams.items&&this.currentParams.items[t]&&""!==this.currentParams.items[t]?this.currentParams.items[t].split("|").map(function(t){return decodeURI(t)}):[]}},{key:"getAPIQuery",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];if(this.currentParams&&this.currentParams.items){var e=[];for(var i in this.currentParams.items)-1===t.indexOf(i)&&e.push("".concat(i).concat(this.options.fieldValueSeparator).concat(this.currentParams.items[i]));return e}return[]}},{key:"handleClick",value:function(t){if(t.target.classList.contains(this.options.triggerClass)){var e=t.target.getAttribute(this.options.viewAttribute),i=t.target.getAttribute(this.options.groupAttribute);this.navigate(e,i||"main",t)}}},{key:"init",value:function(){var t,e="",i=this.formatParams(this.queryParams);""===this.currentPath&&""!==this.options.defaultView?e=this.options.defaultView:""!==this.currentPath&&(e=this.currentPath),t=e,void 0!==i&&(t+="?".concat(i.path)),this.navigate(t)}},{key:"handleFocus",value:function(t){this.controlPressed=!1}},{key:"handleKeyDown",value:function(t){switch(t.key){case"Control":case"Meta":this.controlPressed=!0}}},{key:"handleKeyUp",value:function(t){this.controlPressed=!1}},{key:"hideChildren",value:function(t,e){for(var i=this.getActiveViewsFromParent(t),n=0;n<i.length;n++)this.hideTriggerItems(i[n].view,e),this.hideViewItems(i[n].view,e),this.publish("hide",[i[n].view])}},{key:"hideView",value:function(t,e){"/"!==t&&""!==t||(t=this.options.defaultView),this.hideChildren(t,e),this.previousView===this.currentView&&e===this.options.defaultGroup||(this.hideTriggerItems(t,e),this.hideViewItems(t,e),this.publish("hide",[t]),this.options.views&&this.options.views[t]&&this.options.views[t].components.forEach(function(t){void 0!==t.instance&&t.instance.close&&t.instance.close()}))}},{key:"prepComponent",value:function(t,e){var i=document.getElementById("".concat(t,"_content"));if(i)return"";var n="\n <article id='".concat(t,"_content' class='websy-content-article'></article>\n <div id='").concat(t,"_loading' class='websy-loading-container'><div class='websy-ripple'><div></div><div></div></div></div>\n ");e&&e.help&&""!==e.help&&(n+="\n <Help not yet supported>\n "),e&&e.tooltip&&e.tooltip.value&&""!==e.tooltip.value&&(n+='\n <div class="websy-info '.concat(this.options.tooltip.classes.join(" ")||"",'" data-info="').concat(this.options.tooltip.value,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><title>ionicons-v5-e</title><path d="M256,56C145.72,56,56,145.72,56,256s89.72,200,200,200,200-89.72,200-200S366.28,56,256,56Zm0,82a26,26,0,1,1-26,26A26,26,0,0,1,256,138Zm48,226H216a16,16,0,0,1,0-32h28V244H228a16,16,0,0,1,0-32h32a16,16,0,0,1,16,16V332h28a16,16,0,0,1,0,32Z"/></svg>\n </div> \n ')),(i=document.getElementById(t))&&(i.innerHTML=n)}},{key:"showComponents",value:function(t){var e=this;this.options.views&&this.options.views[t]&&this.options.views[t].components&&this.options.views[t].components.forEach(function(t){void 0===t.instance?(e.prepComponent(t.elementId,t.options),t.instance=new t.Component(t.elementId,t.options)):t.instance.render&&t.instance.render()})}},{key:"preloadView",value:function(t,e){this.options.views[t].load?this.options.views[t].load(e):e&&e()}},{key:"initView",value:function(n){var s=this;return new Promise(function(i,t){s.options.views[n]||(s.options.views[n]={components:[]}),!0===s.options.views[n].ready?i():s.options.views[n].template?s.preloadView(n,function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=document.querySelector("[data-view='".concat(n,"'].").concat(s.options.viewClass));e?s.options.views[n].templateInstance=new WebsyDesigns.Template(e,{template:s.options.views[n].template,data:t,readyCallbackFn:function(){s.options.views[n].ready=!0,i()}}):(console.log("No view element found for '".concat(n,"' to render template")),s.options.views[n].ready=!0,i())}):!0!==s.options.views[n].ready&&s.options.views[n].load?s.preloadView(n,function(){0<arguments.length&&void 0!==arguments[0]&&arguments[0];s.options.views[n].ready=!0,i()}):(s.options.views[n].ready=!0,i())})}},{key:"showView",value:function(i,n,s){var o=this;"/"!==i&&""!==i||(i=this.options.defaultView||""),this.initView(i).then(function(){o.activateItem(i,o.options.triggerClass),o.activateItem(i,o.options.viewClass);for(var t=o.getActiveViewsFromParent(i),e=0;e<t.length;e++)o.activateItem(t[e].view,o.options.triggerClass),o.activateItem(t[e].view,o.options.viewClass),o.showComponents(t[e].view),t[e].show&&t[e].show.call(t[e]),o.publish("show",[t[e].view,null,s]);o.previousView!==o.currentView||"main"!==s?(o.showComponents(i),o.options.views[i].show&&o.options.views[i].show.call(o.options.views[i]),o.publish("show",[i,n,s])):o.previousView===o.currentView&&o.previousParams.path!==o.currentParams.path&&(o.showComponents(i),o.options.views[i].show&&o.options.views[i].show.call(o.options.views[i]),o.publish("show",[i,n,s]))})}},{key:"reloadCurrentView",value:function(){this.showView(this.currentView,this.currentParams,"main")}},{key:"navigate",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"main",i=2<arguments.length?arguments[2]:void 0,n=3<arguments.length?arguments[3]:void 0;if(0!==t.indexOf("http")){void 0===n&&(n=!1),this.popped=n;var s,o=!1,a=(t.indexOf("?"),t);t.split("?")[0]===this.options.defaultView&&!1===this.usesHTMLSuffix&&(t=t.replace(this.options.defaultView,"/")),!0===this.options.persistentParameters&&-1===t.indexOf("?")&&this.queryParams&&(t+="?".concat(this.queryParams)),!0===this.usesHTMLSuffix&&(-1===t.indexOf("?")?t="?view=".concat(t):-1===t.indexOf("view=")&&(t="&view=".concat(t)));var l=this.currentParams.path;if(!0!==this.controlPressed||e!==this.options.defaultGroup){if(-1!==t.indexOf("?")&&e===this.options.defaultGroup){var r=t.split("?");this.formatParams(r[1]),t=r[0]}else e===this.options.defaultGroup&&(this.previousParams=_extends({},this.currentParams),this.currentParams={path:"",items:{}});if(i&&(i.target&&i.target.classList.contains(this.options.triggerToggleClass)?o=!0:"boolean"==typeof i&&(o=i)),this.groups||(this.groups={}),this.groups[e]||this.addGroup(e),!0===o&&""!==this.groups[e].activeView&&(a=t===this.groups[e].activeView?"":t),this.previousView=this.currentView,this.previousPath=this.currentPath,this.groups[e]&&(!1===o&&(s=this.groups[e].activeView),this.previousPath=this.groups[e].activeView),e&&this.groups[e]&&e!==this.options.defaultGroup&&(this.groups[e].activeView=a),!1===o&&"main"===e&&(this.currentView=t),"main"===e&&(this.currentViewMain=t),"/"===this.currentView&&(this.currentView=this.options.defaultView),"/"===this.currentViewMain&&(this.currentViewMain=this.options.defaultView),!0===o?""!==this.previousPath&&this.hideView(this.previousPath,e):e===this.options.defaultGroup?this.hideView(this.previousView,e):this.hideView(this.previousPath,e),!0!==o||a!==s){if(!0===this.usesHTMLSuffix&&(t=window.location.pathname.split("/").pop()+t),(this.currentPath!==t||l!==this.currentParams.path)&&e===this.options.defaultGroup){var c=t;this.updateHistory(c,n)}!1===o?this.showView(a.split("?")[0],this.currentParams,e):a&&""!==a&&this.showView(a,null,e)}}else window.open("".concat(window.location.origin,"/").concat(t),"_blank")}else window.open(t,"_blank")}},{key:"on",value:function(t,e){this.options.subscribers[t].push(e)}},{key:"onPopState",value:function(t){var e;t.state?(t.state.url?e=t.state.url:-1!==(e=t.state.inputPath).indexOf(this.options.urlPrefix)&&(e=e.replace("/".concat(this.options.urlPrefix,"/"),"")),this.navigate(e,"main",null,!0)):this.navigate(this.options.defaultView||"/","main",null,!0)}},{key:"publish",value:function(t,e){this.options.subscribers[t].forEach(function(t){t.apply(null,e)})}},{key:"updateHistory",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],i=2<arguments.length&&void 0!==arguments[2]&&arguments[2];this.options.urlPrefix&&(t="/"===t?"":"/".concat(t),t="/".concat(this.options.urlPrefix).concat(t).replace(/\/\//g,"/")),this.currentParams&&this.currentParams.path||!0===i?t+="?".concat(this.currentParams.path):this.queryParams&&!0===this.options.persistentParameters&&(t+="?".concat(this.queryParams)),!1===e?history.pushState({inputPath:t},"unused",t):history.replaceState({inputPath:t},"unused",t)}},{key:"subscribe",value:function(t,e){this.options.subscribers[t].push(e)}},{key:"currentPath",get:function(){var t=window.location.pathname.split("/").pop();return-1!==t.indexOf(".htm")?"":this.options.urlPrefix&&t===this.options.urlPrefix?"":t}},{key:"queryParams",get:function(){return 1<window.location.search.length?window.location.search.substring(1):""}},{key:"hideTriggerItems",value:function(t,e){this.hideItems(this.options.triggerClass,e)}},{key:"hideViewItems",value:function(t,e){this.hideItems(t,e)}},{key:"hideItems",value:function(t,e){var i;if(i=_toConsumableArray(e&&"main"!==e?document.querySelectorAll("[".concat(this.options.groupAttribute,"='").concat(e,"']")):document.querySelectorAll("[".concat(this.options.viewAttribute,"='").concat(t,"']"))))for(var n=0;n<i.length;n++)i[n].classList.remove(this.options.activeClass)}},{key:"activateItem",value:function(t,e){var i=document.getElementsByClassName(e);if(i)for(var n=0;n<i.length;n++)if(i[n].attributes[this.options.viewAttribute]&&i[n].attributes[this.options.viewAttribute].value===t){i[n].classList.add(this.options.activeClass);break}}}]),e}(),Switch=function(){function n(t,e){_classCallCheck(this,n),this.elementId=t;this.options=_extends({},{enabled:!1},e);var i=document.getElementById(this.elementId);i&&(i.addEventListener("click",this.handleClick.bind(this)),this.render())}return _createClass(n,[{key:"data",get:function(){return this.options.enabled},set:function(t){this.options.enabled=t}},{key:"disable",value:function(){var t=!(this.options.enabled=!1)===this.options.enabled?"add":"remove";document.getElementById("".concat(this.elementId,"_switch")).classList[t]("enabled"),this.options.onToggle&&this.options.onToggle(this.options.enabled)}},{key:"enable",value:function(){var t=(this.options.enabled=!0)===this.options.enabled?"add":"remove";document.getElementById("".concat(this.elementId,"_switch")).classList[t]("enabled"),this.options.onToggle&&this.options.onToggle(this.options.enabled)}},{key:"handleClick",value:function(t){this.options.enabled=!this.options.enabled;var e=!0===this.options.enabled?"add":"remove";document.getElementById("".concat(this.elementId,"_switch")).classList[e]("enabled"),this.options.onToggle&&this.options.onToggle(this.options.enabled)}},{key:"on",value:function(t,e){this.options.subscribers[t]||(this.options.subscribers[t]=[]),this.options.subscribers[t].push(e)}},{key:"publish",value:function(t,e){this.options.subscribers[t].forEach(function(t){t.apply(null,e)})}},{key:"render",value:function(){var t=document.getElementById(this.elementId);t&&(t.innerHTML='\n <div class="websy-switch-container">\n <div class="websy-switch-label">'.concat(this.options.label||"",'</div>\n <div id="').concat(this.elementId,'_switch" class="websy-switch ').concat(!0===this.options.enabled?"enabled":"",'"></div> \n </div>\n '))}}]),n}(),WebsyTemplate=function(){function s(t,e){var i=this;_classCallCheck(this,s);if(this.options=_extends({},{listeners:{click:{}}},e),"object"===_typeof(t)?(t.id||(t.id=WebsyDesigns.Utils.createIdentity()),this.elementId=t.id):this.elementId=t,this.templateService=new WebsyDesigns.APIService(""),t){var n=document.getElementById(t);n&&n.addEventListener("click",this.handleClick.bind(this)),"object"===_typeof(e.template)&&e.template.url?this.templateService.get(e.template.url).then(function(t){i.options.template=t,i.render()}):this.render()}else console.log("No element Id provided for Websy Template")}return _createClass(s,[{key:"buildHTML",value:function(){var l=this,t="";if(this.options.template){var r=this.options.template;_toConsumableArray(r.matchAll(/<\s*if[^>]*>([\s\S]*?)<\s*\/\s*if>/g)).forEach(function(t){if(t[0]&&-1<t.index){var e=t[0].match(/(\scondition=["|']\w.+)["|']/g);if(e&&e[0]){var i=e[0].trim().replace("condition=","");'"'===i.split("")[0]?i=i.replace(/"/g,""):"'"===i.split("")[0]&&(i=i.replace(/'/g,""));var n=[],s=!0;-1!==i.indexOf("===")?n=i.split("==="):-1!==i.indexOf("!==")?(n=i.split("!=="),s=!1):-1!==i.indexOf("==")?n=i.split("=="):-1!==i.indexOf("!=")&&(n=i.split("!="),s=!1);var o=!0;if(2===n.length&&(isNaN(n[1])||(n[1]=+n[1]),"true"===n[1]&&(n[1]=!0),"false"===n[1]&&(n[1]=!1),"string"==typeof n[1]&&(-1!==n[1].indexOf('"')?n[1]=n[1].replace(/"/g,""):-1!==n[1].indexOf("'")&&(n[1]=n[1].replace(/'/g,""))),!0===s?void 0!==l.options.data[n[0]]&&l.options.data[n[0]]===n[1]?o=!1:n[0]===n[1]&&(o=!1):!1===s&&void 0!==l.options.data[n[0]]&&l.options.data[n[0]]!==n[1]&&(o=!1)),!0===o)r=r.replace(t[0],"");else{var a=t[0];a=a.replace("</if>","").replace(/<\s*if[^>]*>/g,""),r=r.replace(t[0],a)}}}});var e=_toConsumableArray(r.matchAll(/(\sdata-event=["|']\w.+)["|']/g));for(var i in e.forEach(function(t){t[0]&&-1<t.index&&(r=r.replace(t[0],"".concat(t[0])))}),this.options.data){var n=new RegExp("{".concat(i,"}"),"gm");n&&(r=r.replace(n,this.options.data[i]))}t=r}return t}},{key:"data",set:function(t){this.options.data=t,this.render()}},{key:"handleClick",value:function(t){t.target.classList.contains("clickable")&&this.handleEvent(t,"clickable","click")}},{key:"handleEvent",value:function(t,e,i){var n=t.target.getAttribute("data-event");if(n){n=n.split("(");var s,o=t.target.getAttribute("data-id"),a=this.options.data;if(t.target.classList.contains(e)&&this.options.listeners[i]&&this.options.listeners[i][n])t.stopPropagation(),(s=this.options.listeners[i][n]).call.apply(s,[this,t,a[+o]].concat([]))}}},{key:"render",value:function(){this.resize()}},{key:"resize",value:function(){var t=this.buildHTML();document.getElementById(this.elementId).innerHTML=t.replace(/\n/g,""),this.options.readyCallbackFn&&this.options.readyCallbackFn()}}]),s}(),WebsyUtils={createIdentity:function(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:6,e="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=0;n<t;n++)e+=i.charAt(Math.floor(Math.random()*i.length));return e},getElementPos:function(t){var e=t.getBoundingClientRect();window.pageXOffset||document.documentElement.scrollLeft,window.pageYOffset||document.documentElement.scrollTop;return{top:e.top,left:e.left,bottom:e.top+t.clientHeight,right:e.left+t.clientWidth,width:e.width,height:e.height}},getLightDark:function(t){var e,i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"#000000",n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"#ffffff",s=0,o=0,a=0,l=1;return-1!==t.indexOf("#")?(e=(e=t=t.replace("#","")).split(""),s=parseInt(e[0]+e[1],16),o=parseInt(e[2]+e[3],16),a=parseInt(e[4]+e[5],16)):-1!==t.toLowerCase().indexOf("rgb")&&(s=(e=(e=(e=t.replace(/rgba\(/gi,"").replace(/\)/gi,"")).replace(/rgb\(/gi,"")).split(","))[0],o=e[1],a=e[2],l=e[3]||1),186<(.299*s+.587*o+.114*a)/l?i:n},measureText:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"12px";isNaN(i)||(i="".concat(i,"px"));var n="<div style='display: inline-block; width: auto; font-size: ".concat(i,"'>").concat(t,"</div>"),s=document.createElement("div");s.style.position="absolute",s.style.visibility="hidden",s.style.transform="rotate(".concat(e,"deg)"),s.innerHTML=n,document.body.appendChild(s);var o=s.getBoundingClientRect();return s.remove(),o},parseUrlParams:function(){for(var t={},e=window.location.search.replace("?","").split("&"),i=0;i<e.length;i++){var n=e[i].split("=");t[n[0]]=n[1]}return t},buildUrlParams:function(t){var e=[];for(var i in t)e.push("".concat(i,"=").concat(t[i]));return e.join("&")},fromQlikDate:function(t){var e=new Date(Math.round(864e5*(t-25569)));return e.setTime(e.getTime()+6e4*e.getTimezoneOffset()),e},toReduced:function(t){var e,i,n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,s=2<arguments.length&&void 0!==arguments[2]&&arguments[2],o=3<arguments.length&&void 0!==arguments[3]&&arguments[3],a=4<arguments.length?arguments[4]:void 0,l=[{divider:1e18,suffix:"E"},{divider:1e15,suffix:"P"},{divider:1e12,suffix:"T"},{divider:1e9,suffix:"G"},{divider:1e6,suffix:"M"},{divider:1e3,suffix:"K"}],r="";if(a){var c=function(t){for(var e="",i=1,n=0;n<l.length;n++)if(t>=l[n].divider){i=l[n].divider,e=l[n].suffix;break}return{divider:i,suffix:e}}(a);i=c.divider,r=c.suffix}if(0===t)e=0;else if(a)e=t/i;else if(t<1e3&&t%1==0)e=t;else{e=t;for(var h=0;h<l.length;h++)if(t>=l[h].divider){e=t/l[h].divider,r=l[h].suffix;break}}if(!0===s&&(e*=100),0<e%1&&(n=1),e<1&&0===n&&(n=function(t){var e=0;if(0===(t=Math.abs(t)))return 0;for(;t<10;)e++,t*=10;return e}(e)),e=(+e).toFixed(n),!0===o)return e;return e.replace&&(e=e.replace(/\B(?=(\d{3})+(?!\d))/g,",")),"".concat(e).concat(r).concat(!0===s?"%":"")},toQlikDateNum:function(t){return Math.floor(t.getTime()/864e5+25570)},toQlikDate:function(t){return Math.floor(t.getTime()/864e5+25570)}},WebsyTable=function(){function a(t,e){var i=this;_classCallCheck(this,a);this.elementId=t,this.options=_extends({},{pageSize:20,paging:"scroll"},e),this.rowCount=0,this.busy=!1,this.tooltipTimeoutFn=null,this.data=[],this._isRendered=!1;var n=document.getElementById(this.elementId);if(n){var s="\n <div id='".concat(this.elementId,"_tableContainer' class='websy-vis-table ").concat("pages"===this.options.paging?"with-paging":"",'\'>\n \x3c!--<div class="download-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11h5l-9 10-9-10h5v-11h8v11zm1 11h-10v2h10v-2z"/></svg>\n </div>--\x3e\n <table>\n <thead id="').concat(this.elementId,'_head">\n </thead>\n <tbody id="').concat(this.elementId,'_body">\n </tbody>\n <tfoot id="').concat(this.elementId,'_foot">\n </tfoot>\n </table> \n <div id="').concat(this.elementId,"_errorContainer\" class='websy-vis-error-container'>\n <div>\n <div id=\"").concat(this.elementId,'_errorTitle"></div>\n <div id="').concat(this.elementId,'_errorMessage"></div>\n </div> \n </div>\n <div id="').concat(this.elementId,'_loadingContainer"></div>\n </div>\n ');"pages"===this.options.paging&&(s+='\n <div class="websy-table-paging-container">\n Show <div id="'.concat(this.elementId,'_pageSizeSelector" class="websy-vis-page-selector"></div> rows\n <ul id="').concat(this.elementId,'_pageList" class="websy-vis-page-list"></ul>\n </div>\n '));var o=[10,20,50,100,200];n.innerHTML=s,"pages"===this.options.paging&&(this.pageSizeSelector=new WebsyDesigns.Dropdown("".concat(this.elementId,"_pageSizeSelector"),{selectedItems:[o.indexOf(this.options.pageSize)],items:o.map(function(t){return{label:t.toString(),value:t}}),allowClear:!1,disableSearch:!0,onItemSelected:function(t){i.options.onChangePageSize&&i.options.onChangePageSize(t.value)}})),n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mouseout",this.handleMouseOut.bind(this)),n.addEventListener("mousemove",this.handleMouseMove.bind(this)),document.getElementById("".concat(this.elementId,"_tableContainer")).addEventListener("scroll",this.handleScroll.bind(this)),this.loadingDialog=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loadingContainer")),this.render()}else console.error("No element found with ID ".concat(this.elementId))}return _createClass(a,[{key:"isRendered",get:function(){return this._isRendered}},{key:"appendRows",value:function(t){var a=this;this._isRendered=!1,this.hideError();var e="";t&&(e+=t.map(function(t,o){return"<tr>"+t.map(function(t,e){if(!1!==a.options.columns[e].show){var i="";if(t.style&&(i+=t.style),a.options.columns[e].width&&(i+="width: ".concat(a.options.columns[e].width,"; ")),t.backgroundColor&&(i+="background-color: ".concat(t.backgroundColor,"; "),t.color||(i+="color: ".concat(WebsyDesigns.Utils.getLightDark(t.backgroundColor),"; "))),t.color&&(i+="color: ".concat(t.color,"; ")),!0===a.options.columns[e].showAsLink&&""!==t.value.trim())return"\n <td \n data-row-index='".concat(a.rowCount+o,"' \n data-col-index='").concat(e,"' \n class='").concat(a.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >\n <a href='").concat(t.value,"' target='").concat(!0===a.options.columns[e].openInNewTab?"_blank":"_self","'>").concat(t.displayText||a.options.columns[e].linkText||t.value,"</a>\n </td>\n ");if(!0!==a.options.columns[e].showAsNavigatorLink&&!0!==a.options.columns[e].showAsRouterLink||""===t.value.trim()){var n=t.value;!0===a.options.columns[e].showAsImage&&(t.value="\n <img src='".concat(t.value,"'>\n "));var s="\n <td \n ";return!a.options.columns[e].showAsImage&&t.value&&t.value.indexOf&&-1===t.value.indexOf("<svg")&&-1===t.value.indexOf("<img")&&(s+="\n data-info='".concat(n,"'\n ")),s+="\n data-row-index='".concat(a.rowCount+o,"' \n data-col-index='").concat(e,"' \n class='").concat(a.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.value,"</td>\n ")}return"\n <td \n data-view='".concat(t.value,"' \n data-row-index='").concat(a.rowCount+o,"' \n data-col-index='").concat(e,"' \n class='websy-trigger trigger-item ").concat(!0===a.options.columns[e].clickable?"clickable":""," ").concat(a.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.displayText||a.options.columns[e].linkText||t.value,"</td>\n ")}}).join("")+"</tr>"}).join(""),this.data=this.data.concat(t),this.rowCount=this.data.length),document.getElementById("".concat(this.elementId,"_body")).innerHTML+=e,this._isRendered=!0}},{key:"buildSearchIcon",value:function(t){return'\n <div>\n <svg\n class="tableSearchIcon"\n data-field="'.concat(t,'"\n xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"\n >\n <path d="M0 0h24v24H0z" fill="none"/>\n <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>\n </svg>\n </div>\n ')}},{key:"handleClick",value:function(t){if(t.target.classList.contains("download-button")&&window.viewManager.dataExportController.exportData(this.options.model),t.target.classList.contains("sortable-column")){var e=+t.target.getAttribute("data-index"),i=this.options.columns[e];this.options.onSort?this.options.onSort(t,i,e):this.internalSort(i,e)}else if(t.target.classList.contains("tableSearchIcon")){var n=t.target.getAttribute("data-field");window.viewManager.views.global.objects[1].instance.show(n,{x:t.pageX,y:t.pageY},function(){t.target.classList.remove("active")})}else if(t.target.classList.contains("websy-page-num")){var s=+t.target.getAttribute("data-page");this.options.onSetPage&&this.options.onSetPage(s)}else{var o=+t.target.getAttribute("data-col-index"),a=+t.target.getAttribute("data-row-index");this.options.onClick&&this.options.onClick(t,{cell:this.data[a][o],row:this.data[a],column:this.options.columns[o],colIndex:o,rowIndex:a})}}},{key:"handleMouseMove",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn)),"TD"===t.target.tagName&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.classList.add("websy-delayed-info")},500))}},{key:"handleMouseOut",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn))}},{key:"handleScroll",value:function(t){this.options.onScroll&&"scroll"===this.options.paging&&this.options.onScroll(t)}},{key:"hideError",value:function(){var t=document.getElementById("".concat(this.elementId,"_errorContainer"));t&&t.classList.remove("active")}},{key:"hideLoading",value:function(){this.loadingDialog&&this.loadingDialog.hide()}},{key:"internalSort",value:function(t,i){if(this.options.columns.forEach(function(t,e){t.activeSort=e===i}),t.sortFunction)this.data=t.sortFunction(this.data,t);else{var n="value",s="asc"===t.sort?"desc":"asc";t.sort=s;var o=t.sortType||"alphanumeric";t.sortProp&&(n=t.sortProp),this.data.sort(function(t,e){switch(o){case"numeric":return"asc"===s?t[i][n]-e[i][n]:e[i][n]-t[i][n];default:return"asc"===s?t[i][n]>e[i][n]?1:-1:t[i][n]<e[i][n]?1:-1}})}this.render(this.data)}},{key:"render",value:function(t){var n=this;if(this._isRendered=!1,this.options.columns){if(this.hideError(),this.data=[],this.rowCount=0,!(document.getElementById("".concat(this.elementId,"_body")).innerHTML="")===this.options.allowDownload){var e=document.getElementById(this.elementId);e?e.classList.add("allow-download"):e.classList.remove("allow-download")}var i="<tr>"+this.options.columns.map(function(t,e){if(!1!==t.show){var i="";return t.style&&(i+=t.style),t.width&&(i+="width: ".concat(t.width||"auto",";")),'\n <th style="'.concat(i,'">\n <div class ="tableHeader">\n <div class="leftSection">\n <div\n class="tableHeaderField ').concat(-1!==["asc","desc"].indexOf(t.sort)?"sortable-column":"",'"\n data-index="').concat(e,'" \n data-sort="').concat(t.sort,'" \n >\n ').concat(t.name,'\n </div>\n </div>\n <div class="').concat(t.activeSort?t.sort+" sortOrder":"",'"></div>\n \x3c!--').concat(!0===t.searchable?n.buildSearchIcon(t.qGroupFieldDefs[0]):"","--\x3e\n </div>\n </th>\n ")}}).join("")+"</tr>";if(document.getElementById("".concat(this.elementId,"_head")).innerHTML=i,"pages"===this.options.paging){var s=document.getElementById("".concat(this.elementId,"_pageList"));if(s){var o=new Array(this.options.pageCount).fill("").map(function(t,e){return'<li data-page="'.concat(e,'" class="websy-page-num ').concat(n.options.pageNum===e?"active":"",'">').concat(e+1,"</li>")}),a=0;8<this.options.pageCount&&(a=Math.max(0,this.options.pageNum-4),o=o.splice(a,10),0<a?o.splice(0,0,'<li>Page&nbsp;</li><li data-page="0" class="websy-page-num">First</li><li>...</li>'):o.splice(0,0,"<li>Page&nbsp;</li>"),this.options.pageNum<this.options.pageCount-1&&(o.push("<li>...</li>"),o.push('<li data-page="'.concat(this.options.pageCount-1,'" class="websy-page-num">Last</li>')))),s.innerHTML=o.join("")}}t&&this.appendRows(t)}}},{key:"showError",value:function(t){var e=document.getElementById("".concat(this.elementId,"_errorContainer"));if(e&&e.classList.add("active"),t.title){var i=document.getElementById("".concat(this.elementId,"_errorTitle"));i&&(i.innerHTML=t.title)}if(t.message){var n=document.getElementById("".concat(this.elementId,"_errorTitle"));n&&(n.innerHTML=t.message)}this._isRendered=!0}},{key:"showLoading",value:function(t){this.loadingDialog&&this.loadingDialog.show(t)}}]),a}(),WebsyTable2=function(){function a(t,e){var i=this;_classCallCheck(this,a);this.elementId=t,this.options=_extends({},{pageSize:20,paging:"scroll",cellSize:35,virtualScroll:!1,leftColumns:0},e),this.rowCount=0,this.busy=!1,this.tooltipTimeoutFn=null,this.data=[];var n=document.getElementById(this.elementId);if(n){var s="\n <div id='".concat(this.elementId,"_tableContainer' class='websy-vis-table ").concat("pages"===this.options.paging?"with-paging":""," ").concat(!0===this.options.virtualScroll?"with-virtual-scroll":"",'\'>\n \x3c!--<div class="download-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11h5l-9 10-9-10h5v-11h8v11zm1 11h-10v2h10v-2z"/></svg>\n </div>--\x3e\n <table id="').concat(this.elementId,'_table"> \n <thead id="').concat(this.elementId,'_head">\n </thead>\n <tbody id="').concat(this.elementId,'_body">\n </tbody>\n <tfoot id="').concat(this.elementId,'_foot">\n </tfoot>\n </table> \n <div id="').concat(this.elementId,"_errorContainer\" class='websy-vis-error-container'>\n <div>\n <div id=\"").concat(this.elementId,'_errorTitle"></div>\n <div id="').concat(this.elementId,'_errorMessage"></div>\n </div> \n </div>\n <div id="').concat(this.elementId,'_vScrollContainer" class="websy-v-scroll-container">\n <div id="').concat(this.elementId,'_vScrollHandle" class="websy-scroll-handle websy-scroll-handle-y"></div>\n </div>\n <div id="').concat(this.elementId,'_hScrollContainer" class="websy-h-scroll-container">\n <div id="').concat(this.elementId,'_hScrollHandle" class="websy-scroll-handle websy-scroll-handle-x"></div>\n </div>\n <div id="').concat(this.elementId,'_dropdownContainer"></div>\n <div id="').concat(this.elementId,'_loadingContainer"></div>\n </div>\n ');"pages"===this.options.paging&&(s+='\n <div class="websy-table-paging-container">\n Show <div id="'.concat(this.elementId,'_pageSizeSelector" class="websy-vis-page-selector"></div> rows\n <ul id="').concat(this.elementId,'_pageList" class="websy-vis-page-list"></ul>\n </div>\n '));var o=[10,20,50,100,200];n.innerHTML=s,"pages"===this.options.paging&&(this.pageSizeSelector=new WebsyDesigns.Dropdown("".concat(this.elementId,"_pageSizeSelector"),{selectedItems:[o.indexOf(this.options.pageSize)],items:o.map(function(t){return{label:t.toString(),value:t}}),allowClear:!1,disableSearch:!0,onItemSelected:function(t){i.options.onChangePageSize&&i.options.onChangePageSize(t.value)}})),n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mouseout",this.handleMouseOut.bind(this)),n.addEventListener("mousemove",this.handleMouseMove.bind(this)),n.addEventListener("mousedown",this.handleMouseDown.bind(this)),n.addEventListener("mouseup",this.handleMouseUp.bind(this)),document.addEventListener("mouseup",this.handleGlobalMouseUp.bind(this)),document.getElementById("".concat(this.elementId,"_tableContainer")).addEventListener("scroll",this.handleScroll.bind(this)),this.loadingDialog=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loadingContainer")),this.render()}else console.error("No element found with ID ".concat(this.elementId))}return _createClass(a,[{key:"appendRows",value:function(t){var o=this;this.hideError();var e=document.getElementById("".concat(this.elementId,"_body")),i="";if(t&&(i+=t.map(function(t,s){return"<tr>"+t.map(function(t,e){if(!1!==o.options.columns[e].show){var i="height: ".concat(o.options.cellSize,"px; line-height: ").concat(o.options.cellSize,"px;");if(t.style&&(i+=t.style),o.options.columns[e].width&&(i+="width: ".concat(o.options.columns[e].width,"; ")),t.backgroundColor&&(i+="background-color: ".concat(t.backgroundColor,"; "),t.color||(i+="color: ".concat(WebsyDesigns.Utils.getLightDark(t.backgroundColor),"; "))),t.color&&(i+="color: ".concat(t.color,"; ")),!0===o.options.columns[e].showAsLink&&""!==t.value.trim())return"\n <td \n data-row-index='".concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >\n <a href='").concat(t.value,"' target='").concat(!0===o.options.columns[e].openInNewTab?"_blank":"_self","'>").concat(t.displayText||o.options.columns[e].linkText||t.value,"</a>\n </td>\n ");if(!0!==o.options.columns[e].showAsNavigatorLink&&!0!==o.options.columns[e].showAsRouterLink||""===t.value.trim()){var n=t.value;return!0===o.options.columns[e].showAsImage&&(t.value="\n <img src='".concat(t.value,"'>\n ")),"\n <td \n data-info='".concat(n,"' \n data-row-index='").concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.value,"</td>\n ")}return"\n <td \n data-view='".concat(t.value,"' \n data-row-index='").concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='websy-trigger trigger-item ").concat(!0===o.options.columns[e].clickable?"clickable":""," ").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.displayText||o.options.columns[e].linkText||t.value,"</td>\n ")}}).join("")+"</tr>"}).join(""),this.data=this.data.concat(t),this.rowCount=this.data.length),e.innerHTML+=i,!0===this.options.virtualScroll){if("pages"!==this.options.paging){var n=document.getElementById("".concat(this.elementId,"_head"));document.getElementById("".concat(this.elementId,"_vScrollContainer")).style.top="".concat(n.clientHeight,"px")}for(var s=document.getElementById("".concat(this.elementId,"_hScrollContainer")),a=0,l=e.querySelectorAll("tr:first-of-type td"),r=0;r<this.options.leftColumns;r++)a+=l[r].offsetWidth||l[r].clientWidth;s.style.left="".concat(a,"px")}}},{key:"buildSearchIcon",value:function(t){return'\n <div class="websy-table-search-icon" data-col-index="'.concat(t,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><title>ionicons-v5-f</title><path d="M221.09,64A157.09,157.09,0,1,0,378.18,221.09,157.1,157.1,0,0,0,221.09,64Z" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/><line x1="338.29" y1="338.29" x2="448" y2="448" style="fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"/></svg>\n </div>\n ')}},{key:"handleClick",value:function(t){if(t.target.classList.contains("download-button")&&window.viewManager.dataExportController.exportData(this.options.model),t.target.classList.contains("sortable-column")){var e=+t.target.getAttribute("data-index"),i=+t.target.getAttribute("data-sort-index"),n=this.options.columns[e];this.options.onSort?this.options.onSort(t,n,e,i):this.internalSort(n,e)}else if(t.target.classList.contains("websy-table-search-icon")){var s=+t.target.getAttribute("data-col-index");this.options.columns[s].onSearch&&this.options.columns[s].onSearch(t,this.options.columns[s])}else if(t.target.classList.contains("clickable")){var o=+t.target.getAttribute("data-col-index"),a=+t.target.getAttribute("data-row-index");this.options.onClick&&this.options.onClick(t,this.data[a][o],this.data[a],this.options.columns[o])}else if(t.target.classList.contains("websy-page-num")){var l=+t.target.getAttribute("data-page");this.options.onSetPage&&this.options.onSetPage(l)}else if(t.target.classList.contains("websy-h-scroll-container")){console.log("scroll handle clicked",t);var r=t.clientX,c=t.target.getBoundingClientRect().left,h=document.getElementById("".concat(this.elementId,"_hScrollHandle")),d=r-c-h.clientWidth/2;d=Math.max(0,Math.min(d,t.target.clientWidth-h.clientWidth)),h.style.left="".concat(d,"px"),this.options.onScrollX&&this.options.onScrollX(d)}}},{key:"handleMouseDown",value:function(t){t.target.classList.contains("websy-scroll-handle")&&(this.scrolling=!0,document.getElementById(this.elementId).classList.add("scrolling"));if(t.target.classList.contains("websy-scroll-handle-x")){var e=document.getElementById("".concat(this.elementId,"_hScrollHandle"));this.handleXStart=e.offsetLeft,this.scrollXStart=t.clientX,this.scrollDirection="X"}}},{key:"handleGlobalMouseUp",value:function(t){this.scrolling=!1;var e=document.getElementById(this.elementId);e&&e.classList.remove("scrolling")}},{key:"handleMouseUp",value:function(t){this.scrolling=!1,document.getElementById(this.elementId).classList.remove("scrolling")}},{key:"handleMouseMove",value:function(t){if(this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn)),"TD"===t.target.tagName&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.classList.add("websy-delayed-info")},500)),!0===this.scrolling&&!0===this.options.virtualScroll){document.getElementById("".concat(this.elementId,"_tableContainer"));if("X"===this.scrollDirection){var e=document.getElementById("".concat(this.elementId,"_hScrollHandle")),i=0;i=this.handleXStart+(t.clientX-this.scrollXStart)<this.columnParameters.scrollableWidth-e.offsetWidth?(e.style.left="".concat(this.handleXStart+(t.clientX-this.scrollXStart),"px"),this.handleXStart+(t.clientX-this.scrollXStart)):this.columnParameters.scrollableWidth-e.offsetWidth,this.handleXStart+(t.clientX-this.scrollXStart)<0&&(i=e.style.left=0),this.options.onScrollX&&this.options.onScrollX(i)}}}},{key:"handleMouseOut",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn))}},{key:"handleScroll",value:function(t){this.options.onScroll&&"scroll"===this.options.paging&&this.options.onScroll(t)}},{key:"hideError",value:function(){var t=document.getElementById("".concat(this.elementId,"_tableContainer"));t&&t.classList.remove("has-error"),document.getElementById("".concat(this.elementId,"_table")).classList.remove("hidden");var e=document.getElementById("".concat(this.elementId,"_errorContainer"));e&&e.classList.remove("active")}},{key:"hideLoading",value:function(){this.options.onLoading?this.options.onLoading(!1):this.loadingDialog.hide()}},{key:"internalSort",value:function(t,i){if(this.options.columns.forEach(function(t,e){t.activeSort=e===i}),t.sortFunction)this.data=t.sortFunction(this.data,t);else{var n="value",s="asc"===t.sort?"desc":"asc";t.sort=s;var o=t.sortType||"alphanumeric";t.sortProp&&(n=t.sortProp),this.data.sort(function(t,e){switch(o){case"numeric":return"asc"===s?t[i][n]-e[i][n]:e[i][n]-t[i][n];default:return"asc"===s?t[i][n]>e[i][n]?1:-1:t[i][n]<e[i][n]?1:-1}})}this.render(this.data)}},{key:"render",value:function(t){var n=this;if(this.options.columns){if(this.hideError(),this.data=[],this.rowCount=0,!(document.getElementById("".concat(this.elementId,"_body")).innerHTML="")===this.options.allowDownload){var e=document.getElementById(this.elementId);e?e.classList.add("allow-download"):e.classList.remove("allow-download")}var i="<tr>"+this.options.columns.map(function(t,e){if(!1!==t.show){var i="";return t.style&&(i+=t.style),t.width&&(i+="width: ".concat(t.width||"auto","; ")),'\n <th style="'.concat(i,'">\n <div class ="tableHeader">\n <div class="leftSection">\n <div\n class="tableHeaderField ').concat(-1!==["asc","desc"].indexOf(t.sort)?"sortable-column":"",'"\n data-sort-index="').concat(t.sortIndex||e,'"\n data-index="').concat(e,'"\n data-sort="').concat(t.sort,'"\n style="').concat(t.style||"",'" \n >\n ').concat(t.name,'\n </div>\n </div>\n <div class="').concat(t.activeSort?t.sort+" sortOrder":"",'"></div>\n ').concat(!0===t.searchable?n.buildSearchIcon(e):"","\n </div>\n </th>\n ")}}).join("")+"</tr>";document.getElementById("".concat(this.elementId,"_head")).innerHTML=i;var s=document.getElementById("".concat(this.elementId,"_dropdownContainer"));if(""===s.innerHTML){var o="";this.options.columns.forEach(function(t,e){t.searchable&&t.searchField&&(o+='\n <div id="'.concat(n.elementId,"_columnSearch_").concat(e,'" class="websy-modal-dropdown"></div>\n '))}),s.innerHTML=o}if("pages"===this.options.paging){var a=document.getElementById("".concat(this.elementId,"_pageList"));if(a){var l=new Array(this.options.pageCount).fill("").map(function(t,e){return'<li data-page="'.concat(e,'" class="websy-page-num ').concat(n.options.pageNum===e?"active":"",'">').concat(e+1,"</li>")}),r=0;8<this.options.pageCount&&(r=Math.max(0,this.options.pageNum-4),l=l.splice(r,10),0<r?l.splice(0,0,'<li>Page&nbsp;</li><li data-page="0" class="websy-page-num">First</li><li>...</li>'):l.splice(0,0,"<li>Page&nbsp;</li>"),this.options.pageNum<this.options.pageCount-1&&(l.push("<li>...</li>"),l.push('<li data-page="'.concat(this.options.pageCount-1,'" class="websy-page-num">Last</li>')))),a.innerHTML=l.join("")}}t&&this.appendRows(t)}}},{key:"showError",value:function(t){var e=document.getElementById("".concat(this.elementId,"_tableContainer"));e&&e.classList.add("has-error"),document.getElementById("".concat(this.elementId,"_table")).classList.add("hidden");var i=document.getElementById("".concat(this.elementId,"_errorContainer"));if(i&&i.classList.add("active"),t.title){var n=document.getElementById("".concat(this.elementId,"_errorTitle"));n&&(n.innerHTML=t.title)}if(t.message){var s=document.getElementById("".concat(this.elementId,"_errorMessage"));s&&(s.innerHTML=t.message)}}},{key:"setHorizontalScroll",value:function(t){var e=document.getElementById("".concat(this.elementId,"_hScrollHandle"));t.width&&(e.style.width="".concat(t.width,"px"))}},{key:"setWidth",value:function(t){var e=document.getElementById("".concat(this.elementId,"_table"));e&&(e.style.width="".concat(t,"px"))}},{key:"showLoading",value:function(t){this.options.onLoading?this.options.onLoading(!0):this.loadingDialog.show(t)}},{key:"getColumnParameters",value:function(t){var i=this,e=document.getElementById("".concat(this.elementId,"_table"));e.style.tableLayout="auto",e.style.width="auto";var n=document.getElementById("".concat(this.elementId,"_head")),s=document.getElementById("".concat(this.elementId,"_body"));n.innerHTML='<tr style="visibility: hidden;">'+t.map(function(t,e){return'\n <th>\n <div class ="tableHeader">\n <div class="leftSection">\n <div\n class="tableHeaderField" \n >\n '.concat(t.value||"nbsp;","\n </div>\n </div> \n ").concat(!0===t.searchable?i.buildSearchIcon(e):"","\n </div>\n </th>\n ")}).join("")+"</tr>",s.innerHTML='<tr style="visibility: hidden;">'+t.map(function(t){return"\n <td \n style='height: ".concat(i.options.cellSize,"px; line-height: ").concat(i.options.cellSize,"px; padding: 10px 5px;'\n >").concat(t.value||"&nbsp;","</td>\n ")}).join("")+"</tr>";for(var o=s.querySelectorAll("tr:first-of-type td"),a=document.getElementById("".concat(this.elementId,"_tableContainer")),l=o[0].offsetHeight||o[0].clientHeight,r=[],c=0,h=0,d=0;d<o.length;d++)d<this.options.leftColumns&&(h+=t[d].width||o[d].offsetWidth||o[d].clientWidth),r.push(t[d].width||o[d].offsetWidth||o[d].clientWidth),c+=t[d].width||o[d].offsetWidth||o[d].clientWidth;if(c<(a.offsetWidth||a.clientWidth)-h)for(var p=this.options.leftColumns;p<r.length;p++)r[p]=((a.offsetWidth||a.clientWidth)-h)/(r.length-this.options.leftColumns);return this.columnParameters={cellHeight:l,cellWidths:r,availableHeight:a.offsetHeight||a.clientHeight,availableWidth:a.offsetWidth||a.clientWidth,nonScrollableWidth:h,scrollableWidth:(a.offsetWidth||a.clientWidth)-h},s.innerHTML="",e.style.tableLayout="",e.style.width="",this.columnParameters}}]),a}(),WebsyTable3=function(){function r(t,e){_classCallCheck(this,r),this.elementId=t;var i={virtualScroll:!1,showTotalsAbove:!0,minHandleSize:20,maxColWidth:"50%",allowPivoting:!1,searchIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><title>ionicons-v5-f</title><path d="M221.09,64A157.09,157.09,0,1,0,378.18,221.09,157.1,157.1,0,0,0,221.09,64Z" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/><line x1="338.29" y1="338.29" x2="448" y2="448" style="fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"/></svg>',plusIcon:WebsyDesigns.Icons.PlusFilled,minusIcon:WebsyDesigns.Icons.MinusFilled,disableInternalLoader:!1,disableTouch:!1,scrollWidth:10,touchScrollWidth:30,autoFitColumns:!0};if(this.options=_extends({},i,e),this._isRendered=!1,this.isTouchDevice="ontouchstart"in window||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints,!0===this.options.disableTouch&&(this.isTouchDevice=!1),this.sizes={},this.currentData=[],this.scrollDragging=!1,this.cellDragging=!1,this.vScrollRequired=!1,this.hScrollRequired=!1,this.pinnedColumns=0,this.startRow=0,this.endRow=0,this.startCol=0,this.endCol=0,this.mouseYStart=0,this.mouseYStart=0,t){var n=document.getElementById(this.elementId);if(n.style.position="relative",n){var s="\n <div id='".concat(this.elementId,"_tableContainer' style='width: calc(100% - ").concat(this.options.isTouchDevice?this.options.touchScrollWidth:this.options.scrollWidth,"px); height: calc(100% - ").concat(this.options.isTouchDevice?this.options.touchScrollWidth:this.options.scrollWidth,"px);' class='websy-vis-table-3 ").concat("pages"===this.options.paging?"with-paging":""," ").concat(!0===this.options.virtualScroll?"with-virtual-scroll":""," ").concat(!0===this.isTouchDevice&&!0===this.options.virtualScroll?"touch-device":"",'\'>\n \x3c!--<div class="download-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11h5l-9 10-9-10h5v-11h8v11zm1 11h-10v2h10v-2z"/></svg>\n </div>--\x3e\n <div id="').concat(this.elementId,'_tableInner" class="websy-table-inner-container">\n <table id="').concat(this.elementId,'_tableHeader" class="websy-table-header"></table>\n <table id="').concat(this.elementId,'_tableBody" class="websy-table-body"></table>\n <table id="').concat(this.elementId,'_tableFooter" class="websy-table-footer"></table>\n ');!0===this.isTouchDevice&&!0===this.options.virtualScroll&&(s+='\n <div id="'.concat(this.elementId,'_touchScroller" class="websy-table-touch-scroller"></div>\n ')),s+=' \n </div> \n <div id="'.concat(this.elementId,"_errorContainer\" class='websy-vis-error-container'>\n <div>\n <div id=\"").concat(this.elementId,'_errorTitle"></div>\n <div id="').concat(this.elementId,'_errorMessage"></div>\n </div> \n </div>\n <div id="').concat(this.elementId,'_dropdownContainerx" class="table-dropdown-container"></div>\n <div id="').concat(this.elementId,'_loadingContainer"></div>\n </div>\n <div id="').concat(this.elementId,'_vScrollContainer" class="websy-v-scroll-container" style="width: ').concat(this.options.isTouchDevice?this.options.touchScrollWidth:this.options.scrollWidth,'px;">\n <div id="').concat(this.elementId,'_vScrollHandle" class="websy-scroll-handle websy-scroll-handle-y"></div>\n </div>\n <div id="').concat(this.elementId,'_hScrollContainer" class="websy-h-scroll-container" style="height: ').concat(this.options.isTouchDevice?this.options.touchScrollWidth:this.options.scrollWidth,'px;">\n <div id="').concat(this.elementId,'_hScrollHandle" class="websy-scroll-handle websy-scroll-handle-x"></div>\n </div> \n '),"pages"===this.options.paging&&(s+='\n <div class="websy-table-paging-container">\n Show <div id="'.concat(this.elementId,'_pageSizeSelector" class="websy-vis-page-selector"></div> rows\n <ul id="').concat(this.elementId,'_pageList" class="websy-vis-page-list"></ul>\n </div>\n ')),n.innerHTML=s;var o=document.getElementById("".concat(this.elementId,"_dropdownContainer"));if(o)o.innerHTML="";else{var a=document.createElement("div");a.id="".concat(this.elementId,"_dropdownContainer"),a.classList.add("table-dropdown-container"),document.body.appendChild(a)}n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mousedown",this.handleMouseDown.bind(this)),n.addEventListener("touchstart",this.handleTouchStart.bind(this)),n.addEventListener("touchmove",this.handleTouchMove.bind(this)),window.addEventListener("touchend",this.handleTouchEnd.bind(this)),window.addEventListener("mousemove",this.handleMouseMove.bind(this)),window.addEventListener("mouseup",this.handleMouseUp.bind(this));var l=document.getElementById("".concat(this.elementId,"_tableBody"));l&&l.addEventListener("wheel",this.handleScrollWheel.bind(this)),this.loadingDialog=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loadingContainer")),this.render(this.options.data)}else console.error("No element found with ID ".concat(this.elementId))}else console.log("No element Id provided for Websy Table")}return _createClass(r,[{key:"isRendered",get:function(){return this._isRendered}},{key:"columns",set:function(t){this.options.columns=t,this.renderColumnHeaders()}},{key:"totals",set:function(t){this.options.totals=t,this.renderTotals()}},{key:"appendRows",value:function(t){this._isRendered=!1,this.hideError();var e=document.getElementById("".concat(this.elementId,"_tableBody"));e&&(!0===this.options.virtualScroll?(e.innerHTML=this.buildBodyHtml(t,!0),this.currentData=t):(e.querySelector("tbody")?e.querySelector("tbody").innerHTML+=this.buildBodyHtml(t,!0,!0):(e.innerHTML+=this.buildBodyHtml(t,!0),this._isRendered=!0),this.currentData=this.currentData.concat(t)))}},{key:"buildBodyHtml",value:function(){var l=this,t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],r=1<arguments.length&&void 0!==arguments[1]&&arguments[1];if(!this.options.columns)return"";if(0===t.length)return"";var c="",h=this.options.columns[this.options.columns.length-1].filter(function(t){return!1!==t.show});return!0===r&&(c+="<colgroup>",c+=h.map(function(t){return"\n <col\n style='width: ".concat(t.width||t.actualWidth,"px!important'\n ></col>\n ")}).join(""),c+="</colgroup>"),t.forEach(function(t,a){c+='<tr class="websy-table-row">',t.forEach(function(t,e){var i=t.level||e,n=t.index||e;if(void 0!==h[i]&&!1!==l.options.columns[l.options.columns.length-1][n].show){var s="",o="";!0!==r||1!=+t.colspan&&t.colspan||(o=s="width: ".concat(h[i].width||h[i].actualWidth,"px!important; ")),t.style&&(s+=t.style),!0!==r||1!=+t.colspan&&t.colspan||(s+="max-width: ".concat(h[i].width||h[i].actualWidth,"px!important;"),o+="max-width: ".concat(h[i].width||h[i].actualWidth,"px!important;")),t.backgroundColor&&(s+="background-color: ".concat(t.backgroundColor,"; "),t.color||(s+="color: ".concat(WebsyDesigns.Utils.getLightDark(t.backgroundColor),"; "))),t.color&&(s+="color: ".concat(t.color,"; ")),c+="<td \n class='websy-table-cell ".concat(i<l.pinnedColumns?"pinned":"unpinned"," ").concat((t.classes||[]).join(" ")," ").concat((h[i].classes||[]).join(" "),"'\n style='").concat(s,"'\n "),h[i].showAsImage||-1!==t.value.indexOf("<svg")||-1!==t.value.indexOf("<img")||(c+="\n data-info='".concat(t.value.replace?t.value.replace(/'/g,"`"):t.value,"'\n ")),c+="\n colspan='".concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n data-row-index='").concat(a,"'\n data-cell-index='").concat(e,"'\n data-col-index='").concat(n,"'\n "),c+="\n ><div \n style='".concat(o,"' \n class='websy-table-cell-content'\n data-row-index='").concat(a,"'\n data-cell-index='").concat(e,"'\n data-col-index='").concat(n,"'\n >"),!0===t.expandable&&(c+="<i \n data-row-index='".concat(a,"'\n data-col-index='").concat(t.level||e,"'\n class='websy-table-cell-expand'\n >").concat(l.options.plusIcon,"</i>")),!0===t.collapsable&&(c+="<i \n data-row-index='".concat(a,"'\n data-col-index='").concat(t.level||e,"'\n class='websy-table-cell-collapse'\n >").concat(l.options.minusIcon,"</i>")),!0===h[i].showAsLink&&""!==t.value.trim()&&(t.value='\n <a href="'.concat(encodeURI(t.value),"\" target='").concat(!0===h[i].openInNewTab?"_blank":"_self","'>").concat(t.displayText||h[i].linkText||t.value,"</a>\n ")),!0===h[i].showAsRouterLink&&""!==t.value.trim()&&(t.value='\n <a data-view="'.concat((t.link||t.value).replace(/'/g,"'"),"\" class='websy-trigger'>").concat(t.value,"</a>\n ")),!0===h[i].showAsImage&&(t.value='\n <img \n style="width: '.concat(h[i].imgWidth?h[i].imgWidth:"auto","; height: ").concat(h[i].imgHeight?h[i].imgHeight:"auto",";\" \n src='").concat(t.value,"'\n ").concat(h[i].errorImage?"onerror=\"this.src='"+h[i].errorImage+"'\"":"","\n />\n ")),c+="\n ".concat(t.value,"\n </div></td>")}}),c+="</tr>"}),c}},{key:"buildHeaderHtml",value:function(){var s=this,o=0<arguments.length&&void 0!==arguments[0]&&arguments[0];if(!this.options.columns)return"";var a="",l=this.options.columns[this.options.columns.length-1].filter(function(t){return!1!==t.show});!0===o&&(a+="<colgroup>",a+=l.map(function(t){return"\n <col\n style='width: ".concat(t.width||t.actualWidth,"px!important'\n ></col>\n ")}).join(""),a+="</colgroup>"),this.options.columns.forEach(function(t,e){a+='<tr class="websy-table-row websy-table-header-row '.concat(e!==s.options.columns.length-1?"websy-table-parent-header":"",'">'),t.filter(function(t){return!1!==t.show}).forEach(function(t,e){if(void 0!==l[e]&&!1!==l[e].show){var i="width: ".concat(l[e].width||l[e].actualWidth,"px!important; "),n="width: ".concat(l[e].width||l[e].actualWidth,"px!important; ");!0===o&&(i+="max-width: ".concat(l[e].width||l[e].actualWidth,"px!important;"),n+="max-width: ".concat(l[e].width||l[e].actualWidth,"px!important;")),1<t.colspan&&(n="width: 100%;"),t.style&&(i+=t.style),a+="<td \n class='websy-table-cell ".concat(e<s.pinnedColumns?"pinned":"unpinned"," ").concat((t.classes||[]).join(" "),"' \n style='").concat(i,"' \n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n "),a+=">\n <div \n style='".concat(n,"'\n data-col-index=\"").concat(e,"\"\n class='").concat(-1!==["asc","desc"].indexOf(t.sort)?"sortable-column":"","'\n >\n ").concat(t.name).concat(t.activeSort?s.buildSortIcon(t.sort,e):"").concat(!0===t.searchable?s.buildSearchIcon(t,e):"","\n </div>\n </td>")}}),a+="</tr>"});var n=document.getElementById("".concat(this.elementId,"_dropdownContainer"));return this.options.columns[this.options.columns.length-1].forEach(function(t,e){if(t.searchable&&!0===t.isExternalSearch&&!document.getElementById("".concat(s.elementId,"_columnSearch_").concat(t.dimId||e))){var i=document.createElement("div");i.id="".concat(s.elementId,"_columnSearch_").concat(t.dimId||e),i.className="websy-modal-dropdown",n.appendChild(i)}}),a}},{key:"buildSearchIcon",value:function(t,e){return'<div class="websy-table-search-icon" data-col-index="'.concat(e,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><path d="M221.09,64A157.09,157.09,0,1,0,378.18,221.09,157.1,157.1,0,0,0,221.09,64Z" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/><line x1="338.29" y1="338.29" x2="448" y2="448" style="fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"/></svg>\n </div>')}},{key:"buildSortIcon",value:function(t,e){return'<div class="websy-table-sort-icon '.concat(t,'" data-col-index="').concat(e,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 512 512"><path d="M98,190.06,237.78,353.18a24,24,0,0,0,36.44,0L414,190.06c13.34-15.57,2.28-39.62-18.22-39.62H116.18C95.68,150.44,84.62,174.49,98,190.06Z"/></svg>\n </div>')}},{key:"buildTotalHtml",value:function(){var i=this,n=0<arguments.length&&void 0!==arguments[0]&&arguments[0];if(!this.options.totals)return"";var s=this.options.columns[this.options.columns.length-1].filter(function(t){return!1!==t.show}),o='<tr class="websy-table-row websy-table-total-row">';return this.options.totals.forEach(function(t,e){void 0!==s[e]&&!1!==s[e].show&&(o+="<td \n class='websy-table-cell ".concat((t.classes||[]).join(" "),"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n "),!0===n&&(o+="\n style='width: ".concat(i.options.columns[i.options.columns.length-1][e].width||i.options.columns[i.options.columns.length-1][e].actualWidth,"px'\n width='").concat(t.width||t.actualWidth,"'\n ")),o+=" \n >\n ".concat(t.value,"\n </td>"))}),o+="</tr>"}},{key:"calculateSizes",value:function(){var n=this,t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],e=1<arguments.length?arguments[1]:void 0,i=2<arguments.length?arguments[2]:void 0,s=3<arguments.length?arguments[3]:void 0;this.totalRowCount=e,this.totalColumnCount=i,this.pinnedColumns=s;var o=document.getElementById(this.elementId),a=document.getElementById("".concat(this.elementId,"_tableContainer")),l=document.getElementById("".concat(this.elementId,"_tableHeader"));if(l){var r;l.style.width="auto",l.innerHTML=this.buildHeaderHtml(),this.sizes.outer=o.getBoundingClientRect(),this.sizes.table=a.getBoundingClientRect(),this.sizes.header=l.getBoundingClientRect(),"number"==typeof this.options.maxColWidth?r=this.options.maxColWidth:-1!==this.options.maxColWidth.indexOf("%")?r=this.sizes.table.width*(+this.options.maxColWidth.replace("%","")/100):-1!==this.options.maxColWidth.indexOf("px")&&(r=+this.options.maxColWidth.replace("px",""));var c=document.getElementById("".concat(this.elementId,"_tableBody"));c.style.width="auto",c.innerHTML=this.buildBodyHtml([t]);var h=document.getElementById("".concat(this.elementId,"_tableFooter"));h.innerHTML=this.buildTotalHtml(),this.sizes.total=h.getBoundingClientRect();var d=Array.from(a.querySelectorAll(".websy-table-row:not(.websy-table-parent-header)"));this.sizes.scrollableWidth=this.sizes.table.width;var p=0,u=this.options.columns[this.options.columns.length-1].filter(function(t){return!1!==t.show});if(d.forEach(function(t,e){Array.from(t.children).forEach(function(t,e){var i=t.getBoundingClientRect();n.sizes.cellHeight=i.height,u[e]&&(u[e].actualWidth||(u[e].potentialWidth=0,u[e].actualWidth=0),u[e].potentialWidth=Math.max(u[e].potentialWidth,i.width),u[e].actualWidth=Math.min(Math.max(u[e].actualWidth,i.width),r),u[e].cellHeight=i.height,e>=n.pinnedColumns&&(p=u[e].actualWidth))})}),this.sizes.totalWidth=u.reduce(function(t,e){return t+(e.width||e.actualWidth)},0),this.sizes.totalNonPinnedWidth=u.filter(function(t,e){return e>=n.pinnedColumns}).reduce(function(t,e){return t+(e.width||e.actualWidth)},0),this.sizes.pinnedWidth=this.sizes.totalWidth-this.sizes.totalNonPinnedWidth,this.sizes.totalWidth<this.sizes.table.width){var m=0,g=this.sizes.table.width-this.sizes.totalWidth;u.forEach(function(t){!(t.shouldGrow=!0)===n.options.autoFitColumns&&(t.shouldGrow=!1,t.potentialWidth>t.actualWidth&&(t.shouldGrow=!0,t.growDiff=t.potentialWidth-t.actualWidth,t.growDiffPerc=(t.potentialWidth-t.actualWidth)/g,m+=t.growDiff))});var v=(this.sizes.table.width-this.sizes.totalWidth)/u.filter(function(t){return t.shouldGrow}).length;this.sizes.totalWidth=0,this.sizes.totalNonPinnedWidth=0,u.forEach(function(t,e){!0===n.options.autoFitColumns?(t.width&&(t.width+=v),t.actualWidth+=v):0<m&&m<=g?t.shouldGrow&&(t.width&&(t.width+=t.growDiff),t.actualWidth+=t.growDiff):t.shouldGrow&&(t.width&&(t.width+=g*(t.growDiff/m)),t.actualWidth+=g*(t.growDiff/m)),n.sizes.totalWidth+=t.width||t.actualWidth,e>n.pinnedColumns&&(n.sizes.totalNonPinnedWidth+=t.width||t.actualWidth)})}if(this.sizes.pinnedWidth>this.sizes.table.width-p){this.sizes.totalWidth=0;for(var f=this.sizes.pinnedWidth-(this.sizes.table.width-p),y=this.sizes.pinnedWidth,b=this.sizes.pinnedWidth=0;b<u.length;b++){if(b<this.pinnedColumns){var w=u[b].actualWidth/y*f;u[b].actualWidth-=w,this.sizes.pinnedWidth+=u[b].actualWidth}this.sizes.totalWidth+=u[b].width||u[b].actualWidth}}if(this.sizes.scrollableWidth=this.sizes.table.width-this.sizes.pinnedWidth,l.innerHTML="",c.innerHTML="",h.innerHTML="",l.style.width="initial",c.style.width="initial",this.sizes.bodyHeight=this.sizes.table.height-(this.sizes.header.height+this.sizes.total.height),this.options.maxHeight){var x=((this.totalRowCount||9)+1)*this.sizes.cellHeight;this.sizes.bodyHeight=Math.min(x,this.options.maxHeight-(this.sizes.header.height+this.sizes.total.height))}return this.sizes.rowsToRender=Math.ceil(this.sizes.bodyHeight/this.sizes.cellHeight),this.sizes.rowsToRenderPrecise=this.sizes.bodyHeight/this.sizes.cellHeight,this.endRow=this.startRow+this.sizes.rowsToRender,this.startCol=0,this.endCol=this.options.columns[this.options.columns.length-1].length,this.sizes.rowsToRender<this.totalRowCount?this.vScrollRequired=!0:this.vScrollRequired=!1,this.sizes.totalWidth.toFixed(3)>this.sizes.table.width.toFixed(3)?this.hScrollRequired=!0:this.hScrollRequired=!1,this.options.allColumns=this.options.columns.map(function(t){return t}),this.sizes}}},{key:"createSample",value:function(s){var o=this,a=[];return this.options.columns[this.options.columns.length-1].forEach(function(t,e){if(t.maxLength)a.push({value:new Array(t.maxLength).fill("W").join("")});else if(s){for(var i="",n=0;n<Math.min(s.length,1e3);n++)s[n].length===o.options.columns[o.options.columns.length-1].length&&i.length<s[n][e].value.length&&(i=s[n][e].value);a.push({value:i})}else a.push({value:""})}),a}},{key:"handleClick",value:function(t){var e=+t.target.getAttribute("data-col-index"),i=+t.target.getAttribute("data-cell-index"),n=+t.target.getAttribute("data-row-index");if(t.target.classList.contains("websy-table-search-icon")&&this.options.columns[this.options.columns.length-1][e].onSearch&&this.options.columns[this.options.columns.length-1][e].onSearch(t,this.options.columns[this.options.columns.length-1][e]),t.target.classList.contains("websy-table-cell-collapse"))this.options.onCollapseCell&&this.options.onCollapseCell(t,+n,+e);else if(t.target.classList.contains("websy-table-cell-expand"))this.options.onExpandCell&&this.options.onExpandCell(t,+n,+e);else if(t.target.classList.contains("sortable-column")){var s=this.options.columns[this.options.columns.length-1][e];this.options.onSort?this.options.onSort(t,s,e):this.internalSort(s,e)}else(t.target.classList.contains("websy-table-cell-content")||t.target.classList.contains("websy-table-cell"))&&this.options.onCellSelect&&this.options.onCellSelect(t,{cellIndex:i,colIndex:e,rowIndex:n,cell:(this.currentData[n]||[])[i],column:(this.options.columns[this.options.columns.length-1]||[])[e]})}},{key:"handleMouseDown",value:function(t){if(!this.isTouchDevice)if(t.target.classList.contains("websy-scroll-handle-y")){this.scrollDragging=!0,this.scrollDirection="y";var e=document.getElementById("".concat(this.elementId,"_vScrollHandle"));this.handleYStart=e.offsetTop,this.mouseYStart=t.pageY}else if(t.target.classList.contains("websy-scroll-handle-x")){this.isTouchDevice&&t.preventDefault(),this.scrollDragging=!0,this.scrollDirection="x";var i=document.getElementById("".concat(this.elementId,"_hScrollHandle"));this.handleXStart=i.offsetLeft,this.mouseXStart=t.pageX}}},{key:"handleMouseMove",value:function(t){if(!0===this.scrollDragging)if(this.isTouchDevice&&t.preventDefault(),"y"===this.scrollDirection){var e=t.pageY-this.mouseYStart;this.scrollY(e)}else if("x"===this.scrollDirection){var i=t.pageX-this.mouseXStart;this.scrollX(i)}}},{key:"handleMouseUp",value:function(t){this.scrollDragging=!1,this.cellDragging=!1,this.handleYStart=null,this.mouseYStart=null,this.handleXStart=null,this.mouseXStart=null}},{key:"handleScrollWheel",value:function(t){if(!0===this.options.virtualScroll)if(t.preventDefault(),Math.abs(t.deltaX)>Math.abs(t.deltaY)){if(!1===this.hScrollRequired)return;var e=document.getElementById("".concat(this.elementId,"_hScrollHandle")),i=(document.getElementById("".concat(this.elementId,"_hScrollContainer")).getBoundingClientRect().width-e.getBoundingClientRect().width)/this.totalColumnCount;t.deltaX<0&&(i*=-1),this.scrollX(i)}else{if(!1===this.vScrollRequired)return;var n=document.getElementById("".concat(this.elementId,"_vScrollHandle")),s=(document.getElementById("".concat(this.elementId,"_vScrollContainer")).getBoundingClientRect().height-n.getBoundingClientRect().height)/this.totalRowCount;t.deltaY<0&&(s*=-1),this.scrollY(s)}else if(this.options.onNativeScroll){var o=document.getElementById("".concat(this.elementId,"_tableBody"));this.options.onNativeScroll(o.scrollTop)}}},{key:"handleTouchEnd",value:function(t){this.scrollDragging=!1,this.cellDragging=!1,this.handleYStart=null,this.mouseYStart=null,this.handleXStart=null,this.mouseXStart=null,void 0!==t.targetTouches&&(this.isTouchScrolling=!1)}},{key:"handleTouchMove",value:function(t){if(!0===this.isTouchScrolling&&(t.preventDefault(),t.stopPropagation(),void 0!==t.targetTouches&&0<t.targetTouches.length&&(t.deltaX=this.touchXStart-t.targetTouches[0].pageX,t.deltaY=this.touchYStart-t.targetTouches[0].pageY,50<Math.abs(t.deltaY)?(t.deltaX=0,this.handleScrollWheel(t)):50<Math.abs(t.deltaX)&&(t.deltaY=0,this.handleScrollWheel(t)))),!0===this.scrollDragging)if(t.preventDefault(),"y"===this.scrollDirection){var e=t.targetTouches[0].pageY-this.mouseYStart;this.scrollY(e)}else if("x"===this.scrollDirection){var i=t.targetTouches[0].pageX-this.mouseXStart;this.scrollX(i)}}},{key:"handleTouchStart",value:function(t){if(!t.target.classList.contains("websy-table-cell-expand")&&!t.target.classList.contains("websy-table-cell-collapse"))if(t.target.classList.contains("websy-table-touch-scroller")&&!0===this.options.virtualScroll&&(this.isTouchScrolling=!0,this.touchYStart=t.targetTouches[0].pageY,this.touchXStart=t.targetTouches[0].pageX),t.target.classList.contains("websy-scroll-handle-y")){this.scrollDragging=!0,this.scrollDirection="y";var e=document.getElementById("".concat(this.elementId,"_vScrollHandle"));this.handleYStart=e.offsetTop,this.mouseYStart=t.targetTouches[0].pageY}else if(t.target.classList.contains("websy-scroll-handle-x")){this.isTouchDevice&&t.preventDefault(),this.scrollDragging=!0,this.scrollDirection="x";var i=document.getElementById("".concat(this.elementId,"_hScrollHandle"));this.handleXStart=i.offsetLeft,this.mouseXStart=t.targetTouches[0].pageX}}},{key:"hideError",value:function(){var t=document.getElementById("".concat(this.elementId,"_tableContainer"));t&&t.classList.remove("has-error");var e=document.getElementById("".concat(this.elementId,"_tableInner"));e&&e.classList.remove("hidden");var i=document.getElementById("".concat(this.elementId,"_errorContainer"));i&&i.classList.remove("active")}},{key:"hideLoading",value:function(){this.loadingDialog.hide()}},{key:"perpetualScroll",value:function(){var i=this;if(!(300<this.touchEndTime-this.currentTouchtime))for(var t=this.touchEndTime-this.touchStartTime,e=this.currentClientY-this.mouseYStart,n=Math.abs(e*(1/(t/1e3))),s=1.5*t/1e3,o=Math.abs(Math.ceil(n/this.sizes.cellHeight)),a=o/s,l=0<e?-1:1,r=function(e){setTimeout(function(){var t=i.mouseYStart-i.currentClientY+i.sizes.cellHeight*(e+1)*l;t=Math.min(10,t),t=Math.max(-10,t),!0===i.isPerpetual&&(i.scrollY(Math.max(-5,Math.min(5,t))),i.scrollTimeout&&clearTimeout(i.scrollTimeout))},1e3/a*e)},c=0;c<o;c++)r(c)}},{key:"render",value:function(t){var e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];if(!this.options.columns)return console.log("No columns provided for table with ID ".concat(this.elementId)),void(this._isRendered=!0);if(0===this.options.columns.length)return console.log("No columns provided for table with ID ".concat(this.elementId)),void(this._isRendered=!0);if(this.currentData=[],!0===e){var i=this.createSample(t);this.calculateSizes(i,t.length,(t[0]||[]).length,0)}var n=document.getElementById("".concat(this.elementId,"_tableInner"));n&&(n.style.width="".concat(this.sizes.totalWidth,"px")),this.renderColumnHeaders(),this.renderTotals(),t&&this.appendRows(t);var s=document.getElementById("".concat(this.elementId,"_tableBody"));if(s){if(s.style.height="".concat(this.sizes.bodyHeight,"px"),!0===this.isTouchDevice){var o=document.getElementById("".concat(this.elementId,"_touchScroller"));o&&(o.style.top="".concat(this.sizes.header.height,"px"),o.style.height="calc(100% - ".concat(this.sizes.header.height+30,"px)"))}if(!0===this.options.virtualScroll){var a=document.getElementById("".concat(this.elementId,"_vScrollContainer")),l=document.getElementById("".concat(this.elementId,"_vScrollHandle"));if(!0===this.vScrollRequired){a.style.top="".concat(this.sizes.header.height+this.sizes.total.height,"px"),a.style.height="".concat(this.sizes.bodyHeight,"px"),!0===this.isTouchDevice&&(a.style.visibility="unset"),l.style.height=Math.max(this.options.minHandleSize,this.sizes.bodyHeight*(this.sizes.rowsToRenderPrecise/this.totalRowCount))+"px";var r=a.getBoundingClientRect().height-l.getBoundingClientRect().height;l.style.top=Math.round(this.startRow/(this.totalRowCount-this.sizes.rowsToRender)*r)+"px"}else l.style.height="0px";var c=document.getElementById("".concat(this.elementId,"_hScrollContainer")),h=document.getElementById("".concat(this.elementId,"_hScrollHandle"));!0===this.hScrollRequired?(c.style.right="".concat(this.isTouchDevice?this.options.touchScrollWidth:this.options.scrollWidth,"px"),c.style.width="".concat(this.sizes.scrollableWidth,"px"),h.style.width=Math.max(this.options.minHandleSize,this.sizes.scrollableWidth*(this.sizes.scrollableWidth/this.sizes.totalNonPinnedWidth))+"px",!0===this.isTouchDevice&&(c.style.visibility="unset")):h.style.width="0px"}}else this._isRendered=!0}},{key:"renderColumnHeaders",value:function(){var t=document.getElementById("".concat(this.elementId,"_tableHeader"));t&&(t.innerHTML=this.buildHeaderHtml(!0))}},{key:"renderTotals",value:function(){var t=document.getElementById("".concat(this.elementId,"_tableHeader")),e=this.buildTotalHtml(!0);if(!0===this.options.showTotalsAbove&&t)t.innerHTML+=e;else{var i=document.getElementById("".concat(this.elementId,"_tableFooter"));i&&(i.innerHTML=e)}}},{key:"resize",value:function(){}},{key:"showError",value:function(t){var e=document.getElementById("".concat(this.elementId,"_tableContainer"));e&&e.classList.add("has-error");var i=document.getElementById("".concat(this.elementId,"_errorContainer"));if(i&&i.classList.add("active"),t.title){var n=document.getElementById("".concat(this.elementId,"_errorTitle"));n&&(n.innerHTML=t.title)}if(t.message){var s=document.getElementById("".concat(this.elementId,"_errorMessage"));s&&(s.innerHTML=t.message)}}},{key:"scrollX",value:function(t){var e=document.getElementById("".concat(this.elementId,"_tableContainer"));if(e.classList.contains("scrolling")||e.classList.add("scrolling"),this.scrollTimeoutFn&&clearTimeout(this.scrollTimeoutFn),this.scrollTimeoutFn=setTimeout(function(){e.classList.remove("scrolling")},200),!1!==this.hScrollRequired){var i,n=document.getElementById("".concat(this.elementId,"_hScrollContainer")),s=document.getElementById("".concat(this.elementId,"_hScrollHandle"));i=void 0!==this.handleXStart&&null!==this.handleXStart?this.handleXStart+t:s.offsetLeft+t;var o=n.getBoundingClientRect().width-s.getBoundingClientRect().width;if(s.style.left=Math.min(o,Math.max(0,i))+"px",this.options.onScroll){var a=(this.sizes.totalNonPinnedWidth-this.sizes.scrollableWidth)*(Math.min(o,Math.max(0,i))/o),l=0;this.startCol=0,this.endCol=0;for(var r=this.pinnedColumns;r<this.options.allColumns[this.options.allColumns.length-1].length;r++)if(!1!==this.options.allColumns[this.options.allColumns.length-1][r].show&&a<(l+=this.options.allColumns[this.options.allColumns.length-1][r].actualWidth)){this.startCol=r;break}l=0;for(var c=this.startCol;c<this.options.allColumns[this.options.allColumns.length-1].length;c++)!1!==this.options.allColumns[this.options.allColumns.length-1][c].show&&(l+=this.options.allColumns[this.options.allColumns.length-1][c].actualWidth)<this.sizes.scrollableWidth&&(this.endCol=c);if(this.endCol<this.options.allColumns[this.options.allColumns.length-1].length-1&&(this.endCol+=1),this.endCol===this.options.allColumns[this.options.allColumns.length-1].length-1&&l>this.sizes.scrollableWidth&&0<a&&(this.startCol+=1),s.offsetWidth+s.offsetLeft>=n.offsetWidth-0){this.endCol=this.options.allColumns[this.options.allColumns.length-1].length-1,this.startCol=this.endCol+1;for(var h=0,d=this.endCol;-1<d;d--)!1!==this.options.allColumns[this.options.allColumns.length-1][d].show&&(h+=this.options.allColumns[this.options.allColumns.length-1][d].actualWidth)<this.sizes.scrollableWidth&&this.startCol--}this.endCol=Math.max(this.startCol,this.endCol),this.options.onScroll("y",this.startRow,this.endRow,this.startCol-this.pinnedColumns,this.endCol-this.pinnedColumns)}}}},{key:"scrollY",value:function(t){var e=document.getElementById("".concat(this.elementId,"_tableContainer"));if(!1!==this.vScrollRequired){e.classList.contains("scrolling")||e.classList.add("scrolling"),this.scrollTimeoutFn&&clearTimeout(this.scrollTimeoutFn),this.scrollTimeoutFn=setTimeout(function(){e.classList.remove("scrolling")},200);var i,n=document.getElementById("".concat(this.elementId,"_vScrollContainer")),s=document.getElementById("".concat(this.elementId,"_vScrollHandle"));i=void 0!==this.handleYStart&&null!==this.handleYStart?this.handleYStart+t:+s.style.top.replace("px","")+t;var o=n.getBoundingClientRect().height-s.getBoundingClientRect().height;s.style.top=Math.min(o,Math.max(0,i))+"px",this.options.onScroll&&(this.startRow=Math.min(this.totalRowCount-this.sizes.rowsToRender,Math.max(0,Math.round((this.totalRowCount-this.sizes.rowsToRender)*(i/o)))),this.endRow=this.startRow+this.sizes.rowsToRender,this.endRow===this.totalRowCount&&(this.startRow+=1),this.options.onScroll("y",this.startRow,this.endRow,Math.max(0,this.startCol-this.pinnedColumns),this.endCol-this.pinnedColumns))}}},{key:"showLoading",value:function(t){!0!==this.options.disableInternalLoader&&this.loadingDialog.show(t)}}]),r}(),WebsyChart=function(){function s(t,e){var a=this;_classCallCheck(this,s);if(this.elementId=t,this.options=_extends({},{margin:{top:20,left:3,bottom:3,right:3,axisBottom:0,axisLeft:0,axisRight:0,axisTop:0,legendBottom:0,legendLeft:0,legendRight:0,legendTop:0},axis:{},orientation:"vertical",colors:["#5e4fa2","#3288bd","#66c2a5","#abdda4","#e6f598","#fee08b","#fdae61","#f46d43","#d53e4f","#9e0142"],transitionDuration:650,curveStyle:"curveLinear",lineWidth:2,forceZero:!0,grouping:"grouped",groupPadding:3,fontSize:14,symbolSize:20,showTrackingLine:!0,showTooltip:!0,showLegend:!1,legendPosition:"bottom",tooltipWidth:200,brushHeight:50,minBandWidth:30,maxBandWidth:100,allowUnevenBands:!0,allowBrushing:!0,balancedMinMax:!1,onRendered:function(){}},e),this._isRendered=!1,this.leftAxis=null,this.rightAxis=null,this.topAxis=null,this.bottomAxis=null,this.renderedKeys={},this.brushedDomain=[],this.brushBarsInitialized={},this.brushLinesInitialized={},t){this.invertOverride=function(t,e){var i,n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],s="bottom";"horizontal"===a.options.orientation&&(s="left"),!0===n&&(s+="Brush"),s+="Axis";a.options.data[s.replace("Brush","").replace("Axis","")].bandWidth;for(var o=0;o<a.customBottomRange.length;o++)if(t>a.customBottomRange[o]){if(!a.customBottomRange[o+1]){i=o;break}if(t<a.customBottomRange[o+1]){i=o;break}}return i};var n=this;this.brushed=function(t){var e=n.options.margin.left+n.options.margin.axisLeft+(1-t.selection[0]/(n.plotWidth/(n.widthForCalc+n.totalBandPadding))),i=n.options.margin.top+n.options.margin.axisTop;"horizontal"===n.options.orientation&&(e=n.options.brushHeight+n.options.margin.left+n.options.margin.axisLeft,i=n.options.margin.top+n.options.margin.axisTop+(1-t.selection[0]/(n.plotHeight/(n.widthForCalc+n.totalBandPadding)))),n.plotArea&&n.plotArea.attr("transform","translate(".concat(e,", ").concat(i,")")),n.areaLayer&&n.areaLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),n.lineLayer&&n.lineLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),n.barLayer&&n.barLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),n.labelLayer&&n.labelLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),n.symbolLayer&&n.symbolLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),n.refLineLayer&&n.refLineLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),"horizontal"===n.options.orientation?n.leftAxisLayer&&n.leftAxisLayer.attr("transform","translate(".concat(n.options.brushHeight+n.options.margin.left+n.options.margin.axisLeft,", ").concat(i,")")):n.bottomAxisLayer&&n.bottomAxisLayer.attr("transform","translate(".concat(e,", ").concat(i+n.plotHeight,")"))};var i=document.getElementById(this.elementId);i?(i.classList.add("websy-chart"),"undefined"==typeof d3?console.error("d3 library has not been loaded"):(i.innerHTML="",this.svg=d3.select(i).append("svg"),this.legendArea=d3.select(i).append("div").attr("id","".concat(this.elementId,"_legend")).attr("class","websy-chart-legend"),this.legend=new WebsyDesigns.Legend("".concat(this.elementId,"_legend"),{}),this.errorContainer=d3.select(i).append("div").attr("id","".concat(this.elementId,"_errorContainer")).attr("class","websy-vis-error-container").html(' \n <div>\n <div id="'.concat(this.elementId,'_errorTitle"></div>\n <div id="').concat(this.elementId,'_errorMessage"></div>\n </div>\n ')),this.loadingContainer=d3.select(i).append("div").attr("id","".concat(this.elementId,"_loadingContainer")),this.loadingDialog=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loadingContainer")),this.prep())):console.error("No element found with ID ".concat(this.elementId))}else console.log("No element Id provided for Websy Chart")}return _createClass(s,[{key:"data",set:function(t){this.options.data=t,this.render()}},{key:"isRendered",get:function(){return this._isRendered}},{key:"close",value:function(){this.leftAxisLayer&&this.leftAxisLayer.selectAll("*").remove(),this.rightAxisLayer&&this.rightAxisLayer.selectAll("*").remove(),this.bottomAxisLayer&&this.bottomAxisLayer.selectAll("*").remove(),this.leftAxisLabel&&this.leftAxisLabel.selectAll("*").remove(),this.rightAxisLabel&&this.rightAxisLabel.selectAll("*").remove(),this.bottomAxisLabel&&this.bottomAxisLabel.selectAll("*").remove(),this.plotArea&&this.plotArea.selectAll("*").remove(),this.areaLayer&&this.areaLayer.selectAll("*").remove(),this.lineLayer&&this.lineLayer.selectAll("*").remove(),this.barLayer&&this.barLayer.selectAll("*").remove(),this.labelLayer&&this.labelLayer.selectAll("*").remove(),this.symbolLayer&&this.symbolLayer.selectAll("*").remove()}},{key:"createDomain",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],i=[],n="bottom";if("horizontal"===this.options.orientation&&(n="left"),0<this.brushedDomain.length&&t===n&&!1===e)i=_toConsumableArray(this.brushedDomain);else if(void 0!==this.options.data[t].min&&void 0!==this.options.data[t].max&&(i=[this.options.data[t].min,this.options.data[t].max],!0===this.options.forceZero&&(i=[Math.min(0,this.options.data[t].min),this.options.data[t].max])),this.options.data[t].data&&(i=this.options.data[t].data.map(function(t){return t.value})),"Time"===this.options.data[t].scale){var s=this.options.data[t].data[0].value,o=this.options.data[t].data[this.options.data[t].data.length-1].value;i=[s=this.parseX(s),o=this.parseX(o)]}return i}},{key:"createIdentity",value:function(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:10,e="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=0;n<t;n++)e+=i.charAt(Math.floor(Math.random()*i.length));return e}},{key:"handleEventMouseOut",value:function(t,e){this.trackingLineLayer.select(".tracking-line").attr("stroke-opacity",0),this.tooltip.hide(),this.options.onMouseOut&&this.options.onMouseOut()}},{key:"handleEventMouseMove",value:function(l,t){var r=this,c=d3.bisector(function(t){return r.parseX(t.x.value)}).left;if(!0===this.options.showTrackingLine&&d3.pointer(l)){var h,d="bottomAxis",p="bottom",u=d3.pointer(l)[0];"horizontal"===this.options.orientation&&(d="leftAxis",p="left",u=d3.pointer(l)[1]);var e="",m="",g=[];if(this[d].invert||(this[d].invert=this.invertOverride),void 0===(u=this[d].invert(u)))return this.tooltip.hide(),void(this.options.onMouseOut&&this.options.onMouseOut());var v=this[d].domain()[u];"horizontal"===this.options.orientation&&(v=_toConsumableArray(this[d].domain().reverse())[u]),this.options.data.series.forEach(function(e){if("Time"!==r.options.data[p].scale)h=r.customBottomRange[u]+(r.customBottomRange[u+1]-r.customBottomRange[u])/2,e.data.forEach(function(t){t.x.value===v&&(m||(m=t.x.value),t.y.color||(t.y.color=e.color),g.push(t))});else{var t=c(e.data,u,1),i=e.data[t-1],n=e.data[t];if("horizontal"===r.options.orientation&&(i=_toConsumableArray(e.data).reverse()[t-1],n=_toConsumableArray(e.data).reverse()[t]),i&&!n&&(h=r[d](r.parseX(i.x.value)),m=i.x.value,i.y.color||(i.y.color=e.color),g.push(i),void 0!==i.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(i.x.value))),n&&!i&&(h=r[d](r.parseX(n.x.value)),m=n.x.value,n.y.color||(n.y.color=e.color),g.push(n),void 0!==n.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(n.x.value))),i&&n){var s=r[d](r.parseX(i.x.value)),o=r[d](r.parseX(n.x.value)),a=Math.abs(s-o)/2;d3.pointer(l)[0]-s>=a?(h=o,m=n.x.value,void 0!==n.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(n.x.value)),n.y.color||(n.y.color=e.color),g.push(n)):(h=s,m=i.x.value,void 0!==n.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(n.x.value)),i.y.color||(i.y.color=e.color),g.push(i))}}}),e=" \n <ul>\n ",e+=g.map(function(t){return"\n <li>\n <i style='background-color: ".concat(t.y.color,";'></i>\n ").concat(t.y.tooltipLabel||"","<span>: ").concat(t.y.tooltipValue||t.value,"</span>\n </li>\n ")}).join(""),this.options.onMouseOver&&this.options.onMouseOver(g),e+="</ul>";var i={width:this.options.tooltipWidth,left:0,top:0,onLeft:h>this.plotWidth/2};if(h>this.plotWidth/2?(i.left=h-this.options.tooltipWidth-15,"Time"!==this.options.data[p].scale&&(i.left+=10)):(i.left=h+this.options.margin.left+this.options.margin.axisLeft+15,"Time"!==this.options.data[p].scale&&(i.left+=this.options.data[d.replace("Axis","")].bandWidth/2)),i.top=this.options.margin.top+this.options.margin.axisTop,"horizontal"===this.options.orientation){delete i.onLeft;var n=0;"Time"!==this.options.data[p].scale&&(n=this.options.data[d.replace("Axis","")].bandWidth/2),i={width:this.options.tooltipWidth,left:this.options.margin.left+this.options.margin.axisLeft+this.plotWidth-this.options.tooltipWidth,onTop:h>this.plotHeight/2,positioning:"vertical"},h>this.plotHeight/2?i.bottom=h+this.options.margin.top+this.options.margin.axisTop:i.top=h+this.options.margin.top+this.options.margin.axisTop+15+n}if(this.tooltip.setHeight(this.plotHeight),isNaN(i.left))return this.tooltip.hide(),void(this.options.onMouseOut&&this.options.onMouseOut());this.options.showTooltip&&this.tooltip.show(m,e,i),"Time"!==this.options.data[p].scale&&0===this.customBottomRange.length&&(h+=this.options.data[d.replace("Axis","")].bandWidth/2);var s=h,o=h,a=0,f=this.plotHeight;"horizontal"===this.options.orientation&&(s=0,o=this.plotWidth,f=a=h),this.trackingLineLayer.select(".tracking-line").attr("x1",s).attr("x2",o).attr("y1",a).attr("y2",f).attr("stroke-width",1).attr("stroke-dasharray","4 2").attr("stroke","#cccccc").attr("stroke-opacity",1)}}},{key:"prep",value:function(){this.defs=this.svg.append("defs"),this.clip=this.defs.append("clipPath").attr("id","".concat(this.elementId,"_clip")).append("rect"),this.xAxisClip=this.defs.append("clipPath").attr("id","".concat(this.elementId,"_xAxisClip")).append("rect"),this.yAxisClip=this.defs.append("clipPath").attr("id","".concat(this.elementId,"_yAxisClip")).append("rect"),this.brushClip=this.defs.append("clipPath").attr("id","".concat(this.elementId,"_brushclip")).append("rect"),this.leftAxisLayer=this.svg.append("g").attr("class","left-axis-layer").attr("clip-path","url(#".concat(this.elementId,"_yAxisClip)")).append("g"),this.rightAxisLayer=this.svg.append("g").attr("class","right-axis-layer"),this.bottomAxisLayer=this.svg.append("g").attr("class","bottom-axis-layer").attr("clip-path","url(#".concat(this.elementId,"_xAxisClip)")).append("g"),this.leftAxisLabel=this.svg.append("g").attr("class","left-axis-label-layer"),this.rightAxisLabel=this.svg.append("g").attr("class","right-axis-label-layer"),this.bottomAxisLabel=this.svg.append("g").attr("class","bottom-axis-label-layer"),this.plotArea=this.svg.append("g").attr("class","plot-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.barLayer=this.svg.append("g").attr("class","bar-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.areaLayer=this.svg.append("g").attr("class","area-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.lineLayer=this.svg.append("g").attr("class","line-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.labelLayer=this.svg.append("g").attr("class","label-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.symbolLayer=this.svg.append("g").attr("class","symbol-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.refLineLayer=this.svg.append("g").attr("class","refline-layer").attr("clip-path","url(#".concat(this.elementId,"_clip)")).append("g"),this.trackingLineLayer=this.svg.append("g").attr("class","tracking-line-layer"),this.trackingLineLayer.append("line").attr("class","tracking-line"),this.tooltip=new WebsyDesigns.WebsyChartTooltip(this.svg),this.brushLayer=this.svg.append("g"),this.brushArea=this.brushLayer.append("g").attr("class","brush-area"),this.brushLayer.append("g").attr("class","brush"),this.eventLayer=this.svg.append("g").attr("class","event-line").append("rect"),this.eventLayer.on("mouseout",this.handleEventMouseOut.bind(this)).on("mousemove",this.handleEventMouseMove.bind(this)),this.render()}},{key:"render",value:function(t){var l=this;if(this._isRendered=!1,void 0!==t&&(this.options=_extends({},this.options,t),this.options.legendOptions&&this.legend.setOptions(this.options.legendOptions)),this.options.data){this.processedX={},this.transition=d3.transition().duration(this.options.transitionDuration),this.options.data.bottom.scale&&"Time"===this.options.data.bottom.scale?this.parseX=function(t){if(void 0!==t.getTime)return t;d3.timeParse(this.options.timeParseFormat)(t)}:this.parseX=function(t){return t},!0===this.options.disableTransitions&&(this.transition=d3.transition().duration(0)),this.options.data.left||(this.options.data.left={data:[]}),this.options.data.right||(this.options.data.right={data:[]}),this.options.data.bottom||(this.options.data.bottom={data:[]}),"vertical"===this.options.orientation?(this.leftAxisLayer&&this.leftAxisLayer.attr("class","y-axis"),this.rightAxisLayer&&this.rightAxisLayer.attr("class","y-axis"),this.bottomAxisLayer&&this.bottomAxisLayer.attr("class","x-axis")):(this.leftAxisLayer&&this.leftAxisLayer.attr("class","x-axis"),this.rightAxisLayer&&this.rightAxisLayer.attr("class","x-axis"),this.bottomAxisLayer&&this.bottomAxisLayer.attr("class","y-axis"));var e=document.getElementById(this.elementId);if(e){if(this.width=e.clientWidth,this.height=e.clientHeight,!0===this.options.showLegend){var i=[];if(this.options.legendData&&0<this.options.legendData.length?i=this.options.legendData:this.options.data.series.map(function(t,e){return{value:t.label||t.key,color:t.color||l.options.colors[e%l.options.colors.length]}}),"top"!==this.options.legendPosition&&"bottom"!==this.options.legendPosition||(this.legendArea.style("width","100%"),this.legend.options.maxSize&&this.legendArea.style("height","".concat(this.legend.options.maxSize,"px")),this.legend.options.align="center"),"left"===this.options.legendPosition||"right"===this.options.legendPosition){var n=i.reduce(function(t,e){return t.length>(e.value||"").length?t:e.value},"");this.legend.options.align="left",this.legendArea.style("height","100%"),this.legendArea.style("width",this.legend.testWidth(n)+"px"),this.legend.options.maxSize&&this.legendArea.style("width","".concat(this.legend.options.maxSize,"px"))}this.legend.data=i;var s=this.legend.getSize();this.options.margin.legendTop=0,this.options.margin.legendBottom=0,this.options.margin.legendLeft=0,this.options.margin.legendRight=0,"top"===this.options.legendPosition&&(this.options.margin.legendTop=s.height,this.legendArea.style("top","0").style("bottom","unset")),"bottom"===this.options.legendPosition&&(this.options.margin.legendBottom=s.height,this.legendArea.style("top","unset").style("bottom","0")),"left"===this.options.legendPosition&&(this.options.margin.legendLeft=s.width,this.legendArea.style("left","0").style("right","unset").style("top","0")),"right"===this.options.legendPosition&&(this.options.margin.legendRight=s.width,this.legendArea.style("left","unset").style("right","0").style("top","0"))}this.svg.attr("width",this.width-this.options.margin.legendLeft-this.options.margin.legendRight).attr("height",this.height-this.options.margin.legendTop-this.options.margin.legendBottom).attr("transform","translate(".concat(this.options.margin.legendLeft,", ").concat(this.options.margin.legendTop,")")),this.longestLeft=0,this.longestRight=0,this.longestBottom=0;var o="";if(this.options.data.bottom&&this.options.data.bottom.data&&void 0===this.options.data.bottom.max&&(this.options.data.bottom.max=this.options.data.bottom.data[this.options.data.bottom.data.length-1].value,this.options.data.bottom.min=this.options.data.bottom.data[0].value),this.options.data.bottom&&void 0!==this.options.data.bottom.max&&(this.longestBottom=this.options.data.bottom.max.toString(),this.options.data.bottom.formatter?(this.longestBottom=this.options.data.bottom.formatter(this.options.data.bottom.max).toString(),this.options.data.bottom.data&&this.options.data.bottom.data[0]&&this.options.data.bottom.data[0].value&&(o=this.options.data.bottom.formatter(this.options.data.bottom.data[0].value).toString())):"Time"===this.options.data.bottom.scale?o=this.longestBottom="01/01/2000":(this.longestBottom=this.options.data.bottom.data.reduce(function(t,e){return t.length>e.value.length?t:e.value},""),this.options.data.bottom.data&&this.options.data.bottom.data[0]&&this.options.data.bottom.data[0].value&&(o=this.options.data.bottom.data[0].value))),this.options.data.left&&this.options.data.left.data&&"undefined"===this.options.data.left.max&&(this.options.data.left.min=d3.min(this.options.data.left.data),this.options.data.left.max=d3.max(this.options.data.left.data)),!this.options.data.left.max&&this.options.data.left.data&&(this.options.data.left.max=this.options.data.left.data.reduce(function(t,e){return t.length>e.value.length?t:e.value},"")),!this.options.data.left.min&&this.options.data.left.data&&(this.options.data.left.min=this.options.data.left.data.reduce(function(t,e){return t.length<e.value.length?t:e.value},this.options.data.left.max)),this.options.data.left&&void 0!==this.options.data.left.max&&(this.longestLeft=this.options.data.left.max.toString(),this.options.data.left.formatter&&(this.longestLeft=this.options.data.left.formatter(this.options.data.left.max).toString())),this.options.data.right&&this.options.data.right.data&&"undefined"===this.options.data.right.max&&(this.options.data.right.min=d3.min(this.options.data.right.data),this.options.data.right.max=d3.max(this.options.data.right.data)),this.options.data.right&&void 0!==this.options.data.right.max&&(this.longestRight=this.options.data.right.max.length>this.options.data.right.min.length?this.options.data.right.max.toString():this.options.data.right.min.toString(),this.options.data.right.formatter&&(this.longestRight=this.options.data.right.formatter(this.longestRight).toString())),!0===this.options.balancedMinMax)if("horizontal"===this.options.orientation){var a=Math.max(Math.abs(this.options.data.bottom.min),this.options.data.bottom.max);this.options.data.bottom.min=1-a,this.options.data.bottom.max=a}else{var r=Math.max(Math.abs(this.options.data.left.min),this.options.data.left.max);this.options.data.left.min=-1*r,this.options.data.left.max=r;var c=Math.max(Math.abs(this.options.data.right.min),this.options.data.right.max);this.options.data.right.min=-1*c,this.options.data.right.max=c}var h,d=WebsyUtils.measureText(this.longestLeft,0,this.options.data.left&&this.options.data.left.fontSize||this.options.fontSize),p=WebsyUtils.measureText(this.longestRight,0,this.options.data.right&&this.options.data.right.fontSize||this.options.fontSize),u=WebsyUtils.measureText(this.longestBottom,this.options.data.bottom&&this.options.data.bottom.rotate||0,this.options.data.bottom&&this.options.data.bottom.fontSize||this.options.fontSize),m=0;"vertical"===this.options.orientation&&(m=WebsyUtils.measureText(o,this.options.data.bottom&&this.options.data.bottom.rotate||0,this.options.data.bottom&&this.options.data.bottom.fontSize||this.options.fontSize).width,90!==Math.abs(this.options.data.bottom&&this.options.data.bottom.rotate||0)?m/=2:90===Math.abs(this.options.data.bottom&&this.options.data.bottom.rotate||0)&&(m=0),"Time"!==this.options.data.bottom.scale&&(o=Math.max(0,m))),this.options.margin.axisLeft=Math.max(d.width,m)+5,this.options.margin.axisRight=p.width+10,this.options.margin.axisBottom=u.height+10,this.options.margin.axisTop=0,this.options.data.left&&!0===this.options.data.left.showTitle&&(1===this.options.data.left.titlePosition?this.options.margin.axisLeft+=(this.options.data.left.titleFontSize||10)+10:this.options.margin.axisTop+=(this.options.data.left.titleFontSize||10)+10),this.options.data.right&&!0===this.options.data.right.showTitle&&(1===this.options.data.right.titlePosition?this.options.margin.axisRight+=(this.options.data.right.titleFontSize||10)+10:0===this.options.margin.axisTop&&(this.options.margin.axisTop+=(this.options.data.right.titleFontSize||10)+10)),0===(this.options.data.bottom&&this.options.data.bottom.rotate||0)&&!0!==this.options.axis.hideBottom?this.options.margin.axisLeft=Math.max(this.options.margin.axisLeft,u.width/2):(this.options.data.bottom&&this.options.data.bottom.rotate||0)<0&&!0!==this.options.axis.hideBottom?this.options.margin.axisLeft=Math.max(this.options.margin.axisLeft,m/2):0<(this.options.data.bottom&&this.options.data.bottom.rotate||0)&&!0!==this.options.axis.hideBottom&&(this.options.margin.axisRight=Math.max(this.options.margin.axisRight,u.width)),this.options.axis&&(!0===this.options.axis.hideAll&&(this.options.margin.axisLeft=0,this.options.margin.axisRight=0,this.options.margin.axisBottom=0),!0===this.options.axis.hideLeft&&(this.options.margin.axisLeft=0),!0===this.options.axis.hideRight&&(this.options.margin.axisRight=0),!0===this.options.axis.hideBottom&&(this.options.margin.axisBottom=0)),this.plotWidth=this.width-this.options.margin.legendLeft-this.options.margin.legendRight-this.options.margin.left-this.options.margin.right-this.options.margin.axisLeft-this.options.margin.axisRight,this.plotHeight=this.height-this.options.margin.legendTop-this.options.margin.legendBottom-this.options.margin.top-this.options.margin.bottom-this.options.margin.axisBottom-this.options.margin.axisTop;var g=this.brushNeeded=!1;this.bandPadding=0,this.totalBandPadding=0,this.brushBandPadding=0;var v=this.totalBrushBandPadding=0,f=0,y=0;this.options.maxBandWidth&&(f="horizontal"===this.options.orientation?(this.options.data.left.totalValueCount=this.options.data.left.data.reduce(function(t,e){return void 0===e.valueCount?t+1:t+e.valueCount},0),this.options.data.left.padding&&(this.totalBandPadding=this.plotHeight*this.options.data.left.padding,this.bandPadding=this.totalBandPadding/this.options.data.left.data.length,this.totalBrushBandPadding=this.plotHeight*this.options.data.left.padding,this.brushBandPadding=this.totalBandPadding/this.options.data.left.data.length),y=this.plotHeight-this.totalBandPadding,v="grouped"===this.options.grouping&&!0===this.options.allowUnevenBands?this.options.data.left.totalValueCount:this.options.data.left.data.length,this.options.data.left.data.length):(this.options.data.bottom.totalValueCount=this.options.data.bottom.data.reduce(function(t,e){return void 0===e.valueCount?t+1:t+e.valueCount},0),this.options.data.bottom.padding&&(this.totalBandPadding=this.plotWidth*this.options.data.bottom.padding,this.bandPadding=this.totalBandPadding/this.options.data.bottom.data.length,this.totalBrushBandPadding=this.plotWidth*this.options.data.bottom.padding,this.brushBandPadding=this.totalBandPadding/this.options.data.bottom.data.length),y=this.plotWidth-this.totalBandPadding,v="grouped"===this.options.grouping&&!0===this.options.allowUnevenBands?this.options.data.bottom.totalValueCount:this.options.data.bottom.data.length,this.options.data.bottom.data.length),y/v>this.options.maxBandWidth&&(g=!0,h=this.options.maxBandWidth),g||!0!==this.options.allowBrushing||(y/v<this.options.minBandWidth?(this.brushNeeded=!0,h=this.options.minBandWidth,"horizontal"===this.options.orientation?this.plotWidth-=this.options.brushHeight:this.plotHeight-=this.options.brushHeight):h=y/v));var b="horizontal"===this.options.orientation&&!0===this.brushNeeded?this.options.brushHeight:0;this.leftAxisLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")).style("font-size",this.options.data.left&&this.options.data.left.fontSize||this.options.fontSize),this.rightAxisLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.plotWidth+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")).style("font-size",this.options.data.right&&this.options.data.right.fontSize||this.options.fontSize),this.bottomAxisLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight,")")).style("font-size",this.options.data.bottom&&this.options.data.bottom.fontSize||this.options.fontSize),this.leftAxisLabel.attr("transform","translate(".concat(b+this.options.margin.left,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.rightAxisLabel.attr("transform","translate(".concat(b+this.options.margin.left+this.plotWidth+this.options.margin.axisLeft+this.options.margin.axisRight,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.bottomAxisLabel.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight,")")),this.plotArea.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.areaLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.lineLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.barLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.labelLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.symbolLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.refLineLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.trackingLineLayer.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.clip.attr("transform","translate(".concat(b+this.options.margin.left+this.options.margin.axisLeft,", 0)")).attr("width",this.plotWidth).attr("height",this.plotHeight+this.options.margin.top+this.options.margin.axisTop),"horizontal"===this.options.orientation?(this.brushLayer.attr("transform","translate(".concat(this.options.margin.left,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.yAxisClip.attr("transform","translate(".concat(b,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")).attr("width",this.options.margin.axisLeft+10).attr("height",this.plotHeight),this.xAxisClip.attr("transform","translate(".concat(this.options.margin.left,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight,")")).attr("width",this.plotWidth+this.options.margin.axisLeft+this.options.margin.axisRight+this.options.margin.right).attr("height",u.height+10),this.brushClip.attr("transform","translate(".concat(this.options.margin.left,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")).attr("height",this.plotHeight).attr("width",this.options.brushHeight)):(this.brushLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight+u.height,")")),this.yAxisClip.attr("transform","translate(0, ".concat(this.options.margin.top+this.options.margin.axisTop-10,")")).attr("width",this.options.margin.axisLeft+10).attr("height",this.plotHeight+20),this.xAxisClip.attr("transform","translate(".concat(this.options.margin.left,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight,")")).attr("width",this.plotWidth+this.options.margin.axisLeft+this.options.margin.axisRight+this.options.margin.right).attr("height",u.height+10),this.brushClip.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight+u.height,")")).attr("width",this.plotWidth).attr("height",this.options.brushHeight)),this.eventLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")"));this.eventLayer.attr("x",0).attr("y",0).attr("width",this.plotWidth).attr("height",this.plotHeight).attr("fill-opacity","0");var w=this.createDomain("bottom"),x=this.createDomain("bottom"),I=[0,this.plotWidth],L=[0,this.plotWidth],k=[this.plotHeight,0],C=[this.options.brushHeight,0];"horizontal"===this.options.orientation&&(C=[this.plotHeight,0],L=[0,this.options.brushHeight]),this.widthForCalc=h*v,this.customBottomRange=[],this.customBottomDetailRange=[],this.customBottomBrushRange=[],this.customLeftRange=[],this.customLeftDetailRange=[],this.customLeftBrushRange=[];var _="Bottom",S="bottom";if("horizontal"===this.options.orientation&&(_="Left",S="left"),this.options.data[S].data&&this.options.data[S].data[0]&&(this.options.data[S].data[0].valueCount,1)&&"Ordinal"===this.options.data[S].scale){var D=0;this["custom".concat(_,"Range")]=[0].concat(_toConsumableArray(this.options.data[S].data.map(function(t,e,i){for(var n=l.bandPadding*e+l.bandPadding,s=l.widthForCalc/v*D,o=0;o<(t.valueCount||1);o++){var a=o*h;l["custom".concat(_,"DetailRange")].push(s+n+a)}return D+="stacked"!==l.options.grouping&&!0===l.options.allowUnevenBands&&t.valueCount||1,l.widthForCalc/v*D+n}))),D=0,this["custom".concat(_,"BrushRange")]=[0].concat(_toConsumableArray(this.options.data[S].data.map(function(t,e,i){l.brushBandPadding,l.brushBandPadding;return D+="stacked"!==l.options.grouping&&!0===l.options.allowUnevenBands&&t.valueCount||1,("vertical"===l.options.orientation?l.plotWidth:l.plotHeight)/v*D})))}w.length;this.options.data.bottomBrush={},this.options.data.leftBrush={},this.options.data.rightBrush={},"vertical"===this.options.orientation?(this.options.data.bottom.bandWidth=h,this.options.data.bottomBrush.bandWidth=(this.plotWidth-this.totalBandPadding)/v):(this.options.data.left.bandWidth=h,this.options.data.leftBrush.bandWidth=(this.plotHeight-this.totalBandPadding)/v,this.options.data.rightBrush.bandWidth=(this.plotHeight-this.totalBandPadding)/v),this.brushBandPadding=this.totalBandPadding/f,"vertical"===this.options.orientation?I=[0,this.widthForCalc+this.totalBandPadding]:k=[this.widthForCalc+this.totalBandPadding,0],!0!==this.options.allowBrushing&&(I=L),this.bottomAxis=d3["scale".concat(this.options.data.bottom.scale||"Ordinal")]().domain(w).range(I),this.brushInitialized||(this.bottomBrushAxis=d3["scale".concat(this.options.data.bottom.scale||"Ordinal")]().domain(x).range(L)),this.bottomAxis.nice,this.bottomAxis.padding&&this.options.data.bottom.padding&&this.bottomAxis.padding(this.options.data.bottom.padding||0);var A="brushX",T=this.plotWidth,B=this.plotWidth,E=this.options.brushHeight;if("horizontal"===this.options.orientation?(A="brushY",T=this.options.brushHeight,E=this.plotHeight,this.brushNeeded&&(B=this.plotHeight*(this.plotHeight/(this.widthForCalc+this.totalBandPadding)))):this.brushNeeded&&(B=this.plotWidth*(this.plotWidth/(this.widthForCalc+this.totalBandPadding))),this.brush=d3[A]().extent([[0,0],[T,E]]).on("brush end",this.brushed),this.brushNeeded?this.brushInitialized?this.brushLayer.style("visibility","visible"):(this.brushLayer.style("visibility","visible"),this.brushInitialized=!0,this.brushLayer.select(".brush").call(this.brush).call(this.brush.move,[0,B])):this.brushLayer.style("visibility","hidden"),0<this.options.margin.axisBottom){var M,R="";if(this.options.data.bottom.data)if("Time"===this.options.data.bottom.scale){var W=this.options.data.bottom.max.getTime()-this.options.data.bottom.min.getTime(),P=864e5;R=W<6e5?(M=d3.timeSecond.every(15),"%H:%M:%S"):W<36e5?(M=d3.timeMinute.every(1),"%H:%M"):W<P/6?(M=d3.timeMinute.every(10),"%H:%M"):W<P/2?(M=d3.timeMinute.every(30),"%H:%M"):W<P?(M=d3.timeHour.every(1),"%H:%M"):W<7*P?(M=d3.timeDay.every(1),"%d %b @ %H:%M"):W<14*P?(M=d3.timeDay.every(2),"%d %b %Y"):W<21*P?(M=d3.timeDay.every(3),"%d %b %Y"):W<28*P?(M=d3.timeDay.every(4),"%d %b %Y"):W<60*P?(M=d3.timeDay.every(7),"%d %b %Y"):(M=d3.timeMonth.every(1),"%b %Y")}else M=this.options.data.bottom.ticks||Math.min(this.options.data.bottom.data.length,5);else M=this.options.data.bottom.ticks||5;this.options.calculatedTimeFormatPattern=R,this.bAxisFunc=d3.axisBottom(this.bottomAxis).ticks(M),this.options.data.bottom.formatter&&this.bAxisFunc.tickFormat(function(t){return l.options.data.bottom.formatter(t)}),this.bottomAxisLayer.call(this.bAxisFunc),this.options.data.bottom.rotate&&this.bottomAxisLayer.selectAll("text").attr("transform","rotate(".concat(this.options.data.bottom&&this.options.data.bottom.rotate||0,")")).style("text-anchor","".concat(0===(this.options.data.bottom&&this.options.data.bottom.rotate||0)?"middle":"end")).style("transform-origin",0===(this.options.data.bottom&&this.options.data.bottom.rotate||0)?"0 0":"0 ".concat(this.options.data.bottom&&this.options.data.bottom.fontSize||this.options.fontSize,"px")),0<this.customBottomRange.length&&this.bottomAxisLayer.selectAll("g").attr("transform",function(t,e){return"translate(".concat(l.customBottomRange[e]+(l.customBottomRange[e+1]-l.customBottomRange[e])/2,", 0)")})}var H=this.createDomain("left"),z=this.createDomain("left"),O=this.createDomain("right"),F=this.createDomain("right");if(this.leftAxis=d3["scale".concat(this.options.data.left.scale||"Linear")]().domain(H).range(k),this.leftBrushAxis=d3["scale".concat(this.options.data.left.scale||"Linear")]().domain(z).range(C),this.leftAxis.padding&&this.options.data.left.padding&&this.leftAxis.padding(this.options.data.left.padding||0),this.leftAxis.nice&&this.leftAxis.nice(),0<this.options.margin.axisLeft&&(this.leftAxisLayer.call(d3.axisLeft(this.leftAxis).ticks(this.options.data.left.ticks||5).tickFormat(function(t){return l.options.data.left.formatter&&(t=l.options.data.left.formatter(t)),t})),0<this.customLeftRange.length&&this.leftAxisLayer.selectAll("g").attr("transform",function(t,e){return"translate(0, ".concat(l.customLeftRange[e]+(l.customLeftRange[e+1]-l.customLeftRange[e])/2,")")})),this.options.data.left&&!0===this.options.data.left.showTitle)if(this.leftAxisLabel.selectAll(".title").remove(),this.leftAxisLabel.selectAll(".dot").remove(),1===this.options.data.left.titlePosition){var N=this.leftAxisLabel.append("text").attr("class","title").attr("x",1-this.plotHeight/2).attr("y",(this.options.data.left.titleFontSize||10)/2+2).attr("font-size",this.options.data.left.titleFontSize||10).attr("fill",this.options.data.left.titleColor||"#888888").attr("text-anchor","middle").style("transform","rotate(-90deg)").text(this.options.data.left.title||"");0<O.length&&this.leftAxisLabel.append("circle").attr("class","dot").style("fill",this.options.data.left.color||"transparent").attr("r",this.options.data.left.titleFontSize&&this.options.data.left.titleFontSize/2||5).attr("cx",3).attr("cy",this.plotHeight/2-N.node().getBBox().width/2-15)}else this.leftAxisLabel.append("text").attr("class","title").attr("x",0).attr("y",5).attr("font-size",this.options.data.left.titleFontSize||10).attr("fill",this.options.data.left.titleColor||"#888888").attr("text-anchor","left").text(this.options.data.left.title||"");if(0<O.length&&(this.rightAxis=d3["scale".concat(this.options.data.right.scale||"Linear")]().domain(O).range([this.plotHeight,0]),this.rightBrushAxis=d3["scale".concat(this.options.data.right.scale||"Linear")]().domain(F).range(C),this.rightAxis.nice&&this.rightAxis.nice(),0<this.options.margin.axisRight&&(0!==this.options.data.right.min||0!==this.options.data.right.max)&&this.rightAxisLayer.call(d3.axisRight(this.rightAxis).ticks(this.options.data.right.ticks||5).tickFormat(function(t){return l.options.data.right.formatter&&(t=l.options.data.right.formatter(t)),t}))),this.options.data.right&&!0===this.options.data.right.showTitle&&(this.rightAxisLabel.selectAll(".title").remove(),1===this.options.data.right.titlePosition)){var V=this.rightAxisLabel.append("text").attr("class","title").attr("x",this.plotHeight/2).attr("y",5).attr("font-size",this.options.data.right.titleFontSize||10).attr("fill",this.options.data.right.titleColor||"#888888").attr("text-anchor","middle").style("transform","rotate(90deg)").text(this.options.data.right.title||"");0<O.length&&this.rightAxisLabel.append("circle").attr("class","dot").style("fill",this.options.data.right.color||"transparent").attr("r",this.options.data.right.titleFontSize&&this.options.data.right.titleFontSize/2||5).attr("cx",-2).attr("cy",this.plotHeight/2-V.node().getBBox().width/2-15)}var j=this.options.data.series.map(function(t){return t.key});for(var Y in this.renderedKeys)-1===j.indexOf(Y)&&(this.removeline(Y),this.removebar(Y),this.removesymbol(Y),this.removelabel(Y));this.renderComponents()}}else;}},{key:"renderComponents",value:function(){var i=this;this.renderedKeys={},this.options.data.series.forEach(function(t,e){t.key||(t.key=i.createIdentity()),t.color||(t.color=i.options.colors[e%i.options.colors.length]),i["render".concat(t.type||"bar")](t,e),i.renderLabels(t,e),i.renderedKeys[t.key]=t.type}),this.refLineLayer.selectAll(".reference-line").remove(),this.refLineLayer.selectAll(".reference-line-label").remove(),this.options.refLines&&0<this.options.refLines.length&&this.options.refLines.forEach(function(t){return i.renderRefLine(t)}),this._isRendered=!0}},{key:"renderarea",value:function(e,t){var s=this,i=function(n,e,t){return d3.area().x(function(t){if("Time"===s.options.data[n].scale)return s["".concat(n,"Axis")](s.parseX(t.x.value));var e=s[n+"Axis"].domain().indexOf(t.x.value),i=s["custom".concat(n.toInitialCaps(),"Range")][e];return s["custom".concat(n.toInitialCaps(),"Range")][e+1]&&(i+=(s["custom".concat(n.toInitialCaps(),"Range")][e+1]-i)/2),i}).y0(function(t){return s["".concat(e,"Axis")](0)}).y1(function(t){return s["".concat(e,"Axis")](isNaN(t.y.value)?0:t.y.value)}).curve(d3[t||s.options.curveStyle])},n="bottom",o="secondary"===e.axis?"right":"left";"horizontal"===this.options.orientation&&(n="secondary"===e.axis?"right":"left",o="bottom");var a=this.areaLayer.selectAll(".area_".concat(e.key)).data([e.data]);a.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),a.attr("fill",function(t){return t[0].y.color||e.color}).transition(this.transition).attr("d",function(t){return i(n,o,e.curveStyle)(t)}),a.enter().append("path").attr("d",function(t){return i(n,o,e.curveStyle)(t)}).attr("class","area_".concat(e.key)).attr("id","area_".concat(e.key)).attr("fill",function(t){return t[0].y.color||e.color}).attr("stroke","transparent").style("fill-opacity",e.opacity||.3)}},{key:"renderbar",value:function(e,t){var i=this,n="bottom",s="left",o=this.barLayer.selectAll(".bar_".concat(e.key)).data(e.data),a=this.brushArea.selectAll(".bar_".concat(e.key)).data(e.data);new Array(this.options.data.series.length).fill(0);function d(t,e,i,n){var s;if("horizontal"===this.options.orientation)s=Math.max(1,this.options.data[n].bandWidth-(-1!==n.indexOf("Brush")?2:2*this.options.groupPadding));else{var o=l.call(this,t,e,i,n);if(null==o)return null;s=this["".concat(i,"Axis")](0)-this["".concat(i,"Axis")](Math.abs(t.y.value))}return isNaN(s)?null:s}function p(t,e,i,n){var s;if("horizontal"===this.options.orientation)s=this["".concat(i,"Axis")](0)-this["".concat(i,"Axis")](Math.abs(t.y.value));else{var o=l.call(this,t,e,i,n);if(null==o)return null;s=Math.max(1,this.options.data[n].bandWidth-(-1!==n.indexOf("Brush")?2:2*this.options.groupPadding))}return isNaN(s)?0:s}function l(t,e,i,n){var s;if("horizontal"===this.options.orientation)if("stacked"===this.options.grouping){var o=p.call(this,{x:t.x,y:{value:t.y.accumulative}},e,i,n),a=p.call(this,t,e,i,n);s=0<=t.y.value?this["".concat(i,"Axis")](0)+Math.abs(o)*(0<t.y.accumulative?1:0):this["".concat(i,"Axis")](0)-(Math.abs(o)+Math.abs(a))*(0<t.y.accumulative?1:0)}else{var l=p.call(this,t,e,i,n);s=0<=t.y.value?this["".concat(i,"Axis")](0):this["".concat(i,"Axis")](0)+l}else if("grouped"===this.options.grouping){var r=0;this.processedX[t.x.value]&&(r=Math.max(0,this.processedX[t.x.value].indexOf(t.y.tooltipLabel)));var c=this.options.data[n].bandWidth*r+(-1!==n.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==n.indexOf("Brush")?1:this.options.groupPadding);s=0<this["custom".concat(n.toInitialCaps(),"Range")].length?this["custom".concat(n.toInitialCaps(),"Range")][this[n+"Axis"].domain().indexOf(t.x.value)]+c:this["".concat(n,"Axis")](this.parseX(t.x.value))+c,this.processedX[t.x.value]||(this.processedX[t.x.value]=[]),-1===this.processedX[t.x.value].indexOf(t.y.tooltipLabel)&&this.processedX[t.x.value].push(t.y.tooltipLabel)}else{var h=(-1!==n.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==n.indexOf("Brush")?1:this.options.groupPadding);s=this["custom".concat(n.toInitialCaps(),"Range")][this[n+"Axis"].domain().indexOf(t.x.value)]+h}return isNaN(s)?null:s}function r(t,e,i,n){var s;if("horizontal"===this.options.orientation)if("grouped"!==this.options.grouping){var o=(-1!==n.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==n.indexOf("Brush")?1:this.options.groupPadding);s=this["custom".concat(n.toInitialCaps(),"Range")][this[n+"Axis"].domain().indexOf(t.x.value)]+o}else{var a=0;this.processedX[t.x.value]&&(a=Math.max(0,this.processedX[t.x.value].indexOf(t.y.tooltipLabel)));var l=this.options.data[n].bandWidth*a+(-1!==n.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==n.indexOf("Brush")?1:this.options.groupPadding);s=0<this["custom".concat(n.toInitialCaps(),"Range")].length?this["custom".concat(n.toInitialCaps(),"Range")][this[n+"Axis"].domain().indexOf(t.x.value)]+l:this["".concat(n,"Axis")](this.parseX(t.x.value))+l,this.processedX[t.x.value]||(this.processedX[t.x.value]=[]),-1===this.processedX[t.x.value].indexOf(t.y.tooltipLabel)&&this.processedX[t.x.value].push(t.y.tooltipLabel)}else if("stacked"===this.options.grouping){var r=d.call(this,{x:t.x,y:{value:t.y.accumulative}},e,i,n),c=d.call(this,t,e,i,n);s=this["".concat(i,"Axis")](0)-(r+c)*(t.y.accumulative<0?0:1)}else{var h=d.call(this,t,e,i,n);s=this["".concat(i,"Axis")](0)-h*(t.y.value<0?0:1)}return isNaN(s)?null:s}"horizontal"===this.options.orientation&&(n="left",s="bottom"),o.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),o.attr("width",function(t,e){return Math.abs(p.call(i,t,e,s,n))}).attr("height",function(t,e){return d.call(i,t,e,s,n)}).attr("x",function(t,e){return l.call(i,t,e,s,n)}).attr("y",function(t,e){return r.call(i,t,e,s,n)}).attr("fill",function(t){return t.y.color||t.color||e.color}),o.enter().append("rect").attr("width",function(t,e){return Math.abs(p.call(i,t,e,s,n))}).attr("height",function(t,e){return d.call(i,t,e,s,n)}).attr("x",function(t,e){return l.call(i,t,e,s,n)}).attr("y",function(t,e){return r.call(i,t,e,s,n)}).attr("fill",function(t){return t.y.color||t.color||e.color}).attr("class",function(t){return"bar bar_".concat(e.key)}),this.brushBarsInitialized[e.key]||(this.brushBarsInitialized[e.key]=!0,a.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),a.attr("width",function(t,e){return Math.abs(p.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush")))}).attr("height",function(t,e){return d.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush"))}).attr("x",function(t,e){return l.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush"))}).attr("y",function(t,e){return r.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush"))}).attr("fill",function(t){return t.y.color||t.color||e.color}),a.enter().append("rect").attr("width",function(t,e){return Math.abs(p.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush")))}).attr("height",function(t,e){return d.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush"))}).attr("x",function(t,e){return l.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush"))}).attr("y",function(t,e){return r.call(i,t,e,"".concat(s,"Brush"),"".concat(n,"Brush"))}).attr("fill",function(t){return t.y.color||t.color||e.color}).attr("class",function(t){return"bar bar_".concat(e.key)}))}},{key:"removebar",value:function(t){this.barLayer.selectAll(".bar_".concat(t)).transition(this.transition).style("fill-opacity",1e-6).remove(),this.brushArea.selectAll(".bar_".concat(t)).transition(this.transition).style("fill-opacity",1e-6).remove()}},{key:"renderLabels",value:function(i,t){var e=this,a="bottom",l="left",n=this;if("horizontal"===this.options.orientation&&(a="left",l="bottom"),!0===this.options.showLabels||!0===i.showLabels){var s=this.labelLayer.selectAll(".label_".concat(i.key)).data(i.data);s.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),s.attr("x",function(t){return o.call(e,t,i.labelPosition)}).attr("y",function(t){return r.call(e,t,i.labelPosition)}).attr("class","label_".concat(i.key)).attr("fill",function(t){return"stacked"===e.options.grouping&&0===t.y.value?"transparent":e.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color)}).style("font-size","".concat(this.options.labelSize||this.options.fontSize,"px")).transition(this.transition).text(function(t){return t.y.label||t.y.value}).each(function(t,e){"horizontal"===n.options.orientation?"stacked"===n.options.grouping&&"outside"!==i.labelPosition?this.setAttribute("text-anchor","middle"):n.plotWidth-o.call(n,t)<this.getComputedTextLength()?(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8),this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color))):t.y.value<0&&this.getAttribute("x")<0?(this.setAttribute("text-anchor","start"),this.setAttribute("x",Math.max(+this.getAttribute("x")+8,8)),this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color))):(t.y.value<0&&0<this.getAttribute("x")?(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8)):"outside"===i.labelPosition?(this.setAttribute("text-anchor","start"),this.setAttribute("x",+this.getAttribute("x")+8)):this.setAttribute("text-anchor","start"),this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark("#ffffff"))):n.plotheight-o.call(n,t)<(n.options.labelSize||n.options.fontSize)&&this.setAttribute("y",+this.getAttribute("y")+8)}),s.enter().append("text").attr("class","label_".concat(i.key)).attr("x",function(t){return o.call(e,t,i.labelPosition)}).attr("y",function(t){return r.call(e,t,i.labelPosition)}).attr("alignment-baseline","central").attr("text-anchor","horizontal"===this.options.orientation?"left":"middle").attr("fill",function(t){return"stacked"===e.options.grouping&&0===t.y.value?"transparent":e.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color)}).style("font-size","".concat(this.options.labelSize||this.options.fontSize,"px")).text(function(t){return t.y.label||t.y.value}).each(function(t,e){"horizontal"===n.options.orientation?"stacked"===n.options.grouping&&"outside"!==i.labelPosition?this.setAttribute("text-anchor","middle"):n.plotWidth-o.call(n,t)<this.getComputedTextLength()?(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8),this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color))):t.y.value<0&&this.getAttribute("x")<0?(this.setAttribute("text-anchor","start"),this.setAttribute("x",Math.max(+this.getAttribute("x")+8,8)),this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color))):(t.y.value<0&&0<this.getAttribute("x")?(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8)):"outside"===i.labelPosition&&(this.setAttribute("text-anchor","start"),this.setAttribute("x",+this.getAttribute("x")+8)),this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark("#ffffff"))):(n.plotheight-o.call(n,t)<(n.options.labelSize||n.options.fontSize)&&this.setAttribute("y",+this.getAttribute("y")+8),"outside"!==i.labelPosition&&this.setAttribute("fill",n.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.y.color||t.color||i.color)))})}function o(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"inside";if("horizontal"===this.options.orientation)return"stacked"===this.options.grouping?this[l+"Axis"](t.y.accumulative)+this[l+"Axis"](t.y.value)/("inside"===e?2:1):this[l+"Axis"](isNaN(t.y.value)?0:t.y.value)+4;var i=this[a+"Axis"].domain().indexOf(t.x.value),n=this["custom".concat(a.toInitialCaps(),"Range")][i];return this["custom".concat(a.toInitialCaps(),"Range")][i+1]&&(n+=(this["custom".concat(a.toInitialCaps(),"Range")][i+1]-n)/2),n}function r(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"inside";if("horizontal"===this.options.orientation){var i=this[a+"Axis"].domain().indexOf(t.x.value),n=this["custom".concat(a.toInitialCaps(),"Range")][i];return this["custom".concat(a.toInitialCaps(),"Range")][i+1]&&(n+=(this["custom".concat(a.toInitialCaps(),"Range")][i+1]-n)/2),n}if("stacked"!==this.options.grouping)return this[l+"Axis"](isNaN(t.y.value)?0:t.y.value)-(this.options.labelSize||this.options.fontSize);var s=this["".concat(l,"Axis")](0)-this["".concat(l,"Axis")](Math.abs(t.y.accumulative)),o=this["".concat(l,"Axis")](0)-this["".concat(l,"Axis")](Math.abs(t.y.value));return this["".concat(l,"Axis")](0)-(s+o-("inside"===e?o/2:0))*(t.y.accumulative<0?0:1)}}},{key:"renderline",value:function(e,t){var o=this,i=function(n,s,t){return d3.line().x(function(t){if("horizontal"===o.options.orientation)return o["".concat(s,"Axis")](isNaN(t.y.value)?0:t.y.value);if("Time"===o.options.data[n].scale)return o["".concat(n,"Axis")](o.parseX(t.x.value));var e=o[n+"Axis"].domain().indexOf(t.x.value),i=o["custom".concat(n.toInitialCaps(),"Range")][e];return o["custom".concat(n.toInitialCaps(),"Range")][e+1]&&(i+=(o["custom".concat(n.toInitialCaps(),"Range")][e+1]-i)/2),i}).y(function(t){if("horizontal"!==o.options.orientation)return o["".concat(s,"Axis")](isNaN(t.y.value)?0:t.y.value);var e="Time"===o.options.data[n.replace("Brush","")].scale?0:o.options.data[n].bandWidth/2;return o["".concat(n,"Axis")](o.parseX(t.x.value))+e}).curve(d3[t||o.options.curveStyle])},n="bottom",s="secondary"===e.axis?"right":"left";"horizontal"===this.options.orientation&&(n="secondary"===e.axis?"right":"left",s="bottom");var a="bottomBrush",l="secondary"===e.axis?"rightBrush":"leftBrush";"horizontal"===this.options.orientation&&(a="leftBrush",l="bottomBrush");var r=this.lineLayer.selectAll(".line_".concat(e.key)).data([e.data]),c=this.brushArea.selectAll(".line_".concat(e.key)).data([e.data]);r.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),r.style("stroke-width",e.lineWidth||this.options.lineWidth).attr("stroke",function(t){return t[0].y.color||e.color}).attr("fill","transparent").transition(this.transition).attr("d",function(t){return i(n,s,e.curveStyle)(t)}),r.enter().append("path").attr("d",function(t){return i(n,s,e.curveStyle)(t)}).attr("class","line_".concat(e.key)).attr("id","line_".concat(e.key)).style("stroke-width",e.lineWidth||this.options.lineWidth).attr("stroke",function(t){return t[0].y.color||e.color}).attr("fill","transparent").style("stroke-opacity",1),this.brushLinesInitialized[e.key]||(this.brushLinesInitialized[e.key]=!0,c.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),c.style("stroke-width",1).attr("stroke",e.color).attr("fill","transparent").transition(this.transition).attr("d",function(t){return i(a,l,e.curveStyle)(t)}),c.enter().append("path").attr("d",function(t){return i(a,l,e.curveStyle)(t)}).attr("class","line_".concat(e.key)).attr("id","line_".concat(e.key)).style("stroke-width",1).attr("stroke",e.color).attr("fill","transparent").style("stroke-opacity",1)),!0===e.showArea&&this.renderarea(e,t),!0===e.showSymbols&&this.rendersymbol(e,t)}},{key:"renderRefLine",value:function(t){var e="left",i="y",n="x",s=this.plotWidth;"horizontal"===this.options.orientation&&("left",e="bottom",i="x",n="y",s=this.plotHeight),this.refLineLayer.append("line").attr("".concat(i,"1"),this["".concat(e,"Axis")](t.value)).attr("".concat(i,"2"),this["".concat(e,"Axis")](t.value)).attr("".concat(n,"2"),s).attr("class","reference-line").style("stroke",t.color).style("stroke-width","".concat(t.lineWidth,"px")).style("stroke-dasharray",t.lineStyle),t.label&&""!==t.label&&this.refLineLayer.append("text").attr("class","reference-line-label").attr("x",s).attr("y",this["".concat(e,"Axis")](t.value)).attr("font-size",this.options.fontSize).attr("fill",t.color).text(t.label).attr("text-anchor","end").attr("alignment-baseline","text-after-edge")}},{key:"removeline",value:function(t){this.lineLayer.selectAll(".line_".concat(t)).transition(this.transition).style("stroke-opacity",1e-6).remove(),this.areaLayer.selectAll(".area_".concat(t)).transition(this.transition).style("stroke-opacity",1e-6).remove()}},{key:"removelabel",value:function(t){this.labelLayer.selectAll(".label_".concat(t)).transition(this.transition).style("stroke-opacity",1e-6).remove()}},{key:"removesymbol",value:function(t){this.symbolLayer.selectAll(".symbol_".concat(t)).transition(this.transition).style("stroke-opacity",1e-6).remove()}},{key:"rendersymbol",value:function(e,t){var o=this,i=function(t){return d3.symbol().size(t||o.options.symbolSize)},a="bottom",l="secondary"===e.axis?"right":"left";"horizontal"===this.options.orientation&&(a="secondary"===e.axis?"right":"left",l="bottom");var n=this.symbolLayer.selectAll(".symbol_".concat(e.key)).data(e.data);n.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),n.attr("d",function(t){return i(t.y.size||e.symbolSize)(t)}).transition(this.transition).attr("fill",function(t){return e.fillSymbols?t.y.color||e.color:"white"}).attr("stroke",function(t){return t.y.color||e.color}).attr("transform",function(t){var e=o[a+"Axis"].domain().indexOf(t.x.value),i=o["custom".concat(a.toInitialCaps(),"Range")][e];o["custom".concat(a.toInitialCaps(),"Range")][e+1]&&(i+=(o["custom".concat(a.toInitialCaps(),"Range")][e+1]-i)/2);"Time"===o.options.data[a].scale||"Linear"===o.options.data[a].scale||o.options.data[a].bandWidth;if("horizontal"===o.options.orientation)return"translate(".concat(o["".concat(l,"Axis")](isNaN(t.y.value)?0:t.y.value),", ").concat(i,")");if("Time"===o.options.data[a].scale)i=o["".concat(a,"Axis")](o.parseX(t.x.value));else{var n=o[a+"Axis"].domain().indexOf(t.x.value),s=o["custom".concat(a.toInitialCaps(),"Range")][n];o["custom".concat(a.toInitialCaps(),"Range")][n+1]&&(s+=(o["custom".concat(a.toInitialCaps(),"Range")][n+1]-s)/2)}return"translate(".concat(i,", ").concat(o["".concat(l,"Axis")](isNaN(t.y.value)?0:t.y.value),")")}),n.enter().append("path").attr("d",function(t){return i(t.y.size||e.symbolSize)(t)}).attr("fill",function(t){return e.fillSymbols?t.y.color||e.color:"white"}).attr("stroke",function(t){return t.y.color||e.color}).attr("class",function(t){return"symbol symbol_".concat(e.key)}).attr("transform",function(t){var e=o[a+"Axis"].domain().indexOf(t.x.value),i=o["custom".concat(a.toInitialCaps(),"Range")][e];o["custom".concat(a.toInitialCaps(),"Range")][e+1]&&(i+=(o["custom".concat(a.toInitialCaps(),"Range")][e+1]-i)/2);"Time"===o.options.data[a].scale||"Linear"===o.options.data[a].scale||o.options.data[a].bandWidth;if("horizontal"===o.options.orientation)return"translate(".concat(o["".concat(l,"Axis")](isNaN(t.y.value)?0:t.y.value),", ").concat(i,")");if("Time"===o.options.data[a].scale)i=o["".concat(a,"Axis")](o.parseX(t.x.value));else{var n=o[a+"Axis"].domain().indexOf(t.x.value),s=o["custom".concat(a.toInitialCaps(),"Range")][n];o["custom".concat(a.toInitialCaps(),"Range")][n+1]&&(s+=(o["custom".concat(a.toInitialCaps(),"Range")][n+1]-s)/2)}return"translate(".concat(i,", ").concat(o["".concat(l,"Axis")](isNaN(t.y.value)?0:t.y.value),")")})}},{key:"resize",value:function(){var t=document.getElementById(this.elementId);t&&(this.width=t.clientWidth,this.height=t.clientHeight,this.svg.attr("width",this.width-this.options.margin.legendLeft-this.options.margin.legendRight).attr("height",this.height-this.options.margin.legendTop-this.options.margin.legendBottom).attr("transform","translate(".concat(this.options.margin.legendLeft,", ").concat(this.options.margin.legendTop,")")),this.plotWidth=this.width-this.options.margin.left-this.options.margin.right-this.options.margin.axisLeft-this.options.margin.axisRight,this.plotHeight=this.height-this.options.margin.top-this.options.margin.bottom-this.options.margin.axisBottom-this.options.margin.axisTop,this.longestRight=5,this.longestBottom=5,this.options.margin.axisLeft=this.longestLeft*(this.options.data.left&&this.options.data.left.fontSize||this.options.fontSize)*.7,this.options.margin.axisRight=this.longestRight*(this.options.data.right&&this.options.data.right.fontSize||this.options.fontSize)*.7,this.options.margin.axisBottom=(this.options.data.bottom&&this.options.data.bottom.fontSize||this.options.fontSize)+10,this.options.data.bottom.rotate&&(this.options.margin.axisBottom=this.longestBottom*(this.options.data.bottom&&this.options.data.bottom.fontSize||this.options.fontSize)*.4),this.options.axis&&(!0===this.options.axis.hideAll&&(this.options.margin.axisLeft=0,this.options.margin.axisRight=0,this.options.margin.axisBottom=0),!0===this.options.axis.hideLeft&&(this.options.margin.axisLeft=0),!0===this.options.axis.hideRight&&(this.options.margin.axisRight=0),!0===this.options.axis.hideBottom&&(this.options.margin.axisBottom=0)),this.leftAxisLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.rightAxisLayer.attr("transform","translate(".concat(this.options.margin.left+this.plotWidth+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.bottomAxisLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight,")")),this.leftAxisLabel.attr("transform","translate(".concat(this.options.margin.left,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.rightAxisLabel.attr("transform","translate(".concat(this.options.margin.left+this.plotWidth+this.options.margin.axisLeft+this.options.margin.axisRight,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.bottomAxisLabel.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop+this.plotHeight,")")),this.plotArea.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.areaLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.lineLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.barLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.labelLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.symbolLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.trackingLineLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")),this.eventLayer.attr("transform","translate(".concat(this.options.margin.left+this.options.margin.axisLeft,", ").concat(this.options.margin.top+this.options.margin.axisTop,")")))}},{key:"hideError",value:function(){var t=document.getElementById("".concat(this.elementId));t&&t.classList.remove("has-error"),this.svg&&this.svg.classed("hidden",!1);var e=document.getElementById("".concat(this.elementId,"_errorContainer"));e&&e.classList.remove("active")}},{key:"hideLoading",value:function(){this.loadingDialog.hide()}},{key:"showError",value:function(t){var e=document.getElementById("".concat(this.elementId));e&&e.classList.add("has-error"),this.svg&&this.svg.classed("hidden",!0);var i=document.getElementById("".concat(this.elementId,"_errorContainer"));if(i&&i.classList.add("active"),t.title){var n=document.getElementById("".concat(this.elementId,"_errorTitle"));n&&(n.innerHTML=t.title)}if(t.message){var s=document.getElementById("".concat(this.elementId,"_errorMessage"));s&&(s.innerHTML=t.message)}}},{key:"showLoading",value:function(t){this.loadingDialog.show(t)}}]),s}(),WebsyLegend=function(){function n(t,e){_classCallCheck(this,n);if(this.elementId=t,this.options=_extends({},{align:"center",direction:"horizontal",style:"circle",symbolSize:16,hPadding:20,vPadding:10},e),this._data=[],t){var i=document.getElementById(this.elementId);i?(i.classList.add("websy-legend"),this.render()):console.error("No element found with ID ".concat(this.elementId))}else console.log("No element Id provided for Websy Chart")}return _createClass(n,[{key:"getLegendItemHTML",value:function(t){return"\n <div \n class='websy-legend-item ".concat(this.options.direction,"' \n style='margin: ").concat(this.options.vPadding/2,"px ").concat(this.options.hPadding/2,"px;'\n >\n <span \n class='symbol ").concat(t.style||this.options.style,"' \n style='\n background-color: ").concat(t.color,";\n width: ").concat(this.options.symbolSize,"px;\n height: ").concat("line"===this.options.style?3:this.options.symbolSize,"px;\n '\n ></span>\n ").concat(t.value,"\n </div>\n ")}},{key:"getSize",value:function(){var t=document.getElementById(this.elementId);if(t)return{width:t.clientWidth,height:t.clientHeight}}},{key:"data",set:function(t){this._data=t,this.render()}},{key:"render",value:function(){this.resize()}},{key:"resize",value:function(){var i=this,t=document.getElementById(this.elementId);if(t){var e="\n <div class='text-".concat(this.options.align,"'>\n ");e+=this._data.map(function(t,e){return i.getLegendItemHTML(t)}).join(""),e+="\n <div>\n ",t.innerHTML=e}}},{key:"setOptions",value:function(t){this.options=_extends({},this.options,t)}},{key:"testWidth",value:function(t){var e=this.getLegendItemHTML({value:t}),i=document.createElement("div");i.style.position="absolute",i.style.visibility="hidden",i.innerHTML=e,document.body.appendChild(i);var n=i.clientWidth+30;return i.remove(),n}}]),n}(),WebsyKPI=function(){function i(t,e){_classCallCheck(this,i);this.elementId=t,this.options=_extends({},{tooltip:{},label:{value:""},value:{value:""}},e),this._isRendered=!1,this.render()}return _createClass(i,[{key:"isRendered",get:function(){return this._isRendered}},{key:"render",value:function(t){this._isRendered=!1,this.options=_extends({},this.options,t),this.options.label.classes||(this.options.label.classes=[]),this.options.value.classes||(this.options.value.classes=[]),this.options.subValue&&!this.options.subValue.classes&&(this.options.subValue.classes=[]),this.options.tooltip.classes||(this.options.tooltip.classes=[]),this.resize()}},{key:"resize",value:function(){var t=document.getElementById(this.elementId);if(t){var e='\n <div class="websy-kpi-container">\n ';this.options.icon&&(e+='\n <div class="websy-kpi-icon"><img src="'.concat(this.options.icon,'"></div> \n ')),e+=' \n <div class="websy-kpi-info">\n <div class="websy-kpi-label-container">\n <div class="websy-kpi-label '.concat(this.options.label.classes.join(" ")||"",'">\n ').concat((this.options.label||{}).value||"","\n </div>\n "),this.options.tooltip&&this.options.tooltip.value&&(e+='\n <div class="websy-info '.concat(this.options.tooltip.classes.join(" ")||"",'" data-info="').concat(this.options.tooltip.value,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><title>ionicons-v5-e</title><path d="M256,56C145.72,56,56,145.72,56,256s89.72,200,200,200,200-89.72,200-200S366.28,56,256,56Zm0,82a26,26,0,1,1-26,26A26,26,0,0,1,256,138Zm48,226H216a16,16,0,0,1,0-32h28V244H228a16,16,0,0,1,0-32h32a16,16,0,0,1,16,16V332h28a16,16,0,0,1,0,32Z"/></svg>\n </div> \n ')),e+='\n </div>\n <div class="websy-kpi-value '.concat(this.options.value.classes.join(" ")||"",'">').concat(this.options.value.value,"</div>\n "),this.options.subValue&&(e+='\n <div class="websy-kpi-sub-value '.concat(this.options.subValue.classes.join(" ")||"",'">').concat(this.options.subValue.value,"</div>\n ")),e+=" \n </div>\n </div>\n ",t.innerHTML=e,this._isRendered=!0}else this._isRendered=!0}}]),i}(),WebsyMap=function(){function s(t,e){_classCallCheck(this,s);if(this.elementId=t,this.options=_extends({},{tileUrl:"https://tile.openstreetmap.org/{z}/{x}/{y}.png",disablePan:!1,disableZoom:!1,markerSize:10,useClustering:!1,maxMarkerSize:50,minMarkerSize:20,data:{},legendPosition:"bottom",colors:["#5e4fa2","#3288bd","#66c2a5","#abdda4","#e6f598","#fee08b","#fdae61","#f46d43","#d53e4f","#9e0142"]},e),this._isRendered=!1,t){var i=_extends({},e.mapOptions);i.click=this.handleMapClick.bind(this),!0===this.options.disableZoom&&(i.scrollWheelZoom=!1,i.zoomControl=!1),!0===this.options.disablePan&&(i.dragging=!1);var n=document.getElementById(this.elementId);n&&("undefined"==typeof L&&console.error("Leaflet library has not been loaded"),n.innerHTML='\n <div id="'.concat(this.elementId,'_map"></div>\n <div id="').concat(this.elementId,'_legend" class="websy-map-legend"></div>\n '),n.addEventListener("click",this.handleClick.bind(this)),this.legend=new WebsyDesigns.Legend("".concat(this.elementId,"_legend"),{}),this.map=L.map("".concat(this.elementId,"_map"),i),this.render())}else console.log("No element Id provided for Websy Map")}return _createClass(s,[{key:"isRendered",get:function(){return this._isRendered}},{key:"handleClick",value:function(t){}},{key:"handleMapClick",value:function(t){}},{key:"render",value:function(){var n=this;this._isRendered=!1;var t=document.getElementById("".concat(this.elementId,"_map")),e=document.getElementById("".concat(this.elementId,"_map"));if(!0===this.options.showLegend&&this.options.data.polygons){var i=this.options.data.polygons.map(function(t,e){return{value:t.label||t.key,color:t.color||n.options.colors[e%n.options.colors.length]}}),s=i.map(function(t){return t.value}).reduce(function(t,e){return t.length>e.length?t:e});"top"!==this.options.legendPosition&&"bottom"!==this.options.legendPosition||(e.style.width="100%"),"left"!==this.options.legendPosition&&"right"!==this.options.legendPosition||(e.style.height="100%",e.style.width=this.legend.testWidth(s)+"px"),this.legend.data=i;var o=this.legend.getSize();t.style.position="relative","top"===this.options.legendPosition&&(e.style.top=0,e.style.bottom="unset",t.style.top=o.height,t.style.height="calc(100% - ".concat(o.height,"px)")),"bottom"===this.options.legendPosition&&(e.style.top="unset",e.style.bottom=0,t.style.height="calc(100% - ".concat(o.height,"px)")),"left"===this.options.legendPosition&&(e.style.left=0,e.style.right="unset",e.style.top=0,t.style.left="".concat(o.width,"px"),t.style.width="calc(100% - ".concat(o.width,"px)")),"right"===this.options.legendPosition&&(e.style.left="unset",e.style.right=0,e.style.top=0,t.style.width="calc(100% - ".concat(o.width,"px)"))}else t.style.width="100%",t.style.height="100%";L.tileLayer(this.options.tileUrl,{attribution:'Map data &copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'}).addTo(this.map);this.geo&&this.map.removeLayer(this.geo),this.polygons&&this.polygons.forEach(function(t){return n.map.removeLayer(t)}),this.polygons=[],this.options.geoJSON&&(this.geo=L.geoJSON(this.options.geoJSON,{style:function(t){return{color:t.color||"#ffffff",colorOpacity:t.colorOpacity||1,fillColor:t.fillColor||"#e6463c",fillOpacity:t.fillOpacity||0,weight:t.weight||1}},onEachFeature:function(t,e){e.bindTooltip(t.tooltip,{permanent:!0,direction:"center",className:t.tooltipClass||"websy-polygon-tooltip"})}}).addTo(this.map)),this.options.data.polygons&&this.options.data.polygons.forEach(function(t,e){t.options||(t.options={}),t.options.color||(t.options.color=n.options.colors[e%n.options.colors.length]);var i=L.polygon(t.data.map(function(t){return t.map(function(t){return[t.Latitude,t.Longitude]})}),t.options).addTo(n.map);n.polygons.push(i),n.map.fitBounds(i.getBounds())}),this.geo?this.map.fitBounds(this.geo.getBounds()):this.polygons||this.options.center&&this.map.setView(this.options.center,this.options.zoom||null),this._isRendered=!0}}]),s}(),WebsyChartTooltip=function(){function e(t){_classCallCheck(this,e),this.svg="string"==typeof t?document.getElementById(t):t,this.tooltipLayer=this.svg.append("g").attr("class","tooltip-layer"),this.tooltipContent=this.tooltipLayer.append("foreignObject").attr("class","websy-chart-tooltip").append("xhtml:div").attr("class","websy-chart-tooltip-content")}return _createClass(e,[{key:"hide",value:function(){this.tooltipContent.classed("active",!1)}},{key:"setHeight",value:function(t){this.tooltipLayer.select("foreignObject").style("height",t)}},{key:"show",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{top:"unset",bottom:"unset",left:0,width:0,height:0,onLeft:!1},n=["active"];"vertical"===i.positioning&&n.push("vertical"),!0===i.onLeft&&n.push("left"),!0===i.onTop&&n.push("top");var s=this.tooltipLayer.selectAll("foreignObject").attr("width","".concat(i.width,"px")).attr("class","websy-chart-tooltip ".concat(n.join(" ")));this.tooltipContent.attr("class","websy-chart-tooltip-content ".concat(n.join(" "))).style("width","".concat(i.width,"px")).html("<div class='title'>".concat(t,"</div>").concat(e)),-1===navigator.userAgent.indexOf("Chrome")&&-1!==navigator.userAgent.indexOf("Safari")?(s.attr("x","0px"),this.tooltipContent.style("left","vertical"!==i.positioning?"".concat(i.left,"px"):"unset").style("top",!0!==i.onTop?"".concat(i.top,"px"):"unset").style("bottom",!0===i.onTop?"".concat(i.bottom,"px"):"unset")):("vertical"===i.positioning?(s.attr("x","".concat(i.left,"px")),s.attr("y","".concat(!0===i.onTop?i.bottom-this.tooltipContent._groups[0][0].clientHeight:i.top,"px"))):(s.attr("x","".concat(i.left,"px")),s.attr("y","".concat(i.top,"px"))),this.tooltipContent.style("left","unset"),this.tooltipContent.style("top","unset"))}},{key:"transform",value:function(t,e){this.tooltipLayer.attr("transform","translate(".concat(t,", ").concat(e,")"))}}]),e}(),WebsyDesigns={WebsyPopupDialog:WebsyPopupDialog,PopupDialog:WebsyPopupDialog,WebsyLoadingDialog:WebsyLoadingDialog,LoadingDialog:WebsyLoadingDialog,WebsyNavigationMenu:WebsyNavigationMenu,NavigationMenu:WebsyNavigationMenu,WebsyForm:WebsyForm,Form:WebsyForm,MultiForm:MultiForm,WebsyDatePicker:WebsyDatePicker,DatePicker:WebsyDatePicker,WebsyDragDrop:WebsyDragDrop,DragDrop:WebsyDragDrop,WebsyDropdown:WebsyDropdown,Dropdown:WebsyDropdown,WebsyResultList:WebsyResultList,ResultList:WebsyResultList,WebsyTemplate:WebsyTemplate,Template:WebsyTemplate,WebsyPubSub:WebsyPubSub,PubSub:WebsyPubSub,WebsyRouter:WebsyRouter,Router:WebsyRouter,WebsyTable:WebsyTable,WebsyTable2:WebsyTable2,WebsyTable3:WebsyTable3,Table:WebsyTable,Table2:WebsyTable2,Table3:WebsyTable3,WebsyChart:WebsyChart,Chart:WebsyChart,WebsyChartTooltip:WebsyChartTooltip,ChartTooltip:WebsyChartTooltip,Legend:WebsyLegend,WebsyMap:WebsyMap,Map:WebsyMap,WebsyKPI:WebsyKPI,KPI:WebsyKPI,WebsyPDFButton:WebsyPDFButton,PDFButton:WebsyPDFButton,APIService:APIService,WebsyUtils:WebsyUtils,Utils:WebsyUtils,ButtonGroup:ButtonGroup,WebsySwitch:Switch,Pager:Pager,Switch:Switch,ResponsiveText:ResponsiveText,WebsyResponsiveText:ResponsiveText,QlikPlugin:_websyDesignsQlikPluginEs.default,Icons:WebsyIcons,WebsyIcons:WebsyIcons};WebsyDesigns.service=new WebsyDesigns.APIService(""),window.GlobalPubSub=new WebsyPubSub("empty",{});var _default=WebsyDesigns;exports.default=_default;