@websy/websy-designs 1.12.4 → 1.12.6

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";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,s=new Array(e);i<e;i++)s[i]=t[i];return s}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 s in i)Object.prototype.hasOwnProperty.call(i,s)&&(t[s]=i[s])}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 s=e[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,_toPropertyKey(s.key),s)}}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 s=i.call(t,e||"default");if("object"!==_typeof(s))return s;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]:{},s=this.buildUrl(t);return this.run("POST",s,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,s,n){var o=this.buildUrl(t,e,i);return s&&(-1!==o.indexOf("?")?o+="&offset=".concat(s):o+="?offset=".concat(s)),(n||this.options.rowLimit)&&(-1!==o.indexOf("?")?o+="&limit=".concat(n||this.options.rowLimit):o+="?limit=".concat(n||this.options.rowLimit)),this.run("GET",o)}},{key:"update",value:function(t,e,i){var s=this.buildUrl(t,e);return this.run("PUT",s,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(n,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 s=new XMLHttpRequest;if(s.open(n,o),s.setRequestHeader("Content-Type","application/json"),s.responseType="text",l.responseType&&(s.responseType=l.responseType),l.headers)for(var t in l.headers)s.setRequestHeader(t,l.headers[t]);s.withCredentials=!0,s.onload=function(){if(401!==s.status){var t="text"===s.responseType?s.responseText:s.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}(s.getAllResponseHeaders())]:t)}else ENV&&ENV.AUTH_REDIRECT?window.location=ENV.AUTH_REDIRECT:window.location="/login"},s.onerror=function(){return i(s.statusText)},a?s.send(JSON.stringify(a)):s.send()})}}]),i}(),ButtonGroup=function(){function s(t,e){_classCallCheck(this,s),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(s,[{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 s=this,t=document.getElementById(this.elementId);t&&this.options.items&&(t.innerHTML=this.options.items.map(function(t,e){var i="";return-1!==s.options.activeItem?i=e===s.options.activeItem?"active":"inactive":!0===s.options.multiSelect&&(i=!0===t.selected?"active":"inactive"),"\n <".concat(s.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(s.options.style,"-style ").concat(i,'">').concat(t.label,"</").concat(s.options.tag,">\n ")}).join(""))}}]),s}(),WebsyCarousel=function(){function s(t,e){_classCallCheck(this,s);this.playTimeoutFn=null,this.options=_extends({},{currentFrame:0,frameDuration:4e3,showFrameSelector:!0,showPrevNext:!0,autoPlay:!0,frames:[],frameSelectorIcon:'\n <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 512 512">\n <circle cx="256" cy="256" r="192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/>\n </svg>\n '},e),t||console.log("No element Id provided");var i=document.getElementById(t);i&&(this.elementId=t,i.addEventListener("click",this.handleClick.bind(this)),this.render())}return _createClass(s,[{key:"close",value:function(){this.pause()}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-next-arrow")&&this.next(),t.target.classList.contains("websy-prev-arrow")&&this.prev(),t.target.classList.contains("websy-progress-btn")){var e=+t.target.getAttribute("data-index"),i=this.options.currentFrame;this.options.currentFrame=e,this.showFrame(i,e)}}},{key:"next",value:function(){this.pause();var t=this.options.currentFrame;this.options.currentFrame===this.options.frames.length-1?this.options.currentFrame=0:this.options.currentFrame++,this.showFrame(t,this.options.currentFrame),this.play()}},{key:"pause",value:function(){this.playTimeoutFn&&clearTimeout(this.playTimeoutFn)}},{key:"play",value:function(){var e=this;!0!==this.options.autoPlay||this.options.frames.length<2||(this.playTimeoutFn=setTimeout(function(){var t=e.options.currentFrame;e.options.currentFrame===e.options.frames.length-1?e.options.currentFrame=0:e.options.currentFrame++,e.showFrame(t,e.options.currentFrame),e.play()},this.options.frameDuration))}},{key:"prev",value:function(){this.pause();var t=this.options.currentFrame;0===this.options.currentFrame?this.options.currentFrame=this.options.frames.length-1:this.options.currentFrame--,this.showFrame(t,this.options.currentFrame),this.play()}},{key:"render",value:function(t){this.options=_extends({},this.options,t),this.resize()}},{key:"resize",value:function(){var i=this,t=document.getElementById(this.elementId);if(t){var s='\n <div class="websy-carousel">\n ';this.options.frames.forEach(function(t,e){s+='\n <div id="'.concat(i.elementId,"_frame_").concat(e,'" class="websy-frame-container animate" style="transform: translateX(').concat(0===e?"0":"101%",')">\n '),t.images.forEach(function(t){s+='\n <div style="'.concat(t.style||"position: absolute; width: 100%; height: 100%; top: 0; left: 0;"," background-image: url('").concat(t.url,'\')" class="').concat(t.classes||"",' websy-carousel-image">\n </div>\n ')}),t.text&&t.text.forEach(function(t){s+='\n <div style="'.concat(t.style||"position: absolute; width: 100%; height: 100%; top: 0; left: 0;",'" class="').concat(t.classes||"",' websy-carousel-image">\n ').concat(t.html,"\n </div>\n ")}),s+="</div>"}),!0===this.options.showFrameSelector&&1<this.options.frames.length&&(s+='<div class="websy-btn-parent">',this.options.frames.forEach(function(t,e){s+='\n <div data-index="'.concat(e,'" id="').concat(i.elementId,"_selector_").concat(e,'" \n class="websy-progress-btn ').concat(i.options.currentFrame===e?"websy-progress-btn-active":"",'">\n ').concat(i.options.frameSelectorIcon,"\n </div>\n ")}),s+="</div>"),!0===this.options.showPrevNext&&1<this.options.frames.length&&(s+='\n <svg xmlns="http://www.w3.org/2000/svg" class="websy-prev-arrow"\n viewBox="0 0 512 512">\n <title>Caret Back</title>\n <path d="M321.94 98L158.82 237.78a24 24 0 000 36.44L321.94 414c15.57 13.34 39.62 2.28 39.62-18.22v-279.6c0-20.5-24.05-31.56-39.62-18.18z"/>\n </svg>\n \n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="websy-next-arrow">\n <title>Caret Forward</title>\n <path d="M190.06 414l163.12-139.78a24 24 0 000-36.44L190.06 98c-15.57-13.34-39.62-2.28-39.62 18.22v279.6c0 20.5 24.05 31.56 39.62 18.18z"/>\n </svg>\n '),s+="\n </div>\n ",t.innerHTML=s}this.play()}},{key:"showFrame",value:function(t,e){var i=e<t?"101%":"-101%",s=t<e?"101%":"-101%";0===e&&t===this.options.frames.length-1?(i="-101%",s="101%"):0===t&&e===this.options.frames.length-1&&(i="101%",s="-101%");var n=document.getElementById("".concat(this.elementId,"_frame_").concat(t));n&&setTimeout(function(){n.style.transform="translateX(".concat(i,")")},100);var o=document.getElementById("".concat(this.elementId,"_selector_").concat(t));o&&o.classList.remove("websy-progress-btn-active");var a=document.getElementById("".concat(this.elementId,"_frame_").concat(e));a&&(a.classList.remove("animate"),a.style.transform="translateX(".concat(s,")"),setTimeout(function(){a.classList.add("animate"),a.style.transform="translateX(0%)"},100));var l=document.getElementById("".concat(this.elementId,"_selector_").concat(e));l&&l.classList.add("websy-progress-btn-active")}}]),s}(),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 s=document.getElementById(t);if(s){this.elementId=t,s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("mousedown",this.handleMouseDown.bind(this)),s.addEventListener("mouseover",this.handleMouseOver.bind(this)),s.addEventListener("mouseup",this.handleMouseUp.bind(this)),document.addEventListener("keydown",this.handleKeyDown.bind(this)),document.addEventListener("keyup",this.handleKeyUp.bind(this));var n="\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&&(n+="<div class='clear-selection'>".concat(this.options.clearIcon,"</div>")),n+="\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 "),s.innerHTML=n,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],s=document.getElementById("".concat(this.elementId,"_mask")),n=document.getElementById("".concat(this.elementId,"_content")),o=document.getElementById(this.elementId);if(o&&(o.style.zIndex=""),s.classList.remove("active"),n.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 n=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 s;if("date"===this.options.mode)s=Math.floor((this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()-this.selectedRangeDates[0].getTime())/this.oneDay);else if("year"===this.options.mode)s=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());s=Math.floor(this.selectedRangeDates[this.selectedRangeDates.length-1].getMonth()-this.selectedRangeDates[0].getMonth())+o}else"hour"===this.options.mode&&(s=this.selectedRangeDates[this.selectedRangeDates.length-1]-this.selectedRangeDates[0]);for(var a=0;a<s+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"===n.options.mode?e=(e=n.floorDate(new Date(t.getTime()))).getTime():"year"===n.options.mode?(e=t,i="_year"):"monthyear"===n.options.mode?(e=(e=n.floorDate(new Date(t.getTime()).setMonth(t.getMonth()))).getTime(),i="_monthyear"):"hour"===n.options.mode&&(e=t,i="_hour");var s=document.getElementById("".concat(n.elementId,"_").concat(e).concat(i));s&&s.classList.add("selected","first","last")});else this.currentselection.forEach(function(t){var e;"date"===n.options.mode?e=document.getElementById("".concat(n.elementId,"_").concat(t,"_date")):"year"===n.options.mode?e=document.getElementById("".concat(n.elementId,"_").concat(t,"_year")):"monthyear"===n.options.mode?e=document.getElementById("".concat(n.elementId,"_").concat(t,"_monthyear")):"hour"===n.options.mode&&(e=document.getElementById("".concat(n.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")),s=document.getElementById(this.elementId);s&&(s.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,s=[];this.validDates=[],this.validYears=[],this.validHours=[],this.monthYears={},this.monthYearMonths=[],t&&(s=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 n={},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(n[r]||(n[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===s.indexOf(l.getTime())&&this.validDates.push(l.getTime()),n[r].push({date:l,dayOfMonth:l.getDate(),dayOfWeek:l.getDay(),id:l.getTime(),disabled:-1!==s.indexOf(l.getTime())})}else if("year"===this.options.mode){var h=this.options.minAllowedYear+a;o.push({year:h,id:h,disabled:-1!==s.indexOf(h)}),-1===s.indexOf(h)&&this.validYears.push(h)}else this.options.mode;"hour"===this.options.mode&&this.options.hours.forEach(function(t){-1===s.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 "),n){if(f+="\n <div class='websy-dp-month-container'>\n <span id='".concat(y.replace(/\s/g,"_"),"'>").concat(y,"</span>\n <ul>\n "),0<n[y][0].dayOfWeek){for(var b=[],w=0;w<n[y][0].dayOfWeek;w++)b.push("<li>&nbsp;</li>");f+=b.join("")}f+=n[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=[],k=0;k<this.monthYears[x][0].monthNum;k++)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 s=this;this.selectedRange=-1,this.isContinuousRange=!0,this.selectedRangeDates=_toConsumableArray(i),this.customRangeSelected=!0,i.forEach(function(t,e){0<e&&("date"===s.options.mode||"monthyear"===s.options.mode?1<t.getTime()/s.oneDay-i[e-1]/s.oneDay&&(s.isContinuousRange=!1):"hour"!==s.options.mode&&"year"!==s.options.mode||1<t-i[e-1]&&(s.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],n=i[0];if("date"===this.options.mode&&(e=e.getTime(),n=n.getTime()),e===n){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}),s=i[0],n="";!0===this.customRangeSelected&&!0===this.isContinuousRange?(1<i.length&&(n=" - ".concat(i[i.length-1])),"hour"===this.options.mode&&(s=this.options.hours[s].text,1<i.length&&(n="".concat(!0===this.customRangeSelected?" - ":"").concat(this.options.hours[i[i.length-1]].text)))):1<i.length?s="".concat(i.length," selected"):"hour"===this.options.mode&&(s=this.options.hours[s].text),t={label:"".concat(s).concat(n)}}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 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 s=document.getElementById(t);if(s){this.elementId=t,s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("keyup",this.handleKeyUp.bind(this)),s.addEventListener("mouseout",this.handleMouseOut.bind(this)),s.addEventListener("mousemove",this.handleMouseMove.bind(this));var n=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(n,"' id='").concat(this.elementId,"_selectedItems'>").concat(n,"</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 "),s.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")),s=document.getElementById("".concat(this.elementId,"_actionContainer")),n=document.getElementById("".concat(this.elementId,"_header")),o=WebsyUtils.getElementPos(n),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"),s&&s.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 s=+t.target.getAttribute("data-index");this.options.customButtons[s]&&this.options.customButtons[s].fn&&this.options.customButtons[s].fn()}else if(t.target.classList.contains("websy-dropdown-action-button")){var n=document.getElementById("".concat(this.elementId,"_actionContainer"));n&&n.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")),s=document.getElementById("".concat(this.elementId,"_header"));e.classList.add("active"),i.classList.add("active");var n=WebsyUtils.getElementPos(s),o=WebsyUtils.getElementPos(i);if("plain"===this.options.style&&0<n.width&&0<n.height)i.style.left="unset",i.style.right="calc(100vw - ".concat(n.right,"px)"),i.style.width="".concat(Math.max(this.options.minWidth,s.clientWidth),"px"),n.bottom+o.height>window.innerHeight?i.style.bottom="calc(100vh - ".concat(n.top,"px)"):i.style.top=n.bottom+"px";else if("plain"===this.options.style&&0===n.width&&0===n.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(""),s=document.getElementById("".concat(this.elementId,"_items"));s&&(s.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")),s=document.getElementById("".concat(this.elementId,"_headerLabel")),n=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(s&&(s.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"))),n)if(1===this.selectedItems.length)t?(n.innerHTML=t.label,n.setAttribute("data-info",t.label),o.value=t.value):this.selectedItems[0]&&(n.innerHTML=l[this.selectedItems[0]].label,n.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);n.innerHTML=h,n.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);n.innerHTML="".concat(this.selectedItems.length," selected"),n.setAttribute("data-info",""),o.value=p}else n.innerHTML="",n.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 s=this.selectedItems.indexOf(t);!1===this.options.multiSelect?(this.selectedItems=[t],e=i[t]):-1!==s?this.selectedItems.splice(s,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}(),WebsyDragDrop=function(){function s(t,e){_classCallCheck(this,s);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(s,[{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 s="\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?s+="<div id='".concat(i.id,"_component'></div>"):s+="".concat(i.html||i.label||""),s+="\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"),s=t.target.getAttribute("data-id"),n=this.getItemIndex(s),o=this.getItemIndex(e.id),a=this.options.items[n];"right"===i&&(n+=1),-1===o?GlobalPubSub.publish(e.id,"requestForDDItem",{group:this.options.group,source:e.id,target:this.elementId,index:n,id:e.itemId}):(o<n?(this.options.items.splice(n,0,a),this.options.items.splice(o,1)):(this.options.items.splice(o,1),this.options.items.splice(n,0,a)),this.options.onOrderUpdated&&this.options.onOrderUpdated());var l=document.getElementById(e.el),r=document.getElementById("".concat(s,"_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.")))})}}}]),s}(),WebsyForm=function(){function n(t,e){_classCallCheck(this,n);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 s=document.getElementById(t);s&&(s.addEventListener("change",this.handleChange.bind(this)),s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("beforeinput",this.handleBeforeInput.bind(this)),s.addEventListener("input",this.handleInput.bind(this)),s.addEventListener("focusout",this.handleFocusOut.bind(this)),s.addEventListener("keyup",this.handleKeyUp.bind(this)),s.addEventListener("keydown",this.handleKeyDown.bind(this)),this.render())}else console.log("No element Id provided")}return _createClass(n,[{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")),s={};new FormData(t).forEach(function(t,e){i.fieldMap[e]&&"checkbox"===i.fieldMap[e].type&&(s[e]=!0),i.fieldMap[e]&&i.fieldMap[e].instance&&i.fieldMap[e].instance.value?s[e]=i.fieldMap[e].instance.value:s[e]=t});var e=Object.keys(s);for(var n in this.fieldMap)-1===e.indexOf(n)&&(this.fieldMap[n]&&"checkbox"===this.fieldMap[n].type?s[n]=!1:!this.fieldMap[n]||"Switch"!==this.fieldMap[n].component&&"WebsySwitch"!==this.fieldMap[n].component?this.fieldMap[n]&&this.fieldMap[n].instance&&this.fieldMap[n].instance.value&&(s[n]=this.fieldMap[n].instance.value):s[n]=this.fieldMap[n].instance.options.enabled);return s},set:function(i){var s=this;this.options.fields||(this.options.fields=[]);var t=function(e){s.options.fields.forEach(function(t){t.field===e&&i[e]&&s.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 s=t.target.value.split("");s.pop(),t.target.value=s.join("")}}if("cvv"===t.target.getAttribute("data-user-type")){var n=!isNaN(+t.data),o=!1;if(o||(o=-1!==["deleteContentBackward","deleteContentForward"].indexOf(t.inputType)),3===t.target.value.length&&!o||!o&&!n)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 s=this,i=document.getElementById(this.elementId),n=[];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){(s.fieldMap[t.field]=t).owningElement=s.elementId;var i="function"==typeof t.value?t.value():t.value;(t.disabled||t.readOnly||s.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||s.options.readOnly)&&(t.classes.push("websy-input-readonly"),t.options.classes.push("websy-input-readonly"))),t.component?(n.push(t),o+="\n ".concat(0<e?"--\x3e":"","<div id='").concat(s.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(s.elementId,"_input_").concat(t.field,"_component' class='form-component'></div>\n <span id='").concat(s.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(s.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(s.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||s.options.readOnly?"disabled":"","\n ").concat((t.attributes||[]).join(" "),'\n class="websy-input websy-textarea ').concat(t.readOnly||s.options.readOnly?"websy-input-readonly":"",'"\n >').concat(i||"","</textarea>\n <span id='").concat(s.elementId,"_").concat(t.field,"_error' class='websy-form-validation-error'></span>\n </div>\x3c!--\n "):o+="\n ".concat(0<e?"--\x3e":"","<div id='").concat(s.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(s.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||s.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||s.options.readOnly?"disabled":"","\n oninvalidx=\"this.setCustomValidity('").concat(t.invalidMessage||"Please fill in this field.","')\"\n />\n <span id='").concat(s.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(n,function(){!0!==s.options.useRecaptcha&&!0!==s.options.useRecaptchaV3||"undefined"==typeof grecaptcha||s.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 n=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"),n.options.useLoader&&n.loader.show();new FormData(o);var i={};if(new FormData(o).forEach(function(t,e){i[e]=t}),n.options.url){var e,s=[n.options.url];"update"===n.options.mode&&s.push(n.options.id),s.push(i),(e=n.apiService)[n.options.mode].apply(e,s).then(function(t){!0===n.options.clearAfterSave&&o.reset(),a.removeAttribute("disabled"),n.options.onSuccess.call(n,t)},function(t){console.log("Error submitting form data:",t),n.options.onError.call(n,t)})}else n.options.submitFn&&n.options.submitFn(i,function(){n.loader.hide(),!0===n.options.clearAfterSave&&o.reset()},function(){n.loader.hide()})}else a&&a.removeAttribute("disabled"),l&&l.classList.remove("websy-hidden"),n.options.submitErr&&n.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")),s=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 s&&(s.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 s&&(s.innerHTML=t.invalidMessage||"A value is required"),i&&i.classList.add("websy-form-input-has-error"),!1;return s&&(s.innerHTML=""),i&&i.classList.remove("websy-form-input-has-error"),!0}},{key:"validateRecaptcha",value:function(t){this.recaptchaValue=t}}]),n}(),MultiForm=function(){function s(t,e){_classCallCheck(this,s),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(s,[{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(),s=document.createElement("div");s.id="".concat(this.elementId,"_").concat(i,"_formContainer"),s.classList.add("websy-multi-form-form-container");var n="\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 ");s.innerHTML=n,e.appendChild(s);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 s=-1,n=0;n<this.forms.length;n++)if(this.forms[n].elementId==="".concat(this.elementId,"_").concat(e,"_form")){s=n;break}-1!==s&&this.forms.splice(s,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 n=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(n.elementId,"_").concat(t.formId,"_formContainer' class='websy-multi-form-form-container'>\n <div id='").concat(n.elementId,"_").concat(t.formId,"_form' class='websy-multi-form-form'>\n </div>\n "),!0!==n.options.allowDelete||n.options.readOnly||(e+="\n <button id='".concat(n.elementId,"_").concat(t.formId,"_deleteButton' data-formid='").concat(t.formId,"' data-rowid='").concat(t.id,"' class='websy-multi-form-delete'>\n ").concat(n.options.deleteIcon).concat(n.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({},n.options,{fields:_toConsumableArray(n.options.fields.map(function(t){return _extends({},t)}))}),s=new WebsyDesigns.Form("".concat(n.elementId,"_").concat(t.formId,"_form"),i);s.data=t,n.forms[e]=s});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}}]),s}(),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}(),WebsyLogin=function(){function n(t,e){_classCallCheck(this,n);this.elementId=t,this.options=_extends({},{loginType:"email",classes:[],url:"auth/login",redirectUrl:"/"},e);var i=document.getElementById(this.elementId);if(i){i.innerHTML='\n <div id="'.concat(this.elementId,'_error" class="websy-validation-failure"></div>\n <div id="').concat(this.elementId,'_container"></div> \n ');var s={useRecaptcha:this.options.useRecaptcha||ENVIRONMENT.useRecaptcha||!1,submit:{text:this.options.buttonText||"Log in",classes:this.options.buttonClasses||[]},fields:[{label:"email"===this.options.loginType?"Email":"Username",placeholder:"Enter your ".concat("email"===this.options.loginType?"email address":"Username"),field:this.options.loginType,type:this.options.loginType,required:!0},{label:"Password",placeholder:"Enter your password",field:this.options.passwordField||"password",type:"password",required:!0}],onSuccess:this.loginSuccess.bind(this),onError:this.loginFail.bind(this)};this.options.fields&&(s.fields=this.options.fields.concat(s.fields)),this.loginForm=new WebsyDesigns.WebsyForm("".concat(this.elementId,"_container"),_extends({},this.options,s))}else console.error("No element with ID ".concat(this.elementId," found for WebsyLogin component."))}return _createClass(n,[{key:"loginFail",value:function(t){var e=document.getElementById("".concat(this.elementId,"_error"));e&&(e.innerHTML="Incorrect ".concat(this.options.loginType," or password"))}},{key:"loginSuccess",value:function(){this.options.redirectUrl&&(window.location.href=this.options.redirectUrl)}}]),n}(),WebsyNavigationMenu=function(){function s(t,e){if(_classCallCheck(this,s),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(s,[{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 s=i.getAttribute("data-path").split("::").pop(),n=document.getElementById(s);n&&n.classList.contains("websy-menu-header")&&n.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,s=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=""!==s?"".concat(s,"::").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,s))}},{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),s=this.flatItems.filter(function(t){return!t.hasChildren}),n=s,o="remove";e&&1<e.length&&(o="add",n=s.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&&n.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 s=i.parentElement;s;)if("UL"===s.tagName){s.classList.remove("websy-menu-collapsed");var n=s.getAttribute("data-path").split("::").pop(),o=document.getElementById(n);o&&o.classList.contains("websy-menu-header")&&o.classList.add("menu-open"),s=s.parentElement}else s="LI"===s.tagName?s.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,s){var n=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0;this.maxLevel=Math.max(this.maxLevel,n);var o="\n\t\t <ul class='websy-".concat(this.options.orientation,"-list ").concat(0<n?"websy-child-list":""," ").concat("main"!==s?"websy-menu-collapsed":"","' id='").concat(t,"_list' data-path='").concat(e,"'\n\t ");"main"!==s&&(o+=" data-collapsed='".concat("main"!==s?"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(n," ").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<n?s:r,"'\n data-text='").concat(!0!==i[a].isLink?i[a].text:"","'\n style='").concat(this.options.indent,"-left: ").concat(n*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)),s&&"main"!==s&&(this.options.parentMap[r]||(this.options.parentMap[r]=s)),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)}}]),s}(),MediaUpload=function(){function s(t,e){_classCallCheck(this,s);if(this.media=[],this.options=_extends({},{allowMultiple:!1,createThumbnail:!1,thumbSize:300,supportedTypes:["image/png","image/jpg"]},e),this.elementId=t){var i=document.getElementById(t);i&&(i.addEventListener("change",this.handleChange.bind(this)),i.innerHTML="\n <div class='websy-upload-form-container'>\n <span>Drag and drop a file or click to browse.</span>\n <form id=\"".concat(this.elementId,'_form" enctype="multipart/form-data"> \n <input id="').concat(this.elementId,'_file" type="file" name="').concat(this.options.name||"media",'" accept="').concat(this.options.supportedTypes.join(" "),"\" multiple>\n </form>\n </div>\n <div id='").concat(this.elementId,"_uploaded' class='websy-uploaded-media'></div> \n "),this.render())}else console.log("No element Id provided")}return _createClass(s,[{key:"data",get:function(){return this.media},set:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];Array.isArray(t)?this.media=t:this.media=[t],this.render()}},{key:"createHtml",value:function(t){for(var e="",i=0;i<t;i++)e+="\n <div>\n <img id='".concat(this.elementId,"_media_").concat(i,"'/>\n </div> \n ");return e}},{key:"getForm",value:function(){var t=!1,e=document.getElementById("".concat(this.elementId,"_file"));if(e)for(;!1===t&&"BODY"!==e.tagName;)if("FORM"===(e=e.parentElement).tagName)return t=!0,e;return null}},{key:"handleChange",value:function(t){var i=this;this.fileList=[];var e=document.getElementById("".concat(this.elementId,"_form"));if(e||(e=this.getForm()),e){var s=new FormData(e),n=this.createHtml(s.length);s.forEach(function(t,e){e===(i.options.name||"media")&&i.fileList.push({name:e,file:t})}),document.getElementById("".concat(this.elementId,"_uploaded")).innerHTML=n,this.uploadItem(0,this.fileList)}else console.error("The element ".concat(this.elementId,"_file does not belong to a form."))}},{key:"render",value:function(){var i=this;0<this.media.length&&(document.getElementById("".concat(this.elementId,"_uploaded")).innerHTML=this.createHtml(this.media.length),this.media.forEach(function(t,e){document.getElementById("".concat(i.elementId,"_media_").concat(e)).setAttribute("src","data:".concat(t.type,";base64,")+t.data)}))}},{key:"uploadItem",value:function(h,d,p){var u=this;if(d[h]){var t=new FileReader,m={type:d[h].file.type,name:d[h].file.name,size:d[h].file.size};t.onloadend=function(){var o=document.createElement("canvas"),a=o.getContext("2d"),l=document.createElement("canvas"),r=l.getContext("2d"),c=new Image;c.onload=function(){var t=c.width,e=c.height;if(!0===u.options.resize&&u.options.imgSize){var i=1;e<t?(i=t/e,t=u.options.imgSize,e=u.options.imgSize/i):t<e&&(i=e/t,t=u.options.imgSize/i,e=u.options.imgSize)}var s=document.getElementById("".concat(u.elementId,"_media_").concat(h,"_fullres"));s&&(s.innerHTML="".concat(t," x ").concat(e)),o.width=t,o.height=e,a.drawImage(c,0,0,t,e);var n=1;e<t?(n=t/e,l.width=u.options.thumbSize,l.height=u.options.thumbSize/n):t<e&&(n=e/t,l.width=u.options.thumbSize/n,l.height=u.options.thumbSize),r.drawImage(c,0,0,l.width,l.height),m.name=d[h].name,m.fullWidth=o.width,m.fullHeight=o.height,m.thumbWidth=l.width,m.thumbHeight=l.height,m.data=o.toDataURL(m.type).replace(/^data:image\/(png|jpg);base64,/,""),m.thumbData=l.toDataURL(m.type).replace(/^data:image\/(png|jpg);base64,/,""),u.media.push(m),document.getElementById("".concat(u.elementId,"_media_").concat(h)).setAttribute("src",o.toDataURL(m.type)),u.uploadItem(++h,d,p)},c.src=t.result},t.readAsDataURL(d[h].file)}else p()}}]),s}(),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 s=document.getElementById(this.elementId);if(s){var n='\n <div class="websy-pager-container">\n ';!0===this.options.showPageSize&&(n+="\n ".concat(this.options.pageSizePrefix,' <div id="').concat(this.elementId,'_pageSizeSelector" class="websy-page-selector"></div> ').concat(this.options.pageSizeSuffix," \n ")),n+='\n <ul id="'.concat(this.elementId,'_pageList" class="websy-page-list"></ul> \n </div> \n '),s.innerHTML=n,s.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>")}),s=0;8<this.options.pages.length&&(s=Math.max(0,this.options.activePage-4),e=e.splice(s,10),0<s?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 s(t,e){_classCallCheck(this,s);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(s,[{key:"handleClick",value:function(t){var n=this;t.target.classList.contains("websy-pdf-button")?(this.loader.show(),this.options.preProcess(function(t){!0===t?setTimeout(function(){if(n.options.targetId){var t=document.getElementById(n.options.targetId);if(t){var e={options:{}};if(n.options.pdfOptions&&(e.options=_extends({},n.options.pdfOptions)),n.options.header)if(n.options.header.elementId){var i=document.getElementById(n.options.header.elementId);i&&(e.header=i.outerHTML,n.options.header.css&&(e.options.headerCSS=n.options.header.css))}else n.options.header.html?(e.header=n.options.header.html,n.options.header.css&&(e.options.headerCSS=n.options.header.css)):e.header=n.options.header;if(n.options.footer)if(n.options.footer.elementId){var s=document.getElementById(n.options.footer.elementId);s&&(e.footer=s.outerHTML,n.options.footer.css&&(e.options.footerCSS=n.options.footer.css))}else e.footer=n.options.footer;e.html=t.outerHTML,n.service.add("",e,{responseType:"blob"}).then(function(t){n.loader.hide();var e,i=new Blob([t],{type:"application/pdf"}),s="\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===n.options.directDownload&&(e="function"==typeof n.options.fileName?n.options.fileName()||"Export":n.options.fileName||"Export",s+='download="'.concat(e.replace(/'/g,""),'.pdf"'));s+="\n >\n <button class='websy-btn download-pdf'>".concat(n.options.buttonText,"</button>\n </a>\n </div>\n "),n.popup.show({message:s,mask:!0})},function(t){console.error(t)})}}},n.options.wait):(n.loader.hide(),n.options.onError())})):t.target.classList.contains("download-pdf")&&(this.popup.hide(),this.options.onClose&&this.options.onClose())}},{key:"render",value:function(){}}]),s}(),WebsyPopupDialog=function(){function s(t,e){if(_classCallCheck(this,s),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(s,[{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 s=document.getElementById("".concat(this.elementId,"_collect"));s&&(i.collectedData=s.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()}}]),s}(),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 s(t,e){var i=this;_classCallCheck(this,s);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(s,[{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),s=this.canvas.getContext("2d"),n=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;){n++,s.font="".concat(h," ").concat(n,"px ").concat(c);var m=s.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&&n===this.options.maxHeight?(n=this.options.maxHeight,a=m.actualBoundingBoxAscent,o=!0):(m.width>d||m.actualBoundingBoxAscent>=u)&&(n--,a=m.actualBoundingBoxAscent,o=!0)}if(""===this.options.minHeight&&(this.options.minHeight=void 0),void 0!==this.options.minHeight)if(this.options.minHeight>n&&!0===this.options.wrapText){o=!(e=!0),n=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;){n++,s.font="".concat(h," ").concat(n,"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=s.measureText(w);if(-1!==navigator.userAgent.indexOf("Safari"))for(var I=!1,k=i;!1===I;)0<k.clientHeight?(u=k.clientHeight,I=!0):k.parentNode?k=k.parentNode:I=!0;if(void 0!==this.options.maxHeight&&n===this.options.maxHeight){n=this.options.maxHeight,a=x.actualBoundingBoxAscent,o=!0;break}if(x.width>d||x.actualBoundingBoxAscent>=u/2*.75){n--,a=x.actualBoundingBoxAscent,o=!0;break}}}}void 0!==this.options.minHeight&&this.options.minHeight>n&&(n=this.options.minHeight)}else this.options.minHeight>n&&(n=this.options.minHeight);var L=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(n,"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?L*(1/3)*2:L),"px;\n line-height: ").concat(Math.ceil(!0===e?1.2*n:L),"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 ")}}}]),s}(),WebsyResultList=function(){function n(t,e){var i=this;_classCallCheck(this,n);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 s=document.getElementById(t);s&&(s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("change",this.handleChange.bind(this)),s.addEventListener("keyup",this.handleKeyUp.bind(this)),s.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(n,[{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,s=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],h=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,n=2<arguments.length?arguments[2]:void 0,d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:[],o="";return this.options.template&&(0<s.length?s.forEach(function(l,a){var r="".concat(0<a?"--\x3e":"").concat(n||c.options.template).concat(a<s.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 s=[],n=!0;-1!==i.indexOf("===")?s=i.split("==="):-1!==i.indexOf("!==")?(s=i.split("!=="),n=!1):-1!==i.indexOf("==")?s=i.split("=="):-1!==i.indexOf("!=")&&(s=i.split("!="),n=!1);var o=!0;if(2===s.length&&(isNaN(s[1])||(s[1]=+s[1]),"true"===s[1]&&(s[1]=!0),"false"===s[1]&&(s[1]=!1),"string"==typeof s[1]&&(-1!==s[1].indexOf('"')?s[1]=s[1].replace(/"/g,""):-1!==s[1].indexOf("'")&&(s[1]=s[1].replace(/'/g,""))),!0===n?void 0!==l[s[0]]&&l[s[0]]===s[1]?o=!1:s[0]===s[1]&&(o=!1):!1===n&&void 0!==l[s[0]]&&l[s[0]]!==s[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[^>]*>/),s=t[0].replace(i,"").replace("</for>","").replace(/<\s*for[^>]*>/g,"");if(e&&e[0]){var n=e[0].trim().replace("items=","");'"'===n.split("")[0]?n=n.replace(/"/g,""):"'"===n.split("")[0]&&(n=n.replace(/'/g,""));var o=l;n.split(".").forEach(function(t){o=o[t]}),r=r.replace(t[0],c.buildHTML(o,0,s,[].concat(_toConsumableArray(d),["".concat(h+a,":").concat(n)])))}}),_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 s=this.flattenObject(t[i]);for(var n in s)s.hasOwnProperty(n)&&(e[i+"."+n]=s[n])}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 s=t.target.getAttribute("data-event");if(s){s=s.split("(");var n=[],o=t.target.getAttribute("data-id"),a=t.target.getAttribute("data-locator");s[1]&&(s[1]=s[1].replace(")",""),n=s[1].split(",")),s=s[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(n=n.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][s])t.stopPropagation(),(l=this.options.listeners[i][s]).call.apply(l,[this,t,r[+o]].concat(_toConsumableArray(n)))}}},{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()}}]),n}(),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 s={path:"",items:{}},n="";this.currentParams&&this.currentParams.items?(s.items=_extends({},this.currentParams.items,t),n=this.buildUrlPath(s.items)):0<Object.keys(t).length&&(s.items=_extends({},t),n=this.buildUrlPath(s.items)),s.path=n,!1===e&&(this.currentParams=s);var o=this.currentView;this.options.urlPrefix&&(o="/".concat(this.options.urlPrefix,"/").concat(o)),!0===e?this.navigate("".concat(o,"?").concat(n),"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],s=!(2<arguments.length&&void 0!==arguments[2])||arguments[2];this.previousParams=_extends({},this.currentParams);var n="";this.currentParams&&this.currentParams.items&&(t.forEach(function(t){delete e.currentParams.items[t]}),n=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(n),"main",null,s):!1===s&&(this.currentParams={items:this.currentParams.items,path:n},this.updateHistory(o,!s,!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]")),s=0;s<i.length;s++){var n=i[s].getAttribute("data-group"),o=i[s].getAttribute("data-view");this.groups[n]||this.addGroup(n),i[s].classList.contains(this.options.activeClass)&&(this.groups[n].activeView=o),-1===this.groups[n].views.indexOf(o)&&this.groups[n].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("&"),s=0;s<i.length;s++){var n=i[s].split("=");n[0]&&""!==n[0]&&n[1]&&""!==n[1]&&(e.items[n[0]]=n[1])}return this.currentParams=e}}},{key:"generateId",value:function(t){for(var e="abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789",i=[],s=0;s<6;s++){var n=Math.floor(62*Math.random());i.push(e[n])}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),s=0;s<i.length;s++)this.hideTriggerItems(i[s].view,e),this.hideViewItems(i[s].view,e),this.publish("hide",[i[s].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 s="\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&&(s+="\n <Help not yet supported>\n "),e&&e.tooltip&&e.tooltip.value&&""!==e.tooltip.value&&(s+='\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=s)}},{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(s){var n=this;return new Promise(function(i,t){n.options.views[s]||(n.options.views[s]={components:[]}),!0===n.options.views[s].ready?i():n.options.views[s].template?n.preloadView(s,function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=document.querySelector("[data-view='".concat(s,"'].").concat(n.options.viewClass));e?n.options.views[s].templateInstance=new WebsyDesigns.Template(e,{template:n.options.views[s].template,data:t,readyCallbackFn:function(){n.options.views[s].ready=!0,i()}}):(console.log("No view element found for '".concat(s,"' to render template")),n.options.views[s].ready=!0,i())}):!0!==n.options.views[s].ready&&n.options.views[s].load?n.preloadView(s,function(){0<arguments.length&&void 0!==arguments[0]&&arguments[0];n.options.views[s].ready=!0,i()}):(n.options.views[s].ready=!0,i())})}},{key:"showView",value:function(i,s,n){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,n]);o.previousView!==o.currentView||"main"!==n?(o.showComponents(i),o.options.views[i].show&&o.options.views[i].show.call(o.options.views[i]),o.publish("show",[i,s,n])):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,s,n]))})}},{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,s=3<arguments.length?arguments[3]:void 0;if(0!==t.indexOf("http")){void 0===s&&(s=!1),this.popped=s;var n,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&&(n=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!==n){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,s)}!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 s=0;s<i.length;s++)i[s].classList.remove(this.options.activeClass)}},{key:"activateItem",value:function(t,e){var i=document.getElementsByClassName(e);if(i)for(var s=0;s<i.length;s++)if(i[s].attributes[this.options.viewAttribute]&&i[s].attributes[this.options.viewAttribute].value===t){i[s].classList.add(this.options.activeClass);break}}}]),e}(),WebsySearch=function(){function s(t,e){_classCallCheck(this,s),this.elementId=t;this.options=_extends({},{searchIcon:'<svg class=\'search\' 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>',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>',clearAlwaysOn:!1,placeholder:"Search",searchTimeout:500,suggestTimeout:100,suggestingTimeout:3e3,suggestLimit:5,minLength:2},e),this.searchTimeoutFn=null,this.suggestTimeoutFn=null,this.suggestingTimeoutFn=null,this.isSuggesting=!1,this.inSuggestions=!1,this.cursorPosition=0,this.terms=[],this.Key={BACKSPACE:8,ESCAPE:27,CONTROL:17,COMMAND:91,PASTE:86,TAB:9,ENTER:13,SHIFT:16,UP:38,DOWN:40,RIGHT:39,LEFT:37,DELETE:46,SPACE:32};var i=document.getElementById(t);i?(i.addEventListener("click",this.handleClick.bind(this)),i.addEventListener("keyup",this.handleKeyUp.bind(this)),i.addEventListener("keydown",this.handleKeyDown.bind(this)),i.addEventListener("mouseover",this.handleMouseOver.bind(this)),i.innerHTML="\n <div class='websy-search-input-container'>\n ".concat(this.options.searchIcon,"\n <div id='").concat(this.elementId,"_ghost' class='websy-search-input-ghost'></div>\n <div id='").concat(this.elementId,"_lozenges' class='websy-search-lozenge-container'></div>\n <input id='").concat(this.elementId,"_search' class='websy-search-input' placeholder='").concat(this.options.placeholder||"Search","' value='").concat(this.options.initialValue||"","' autocorrect='off' autocomplete='off' autocapitalize='off' spellcheck='false'>\n <div id='").concat(this.elementId,"_ambiguities' class='websy-search-ambiguity-container'></div>\n <div class='clear ").concat(!0===this.options.clearAlwaysOn?"":"websy-hidden","' id='").concat(this.elementId,"_clear'>\n ").concat(this.options.clearIcon,"\n </div>\n <div id='").concat(this.elementId,"_suggestions' class='websy-search-suggestion-container'>\n <ul id='").concat(this.elementId,"_suggestionList'></ul>\n </div>\n <div id='").concat(this.elementId,"_associations' class='websy-search-association-container'>\n <ul id='").concat(this.elementId,"_associationsList'></ul>\n </div>\n </div>\n ")):console.log("No element found with Id",t)}return _createClass(s,[{key:"acceptSuggestion",value:function(){this.searchText=this.ghostQuery,this._suggestions=[],this.hideSuggestions();var t=document.getElementById("".concat(this.elementId,"_search"));t&&(t.value=this.searchText),this.options.onSearch&&this.options.onSearch(this.searchText)}},{key:"handleClick",value:function(t){t.target.classList.contains("clear")?(document.getElementById("".concat(this.elementId,"_search")).value="",this.options.onClear&&this.options.onClear()):t.target.classList.contains("websy-search-suggestion-item")&&this.acceptSuggestion()}},{key:"handleKeyDown",value:function(t){if("Enter"===t.key){if(this.options.onSubmit)return this.options.onSubmit(t.target.value),t.preventDefault(),!1}else t.keyCode===this.Key.ESCAPE?this.hideSuggestions():t.keyCode===this.Key.CONTROL||t.keyCode===this.Key.COMMAND?this.isCutCopyPaste=!0:t.keyCode===this.Key.PASTE&&this.isCutCopyPaste?this.isPaste=!0:t.keyCode===this.Key.DOWN?(this.inSuggestions=!0,this.showSuggestions()):t.keyCode===this.Key.UP?(this.inSuggestions&&t.preventDefault(),this.inSuggestions=!1):t.keyCode===this.Key.RIGHT?this.suggesting&&this.inSuggestions&&(t.preventDefault(),this.nextSuggestion()):t.keyCode===this.Key.LEFT?this.suggesting&&this.inSuggestions&&(t.preventDefault(),this.prevSuggestion()):t.keyCode===this.Key.ENTER||t.keyCode===this.Key.TAB?this.suggesting?(t.preventDefault(),this.acceptSuggestion()):this.associating&&t.keyCode===this.Key.ENTER&&(t.preventDefault(),this.hideAssociations()):t.keyCode===this.Key.SPACE&&this.hideSuggestions()}},{key:"handleKeyUp",value:function(t){var e=this;if(t.target.classList.contains("websy-search-input")){if(this.cursorPosition=t.target.selectionStart,this.searchText=t.target.value,this.searchTimeoutFn&&clearTimeout(this.searchTimeoutFn),"Enter"===t.key||"Tab"===t.key)return!1;var i=document.getElementById("".concat(this.elementId,"_clear"));!1===this.options.clearAlwaysOn&&(0<t.target.value.length?i.classList.remove("websy-hidden"):i.classList.add("websy-hidden")),this.options.onKeyUp&&this.options.onKeyUp(t.target.value,t),t.target.value.length>=this.options.minLength?this.searchTimeoutFn=setTimeout(function(){e.options.onSearch&&e.options.onSearch(t.target.value,t)},this.options.searchTimeout):!this.options.onSearch||"Delete"!==t.key&&"Backspace"!==t.key||this.options.onSearch&&this.options.onSearch("",t)}this.renderLozenges()}},{key:"handleMouseOver",value:function(t){if(t.target.classList.contains("websy-search-suggestion-item")){this.startSuggestionTimeout();var e=t.target.getAttribute("data-index");this.activeSuggestion=+e,this.renderGhost(),this.highlightActiveSuggestion()}}},{key:"hideSuggestions",value:function(){this.suggesting=!1,this.activeSuggestion=0,this.inSuggestions=!1,this.ghostPart="",this.ghostQuery="",this.ghostDisplay="",this.hideGhost();var t=document.getElementById("".concat(this.elementId,"_suggestions"));t&&t.classList.remove("active")}},{key:"hideGhost",value:function(){var t=document.getElementById("".concat(this.elementId,"_ghost"));t&&(t.innerHTML="")}},{key:"highlightActiveSuggestion",value:function(){var e=this;if(document.getElementById(this.elementId)){var t=document.querySelectorAll(".websy-search-suggestion-item");Array.from(t).forEach(function(t){t.classList.remove("active"),+t.getAttribute("data-index")===e.activeSuggestion&&t.classList.add("active")})}}},{key:"nextSuggestion",value:function(){this.startSuggestionTimeout(),this.activeSuggestion===this._suggestions.length-1?this.activeSuggestion=0:this.activeSuggestion++,this.renderGhost(),this.highlightActiveSuggestion()}},{key:"prevSuggestion",value:function(){this.startSuggestionTimeout(),0===this.activeSuggestion?this.activeSuggestion=this._suggestions.length-1:this.activeSuggestion--,this.renderGhost(),this.highlightActiveSuggestion()}},{key:"renderGhost",value:function(){this.ghostPart=function(t,e){var i=t.toLowerCase();e=e.toLowerCase();for(;-1===e.indexOf(i);)(i=i.split(" ")).splice(0,1),i=i.join(" ");var s=new RegExp(i,"i");return e.replace(s,"")}(this.searchText,this._suggestions[this.activeSuggestion].label),this.ghostQuery=this.searchText+this.ghostPart;var t="<span style='color: transparent;'>".concat(this.searchText,"</span>").concat(this.ghostPart),e=document.getElementById("".concat(this.elementId,"_ghost"));e&&(e.innerHTML=t)}},{key:"renderLozenges",value:function(){var e=(this.searchText||"").split("").map(function(t){return{text:t}});this._terms.sort(function(t,e){return e.position-t.position}).forEach(function(t){e.splice(t.position,t.length,{text:t.term,term:t})});var t=e.map(function(t){var e="<div";return t.term&&t.term.label&&(e+='\n data-label="'.concat(t.term.label,'"\n ')),e+=">".concat(t.text.replace(/ /g,"&nbsp;"),"</div>")}),i=document.getElementById("".concat(this.elementId,"_lozenges"));i&&(i.innerHTML=t.join(""))}},{key:"renderSuggestion",value:function(){for(var t="",e=0;e<this._suggestions.length;e++)t+="\n <li id='".concat(this.elementId,"_suggestion_").concat(e,"' class='websy-search-suggestion-item' data-index='").concat(e,"'>\n ").concat(this._suggestions[e].label,"\n </li>\n ");var i=document.getElementById("".concat(this.elementId,"_suggestionList"));i&&(i.innerHTML=t),this.highlightActiveSuggestion()}},{key:"showSuggestions",value:function(){if(this.startSuggestionTimeout(),this.searchText&&1<this.searchText.length&&this.cursorPosition===this.searchText.length&&0<this._suggestions.length){this.suggesting||(this.activeSuggestion=0,this.suggesting=!0),this.renderGhost();var t=document.getElementById("".concat(this.elementId,"_suggestions"));t&&t.classList.add("active"),this.renderSuggestion()}else this.suggesting=!1,this.hideGhost(),this.hideSuggestions()}},{key:"startSuggestionTimeout",value:function(){var t=this;this.suggestingTimeoutFn&&clearTimeout(this.suggestingTimeoutFn),this.suggestingTimeoutFn=setTimeout(function(){t.hideSuggestions(t)},this.options.suggestingTimeout)}},{key:"suggestions",set:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];this._suggestions=t.splice(0,this.options.suggestLimit),this.showSuggestions()}},{key:"text",get:function(){var t=document.getElementById("".concat(this.elementId,"_search"));return t?t.value:""},set:function(t){var e=document.getElementById("".concat(this.elementId,"_search"));e&&(e.value=t)}},{key:"terms",set:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];this._terms=t,console.log("terms",t),this.renderLozenges()}}]),s}(),WebsySignup=function(){function s(t,e){_classCallCheck(this,s);if(this.elementId=t,this.options=_extends({},{loginType:"email",classes:[],url:"auth/signup"},e),document.getElementById(this.elementId)){var i={useRecaptcha:this.options.useRecaptcha||ENVIRONMENT.useRecaptcha||!1,submit:{text:this.options.buttonText||"Sign up",classes:(this.options.buttonClasses||[]).join(" ")||""},submitFn:this.submitForm.bind(this),fields:[{label:"email"===this.options.loginType?"Email":"Username",placeholder:"Enter ".concat("email"===this.options.loginType?"your email address":"your chosen Username"),field:this.options.loginType,type:this.options.loginType,required:!0},{label:"Password",placeholder:"Enter your password",field:this.options.passwordField||"password",type:"password",required:!0}]};this.options.fields&&(i.fields=this.options.fields.concat(i.fields)),this.signupForm=new WebsyDesigns.WebsyForm(this.elementId,_extends({},this.options,i))}else console.error("No element with ID ".concat(this.elementId," found for WebsyLogin component."))}return _createClass(s,[{key:"submitForm",value:function(t,e,i){console.log(t),console.log(e,i)}}]),s}(),Switch=function(){function s(t,e){_classCallCheck(this,s),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(s,[{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 '))}}]),s}(),WebsyTemplate=function(){function n(t,e){var i=this;_classCallCheck(this,n);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 s=document.getElementById(t);s&&s.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(n,[{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 s=[],n=!0;-1!==i.indexOf("===")?s=i.split("==="):-1!==i.indexOf("!==")?(s=i.split("!=="),n=!1):-1!==i.indexOf("==")?s=i.split("=="):-1!==i.indexOf("!=")&&(s=i.split("!="),n=!1);var o=!0;if(2===s.length&&(isNaN(s[1])||(s[1]=+s[1]),"true"===s[1]&&(s[1]=!0),"false"===s[1]&&(s[1]=!1),"string"==typeof s[1]&&(-1!==s[1].indexOf('"')?s[1]=s[1].replace(/"/g,""):-1!==s[1].indexOf("'")&&(s[1]=s[1].replace(/'/g,""))),!0===n?void 0!==l.options.data[s[0]]&&l.options.data[s[0]]===s[1]?o=!1:s[0]===s[1]&&(o=!1):!1===n&&void 0!==l.options.data[s[0]]&&l.options.data[s[0]]!==s[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 s=new RegExp("{".concat(i,"}"),"gm");s&&(r=r.replace(s,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 s=t.target.getAttribute("data-event");if(s){s=s.split("(");var n,o=t.target.getAttribute("data-id"),a=this.options.data;if(t.target.classList.contains(e)&&this.options.listeners[i]&&this.options.listeners[i][s])t.stopPropagation(),(n=this.options.listeners[i][s]).call.apply(n,[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()}}]),n}(),WebsyUtils={createIdentity:function(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:6,e="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",s=0;s<t;s++)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",s=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"#ffffff",n=0,o=0,a=0,l=1;return-1!==t.indexOf("#")?(e=(e=t=t.replace("#","")).split(""),n=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")&&(n=(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*n+.587*o+.114*a)/l?i:s},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 s="<div style='display: inline-block; width: auto; font-size: ".concat(i,"'>").concat(t,"</div>"),n=document.createElement("div");n.style.position="absolute",n.style.visibility="hidden",n.style.transform="rotate(".concat(e,"deg)"),n.innerHTML=s,document.body.appendChild(n);var o=n.getBoundingClientRect();return n.remove(),o},parseUrlParams:function(){for(var t={},e=window.location.search.replace("?","").split("&"),i=0;i<e.length;i++){var s=e[i].split("=");t[s[0]]=s[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,s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,n=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,s=0;s<l.length;s++)if(t>=l[s].divider){i=l[s].divider,e=l[s].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===n&&(e*=100),0<e%1&&(s=1),e<1&&0===s&&(s=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(s),!0===o)return e;return e.replace&&(e=e.replace(/\B(?=(\d{3})+(?!\d))/g,",")),"".concat(e).concat(r).concat(!0===n?"%":"")},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 s=document.getElementById(this.elementId);if(s){var n="\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&&(n+='\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];s.innerHTML=n,"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)}})),s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("mouseout",this.handleMouseOut.bind(this)),s.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 s=t.value;!0===a.options.columns[e].showAsImage&&(t.value="\n <img src='".concat(t.value,"'>\n "));var n="\n <td \n ";return!a.options.columns[e].showAsImage&&t.value&&t.value.indexOf&&-1===t.value.indexOf("<svg")&&-1===t.value.indexOf("<img")&&(n+="\n data-info='".concat(s,"'\n ")),n+="\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 s=t.target.getAttribute("data-field");window.viewManager.views.global.objects[1].instance.show(s,{x:t.pageX,y:t.pageY},function(){t.target.classList.remove("active")})}else if(t.target.classList.contains("websy-page-num")){var n=+t.target.getAttribute("data-page");this.options.onSetPage&&this.options.onSetPage(n)}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 s="value",n="asc"===t.sort?"desc":"asc";t.sort=n;var o=t.sortType||"alphanumeric";t.sortProp&&(s=t.sortProp),this.data.sort(function(t,e){switch(o){case"numeric":return"asc"===n?t[i][s]-e[i][s]:e[i][s]-t[i][s];default:return"asc"===n?t[i][s]>e[i][s]?1:-1:t[i][s]<e[i][s]?1:-1}})}this.render(this.data)}},{key:"render",value:function(t){var s=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?s.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 n=document.getElementById("".concat(this.elementId,"_pageList"));if(n){var o=new Array(this.options.pageCount).fill("").map(function(t,e){return'<li data-page="'.concat(e,'" class="websy-page-num ').concat(s.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>')))),n.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 s=document.getElementById("".concat(this.elementId,"_errorTitle"));s&&(s.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 s=document.getElementById(this.elementId);if(s){var n="\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&&(n+='\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];s.innerHTML=n,"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)}})),s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("mouseout",this.handleMouseOut.bind(this)),s.addEventListener("mousemove",this.handleMouseMove.bind(this)),s.addEventListener("mousedown",this.handleMouseDown.bind(this)),s.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,n){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+n,"' \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 s=t.value;return!0===o.options.columns[e].showAsImage&&(t.value="\n <img src='".concat(t.value,"'>\n ")),"\n <td \n data-info='".concat(s,"' \n data-row-index='").concat(o.rowCount+n,"' \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+n,"' \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 s=document.getElementById("".concat(this.elementId,"_head"));document.getElementById("".concat(this.elementId,"_vScrollContainer")).style.top="".concat(s.clientHeight,"px")}for(var n=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;n.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"),s=this.options.columns[e];this.options.onSort?this.options.onSort(t,s,e,i):this.internalSort(s,e)}else if(t.target.classList.contains("websy-table-search-icon")){var n=+t.target.getAttribute("data-col-index");this.options.columns[n].onSearch&&this.options.columns[n].onSearch(t,this.options.columns[n])}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 s="value",n="asc"===t.sort?"desc":"asc";t.sort=n;var o=t.sortType||"alphanumeric";t.sortProp&&(s=t.sortProp),this.data.sort(function(t,e){switch(o){case"numeric":return"asc"===n?t[i][s]-e[i][s]:e[i][s]-t[i][s];default:return"asc"===n?t[i][s]>e[i][s]?1:-1:t[i][s]<e[i][s]?1:-1}})}this.render(this.data)}},{key:"render",value:function(t){var s=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?s.buildSearchIcon(e):"","\n </div>\n </th>\n ")}}).join("")+"</tr>";document.getElementById("".concat(this.elementId,"_head")).innerHTML=i;var n=document.getElementById("".concat(this.elementId,"_dropdownContainer"));if(""===n.innerHTML){var o="";this.options.columns.forEach(function(t,e){t.searchable&&t.searchField&&(o+='\n <div id="'.concat(s.elementId,"_columnSearch_").concat(e,'" class="websy-modal-dropdown"></div>\n '))}),n.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(s.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 s=document.getElementById("".concat(this.elementId,"_errorTitle"));s&&(s.innerHTML=t.title)}if(t.message){var n=document.getElementById("".concat(this.elementId,"_errorMessage"));n&&(n.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 s=document.getElementById("".concat(this.elementId,"_head")),n=document.getElementById("".concat(this.elementId,"_body"));s.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>",n.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=n.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},n.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 s=document.getElementById(this.elementId);if(s.style.position="relative",s){var n="\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&&(n+='\n <div id="'.concat(this.elementId,'_touchScroller" class="websy-table-touch-scroller"></div>\n ')),n+=' \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&&(n+='\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 ')),s.innerHTML=n;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)}s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("mousedown",this.handleMouseDown.bind(this)),s.addEventListener("touchstart",this.handleTouchStart.bind(this)),s.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,s=t.index||e;if(void 0!==h[i]&&!1!==l.options.columns[l.options.columns.length-1][s].show){var n="",o="";!0!==r||1!=+t.colspan&&t.colspan||(o=n="width: ".concat(h[i].width||h[i].actualWidth,"px!important; ")),t.style&&(n+=t.style),!0!==r||1!=+t.colspan&&t.colspan||(n+="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&&(n+="background-color: ".concat(t.backgroundColor,"; "),t.color||(n+="color: ".concat(WebsyDesigns.Utils.getLightDark(t.backgroundColor),"; "))),t.color&&(n+="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(n,"'\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(s,"'\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(s,"'\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 n=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!==n.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; "),s="width: ".concat(l[e].width||l[e].actualWidth,"px!important; ");!0===o&&(i+="max-width: ".concat(l[e].width||l[e].actualWidth,"px!important;"),s+="max-width: ".concat(l[e].width||l[e].actualWidth,"px!important;")),1<t.colspan&&(s="width: 100%;"),t.style&&(i+=t.style),a+="<td \n class='websy-table-cell ".concat(e<n.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(s,"'\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?n.buildSortIcon(t.sort,e):"").concat(!0===t.searchable?n.buildSearchIcon(t,e):"","\n </div>\n </td>")}}),a+="</tr>"});var s=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(n.elementId,"_columnSearch_").concat(t.dimId||e))){var i=document.createElement("div");i.id="".concat(n.elementId,"_columnSearch_").concat(t.dimId||e),i.className="websy-modal-dropdown",s.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,s=0<arguments.length&&void 0!==arguments[0]&&arguments[0];if(!this.options.totals)return"";var n=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!==n[e]&&!1!==n[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===s&&(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 s=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,n=3<arguments.length?arguments[3]:void 0;this.totalRowCount=e,this.totalColumnCount=i,this.pinnedColumns=n;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();s.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>=s.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>=s.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)===s.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===s.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)),s.sizes.totalWidth+=t.width||t.actualWidth,e>s.pinnedColumns&&(s.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(n){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(n){for(var i="",s=0;s<Math.min(n.length,1e3);s++)n[s].length===o.options.columns[o.options.columns.length-1].length&&i.length<n[s][e].value.length&&(i=n[s][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"),s=+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,+s,+e);else if(t.target.classList.contains("websy-table-cell-expand"))this.options.onExpandCell&&this.options.onExpandCell(t,+s,+e);else if(t.target.classList.contains("sortable-column")){var n=this.options.columns[this.options.columns.length-1][e];this.options.onSort?this.options.onSort(t,n,e):this.internalSort(n,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:s,cell:(this.currentData[s]||[])[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 s=document.getElementById("".concat(this.elementId,"_vScrollHandle")),n=(document.getElementById("".concat(this.elementId,"_vScrollContainer")).getBoundingClientRect().height-s.getBoundingClientRect().height)/this.totalRowCount;t.deltaY<0&&(n*=-1),this.scrollY(n)}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,s=Math.abs(e*(1/(t/1e3))),n=1.5*t/1e3,o=Math.abs(Math.ceil(s/this.sizes.cellHeight)),a=o/n,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 s=document.getElementById("".concat(this.elementId,"_tableInner"));s&&(s.style.width="".concat(this.sizes.totalWidth,"px")),this.renderColumnHeaders(),this.renderTotals(),t&&this.appendRows(t);var n=document.getElementById("".concat(this.elementId,"_tableBody"));if(n){if(n.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 s=document.getElementById("".concat(this.elementId,"_errorTitle"));s&&(s.innerHTML=t.title)}if(t.message){var n=document.getElementById("".concat(this.elementId,"_errorMessage"));n&&(n.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,s=document.getElementById("".concat(this.elementId,"_hScrollContainer")),n=document.getElementById("".concat(this.elementId,"_hScrollHandle"));i=void 0!==this.handleXStart&&null!==this.handleXStart?this.handleXStart+t:n.offsetLeft+t;var o=s.getBoundingClientRect().width-n.getBoundingClientRect().width;if(n.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),n.offsetWidth+n.offsetLeft>=s.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,s=document.getElementById("".concat(this.elementId,"_vScrollContainer")),n=document.getElementById("".concat(this.elementId,"_vScrollHandle"));i=void 0!==this.handleYStart&&null!==this.handleYStart?this.handleYStart+t:+n.style.top.replace("px","")+t;var o=s.getBoundingClientRect().height-n.getBoundingClientRect().height;n.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 n(t,e){var a=this;_classCallCheck(this,n);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,s=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n="bottom";"horizontal"===a.options.orientation&&(n="left"),!0===s&&(n+="Brush"),n+="Axis";a.options.data[n.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 s=this;this.brushed=function(t){var e=s.options.margin.left+s.options.margin.axisLeft+(1-t.selection[0]/(s.plotWidth/(s.widthForCalc+s.totalBandPadding))),i=s.options.margin.top+s.options.margin.axisTop;"horizontal"===s.options.orientation&&(e=s.options.brushHeight+s.options.margin.left+s.options.margin.axisLeft,i=s.options.margin.top+s.options.margin.axisTop+(1-t.selection[0]/(s.plotHeight/(s.widthForCalc+s.totalBandPadding)))),s.plotArea&&s.plotArea.attr("transform","translate(".concat(e,", ").concat(i,")")),s.areaLayer&&s.areaLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),s.lineLayer&&s.lineLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),s.barLayer&&s.barLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),s.labelLayer&&s.labelLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),s.symbolLayer&&s.symbolLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),s.refLineLayer&&s.refLineLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),"horizontal"===s.options.orientation?s.leftAxisLayer&&s.leftAxisLayer.attr("transform","translate(".concat(s.options.brushHeight+s.options.margin.left+s.options.margin.axisLeft,", ").concat(i,")")):s.bottomAxisLayer&&s.bottomAxisLayer.attr("transform","translate(".concat(e,", ").concat(i+s.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(n,[{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=[],s="bottom";if("horizontal"===this.options.orientation&&(s="left"),0<this.brushedDomain.length&&t===s&&!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 n=this.options.data[t].data[0].value,o=this.options.data[t].data[this.options.data[t].data.length-1].value;i=[n=this.parseX(n),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",s=0;s<t;s++)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],s=e.data[t];if("horizontal"===r.options.orientation&&(i=_toConsumableArray(e.data).reverse()[t-1],s=_toConsumableArray(e.data).reverse()[t]),i&&!s&&(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))),s&&!i&&(h=r[d](r.parseX(s.x.value)),m=s.x.value,s.y.color||(s.y.color=e.color),g.push(s),void 0!==s.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(s.x.value))),i&&s){var n=r[d](r.parseX(i.x.value)),o=r[d](r.parseX(s.x.value)),a=Math.abs(n-o)/2;d3.pointer(l)[0]-n>=a?(h=o,m=s.x.value,void 0!==s.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(s.x.value)),s.y.color||(s.y.color=e.color),g.push(s)):(h=n,m=i.x.value,void 0!==s.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(s.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 s=0;"Time"!==this.options.data[p].scale&&(s=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+s}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 n=h,o=h,a=0,f=this.plotHeight;"horizontal"===this.options.orientation&&(n=0,o=this.plotWidth,f=a=h),this.trackingLineLayer.select(".tracking-line").attr("x1",n).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 s=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(s)+"px"),this.legend.options.maxSize&&this.legendArea.style("width","".concat(this.legend.options.maxSize,"px"))}this.legend.data=i;var n=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=n.height,this.legendArea.style("top","0").style("bottom","unset")),"bottom"===this.options.legendPosition&&(this.options.margin.legendBottom=n.height,this.legendArea.style("top","unset").style("bottom","0")),"left"===this.options.legendPosition&&(this.options.margin.legendLeft=n.width,this.legendArea.style("left","0").style("right","unset").style("top","0")),"right"===this.options.legendPosition&&(this.options.margin.legendRight=n.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],k=[0,this.plotWidth],L=[this.plotHeight,0],C=[this.options.brushHeight,0];"horizontal"===this.options.orientation&&(C=[this.plotHeight,0],k=[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 T=0;this["custom".concat(_,"Range")]=[0].concat(_toConsumableArray(this.options.data[S].data.map(function(t,e,i){for(var s=l.bandPadding*e+l.bandPadding,n=l.widthForCalc/v*T,o=0;o<(t.valueCount||1);o++){var a=o*h;l["custom".concat(_,"DetailRange")].push(n+s+a)}return T+="stacked"!==l.options.grouping&&!0===l.options.allowUnevenBands&&t.valueCount||1,l.widthForCalc/v*T+s}))),T=0,this["custom".concat(_,"BrushRange")]=[0].concat(_toConsumableArray(this.options.data[S].data.map(function(t,e,i){l.brushBandPadding,l.brushBandPadding;return T+="stacked"!==l.options.grouping&&!0===l.options.allowUnevenBands&&t.valueCount||1,("vertical"===l.options.orientation?l.plotWidth:l.plotHeight)/v*T})))}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]:L=[this.widthForCalc+this.totalBandPadding,0],!0!==this.options.allowBrushing&&(I=k),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(k)),this.bottomAxis.nice,this.bottomAxis.padding&&this.options.data.bottom.padding&&this.bottomAxis.padding(this.options.data.bottom.padding||0);var D="brushX",A=this.plotWidth,E=this.plotWidth,B=this.options.brushHeight;if("horizontal"===this.options.orientation?(D="brushY",A=this.options.brushHeight,B=this.plotHeight,this.brushNeeded&&(E=this.plotHeight*(this.plotHeight/(this.widthForCalc+this.totalBandPadding)))):this.brushNeeded&&(E=this.plotWidth*(this.plotWidth/(this.widthForCalc+this.totalBandPadding))),this.brush=d3[D]().extent([[0,0],[A,B]]).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,E])):this.brushLayer.style("visibility","hidden"),0<this.options.margin.axisBottom){var P,M="";if(this.options.data.bottom.data)if("Time"===this.options.data.bottom.scale){var R=this.options.data.bottom.max.getTime()-this.options.data.bottom.min.getTime(),W=864e5;M=R<6e5?(P=d3.timeSecond.every(15),"%H:%M:%S"):R<36e5?(P=d3.timeMinute.every(1),"%H:%M"):R<W/6?(P=d3.timeMinute.every(10),"%H:%M"):R<W/2?(P=d3.timeMinute.every(30),"%H:%M"):R<W?(P=d3.timeHour.every(1),"%H:%M"):R<7*W?(P=d3.timeDay.every(1),"%d %b @ %H:%M"):R<14*W?(P=d3.timeDay.every(2),"%d %b %Y"):R<21*W?(P=d3.timeDay.every(3),"%d %b %Y"):R<28*W?(P=d3.timeDay.every(4),"%d %b %Y"):R<60*W?(P=d3.timeDay.every(7),"%d %b %Y"):(P=d3.timeMonth.every(1),"%b %Y")}else P=this.options.data.bottom.ticks||Math.min(this.options.data.bottom.data.length,5);else P=this.options.data.bottom.ticks||5;this.options.calculatedTimeFormatPattern=M,this.bAxisFunc=d3.axisBottom(this.bottomAxis).ticks(P),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"),F=this.createDomain("right"),O=this.createDomain("right");if(this.leftAxis=d3["scale".concat(this.options.data.left.scale||"Linear")]().domain(H).range(L),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<F.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<F.length&&(this.rightAxis=d3["scale".concat(this.options.data.right.scale||"Linear")]().domain(F).range([this.plotHeight,0]),this.rightBrushAxis=d3["scale".concat(this.options.data.right.scale||"Linear")]().domain(O).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<F.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 U in this.renderedKeys)-1===j.indexOf(U)&&(this.removeline(U),this.removebar(U),this.removesymbol(U),this.removelabel(U));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 n=this,i=function(s,e,t){return d3.area().x(function(t){if("Time"===n.options.data[s].scale)return n["".concat(s,"Axis")](n.parseX(t.x.value));var e=n[s+"Axis"].domain().indexOf(t.x.value),i=n["custom".concat(s.toInitialCaps(),"Range")][e];return n["custom".concat(s.toInitialCaps(),"Range")][e+1]&&(i+=(n["custom".concat(s.toInitialCaps(),"Range")][e+1]-i)/2),i}).y0(function(t){return n["".concat(e,"Axis")](0)}).y1(function(t){return n["".concat(e,"Axis")](isNaN(t.y.value)?0:t.y.value)}).curve(d3[t||n.options.curveStyle])},s="bottom",o="secondary"===e.axis?"right":"left";"horizontal"===this.options.orientation&&(s="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(s,o,e.curveStyle)(t)}),a.enter().append("path").attr("d",function(t){return i(s,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,s="bottom",n="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,s){var n;if("horizontal"===this.options.orientation)n=Math.max(1,this.options.data[s].bandWidth-(-1!==s.indexOf("Brush")?2:2*this.options.groupPadding));else{var o=l.call(this,t,e,i,s);if(null==o)return null;n=this["".concat(i,"Axis")](0)-this["".concat(i,"Axis")](Math.abs(t.y.value))}return isNaN(n)?null:n}function p(t,e,i,s){var n;if("horizontal"===this.options.orientation)n=this["".concat(i,"Axis")](0)-this["".concat(i,"Axis")](Math.abs(t.y.value));else{var o=l.call(this,t,e,i,s);if(null==o)return null;n=Math.max(1,this.options.data[s].bandWidth-(-1!==s.indexOf("Brush")?2:2*this.options.groupPadding))}return isNaN(n)?0:n}function l(t,e,i,s){var n;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,s),a=p.call(this,t,e,i,s);n=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,s);n=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[s].bandWidth*r+(-1!==s.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==s.indexOf("Brush")?1:this.options.groupPadding);n=0<this["custom".concat(s.toInitialCaps(),"Range")].length?this["custom".concat(s.toInitialCaps(),"Range")][this[s+"Axis"].domain().indexOf(t.x.value)]+c:this["".concat(s,"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!==s.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==s.indexOf("Brush")?1:this.options.groupPadding);n=this["custom".concat(s.toInitialCaps(),"Range")][this[s+"Axis"].domain().indexOf(t.x.value)]+h}return isNaN(n)?null:n}function r(t,e,i,s){var n;if("horizontal"===this.options.orientation)if("grouped"!==this.options.grouping){var o=(-1!==s.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==s.indexOf("Brush")?1:this.options.groupPadding);n=this["custom".concat(s.toInitialCaps(),"Range")][this[s+"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[s].bandWidth*a+(-1!==s.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==s.indexOf("Brush")?1:this.options.groupPadding);n=0<this["custom".concat(s.toInitialCaps(),"Range")].length?this["custom".concat(s.toInitialCaps(),"Range")][this[s+"Axis"].domain().indexOf(t.x.value)]+l:this["".concat(s,"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,s),c=d.call(this,t,e,i,s);n=this["".concat(i,"Axis")](0)-(r+c)*(t.y.accumulative<0?0:1)}else{var h=d.call(this,t,e,i,s);n=this["".concat(i,"Axis")](0)-h*(t.y.value<0?0:1)}return isNaN(n)?null:n}"horizontal"===this.options.orientation&&(s="left",n="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,n,s))}).attr("height",function(t,e){return d.call(i,t,e,n,s)}).attr("x",function(t,e){return l.call(i,t,e,n,s)}).attr("y",function(t,e){return r.call(i,t,e,n,s)}).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,n,s))}).attr("height",function(t,e){return d.call(i,t,e,n,s)}).attr("x",function(t,e){return l.call(i,t,e,n,s)}).attr("y",function(t,e){return r.call(i,t,e,n,s)}).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(n,"Brush"),"".concat(s,"Brush")))}).attr("height",function(t,e){return d.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"Brush"))}).attr("x",function(t,e){return l.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"Brush"))}).attr("y",function(t,e){return r.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"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(n,"Brush"),"".concat(s,"Brush")))}).attr("height",function(t,e){return d.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"Brush"))}).attr("x",function(t,e){return l.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"Brush"))}).attr("y",function(t,e){return r.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"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",s=this;if("horizontal"===this.options.orientation&&(a="left",l="bottom"),!0===this.options.showLabels||!0===i.showLabels){var n=this.labelLayer.selectAll(".label_".concat(i.key)).data(i.data);n.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),n.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"===s.options.orientation?"stacked"===s.options.grouping&&"outside"!==i.labelPosition?this.setAttribute("text-anchor","middle"):s.plotWidth-o.call(s,t)<this.getComputedTextLength()?(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8),this.setAttribute("fill",s.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",s.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",s.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark("#ffffff"))):s.plotheight-o.call(s,t)<(s.options.labelSize||s.options.fontSize)&&this.setAttribute("y",+this.getAttribute("y")+8)}),n.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"===s.options.orientation?"stacked"===s.options.grouping&&"outside"!==i.labelPosition?this.setAttribute("text-anchor","middle"):s.plotWidth-o.call(s,t)<this.getComputedTextLength()?(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8),this.setAttribute("fill",s.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",s.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",s.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark("#ffffff"))):(s.plotheight-o.call(s,t)<(s.options.labelSize||s.options.fontSize)&&this.setAttribute("y",+this.getAttribute("y")+8),"outside"!==i.labelPosition&&this.setAttribute("fill",s.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),s=this["custom".concat(a.toInitialCaps(),"Range")][i];return this["custom".concat(a.toInitialCaps(),"Range")][i+1]&&(s+=(this["custom".concat(a.toInitialCaps(),"Range")][i+1]-s)/2),s}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),s=this["custom".concat(a.toInitialCaps(),"Range")][i];return this["custom".concat(a.toInitialCaps(),"Range")][i+1]&&(s+=(this["custom".concat(a.toInitialCaps(),"Range")][i+1]-s)/2),s}if("stacked"!==this.options.grouping)return this[l+"Axis"](isNaN(t.y.value)?0:t.y.value)-(this.options.labelSize||this.options.fontSize);var n=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)-(n+o-("inside"===e?o/2:0))*(t.y.accumulative<0?0:1)}}},{key:"renderline",value:function(e,t){var o=this,i=function(s,n,t){return d3.line().x(function(t){if("horizontal"===o.options.orientation)return o["".concat(n,"Axis")](isNaN(t.y.value)?0:t.y.value);if("Time"===o.options.data[s].scale)return o["".concat(s,"Axis")](o.parseX(t.x.value));var e=o[s+"Axis"].domain().indexOf(t.x.value),i=o["custom".concat(s.toInitialCaps(),"Range")][e];return o["custom".concat(s.toInitialCaps(),"Range")][e+1]&&(i+=(o["custom".concat(s.toInitialCaps(),"Range")][e+1]-i)/2),i}).y(function(t){if("horizontal"!==o.options.orientation)return o["".concat(n,"Axis")](isNaN(t.y.value)?0:t.y.value);var e="Time"===o.options.data[s.replace("Brush","")].scale?0:o.options.data[s].bandWidth/2;return o["".concat(s,"Axis")](o.parseX(t.x.value))+e}).curve(d3[t||o.options.curveStyle])},s="bottom",n="secondary"===e.axis?"right":"left";"horizontal"===this.options.orientation&&(s="secondary"===e.axis?"right":"left",n="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(s,n,e.curveStyle)(t)}),r.enter().append("path").attr("d",function(t){return i(s,n,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",s="x",n=this.plotWidth;"horizontal"===this.options.orientation&&("left",e="bottom",i="x",s="y",n=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(s,"2"),n).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",n).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 s=this.symbolLayer.selectAll(".symbol_".concat(e.key)).data(e.data);s.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),s.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 s=o[a+"Axis"].domain().indexOf(t.x.value),n=o["custom".concat(a.toInitialCaps(),"Range")][s];o["custom".concat(a.toInitialCaps(),"Range")][s+1]&&(n+=(o["custom".concat(a.toInitialCaps(),"Range")][s+1]-n)/2)}return"translate(".concat(i,", ").concat(o["".concat(l,"Axis")](isNaN(t.y.value)?0:t.y.value),")")}),s.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 s=o[a+"Axis"].domain().indexOf(t.x.value),n=o["custom".concat(a.toInitialCaps(),"Range")][s];o["custom".concat(a.toInitialCaps(),"Range")][s+1]&&(n+=(o["custom".concat(a.toInitialCaps(),"Range")][s+1]-n)/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 s=document.getElementById("".concat(this.elementId,"_errorTitle"));s&&(s.innerHTML=t.title)}if(t.message){var n=document.getElementById("".concat(this.elementId,"_errorMessage"));n&&(n.innerHTML=t.message)}}},{key:"showLoading",value:function(t){this.loadingDialog.show(t)}}]),n}(),WebsyPie=function(){function s(t,e){_classCallCheck(this,s),this.elementId=t;if(this.options=_extends({},{labelMode:"auto",labelLocs:[],showLabels:!1,segments:["#9dbca6","#e3c080","#fd7336","#b12737","#50424b"],label:{value:{size:"12px",colour:"#BBB",family:"arial",weight:"normal"},label:{size:"10px",colour:"#888",family:"arial",weight:"normal"}},kpi:{background:"#555",value:{size:"60px",colour:"#CCC",family:"arial",weight:"bold"},label:{size:"20px",colour:"#FFF",family:"arial",weight:"normal"}}},e),this.listening=!0,t){var i=document.getElementById(this.elementId);i?i.classList.add("websy-pie"):console.error("No element found with ID ".concat(this.elementId))}else console.log("No element Id provided for Websy Chart")}return _createClass(s,[{key:"calculateArcAngle",value:function(t,e){return this.convertRadiansToDegrees(t/(Math.PI*(2*e)))}},{key:"calculateCircumference",value:function(t){return 2*Math.PI*t}},{key:"close",value:function(){}},{key:"convertDegreesToRadians",value:function(t){return t*(Math.PI/180)}},{key:"convertRadiansToDegrees",value:function(t){return t*(180/Math.PI)}},{key:"createCanvases",value:function(t){if(t&&!t.target){this.listening||(t.addEventListener("resize",this.render.bind(this),!1),window.addEventListener("resize",this.render.bind(this),!1),this.listening=!0);var e=t.clientHeight,i=t.clientWidth;this.width=i,this.height=e,this.center={x:i/2,y:e/2},this.outerRadius=Math.min(this.height,this.width)/2-20,console.log("radius is "+this.outerRadius);var s=document.createElement("canvas");this.segmentPaper={canvas:s,pen:s.getContext("2d")},this.segmentPaper.canvas.style.position="absolute",this.segmentPaper.canvas.style.top="0px",this.segmentPaper.canvas.style.left="0px",this.segmentPaper.canvas.style.zIndex="5",this.segmentPaper.canvas.style.width=i+"px",this.segmentPaper.canvas.style.height=e+"px",this.segmentPaper.canvas.width=2*i,this.segmentPaper.canvas.height=2*e,this.segmentPaper.pen.scale(2,2),t.appendChild(this.segmentPaper.canvas);var n=document.createElement("canvas");this.labelPaper={canvas:n,pen:n.getContext("2d")},this.labelPaper.canvas.style.position="absolute",this.labelPaper.canvas.style.top="0px",this.labelPaper.canvas.style.left="0px",this.labelPaper.canvas.style.zIndex="5",this.labelPaper.canvas.style.width=i+"px",this.labelPaper.canvas.style.height=e+"px",this.labelPaper.canvas.width=2*i,this.labelPaper.canvas.height=2*e,this.labelPaper.pen.scale(2,2),t.appendChild(this.labelPaper.canvas);var o=document.createElement("canvas");this.kpiPaper={canvas:o,pen:o.getContext("2d")},this.kpiPaper.canvas.style.position="absolute",this.kpiPaper.canvas.style.top="0px",this.kpiPaper.canvas.style.left="0px",this.kpiPaper.canvas.style.zIndex="5",this.kpiPaper.canvas.style.width=i+"px",this.kpiPaper.canvas.style.height=e+"px",this.kpiPaper.canvas.width=2*i,this.kpiPaper.canvas.height=2*e,this.kpiPaper.pen.scale(2,2),t.appendChild(this.kpiPaper.canvas)}else this.segmentPaper.canvas.width=2*this.width,this.labelPaper.canvas.width=2*this.width,this.kpiPaper.canvas.width=2*this.width}},{key:"drawKPI",value:function(){var t=this.options.kpi;this.kpi&&(this.kpi.background&&"transparent"===this.kpi.background||(this.kpiPaper.pen.beginPath(),this.kpiPaper.pen.fillStyle=this.kpi.background||t.background,this.kpiPaper.pen.moveTo(this.center.x,this.center.y),this.kpiPaper.pen.arc(this.center.x,this.center.y,this.innerRadiusPixels+5*!this.addShading+1,0,2*Math.PI),this.kpiPaper.pen.fill(),this.kpiPaper.pen.closePath()),this.kpi.value&&(this.kpiPaper.pen.save(),this.kpiPaper.pen.beginPath(),this.kpiPaper.pen.moveTo(this.center.x,this.center.y),this.kpiPaper.pen.font=(this.kpi.value.weight||t.value.weight)+" "+(this.kpi.value.size||t.value.size)+" "+(this.kpi.value.family||t.value.family),this.kpiPaper.pen.textAlign="center",this.kpi.label?this.kpiPaper.pen.textBaseline="text-bottom":this.kpiPaper.pen.textBaseline="middle",this.kpiPaper.pen.fillStyle=this.kpi.value.colour||t.value.colour,this.kpiPaper.pen.fillText(this.kpi.value.text,this.center.x,this.center.y),this.kpiPaper.pen.closePath(),this.kpiPaper.pen.restore()),this.kpi.label&&(this.kpiPaper.pen.save(),this.kpiPaper.pen.beginPath(),this.kpiPaper.pen.moveTo(this.center.x,this.center.y),this.kpiPaper.pen.font=(this.kpi.label.weight||t.label.weight)+" "+(this.kpi.label.size||t.label.size)+" "+(this.kpi.label.family||t.label.family),this.kpiPaper.pen.textAlign="center",this.kpi.value?this.kpiPaper.pen.textBaseline="top":this.kpiPaper.pen.textBaseline="middle",this.kpiPaper.pen.fillStyle=this.kpi.label.colour||t.label.colour,this.kpiPaper.pen.fillText(this.kpi.label.text,this.center.x,this.center.y+10),this.kpiPaper.pen.closePath(),this.kpiPaper.pen.restore()))}},{key:"drawLabels",value:function(){if(this.options.showLabels)for(var t in this.data.segments){this.labelPaper.pen.beginPath(),this.labelPaper.pen.font="20px arial",this.labelPaper.pen.textAlign="center",this.labelPaper.pen.textBaseline="text-bottom",this.labelPaper.pen.fillStyle="black";var e=this.data.segments[t].midAngleDeg%360,i=90*Math.round(e/90)%360;console.log(Math.abs(i-e));var s=270-Math.abs(i-e);console.log(i);var n=this.outerRadius*Math.sin(this.convertDegreesToRadians(Math.abs(i-e)))/Math.sin(this.convertDegreesToRadians(s));n=Math.abs(n);var o=this.outerRadius+5,a=1.2,l=1.3;0<e&&e<=45?(this.labelPaper.pen.moveTo(this.center.x+o,this.center.y+n),this.labelPaper.pen.lineTo(this.center.x+o*a,this.center.y+n*a),this.labelPaper.pen.lineTo(this.center.x+o*l,this.center.y+n*a)):45<e&&e<=90?(this.labelPaper.pen.moveTo(this.center.x+n,this.center.y+o),this.labelPaper.pen.lineTo(this.center.x+n*a,this.center.y+o*a),this.labelPaper.pen.lineTo(this.center.x+n*l,this.center.y+o*a)):90<e&&e<=135?(this.labelPaper.pen.moveTo(this.center.x-n,this.center.y+o),this.labelPaper.pen.lineTo(this.center.x-n*a,this.center.y+o*a),this.labelPaper.pen.lineTo(this.center.x-n*l,this.center.y+o*a)):135<e&&e<=180?(this.labelPaper.pen.moveTo(this.center.x-o,this.center.y+n),this.labelPaper.pen.lineTo(this.center.x-o*a,this.center.y+n*a),this.labelPaper.pen.lineTo(this.center.x-o*l,this.center.y+n*a)):180<e&&e<=225?(this.labelPaper.pen.moveTo(this.center.x-o,this.center.y-n),this.labelPaper.pen.lineTo(this.center.x-o*a,this.center.y-n*a),this.labelPaper.pen.lineTo(this.center.x-o*l,this.center.y-n*a)):225<e&&e<=270?(this.labelPaper.pen.moveTo(this.center.x-n,this.center.y-o),this.labelPaper.pen.lineTo(this.center.x-n*a,this.center.y-o*a),this.labelPaper.pen.lineTo(this.center.x-n*l,this.center.y-o*a)):270<e&&e<=315?(this.labelPaper.pen.moveTo(this.center.x+n,this.center.y-o),this.labelPaper.pen.lineTo(this.center.x+n*a,this.center.y-o*a),this.labelPaper.pen.lineTo(this.center.x+n*l,this.center.y-o*a)):(this.labelPaper.pen.moveTo(this.center.x+o,this.center.y-n),this.labelPaper.pen.lineTo(this.center.x+o*a,this.center.y-n*a),this.labelPaper.pen.lineTo(this.center.x+o*l,this.center.y-n*a)),this.labelPaper.pen.strokeStyle="#cccccc",this.labelPaper.pen.stroke(),this.labelPaper.pen.fillText(this.center.x+this.data.segments[t].label.x,this.center.y+this.data.segments[t].label.y,t),this.labelPaper.pen.closePath()}}},{key:"drawSegments",value:function(){var t=this.convertDegreesToRadians(270),e=t,i=0;for(var s in this.data.segments){i>=this.options.colors.length&&(i=0);var n=this.options.colors[i],o=e+this.data.segments[s].circumference,a=(e+o)/2;this.data.segments[s].labelCanvasRotation=e,this.data.segments[s].startAngle=e,this.data.segments[s].midAngle=a,this.data.segments[s].endAngle=o,this.data.segments[s].startAngleDeg=this.convertRadiansToDegrees(e),this.data.segments[s].midAngleDeg=this.convertRadiansToDegrees(a),this.data.segments[s].endAngleDeg=this.convertRadiansToDegrees(o),this.segmentPaper.pen.beginPath(),this.segmentPaper.pen.moveTo(this.center.x,this.center.y),this.segmentPaper.pen.fillStyle=n,this.segmentPaper.pen.arc(this.center.x,this.center.y,this.outerRadius,e,o),console.log(this.segmentPaper.pen),this.segmentPaper.pen.fill(),this.segmentPaper.pen.closePath(),e=o,i++}if(this.innerRadius&&0!==this.innerRadius&&(this.innerRadiusPixels=Math.round(this.outerRadius*(this.innerRadius/100)),this.segmentPaper.pen.save(),this.segmentPaper.pen.beginPath(),this.segmentPaper.pen.moveTo(this.center.x,this.center.y),this.segmentPaper.pen.arc(this.center.x,this.center.y,this.innerRadiusPixels+5,0,2*Math.PI),this.segmentPaper.pen.clip(),this.segmentPaper.pen.clearRect(0,0,2*this.width,2*this.height),this.segmentPaper.pen.closePath(),this.segmentPaper.pen.restore(),!0===this.addShading)){for(var l in e=t,i=0,this.data.segments){i>=this.options.colors.length&&(i=0);var r=this.hexToRGBA(this.options.colors[i],.8),c=e+this.data.segments[l].circumference;this.segmentPaper.pen.beginPath(),this.segmentPaper.pen.moveTo(this.center.x,this.center.y),this.segmentPaper.pen.fillStyle=r,this.segmentPaper.pen.arc(this.center.x,this.center.y,this.innerRadiusPixels+6,e,c),this.segmentPaper.pen.fill(),this.segmentPaper.pen.closePath(),e=c,i++}this.segmentPaper.pen.save(),this.segmentPaper.pen.beginPath(),this.segmentPaper.pen.moveTo(this.center.x,this.center.y),this.segmentPaper.pen.arc(this.center.x,this.center.y,this.innerRadiusPixels,0,2*Math.PI),this.segmentPaper.pen.clip(),this.segmentPaper.pen.clearRect(0,0,2*this.width,2*this.height),this.segmentPaper.pen.closePath(),this.segmentPaper.pen.restore()}console.log(this.data)}},{key:"hexToRGBA",value:function(t,e){var i;return e||(e=1),/^#([A-Fa-f0-9]{3}){1,2}$/.test(t)?(3===(i=t.substring(1).split("")).length&&(i=[i[0],i[0],i[1],i[1],i[2],i[2]]),"rgba("+[(i="0x"+i.join(""))>>16&255,i>>8&255,255&i,e].join(",")+")"):(console.error("Unable to convert hex (".concat(t,") to RGBA")),"rgba(0, 0, 0, 1)")}},{key:"render",value:function(t){var e=document.getElementById(this.elementId);e&&!e.target&&this.createCanvases(e),t&&!t.target&&(this.originalData=_toConsumableArray(t)),this.processData(t),this.drawSegments(),this.drawLabels(),this.drawKPI()}},{key:"resize",value:function(){}},{key:"processData",value:function(t){for(var e={},i=0,s=0;s<t.length;s++)e[t[s][0].label]||(e[t[s][0].label]={segmentValue:0,drill:[]}),e[t[s][0].label].segmentValue+=t[s][1].value,i+=t[s][1].value,this.drill&&""!==this.drill&&e[t[s][0].label].drill.push({label:t[s][0].label,value:t[s][1].value});for(var n in e)e[n].percValue=e[n].segmentValue/i,e[n].circumference=this.calculateCircumference(e[n].percValue),e[n].labelAngle=e[n].percValue/2*360,e[n].label={x:(this.outerRadius+5)/Math.sin(this.convertDegreesToRadians(90))*Math.sin(this.convertDegreesToRadians(90-e[n].labelAngle))},e[n].label.y=(this.outerRadius+5)/Math.sin(this.convertDegreesToRadians(90))*Math.sin(this.convertDegreesToRadians(e[n].labelAngle));this.data={segments:e,total:i},console.log(this.data)}}]),s}(),WebsyLegend=function(){function s(t,e){_classCallCheck(this,s);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(s,[{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 s=i.clientWidth+30;return i.remove(),s}}]),s}(),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 n(t,e){_classCallCheck(this,n);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 s=document.getElementById(this.elementId);s&&("undefined"==typeof L&&console.error("Leaflet library has not been loaded"),s.innerHTML='\n <div id="'.concat(this.elementId,'_map"></div>\n <div id="').concat(this.elementId,'_legend" class="websy-map-legend"></div>\n '),s.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(n,[{key:"isRendered",get:function(){return this._isRendered}},{key:"handleClick",value:function(t){}},{key:"handleMapClick",value:function(t){}},{key:"render",value:function(){var s=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||s.options.colors[e%s.options.colors.length]}}),n=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(n)+"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 s.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=s.options.colors[e%s.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(s.map);s.polygons.push(i),s.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}}]),n}(),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},s=["active"];"vertical"===i.positioning&&s.push("vertical"),!0===i.onLeft&&s.push("left"),!0===i.onTop&&s.push("top");var n=this.tooltipLayer.selectAll("foreignObject").attr("width","".concat(i.width,"px")).attr("class","websy-chart-tooltip ".concat(s.join(" ")));this.tooltipContent.attr("class","websy-chart-tooltip-content ".concat(s.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")?(n.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?(n.attr("x","".concat(i.left,"px")),n.attr("y","".concat(!0===i.onTop?i.bottom-this.tooltipContent._groups[0][0].clientHeight:i.top,"px"))):(n.attr("x","".concat(i.left,"px")),n.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,WebsyDropdown:WebsyDropdown,Dropdown:WebsyDropdown,MediaUpload:MediaUpload,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,Pie:WebsyPie,WebsyPie:WebsyPie,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,Carousel:WebsyCarousel,WebsyIcons:WebsyIcons,Icons:WebsyIcons,WebsyLogin:WebsyLogin,Login:WebsyLogin,WebsySignup:WebsySignup,Signup:WebsySignup,ResponsiveText:ResponsiveText,WebsyResponsiveText:ResponsiveText,WebsyDragDrop:WebsyDragDrop,DragDrop:WebsyDragDrop,WebsySearch:WebsySearch,Search:WebsySearch};WebsyDesigns.service=new WebsyDesigns.APIService("");var GlobalPubSub=new WebsyPubSub("empty",{});function recaptchaReadyCallBack(){console.log("recaptchaready"),GlobalPubSub.publish("recaptchaready")}function useGoogleRecaptcha(t){var e=document.createElement("script");e.src="//www.google.com/recaptcha/api.js",document.body.appendChild(e)}function usePayPal(){var t=document.createElement("script");t.src="//www.paypal.com/sdk/js",document.getElementsByTagName("body")[0].appendChild(t)}String.prototype.toInitialCaps=function(){var t=this.split("");return t.shift().toUpperCase()+t.join("")};
1
+ "use strict";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,s=new Array(e);i<e;i++)s[i]=t[i];return s}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 s in i)Object.prototype.hasOwnProperty.call(i,s)&&(t[s]=i[s])}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 s=e[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,_toPropertyKey(s.key),s)}}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 s=i.call(t,e||"default");if("object"!==_typeof(s))return s;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]:{},s=this.buildUrl(t);return this.run("POST",s,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,s,n){var o=this.buildUrl(t,e,i);return s&&(-1!==o.indexOf("?")?o+="&offset=".concat(s):o+="?offset=".concat(s)),(n||this.options.rowLimit)&&(-1!==o.indexOf("?")?o+="&limit=".concat(n||this.options.rowLimit):o+="?limit=".concat(n||this.options.rowLimit)),this.run("GET",o)}},{key:"update",value:function(t,e,i){var s=this.buildUrl(t,e);return this.run("PUT",s,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(n,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 s=new XMLHttpRequest;if(s.open(n,o),s.setRequestHeader("Content-Type","application/json"),s.responseType="text",l.responseType&&(s.responseType=l.responseType),l.headers)for(var t in l.headers)s.setRequestHeader(t,l.headers[t]);s.withCredentials=!0,s.onload=function(){if(401!==s.status){var t="text"===s.responseType?s.responseText:s.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}(s.getAllResponseHeaders())]:t)}else ENV&&ENV.AUTH_REDIRECT?window.location=ENV.AUTH_REDIRECT:window.location="/login"},s.onerror=function(){return i(s.statusText)},a?s.send(JSON.stringify(a)):s.send()})}}]),i}(),ButtonGroup=function(){function s(t,e){_classCallCheck(this,s),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(s,[{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 s=this,t=document.getElementById(this.elementId);t&&this.options.items&&(t.innerHTML=this.options.items.map(function(t,e){var i="";return-1!==s.options.activeItem?i=e===s.options.activeItem?"active":"inactive":!0===s.options.multiSelect&&(i=!0===t.selected?"active":"inactive"),"\n <".concat(s.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(s.options.style,"-style ").concat(i,'">').concat(t.label,"</").concat(s.options.tag,">\n ")}).join(""))}}]),s}(),WebsyCarousel=function(){function s(t,e){_classCallCheck(this,s);this.playTimeoutFn=null,this.options=_extends({},{currentFrame:0,frameDuration:4e3,showFrameSelector:!0,showPrevNext:!0,autoPlay:!0,frames:[],frameSelectorIcon:'\n <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 512 512">\n <circle cx="256" cy="256" r="192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/>\n </svg>\n '},e),t||console.log("No element Id provided");var i=document.getElementById(t);i&&(this.elementId=t,i.addEventListener("click",this.handleClick.bind(this)),this.render())}return _createClass(s,[{key:"close",value:function(){this.pause()}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-next-arrow")&&this.next(),t.target.classList.contains("websy-prev-arrow")&&this.prev(),t.target.classList.contains("websy-progress-btn")){var e=+t.target.getAttribute("data-index"),i=this.options.currentFrame;this.options.currentFrame=e,this.showFrame(i,e)}}},{key:"next",value:function(){this.pause();var t=this.options.currentFrame;this.options.currentFrame===this.options.frames.length-1?this.options.currentFrame=0:this.options.currentFrame++,this.showFrame(t,this.options.currentFrame),this.play()}},{key:"pause",value:function(){this.playTimeoutFn&&clearTimeout(this.playTimeoutFn)}},{key:"play",value:function(){var e=this;!0!==this.options.autoPlay||this.options.frames.length<2||(this.playTimeoutFn=setTimeout(function(){var t=e.options.currentFrame;e.options.currentFrame===e.options.frames.length-1?e.options.currentFrame=0:e.options.currentFrame++,e.showFrame(t,e.options.currentFrame),e.play()},this.options.frameDuration))}},{key:"prev",value:function(){this.pause();var t=this.options.currentFrame;0===this.options.currentFrame?this.options.currentFrame=this.options.frames.length-1:this.options.currentFrame--,this.showFrame(t,this.options.currentFrame),this.play()}},{key:"render",value:function(t){this.options=_extends({},this.options,t),this.resize()}},{key:"resize",value:function(){var i=this,t=document.getElementById(this.elementId);if(t){var s='\n <div class="websy-carousel">\n ';this.options.frames.forEach(function(t,e){s+='\n <div id="'.concat(i.elementId,"_frame_").concat(e,'" class="websy-frame-container animate" style="transform: translateX(').concat(0===e?"0":"101%",')">\n '),t.images.forEach(function(t){s+='\n <div style="'.concat(t.style||"position: absolute; width: 100%; height: 100%; top: 0; left: 0;"," background-image: url('").concat(t.url,'\')" class="').concat(t.classes||"",' websy-carousel-image">\n </div>\n ')}),t.text&&t.text.forEach(function(t){s+='\n <div style="'.concat(t.style||"position: absolute; width: 100%; height: 100%; top: 0; left: 0;",'" class="').concat(t.classes||"",' websy-carousel-image">\n ').concat(t.html,"\n </div>\n ")}),s+="</div>"}),!0===this.options.showFrameSelector&&1<this.options.frames.length&&(s+='<div class="websy-btn-parent">',this.options.frames.forEach(function(t,e){s+='\n <div data-index="'.concat(e,'" id="').concat(i.elementId,"_selector_").concat(e,'" \n class="websy-progress-btn ').concat(i.options.currentFrame===e?"websy-progress-btn-active":"",'">\n ').concat(i.options.frameSelectorIcon,"\n </div>\n ")}),s+="</div>"),!0===this.options.showPrevNext&&1<this.options.frames.length&&(s+='\n <svg xmlns="http://www.w3.org/2000/svg" class="websy-prev-arrow"\n viewBox="0 0 512 512">\n <title>Caret Back</title>\n <path d="M321.94 98L158.82 237.78a24 24 0 000 36.44L321.94 414c15.57 13.34 39.62 2.28 39.62-18.22v-279.6c0-20.5-24.05-31.56-39.62-18.18z"/>\n </svg>\n \n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="websy-next-arrow">\n <title>Caret Forward</title>\n <path d="M190.06 414l163.12-139.78a24 24 0 000-36.44L190.06 98c-15.57-13.34-39.62-2.28-39.62 18.22v279.6c0 20.5 24.05 31.56 39.62 18.18z"/>\n </svg>\n '),s+="\n </div>\n ",t.innerHTML=s}this.play()}},{key:"showFrame",value:function(t,e){var i=e<t?"101%":"-101%",s=t<e?"101%":"-101%";0===e&&t===this.options.frames.length-1?(i="-101%",s="101%"):0===t&&e===this.options.frames.length-1&&(i="101%",s="-101%");var n=document.getElementById("".concat(this.elementId,"_frame_").concat(t));n&&setTimeout(function(){n.style.transform="translateX(".concat(i,")")},100);var o=document.getElementById("".concat(this.elementId,"_selector_").concat(t));o&&o.classList.remove("websy-progress-btn-active");var a=document.getElementById("".concat(this.elementId,"_frame_").concat(e));a&&(a.classList.remove("animate"),a.style.transform="translateX(".concat(s,")"),setTimeout(function(){a.classList.add("animate"),a.style.transform="translateX(0%)"},100));var l=document.getElementById("".concat(this.elementId,"_selector_").concat(e));l&&l.classList.add("websy-progress-btn-active")}}]),s}(),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 s=document.getElementById(t);if(s){this.elementId=t,s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("mousedown",this.handleMouseDown.bind(this)),s.addEventListener("mouseover",this.handleMouseOver.bind(this)),s.addEventListener("mouseup",this.handleMouseUp.bind(this)),document.addEventListener("keydown",this.handleKeyDown.bind(this)),document.addEventListener("keyup",this.handleKeyUp.bind(this));var n="\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&&(n+="<div class='clear-selection'>".concat(this.options.clearIcon,"</div>")),n+="\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 "),s.innerHTML=n,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],s=document.getElementById("".concat(this.elementId,"_mask")),n=document.getElementById("".concat(this.elementId,"_content")),o=document.getElementById(this.elementId);if(o&&(o.style.zIndex=""),s.classList.remove("active"),n.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 n=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 s;if("date"===this.options.mode)s=Math.floor((this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()-this.selectedRangeDates[0].getTime())/this.oneDay);else if("year"===this.options.mode)s=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());s=Math.floor(this.selectedRangeDates[this.selectedRangeDates.length-1].getMonth()-this.selectedRangeDates[0].getMonth())+o}else"hour"===this.options.mode&&(s=this.selectedRangeDates[this.selectedRangeDates.length-1]-this.selectedRangeDates[0]);for(var a=0;a<s+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"===n.options.mode?e=(e=n.floorDate(new Date(t.getTime()))).getTime():"year"===n.options.mode?(e=t,i="_year"):"monthyear"===n.options.mode?(e=(e=n.floorDate(new Date(t.getTime()).setMonth(t.getMonth()))).getTime(),i="_monthyear"):"hour"===n.options.mode&&(e=t,i="_hour");var s=document.getElementById("".concat(n.elementId,"_").concat(e).concat(i));s&&s.classList.add("selected","first","last")});else this.currentselection.forEach(function(t){var e;"date"===n.options.mode?e=document.getElementById("".concat(n.elementId,"_").concat(t,"_date")):"year"===n.options.mode?e=document.getElementById("".concat(n.elementId,"_").concat(t,"_year")):"monthyear"===n.options.mode?e=document.getElementById("".concat(n.elementId,"_").concat(t,"_monthyear")):"hour"===n.options.mode&&(e=document.getElementById("".concat(n.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")),s=document.getElementById(this.elementId);s&&(s.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,s=[];this.validDates=[],this.validYears=[],this.validHours=[],this.monthYears={},this.monthYearMonths=[],t&&(s=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 n={},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(n[r]||(n[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===s.indexOf(l.getTime())&&this.validDates.push(l.getTime()),n[r].push({date:l,dayOfMonth:l.getDate(),dayOfWeek:l.getDay(),id:l.getTime(),disabled:-1!==s.indexOf(l.getTime())})}else if("year"===this.options.mode){var h=this.options.minAllowedYear+a;o.push({year:h,id:h,disabled:-1!==s.indexOf(h)}),-1===s.indexOf(h)&&this.validYears.push(h)}else this.options.mode;"hour"===this.options.mode&&this.options.hours.forEach(function(t){-1===s.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 "),n){if(f+="\n <div class='websy-dp-month-container'>\n <span id='".concat(y.replace(/\s/g,"_"),"'>").concat(y,"</span>\n <ul>\n "),0<n[y][0].dayOfWeek){for(var b=[],w=0;w<n[y][0].dayOfWeek;w++)b.push("<li>&nbsp;</li>");f+=b.join("")}f+=n[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=[],k=0;k<this.monthYears[x][0].monthNum;k++)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 s=this;this.selectedRange=-1,this.isContinuousRange=!0,this.selectedRangeDates=_toConsumableArray(i),this.customRangeSelected=!0,i.forEach(function(t,e){0<e&&("date"===s.options.mode||"monthyear"===s.options.mode?1<t.getTime()/s.oneDay-i[e-1]/s.oneDay&&(s.isContinuousRange=!1):"hour"!==s.options.mode&&"year"!==s.options.mode||1<t-i[e-1]&&(s.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],n=i[0];if("date"===this.options.mode&&(e=e.getTime(),n=n.getTime()),e===n){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}),s=i[0],n="";!0===this.customRangeSelected&&!0===this.isContinuousRange?(1<i.length&&(n=" - ".concat(i[i.length-1])),"hour"===this.options.mode&&(s=this.options.hours[s].text,1<i.length&&(n="".concat(!0===this.customRangeSelected?" - ":"").concat(this.options.hours[i[i.length-1]].text)))):1<i.length?s="".concat(i.length," selected"):"hour"===this.options.mode&&(s=this.options.hours[s].text),t={label:"".concat(s).concat(n)}}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 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 s=document.getElementById(t);if(s){this.elementId=t,s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("keyup",this.handleKeyUp.bind(this)),s.addEventListener("mouseout",this.handleMouseOut.bind(this)),s.addEventListener("mousemove",this.handleMouseMove.bind(this));var n=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(n,"' id='").concat(this.elementId,"_selectedItems'>").concat(n,"</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 "),s.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")),s=document.getElementById("".concat(this.elementId,"_actionContainer")),n=document.getElementById("".concat(this.elementId,"_header")),o=WebsyUtils.getElementPos(n),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"),s&&s.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 s=+t.target.getAttribute("data-index");this.options.customButtons[s]&&this.options.customButtons[s].fn&&this.options.customButtons[s].fn()}else if(t.target.classList.contains("websy-dropdown-action-button")){var n=document.getElementById("".concat(this.elementId,"_actionContainer"));n&&n.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")),s=document.getElementById("".concat(this.elementId,"_header"));e.classList.add("active"),i.classList.add("active");var n=WebsyUtils.getElementPos(s),o=WebsyUtils.getElementPos(i);if("plain"===this.options.style&&0<n.width&&0<n.height)i.style.left="unset",i.style.right="calc(100vw - ".concat(n.right,"px)"),i.style.width="".concat(Math.max(this.options.minWidth,s.clientWidth),"px"),n.bottom+o.height>window.innerHeight?i.style.bottom="calc(100vh - ".concat(n.top,"px)"):i.style.top=n.bottom+"px";else if("plain"===this.options.style&&0===n.width&&0===n.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(""),s=document.getElementById("".concat(this.elementId,"_items"));s&&(s.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")),s=document.getElementById("".concat(this.elementId,"_headerLabel")),n=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(s&&(s.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"))),n)if(1===this.selectedItems.length)t?(n.innerHTML=t.label,n.setAttribute("data-info",t.label),o.value=t.value):this.selectedItems[0]&&(n.innerHTML=l[this.selectedItems[0]].label,n.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);n.innerHTML=h,n.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);n.innerHTML="".concat(this.selectedItems.length," selected"),n.setAttribute("data-info",""),o.value=p}else n.innerHTML="",n.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 s=this.selectedItems.indexOf(t);!1===this.options.multiSelect?(this.selectedItems=[t],e=i[t]):-1!==s?this.selectedItems.splice(s,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}(),WebsyDragDrop=function(){function s(t,e){_classCallCheck(this,s);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(s,[{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 s="\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?s+="<div id='".concat(i.id,"_component'></div>"):s+="".concat(i.html||i.label||""),s+="\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"),s=t.target.getAttribute("data-id"),n=this.getItemIndex(s),o=this.getItemIndex(e.id),a=this.options.items[n];"right"===i&&(n+=1),-1===o?GlobalPubSub.publish(e.id,"requestForDDItem",{group:this.options.group,source:e.id,target:this.elementId,index:n,id:e.itemId}):(o<n?(this.options.items.splice(n,0,a),this.options.items.splice(o,1)):(this.options.items.splice(o,1),this.options.items.splice(n,0,a)),this.options.onOrderUpdated&&this.options.onOrderUpdated());var l=document.getElementById(e.el),r=document.getElementById("".concat(s,"_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.")))})}}}]),s}(),WebsyForm=function(){function n(t,e){_classCallCheck(this,n);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 s=document.getElementById(t);s&&(s.addEventListener("change",this.handleChange.bind(this)),s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("beforeinput",this.handleBeforeInput.bind(this)),s.addEventListener("input",this.handleInput.bind(this)),s.addEventListener("focusout",this.handleFocusOut.bind(this)),s.addEventListener("keyup",this.handleKeyUp.bind(this)),s.addEventListener("keydown",this.handleKeyDown.bind(this)),this.render())}else console.log("No element Id provided")}return _createClass(n,[{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")),s={};new FormData(t).forEach(function(t,e){i.fieldMap[e]&&"checkbox"===i.fieldMap[e].type&&(s[e]=!0),i.fieldMap[e]&&i.fieldMap[e].instance&&i.fieldMap[e].instance.value?s[e]=i.fieldMap[e].instance.value:s[e]=t});var e=Object.keys(s);for(var n in this.fieldMap)-1===e.indexOf(n)&&(this.fieldMap[n]&&"checkbox"===this.fieldMap[n].type?s[n]=!1:!this.fieldMap[n]||"Switch"!==this.fieldMap[n].component&&"WebsySwitch"!==this.fieldMap[n].component?this.fieldMap[n]&&this.fieldMap[n].instance&&this.fieldMap[n].instance.value&&(s[n]=this.fieldMap[n].instance.value):s[n]=this.fieldMap[n].instance.options.enabled);return s},set:function(i){var s=this;this.options.fields||(this.options.fields=[]);var t=function(e){s.options.fields.forEach(function(t){t.field===e&&i[e]&&s.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 s=t.target.value.split("");s.pop(),t.target.value=s.join("")}}if("cvv"===t.target.getAttribute("data-user-type")){var n=!isNaN(+t.data),o=!1;if(o||(o=-1!==["deleteContentBackward","deleteContentForward"].indexOf(t.inputType)),3===t.target.value.length&&!o||!o&&!n)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 s=this,i=document.getElementById(this.elementId),n=[];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){(s.fieldMap[t.field]=t).owningElement=s.elementId;var i="function"==typeof t.value?t.value():t.value;(t.disabled||t.readOnly||s.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||s.options.readOnly)&&(t.classes.push("websy-input-readonly"),t.options.classes.push("websy-input-readonly"))),t.component?(n.push(t),o+="\n ".concat(0<e?"--\x3e":"","<div id='").concat(s.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(s.elementId,"_input_").concat(t.field,"_component' class='form-component'></div>\n <span id='").concat(s.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(s.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(s.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||s.options.readOnly?"disabled":"","\n ").concat((t.attributes||[]).join(" "),'\n class="websy-input websy-textarea ').concat(t.readOnly||s.options.readOnly?"websy-input-readonly":"",'"\n >').concat(i||"","</textarea>\n <span id='").concat(s.elementId,"_").concat(t.field,"_error' class='websy-form-validation-error'></span>\n </div>\x3c!--\n "):o+="\n ".concat(0<e?"--\x3e":"","<div id='").concat(s.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(s.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||s.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||s.options.readOnly?"disabled":"","\n oninvalidx=\"this.setCustomValidity('").concat(t.invalidMessage||"Please fill in this field.","')\"\n />\n <span id='").concat(s.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(n,function(){!0!==s.options.useRecaptcha&&!0!==s.options.useRecaptchaV3||"undefined"==typeof grecaptcha||s.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 n=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"),n.options.useLoader&&n.loader.show();new FormData(o);var i={};if(new FormData(o).forEach(function(t,e){i[e]=t}),n.options.url){var e,s=[n.options.url];"update"===n.options.mode&&s.push(n.options.id),s.push(i),(e=n.apiService)[n.options.mode].apply(e,s).then(function(t){!0===n.options.clearAfterSave&&o.reset(),a.removeAttribute("disabled"),n.options.onSuccess.call(n,t)},function(t){console.log("Error submitting form data:",t),n.options.onError.call(n,t)})}else n.options.submitFn&&n.options.submitFn(i,function(){n.loader.hide(),!0===n.options.clearAfterSave&&o.reset()},function(){n.loader.hide()})}else a&&a.removeAttribute("disabled"),l&&l.classList.remove("websy-hidden"),n.options.submitErr&&n.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")),s=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 s&&(s.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 s&&(s.innerHTML=t.invalidMessage||"A value is required"),i&&i.classList.add("websy-form-input-has-error"),!1;return s&&(s.innerHTML=""),i&&i.classList.remove("websy-form-input-has-error"),!0}},{key:"validateRecaptcha",value:function(t){this.recaptchaValue=t}}]),n}(),MultiForm=function(){function s(t,e){_classCallCheck(this,s),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(s,[{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(),s=document.createElement("div");s.id="".concat(this.elementId,"_").concat(i,"_formContainer"),s.classList.add("websy-multi-form-form-container");var n="\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 ");s.innerHTML=n,e.appendChild(s);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 s=-1,n=0;n<this.forms.length;n++)if(this.forms[n].elementId==="".concat(this.elementId,"_").concat(e,"_form")){s=n;break}-1!==s&&this.forms.splice(s,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 n=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(n.elementId,"_").concat(t.formId,"_formContainer' class='websy-multi-form-form-container'>\n <div id='").concat(n.elementId,"_").concat(t.formId,"_form' class='websy-multi-form-form'>\n </div>\n "),!0!==n.options.allowDelete||n.options.readOnly||(e+="\n <button id='".concat(n.elementId,"_").concat(t.formId,"_deleteButton' data-formid='").concat(t.formId,"' data-rowid='").concat(t.id,"' class='websy-multi-form-delete'>\n ").concat(n.options.deleteIcon).concat(n.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({},n.options,{fields:_toConsumableArray(n.options.fields.map(function(t){return _extends({},t)}))}),s=new WebsyDesigns.Form("".concat(n.elementId,"_").concat(t.formId,"_form"),i);s.data=t,n.forms[e]=s});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}}]),s}(),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}(),WebsyLogin=function(){function n(t,e){_classCallCheck(this,n);this.elementId=t,this.options=_extends({},{loginType:"email",classes:[],url:"auth/login",redirectUrl:"/"},e);var i=document.getElementById(this.elementId);if(i){i.innerHTML='\n <div id="'.concat(this.elementId,'_error" class="websy-validation-failure"></div>\n <div id="').concat(this.elementId,'_container"></div> \n ');var s={useRecaptcha:this.options.useRecaptcha||ENVIRONMENT.useRecaptcha||!1,submit:{text:this.options.buttonText||"Log in",classes:this.options.buttonClasses||[]},fields:[{label:"email"===this.options.loginType?"Email":"Username",placeholder:"Enter your ".concat("email"===this.options.loginType?"email address":"Username"),field:this.options.loginType,type:this.options.loginType,required:!0},{label:"Password",placeholder:"Enter your password",field:this.options.passwordField||"password",type:"password",required:!0}],onSuccess:this.loginSuccess.bind(this),onError:this.loginFail.bind(this)};this.options.fields&&(s.fields=this.options.fields.concat(s.fields)),this.loginForm=new WebsyDesigns.WebsyForm("".concat(this.elementId,"_container"),_extends({},this.options,s))}else console.error("No element with ID ".concat(this.elementId," found for WebsyLogin component."))}return _createClass(n,[{key:"loginFail",value:function(t){var e=document.getElementById("".concat(this.elementId,"_error"));e&&(e.innerHTML="Incorrect ".concat(this.options.loginType," or password"))}},{key:"loginSuccess",value:function(){this.options.redirectUrl&&(window.location.href=this.options.redirectUrl)}}]),n}(),WebsyNavigationMenu=function(){function s(t,e){if(_classCallCheck(this,s),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(s,[{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 s=i.getAttribute("data-path").split("::").pop(),n=document.getElementById(s);n&&n.classList.contains("websy-menu-header")&&n.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,s=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=""!==s?"".concat(s,"::").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,s))}},{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),s=this.flatItems.filter(function(t){return!t.hasChildren}),n=s,o="remove";e&&1<e.length&&(o="add",n=s.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&&n.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 s=i.parentElement;s;)if("UL"===s.tagName){s.classList.remove("websy-menu-collapsed");var n=s.getAttribute("data-path").split("::").pop(),o=document.getElementById(n);o&&o.classList.contains("websy-menu-header")&&o.classList.add("menu-open"),s=s.parentElement}else s="LI"===s.tagName?s.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,s){var n=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0;this.maxLevel=Math.max(this.maxLevel,n);var o="\n\t\t <ul class='websy-".concat(this.options.orientation,"-list ").concat(0<n?"websy-child-list":""," ").concat("main"!==s?"websy-menu-collapsed":"","' id='").concat(t,"_list' data-path='").concat(e,"'\n\t ");"main"!==s&&(o+=" data-collapsed='".concat("main"!==s?"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(n," ").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<n?s:r,"'\n data-text='").concat(!0!==i[a].isLink?i[a].text:"","'\n style='").concat(this.options.indent,"-left: ").concat(n*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)),s&&"main"!==s&&(this.options.parentMap[r]||(this.options.parentMap[r]=s)),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)}}]),s}(),MediaUpload=function(){function s(t,e){_classCallCheck(this,s);if(this.media=[],this.options=_extends({},{allowMultiple:!1,createThumbnail:!1,thumbSize:300,supportedTypes:["image/png","image/jpg"]},e),this.elementId=t){var i=document.getElementById(t);i&&(i.addEventListener("change",this.handleChange.bind(this)),i.innerHTML="\n <div class='websy-upload-form-container'>\n <span>Drag and drop a file or click to browse.</span>\n <form id=\"".concat(this.elementId,'_form" enctype="multipart/form-data"> \n <input id="').concat(this.elementId,'_file" type="file" name="').concat(this.options.name||"media",'" accept="').concat(this.options.supportedTypes.join(" "),"\" multiple>\n </form>\n </div>\n <div id='").concat(this.elementId,"_uploaded' class='websy-uploaded-media'></div> \n "),this.render())}else console.log("No element Id provided")}return _createClass(s,[{key:"data",get:function(){return this.media},set:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];Array.isArray(t)?this.media=t:this.media=[t],this.render()}},{key:"createHtml",value:function(t){for(var e="",i=0;i<t;i++)e+="\n <div>\n <img id='".concat(this.elementId,"_media_").concat(i,"'/>\n </div> \n ");return e}},{key:"getForm",value:function(){var t=!1,e=document.getElementById("".concat(this.elementId,"_file"));if(e)for(;!1===t&&"BODY"!==e.tagName;)if("FORM"===(e=e.parentElement).tagName)return t=!0,e;return null}},{key:"handleChange",value:function(t){var i=this;this.fileList=[];var e=document.getElementById("".concat(this.elementId,"_form"));if(e||(e=this.getForm()),e){var s=new FormData(e),n=this.createHtml(s.length);s.forEach(function(t,e){e===(i.options.name||"media")&&i.fileList.push({name:e,file:t})}),document.getElementById("".concat(this.elementId,"_uploaded")).innerHTML=n,this.uploadItem(0,this.fileList)}else console.error("The element ".concat(this.elementId,"_file does not belong to a form."))}},{key:"render",value:function(){var i=this;0<this.media.length&&(document.getElementById("".concat(this.elementId,"_uploaded")).innerHTML=this.createHtml(this.media.length),this.media.forEach(function(t,e){document.getElementById("".concat(i.elementId,"_media_").concat(e)).setAttribute("src","data:".concat(t.type,";base64,")+t.data)}))}},{key:"uploadItem",value:function(h,d,p){var u=this;if(d[h]){var t=new FileReader,m={type:d[h].file.type,name:d[h].file.name,size:d[h].file.size};t.onloadend=function(){var o=document.createElement("canvas"),a=o.getContext("2d"),l=document.createElement("canvas"),r=l.getContext("2d"),c=new Image;c.onload=function(){var t=c.width,e=c.height;if(!0===u.options.resize&&u.options.imgSize){var i=1;e<t?(i=t/e,t=u.options.imgSize,e=u.options.imgSize/i):t<e&&(i=e/t,t=u.options.imgSize/i,e=u.options.imgSize)}var s=document.getElementById("".concat(u.elementId,"_media_").concat(h,"_fullres"));s&&(s.innerHTML="".concat(t," x ").concat(e)),o.width=t,o.height=e,a.drawImage(c,0,0,t,e);var n=1;e<t?(n=t/e,l.width=u.options.thumbSize,l.height=u.options.thumbSize/n):t<e&&(n=e/t,l.width=u.options.thumbSize/n,l.height=u.options.thumbSize),r.drawImage(c,0,0,l.width,l.height),m.name=d[h].name,m.fullWidth=o.width,m.fullHeight=o.height,m.thumbWidth=l.width,m.thumbHeight=l.height,m.data=o.toDataURL(m.type).replace(/^data:image\/(png|jpg);base64,/,""),m.thumbData=l.toDataURL(m.type).replace(/^data:image\/(png|jpg);base64,/,""),u.media.push(m),document.getElementById("".concat(u.elementId,"_media_").concat(h)).setAttribute("src",o.toDataURL(m.type)),u.uploadItem(++h,d,p)},c.src=t.result},t.readAsDataURL(d[h].file)}else p()}}]),s}(),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 s=document.getElementById(this.elementId);if(s){var n='\n <div class="websy-pager-container">\n ';!0===this.options.showPageSize&&(n+="\n ".concat(this.options.pageSizePrefix,' <div id="').concat(this.elementId,'_pageSizeSelector" class="websy-page-selector"></div> ').concat(this.options.pageSizeSuffix," \n ")),n+='\n <ul id="'.concat(this.elementId,'_pageList" class="websy-page-list"></ul> \n </div> \n '),s.innerHTML=n,s.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>")}),s=0;8<this.options.pages.length&&(s=Math.max(0,this.options.activePage-4),e=e.splice(s,10),0<s?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 s(t,e){_classCallCheck(this,s);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(s,[{key:"handleClick",value:function(t){var n=this;t.target.classList.contains("websy-pdf-button")?(this.loader.show(),this.options.preProcess(function(t){!0===t?setTimeout(function(){if(n.options.targetId){var t=document.getElementById(n.options.targetId);if(t){var e={options:{}};if(n.options.pdfOptions&&(e.options=_extends({},n.options.pdfOptions)),n.options.header)if(n.options.header.elementId){var i=document.getElementById(n.options.header.elementId);i&&(e.header=i.outerHTML,n.options.header.css&&(e.options.headerCSS=n.options.header.css))}else n.options.header.html?(e.header=n.options.header.html,n.options.header.css&&(e.options.headerCSS=n.options.header.css)):e.header=n.options.header;if(n.options.footer)if(n.options.footer.elementId){var s=document.getElementById(n.options.footer.elementId);s&&(e.footer=s.outerHTML,n.options.footer.css&&(e.options.footerCSS=n.options.footer.css))}else e.footer=n.options.footer;e.html=t.outerHTML,n.service.add("",e,{responseType:"blob"}).then(function(t){n.loader.hide();var e,i=new Blob([t],{type:"application/pdf"}),s="\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===n.options.directDownload&&(e="function"==typeof n.options.fileName?n.options.fileName()||"Export":n.options.fileName||"Export",s+='download="'.concat(e.replace(/'/g,""),'.pdf"'));s+="\n >\n <button class='websy-btn download-pdf'>".concat(n.options.buttonText,"</button>\n </a>\n </div>\n "),n.popup.show({message:s,mask:!0})},function(t){console.error(t)})}}},n.options.wait):(n.loader.hide(),n.options.onError())})):t.target.classList.contains("download-pdf")&&(this.popup.hide(),this.options.onClose&&this.options.onClose())}},{key:"render",value:function(){}}]),s}(),WebsyPopupDialog=function(){function s(t,e){if(_classCallCheck(this,s),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(s,[{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 s=document.getElementById("".concat(this.elementId,"_collect"));s&&(i.collectedData=s.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()}}]),s}(),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 s(t,e){var i=this;_classCallCheck(this,s);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(s,[{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),s=this.canvas.getContext("2d"),n=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;){n++,s.font="".concat(h," ").concat(n,"px ").concat(c);var m=s.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&&n===this.options.maxHeight?(n=this.options.maxHeight,a=m.actualBoundingBoxAscent,o=!0):(m.width>d||m.actualBoundingBoxAscent>=u)&&(n--,a=m.actualBoundingBoxAscent,o=!0)}if(""===this.options.minHeight&&(this.options.minHeight=void 0),void 0!==this.options.minHeight)if(this.options.minHeight>n&&!0===this.options.wrapText){o=!(e=!0),n=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;){n++,s.font="".concat(h," ").concat(n,"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=s.measureText(w);if(-1!==navigator.userAgent.indexOf("Safari"))for(var I=!1,k=i;!1===I;)0<k.clientHeight?(u=k.clientHeight,I=!0):k.parentNode?k=k.parentNode:I=!0;if(void 0!==this.options.maxHeight&&n===this.options.maxHeight){n=this.options.maxHeight,a=x.actualBoundingBoxAscent,o=!0;break}if(x.width>d||x.actualBoundingBoxAscent>=u/2*.75){n--,a=x.actualBoundingBoxAscent,o=!0;break}}}}void 0!==this.options.minHeight&&this.options.minHeight>n&&(n=this.options.minHeight)}else this.options.minHeight>n&&(n=this.options.minHeight);var L=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(n,"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?L*(1/3)*2:L),"px;\n line-height: ").concat(Math.ceil(!0===e?1.2*n:L),"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 ")}}}]),s}(),WebsyResultList=function(){function n(t,e){var i=this;_classCallCheck(this,n);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 s=document.getElementById(t);s&&(s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("change",this.handleChange.bind(this)),s.addEventListener("keyup",this.handleKeyUp.bind(this)),s.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(n,[{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,s=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],h=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,n=2<arguments.length?arguments[2]:void 0,d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:[],o="";return this.options.template&&(0<s.length?s.forEach(function(l,a){var r="".concat(0<a?"--\x3e":"").concat(n||c.options.template).concat(a<s.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 s=[],n=!0;-1!==i.indexOf("===")?s=i.split("==="):-1!==i.indexOf("!==")?(s=i.split("!=="),n=!1):-1!==i.indexOf("==")?s=i.split("=="):-1!==i.indexOf("!=")&&(s=i.split("!="),n=!1);var o=!0;if(2===s.length&&(isNaN(s[1])||(s[1]=+s[1]),"true"===s[1]&&(s[1]=!0),"false"===s[1]&&(s[1]=!1),"string"==typeof s[1]&&(-1!==s[1].indexOf('"')?s[1]=s[1].replace(/"/g,""):-1!==s[1].indexOf("'")&&(s[1]=s[1].replace(/'/g,""))),!0===n?void 0!==l[s[0]]&&l[s[0]]===s[1]?o=!1:s[0]===s[1]&&(o=!1):!1===n&&void 0!==l[s[0]]&&l[s[0]]!==s[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[^>]*>/),s=t[0].replace(i,"").replace("</for>","").replace(/<\s*for[^>]*>/g,"");if(e&&e[0]){var n=e[0].trim().replace("items=","");'"'===n.split("")[0]?n=n.replace(/"/g,""):"'"===n.split("")[0]&&(n=n.replace(/'/g,""));var o=l;n.split(".").forEach(function(t){o=o[t]}),r=r.replace(t[0],c.buildHTML(o,0,s,[].concat(_toConsumableArray(d),["".concat(h+a,":").concat(n)])))}}),_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 s=this.flattenObject(t[i]);for(var n in s)s.hasOwnProperty(n)&&(e[i+"."+n]=s[n])}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 s=t.target.getAttribute("data-event");if(s){s=s.split("(");var n=[],o=t.target.getAttribute("data-id"),a=t.target.getAttribute("data-locator");s[1]&&(s[1]=s[1].replace(")",""),n=s[1].split(",")),s=s[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(n=n.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][s])t.stopPropagation(),(l=this.options.listeners[i][s]).call.apply(l,[this,t,r[+o]].concat(_toConsumableArray(n)))}}},{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()}}]),n}(),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 s={path:"",items:{}},n="";this.currentParams&&this.currentParams.items?(s.items=_extends({},this.currentParams.items,t),n=this.buildUrlPath(s.items)):0<Object.keys(t).length&&(s.items=_extends({},t),n=this.buildUrlPath(s.items)),s.path=n,!1===e&&(this.currentParams=s);var o=this.currentView;this.options.urlPrefix&&(o="/".concat(this.options.urlPrefix,"/").concat(o)),!0===e?this.navigate("".concat(o,"?").concat(n),"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],s=!(2<arguments.length&&void 0!==arguments[2])||arguments[2];this.previousParams=_extends({},this.currentParams);var n="";this.currentParams&&this.currentParams.items&&(t.forEach(function(t){delete e.currentParams.items[t]}),n=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(n),"main",null,s):!1===s&&(this.currentParams={items:this.currentParams.items,path:n},this.updateHistory(o,!s,!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]")),s=0;s<i.length;s++){var n=i[s].getAttribute("data-group"),o=i[s].getAttribute("data-view");this.groups[n]||this.addGroup(n),i[s].classList.contains(this.options.activeClass)&&(this.groups[n].activeView=o),-1===this.groups[n].views.indexOf(o)&&this.groups[n].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("&"),s=0;s<i.length;s++){var n=i[s].split("=");n[0]&&""!==n[0]&&n[1]&&""!==n[1]&&(e.items[n[0]]=n[1])}return this.currentParams=e}}},{key:"generateId",value:function(t){for(var e="abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789",i=[],s=0;s<6;s++){var n=Math.floor(62*Math.random());i.push(e[n])}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),s=0;s<i.length;s++)this.hideTriggerItems(i[s].view,e),this.hideViewItems(i[s].view,e),this.publish("hide",[i[s].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 s="\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&&(s+="\n <Help not yet supported>\n "),e&&e.tooltip&&e.tooltip.value&&""!==e.tooltip.value&&(s+='\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=s)}},{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(s){var n=this;return new Promise(function(i,t){n.options.views[s]||(n.options.views[s]={components:[]}),!0===n.options.views[s].ready?i():n.options.views[s].template?n.preloadView(s,function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=document.querySelector("[data-view='".concat(s,"'].").concat(n.options.viewClass));e?n.options.views[s].templateInstance=new WebsyDesigns.Template(e,{template:n.options.views[s].template,data:t,readyCallbackFn:function(){n.options.views[s].ready=!0,i()}}):(console.log("No view element found for '".concat(s,"' to render template")),n.options.views[s].ready=!0,i())}):!0!==n.options.views[s].ready&&n.options.views[s].load?n.preloadView(s,function(){0<arguments.length&&void 0!==arguments[0]&&arguments[0];n.options.views[s].ready=!0,i()}):(n.options.views[s].ready=!0,i())})}},{key:"showView",value:function(i,s,n){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,n]);o.previousView!==o.currentView||"main"!==n?(o.showComponents(i),o.options.views[i].show&&o.options.views[i].show.call(o.options.views[i]),o.publish("show",[i,s,n])):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,s,n]))})}},{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,s=3<arguments.length?arguments[3]:void 0;if(0!==t.indexOf("http")){void 0===s&&(s=!1),this.popped=s;var n,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&&(n=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!==n){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,s)}!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 s=0;s<i.length;s++)i[s].classList.remove(this.options.activeClass)}},{key:"activateItem",value:function(t,e){var i=document.getElementsByClassName(e);if(i)for(var s=0;s<i.length;s++)if(i[s].attributes[this.options.viewAttribute]&&i[s].attributes[this.options.viewAttribute].value===t){i[s].classList.add(this.options.activeClass);break}}}]),e}(),WebsySearch=function(){function s(t,e){_classCallCheck(this,s),this.elementId=t;this.options=_extends({},{searchIcon:'<svg class=\'search\' 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>',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>',clearAlwaysOn:!1,placeholder:"Search",searchTimeout:500,suggestTimeout:100,suggestingTimeout:3e3,suggestLimit:5,minLength:2},e),this.searchTimeoutFn=null,this.suggestTimeoutFn=null,this.suggestingTimeoutFn=null,this.isSuggesting=!1,this.inSuggestions=!1,this.cursorPosition=0,this.terms=[],this.Key={BACKSPACE:8,ESCAPE:27,CONTROL:17,COMMAND:91,PASTE:86,TAB:9,ENTER:13,SHIFT:16,UP:38,DOWN:40,RIGHT:39,LEFT:37,DELETE:46,SPACE:32};var i=document.getElementById(t);i?(i.addEventListener("click",this.handleClick.bind(this)),i.addEventListener("keyup",this.handleKeyUp.bind(this)),i.addEventListener("keydown",this.handleKeyDown.bind(this)),i.addEventListener("mouseover",this.handleMouseOver.bind(this)),i.innerHTML="\n <div class='websy-search-input-container'>\n ".concat(this.options.searchIcon,"\n <div id='").concat(this.elementId,"_ghost' class='websy-search-input-ghost'></div>\n <div id='").concat(this.elementId,"_lozenges' class='websy-search-lozenge-container'></div>\n <input id='").concat(this.elementId,"_search' class='websy-search-input' placeholder='").concat(this.options.placeholder||"Search","' value='").concat(this.options.initialValue||"","' autocorrect='off' autocomplete='off' autocapitalize='off' spellcheck='false'>\n <div id='").concat(this.elementId,"_ambiguities' class='websy-search-ambiguity-container'></div>\n <div class='clear ").concat(!0===this.options.clearAlwaysOn?"":"websy-hidden","' id='").concat(this.elementId,"_clear'>\n ").concat(this.options.clearIcon,"\n </div>\n <div id='").concat(this.elementId,"_suggestions' class='websy-search-suggestion-container'>\n <ul id='").concat(this.elementId,"_suggestionList'></ul>\n </div>\n <div id='").concat(this.elementId,"_associations' class='websy-search-association-container'>\n <ul id='").concat(this.elementId,"_associationsList'></ul>\n </div>\n </div>\n ")):console.log("No element found with Id",t)}return _createClass(s,[{key:"acceptSuggestion",value:function(){this.searchText=this.ghostQuery,this._suggestions=[],this.hideSuggestions();var t=document.getElementById("".concat(this.elementId,"_search"));t&&(t.value=this.searchText),this.options.onSearch&&this.options.onSearch(this.searchText)}},{key:"handleClick",value:function(t){t.target.classList.contains("clear")?(document.getElementById("".concat(this.elementId,"_search")).value="",this.options.onClear&&this.options.onClear()):t.target.classList.contains("websy-search-suggestion-item")&&this.acceptSuggestion()}},{key:"handleKeyDown",value:function(t){if("Enter"===t.key){if(this.options.onSubmit)return this.options.onSubmit(t.target.value),t.preventDefault(),!1}else t.keyCode===this.Key.ESCAPE?this.hideSuggestions():t.keyCode===this.Key.CONTROL||t.keyCode===this.Key.COMMAND?this.isCutCopyPaste=!0:t.keyCode===this.Key.PASTE&&this.isCutCopyPaste?this.isPaste=!0:t.keyCode===this.Key.DOWN?(this.inSuggestions=!0,this.showSuggestions()):t.keyCode===this.Key.UP?(this.inSuggestions&&t.preventDefault(),this.inSuggestions=!1):t.keyCode===this.Key.RIGHT?this.suggesting&&this.inSuggestions&&(t.preventDefault(),this.nextSuggestion()):t.keyCode===this.Key.LEFT?this.suggesting&&this.inSuggestions&&(t.preventDefault(),this.prevSuggestion()):t.keyCode===this.Key.ENTER||t.keyCode===this.Key.TAB?this.suggesting?(t.preventDefault(),this.acceptSuggestion()):this.associating&&t.keyCode===this.Key.ENTER&&(t.preventDefault(),this.hideAssociations()):t.keyCode===this.Key.SPACE&&this.hideSuggestions()}},{key:"handleKeyUp",value:function(t){var e=this;if(t.target.classList.contains("websy-search-input")){if(this.cursorPosition=t.target.selectionStart,this.searchText=t.target.value,this.searchTimeoutFn&&clearTimeout(this.searchTimeoutFn),"Enter"===t.key||"Tab"===t.key)return!1;var i=document.getElementById("".concat(this.elementId,"_clear"));!1===this.options.clearAlwaysOn&&(0<t.target.value.length?i.classList.remove("websy-hidden"):i.classList.add("websy-hidden")),this.options.onKeyUp&&this.options.onKeyUp(t.target.value,t),t.target.value.length>=this.options.minLength?this.searchTimeoutFn=setTimeout(function(){e.options.onSearch&&e.options.onSearch(t.target.value,t)},this.options.searchTimeout):!this.options.onSearch||"Delete"!==t.key&&"Backspace"!==t.key||this.options.onSearch&&this.options.onSearch("",t)}this.renderLozenges()}},{key:"handleMouseOver",value:function(t){if(t.target.classList.contains("websy-search-suggestion-item")){this.startSuggestionTimeout();var e=t.target.getAttribute("data-index");this.activeSuggestion=+e,this.renderGhost(),this.highlightActiveSuggestion()}}},{key:"hideSuggestions",value:function(){this.suggesting=!1,this.activeSuggestion=0,this.inSuggestions=!1,this.ghostPart="",this.ghostQuery="",this.ghostDisplay="",this.hideGhost();var t=document.getElementById("".concat(this.elementId,"_suggestions"));t&&t.classList.remove("active")}},{key:"hideGhost",value:function(){var t=document.getElementById("".concat(this.elementId,"_ghost"));t&&(t.innerHTML="")}},{key:"highlightActiveSuggestion",value:function(){var e=this;if(document.getElementById(this.elementId)){var t=document.querySelectorAll(".websy-search-suggestion-item");Array.from(t).forEach(function(t){t.classList.remove("active"),+t.getAttribute("data-index")===e.activeSuggestion&&t.classList.add("active")})}}},{key:"nextSuggestion",value:function(){this.startSuggestionTimeout(),this.activeSuggestion===this._suggestions.length-1?this.activeSuggestion=0:this.activeSuggestion++,this.renderGhost(),this.highlightActiveSuggestion()}},{key:"prevSuggestion",value:function(){this.startSuggestionTimeout(),0===this.activeSuggestion?this.activeSuggestion=this._suggestions.length-1:this.activeSuggestion--,this.renderGhost(),this.highlightActiveSuggestion()}},{key:"renderGhost",value:function(){this.ghostPart=function(t,e){var i=t.toLowerCase();e=e.toLowerCase();for(;-1===e.indexOf(i);)(i=i.split(" ")).splice(0,1),i=i.join(" ");var s=new RegExp(i,"i");return e.replace(s,"")}(this.searchText,this._suggestions[this.activeSuggestion].label),this.ghostQuery=this.searchText+this.ghostPart;var t="<span style='color: transparent;'>".concat(this.searchText,"</span>").concat(this.ghostPart),e=document.getElementById("".concat(this.elementId,"_ghost"));e&&(e.innerHTML=t)}},{key:"renderLozenges",value:function(){var e=(this.searchText||"").split("").map(function(t){return{text:t}});this._terms.sort(function(t,e){return e.position-t.position}).forEach(function(t){e.splice(t.position,t.length,{text:t.term,term:t})});var t=e.map(function(t){var e="<div";return t.term&&t.term.label&&(e+='\n data-label="'.concat(t.term.label,'"\n ')),e+=">".concat(t.text.replace(/ /g,"&nbsp;"),"</div>")}),i=document.getElementById("".concat(this.elementId,"_lozenges"));i&&(i.innerHTML=t.join(""))}},{key:"renderSuggestion",value:function(){for(var t="",e=0;e<this._suggestions.length;e++)t+="\n <li id='".concat(this.elementId,"_suggestion_").concat(e,"' class='websy-search-suggestion-item' data-index='").concat(e,"'>\n ").concat(this._suggestions[e].label,"\n </li>\n ");var i=document.getElementById("".concat(this.elementId,"_suggestionList"));i&&(i.innerHTML=t),this.highlightActiveSuggestion()}},{key:"showSuggestions",value:function(){if(this.startSuggestionTimeout(),this.searchText&&1<this.searchText.length&&this.cursorPosition===this.searchText.length&&0<this._suggestions.length){this.suggesting||(this.activeSuggestion=0,this.suggesting=!0),this.renderGhost();var t=document.getElementById("".concat(this.elementId,"_suggestions"));t&&t.classList.add("active"),this.renderSuggestion()}else this.suggesting=!1,this.hideGhost(),this.hideSuggestions()}},{key:"startSuggestionTimeout",value:function(){var t=this;this.suggestingTimeoutFn&&clearTimeout(this.suggestingTimeoutFn),this.suggestingTimeoutFn=setTimeout(function(){t.hideSuggestions(t)},this.options.suggestingTimeout)}},{key:"suggestions",set:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];this._suggestions=t.splice(0,this.options.suggestLimit),this.showSuggestions()}},{key:"text",get:function(){var t=document.getElementById("".concat(this.elementId,"_search"));return t?t.value:""},set:function(t){var e=document.getElementById("".concat(this.elementId,"_search"));e&&(e.value=t)}},{key:"terms",set:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];this._terms=t,console.log("terms",t),this.renderLozenges()}}]),s}(),WebsySignup=function(){function s(t,e){_classCallCheck(this,s);if(this.elementId=t,this.options=_extends({},{loginType:"email",classes:[],url:"auth/signup"},e),document.getElementById(this.elementId)){var i={useRecaptcha:this.options.useRecaptcha||ENVIRONMENT.useRecaptcha||!1,submit:{text:this.options.buttonText||"Sign up",classes:(this.options.buttonClasses||[]).join(" ")||""},submitFn:this.submitForm.bind(this),fields:[{label:"email"===this.options.loginType?"Email":"Username",placeholder:"Enter ".concat("email"===this.options.loginType?"your email address":"your chosen Username"),field:this.options.loginType,type:this.options.loginType,required:!0},{label:"Password",placeholder:"Enter your password",field:this.options.passwordField||"password",type:"password",required:!0}]};this.options.fields&&(i.fields=this.options.fields.concat(i.fields)),this.signupForm=new WebsyDesigns.WebsyForm(this.elementId,_extends({},this.options,i))}else console.error("No element with ID ".concat(this.elementId," found for WebsyLogin component."))}return _createClass(s,[{key:"submitForm",value:function(t,e,i){console.log(t),console.log(e,i)}}]),s}(),Switch=function(){function s(t,e){_classCallCheck(this,s),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(s,[{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 '))}}]),s}(),WebsyTemplate=function(){function n(t,e){var i=this;_classCallCheck(this,n);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 s=document.getElementById(t);s&&s.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(n,[{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 s=[],n=!0;-1!==i.indexOf("===")?s=i.split("==="):-1!==i.indexOf("!==")?(s=i.split("!=="),n=!1):-1!==i.indexOf("==")?s=i.split("=="):-1!==i.indexOf("!=")&&(s=i.split("!="),n=!1);var o=!0;if(2===s.length&&(isNaN(s[1])||(s[1]=+s[1]),"true"===s[1]&&(s[1]=!0),"false"===s[1]&&(s[1]=!1),"string"==typeof s[1]&&(-1!==s[1].indexOf('"')?s[1]=s[1].replace(/"/g,""):-1!==s[1].indexOf("'")&&(s[1]=s[1].replace(/'/g,""))),!0===n?void 0!==l.options.data[s[0]]&&l.options.data[s[0]]===s[1]?o=!1:s[0]===s[1]&&(o=!1):!1===n&&void 0!==l.options.data[s[0]]&&l.options.data[s[0]]!==s[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 s=new RegExp("{".concat(i,"}"),"gm");s&&(r=r.replace(s,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 s=t.target.getAttribute("data-event");if(s){s=s.split("(");var n,o=t.target.getAttribute("data-id"),a=this.options.data;if(t.target.classList.contains(e)&&this.options.listeners[i]&&this.options.listeners[i][s])t.stopPropagation(),(n=this.options.listeners[i][s]).call.apply(n,[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()}}]),n}(),WebsyUtils={createIdentity:function(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:6,e="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",s=0;s<t;s++)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",s=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"#ffffff",n=0,o=0,a=0,l=1;return-1!==t.indexOf("#")?(e=(e=t=t.replace("#","")).split(""),n=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")&&(n=(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*n+.587*o+.114*a)/l?i:s},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 s="<div style='display: inline-block; width: auto; font-size: ".concat(i,"'>").concat(t,"</div>"),n=document.createElement("div");n.style.position="absolute",n.style.visibility="hidden",n.style.transform="rotate(".concat(e,"deg)"),n.innerHTML=s,document.body.appendChild(n);var o=n.getBoundingClientRect();return n.remove(),o},parseUrlParams:function(){for(var t={},e=window.location.search.replace("?","").split("&"),i=0;i<e.length;i++){var s=e[i].split("=");t[s[0]]=s[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,s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,n=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,s=0;s<l.length;s++)if(t>=l[s].divider){i=l[s].divider,e=l[s].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===n&&(e*=100),0<e%1&&(s=1),e<1&&0===s&&(s=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(s),!0===o)return e;return e.replace&&(e=e.replace(/\B(?=(\d{3})+(?!\d))/g,",")),"".concat(e).concat(r).concat(!0===n?"%":"")},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 s=document.getElementById(this.elementId);if(s){var n="\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&&(n+='\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];s.innerHTML=n,"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)}})),s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("mouseout",this.handleMouseOut.bind(this)),s.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 s=t.value;!0===a.options.columns[e].showAsImage&&(t.value="\n <img src='".concat(t.value,"'>\n "));var n="\n <td \n ";return!a.options.columns[e].showAsImage&&t.value&&t.value.indexOf&&-1===t.value.indexOf("<svg")&&-1===t.value.indexOf("<img")&&(n+="\n data-info='".concat(s,"'\n ")),n+="\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 s=t.target.getAttribute("data-field");window.viewManager.views.global.objects[1].instance.show(s,{x:t.pageX,y:t.pageY},function(){t.target.classList.remove("active")})}else if(t.target.classList.contains("websy-page-num")){var n=+t.target.getAttribute("data-page");this.options.onSetPage&&this.options.onSetPage(n)}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 s="value",n="asc"===t.sort?"desc":"asc";t.sort=n;var o=t.sortType||"alphanumeric";t.sortProp&&(s=t.sortProp),this.data.sort(function(t,e){switch(o){case"numeric":return"asc"===n?t[i][s]-e[i][s]:e[i][s]-t[i][s];default:return"asc"===n?t[i][s]>e[i][s]?1:-1:t[i][s]<e[i][s]?1:-1}})}this.render(this.data)}},{key:"render",value:function(t){var s=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?s.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 n=document.getElementById("".concat(this.elementId,"_pageList"));if(n){var o=new Array(this.options.pageCount).fill("").map(function(t,e){return'<li data-page="'.concat(e,'" class="websy-page-num ').concat(s.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>')))),n.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 s=document.getElementById("".concat(this.elementId,"_errorTitle"));s&&(s.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 s=document.getElementById(this.elementId);if(s){var n="\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&&(n+='\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];s.innerHTML=n,"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)}})),s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("mouseout",this.handleMouseOut.bind(this)),s.addEventListener("mousemove",this.handleMouseMove.bind(this)),s.addEventListener("mousedown",this.handleMouseDown.bind(this)),s.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,n){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+n,"' \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 s=t.value;return!0===o.options.columns[e].showAsImage&&(t.value="\n <img src='".concat(t.value,"'>\n ")),"\n <td \n data-info='".concat(s,"' \n data-row-index='").concat(o.rowCount+n,"' \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+n,"' \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 s=document.getElementById("".concat(this.elementId,"_head"));document.getElementById("".concat(this.elementId,"_vScrollContainer")).style.top="".concat(s.clientHeight,"px")}for(var n=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;n.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"),s=this.options.columns[e];this.options.onSort?this.options.onSort(t,s,e,i):this.internalSort(s,e)}else if(t.target.classList.contains("websy-table-search-icon")){var n=+t.target.getAttribute("data-col-index");this.options.columns[n].onSearch&&this.options.columns[n].onSearch(t,this.options.columns[n])}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 s="value",n="asc"===t.sort?"desc":"asc";t.sort=n;var o=t.sortType||"alphanumeric";t.sortProp&&(s=t.sortProp),this.data.sort(function(t,e){switch(o){case"numeric":return"asc"===n?t[i][s]-e[i][s]:e[i][s]-t[i][s];default:return"asc"===n?t[i][s]>e[i][s]?1:-1:t[i][s]<e[i][s]?1:-1}})}this.render(this.data)}},{key:"render",value:function(t){var s=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?s.buildSearchIcon(e):"","\n </div>\n </th>\n ")}}).join("")+"</tr>";document.getElementById("".concat(this.elementId,"_head")).innerHTML=i;var n=document.getElementById("".concat(this.elementId,"_dropdownContainer"));if(""===n.innerHTML){var o="";this.options.columns.forEach(function(t,e){t.searchable&&t.searchField&&(o+='\n <div id="'.concat(s.elementId,"_columnSearch_").concat(e,'" class="websy-modal-dropdown"></div>\n '))}),n.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(s.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 s=document.getElementById("".concat(this.elementId,"_errorTitle"));s&&(s.innerHTML=t.title)}if(t.message){var n=document.getElementById("".concat(this.elementId,"_errorMessage"));n&&(n.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 s=document.getElementById("".concat(this.elementId,"_head")),n=document.getElementById("".concat(this.elementId,"_body"));s.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>",n.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=n.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},n.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 s=document.getElementById(this.elementId);if(s.style.position="relative",s){var n="\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&&(n+='\n <div id="'.concat(this.elementId,'_touchScroller" class="websy-table-touch-scroller"></div>\n ')),n+=' \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&&(n+='\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 ')),s.innerHTML=n;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)}s.addEventListener("click",this.handleClick.bind(this)),s.addEventListener("mousedown",this.handleMouseDown.bind(this)),s.addEventListener("touchstart",this.handleTouchStart.bind(this)),s.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,s=t.index||e;if(void 0!==h[i]&&!1!==l.options.columns[l.options.columns.length-1][s].show){var n="",o="";!0!==r||1!=+t.colspan&&t.colspan||(o=n="width: ".concat(h[i].width||h[i].actualWidth,"px!important; ")),t.style&&(n+=t.style),!0!==r||1!=+t.colspan&&t.colspan||(n+="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&&(n+="background-color: ".concat(t.backgroundColor,"; "),t.color||(n+="color: ".concat(WebsyDesigns.Utils.getLightDark(t.backgroundColor),"; "))),t.color&&(n+="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(n,"'\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(s,"'\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(s,"'\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 n=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!==n.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; "),s="width: ".concat(l[e].width||l[e].actualWidth,"px!important; ");!0===o&&(i+="max-width: ".concat(l[e].width||l[e].actualWidth,"px!important;"),s+="max-width: ".concat(l[e].width||l[e].actualWidth,"px!important;")),1<t.colspan&&(s="width: 100%;"),t.style&&(i+=t.style),a+="<td \n class='websy-table-cell ".concat(e<n.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(s,"'\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?n.buildSortIcon(t.sort,e):"").concat(!0===t.searchable?n.buildSearchIcon(t,e):"","\n </div>\n </td>")}}),a+="</tr>"});var s=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(n.elementId,"_columnSearch_").concat(t.dimId||e))){var i=document.createElement("div");i.id="".concat(n.elementId,"_columnSearch_").concat(t.dimId||e),i.className="websy-modal-dropdown",s.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,s=0<arguments.length&&void 0!==arguments[0]&&arguments[0];if(!this.options.totals)return"";var n=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!==n[e]&&!1!==n[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===s&&(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 s=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,n=3<arguments.length?arguments[3]:void 0;this.totalRowCount=e,this.totalColumnCount=i,this.pinnedColumns=n;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();s.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>=s.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>=s.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)===s.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===s.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)),s.sizes.totalWidth+=t.width||t.actualWidth,e>s.pinnedColumns&&(s.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(n){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(n){for(var i="",s=0;s<Math.min(n.length,1e3);s++)n[s].length===o.options.columns[o.options.columns.length-1].length&&i.length<n[s][e].value.length&&(i=n[s][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"),s=+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,+s,+e);else if(t.target.classList.contains("websy-table-cell-expand"))this.options.onExpandCell&&this.options.onExpandCell(t,+s,+e);else if(t.target.classList.contains("sortable-column")){var n=this.options.columns[this.options.columns.length-1][e];this.options.onSort?this.options.onSort(t,n,e):this.internalSort(n,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:s,cell:(this.currentData[s]||[])[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 s=document.getElementById("".concat(this.elementId,"_vScrollHandle")),n=(document.getElementById("".concat(this.elementId,"_vScrollContainer")).getBoundingClientRect().height-s.getBoundingClientRect().height)/this.totalRowCount;t.deltaY<0&&(n*=-1),this.scrollY(n)}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,s=Math.abs(e*(1/(t/1e3))),n=1.5*t/1e3,o=Math.abs(Math.ceil(s/this.sizes.cellHeight)),a=o/n,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 s=document.getElementById("".concat(this.elementId,"_tableInner"));s&&(s.style.width="".concat(this.sizes.totalWidth,"px")),this.renderColumnHeaders(),this.renderTotals(),t&&this.appendRows(t);var n=document.getElementById("".concat(this.elementId,"_tableBody"));if(n){if(n.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 s=document.getElementById("".concat(this.elementId,"_errorTitle"));s&&(s.innerHTML=t.title)}if(t.message){var n=document.getElementById("".concat(this.elementId,"_errorMessage"));n&&(n.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,s=document.getElementById("".concat(this.elementId,"_hScrollContainer")),n=document.getElementById("".concat(this.elementId,"_hScrollHandle"));i=void 0!==this.handleXStart&&null!==this.handleXStart?this.handleXStart+t:n.offsetLeft+t;var o=s.getBoundingClientRect().width-n.getBoundingClientRect().width;if(n.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),n.offsetWidth+n.offsetLeft>=s.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,s=document.getElementById("".concat(this.elementId,"_vScrollContainer")),n=document.getElementById("".concat(this.elementId,"_vScrollHandle"));i=void 0!==this.handleYStart&&null!==this.handleYStart?this.handleYStart+t:+n.style.top.replace("px","")+t;var o=s.getBoundingClientRect().height-n.getBoundingClientRect().height;n.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 n(t,e){var a=this;_classCallCheck(this,n);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,s=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n="bottom";"horizontal"===a.options.orientation&&(n="left"),!0===s&&(n+="Brush"),n+="Axis";a.options.data[n.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 s=this;this.brushed=function(t){var e=s.options.margin.left+s.options.margin.axisLeft+(1-t.selection[0]/(s.plotWidth/(s.widthForCalc+s.totalBandPadding))),i=s.options.margin.top+s.options.margin.axisTop;"horizontal"===s.options.orientation&&(e=s.options.brushHeight+s.options.margin.left+s.options.margin.axisLeft,i=s.options.margin.top+s.options.margin.axisTop+(1-t.selection[0]/(s.plotHeight/(s.widthForCalc+s.totalBandPadding)))),s.plotArea&&s.plotArea.attr("transform","translate(".concat(e,", ").concat(i,")")),s.areaLayer&&s.areaLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),s.lineLayer&&s.lineLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),s.barLayer&&s.barLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),s.labelLayer&&s.labelLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),s.symbolLayer&&s.symbolLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),s.refLineLayer&&s.refLineLayer.attr("transform","translate(".concat(e,", ").concat(i,")")),"horizontal"===s.options.orientation?s.leftAxisLayer&&s.leftAxisLayer.attr("transform","translate(".concat(s.options.brushHeight+s.options.margin.left+s.options.margin.axisLeft,", ").concat(i,")")):s.bottomAxisLayer&&s.bottomAxisLayer.attr("transform","translate(".concat(e,", ").concat(i+s.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(n,[{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=[],s="bottom";if("horizontal"===this.options.orientation&&(s="left"),0<this.brushedDomain.length&&t===s&&!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 n=this.options.data[t].data[0].value,o=this.options.data[t].data[this.options.data[t].data.length-1].value;i=[n=this.parseX(n),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",s=0;s<t;s++)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],s=e.data[t];if("horizontal"===r.options.orientation&&(i=_toConsumableArray(e.data).reverse()[t-1],s=_toConsumableArray(e.data).reverse()[t]),i&&!s&&(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))),s&&!i&&(h=r[d](r.parseX(s.x.value)),m=s.x.value,s.y.color||(s.y.color=e.color),g.push(s),void 0!==s.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(s.x.value))),i&&s){var n=r[d](r.parseX(i.x.value)),o=r[d](r.parseX(s.x.value)),a=Math.abs(n-o)/2;d3.pointer(l)[0]-n>=a?(h=o,m=s.x.value,void 0!==s.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(s.x.value)),s.y.color||(s.y.color=e.color),g.push(s)):(h=n,m=i.x.value,void 0!==s.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(s.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 s=0;"Time"!==this.options.data[p].scale&&(s=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+s}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 n=h,o=h,a=0,f=this.plotHeight;"horizontal"===this.options.orientation&&(n=0,o=this.plotWidth,f=a=h),this.trackingLineLayer.select(".tracking-line").attr("x1",n).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.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.options.transitionDuration=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&&0<e.clientHeight){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 s=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(s)+"px"),this.legend.options.maxSize&&this.legendArea.style("width","".concat(this.legend.options.maxSize,"px"))}this.legend.data=i;var n=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=n.height,this.legendArea.style("top","0").style("bottom","unset")),"bottom"===this.options.legendPosition&&(this.options.margin.legendBottom=n.height,this.legendArea.style("top","unset").style("bottom","0")),"left"===this.options.legendPosition&&(this.options.margin.legendLeft=n.width,this.legendArea.style("left","0").style("right","unset").style("top","0")),"right"===this.options.legendPosition&&(this.options.margin.legendRight=n.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],k=[0,this.plotWidth],L=[this.plotHeight,0],C=[this.options.brushHeight,0];"horizontal"===this.options.orientation&&(C=[this.plotHeight,0],k=[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 T=0;this["custom".concat(_,"Range")]=[0].concat(_toConsumableArray(this.options.data[S].data.map(function(t,e,i){for(var s=l.bandPadding*e+l.bandPadding,n=l.widthForCalc/v*T,o=0;o<(t.valueCount||1);o++){var a=o*h;l["custom".concat(_,"DetailRange")].push(n+s+a)}return T+="stacked"!==l.options.grouping&&!0===l.options.allowUnevenBands&&t.valueCount||1,l.widthForCalc/v*T+s}))),T=0,this["custom".concat(_,"BrushRange")]=[0].concat(_toConsumableArray(this.options.data[S].data.map(function(t,e,i){l.brushBandPadding,l.brushBandPadding;return T+="stacked"!==l.options.grouping&&!0===l.options.allowUnevenBands&&t.valueCount||1,("vertical"===l.options.orientation?l.plotWidth:l.plotHeight)/v*T})))}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]:L=[this.widthForCalc+this.totalBandPadding,0],!0!==this.options.allowBrushing&&(I=k),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(k)),this.bottomAxis.nice,this.bottomAxis.padding&&this.options.data.bottom.padding&&this.bottomAxis.padding(this.options.data.bottom.padding||0);var D="brushX",A=this.plotWidth,E=this.plotWidth,B=this.options.brushHeight;if("horizontal"===this.options.orientation?(D="brushY",A=this.options.brushHeight,B=this.plotHeight,this.brushNeeded&&(E=this.plotHeight*(this.plotHeight/(this.widthForCalc+this.totalBandPadding)))):this.brushNeeded&&(E=this.plotWidth*(this.plotWidth/(this.widthForCalc+this.totalBandPadding))),this.brush=d3[D]().extent([[0,0],[A,B]]).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,E])):this.brushLayer.style("visibility","hidden"),0<this.options.margin.axisBottom){var P,M="";if(this.options.data.bottom.data)if("Time"===this.options.data.bottom.scale){var R=this.options.data.bottom.max.getTime()-this.options.data.bottom.min.getTime(),W=864e5;M=R<6e5?(P=d3.timeSecond.every(15),"%H:%M:%S"):R<36e5?(P=d3.timeMinute.every(1),"%H:%M"):R<W/6?(P=d3.timeMinute.every(10),"%H:%M"):R<W/2?(P=d3.timeMinute.every(30),"%H:%M"):R<W?(P=d3.timeHour.every(1),"%H:%M"):R<7*W?(P=d3.timeDay.every(1),"%d %b @ %H:%M"):R<14*W?(P=d3.timeDay.every(2),"%d %b %Y"):R<21*W?(P=d3.timeDay.every(3),"%d %b %Y"):R<28*W?(P=d3.timeDay.every(4),"%d %b %Y"):R<60*W?(P=d3.timeDay.every(7),"%d %b %Y"):(P=d3.timeMonth.every(1),"%b %Y")}else P=this.options.data.bottom.ticks||Math.min(this.options.data.bottom.data.length,5);else P=this.options.data.bottom.ticks||5;this.options.calculatedTimeFormatPattern=M,this.bAxisFunc=d3.axisBottom(this.bottomAxis).ticks(P),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"),F=this.createDomain("right"),O=this.createDomain("right");if(this.leftAxis=d3["scale".concat(this.options.data.left.scale||"Linear")]().domain(H).range(L),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<F.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<F.length&&(this.rightAxis=d3["scale".concat(this.options.data.right.scale||"Linear")]().domain(F).range([this.plotHeight,0]),this.rightBrushAxis=d3["scale".concat(this.options.data.right.scale||"Linear")]().domain(O).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<F.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 U in this.renderedKeys)-1===j.indexOf(U)&&(this.removeline(U),this.removebar(U),this.removesymbol(U),this.removelabel(U));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 n=this,i=function(s,e,t){return d3.area().x(function(t){if("Time"===n.options.data[s].scale)return n["".concat(s,"Axis")](n.parseX(t.x.value));var e=n[s+"Axis"].domain().indexOf(t.x.value),i=n["custom".concat(s.toInitialCaps(),"Range")][e];return n["custom".concat(s.toInitialCaps(),"Range")][e+1]&&(i+=(n["custom".concat(s.toInitialCaps(),"Range")][e+1]-i)/2),i}).y0(function(t){return n["".concat(e,"Axis")](0)}).y1(function(t){return n["".concat(e,"Axis")](isNaN(t.y.value)?0:t.y.value)}).curve(d3[t||n.options.curveStyle])},s="bottom",o="secondary"===e.axis?"right":"left";"horizontal"===this.options.orientation&&(s="secondary"===e.axis?"right":"left",o="bottom");var a=this.areaLayer.selectAll(".area_".concat(e.key)).data([e.data]);a.exit().transition().duration(this.options.transitionDuration).style("fill-opacity",1e-6).remove(),a.attr("fill",function(t){return t[0].y.color||e.color}).transition().duration(this.options.transitionDuration).attr("d",function(t){return i(s,o,e.curveStyle)(t)}),a.enter().append("path").attr("d",function(t){return i(s,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,s="bottom",n="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,s){var n;if("horizontal"===this.options.orientation)n=Math.max(1,this.options.data[s].bandWidth-(-1!==s.indexOf("Brush")?2:2*this.options.groupPadding));else{var o=l.call(this,t,e,i,s);if(null==o)return null;n=this["".concat(i,"Axis")](0)-this["".concat(i,"Axis")](Math.abs(t.y.value))}return isNaN(n)?null:n}function p(t,e,i,s){var n;if("horizontal"===this.options.orientation)n=this["".concat(i,"Axis")](0)-this["".concat(i,"Axis")](Math.abs(t.y.value));else{var o=l.call(this,t,e,i,s);if(null==o)return null;n=Math.max(1,this.options.data[s].bandWidth-(-1!==s.indexOf("Brush")?2:2*this.options.groupPadding))}return isNaN(n)?0:n}function l(t,e,i,s){var n;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,s),a=p.call(this,t,e,i,s);n=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,s);n=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[s].bandWidth*r+(-1!==s.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==s.indexOf("Brush")?1:this.options.groupPadding);n=0<this["custom".concat(s.toInitialCaps(),"Range")].length?this["custom".concat(s.toInitialCaps(),"Range")][this[s+"Axis"].domain().indexOf(t.x.value)]+c:this["".concat(s,"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!==s.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==s.indexOf("Brush")?1:this.options.groupPadding);n=this["custom".concat(s.toInitialCaps(),"Range")][this[s+"Axis"].domain().indexOf(t.x.value)]+h}return isNaN(n)?null:n}function r(t,e,i,s){var n;if("horizontal"===this.options.orientation)if("grouped"!==this.options.grouping){var o=(-1!==s.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==s.indexOf("Brush")?1:this.options.groupPadding);n=this["custom".concat(s.toInitialCaps(),"Range")][this[s+"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[s].bandWidth*a+(-1!==s.indexOf("Brush")?this.brushBandPadding:this.bandPadding)/2+(-1!==s.indexOf("Brush")?1:this.options.groupPadding);n=0<this["custom".concat(s.toInitialCaps(),"Range")].length?this["custom".concat(s.toInitialCaps(),"Range")][this[s+"Axis"].domain().indexOf(t.x.value)]+l:this["".concat(s,"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,s),c=d.call(this,t,e,i,s);n=this["".concat(i,"Axis")](0)-(r+c)*(t.y.accumulative<0?0:1)}else{var h=d.call(this,t,e,i,s);n=this["".concat(i,"Axis")](0)-h*(t.y.value<0?0:1)}return isNaN(n)?null:n}"horizontal"===this.options.orientation&&(s="left",n="bottom"),o.exit().transition().duration(this.options.transitionDuration).style("fill-opacity",1e-6).remove(),o.attr("width",function(t,e){return Math.abs(p.call(i,t,e,n,s))}).attr("height",function(t,e){return d.call(i,t,e,n,s)}).attr("x",function(t,e){return l.call(i,t,e,n,s)}).attr("y",function(t,e){return r.call(i,t,e,n,s)}).transition().duration(this.options.transitionDuration).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,n,s))}).attr("height",function(t,e){return d.call(i,t,e,n,s)}).attr("x",function(t,e){return l.call(i,t,e,n,s)}).attr("y",function(t,e){return r.call(i,t,e,n,s)}).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().duration(this.options.transitionDuration).style("fill-opacity",1e-6).remove(),a.attr("width",function(t,e){return Math.abs(p.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"Brush")))}).attr("height",function(t,e){return d.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"Brush"))}).attr("x",function(t,e){return l.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"Brush"))}).attr("y",function(t,e){return r.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"Brush"))}).transition().duration(this.options.transitionDuration).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(n,"Brush"),"".concat(s,"Brush")))}).attr("height",function(t,e){return d.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"Brush"))}).attr("x",function(t,e){return l.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"Brush"))}).attr("y",function(t,e){return r.call(i,t,e,"".concat(n,"Brush"),"".concat(s,"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)).style("fill-opacity",1e-6).remove(),this.brushArea.selectAll(".bar_".concat(t)).style("fill-opacity",1e-6).remove()}},{key:"renderLabels",value:function(i,t){var e=this,a="bottom",l="left",s=this;if("horizontal"===this.options.orientation&&(a="left",l="bottom"),!0===this.options.showLabels||!0===i.showLabels){var n=this.labelLayer.selectAll(".label_".concat(i.key)).data(i.data);n.exit().transition().duration(this.options.transitionDuration).style("stroke-opacity",1e-6).remove(),n.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().duration(this.options.transitionDuration).text(function(t){return t.y.label||t.y.value}).each(function(t,e){"horizontal"===s.options.orientation?"stacked"===s.options.grouping&&"outside"!==i.labelPosition?this.setAttribute("text-anchor","middle"):s.plotWidth-o.call(s,t)<this.getComputedTextLength()?(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8),this.setAttribute("fill",s.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",s.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",s.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark("#ffffff"))):s.plotheight-o.call(s,t)<(s.options.labelSize||s.options.fontSize)&&this.setAttribute("y",+this.getAttribute("y")+8)}),n.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"===s.options.orientation?"stacked"===s.options.grouping&&"outside"!==i.labelPosition?this.setAttribute("text-anchor","middle"):s.plotWidth-o.call(s,t)<this.getComputedTextLength()?(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8),this.setAttribute("fill",s.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",s.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",s.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark("#ffffff"))):(s.plotheight-o.call(s,t)<(s.options.labelSize||s.options.fontSize)&&this.setAttribute("y",+this.getAttribute("y")+8),"outside"!==i.labelPosition&&this.setAttribute("fill",s.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),s=this["custom".concat(a.toInitialCaps(),"Range")][i];return this["custom".concat(a.toInitialCaps(),"Range")][i+1]&&(s+=(this["custom".concat(a.toInitialCaps(),"Range")][i+1]-s)/2),s}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),s=this["custom".concat(a.toInitialCaps(),"Range")][i];return this["custom".concat(a.toInitialCaps(),"Range")][i+1]&&(s+=(this["custom".concat(a.toInitialCaps(),"Range")][i+1]-s)/2),s}if("stacked"!==this.options.grouping)return this[l+"Axis"](isNaN(t.y.value)?0:t.y.value)-(this.options.labelSize||this.options.fontSize);var n=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)-(n+o-("inside"===e?o/2:0))*(t.y.accumulative<0?0:1)}}},{key:"renderline",value:function(e,t){var o=this,i=function(s,n,t){return d3.line().x(function(t){if("horizontal"===o.options.orientation)return o["".concat(n,"Axis")](isNaN(t.y.value)?0:t.y.value);if("Time"===o.options.data[s].scale)return o["".concat(s,"Axis")](o.parseX(t.x.value));var e=o[s+"Axis"].domain().indexOf(t.x.value),i=o["custom".concat(s.toInitialCaps(),"Range")][e];return o["custom".concat(s.toInitialCaps(),"Range")][e+1]&&(i+=(o["custom".concat(s.toInitialCaps(),"Range")][e+1]-i)/2),i}).y(function(t){if("horizontal"!==o.options.orientation)return o["".concat(n,"Axis")](isNaN(t.y.value)?0:t.y.value);var e="Time"===o.options.data[s.replace("Brush","")].scale?0:o.options.data[s].bandWidth/2;return o["".concat(s,"Axis")](o.parseX(t.x.value))+e}).curve(d3[t||o.options.curveStyle])},s="bottom",n="secondary"===e.axis?"right":"left";"horizontal"===this.options.orientation&&(s="secondary"===e.axis?"right":"left",n="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().duration(this.options.transitionDuration).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().duration(this.options.transitionDuration).attr("d",function(t){return i(s,n,e.curveStyle)(t)}),r.enter().append("path").attr("d",function(t){return i(s,n,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().duration(this.options.transitionDuration).style("stroke-opacity",1e-6).remove(),c.style("stroke-width",1).attr("stroke",e.color).attr("fill","transparent").transition().duration(this.options.transitionDuration).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",s="x",n=this.plotWidth;"horizontal"===this.options.orientation&&("left",e="bottom",i="x",s="y",n=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(s,"2"),n).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",n).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)).style("stroke-opacity",1e-6).remove(),this.areaLayer.selectAll(".area_".concat(t)).style("stroke-opacity",1e-6).remove()}},{key:"removelabel",value:function(t){this.labelLayer.selectAll(".label_".concat(t)).style("stroke-opacity",1e-6).remove()}},{key:"removesymbol",value:function(t){this.symbolLayer.selectAll(".symbol_".concat(t)).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 s=this.symbolLayer.selectAll(".symbol_".concat(e.key)).data(e.data);s.exit().remove(),s.attr("d",function(t){return i(t.y.size||e.symbolSize)(t)}).transition().duration(this.options.transitionDuration).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 s=o[a+"Axis"].domain().indexOf(t.x.value),n=o["custom".concat(a.toInitialCaps(),"Range")][s];o["custom".concat(a.toInitialCaps(),"Range")][s+1]&&(n+=(o["custom".concat(a.toInitialCaps(),"Range")][s+1]-n)/2)}return"translate(".concat(i,", ").concat(o["".concat(l,"Axis")](isNaN(t.y.value)?0:t.y.value),")")}),s.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 s=o[a+"Axis"].domain().indexOf(t.x.value),n=o["custom".concat(a.toInitialCaps(),"Range")][s];o["custom".concat(a.toInitialCaps(),"Range")][s+1]&&(n+=(o["custom".concat(a.toInitialCaps(),"Range")][s+1]-n)/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 s=document.getElementById("".concat(this.elementId,"_errorTitle"));s&&(s.innerHTML=t.title)}if(t.message){var n=document.getElementById("".concat(this.elementId,"_errorMessage"));n&&(n.innerHTML=t.message)}}},{key:"showLoading",value:function(t){this.loadingDialog.show(t)}}]),n}(),WebsyPie=function(){function s(t,e){_classCallCheck(this,s),this.elementId=t;if(this.options=_extends({},{labelMode:"auto",labelLocs:[],showLabels:!1,segments:["#9dbca6","#e3c080","#fd7336","#b12737","#50424b"],label:{value:{size:"12px",colour:"#BBB",family:"arial",weight:"normal"},label:{size:"10px",colour:"#888",family:"arial",weight:"normal"}},kpi:{background:"#555",value:{size:"60px",colour:"#CCC",family:"arial",weight:"bold"},label:{size:"20px",colour:"#FFF",family:"arial",weight:"normal"}}},e),this.listening=!0,t){var i=document.getElementById(this.elementId);i?i.classList.add("websy-pie"):console.error("No element found with ID ".concat(this.elementId))}else console.log("No element Id provided for Websy Chart")}return _createClass(s,[{key:"calculateArcAngle",value:function(t,e){return this.convertRadiansToDegrees(t/(Math.PI*(2*e)))}},{key:"calculateCircumference",value:function(t){return 2*Math.PI*t}},{key:"close",value:function(){}},{key:"convertDegreesToRadians",value:function(t){return t*(Math.PI/180)}},{key:"convertRadiansToDegrees",value:function(t){return t*(180/Math.PI)}},{key:"createCanvases",value:function(t){if(t&&!t.target){this.listening||(t.addEventListener("resize",this.render.bind(this),!1),window.addEventListener("resize",this.render.bind(this),!1),this.listening=!0);var e=t.clientHeight,i=t.clientWidth;this.width=i,this.height=e,this.center={x:i/2,y:e/2},this.outerRadius=Math.min(this.height,this.width)/2-20,console.log("radius is "+this.outerRadius);var s=document.createElement("canvas");this.segmentPaper={canvas:s,pen:s.getContext("2d")},this.segmentPaper.canvas.style.position="absolute",this.segmentPaper.canvas.style.top="0px",this.segmentPaper.canvas.style.left="0px",this.segmentPaper.canvas.style.zIndex="5",this.segmentPaper.canvas.style.width=i+"px",this.segmentPaper.canvas.style.height=e+"px",this.segmentPaper.canvas.width=2*i,this.segmentPaper.canvas.height=2*e,this.segmentPaper.pen.scale(2,2),t.appendChild(this.segmentPaper.canvas);var n=document.createElement("canvas");this.labelPaper={canvas:n,pen:n.getContext("2d")},this.labelPaper.canvas.style.position="absolute",this.labelPaper.canvas.style.top="0px",this.labelPaper.canvas.style.left="0px",this.labelPaper.canvas.style.zIndex="5",this.labelPaper.canvas.style.width=i+"px",this.labelPaper.canvas.style.height=e+"px",this.labelPaper.canvas.width=2*i,this.labelPaper.canvas.height=2*e,this.labelPaper.pen.scale(2,2),t.appendChild(this.labelPaper.canvas);var o=document.createElement("canvas");this.kpiPaper={canvas:o,pen:o.getContext("2d")},this.kpiPaper.canvas.style.position="absolute",this.kpiPaper.canvas.style.top="0px",this.kpiPaper.canvas.style.left="0px",this.kpiPaper.canvas.style.zIndex="5",this.kpiPaper.canvas.style.width=i+"px",this.kpiPaper.canvas.style.height=e+"px",this.kpiPaper.canvas.width=2*i,this.kpiPaper.canvas.height=2*e,this.kpiPaper.pen.scale(2,2),t.appendChild(this.kpiPaper.canvas)}else this.segmentPaper.canvas.width=2*this.width,this.labelPaper.canvas.width=2*this.width,this.kpiPaper.canvas.width=2*this.width}},{key:"drawKPI",value:function(){var t=this.options.kpi;this.kpi&&(this.kpi.background&&"transparent"===this.kpi.background||(this.kpiPaper.pen.beginPath(),this.kpiPaper.pen.fillStyle=this.kpi.background||t.background,this.kpiPaper.pen.moveTo(this.center.x,this.center.y),this.kpiPaper.pen.arc(this.center.x,this.center.y,this.innerRadiusPixels+5*!this.addShading+1,0,2*Math.PI),this.kpiPaper.pen.fill(),this.kpiPaper.pen.closePath()),this.kpi.value&&(this.kpiPaper.pen.save(),this.kpiPaper.pen.beginPath(),this.kpiPaper.pen.moveTo(this.center.x,this.center.y),this.kpiPaper.pen.font=(this.kpi.value.weight||t.value.weight)+" "+(this.kpi.value.size||t.value.size)+" "+(this.kpi.value.family||t.value.family),this.kpiPaper.pen.textAlign="center",this.kpi.label?this.kpiPaper.pen.textBaseline="text-bottom":this.kpiPaper.pen.textBaseline="middle",this.kpiPaper.pen.fillStyle=this.kpi.value.colour||t.value.colour,this.kpiPaper.pen.fillText(this.kpi.value.text,this.center.x,this.center.y),this.kpiPaper.pen.closePath(),this.kpiPaper.pen.restore()),this.kpi.label&&(this.kpiPaper.pen.save(),this.kpiPaper.pen.beginPath(),this.kpiPaper.pen.moveTo(this.center.x,this.center.y),this.kpiPaper.pen.font=(this.kpi.label.weight||t.label.weight)+" "+(this.kpi.label.size||t.label.size)+" "+(this.kpi.label.family||t.label.family),this.kpiPaper.pen.textAlign="center",this.kpi.value?this.kpiPaper.pen.textBaseline="top":this.kpiPaper.pen.textBaseline="middle",this.kpiPaper.pen.fillStyle=this.kpi.label.colour||t.label.colour,this.kpiPaper.pen.fillText(this.kpi.label.text,this.center.x,this.center.y+10),this.kpiPaper.pen.closePath(),this.kpiPaper.pen.restore()))}},{key:"drawLabels",value:function(){if(this.options.showLabels)for(var t in this.data.segments){this.labelPaper.pen.beginPath(),this.labelPaper.pen.font="20px arial",this.labelPaper.pen.textAlign="center",this.labelPaper.pen.textBaseline="text-bottom",this.labelPaper.pen.fillStyle="black";var e=this.data.segments[t].midAngleDeg%360,i=90*Math.round(e/90)%360;console.log(Math.abs(i-e));var s=270-Math.abs(i-e);console.log(i);var n=this.outerRadius*Math.sin(this.convertDegreesToRadians(Math.abs(i-e)))/Math.sin(this.convertDegreesToRadians(s));n=Math.abs(n);var o=this.outerRadius+5,a=1.2,l=1.3;0<e&&e<=45?(this.labelPaper.pen.moveTo(this.center.x+o,this.center.y+n),this.labelPaper.pen.lineTo(this.center.x+o*a,this.center.y+n*a),this.labelPaper.pen.lineTo(this.center.x+o*l,this.center.y+n*a)):45<e&&e<=90?(this.labelPaper.pen.moveTo(this.center.x+n,this.center.y+o),this.labelPaper.pen.lineTo(this.center.x+n*a,this.center.y+o*a),this.labelPaper.pen.lineTo(this.center.x+n*l,this.center.y+o*a)):90<e&&e<=135?(this.labelPaper.pen.moveTo(this.center.x-n,this.center.y+o),this.labelPaper.pen.lineTo(this.center.x-n*a,this.center.y+o*a),this.labelPaper.pen.lineTo(this.center.x-n*l,this.center.y+o*a)):135<e&&e<=180?(this.labelPaper.pen.moveTo(this.center.x-o,this.center.y+n),this.labelPaper.pen.lineTo(this.center.x-o*a,this.center.y+n*a),this.labelPaper.pen.lineTo(this.center.x-o*l,this.center.y+n*a)):180<e&&e<=225?(this.labelPaper.pen.moveTo(this.center.x-o,this.center.y-n),this.labelPaper.pen.lineTo(this.center.x-o*a,this.center.y-n*a),this.labelPaper.pen.lineTo(this.center.x-o*l,this.center.y-n*a)):225<e&&e<=270?(this.labelPaper.pen.moveTo(this.center.x-n,this.center.y-o),this.labelPaper.pen.lineTo(this.center.x-n*a,this.center.y-o*a),this.labelPaper.pen.lineTo(this.center.x-n*l,this.center.y-o*a)):270<e&&e<=315?(this.labelPaper.pen.moveTo(this.center.x+n,this.center.y-o),this.labelPaper.pen.lineTo(this.center.x+n*a,this.center.y-o*a),this.labelPaper.pen.lineTo(this.center.x+n*l,this.center.y-o*a)):(this.labelPaper.pen.moveTo(this.center.x+o,this.center.y-n),this.labelPaper.pen.lineTo(this.center.x+o*a,this.center.y-n*a),this.labelPaper.pen.lineTo(this.center.x+o*l,this.center.y-n*a)),this.labelPaper.pen.strokeStyle="#cccccc",this.labelPaper.pen.stroke(),this.labelPaper.pen.fillText(this.center.x+this.data.segments[t].label.x,this.center.y+this.data.segments[t].label.y,t),this.labelPaper.pen.closePath()}}},{key:"drawSegments",value:function(){var t=this.convertDegreesToRadians(270),e=t,i=0;for(var s in this.data.segments){i>=this.options.colors.length&&(i=0);var n=this.options.colors[i],o=e+this.data.segments[s].circumference,a=(e+o)/2;this.data.segments[s].labelCanvasRotation=e,this.data.segments[s].startAngle=e,this.data.segments[s].midAngle=a,this.data.segments[s].endAngle=o,this.data.segments[s].startAngleDeg=this.convertRadiansToDegrees(e),this.data.segments[s].midAngleDeg=this.convertRadiansToDegrees(a),this.data.segments[s].endAngleDeg=this.convertRadiansToDegrees(o),this.segmentPaper.pen.beginPath(),this.segmentPaper.pen.moveTo(this.center.x,this.center.y),this.segmentPaper.pen.fillStyle=n,this.segmentPaper.pen.arc(this.center.x,this.center.y,this.outerRadius,e,o),console.log(this.segmentPaper.pen),this.segmentPaper.pen.fill(),this.segmentPaper.pen.closePath(),e=o,i++}if(this.innerRadius&&0!==this.innerRadius&&(this.innerRadiusPixels=Math.round(this.outerRadius*(this.innerRadius/100)),this.segmentPaper.pen.save(),this.segmentPaper.pen.beginPath(),this.segmentPaper.pen.moveTo(this.center.x,this.center.y),this.segmentPaper.pen.arc(this.center.x,this.center.y,this.innerRadiusPixels+5,0,2*Math.PI),this.segmentPaper.pen.clip(),this.segmentPaper.pen.clearRect(0,0,2*this.width,2*this.height),this.segmentPaper.pen.closePath(),this.segmentPaper.pen.restore(),!0===this.addShading)){for(var l in e=t,i=0,this.data.segments){i>=this.options.colors.length&&(i=0);var r=this.hexToRGBA(this.options.colors[i],.8),c=e+this.data.segments[l].circumference;this.segmentPaper.pen.beginPath(),this.segmentPaper.pen.moveTo(this.center.x,this.center.y),this.segmentPaper.pen.fillStyle=r,this.segmentPaper.pen.arc(this.center.x,this.center.y,this.innerRadiusPixels+6,e,c),this.segmentPaper.pen.fill(),this.segmentPaper.pen.closePath(),e=c,i++}this.segmentPaper.pen.save(),this.segmentPaper.pen.beginPath(),this.segmentPaper.pen.moveTo(this.center.x,this.center.y),this.segmentPaper.pen.arc(this.center.x,this.center.y,this.innerRadiusPixels,0,2*Math.PI),this.segmentPaper.pen.clip(),this.segmentPaper.pen.clearRect(0,0,2*this.width,2*this.height),this.segmentPaper.pen.closePath(),this.segmentPaper.pen.restore()}console.log(this.data)}},{key:"hexToRGBA",value:function(t,e){var i;return e||(e=1),/^#([A-Fa-f0-9]{3}){1,2}$/.test(t)?(3===(i=t.substring(1).split("")).length&&(i=[i[0],i[0],i[1],i[1],i[2],i[2]]),"rgba("+[(i="0x"+i.join(""))>>16&255,i>>8&255,255&i,e].join(",")+")"):(console.error("Unable to convert hex (".concat(t,") to RGBA")),"rgba(0, 0, 0, 1)")}},{key:"render",value:function(t){var e=document.getElementById(this.elementId);e&&!e.target&&this.createCanvases(e),t&&!t.target&&(this.originalData=_toConsumableArray(t)),this.processData(t),this.drawSegments(),this.drawLabels(),this.drawKPI()}},{key:"resize",value:function(){}},{key:"processData",value:function(t){for(var e={},i=0,s=0;s<t.length;s++)e[t[s][0].label]||(e[t[s][0].label]={segmentValue:0,drill:[]}),e[t[s][0].label].segmentValue+=t[s][1].value,i+=t[s][1].value,this.drill&&""!==this.drill&&e[t[s][0].label].drill.push({label:t[s][0].label,value:t[s][1].value});for(var n in e)e[n].percValue=e[n].segmentValue/i,e[n].circumference=this.calculateCircumference(e[n].percValue),e[n].labelAngle=e[n].percValue/2*360,e[n].label={x:(this.outerRadius+5)/Math.sin(this.convertDegreesToRadians(90))*Math.sin(this.convertDegreesToRadians(90-e[n].labelAngle))},e[n].label.y=(this.outerRadius+5)/Math.sin(this.convertDegreesToRadians(90))*Math.sin(this.convertDegreesToRadians(e[n].labelAngle));this.data={segments:e,total:i},console.log(this.data)}}]),s}(),WebsyLegend=function(){function s(t,e){_classCallCheck(this,s);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(s,[{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 s=i.clientWidth+30;return i.remove(),s}}]),s}(),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"><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 n(t,e){_classCallCheck(this,n);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 s=document.getElementById(this.elementId);s&&("undefined"==typeof L&&console.error("Leaflet library has not been loaded"),s.innerHTML='\n <div id="'.concat(this.elementId,'_map"></div>\n <div id="').concat(this.elementId,'_legend" class="websy-map-legend"></div>\n '),s.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(n,[{key:"isRendered",get:function(){return this._isRendered}},{key:"handleClick",value:function(t){}},{key:"handleMapClick",value:function(t){}},{key:"render",value:function(){var s=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||s.options.colors[e%s.options.colors.length]}}),n=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(n)+"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 s.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=s.options.colors[e%s.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(s.map);s.polygons.push(i),s.map.fitBounds(i.getBounds())}),this.geo)?this.geo.getBounds().isValid()&&this.map.fitBounds(this.geo.getBounds()):this.polygons||this.options.center&&this.map.setView(this.options.center,this.options.zoom||null);this._isRendered=!0}}]),n}(),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},s=["active"];"vertical"===i.positioning&&s.push("vertical"),!0===i.onLeft&&s.push("left"),!0===i.onTop&&s.push("top");var n=this.tooltipLayer.selectAll("foreignObject").attr("width","".concat(i.width,"px")).attr("class","websy-chart-tooltip ".concat(s.join(" ")));this.tooltipContent.attr("class","websy-chart-tooltip-content ".concat(s.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")?(n.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?(n.attr("x","".concat(i.left,"px")),n.attr("y","".concat(!0===i.onTop?i.bottom-this.tooltipContent._groups[0][0].clientHeight:i.top,"px"))):(n.attr("x","".concat(i.left,"px")),n.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,WebsyDropdown:WebsyDropdown,Dropdown:WebsyDropdown,MediaUpload:MediaUpload,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,Pie:WebsyPie,WebsyPie:WebsyPie,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,Carousel:WebsyCarousel,WebsyIcons:WebsyIcons,Icons:WebsyIcons,WebsyLogin:WebsyLogin,Login:WebsyLogin,WebsySignup:WebsySignup,Signup:WebsySignup,ResponsiveText:ResponsiveText,WebsyResponsiveText:ResponsiveText,WebsyDragDrop:WebsyDragDrop,DragDrop:WebsyDragDrop,WebsySearch:WebsySearch,Search:WebsySearch};WebsyDesigns.service=new WebsyDesigns.APIService("");var GlobalPubSub=new WebsyPubSub("empty",{});function recaptchaReadyCallBack(){console.log("recaptchaready"),GlobalPubSub.publish("recaptchaready")}function useGoogleRecaptcha(t){var e=document.createElement("script");e.src="//www.google.com/recaptcha/api.js",document.body.appendChild(e)}function usePayPal(){var t=document.createElement("script");t.src="//www.paypal.com/sdk/js",document.getElementsByTagName("body")[0].appendChild(t)}String.prototype.toInitialCaps=function(){var t=this.split("");return t.shift().toUpperCase()+t.join("")};