@websy/websy-designs 1.2.26 → 1.2.28
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 _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 _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&&Symbol.iterator in Object(t))return Array.from(t)}function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}function _extends(){return(_extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function _createClass(t,e,i){return e&&_defineProperties(t.prototype,e),i&&_defineProperties(t,i),t}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({},e)}return _createClass(i,[{key:"add",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},n=this.buildUrl(t);return this.run("POST",n,e,i)}},{key:"buildUrl",value:function(t,e,i){return void 0===i&&(i=[]),e&&i.push("id:".concat(e)),"".concat(this.baseUrl,"/").concat(t).concat(0<i.length?"".concat(-1===t.indexOf("?")?"?":"&","where=").concat(i.join(";")):"")}},{key:"delete",value:function(t,e){var i=this.buildUrl(t,e);return this.run("DELETE",i)}},{key:"get",value:function(t,e,i){var n=this.buildUrl(t,e,i);return this.run("GET",n)}},{key:"update",value:function(t,e,i){var n=this.buildUrl(t,e);return this.run("PUT",n,i)}},{key:"fetchData",value:function(t,e,i){3<arguments.length&&void 0!==arguments[3]&&arguments[3];return fetch(e,{method:t,mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:JSON.stringify(i)}).then(function(t){return t.json()})}},{key:"run",value:function(s,o,a){var l=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{},r=4<arguments.length&&void 0!==arguments[4]&&arguments[4];return new Promise(function(e,i){var n=new XMLHttpRequest;if(n.open(s,o),n.setRequestHeader("Content-Type","application/json"),n.responseType="text",l.responseType&&(n.responseType=l.responseType),l.headers)for(var t in l.headers)n.setRequestHeader(t,l.headers[t]);n.withCredentials=!0,n.onload=function(){if(401!==n.status){var t="text"===n.responseType?n.responseText:n.response;if(""!==t&&"null"!==t)try{t=JSON.parse(t)}catch(t){}else t=[];t.err?i(JSON.stringify(t)):e(!0===r?[t,function(t){t=t.split("\r\n");var e={};return t.forEach(function(t){2===(t=t.split(":")).length&&(e[t[0]]=t[1].trim())}),e}(n.getAllResponseHeaders())]:t)}else ENV&&ENV.AUTH_REDIRECT?window.location=ENV.AUTH_REDIRECT:window.location="/login"},n.onerror=function(){return i(n.statusText)},a?n.send(JSON.stringify(a)):n.send()})}}]),i}(),ButtonGroup=function(){function n(t,e){_classCallCheck(this,n),this.elementId=t;this.options=_extends({},{style:"button",subscribers:{},activeItem:0},e);var i=document.getElementById(this.elementId);i&&(i.addEventListener("click",this.handleClick.bind(this)),this.render())}return _createClass(n,[{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-button-group-item")){var e=+t.target.getAttribute("data-index");this.options.activeItem!==e&&(this.options.onDeactivate&&this.options.onDeactivate(this.options.items[this.options.activeItem],this.options.activeItem),this.options.activeItem=e,this.options.onActivate&&this.options.onActivate(this.options.items[e],e),this.render())}}},{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 i=this,t=document.getElementById(this.elementId);t&&this.options.items&&(t.innerHTML=this.options.items.map(function(t,e){return"\n <div ".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(i.options.style,"-style ").concat(e===i.options.activeItem?"active":"",'">').concat(t.label,"</div>\n ")}).join(""))}}]),n}(),WebsyCarousel=function(){function n(t,e){_classCallCheck(this,n);this.playTimeoutFn=null,this.options=_extends({},{currentFrame:0,frameDuration:4e3,showFrameSelector:!0,showPrevNext:!0,autoPlay:!0,frames:[]},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(n,[{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.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 n='\n <div class="websy-carousel">\n ';this.options.frames.forEach(function(t,e){n+='\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){n+='\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){n+='\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 ")}),n+="</div>"}),!0===this.options.showFrameSelector&&1<this.options.frames.length&&(n+='<div class="websy-btn-parent">',this.options.frames.forEach(function(t,e){n+='\n <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 512 512" 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 <title>Ellipse</title><circle cx="256" cy="256" r="192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/>\n </svg>\n ')}),n+="</div>"),!0===this.options.showPrevNext&&1<this.options.frames.length&&(n+='\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 '),n+="\n </div>\n ",t.innerHTML=n}this.play()}},{key:"showFrame",value:function(t,e){var i=e<t?"101%":"-101%",n=t<e?"101%":"-101%";0===e&&t===this.options.frames.length-1?(i="-101%",n="101%"):0===t&&e===this.options.frames.length-1&&(i="101%",n="-101%");var s=document.getElementById("".concat(this.elementId,"_frame_").concat(t));setTimeout(function(){s.style.transform="translateX(".concat(i,")")},100),document.getElementById("".concat(this.elementId,"_selector_").concat(t)).classList.remove("websy-progress-btn-active");var o=document.getElementById("".concat(this.elementId,"_frame_").concat(e));o.classList.remove("animate"),o.style.transform="translateX(".concat(n,")"),setTimeout(function(){o.classList.add("animate"),o.style.transform="translateX(0%)"},100),document.getElementById("".concat(this.elementId,"_selector_").concat(e)).classList.add("websy-progress-btn-active")}}]),n}(),WebsyDatePicker=function(){function o(t,e){_classCallCheck(this,o),this.oneDay=864e5,this.currentselection=[],this.validDates=[],this.validYears=[],this.validHours=[],this.customRangeSelected=!0;var i={defaultRange:0,dateFormat:"%_m/%_d/%Y",allowClear:!(this.shiftPressed=!1),hideRanges:!1,arrowIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.677 18.52c.914 1.523-.183 3.472-1.967 3.472h-19.414c-1.784 0-2.881-1.949-1.967-3.472l9.709-16.18c.891-1.483 3.041-1.48 3.93 0l9.709 16.18z"/></svg>',clearIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512"><line x1="368" y1="368" x2="144" y2="144" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><line x1="368" y1="144" x2="144" y2="368" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',confirmIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 512 512"><polyline points="416 128 192 384 96 288" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',minAllowedDate:this.floorDate(new Date(new Date((new Date).setFullYear((new Date).getFullYear()-1)).setDate(1))),maxAllowedDate:this.floorDate(new Date(new Date)),minAllowedYear:1970,maxAllowedYear:(new Date).getFullYear(),daysOfWeek:["S","M","T","W","T","F","S"],monthsOfYear:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],hours:new Array(24).fill(0).map(function(t,e){return{text:(e<10?"0":"")+e+":00",num:1/24*e}}),mode:"date",monthMap:{0:"Jan",1:"Feb",2:"Mar",3:"Apr",4:"May",5:"Jun",6:"Jul",7:"Aug",8:"Sep",9:"Oct",10:"Nov",11:"Dec"},ranges:[]};if(i.ranges={date:[{label:"All Dates",range:[i.minAllowedDate,i.maxAllowedDate]},{label:"Today",range:[this.floorDate(new Date)]},{label:"Yesterday",range:[this.floorDate((new Date).setDate((new Date).getDate()-1))]},{label:"Last 7 Days",range:[this.floorDate((new Date).setDate((new Date).getDate()-6)),this.floorDate(new Date)]},{label:"This Month",range:[this.floorDate((new Date).setDate(1)),this.floorDate(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()+1)-this.oneDay)]},{label:"Last Month",range:[this.floorDate(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-1)),this.floorDate(new Date((new Date).setDate(1)).setMonth((new Date).getMonth())-this.oneDay)]},{label:"This Year",range:[this.floorDate(new Date("1/1/".concat((new Date).getFullYear()))),this.floorDate(new Date("12/31/".concat((new Date).getFullYear())))]},{label:"Last Year",range:[this.floorDate(new Date("1/1/".concat((new Date).getFullYear()-1))),this.floorDate(new Date("12/31/".concat((new Date).getFullYear()-1)))]}],year:[{label:"All Years",range:[i.minAllowedYear,i.maxAllowedYear]},{label:"Last 5 Years",range:[(new Date).getFullYear()-4,i.maxAllowedYear]},{label:"Last 10 Years",range:[(new Date).getFullYear()-9,i.maxAllowedYear]}],monthyear:[{label:"All Month Years",range:[i.minAllowedDate,i.maxAllowedDate]},{label:"Last 12 Months",range:[this.floorDate(new Date(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-12))),this.floorDate(new Date((new Date).setDate(1)))]},{label:"Last 18 Months",range:[this.floorDate(new Date(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-18))),this.floorDate(new Date((new Date).setDate(1)))]},{label:"Last 24 Months",range:[this.floorDate(new Date(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-24))),this.floorDate(new Date((new Date).setDate(1)))]}],hour:[{label:"All Hours",range:["00:00","23:00"]}]},this.options=_extends({},i,e),this.selectedRange=this.options.defaultRange||0,this.selectedRangeDates=_toConsumableArray(this.options.ranges[this.options.mode][this.options.defaultRange||0].range),this.priorSelectedDates=null,this.priorselection=null,this.priorCustomRangeSelected=null,t){var n=document.getElementById(t);if(n){this.elementId=t,n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mousedown",this.handleMouseDown.bind(this)),n.addEventListener("mouseover",this.handleMouseOver.bind(this)),n.addEventListener("mouseup",this.handleMouseUp.bind(this)),document.addEventListener("keydown",this.handleKeyDown.bind(this)),document.addEventListener("keyup",this.handleKeyUp.bind(this));var s="\n <div class='websy-date-picker-container ".concat(this.options.mode,"'>\n <span class='websy-dropdown-header-label'>").concat(this.options.label||"Date",'</span>\n <div id="').concat(this.elementId,"_header\" class='websy-date-picker-header ").concat(!0===this.options.allowClear?"allow-clear":"","'>\n <span id='").concat(this.elementId,"_selectedRange'>").concat(this.options.ranges[this.options.mode][this.selectedRange].label,"</span>\n ").concat(this.options.arrowIcon,"\n ");!0===this.options.allowClear&&(s+="<div class='clear-selection'>".concat(this.options.clearIcon,"</div>")),s+="\n </div>\n <div id='".concat(this.elementId,"_mask' class='websy-date-picker-mask'></div>\n <div id='").concat(this.elementId,"_content' class='websy-date-picker-content ").concat(!0===this.options.hideRanges?"hide-ranges":"","'>\n <div class='websy-date-picker-ranges' >\n <ul id='").concat(this.elementId,"_rangelist'>\n ").concat(this.renderRanges(),"\n </ul>\n </div>\x3c!--\n --\x3e<div id='").concat(this.elementId,"_datelist' class='websy-date-picker-custom'>").concat(this.renderDates(),"</div>\n <div class='websy-dp-button-container'>\n <span class=\"dp-footnote\">Click and drag or hold Shift and click to select a range of values</span>\n <button class='").concat(this.options.cancelBtnClasses||""," websy-btn websy-dp-cancel'>\n ").concat(this.options.clearIcon,"\n </button>\n <button class='").concat(this.options.confirmBtnClasses||""," websy-btn websy-dp-confirm'>\n ").concat(this.options.confirmIcon,"\n </button>\n </div>\n </div> \n </div>\n "),n.innerHTML=s,this.render()}else console.log("No element found with Id",t)}else console.log("No element Id provided")}return _createClass(o,[{key:"close",value:function(t){var e=this,i=document.getElementById("".concat(this.elementId,"_mask")),n=document.getElementById("".concat(this.elementId,"_content")),s=document.getElementById(this.elementId);if(s&&(s.style.zIndex=""),i.classList.remove("active"),n.classList.remove("active"),!0===t){if(this.options.onChange)if(!0===this.customRangeSelected)if("hour"===this.options.mode){for(var o=[],a=this.selectedRangeDates[0];a<this.selectedRangeDates[1]+1;a++)o.push(this.options.hours[a]);this.options.onChange(o,!0)}else this.options.onChange(this.selectedRangeDates,!0);else if("hour"===this.options.mode){var l=this.currentselection.map(function(t){return e.options.hours[t]});this.options.onChange(l,!0)}else this.options.onChange(this.currentselection,!1);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.setHours(0,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.selectRange(0,!1),this.options.onClear&&this.options.onClear(),this.updateRange(0)))}},{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],this.selectDate(+t.target.id.split("_")[1]);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.id.split("_")[1],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;t.target.id.split("_")[1]!==this.mouseDownId&&(this.dragging=!0,this.selectDate(+t.target.id.split("_")[1]))}}},{key:"handleMouseUp",value:function(t){this.mouseDown=!1,this.dragging=!1,this.mouseDownId=null}},{key:"highlightRange",value:function(){for(var i=this,t=document.getElementById("".concat(this.elementId,"_dateList")).querySelectorAll(".websy-dp-date"),e=0;e<t.length;e++)t[e].classList.remove("selected"),t[e].classList.remove("first"),t[e].classList.remove("last");if(0!==this.selectedRange)if(!0===this.customRangeSelected){var n;if("date"===this.options.mode)n=Math.floor((this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()-this.selectedRangeDates[0].getTime())/this.oneDay);else if("year"===this.options.mode)n=this.selectedRangeDates[this.selectedRangeDates.length-1]-this.selectedRangeDates[0],this.selectedRangeDates[this.selectedRangeDates.length-1],this.selectedRangeDates[0];else if("monthyear"===this.options.mode){var s=12*(this.selectedRangeDates[this.selectedRangeDates.length-1].getFullYear()-this.selectedRangeDates[0].getFullYear());n=Math.floor(this.selectedRangeDates[this.selectedRangeDates.length-1].getMonth()-this.selectedRangeDates[0].getMonth())+s}else"hour"===this.options.mode&&(n=this.selectedRangeDates[this.selectedRangeDates.length-1]-this.selectedRangeDates[0]);for(var o=0;o<n+1;o++){var a=void 0,l=void 0,r=void 0;"date"===this.options.mode?(a=(a=this.floorDate(new Date(this.selectedRangeDates[0].getTime()+o*this.oneDay))).getTime(),l=this.selectedRangeDates[0].getTime(),r=this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()):"year"===this.options.mode?(a=this.selectedRangeDates[0]+o,l=this.selectedRangeDates[0],r=this.selectedRangeDates[this.selectedRangeDates.length-1]):"monthyear"===this.options.mode?(a=new Date(this.selectedRangeDates[0].getTime()).setMonth(this.selectedRangeDates[0].getMonth()+o),l=this.selectedRangeDates[0].getTime(),r=this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()):"hour"===this.options.mode&&(a=this.selectedRangeDates[0]+o,l=this.selectedRangeDates[0],r=this.selectedRangeDates[this.selectedRangeDates.length-1]);var c=void 0;"date"===this.options.mode?c=document.getElementById("".concat(this.elementId,"_").concat(a,"_date")):"year"===this.options.mode?c=document.getElementById("".concat(this.elementId,"_").concat(a,"_year")):"monthyear"===this.options.mode?c=document.getElementById("".concat(this.elementId,"_").concat(a,"_monthyear")):"hour"===this.options.mode&&(c=document.getElementById("".concat(this.elementId,"_").concat(a,"_hour"))),c&&(c.classList.add("selected"),a===l&&c.classList.add("".concat("desc"===this.options.sortDirection?"last":"first")),a===r&&c.classList.add("".concat("desc"===this.options.sortDirection?"first":"last")))}}else this.currentselection.forEach(function(t){var e;"date"===i.options.mode?e=document.getElementById("".concat(i.elementId,"_").concat(t,"_date")):"year"===i.options.mode?e=document.getElementById("".concat(i.elementId,"_").concat(t,"_year")):"monthyear"===i.options.mode?e=document.getElementById("".concat(i.elementId,"_").concat(t,"_monthyear")):"hour"===i.options.mode&&(e=document.getElementById("".concat(i.elementId,"_").concat(t,"_hour"))),e.classList.add("selected"),e.classList.add("first"),e.classList.add("last")})}},{key:"open",value:function(t){1<arguments.length&&void 0!==arguments[1]&&arguments[1];var e=document.getElementById("".concat(this.elementId,"_mask")),i=document.getElementById("".concat(this.elementId,"_content")),n=document.getElementById(this.elementId);n&&(n.style.zIndex=999),e.classList.add("active"),i.classList.add("active"),this.priorSelectedDates=_toConsumableArray(this.selectedRangeDates),this.priorSelectedRange=this.selectedRange,this.priorselection=_toConsumableArray(this.currentselection),this.priorCustomRangeSelected=this.customRangeSelected,this.scrollRangeIntoView()}},{key:"render",value:function(t){if(this.elementId){var e=document.getElementById("".concat(this.elementId,"_datelist"));e&&t&&(e.innerHTML=this.renderDates(t));var i=document.getElementById("".concat(this.elementId,"_rangelist"));i&&t&&(i.innerHTML=this.renderRanges()),this.highlightRange()}else console.log("No element Id provided for Websy Loading Dialog")}},{key:"renderDates",value:function(t){var e,i=this,n=[];this.validDates=[],this.validYears=[],this.validHours=[],this.monthYears={},this.monthYearMonths=[],t&&(n=t.map(function(t){if("date"===i.options.mode)return t.getTime();if("year"===i.options.mode)return t;if("monthyear"===i.options.mode);else if("hour"===i.options.mode)return t;return t.getTime()})),this.options.ranges[this.options.mode].forEach(function(t){return t.disabled=!0}),"date"===this.options.mode?e=Math.ceil((this.options.maxAllowedDate.getTime()-this.options.minAllowedDate.getTime())/this.oneDay)+1:"year"===this.options.mode?e=this.options.maxAllowedYear-this.options.minAllowedYear+1:"monthyear"===this.options.mode?e=Math.ceil((this.options.maxAllowedDate.getTime()-this.options.minAllowedDate.getTime())/this.oneDay)+1:"hour"===this.options.mode&&(e=24);for(var s={},o=[],a=0;a<e;a++)if("date"===this.options.mode||"monthyear"===this.options.mode){var l=this.floorDate(new Date(this.options.minAllowedDate.getTime()+a*this.oneDay)),r="".concat(this.options.monthMap[l.getMonth()]," ").concat(l.getFullYear());if(s[r]||(s[r]=[]),this.monthYears[l.getFullYear()]||(this.monthYears[l.getFullYear()]=[]),-1===this.monthYearMonths.indexOf("".concat(l.getMonth(),"-").concat(l.getFullYear()))){this.monthYearMonths.push("".concat(l.getMonth(),"-").concat(l.getFullYear()));var c=new Date(new Date(l).setDate(1));this.monthYears[l.getFullYear()].push({date:c,month:this.options.monthMap[l.getMonth()],monthNum:l.getMonth(),year:l.getFullYear(),id:c.getTime()})}-1===n.indexOf(l.getTime())&&this.validDates.push(l.getTime()),s[r].push({date:l,dayOfMonth:l.getDate(),dayOfWeek:l.getDay(),id:l.getTime(),disabled:-1!==n.indexOf(l.getTime())})}else if("year"===this.options.mode){var h=this.options.minAllowedYear+a;o.push({year:h,id:h,disabled:-1!==n.indexOf(h)}),-1===n.indexOf(h)&&this.validYears.push(h)}else this.options.mode;"hour"===this.options.mode&&this.options.hours.forEach(function(t){-1===n.indexOf(t.text)&&i.validHours.push(t)});for(var d=0;d<this.options.ranges[this.options.mode].length;d++){var p=this.options.ranges[this.options.mode][d];if("date"===this.options.mode||"monthyear"===this.options.mode){if(-1!==this.validDates.indexOf(p.range[0].getTime()))p.disabled=!1;else if(p.range[1])if(-1!==this.validDates.indexOf(p.range[1].getTime()))p.disabled=!1;else for(var u=p.range[0].getTime();u<=p.range[1].getTime();u+=this.oneDay){var m=this.floorDate(new Date(u));if(-1!==this.validDates.indexOf(m.getTime())){p.disabled=!1;break}}}else if("year"===this.options.mode){if(-1!==this.validYears.indexOf(p.range[0]))p.disabled=!1;else if(p.range[1])if(-1!==this.validYears.indexOf(p.range[1]))p.disabled=!1;else for(var g=p.range[0];g<=p.range[1];g++)if(-1!==this.validYears.indexOf(p.range[0]+g)){p.disabled=!1;break}}else if("monthyear"===this.options.mode);else if("hour"===this.options.mode)if(-1!==this.validDates.indexOf(p.range[0]))p.disabled=!1;else if(p.range[1])if(-1!==this.validDates.indexOf(p.range[1]))p.disabled=!1;else for(var f=p.range[0];f<=p.range[1];f++)if(-1!==this.validDates.indexOf(p.range[0]+f)){p.disabled=!1;break}}var v="";if("date"===this.options.mode){for(var y in v+="\n <ul class='websy-dp-days-header'>\n ",v+=this.options.daysOfWeek.map(function(t){return"<li>".concat(t,"</li>")}).join(""),v+="\n </ul> \n <div id='".concat(this.elementId,"_dateList' class='websy-dp-date-list'>\n "),s){if(v+="\n <div class='websy-dp-month-container'>\n <span id='".concat(y.replace(/\s/g,"_"),"'>").concat(y,"</span>\n <ul>\n "),0<s[y][0].dayOfWeek){for(var b=[],w=0;w<s[y][0].dayOfWeek;w++)b.push("<li> </li>");v+=b.join("")}v+=s[y].map(function(t){return"<li id='".concat(i.elementId,"_").concat(t.id,"_date' class='websy-dp-date ").concat(!0===t.disabled?"websy-disabled-date":"","'>").concat(t.dayOfMonth,"</li>")}).join(""),v+="\n </ul>\n </div>\n "}v+="</div>"}else if("year"===this.options.mode)"desc"===this.options.sortDirection&&o.reverse(),v+="<div id='".concat(this.elementId,"_dateList' class='websy-dp-date-list'><ul>"),v+=o.map(function(t){return"<li id='".concat(i.elementId,"_").concat(t.id,"_year' class='websy-dp-date websy-dp-year ").concat(!0===t.disabled?"websy-disabled-date":"","'>").concat(t.year,"</li>")}).join(""),v+="</ul></div>";else if("monthyear"===this.options.mode){for(var x in v+="<div id='".concat(this.elementId,"_dateList' class='websy-dp-monthyear-container'>"),this.monthYears){if(v+="\n <ul>\n <li>".concat(x,"</li>\n "),0<this.monthYears[x][0].monthNum){for(var I=[],L=0;L<this.monthYears[x][0].monthNum;L++)I.push("<li> </li>");v+=I.join("")}v+=this.monthYears[x].map(function(t){return"<li id='".concat(i.elementId,"_").concat(t.id,"_monthyear' data-year='").concat(t.year,"' class='websy-dp-date websy-dp-monthyear'>").concat(t.month,"</li>")}).join(""),v+="</ul>"}v+="</div>"}else"hour"===this.options.mode&&(v+="<div id='".concat(this.elementId,"_dateList' class='websy-dp-date-list'><ul>"),v+=this.options.hours.map(function(t){return"<li id='".concat(i.elementId,"_").concat(+t.text.split(":")[0],"_hour' data-hour='").concat(t.text,"' class='websy-dp-date websy-dp-hour'>").concat(t.text,"</li>")}).join(""),v+="</ul></div>");return v}},{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];if(this.options.ranges[this.options.mode][t]){this.selectedRangeDates=_toConsumableArray(this.options.ranges[this.options.mode][t].range),this.currentselection=_toConsumableArray(this.options.ranges[this.options.mode][t].range),this.selectedRange=+t;var i=document.getElementById("".concat(this.elementId,"_header"));i&&(0===this.selectedRange?i.classList.remove("range-selected"):i.classList.add("range-selected")),this.highlightRange(),this.close(e)}}},{key:"selectCustomRange",value:function(i){var n=this;this.selectedRange=-1;var s=!0;1===i.length?(this.selectedRangeDates=_toConsumableArray(i),this.customRangeSelected=!0):2===i.length&&(this.selectedRangeDates=_toConsumableArray(i),this.customRangeSelected=!0),i.forEach(function(t,e){0<e&&("date"===n.options.mode||"monthyear"===n.options.mode?1<t.getTime()/n.oneDay-i[e-1]/n.oneDay&&(s=!1):"hour"!==n.options.mode&&"year"!==n.options.mode||1<t-i[e-1]&&(s=!1))}),2<i.length&&!0===s&&(this.selectedRangeDates=[i[0],i[i.length-1]],this.customRangeSelected=!0),!1===s&&(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){if(this.options.ranges[this.options.mode][t].range[0]===i[0]){this.selectedRange=t,this.customRangeSelected=!1;break}}else if(2===this.options.ranges[this.options.mode][t].range.length&&this.options.ranges[this.options.mode][t].range[0]===i[0]&&this.options.ranges[this.options.mode][t].range[1]===i[1]){this.selectedRange=t,this.customRangeSelected=!1;break}this.highlightRange(),this.updateRange()}},{key:"setDateBounds",value:function(t){-1!==["All Dates","All Years","All"].indexOf(this.options.ranges[this.options.mode][0].label)&&(this.options.ranges[this.options.mode][0].range=[t[0],t[1]||t[0]]),"date"===this.options.mode?(this.options.minAllowedDate=t[0],this.options.maxAllowedDate=t[1]||t[0]):"year"===this.options.mode?(this.options.minAllowedYear=t[0],this.options.maxAllowedYear=t[1]||t[0]):"monthyear"===this.options.mode?(this.options.minAllowedDate=t[0],this.options.maxAllowedDate=t[1]||t[0]):"hour"===this.options.mode&&(this.options.minAllowedHour=t[0],this.options.maxAllowedHour=t[1]||t[0])}},{key:"updateRange",value:function(){var t,e=this;if(-1===this.selectedRange){var i=(0<this.currentselection.length?this.currentselection:this.selectedRangeDates).map(function(t){return"date"===e.options.mode?(t.toLocaleDateString||(t=new Date(t)),t.toLocaleDateString()):"year"===e.options.mode?t:"monthyear"===e.options.mode?(t.getMonth||(t=new Date(t)),"".concat(e.options.monthMap[t.getMonth()]," ").concat(t.getFullYear())):"hour"===e.options.mode?t:void 0}),n=i[0],s="";!0===this.customRangeSelected?(s=" - ".concat(i[i.length-1]),"hour"===this.options.mode&&(n=this.options.hours[n].text,s="".concat(!0===this.customRangeSelected?" - ":"").concat(this.options.hours[i[i.length-1]].text))):1<i.length?n="".concat(i.length," selected"):"hour"===this.options.mode&&(n=this.options.hours[n].text),t={label:"".concat(n).concat(s)}}else t=this.options.ranges[this.options.mode][this.selectedRange];for(var o=document.getElementById(this.elementId),a=document.getElementById("".concat(this.elementId,"_selectedRange")),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)}}]),o}();Date.prototype.floor=function(){return new Date("".concat(this.getMonth()+1,"/").concat(this.getDate(),"/").concat(this.getFullYear()))};var WebsyDropdown=function(){function l(t,e){var i=this;_classCallCheck(this,l);if(this.options=_extends({},{multiSelect:!1,multiValueDelimiter:",",allowClear:!0,style:"plain",items:[],label:"",disabled:!1,minSearchCharacters:2,showCompleteSelectedList:!1,closeAfterSelection:!0,customActions:[],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 class=\'clear\' 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 class=\'arrow\' 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.tooltipTimeoutFn=null,this._originalData=[],this.selectedItems=this.options.selectedItems||[],t){var n=document.getElementById(t);if(n){this.elementId=t,n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("keyup",this.handleKeyUp.bind(this)),n.addEventListener("mouseout",this.handleMouseOut.bind(this)),n.addEventListener("mousemove",this.handleMouseMove.bind(this));var s=this.selectedItems.map(function(t){return i.options.items[t].label||i.options.items[t].value}).join(this.options.multiValueDelimiter),o=this.selectedItems.map(function(t){return i.options.items[t].value||i.options.items[t].label}).join(this.options.multiValueDelimiter),a="\n <div id='".concat(this.elementId,"_container' class='websy-dropdown-container ").concat(this.options.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 ").concat(this.options.searchIcon,"\n <span>\n <span class='websy-dropdown-header-value' data-info='").concat(s,"' id='").concat(this.elementId,"_selectedItems'>").concat(s,"</span> \n <span class='websy-dropdown-header-label' id='").concat(this.elementId,"_headerLabel'>").concat(this.options.label,"</span>\n </span>\n <input class='dropdown-input' id='").concat(this.elementId,"_input' name='").concat(this.options.field||this.options.label,"' value='").concat(o,"'>\n ").concat(this.options.arrowIcon,"\n ");!0===this.options.allowClear&&(a+=this.options.clearIcon),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&&(a+="\n <div class='websy-dropdown-action-container'>\n ".concat(this.options.actionsTitle||"","\n <button class='websy-dropdown-action-button'>\n ").concat(this.options.actionsIcon,"\n </button>\n <ul id='").concat(this.elementId,"_actionContainer'>\n "),this.options.customActions.forEach(function(t,e){a+="\n <li class='websy-dropdown-custom-action' data-index='".concat(e,"'>").concat(t.label,"</li>\n ")}),a+="\n </ul>\n </div>\n "),!0!==this.options.disableSearch&&(a+="\n <div class='websy-dropdown-search-container'>\n <input id='".concat(this.elementId,"_search' class='websy-dropdown-search' placeholder='").concat(this.options.searchPlaceholder||"Search","'>\n </div>\n ")),a+="\n <div id='".concat(this.elementId,"_itemsContainer' class='websy-dropdown-items'>\n <ul id='").concat(this.elementId,"_items'> \n </ul>\n </div>\x3c!--\n --\x3e<div class='websy-dropdown-custom'></div>\n </div>\n </div>\n "),n.innerHTML=a,document.getElementById("".concat(this.elementId,"_itemsContainer")).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(l,[{key:"appendRows",value:function(){}},{key:"clearSelected",value:function(){this.selectedItems=[],this.updateHeader(),this.options.onClearSelected&&this.options.onClearSelected()}},{key:"close",value:function(){var t=document.getElementById("".concat(this.elementId,"_mask")),e=document.getElementById("".concat(this.elementId,"_content")),i=document.getElementById("".concat(this.elementId,"_itemsContainer")),n=document.getElementById("".concat(this.elementId,"_actionContainer"));n&&n.classList.remove("active");var s=document.getElementById(this.elementId);s&&(s.style.zIndex=""),i.scrollTop=0,t.classList.remove("active"),e.classList.remove("active"),e.classList.remove("on-top");var o=document.getElementById("".concat(this.elementId,"_search"));o&&0<o.value.length&&this.options.onCancelSearch&&(this.options.onCancelSearch(""),o.value=""),this.options.onClose&&this.options.onClose(this.elementId)}},{key:"handleClick",value:function(t){if(!0!==this.options.disabled)if(t.target.classList.contains("websy-dropdown-header"))this.open();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-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")&&(0===this._originalData.length&&(this._originalData=_toConsumableArray(this.options.items)),e.target.value.length>=this.options.minSearchCharacters?"Enter"===e.key?this.options.onConfirmSearch&&(this.options.onConfirmSearch(e.target.value),e.target.value=""):"Escape"===e.key?this.options.onCancelSearch?(this.options.onCancelSearch(e.target.value),e.target.value=""):(this.data=this._originalData,this._originalData=[]):this.options.onSearch?this.options.onSearch(e.target.value):this.data=this._originalData.filter(function(t){return-1!==t.label.toLowerCase().indexOf(e.target.value.toLowerCase())}):this.options.onCancelSearch?this.options.onCancelSearch(e.target.value):(this.data=this._originalData,this._originalData=[]))}},{key:"handleMouseMove",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed"),t.target.classList.remove("websy-delayed-info"),t.target.children[1]&&t.target.children[1].classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn)),"LI"===t.target.tagName&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.classList.add("websy-delayed")},500)),t.target.classList.contains("websy-dropdown-header")&&t.target.children[1]&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.children[1].classList.add("websy-delayed-info")},500))}},{key:"handleMouseOut",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed"),t.target.classList.remove("websy-delayed-info"),t.target.children[1]&&t.target.children[1].classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn))}},{key:"handleScroll",value:function(t){t.target.classList.contains("websy-dropdown-items")&&this.options.onScroll&&this.options.onScroll(t)}},{key:"open",value:function(t){1<arguments.length&&void 0!==arguments[1]&&arguments[1];var e=document.getElementById("".concat(this.elementId,"_mask")),i=document.getElementById("".concat(this.elementId,"_content")),n=document.getElementById(this.elementId);if(n&&(n.style.zIndex=999),e.classList.add("active"),i.classList.add("active"),WebsyUtils.getElementPos(i).bottom>window.innerHeight&&i.classList.add("on-top"),!0!==this.options.disableSearch){var s=document.getElementById("".concat(this.elementId,"_search"));s&&s.focus()}this.options.onOpen&&this.options.onOpen(this.elementId)}},{key:"render",value:function(){this.elementId?this.renderItems():console.log("No element Id provided for Websy Dropdown")}},{key:"renderItems",value:function(){var t,i=this,e=this.options.items.map(function(t,e){return"\n <li data-index='".concat(t.index,"' class='websy-dropdown-item ").concat((t.classes||[]).join(" ")," ").concat(-1!==i.selectedItems.indexOf(t.index)?"active":"","'>").concat(t.label,"</li>\n ")}).join(""),n=document.getElementById("".concat(this.elementId,"_items"));n&&(n.innerHTML=e),1===this.selectedItems.length&&(t=this.options.items[this.selectedItems[0]]),this.updateHeader(t)}},{key:"updateHeader",value:function(t){for(var e=this,i=document.getElementById(this.elementId),n=document.getElementById("".concat(this.elementId,"_header")),s=document.getElementById("".concat(this.elementId,"_headerLabel")),o=document.getElementById("".concat(this.elementId,"_selectedItems")),a=document.getElementById("".concat(this.elementId,"_input")),l=i.querySelectorAll(".websy-dropdown-item"),r=0;r<l.length;r++){l[r].classList.remove("active");var c=l[r].getAttribute("data-index");-1!==this.selectedItems.indexOf(+c)&&l[r].classList.add("active")}if(s&&(s.innerHTML=this.options.label),n&&(n.classList.remove("one-selected"),n.classList.remove("multi-selected"),1===this.selectedItems.length?n.classList.add("one-selected"):1<this.selectedItems.length&&(!0===this.options.showCompleteSelectedList?n.classList.add("one-selected"):n.classList.add("multi-selected"))),o)if(1===this.selectedItems.length)t&&(o.innerHTML=t.label,o.setAttribute("data-info",t.label),a.value=t.value);else if(1<this.selectedItems.length)if(!0===this.options.showCompleteSelectedList){var h=this.selectedItems.map(function(t){return e.options.items[t].label||e.options.items[t].value}).join(this.options.multiValueDelimiter),d=this.selectedItems.map(function(t){return e.options.items[t].value||e.options.items[t].label}).join(this.options.multiValueDelimiter);o.innerHTML=h,o.setAttribute("data-info",h),a.value=d}else{var p=this.selectedItems.map(function(t){return e.options.items[t].value||e.options.items[t].label}).join(this.options.multiValueDelimiter);o.innerHTML="".concat(this.selectedItems.length," selected"),o.setAttribute("data-info",""),a.value=p}else o.innerHTML="",o.setAttribute("data-info",""),a.value=""}},{key:"updateSelected",value:function(t){if(null!=t){var e=this.selectedItems.indexOf(t);!1===this.options.multiSelect?this.selectedItems=[t]:-1!==e?this.selectedItems.splice(e,1):this.selectedItems.push(t)}var i=this.options.items[t];this.updateHeader(i),i&&this.options.onItemSelected&&this.options.onItemSelected(i,this.selectedItems,this.options.items,this.options),!0===this.options.closeAfterSelection&&this.close()}},{key:"selections",set:function(t){this.selectedItems=t||[]}},{key:"data",set:function(t){this.options.items=(t||[]).map(function(t,e){return void 0===t.index&&(t.index=e),t}),0===document.getElementById("".concat(this.elementId,"_items")).childElementCount?this.render():(0===this.options.items.length&&(this.options.items=[{label:this.options.noItemsText||"No Items"}]),this.renderItems())},get:function(){return this.options.items}}]),l}(),WebsyForm=function(){function s(t,e){_classCallCheck(this,s);var i={submit:{text:"Save",classes:""},useRecaptcha:!1,clearAfterSave:!1,fields:[],mode:"add",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.elementId=t;var n=document.getElementById(t);n&&(n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("keyup",this.handleKeyUp.bind(this)),n.addEventListener("keydown",this.handleKeyDown.bind(this)),this.render())}else console.log("No element Id provided")}return _createClass(s,[{key:"cancelForm",value:function(){document.getElementById("".concat(this.elementId,"Form")).reset(),this.options.cancelFn&&this.options.cancelFn(this.elementId)}},{key:"checkRecaptcha",value:function(){var n=this;return new Promise(function(e,i){!0===n.options.useRecaptcha?grecaptcha.ready(function(){grecaptcha.execute(ENVIRONMENT.RECAPTCHA_KEY,{action:"submit"}).then(function(t){n.apiService.add("google/checkrecaptcha",{grecaptcharesponse:t}).then(function(t){t.success&&!0===t.success?e(!0):i(!1)})},function(t){i(t)})}):e(!0)})}},{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:"handleClick",value:function(t){t.target.classList.contains("submit")?(t.preventDefault(),this.submitForm()):t.target.classList.contains("cancel")&&(t.preventDefault(),this.cancelForm())}},{key:"handleKeyDown",value:function(t){"enter"===t.key&&this.submitForm()}},{key:"handleKeyUp",value:function(t){}},{key:"processComponents",value:function(t,e){var i=this;0===t.length?e():t.forEach(function(t){void 0!==WebsyDesigns[t.component]&&(t.instance=new WebsyDesigns[t.component]("".concat(i.elementId,"_input_").concat(t.field,"_component"),t.options))})}},{key:"recaptchaReady",value:function(){document.getElementById("".concat(this.elementId,"_recaptcha"))&&grecaptcha.render("".concat(this.elementId,"_recaptcha"),{sitekey:ENVIRONMENT.RECAPTCHA_KEY,callback:this.validateRecaptcha.bind(this)})}},{key:"render",value:function(t,e){var i=this,n=document.getElementById(this.elementId),s=[];if(n){var o='\n <form id="'.concat(this.elementId,'Form" class="websy-form ').concat(this.options.classes||"",'">\n ');this.options.fields.forEach(function(t,e){t.component?(s.push(t),o+="\n ".concat(0<e?"--\x3e":"","<div class='").concat(t.classes||"","'>\n ").concat(t.label?'<label for="'.concat(t.field,'">').concat(t.label,"</label>"):"","\n <div id='").concat(i.elementId,"_input_").concat(t.field,"_component' class='form-component'></div>\n </div>\x3c!--\n ")):"longtext"===t.type?o+="\n ".concat(0<e?"--\x3e":"","<div class='").concat(t.classes||"","'>\n ").concat(t.label?'<label for="'.concat(t.field,'">').concat(t.label,"</label>"):"",'\n <textarea\n id="').concat(i.elementId,"_input_").concat(t.field,'"\n ').concat(!0===t.required?"required":"",' \n placeholder="').concat(t.placeholder||"",'"\n name="').concat(t.field,'" \n ').concat((t.attributes||[]).join(" "),'\n class="websy-input websy-textarea"\n ></textarea>\n </div>\x3c!--\n '):o+="\n ".concat(0<e?"--\x3e":"","<div class='").concat(t.classes||"","'>\n ").concat(t.label?'<label for="'.concat(t.field,'">').concat(t.label,"</label>"):"",'\n <input \n id="').concat(i.elementId,"_input_").concat(t.field,'"\n ').concat(!0===t.required?"required":"",' \n type="').concat(t.type||"text",'" \n class="websy-input" \n ').concat((t.attributes||[]).join(" "),'\n name="').concat(t.field,'" \n placeholder="').concat(t.placeholder||"",'"\n value="').concat(t.value||"",'"\n valueAsDate="').concat("date"===t.type?t.value:"",'"\n oninvalidx="this.setCustomValidity(\'').concat(t.invalidMessage||"Please fill in this field.","')\"\n />\n </div>\x3c!--\n ")}),o+='\n --\x3e<button class="websy-btn submit '.concat(this.options.submit.classes||"",'">').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||"",'">').concat(this.options.cancel.text||"Cancel","</button>\n ")),o+=' \n </form>\n <div id="'.concat(this.elementId,'_validationFail" class="websy-validation-failure"></div>\n '),!0===this.options.useRecaptcha&&(o+="\n <div id='".concat(this.elementId,"_recaptcha'></div>\n ")),n.innerHTML=o,this.processComponents(s,function(){i.options.useRecaptcha})}}},{key:"submitForm",value:function(){var s=this,o=document.getElementById("".concat(this.elementId,"Form"));!0===o.reportValidity()&&this.checkRecaptcha().then(function(t){if(!0===t){new FormData(o);var i={};if(new FormData(o).forEach(function(t,e){i[e]=t}),s.options.url){var e,n=[s.options.url];"update"===s.options.mode&&n.push(s.options.id),n.push(i),(e=s.apiService)[s.options.mode].apply(e,n).then(function(t){!0===s.options.clearAfterSave&&o.reset(),s.options.onSuccess.call(s,t)},function(t){console.log("Error submitting form data:",t),s.options.onError.call(s,t)})}else s.options.submitFn&&s.options.submitFn(i,function(){!0===s.options.clearAfterSave&&o.reset()})}else console.log("bad recaptcha")})}},{key:"validateRecaptcha",value:function(t){this.recaptchaValue=t}},{key:"data",set:function(i){var n=this;this.options.fields||(this.options.fields=[]);var t=function(e){n.options.fields.forEach(function(t){t.field===e&&(t.value=i[e],document.getElementById("".concat(n.elementId,"_input_").concat(t.field)).value=t.value)})};for(var e in i)t(e);this.render()}}]),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" style="enable-background:new 0 0 500 500;" xml:space="preserve">\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 '},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.classList.remove("loading"),t.innerHTML=""}},{key:"render",value:function(){if(this.elementId){var t=document.getElementById(this.elementId),e="\n\t\t\t<div class='websy-loading-container ".concat((this.options.classes||[]).join(" "),"'>\n\t\t\t\t<div class='websy-ripple'>\n\t\t\t\t\t<div></div>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t\t<h4>").concat(this.options.title||"Loading...","</h4>\n\t\t");if(this.options.messages)for(var i=0;i<this.options.messages.length;i++)e+="<p>".concat(this.options.messages[i],"</p>");e+="\n\t\t\t</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 s(t,e){_classCallCheck(this,s);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 n={useRecaptcha:this.options.useRecaptcha||ENVIRONMENT.useRecaptcha||!1,submit:{text:this.options.buttonText||"Log in",classes:(this.options.buttonClasses||[]).join(" ")||""},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.loginForm=new WebsyDesigns.WebsyForm("".concat(this.elementId,"_container"),_extends({},this.options,n))}else console.error("No element with ID ".concat(this.elementId," found for WebsyLogin component."))}return _createClass(s,[{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)}}]),s}(),WebsyNavigationMenu=function(){function n(t,e){if(_classCallCheck(this,n),this.options=_extends({},{collapsible:!1,orientation:"horizontal",parentMap:{},childIndentation:10,activeSymbol:"none"},e),t){var i=document.getElementById(t);i&&(this.elementId=t,this.lowestLevel=0,this.flatItems=[],this.itemMap={},this.flattenItems(0,this.options.items),console.log(this.flatItems),i.classList.add("websy-".concat(this.options.orientation,"-list-container")),i.classList.add("websy-menu"),this.options.align&&i.classList.add("".concat(this.options.align,"-align")),Array.isArray(this.options.classes)&&(this.options.classes=this.options.classes.join(" ")),this.options.classes&&this.options.classes.split(" ").forEach(function(t){return i.classList.add(t)}),i.addEventListener("click",this.handleClick.bind(this)),this.render())}else console.log("No element Id provided for Websy Menu")}return _createClass(n,[{key:"flattenItems",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0;e[t]&&(this.lowestLevel=Math.max(i,this.lowestLevel),e[t].id=e[t].id||"".concat(this.elementId,"_").concat(this.normaliseString(e[t].text)),this.itemMap[e[t].id]=e[t],e[t].level=i,this.flatItems.push(e[t]),e[t].items&&this.flattenItems(0,e[t].items,i+1),this.flattenItems(++t,e,i))}},{key:"handleClick",value:function(t){if((t.target.classList.contains("websy-menu-icon")||"svg"===t.target.nodeName||"rect"===t.target.nodeName)&&this.toggleMobileMenu(),t.target.classList.contains("websy-menu-header")){var e=this.itemMap[t.target.id];t.target.classList.contains("trigger-item")&&e.level===this.lowestLevel&&this.toggleMobileMenu("remove"),e.items&&(t.target.classList.toggle("menu-open"),this.toggleMenu(e.id))}t.target.classList.contains("websy-menu-mask")&&this.toggleMobileMenu()}},{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 <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>\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 ')),e+=this.renderBlock(this.options.items,"main",0),e+="</div>",t.innerHTML=e}}},{key:"renderBlock",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0,n="\n\t\t <ul class='websy-".concat(this.options.orientation,"-list ").concat(0<i?"websy-child-list":""," ").concat("main"!==e?"websy-menu-collapsed":"","' id='").concat(this.elementId,"_").concat(e,"_list'\n\t ");"main"!==e&&(n+=" data-collapsed='".concat("main"!==e?"true":"false","'")),n+=">";for(var s=0;s<t.length;s++){var o=!0===t[s].default?"active":"",a=this.normaliseString(t[s].text),l=t[s].id;Array.isArray(t[s].classes)&&(t[s].classes=t[s].classes.join(" ")),n+="\n\t\t\t<li class='websy-".concat(this.options.orientation,"-list-item ").concat(!0===t[s].alwaysOpen?"always-open":"","'>\n\t\t\t\t<div class='websy-menu-header ").concat(t[s].classes||""," ").concat(""," ").concat(o,"' \n\t\t\t\t\t\t id='").concat(l,"' \n\t\t\t\t\t\t data-id='").concat(a,"'\n data-menu-id='").concat(this.elementId,"_").concat(a,"_list'\n\t\t\t\t\t\t data-popout-id='").concat(1<i?e:a,"'\n\t\t\t\t\t\t data-text='").concat(!0!==t[s].isLink?t[s].text:"","'\n\t\t\t\t\t\t style='padding-left: ").concat(i*this.options.childIndentation,"px'\n\t\t\t\t\t\t ").concat(t[s].attributes&&t[s].attributes.join(" ")||"","\n >\n "),"horizontal"===this.options.orientation&&(n+=t[s].text),"line"===this.options.activeSymbol&&(n+="\n <span class='selected-bar'></span>\n "),"triangle"===this.options.activeSymbol&&(n+="\n <span class='active-square'></span>\n "),n+=" \n <span class='".concat(t[s].items&&0<t[s].items.length?"menu-carat":"","'></span>\n "),"vertical"===this.options.orientation&&(n+="\n \n "),!0===t[s].isLink&&t[s].href&&(n+="<a href='".concat(t[s].href,"'>").concat(t[s].text,"</a>")),n+=" \n\t\t\t\t</div>\n\t\t ",t[s].items&&(n+=this.renderBlock(t[s].items,a,t[s].level+1)),e&&"main"!==e&&(this.options.parentMap[a]||(this.options.parentMap[a]=e)),n+="\n\t\t\t</li>\n\t\t"}return n+="</ul>"}},{key:"toggleMenu",value:function(t){var e=document.getElementById("".concat(t,"_list"));e&&e.classList.toggle("websy-menu-collapsed")}},{key:"toggleMobileMenu",value:function(t){void 0===t&&(t="toggle");var e=document.getElementById("".concat(this.elementId));e&&e.classList[t]("open"),this.options.onToggle&&this.options.onToggle(t)}}]),n}(),Pager=function(){function o(t,e){var i=this;_classCallCheck(this,o),this.elementId=t;this.options=_extends({},{pageSizePrefix:"Show",pageSizeSuffix:"rows",pageSizeOptions:[{label:"10",value:10},{label:"20",value:20},{label:"50",value:50},{label:"100",value:100}],selectedPageSize:20,pageLabel:"Page",showPageSize:!0,activePage:0,pages:[]},e);var n=document.getElementById(this.elementId);if(n){var s='\n <div class="websy-pager-container">\n ';!0===this.options.showPageSize&&(s+="\n ".concat(this.options.pageSizePrefix,' <div id="').concat(this.elementId,'_pageSizeSelector" class="websy-page-selector"></div> ').concat(this.options.pageSizeSuffix," \n ")),s+='\n <ul id="'.concat(this.elementId,'_pageList" class="websy-page-list"></ul> \n </div> \n '),n.innerHTML=s,n.addEventListener("click",this.handleClick.bind(this)),!0===this.options.showPageSize&&(this.pageSizeSelector=new WebsyDesigns.Dropdown("".concat(this.elementId,"_pageSizeSelector"),{selectedItems:[this.options.pageSizeOptions.indexOf(this.options.selectedPageSize)],items:this.pageSizeOptions.map(function(t){return{label:t.toString(),value:t}}),allowClear:!1,disableSearch:!0,onItemSelected:function(t){i.options.onChangePageSize&&i.options.onChangePageSize(t.value)}})),this.render()}}return _createClass(o,[{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-page-num")){var e=+t.target.getAttribute("data-index");this.options.onSetPage&&this.options.onSetPage(this.options.pages[e])}}},{key:"render",value:function(){var i=this,t=document.getElementById("".concat(this.elementId,"_pageList"));if(t){var e=this.options.pages.map(function(t,e){return'<li data-index="'.concat(e,'" class="websy-page-num ').concat(i.options.activePage===e?"active":"",'">').concat(e+1,"</li>")}),n=0;8<this.options.pages.length&&(n=Math.max(0,this.options.activePage-4),e=e.splice(n,10),0<n?e.splice(0,0,"<li>".concat(this.options.pageLabel,' </li><li data-page="0" class="websy-page-num">First</li><li>...</li>')):e.splice(0,0,"<li>".concat(this.options.pageLabel," </li>")),this.options.activePage<this.options.pages.length-1&&(e.push("<li>...</li>"),e.push('<li data-page="'.concat(this.options.pages.length-1,'" class="websy-page-num">Last</li>')))),t.innerHTML=e.join("")}}}]),o}(),WebsyPDFButton=function(){function n(t,e){_classCallCheck(this,n);this.elementId=t,this.options=_extends({},{classes:[],wait:0,buttonText:"Download",directDownload:!1},e),this.service=new WebsyDesigns.APIService("/pdf");var i=document.getElementById(this.elementId);i&&(i.addEventListener("click",this.handleClick.bind(this)),e.html?i.innerHTML=e.html:(i.innerHTML="\n \x3c!--<form style='display: none;' id='".concat(this.elementId,"_form' action='/pdf' method='POST'>\n <input id='").concat(this.elementId,"_pdfHeader' value='' name='header'>\n <input id='").concat(this.elementId,"_pdfHTML' value='' name='html'>\n <input id='").concat(this.elementId,"_pdfFooter' value='' name='footer'>\n </form>--\x3e\n <button class='websy-btn websy-pdf-button ").concat(this.options.classes.join(" "),'\'>\n Create PDF\n <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n viewBox="0 0 184.153 184.153" style="enable-background:new 0 0 184.153 184.153;" xml:space="preserve">\n <g>\n <g>\n <g>\n <path d="M129.318,0H26.06c-1.919,0-3.475,1.554-3.475,3.475v177.203c0,1.92,1.556,3.475,3.475,3.475h132.034\n c1.919,0,3.475-1.554,3.475-3.475V34.131C161.568,22.011,140.771,0,129.318,0z M154.62,177.203H29.535V6.949h99.784\n c7.803,0,25.301,18.798,25.301,27.182V177.203z"/>\n <path d="M71.23,76.441c15.327,0,27.797-12.47,27.797-27.797c0-15.327-12.47-27.797-27.797-27.797\n c-15.327,0-27.797,12.47-27.797,27.797C43.433,63.971,55.902,76.441,71.23,76.441z M71.229,27.797\n c11.497,0,20.848,9.351,20.848,20.847c0,0.888-0.074,1.758-0.183,2.617l-18.071-2.708L62.505,29.735\n C65.162,28.503,68.112,27.797,71.229,27.797z M56.761,33.668l11.951,19.869c0.534,0.889,1.437,1.49,2.462,1.646l18.669,2.799\n c-3.433,6.814-10.477,11.51-18.613,11.51c-11.496,0-20.847-9.351-20.847-20.847C50.381,42.767,52.836,37.461,56.761,33.668z"/>\n <rect x="46.907" y="90.339" width="73.058" height="6.949"/>\n <rect x="46.907" y="107.712" width="48.644" height="6.949"/>\n <rect x="46.907" y="125.085" width="62.542" height="6.949"/>\n </g>\n </g>\n </g> \n </svg>\n </button> \n <div id=\'').concat(this.elementId,"_loader'></div>\n <div id='").concat(this.elementId,"_popup'></div>\n "),this.loader=new WebsyDesigns.WebsyLoadingDialog("".concat(this.elementId,"_loader"),{classes:["global-loader"]}),this.popup=new WebsyDesigns.WebsyPopupDialog("".concat(this.elementId,"_popup"))))}return _createClass(n,[{key:"handleClick",value:function(t){var s=this;t.target.classList.contains("websy-pdf-button")?(this.loader.show(),setTimeout(function(){if(s.options.targetId){var t=document.getElementById(s.options.targetId);if(t){var e={options:{}};if(s.options.pdfOptions&&(e.options=_extends({},s.options.pdfOptions)),s.options.header)if(s.options.header.elementId){var i=document.getElementById(s.options.header.elementId);i&&(e.header=i.outerHTML,s.options.header.css&&(e.options.headerCSS=s.options.header.css))}else s.options.header.html?(e.header=s.options.header.html,s.options.header.css&&(e.options.headerCSS=s.options.header.css)):e.header=s.options.header;if(s.options.footer)if(s.options.footer.elementId){var n=document.getElementById(s.options.footer.elementId);n&&(e.footer=n.outerHTML,s.options.footer.css&&(e.options.footerCSS=s.options.footer.css))}else e.footer=s.options.footer;e.html=t.outerHTML,s.service.add("",e,{responseType:"blob"}).then(function(t){s.loader.hide();var e,i=new Blob([t],{type:"application/pdf"}),n="\n <div class='text-center websy-pdf-download'>\n <div>Your file is ready to download</div>\n <a href='".concat(URL.createObjectURL(i),"' target='_blank'\n ");!0===s.options.directDownload&&(e="function"==typeof s.options.fileName?s.options.fileName()||"Export":s.options.fileName||"Export",n+="download='".concat(e,".pdf'"));n+="\n >\n <button class='websy-btn download-pdf'>".concat(s.options.buttonText,"</button>\n </a>\n </div>\n "),s.popup.show({message:n,mask:!0})},function(t){console.error(t)})}}},this.options.wait)):t.target.classList.contains("download-pdf")&&(this.popup.hide(),this.options.onClose&&this.options.onClose())}},{key:"render",value:function(){}}]),n}(),WebsyPopupDialog=function(){function n(t,e){if(_classCallCheck(this,n),this.DEFAULTS={buttons:[],classes:[],style:""},this.options=_extends({},this.DEFAULTS,e),t){this.closeOnOutsideClick=!0;var i=document.getElementById(t);this.elementId=t,i.addEventListener("click",this.handleClick.bind(this))}else console.log("No element Id provided for Websy Popup")}return _createClass(n,[{key:"hide",value:function(){document.getElementById(this.elementId).innerHTML=""}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-btn")){var e=t.target.getAttribute("data-index"),i=this.options.buttons[e];if(i&&i.fn){if(void 0!==this.options.collectData){var n=document.getElementById("".concat(this.elementId,"_collect"));n&&(i.collectedData=n.value)}!0!==i.preventClose&&this.hide(),i.fn(i)}else i&&!0!==i.preventClose&&this.hide()}else!0===this.closeOnOutsideClick&&this.hide()}},{key:"render",value:function(){if(this.elementId){var t=document.getElementById(this.elementId),e="";if(!0===this.options.mask&&(e+="<div class='websy-mask'></div>"),e+="\n\t\t\t<div class='websy-popup-dialog-container'>\n\t\t\t\t<div class='websy-popup-dialog ".concat(this.options.classes.join(" "),"' style='").concat(this.options.style,"'>\n\t\t"),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\t\t\t\t\t<button class='websy-btn ".concat((this.options.buttons[i].classes||[]).join(" "),"' data-index='").concat(i,"'>\n\t\t\t\t\t\t").concat(this.options.buttons[i].label,"\n\t\t\t\t\t</button>\n\t\t\t\t");e+="</div>"}e+="\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t",t.innerHTML=e}else console.log("No element Id provided for Websy Popup")}},{key:"show",value:function(t){t&&(this.options=_extends({},this.DEFAULTS,t)),this.render()}}]),n}(),WebsyPubSub=function(){function i(t,e){_classCallCheck(this,i),this.options=_extends({},e),t?(this.elementId=t,this.subscriptions={}):console.log("No element Id provided")}return _createClass(i,[{key:"publish",value:function(t,e){this.subscriptions[t]&&this.subscriptions[t].forEach(function(t){t(e)})}},{key:"subscribe",value:function(t,e){this.subscriptions[t]||(this.subscriptions[t]=[]),this.subscriptions[t].push(e)}}]),i}(),ResponsiveText=function(){function n(t,e){var i=this;_classCallCheck(this,n);this.options=_extends({},{textAlign:"center",verticalAlign:"flex-end",wrapText:!1},e),this.elementId=t,this.canvas=document.createElement("canvas"),window.addEventListener("resize",function(){return i.render()}),document.getElementById(this.elementId)&&this.render()}return _createClass(n,[{key:"css",value:function(t,e){return window.getComputedStyle(t,null).getPropertyValue(e)}},{key:"render",value:function(t){if(void 0!==t&&(this.options.text=t),this.options.text){var e=!1,i=document.getElementById(this.elementId),n=this.canvas.getContext("2d"),s=0,o=!1,a=i.clientHeight;if("string"==typeof this.options.maxHeight&&-1!==this.options.maxHeight.indexOf("%")){var l=+this.options.maxHeight.replace("%","");isNaN(l)||(this.options.maxHeight=Math.floor(a*(l/100)))}else"string"==typeof this.options.maxHeight&&-1!==this.options.maxHeight.indexOf("px")&&(this.options.maxHeight=+this.options.maxHeight.replace("px",""));if("string"==typeof this.options.minHeight&&-1!==this.options.minHeight.indexOf("%")){var r=+this.options.minHeight.replace("%","");isNaN(r)||(this.options.minHeight=Math.floor(a*(r/100)))}else"string"==typeof this.options.minHeight&&-1!==this.options.minHeight.indexOf("px")&&(this.options.minHeight=+this.options.minHeight.replace("px",""));var c=this.css(i,"font-family"),h=this.css(i,"font-weight"),d=i.clientWidth;if(0===d&&i.style.maxWidth&&"auto"!==i.style.maxWidth&&0<i.parentElement.clientWidth){var p=i.style.maxWidth;-1!==p.indexOf("calc")?(-1!==(p=(p=p.replace("calc(","").replace(")","")).split(" "))[0].indexOf("px")?d=p[0].replace("px",""):-1!==p[0].indexOf("%")&&(d=i.parentElement.clientWidth*(+p[0].replace("%","")/100)),p[2]&&p[4]&&("-"===p[2]&&-1!==p[4].indexOf("px")&&(d-=+p[4].replace("px","")),"+"===p[2]&&-1!==p[4].indexOf("px")&&(d+=+p[4].replace("px","")))):-1!==p.indexOf("px")?d=+p.replace("px",""):-1!==p.indexOf("%")&&(d=i.parentElement.clientWidth*(+p.replace("%","")/100))}for(var u=i.clientHeight;!1===o;){s++,n.font="".concat(h," ").concat(s,"px ").concat(c);var m=n.measureText(this.options.text);if(-1!==navigator.userAgent.indexOf("Safari"))for(var g=!1,f=i;!1===g;)0<f.clientHeight?(u=f.clientHeight,g=!0):f.parentNode?f=f.parentNode:g=!0;void 0!==this.options.maxHeight&&s===this.options.maxHeight?(s=this.options.maxHeight,a=m.actualBoundingBoxAscent,o=!0):(m.width>d||m.actualBoundingBoxAscent>=u)&&(s--,a=m.actualBoundingBoxAscent,o=!0)}if(""===this.options.minHeight&&(this.options.minHeight=void 0),void 0!==this.options.minHeight)if(this.options.minHeight>s&&!0===this.options.wrapText){o=!(e=!0),s=this.options.minHeight;var v=this.options.text.match(/ /g);if(v&&0<v.length){v=v.length;for(var y=this.options.text.split(" ");!1===o;){s++,n.font="".concat(h," ").concat(s,"px ").concat(c);for(var b=v;0<b;b--){var w=[y.slice(0,b).join(" "),y.slice(b,y.length).join(" ")].reduce(function(t,e){return t.length>e.length?t:e},""),x=n.measureText(w);if(-1!==navigator.userAgent.indexOf("Safari"))for(var I=!1,L=i;!1===I;)0<L.clientHeight?(u=L.clientHeight,I=!0):L.parentNode?L=L.parentNode:I=!0;if(void 0!==this.options.maxHeight&&s===this.options.maxHeight){s=this.options.maxHeight,a=x.actualBoundingBoxAscent,o=!0;break}if(x.width>d||x.actualBoundingBoxAscent>=u/2*.75){s--,a=x.actualBoundingBoxAscent,o=!0;break}}}}void 0!==this.options.minHeight&&this.options.minHeight>s&&(s=this.options.minHeight)}else this.options.minHeight>s&&(s=this.options.minHeight);var k=Math.min(u,a);i.innerHTML="\n <div \n class='websy-responsive-text' \n style='\n justify-content: ".concat(this.options.verticalAlign,";\n font-size: ").concat(s,"px;\n font-weight: ").concat(h||"normal",";\n '\n > \n <span\n style='\n white-space: ").concat(!0===this.options.wrapText?"normal":"nowrap",";\n height: ").concat(Math.floor(!0===e?k*(1/3)*2:k),"px;\n line-height: ").concat(Math.ceil(!0===e?1.2*s:k),"px;\n justify-content: ").concat(this.options.textAlign,";\n text-align: ").concat(this.options.textAlign,";\n '\n >").concat(this.options.text,"</span>\n </div>\n ")}}}]),n}(),WebsyResultList=function(){function s(t,e){var i=this;_classCallCheck(this,s);if(this.options=_extends({},{listeners:{click:{}}},e),this.elementId=t,this.rows=[],this.apiService=new WebsyDesigns.APIService("/api"),this.templateService=new WebsyDesigns.APIService(""),t){var n=document.getElementById(t);n&&n.addEventListener("click",this.handleClick.bind(this)),"object"===_typeof(e.template)&&e.template.url?this.templateService.get(e.template.url).then(function(t){i.options.template=t,i.render()}):this.render()}else console.log("No element Id provided for Websy Search List")}return _createClass(s,[{key:"appendData",value:function(t){var e=this.rows.length;this.rows=this.rows.concat(t);var i=this.buildHTML(t,e);document.getElementById(this.elementId).innerHTML+=i.replace(/\n/g,"")}},{key:"buildHTML",value:function(s){var o=this,a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,c="";return this.options.template&&(0<s.length?s.forEach(function(l,e){var r="".concat(0<e?"--\x3e":"").concat(o.options.template).concat(e<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 n=[],s=!0;-1!==i.indexOf("===")?n=i.split("==="):-1!==i.indexOf("!==")?(n=i.split("!=="),s=!1):-1!==i.indexOf("==")?n=i.split("=="):-1!==i.indexOf("!=")&&(n=i.split("!="),s=!1);var o=!0;if(2===n.length&&(isNaN(n[1])||(n[1]=+n[1]),"true"===n[1]&&(n[1]=!0),"false"===n[1]&&(n[1]=!1),"string"==typeof n[1]&&(-1!==n[1].indexOf('"')?n[1]=n[1].replace(/"/g,""):-1!==n[1].indexOf("'")&&(n[1]=n[1].replace(/'/g,""))),!0===s?void 0!==l[n[0]]&&l[n[0]]===n[1]?o=!1:n[0]===n[1]&&(o=!1):!1===s&&void 0!==l[n[0]]&&l[n[0]]!==n[1]&&(o=!1)),!0===o)r=r.replace(t[0],"");else{var a=t[0];a=a.replace("</if>","").replace(/<\s*if[^>]*>/g,""),r=r.replace(t[0],a)}}}});var t=_toConsumableArray(r.matchAll(/(\sdata-event=["|']\w.+)["|']/g));for(var i in t.forEach(function(t){t[0]&&-1<t.index&&(r=r.replace(t[0],"".concat(t[0]," data-id=").concat(a+e)))}),l){var n=new RegExp("{".concat(i,"}"),"gm");r=r.replace(n,l[i])}c+=r}):this.options.noRowsHTML&&(c+=this.options.noRowsHTML)),c}},{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:"handleClick",value:function(t){var e=this;if(t.target.classList.contains("clickable")){var i=t.target.getAttribute("data-event");if(i){i=i.split("(");var n,s=[],o=t.target.getAttribute("data-id");if(i[1]&&(i[1]=i[1].replace(")",""),s=i[1].split(",")),i=i[0],s=s.map(function(t){return"string"!=typeof t&&"number"!=typeof t?e.rows[+o]&&(t=e.rows[+o][t]):"string"==typeof t&&(t=t.replace(/"/g,"").replace(/'/g,"")),t}),t.target.classList.contains("clickable")&&this.options.listeners.click[i])t.stopPropagation(),(n=this.options.listeners.click[i]).call.apply(n,[this,t,this.rows[+o]].concat(_toConsumableArray(s)))}}}},{key:"render",value:function(){var e=this;this.options.entity?this.apiService.get(this.options.entity).then(function(t){e.rows=t.rows,e.resize()}):this.resize()}},{key:"resize",value:function(){var t=this.buildHTML(this.rows);document.getElementById(this.elementId).innerHTML=t.replace(/\n/g,"")}},{key:"data",set:function(t){this.rows=t||[],this.render()},get:function(){return this.rows}}]),s}(),WebsyRouter=function(){function e(t){_classCallCheck(this,e);this.triggerIdList=[],this.viewIdList=[],this.previousPath="",this.previousView="",this.currentView="",this.currentViewMain="",this.currentParams={},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},t),this.options.onShow&&this.on("show",this.options.onShow),this.options.onHide&&this.on("hide",this.options.onHide),this.init()}return _createClass(e,[{key:"addGroup",value:function(e){var i=this;if(!this.groups[e]){var t=document.querySelectorAll('.websy-view[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){if(void 0!==t){var e={path:"",items:{}},i="";this.currentParams&&this.currentParams.items?(e.items=_extends({},this.currentParams.items,t),i=this.buildUrlPath(e.items)):0<Object.keys(t).length&&(e.items=_extends({},t),i=this.buildUrlPath(e.items)),this.currentParams=e;var n=this.currentView;this.options.urlPrefix&&(n="/".concat(this.options.urlPrefix,"/").concat(n)),history.pushState({inputPath:n},n,"".concat(n,"?").concat(i))}}},{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('.websy-view[data-view="'.concat(t,'"]'));if(e)for(var i=e.querySelectorAll(".websy-view[data-group]"),n=0;n<i.length;n++){var s=i[n].getAttribute("data-group"),o=i[n].getAttribute("data-view");this.groups[s]||this.addGroup(s),-1===this.groups[s].views.indexOf(o)&&this.groups[s].views.push(o)}}},{key:"formatParams",value:function(t){var e={path:t,items:{}};if(void 0!==t){for(var i=t.split("&"),n=0;n<i.length;n++){var s=i[n].split("=");e.items[s[0]]=s[1]}return this.currentParams=e}}},{key:"generateId",value:function(t){for(var e="abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789",i=[],n=0;n<6;n++){var s=Math.floor(62*Math.random());i.push(e[s])}return"".concat(t,"_").concat(i.join(""))}},{key:"getActiveViewsFromParent",value:function(t){var e=[];for(var i in this.checkChildGroups(t),this.groups)this.groups[i].parent===t&&(this.groups[i].activeView?e.push({view:this.groups[i].activeView,group:i}):e.push({view:this.groups[i].views[0],group:i}));return e}},{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=this.formatParams(this.queryParams);""===this.currentPath&&""!==this.options.defaultView?t=this.options.defaultView:""!==this.currentPath&&(t=this.currentPath),void 0!==e&&"?".concat(e.path),this.currentView=t,this.currentViewMain=t,"/"!==this.currentView&&""!==this.currentView||(this.currentView=this.options.defaultView),"/"!==this.currentViewMain&&""!==this.currentViewMain||(this.currentViewMain=this.options.defaultView),""!==t&&this.showView(t,e,"main")}},{key:"handleFocus",value:function(t){this.controlPressed=!1}},{key:"handleKeyDown",value:function(t){switch(t.key){case"Control":case"Meta":this.controlPressed=!0}}},{key:"handleKeyUp",value:function(t){this.controlPressed=!1}},{key:"hideChildren",value:function(t,e){for(var i=this.getActiveViewsFromParent(t),n=0;n<i.length;n++)this.hideTriggerItems(i[n].view,e),this.hideViewItems(i[n].view,e),this.publish("hide",[i[n].view])}},{key:"hideView",value:function(t,e){this.hideChildren(t,e),this.previousView!==this.currentView?(this.hideTriggerItems(t,e),this.hideViewItems(t,e),this.publish("hide",[t])):e!==this.options.defaultGroup&&(this.hideTriggerItems(t,e),this.hideViewItems(t,e),this.publish("hide",[t]))}},{key:"prepComponent",value:function(t,e){var i=document.getElementById("".concat(t,"_content"));if(i)return"";var n="\n <article id='".concat(t,"_content' class='websy-content-article'></article>\n <div id='").concat(t,"_loading' class='websy-loading-container'><div class='websy-ripple'><div></div><div></div></div></div>\n ");e.help&&""!==e.help&&(n+="\n <Help not yet supported>\n "),e.tooltip&&e.tooltip.value&&""!==e.tooltip.value&&(n+='\n <div class="websy-info '.concat(this.options.tooltip.classes.join(" ")||"",'" data-info="').concat(this.options.tooltip.value,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><title>ionicons-v5-e</title><path d="M256,56C145.72,56,56,145.72,56,256s89.72,200,200,200,200-89.72,200-200S366.28,56,256,56Zm0,82a26,26,0,1,1-26,26A26,26,0,0,1,256,138Zm48,226H216a16,16,0,0,1,0-32h28V244H228a16,16,0,0,1,0-32h32a16,16,0,0,1,16,16V332h28a16,16,0,0,1,0,32Z"/></svg>\n </div> \n ')),(i=document.getElementById(t))&&(i.innerHTML=n)}},{key:"showComponents",value:function(t){var e=this;this.options.views&&this.options.views[t]&&this.options.views[t].components&&this.options.views[t].components.forEach(function(t){void 0===t.instance?(e.prepComponent(t.elementId,t.options),t.instance=new t.Component(t.elementId,t.options)):t.instance.render&&t.instance.render()})}},{key:"showView",value:function(t,e,i){this.activateItem(t,this.options.triggerClass),this.activateItem(t,this.options.viewClass);for(var n=this.getActiveViewsFromParent(t),s=0;s<n.length;s++)this.activateItem(n[s].view,this.options.triggerClass),this.activateItem(n[s].view,this.options.viewClass),this.showComponents(n[s].view),this.publish("show",[n[s].view,null,i]);this.previousView===this.currentView&&"main"===i||(this.showComponents(t),this.publish("show",[t,e,i]))}},{key:"reloadCurrentView",value:function(){this.showView(this.currentView,this.currentParams,"main")}},{key:"navigate",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"main",i=2<arguments.length?arguments[2]:void 0,n=3<arguments.length?arguments[3]:void 0;void 0===n&&(n=!1),this.popped=n;var s,o=!1,a=(t.indexOf("?"),t);t===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)):this.currentParams={},!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.currentParams={});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=""),this.previousView=this.currentView,this.previousPath=this.currentPath,this.groups[e]&&(!1===o&&(s=this.groups[e].activeView),this.previousPath=this.groups[e].activeView),e&&this.groups[e]&&e!==this.options.defaultGroup&&(this.groups[e].activeView=a),!1===o&&"main"===e&&(this.currentView=t),"main"===e&&(this.currentViewMain=t),"/"===this.currentView&&(this.currentView=this.options.defaultView),"/"===this.currentViewMain&&(this.currentViewMain=this.options.defaultView),!0===o?""!==this.previousPath&&this.hideView(this.previousPath,e):this.hideView(this.previousView,e),!(!0===o&&a===s||(!1===o?this.showView(this.currentView,this.currentParams,e):a&&""!==a&&this.showView(a,null,e),!0===this.usesHTMLSuffix&&(t=window.location.pathname.split("/").pop()+t),this.currentPath===a&&l===this.currentParams.path||e!==this.options.defaultGroup||!1!==n))){var c=t;this.options.urlPrefix&&(c="/"===c?"":"/".concat(c),t="/"===t?"":"/".concat(t),c="/".concat(this.options.urlPrefix).concat(c).replace(/\/\//g,"/"),t="/".concat(this.options.urlPrefix).concat(t).replace(/\/\//g,"/")),this.currentParams&&this.currentParams.path?c+="?".concat(this.currentParams.path):this.queryParams&&!0===this.options.persistentParameters&&(c+="?".concat(this.queryParams)),history.pushState({inputPath:t},t,c)}}else window.open("".concat(window.location.origin,"/").concat(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:"subscribe",value:function(t,e){this.options.subscribers[t].push(e)}},{key:"hideTriggerItems",value:function(t,e){this.hideItems(this.options.triggerClass,e)}},{key:"hideViewItems",value:function(t,e){this.hideItems(t,e)}},{key:"hideItems",value:function(t,e){var i;if(i=_toConsumableArray(e&&"main"!==e?document.querySelectorAll("[".concat(this.options.groupAttribute,"='").concat(e,"']")):document.querySelectorAll("[".concat(this.options.viewAttribute,"='").concat(t,"']"))))for(var n=0;n<i.length;n++)i[n].classList.remove(this.options.activeClass)}},{key:"activateItem",value:function(t,e){var i=document.getElementsByClassName(e);if(i)for(var n=0;n<i.length;n++)if(i[n].attributes[this.options.viewAttribute]&&i[n].attributes[this.options.viewAttribute].value===t){i[n].classList.add(this.options.activeClass);break}}},{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):""}}]),e}(),WebsySignup=function(){function n(t,e){_classCallCheck(this,n);if(this.elementId=t,this.options=_extends({},{loginType:"email",classes:[],url:"auth/signup"},e),this.options.fields||(this.options.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}]),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:this.options.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(n,[{key:"submitForm",value:function(t,e,i){console.log(t),console.log(e,i)}}]),n}(),Switch=function(){function n(t,e){_classCallCheck(this,n),this.elementId=t;this.options=_extends({},{enabled:!1},e);var i=document.getElementById(this.elementId);i&&(i.addEventListener("click",this.handleClick.bind(this)),this.render())}return _createClass(n,[{key:"disable",value:function(){this.options.enabled=!1,this.render()}},{key:"enable",value:function(){this.options.enabled=!0,this.render()}},{key:"handleClick",value:function(t){this.options.enabled=!this.options.enabled;var e=!0===this.options.enabled?"add":"remove";document.getElementById("".concat(this.elementId,"_switch")).classList[e]("enabled"),this.options.onToggle&&this.options.onToggle(this.options.enabled)}},{key:"on",value:function(t,e){this.options.subscribers[t]||(this.options.subscribers[t]=[]),this.options.subscribers[t].push(e)}},{key:"publish",value:function(t,e){this.options.subscribers[t].forEach(function(t){t.apply(null,e)})}},{key:"render",value:function(){var t=document.getElementById(this.elementId);t&&(t.innerHTML='\n <div class="websy-switch-container">\n <div class="websy-switch-label">'.concat(this.options.label||"",'</div>\n <div id="').concat(this.elementId,'_switch" class="websy-switch ').concat(!0===this.options.enabled?"enabled":"",'"></div> \n </div>\n '))}}]),n}(),WebsyTemplate=function(){function s(t,e){var i=this;_classCallCheck(this,s);if(this.options=_extends({},{listeners:{click:{}}},e),this.elementId=t,this.templateService=new WebsyDesigns.APIService(""),t){var n=document.getElementById(t);n&&n.addEventListener("click",this.handleClick.bind(this)),"object"===_typeof(e.template)&&e.template.url?this.templateService.get(e.template.url).then(function(t){i.options.template=t,i.render()}):this.render()}else console.log("No element Id provided for Websy Template")}return _createClass(s,[{key:"buildHTML",value:function(){var l=this,t="";if(this.options.template){var r=this.options.template;_toConsumableArray(r.matchAll(/<\s*if[^>]*>([\s\S]*?)<\s*\/\s*if>/g)).forEach(function(t){if(t[0]&&-1<t.index){var e=t[0].match(/(\scondition=["|']\w.+)["|']/g);if(e&&e[0]){var i=e[0].trim().replace("condition=","");'"'===i.split("")[0]?i=i.replace(/"/g,""):"'"===i.split("")[0]&&(i=i.replace(/'/g,""));var n=[],s=!0;-1!==i.indexOf("===")?n=i.split("==="):-1!==i.indexOf("!==")?(n=i.split("!=="),s=!1):-1!==i.indexOf("==")?n=i.split("=="):-1!==i.indexOf("!=")&&(n=i.split("!="),s=!1);var o=!0;if(2===n.length&&(isNaN(n[1])||(n[1]=+n[1]),"true"===n[1]&&(n[1]=!0),"false"===n[1]&&(n[1]=!1),"string"==typeof n[1]&&(-1!==n[1].indexOf('"')?n[1]=n[1].replace(/"/g,""):-1!==n[1].indexOf("'")&&(n[1]=n[1].replace(/'/g,""))),!0===s?void 0!==l.options.data[n[0]]&&l.options.data[n[0]]===n[1]?o=!1:n[0]===n[1]&&(o=!1):!1===s&&void 0!==l.options.data[n[0]]&&l.options.data[n[0]]!==n[1]&&(o=!1)),!0===o)r=r.replace(t[0],"");else{var a=t[0];a=a.replace("</if>","").replace(/<\s*if[^>]*>/g,""),r=r.replace(t[0],a)}}}});var e=_toConsumableArray(r.matchAll(/(\sdata-event=["|']\w.+)["|']/g));for(var i in e.forEach(function(t){t[0]&&-1<t.index&&(r=r.replace(t[0],"".concat(t[0])))}),this.options.data){var n=new RegExp("{".concat(i,"}"),"gm");n&&(r=r.replace(n,this.options.data[i]))}t=r}return t}},{key:"handleClick",value:function(t){}},{key:"render",value:function(){this.resize()}},{key:"resize",value:function(){var t=this.buildHTML();document.getElementById(this.elementId).innerHTML=t.replace(/\n/g,""),this.options.readyCallbackFn&&this.options.readyCallbackFn()}}]),s}(),WebsyUtils={createIdentity:function(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:6,e="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=0;n<t;n++)e+=i.charAt(Math.floor(Math.random()*i.length));return e},getElementPos:function(t){var e=t.getBoundingClientRect(),i=window.pageXOffset||document.documentElement.scrollLeft,n=window.pageYOffset||document.documentElement.scrollTop;return{top:e.top+n,left:e.left+i,bottom:e.top+n+t.clientHeight,right:e.left+i+t.clientWidth}},getLightDark:function(t){var e,i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"#000000",n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"#ffffff",s=0,o=0,a=0;return-1!==t.indexOf("#")?(e=(e=t=t.replace("#","")).split(""),s=parseInt(e[0]+e[1],16),o=parseInt(e[2]+e[3],16),a=parseInt(e[4]+e[5],16)):-1!==t.toLowerCase().indexOf("rgb")&&(s=(e=(e=t.replace(/rgb\(/gi,"").replace(/\)/gi,"")).split(","))[0],o=e[1],a=e[2]),186<.299*s+.587*o+.114*a?i:n},measureText:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"12px";isNaN(i)||(i="".concat(i,"px"));var n="<div style='display: inline-block; width: auto; font-size: ".concat(i,"'>").concat(t,"</div>"),s=document.createElement("div");s.style.position="absolute",s.style.visibility="hidden",s.style.transform="rotate(".concat(e,"deg)"),s.innerHTML=n,document.body.appendChild(s);var o=s.getBoundingClientRect();return s.remove(),o},parseUrlParams:function(){for(var t={},e=window.location.search.replace("?","").split("&"),i=0;i<e.length;i++){var n=e[i].split("=");t[n[0]]=n[1]}return t},buildUrlParams:function(t){var e=[];for(var i in t)e.push("".concat(i,"=").concat(t[i]));return e.join("&")},fromQlikDate:function(t){var e=new Date(Math.round(864e5*(t-25569)));return e.setTime(e.getTime()+6e4*e.getTimezoneOffset()),e},toReduced:function(t){var e,i,n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,s=2<arguments.length&&void 0!==arguments[2]&&arguments[2],o=3<arguments.length&&void 0!==arguments[3]&&arguments[3],a=4<arguments.length?arguments[4]:void 0,l=[{divider:1e18,suffix:"E"},{divider:1e15,suffix:"P"},{divider:1e12,suffix:"T"},{divider:1e9,suffix:"G"},{divider:1e6,suffix:"M"},{divider:1e3,suffix:"K"}],r="";if(a){var c=function(t){for(var e="",i=1,n=0;n<l.length;n++)if(t>=l[n].divider){i=l[n].divider,e=l[n].suffix;break}return{divider:i,suffix:e}}(a);i=c.divider,r=c.suffix}if(0===t)e=0;else if(a)e=t/i;else if(t<1e3&&t%1==0)e=t;else{e=t;for(var h=0;h<l.length;h++)if(t>=l[h].divider){e=t/l[h].divider,r=l[h].suffix;break}}if(!0===s&&(e*=100),0<e%1&&(n=1),e<1&&(n=function(t){var e=0;if(0===(t=Math.abs(t)))return 0;for(;t<10;)e++,t*=10;return e}(e)),e=(+e).toFixed(n),!0===o)return e;return e.replace&&(e=e.replace(/\B(?=(\d{3})+(?!\d))/g,",")),"".concat(e).concat(r).concat(!0===s?"%":"")},toQlikDateNum:function(t){return Math.floor(t.getTime()/864e5+25570)}},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=[];var n=document.getElementById(this.elementId);if(n){var s="\n <div id='".concat(this.elementId,"_tableContainer' class='websy-vis-table ").concat("pages"===this.options.paging?"with-paging":"",'\'>\n \x3c!--<div class="download-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11h5l-9 10-9-10h5v-11h8v11zm1 11h-10v2h10v-2z"/></svg>\n </div>--\x3e\n <table>\n <thead id="').concat(this.elementId,'_head">\n </thead>\n <tbody id="').concat(this.elementId,'_body">\n </tbody>\n <tfoot id="').concat(this.elementId,'_foot">\n </tfoot>\n </table> \n <div id="').concat(this.elementId,"_errorContainer\" class='websy-vis-error-container'>\n <div>\n <div id=\"").concat(this.elementId,'_errorTitle"></div>\n <div id="').concat(this.elementId,'_errorMessage"></div>\n </div> \n </div>\n <div id="').concat(this.elementId,'_loadingContainer"></div>\n </div>\n ');"pages"===this.options.paging&&(s+='\n <div class="websy-table-paging-container">\n Show <div id="'.concat(this.elementId,'_pageSizeSelector" class="websy-vis-page-selector"></div> rows\n <ul id="').concat(this.elementId,'_pageList" class="websy-vis-page-list"></ul>\n </div>\n '));var o=[10,20,50,100,200];n.innerHTML=s,"pages"===this.options.paging&&(this.pageSizeSelector=new WebsyDesigns.Dropdown("".concat(this.elementId,"_pageSizeSelector"),{selectedItems:[o.indexOf(this.options.pageSize)],items:o.map(function(t){return{label:t.toString(),value:t}}),allowClear:!1,disableSearch:!0,onItemSelected:function(t){i.options.onChangePageSize&&i.options.onChangePageSize(t.value)}})),n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mouseout",this.handleMouseOut.bind(this)),n.addEventListener("mousemove",this.handleMouseMove.bind(this)),document.getElementById("".concat(this.elementId,"_tableContainer")).addEventListener("scroll",this.handleScroll.bind(this)),this.loadingDialog=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loadingContainer")),this.render()}else console.error("No element found with ID ".concat(this.elementId))}return _createClass(a,[{key:"appendRows",value:function(t){var o=this;this.hideError();var e="";t&&(e+=t.map(function(t,s){return"<tr>"+t.map(function(t,e){if(!1!==o.options.columns[e].show){var i="";if(t.style&&(i+=t.style),o.options.columns[e].width&&(i+="width: ".concat(o.options.columns[e].width,"; ")),t.backgroundColor&&(i+="background-color: ".concat(t.backgroundColor,"; "),t.color||(i+="color: ".concat(WebsyDesigns.Utils.getLightDark(t.backgroundColor),"; "))),t.color&&(i+="color: ".concat(t.color,"; ")),!0===o.options.columns[e].showAsLink&&""!==t.value.trim())return"\n <td \n data-row-index='".concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >\n <a href='").concat(t.value,"' target='").concat(!0===o.options.columns[e].openInNewTab?"_blank":"_self","'>").concat(t.displayText||o.options.columns[e].linkText||t.value,"</a>\n </td>\n ");if(!0!==o.options.columns[e].showAsNavigatorLink&&!0!==o.options.columns[e].showAsRouterLink||""===t.value.trim()){var n=t.value;return!0===o.options.columns[e].showAsImage&&(t.value="\n <img src='".concat(t.value,"'>\n ")),"\n <td \n data-info='".concat(n,"' \n data-row-index='").concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.value,"</td>\n ")}return"\n <td \n data-view='".concat(t.value,"' \n data-row-index='").concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='websy-trigger trigger-item ").concat(!0===o.options.columns[e].clickable?"clickable":""," ").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.displayText||o.options.columns[e].linkText||t.value,"</td>\n ")}}).join("")+"</tr>"}).join(""),this.data=this.data.concat(t),this.rowCount=this.data.length),document.getElementById("".concat(this.elementId,"_body")).innerHTML+=e}},{key:"buildSearchIcon",value:function(t){return'\n <div>\n <svg\n class="tableSearchIcon"\n data-field="'.concat(t,'"\n xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"\n >\n <path d="M0 0h24v24H0z" fill="none"/>\n <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>\n </svg>\n </div>\n ')}},{key:"handleClick",value:function(t){if(t.target.classList.contains("download-button")&&window.viewManager.dataExportController.exportData(this.options.model),t.target.classList.contains("sortable-column")){var e=+t.target.getAttribute("data-index"),i=this.options.columns[e];this.options.onSort?this.options.onSort(t,i,e):this.internalSort(i,e)}else if(t.target.classList.contains("tableSearchIcon")){var n=t.target.getAttribute("data-field");window.viewManager.views.global.objects[1].instance.show(n,{x:t.pageX,y:t.pageY},function(){t.target.classList.remove("active")})}else if(t.target.classList.contains("websy-page-num")){var s=+t.target.getAttribute("data-page");this.options.onSetPage&&this.options.onSetPage(s)}else{var o=+t.target.getAttribute("data-col-index"),a=+t.target.getAttribute("data-row-index");this.options.onClick&&this.options.onClick(t,{cell:this.data[a][o],row:this.data[a],column:this.options.columns[o],colIndex:o,rowIndex:a})}}},{key:"handleMouseMove",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn)),"TD"===t.target.tagName&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.classList.add("websy-delayed-info")},500))}},{key:"handleMouseOut",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn))}},{key:"handleScroll",value:function(t){this.options.onScroll&&"scroll"===this.options.paging&&this.options.onScroll(t)}},{key:"hideError",value:function(){var t=document.getElementById("".concat(this.elementId,"_errorContainer"));t&&t.classList.remove("active")}},{key:"hideLoading",value:function(){this.loadingDialog.hide()}},{key:"internalSort",value:function(t,i){if(this.options.columns.forEach(function(t,e){t.activeSort=e===i}),t.sortFunction)this.data=t.sortFunction(this.data,t);else{var n="value",s="asc"===t.sort?"desc":"asc";t.sort=s;var o=t.sortType||"alphanumeric";t.sortProp&&(n=t.sortProp),this.data.sort(function(t,e){switch(o){case"numeric":return"asc"===s?t[i][n]-e[i][n]:e[i][n]-t[i][n];default:return"asc"===s?t[i][n]>e[i][n]?1:-1:t[i][n]<e[i][n]?1:-1}})}this.render(this.data)}},{key:"render",value:function(t){var i=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 n="<tr>"+this.options.columns.map(function(t,e){if(!1!==t.show)return"\n <th ".concat(t.width?'style="width: '+(t.width||"auto")+';"':"",'>\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?i.buildSearchIcon(t.qGroupFieldDefs[0]):"","--\x3e\n </div>\n </th>\n ")}).join("")+"</tr>";if(document.getElementById("".concat(this.elementId,"_head")).innerHTML=n,"pages"===this.options.paging){var s=document.getElementById("".concat(this.elementId,"_pageList"));if(s){var o=new Array(this.options.pageCount).fill("").map(function(t,e){return'<li data-page="'.concat(e,'" class="websy-page-num ').concat(i.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 </li><li data-page="0" class="websy-page-num">First</li><li>...</li>'):o.splice(0,0,"<li>Page </li>"),this.options.pageNum<this.options.pageCount-1&&(o.push("<li>...</li>"),o.push('<li data-page="'.concat(this.options.pageCount-1,'" class="websy-page-num">Last</li>')))),s.innerHTML=o.join("")}}t&&this.appendRows(t)}}},{key:"showError",value:function(t){var e=document.getElementById("".concat(this.elementId,"_errorContainer"));if(e&&e.classList.add("active"),t.title){var i=document.getElementById("".concat(this.elementId,"_errorTitle"));i&&(i.innerHTML=t.title)}if(t.message){var n=document.getElementById("".concat(this.elementId,"_errorTitle"));n&&(n.innerHTML=t.message)}}},{key:"showLoading",value:function(t){this.loadingDialog.show(t)}}]),a}(),WebsyTable2=function(){function a(t,e){var i=this;_classCallCheck(this,a);this.elementId=t,this.options=_extends({},{pageSize:20,paging:"scroll",cellSize:35,virtualScroll:!1,leftColumns:0},e),this.rowCount=0,this.busy=!1,this.tooltipTimeoutFn=null,this.data=[];var n=document.getElementById(this.elementId);if(n){var s="\n <div id='".concat(this.elementId,"_tableContainer' class='websy-vis-table ").concat("pages"===this.options.paging?"with-paging":""," ").concat(!0===this.options.virtualScroll?"with-virtual-scroll":"",'\'>\n \x3c!--<div class="download-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11h5l-9 10-9-10h5v-11h8v11zm1 11h-10v2h10v-2z"/></svg>\n </div>--\x3e\n <table id="').concat(this.elementId,'_table"> \n <thead id="').concat(this.elementId,'_head">\n </thead>\n <tbody id="').concat(this.elementId,'_body">\n </tbody>\n <tfoot id="').concat(this.elementId,'_foot">\n </tfoot>\n </table> \n <div id="').concat(this.elementId,"_errorContainer\" class='websy-vis-error-container'>\n <div>\n <div id=\"").concat(this.elementId,'_errorTitle"></div>\n <div id="').concat(this.elementId,'_errorMessage"></div>\n </div> \n </div>\n <div id="').concat(this.elementId,'_vScrollContainer" class="websy-v-scroll-container">\n <div id="').concat(this.elementId,'_vScrollHandle" class="websy-scroll-handle websy-scroll-handle-y"></div>\n </div>\n <div id="').concat(this.elementId,'_hScrollContainer" class="websy-h-scroll-container">\n <div id="').concat(this.elementId,'_hScrollHandle" class="websy-scroll-handle websy-scroll-handle-x"></div>\n </div>\n <div id="').concat(this.elementId,'_dropdownContainer"></div>\n <div id="').concat(this.elementId,'_loadingContainer"></div>\n </div>\n ');"pages"===this.options.paging&&(s+='\n <div class="websy-table-paging-container">\n Show <div id="'.concat(this.elementId,'_pageSizeSelector" class="websy-vis-page-selector"></div> rows\n <ul id="').concat(this.elementId,'_pageList" class="websy-vis-page-list"></ul>\n </div>\n '));var o=[10,20,50,100,200];n.innerHTML=s,"pages"===this.options.paging&&(this.pageSizeSelector=new WebsyDesigns.Dropdown("".concat(this.elementId,"_pageSizeSelector"),{selectedItems:[o.indexOf(this.options.pageSize)],items:o.map(function(t){return{label:t.toString(),value:t}}),allowClear:!1,disableSearch:!0,onItemSelected:function(t){i.options.onChangePageSize&&i.options.onChangePageSize(t.value)}})),n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mouseout",this.handleMouseOut.bind(this)),n.addEventListener("mousemove",this.handleMouseMove.bind(this)),n.addEventListener("mousedown",this.handleMouseDown.bind(this)),n.addEventListener("mouseup",this.handleMouseUp.bind(this)),document.addEventListener("mouseup",this.handleGlobalMouseUp.bind(this)),document.getElementById("".concat(this.elementId,"_tableContainer")).addEventListener("scroll",this.handleScroll.bind(this)),this.loadingDialog=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loadingContainer")),this.render()}else console.error("No element found with ID ".concat(this.elementId))}return _createClass(a,[{key:"appendRows",value:function(t){var o=this;this.hideError();var e=document.getElementById("".concat(this.elementId,"_body")),i="";if(t&&(i+=t.map(function(t,s){return"<tr>"+t.map(function(t,e){if(!1!==o.options.columns[e].show){var i="height: ".concat(o.options.cellSize,"px; line-height: ").concat(o.options.cellSize,"px;");if(t.style&&(i+=t.style),o.options.columns[e].width&&(i+="width: ".concat(o.options.columns[e].width,"; ")),t.backgroundColor&&(i+="background-color: ".concat(t.backgroundColor,"; "),t.color||(i+="color: ".concat(WebsyDesigns.Utils.getLightDark(t.backgroundColor),"; "))),t.color&&(i+="color: ".concat(t.color,"; ")),!0===o.options.columns[e].showAsLink&&""!==t.value.trim())return"\n <td \n data-row-index='".concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >\n <a href='").concat(t.value,"' target='").concat(!0===o.options.columns[e].openInNewTab?"_blank":"_self","'>").concat(t.displayText||o.options.columns[e].linkText||t.value,"</a>\n </td>\n ");if(!0!==o.options.columns[e].showAsNavigatorLink&&!0!==o.options.columns[e].showAsRouterLink||""===t.value.trim()){var n=t.value;return!0===o.options.columns[e].showAsImage&&(t.value="\n <img src='".concat(t.value,"'>\n ")),"\n <td \n data-info='".concat(n,"' \n data-row-index='").concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.value,"</td>\n ")}return"\n <td \n data-view='".concat(t.value,"' \n data-row-index='").concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='websy-trigger trigger-item ").concat(!0===o.options.columns[e].clickable?"clickable":""," ").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.displayText||o.options.columns[e].linkText||t.value,"</td>\n ")}}).join("")+"</tr>"}).join(""),this.data=this.data.concat(t),this.rowCount=this.data.length),e.innerHTML+=i,!0===this.options.virtualScroll){if("pages"!==this.options.paging){var n=document.getElementById("".concat(this.elementId,"_head"));document.getElementById("".concat(this.elementId,"_vScrollContainer")).style.top="".concat(n.clientHeight,"px")}for(var s=document.getElementById("".concat(this.elementId,"_hScrollContainer")),a=0,l=e.querySelectorAll("tr:first-of-type td"),r=0;r<this.options.leftColumns;r++)a+=l[r].offsetWidth||l[r].clientWidth;s.style.left="".concat(a,"px")}}},{key:"buildSearchIcon",value:function(t){return'\n <div class="websy-table-search-icon" data-col-index="'.concat(t,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><title>ionicons-v5-f</title><path d="M221.09,64A157.09,157.09,0,1,0,378.18,221.09,157.1,157.1,0,0,0,221.09,64Z" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/><line x1="338.29" y1="338.29" x2="448" y2="448" style="fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"/></svg>\n </div>\n ')}},{key:"handleClick",value:function(t){if(t.target.classList.contains("download-button")&&window.viewManager.dataExportController.exportData(this.options.model),t.target.classList.contains("sortable-column")){var e=+t.target.getAttribute("data-index"),i=+t.target.getAttribute("data-sort-index"),n=this.options.columns[e];this.options.onSort?this.options.onSort(t,n,e,i):this.internalSort(n,e)}else if(t.target.classList.contains("websy-table-search-icon")){var s=+t.target.getAttribute("data-col-index");this.options.columns[s].onSearch&&this.options.columns[s].onSearch(t,this.options.columns[s])}else if(t.target.classList.contains("clickable")){var o=+t.target.getAttribute("data-col-index"),a=+t.target.getAttribute("data-row-index");this.options.onClick&&this.options.onClick(t,this.data[a][o],this.data[a],this.options.columns[o])}else if(t.target.classList.contains("websy-page-num")){var l=+t.target.getAttribute("data-page");this.options.onSetPage&&this.options.onSetPage(l)}else if(t.target.classList.contains("websy-h-scroll-container")){console.log("scroll handle clicked",t);var r=t.clientX,c=t.target.getBoundingClientRect().left,h=document.getElementById("".concat(this.elementId,"_hScrollHandle")),d=r-c-h.clientWidth/2;d=Math.max(0,Math.min(d,t.target.clientWidth-h.clientWidth)),h.style.left="".concat(d,"px"),this.options.onScrollX&&this.options.onScrollX(d)}}},{key:"handleMouseDown",value:function(t){t.target.classList.contains("websy-scroll-handle")&&(this.scrolling=!0,document.getElementById(this.elementId).classList.add("scrolling"));if(t.target.classList.contains("websy-scroll-handle-x")){var e=document.getElementById("".concat(this.elementId,"_hScrollHandle"));this.handleXStart=e.offsetLeft,this.scrollXStart=t.clientX,this.scrollDirection="X"}}},{key:"handleGlobalMouseUp",value:function(t){this.scrolling=!1;var e=document.getElementById(this.elementId);e&&e.classList.remove("scrolling")}},{key:"handleMouseUp",value:function(t){this.scrolling=!1,document.getElementById(this.elementId).classList.remove("scrolling")}},{key:"handleMouseMove",value:function(t){if(this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn)),"TD"===t.target.tagName&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.classList.add("websy-delayed-info")},500)),!0===this.scrolling&&!0===this.options.virtualScroll){document.getElementById("".concat(this.elementId,"_tableContainer"));if("X"===this.scrollDirection){var e=document.getElementById("".concat(this.elementId,"_hScrollHandle")),i=0;i=this.handleXStart+(t.clientX-this.scrollXStart)<this.columnParameters.scrollableWidth-e.offsetWidth?(e.style.left="".concat(this.handleXStart+(t.clientX-this.scrollXStart),"px"),this.handleXStart+(t.clientX-this.scrollXStart)):this.columnParameters.scrollableWidth-e.offsetWidth,this.handleXStart+(t.clientX-this.scrollXStart)<0&&(i=e.style.left=0),this.options.onScrollX&&this.options.onScrollX(i)}}}},{key:"handleMouseOut",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn))}},{key:"handleScroll",value:function(t){this.options.onScroll&&"scroll"===this.options.paging&&this.options.onScroll(t)}},{key:"hideError",value:function(){var t=document.getElementById("".concat(this.elementId,"_tableContainer"));t&&t.classList.remove("has-error"),document.getElementById("".concat(this.elementId,"_table")).classList.remove("hidden");var e=document.getElementById("".concat(this.elementId,"_errorContainer"));e&&e.classList.remove("active")}},{key:"hideLoading",value:function(){this.loadingDialog.hide()}},{key:"internalSort",value:function(t,i){if(this.options.columns.forEach(function(t,e){t.activeSort=e===i}),t.sortFunction)this.data=t.sortFunction(this.data,t);else{var n="value",s="asc"===t.sort?"desc":"asc";t.sort=s;var o=t.sortType||"alphanumeric";t.sortProp&&(n=t.sortProp),this.data.sort(function(t,e){switch(o){case"numeric":return"asc"===s?t[i][n]-e[i][n]:e[i][n]-t[i][n];default:return"asc"===s?t[i][n]>e[i][n]?1:-1:t[i][n]<e[i][n]?1:-1}})}this.render(this.data)}},{key:"render",value:function(t){var n=this;if(this.options.columns){if(this.hideError(),this.data=[],this.rowCount=0,!(document.getElementById("".concat(this.elementId,"_body")).innerHTML="")===this.options.allowDownload){var e=document.getElementById(this.elementId);e?e.classList.add("allow-download"):e.classList.remove("allow-download")}var i="<tr>"+this.options.columns.map(function(t,e){if(!1!==t.show){var i="";return t.style&&(i+=t.style),t.width&&(i+="width: ".concat(t.width||"auto","; ")),'\n <th style="'.concat(i,'">\n <div class ="tableHeader">\n <div class="leftSection">\n <div\n class="tableHeaderField ').concat(-1!==["asc","desc"].indexOf(t.sort)?"sortable-column":"",'"\n data-sort-index="').concat(t.sortIndex||e,'"\n data-index="').concat(e,'"\n data-sort="').concat(t.sort,'" \n >\n ').concat(t.name,'\n </div>\n </div>\n <div class="').concat(t.activeSort?t.sort+" sortOrder":"",'"></div>\n ').concat(!0===t.searchable?n.buildSearchIcon(e):"","\n </div>\n </th>\n ")}}).join("")+"</tr>";document.getElementById("".concat(this.elementId,"_head")).innerHTML=i;var s=document.getElementById("".concat(this.elementId,"_dropdownContainer"));if(""===s.innerHTML){var o="";this.options.columns.forEach(function(t,e){t.searchable&&t.searchField&&(o+='\n <div id="'.concat(n.elementId,"_columnSearch_").concat(e,'" class="websy-modal-dropdown"></div>\n '))}),s.innerHTML=o}if("pages"===this.options.paging){var a=document.getElementById("".concat(this.elementId,"_pageList"));if(a){var l=new Array(this.options.pageCount).fill("").map(function(t,e){return'<li data-page="'.concat(e,'" class="websy-page-num ').concat(n.options.pageNum===e?"active":"",'">').concat(e+1,"</li>")}),r=0;8<this.options.pageCount&&(r=Math.max(0,this.options.pageNum-4),l=l.splice(r,10),0<r?l.splice(0,0,'<li>Page </li><li data-page="0" class="websy-page-num">First</li><li>...</li>'):l.splice(0,0,"<li>Page </li>"),this.options.pageNum<this.options.pageCount-1&&(l.push("<li>...</li>"),l.push('<li data-page="'.concat(this.options.pageCount-1,'" class="websy-page-num">Last</li>')))),a.innerHTML=l.join("")}}t&&this.appendRows(t)}}},{key:"showError",value:function(t){var e=document.getElementById("".concat(this.elementId,"_tableContainer"));e&&e.classList.add("has-error"),document.getElementById("".concat(this.elementId,"_table")).classList.add("hidden");var i=document.getElementById("".concat(this.elementId,"_errorContainer"));if(i&&i.classList.add("active"),t.title){var n=document.getElementById("".concat(this.elementId,"_errorTitle"));n&&(n.innerHTML=t.title)}if(t.message){var s=document.getElementById("".concat(this.elementId,"_errorMessage"));s&&(s.innerHTML=t.message)}}},{key:"setHorizontalScroll",value:function(t){var e=document.getElementById("".concat(this.elementId,"_hScrollHandle"));t.width&&(e.style.width="".concat(t.width,"px"))}},{key:"setWidth",value:function(t){var e=document.getElementById("".concat(this.elementId,"_table"));e&&(e.style.width="".concat(t,"px"))}},{key:"showLoading",value:function(t){this.loadingDialog.show(t)}},{key:"getColumnParameters",value:function(t){var i=this,e=document.getElementById("".concat(this.elementId,"_table"));e.style.tableLayout="auto",e.style.width="auto";var n=document.getElementById("".concat(this.elementId,"_head")),s=document.getElementById("".concat(this.elementId,"_body"));n.innerHTML='<tr style="visibility: hidden;">'+t.map(function(t,e){return'\n <th>\n <div class ="tableHeader">\n <div class="leftSection">\n <div\n class="tableHeaderField" \n >\n '.concat(t.value||"nbsp;","\n </div>\n </div> \n ").concat(!0===t.searchable?i.buildSearchIcon(e):"","\n </div>\n </th>\n ")}).join("")+"</tr>",s.innerHTML='<tr style="visibility: hidden;">'+t.map(function(t){return"\n <td \n style='height: ".concat(i.options.cellSize,"px; line-height: ").concat(i.options.cellSize,"px; padding: 10px 5px;'\n >").concat(t.value||" ","</td>\n ")}).join("")+"</tr>";for(var o=s.querySelectorAll("tr:first-of-type td"),a=document.getElementById("".concat(this.elementId,"_tableContainer")),l=o[0].offsetHeight||o[0].clientHeight,r=[],c=0,h=0,d=0;d<o.length;d++)d<this.options.leftColumns&&(h+=t[d].width||o[d].offsetWidth||o[d].clientWidth),r.push(t[d].width||o[d].offsetWidth||o[d].clientWidth),c+=t[d].width||o[d].offsetWidth||o[d].clientWidth;if(c<(a.offsetWidth||a.clientWidth)-h)for(var p=this.options.leftColumns;p<r.length;p++)r[p]=((a.offsetWidth||a.clientWidth)-h)/(r.length-this.options.leftColumns);return this.columnParameters={cellHeight:l,cellWidths:r,availableHeight:a.offsetHeight||a.clientHeight,availableWidth:a.offsetWidth||a.clientWidth,nonScrollableWidth:h,scrollableWidth:(a.offsetWidth||a.clientWidth)-h},s.innerHTML="",e.style.tableLayout="",e.style.width="",this.columnParameters}}]),a}(),WebsyChart=function(){function n(t,e){var r=this;_classCallCheck(this,n);if(this.elementId=t,this.options=_extends({},{margin:{top:10,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,fontSize:14,symbolSize:20,showTrackingLine:!0,showTooltip:!0,showLegend:!1,legendPosition:"bottom",tooltipWidth:200},e),this.leftAxis=null,this.rightAxis=null,this.topAxis=null,this.bottomAxis=null,t){this.invertOverride=function(t,e){var i="bottomAxis";"horizontal"===r.options.orientation&&(i="leftAxis");var n,s=r[i].step(),o=_toConsumableArray(r[i].domain());"horizontal"===r.options.orientation&&(o=o.reverse());for(var a=0;a<o.length;a++){var l=r[i](o[a])-s/2;if(l<t&&t<=l+s){n=a;break}}return n};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.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:"close",value:function(){this.leftAxisLayer.selectAll("*").remove(),this.rightAxisLayer.selectAll("*").remove(),this.bottomAxisLayer.selectAll("*").remove(),this.leftAxisLabel.selectAll("*").remove(),this.rightAxisLabel.selectAll("*").remove(),this.bottomAxisLabel.selectAll("*").remove(),this.plotArea.selectAll("*").remove(),this.areaLayer.selectAll("*").remove(),this.lineLayer.selectAll("*").remove(),this.barLayer.selectAll("*").remove(),this.labelLayer.selectAll("*").remove(),this.symbolLayer.selectAll("*").remove()}},{key:"createDomain",value:function(t){var e=[];if(void 0!==this.options.data[t].min&&void 0!==this.options.data[t].max&&(e=[this.options.data[t].min,this.options.data[t].max],!0===this.options.forceZero&&(e=[Math.min(0,this.options.data[t].min),this.options.data[t].max])),this.options.data[t].data&&(e=this.options.data[t].data.map(function(t){return t.value})),"Time"===this.options.data[t].scale){var i=this.options.data[t].data[0].value,n=this.options.data[t].data[this.options.data[t].data.length-1].value;e=[i=this.parseX(i),n=this.parseX(n)]}return e}},{key:"createIdentity",value:function(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:10,e="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=0;n<t;n++)e+=i.charAt(Math.floor(Math.random()*i.length));return e}},{key:"handleEventMouseOut",value:function(t,e){this.trackingLineLayer.select(".tracking-line").attr("stroke-opacity",0),this.tooltip.hide()}},{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 void this.tooltip.hide();var f=this[d].domain()[u];"horizontal"===this.options.orientation&&(f=_toConsumableArray(this[d].domain().reverse())[u]),this.options.data.series.forEach(function(e){if("Time"!==r.options.data[p].scale)h=r[d](r.parseX(f)),e.data.forEach(function(t){t.x.value===f&&(m||(m=t.x.value),t.y.color||(t.y.color=e.color),g.push(t.y))});else{var t=c(e.data,u,1),i=e.data[t-1],n=e.data[t];if("horizontal"===r.options.orientation&&(i=_toConsumableArray(e.data).reverse()[t-1],n=_toConsumableArray(e.data).reverse()[t]),i&&!n&&(h=r[d](r.parseX(i.x.value)),m=i.x.value,i.y.color||(i.y.color=e.color),g.push(i.y),void 0!==i.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(i.x.value))),n&&!i&&(h=r[d](r.parseX(n.x.value)),m=n.x.value,n.y.color||(n.y.color=e.color),g.push(n.y),void 0!==n.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(n.x.value))),i&&n){var s=r[d](r.parseX(i.x.value)),o=r[d](r.parseX(n.x.value)),a=Math.abs(s-o)/2;d3.pointer(l)[0]-s>=a?(h=o,m=n.x.value,void 0!==n.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(n.x.value)),n.y.color||(n.y.color=e.color),g.push(n.y)):(h=s,m=i.x.value,void 0!==n.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(n.x.value)),i.y.color||(i.y.color=e.color),g.push(i.y))}}}),e=" \n <ul>\n ",e+=g.map(function(t){return"\n <li>\n <i style='background-color: ".concat(t.color,";'></i>\n ").concat(t.tooltipLabel||"","<span> - ").concat(t.tooltipValue||t.value,"</span>\n </li>\n ")}).join(""),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:i.left=h+this.options.margin.left+this.options.margin.axisLeft+15,i.top=this.options.margin.top+this.options.margin.axisTop,"horizontal"===this.options.orientation){delete i.onLeft;var n=0;"Time"!==this.options.data[p].scale&&(n=this[d].bandwidth()/2),i={width:this.options.tooltipWidth,left:this.options.margin.left+this.options.margin.axisLeft+this.plotWidth-this.options.tooltipWidth,onTop:h>this.plotHeight/2,positioning:"vertical"},h>this.plotHeight/2?i.bottom=h+this.options.margin.top+this.options.margin.axisTop:i.top=h+this.options.margin.top+this.options.margin.axisTop+15+n}this.tooltip.setHeight(this.plotHeight),this.options.showTooltip&&this.tooltip.show(m,e,i),"Time"!==this.options.data[p].scale&&(h+=this[d].bandwidth()/2);var s=h,o=h,a=0,v=this.plotHeight;"horizontal"===this.options.orientation&&(s=0,o=this.plotWidth,v=a=h),this.trackingLineLayer.select(".tracking-line").attr("x1",s).attr("x2",o).attr("y1",a).attr("y2",v).attr("stroke-width",1).attr("stroke-dasharray","4 2").attr("stroke","#cccccc").attr("stroke-opacity",1)}}},{key:"prep",value:function(){this.leftAxisLayer=this.svg.append("g").attr("class","left-axis-layer"),this.rightAxisLayer=this.svg.append("g").attr("class","right-axis-layer"),this.bottomAxisLayer=this.svg.append("g").attr("class","bottom-axis-layer"),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"),this.areaLayer=this.svg.append("g").attr("class","area-layer"),this.lineLayer=this.svg.append("g").attr("class","line-layer"),this.barLayer=this.svg.append("g").attr("class","bar-layer"),this.labelLayer=this.svg.append("g").attr("class","label-layer"),this.symbolLayer=this.svg.append("g").attr("class","symbol-layer"),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.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 i=this;if(void 0!==t&&(this.options=_extends({},this.options,t)),this.options.data){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.attr("class","y-axis"),this.rightAxisLayer.attr("class","y-axis"),this.bottomAxisLayer.attr("class","x-axis")):(this.leftAxisLayer.attr("class","x-axis"),this.rightAxisLayer.attr("class","x-axis"),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 n=this.options.data.series.map(function(t,e){return{value:t.label||t.key,color:t.color||i.options.colors[e%i.options.colors.length]}});"top"!==this.options.legendPosition&&"bottom"!==this.options.legendPosition||this.legendArea.style("width","100%"),"left"!==this.options.legendPosition&&"right"!==this.options.legendPosition||(this.legendArea.style("height","100%"),this.legendArea.style("width",this.legend.testWidth(d3.max(n.map(function(t){return t.value})))+"px")),this.legend.data=n;var s=this.legend.getSize();this.options.margin.legendTop=0,this.options.margin.legendBottom=0,this.options.margin.legendLeft=0,this.options.margin.legendRight=0,"top"===this.options.legendPosition&&(this.options.margin.legendTop=s.height,this.legendArea.style("top","0").style("bottom","unset")),"bottom"===this.options.legendPosition&&(this.options.margin.legendBottom=s.height,this.legendArea.style("top","unset").style("bottom","0")),"left"===this.options.legendPosition&&(this.options.margin.legendLeft=s.width,this.legendArea.style("left","0").style("right","unset").style("top","0")),"right"===this.options.legendPosition&&(this.options.margin.legendRight=s.width,this.legendArea.style("left","unset").style("right","0").style("top","0"))}this.svg.attr("width",this.width-this.options.margin.legendLeft-this.options.margin.legendRight).attr("height",this.height-this.options.margin.legendTop-this.options.margin.legendBottom).attr("transform","translate(".concat(this.options.margin.legendLeft,", ").concat(this.options.margin.legendTop,")")),this.longestLeft=0,this.longestRight=0,this.longestBottom=0,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.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.toString(),this.options.data.right.formatter&&(this.longestRight=this.options.data.right.formatter(this.options.data.right.max).toString()));var o=WebsyUtils.measureText(this.longestLeft,0,this.options.data.left&&this.options.data.left.fontSize||this.options.fontSize),a=WebsyUtils.measureText(this.longestRight,0,this.options.data.right&&this.options.data.right.fontSize||this.options.fontSize),l=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);this.options.margin.axisLeft=o.width,this.options.margin.axisRight=a.width,this.options.margin.axisBottom=l.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,l.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,l.width):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,l.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,this.leftAxisLayer.attr("transform","translate(".concat(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(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(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(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,")"));this.eventLayer.attr("x",0).attr("y",0).attr("width",this.plotWidth).attr("height",this.plotHeight).attr("fill-opacity","0");var r=this.createDomain("bottom");if(this.bottomAxis=d3["scale".concat(this.options.data.bottom.scale||"Band")]().domain(r).range([0,this.plotWidth]),this.bottomAxis.nice,this.bottomAxis.padding&&this.options.data.bottom.padding&&this.bottomAxis.padding(this.options.data.bottom.padding||0),0<this.options.margin.axisBottom){var c,h="";if(this.options.data.bottom.data)if("Time"===this.options.data.bottom.scale){var d=this.options.data.bottom.max.getTime()-this.options.data.bottom.min.getTime(),p=864e5;h=d<6e5?(c=d3.timeSecond.every(15),"%H:%M:%S"):d<36e5?(c=d3.timeMinute.every(1),"%H:%M"):d<p/6?(c=d3.timeMinute.every(10),"%H:%M"):d<p/2?(c=d3.timeMinute.every(30),"%H:%M"):d<p?(c=d3.timeHour.every(1),"%H:%M"):d<7*p?(c=d3.timeDay.every(1),"%d %b @ %H:%M"):d<14*p?(c=d3.timeDay.every(2),"%d %b %Y"):d<21*p?(c=d3.timeDay.every(3),"%d %b %Y"):d<28*p?(c=d3.timeDay.every(4),"%d %b %Y"):d<60*p?(c=d3.timeDay.every(7),"%d %b %Y"):(c=d3.timeMonth.every(1),"%b %Y")}else c=this.options.data.bottom.ticks||Math.min(this.options.data.bottom.data.length,5);else c=this.options.data.bottom.ticks||5;this.options.calculatedTimeFormatPattern=h;var u=d3.axisBottom(this.bottomAxis).ticks(c);this.options.data.bottom.formatter&&u.tickFormat(function(t){return i.options.data.bottom.formatter(t)}),this.bottomAxisLayer.call(u),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"))}var m=this.createDomain("left"),g=this.createDomain("right");if(this.leftAxis=d3["scale".concat(this.options.data.left.scale||"Linear")]().domain(m).range([this.plotHeight,0]),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 i.options.data.left.formatter&&(t=i.options.data.left.formatter(t)),t})),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 f=this.leftAxisLabel.append("text").attr("class","title").attr("x",1-this.plotHeight/2).attr("y",5).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<g.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-f.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<g.length&&(this.rightAxis=d3["scale".concat(this.options.data.right.scale||"Linear")]().domain(g).range([this.plotHeight,0]),this.rightAxis.nice&&this.rightAxis.nice(),console.log("axis right",this.options.margin.axisRight),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.left.ticks||5).tickFormat(function(t){return i.options.data.right.formatter&&(t=i.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<g.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)}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)})}}else;}},{key:"renderarea",value:function(e,t){var n=this,i=function(e,i,t){return d3.area().x(function(t){return n[e](n.parseX(t.x.value))}).y0(function(t){return n[i](0)}).y1(function(t){return n[i](isNaN(t.y.value)?0:t.y.value)}).curve(d3[t||n.options.curveStyle])},s="bottomAxis",o="secondary"===e.axis?"rightAxis":"leftAxis";"horizontal"===this.options.orienation&&(s="secondary"===e.axis?"rightAxis":"leftAxis",o="bottomAxis");var a=this.areaLayer.selectAll(".area_".concat(e.key)).data([e.data]);a.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),a.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",e.color).attr("stroke","transparent").style("fill-opacity",e.opacity||.5)}},{key:"renderbar",value:function(e,t){var i="bottomAxis",n="leftAxis",s=this.barLayer.selectAll(".bar_".concat(e.key)).data(e.data),o=new Array(this.options.data.series.length).fill(0);"horizontal"===this.options.orientation&&(i="leftAxis",n="bottomAxis");var a=this[i].bandwidth();function l(t,e){return"horizontal"===this.options.orientation?a:this[n](t.y.value)}function r(t,e){if("horizontal"!==this.options.orientation)return a;var i=this[n](t.y.value);return o[t.y.index]+=i,i}function c(t,e){return"horizontal"===this.options.orientation?"stacked"===this.options.grouping?this[n](t.y.accumulative):0:"grouped"!==this.options.grouping?this[i](this.parseX(t.x.value)):this[i](this.parseX(t.x.value))+e*a}function h(t,e){return"horizontal"===this.options.orientation?"grouped"!==this.options.grouping?this[i](this.parseX(t.x.value)):this[i](this.parseX(t.x.value))+(t.y.index||e)*a:"stacked"===this.options.grouping?this[n](t.y.accumulative):0}1<this.options.data.series.length&&"grouped"===this.options.grouping&&(a=a/this.options.data.series.length-4),s.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),s.attr("width",r.bind(this)).attr("height",l.bind(this)).attr("x",c.bind(this)).attr("y",h.bind(this)).transition(this.transition).attr("fill",e.color),s.enter().append("rect").attr("width",r.bind(this)).attr("height",l.bind(this)).attr("x",c.bind(this)).attr("y",h.bind(this)).attr("fill",e.color).attr("class",function(t){return"bar bar_".concat(e.key)})}},{key:"renderLabels",value:function(t,e){var i="bottomAxis",n="leftAxis",s=this;if("horizontal"===this.options.orientation&&(i="leftAxis",n="bottomAxis"),this.options.showLabels){var o=this.labelLayer.selectAll(".label_".concat(t.key)).data(t.data);o.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),o.attr("x",a.bind(this)).attr("y",l.bind(this)).attr("class","label_".concat(t.key)).style("font-size","".concat(this.options.labelSize||this.options.fontSize,"px")).style("fill",this.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.color)).transition(this.transition).text(function(t){return t.y.label||t.y.value}),o.enter().append("text").attr("class","label_".concat(t.key)).attr("x",a.bind(this)).attr("y",l.bind(this)).attr("alignment-baseline","central").attr("text-anchor","horizontal"===this.options.orientation?"left":"middle").style("font-size","".concat(this.options.labelSize||this.options.fontSize,"px")).style("fill",this.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.color)).text(function(t){return t.y.label||t.y.value}).each(function(t,e){"horizontal"===s.options.orientation?"stacked"===s.options.grouping?this.setAttribute("text-anchor","middle"):s.plotWidth-a.call(s,t)<this.getComputedTextLength()&&(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8)):s.plotheight-a.call(s,t)<(s.options.labelSize||s.options.fontSize)&&this.setAttribute("y",+this.getAttribute("y")+8)})}function a(t){return"horizontal"===this.options.orientation?"stacked"===this.options.grouping?this[n](t.y.accumulative)+this[n](t.y.value)/2:this[n](isNaN(t.y.value)?0:t.y.value)+4:this[i](this.parseX(t.x.value))+this[i].bandwidth()/2}function l(t){return"horizontal"===this.options.orientation?this[i](this.parseX(t.x.value))+this[i].bandwidth()/2:"stacked"!==this.options.grouping?this[n](isNaN(t.y.value)?0:t.y.value)-4:void 0}}},{key:"renderline",value:function(e,t){var n=this,i=function(e,i,t){return d3.line().x(function(t){return n[e](n.parseX(t.x.value))}).y(function(t){return n[i](isNaN(t.y.value)?0:t.y.value)}).curve(d3[t||n.options.curveStyle])},s="bottomAxis",o="secondary"===e.axis?"rightAxis":"leftAxis";"horizontal"===this.options.orienation&&(s="secondary"===e.axis?"rightAxis":"leftAxis",o="bottomAxis");var a=this.lineLayer.selectAll(".line_".concat(e.key)).data([e.data]);a.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),a.style("stroke-width",e.lineWidth||this.options.lineWidth).attr("stroke",e.color).attr("fill","transparent").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","line_".concat(e.key)).attr("id","line_".concat(e.key)).style("stroke-width",e.lineWidth||this.options.lineWidth).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:"rendersymbol",value:function(e,t){var i=this,n=function(t){return d3.symbol().size(t||i.options.symbolSize)},s="bottomAxis",o="secondary"===e.axis?"rightAxis":"leftAxis";"horizontal"===this.options.orienation&&(s="secondary"===e.axis?"rightAxis":"leftAxis",o="bottomAxis");var a=this.symbolLayer.selectAll(".symbol_".concat(e.key)).data(e.data);a.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),a.attr("d",function(t){return n(t.y.size||e.symbolSize)(t)}).transition(this.transition).attr("fill","white").attr("stroke",e.color).attr("transform",function(t){return"translate(".concat(i[s](i.parseX(t.x.value)),", ").concat(i[o](isNaN(t.y.value)?0:t.y.value),")")}),a.enter().append("path").attr("d",function(t){return n(t.y.size||e.symbolSize)(t)}).attr("fill","white").attr("stroke",e.color).attr("class",function(t){return"symbol symbol_".concat(e.key)}).attr("transform",function(t){return"translate(".concat(i[s](i.parseX(t.x.value)),", ").concat(i[o](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:"data",set:function(t){this.options.data=t,this.render()}}]),n}(),WebsyLegend=function(){function n(t,e){_classCallCheck(this,n);if(this.elementId=t,this.options=_extends({},{align:"center",direction:"horizontal",style:"circle",symbolSize:16,hPadding:20,vPadding:10},e),this._data=[],t){var i=document.getElementById(this.elementId);i?(i.classList.add("websy-legend"),this.render()):console.error("No element found with ID ".concat(this.elementId))}else console.log("No element Id provided for Websy Chart")}return _createClass(n,[{key:"getLegendItemHTML",value:function(t){return"\n <div \n class='websy-legend-item ".concat(this.options.direction,"' \n style='margin: ").concat(this.options.vPadding/2,"px ").concat(this.options.hPadding/2,"px;'\n >\n <span \n class='symbol ").concat(t.style||this.options.style,"' \n style='\n background-color: ").concat(t.color,";\n width: ").concat(this.options.symbolSize,"px;\n height: ").concat("line"===this.options.style?3:this.options.symbolSize,"px;\n '\n ></span>\n ").concat(t.value,"\n </div>\n ")}},{key:"getSize",value:function(){var t=document.getElementById(this.elementId);if(t)return{width:t.clientWidth,height:t.clientHeight}}},{key:"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:"testWidth",value:function(t){var e=this.getLegendItemHTML({value:t}),i=document.createElement("div");i.style.position="absolute",i.style.visibility="hidden",i.innerHTML=e,document.body.appendChild(i);var n=i.clientWidth+30;return i.remove(),n}},{key:"data",set:function(t){this._data=t,this.render()}}]),n}(),WebsyKPI=function(){function i(t,e){_classCallCheck(this,i);this.elementId=t,this.options=_extends({},{tooltip:{},label:{},value:{},subValue:{}},e)}return _createClass(i,[{key:"render",value:function(t){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.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 '.concat(this.options.label.classes.join(" ")||"",'">\n ').concat(this.options.label.value||"","\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}}}]),i}(),WebsyMap=function(){function s(t,e){_classCallCheck(this,s);if(this.elementId=t,this.options=_extends({},{tileUrl:"https://tile.openstreetmap.org/{z}/{x}/{y}.png",disablePan:!1,disableZoom:!1,markerSize:10,useClustering:!1,maxMarkerSize:50,minMarkerSize:20,data:{},legendPosition:"bottom",colors:["#5e4fa2","#3288bd","#66c2a5","#abdda4","#e6f598","#fee08b","#fdae61","#f46d43","#d53e4f","#9e0142"]},e),t){var i={click:this.handleMapClick.bind(this)};!0===this.options.disableZoom&&(i.scrollWheelZoom=!1,i.zoomControl=!1),!0===this.options.disablePan&&(i.dragging=!1);var n=document.getElementById(this.elementId);n&&("undefined"==typeof L&&console.error("Leaflet library has not been loaded"),n.innerHTML='\n <div id="'.concat(this.elementId,'_map"></div>\n <div id="').concat(this.elementId,'_legend" class="websy-map-legend"></div>\n '),n.addEventListener("click",this.handleClick.bind(this)),this.legend=new WebsyDesigns.Legend("".concat(this.elementId,"_legend"),{}),this.map=L.map("".concat(this.elementId,"_map"),i),this.render())}else console.log("No element Id provided for Websy Map")}return _createClass(s,[{key:"handleClick",value:function(t){}},{key:"handleMapClick",value:function(t){}},{key:"render",value:function(){var n=this,t=document.getElementById("".concat(this.elementId,"_map")),e=document.getElementById("".concat(this.elementId,"_map"));if(!0===this.options.showLegend&&this.options.data.polygons){var i=this.options.data.polygons.map(function(t,e){return{value:t.label||t.key,color:t.color||n.options.colors[e%n.options.colors.length]}}),s=i.map(function(t){return t.value}).reduce(function(t,e){return t.length>e.length?t:e});"top"!==this.options.legendPosition&&"bottom"!==this.options.legendPosition||(e.style.width="100%"),"left"!==this.options.legendPosition&&"right"!==this.options.legendPosition||(e.style.height="100%",e.style.width=this.legend.testWidth(s)+"px"),this.legend.data=i;var o=this.legend.getSize();t.style.position="relative","top"===this.options.legendPosition&&(e.style.top=0,e.style.bottom="unset",t.style.top=o.height,t.style.height="calc(100% - ".concat(o.height,"px)")),"bottom"===this.options.legendPosition&&(e.style.top="unset",e.style.bottom=0,t.style.height="calc(100% - ".concat(o.height,"px)")),"left"===this.options.legendPosition&&(e.style.left=0,e.style.right="unset",e.style.top=0,t.style.left="".concat(o.width,"px"),t.style.width="calc(100% - ".concat(o.width,"px)")),"right"===this.options.legendPosition&&(e.style.left="unset",e.style.right=0,e.style.top=0,t.style.width="calc(100% - ".concat(o.width,"px)"))}else t.style.width="100%",t.style.height="100%";L.tileLayer(this.options.tileUrl,{attribution:'Map data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'}).addTo(this.map);this.geo&&this.map.removeLayer(this.geo),this.polygons&&this.polygons.forEach(function(t){return n.map.removeLayer(t)}),this.polygons=[],this.options.geoJSON&&(this.geo=L.geoJSON(this.options.geoJSON,{style:function(t){return{color:t.color||"#ffffff",colorOpacity:t.colorOpacity||1,fillColor:t.fillColor||"#e6463c",fillOpacity:t.fillOpacity||0,weight:t.weight||1}},onEachFeature:function(t,e){e.bindTooltip(t.tooltip,{permanent:!0,direction:"center",className:t.tooltipClass||"websy-polygon-tooltip"})}}).addTo(this.map)),this.options.data.polygons&&this.options.data.polygons.forEach(function(t,e){t.options||(t.options={}),t.options.color||(t.options.color=n.options.colors[e%n.options.colors.length]);var i=L.polygon(t.data.map(function(t){return t.map(function(t){return[t.Latitude,t.Longitude]})}),t.options).addTo(n.map);n.polygons.push(i),n.map.fitBounds(i.getBounds())}),this.geo?this.map.fitBounds(this.geo.getBounds()):this.polygons||this.options.center&&this.map.setView(this.options.center,this.options.zoom||null)}}]),s}(),WebsyChartTooltip=function(){function e(t){_classCallCheck(this,e),this.svg="string"==typeof t?document.getElementById(t):t,this.tooltipLayer=this.svg.append("g").attr("class","tooltip-layer"),this.tooltipContent=this.tooltipLayer.append("foreignObject").attr("class","websy-chart-tooltip").append("xhtml:div").attr("class","websy-chart-tooltip-content")}return _createClass(e,[{key:"hide",value:function(){this.tooltipContent.classed("active",!1)}},{key:"setHeight",value:function(t){this.tooltipLayer.select("foreignObject").style("height",t)}},{key:"show",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{top:"unset",bottom:"unset",left:0,width:0,height:0,onLeft:!1},n=["active"];"vertical"===i.positioning&&n.push("vertical"),!0===i.onLeft&&n.push("left"),!0===i.onTop&&n.push("top"),console.log(n.join(" "));var s=this.tooltipLayer.selectAll("foreignObject").attr("width","".concat(i.width,"px")).attr("class","websy-chart-tooltip ".concat(n.join(" ")));this.tooltipContent.attr("class","websy-chart-tooltip-content ".concat(n.join(" "))).style("width","".concat(i.width,"px")).html("<div class='title'>".concat(t,"</div>").concat(e)),-1===navigator.userAgent.indexOf("Chrome")&&-1!==navigator.userAgent.indexOf("Safari")?(s.attr("x","0px"),this.tooltipContent.style("left","vertical"!==i.positioning?"".concat(i.left,"px"):"unset").style("top",!0!==i.onTop?"".concat(i.top,"px"):"unset").style("bottom",!0===i.onTop?"".concat(i.bottom,"px"):"unset")):("vertical"===i.positioning?(s.attr("x","".concat(i.left,"px")),s.attr("y","".concat(!0===i.onTop?i.bottom-this.tooltipContent._groups[0][0].clientHeight:i.top,"px"))):(s.attr("x","".concat(i.left,"px")),s.attr("y","".concat(i.top,"px"))),this.tooltipContent.style("left","unset"),this.tooltipContent.style("top","unset"))}},{key:"transform",value:function(t,e){this.tooltipLayer.attr("transform","translate(".concat(t,", ").concat(e,")"))}}]),e}(),WebsyDesigns={WebsyPopupDialog:WebsyPopupDialog,PopupDialog:WebsyPopupDialog,WebsyLoadingDialog:WebsyLoadingDialog,LoadingDialog:WebsyLoadingDialog,WebsyNavigationMenu:WebsyNavigationMenu,NavigationMenu:WebsyNavigationMenu,WebsyForm:WebsyForm,Form:WebsyForm,WebsyDatePicker:WebsyDatePicker,DatePicker:WebsyDatePicker,WebsyDropdown:WebsyDropdown,Dropdown:WebsyDropdown,WebsyResultList:WebsyResultList,ResultList:WebsyResultList,WebsyTemplate:WebsyTemplate,Template:WebsyTemplate,WebsyPubSub:WebsyPubSub,PubSub:WebsyPubSub,WebsyRouter:WebsyRouter,Router:WebsyRouter,WebsyTable:WebsyTable,WebsyTable2:WebsyTable2,Table:WebsyTable,Table2:WebsyTable2,WebsyChart:WebsyChart,Chart:WebsyChart,WebsyChartTooltip:WebsyChartTooltip,ChartTooltip:WebsyChartTooltip,Legend:WebsyLegend,WebsyMap:WebsyMap,Map:WebsyMap,WebsyKPI:WebsyKPI,KPI:WebsyKPI,WebsyPDFButton:WebsyPDFButton,PDFButton:WebsyPDFButton,APIService:APIService,WebsyUtils:WebsyUtils,Utils:WebsyUtils,ButtonGroup:ButtonGroup,WebsySwitch:Switch,Pager:Pager,Switch:Switch,Carousel:WebsyCarousel,WebsyIcons:WebsyIcons,Icons:WebsyIcons,WebsyLogin:WebsyLogin,Login:WebsyLogin,WebsySignup:WebsySignup,Signup:WebsySignup,ResponsiveText:ResponsiveText,WebsyResponsiveText:ResponsiveText};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?render=".concat(t),document.body.appendChild(e)}function usePayPal(){var t=document.createElement("script");t.src="//www.paypal.com/sdk/js",document.getElementsByTagName("body")[0].appendChild(t)}
|
|
1
|
+
"use strict";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 _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&&Symbol.iterator in Object(t))return Array.from(t)}function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}function _extends(){return(_extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function _createClass(t,e,i){return e&&_defineProperties(t.prototype,e),i&&_defineProperties(t,i),t}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({},e)}return _createClass(i,[{key:"add",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},n=this.buildUrl(t);return this.run("POST",n,e,i)}},{key:"buildUrl",value:function(t,e,i){return void 0===i&&(i=[]),e&&i.push("id:".concat(e)),"".concat(this.baseUrl,"/").concat(t).concat(0<i.length?"".concat(-1===t.indexOf("?")?"?":"&","where=").concat(i.join(";")):"")}},{key:"delete",value:function(t,e){var i=this.buildUrl(t,e);return this.run("DELETE",i)}},{key:"get",value:function(t,e,i){var n=this.buildUrl(t,e,i);return this.run("GET",n)}},{key:"update",value:function(t,e,i){var n=this.buildUrl(t,e);return this.run("PUT",n,i)}},{key:"fetchData",value:function(t,e,i){3<arguments.length&&void 0!==arguments[3]&&arguments[3];return fetch(e,{method:t,mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:JSON.stringify(i)}).then(function(t){return t.json()})}},{key:"run",value:function(s,o,a){var l=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{},r=4<arguments.length&&void 0!==arguments[4]&&arguments[4];return new Promise(function(e,i){var n=new XMLHttpRequest;if(n.open(s,o),n.setRequestHeader("Content-Type","application/json"),n.responseType="text",l.responseType&&(n.responseType=l.responseType),l.headers)for(var t in l.headers)n.setRequestHeader(t,l.headers[t]);n.withCredentials=!0,n.onload=function(){if(401!==n.status){var t="text"===n.responseType?n.responseText:n.response;if(""!==t&&"null"!==t)try{t=JSON.parse(t)}catch(t){}else t=[];t.err?i(JSON.stringify(t)):e(!0===r?[t,function(t){t=t.split("\r\n");var e={};return t.forEach(function(t){2===(t=t.split(":")).length&&(e[t[0]]=t[1].trim())}),e}(n.getAllResponseHeaders())]:t)}else ENV&&ENV.AUTH_REDIRECT?window.location=ENV.AUTH_REDIRECT:window.location="/login"},n.onerror=function(){return i(n.statusText)},a?n.send(JSON.stringify(a)):n.send()})}}]),i}(),ButtonGroup=function(){function n(t,e){_classCallCheck(this,n),this.elementId=t;this.options=_extends({},{style:"button",subscribers:{},activeItem:0},e);var i=document.getElementById(this.elementId);i&&(i.addEventListener("click",this.handleClick.bind(this)),this.render())}return _createClass(n,[{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-button-group-item")){var e=+t.target.getAttribute("data-index");this.options.activeItem!==e&&(this.options.onDeactivate&&this.options.onDeactivate(this.options.items[this.options.activeItem],this.options.activeItem),this.options.activeItem=e,this.options.onActivate&&this.options.onActivate(this.options.items[e],e),this.render())}}},{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 i=this,t=document.getElementById(this.elementId);t&&this.options.items&&(t.innerHTML=this.options.items.map(function(t,e){return"\n <div ".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(i.options.style,"-style ").concat(e===i.options.activeItem?"active":"",'">').concat(t.label,"</div>\n ")}).join(""))}}]),n}(),WebsyCarousel=function(){function n(t,e){_classCallCheck(this,n);this.playTimeoutFn=null,this.options=_extends({},{currentFrame:0,frameDuration:4e3,showFrameSelector:!0,showPrevNext:!0,autoPlay:!0,frames:[]},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(n,[{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.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 n='\n <div class="websy-carousel">\n ';this.options.frames.forEach(function(t,e){n+='\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){n+='\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){n+='\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 ")}),n+="</div>"}),!0===this.options.showFrameSelector&&1<this.options.frames.length&&(n+='<div class="websy-btn-parent">',this.options.frames.forEach(function(t,e){n+='\n <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 512 512" 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 <title>Ellipse</title><circle cx="256" cy="256" r="192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/>\n </svg>\n ')}),n+="</div>"),!0===this.options.showPrevNext&&1<this.options.frames.length&&(n+='\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 '),n+="\n </div>\n ",t.innerHTML=n}this.play()}},{key:"showFrame",value:function(t,e){var i=e<t?"101%":"-101%",n=t<e?"101%":"-101%";0===e&&t===this.options.frames.length-1?(i="-101%",n="101%"):0===t&&e===this.options.frames.length-1&&(i="101%",n="-101%");var s=document.getElementById("".concat(this.elementId,"_frame_").concat(t));setTimeout(function(){s.style.transform="translateX(".concat(i,")")},100),document.getElementById("".concat(this.elementId,"_selector_").concat(t)).classList.remove("websy-progress-btn-active");var o=document.getElementById("".concat(this.elementId,"_frame_").concat(e));o.classList.remove("animate"),o.style.transform="translateX(".concat(n,")"),setTimeout(function(){o.classList.add("animate"),o.style.transform="translateX(0%)"},100),document.getElementById("".concat(this.elementId,"_selector_").concat(e)).classList.add("websy-progress-btn-active")}}]),n}(),WebsyDatePicker=function(){function o(t,e){_classCallCheck(this,o),this.oneDay=864e5,this.currentselection=[],this.validDates=[],this.validYears=[],this.validHours=[],this.customRangeSelected=!0;var i={defaultRange:0,dateFormat:"%_m/%_d/%Y",allowClear:!(this.shiftPressed=!1),hideRanges:!1,arrowIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.677 18.52c.914 1.523-.183 3.472-1.967 3.472h-19.414c-1.784 0-2.881-1.949-1.967-3.472l9.709-16.18c.891-1.483 3.041-1.48 3.93 0l9.709 16.18z"/></svg>',clearIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512"><line x1="368" y1="368" x2="144" y2="144" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><line x1="368" y1="144" x2="144" y2="368" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',confirmIcon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512"><polyline points="416 128 192 384 96 288" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>',minAllowedDate:this.floorDate(new Date(new Date((new Date).setFullYear((new Date).getFullYear()-1)).setDate(1))),maxAllowedDate:this.floorDate(new Date(new Date)),minAllowedYear:1970,maxAllowedYear:(new Date).getFullYear(),daysOfWeek:["S","M","T","W","T","F","S"],monthsOfYear:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],hours:new Array(24).fill(0).map(function(t,e){return{text:(e<10?"0":"")+e+":00",num:1/24*e}}),mode:"date",monthMap:{0:"Jan",1:"Feb",2:"Mar",3:"Apr",4:"May",5:"Jun",6:"Jul",7:"Aug",8:"Sep",9:"Oct",10:"Nov",11:"Dec"},ranges:[]};if(i.ranges={date:[{label:"All Dates",range:[i.minAllowedDate,i.maxAllowedDate]},{label:"Today",range:[this.floorDate(new Date)]},{label:"Yesterday",range:[this.floorDate((new Date).setDate((new Date).getDate()-1))]},{label:"Last 7 Days",range:[this.floorDate((new Date).setDate((new Date).getDate()-6)),this.floorDate(new Date)]},{label:"This Month",range:[this.floorDate((new Date).setDate(1)),this.floorDate(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()+1)-this.oneDay)]},{label:"Last Month",range:[this.floorDate(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-1)),this.floorDate(new Date((new Date).setDate(1)).setMonth((new Date).getMonth())-this.oneDay)]},{label:"This Year",range:[this.floorDate(new Date("1/1/".concat((new Date).getFullYear()))),this.floorDate(new Date("12/31/".concat((new Date).getFullYear())))]},{label:"Last Year",range:[this.floorDate(new Date("1/1/".concat((new Date).getFullYear()-1))),this.floorDate(new Date("12/31/".concat((new Date).getFullYear()-1)))]}],year:[{label:"All Years",range:[i.minAllowedYear,i.maxAllowedYear]},{label:"Last 5 Years",range:[(new Date).getFullYear()-4,i.maxAllowedYear]},{label:"Last 10 Years",range:[(new Date).getFullYear()-9,i.maxAllowedYear]}],monthyear:[{label:"All Month Years",range:[i.minAllowedDate,i.maxAllowedDate]},{label:"Last 12 Months",range:[this.floorDate(new Date(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-12))),this.floorDate(new Date((new Date).setDate(1)))]},{label:"Last 18 Months",range:[this.floorDate(new Date(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-18))),this.floorDate(new Date((new Date).setDate(1)))]},{label:"Last 24 Months",range:[this.floorDate(new Date(new Date((new Date).setDate(1)).setMonth((new Date).getMonth()-24))),this.floorDate(new Date((new Date).setDate(1)))]}],hour:[{label:"All Hours",range:["00:00","23:00"]}]},this.options=_extends({},i,e),this.selectedRange=this.options.defaultRange||0,this.selectedRangeDates=_toConsumableArray(this.options.ranges[this.options.mode][this.options.defaultRange||0].range),this.priorSelectedDates=null,this.priorselection=null,this.priorCustomRangeSelected=null,t){var n=document.getElementById(t);if(n){this.elementId=t,n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mousedown",this.handleMouseDown.bind(this)),n.addEventListener("mouseover",this.handleMouseOver.bind(this)),n.addEventListener("mouseup",this.handleMouseUp.bind(this)),document.addEventListener("keydown",this.handleKeyDown.bind(this)),document.addEventListener("keyup",this.handleKeyUp.bind(this));var s="\n <div class='websy-date-picker-container ".concat(this.options.mode,"'>\n <span class='websy-dropdown-header-label'>").concat(this.options.label||"Date",'</span>\n <div id="').concat(this.elementId,"_header\" class='websy-date-picker-header ").concat(!0===this.options.allowClear?"allow-clear":"","'>\n <span id='").concat(this.elementId,"_selectedRange'>").concat(this.options.ranges[this.options.mode][this.selectedRange].label,"</span>\n ").concat(this.options.arrowIcon,"\n ");!0===this.options.allowClear&&(s+="<div class='clear-selection'>".concat(this.options.clearIcon,"</div>")),s+="\n </div>\n <div id='".concat(this.elementId,"_mask' class='websy-date-picker-mask'></div>\n <div id='").concat(this.elementId,"_content' class='websy-date-picker-content ").concat(!0===this.options.hideRanges?"hide-ranges":"","'>\n <div class='websy-date-picker-ranges' >\n <ul id='").concat(this.elementId,"_rangelist'>\n ").concat(this.renderRanges(),"\n </ul>\n </div>\x3c!--\n --\x3e<div id='").concat(this.elementId,"_datelist' class='websy-date-picker-custom'>").concat(this.renderDates(),"</div>\n <div class='websy-dp-button-container'>\n <span class=\"dp-footnote\">Click and drag or hold Shift and click to select a range of values</span>\n <button class='").concat(this.options.cancelBtnClasses||""," websy-btn websy-dp-cancel'>\n ").concat(this.options.clearIcon,"\n </button>\n <button class='").concat(this.options.confirmBtnClasses||""," websy-btn websy-dp-confirm'>\n ").concat(this.options.confirmIcon,"\n </button>\n </div>\n </div> \n </div>\n "),n.innerHTML=s,this.render()}else console.log("No element found with Id",t)}else console.log("No element Id provided")}return _createClass(o,[{key:"close",value:function(t){var e=this,i=document.getElementById("".concat(this.elementId,"_mask")),n=document.getElementById("".concat(this.elementId,"_content")),s=document.getElementById(this.elementId);if(s&&(s.style.zIndex=""),i.classList.remove("active"),n.classList.remove("active"),!0===t){if(this.options.onChange)if(!0===this.customRangeSelected)if("hour"===this.options.mode){for(var o=[],a=this.selectedRangeDates[0];a<this.selectedRangeDates[1]+1;a++)o.push(this.options.hours[a]);this.options.onChange(o,!0)}else this.options.onChange(this.selectedRangeDates,!0);else if("hour"===this.options.mode){var l=this.currentselection.map(function(t){return e.options.hours[t]});this.options.onChange(l,!0)}else this.options.onChange(this.currentselection,!1);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.setHours(0,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.selectRange(0,!1),this.options.onClear&&this.options.onClear(),this.updateRange(0)))}},{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],this.selectDate(+t.target.id.split("_")[1]);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.id.split("_")[1],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;t.target.id.split("_")[1]!==this.mouseDownId&&(this.dragging=!0,this.selectDate(+t.target.id.split("_")[1]))}}},{key:"handleMouseUp",value:function(t){this.mouseDown=!1,this.dragging=!1,this.mouseDownId=null}},{key:"highlightRange",value:function(){for(var i=this,t=document.getElementById("".concat(this.elementId,"_dateList")).querySelectorAll(".websy-dp-date"),e=0;e<t.length;e++)t[e].classList.remove("selected"),t[e].classList.remove("first"),t[e].classList.remove("last");if(0!==this.selectedRange)if(!0===this.customRangeSelected){var n;if("date"===this.options.mode)n=Math.floor((this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()-this.selectedRangeDates[0].getTime())/this.oneDay);else if("year"===this.options.mode)n=this.selectedRangeDates[this.selectedRangeDates.length-1]-this.selectedRangeDates[0],this.selectedRangeDates[this.selectedRangeDates.length-1],this.selectedRangeDates[0];else if("monthyear"===this.options.mode){var s=12*(this.selectedRangeDates[this.selectedRangeDates.length-1].getFullYear()-this.selectedRangeDates[0].getFullYear());n=Math.floor(this.selectedRangeDates[this.selectedRangeDates.length-1].getMonth()-this.selectedRangeDates[0].getMonth())+s}else"hour"===this.options.mode&&(n=this.selectedRangeDates[this.selectedRangeDates.length-1]-this.selectedRangeDates[0]);for(var o=0;o<n+1;o++){var a=void 0,l=void 0,r=void 0;"date"===this.options.mode?(a=(a=this.floorDate(new Date(this.selectedRangeDates[0].getTime()+o*this.oneDay))).getTime(),l=this.selectedRangeDates[0].getTime(),r=this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()):"year"===this.options.mode?(a=this.selectedRangeDates[0]+o,l=this.selectedRangeDates[0],r=this.selectedRangeDates[this.selectedRangeDates.length-1]):"monthyear"===this.options.mode?(a=new Date(this.selectedRangeDates[0].getTime()).setMonth(this.selectedRangeDates[0].getMonth()+o),l=this.selectedRangeDates[0].getTime(),r=this.selectedRangeDates[this.selectedRangeDates.length-1].getTime()):"hour"===this.options.mode&&(a=this.selectedRangeDates[0]+o,l=this.selectedRangeDates[0],r=this.selectedRangeDates[this.selectedRangeDates.length-1]);var c=void 0;"date"===this.options.mode?c=document.getElementById("".concat(this.elementId,"_").concat(a,"_date")):"year"===this.options.mode?c=document.getElementById("".concat(this.elementId,"_").concat(a,"_year")):"monthyear"===this.options.mode?c=document.getElementById("".concat(this.elementId,"_").concat(a,"_monthyear")):"hour"===this.options.mode&&(c=document.getElementById("".concat(this.elementId,"_").concat(a,"_hour"))),c&&(c.classList.add("selected"),a===l&&c.classList.add("".concat("desc"===this.options.sortDirection?"last":"first")),a===r&&c.classList.add("".concat("desc"===this.options.sortDirection?"first":"last")))}}else this.currentselection.forEach(function(t){var e;"date"===i.options.mode?e=document.getElementById("".concat(i.elementId,"_").concat(t,"_date")):"year"===i.options.mode?e=document.getElementById("".concat(i.elementId,"_").concat(t,"_year")):"monthyear"===i.options.mode?e=document.getElementById("".concat(i.elementId,"_").concat(t,"_monthyear")):"hour"===i.options.mode&&(e=document.getElementById("".concat(i.elementId,"_").concat(t,"_hour"))),e.classList.add("selected"),e.classList.add("first"),e.classList.add("last")})}},{key:"open",value:function(t){1<arguments.length&&void 0!==arguments[1]&&arguments[1];var e=document.getElementById("".concat(this.elementId,"_mask")),i=document.getElementById("".concat(this.elementId,"_content")),n=document.getElementById(this.elementId);n&&(n.style.zIndex=999),e.classList.add("active"),i.classList.add("active"),this.priorSelectedDates=_toConsumableArray(this.selectedRangeDates),this.priorSelectedRange=this.selectedRange,this.priorselection=_toConsumableArray(this.currentselection),this.priorCustomRangeSelected=this.customRangeSelected,this.scrollRangeIntoView()}},{key:"render",value:function(t){if(this.elementId){var e=document.getElementById("".concat(this.elementId,"_datelist"));e&&t&&(e.innerHTML=this.renderDates(t));var i=document.getElementById("".concat(this.elementId,"_rangelist"));i&&t&&(i.innerHTML=this.renderRanges()),this.highlightRange()}else console.log("No element Id provided for Websy Loading Dialog")}},{key:"renderDates",value:function(t){var e,i=this,n=[];this.validDates=[],this.validYears=[],this.validHours=[],this.monthYears={},this.monthYearMonths=[],t&&(n=t.map(function(t){if("date"===i.options.mode)return t.getTime();if("year"===i.options.mode)return t;if("monthyear"===i.options.mode);else if("hour"===i.options.mode)return t;return t.getTime()})),this.options.ranges[this.options.mode].forEach(function(t){return t.disabled=!0}),"date"===this.options.mode?e=Math.ceil((this.options.maxAllowedDate.getTime()-this.options.minAllowedDate.getTime())/this.oneDay)+1:"year"===this.options.mode?e=this.options.maxAllowedYear-this.options.minAllowedYear+1:"monthyear"===this.options.mode?e=Math.ceil((this.options.maxAllowedDate.getTime()-this.options.minAllowedDate.getTime())/this.oneDay)+1:"hour"===this.options.mode&&(e=24);for(var s={},o=[],a=0;a<e;a++)if("date"===this.options.mode||"monthyear"===this.options.mode){var l=this.floorDate(new Date(this.options.minAllowedDate.getTime()+a*this.oneDay)),r="".concat(this.options.monthMap[l.getMonth()]," ").concat(l.getFullYear());if(s[r]||(s[r]=[]),this.monthYears[l.getFullYear()]||(this.monthYears[l.getFullYear()]=[]),-1===this.monthYearMonths.indexOf("".concat(l.getMonth(),"-").concat(l.getFullYear()))){this.monthYearMonths.push("".concat(l.getMonth(),"-").concat(l.getFullYear()));var c=new Date(new Date(l).setDate(1));this.monthYears[l.getFullYear()].push({date:c,month:this.options.monthMap[l.getMonth()],monthNum:l.getMonth(),year:l.getFullYear(),id:c.getTime()})}-1===n.indexOf(l.getTime())&&this.validDates.push(l.getTime()),s[r].push({date:l,dayOfMonth:l.getDate(),dayOfWeek:l.getDay(),id:l.getTime(),disabled:-1!==n.indexOf(l.getTime())})}else if("year"===this.options.mode){var h=this.options.minAllowedYear+a;o.push({year:h,id:h,disabled:-1!==n.indexOf(h)}),-1===n.indexOf(h)&&this.validYears.push(h)}else this.options.mode;"hour"===this.options.mode&&this.options.hours.forEach(function(t){-1===n.indexOf(t.text)&&i.validHours.push(t)});for(var d=0;d<this.options.ranges[this.options.mode].length;d++){var p=this.options.ranges[this.options.mode][d];if("date"===this.options.mode||"monthyear"===this.options.mode){if(-1!==this.validDates.indexOf(p.range[0].getTime()))p.disabled=!1;else if(p.range[1])if(-1!==this.validDates.indexOf(p.range[1].getTime()))p.disabled=!1;else for(var u=p.range[0].getTime();u<=p.range[1].getTime();u+=this.oneDay){var m=this.floorDate(new Date(u));if(-1!==this.validDates.indexOf(m.getTime())){p.disabled=!1;break}}}else if("year"===this.options.mode){if(-1!==this.validYears.indexOf(p.range[0]))p.disabled=!1;else if(p.range[1])if(-1!==this.validYears.indexOf(p.range[1]))p.disabled=!1;else for(var g=p.range[0];g<=p.range[1];g++)if(-1!==this.validYears.indexOf(p.range[0]+g)){p.disabled=!1;break}}else if("monthyear"===this.options.mode);else if("hour"===this.options.mode)if(-1!==this.validDates.indexOf(p.range[0]))p.disabled=!1;else if(p.range[1])if(-1!==this.validDates.indexOf(p.range[1]))p.disabled=!1;else for(var f=p.range[0];f<=p.range[1];f++)if(-1!==this.validDates.indexOf(p.range[0]+f)){p.disabled=!1;break}}var v="";if("date"===this.options.mode){for(var y in v+="\n <ul class='websy-dp-days-header'>\n ",v+=this.options.daysOfWeek.map(function(t){return"<li>".concat(t,"</li>")}).join(""),v+="\n </ul> \n <div id='".concat(this.elementId,"_dateList' class='websy-dp-date-list'>\n "),s){if(v+="\n <div class='websy-dp-month-container'>\n <span id='".concat(y.replace(/\s/g,"_"),"'>").concat(y,"</span>\n <ul>\n "),0<s[y][0].dayOfWeek){for(var b=[],w=0;w<s[y][0].dayOfWeek;w++)b.push("<li> </li>");v+=b.join("")}v+=s[y].map(function(t){return"<li id='".concat(i.elementId,"_").concat(t.id,"_date' class='websy-dp-date ").concat(!0===t.disabled?"websy-disabled-date":"","'>").concat(t.dayOfMonth,"</li>")}).join(""),v+="\n </ul>\n </div>\n "}v+="</div>"}else if("year"===this.options.mode)"desc"===this.options.sortDirection&&o.reverse(),v+="<div id='".concat(this.elementId,"_dateList' class='websy-dp-date-list'><ul>"),v+=o.map(function(t){return"<li id='".concat(i.elementId,"_").concat(t.id,"_year' class='websy-dp-date websy-dp-year ").concat(!0===t.disabled?"websy-disabled-date":"","'>").concat(t.year,"</li>")}).join(""),v+="</ul></div>";else if("monthyear"===this.options.mode){for(var x in v+="<div id='".concat(this.elementId,"_dateList' class='websy-dp-monthyear-container'>"),this.monthYears){if(v+="\n <ul>\n <li>".concat(x,"</li>\n "),0<this.monthYears[x][0].monthNum){for(var I=[],L=0;L<this.monthYears[x][0].monthNum;L++)I.push("<li> </li>");v+=I.join("")}v+=this.monthYears[x].map(function(t){return"<li id='".concat(i.elementId,"_").concat(t.id,"_monthyear' data-year='").concat(t.year,"' class='websy-dp-date websy-dp-monthyear'>").concat(t.month,"</li>")}).join(""),v+="</ul>"}v+="</div>"}else"hour"===this.options.mode&&(v+="<div id='".concat(this.elementId,"_dateList' class='websy-dp-date-list'><ul>"),v+=this.options.hours.map(function(t){return"<li id='".concat(i.elementId,"_").concat(+t.text.split(":")[0],"_hour' data-hour='").concat(t.text,"' class='websy-dp-date websy-dp-hour'>").concat(t.text,"</li>")}).join(""),v+="</ul></div>");return v}},{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];if(this.options.ranges[this.options.mode][t]){this.selectedRangeDates=_toConsumableArray(this.options.ranges[this.options.mode][t].range),this.currentselection=_toConsumableArray(this.options.ranges[this.options.mode][t].range),this.selectedRange=+t;var i=document.getElementById("".concat(this.elementId,"_header"));i&&(0===this.selectedRange?i.classList.remove("range-selected"):i.classList.add("range-selected")),this.highlightRange(),this.updateRange(),this.close(e)}}},{key:"selectCustomRange",value:function(i){var n=this;this.selectedRange=-1;var s=!0;1===i.length?(this.selectedRangeDates=_toConsumableArray(i),this.customRangeSelected=!0):2===i.length&&(this.selectedRangeDates=_toConsumableArray(i),this.customRangeSelected=!0),i.forEach(function(t,e){0<e&&("date"===n.options.mode||"monthyear"===n.options.mode?1<t.getTime()/n.oneDay-i[e-1]/n.oneDay&&(s=!1):"hour"!==n.options.mode&&"year"!==n.options.mode||1<t-i[e-1]&&(s=!1))}),2<i.length&&!0===s&&(this.selectedRangeDates=[i[0],i[i.length-1]],this.customRangeSelected=!0),!1===s&&(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){if(this.options.ranges[this.options.mode][t].range[0]===i[0]){this.selectedRange=t,this.customRangeSelected=!1;break}}else if(2===this.options.ranges[this.options.mode][t].range.length&&this.options.ranges[this.options.mode][t].range[0]===i[0]&&this.options.ranges[this.options.mode][t].range[1]===i[1]){this.selectedRange=t,this.customRangeSelected=!1;break}this.highlightRange(),this.updateRange()}},{key:"setDateBounds",value:function(t){-1!==["All Dates","All Years","All"].indexOf(this.options.ranges[this.options.mode][0].label)&&(this.options.ranges[this.options.mode][0].range=[t[0],t[1]||t[0]]),"date"===this.options.mode?(this.options.minAllowedDate=t[0],this.options.maxAllowedDate=t[1]||t[0]):"year"===this.options.mode?(this.options.minAllowedYear=t[0],this.options.maxAllowedYear=t[1]||t[0]):"monthyear"===this.options.mode?(this.options.minAllowedDate=t[0],this.options.maxAllowedDate=t[1]||t[0]):"hour"===this.options.mode&&(this.options.minAllowedHour=t[0],this.options.maxAllowedHour=t[1]||t[0])}},{key:"updateRange",value:function(){var t,e=this;if(-1===this.selectedRange){var i=(0<this.currentselection.length?this.currentselection:this.selectedRangeDates).map(function(t){return"date"===e.options.mode?(t.toLocaleDateString||(t=new Date(t)),t.toLocaleDateString()):"year"===e.options.mode?t:"monthyear"===e.options.mode?(t.getMonth||(t=new Date(t)),"".concat(e.options.monthMap[t.getMonth()]," ").concat(t.getFullYear())):"hour"===e.options.mode?t:void 0}),n=i[0],s="";!0===this.customRangeSelected?(s=" - ".concat(i[i.length-1]),"hour"===this.options.mode&&(n=this.options.hours[n].text,s="".concat(!0===this.customRangeSelected?" - ":"").concat(this.options.hours[i[i.length-1]].text))):1<i.length?n="".concat(i.length," selected"):"hour"===this.options.mode&&(n=this.options.hours[n].text),t={label:"".concat(n).concat(s)}}else t=this.options.ranges[this.options.mode][this.selectedRange];for(var o=document.getElementById(this.elementId),a=document.getElementById("".concat(this.elementId,"_selectedRange")),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)}}]),o}();Date.prototype.floor=function(){return new Date("".concat(this.getMonth()+1,"/").concat(this.getDate(),"/").concat(this.getFullYear()))};var WebsyDropdown=function(){function l(t,e){var i=this;_classCallCheck(this,l);if(this.options=_extends({},{multiSelect:!1,multiValueDelimiter:",",allowClear:!0,style:"plain",items:[],label:"",disabled:!1,minSearchCharacters:2,showCompleteSelectedList:!1,closeAfterSelection:!0,customActions:[],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 class=\'clear\' 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 class=\'arrow\' 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.tooltipTimeoutFn=null,this._originalData=[],this.selectedItems=this.options.selectedItems||[],t){var n=document.getElementById(t);if(n){this.elementId=t,n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("keyup",this.handleKeyUp.bind(this)),n.addEventListener("mouseout",this.handleMouseOut.bind(this)),n.addEventListener("mousemove",this.handleMouseMove.bind(this));var s=this.selectedItems.map(function(t){return i.options.items[t].label||i.options.items[t].value}).join(this.options.multiValueDelimiter),o=this.selectedItems.map(function(t){return i.options.items[t].value||i.options.items[t].label}).join(this.options.multiValueDelimiter),a="\n <div id='".concat(this.elementId,"_container' class='websy-dropdown-container ").concat(this.options.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 ").concat(this.options.searchIcon,"\n <span>\n <span class='websy-dropdown-header-value' data-info='").concat(s,"' id='").concat(this.elementId,"_selectedItems'>").concat(s,"</span> \n <span class='websy-dropdown-header-label' id='").concat(this.elementId,"_headerLabel'>").concat(this.options.label,"</span>\n </span>\n <input class='dropdown-input' id='").concat(this.elementId,"_input' name='").concat(this.options.field||this.options.label,"' value='").concat(o,"'>\n ").concat(this.options.arrowIcon,"\n ");!0===this.options.allowClear&&(a+=this.options.clearIcon),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&&(a+="\n <div class='websy-dropdown-action-container'>\n ".concat(this.options.actionsTitle||"","\n <button class='websy-dropdown-action-button'>\n ").concat(this.options.actionsIcon,"\n </button>\n <ul id='").concat(this.elementId,"_actionContainer'>\n "),this.options.customActions.forEach(function(t,e){a+="\n <li class='websy-dropdown-custom-action' data-index='".concat(e,"'>").concat(t.label,"</li>\n ")}),a+="\n </ul>\n </div>\n "),!0!==this.options.disableSearch&&(a+="\n <div class='websy-dropdown-search-container'>\n <input id='".concat(this.elementId,"_search' class='websy-dropdown-search' placeholder='").concat(this.options.searchPlaceholder||"Search","'>\n </div>\n ")),a+="\n <div id='".concat(this.elementId,"_itemsContainer' class='websy-dropdown-items'>\n <ul id='").concat(this.elementId,"_items'> \n </ul>\n </div>\x3c!--\n --\x3e<div class='websy-dropdown-custom'></div>\n </div>\n </div>\n "),n.innerHTML=a,document.getElementById("".concat(this.elementId,"_itemsContainer")).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(l,[{key:"appendRows",value:function(){}},{key:"clearSelected",value:function(){this.selectedItems=[],this.updateHeader(),this.options.onClearSelected&&this.options.onClearSelected()}},{key:"close",value:function(){var t=document.getElementById("".concat(this.elementId,"_mask")),e=document.getElementById("".concat(this.elementId,"_content")),i=document.getElementById("".concat(this.elementId,"_itemsContainer")),n=document.getElementById("".concat(this.elementId,"_actionContainer"));n&&n.classList.remove("active");var s=document.getElementById(this.elementId);s&&(s.style.zIndex=""),i.scrollTop=0,t.classList.remove("active"),e.classList.remove("active"),e.classList.remove("on-top");var o=document.getElementById("".concat(this.elementId,"_search"));o&&0<o.value.length&&this.options.onCancelSearch&&(this.options.onCancelSearch(""),o.value=""),this.options.onClose&&this.options.onClose(this.elementId)}},{key:"handleClick",value:function(t){if(!0!==this.options.disabled)if(t.target.classList.contains("websy-dropdown-header"))this.open();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-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")&&(0===this._originalData.length&&(this._originalData=_toConsumableArray(this.options.items)),e.target.value.length>=this.options.minSearchCharacters?"Enter"===e.key?this.options.onConfirmSearch&&(this.options.onConfirmSearch(e.target.value),e.target.value=""):"Escape"===e.key?this.options.onCancelSearch?(this.options.onCancelSearch(e.target.value),e.target.value=""):(this.data=this._originalData,this._originalData=[]):this.options.onSearch?this.options.onSearch(e.target.value):this.data=this._originalData.filter(function(t){return-1!==t.label.toLowerCase().indexOf(e.target.value.toLowerCase())}):this.options.onCancelSearch?this.options.onCancelSearch(e.target.value):(this.data=this._originalData,this._originalData=[]))}},{key:"handleMouseMove",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed"),t.target.classList.remove("websy-delayed-info"),t.target.children[1]&&t.target.children[1].classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn)),"LI"===t.target.tagName&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.classList.add("websy-delayed")},500)),t.target.classList.contains("websy-dropdown-header")&&t.target.children[1]&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.children[1].classList.add("websy-delayed-info")},500))}},{key:"handleMouseOut",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed"),t.target.classList.remove("websy-delayed-info"),t.target.children[1]&&t.target.children[1].classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn))}},{key:"handleScroll",value:function(t){t.target.classList.contains("websy-dropdown-items")&&this.options.onScroll&&this.options.onScroll(t)}},{key:"open",value:function(t){1<arguments.length&&void 0!==arguments[1]&&arguments[1];var e=document.getElementById("".concat(this.elementId,"_mask")),i=document.getElementById("".concat(this.elementId,"_content")),n=document.getElementById(this.elementId);if(n&&(n.style.zIndex=999),e.classList.add("active"),i.classList.add("active"),WebsyUtils.getElementPos(i).bottom>window.innerHeight&&i.classList.add("on-top"),!0!==this.options.disableSearch){var s=document.getElementById("".concat(this.elementId,"_search"));s&&s.focus()}this.options.onOpen&&this.options.onOpen(this.elementId)}},{key:"render",value:function(){this.elementId?this.renderItems():console.log("No element Id provided for Websy Dropdown")}},{key:"renderItems",value:function(){var t,i=this,e=this.options.items.map(function(t,e){return"\n <li data-index='".concat(t.index,"' class='websy-dropdown-item ").concat((t.classes||[]).join(" ")," ").concat(-1!==i.selectedItems.indexOf(t.index)?"active":"","'>").concat(t.label,"</li>\n ")}).join(""),n=document.getElementById("".concat(this.elementId,"_items"));n&&(n.innerHTML=e),1===this.selectedItems.length&&(t=this.options.items[this.selectedItems[0]]),this.updateHeader(t)}},{key:"updateHeader",value:function(t){for(var e=this,i=document.getElementById(this.elementId),n=document.getElementById("".concat(this.elementId,"_header")),s=document.getElementById("".concat(this.elementId,"_headerLabel")),o=document.getElementById("".concat(this.elementId,"_selectedItems")),a=document.getElementById("".concat(this.elementId,"_input")),l=i.querySelectorAll(".websy-dropdown-item"),r=0;r<l.length;r++){l[r].classList.remove("active");var c=l[r].getAttribute("data-index");-1!==this.selectedItems.indexOf(+c)&&l[r].classList.add("active")}if(s&&(s.innerHTML=this.options.label),n&&(n.classList.remove("one-selected"),n.classList.remove("multi-selected"),1===this.selectedItems.length?n.classList.add("one-selected"):1<this.selectedItems.length&&(!0===this.options.showCompleteSelectedList?n.classList.add("one-selected"):n.classList.add("multi-selected"))),o)if(1===this.selectedItems.length)t&&(o.innerHTML=t.label,o.setAttribute("data-info",t.label),a.value=t.value);else if(1<this.selectedItems.length)if(!0===this.options.showCompleteSelectedList){var h=this.selectedItems.map(function(t){return e.options.items[t].label||e.options.items[t].value}).join(this.options.multiValueDelimiter),d=this.selectedItems.map(function(t){return e.options.items[t].value||e.options.items[t].label}).join(this.options.multiValueDelimiter);o.innerHTML=h,o.setAttribute("data-info",h),a.value=d}else{var p=this.selectedItems.map(function(t){return e.options.items[t].value||e.options.items[t].label}).join(this.options.multiValueDelimiter);o.innerHTML="".concat(this.selectedItems.length," selected"),o.setAttribute("data-info",""),a.value=p}else o.innerHTML="",o.setAttribute("data-info",""),a.value=""}},{key:"updateSelected",value:function(t){if(null!=t){var e=this.selectedItems.indexOf(t);!1===this.options.multiSelect?this.selectedItems=[t]:-1!==e?this.selectedItems.splice(e,1):this.selectedItems.push(t)}var i=this.options.items[t];this.updateHeader(i),i&&this.options.onItemSelected&&this.options.onItemSelected(i,this.selectedItems,this.options.items,this.options),!0===this.options.closeAfterSelection&&this.close()}},{key:"selections",set:function(t){this.selectedItems=t||[]}},{key:"data",set:function(t){this.options.items=(t||[]).map(function(t,e){return void 0===t.index&&(t.index=e),t}),0===document.getElementById("".concat(this.elementId,"_items")).childElementCount?this.render():(0===this.options.items.length&&(this.options.items=[{label:this.options.noItemsText||"No Items"}]),this.renderItems())},get:function(){return this.options.items}}]),l}(),WebsyForm=function(){function s(t,e){_classCallCheck(this,s);var i={submit:{text:"Save",classes:""},useRecaptcha:!1,clearAfterSave:!1,fields:[],mode:"add",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.elementId=t;var n=document.getElementById(t);n&&(n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("keyup",this.handleKeyUp.bind(this)),n.addEventListener("keydown",this.handleKeyDown.bind(this)),this.render())}else console.log("No element Id provided")}return _createClass(s,[{key:"cancelForm",value:function(){document.getElementById("".concat(this.elementId,"Form")).reset(),this.options.cancelFn&&this.options.cancelFn(this.elementId)}},{key:"checkRecaptcha",value:function(){var n=this;return new Promise(function(e,i){!0===n.options.useRecaptcha?grecaptcha.ready(function(){grecaptcha.execute(ENVIRONMENT.RECAPTCHA_KEY,{action:"submit"}).then(function(t){n.apiService.add("google/checkrecaptcha",{grecaptcharesponse:t}).then(function(t){t.success&&!0===t.success?e(!0):i(!1)})},function(t){i(t)})}):e(!0)})}},{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:"handleClick",value:function(t){t.target.classList.contains("submit")?(t.preventDefault(),this.submitForm()):t.target.classList.contains("cancel")&&(t.preventDefault(),this.cancelForm())}},{key:"handleKeyDown",value:function(t){"enter"===t.key&&this.submitForm()}},{key:"handleKeyUp",value:function(t){}},{key:"processComponents",value:function(t,e){var i=this;0===t.length?e():t.forEach(function(t){void 0!==WebsyDesigns[t.component]&&(t.instance=new WebsyDesigns[t.component]("".concat(i.elementId,"_input_").concat(t.field,"_component"),t.options))})}},{key:"recaptchaReady",value:function(){document.getElementById("".concat(this.elementId,"_recaptcha"))&&grecaptcha.render("".concat(this.elementId,"_recaptcha"),{sitekey:ENVIRONMENT.RECAPTCHA_KEY,callback:this.validateRecaptcha.bind(this)})}},{key:"render",value:function(t,e){var i=this,n=document.getElementById(this.elementId),s=[];if(n){var o='\n <form id="'.concat(this.elementId,'Form" class="websy-form ').concat(this.options.classes||"",'">\n ');this.options.fields.forEach(function(t,e){t.component?(s.push(t),o+="\n ".concat(0<e?"--\x3e":"","<div class='").concat(t.classes||"","'>\n ").concat(t.label?'<label for="'.concat(t.field,'">').concat(t.label,"</label>"):"","\n <div id='").concat(i.elementId,"_input_").concat(t.field,"_component' class='form-component'></div>\n </div>\x3c!--\n ")):"longtext"===t.type?o+="\n ".concat(0<e?"--\x3e":"","<div class='").concat(t.classes||"","'>\n ").concat(t.label?'<label for="'.concat(t.field,'">').concat(t.label,"</label>"):"",'\n <textarea\n id="').concat(i.elementId,"_input_").concat(t.field,'"\n ').concat(!0===t.required?"required":"",' \n placeholder="').concat(t.placeholder||"",'"\n name="').concat(t.field,'" \n ').concat((t.attributes||[]).join(" "),'\n class="websy-input websy-textarea"\n ></textarea>\n </div>\x3c!--\n '):o+="\n ".concat(0<e?"--\x3e":"","<div class='").concat(t.classes||"","'>\n ").concat(t.label?'<label for="'.concat(t.field,'">').concat(t.label,"</label>"):"",'\n <input \n id="').concat(i.elementId,"_input_").concat(t.field,'"\n ').concat(!0===t.required?"required":"",' \n type="').concat(t.type||"text",'" \n class="websy-input" \n ').concat((t.attributes||[]).join(" "),'\n name="').concat(t.field,'" \n placeholder="').concat(t.placeholder||"",'"\n value="').concat(t.value||"",'"\n valueAsDate="').concat("date"===t.type?t.value:"",'"\n oninvalidx="this.setCustomValidity(\'').concat(t.invalidMessage||"Please fill in this field.","')\"\n />\n </div>\x3c!--\n ")}),o+='\n --\x3e<button class="websy-btn submit '.concat(this.options.submit.classes||"",'">').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||"",'">').concat(this.options.cancel.text||"Cancel","</button>\n ")),o+=' \n </form>\n <div id="'.concat(this.elementId,'_validationFail" class="websy-validation-failure"></div>\n '),!0===this.options.useRecaptcha&&(o+="\n <div id='".concat(this.elementId,"_recaptcha'></div>\n ")),n.innerHTML=o,this.processComponents(s,function(){i.options.useRecaptcha})}}},{key:"submitForm",value:function(){var s=this,o=document.getElementById("".concat(this.elementId,"Form"));!0===o.reportValidity()&&this.checkRecaptcha().then(function(t){if(!0===t){new FormData(o);var i={};if(new FormData(o).forEach(function(t,e){i[e]=t}),s.options.url){var e,n=[s.options.url];"update"===s.options.mode&&n.push(s.options.id),n.push(i),(e=s.apiService)[s.options.mode].apply(e,n).then(function(t){!0===s.options.clearAfterSave&&o.reset(),s.options.onSuccess.call(s,t)},function(t){console.log("Error submitting form data:",t),s.options.onError.call(s,t)})}else s.options.submitFn&&s.options.submitFn(i,function(){!0===s.options.clearAfterSave&&o.reset()})}else console.log("bad recaptcha")})}},{key:"validateRecaptcha",value:function(t){this.recaptchaValue=t}},{key:"data",set:function(i){var n=this;this.options.fields||(this.options.fields=[]);var t=function(e){n.options.fields.forEach(function(t){t.field===e&&(t.value=i[e],document.getElementById("".concat(n.elementId,"_input_").concat(t.field)).value=t.value)})};for(var e in i)t(e);this.render()}}]),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" style="enable-background:new 0 0 500 500;" xml:space="preserve">\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 '},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.classList.remove("loading"),t.innerHTML=""}},{key:"render",value:function(){if(this.elementId){var t=document.getElementById(this.elementId),e="\n\t\t\t<div class='websy-loading-container ".concat((this.options.classes||[]).join(" "),"'>\n\t\t\t\t<div class='websy-ripple'>\n\t\t\t\t\t<div></div>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t\t<h4>").concat(this.options.title||"Loading...","</h4>\n\t\t");if(this.options.messages)for(var i=0;i<this.options.messages.length;i++)e+="<p>".concat(this.options.messages[i],"</p>");e+="\n\t\t\t</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 s(t,e){_classCallCheck(this,s);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 n={useRecaptcha:this.options.useRecaptcha||ENVIRONMENT.useRecaptcha||!1,submit:{text:this.options.buttonText||"Log in",classes:(this.options.buttonClasses||[]).join(" ")||""},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.loginForm=new WebsyDesigns.WebsyForm("".concat(this.elementId,"_container"),_extends({},this.options,n))}else console.error("No element with ID ".concat(this.elementId," found for WebsyLogin component."))}return _createClass(s,[{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)}}]),s}(),WebsyNavigationMenu=function(){function n(t,e){if(_classCallCheck(this,n),this.options=_extends({},{collapsible:!1,orientation:"horizontal",parentMap:{},childIndentation:10,activeSymbol:"none"},e),t){var i=document.getElementById(t);i&&(this.elementId=t,this.lowestLevel=0,this.flatItems=[],this.itemMap={},this.flattenItems(0,this.options.items),console.log(this.flatItems),i.classList.add("websy-".concat(this.options.orientation,"-list-container")),i.classList.add("websy-menu"),this.options.align&&i.classList.add("".concat(this.options.align,"-align")),Array.isArray(this.options.classes)&&(this.options.classes=this.options.classes.join(" ")),this.options.classes&&this.options.classes.split(" ").forEach(function(t){return i.classList.add(t)}),i.addEventListener("click",this.handleClick.bind(this)),this.render())}else console.log("No element Id provided for Websy Menu")}return _createClass(n,[{key:"flattenItems",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0;e[t]&&(this.lowestLevel=Math.max(i,this.lowestLevel),e[t].id=e[t].id||"".concat(this.elementId,"_").concat(this.normaliseString(e[t].text)),this.itemMap[e[t].id]=e[t],e[t].level=i,this.flatItems.push(e[t]),e[t].items&&this.flattenItems(0,e[t].items,i+1),this.flattenItems(++t,e,i))}},{key:"handleClick",value:function(t){if((t.target.classList.contains("websy-menu-icon")||"svg"===t.target.nodeName||"rect"===t.target.nodeName)&&this.toggleMobileMenu(),t.target.classList.contains("websy-menu-header")){var e=this.itemMap[t.target.id];t.target.classList.contains("trigger-item")&&e.level===this.lowestLevel&&this.toggleMobileMenu("remove"),e.items&&(t.target.classList.toggle("menu-open"),this.toggleMenu(e.id))}t.target.classList.contains("websy-menu-mask")&&this.toggleMobileMenu()}},{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 <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>\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 ')),e+=this.renderBlock(this.options.items,"main",0),e+="</div>",t.innerHTML=e}}},{key:"renderBlock",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0,n="\n\t\t <ul class='websy-".concat(this.options.orientation,"-list ").concat(0<i?"websy-child-list":""," ").concat("main"!==e?"websy-menu-collapsed":"","' id='").concat(this.elementId,"_").concat(e,"_list'\n\t ");"main"!==e&&(n+=" data-collapsed='".concat("main"!==e?"true":"false","'")),n+=">";for(var s=0;s<t.length;s++){var o=!0===t[s].default?"active":"",a=this.normaliseString(t[s].text),l=t[s].id;Array.isArray(t[s].classes)&&(t[s].classes=t[s].classes.join(" ")),n+="\n\t\t\t<li class='websy-".concat(this.options.orientation,"-list-item ").concat(!0===t[s].alwaysOpen?"always-open":"","'>\n\t\t\t\t<div class='websy-menu-header ").concat(t[s].classes||""," ").concat(""," ").concat(o,"' \n\t\t\t\t\t\t id='").concat(l,"' \n\t\t\t\t\t\t data-id='").concat(a,"'\n data-menu-id='").concat(this.elementId,"_").concat(a,"_list'\n\t\t\t\t\t\t data-popout-id='").concat(1<i?e:a,"'\n\t\t\t\t\t\t data-text='").concat(!0!==t[s].isLink?t[s].text:"","'\n\t\t\t\t\t\t style='padding-left: ").concat(i*this.options.childIndentation,"px'\n\t\t\t\t\t\t ").concat(t[s].attributes&&t[s].attributes.join(" ")||"","\n >\n "),"horizontal"===this.options.orientation&&(n+=t[s].text),"line"===this.options.activeSymbol&&(n+="\n <span class='selected-bar'></span>\n "),"triangle"===this.options.activeSymbol&&(n+="\n <span class='active-square'></span>\n "),n+=" \n <span class='".concat(t[s].items&&0<t[s].items.length?"menu-carat":"","'></span>\n "),"vertical"===this.options.orientation&&(n+="\n \n "),!0===t[s].isLink&&t[s].href&&(n+="<a href='".concat(t[s].href,"'>").concat(t[s].text,"</a>")),n+=" \n\t\t\t\t</div>\n\t\t ",t[s].items&&(n+=this.renderBlock(t[s].items,a,t[s].level+1)),e&&"main"!==e&&(this.options.parentMap[a]||(this.options.parentMap[a]=e)),n+="\n\t\t\t</li>\n\t\t"}return n+="</ul>"}},{key:"toggleMenu",value:function(t){var e=document.getElementById("".concat(t,"_list"));e&&e.classList.toggle("websy-menu-collapsed")}},{key:"toggleMobileMenu",value:function(t){void 0===t&&(t="toggle");var e=document.getElementById("".concat(this.elementId));e&&e.classList[t]("open"),this.options.onToggle&&this.options.onToggle(t)}}]),n}(),Pager=function(){function o(t,e){var i=this;_classCallCheck(this,o),this.elementId=t;this.options=_extends({},{pageSizePrefix:"Show",pageSizeSuffix:"rows",pageSizeOptions:[{label:"10",value:10},{label:"20",value:20},{label:"50",value:50},{label:"100",value:100}],selectedPageSize:20,pageLabel:"Page",showPageSize:!0,activePage:0,pages:[]},e);var n=document.getElementById(this.elementId);if(n){var s='\n <div class="websy-pager-container">\n ';!0===this.options.showPageSize&&(s+="\n ".concat(this.options.pageSizePrefix,' <div id="').concat(this.elementId,'_pageSizeSelector" class="websy-page-selector"></div> ').concat(this.options.pageSizeSuffix," \n ")),s+='\n <ul id="'.concat(this.elementId,'_pageList" class="websy-page-list"></ul> \n </div> \n '),n.innerHTML=s,n.addEventListener("click",this.handleClick.bind(this)),!0===this.options.showPageSize&&(this.pageSizeSelector=new WebsyDesigns.Dropdown("".concat(this.elementId,"_pageSizeSelector"),{selectedItems:[this.options.pageSizeOptions.indexOf(this.options.selectedPageSize)],items:this.pageSizeOptions.map(function(t){return{label:t.toString(),value:t}}),allowClear:!1,disableSearch:!0,onItemSelected:function(t){i.options.onChangePageSize&&i.options.onChangePageSize(t.value)}})),this.render()}}return _createClass(o,[{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-page-num")){var e=+t.target.getAttribute("data-index");this.options.onSetPage&&this.options.onSetPage(this.options.pages[e])}}},{key:"render",value:function(){var i=this,t=document.getElementById("".concat(this.elementId,"_pageList"));if(t){var e=this.options.pages.map(function(t,e){return'<li data-index="'.concat(e,'" class="websy-page-num ').concat(i.options.activePage===e?"active":"",'">').concat(e+1,"</li>")}),n=0;8<this.options.pages.length&&(n=Math.max(0,this.options.activePage-4),e=e.splice(n,10),0<n?e.splice(0,0,"<li>".concat(this.options.pageLabel,' </li><li data-page="0" class="websy-page-num">First</li><li>...</li>')):e.splice(0,0,"<li>".concat(this.options.pageLabel," </li>")),this.options.activePage<this.options.pages.length-1&&(e.push("<li>...</li>"),e.push('<li data-page="'.concat(this.options.pages.length-1,'" class="websy-page-num">Last</li>')))),t.innerHTML=e.join("")}}}]),o}(),WebsyPDFButton=function(){function n(t,e){_classCallCheck(this,n);this.elementId=t,this.options=_extends({},{classes:[],wait:0,buttonText:"Download",directDownload:!1},e),this.service=new WebsyDesigns.APIService("/pdf");var i=document.getElementById(this.elementId);i&&(i.addEventListener("click",this.handleClick.bind(this)),e.html?i.innerHTML=e.html:(i.innerHTML="\n \x3c!--<form style='display: none;' id='".concat(this.elementId,"_form' action='/pdf' method='POST'>\n <input id='").concat(this.elementId,"_pdfHeader' value='' name='header'>\n <input id='").concat(this.elementId,"_pdfHTML' value='' name='html'>\n <input id='").concat(this.elementId,"_pdfFooter' value='' name='footer'>\n </form>--\x3e\n <button class='websy-btn websy-pdf-button ").concat(this.options.classes.join(" "),'\'>\n Create PDF\n <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n viewBox="0 0 184.153 184.153" style="enable-background:new 0 0 184.153 184.153;" xml:space="preserve">\n <g>\n <g>\n <g>\n <path d="M129.318,0H26.06c-1.919,0-3.475,1.554-3.475,3.475v177.203c0,1.92,1.556,3.475,3.475,3.475h132.034\n c1.919,0,3.475-1.554,3.475-3.475V34.131C161.568,22.011,140.771,0,129.318,0z M154.62,177.203H29.535V6.949h99.784\n c7.803,0,25.301,18.798,25.301,27.182V177.203z"/>\n <path d="M71.23,76.441c15.327,0,27.797-12.47,27.797-27.797c0-15.327-12.47-27.797-27.797-27.797\n c-15.327,0-27.797,12.47-27.797,27.797C43.433,63.971,55.902,76.441,71.23,76.441z M71.229,27.797\n c11.497,0,20.848,9.351,20.848,20.847c0,0.888-0.074,1.758-0.183,2.617l-18.071-2.708L62.505,29.735\n C65.162,28.503,68.112,27.797,71.229,27.797z M56.761,33.668l11.951,19.869c0.534,0.889,1.437,1.49,2.462,1.646l18.669,2.799\n c-3.433,6.814-10.477,11.51-18.613,11.51c-11.496,0-20.847-9.351-20.847-20.847C50.381,42.767,52.836,37.461,56.761,33.668z"/>\n <rect x="46.907" y="90.339" width="73.058" height="6.949"/>\n <rect x="46.907" y="107.712" width="48.644" height="6.949"/>\n <rect x="46.907" y="125.085" width="62.542" height="6.949"/>\n </g>\n </g>\n </g> \n </svg>\n </button> \n <div id=\'').concat(this.elementId,"_loader'></div>\n <div id='").concat(this.elementId,"_popup'></div>\n "),this.loader=new WebsyDesigns.WebsyLoadingDialog("".concat(this.elementId,"_loader"),{classes:["global-loader"]}),this.popup=new WebsyDesigns.WebsyPopupDialog("".concat(this.elementId,"_popup"))))}return _createClass(n,[{key:"handleClick",value:function(t){var s=this;t.target.classList.contains("websy-pdf-button")?(this.loader.show(),setTimeout(function(){if(s.options.targetId){var t=document.getElementById(s.options.targetId);if(t){var e={options:{}};if(s.options.pdfOptions&&(e.options=_extends({},s.options.pdfOptions)),s.options.header)if(s.options.header.elementId){var i=document.getElementById(s.options.header.elementId);i&&(e.header=i.outerHTML,s.options.header.css&&(e.options.headerCSS=s.options.header.css))}else s.options.header.html?(e.header=s.options.header.html,s.options.header.css&&(e.options.headerCSS=s.options.header.css)):e.header=s.options.header;if(s.options.footer)if(s.options.footer.elementId){var n=document.getElementById(s.options.footer.elementId);n&&(e.footer=n.outerHTML,s.options.footer.css&&(e.options.footerCSS=s.options.footer.css))}else e.footer=s.options.footer;e.html=t.outerHTML,s.service.add("",e,{responseType:"blob"}).then(function(t){s.loader.hide();var e,i=new Blob([t],{type:"application/pdf"}),n="\n <div class='text-center websy-pdf-download'>\n <div>Your file is ready to download</div>\n <a href='".concat(URL.createObjectURL(i),"' target='_blank'\n ");!0===s.options.directDownload&&(e="function"==typeof s.options.fileName?s.options.fileName()||"Export":s.options.fileName||"Export",n+="download='".concat(e,".pdf'"));n+="\n >\n <button class='websy-btn download-pdf'>".concat(s.options.buttonText,"</button>\n </a>\n </div>\n "),s.popup.show({message:n,mask:!0})},function(t){console.error(t)})}}},this.options.wait)):t.target.classList.contains("download-pdf")&&(this.popup.hide(),this.options.onClose&&this.options.onClose())}},{key:"render",value:function(){}}]),n}(),WebsyPopupDialog=function(){function n(t,e){if(_classCallCheck(this,n),this.DEFAULTS={buttons:[],classes:[],style:""},this.options=_extends({},this.DEFAULTS,e),t){this.closeOnOutsideClick=!0;var i=document.getElementById(t);this.elementId=t,i.addEventListener("click",this.handleClick.bind(this))}else console.log("No element Id provided for Websy Popup")}return _createClass(n,[{key:"hide",value:function(){document.getElementById(this.elementId).innerHTML=""}},{key:"handleClick",value:function(t){if(t.target.classList.contains("websy-btn")){var e=t.target.getAttribute("data-index"),i=this.options.buttons[e];if(i&&i.fn){if(void 0!==this.options.collectData){var n=document.getElementById("".concat(this.elementId,"_collect"));n&&(i.collectedData=n.value)}!0!==i.preventClose&&this.hide(),i.fn(i)}else i&&!0!==i.preventClose&&this.hide()}else!0===this.closeOnOutsideClick&&this.hide()}},{key:"render",value:function(){if(this.elementId){var t=document.getElementById(this.elementId),e="";if(!0===this.options.mask&&(e+="<div class='websy-mask'></div>"),e+="\n\t\t\t<div class='websy-popup-dialog-container'>\n\t\t\t\t<div class='websy-popup-dialog ".concat(this.options.classes.join(" "),"' style='").concat(this.options.style,"'>\n\t\t"),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\t\t\t\t\t<button class='websy-btn ".concat((this.options.buttons[i].classes||[]).join(" "),"' data-index='").concat(i,"'>\n\t\t\t\t\t\t").concat(this.options.buttons[i].label,"\n\t\t\t\t\t</button>\n\t\t\t\t");e+="</div>"}e+="\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t",t.innerHTML=e}else console.log("No element Id provided for Websy Popup")}},{key:"show",value:function(t){t&&(this.options=_extends({},this.DEFAULTS,t)),this.render()}}]),n}(),WebsyPubSub=function(){function i(t,e){_classCallCheck(this,i),this.options=_extends({},e),t?(this.elementId=t,this.subscriptions={}):console.log("No element Id provided")}return _createClass(i,[{key:"publish",value:function(t,e){this.subscriptions[t]&&this.subscriptions[t].forEach(function(t){t(e)})}},{key:"subscribe",value:function(t,e){this.subscriptions[t]||(this.subscriptions[t]=[]),this.subscriptions[t].push(e)}}]),i}(),ResponsiveText=function(){function n(t,e){var i=this;_classCallCheck(this,n);this.options=_extends({},{textAlign:"center",verticalAlign:"flex-end",wrapText:!1},e),this.elementId=t,this.canvas=document.createElement("canvas"),window.addEventListener("resize",function(){return i.render()}),document.getElementById(this.elementId)&&this.render()}return _createClass(n,[{key:"css",value:function(t,e){return window.getComputedStyle(t,null).getPropertyValue(e)}},{key:"render",value:function(t){if(void 0!==t&&(this.options.text=t),this.options.text){var e=!1,i=document.getElementById(this.elementId),n=this.canvas.getContext("2d"),s=0,o=!1,a=i.clientHeight;if("string"==typeof this.options.maxHeight&&-1!==this.options.maxHeight.indexOf("%")){var l=+this.options.maxHeight.replace("%","");isNaN(l)||(this.options.maxHeight=Math.floor(a*(l/100)))}else"string"==typeof this.options.maxHeight&&-1!==this.options.maxHeight.indexOf("px")&&(this.options.maxHeight=+this.options.maxHeight.replace("px",""));if("string"==typeof this.options.minHeight&&-1!==this.options.minHeight.indexOf("%")){var r=+this.options.minHeight.replace("%","");isNaN(r)||(this.options.minHeight=Math.floor(a*(r/100)))}else"string"==typeof this.options.minHeight&&-1!==this.options.minHeight.indexOf("px")&&(this.options.minHeight=+this.options.minHeight.replace("px",""));var c=this.css(i,"font-family"),h=this.css(i,"font-weight"),d=i.clientWidth;if(0===d&&i.style.maxWidth&&"auto"!==i.style.maxWidth&&0<i.parentElement.clientWidth){var p=i.style.maxWidth;-1!==p.indexOf("calc")?(-1!==(p=(p=p.replace("calc(","").replace(")","")).split(" "))[0].indexOf("px")?d=p[0].replace("px",""):-1!==p[0].indexOf("%")&&(d=i.parentElement.clientWidth*(+p[0].replace("%","")/100)),p[2]&&p[4]&&("-"===p[2]&&-1!==p[4].indexOf("px")&&(d-=+p[4].replace("px","")),"+"===p[2]&&-1!==p[4].indexOf("px")&&(d+=+p[4].replace("px","")))):-1!==p.indexOf("px")?d=+p.replace("px",""):-1!==p.indexOf("%")&&(d=i.parentElement.clientWidth*(+p.replace("%","")/100))}for(var u=i.clientHeight;!1===o;){s++,n.font="".concat(h," ").concat(s,"px ").concat(c);var m=n.measureText(this.options.text);if(-1!==navigator.userAgent.indexOf("Safari"))for(var g=!1,f=i;!1===g;)0<f.clientHeight?(u=f.clientHeight,g=!0):f.parentNode?f=f.parentNode:g=!0;void 0!==this.options.maxHeight&&s===this.options.maxHeight?(s=this.options.maxHeight,a=m.actualBoundingBoxAscent,o=!0):(m.width>d||m.actualBoundingBoxAscent>=u)&&(s--,a=m.actualBoundingBoxAscent,o=!0)}if(""===this.options.minHeight&&(this.options.minHeight=void 0),void 0!==this.options.minHeight)if(this.options.minHeight>s&&!0===this.options.wrapText){o=!(e=!0),s=this.options.minHeight;var v=this.options.text.match(/ /g);if(v&&0<v.length){v=v.length;for(var y=this.options.text.split(" ");!1===o;){s++,n.font="".concat(h," ").concat(s,"px ").concat(c);for(var b=v;0<b;b--){var w=[y.slice(0,b).join(" "),y.slice(b,y.length).join(" ")].reduce(function(t,e){return t.length>e.length?t:e},""),x=n.measureText(w);if(-1!==navigator.userAgent.indexOf("Safari"))for(var I=!1,L=i;!1===I;)0<L.clientHeight?(u=L.clientHeight,I=!0):L.parentNode?L=L.parentNode:I=!0;if(void 0!==this.options.maxHeight&&s===this.options.maxHeight){s=this.options.maxHeight,a=x.actualBoundingBoxAscent,o=!0;break}if(x.width>d||x.actualBoundingBoxAscent>=u/2*.75){s--,a=x.actualBoundingBoxAscent,o=!0;break}}}}void 0!==this.options.minHeight&&this.options.minHeight>s&&(s=this.options.minHeight)}else this.options.minHeight>s&&(s=this.options.minHeight);var k=Math.min(u,a);i.innerHTML="\n <div \n class='websy-responsive-text' \n style='\n justify-content: ".concat(this.options.verticalAlign,";\n font-size: ").concat(s,"px;\n font-weight: ").concat(h||"normal",";\n '\n > \n <span\n style='\n white-space: ").concat(!0===this.options.wrapText?"normal":"nowrap",";\n height: ").concat(Math.floor(!0===e?k*(1/3)*2:k),"px;\n line-height: ").concat(Math.ceil(!0===e?1.2*s:k),"px;\n justify-content: ").concat(this.options.textAlign,";\n text-align: ").concat(this.options.textAlign,";\n '\n >").concat(this.options.text,"</span>\n </div>\n ")}}}]),n}(),WebsyResultList=function(){function s(t,e){var i=this;_classCallCheck(this,s);if(this.options=_extends({},{listeners:{click:{}}},e),this.elementId=t,this.rows=[],this.apiService=new WebsyDesigns.APIService("/api"),this.templateService=new WebsyDesigns.APIService(""),t){var n=document.getElementById(t);n&&n.addEventListener("click",this.handleClick.bind(this)),"object"===_typeof(e.template)&&e.template.url?this.templateService.get(e.template.url).then(function(t){i.options.template=t,i.render()}):this.render()}else console.log("No element Id provided for Websy Search List")}return _createClass(s,[{key:"appendData",value:function(t){var e=this.rows.length;this.rows=this.rows.concat(t);var i=this.buildHTML(t,e);document.getElementById(this.elementId).innerHTML+=i.replace(/\n/g,"")}},{key:"buildHTML",value:function(s){var o=this,a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,c="";return this.options.template&&(0<s.length?s.forEach(function(l,e){var r="".concat(0<e?"--\x3e":"").concat(o.options.template).concat(e<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 n=[],s=!0;-1!==i.indexOf("===")?n=i.split("==="):-1!==i.indexOf("!==")?(n=i.split("!=="),s=!1):-1!==i.indexOf("==")?n=i.split("=="):-1!==i.indexOf("!=")&&(n=i.split("!="),s=!1);var o=!0;if(2===n.length&&(isNaN(n[1])||(n[1]=+n[1]),"true"===n[1]&&(n[1]=!0),"false"===n[1]&&(n[1]=!1),"string"==typeof n[1]&&(-1!==n[1].indexOf('"')?n[1]=n[1].replace(/"/g,""):-1!==n[1].indexOf("'")&&(n[1]=n[1].replace(/'/g,""))),!0===s?void 0!==l[n[0]]&&l[n[0]]===n[1]?o=!1:n[0]===n[1]&&(o=!1):!1===s&&void 0!==l[n[0]]&&l[n[0]]!==n[1]&&(o=!1)),!0===o)r=r.replace(t[0],"");else{var a=t[0];a=a.replace("</if>","").replace(/<\s*if[^>]*>/g,""),r=r.replace(t[0],a)}}}});var t=_toConsumableArray(r.matchAll(/(\sdata-event=["|']\w.+)["|']/g));for(var i in t.forEach(function(t){t[0]&&-1<t.index&&(r=r.replace(t[0],"".concat(t[0]," data-id=").concat(a+e)))}),l){var n=new RegExp("{".concat(i,"}"),"gm");r=r.replace(n,l[i])}c+=r}):this.options.noRowsHTML&&(c+=this.options.noRowsHTML)),c}},{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:"handleClick",value:function(t){var e=this;if(t.target.classList.contains("clickable")){var i=t.target.getAttribute("data-event");if(i){i=i.split("(");var n,s=[],o=t.target.getAttribute("data-id");if(i[1]&&(i[1]=i[1].replace(")",""),s=i[1].split(",")),i=i[0],s=s.map(function(t){return"string"!=typeof t&&"number"!=typeof t?e.rows[+o]&&(t=e.rows[+o][t]):"string"==typeof t&&(t=t.replace(/"/g,"").replace(/'/g,"")),t}),t.target.classList.contains("clickable")&&this.options.listeners.click[i])t.stopPropagation(),(n=this.options.listeners.click[i]).call.apply(n,[this,t,this.rows[+o]].concat(_toConsumableArray(s)))}}}},{key:"render",value:function(){var e=this;this.options.entity?this.apiService.get(this.options.entity).then(function(t){e.rows=t.rows,e.resize()}):this.resize()}},{key:"resize",value:function(){var t=this.buildHTML(this.rows);document.getElementById(this.elementId).innerHTML=t.replace(/\n/g,"")}},{key:"data",set:function(t){this.rows=t||[],this.render()},get:function(){return this.rows}}]),s}(),WebsyRouter=function(){function e(t){_classCallCheck(this,e);this.triggerIdList=[],this.viewIdList=[],this.previousPath="",this.previousView="",this.currentView="",this.currentViewMain="",this.currentParams={},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},t),this.options.onShow&&this.on("show",this.options.onShow),this.options.onHide&&this.on("hide",this.options.onHide),this.init()}return _createClass(e,[{key:"addGroup",value:function(e){var i=this;if(!this.groups[e]){var t=document.querySelectorAll('.websy-view[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){if(void 0!==t){var e={path:"",items:{}},i="";this.currentParams&&this.currentParams.items?(e.items=_extends({},this.currentParams.items,t),i=this.buildUrlPath(e.items)):0<Object.keys(t).length&&(e.items=_extends({},t),i=this.buildUrlPath(e.items)),this.currentParams=e;var n=this.currentView;this.options.urlPrefix&&(n="/".concat(this.options.urlPrefix,"/").concat(n)),history.pushState({inputPath:n},n,"".concat(n,"?").concat(i))}}},{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('.websy-view[data-view="'.concat(t,'"]'));if(e)for(var i=e.querySelectorAll(".websy-view[data-group]"),n=0;n<i.length;n++){var s=i[n].getAttribute("data-group"),o=i[n].getAttribute("data-view");this.groups[s]||this.addGroup(s),-1===this.groups[s].views.indexOf(o)&&this.groups[s].views.push(o)}}},{key:"formatParams",value:function(t){var e={path:t,items:{}};if(void 0!==t){for(var i=t.split("&"),n=0;n<i.length;n++){var s=i[n].split("=");e.items[s[0]]=s[1]}return this.currentParams=e}}},{key:"generateId",value:function(t){for(var e="abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789",i=[],n=0;n<6;n++){var s=Math.floor(62*Math.random());i.push(e[s])}return"".concat(t,"_").concat(i.join(""))}},{key:"getActiveViewsFromParent",value:function(t){var e=[];for(var i in this.checkChildGroups(t),this.groups)this.groups[i].parent===t&&(this.groups[i].activeView?e.push({view:this.groups[i].activeView,group:i}):e.push({view:this.groups[i].views[0],group:i}));return e}},{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=this.formatParams(this.queryParams);""===this.currentPath&&""!==this.options.defaultView?t=this.options.defaultView:""!==this.currentPath&&(t=this.currentPath),void 0!==e&&"?".concat(e.path),this.currentView=t,this.currentViewMain=t,"/"!==this.currentView&&""!==this.currentView||(this.currentView=this.options.defaultView),"/"!==this.currentViewMain&&""!==this.currentViewMain||(this.currentViewMain=this.options.defaultView),""!==t&&this.showView(t,e,"main")}},{key:"handleFocus",value:function(t){this.controlPressed=!1}},{key:"handleKeyDown",value:function(t){switch(t.key){case"Control":case"Meta":this.controlPressed=!0}}},{key:"handleKeyUp",value:function(t){this.controlPressed=!1}},{key:"hideChildren",value:function(t,e){for(var i=this.getActiveViewsFromParent(t),n=0;n<i.length;n++)this.hideTriggerItems(i[n].view,e),this.hideViewItems(i[n].view,e),this.publish("hide",[i[n].view])}},{key:"hideView",value:function(t,e){this.hideChildren(t,e),this.previousView!==this.currentView?(this.hideTriggerItems(t,e),this.hideViewItems(t,e),this.publish("hide",[t])):e!==this.options.defaultGroup&&(this.hideTriggerItems(t,e),this.hideViewItems(t,e),this.publish("hide",[t]))}},{key:"prepComponent",value:function(t,e){var i=document.getElementById("".concat(t,"_content"));if(i)return"";var n="\n <article id='".concat(t,"_content' class='websy-content-article'></article>\n <div id='").concat(t,"_loading' class='websy-loading-container'><div class='websy-ripple'><div></div><div></div></div></div>\n ");e.help&&""!==e.help&&(n+="\n <Help not yet supported>\n "),e.tooltip&&e.tooltip.value&&""!==e.tooltip.value&&(n+='\n <div class="websy-info '.concat(this.options.tooltip.classes.join(" ")||"",'" data-info="').concat(this.options.tooltip.value,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><title>ionicons-v5-e</title><path d="M256,56C145.72,56,56,145.72,56,256s89.72,200,200,200,200-89.72,200-200S366.28,56,256,56Zm0,82a26,26,0,1,1-26,26A26,26,0,0,1,256,138Zm48,226H216a16,16,0,0,1,0-32h28V244H228a16,16,0,0,1,0-32h32a16,16,0,0,1,16,16V332h28a16,16,0,0,1,0,32Z"/></svg>\n </div> \n ')),(i=document.getElementById(t))&&(i.innerHTML=n)}},{key:"showComponents",value:function(t){var e=this;this.options.views&&this.options.views[t]&&this.options.views[t].components&&this.options.views[t].components.forEach(function(t){void 0===t.instance?(e.prepComponent(t.elementId,t.options),t.instance=new t.Component(t.elementId,t.options)):t.instance.render&&t.instance.render()})}},{key:"showView",value:function(t,e,i){this.activateItem(t,this.options.triggerClass),this.activateItem(t,this.options.viewClass);for(var n=this.getActiveViewsFromParent(t),s=0;s<n.length;s++)this.activateItem(n[s].view,this.options.triggerClass),this.activateItem(n[s].view,this.options.viewClass),this.showComponents(n[s].view),this.publish("show",[n[s].view,null,i]);this.previousView===this.currentView&&"main"===i||(this.showComponents(t),this.publish("show",[t,e,i]))}},{key:"reloadCurrentView",value:function(){this.showView(this.currentView,this.currentParams,"main")}},{key:"navigate",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"main",i=2<arguments.length?arguments[2]:void 0,n=3<arguments.length?arguments[3]:void 0;void 0===n&&(n=!1),this.popped=n;var s,o=!1,a=(t.indexOf("?"),t);t===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)):this.currentParams={},!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.currentParams={});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=""),this.previousView=this.currentView,this.previousPath=this.currentPath,this.groups[e]&&(!1===o&&(s=this.groups[e].activeView),this.previousPath=this.groups[e].activeView),e&&this.groups[e]&&e!==this.options.defaultGroup&&(this.groups[e].activeView=a),!1===o&&"main"===e&&(this.currentView=t),"main"===e&&(this.currentViewMain=t),"/"===this.currentView&&(this.currentView=this.options.defaultView),"/"===this.currentViewMain&&(this.currentViewMain=this.options.defaultView),!0===o?""!==this.previousPath&&this.hideView(this.previousPath,e):this.hideView(this.previousView,e),!(!0===o&&a===s||(!1===o?this.showView(this.currentView,this.currentParams,e):a&&""!==a&&this.showView(a,null,e),!0===this.usesHTMLSuffix&&(t=window.location.pathname.split("/").pop()+t),this.currentPath===a&&l===this.currentParams.path||e!==this.options.defaultGroup||!1!==n))){var c=t;this.options.urlPrefix&&(c="/"===c?"":"/".concat(c),t="/"===t?"":"/".concat(t),c="/".concat(this.options.urlPrefix).concat(c).replace(/\/\//g,"/"),t="/".concat(this.options.urlPrefix).concat(t).replace(/\/\//g,"/")),this.currentParams&&this.currentParams.path?c+="?".concat(this.currentParams.path):this.queryParams&&!0===this.options.persistentParameters&&(c+="?".concat(this.queryParams)),history.pushState({inputPath:t},t,c)}}else window.open("".concat(window.location.origin,"/").concat(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:"subscribe",value:function(t,e){this.options.subscribers[t].push(e)}},{key:"hideTriggerItems",value:function(t,e){this.hideItems(this.options.triggerClass,e)}},{key:"hideViewItems",value:function(t,e){this.hideItems(t,e)}},{key:"hideItems",value:function(t,e){var i;if(i=_toConsumableArray(e&&"main"!==e?document.querySelectorAll("[".concat(this.options.groupAttribute,"='").concat(e,"']")):document.querySelectorAll("[".concat(this.options.viewAttribute,"='").concat(t,"']"))))for(var n=0;n<i.length;n++)i[n].classList.remove(this.options.activeClass)}},{key:"activateItem",value:function(t,e){var i=document.getElementsByClassName(e);if(i)for(var n=0;n<i.length;n++)if(i[n].attributes[this.options.viewAttribute]&&i[n].attributes[this.options.viewAttribute].value===t){i[n].classList.add(this.options.activeClass);break}}},{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):""}}]),e}(),WebsySignup=function(){function n(t,e){_classCallCheck(this,n);if(this.elementId=t,this.options=_extends({},{loginType:"email",classes:[],url:"auth/signup"},e),this.options.fields||(this.options.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}]),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:this.options.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(n,[{key:"submitForm",value:function(t,e,i){console.log(t),console.log(e,i)}}]),n}(),Switch=function(){function n(t,e){_classCallCheck(this,n),this.elementId=t;this.options=_extends({},{enabled:!1},e);var i=document.getElementById(this.elementId);i&&(i.addEventListener("click",this.handleClick.bind(this)),this.render())}return _createClass(n,[{key:"disable",value:function(){this.options.enabled=!1,this.render()}},{key:"enable",value:function(){this.options.enabled=!0,this.render()}},{key:"handleClick",value:function(t){this.options.enabled=!this.options.enabled;var e=!0===this.options.enabled?"add":"remove";document.getElementById("".concat(this.elementId,"_switch")).classList[e]("enabled"),this.options.onToggle&&this.options.onToggle(this.options.enabled)}},{key:"on",value:function(t,e){this.options.subscribers[t]||(this.options.subscribers[t]=[]),this.options.subscribers[t].push(e)}},{key:"publish",value:function(t,e){this.options.subscribers[t].forEach(function(t){t.apply(null,e)})}},{key:"render",value:function(){var t=document.getElementById(this.elementId);t&&(t.innerHTML='\n <div class="websy-switch-container">\n <div class="websy-switch-label">'.concat(this.options.label||"",'</div>\n <div id="').concat(this.elementId,'_switch" class="websy-switch ').concat(!0===this.options.enabled?"enabled":"",'"></div> \n </div>\n '))}}]),n}(),WebsyTemplate=function(){function s(t,e){var i=this;_classCallCheck(this,s);if(this.options=_extends({},{listeners:{click:{}}},e),this.elementId=t,this.templateService=new WebsyDesigns.APIService(""),t){var n=document.getElementById(t);n&&n.addEventListener("click",this.handleClick.bind(this)),"object"===_typeof(e.template)&&e.template.url?this.templateService.get(e.template.url).then(function(t){i.options.template=t,i.render()}):this.render()}else console.log("No element Id provided for Websy Template")}return _createClass(s,[{key:"buildHTML",value:function(){var l=this,t="";if(this.options.template){var r=this.options.template;_toConsumableArray(r.matchAll(/<\s*if[^>]*>([\s\S]*?)<\s*\/\s*if>/g)).forEach(function(t){if(t[0]&&-1<t.index){var e=t[0].match(/(\scondition=["|']\w.+)["|']/g);if(e&&e[0]){var i=e[0].trim().replace("condition=","");'"'===i.split("")[0]?i=i.replace(/"/g,""):"'"===i.split("")[0]&&(i=i.replace(/'/g,""));var n=[],s=!0;-1!==i.indexOf("===")?n=i.split("==="):-1!==i.indexOf("!==")?(n=i.split("!=="),s=!1):-1!==i.indexOf("==")?n=i.split("=="):-1!==i.indexOf("!=")&&(n=i.split("!="),s=!1);var o=!0;if(2===n.length&&(isNaN(n[1])||(n[1]=+n[1]),"true"===n[1]&&(n[1]=!0),"false"===n[1]&&(n[1]=!1),"string"==typeof n[1]&&(-1!==n[1].indexOf('"')?n[1]=n[1].replace(/"/g,""):-1!==n[1].indexOf("'")&&(n[1]=n[1].replace(/'/g,""))),!0===s?void 0!==l.options.data[n[0]]&&l.options.data[n[0]]===n[1]?o=!1:n[0]===n[1]&&(o=!1):!1===s&&void 0!==l.options.data[n[0]]&&l.options.data[n[0]]!==n[1]&&(o=!1)),!0===o)r=r.replace(t[0],"");else{var a=t[0];a=a.replace("</if>","").replace(/<\s*if[^>]*>/g,""),r=r.replace(t[0],a)}}}});var e=_toConsumableArray(r.matchAll(/(\sdata-event=["|']\w.+)["|']/g));for(var i in e.forEach(function(t){t[0]&&-1<t.index&&(r=r.replace(t[0],"".concat(t[0])))}),this.options.data){var n=new RegExp("{".concat(i,"}"),"gm");n&&(r=r.replace(n,this.options.data[i]))}t=r}return t}},{key:"handleClick",value:function(t){}},{key:"render",value:function(){this.resize()}},{key:"resize",value:function(){var t=this.buildHTML();document.getElementById(this.elementId).innerHTML=t.replace(/\n/g,""),this.options.readyCallbackFn&&this.options.readyCallbackFn()}}]),s}(),WebsyUtils={createIdentity:function(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:6,e="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=0;n<t;n++)e+=i.charAt(Math.floor(Math.random()*i.length));return e},getElementPos:function(t){var e=t.getBoundingClientRect(),i=window.pageXOffset||document.documentElement.scrollLeft,n=window.pageYOffset||document.documentElement.scrollTop;return{top:e.top+n,left:e.left+i,bottom:e.top+n+t.clientHeight,right:e.left+i+t.clientWidth}},getLightDark:function(t){var e,i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"#000000",n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"#ffffff",s=0,o=0,a=0;return-1!==t.indexOf("#")?(e=(e=t=t.replace("#","")).split(""),s=parseInt(e[0]+e[1],16),o=parseInt(e[2]+e[3],16),a=parseInt(e[4]+e[5],16)):-1!==t.toLowerCase().indexOf("rgb")&&(s=(e=(e=t.replace(/rgb\(/gi,"").replace(/\)/gi,"")).split(","))[0],o=e[1],a=e[2]),186<.299*s+.587*o+.114*a?i:n},measureText:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"12px";isNaN(i)||(i="".concat(i,"px"));var n="<div style='display: inline-block; width: auto; font-size: ".concat(i,"'>").concat(t,"</div>"),s=document.createElement("div");s.style.position="absolute",s.style.visibility="hidden",s.style.transform="rotate(".concat(e,"deg)"),s.innerHTML=n,document.body.appendChild(s);var o=s.getBoundingClientRect();return s.remove(),o},parseUrlParams:function(){for(var t={},e=window.location.search.replace("?","").split("&"),i=0;i<e.length;i++){var n=e[i].split("=");t[n[0]]=n[1]}return t},buildUrlParams:function(t){var e=[];for(var i in t)e.push("".concat(i,"=").concat(t[i]));return e.join("&")},fromQlikDate:function(t){var e=new Date(Math.round(864e5*(t-25569)));return e.setTime(e.getTime()+6e4*e.getTimezoneOffset()),e},toReduced:function(t){var e,i,n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,s=2<arguments.length&&void 0!==arguments[2]&&arguments[2],o=3<arguments.length&&void 0!==arguments[3]&&arguments[3],a=4<arguments.length?arguments[4]:void 0,l=[{divider:1e18,suffix:"E"},{divider:1e15,suffix:"P"},{divider:1e12,suffix:"T"},{divider:1e9,suffix:"G"},{divider:1e6,suffix:"M"},{divider:1e3,suffix:"K"}],r="";if(a){var c=function(t){for(var e="",i=1,n=0;n<l.length;n++)if(t>=l[n].divider){i=l[n].divider,e=l[n].suffix;break}return{divider:i,suffix:e}}(a);i=c.divider,r=c.suffix}if(0===t)e=0;else if(a)e=t/i;else if(t<1e3&&t%1==0)e=t;else{e=t;for(var h=0;h<l.length;h++)if(t>=l[h].divider){e=t/l[h].divider,r=l[h].suffix;break}}if(!0===s&&(e*=100),0<e%1&&(n=1),e<1&&(n=function(t){var e=0;if(0===(t=Math.abs(t)))return 0;for(;t<10;)e++,t*=10;return e}(e)),e=(+e).toFixed(n),!0===o)return e;return e.replace&&(e=e.replace(/\B(?=(\d{3})+(?!\d))/g,",")),"".concat(e).concat(r).concat(!0===s?"%":"")},toQlikDateNum:function(t){return Math.floor(t.getTime()/864e5+25570)}},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=[];var n=document.getElementById(this.elementId);if(n){var s="\n <div id='".concat(this.elementId,"_tableContainer' class='websy-vis-table ").concat("pages"===this.options.paging?"with-paging":"",'\'>\n \x3c!--<div class="download-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11h5l-9 10-9-10h5v-11h8v11zm1 11h-10v2h10v-2z"/></svg>\n </div>--\x3e\n <table>\n <thead id="').concat(this.elementId,'_head">\n </thead>\n <tbody id="').concat(this.elementId,'_body">\n </tbody>\n <tfoot id="').concat(this.elementId,'_foot">\n </tfoot>\n </table> \n <div id="').concat(this.elementId,"_errorContainer\" class='websy-vis-error-container'>\n <div>\n <div id=\"").concat(this.elementId,'_errorTitle"></div>\n <div id="').concat(this.elementId,'_errorMessage"></div>\n </div> \n </div>\n <div id="').concat(this.elementId,'_loadingContainer"></div>\n </div>\n ');"pages"===this.options.paging&&(s+='\n <div class="websy-table-paging-container">\n Show <div id="'.concat(this.elementId,'_pageSizeSelector" class="websy-vis-page-selector"></div> rows\n <ul id="').concat(this.elementId,'_pageList" class="websy-vis-page-list"></ul>\n </div>\n '));var o=[10,20,50,100,200];n.innerHTML=s,"pages"===this.options.paging&&(this.pageSizeSelector=new WebsyDesigns.Dropdown("".concat(this.elementId,"_pageSizeSelector"),{selectedItems:[o.indexOf(this.options.pageSize)],items:o.map(function(t){return{label:t.toString(),value:t}}),allowClear:!1,disableSearch:!0,onItemSelected:function(t){i.options.onChangePageSize&&i.options.onChangePageSize(t.value)}})),n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mouseout",this.handleMouseOut.bind(this)),n.addEventListener("mousemove",this.handleMouseMove.bind(this)),document.getElementById("".concat(this.elementId,"_tableContainer")).addEventListener("scroll",this.handleScroll.bind(this)),this.loadingDialog=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loadingContainer")),this.render()}else console.error("No element found with ID ".concat(this.elementId))}return _createClass(a,[{key:"appendRows",value:function(t){var o=this;this.hideError();var e="";t&&(e+=t.map(function(t,s){return"<tr>"+t.map(function(t,e){if(!1!==o.options.columns[e].show){var i="";if(t.style&&(i+=t.style),o.options.columns[e].width&&(i+="width: ".concat(o.options.columns[e].width,"; ")),t.backgroundColor&&(i+="background-color: ".concat(t.backgroundColor,"; "),t.color||(i+="color: ".concat(WebsyDesigns.Utils.getLightDark(t.backgroundColor),"; "))),t.color&&(i+="color: ".concat(t.color,"; ")),!0===o.options.columns[e].showAsLink&&""!==t.value.trim())return"\n <td \n data-row-index='".concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >\n <a href='").concat(t.value,"' target='").concat(!0===o.options.columns[e].openInNewTab?"_blank":"_self","'>").concat(t.displayText||o.options.columns[e].linkText||t.value,"</a>\n </td>\n ");if(!0!==o.options.columns[e].showAsNavigatorLink&&!0!==o.options.columns[e].showAsRouterLink||""===t.value.trim()){var n=t.value;return!0===o.options.columns[e].showAsImage&&(t.value="\n <img src='".concat(t.value,"'>\n ")),"\n <td \n data-info='".concat(n,"' \n data-row-index='").concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.value,"</td>\n ")}return"\n <td \n data-view='".concat(t.value,"' \n data-row-index='").concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='websy-trigger trigger-item ").concat(!0===o.options.columns[e].clickable?"clickable":""," ").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.displayText||o.options.columns[e].linkText||t.value,"</td>\n ")}}).join("")+"</tr>"}).join(""),this.data=this.data.concat(t),this.rowCount=this.data.length),document.getElementById("".concat(this.elementId,"_body")).innerHTML+=e}},{key:"buildSearchIcon",value:function(t){return'\n <div>\n <svg\n class="tableSearchIcon"\n data-field="'.concat(t,'"\n xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"\n >\n <path d="M0 0h24v24H0z" fill="none"/>\n <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>\n </svg>\n </div>\n ')}},{key:"handleClick",value:function(t){if(t.target.classList.contains("download-button")&&window.viewManager.dataExportController.exportData(this.options.model),t.target.classList.contains("sortable-column")){var e=+t.target.getAttribute("data-index"),i=this.options.columns[e];this.options.onSort?this.options.onSort(t,i,e):this.internalSort(i,e)}else if(t.target.classList.contains("tableSearchIcon")){var n=t.target.getAttribute("data-field");window.viewManager.views.global.objects[1].instance.show(n,{x:t.pageX,y:t.pageY},function(){t.target.classList.remove("active")})}else if(t.target.classList.contains("websy-page-num")){var s=+t.target.getAttribute("data-page");this.options.onSetPage&&this.options.onSetPage(s)}else{var o=+t.target.getAttribute("data-col-index"),a=+t.target.getAttribute("data-row-index");this.options.onClick&&this.options.onClick(t,{cell:this.data[a][o],row:this.data[a],column:this.options.columns[o],colIndex:o,rowIndex:a})}}},{key:"handleMouseMove",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn)),"TD"===t.target.tagName&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.classList.add("websy-delayed-info")},500))}},{key:"handleMouseOut",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn))}},{key:"handleScroll",value:function(t){this.options.onScroll&&"scroll"===this.options.paging&&this.options.onScroll(t)}},{key:"hideError",value:function(){var t=document.getElementById("".concat(this.elementId,"_errorContainer"));t&&t.classList.remove("active")}},{key:"hideLoading",value:function(){this.loadingDialog.hide()}},{key:"internalSort",value:function(t,i){if(this.options.columns.forEach(function(t,e){t.activeSort=e===i}),t.sortFunction)this.data=t.sortFunction(this.data,t);else{var n="value",s="asc"===t.sort?"desc":"asc";t.sort=s;var o=t.sortType||"alphanumeric";t.sortProp&&(n=t.sortProp),this.data.sort(function(t,e){switch(o){case"numeric":return"asc"===s?t[i][n]-e[i][n]:e[i][n]-t[i][n];default:return"asc"===s?t[i][n]>e[i][n]?1:-1:t[i][n]<e[i][n]?1:-1}})}this.render(this.data)}},{key:"render",value:function(t){var i=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 n="<tr>"+this.options.columns.map(function(t,e){if(!1!==t.show)return"\n <th ".concat(t.width?'style="width: '+(t.width||"auto")+';"':"",'>\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?i.buildSearchIcon(t.qGroupFieldDefs[0]):"","--\x3e\n </div>\n </th>\n ")}).join("")+"</tr>";if(document.getElementById("".concat(this.elementId,"_head")).innerHTML=n,"pages"===this.options.paging){var s=document.getElementById("".concat(this.elementId,"_pageList"));if(s){var o=new Array(this.options.pageCount).fill("").map(function(t,e){return'<li data-page="'.concat(e,'" class="websy-page-num ').concat(i.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 </li><li data-page="0" class="websy-page-num">First</li><li>...</li>'):o.splice(0,0,"<li>Page </li>"),this.options.pageNum<this.options.pageCount-1&&(o.push("<li>...</li>"),o.push('<li data-page="'.concat(this.options.pageCount-1,'" class="websy-page-num">Last</li>')))),s.innerHTML=o.join("")}}t&&this.appendRows(t)}}},{key:"showError",value:function(t){var e=document.getElementById("".concat(this.elementId,"_errorContainer"));if(e&&e.classList.add("active"),t.title){var i=document.getElementById("".concat(this.elementId,"_errorTitle"));i&&(i.innerHTML=t.title)}if(t.message){var n=document.getElementById("".concat(this.elementId,"_errorTitle"));n&&(n.innerHTML=t.message)}}},{key:"showLoading",value:function(t){this.loadingDialog.show(t)}}]),a}(),WebsyTable2=function(){function a(t,e){var i=this;_classCallCheck(this,a);this.elementId=t,this.options=_extends({},{pageSize:20,paging:"scroll",cellSize:35,virtualScroll:!1,leftColumns:0},e),this.rowCount=0,this.busy=!1,this.tooltipTimeoutFn=null,this.data=[];var n=document.getElementById(this.elementId);if(n){var s="\n <div id='".concat(this.elementId,"_tableContainer' class='websy-vis-table ").concat("pages"===this.options.paging?"with-paging":""," ").concat(!0===this.options.virtualScroll?"with-virtual-scroll":"",'\'>\n \x3c!--<div class="download-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11h5l-9 10-9-10h5v-11h8v11zm1 11h-10v2h10v-2z"/></svg>\n </div>--\x3e\n <table id="').concat(this.elementId,'_table"> \n <thead id="').concat(this.elementId,'_head">\n </thead>\n <tbody id="').concat(this.elementId,'_body">\n </tbody>\n <tfoot id="').concat(this.elementId,'_foot">\n </tfoot>\n </table> \n <div id="').concat(this.elementId,"_errorContainer\" class='websy-vis-error-container'>\n <div>\n <div id=\"").concat(this.elementId,'_errorTitle"></div>\n <div id="').concat(this.elementId,'_errorMessage"></div>\n </div> \n </div>\n <div id="').concat(this.elementId,'_vScrollContainer" class="websy-v-scroll-container">\n <div id="').concat(this.elementId,'_vScrollHandle" class="websy-scroll-handle websy-scroll-handle-y"></div>\n </div>\n <div id="').concat(this.elementId,'_hScrollContainer" class="websy-h-scroll-container">\n <div id="').concat(this.elementId,'_hScrollHandle" class="websy-scroll-handle websy-scroll-handle-x"></div>\n </div>\n <div id="').concat(this.elementId,'_dropdownContainer"></div>\n <div id="').concat(this.elementId,'_loadingContainer"></div>\n </div>\n ');"pages"===this.options.paging&&(s+='\n <div class="websy-table-paging-container">\n Show <div id="'.concat(this.elementId,'_pageSizeSelector" class="websy-vis-page-selector"></div> rows\n <ul id="').concat(this.elementId,'_pageList" class="websy-vis-page-list"></ul>\n </div>\n '));var o=[10,20,50,100,200];n.innerHTML=s,"pages"===this.options.paging&&(this.pageSizeSelector=new WebsyDesigns.Dropdown("".concat(this.elementId,"_pageSizeSelector"),{selectedItems:[o.indexOf(this.options.pageSize)],items:o.map(function(t){return{label:t.toString(),value:t}}),allowClear:!1,disableSearch:!0,onItemSelected:function(t){i.options.onChangePageSize&&i.options.onChangePageSize(t.value)}})),n.addEventListener("click",this.handleClick.bind(this)),n.addEventListener("mouseout",this.handleMouseOut.bind(this)),n.addEventListener("mousemove",this.handleMouseMove.bind(this)),n.addEventListener("mousedown",this.handleMouseDown.bind(this)),n.addEventListener("mouseup",this.handleMouseUp.bind(this)),document.addEventListener("mouseup",this.handleGlobalMouseUp.bind(this)),document.getElementById("".concat(this.elementId,"_tableContainer")).addEventListener("scroll",this.handleScroll.bind(this)),this.loadingDialog=new WebsyDesigns.LoadingDialog("".concat(this.elementId,"_loadingContainer")),this.render()}else console.error("No element found with ID ".concat(this.elementId))}return _createClass(a,[{key:"appendRows",value:function(t){var o=this;this.hideError();var e=document.getElementById("".concat(this.elementId,"_body")),i="";if(t&&(i+=t.map(function(t,s){return"<tr>"+t.map(function(t,e){if(!1!==o.options.columns[e].show){var i="height: ".concat(o.options.cellSize,"px; line-height: ").concat(o.options.cellSize,"px;");if(t.style&&(i+=t.style),o.options.columns[e].width&&(i+="width: ".concat(o.options.columns[e].width,"; ")),t.backgroundColor&&(i+="background-color: ".concat(t.backgroundColor,"; "),t.color||(i+="color: ".concat(WebsyDesigns.Utils.getLightDark(t.backgroundColor),"; "))),t.color&&(i+="color: ".concat(t.color,"; ")),!0===o.options.columns[e].showAsLink&&""!==t.value.trim())return"\n <td \n data-row-index='".concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >\n <a href='").concat(t.value,"' target='").concat(!0===o.options.columns[e].openInNewTab?"_blank":"_self","'>").concat(t.displayText||o.options.columns[e].linkText||t.value,"</a>\n </td>\n ");if(!0!==o.options.columns[e].showAsNavigatorLink&&!0!==o.options.columns[e].showAsRouterLink||""===t.value.trim()){var n=t.value;return!0===o.options.columns[e].showAsImage&&(t.value="\n <img src='".concat(t.value,"'>\n ")),"\n <td \n data-info='".concat(n,"' \n data-row-index='").concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.value,"</td>\n ")}return"\n <td \n data-view='".concat(t.value,"' \n data-row-index='").concat(o.rowCount+s,"' \n data-col-index='").concat(e,"' \n class='websy-trigger trigger-item ").concat(!0===o.options.columns[e].clickable?"clickable":""," ").concat(o.options.columns[e].classes||"","' \n style='").concat(i,"'\n colspan='").concat(t.colspan||1,"'\n rowspan='").concat(t.rowspan||1,"'\n >").concat(t.displayText||o.options.columns[e].linkText||t.value,"</td>\n ")}}).join("")+"</tr>"}).join(""),this.data=this.data.concat(t),this.rowCount=this.data.length),e.innerHTML+=i,!0===this.options.virtualScroll){if("pages"!==this.options.paging){var n=document.getElementById("".concat(this.elementId,"_head"));document.getElementById("".concat(this.elementId,"_vScrollContainer")).style.top="".concat(n.clientHeight,"px")}for(var s=document.getElementById("".concat(this.elementId,"_hScrollContainer")),a=0,l=e.querySelectorAll("tr:first-of-type td"),r=0;r<this.options.leftColumns;r++)a+=l[r].offsetWidth||l[r].clientWidth;s.style.left="".concat(a,"px")}}},{key:"buildSearchIcon",value:function(t){return'\n <div class="websy-table-search-icon" data-col-index="'.concat(t,'">\n <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><title>ionicons-v5-f</title><path d="M221.09,64A157.09,157.09,0,1,0,378.18,221.09,157.1,157.1,0,0,0,221.09,64Z" style="fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:32px"/><line x1="338.29" y1="338.29" x2="448" y2="448" style="fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"/></svg>\n </div>\n ')}},{key:"handleClick",value:function(t){if(t.target.classList.contains("download-button")&&window.viewManager.dataExportController.exportData(this.options.model),t.target.classList.contains("sortable-column")){var e=+t.target.getAttribute("data-index"),i=+t.target.getAttribute("data-sort-index"),n=this.options.columns[e];this.options.onSort?this.options.onSort(t,n,e,i):this.internalSort(n,e)}else if(t.target.classList.contains("websy-table-search-icon")){var s=+t.target.getAttribute("data-col-index");this.options.columns[s].onSearch&&this.options.columns[s].onSearch(t,this.options.columns[s])}else if(t.target.classList.contains("clickable")){var o=+t.target.getAttribute("data-col-index"),a=+t.target.getAttribute("data-row-index");this.options.onClick&&this.options.onClick(t,this.data[a][o],this.data[a],this.options.columns[o])}else if(t.target.classList.contains("websy-page-num")){var l=+t.target.getAttribute("data-page");this.options.onSetPage&&this.options.onSetPage(l)}else if(t.target.classList.contains("websy-h-scroll-container")){console.log("scroll handle clicked",t);var r=t.clientX,c=t.target.getBoundingClientRect().left,h=document.getElementById("".concat(this.elementId,"_hScrollHandle")),d=r-c-h.clientWidth/2;d=Math.max(0,Math.min(d,t.target.clientWidth-h.clientWidth)),h.style.left="".concat(d,"px"),this.options.onScrollX&&this.options.onScrollX(d)}}},{key:"handleMouseDown",value:function(t){t.target.classList.contains("websy-scroll-handle")&&(this.scrolling=!0,document.getElementById(this.elementId).classList.add("scrolling"));if(t.target.classList.contains("websy-scroll-handle-x")){var e=document.getElementById("".concat(this.elementId,"_hScrollHandle"));this.handleXStart=e.offsetLeft,this.scrollXStart=t.clientX,this.scrollDirection="X"}}},{key:"handleGlobalMouseUp",value:function(t){this.scrolling=!1;var e=document.getElementById(this.elementId);e&&e.classList.remove("scrolling")}},{key:"handleMouseUp",value:function(t){this.scrolling=!1,document.getElementById(this.elementId).classList.remove("scrolling")}},{key:"handleMouseMove",value:function(t){if(this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn)),"TD"===t.target.tagName&&(this.tooltipTimeoutFn=setTimeout(function(){t.target.classList.add("websy-delayed-info")},500)),!0===this.scrolling&&!0===this.options.virtualScroll){document.getElementById("".concat(this.elementId,"_tableContainer"));if("X"===this.scrollDirection){var e=document.getElementById("".concat(this.elementId,"_hScrollHandle")),i=0;i=this.handleXStart+(t.clientX-this.scrollXStart)<this.columnParameters.scrollableWidth-e.offsetWidth?(e.style.left="".concat(this.handleXStart+(t.clientX-this.scrollXStart),"px"),this.handleXStart+(t.clientX-this.scrollXStart)):this.columnParameters.scrollableWidth-e.offsetWidth,this.handleXStart+(t.clientX-this.scrollXStart)<0&&(i=e.style.left=0),this.options.onScrollX&&this.options.onScrollX(i)}}}},{key:"handleMouseOut",value:function(t){this.tooltipTimeoutFn&&(t.target.classList.remove("websy-delayed-info"),clearTimeout(this.tooltipTimeoutFn))}},{key:"handleScroll",value:function(t){this.options.onScroll&&"scroll"===this.options.paging&&this.options.onScroll(t)}},{key:"hideError",value:function(){var t=document.getElementById("".concat(this.elementId,"_tableContainer"));t&&t.classList.remove("has-error"),document.getElementById("".concat(this.elementId,"_table")).classList.remove("hidden");var e=document.getElementById("".concat(this.elementId,"_errorContainer"));e&&e.classList.remove("active")}},{key:"hideLoading",value:function(){this.loadingDialog.hide()}},{key:"internalSort",value:function(t,i){if(this.options.columns.forEach(function(t,e){t.activeSort=e===i}),t.sortFunction)this.data=t.sortFunction(this.data,t);else{var n="value",s="asc"===t.sort?"desc":"asc";t.sort=s;var o=t.sortType||"alphanumeric";t.sortProp&&(n=t.sortProp),this.data.sort(function(t,e){switch(o){case"numeric":return"asc"===s?t[i][n]-e[i][n]:e[i][n]-t[i][n];default:return"asc"===s?t[i][n]>e[i][n]?1:-1:t[i][n]<e[i][n]?1:-1}})}this.render(this.data)}},{key:"render",value:function(t){var n=this;if(this.options.columns){if(this.hideError(),this.data=[],this.rowCount=0,!(document.getElementById("".concat(this.elementId,"_body")).innerHTML="")===this.options.allowDownload){var e=document.getElementById(this.elementId);e?e.classList.add("allow-download"):e.classList.remove("allow-download")}var i="<tr>"+this.options.columns.map(function(t,e){if(!1!==t.show){var i="";return t.style&&(i+=t.style),t.width&&(i+="width: ".concat(t.width||"auto","; ")),'\n <th style="'.concat(i,'">\n <div class ="tableHeader">\n <div class="leftSection">\n <div\n class="tableHeaderField ').concat(-1!==["asc","desc"].indexOf(t.sort)?"sortable-column":"",'"\n data-sort-index="').concat(t.sortIndex||e,'"\n data-index="').concat(e,'"\n data-sort="').concat(t.sort,'" \n >\n ').concat(t.name,'\n </div>\n </div>\n <div class="').concat(t.activeSort?t.sort+" sortOrder":"",'"></div>\n ').concat(!0===t.searchable?n.buildSearchIcon(e):"","\n </div>\n </th>\n ")}}).join("")+"</tr>";document.getElementById("".concat(this.elementId,"_head")).innerHTML=i;var s=document.getElementById("".concat(this.elementId,"_dropdownContainer"));if(""===s.innerHTML){var o="";this.options.columns.forEach(function(t,e){t.searchable&&t.searchField&&(o+='\n <div id="'.concat(n.elementId,"_columnSearch_").concat(e,'" class="websy-modal-dropdown"></div>\n '))}),s.innerHTML=o}if("pages"===this.options.paging){var a=document.getElementById("".concat(this.elementId,"_pageList"));if(a){var l=new Array(this.options.pageCount).fill("").map(function(t,e){return'<li data-page="'.concat(e,'" class="websy-page-num ').concat(n.options.pageNum===e?"active":"",'">').concat(e+1,"</li>")}),r=0;8<this.options.pageCount&&(r=Math.max(0,this.options.pageNum-4),l=l.splice(r,10),0<r?l.splice(0,0,'<li>Page </li><li data-page="0" class="websy-page-num">First</li><li>...</li>'):l.splice(0,0,"<li>Page </li>"),this.options.pageNum<this.options.pageCount-1&&(l.push("<li>...</li>"),l.push('<li data-page="'.concat(this.options.pageCount-1,'" class="websy-page-num">Last</li>')))),a.innerHTML=l.join("")}}t&&this.appendRows(t)}}},{key:"showError",value:function(t){var e=document.getElementById("".concat(this.elementId,"_tableContainer"));e&&e.classList.add("has-error"),document.getElementById("".concat(this.elementId,"_table")).classList.add("hidden");var i=document.getElementById("".concat(this.elementId,"_errorContainer"));if(i&&i.classList.add("active"),t.title){var n=document.getElementById("".concat(this.elementId,"_errorTitle"));n&&(n.innerHTML=t.title)}if(t.message){var s=document.getElementById("".concat(this.elementId,"_errorMessage"));s&&(s.innerHTML=t.message)}}},{key:"setHorizontalScroll",value:function(t){var e=document.getElementById("".concat(this.elementId,"_hScrollHandle"));t.width&&(e.style.width="".concat(t.width,"px"))}},{key:"setWidth",value:function(t){var e=document.getElementById("".concat(this.elementId,"_table"));e&&(e.style.width="".concat(t,"px"))}},{key:"showLoading",value:function(t){this.loadingDialog.show(t)}},{key:"getColumnParameters",value:function(t){var i=this,e=document.getElementById("".concat(this.elementId,"_table"));e.style.tableLayout="auto",e.style.width="auto";var n=document.getElementById("".concat(this.elementId,"_head")),s=document.getElementById("".concat(this.elementId,"_body"));n.innerHTML='<tr style="visibility: hidden;">'+t.map(function(t,e){return'\n <th>\n <div class ="tableHeader">\n <div class="leftSection">\n <div\n class="tableHeaderField" \n >\n '.concat(t.value||"nbsp;","\n </div>\n </div> \n ").concat(!0===t.searchable?i.buildSearchIcon(e):"","\n </div>\n </th>\n ")}).join("")+"</tr>",s.innerHTML='<tr style="visibility: hidden;">'+t.map(function(t){return"\n <td \n style='height: ".concat(i.options.cellSize,"px; line-height: ").concat(i.options.cellSize,"px; padding: 10px 5px;'\n >").concat(t.value||" ","</td>\n ")}).join("")+"</tr>";for(var o=s.querySelectorAll("tr:first-of-type td"),a=document.getElementById("".concat(this.elementId,"_tableContainer")),l=o[0].offsetHeight||o[0].clientHeight,r=[],c=0,h=0,d=0;d<o.length;d++)d<this.options.leftColumns&&(h+=t[d].width||o[d].offsetWidth||o[d].clientWidth),r.push(t[d].width||o[d].offsetWidth||o[d].clientWidth),c+=t[d].width||o[d].offsetWidth||o[d].clientWidth;if(c<(a.offsetWidth||a.clientWidth)-h)for(var p=this.options.leftColumns;p<r.length;p++)r[p]=((a.offsetWidth||a.clientWidth)-h)/(r.length-this.options.leftColumns);return this.columnParameters={cellHeight:l,cellWidths:r,availableHeight:a.offsetHeight||a.clientHeight,availableWidth:a.offsetWidth||a.clientWidth,nonScrollableWidth:h,scrollableWidth:(a.offsetWidth||a.clientWidth)-h},s.innerHTML="",e.style.tableLayout="",e.style.width="",this.columnParameters}}]),a}(),WebsyChart=function(){function n(t,e){var r=this;_classCallCheck(this,n);if(this.elementId=t,this.options=_extends({},{margin:{top:10,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,fontSize:14,symbolSize:20,showTrackingLine:!0,showTooltip:!0,showLegend:!1,legendPosition:"bottom",tooltipWidth:200},e),this.leftAxis=null,this.rightAxis=null,this.topAxis=null,this.bottomAxis=null,t){this.invertOverride=function(t,e){var i="bottomAxis";"horizontal"===r.options.orientation&&(i="leftAxis");var n,s=r[i].step(),o=_toConsumableArray(r[i].domain());"horizontal"===r.options.orientation&&(o=o.reverse());for(var a=0;a<o.length;a++){var l=r[i](o[a])-s/2;if(l<t&&t<=l+s){n=a;break}}return n};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.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:"close",value:function(){this.leftAxisLayer.selectAll("*").remove(),this.rightAxisLayer.selectAll("*").remove(),this.bottomAxisLayer.selectAll("*").remove(),this.leftAxisLabel.selectAll("*").remove(),this.rightAxisLabel.selectAll("*").remove(),this.bottomAxisLabel.selectAll("*").remove(),this.plotArea.selectAll("*").remove(),this.areaLayer.selectAll("*").remove(),this.lineLayer.selectAll("*").remove(),this.barLayer.selectAll("*").remove(),this.labelLayer.selectAll("*").remove(),this.symbolLayer.selectAll("*").remove()}},{key:"createDomain",value:function(t){var e=[];if(void 0!==this.options.data[t].min&&void 0!==this.options.data[t].max&&(e=[this.options.data[t].min,this.options.data[t].max],!0===this.options.forceZero&&(e=[Math.min(0,this.options.data[t].min),this.options.data[t].max])),this.options.data[t].data&&(e=this.options.data[t].data.map(function(t){return t.value})),"Time"===this.options.data[t].scale){var i=this.options.data[t].data[0].value,n=this.options.data[t].data[this.options.data[t].data.length-1].value;e=[i=this.parseX(i),n=this.parseX(n)]}return e}},{key:"createIdentity",value:function(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:10,e="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=0;n<t;n++)e+=i.charAt(Math.floor(Math.random()*i.length));return e}},{key:"handleEventMouseOut",value:function(t,e){this.trackingLineLayer.select(".tracking-line").attr("stroke-opacity",0),this.tooltip.hide()}},{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 void this.tooltip.hide();var f=this[d].domain()[u];"horizontal"===this.options.orientation&&(f=_toConsumableArray(this[d].domain().reverse())[u]),this.options.data.series.forEach(function(e){if("Time"!==r.options.data[p].scale)h=r[d](r.parseX(f)),e.data.forEach(function(t){t.x.value===f&&(m||(m=t.x.value),t.y.color||(t.y.color=e.color),g.push(t.y))});else{var t=c(e.data,u,1),i=e.data[t-1],n=e.data[t];if("horizontal"===r.options.orientation&&(i=_toConsumableArray(e.data).reverse()[t-1],n=_toConsumableArray(e.data).reverse()[t]),i&&!n&&(h=r[d](r.parseX(i.x.value)),m=i.x.value,i.y.color||(i.y.color=e.color),g.push(i.y),void 0!==i.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(i.x.value))),n&&!i&&(h=r[d](r.parseX(n.x.value)),m=n.x.value,n.y.color||(n.y.color=e.color),g.push(n.y),void 0!==n.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(n.x.value))),i&&n){var s=r[d](r.parseX(i.x.value)),o=r[d](r.parseX(n.x.value)),a=Math.abs(s-o)/2;d3.pointer(l)[0]-s>=a?(h=o,m=n.x.value,void 0!==n.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(n.x.value)),n.y.color||(n.y.color=e.color),g.push(n.y)):(h=s,m=i.x.value,void 0!==n.x.value.getTime&&(m=d3.timeFormat(r.options.dateFormat||r.options.calculatedTimeFormatPattern)(n.x.value)),i.y.color||(i.y.color=e.color),g.push(i.y))}}}),e=" \n <ul>\n ",e+=g.map(function(t){return"\n <li>\n <i style='background-color: ".concat(t.color,";'></i>\n ").concat(t.tooltipLabel||"","<span> - ").concat(t.tooltipValue||t.value,"</span>\n </li>\n ")}).join(""),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:i.left=h+this.options.margin.left+this.options.margin.axisLeft+15,i.top=this.options.margin.top+this.options.margin.axisTop,"horizontal"===this.options.orientation){delete i.onLeft;var n=0;"Time"!==this.options.data[p].scale&&(n=this[d].bandwidth()/2),i={width:this.options.tooltipWidth,left:this.options.margin.left+this.options.margin.axisLeft+this.plotWidth-this.options.tooltipWidth,onTop:h>this.plotHeight/2,positioning:"vertical"},h>this.plotHeight/2?i.bottom=h+this.options.margin.top+this.options.margin.axisTop:i.top=h+this.options.margin.top+this.options.margin.axisTop+15+n}this.tooltip.setHeight(this.plotHeight),this.options.showTooltip&&this.tooltip.show(m,e,i),"Time"!==this.options.data[p].scale&&(h+=this[d].bandwidth()/2);var s=h,o=h,a=0,v=this.plotHeight;"horizontal"===this.options.orientation&&(s=0,o=this.plotWidth,v=a=h),this.trackingLineLayer.select(".tracking-line").attr("x1",s).attr("x2",o).attr("y1",a).attr("y2",v).attr("stroke-width",1).attr("stroke-dasharray","4 2").attr("stroke","#cccccc").attr("stroke-opacity",1)}}},{key:"prep",value:function(){this.leftAxisLayer=this.svg.append("g").attr("class","left-axis-layer"),this.rightAxisLayer=this.svg.append("g").attr("class","right-axis-layer"),this.bottomAxisLayer=this.svg.append("g").attr("class","bottom-axis-layer"),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"),this.areaLayer=this.svg.append("g").attr("class","area-layer"),this.lineLayer=this.svg.append("g").attr("class","line-layer"),this.barLayer=this.svg.append("g").attr("class","bar-layer"),this.labelLayer=this.svg.append("g").attr("class","label-layer"),this.symbolLayer=this.svg.append("g").attr("class","symbol-layer"),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.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 i=this;if(void 0!==t&&(this.options=_extends({},this.options,t)),this.options.data){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.attr("class","y-axis"),this.rightAxisLayer.attr("class","y-axis"),this.bottomAxisLayer.attr("class","x-axis")):(this.leftAxisLayer.attr("class","x-axis"),this.rightAxisLayer.attr("class","x-axis"),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 n=this.options.data.series.map(function(t,e){return{value:t.label||t.key,color:t.color||i.options.colors[e%i.options.colors.length]}});"top"!==this.options.legendPosition&&"bottom"!==this.options.legendPosition||this.legendArea.style("width","100%"),"left"!==this.options.legendPosition&&"right"!==this.options.legendPosition||(this.legendArea.style("height","100%"),this.legendArea.style("width",this.legend.testWidth(d3.max(n.map(function(t){return t.value})))+"px")),this.legend.data=n;var s=this.legend.getSize();this.options.margin.legendTop=0,this.options.margin.legendBottom=0,this.options.margin.legendLeft=0,this.options.margin.legendRight=0,"top"===this.options.legendPosition&&(this.options.margin.legendTop=s.height,this.legendArea.style("top","0").style("bottom","unset")),"bottom"===this.options.legendPosition&&(this.options.margin.legendBottom=s.height,this.legendArea.style("top","unset").style("bottom","0")),"left"===this.options.legendPosition&&(this.options.margin.legendLeft=s.width,this.legendArea.style("left","0").style("right","unset").style("top","0")),"right"===this.options.legendPosition&&(this.options.margin.legendRight=s.width,this.legendArea.style("left","unset").style("right","0").style("top","0"))}this.svg.attr("width",this.width-this.options.margin.legendLeft-this.options.margin.legendRight).attr("height",this.height-this.options.margin.legendTop-this.options.margin.legendBottom).attr("transform","translate(".concat(this.options.margin.legendLeft,", ").concat(this.options.margin.legendTop,")")),this.longestLeft=0,this.longestRight=0,this.longestBottom=0,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.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.toString(),this.options.data.right.formatter&&(this.longestRight=this.options.data.right.formatter(this.options.data.right.max).toString()));var o=WebsyUtils.measureText(this.longestLeft,0,this.options.data.left&&this.options.data.left.fontSize||this.options.fontSize),a=WebsyUtils.measureText(this.longestRight,0,this.options.data.right&&this.options.data.right.fontSize||this.options.fontSize),l=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);this.options.margin.axisLeft=o.width,this.options.margin.axisRight=a.width,this.options.margin.axisBottom=l.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,l.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,l.width):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,l.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,this.leftAxisLayer.attr("transform","translate(".concat(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(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(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(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,")"));this.eventLayer.attr("x",0).attr("y",0).attr("width",this.plotWidth).attr("height",this.plotHeight).attr("fill-opacity","0");var r=this.createDomain("bottom");if(this.bottomAxis=d3["scale".concat(this.options.data.bottom.scale||"Band")]().domain(r).range([0,this.plotWidth]),this.bottomAxis.nice,this.bottomAxis.padding&&this.options.data.bottom.padding&&this.bottomAxis.padding(this.options.data.bottom.padding||0),0<this.options.margin.axisBottom){var c,h="";if(this.options.data.bottom.data)if("Time"===this.options.data.bottom.scale){var d=this.options.data.bottom.max.getTime()-this.options.data.bottom.min.getTime(),p=864e5;h=d<6e5?(c=d3.timeSecond.every(15),"%H:%M:%S"):d<36e5?(c=d3.timeMinute.every(1),"%H:%M"):d<p/6?(c=d3.timeMinute.every(10),"%H:%M"):d<p/2?(c=d3.timeMinute.every(30),"%H:%M"):d<p?(c=d3.timeHour.every(1),"%H:%M"):d<7*p?(c=d3.timeDay.every(1),"%d %b @ %H:%M"):d<14*p?(c=d3.timeDay.every(2),"%d %b %Y"):d<21*p?(c=d3.timeDay.every(3),"%d %b %Y"):d<28*p?(c=d3.timeDay.every(4),"%d %b %Y"):d<60*p?(c=d3.timeDay.every(7),"%d %b %Y"):(c=d3.timeMonth.every(1),"%b %Y")}else c=this.options.data.bottom.ticks||Math.min(this.options.data.bottom.data.length,5);else c=this.options.data.bottom.ticks||5;this.options.calculatedTimeFormatPattern=h;var u=d3.axisBottom(this.bottomAxis).ticks(c);this.options.data.bottom.formatter&&u.tickFormat(function(t){return i.options.data.bottom.formatter(t)}),this.bottomAxisLayer.call(u),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"))}var m=this.createDomain("left"),g=this.createDomain("right");if(this.leftAxis=d3["scale".concat(this.options.data.left.scale||"Linear")]().domain(m).range([this.plotHeight,0]),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 i.options.data.left.formatter&&(t=i.options.data.left.formatter(t)),t})),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 f=this.leftAxisLabel.append("text").attr("class","title").attr("x",1-this.plotHeight/2).attr("y",5).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<g.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-f.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<g.length&&(this.rightAxis=d3["scale".concat(this.options.data.right.scale||"Linear")]().domain(g).range([this.plotHeight,0]),this.rightAxis.nice&&this.rightAxis.nice(),console.log("axis right",this.options.margin.axisRight),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.left.ticks||5).tickFormat(function(t){return i.options.data.right.formatter&&(t=i.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<g.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)}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)})}}else;}},{key:"renderarea",value:function(e,t){var n=this,i=function(e,i,t){return d3.area().x(function(t){return n[e](n.parseX(t.x.value))}).y0(function(t){return n[i](0)}).y1(function(t){return n[i](isNaN(t.y.value)?0:t.y.value)}).curve(d3[t||n.options.curveStyle])},s="bottomAxis",o="secondary"===e.axis?"rightAxis":"leftAxis";"horizontal"===this.options.orienation&&(s="secondary"===e.axis?"rightAxis":"leftAxis",o="bottomAxis");var a=this.areaLayer.selectAll(".area_".concat(e.key)).data([e.data]);a.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),a.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",e.color).attr("stroke","transparent").style("fill-opacity",e.opacity||.5)}},{key:"renderbar",value:function(e,t){var i="bottomAxis",n="leftAxis",s=this.barLayer.selectAll(".bar_".concat(e.key)).data(e.data),o=new Array(this.options.data.series.length).fill(0);"horizontal"===this.options.orientation&&(i="leftAxis",n="bottomAxis");var a=this[i].bandwidth();function l(t,e){return"horizontal"===this.options.orientation?a:this[n](t.y.value)}function r(t,e){if("horizontal"!==this.options.orientation)return a;var i=this[n](t.y.value);return o[t.y.index]+=i,i}function c(t,e){return"horizontal"===this.options.orientation?"stacked"===this.options.grouping?this[n](t.y.accumulative):0:"grouped"!==this.options.grouping?this[i](this.parseX(t.x.value)):this[i](this.parseX(t.x.value))+e*a}function h(t,e){return"horizontal"===this.options.orientation?"grouped"!==this.options.grouping?this[i](this.parseX(t.x.value)):this[i](this.parseX(t.x.value))+(t.y.index||e)*a:"stacked"===this.options.grouping?this[n](t.y.accumulative):0}1<this.options.data.series.length&&"grouped"===this.options.grouping&&(a=a/this.options.data.series.length-4),s.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),s.attr("width",r.bind(this)).attr("height",l.bind(this)).attr("x",c.bind(this)).attr("y",h.bind(this)).transition(this.transition).attr("fill",e.color),s.enter().append("rect").attr("width",r.bind(this)).attr("height",l.bind(this)).attr("x",c.bind(this)).attr("y",h.bind(this)).attr("fill",e.color).attr("class",function(t){return"bar bar_".concat(e.key)})}},{key:"renderLabels",value:function(t,e){var i="bottomAxis",n="leftAxis",s=this;if("horizontal"===this.options.orientation&&(i="leftAxis",n="bottomAxis"),this.options.showLabels){var o=this.labelLayer.selectAll(".label_".concat(t.key)).data(t.data);o.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),o.attr("x",a.bind(this)).attr("y",l.bind(this)).attr("class","label_".concat(t.key)).style("font-size","".concat(this.options.labelSize||this.options.fontSize,"px")).style("fill",this.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.color)).transition(this.transition).text(function(t){return t.y.label||t.y.value}),o.enter().append("text").attr("class","label_".concat(t.key)).attr("x",a.bind(this)).attr("y",l.bind(this)).attr("alignment-baseline","central").attr("text-anchor","horizontal"===this.options.orientation?"left":"middle").style("font-size","".concat(this.options.labelSize||this.options.fontSize,"px")).style("fill",this.options.labelColor||WebsyDesigns.WebsyUtils.getLightDark(t.color)).text(function(t){return t.y.label||t.y.value}).each(function(t,e){"horizontal"===s.options.orientation?"stacked"===s.options.grouping?this.setAttribute("text-anchor","middle"):s.plotWidth-a.call(s,t)<this.getComputedTextLength()&&(this.setAttribute("text-anchor","end"),this.setAttribute("x",+this.getAttribute("x")-8)):s.plotheight-a.call(s,t)<(s.options.labelSize||s.options.fontSize)&&this.setAttribute("y",+this.getAttribute("y")+8)})}function a(t){return"horizontal"===this.options.orientation?"stacked"===this.options.grouping?this[n](t.y.accumulative)+this[n](t.y.value)/2:this[n](isNaN(t.y.value)?0:t.y.value)+4:this[i](this.parseX(t.x.value))+this[i].bandwidth()/2}function l(t){return"horizontal"===this.options.orientation?this[i](this.parseX(t.x.value))+this[i].bandwidth()/2:"stacked"!==this.options.grouping?this[n](isNaN(t.y.value)?0:t.y.value)-4:void 0}}},{key:"renderline",value:function(e,t){var n=this,i=function(e,i,t){return d3.line().x(function(t){return n[e](n.parseX(t.x.value))}).y(function(t){return n[i](isNaN(t.y.value)?0:t.y.value)}).curve(d3[t||n.options.curveStyle])},s="bottomAxis",o="secondary"===e.axis?"rightAxis":"leftAxis";"horizontal"===this.options.orienation&&(s="secondary"===e.axis?"rightAxis":"leftAxis",o="bottomAxis");var a=this.lineLayer.selectAll(".line_".concat(e.key)).data([e.data]);a.exit().transition(this.transition).style("stroke-opacity",1e-6).remove(),a.style("stroke-width",e.lineWidth||this.options.lineWidth).attr("stroke",e.color).attr("fill","transparent").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","line_".concat(e.key)).attr("id","line_".concat(e.key)).style("stroke-width",e.lineWidth||this.options.lineWidth).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:"rendersymbol",value:function(e,t){var i=this,n=function(t){return d3.symbol().size(t||i.options.symbolSize)},s="bottomAxis",o="secondary"===e.axis?"rightAxis":"leftAxis";"horizontal"===this.options.orienation&&(s="secondary"===e.axis?"rightAxis":"leftAxis",o="bottomAxis");var a=this.symbolLayer.selectAll(".symbol_".concat(e.key)).data(e.data);a.exit().transition(this.transition).style("fill-opacity",1e-6).remove(),a.attr("d",function(t){return n(t.y.size||e.symbolSize)(t)}).transition(this.transition).attr("fill","white").attr("stroke",e.color).attr("transform",function(t){return"translate(".concat(i[s](i.parseX(t.x.value)),", ").concat(i[o](isNaN(t.y.value)?0:t.y.value),")")}),a.enter().append("path").attr("d",function(t){return n(t.y.size||e.symbolSize)(t)}).attr("fill","white").attr("stroke",e.color).attr("class",function(t){return"symbol symbol_".concat(e.key)}).attr("transform",function(t){return"translate(".concat(i[s](i.parseX(t.x.value)),", ").concat(i[o](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:"data",set:function(t){this.options.data=t,this.render()}}]),n}(),WebsyLegend=function(){function n(t,e){_classCallCheck(this,n);if(this.elementId=t,this.options=_extends({},{align:"center",direction:"horizontal",style:"circle",symbolSize:16,hPadding:20,vPadding:10},e),this._data=[],t){var i=document.getElementById(this.elementId);i?(i.classList.add("websy-legend"),this.render()):console.error("No element found with ID ".concat(this.elementId))}else console.log("No element Id provided for Websy Chart")}return _createClass(n,[{key:"getLegendItemHTML",value:function(t){return"\n <div \n class='websy-legend-item ".concat(this.options.direction,"' \n style='margin: ").concat(this.options.vPadding/2,"px ").concat(this.options.hPadding/2,"px;'\n >\n <span \n class='symbol ").concat(t.style||this.options.style,"' \n style='\n background-color: ").concat(t.color,";\n width: ").concat(this.options.symbolSize,"px;\n height: ").concat("line"===this.options.style?3:this.options.symbolSize,"px;\n '\n ></span>\n ").concat(t.value,"\n </div>\n ")}},{key:"getSize",value:function(){var t=document.getElementById(this.elementId);if(t)return{width:t.clientWidth,height:t.clientHeight}}},{key:"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:"testWidth",value:function(t){var e=this.getLegendItemHTML({value:t}),i=document.createElement("div");i.style.position="absolute",i.style.visibility="hidden",i.innerHTML=e,document.body.appendChild(i);var n=i.clientWidth+30;return i.remove(),n}},{key:"data",set:function(t){this._data=t,this.render()}}]),n}(),WebsyKPI=function(){function i(t,e){_classCallCheck(this,i);this.elementId=t,this.options=_extends({},{tooltip:{},label:{},value:{},subValue:{}},e)}return _createClass(i,[{key:"render",value:function(t){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.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 '.concat(this.options.label.classes.join(" ")||"",'">\n ').concat(this.options.label.value||"","\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}}}]),i}(),WebsyMap=function(){function s(t,e){_classCallCheck(this,s);if(this.elementId=t,this.options=_extends({},{tileUrl:"https://tile.openstreetmap.org/{z}/{x}/{y}.png",disablePan:!1,disableZoom:!1,markerSize:10,useClustering:!1,maxMarkerSize:50,minMarkerSize:20,data:{},legendPosition:"bottom",colors:["#5e4fa2","#3288bd","#66c2a5","#abdda4","#e6f598","#fee08b","#fdae61","#f46d43","#d53e4f","#9e0142"]},e),t){var i={click:this.handleMapClick.bind(this)};!0===this.options.disableZoom&&(i.scrollWheelZoom=!1,i.zoomControl=!1),!0===this.options.disablePan&&(i.dragging=!1);var n=document.getElementById(this.elementId);n&&("undefined"==typeof L&&console.error("Leaflet library has not been loaded"),n.innerHTML='\n <div id="'.concat(this.elementId,'_map"></div>\n <div id="').concat(this.elementId,'_legend" class="websy-map-legend"></div>\n '),n.addEventListener("click",this.handleClick.bind(this)),this.legend=new WebsyDesigns.Legend("".concat(this.elementId,"_legend"),{}),this.map=L.map("".concat(this.elementId,"_map"),i),this.render())}else console.log("No element Id provided for Websy Map")}return _createClass(s,[{key:"handleClick",value:function(t){}},{key:"handleMapClick",value:function(t){}},{key:"render",value:function(){var n=this,t=document.getElementById("".concat(this.elementId,"_map")),e=document.getElementById("".concat(this.elementId,"_map"));if(!0===this.options.showLegend&&this.options.data.polygons){var i=this.options.data.polygons.map(function(t,e){return{value:t.label||t.key,color:t.color||n.options.colors[e%n.options.colors.length]}}),s=i.map(function(t){return t.value}).reduce(function(t,e){return t.length>e.length?t:e});"top"!==this.options.legendPosition&&"bottom"!==this.options.legendPosition||(e.style.width="100%"),"left"!==this.options.legendPosition&&"right"!==this.options.legendPosition||(e.style.height="100%",e.style.width=this.legend.testWidth(s)+"px"),this.legend.data=i;var o=this.legend.getSize();t.style.position="relative","top"===this.options.legendPosition&&(e.style.top=0,e.style.bottom="unset",t.style.top=o.height,t.style.height="calc(100% - ".concat(o.height,"px)")),"bottom"===this.options.legendPosition&&(e.style.top="unset",e.style.bottom=0,t.style.height="calc(100% - ".concat(o.height,"px)")),"left"===this.options.legendPosition&&(e.style.left=0,e.style.right="unset",e.style.top=0,t.style.left="".concat(o.width,"px"),t.style.width="calc(100% - ".concat(o.width,"px)")),"right"===this.options.legendPosition&&(e.style.left="unset",e.style.right=0,e.style.top=0,t.style.width="calc(100% - ".concat(o.width,"px)"))}else t.style.width="100%",t.style.height="100%";L.tileLayer(this.options.tileUrl,{attribution:'Map data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'}).addTo(this.map);this.geo&&this.map.removeLayer(this.geo),this.polygons&&this.polygons.forEach(function(t){return n.map.removeLayer(t)}),this.polygons=[],this.options.geoJSON&&(this.geo=L.geoJSON(this.options.geoJSON,{style:function(t){return{color:t.color||"#ffffff",colorOpacity:t.colorOpacity||1,fillColor:t.fillColor||"#e6463c",fillOpacity:t.fillOpacity||0,weight:t.weight||1}},onEachFeature:function(t,e){e.bindTooltip(t.tooltip,{permanent:!0,direction:"center",className:t.tooltipClass||"websy-polygon-tooltip"})}}).addTo(this.map)),this.options.data.polygons&&this.options.data.polygons.forEach(function(t,e){t.options||(t.options={}),t.options.color||(t.options.color=n.options.colors[e%n.options.colors.length]);var i=L.polygon(t.data.map(function(t){return t.map(function(t){return[t.Latitude,t.Longitude]})}),t.options).addTo(n.map);n.polygons.push(i),n.map.fitBounds(i.getBounds())}),this.geo?this.map.fitBounds(this.geo.getBounds()):this.polygons||this.options.center&&this.map.setView(this.options.center,this.options.zoom||null)}}]),s}(),WebsyChartTooltip=function(){function e(t){_classCallCheck(this,e),this.svg="string"==typeof t?document.getElementById(t):t,this.tooltipLayer=this.svg.append("g").attr("class","tooltip-layer"),this.tooltipContent=this.tooltipLayer.append("foreignObject").attr("class","websy-chart-tooltip").append("xhtml:div").attr("class","websy-chart-tooltip-content")}return _createClass(e,[{key:"hide",value:function(){this.tooltipContent.classed("active",!1)}},{key:"setHeight",value:function(t){this.tooltipLayer.select("foreignObject").style("height",t)}},{key:"show",value:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{top:"unset",bottom:"unset",left:0,width:0,height:0,onLeft:!1},n=["active"];"vertical"===i.positioning&&n.push("vertical"),!0===i.onLeft&&n.push("left"),!0===i.onTop&&n.push("top"),console.log(n.join(" "));var s=this.tooltipLayer.selectAll("foreignObject").attr("width","".concat(i.width,"px")).attr("class","websy-chart-tooltip ".concat(n.join(" ")));this.tooltipContent.attr("class","websy-chart-tooltip-content ".concat(n.join(" "))).style("width","".concat(i.width,"px")).html("<div class='title'>".concat(t,"</div>").concat(e)),-1===navigator.userAgent.indexOf("Chrome")&&-1!==navigator.userAgent.indexOf("Safari")?(s.attr("x","0px"),this.tooltipContent.style("left","vertical"!==i.positioning?"".concat(i.left,"px"):"unset").style("top",!0!==i.onTop?"".concat(i.top,"px"):"unset").style("bottom",!0===i.onTop?"".concat(i.bottom,"px"):"unset")):("vertical"===i.positioning?(s.attr("x","".concat(i.left,"px")),s.attr("y","".concat(!0===i.onTop?i.bottom-this.tooltipContent._groups[0][0].clientHeight:i.top,"px"))):(s.attr("x","".concat(i.left,"px")),s.attr("y","".concat(i.top,"px"))),this.tooltipContent.style("left","unset"),this.tooltipContent.style("top","unset"))}},{key:"transform",value:function(t,e){this.tooltipLayer.attr("transform","translate(".concat(t,", ").concat(e,")"))}}]),e}(),WebsyDesigns={WebsyPopupDialog:WebsyPopupDialog,PopupDialog:WebsyPopupDialog,WebsyLoadingDialog:WebsyLoadingDialog,LoadingDialog:WebsyLoadingDialog,WebsyNavigationMenu:WebsyNavigationMenu,NavigationMenu:WebsyNavigationMenu,WebsyForm:WebsyForm,Form:WebsyForm,WebsyDatePicker:WebsyDatePicker,DatePicker:WebsyDatePicker,WebsyDropdown:WebsyDropdown,Dropdown:WebsyDropdown,WebsyResultList:WebsyResultList,ResultList:WebsyResultList,WebsyTemplate:WebsyTemplate,Template:WebsyTemplate,WebsyPubSub:WebsyPubSub,PubSub:WebsyPubSub,WebsyRouter:WebsyRouter,Router:WebsyRouter,WebsyTable:WebsyTable,WebsyTable2:WebsyTable2,Table:WebsyTable,Table2:WebsyTable2,WebsyChart:WebsyChart,Chart:WebsyChart,WebsyChartTooltip:WebsyChartTooltip,ChartTooltip:WebsyChartTooltip,Legend:WebsyLegend,WebsyMap:WebsyMap,Map:WebsyMap,WebsyKPI:WebsyKPI,KPI:WebsyKPI,WebsyPDFButton:WebsyPDFButton,PDFButton:WebsyPDFButton,APIService:APIService,WebsyUtils:WebsyUtils,Utils:WebsyUtils,ButtonGroup:ButtonGroup,WebsySwitch:Switch,Pager:Pager,Switch:Switch,Carousel:WebsyCarousel,WebsyIcons:WebsyIcons,Icons:WebsyIcons,WebsyLogin:WebsyLogin,Login:WebsyLogin,WebsySignup:WebsySignup,Signup:WebsySignup,ResponsiveText:ResponsiveText,WebsyResponsiveText:ResponsiveText};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?render=".concat(t),document.body.appendChild(e)}function usePayPal(){var t=document.createElement("script");t.src="//www.paypal.com/sdk/js",document.getElementsByTagName("body")[0].appendChild(t)}
|