Files
parts_website/static/dist/js/main.bundle.js

2 lines
143 KiB
JavaScript

/*! For license information please see main.bundle.js.LICENSE.txt */
(()=>{"use strict";(()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,r(o.key),o)}}function r(t){var r=function(t){if("object"!=e(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:r+""}var n=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return r=e,n=[{key:"isEmpty",value:function(e){var t=!0;if(null!==e&&"null"!==e&&void 0!==e&&"undefined"!==e)if(null==e.length)t=!1;else if("function"==typeof e)t=!1;else{var r="string"==typeof e;if(r&&(e=e.trim()),e.length>0)if(r)t=!1;else if("string"!=typeof e[0])t=!1;else for(var n=0;n<e.length;n++)if(""!=e[n]){t=!1;break}}return t}},{key:"isValidNumber",value:function(t,r){return!e.isEmpty(t)&&!isNaN(t)&&(!r||parseFloat(t)>0)}},{key:"getDataContentType",value:function(t){var r=null,n="";return e.isEmpty(t)||("string"==typeof t?(r=t,n="application/x-www-form-urlencoded; charset=UTF-8"):(r=JSON.stringify(t),n="application/json; charset=UTF-8")),{Data:r,ContentType:n}}},{key:"arrayContainsItem",value:function(t,r){var n=!1;if(!e.isEmpty(t)&&!e.isEmpty(r))if(t[0]instanceof jQuery){for(var o=0;o<t.length;o++)if(document.querySelectorAll(t[o]).is(r)){n=!0;break}}else if(t[0]instanceof Date){for(var i=0;i<t.length;i++)if(t[i].getTime()===r.getTime()){n=!0;break}}else for(var a=0;a<t.length;a++)if(t[a]==r){n=!0;break}return n}},{key:"dictHasKey",value:function(e,t){return t in e}},{key:"areEqualDicts",value:function(e,t){var r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(var o=0,i=r;o<i.length;o++){var a=i[o];if(e[a]!==t[a])return!1}return!0}},{key:"imageExists",value:function(e,t){var r=new Image;r.onload=function(){t(!0)},r.onerror=function(){t(!1)},r.src=e}},{key:"validateImageUrl",value:function(t,r){e.imageExists(r,(function(e){e&&document.querySelectorAll("#"+t).css({"background-image":"url("+url+")","background-size":"35px 35px"})}))}}],null&&t(r.prototype,null),n&&t(r,n),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n}();function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t,r){return(t=u(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,u(n.key),n)}}function u(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}var l=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return t=e,r=[{key:"setElementAttributesValuesCurrentAndPrevious",value:function(t,r){e.setElementAttributeValueCurrent(t,r),e.setElementAttributeValuePrevious(t,r)}},{key:"setElementAttributeValueCurrent",value:function(e,t){e.setAttribute(attrValueCurrent,t)}},{key:"setElementAttributeValuePrevious",value:function(e,t){e.setAttribute(attrValuePrevious,t)}},{key:"setElementValuesCurrentAndPrevious",value:function(t,r){e.setElementValueCurrent(t,r),e.setElementAttributeValuePrevious(t,r)}},{key:"setElementValueCurrent",value:function(t,r){e.setElementAttributeValueCurrent(t,r),"checkbox"===t.type?t.checked=r:"INPUT"===t.tagName||"TEXTAREA"===t.tagName||"SELECT"===t.tagName?t.value=r:t.textContent=r}},{key:"setElementValueCurrentIfEmpty",value:function(t,r){n.isEmpty(e.getElementValueCurrent(t))&&e.setElementValueCurrent(t,r)}},{key:"getCellFromElement",value:function(e){return e.closest("td")}},{key:"getRowFromElement",value:function(e){return e.closest("tr")}},{key:"convertForm2JSON",value:function(t){var r={};if(n.isEmpty(t))return console.log("empty form element"),r;var o,i,a,u=t.querySelectorAll("."+flagContainerInput+"."+flagFilter);console.log("containersFilter: "+u);for(var l=0;l<u.length;l++)i=(o=u[l]).querySelector("label").getAttribute("for"),a=o.querySelector("#".concat(i)),r[i]=e.getElementValueCurrent(a);return r}},{key:"loadPageBody",value:function(e){document.querySelector(idPageBody).innerHTML=e}},{key:"getHashPageCurrent",value:function(){return document.body.dataset.page}},{key:"updateAndCheckIsElementDirty",value:function(t){return t.setAttribute(attrValueCurrent,e.getElementValueCurrent(t)),e.isElementDirty(t)}},{key:"isElementDirty",value:function(t){var r=t.getAttribute(attrValuePrevious)!=t.getAttribute(attrValueCurrent);return e.handleDirtyElement(t,r),r}},{key:"handleDirtyElement",value:function(t,r){e.toggleElementHasClassnameFlag(t,r,flagDirty)}},{key:"toggleElementHasClassnameFlag",value:function(e,t,r){t!=e.classList.contains(r)&&(t?e.classList.add(r):e.classList.remove(r))}},{key:"hasDirtyChildrenContainer",value:function(e){return null!=e&&null!=e.querySelector("."+flagDirty)}},{key:"getElementValueCurrent",value:function(e){var t="";return n.isEmpty(e)||(t="checkbox"===e.type?e.checked:"INPUT"===e.tagName||"TEXTAREA"===e.tagName||"SELECT"===e.tagName?e.value:e.textContent),n.isEmpty(t)&&(t=""),t}},{key:"getElementAttributeValueCurrent",value:function(e){return e.getAttribute(attrValueCurrent)}},{key:"getElementAttributeValuePrevious",value:function(e){return e.getAttribute(attrValuePrevious)}},{key:"scrollToElement",value:function(e,t){e.scrollTop(e.scrollTop()+(t.offset().top-e.offset().top))}},{key:"isElementInContainer",value:function(e,t){"function"==typeof jQuery&&(e instanceof jQuery&&(e=e[0]),t instanceof jQuery&&(t=t[0]));var r=e.getBoundingClientRect(),n=t.getBoundingClientRect();return r.top<=n.top&&r.left<=n.left&&n.top+n.height<=r.top+r.height&&n.left+n.width<=r.left+r.width}},{key:"alertError",value:function(e,t){alert(e+"\n"+t)}},{key:"createOptionUnselectedProductVariation",value:function(){return i(i({},flagProductVariationType,i(i(i(i({},flagNameAttrOptionText,[flagName]),flagNameAttrOptionValue,[attrIdProductVariationType]),flagName,"Select Variation Type"),attrIdProductVariationType,0)),flagProductVariation,i(i(i(i({},flagNameAttrOptionText,[flagName]),flagNameAttrOptionValue,[attrIdProductVariation]),flagName,"Select Variation"),attrIdProductVariation,0))}},{key:"createOption",value:function(e){n.isEmpty(e)&&(e={text:"Select",value:0});var t=document.createElement("option");return t.value=e.value,t.textContent=e.text,t.selected=e.selected,t}}],null&&a(t.prototype,null),r&&a(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r}();function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function s(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,f(n.key),n)}}function f(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}var y=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)},t=[{key:"initialiseEventHandler",value:function(e,t,r){document.querySelectorAll(e).forEach((function(e){e.classList.contains(t)||(e.classList.add(t),r(e))}))}}],null&&s(e.prototype,null),t&&s(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function d(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,h(n.key),n)}}function h(e){var t=function(e){if("object"!=p(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=p(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==p(t)?t:t+""}var v=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)},t=[{key:"getLocalStorage",value:function(e){return JSON.parse(localStorage.getItem(e))}},{key:"setLocalStorage",value:function(e,t){localStorage.setItem(e,JSON.stringify(t))}}],null&&d(e.prototype,null),t&&d(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function g(e){return g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},g(e)}function m(){m=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function s(e,t,r,n){var i=t&&t.prototype instanceof b?t:b,a=Object.create(i.prototype),u=new L(n||[]);return o(a,"_invoke",{value:j(e,r,u)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var y="suspendedStart",p="suspendedYield",d="executing",h="completed",v={};function b(){}function k(){}function P(){}var S={};c(S,a,(function(){return this}));var C=Object.getPrototypeOf,w=C&&C(C(q([])));w&&w!==r&&n.call(w,a)&&(S=w);var E=P.prototype=b.prototype=Object.create(S);function O(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function T(e,t){function r(o,i,a,u){var l=f(e[o],e,i);if("throw"!==l.type){var c=l.arg,s=c.value;return s&&"object"==g(s)&&n.call(s,"__await")?t.resolve(s.__await).then((function(e){r("next",e,a,u)}),(function(e){r("throw",e,a,u)})):t.resolve(s).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,u)}))}u(l.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function j(t,r,n){var o=y;return function(i,a){if(o===d)throw Error("Generator is already running");if(o===h){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var u=n.delegate;if(u){var l=A(u,n);if(l){if(l===v)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===y)throw o=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var c=f(t,r,n);if("normal"===c.type){if(o=n.done?h:p,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=h,n.method="throw",n.arg=c.arg)}}}function A(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,A(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function I(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function F(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(I,this),this.reset(!0)}function q(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(g(t)+" is not iterable")}return k.prototype=P,o(E,"constructor",{value:P,configurable:!0}),o(P,"constructor",{value:k,configurable:!0}),k.displayName=c(P,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===k||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,P):(e.__proto__=P,c(e,l,"GeneratorFunction")),e.prototype=Object.create(E),e},t.awrap=function(e){return{__await:e}},O(T.prototype),c(T.prototype,u,(function(){return this})),t.AsyncIterator=T,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new T(s(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},O(E),c(E,l,"Generator"),c(E,a,(function(){return this})),c(E,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=q,L.prototype={constructor:L,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(F),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return u.type="throw",u.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],u=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(l&&c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),F(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;F(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:q(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function b(e,t,r,n,o,i,a){try{var u=e[i](a),l=u.value}catch(e){return void r(e)}u.done?t(l):Promise.resolve(l).then(n,o)}function k(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){b(i,n,o,a,u,"next",e)}function u(e){b(i,n,o,a,u,"throw",e)}a(void 0)}))}}function P(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,S(n.key),n)}}function S(e){var t=function(e){if("object"!=g(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=g(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==g(t)?t:t+""}var C=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return t=e,r=[{key:"getCsrfToken",value:function(){return document.querySelector(idCSRFToken).getAttribute("content")}},{key:"request",value:(d=k(m().mark((function t(r){var n,o,i,a,u,l,c=arguments;return m().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=c.length>1&&void 0!==c[1]?c[1]:"GET",o=c.length>2&&void 0!==c[2]?c[2]:null,i=c.length>3&&void 0!==c[3]?c[3]:null,a=e.getUrlFromHash(r,i),u={method:n,headers:{"Content-Type":"application/json","X-CSRFToken":e.getCsrfToken()}},!o||"POST"!==n&&"PUT"!==n&&"PATCH"!==n||(u.body=JSON.stringify(o)),console.log("API request:",n,a,o),t.prev=7,t.next=10,fetch(a,u);case 10:if((l=t.sent).ok){t.next=13;break}throw new Error("HTTP error! status: ".concat(l.status));case 13:return t.next=15,l.json();case 15:return t.abrupt("return",t.sent);case 18:throw t.prev=18,t.t0=t.catch(7),console.error("API request failed:",t.t0),t.t0;case 22:case"end":return t.stop()}}),t,null,[[7,18]])}))),function(e){return d.apply(this,arguments)})},{key:"getUrlFromHash",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;null==t&&(t=hashPageHome),console.log("getUrlFromHash:"),console.log("base url: "+_pathHost+"\nhash: "+t+"\nparams: "+r);var n=e.parameteriseUrl(_pathHost+t,r);return console.log("url: "+n),n}},{key:"parameteriseUrl",value:function(e,t){return t&&(e+="?"+new URLSearchParams(t).toString()),e}},{key:"goToUrl",value:function(e){window.location.href=e}},{key:"goToHash",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e.getUrlFromHash(t,r);e.goToUrl(n)}},{key:"loginUser",value:(p=k(m().mark((function t(){var r;return m().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(r={})[keyCallback]=l.getHashPageCurrent(),t.next=4,e.request(hashPageUserLogin,"POST",r);case 4:return t.abrupt("return",t.sent);case 5:case"end":return t.stop()}}),t)}))),function(){return p.apply(this,arguments)})},{key:"getCategories",value:(y=k(m().mark((function t(){return m().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.request(hashGetStoreProductCategory);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)}))),function(){return y.apply(this,arguments)})},{key:"getCategoriesByFilters",value:(f=k(m().mark((function t(r){return m().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.goToHash(hashPageStoreProductCategories,r);case 1:case"end":return t.stop()}}),t)}))),function(e){return f.apply(this,arguments)})},{key:"saveCategories",value:(s=k(m().mark((function t(r,n,o){var i;return m().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(i={})[flagFormFilters]=l.convertForm2JSON(n),i[flagProductCategory]=r,i[flagComment]=o,t.next=6,e.request(hashSaveStoreProductCategory,"POST",i);case 6:return t.abrupt("return",t.sent);case 7:case"end":return t.stop()}}),t)}))),function(e,t,r){return s.apply(this,arguments)})},{key:"getProducts",value:(c=k(m().mark((function t(){return m().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.request(hashGetStoreProduct);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)}))),function(){return c.apply(this,arguments)})},{key:"getProductsByFilters",value:(u=k(m().mark((function t(r){return m().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.goToHash(hashPageStoreProducts,r);case 1:case"end":return t.stop()}}),t)}))),function(e){return u.apply(this,arguments)})},{key:"saveProducts",value:(a=k(m().mark((function t(r,n,o){var i;return m().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(i={})[flagFormFilters]=l.convertForm2JSON(n),i[flagProduct]=r,i[flagComment]=o,t.next=6,e.request(hashSaveStoreProduct,"POST",i);case 6:return t.abrupt("return",t.sent);case 7:case"end":return t.stop()}}),t)}))),function(e,t,r){return a.apply(this,arguments)})},{key:"getProductPermutations",value:(i=k(m().mark((function t(){return m().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.request(hashGetStoreProductPermutation);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)}))),function(){return i.apply(this,arguments)})},{key:"getProductPermutationsByFilters",value:(o=k(m().mark((function t(r){return m().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.goToHash(hashPageStoreProductPermutations,r);case 1:case"end":return t.stop()}}),t)}))),function(e){return o.apply(this,arguments)})},{key:"saveProductPermutations",value:(n=k(m().mark((function t(r,n,o){var i;return m().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(i={})[flagFormFilters]=l.convertForm2JSON(n),i[flagProductPermutation]=r,i[flagComment]=o,t.next=6,e.request(hashSaveStoreProductPermutation,"POST",i);case 6:return t.abrupt("return",t.sent);case 7:case"end":return t.stop()}}),t)}))),function(e,t,r){return n.apply(this,arguments)})}],r&&P(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n,o,i,a,u,c,s,f,y,p,d}();function w(e){return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w(e)}function E(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,O(n.key),n)}}function O(e){var t=function(e){if("object"!=w(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=w(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==w(t)?t:t+""}var T=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)},t=[{key:"hookup",value:function(e){y.initialiseEventHandler(idOverlayConfirm+" button."+flagCancel,flagInitialised,(function(e){e.addEventListener("click",(function(){document.querySelector(idOverlayConfirm).style.visibility="hidden"}))})),y.initialiseEventHandler(idOverlayConfirm+" button."+flagSubmit,flagInitialised,(function(t){t.addEventListener("click",(function(){var t=document.querySelector(idOverlayConfirm),r=t.querySelector("textarea");t.style.visibility="hidden",e(r.value)}))}))}},{key:"show",value:function(){var e=document.querySelector(idOverlayConfirm);e.classList.remove(flagCollapsed),e.style.visibility="visible"}}],null&&E(e.prototype,null),t&&E(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function j(e){return j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},j(e)}function A(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,I(n.key),n)}}function I(e){var t=function(e){if("object"!=j(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=j(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==j(t)?t:t+""}var F=function(){function e(t){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),!t)throw new Error("Router is required");if(console.log("initialising with router: ",t),this.router=t,this.title=titlePageCurrent,this.constructor===e)throw new Error("Cannot instantiate abstract class");if(!this.constructor.hash)throw new Error("Class ".concat(this.constructor.name," must have a static hash attribute."))}return t=e,n=[{key:"isDirtyFilter",value:function(e){var t=l.updateAndCheckIsElementDirty(e);return t&&document.querySelectorAll(idTableMain+" tbody tr").remove(),t}}],(r=[{key:"initialize",value:function(){throw new Error("Method 'initialize()' must be implemented.")}},{key:"sharedInitialize",value:function(){this.logInitialisation(),this.hookupCommonElements()}},{key:"logInitialisation",value:function(){console.log("Initializing "+this.title+" page")}},{key:"hookupCommonElements",value:function(){this.hookupNavigation(),this.hookupImagesLogo()}},{key:"hookupNavigation",value:function(){document.querySelector(idOverlayHamburger).querySelectorAll("div."+flagRow).length,this.hookupEventHandler("click",idButtonHamburger,(function(e,t){var r=document.querySelector(idOverlayHamburger);r.classList.contains(flagCollapsed)?(r.classList.remove(flagCollapsed),r.classList.add(flagExpanded)):(r.classList.remove(flagExpanded),r.classList.add(flagCollapsed))})),this.hookupButtonsNavHome(),this.hookupButtonsNavServices(),this.hookupButtonsNavContact(),this.hookupButtonsNavUserAccount(),this.hookupButtonsNavUserLogout(),this.hookupButtonsNavUserLogin(),this.hookupButtonsNavStoreHome(),this.hookupButtonsNavStoreProductPermutations(),this.hookupButtonsNavStoreStockItems(),this.hookupButtonsNavAdminHome()}},{key:"hookupEventHandler",value:function(e,t,r){y.initialiseEventHandler(t,flagInitialised,(function(t){t.addEventListener(e,(function(e){e.stopPropagation(),r(e,t)}))}))}},{key:"hookupButtonsNavHome",value:function(){this.hookupButtonsNav("."+flagNavHome,hashPageHome)}},{key:"hookupButtonsNav",value:function(e,t){var r=this;this.hookupEventHandler("click",e,(function(e,n){r.router.navigateToHash(t)}))}},{key:"hookupButtonsNavServices",value:function(){this.hookupButtonsNav("."+flagNavServices,hashPageServices)}},{key:"hookupButtonsNavContact",value:function(){this.hookupButtonsNav("."+flagNavContact,hashPageContact)}},{key:"hookupButtonsNavUserAccount",value:function(){this.hookupButtonsNav("."+flagNavUserAccount,hashPageUserAccount)}},{key:"hookupButtonsNavUserLogout",value:function(){this.hookupButtonsNav("."+flagNavUserLogout,hashPageUserLogout)}},{key:"hookupButtonsNavUserLogin",value:function(){var e=this;this.hookupEventHandler("click","."+flagNavUserLogin,(function(t,r){t.stopPropagation(),C.loginUser().then((function(t){t.Success?e.router.navigateToUrl(t[keyCallback],null,!1):l.alertError("Error",t.Message)}))}))}},{key:"hookupButtonsNavStoreHome",value:function(){this.hookupButtonsNav("."+flagNavStoreHome,hashPageStoreHome)}},{key:"hookupButtonsNavStoreProductCategories",value:function(){this.hookupButtonsNav("."+flagNavStoreProductCategories,hashPageStoreProductCategories)}},{key:"hookupButtonsNavStoreProducts",value:function(){this.hookupButtonsNav("."+flagNavStoreProducts,hashPageStoreProducts)}},{key:"hookupButtonsNavStoreProductPermutations",value:function(){this.hookupButtonsNav("."+flagNavStoreProductPermutations,hashPageStoreProductPermutations)}},{key:"hookupButtonsNavStoreProductPrices",value:function(){this.hookupButtonsNav("."+flagNavStoreProductPrices,hashPageStoreProductPrices)}},{key:"hookupButtonsNavStoreProductVariations",value:function(){this.hookupButtonsNav("."+flagNavStoreProductVariations,hashPageStoreProductVariations)}},{key:"hookupButtonsNavStoreStockItems",value:function(){this.hookupButtonsNav("."+flagNavStoreStockItems,hashPageStoreStockItems)}},{key:"hookupButtonsNavAdminHome",value:function(){this.hookupButtonsNav("."+flagNavAdminHome,hashPageAdminHome)}},{key:"hookupImagesLogo",value:function(){this.hookupButtonsNav("img."+flagImageLogo,hashPageHome)}},{key:"hookupOverlayFromId",value:function(e){y.initialiseEventHandler(e,flagInitialised,(function(e){e.querySelector("button."+flagClose).addEventListener("click",(function(t){t.stopPropagation(),e.css("display","none")}))}))}},{key:"hookupButtonSave",value:function(){var e=this;y.initialiseEventHandler("form."+flagFilter+" button."+flagSave,flagInitialised,(function(t){t.addEventListener("click",(function(t){t.stopPropagation(),console.log("saving page: ",e.title),T.show()}))}))}},{key:"hookupVideos",value:function(){y.initialiseEventHandler("video",flagInitialised,(function(e){e.addEventListener("mouseover",videoPlay(e)),e.addEventListener("mouseout",videoPause(e))}))}},{key:"leave",value:function(){if(console.log("Leaving "+this.title+" page"),this.constructor===e)throw new Error("Must implement leave() method.")}},{key:"setLocalStoragePage",value:function(e){v.setLocalStorage(this.hash,e)}},{key:"getLocalStoragePage",value:function(){return v.getLocalStorage(this.hash)}},{key:"toggleShowButtonsSaveCancel",value:function(e){var t=document.querySelector("form."+flagFilter+" button."+flagSave),r=document.querySelector("form."+flagFilter+" button."+flagCancel);e?(r.classList.remove(flagCollapsed),t.classList.remove(flagCollapsed)):(r.classList.add(flagCollapsed),t.classList.add(flagCollapsed))}}])&&A(t.prototype,r),n&&A(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function L(e){return L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},L(e)}function q(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,N(n.key),n)}}function D(e,t,r){return t=x(t),function(e,t){if(t&&("object"==L(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,B()?Reflect.construct(t,r||[],x(e).constructor):t.apply(e,r))}function B(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(B=function(){return!!e})()}function V(){return V="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=x(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},V.apply(null,arguments)}function x(e){return x=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},x(e)}function R(e,t){return R=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},R(e,t)}function N(e){var t=function(e){if("object"!=L(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=L(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==L(t)?t:t+""}var H,_,M,U=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),D(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&R(e,t)}(t,e),r=t,n=[{key:"initialize",value:function(){this.sharedInitialize(),this.hookupAdminStore()}},{key:"hookupAdminStore",value:function(){this.hookupButtonsNavStoreProductCategories(),this.hookupButtonsNavStoreProducts(),this.hookupButtonsNavStoreProductPermutations(),this.hookupButtonsNavStoreProductPrices(),this.hookupButtonsNavStoreStockItems(),this.hookupButtonsNavStoreProductVariations(),this.hookupButtonsNavAdminStoreStripeProducts(),this.hookupButtonsNavAdminStoreStripePrices()}},{key:"hookupButtonsNavAdminStoreStripeProducts",value:function(){y.initialiseEventHandler("."+flagNavAdminStoreStripeProducts,flagInitialised,(function(e){e.addEventListener("click",(function(e){this.router.navigateToHash(hashPageAdminStoreStripeProducts)}))}))}},{key:"hookupButtonsNavAdminStoreStripePrices",value:function(){y.initialiseEventHandler("."+flagNavAdminStoreStripePrices,flagInitialised,(function(e){e.addEventListener("click",(function(e){this.router.navigateToHash(hashPageAdminStoreStripePrices)}))}))}},{key:"leave",value:function(){var e,r,n;(e=t,r=this,"function"==typeof(n=V(x(1&3?e.prototype:e),"leave",r))?function(e){return n.apply(r,e)}:n)([])}}],n&&q(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n}(F);function Q(e){return Q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Q(e)}function J(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Y(n.key),n)}}function z(e,t,r){return t=W(t),function(e,t){if(t&&("object"==Q(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,G()?Reflect.construct(t,r||[],W(e).constructor):t.apply(e,r))}function G(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(G=function(){return!!e})()}function K(){return K="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=W(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},K.apply(null,arguments)}function W(e){return W=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},W(e)}function X(e,t){return X=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},X(e,t)}function Y(e){var t=function(e){if("object"!=Q(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Q(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Q(t)?t:t+""}H=U,_="hash",M=hashPageAdminHome,(_=N(_))in H?Object.defineProperty(H,_,{value:M,enumerable:!0,configurable:!0,writable:!0}):H[_]=M;var Z=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),z(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&X(e,t)}(t,e),function(e,t){return t&&J(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize(),this.hookupButtonsNavContact()}},{key:"leave",value:function(){!function(e,t,r){var n=K(W(e.prototype),"leave",r);return"function"==typeof n?function(e){return n.apply(r,e)}:n}(t,0,this)([])}}])}(F);function ee(e){return ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ee(e)}function te(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,ae(n.key),n)}}function re(e,t,r){return t=oe(t),function(e,t){if(t&&("object"==ee(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,ne()?Reflect.construct(t,r||[],oe(e).constructor):t.apply(e,r))}function ne(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ne=function(){return!!e})()}function oe(e){return oe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},oe(e)}function ie(e,t){return ie=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ie(e,t)}function ae(e){var t=function(e){if("object"!=ee(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ee(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ee(t)?t:t+""}!function(e,t,r){(t=Y(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(Z,"hash",hashPageHome);var ue=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),re(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ie(e,t)}(t,e),function(e,t){return t&&te(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize()}}])}(F);function le(e){return le="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},le(e)}function ce(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,he(n.key),n)}}function se(e,t,r){return t=pe(t),function(e,t){if(t&&("object"==le(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,fe()?Reflect.construct(t,r||[],pe(e).constructor):t.apply(e,r))}function fe(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(fe=function(){return!!e})()}function ye(){return ye="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=pe(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},ye.apply(null,arguments)}function pe(e){return pe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},pe(e)}function de(e,t){return de=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},de(e,t)}function he(e){var t=function(e){if("object"!=le(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=le(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==le(t)?t:t+""}!function(e,t,r){(t=ae(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(ue,"hash",hashPageContact);var ve=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),se(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&de(e,t)}(t,e),function(e,t){return t&&ce(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize()}},{key:"leave",value:function(){!function(e,t,r){var n=ye(pe(e.prototype),"leave",r);return"function"==typeof n?function(e){return n.apply(r,e)}:n}(t,0,this)([])}}])}(F);function ge(e){return ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ge(e)}function me(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,we(n.key),n)}}function be(e,t,r){return t=Se(t),function(e,t){if(t&&("object"==ge(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,ke()?Reflect.construct(t,r||[],Se(e).constructor):t.apply(e,r))}function ke(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ke=function(){return!!e})()}function Pe(){return Pe="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Se(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},Pe.apply(null,arguments)}function Se(e){return Se=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Se(e)}function Ce(e,t){return Ce=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ce(e,t)}function we(e){var t=function(e){if("object"!=ge(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ge(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ge(t)?t:t+""}!function(e,t,r){(t=he(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(ve,"hash",hashPageServices);var Ee=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),be(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ce(e,t)}(t,e),function(e,t){return t&&me(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize()}},{key:"leave",value:function(){!function(e,t,r){var n=Pe(Se(e.prototype),"leave",r);return"function"==typeof n?function(e){return n.apply(r,e)}:n}(t,0,this)([])}}])}(F);function Oe(e){return Oe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Oe(e)}function Te(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,qe(n.key),n)}}function je(e,t,r){return t=Fe(t),function(e,t){if(t&&("object"==Oe(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Ae()?Reflect.construct(t,r||[],Fe(e).constructor):t.apply(e,r))}function Ae(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ae=function(){return!!e})()}function Ie(){return Ie="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Fe(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},Ie.apply(null,arguments)}function Fe(e){return Fe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Fe(e)}function Le(e,t){return Le=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Le(e,t)}function qe(e){var t=function(e){if("object"!=Oe(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Oe(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Oe(t)?t:t+""}!function(e,t,r){(t=we(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(Ee,"hash",hashPageAccessibilityReport);var De=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),je(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Le(e,t)}(t,e),function(e,t){return t&&Te(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize()}},{key:"leave",value:function(){!function(e,t,r){var n=Ie(Fe(e.prototype),"leave",r);return"function"==typeof n?function(e){return n.apply(r,e)}:n}(t,0,this)([])}}])}(F);function Be(e){return Be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Be(e)}function Ve(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Me(n.key),n)}}function xe(e,t,r){return t=He(t),function(e,t){if(t&&("object"==Be(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Re()?Reflect.construct(t,r||[],He(e).constructor):t.apply(e,r))}function Re(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Re=function(){return!!e})()}function Ne(){return Ne="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=He(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},Ne.apply(null,arguments)}function He(e){return He=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},He(e)}function _e(e,t){return _e=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_e(e,t)}function Me(e){var t=function(e){if("object"!=Be(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Be(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Be(t)?t:t+""}!function(e,t,r){(t=qe(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(De,"hash",hashPageAccessibilityStatement);var Ue=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),xe(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_e(e,t)}(t,e),function(e,t){return t&&Ve(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize()}},{key:"leave",value:function(){!function(e,t,r){var n=Ne(He(e.prototype),"leave",r);return"function"==typeof n?function(e){return n.apply(r,e)}:n}(t,0,this)([])}}])}(F);function Qe(e){return Qe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Qe(e)}function Je(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Ye(n.key),n)}}function ze(e,t,r){return t=We(t),function(e,t){if(t&&("object"==Qe(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Ge()?Reflect.construct(t,r||[],We(e).constructor):t.apply(e,r))}function Ge(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ge=function(){return!!e})()}function Ke(){return Ke="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=We(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},Ke.apply(null,arguments)}function We(e){return We=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},We(e)}function Xe(e,t){return Xe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Xe(e,t)}function Ye(e){var t=function(e){if("object"!=Qe(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Qe(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Qe(t)?t:t+""}!function(e,t,r){(t=Me(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(Ue,"hash",hashPageLicense);var $e=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),ze(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Xe(e,t)}(t,e),function(e,t){return t&&Je(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize(),this.hookupStoreCardsInfo(),this.hookupOverlaysStoreBasketInfo(),this.hookupButtonCheckoutSession()}},{key:"hookupStoreCardsInfo",value:function(){document.querySelectorAll(idContainerInfoDelivery).addEventListener("click",(function(e){console.log("delivery modal display method"),document.querySelectorAll(idOverlayInfoDelivery).css("display","block")})),document.querySelectorAll(idContainerInfoBilling).addEventListener("click",(function(e){console.log("billing modal display method"),document.querySelectorAll(idOverlayInfoBilling).css("display","block")}))}},{key:"hookupOverlaysStoreBasketInfo",value:function(){var e,t;e=document.querySelectorAll(idOverlayInfoDelivery),t=e.querySelector("form"),hookupOverlay(e),y.initialiseEventHandler(t,flagInitialised,(function(){t.submit((function(e){t=document.querySelectorAll(t),e.preventDefault(),console.log("delivery submit method"),ajaxData={},ajaxData[keyInfoType]=keyInfoDelivery,ajaxData=convertFormBilling2JSON(ajaxData,idOverlayInfoDelivery),ajaxJSONData("info delivery",mapHashToController(hashStoreBasketInfo),ajaxData,loadInfoAddress,!1)}))})),e=document.querySelectorAll(idOverlayInfoBilling),t=e.querySelector("form"),hookupOverlay(e),y.initialiseEventHandler(t,flagInitialised,(function(){t.submit((function(e){e.preventDefault(),console.log("billing submit method"),ajaxData={},ajaxData[keyInfoType]=keyInfoBilling,ajaxData=convertFormBilling2JSON(ajaxData,idOverlayInfoBilling),ajaxJSONData("info billing",mapHashToController(hashStoreBasketInfo),ajaxData,loadInfoAddress,!1)}))}));var r=[keyNameFull,keyPhoneNumber,keyPostcode,keyAddress1,keyCity,keyCounty];for(var n in r)t.querySelector("#"+r[n]).removeAttr("required")}},{key:"loadInfoAddress",value:function(e){console.log("ajax:"),console.log(e.data);var t=e.data[keyInfoType],r=e.data[t];if(v.setLocalStorage(t,r),t==keyInfoBilling){var n=document.querySelectorAll(idContainerInfoBilling);r[keyInfoIdentical]?n.querySelector("div").innerHTML="Same as delivery address":n.querySelector("div").innerHTML="<strong>"+r[keyNameFull]+"</strong> at <strong>"+r[keyPostcode]+"</strong>",document.querySelectorAll(idOverlayInfoBilling).css("display","none"),document.querySelectorAll(idOverlayInfoBilling).querySelector("form").classList.add(flagSubmitted)}else document.querySelectorAll(idContainerInfoDelivery).querySelector("div").innerHTML="<strong>"+r[keyNameFull]+"</strong> at <strong>"+r[keyPostcode]+"</strong>",document.querySelectorAll(idOverlayInfoDelivery).css("display","none"),document.querySelectorAll(idOverlayInfoDelivery).querySelector("form").classList.add(flagSubmitted)}},{key:"convertFormBilling2JSON",value:function(e,t){var r;r=document.querySelectorAll(t).querySelector("form"),r=document.querySelectorAll(idOverlayInfoDelivery).querySelector("form"),console.log("converting billing form to json\nform ID: "+r.id),e[keyForm]=convertForm2JSON(r);var n=[keyNameFull,keyPhoneNumber,keyPostcode,keyAddress1,keyAddress2,keyCity,keyCounty];for(var o in console.log("ajaxData:"),console.log(e),e[keyForm][keyInfoIdentical]=getElementValueCurrent(r.querySelector("#"+keyInfoIdentical)),n)t==idOverlayInfoBilling&&e[keyForm][keyInfoIdentical]?e[keyForm][n[o]]=getElementValueCurrent((void 0).querySelector("#"+n[o])):e[keyForm][n[o]]=getElementValueCurrent(r.querySelector("#"+n[o]));return console.log("ajaxData:"),console.log(e),e}},{key:"hookupButtonCheckoutSession",value:function(){var e=document.querySelectorAll(idButtonCheckout);e.classList.remove(flagInitialised),y.initialiseEventHandler(idButtonCheckout,flagInitialised,(function(){e.removeEventListener("click"),e.addEventListener("click",(function(e){var t=v.getLocalStorage(keyBasket),r={};r[keyBasket]=t,r=convertFormBilling2JSON(r,idOverlayInfoDelivery),(r=convertFormBilling2JSON(r,idOverlayInfoBilling))[key_code_currency]=getCurrencySelected(),ajaxJSONData("checkout session",mapHashToController(hashPageStoreCheckout),r,handleResponseCheckout,!1)}))}))}},{key:"handleResponseCheckout",value:function(e){window.location.href=e.data[keyUrlCheckout]}},{key:"hookupButtonFormBillingCopy",value:function(){y.initialiseEventHandler(idButtonFormBillingCopy,flagInitialised,(function(){document.querySelectorAll(idButtonFormBillingCopy).addEventListener("click",(function(e){var t=[keyNameFull,keyPhoneNumber,keyPostcode,keyAddress1,keyAddress2,keyCity,keyCounty],r=document.querySelectorAll(idOverlayInfoBilling).querySelector("form"),n=document.querySelectorAll(idOverlayInfoDelivery).querySelector("form");for(var o in t)r.querySelector("#"+t[o]).value=getElementValueCurrent(n.querySelector("#"+t[o]))}))}))}},{key:"leave",value:function(){!function(e,t,r){var n=Ke(We(e.prototype),"leave",r);return"function"==typeof n?function(e){return n.apply(r,e)}:n}(t,0,this)([])}}])}(F);function Ze(e){return Ze="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ze(e)}function et(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,at(n.key),n)}}function tt(e,t,r){return t=ot(t),function(e,t){if(t&&("object"==Ze(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,rt()?Reflect.construct(t,r||[],ot(e).constructor):t.apply(e,r))}function rt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(rt=function(){return!!e})()}function nt(){return nt="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=ot(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},nt.apply(null,arguments)}function ot(e){return ot=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ot(e)}function it(e,t){return it=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},it(e,t)}function at(e){var t=function(e){if("object"!=Ze(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Ze(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Ze(t)?t:t+""}!function(e,t,r){(t=Ye(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}($e,"hash",hashPageStoreBasket);var ut=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),tt(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&it(e,t)}(t,e),function(e,t){return t&&et(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize(),this.hookupFiltersStore(),this.hookupStoreHome()}},{key:"leave",value:function(){!function(e,t,r){var n=nt(ot(e.prototype),"leave",r);return"function"==typeof n?function(e){return n.apply(r,e)}:n}(t,0,this)([])}}])}(F);function lt(e){return lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},lt(e)}function ct(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,st(n.key),n)}}function st(e){var t=function(e){if("object"!=lt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=lt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==lt(t)?t:t+""}!function(e,t,r){(t=at(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(ut,"hash",hashPageStoreHome);var ft=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return function(e,t,r){return r&&ct(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}(e,0,[{key:"getOptionJsonFromObjectJsonAndKeys",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return{text:e[t],value:e[r],selected:e[r]==n}}},{key:"getOptionJsonFromObjectJson",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=t[flagNameAttrOptionText],o=t[flagNameAttrOptionValue];return console.log({objectJson:t,keyText:n,keyValue:o}),e.getOptionJsonFromObjectJsonAndKeys(t,n,o,r)}}])}();function yt(e){return yt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},yt(e)}function pt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,dt(n.key),n)}}function dt(e){var t=function(e){if("object"!=yt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=yt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==yt(t)?t:t+""}var ht=function(){return function(e,t,r){return r&&pt(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}((function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}),0,[{key:"getListFromDict",value:function(e){var t=[];for(var r in e)t.push(e[r]);return t}}])}();function vt(e){return vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},vt(e)}function gt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,mt(n.key),n)}}function mt(e){var t=function(e){if("object"!=vt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=vt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==vt(t)?t:t+""}var bt=function(){return function(e,t,r){return r&&gt(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}((function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}),0,[{key:"hookup",value:function(){y.initialiseEventHandler(idOverlayError+" button."+flagCancel,flagInitialised,(function(e){e.addEventListener("click",(function(){document.querySelector(idOverlayError).style.visibility="hidden"}))}))}},{key:"show",value:function(e){var t=document.querySelector(idOverlayError);t.querySelector(idLabelError).innerText=e,t.style.visibility="visible"}}])}();function kt(e){return kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},kt(e)}function Pt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,St(n.key),n)}}function St(e){var t=function(e){if("object"!=kt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=kt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==kt(t)?t:t+""}function Ct(e,t,r){return t=Tt(t),function(e,t){if(t&&("object"==kt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,wt()?Reflect.construct(t,r||[],Tt(e).constructor):t.apply(e,r))}function wt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(wt=function(){return!!e})()}function Et(e,t,r,n){var o=Ot(Tt(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o}function Ot(){return Ot="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Tt(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},Ot.apply(null,arguments)}function Tt(e){return Tt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Tt(e)}function jt(e,t){return jt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},jt(e,t)}var At=function(e){function t(e){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(r=Ct(this,t,[e])).cursorYInitial=null,r.rowInitial=null,r.placeholder=null,r.dragSrcEl=null,r.dragSrcRow=null,r.hookupTableCellDdls=r.hookupTableCellDdls.bind(r),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&jt(e,t)}(t,e),function(e,t,r){return t&&Pt(e.prototype,t),r&&Pt(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){throw new Error("Must implement initialize() method.")}},{key:"sharedInitialize",value:function(){var e=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(arguments.length>0&&void 0!==arguments[0]&&arguments[0]){var o=this.getLocalStoragePage()[flagFormFilters],i=this.getFormFilters(),a=l.convertForm2JSON(i);n.areEqualDicts(o,a)||this.callFilterTableContent(o)}else Et(t,"sharedInitialize",this,3)([]),this.hookupFilters(),this.hookupButtonsAddSaveCancel(),this.hookupTableMain(),T.hookup((function(){r?e.saveRecordsTableDirtySinglePageApp():e.saveRecordsTableDirty()}))}},{key:"hookupFilters",value:function(){if(this.constructor===t)throw new Error("Subclass of TableBasePage must implement method hookupFilters().")}},{key:"sharedHookupFilters",value:function(){this.hookupButtonApplyFilters()}},{key:"hookupFilterActive",value:function(){this.hookupFilter(flagActive)}},{key:"hookupFilter",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e,r){return t.isDirtyFilter(r)},n=idFormFilters+" ."+e;this.hookupEventHandler("change",n,r)}},{key:"hookupFilterIsNotEmpty",value:function(){this.hookupFilter(flagIsNotEmpty)}},{key:"hookupButtonApplyFilters",value:function(){var e=this;this.hookupEventHandler("click",idButtonApplyFilters,(function(t,r){t.stopPropagation(),e.getAndLoadFilteredTableContent()}))}},{key:"getAndLoadFilteredTableContent",value:function(){var e=this.getFormFilters(),t=l.convertForm2JSON(e);this.leave(),this.callFilterTableContent(t).catch((function(e){return console.error("Error:",e)}))}},{key:"getFormFilters",value:function(){return document.querySelector(idFormFilters)}},{key:"callbackLoadTableContent",value:function(e){this.getTableMain().querySelector("tbody").querySelectorAll("tr").forEach((function(e){e.remove()}));var t=e.data[flagRows];!n.isEmpty(t)&&t.every((function(e){return e.hasOwnProperty("display_order")}))&&(t=t.sort((function(e,t){return e.display_order-t.display_order}))),t.forEach(this.loadRowTable.bind(this)),this.hookupTableMain()}},{key:"getTableMain",value:function(){return document.querySelector(idTableMain)}},{key:"loadRowTable",value:function(e){throw new Error("Subclass of TableBasePage must implement method loadRowTable().")}},{key:"getAndLoadFilteredTableContentSinglePageApp",value:function(){var e=this,t=this.getFormFilters(),r=l.convertForm2JSON(t);this.callFilterTableContent(r).then((function(t){console.log("Table data received:",t),e.callbackLoadTableContent(t)})).catch((function(e){return console.error("Error:",e)}))}},{key:"hookupButtonsAddSaveCancel",value:function(){this.hookupButtonAddRowTable(),this.hookupButtonSave(),this.hookupButtonCancel(),this.toggleShowButtonsSaveCancel(!1)}},{key:"saveRecordsTableDirty",value:function(){var e=this,t=this.getTableRecords(!0);if(0!=t.length){var r=this.getFormFilters(),n=l.getElementValueCurrent(document.querySelector(idTextareaConfirm));this.callSaveTableContent(t,r,n).then((function(t){t[flagStatus]==flagSuccess?(console.log("Records saved!"),console.log("Data received:",t),e.getAndLoadFilteredTableContent()):(console.log("error: ",t[flagMessage]),bt.show(t[flagMessage]))})).catch((function(e){return console.error("Error:",e)}))}else bt.show("No records to save")}},{key:"getTableRecords",value:function(){var e,t=this,r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=this.getTableMain(),o=[];return n.querySelectorAll("tbody tr").forEach((function(n){r&&!n.classList.contains(flagDirty)||(e=t.getJsonRow(n),o.push(e))})),o}},{key:"getJsonRow",value:function(e){throw new Error("Subclass of TableBasePage must implement method getJsonRow().")}},{key:"saveRecordsTableDirtySinglePageApp",value:function(){var e=this,t=this.getTableRecords(!0);if(0!=t.length){var r=this.getFormFilters(),n=l.getElementValueCurrent(document.querySelector(idTextareaConfirm));this.callSaveTableContent(t,r,n).then((function(t){t[flagStatus]==flagSuccess?(console.log("Records saved!"),console.log("Data received:",t),e.callbackLoadTableContent(t)):(console.log("error: ",t[flagMessage]),bt.show(t[flagMessage]))})).catch((function(e){return console.error("Error:",e)}))}else bt.show("No records to save")}},{key:"hookupButtonCancel",value:function(){y.initialiseEventHandler(idFormFilters+" button."+flagCancel,flagInitialised,(function(e){e.addEventListener("click",(function(e){e.stopPropagation(),getAndLoadFilteredTableContent()})),e.classList.add(flagCollapsed)}))}},{key:"hookupButtonAddRowTable",value:function(){var e=this;this.hookupEventHandler("click",idFormFilters+" button."+flagAdd,(function(t,r){t.stopPropagation();var n=document.querySelector(idTableMain+" tbody"),o=_rowBlank.cloneNode(!0);o.classList.remove(flagInitialised),o.querySelectorAll("."+flagInitialised).forEach((function(e){e.classList.remove(flagInitialised)})),e.initialiseRowNew(o),n.appendChild(o),e.hookupTableMain()}))}},{key:"initialiseRowNew",value:function(e){throw new Error("Subclass of TableBasePage must implement method initialiseRowNew().")}},{key:"hookupTableMain",value:function(){var e=this;if(this.constructor===t)throw new Error("Must implement hookupTableMain() method.");null==_rowBlank&&y.initialiseEventHandler(idTableMain,flagInitialised,(function(t){e.cacheRowBlank()}))}},{key:"cacheRowBlank",value:function(){var e=idTableMain+" tbody tr."+flagRowNew,t=document.querySelector(e);console.log("row blank temp: ",t),_rowBlank=t.cloneNode(!0),document.querySelectorAll(e).forEach((function(e){e.remove()}))}},{key:"hookupSlidersDisplayOrderTable",value:function(){var e=idTableMain+" tbody tr td."+flagDisplayOrder+" input."+flagSlider+"."+flagDisplayOrder;this.hookupChangeHandlerTableCells(e)}},{key:"hookupChangeHandlerTableCells",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e,r){t.handleChangeElementCellTable(e,r)};y.initialiseEventHandler(e,flagInitialised,(function(e){e.addEventListener("change",(function(t){r(t,e)})),t.handleChangeElementCellTable(null,e)}))}},{key:"handleChangeElementCellTable",value:function(e,t){var r=l.getRowFromElement(t),n=l.getCellFromElement(t),o=l.hasDirtyChildrenContainer(r),i=t.classList.contains(flagDirty),a=l.updateAndCheckIsElementDirty(t);if(a!=i){l.handleDirtyElement(n,a);var u=l.hasDirtyChildrenContainer(r);if(u!=o){l.handleDirtyElement(r,u);var c=this.getTableRecords(!0).length>0;this.toggleShowButtonsSaveCancel(c)}}}},{key:"hookupChangeHandlerTableCellsWhenNotCollapsed",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e,r){r.classList.contains(flagCollapsed)||t.handleChangeElementCellTable(e,r)};this.hookupEventHandler("change",e,r)}},{key:"hookupTextareasCodeTable",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" tbody tr td."+flagCode+" textarea")}},{key:"hookupTextareasNameTable",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" tbody tr td."+flagName+" textarea")}},{key:"hookupTextareasDescriptionTable",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" tbody tr td."+flagDescription+" textarea")}},{key:"hookupInputsActiveTable",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" tbody tr td."+flagActive+' input[type="checkbox"]')}},{key:"hookupTdsAccessLevel",value:function(){var e=idTableMain+" tbody td."+flagAccessLevel;this.hookupTableCellDdlPreviews(e,ht.getListFromDict(accessLevels))}},{key:"hookupTableCellDdlPreviews",value:function(e,t){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e,t){r.hookupTableCellDdls(e,t)};this.hookupEventHandler("click",e,(function(o,i){r.handleClickTableCellDdlPreview(o,i,t,e,(function(e,t){n(e,t)}))}))}},{key:"hookupTableCellDdls",value:function(e){var t=this;this.hookupEventHandler("change",e,(function(e,r){t.handleChangeTableCellDdl(e,r)}))}},{key:"handleClickTableCellDdlPreview",value:function(e,t,r,n){var o=this,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(e,t){o.hookupTableCellDdls(e,t)};if(!t.querySelector("select")){console.log("click table cell ddl preview");var a=t.cloneNode(!0);t.parentNode.replaceChild(a,t);var u=a.getAttribute(attrValueCurrent);a.innerHTML="";var c,s,f=document.createElement("select");l.setElementValuesCurrentAndPrevious(f,l.getElementAttributeValueCurrent(a)),console.log({optionObjectList:r,cellSelector:n}),r.forEach((function(e){c=ft.getOptionJsonFromObjectJson(e,u),s=l.createOption(c),f.appendChild(s)})),a.appendChild(f),i(n+" select")}}},{key:"handleChangeTableCellDdl",value:function(e,t){var r=l.getRowFromElement(t),n=l.getCellFromElement(t);console.log("td: ",n);var o=l.hasDirtyChildrenContainer(r),i=t.classList.contains(flagDirty),a=l.updateAndCheckIsElementDirty(t);if(console.log("isDirtyElement: ",a),console.log("wasDirtyElement: ",i),a!=i){l.handleDirtyElement(n,a);var u=t.options[t.selectedIndex];l.setElementAttributeValueCurrent(n,u.value);var c=l.hasDirtyChildrenContainer(r);if(console.log("isNowDirtyRow: ",c),console.log("wasDirtyRow: ",o),c!=o){l.handleDirtyElement(r,c);var s=this.getTableRecords(!0),f=s.length>0;console.log("dirty records:",s),console.log("existsDirtyRecord:",f),this.toggleShowButtonsSaveCancel(f)}}}},{key:"hookupTableCellDDlPreviewsWhenNotCollapsed",value:function(e,t){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e,t){r.hookupTableCellDdls(e,t)};this.hookupEventHandler("click",e,(function(o,i){var a=i.querySelector("div");a&&!a.classList.contains(flagCollapsed)&&r.handleClickTableCellDdlPreview(o,i,t,e,(function(e,t){n(e,t)}))}))}},{key:"leave",value:function(){if(this.constructor===t)throw new Error("Must implement leave() method.");Et(t,"leave",this,3)([]);var e=this.getFormFilters(),r={};r[flagFormFilters]=l.convertForm2JSON(e),this.setLocalStoragePage(r)}},{key:"toggleColumnHasClassnameFlag",value:function(e,t,r){var n=this.getTableMain(),o=n.querySelector("th."+e),i=o.classList.contains(r);if(t!=i){var a=n.querySelectorAll("td."+e);l.toggleElementHasClassnameFlag(o,t,r),a.forEach((function(e){l.toggleElementHasClassnameFlag(e,t,r)}))}}}],[{key:"isDirtyFilter",value:function(e){var t=l.updateAndCheckIsElementDirty(e);if(t){var r=document.querySelector(idTableMain+" tbody");r.querySelectorAll("tr").remove(),r.appendChild(document.createElement('<div>Press "Apply Filters" to refresh the table.</div>'))}return t}}])}(F);function It(e){return It="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},It(e)}function Ft(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Lt(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Lt(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function Lt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function qt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Dt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?qt(Object(r),!0).forEach((function(t){Bt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):qt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Bt(e,t,r){return(t=xt(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Vt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,xt(n.key),n)}}function xt(e){var t=function(e){if("object"!=It(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=It(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==It(t)?t:t+""}var Rt=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.page=t}return function(e,t,r){return t&&Vt(e.prototype,t),r&&Vt(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}(e,[{key:"initialize",value:function(){console.log("hookup store start for ",this.page.hash),this.hookupFilters(),this.hookupLocalStorageStore(),this.hookupBasket(),this.hookupButtonsAddToBasket()}},{key:"hookupFilters",value:function(){this.hookupFilterCurrency(),this.hookupFilterDeliveryRegion(),this.hookupFilterIsIncludedVAT()}},{key:"hookupFilterCurrency",value:function(){for(var e,t,r,n=document.querySelectorAll(idCurrency)[0],o=0;o<n.options.length;o++)t=(r=(e=document.querySelectorAll(n.options[o])).text()).indexOf("-"),e.setAttribute(attrTextExpanded,r),e.setAttribute(attrTextCollapsed,r.substring(0,t-1)),e.classList.add(flagCollapsed);handleSelectCollapse(n),y.initialiseEventHandler(n,flagInitialised,(function(){(n=document.querySelectorAll(n)).addEventListener("focus",(function(){handleSelectExpand(n)})),n.addEventListener("blur",(function(){handleSelectCollapse(n)})),n.addEventListener("change",(function(){var e=n.val();console.log("selected currency: ",e);var t=v.getLocalStorage(keyBasket);t[keyIdCurrency]=e,v.setLocalStorage(keyBasket,t);var r={};r[keyBasket]=t,ajaxJSONData("update currency",mapHashToController(hashPageCurrent),r,loadPageBody,!1)}))}))}},{key:"hookupFilterDeliveryRegion",value:function(){for(var e,t,r,n=document.querySelectorAll(idRegionDelivery)[0],o=0;o<n.options.length;o++)t=(r=(e=document.querySelectorAll(n.options[o])).text()).indexOf("-"),e.setAttribute(attrTextExpanded,r),e.setAttribute(attrTextCollapsed,r.substring(0,t-1)),e.classList.add(flagCollapsed);handleSelectCollapse(n),y.initialiseEventHandler(n,flagInitialised,(function(){(n=document.querySelectorAll(n)).addEventListener("focus",(function(){console.log("dropdown region focused"),handleSelectExpand(n)})),n.addEventListener("blur",(function(){console.log("dropdown region blurred"),handleSelectCollapse(n)})),n.addEventListener("change",(function(){handleSelectCollapse(n);var e=n.val();console.log("selected region: ",e);var t=v.getLocalStorage(keyBasket);t[keyIdRegionDelivery]=e,v.setLocalStorage(keyBasket,t);var r={};r[keyIdRegionDelivery]=e,ajaxJSONData("update region",mapHashToController(hashStoreSetRegion),r,null,!1)}))}))}},{key:"hookupFilterIsIncludedVAT",value:function(){var e=document.querySelectorAll(idFormIsIncludedVAT),t=document.querySelectorAll(e.querySelector('input[type="checkbox"]')[0]);y.initialiseEventHandler(t,flagInitialised,(function(){e=document.querySelectorAll(idFormIsIncludedVAT),t.addEventListener("change",(function(t){ajaxData={},ajaxData[keyForm]=convertForm2JSON(e),console.log("sending data to include VAT controller: "),console.log(ajaxData),ajaxJSONData("set include VAT",mapHashToController(hashStoreSetIsIncludedVAT),ajaxData,(function(){window.location.reload()}),!1)})),console.log("form is included VAT initialised")}))}},{key:"hookupLocalStorage",value:function(){var t=v.getLocalStorage(keyBasket);e.validateBasket(t)||(console.log("locally-stored basket not valid"),t=e.makeNewBasket());var r=e.validateBasket(userBasket)?userBasket:t,n=e.areEqualBaskets(t,r)?r:e.mergeBaskets(t,r);e.areEqualBaskets(t,n)||v.setLocalStorage(keyBasket,n),e.areEqualBaskets(r,n)||API.saveStoreBasket(n),userBasket=n}},{key:"hookupBasket",value:function(){this.toggleShowButtonCheckout(),this.hookupButtonCheckout(),this.hookupBasketItemPlusAndMinusButtons(),this.hookupBasketAddInputs(),this.hookupBasketEditInputs(),this.hookupDeleteBasketItemButtons()}},{key:"toggleShowButtonCheckout",value:function(){console.log("toggling checkout button");var e=document.querySelectorAll(idButtonCheckout),t=document.querySelectorAll(idLabelBasketEmpty);0==userBasket.items.length?(e.style.display="none",t.style.display=""):(e.style.display="",t.style.display="none")}},{key:"hookupButtonCheckout",value:function(){console.log("hooking up checkout button");var e=document.querySelectorAll(idButtonCheckout);y.initialiseEventHandler(e,flagInitialised,(function(){e.addEventListener("click",(function(){this.router.navigateToHash(hashPageStoreBasket)}))}))}},{key:"hookupBasketItemPlusAndMinusButtons",value:function(){var e=document.querySelector(idFormBasket);e.querySelectorAll("div.btn-increment["+attrFormType+"="+typeFormBasketAdd+"]").each((function(){var e=this;y.initialiseEventHandler(e,flagInitialised,(function(){e.addEventListener("click",(function(t){t.preventDefault(),t.stopPropagation();var r=document.querySelectorAll(getFormProductSelector(typeFormBasketAdd,e)).querySelector('input[type="number"]'),n=parseInt(l.getElementValueCurrent(r));isNaN(n)&&(n=1),n+=1,r.val(n)}))}))})),e.querySelectorAll("div.btn-decrement["+attrFormType+"="+typeFormBasketAdd+"]").each((function(){var e=this;y.initialiseEventHandler(e,flagInitialised,(function(){e.addEventListener("click",(function(t){t.preventDefault(),t.stopPropagation();var r=document.querySelectorAll(getFormProductSelector(typeFormBasketAdd,e)).querySelector('input[type="number"]'),n=parseInt(l.getElementValueCurrent(r));isNaN(n)&&(n=1),n=Math.max(1,n-1),r.val(n)}))}))})),e.querySelectorAll("div.btn-increment["+attrFormType+"="+typeFormBasketEdit+"]").each((function(){var e=this;y.initialiseEventHandler(e,flagInitialised,(function(){e.addEventListener("click",(function(t){t.stopPropagation();var r=document.querySelectorAll(getFormProductSelector(typeFormBasketEdit,e)).querySelector('input[type="number"]'),n=parseInt(l.getElementValueCurrent(r));isNaN(n)&&(n=1),n+=1,r.val(n),r.trigger("change")}))}))})),e.querySelectorAll("div.btn-decrement["+attrFormType+"="+typeFormBasketEdit+"]").each((function(){var e=this;y.initialiseEventHandler(e,flagInitialised,(function(){e.addEventListener("click",(function(t){t.stopPropagation();var r=document.querySelectorAll(getFormProductSelector(typeFormBasketEdit,e)).querySelector('input[type="number"]'),n=parseInt(l.getElementValueCurrent(r));isNaN(n)&&(n=1),n=Math.max(1,n-1),r.val(n),r.trigger("change")}))}))}))}},{key:"hookupBasketAddForms",value:function(){var e="form["+attrFormType+"="+typeFormBasketAdd+"]";y.initialiseEventHandler(e,flagInitialised,(function(e){var t=e.querySelector('input[type="number"]');t.addEventListener("change",(function(e){var r=parseInt(t.value);(isNaN(r)||r<0)&&(t.value=0)})),e.querySelector("button").addEventListener("click",(function(r){r.preventDefault(),r.stopPropagation();var n={};n[keyIdProductPermutation]=e.getAttribute(attrIdPermutation),n[keyQuantity]=t.value,API.storeAddToBasket(n)}))}))}},{key:"hookupBasketEditForms",value:function(){var e="form["+attrFormType+"="+typeFormBasketEdit+"]";y.initialiseEventHandler(e,flagInitialised,(function(e){var t=e.querySelector('input[type="number"]');t.addEventListener("change",(function(r){var n=parseInt(t.value);if((isNaN(n)||n<0)&&(t.value=0),t.value!=e.getAttribute(attrQuantity)){var o={};o[keyIdProductPermutation]=e.getAttribute(attrIdPermutation),o[keyQuantity]=t.value,API.storeSaveBasket(o)}})),e.querySelector("button").addEventListener("click",(function(t){t.preventDefault(),t.stopPropagation(),API.storeDeleteBasketItem(e.getAttribute(attrIdPermutation))}))}))}},{key:"loadBasket",value:function(e){userBasket=e.data[keyBasket];var t=document.querySelectorAll(idFormBasket),r=e.data[keyHtmlBlock];t.innerHTML=r,this.hookupBasket()}},{key:"getCurrencySelected",value:function(){var e=document.querySelectorAll(idSelectorCurrency).val();return console.log("selected currency: ",e),e}},{key:"hookupStoreCardsProduct",value:function(){y.initialiseEventHandler(".card.subcard",flagInitialised,(function(e){console.log("initialising product card: ",e),e.addEventListener("click",(function(t){if("submit"!=t.target.id){console.log("product click: "+e.getAttribute(attrIdProduct)),console.log("permutation click: "+e.getAttribute(attrIdPermutation));var r={};r[keyIdProduct]=e.getAttribute(attrIdProduct),r[keyIdPermutation]=e.getAttribute(attrIdPermutation),goToPage(hashPageStoreProduct,r)}})),console.log("click method added for product ID: "+e.getAttribute(attrIdProduct)+", permutation ID: ",e.getAttribute(attrIdPermutation))}))}},{key:"leave",value:function(){}}],[{key:"validateBasket",value:function(e){return n.isEmpty(e)&&n.dictHasKey(e,keyItems)&&n.dictHasKey(e,keyIsIncludedVAT)&&n.dictHasKey(e,keyIdCurrency)&&n.dictHasKey(e,keyIdRegionDelivery)}},{key:"makeNewBasket",value:function(){return Bt(Bt(Bt(Bt({},keyItems,[]),keyIsIncludedVAT,!0),keyIdCurrency,1),keyIdRegionDelivery,1)}},{key:"areEqualBaskets",value:function(e,t){return JSON.stringify(e)===JSON.stringify(t)}},{key:"mergeBaskets",value:function(e,t){var r,n=Dt(Dt({},t),e),o={},i=Ft(t[keyItems]);try{for(i.s();!(r=i.n()).done;){var a=r.value;o[a[keyIdPermutation]]=a.Quantity}}catch(e){i.e(e)}finally{i.f()}var u,l=Ft(e[keyItems]);try{for(l.s();!(u=l.n()).done;){var c=u.value;o[c[keyIdPermutation]]=o[c[keyIdPermutation]]?o[c[keyIdPermutation]]+c.Quantity:c.Quantity}}catch(e){l.e(e)}finally{l.f()}return n[keyItems]=Object.values(o),n}}])}();function Nt(e){return Nt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Nt(e)}function Ht(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,_t(n.key),n)}}function _t(e){var t=function(e){if("object"!=Nt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Nt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Nt(t)?t:t+""}function Mt(e,t,r){return t=Jt(t),function(e,t){if(t&&("object"==Nt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Ut()?Reflect.construct(t,r||[],Jt(e).constructor):t.apply(e,r))}function Ut(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ut=function(){return!!e})()}function Qt(){return Qt="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Jt(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},Qt.apply(null,arguments)}function Jt(e){return Jt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Jt(e)}function zt(e,t){return zt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},zt(e,t)}var Gt=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Mt(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&zt(e,t)}(t,e),function(e,t){return t&&Ht(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){!function(e,t,r){var n=Qt(Jt(e.prototype),"initialize",r);return"function"==typeof n?function(e){return n.apply(r,e)}:n}(t,0,this)([]),this.hookupFilters(),this.hookupTable()}},{key:"hookupFilters",value:function(){}},{key:"hookupTable",value:function(){}}])}(Rt);function Kt(e){return Kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Kt(e)}function Wt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,nr(n.key),n)}}function Xt(e,t,r){return t=er(t),function(e,t){if(t&&("object"==Kt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Yt()?Reflect.construct(t,r||[],er(e).constructor):t.apply(e,r))}function Yt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Yt=function(){return!!e})()}function $t(e,t,r,n){var o=Zt(er(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o}function Zt(){return Zt="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=er(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},Zt.apply(null,arguments)}function er(e){return er=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},er(e)}function tr(e,t){return tr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},tr(e,t)}function rr(e,t,r){return(t=nr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function nr(e){var t=function(e){if("object"!=Kt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Kt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Kt(t)?t:t+""}var or=function(e){function t(e){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),rr(r=Xt(this,t,[e]),"callFilterTableContent",C.getCategoriesByFilters),rr(r,"callSaveTableContent",C.saveCategories),r.storeMixin=new Gt(r),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&tr(e,t)}(t,e),function(e,t){return t&&Wt(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize()}},{key:"hookupFilters",value:function(){this.sharedHookupFilters(),this.hookupFilterIsNotEmpty(),this.hookupFilterActive()}},{key:"hookupFilterIsNotEmpty",value:function(){this.hookupEventHandler("change",idFormFilters+" ."+flagIsNotEmpty,(function(e,r){t.isDirtyFilter(r)}))}},{key:"loadRowTable",value:function(e){if(null!=e){var t=_rowBlank.cloneNode(!0);t.classList.remove(flagRowNew),t.classList.remove(flagInitialised),t.querySelectorAll("."+flagInitialised).forEach((function(e){e.classList.remove(flagInitialised)})),console.log("applying data row: ",e);var r=t.querySelector("td."+flagDisplayOrder+" ."+flagSlider),n=t.querySelector("td."+flagCode+" textarea"),o=t.querySelector("td."+flagName+" textarea"),i=t.querySelector("td."+flagDescription+" textarea"),a=t.querySelector("td."+flagAccessLevel),u=a.querySelector("div."+flagAccessLevel),c=t.querySelector("td."+flagActive+' input[type="checkbox"]');l.setElementValuesCurrentAndPrevious(r,e[flagDisplayOrder]),l.setElementValuesCurrentAndPrevious(n,e[flagCode]),l.setElementValuesCurrentAndPrevious(o,e[flagName]),l.setElementValuesCurrentAndPrevious(i,e[flagDescription]),a.setAttribute(attrIdAccessLevel,e[attrIdAccessLevel]),a.setAttribute(flagAccessLevelRequired,e[flagAccessLevelRequired]),u.setAttribute(attrIdAccessLevel,e[attrIdAccessLevel]),l.setElementValuesCurrentAndPrevious(u,e[attrIdAccessLevel]),u.textContent=e[flagAccessLevelRequired],l.setElementValuesCurrentAndPrevious(c,e[flagActive]),t.setAttribute(e[flagKeyPrimary],e[e[flagKeyPrimary]]),this.getTableMain().querySelector("tbody").appendChild(t)}}},{key:"getJsonRow",value:function(e){if(null!=e){var t=e.querySelector("td."+flagDisplayOrder+" ."+flagSlider),r=e.querySelector("td."+flagCode+" textarea"),n=e.querySelector("td."+flagName+" textarea"),o=e.querySelector("td."+flagDescription+" textarea"),i=e.querySelector("td."+flagAccessLevel),a=e.querySelector("td."+flagActive+' input[type="checkbox"]'),u={};return u[attrIdProductCategory]=e.getAttribute(attrIdProductCategory),u[flagCode]=l.getElementValueCurrent(r),u[flagName]=l.getElementValueCurrent(n),u[flagDescription]=l.getElementValueCurrent(o),u[attrIdAccessLevel]=l.getElementValueCurrent(i),u[flagActive]=l.getElementValueCurrent(a),u[flagDisplayOrder]=t.getAttribute(attrValueCurrent),u}}},{key:"initialiseRowNew",value:function(e){if(null!=e){var t=document.querySelectorAll("td."+flagDisplayOrder+" input."+flagSlider),r=0;t.forEach((function(e){r=Math.max(r,parseFloat(l.getElementValueCurrent(e)))}));var n=e.querySelector("td."+flagDisplayOrder+" ."+flagSlider);l.setElementValuesCurrentAndPrevious(n,r+1)}}},{key:"hookupTableMain",value:function(){$t(t,"hookupTableMain",this,3)([]),this.hookupSlidersDisplayOrderTable(),this.hookupTextareasCodeTable(),this.hookupTextareasNameTable(),this.hookupTextareasDescriptionTable(),this.hookupTdsAccessLevel(),this.hookupInputsActiveTable()}},{key:"leave",value:function(){$t(t,"leave",this,3)([])}}])}(At);function ir(e){return ir="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ir(e)}function ar(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,dr(n.key),n)}}function ur(e,t,r){return t=fr(t),function(e,t){if(t&&("object"==ir(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,lr()?Reflect.construct(t,r||[],fr(e).constructor):t.apply(e,r))}function lr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(lr=function(){return!!e})()}function cr(e,t,r,n){var o=sr(fr(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o}function sr(){return sr="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=fr(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},sr.apply(null,arguments)}function fr(e){return fr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},fr(e)}function yr(e,t){return yr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},yr(e,t)}function pr(e,t,r){return(t=dr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function dr(e){var t=function(e){if("object"!=ir(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ir(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ir(t)?t:t+""}rr(or,"hash",hashPageStoreProductCategories);var hr=function(e){function t(e){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),pr(r=ur(this,t,[e]),"callFilterTableContent",C.getProductPermutationsByFilters),pr(r,"callSaveTableContent",C.saveProductPermutations),r.storeMixin=new Gt(r),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&yr(e,t)}(t,e),function(e,t){return t&&ar(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize()}},{key:"hookupFilters",value:function(){this.sharedHookupFilters(),this.hookupFilterProductCategory(),this.hookupFilterProduct(),this.hookupFilterOutOfStock(),this.hookupFilterMinStock(),this.hookupFilterMaxStock()}},{key:"hookupFilterProductCategory",value:function(){this.hookupFilter(flagProductCategory,(function(e,r){t.isDirtyFilter(r),r.classList.contains(flagDirty);var n,o,i=l.getElementValueCurrent(r),a=productCategories[i],u=document.querySelector(idFormFilters+" ."+flagProduct),c=u.getAttribute(attrValuePrevious);u.innerHTML="",o=l.createOption(null),u.appendChild(o),a.forEach((function(e){n=ft.getOptionJsonFromObjectJson(e,c),o=l.createOption(n),u.appendChild(o)})),u.dispatchEvent(new Event("change"))}))}},{key:"hookupFilterProduct",value:function(){this.hookupFilter(flagProduct)}},{key:"hookupFilterOutOfStock",value:function(){this.hookupFilter(flagIsOutOfStock)}},{key:"hookupFilterMinStock",value:function(){this.hookupFilter(flagQuantityMin)}},{key:"hookupFilterMaxStock",value:function(){this.hookupFilter(flagQuantityMax)}},{key:"loadRowTable",value:function(e){}},{key:"getJsonRow",value:function(e){if(null!=e){var t=e.querySelector("td."+flagProductCategory),r=e.querySelector("td."+flagProduct),n=e.querySelector("td."+flagProductVariations),o=e.querySelector("td."+flagDescription+" textarea"),i=e.querySelector("td."+flagCostLocal+" input"),a=e.querySelector("td."+flagCurrencyCost),u=e.querySelector("td."+flagProfitLocalMin+" input"),l=e.querySelector("td."+flagLatencyManufactureDays+" input"),c=e.querySelector("td."+flagQuantityStock+" input"),s=e.querySelector("td."+flagQuantityMin+" input"),f=e.querySelector("td."+flagQuantityMax+" input"),y=e.querySelector("td."+flagCountUnitMeasurementPerQuantityStep+" input"),p=e.querySelector("td."+flagUnitMeasurementQuantity),d=e.querySelector("td."+flagIsSubscription+" input"),h=e.querySelector("td."+flagCountUnitMeasurementIntervalRecurrence+" input"),v=e.querySelector("td."+flagUnitMeasurementIntervalRecurrence),g=e.querySelector("td."+flagIdStripeProduct+" input"),m=e.querySelector("td."+flagDoesExpireFasterOnceUnsealed+" input"),b=e.querySelector("td."+flagCountUnitMeasurementIntervalExpirationUnsealed+" input"),k=e.querySelector("td."+flagUnitMeasurementIntervalExpirationUnsealed),P=e.querySelector("td."+flagActive+" input"),S={};return S[attrIdProductPermutation]=e.getAttribute(attrIdProductPermutation),S[attrIdProductCategory]=t.getAttribute(attrValueCurrent),S[attrIdProduct]=r.getAttribute(attrValueCurrent),S[flagProductVariations]=n.getAttribute(attrValueCurrent),S[flagHasVariations]=""!=S[flagProductVariations],S[flagDescription]=o.getAttribute(attrValueCurrent),S[flagCostLocal]=i.getAttribute(attrValueCurrent),S[flagCurrencyCost]=a.getAttribute(attrValueCurrent),S[flagProfitLocalMin]=u.getAttribute(attrValueCurrent),S[flagLatencyManufactureDays]=l.getAttribute(attrValueCurrent),S[flagQuantityStock]=c.getAttribute(attrValueCurrent),S[flagQuantityMin]=s.getAttribute(attrValueCurrent),S[flagQuantityMax]=f.getAttribute(attrValueCurrent),S[flagCountUnitMeasurementPerQuantityStep]=y.getAttribute(attrValueCurrent),S[flagUnitMeasurementQuantity]=p.getAttribute(attrValueCurrent),S[flagIsSubscription]=d.getAttribute(attrValueCurrent),S[flagCountUnitMeasurementIntervalRecurrence]=h.getAttribute(attrValueCurrent),S[flagUnitMeasurementIntervalRecurrence]=v.getAttribute(attrValueCurrent),S[flagIdStripeProduct]=g.getAttribute(attrValueCurrent),S[flagDoesExpireFasterOnceUnsealed]=m.getAttribute(attrValueCurrent),S[flagCountUnitMeasurementIntervalExpirationUnsealed]=b.getAttribute(attrValueCurrent),S[flagUnitMeasurementIntervalExpirationUnsealed]=k.getAttribute(attrValueCurrent),S[flagActive]=P.getAttribute(attrValueCurrent),S}}},{key:"initialiseRowNew",value:function(e){var t=document.querySelector(idFormFilters+" #"+attrIdProductCategory),r=l.getElementValueCurrent(t),o=!(n.isEmpty(r)||"0"==r),i=document.querySelector(idFormFilters+" #"+attrIdProduct),a=l.getElementValueCurrent(i),u=!(n.isEmpty(a)||"0"==a);if(console.log("initialiseRowNew: ",e),console.log({ddlCategoryFilter:t,idProductCategoryFilter:r,hasCategoryFilter:o,ddlProductFilter:i,idProductFilter:a,hasProductFilter:u}),o||u){if(o){var c=e.querySelector("td."+flagProductCategory+" select");l.setElementValuesCurrentAndPrevious(c,r),this.handleChangeProductCategoryDdl(null,c)}if(u){var s=e.querySelector("td."+flagProduct+" select");l.setElementValuesCurrentAndPrevious(s,a)}}}},{key:"hookupTableMain",value:function(){cr(t,"hookupTableMain",this,3)([]),this.hookupProductCategoryFields(),this.hookupProductFields(),this.hookupProductVariationFields(),this.hookupDescriptionTextareas(),this.hookupCostFields(),this.hookupLatencyManufactureInputs(),this.hookupQuantityFields(),this.hookupSubscriptionFields(),this.hookupIdStripeProductInputs(),this.hookupExpirationFields(),this.hookupActiveCheckboxes()}},{key:"hookupProductCategoryFields",value:function(){var e=this;this.hookupTableCellDdlPreviews(idTableMain+" td."+flagProductCategory,ht.getListFromDict(productCategories),(function(t,r){e.hookupProductCategoryDdls(t,r)}))}},{key:"hookupProductCategoryDdls",value:function(e){var t=this;this.hookupChangeHandlerTableCells(e,(function(e,r){t.handleChangeProductCategoryDdl(e,r)}))}},{key:"handleChangeProductCategoryDdl",value:function(e,t){this.handleChangeTableCellDdl(e,t);var r=l.getElementValueCurrent(t),n=l.getRowFromElement(t);n.querySelector("td."+flagProduct).dispatchEvent(new Event("click"));var o,i,a=n.querySelector("td."+flagProduct+" select");a.innerHTML="",a.appendChild(l.createOption(null)),ht.getListFromDict(products).forEach((function(e){e[attrIdProductCategory]==r&&(o=ft.getOptionJsonFromObjectJson(e),i=l.createOption(o),a.appendChild(i))})),this.handleChangeTableCellDdl(e,a)}},{key:"hookupProductFields",value:function(){this.hookupTableCellDdlPreviews(idTableMain+" td."+flagProduct,ht.getListFromDict(products))}},{key:"hookupProductVariationFields",value:function(){var e=this;this.hookupEventHandler("click",idTableMain+" td."+flagProductVariations+" div",(function(t,r){return e.handleClickProductPermutationVariationsPreview(t,r)}))}},{key:"handleClickProductPermutationVariationsPreview",value:function(e,r){var o=this;this.toggleProductPermutationVariationsColumnCollapsed(!1);var i=this.getElementProductVariations(r),a=document.createElement("table");a.classList.add(flagProductVariations);var u=document.createElement("thead"),l=document.createElement("tr"),c=document.createElement("th");c.textContent="Type";var s=document.createElement("th");s.textContent="Name";var f=document.createElement("button");f.classList.add(flagAdd),f.textContent="+";var y=document.createElement("th");y.appendChild(f),l.appendChild(c),l.appendChild(s),l.appendChild(y),u.appendChild(l),a.appendChild(u);var p=document.createElement("tbody");console.log("variations:",i),n.isEmpty(i)?i=[t.createOptionUnselectedProductVariation()]:i.forEach((function(e,t){o.addProductPermutationVariationRow(p,e)})),a.appendChild(p);var d=r.parentElement;d.innerHTML="",d.appendChild(a),console.log("tblVariations: ",a);var h=idTableMain+" td."+flagProductVariations+" button."+flagAdd;this.hookupEventHandler("click",h,this.handleClickButtonProductPermutationVariationsAdd);var v=idTableMain+" td."+flagProductVariations+" button."+flagDelete;this.hookupEventHandler("click",v,this.handleClickButtonProductPermutationVariationsDelete)}},{key:"toggleProductPermutationVariationsColumnCollapsed",value:function(e){this.toggleColumnHasClassnameFlag(flagProductVariations,e,flagCollapsed)}},{key:"getElementProductVariations",value:function(e){var t,r,o,i=e.getAttribute(attrValueCurrent),a=[];return n.isEmpty(i)||(i=i.split(",")).forEach((function(e){2==(t=e.split(":")).length?(console.log("parts: ",t),o=productVariationTypes[t[0].trim()],r=productVariations[t[1].trim()],a.push(pr(pr({},flagProductVariationType,o),flagProductVariation,r))):console.log("error: invalid variation: ",e)})),a}},{key:"handleClickButtonProductPermutationVariationsAdd",value:function(e,r){var n=l.getRowFromElement(r).querySelector("tbody"),o=t.createOptionUnselectedProductVariation();this.addProductPermutationVariationRow(n,o)}},{key:"addProductPermutationVariationRow",value:function(e,t){var r,n,o,i,a,u,c=Object.keys(productVariations),s=Object.keys(productVariationTypes);console.log("permutationVariation: ",t);var f=t[flagProductVariation],y=t[flagProductVariationType],p=document.createElement("td");p.classList.add(flagProductVariationType),l.setElementAttributesValuesCurrentAndPrevious(p,y[attrIdProductVariationType]);var d=document.createElement("select");d.classList.add(flagProductVariationType),l.setElementAttributesValuesCurrentAndPrevious(d,y[attrIdProductVariationType]),o=l.createOption(null),console.log("optionProductVariationType: ",o),d.appendChild(o),s.forEach((function(e){r=productVariationTypes[e],n=ft.getOptionJsonFromObjectJson(r,y[attrIdProductVariationType]),o=l.createOption(n),console.log("optionProductVariationType: ",o),d.appendChild(o)}));var h=document.createElement("td");h.classList.add(flagProductVariation),l.setElementAttributesValuesCurrentAndPrevious(h,f[attrIdProductVariation]);var v=document.createElement("select");v.classList.add(flagProductVariation),l.setElementAttributesValuesCurrentAndPrevious(v,f[attrIdProductVariation]),u=l.createOption(null),console.log("optionProductVariation: ",u),v.appendChild(u),c.forEach((function(e){i=productVariations[e],a=ft.getOptionJsonFromObjectJson(i,f[attrIdProductVariation]),u=l.createOption(a),console.log("optionProductVariation: ",u),v.appendChild(u)}));var g=document.createElement("td");g.classList.add(flagDelete);var m=document.createElement("button");m.classList.add(flagDelete),m.textContent="x";var b=document.createElement("tr");p.appendChild(d),b.appendChild(p),h.appendChild(v),b.appendChild(h),g.appendChild(m),b.appendChild(g),e.appendChild(b)}},{key:"handleClickButtonProductPermutationVariationsDelete",value:function(e,t){var r=getRowFromElement(t),n=r.closest("td."+flagProductVariations);r.remove(),this.updateProductPermutationVariations(n)}},{key:"updateProductPermutationVariations",value:function(e){var t=this.getProductPermutationVariationsText(e);e.setAttribute(attrValueCurrent,t),l.isElementDirty(e)}},{key:"getProductPermutationVariationsText",value:function(e){var t,r,n,o,i=e.querySelectorAll("tr"),a="";return i.forEach((function(e,i){t=e.querySelector("td select."+flagProductVariationType),r=e.querySelector("td select."+flagProductVariation),n=t.getAttribute(attrValueCurrent),o=r.getAttribute(attrValueCurrent),a+=n+":"+o+","})),a}},{key:"hookupDescriptionTextareas",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" td."+flagDescription+" textarea")}},{key:"hookupCostFields",value:function(){this.hookupCurrencyCostFields(),this.hookupCostInputs()}},{key:"hookupCurrencyCostFields",value:function(){this.hookupTableCellDdlPreviews(idTableMain+" td."+flagCurrencyCost,ht.getListFromDict(currencies))}},{key:"hookupCostInputs",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" td."+flagCostLocal+" input")}},{key:"hookupProfitFields",value:function(){this.hookupProfitInputs()}},{key:"hookupProfitInputs",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" td."+flagProfitLocalMin+" input")}},{key:"hookupLatencyManufactureInputs",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" td."+flagLatencyManufactureDays+" input")}},{key:"hookupQuantityFields",value:function(){this.hookupQuantityMinInputs(),this.hookupQuantityMaxInputs(),this.hookupQuantityStockInputs(),this.hookupCountUnitMeasurementPerQuantityStepInputs(),this.hookupUnitMeasurementQuantityFields()}},{key:"hookupQuantityMinInputs",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" td."+flagQuantityMin+" input")}},{key:"hookupQuantityMaxInputs",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" td."+flagQuantityMax+" input")}},{key:"hookupQuantityStockInputs",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" td."+flagQuantityStock+" input")}},{key:"hookupCountUnitMeasurementPerQuantityStepInputs",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" td."+flagCountUnitMeasurementPerQuantityStep+" input")}},{key:"hookupUnitMeasurementQuantityFields",value:function(){console.log("hooking up unit measurement quantity fields"),this.hookupTableCellDdlPreviews(idTableMain+" td."+flagUnitMeasurementQuantity,ht.getListFromDict(unitMeasurements))}},{key:"hookupSubscriptionFields",value:function(){this.hookupIsSubscriptionFields(),this.hookupIntervalRecurrenceFields(),this.hookupCountIntervalRecurrenceInputs()}},{key:"hookupIsSubscriptionFields",value:function(){var e=this;this.hookupChangeHandlerTableCells(idTableMain+" td."+flagIsSubscription+" input",(function(t,r){e.handleChangeElementCellTable(t,r);var n=l.getElementValueCurrent(r),o=l.getRowFromElement(r),i=o.querySelector("td."+flagCountUnitMeasurementIntervalRecurrence+" input"),a=o.querySelector("td."+flagUnitMeasurementIntervalRecurrence+" ."+flagUnitMeasurementIntervalRecurrence);n?(i.classList.remove(flagCollapsed),l.setElementValueCurrentIfEmpty(i,1),a.classList.remove(flagCollapsed),a.closest("td").dispatchEvent(new Event("click"))):(i.classList.add(flagCollapsed),a.classList.add(flagCollapsed))}))}},{key:"hookupIntervalRecurrenceFields",value:function(){this.hookupTableCellDDlPreviewsWhenNotCollapsed(idTableMain+" td."+flagUnitMeasurementIntervalRecurrence,ht.getListFromDict(unitMeasurementsTime))}},{key:"hookupCountIntervalRecurrenceInputs",value:function(){this.hookupChangeHandlerTableCellsWhenNotCollapsed("change",idTableMain+" td."+flagCountUnitMeasurementIntervalRecurrence+" input")}},{key:"hookupIdStripeProductInputs",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" td."+flagIdStripeProduct+" input")}},{key:"hookupExpirationFields",value:function(){this.hookupDoesExpireFasterOnceUnsealedCheckboxes(),this.hookupIntervalExpirationUnsealedFields(),this.hookupCountIntervalExpirationUnsealedInputs()}},{key:"hookupDoesExpireFasterOnceUnsealedCheckboxes",value:function(){var e=this;this.hookupChangeHandlerTableCells(idTableMain+" td."+flagDoesExpireFasterOnceUnsealed+" input",(function(t,r){e.handleChangeElementCellTable(t,r);var n=l.getElementValueCurrent(r),o=l.getRowFromElement(r),i=o.querySelector("td."+flagCountUnitMeasurementIntervalExpirationUnsealed+" input"),a=o.querySelector("td."+flagUnitMeasurementIntervalExpirationUnsealed+" ."+flagUnitMeasurementIntervalExpirationUnsealed);n?(i.classList.remove(flagCollapsed),l.setElementValueCurrentIfEmpty(i,1),a.classList.remove(flagCollapsed),a.closest("td").dispatchEvent(new Event("click"))):(i.classList.add(flagCollapsed),a.classList.add(flagCollapsed))}))}},{key:"hookupIntervalExpirationUnsealedFields",value:function(){this.hookupTableCellDDlPreviewsWhenNotCollapsed(idTableMain+" td."+flagUnitMeasurementIntervalExpirationUnsealed,ht.getListFromDict(unitMeasurementsTime))}},{key:"hookupCountIntervalExpirationUnsealedInputs",value:function(){this.hookupChangeHandlerTableCellsWhenNotCollapsed("change",idTableMain+" td."+flagCountUnitMeasurementIntervalExpirationUnsealed+" input")}},{key:"hookupActiveCheckboxes",value:function(){this.hookupChangeHandlerTableCells(idTableMain+" td."+flagActive+" input")}},{key:"leave",value:function(){cr(t,"leave",this,3)([])}}])}(At);function vr(e){return vr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},vr(e)}function gr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Er(n.key),n)}}function mr(e,t,r){return t=Sr(t),function(e,t){if(t&&("object"==vr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,br()?Reflect.construct(t,r||[],Sr(e).constructor):t.apply(e,r))}function br(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(br=function(){return!!e})()}function kr(e,t,r,n){var o=Pr(Sr(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o}function Pr(){return Pr="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Sr(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},Pr.apply(null,arguments)}function Sr(e){return Sr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Sr(e)}function Cr(e,t){return Cr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Cr(e,t)}function wr(e,t,r){return(t=Er(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Er(e){var t=function(e){if("object"!=vr(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=vr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==vr(t)?t:t+""}pr(hr,"hash",hashPageStoreProductPermutations);var Or=function(e){function t(e){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),wr(r=mr(this,t,[e]),"callFilterTableContent",C.getProductsByFilters),wr(r,"callSaveTableContent",C.saveProducts),r.storeMixin=new Gt(r),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Cr(e,t)}(t,e),function(e,t){return t&&gr(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize()}},{key:"hookupFilters",value:function(){this.sharedHookupFilters(),this.hookupFilterProductCategory(),this.hookupFilterIsNotEmpty(),this.hookupFilterActive()}},{key:"hookupFilterProductCategory",value:function(){this.hookupFilter(flagProductCategory)}},{key:"loadRowTable",value:function(e){}},{key:"getJsonRow",value:function(e){if(null!=e){var t=e.querySelector("td."+flagDisplayOrder+" ."+flagSlider),r=e.querySelector("td."+flagProductCategory),n=e.querySelector("td."+flagName+" textarea"),o=e.querySelector("td."+flagHasVariations+' input[type="checkbox"]'),i=e.querySelector("td."+flagAccessLevel),a=e.querySelector("td."+flagActive+' input[type="checkbox"]'),u={};return u[attrIdProduct]=e.getAttribute(attrIdProduct),u[attrIdProductCategory]=l.getElementAttributeValueCurrent(r),u[flagName]=l.getElementAttributeValueCurrent(n),u[flagHasVariations]=l.getElementAttributeValueCurrent(o),u[attrIdAccessLevel]=l.getElementAttributeValueCurrent(i),u[flagActive]=l.getElementAttributeValueCurrent(a),u[flagDisplayOrder]=l.getElementAttributeValueCurrent(t),u}}},{key:"initialiseRowNew",value:function(e){if(null!=e){var t=document.querySelectorAll("td."+flagDisplayOrder+" input."+flagSlider),r=0;t.forEach((function(e){r=Math.max(r,parseFloat(l.getElementValueCurrent(e)))}));var n=e.querySelector("td."+flagDisplayOrder+" ."+flagSlider);l.setElementValuesCurrentAndPrevious(n,r+1)}}},{key:"hookupTableMain",value:function(){kr(t,"hookupTableMain",this,3)([]),this.hookupSlidersDisplayOrderTable(),this.hookupTdsProductCategory(),this.hookupTextareasNameTable(),this.hookupInputsHasVariationsTable(),this.hookupTdsAccessLevel(),this.hookupInputsActiveTable()}},{key:"hookupTdsProductCategory",value:function(){var e=idTableMain+" tbody td."+flagProductCategory;this.hookupTableCellDdlPreviews(e,ht.getListFromDict(productCategories))}},{key:"hookupInputsHasVariationsTable",value:function(){var e=idTableMain+" tbody td."+flagHasVariations+' input[type="checkbox"]';this.hookupChangeHandlerTableCells(e)}},{key:"leave",value:function(){kr(t,"leave",this,3)([])}}])}(At);function Tr(e,t,r,n){var o=jr(Br(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o}function jr(){return jr="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Br(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},jr.apply(null,arguments)}function Ar(e){return Ar="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ar(e)}function Ir(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Nr(n.key),n)}}function Lr(e,t,r){return t&&Fr(e.prototype,t),r&&Fr(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function qr(e,t,r){return t=Br(t),function(e,t){if(t&&("object"==Ar(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Dr()?Reflect.construct(t,r||[],Br(e).constructor):t.apply(e,r))}function Dr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Dr=function(){return!!e})()}function Br(e){return Br=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Br(e)}function Vr(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&xr(e,t)}function xr(e,t){return xr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},xr(e,t)}function Rr(e,t,r){return(t=Nr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Nr(e){var t=function(e){if("object"!=Ar(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Ar(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Ar(t)?t:t+""}wr(Or,"hash",hashPageStoreProducts);var Hr=function(e){function t(e){return Ir(this,t),qr(this,t,[e])}return Vr(t,e),Lr(t,[{key:"initialize",value:function(){this.sharedInitialize(),this.hookupFilters(),this.hookupButtonsSaveCancel(),hookupTableMain(),hookupOverlayConfirm(savePermutations)}},{key:"hookupFilters",value:function(){var e=document.querySelectorAll(idFilterCategory);y.initialiseEventHandler(e,flagInitialised,(function(){console.log("hooking up filter category"),(e=document.querySelectorAll(e)).addEventListener("change",(function(e){loadPermutations()})),console.log("hooked up filter category")}));var t=document.querySelectorAll(idFilterProduct);y.initialiseEventHandler(t,flagInitialised,(function(){listProducts.forEach((function(e){e[attrIdProductCategory]==l.getElementValueCurrent(document.querySelectorAll(idFilterCategory))&&t.appendChild(document.createElement("<option>",e))})),t.addEventListener("change",(function(e){loadPermutations()}))}));var r=document.querySelectorAll(idFilterIsOutOfStock);y.initialiseEventHandler(r,flagInitialised,(function(){r.addEventListener("change",(function(e){loadPermutations()}))}));var n=document.querySelectorAll(idFilterQuantityMin);y.initialiseEventHandler(n,flagInitialised,(function(){n.addEventListener("change",(function(e){loadPermutations()}))}));var o=document.querySelectorAll(idFilterQuantityMax);y.initialiseEventHandler(o,flagInitialised,(function(){o.addEventListener("change",(function(e){loadPermutations()}))}))}},{key:"loadPermutations",value:function(){var e=document.querySelectorAll(idFormFiltersPermutations),t={};t[keyForm]=convertForm2JSON(e),t.csrf_token=t[keyForm].csrf_token,console.log("ajaxData:"),console.log(t),ajaxJSONData("permutations",mapHashToController(hashPageStorePermutationsPost),t,callbackLoadPermutations,!1,{"X-CSRFToken":t.csrf_token})}},{key:"callbackLoadPermutations",value:function(e){console.log("ajax:"),console.log(e.data);var t,r,n,o=document.querySelectorAll(idTableMain);(t=o.querySelector("tbody")).querySelector("tr").remove(),$.each(e.data,(function(e,o){r=_rowBlank.cloneNode(!0),(r=document.querySelectorAll(r)).classList.remove(flagRowNew),console.log("applying data row: ",o),r.querySelector("td."+flagProductCategory+" select").val(o[attrIdProductCategory]),n=r.querySelector("td."+flagProduct+" select"),listProducts.forEach((function(e){e[attrIdProductCategory]==o[attrIdProductCategory]&&n.appendChild(document.createElement("<option>",e))})),n.val(o[attrIdProduct]),r.querySelector("td."+flagProductVariations+" textarea").value=o[flagProductVariations],r.querySelector("td."+flagQuantityStock+" input").value=o[flagQuantityStock],r.querySelector("td."+flagQuantityMin+" input").value=o[flagQuantityMin],r.querySelector("td."+flagQuantityMax+" input").value=o[flagQuantityMax],r.querySelector("td."+flagCostLocal).innerHTML=o[flagCostLocal],r.setAttribute(attrIdProductCategory,o[flagProductCategory]),r.setAttribute(attrIdProduct,o[flagProduct]),r.setAttribute(attrIdPermutation,o[attrIdPermutation]),t.appendChild(r)}))}},{key:"hookupButtonsSaveCancel",value:function(){var e=document.querySelectorAll(idButtonSave),t=document.querySelectorAll(idButtonCancel),r=document.querySelectorAll(idButtonAdd);e.addEventListener("click",(function(e){e.stopPropagation(),showOverlayConfirm()})),e.classList.add(flagCollapsed),t.addEventListener("click",(function(e){e.stopPropagation(),loadPermutations()})),t.classList.add(flagCollapsed),r.addEventListener("click",(function(e){e.stopPropagation();var t=document.querySelectorAll(idTableMain),r=_rowBlank.cloneNode(!0);(r=document.querySelectorAll(r)).classList.remove(flagRowNew),t.querySelector("tbody").appendChild(r)}))}},{key:"savePermutations",value:function(){var e=getPermutations(!0);if(0!=e.length){var t={};t[keyPermutations]=e,t[keyForm]=convertForm2JSON(elForm),t.csrf_token=t[keyForm].csrf_token,t.comment=document.querySelector(idTextareaConfirm).value,console.log("ajaxData:"),console.log(t),ajaxJSONData("permutations",mapHashToController(hashPageStorePermutationsPost),t,callbackLoadPermutations,!1,{})}else showOverlayError("No permutations to save")}},{key:"getPermutations",value:function(e){var t,r,n,o,i,a,u,l=document.querySelectorAll(idTableMain),c=[];return l.querySelector("tbody tr").each((function(l,s){s=document.querySelectorAll(s),e&&!s.classList.contains(flagDirty)||(r=s.querySelector("td."+flagProductCategory+" select"),n=s.querySelector("td."+flagProduct+" select"),o=s.querySelector("td."+flagProductVariations+" textarea"),i=s.querySelector("td."+flagQuantityStock+" input"),a=s.querySelector("td."+flagQuantityMin+" input"),u=s.querySelector("td."+flagQuantityMax+" input"),(t={})[attrIdProductCategory]=r.getAttribute(attrValueCurrent),t[attrIdProduct]=n.getAttribute(attrValueCurrent),t[attrIdPermutation]=s.getAttribute(attrIdPermutation),t[flagProductVariations]=o.getAttribute(attrValueCurrent),t[flagQuantityStock]=i.getAttribute(attrValueCurrent),t[flagQuantityMin]=a.getAttribute(attrValueCurrent),t[flagQuantityMax]=u.getAttribute(attrValueCurrent),c.push(t))})),c}},{key:"hookupTableMain",value:function(){var e,t,r,n,o,i,a=document.querySelectorAll(idTableMain),u=a.querySelector("tr."+flagRowNew);console.log("row blank temp: ",u),_rowBlank=u.cloneNode(!0),a.querySelector("tr."+flagRowNew).remove(),a.querySelector("tbody tr").each((function(a,u){console.log("hooking up row ",a),u=document.querySelectorAll(u),e=u.querySelector("td."+flagProductCategory+" select"),t=u.querySelector("td."+flagProduct+" select"),r=u.querySelector("td."+flagProductVariations+" textarea"),n=u.querySelector("td."+flagQuantityStock+" input"),o=u.querySelector("td."+flagQuantityMin+" input"),i=u.querySelector("td."+flagQuantityMax+" input"),y.initialiseEventHandler(e,flagInitialised,(function(){e.addEventListener("change",(function(){handleChangeInputPermutations(this),e=this,u=getRowFromElement(e),(t=u.querySelector("td."+flagProduct+" select")).querySelector("option").remove(),t.appendChild(document.createElement("<option>",{value:"",text:"Select Product"})),listProducts.forEach((function(r){r[attrIdProductCategory]==l.getElementValueCurrent(e)&&t.appendChild(document.createElement("<option>",r))})),handleChangeInputPermutations(t)}))})),y.initialiseEventHandler(t,flagInitialised,(function(){t.addEventListener("change",(function(){handleChangeInputPermutations(this)}))})),y.initialiseEventHandler(r,flagInitialised,(function(){r.addEventListener("change",(function(){handleChangeInputPermutations(this)}))})),y.initialiseEventHandler(n,flagInitialised,(function(){n.addEventListener("change",(function(){handleChangeInputPermutations(this)}))})),y.initialiseEventHandler(o,flagInitialised,(function(){o.addEventListener("change",(function(){handleChangeInputPermutations(this)}))})),y.initialiseEventHandler(i,flagInitialised,(function(){i.addEventListener("change",(function(){handleChangeInputPermutations(this)}))}))}))}},{key:"handleChangeInputPermutations",value:function(e){console.log(e.value);var t=document.querySelectorAll(e);t.value=e.value;var r=getRowFromElement(t),o=document.querySelectorAll(idButtonCancel),i=document.querySelectorAll(idButtonSave),a=updateAndCheckIsElementDirty(t);if(t.classList.contains(flagProductVariations)?t.setAttribute(attrValueCurrent,getVariationsCurrentValue(t)):t.setAttribute(attrValueCurrent,l.getElementValueCurrent(t)),a!=updateAndCheckIsElementDirty(t)){isRowDirty(r);var u=getPermutations(!0);n.isEmpty(u)?(o.classList.add(flagCollapsed),i.classList.add(flagCollapsed)):(o.classList.remove(flagCollapsed),i.classList.remove(flagCollapsed))}}},{key:"isRowDirty",value:function(e){var t=e.querySelector("td."+flagProductCategory+" select"),r=e.querySelector("td."+flagProduct+" select"),n=e.querySelector("td."+flagProductVariations+" textarea"),o=e.querySelector("td."+flagQuantityStock+" input"),i=e.querySelector("td."+flagQuantityMin+" input"),a=e.querySelector("td."+flagQuantityMax+" input"),u=t.classList.contains(flagDirty)||r.classList.contains(flagDirty)||n.classList.contains(flagDirty)||o.classList.contains(flagDirty)||i.classList.contains(flagDirty)||a.classList.contains(flagDirty);return u?e.classList.add(flagDirty):e.classList.remove(flagDirty),u}},{key:"getVariationsCurrentValue",value:function(e){var t=(e.value||null).split("\n");return(t=(t=t.map((function(e){return e.trim()}))).filter((function(e){return e.length>0}))).join(",")}}])}(F);Rr(Hr,"hash",hashPageStoreStockItems);var _r=function(e){function t(){var e;return Ir(this,t),Rr(e=qr(this,t),"callFilterTableContent",C.getCategoriesByFilters),e}return Vr(t,e),Lr(t,[{key:"initialize",value:function(){Tr(t,"initialize",this,3)([])}},{key:"hookupFilters",value:function(){Tr(t,"hookupFilters",this,3)([]),this.hookupFilterIsNotEmpty(),this.hookupFilterActive()}},{key:"hookupFilterIsNotEmpty",value:function(){y.initialiseEventHandler("."+flagIsNotEmpty,flagInitialised,(function(e){e.addEventListener("change",(function(r){t.isDirtyFilter(e)}))}))}},{key:"loadRowTable",value:function(e){if(null!=e){var t=_rowBlank.cloneNode(!0);t.classList.remove(flagRowNew),t.classList.remove(flagInitialised),t.querySelectorAll("."+flagInitialised).forEach((function(e){e.classList.remove(flagInitialised)})),console.log("applying data row: ",e);var r=t.querySelector("td."+flagDisplayOrder+" ."+flagSlider),n=t.querySelector("td."+flagCode+" textarea"),o=t.querySelector("td."+flagName+" textarea"),i=t.querySelector("td."+flagDescription+" textarea"),a=t.querySelector("td."+flagAccessLevel),u=a.querySelector("div."+flagAccessLevel),c=t.querySelector("td."+flagActive+' input[type="checkbox"]');r.setAttribute(attrValueCurrent,e[flagDisplayOrder]),l.setElementAttributeValuePrevious(r,e[flagDisplayOrder]),l.setElementValueCurrent(n,e[flagCode]),l.setElementAttributeValuePrevious(n,e[flagCode]),l.setElementValueCurrent(o,e[flagName]),l.setElementAttributeValuePrevious(o,e[flagName]),l.setElementValueCurrent(i,e[flagDescription]),l.setElementAttributeValuePrevious(i,e[flagDescription]),a.setAttribute(attrIdAccessLevel,e[attrIdAccessLevel]),a.setAttribute(flagAccessLevelRequired,e[flagAccessLevelRequired]),u.setAttribute(attrIdAccessLevel,e[attrIdAccessLevel]),l.setElementValueCurrent(u,e[attrIdAccessLevel]),l.setElementAttributeValuePrevious(u,e[attrIdAccessLevel]),u.textContent=e[flagAccessLevelRequired],l.setElementValueCurrent(c,e[flagActive]),l.setElementAttributeValuePrevious(c,e[flagActive]),t.setAttribute(e[flagKeyPrimary],e[e[flagKeyPrimary]]),this.getTableMain().querySelector("tbody").appendChild(t)}}},{key:"getJsonRow",value:function(e){if(null!=e){var t=e.querySelector("td."+flagDisplayOrder+" ."+flagSlider),r=e.querySelector("td."+flagCode+" textarea"),n=e.querySelector("td."+flagName+" textarea"),o=e.querySelector("td."+flagDescription+" textarea"),i=e.querySelector("td."+flagAccessLevel),a=e.querySelector("td."+flagActive+' input[type="checkbox"]'),u={};return u[attrIdProductCategory]=e.getAttribute(attrIdProductCategory),u[flagCode]=l.getElementValueCurrent(r),u[flagName]=l.getElementValueCurrent(n),u[flagDescription]=l.getElementValueCurrent(o),u[flagAccessLevelRequired]=i.getAttribute(flagAccessLevelRequired),u[attrIdAccessLevel]=i.getAttribute(attrIdAccessLevel),u[flagActive]=l.getElementValueCurrent(a),u[flagDisplayOrder]=t.getAttribute(attrValueCurrent),u}}},{key:"hookupTableMain",value:function(){Tr(t,"hookupTableMain",this,3)([]),this.hookupSlidersDisplayOrderTable(),this.hookupTextareasCodeTable(),this.hookupTextareasNameTable(),this.hookupTextareasDescriptionTable(),this.hookupTdsAccessLevel(),this.hookupInputsActiveTable()}},{key:"isRowDirty",value:function(e){if(null!=e){var t=e.querySelector("td."+flagProductCategory+" select"),r=e.querySelector("td."+flagProduct+" select"),n=e.querySelector("td."+flagProductVariations+" textarea"),o=e.querySelector("td."+flagQuantityStock+" input"),i=e.querySelector("td."+flagQuantityMin+" input"),a=e.querySelector("td."+flagQuantityMax+" input"),u=t.classList.contains(flagDirty)||r.classList.contains(flagDirty)||n.classList.contains(flagDirty)||o.classList.contains(flagDirty)||i.classList.contains(flagDirty)||a.classList.contains(flagDirty);return u?e.classList.add(flagDirty):e.classList.remove(flagDirty),u}}},{key:"leave",value:function(){Tr(t,"leave",this,3)([])}},{key:"getFiltersDefaults",value:function(){return filters={},filters.flagIsNotEmpty=!0,filters.flagActive=!0,filters}}])}(At);function Mr(e){return Mr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Mr(e)}function Ur(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Wr(n.key),n)}}function Qr(e,t,r){return t=Gr(t),function(e,t){if(t&&("object"==Mr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Jr()?Reflect.construct(t,r||[],Gr(e).constructor):t.apply(e,r))}function Jr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Jr=function(){return!!e})()}function zr(){return zr="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Gr(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},zr.apply(null,arguments)}function Gr(e){return Gr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Gr(e)}function Kr(e,t){return Kr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Kr(e,t)}function Wr(e){var t=function(e){if("object"!=Mr(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Mr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Mr(t)?t:t+""}Rr(_r,"hash",hashPageStoreProductCategories);var Xr=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Qr(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Kr(e,t)}(t,e),function(e,t){return t&&Ur(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize()}},{key:"leave",value:function(){!function(e,t,r){var n=zr(Gr(e.prototype),"leave",r);return"function"==typeof n?function(e){return n.apply(r,e)}:n}(t,0,this)([])}}])}(F);function Yr(e){return Yr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Yr(e)}function $r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,on(n.key),n)}}function Zr(e,t,r){return t=rn(t),function(e,t){if(t&&("object"==Yr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,en()?Reflect.construct(t,r||[],rn(e).constructor):t.apply(e,r))}function en(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(en=function(){return!!e})()}function tn(){return tn="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=rn(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},tn.apply(null,arguments)}function rn(e){return rn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},rn(e)}function nn(e,t){return nn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},nn(e,t)}function on(e){var t=function(e){if("object"!=Yr(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Yr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Yr(t)?t:t+""}!function(e,t,r){(t=Wr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(Xr,"hash",hashPagePrivacyPolicy);var an=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Zr(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&nn(e,t)}(t,e),function(e,t){return t&&$r(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"initialize",value:function(){this.sharedInitialize()}},{key:"leave",value:function(){!function(e,t,r){var n=tn(rn(e.prototype),"leave",r);return"function"==typeof n?function(e){return n.apply(r,e)}:n}(t,0,this)([])}}])}(F);function un(e){return un="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},un(e)}function ln(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,cn(n.key),n)}}function cn(e){var t=function(e){if("object"!=un(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=un(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==un(t)?t:t+""}!function(e,t,r){(t=on(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(an,"hash",hashPageDataRetentionSchedule);var sn=function(){return function(e,t,r){return t&&ln(e.prototype,t),r&&ln(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}((function e(){var t=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.pages={},this.pages[hashPageHome]={name:"PageHome",module:U},this.pages[hashPageContact]={name:"PageContact",module:ue},this.pages[hashPageServices]={name:"PageServices",module:ve},this.pages[hashPageAdminHome]={name:"PageAdminHome",module:U},this.pages[hashPageAccessibilityStatement]={name:"PageAccessibilityStatement",module:De},this.pages[hashPageDataRetentionSchedule]={name:"PageDataRetentionSchedule",module:an},this.pages[hashPageLicense]={name:"PageLicense",module:Ue},this.pages[hashPagePrivacyPolicy]={name:"PagePrivacyPolicy",module:Xr},this.pages[hashPageStoreProductCategories]={name:"PageStoreProductCategories",module:or},this.pages[hashPageStoreProductPermutations]={name:"PageStoreProductPermutations",module:hr},this.pages[hashPageStoreProducts]={name:"PageStoreProducts",module:Or},this.pages[hashPageStoreStockItems]={name:"PageStoreStockItems",module:Hr},this.routes={},this.routes[hashPageHome]=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t.navigateToHash(hashPageHome,e)},this.routes[hashPageContact]=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t.navigateToHash(hashPageContact,e)},this.routes[hashPageServices]=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t.navigateToHash(hashPageServices,e)},this.routes[hashPageAdminHome]=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t.navigateToHash(hashPageAdminHome,e)},this.routes[hashPageAccessibilityStatement]=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t.navigateToHash(hashPageAccessibilityStatement,e)},this.routes[hashPageDataRetentionSchedule]=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t.navigateToHash(hashPageDataRetentionSchedule,e)},this.routes[hashPageLicense]=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t.navigateToHash(hashPageLicense,e)},this.routes[hashPagePrivacyPolicy]=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t.navigateToHash(hashPagePrivacyPolicy,e)},this.routes[hashPageStoreProductCategories]=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t.navigateToHash(hashPageStoreProductCategories,e)},this.routes[hashPageStoreProductPermutations]=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t.navigateToHash(hashPageStoreProductPermutations,e)},this.routes[hashPageStoreProducts]=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t.navigateToHash(hashPageStoreProducts,e)},this.routes[hashPageStoreStockItems]=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t.navigateToHash(hashPageStoreStockItems,e)},this.initialize()}),[{key:"loadPage",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.getClassPageFromHash(e);this.currentPage=new n(this),this.currentPage.initialize(r),window.addEventListener("beforeunload",(function(){return t.currentPage.leave()}))}},{key:"getClassPageFromHash",value:function(e){var t=this.pages[e];try{return t.module}catch(t){throw console.log("this.pages: ",this.pages),console.error("Page not found:",e),t}}},{key:"initialize",value:function(){window.addEventListener("popstate",this.handlePopState.bind(this))}},{key:"handlePopState",value:function(e){this.loadPageCurrent()}},{key:"loadPageCurrent",value:function(){var e=l.getHashPageCurrent();this.loadPage(e)}},{key:"navigateToHash",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=C.getUrlFromHash(e,r);history.pushState({data:t,params:r},"",e),C.goToUrl(n,t)}},{key:"navigateToUrl",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;(!(arguments.length>2&&void 0!==arguments[2])||arguments[2])&&history.pushState(t,"",e),e=C.parameteriseUrl(e,t),C.goToUrl(e)}}],[{key:"loadPageBodyFromResponse",value:function(e){console.log(e.data),l.loadPageBody(e.data)}}])}();function fn(e){return fn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},fn(e)}function yn(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,pn(n.key),n)}}function pn(e){var t=function(e){if("object"!=fn(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=fn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==fn(t)?t:t+""}new sn;var dn,hn=function(){return function(e,t){return t&&yn(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}((function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.dom=new l,this.router=new sn}),[{key:"initialize",value:function(){this.setupEventListeners(),this.start()}},{key:"setupEventListeners",value:function(){}},{key:"handleGlobalClick",value:function(e){console.log("Global click:",e.target)}},{key:"start",value:function(){this.initPageCurrent()}},{key:"initPageCurrent",value:function(){this.router.loadPageCurrent()}}])}(),vn=new hn;dn=function(){vn.initialize()},"loading"!==document.readyState?dn():document.addEventListener("DOMContentLoaded",dn),window.app=vn})()})();