{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/simplelightbox/dist/simple-lightbox.modules.js","webpack:///(webpack)/buildin/global.js","webpack:///./src/styles/main.scss","webpack:///./src/styles/print.scss","webpack:///./src/page-builder-styles/froala-show-blocks.scss","webpack:///./node_modules/lit-html/lib/dom.js","webpack:///./node_modules/lit-html/lib/template.js","webpack:///./node_modules/lit-html/lib/modify-template.js","webpack:///./node_modules/lit-html/lib/directive.js","webpack:///./node_modules/lit-html/lib/part.js","webpack:///./node_modules/lit-html/lib/template-instance.js","webpack:///./node_modules/lit-html/lib/template-result.js","webpack:///./node_modules/lit-html/lib/parts.js","webpack:///./node_modules/lit-html/lib/template-factory.js","webpack:///./node_modules/lit-html/lib/render.js","webpack:///./node_modules/lit-html/lib/default-template-processor.js","webpack:///./node_modules/lit-html/lit-html.js","webpack:///./node_modules/lit-html/lib/shady-render.js","webpack:///./node_modules/lit-element/lib/updating-element.js","webpack:///./node_modules/lit-element/lib/decorators.js","webpack:///./node_modules/lit-element/lib/css-tag.js","webpack:///./node_modules/lit-element/lit-element.js","webpack:///./src/scripts/components/search-box.ts","webpack:///./node_modules/lit-html/directives/unsafe-html.js","webpack:///./src/scripts/components/faq-element.ts","webpack:///./src/scripts/components/gallery.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_createForOfIteratorHelper","allowArrayLike","it","iterator","Array","isArray","minLen","_arrayLikeToArray","toString","slice","constructor","from","test","_unsupportedIterableToArray","length","F","done","e","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2","arr","len","arr2","_defineProperties","target","props","descriptor","configurable","writable","_defineProperty","obj","SimpleLightbox","elements","options","_this","this","instance","Constructor","_classCallCheck","sourceAttr","overlay","spinner","nav","navText","captions","captionDelay","captionSelector","captionType","captionsData","captionPosition","captionClass","close","closeText","swipeClose","showCounter","fileExt","animationSlide","animationSpeed","preloading","enableKeyboard","loop","rel","docClose","swipeTolerance","className","widthRatio","heightRatio","scaleImageToRatio","disableRightClick","disableScroll","alertError","alertErrorMessage","additionalHtml","history","throttleInterval","doubleTapZoom","maxZoom","htmlClass","rtl","fixedClass","fadeSpeed","uniqueImages","focus","window","swipeDiff","swipeYDiff","swipeStart","swipeEnd","swipeYStart","swipeYEnd","mousedown","imageLeft","zoomed","containerHeight","containerWidth","containerOffsetX","containerOffsetY","imgHeight","imgWidth","capture","initialOffsetX","initialOffsetY","initialPointerOffsetX","initialPointerOffsetY","initialPointerOffsetX2","initialPointerOffsetY2","initialScale","initialPinchDistance","pointerOffsetX","pointerOffsetY","pointerOffsetX2","pointerOffsetY2","targetOffsetX","targetOffsetY","targetScale","pinchOffsetX","pinchOffsetY","limitOffsetX","limitOffsetY","scaleDifference","targetPinchDistance","touchCount","doubleTapped","touchmoveCount","assign","defaultOptions","initialSelector","document","querySelectorAll","relatedElements","transitionPrefix","calculateTransitionPrefix","transitionCapable","initialLocationHash","hash","getRelated","imgArr","filter","element","src","getAttribute","indexOf","push","createDomNodes","domNodes","wrapper","appendChild","closeButton","navigation","addEventListener","eventNamespace","event","isValidLink","currentTarget","preventDefault","isAnimating","initialImageIndex","openImage","isOpen","body","classList","contains","throttle","controlCoordinates","currentImage","setAttribute","loadImage","addEvents","protoProps","staticProps","createElement","add","dataset","opacityTarget","innerHTML","concat","counter","caption","image","func","limit","inThrottle","apply","arguments","setTimeout","RegExp","pathname","documentElement","style","type","scrollbarWidth","fixedElements","fullWindowWidth","innerWidth","documentElementRect","getBoundingClientRect","right","Math","abs","left","clientWidth","scrollDiv","paddingRight","parseInt","offsetWidth","removeChild","originalPaddingRight","forEach","actualPadding","calculatedPadding","getComputedStyle","parseFloat","remove","padding","_this2","isClosing","currentImageIndex","dispatchEvent","Event","historyHasChanges","hashReseted","resetHash","removeEventListener","fadeOut","toggleScrollbar","querySelector","minMax","_this3","index","prev","nextImage","Image","prevImage","loadedImages","direction","_this4","slideDirection","newIndex","slide","show","adjustImage","preload","_this5","tmpImage","windowWidth","windowHeight","innerHeight","scale","translateX","translateY","zoomPanElement","display","dirIsDefined","alert","updateURL","captionContainer","captionText","imageWidth","width","imageHeight","height","ratio","top","globalScrollbarWidth","forceFocus","fadeIn","hide","setCaption","min","max","_this6","hashchangeHandler","getElementsByTagName","tagName","match","clientX","clientY","getDimensions","offsetLeft","offsetTop","touches","setZoomData","opacity","sqrt","pageX","pageY","isTouchDevice","possibleDir","styles","offsetHeight","borderTopWidth","borderBottomWidth","paddingTop","paddingBottom","borderLeftWidth","borderRightWidth","paddingLeft","newHash","newURL","location","href","split","pushStateSupport","title","replace","urlChangedOnce","back","pushState","search","clearTimeout","historyUpdateTimeout","updateHash","_this7","speed","pos","_this8","targetURL","_this9","events","callback","opts","wrap","_step","_iterator","namespaces","_step2","_iterator2","_step3","_iterator3","_step4","_iterator4","duration","_step5","_this10","_iterator5","isFadeIn","fade","currentOpacity","_step6","_iterator6","_step7","_iterator7","requestAnimationFrame","_step8","_this11","_iterator8","_step10","_iterator10","_step9","_iterator9","_step11","_iterator11","initialDisplay","_step12","_iterator12","input","_step13","_iterator13","fullyNamespacedEvents","_step14","_iterator14","_step15","_iterator15","_step16","_iterator16","elem","jQuery","off","selector","destroy","substring","_default","global","g","Function","isCEPolyfill","customElements","undefined","polyfillWrapFlushCallback","removeNodes","container","start","end","nextSibling","marker","String","random","nodeMarker","markerRegex","Template","result","parts","nodesToRemove","stack","walker","createTreeWalker","content","lastPartIndex","partIndex","strings","values","node","nextNode","nodeType","hasAttributes","attributes","count","endsWith","stringForPart","lastAttributeNameRegex","exec","attributeLookupName","toLowerCase","attributeValue","removeAttribute","statics","currentNode","data","parent","parentNode","lastIndex","insert","createMarker","createTextNode","insertBefore","previousSibling","pop","str","suffix","isTemplatePartActive","part","createComment","removeNodesFromTemplate","template","nextActiveIndexInTemplateParts","nodeIndex","removeCount","nodesToRemoveInTemplate","currentRemovingNode","has","countNodes","startIndex","directives","WeakMap","isDirective","noChange","nothing","processor","__parts","setValue","commit","fragment","cloneNode","importNode","nodeName","handleTextExpression","insertAfterNode","handleAttributeExpressions","adoptNode","upgrade","policy","trustedTypes","createPolicy","createHTML","commentMarker","html","isCommentBinding","commentOpen","lastIndexOf","attributeMatch","substr","getHTML","isPrimitive","isIterable","AttributeCommitter","dirty","_createPart","v","text","_getValue","committer","directive","__pendingValue","startNode","endNode","ref","__insert","__commitText","__commitTemplateResult","Node","__commitNode","__commitIterable","clear","valueAsString","templateFactory","update","_clone","itemParts","itemPart","item","appendIntoPart","insertAfterPart","Error","PropertyCommitter","super","single","PropertyPart","eventOptionsSupported","eventName","eventContext","__boundHandleEvent","handleEvent","newListener","oldListener","shouldRemoveListener","once","passive","shouldAddListener","__options","getOptions","templateCache","templateCaches","stringsArray","keyString","Map","set","join","getTemplateElement","defaultTemplateProcessor","prefix","getTemplateCacheKey","scopeName","compatibleShadyCSSVersion","ShadyCSS","prepareTemplateDom","console","warn","shadyTemplateFactory","cacheKey","TEMPLATE_TYPES","shadyRenderSet","Set","prepareTemplateStyles","renderedDOM","templateElement","condensedStyle","textContent","templates","removeStylesFromLitTemplates","refNode","insertCount","walkerIndex","insertNodeIntoTemplate","firstChild","nativeShadow","removes","JSCompiler_renameProperty","prop","_obj","defaultConverter","Boolean","JSON","stringify","Number","parse","notEqual","old","defaultPropertyDeclaration","attribute","converter","reflect","hasChanged","UpdatingElement","HTMLElement","initialize","finalize","_classProperties","attr","_attributeNameForProperty","_attributeToPropertyMap","superProperties","getPrototypeOf","k","_ensureClassProperties","noAccessor","getPropertyDescriptor","oldValue","requestUpdateInternal","superCtor","properties","propKeys","getOwnPropertyNames","getOwnPropertySymbols","createProperty","fromAttribute","toAttribute","_updateState","_updatePromise","Promise","res","_enableUpdatingResolver","_changedProperties","_saveInstanceProperties","_v","_instanceProperties","enableUpdating","_attributeToProperty","ctor","attrValue","_propertyValueToAttribute","propName","getPropertyOptions","_propertyValueFromAttribute","shouldRequestUpdate","_valueHasChanged","_reflectingProperties","_hasRequestedUpdate","_enqueueUpdate","updateComplete","performUpdate","_applyInstanceProperties","shouldUpdate","changedProperties","_markUpdated","firstUpdated","updated","_getUpdateComplete","size","_propertyToAttribute","customElement","classOrDescriptor","clazz","define","legacyCustomElement","kind","standardCustomElement","standardProperty","placement","initializer","protoOrDescriptor","proto","legacyProperty","internalProperty","ElementProto","Element","msMatchesSelector","webkitMatchesSelector","supportsAdoptingStyleSheets","Document","CSSStyleSheet","constructionToken","CSSResult","cssText","safeToken","_styleSheet","replaceSync","renderNotImplemented","userStyles","getStyles","addStyles","reduceRight","unshift","_styles","map","cssRules","reduce","css","rule","_getUniqueStyles","renderRoot","createRenderRoot","ShadowRoot","adoptStyles","attachShadow","adoptedStyleSheets","styleSheet","_needsShimAdoptedStyleSheets","ScopingShim","prepareAdoptedCssText","localName","connectedCallback","hasUpdated","styleElement","templateResult","render","hasRendered","needsScoping","host","firstScopeRender","renderContainer","createDocumentFragment","appendInto","delete","searchTerm","searchUrlPart","onSearchTermChange","onKeyUp","onSearchButtonClicked","srcElement","previousValues","unsafeHTML","previousValue","args","question","answer","isActive","toggleQuestion"],"mappings":"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","file":"scripts/main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","/*!\n\tBy André Rinas, www.andrerinas.de\n\tDocumentation, www.simplelightbox.de\n\tAvailable for use under the MIT License\n\tVersion 2.7.0\n*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SimpleLightbox = /*#__PURE__*/function () {\n function SimpleLightbox(elements, options) {\n var _this = this;\n\n _classCallCheck(this, SimpleLightbox);\n\n _defineProperty(this, \"defaultOptions\", {\n sourceAttr: 'href',\n overlay: true,\n spinner: true,\n nav: true,\n navText: ['‹', '›'],\n captions: true,\n captionDelay: 0,\n captionSelector: 'img',\n captionType: 'attr',\n captionsData: 'title',\n captionPosition: 'bottom',\n captionClass: '',\n close: true,\n closeText: '×',\n swipeClose: true,\n showCounter: true,\n fileExt: 'png|jpg|jpeg|gif|webp',\n animationSlide: true,\n animationSpeed: 250,\n preloading: true,\n enableKeyboard: true,\n loop: true,\n rel: false,\n docClose: true,\n swipeTolerance: 50,\n className: 'simple-lightbox',\n widthRatio: 0.8,\n heightRatio: 0.9,\n scaleImageToRatio: false,\n disableRightClick: false,\n disableScroll: true,\n alertError: true,\n alertErrorMessage: 'Image not found, next image will be loaded',\n additionalHtml: false,\n history: true,\n throttleInterval: 0,\n doubleTapZoom: 2,\n maxZoom: 10,\n htmlClass: 'has-lightbox',\n rtl: false,\n fixedClass: 'sl-fixed',\n fadeSpeed: 300,\n uniqueImages: true,\n focus: true\n });\n\n _defineProperty(this, \"transitionPrefix\", void 0);\n\n _defineProperty(this, \"transitionCapable\", false);\n\n _defineProperty(this, \"isTouchDevice\", 'ontouchstart' in window);\n\n _defineProperty(this, \"initialLocationHash\", void 0);\n\n _defineProperty(this, \"pushStateSupport\", 'pushState' in history);\n\n _defineProperty(this, \"isOpen\", false);\n\n _defineProperty(this, \"isAnimating\", false);\n\n _defineProperty(this, \"isClosing\", false);\n\n _defineProperty(this, \"isFadeIn\", false);\n\n _defineProperty(this, \"urlChangedOnce\", false);\n\n _defineProperty(this, \"hashReseted\", false);\n\n _defineProperty(this, \"historyHasChanges\", false);\n\n _defineProperty(this, \"historyUpdateTimeout\", null);\n\n _defineProperty(this, \"currentImage\", void 0);\n\n _defineProperty(this, \"eventNamespace\", 'simplelightbox');\n\n _defineProperty(this, \"domNodes\", {});\n\n _defineProperty(this, \"loadedImages\", []);\n\n _defineProperty(this, \"initialImageIndex\", 0);\n\n _defineProperty(this, \"currentImageIndex\", 0);\n\n _defineProperty(this, \"initialSelector\", null);\n\n _defineProperty(this, \"globalScrollbarWidth\", 0);\n\n _defineProperty(this, \"controlCoordinates\", {\n swipeDiff: 0,\n swipeYDiff: 0,\n swipeStart: 0,\n swipeEnd: 0,\n swipeYStart: 0,\n swipeYEnd: 0,\n mousedown: false,\n imageLeft: 0,\n zoomed: false,\n containerHeight: 0,\n containerWidth: 0,\n containerOffsetX: 0,\n containerOffsetY: 0,\n imgHeight: 0,\n imgWidth: 0,\n capture: false,\n initialOffsetX: 0,\n initialOffsetY: 0,\n initialPointerOffsetX: 0,\n initialPointerOffsetY: 0,\n initialPointerOffsetX2: 0,\n initialPointerOffsetY2: 0,\n initialScale: 1,\n initialPinchDistance: 0,\n pointerOffsetX: 0,\n pointerOffsetY: 0,\n pointerOffsetX2: 0,\n pointerOffsetY2: 0,\n targetOffsetX: 0,\n targetOffsetY: 0,\n targetScale: 0,\n pinchOffsetX: 0,\n pinchOffsetY: 0,\n limitOffsetX: 0,\n limitOffsetY: 0,\n scaleDifference: 0,\n targetPinchDistance: 0,\n touchCount: 0,\n doubleTapped: false,\n touchmoveCount: 0\n });\n\n this.options = Object.assign(this.defaultOptions, options);\n\n if (typeof elements === 'string') {\n this.initialSelector = elements;\n this.elements = Array.from(document.querySelectorAll(elements));\n } else {\n this.elements = typeof elements.length !== 'undefined' && elements.length > 0 ? Array.from(elements) : [elements];\n }\n\n this.relatedElements = [];\n this.transitionPrefix = this.calculateTransitionPrefix();\n this.transitionCapable = this.transitionPrefix !== false;\n this.initialLocationHash = this.hash; // this should be handled by attribute selector IMHO! => 'a[rel=bla]'...\n\n if (this.options.rel) {\n this.elements = this.getRelated(this.options.rel);\n }\n\n if (this.options.uniqueImages) {\n var imgArr = [];\n this.elements = Array.from(this.elements).filter(function (element) {\n var src = element.getAttribute(_this.options.sourceAttr);\n\n if (imgArr.indexOf(src) === -1) {\n imgArr.push(src);\n return true;\n }\n\n return false;\n });\n }\n\n this.createDomNodes();\n\n if (this.options.close) {\n this.domNodes.wrapper.appendChild(this.domNodes.closeButton);\n }\n\n if (this.options.nav) {\n this.domNodes.wrapper.appendChild(this.domNodes.navigation);\n }\n\n if (this.options.spinner) {\n this.domNodes.wrapper.appendChild(this.domNodes.spinner);\n }\n\n this.addEventListener(this.elements, 'click.' + this.eventNamespace, function (event) {\n if (_this.isValidLink(event.currentTarget)) {\n event.preventDefault();\n\n if (_this.isAnimating) {\n return false;\n }\n\n _this.initialImageIndex = _this.elements.indexOf(event.currentTarget);\n\n _this.openImage(event.currentTarget);\n }\n }); // close addEventListener click addEventListener doc\n\n if (this.options.docClose) {\n this.addEventListener(this.domNodes.wrapper, ['click.' + this.eventNamespace, 'touchstart.' + this.eventNamespace], function (event) {\n if (_this.isOpen && event.target === event.currentTarget) {\n _this.close();\n }\n });\n } // disable rightclick\n\n\n if (this.options.disableRightClick) {\n this.addEventListener(document.body, 'contextmenu.' + this.eventNamespace, function (event) {\n if (event.target.classList.contains('sl-overlay')) {\n event.preventDefault();\n }\n });\n } // keyboard-control\n\n\n if (this.options.enableKeyboard) {\n this.addEventListener(document.body, 'keyup.' + this.eventNamespace, this.throttle(function (event) {\n _this.controlCoordinates.swipeDiff = 0; // keyboard control only if lightbox is open\n\n if (_this.isAnimating && event.key === 'Escape') {\n _this.currentImage.setAttribute('src', '');\n\n _this.isAnimating = false;\n return _this.close();\n }\n\n if (_this.isOpen) {\n event.preventDefault();\n\n if (event.key === 'Escape') {\n _this.close();\n }\n\n if (!_this.isAnimating && ['ArrowLeft', 'ArrowRight'].indexOf(event.key) > -1) {\n _this.loadImage(event.key === 'ArrowRight' ? 1 : -1);\n }\n }\n }, this.options.throttleInterval));\n }\n\n this.addEvents();\n }\n\n _createClass(SimpleLightbox, [{\n key: \"createDomNodes\",\n value: function createDomNodes() {\n this.domNodes.overlay = document.createElement('div');\n this.domNodes.overlay.classList.add('sl-overlay');\n this.domNodes.overlay.dataset.opacityTarget = \".7\";\n this.domNodes.closeButton = document.createElement('button');\n this.domNodes.closeButton.classList.add('sl-close');\n this.domNodes.closeButton.innerHTML = this.options.closeText;\n this.domNodes.spinner = document.createElement('div');\n this.domNodes.spinner.classList.add('sl-spinner');\n this.domNodes.spinner.innerHTML = '
';\n this.domNodes.navigation = document.createElement('div');\n this.domNodes.navigation.classList.add('sl-navigation');\n this.domNodes.navigation.innerHTML = \"\");\n this.domNodes.counter = document.createElement('div');\n this.domNodes.counter.classList.add('sl-counter');\n this.domNodes.counter.innerHTML = '/';\n this.domNodes.caption = document.createElement('div');\n this.domNodes.caption.classList.add('sl-caption', 'pos-' + this.options.captionPosition);\n\n if (this.options.captionClass) {\n this.domNodes.caption.classList.add(this.options.captionClass);\n }\n\n this.domNodes.image = document.createElement('div');\n this.domNodes.image.classList.add('sl-image');\n this.domNodes.wrapper = document.createElement('div');\n this.domNodes.wrapper.classList.add('sl-wrapper');\n this.domNodes.wrapper.setAttribute('tabindex', -1);\n this.domNodes.wrapper.setAttribute('role', 'dialog');\n this.domNodes.wrapper.setAttribute('aria-hidden', false);\n\n if (this.options.className) {\n this.domNodes.wrapper.classList.add(this.options.className);\n }\n\n if (this.options.rtl) {\n this.domNodes.wrapper.classList.add('sl-dir-rtl');\n }\n }\n }, {\n key: \"throttle\",\n value: function throttle(func, limit) {\n var inThrottle;\n return function () {\n if (!inThrottle) {\n func.apply(this, arguments);\n inThrottle = true;\n setTimeout(function () {\n return inThrottle = false;\n }, limit);\n }\n };\n }\n }, {\n key: \"isValidLink\",\n value: function isValidLink(element) {\n return !this.options.fileExt || 'pathname' in element && new RegExp('(' + this.options.fileExt + ')$', 'i').test(element.pathname);\n }\n }, {\n key: \"calculateTransitionPrefix\",\n value: function calculateTransitionPrefix() {\n var s = (document.body || document.documentElement).style;\n return 'transition' in s ? '' : 'WebkitTransition' in s ? '-webkit-' : 'MozTransition' in s ? '-moz-' : 'OTransition' in s ? '-o' : false;\n }\n }, {\n key: \"toggleScrollbar\",\n value: function toggleScrollbar(type) {\n var scrollbarWidth = 0;\n var fixedElements = [].slice.call(document.querySelectorAll('.' + this.options.fixedClass));\n\n if (type === 'hide') {\n var fullWindowWidth = window.innerWidth;\n\n if (!fullWindowWidth) {\n var documentElementRect = document.documentElement.getBoundingClientRect();\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left);\n }\n\n if (document.body.clientWidth < fullWindowWidth) {\n var scrollDiv = document.createElement('div'),\n paddingRight = parseInt(document.body.style.paddingRight || 0, 10);\n scrollDiv.classList.add('sl-scrollbar-measure');\n document.body.appendChild(scrollDiv);\n scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n document.body.dataset.originalPaddingRight = paddingRight;\n\n if (scrollbarWidth > 0) {\n document.body.classList.add('hidden-scroll');\n document.body.style.paddingRight = paddingRight + scrollbarWidth + 'px';\n fixedElements.forEach(function (element) {\n var actualPadding = element.style.paddingRight;\n var calculatedPadding = window.getComputedStyle(element)['padding-right'];\n element.dataset.originalPaddingRight = actualPadding;\n element.style.paddingRight = \"\".concat(parseFloat(calculatedPadding) + scrollbarWidth, \"px\");\n });\n }\n }\n } else {\n document.body.classList.remove('hidden-scroll');\n document.body.style.paddingRight = document.body.dataset.originalPaddingRight;\n fixedElements.forEach(function (element) {\n var padding = element.dataset.originalPaddingRight;\n\n if (typeof padding !== 'undefined') {\n element.style.paddingRight = padding;\n }\n });\n }\n\n return scrollbarWidth;\n }\n }, {\n key: \"close\",\n value: function close() {\n var _this2 = this;\n\n if (!this.isOpen || this.isAnimating || this.isClosing) {\n return false;\n }\n\n this.isClosing = true;\n var element = this.relatedElements[this.currentImageIndex];\n element.dispatchEvent(new Event('close.simplelightbox'));\n\n if (this.options.history) {\n this.historyHasChanges = false;\n\n if (!this.hashReseted) {\n this.resetHash();\n }\n }\n\n this.removeEventListener(document, 'focusin.' + this.eventNamespace);\n this.fadeOut(document.querySelectorAll('.sl-image img, .sl-overlay, .sl-close, .sl-navigation, .sl-image .sl-caption, .sl-counter'), this.options.fadeSpeed, function () {\n if (_this2.options.disableScroll) {\n _this2.toggleScrollbar('show');\n }\n\n if (_this2.options.htmlClass && _this2.options.htmlClass !== '') {\n document.querySelector('html').classList.remove(_this2.options.htmlClass);\n }\n\n document.body.removeChild(_this2.domNodes.wrapper);\n document.body.removeChild(_this2.domNodes.overlay);\n _this2.domNodes.additionalHtml = null;\n element.dispatchEvent(new Event('closed.simplelightbox'));\n _this2.isClosing = false;\n });\n this.currentImage = null;\n this.isOpen = false;\n this.isAnimating = false; // reset touchcontrol coordinates\n\n for (var key in this.controlCoordinates) {\n this.controlCoordinates[key] = 0;\n }\n\n this.controlCoordinates.mousedown = false;\n this.controlCoordinates.zoomed = false;\n this.controlCoordinates.capture = false;\n this.controlCoordinates.initialScale = this.minMax(1, 1, this.options.maxZoom);\n this.controlCoordinates.doubleTapped = false;\n }\n }, {\n key: \"preload\",\n value: function preload() {\n var _this3 = this;\n\n var index = this.currentImageIndex,\n length = this.relatedElements.length,\n next = index + 1 < 0 ? length - 1 : index + 1 >= length - 1 ? 0 : index + 1,\n prev = index - 1 < 0 ? length - 1 : index - 1 >= length - 1 ? 0 : index - 1,\n nextImage = new Image(),\n prevImage = new Image();\n nextImage.addEventListener('load', function (event) {\n var src = event.target.getAttribute('src');\n\n if (_this3.loadedImages.indexOf(src) === -1) {\n //is this condition even required... setting multiple times will not change usage...\n _this3.loadedImages.push(src);\n }\n\n _this3.relatedElements[index].dispatchEvent(new Event('nextImageLoaded.' + _this3.eventNamespace));\n });\n nextImage.setAttribute('src', this.relatedElements[next].getAttribute(this.options.sourceAttr));\n prevImage.addEventListener('load', function (event) {\n var src = event.target.getAttribute('src');\n\n if (_this3.loadedImages.indexOf(src) === -1) {\n _this3.loadedImages.push(src);\n }\n\n _this3.relatedElements[index].dispatchEvent(new Event('prevImageLoaded.' + _this3.eventNamespace));\n });\n prevImage.setAttribute('src', this.relatedElements[prev].getAttribute(this.options.sourceAttr));\n }\n }, {\n key: \"loadImage\",\n value: function loadImage(direction) {\n var _this4 = this;\n\n var slideDirection = direction;\n\n if (this.options.rtl) {\n direction = -direction;\n }\n\n this.relatedElements[this.currentImageIndex].dispatchEvent(new Event('change.' + this.eventNamespace));\n this.relatedElements[this.currentImageIndex].dispatchEvent(new Event((direction === 1 ? 'next' : 'prev') + '.' + this.eventNamespace));\n var newIndex = this.currentImageIndex + direction;\n\n if (this.isAnimating || (newIndex < 0 || newIndex >= this.relatedElements.length) && this.options.loop === false) {\n return false;\n }\n\n this.currentImageIndex = newIndex < 0 ? this.relatedElements.length - 1 : newIndex > this.relatedElements.length - 1 ? 0 : newIndex;\n this.domNodes.counter.querySelector('.sl-current').innerHTML = this.currentImageIndex + 1;\n\n if (this.options.animationSlide) {\n this.slide(this.options.animationSpeed / 1000, -100 * slideDirection - this.controlCoordinates.swipeDiff + 'px');\n }\n\n this.fadeOut(this.domNodes.image, this.options.fadeSpeed, function () {\n _this4.isAnimating = true;\n\n if (!_this4.isClosing) {\n setTimeout(function () {\n var element = _this4.relatedElements[_this4.currentImageIndex];\n\n _this4.currentImage.setAttribute('src', element.getAttribute(_this4.options.sourceAttr));\n\n if (_this4.loadedImages.indexOf(element.getAttribute(_this4.options.sourceAttr)) === -1) {\n _this4.show(_this4.domNodes.spinner);\n }\n\n if (_this4.domNodes.image.contains(_this4.domNodes.caption)) {\n _this4.domNodes.image.removeChild(_this4.domNodes.caption);\n }\n\n _this4.adjustImage(slideDirection);\n\n if (_this4.options.preloading) _this4.preload();\n }, 100);\n } else {\n _this4.isAnimating = false;\n }\n });\n }\n }, {\n key: \"adjustImage\",\n value: function adjustImage(direction) {\n var _this5 = this;\n\n if (!this.currentImage) {\n return false;\n }\n\n var tmpImage = new Image(),\n windowWidth = window.innerWidth * this.options.widthRatio,\n windowHeight = window.innerHeight * this.options.heightRatio;\n tmpImage.setAttribute('src', this.currentImage.getAttribute('src'));\n this.currentImage.dataset.scale = 1;\n this.currentImage.dataset.translateX = 0;\n this.currentImage.dataset.translateY = 0;\n this.zoomPanElement(0, 0, 1);\n tmpImage.addEventListener('error', function (event) {\n _this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event('error.' + _this5.eventNamespace));\n\n _this5.isAnimating = false;\n _this5.isOpen = false;\n _this5.domNodes.spinner.style.display = 'none';\n var dirIsDefined = direction === 1 || direction === -1;\n\n if (_this5.initialImageIndex === _this5.currentImageIndex && dirIsDefined) {\n return _this5.close();\n }\n\n if (_this5.options.alertError) {\n alert(_this5.options.alertErrorMessage);\n }\n\n _this5.loadImage(dirIsDefined ? direction : 1);\n });\n tmpImage.addEventListener('load', function (event) {\n if (typeof direction !== 'undefined') {\n _this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event('changed.' + _this5.eventNamespace));\n\n _this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event((direction === 1 ? 'nextDone' : 'prevDone') + '.' + _this5.eventNamespace));\n } // history\n\n\n if (_this5.options.history) {\n _this5.updateURL();\n }\n\n if (_this5.loadedImages.indexOf(_this5.currentImage.getAttribute('src')) === -1) {\n _this5.loadedImages.push(_this5.currentImage.getAttribute('src'));\n }\n\n var imageWidth = event.target.width,\n imageHeight = event.target.height;\n\n if (_this5.options.scaleImageToRatio || imageWidth > windowWidth || imageHeight > windowHeight) {\n var ratio = imageWidth / imageHeight > windowWidth / windowHeight ? imageWidth / windowWidth : imageHeight / windowHeight;\n imageWidth /= ratio;\n imageHeight /= ratio;\n }\n\n _this5.domNodes.image.style.top = (window.innerHeight - imageHeight) / 2 + 'px';\n _this5.domNodes.image.style.left = (window.innerWidth - imageWidth - _this5.globalScrollbarWidth) / 2 + 'px';\n _this5.domNodes.image.style.width = imageWidth + 'px';\n _this5.domNodes.image.style.height = imageHeight + 'px';\n _this5.domNodes.spinner.style.display = 'none';\n\n if (_this5.options.focus) {\n _this5.forceFocus();\n }\n\n _this5.fadeIn(_this5.currentImage, _this5.options.fadeSpeed, function () {\n if (_this5.options.focus) {\n _this5.domNodes.wrapper.focus();\n }\n });\n\n _this5.isOpen = true;\n var captionContainer, captionText;\n\n if (typeof _this5.options.captionSelector === 'string') {\n captionContainer = _this5.options.captionSelector === 'self' ? _this5.relatedElements[_this5.currentImageIndex] : _this5.relatedElements[_this5.currentImageIndex].querySelector(_this5.options.captionSelector);\n } else if (typeof _this5.options.captionSelector === 'function') {\n captionContainer = _this5.options.captionSelector(_this5.relatedElements[_this5.currentImageIndex]);\n }\n\n if (_this5.options.captions && captionContainer) {\n if (_this5.options.captionType === 'data') {\n captionText = captionContainer.dataset[_this5.options.captionsData];\n } else if (_this5.options.captionType === 'text') {\n captionText = captionContainer.innerHTML;\n } else {\n captionText = captionContainer.getAttribute(_this5.options.captionsData);\n }\n }\n\n if (!_this5.options.loop) {\n if (_this5.currentImageIndex === 0) {\n _this5.hide(_this5.domNodes.navigation.querySelector('.sl-prev'));\n }\n\n if (_this5.currentImageIndex >= _this5.relatedElements.length - 1) {\n _this5.hide(_this5.domNodes.navigation.querySelector('.sl-next'));\n }\n\n if (_this5.currentImageIndex > 0) {\n _this5.show(_this5.domNodes.navigation.querySelector('.sl-prev'));\n }\n\n if (_this5.currentImageIndex < _this5.relatedElements.length - 1) {\n _this5.show(_this5.domNodes.navigation.querySelector('.sl-next'));\n }\n }\n\n if (_this5.relatedElements.length === 1) {\n _this5.hide(_this5.domNodes.navigation.querySelectorAll('.sl-prev, .sl-next'));\n } else {\n _this5.show(_this5.domNodes.navigation.querySelectorAll('.sl-prev, .sl-next'));\n }\n\n if (direction === 1 || direction === -1) {\n if (_this5.options.animationSlide) {\n _this5.slide(0, 100 * direction + 'px');\n\n setTimeout(function () {\n _this5.slide(_this5.options.animationSpeed / 1000, 0 + 'px');\n }, 50);\n }\n\n _this5.fadeIn(_this5.domNodes.image, _this5.options.fadeSpeed, function () {\n _this5.isAnimating = false;\n\n _this5.setCaption(captionText, imageWidth);\n });\n } else {\n _this5.isAnimating = false;\n\n _this5.setCaption(captionText, imageWidth);\n }\n\n if (_this5.options.additionalHtml && !_this5.domNodes.additionalHtml) {\n _this5.domNodes.additionalHtml = document.createElement('div');\n\n _this5.domNodes.additionalHtml.classList.add('sl-additional-html');\n\n _this5.domNodes.additionalHtml.innerHTML = _this5.options.additionalHtml;\n\n _this5.domNodes.image.appendChild(_this5.domNodes.additionalHtml);\n }\n });\n }\n }, {\n key: \"zoomPanElement\",\n value: function zoomPanElement(targetOffsetX, targetOffsetY, targetScale) {\n this.currentImage.style[this.transitionPrefix + 'transform'] = 'translate(' + targetOffsetX + ',' + targetOffsetY + ') scale(' + targetScale + ')';\n }\n }, {\n key: \"minMax\",\n value: function minMax(value, min, max) {\n return value < min ? min : value > max ? max : value;\n }\n }, {\n key: \"setZoomData\",\n value: function setZoomData(initialScale, targetOffsetX, targetOffsetY) {\n this.currentImage.dataset.scale = initialScale;\n this.currentImage.dataset.translateX = targetOffsetX;\n this.currentImage.dataset.translateY = targetOffsetY;\n }\n }, {\n key: \"hashchangeHandler\",\n value: function hashchangeHandler() {\n if (this.isOpen && this.hash === this.initialLocationHash) {\n this.hashReseted = true;\n this.close();\n }\n }\n }, {\n key: \"addEvents\",\n value: function addEvents() {\n var _this6 = this;\n\n // resize/responsive\n this.addEventListener(window, 'resize.' + this.eventNamespace, function (event) {\n //this.adjustImage.bind(this)\n if (_this6.isOpen) {\n _this6.adjustImage();\n }\n });\n this.addEventListener(this.domNodes.closeButton, ['click.' + this.eventNamespace, 'touchstart.' + this.eventNamespace], this.close.bind(this));\n\n if (this.options.history) {\n setTimeout(function () {\n _this6.addEventListener(window, 'hashchange.' + _this6.eventNamespace, function (event) {\n if (_this6.isOpen) {\n _this6.hashchangeHandler();\n }\n });\n }, 40);\n }\n\n this.addEventListener(this.domNodes.navigation.getElementsByTagName('button'), 'click.' + this.eventNamespace, function (event) {\n if (!event.currentTarget.tagName.match(/button/i)) {\n return true;\n }\n\n event.preventDefault();\n _this6.controlCoordinates.swipeDiff = 0;\n\n _this6.loadImage(event.currentTarget.classList.contains('sl-next') ? 1 : -1);\n });\n this.addEventListener(this.domNodes.image, ['touchstart.' + this.eventNamespace, 'mousedown.' + this.eventNamespace], function (event) {\n if (event.target.tagName === 'A' && event.type === 'touchstart') {\n return true;\n }\n\n if (event.type === 'mousedown') {\n _this6.controlCoordinates.initialPointerOffsetX = event.clientX;\n _this6.controlCoordinates.initialPointerOffsetY = event.clientY;\n _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;\n _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;\n _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;\n _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;\n _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;\n _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;\n _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);\n _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);\n _this6.controlCoordinates.capture = true;\n } else {\n _this6.controlCoordinates.touchCount = event.touches.length;\n _this6.controlCoordinates.initialPointerOffsetX = event.touches[0].clientX;\n _this6.controlCoordinates.initialPointerOffsetY = event.touches[0].clientY;\n _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;\n _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;\n _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;\n _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;\n _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;\n _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;\n\n if (_this6.controlCoordinates.touchCount === 1)\n /* Single touch */\n {\n if (!_this6.controlCoordinates.doubleTapped) {\n _this6.controlCoordinates.doubleTapped = true;\n setTimeout(function () {\n _this6.controlCoordinates.doubleTapped = false;\n }, 300);\n } else {\n _this6.currentImage.classList.add('sl-transition');\n\n if (!_this6.controlCoordinates.zoomed) {\n _this6.controlCoordinates.initialScale = _this6.options.doubleTapZoom;\n\n _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);\n\n _this6.zoomPanElement(0 + \"px\", 0 + \"px\", _this6.controlCoordinates.initialScale);\n\n if (!_this6.domNodes.caption.style.opacity && _this6.domNodes.caption.style.display !== 'none') {\n _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n\n _this6.controlCoordinates.zoomed = true;\n } else {\n _this6.controlCoordinates.initialScale = 1;\n\n _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);\n\n _this6.zoomPanElement(0 + \"px\", 0 + \"px\", _this6.controlCoordinates.initialScale);\n\n _this6.controlCoordinates.zoomed = false;\n }\n\n setTimeout(function () {\n if (_this6.currentImage) {\n _this6.currentImage.classList.remove('sl-transition');\n }\n }, 200);\n return false;\n }\n\n _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);\n _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);\n } else if (_this6.controlCoordinates.touchCount === 2)\n /* Pinch */\n {\n _this6.controlCoordinates.initialPointerOffsetX2 = event.touches[1].clientX;\n _this6.controlCoordinates.initialPointerOffsetY2 = event.touches[1].clientY;\n _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);\n _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);\n _this6.controlCoordinates.pinchOffsetX = (_this6.controlCoordinates.initialPointerOffsetX + _this6.controlCoordinates.initialPointerOffsetX2) / 2;\n _this6.controlCoordinates.pinchOffsetY = (_this6.controlCoordinates.initialPointerOffsetY + _this6.controlCoordinates.initialPointerOffsetY2) / 2;\n _this6.controlCoordinates.initialPinchDistance = Math.sqrt((_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialPointerOffsetX2) * (_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialPointerOffsetX2) + (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialPointerOffsetY2) * (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialPointerOffsetY2));\n }\n\n _this6.controlCoordinates.capture = true;\n }\n\n if (_this6.controlCoordinates.mousedown) return true;\n\n if (_this6.transitionCapable) {\n _this6.controlCoordinates.imageLeft = parseInt(_this6.domNodes.image.style.left, 10);\n }\n\n _this6.controlCoordinates.mousedown = true;\n _this6.controlCoordinates.swipeDiff = 0;\n _this6.controlCoordinates.swipeYDiff = 0;\n _this6.controlCoordinates.swipeStart = event.pageX || event.touches[0].pageX;\n _this6.controlCoordinates.swipeYStart = event.pageY || event.touches[0].pageY;\n return false;\n });\n this.addEventListener(this.domNodes.image, ['touchmove.' + this.eventNamespace, 'mousemove.' + this.eventNamespace, 'MSPointerMove'], function (event) {\n if (!_this6.controlCoordinates.mousedown) {\n return true;\n }\n\n event.preventDefault();\n\n if (event.type === 'touchmove') {\n if (_this6.controlCoordinates.capture === false) {\n return false;\n }\n\n _this6.controlCoordinates.pointerOffsetX = event.touches[0].clientX;\n _this6.controlCoordinates.pointerOffsetY = event.touches[0].clientY;\n _this6.controlCoordinates.touchCount = event.touches.length;\n _this6.controlCoordinates.touchmoveCount++;\n\n if (_this6.controlCoordinates.touchCount > 1)\n /* Pinch */\n {\n _this6.controlCoordinates.pointerOffsetX2 = event.touches[1].clientX;\n _this6.controlCoordinates.pointerOffsetY2 = event.touches[1].clientY;\n _this6.controlCoordinates.targetPinchDistance = Math.sqrt((_this6.controlCoordinates.pointerOffsetX - _this6.controlCoordinates.pointerOffsetX2) * (_this6.controlCoordinates.pointerOffsetX - _this6.controlCoordinates.pointerOffsetX2) + (_this6.controlCoordinates.pointerOffsetY - _this6.controlCoordinates.pointerOffsetY2) * (_this6.controlCoordinates.pointerOffsetY - _this6.controlCoordinates.pointerOffsetY2));\n\n if (_this6.controlCoordinates.initialPinchDistance === null) {\n _this6.controlCoordinates.initialPinchDistance = _this6.controlCoordinates.targetPinchDistance;\n }\n\n if (Math.abs(_this6.controlCoordinates.initialPinchDistance - _this6.controlCoordinates.targetPinchDistance) >= 1) {\n /* Initialize helpers */\n _this6.controlCoordinates.targetScale = _this6.minMax(_this6.controlCoordinates.targetPinchDistance / _this6.controlCoordinates.initialPinchDistance * _this6.controlCoordinates.initialScale, 1, _this6.options.maxZoom);\n _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;\n _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;\n _this6.controlCoordinates.scaleDifference = _this6.controlCoordinates.targetScale - _this6.controlCoordinates.initialScale;\n _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.initialOffsetX - (_this6.controlCoordinates.pinchOffsetX - _this6.controlCoordinates.containerOffsetX - _this6.controlCoordinates.containerWidth / 2 - _this6.controlCoordinates.initialOffsetX) / (_this6.controlCoordinates.targetScale - _this6.controlCoordinates.scaleDifference) * _this6.controlCoordinates.scaleDifference, _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);\n _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.initialOffsetY - (_this6.controlCoordinates.pinchOffsetY - _this6.controlCoordinates.containerOffsetY - _this6.controlCoordinates.containerHeight / 2 - _this6.controlCoordinates.initialOffsetY) / (_this6.controlCoordinates.targetScale - _this6.controlCoordinates.scaleDifference) * _this6.controlCoordinates.scaleDifference, _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);\n\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n\n if (_this6.controlCoordinates.targetScale > 1) {\n _this6.controlCoordinates.zoomed = true;\n\n if (!_this6.domNodes.caption.style.opacity && _this6.domNodes.caption.style.display !== 'none') {\n _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n }\n\n _this6.controlCoordinates.initialPinchDistance = _this6.controlCoordinates.targetPinchDistance;\n _this6.controlCoordinates.initialScale = _this6.controlCoordinates.targetScale;\n _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;\n _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;\n }\n } else {\n _this6.controlCoordinates.targetScale = _this6.controlCoordinates.initialScale;\n _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;\n _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;\n _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetX - (_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialOffsetX), _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);\n _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetY - (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialOffsetY), _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);\n\n if (Math.abs(_this6.controlCoordinates.targetOffsetX) === Math.abs(_this6.controlCoordinates.limitOffsetX)) {\n _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;\n _this6.controlCoordinates.initialPointerOffsetX = _this6.controlCoordinates.pointerOffsetX;\n }\n\n if (Math.abs(_this6.controlCoordinates.targetOffsetY) === Math.abs(_this6.controlCoordinates.limitOffsetY)) {\n _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;\n _this6.controlCoordinates.initialPointerOffsetY = _this6.controlCoordinates.pointerOffsetY;\n }\n\n _this6.setZoomData(_this6.controlCoordinates.initialScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);\n\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n }\n }\n /* Mouse Move implementation */\n\n\n if (event.type === 'mousemove' && _this6.controlCoordinates.mousedown) {\n if (event.type == 'touchmove') return true;\n if (_this6.controlCoordinates.capture === false) return false;\n _this6.controlCoordinates.pointerOffsetX = event.clientX;\n _this6.controlCoordinates.pointerOffsetY = event.clientY;\n _this6.controlCoordinates.targetScale = _this6.controlCoordinates.initialScale;\n _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;\n _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;\n _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetX - (_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialOffsetX), _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);\n _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetY - (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialOffsetY), _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);\n\n if (Math.abs(_this6.controlCoordinates.targetOffsetX) === Math.abs(_this6.controlCoordinates.limitOffsetX)) {\n _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;\n _this6.controlCoordinates.initialPointerOffsetX = _this6.controlCoordinates.pointerOffsetX;\n }\n\n if (Math.abs(_this6.controlCoordinates.targetOffsetY) === Math.abs(_this6.controlCoordinates.limitOffsetY)) {\n _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;\n _this6.controlCoordinates.initialPointerOffsetY = _this6.controlCoordinates.pointerOffsetY;\n }\n\n _this6.setZoomData(_this6.controlCoordinates.initialScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);\n\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n }\n\n if (!_this6.controlCoordinates.zoomed) {\n _this6.controlCoordinates.swipeEnd = event.pageX || event.touches[0].pageX;\n _this6.controlCoordinates.swipeYEnd = event.pageY || event.touches[0].pageY;\n _this6.controlCoordinates.swipeDiff = _this6.controlCoordinates.swipeStart - _this6.controlCoordinates.swipeEnd;\n _this6.controlCoordinates.swipeYDiff = _this6.controlCoordinates.swipeYStart - _this6.controlCoordinates.swipeYEnd;\n\n if (_this6.options.animationSlide) {\n _this6.slide(0, -_this6.controlCoordinates.swipeDiff + 'px');\n }\n }\n });\n this.addEventListener(this.domNodes.image, ['touchend.' + this.eventNamespace, 'mouseup.' + this.eventNamespace, 'touchcancel.' + this.eventNamespace, 'mouseleave.' + this.eventNamespace, 'pointerup', 'pointercancel', 'MSPointerUp', 'MSPointerCancel'], function (event) {\n if (_this6.isTouchDevice && event.type === 'touchend') {\n _this6.controlCoordinates.touchCount = event.touches.length;\n\n if (_this6.controlCoordinates.touchCount === 0)\n /* No touch */\n {\n /* Set attributes */\n if (_this6.currentImage) {\n _this6.setZoomData(_this6.controlCoordinates.initialScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);\n }\n\n if (_this6.controlCoordinates.initialScale === 1) {\n _this6.controlCoordinates.zoomed = false;\n\n if (_this6.domNodes.caption.style.display === 'none') {\n _this6.fadeIn(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n }\n\n _this6.controlCoordinates.initialPinchDistance = null;\n _this6.controlCoordinates.capture = false;\n } else if (_this6.controlCoordinates.touchCount === 1)\n /* Single touch */\n {\n _this6.controlCoordinates.initialPointerOffsetX = event.touches[0].clientX;\n _this6.controlCoordinates.initialPointerOffsetY = event.touches[0].clientY;\n } else if (_this6.controlCoordinates.touchCount > 1)\n /* Pinch */\n {\n _this6.controlCoordinates.initialPinchDistance = null;\n }\n }\n\n if (_this6.controlCoordinates.mousedown) {\n _this6.controlCoordinates.mousedown = false;\n var possibleDir = true;\n\n if (!_this6.options.loop) {\n if (_this6.currentImageIndex === 0 && _this6.controlCoordinates.swipeDiff < 0) {\n possibleDir = false;\n }\n\n if (_this6.currentImageIndex >= _this6.relatedElements.length - 1 && _this6.controlCoordinates.swipeDiff > 0) {\n possibleDir = false;\n }\n }\n\n if (Math.abs(_this6.controlCoordinates.swipeDiff) > _this6.options.swipeTolerance && possibleDir) {\n _this6.loadImage(_this6.controlCoordinates.swipeDiff > 0 ? 1 : -1);\n } else if (_this6.options.animationSlide) {\n _this6.slide(_this6.options.animationSpeed / 1000, 0 + 'px');\n }\n\n if (_this6.options.swipeClose && Math.abs(_this6.controlCoordinates.swipeYDiff) > 50 && Math.abs(_this6.controlCoordinates.swipeDiff) < _this6.options.swipeTolerance) {\n _this6.close();\n }\n }\n });\n this.addEventListener(this.domNodes.image, ['dblclick'], function (event) {\n if (_this6.isTouchDevice) return;\n _this6.controlCoordinates.initialPointerOffsetX = event.clientX;\n _this6.controlCoordinates.initialPointerOffsetY = event.clientY;\n _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;\n _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;\n _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;\n _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;\n _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;\n _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;\n\n _this6.currentImage.classList.add('sl-transition');\n\n if (!_this6.controlCoordinates.zoomed) {\n _this6.controlCoordinates.initialScale = _this6.options.doubleTapZoom;\n\n _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);\n\n _this6.zoomPanElement(0 + \"px\", 0 + \"px\", _this6.controlCoordinates.initialScale);\n\n if (!_this6.domNodes.caption.style.opacity && _this6.domNodes.caption.style.display !== 'none') {\n _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n\n _this6.controlCoordinates.zoomed = true;\n } else {\n _this6.controlCoordinates.initialScale = 1;\n\n _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);\n\n _this6.zoomPanElement(0 + \"px\", 0 + \"px\", _this6.controlCoordinates.initialScale);\n\n _this6.controlCoordinates.zoomed = false;\n\n if (_this6.domNodes.caption.style.display === 'none') {\n _this6.fadeIn(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n }\n\n setTimeout(function () {\n if (_this6.currentImage) {\n _this6.currentImage.classList.remove('sl-transition');\n }\n }, 200);\n _this6.controlCoordinates.capture = true;\n return false;\n });\n }\n }, {\n key: \"getDimensions\",\n value: function getDimensions(element) {\n var styles = window.getComputedStyle(element),\n height = element.offsetHeight,\n width = element.offsetWidth,\n borderTopWidth = parseFloat(styles.borderTopWidth),\n borderBottomWidth = parseFloat(styles.borderBottomWidth),\n paddingTop = parseFloat(styles.paddingTop),\n paddingBottom = parseFloat(styles.paddingBottom),\n borderLeftWidth = parseFloat(styles.borderLeftWidth),\n borderRightWidth = parseFloat(styles.borderRightWidth),\n paddingLeft = parseFloat(styles.paddingLeft),\n paddingRight = parseFloat(styles.paddingRight);\n return {\n height: height - borderBottomWidth - borderTopWidth - paddingTop - paddingBottom,\n width: width - borderLeftWidth - borderRightWidth - paddingLeft - paddingRight\n };\n }\n }, {\n key: \"updateHash\",\n value: function updateHash() {\n var newHash = 'pid=' + (this.currentImageIndex + 1),\n newURL = window.location.href.split('#')[0] + '#' + newHash;\n this.hashReseted = false;\n\n if (this.pushStateSupport) {\n window.history[this.historyHasChanges ? 'replaceState' : 'pushState']('', document.title, newURL);\n } else {\n // what is the browser target of this?\n if (this.historyHasChanges) {\n window.location.replace(newURL);\n } else {\n window.location.hash = newHash;\n }\n }\n\n if (!this.historyHasChanges) {\n this.urlChangedOnce = true;\n }\n\n this.historyHasChanges = true;\n }\n }, {\n key: \"resetHash\",\n value: function resetHash() {\n this.hashReseted = true;\n\n if (this.urlChangedOnce) {\n history.back();\n } else {\n if (this.pushStateSupport) {\n history.pushState('', document.title, window.location.pathname + window.location.search);\n } else {\n window.location.hash = '';\n }\n } //\n //in case an history operation is still pending\n\n\n clearTimeout(this.historyUpdateTimeout);\n }\n }, {\n key: \"updateURL\",\n value: function updateURL() {\n clearTimeout(this.historyUpdateTimeout);\n\n if (!this.historyHasChanges) {\n this.updateHash(); // first time\n } else {\n this.historyUpdateTimeout = setTimeout(this.updateHash.bind(this), 800);\n }\n }\n }, {\n key: \"setCaption\",\n value: function setCaption(captionText, imageWidth) {\n var _this7 = this;\n\n if (this.options.captions && captionText && captionText !== '' && typeof captionText !== \"undefined\") {\n this.hide(this.domNodes.caption);\n this.domNodes.caption.style.width = imageWidth + 'px';\n this.domNodes.caption.innerHTML = captionText;\n this.domNodes.image.appendChild(this.domNodes.caption);\n setTimeout(function () {\n _this7.fadeIn(_this7.domNodes.caption, _this7.options.fadeSpeed);\n }, this.options.captionDelay);\n }\n }\n }, {\n key: \"slide\",\n value: function slide(speed, pos) {\n if (!this.transitionCapable) {\n return this.domNodes.image.style.left = pos;\n }\n\n this.domNodes.image.style[this.transitionPrefix + 'transform'] = 'translateX(' + pos + ')';\n this.domNodes.image.style[this.transitionPrefix + 'transition'] = this.transitionPrefix + 'transform ' + speed + 's linear';\n }\n }, {\n key: \"getRelated\",\n value: function getRelated(rel) {\n var elems;\n\n if (rel && rel !== false && rel !== 'nofollow') {\n elems = Array.from(this.elements).filter(function (element) {\n return element.getAttribute('rel') === rel;\n });\n } else {\n elems = this.elements;\n }\n\n return elems;\n }\n }, {\n key: \"openImage\",\n value: function openImage(element) {\n var _this8 = this;\n\n element.dispatchEvent(new Event('show.' + this.eventNamespace));\n\n if (this.options.disableScroll) {\n this.globalScrollbarWidth = this.toggleScrollbar('hide');\n }\n\n if (this.options.htmlClass && this.options.htmlClass !== '') {\n document.querySelector('html').classList.add(this.options.htmlClass);\n }\n\n document.body.appendChild(this.domNodes.wrapper);\n this.domNodes.wrapper.appendChild(this.domNodes.image);\n\n if (this.options.overlay) {\n document.body.appendChild(this.domNodes.overlay);\n }\n\n this.relatedElements = this.getRelated(element.rel);\n\n if (this.options.showCounter) {\n if (this.relatedElements.length == 1 && this.domNodes.wrapper.contains(this.domNodes.counter)) {\n this.domNodes.wrapper.removeChild(this.domNodes.counter);\n } else if (this.relatedElements.length > 1 && !this.domNodes.wrapper.contains(this.domNodes.counter)) {\n this.domNodes.wrapper.appendChild(this.domNodes.counter);\n }\n }\n\n this.isAnimating = true;\n this.currentImageIndex = this.relatedElements.indexOf(element);\n var targetURL = element.getAttribute(this.options.sourceAttr);\n this.currentImage = document.createElement('img');\n this.currentImage.style.display = 'none';\n this.currentImage.setAttribute('src', targetURL);\n this.currentImage.dataset.scale = 1;\n this.currentImage.dataset.translateX = 0;\n this.currentImage.dataset.translateY = 0;\n\n if (this.loadedImages.indexOf(targetURL) === -1) {\n this.loadedImages.push(targetURL);\n }\n\n this.domNodes.image.innerHTML = '';\n this.domNodes.image.setAttribute('style', '');\n this.domNodes.image.appendChild(this.currentImage);\n this.fadeIn(this.domNodes.overlay, this.options.fadeSpeed);\n this.fadeIn([this.domNodes.counter, this.domNodes.navigation, this.domNodes.closeButton], this.options.fadeSpeed);\n this.show(this.domNodes.spinner);\n this.domNodes.counter.querySelector('.sl-current').innerHTML = this.currentImageIndex + 1;\n this.domNodes.counter.querySelector('.sl-total').innerHTML = this.relatedElements.length;\n this.adjustImage();\n\n if (this.options.preloading) {\n this.preload();\n }\n\n setTimeout(function () {\n element.dispatchEvent(new Event('shown.' + _this8.eventNamespace));\n }, this.options.animationSpeed);\n }\n }, {\n key: \"forceFocus\",\n value: function forceFocus() {\n var _this9 = this;\n\n this.removeEventListener(document, 'focusin.' + this.eventNamespace);\n this.addEventListener(document, 'focusin.' + this.eventNamespace, function (event) {\n if (document !== event.target && _this9.domNodes.wrapper !== event.target && !_this9.domNodes.wrapper.contains(event.target)) {\n _this9.domNodes.wrapper.focus();\n }\n });\n } // utility\n\n }, {\n key: \"addEventListener\",\n value: function addEventListener(elements, events, callback, opts) {\n elements = this.wrap(elements);\n events = this.wrap(events);\n\n var _iterator = _createForOfIteratorHelper(elements),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var element = _step.value;\n\n if (!element.namespaces) {\n element.namespaces = {};\n } // save the namespaces addEventListener the DOM element itself\n\n\n var _iterator2 = _createForOfIteratorHelper(events),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var event = _step2.value;\n var options = opts || false;\n element.namespaces[event] = callback;\n element.addEventListener(event.split('.')[0], callback, options);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(elements, events) {\n elements = this.wrap(elements);\n events = this.wrap(events);\n\n var _iterator3 = _createForOfIteratorHelper(elements),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var element = _step3.value;\n\n var _iterator4 = _createForOfIteratorHelper(events),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var event = _step4.value;\n\n if (element.namespaces && element.namespaces[event]) {\n element.removeEventListener(event.split('.')[0], element.namespaces[event]);\n delete element.namespaces[event];\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n }, {\n key: \"fadeOut\",\n value: function fadeOut(elements, duration, callback) {\n var _this10 = this;\n\n elements = this.wrap(elements);\n\n var _iterator5 = _createForOfIteratorHelper(elements),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var element = _step5.value;\n element.style.opacity = 1;\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n this.isFadeIn = false;\n\n var step = 16.66666 / (duration || this.options.fadeSpeed),\n fade = function fade() {\n var currentOpacity = parseFloat(elements[0].style.opacity);\n\n if ((currentOpacity -= step) < 0) {\n var _iterator6 = _createForOfIteratorHelper(elements),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var element = _step6.value;\n element.style.display = \"none\";\n element.style.opacity = '';\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n callback && callback.call(_this10, elements);\n } else {\n var _iterator7 = _createForOfIteratorHelper(elements),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var _element = _step7.value;\n _element.style.opacity = currentOpacity;\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n requestAnimationFrame(fade);\n }\n };\n\n fade();\n }\n }, {\n key: \"fadeIn\",\n value: function fadeIn(elements, duration, callback, display) {\n var _this11 = this;\n\n elements = this.wrap(elements);\n\n var _iterator8 = _createForOfIteratorHelper(elements),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var element = _step8.value;\n element.style.opacity = 0;\n element.style.display = display || \"block\";\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n\n this.isFadeIn = true;\n\n var opacityTarget = parseFloat(elements[0].dataset.opacityTarget || 1),\n step = 16.66666 * opacityTarget / (duration || this.options.fadeSpeed),\n fade = function fade() {\n var currentOpacity = parseFloat(elements[0].style.opacity);\n\n if (!((currentOpacity += step) > opacityTarget)) {\n var _iterator9 = _createForOfIteratorHelper(elements),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var element = _step9.value;\n element.style.opacity = currentOpacity;\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n if (!_this11.isFadeIn) return;\n requestAnimationFrame(fade);\n } else {\n var _iterator10 = _createForOfIteratorHelper(elements),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var _element2 = _step10.value;\n _element2.style.opacity = '';\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n\n callback && callback.call(_this11, elements);\n }\n };\n\n fade();\n }\n }, {\n key: \"hide\",\n value: function hide(elements) {\n elements = this.wrap(elements);\n\n var _iterator11 = _createForOfIteratorHelper(elements),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var element = _step11.value;\n element.dataset.initialDisplay = element.style.display;\n element.style.display = 'none';\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n }\n }, {\n key: \"show\",\n value: function show(elements, display) {\n elements = this.wrap(elements);\n\n var _iterator12 = _createForOfIteratorHelper(elements),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var element = _step12.value;\n element.style.display = element.dataset.initialDisplay || display || 'block';\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n }\n }, {\n key: \"wrap\",\n value: function wrap(input) {\n return typeof input[Symbol.iterator] === 'function' && typeof input !== 'string' ? input : [input];\n }\n }, {\n key: \"on\",\n value: function on(events, callback) {\n events = this.wrap(events);\n\n var _iterator13 = _createForOfIteratorHelper(this.elements),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var element = _step13.value;\n\n if (!element.fullyNamespacedEvents) {\n element.fullyNamespacedEvents = {};\n }\n\n var _iterator14 = _createForOfIteratorHelper(events),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var event = _step14.value;\n element.fullyNamespacedEvents[event] = callback;\n element.addEventListener(event, callback);\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n\n return this;\n }\n }, {\n key: \"off\",\n value: function off(events) {\n events = this.wrap(events);\n\n var _iterator15 = _createForOfIteratorHelper(this.elements),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var element = _step15.value;\n\n var _iterator16 = _createForOfIteratorHelper(events),\n _step16;\n\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var event = _step16.value;\n\n if (typeof element.fullyNamespacedEvents !== 'undefined' && event in element.fullyNamespacedEvents) {\n element.removeEventListener(event, element.fullyNamespacedEvents[event]);\n }\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n\n return this;\n } // api\n\n }, {\n key: \"open\",\n value: function open(elem) {\n elem = elem || this.elements[0];\n\n if (typeof jQuery !== \"undefined\" && elem instanceof jQuery) {\n elem = elem.get(0);\n }\n\n this.initialImageIndex = this.elements.indexOf(elem);\n\n if (this.initialImageIndex > -1) {\n this.openImage(elem);\n }\n }\n }, {\n key: \"next\",\n value: function next() {\n this.loadImage(1);\n }\n }, {\n key: \"prev\",\n value: function prev() {\n this.loadImage(-1);\n } //close is exposed anyways..\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n //remove all custom event listeners from elements\n this.off(['close.' + this.eventNamespace, 'closed.' + this.eventNamespace, 'nextImageLoaded.' + this.eventNamespace, 'prevImageLoaded.' + this.eventNamespace, 'change.' + this.eventNamespace, 'nextDone.' + this.eventNamespace, 'prevDone.' + this.eventNamespace, 'error.' + this.eventNamespace, 'changed.' + this.eventNamespace, 'next.' + this.eventNamespace, 'prev.' + this.eventNamespace, 'show.' + this.eventNamespace, 'shown.' + this.eventNamespace]);\n this.removeEventListener(this.elements, 'click.' + this.eventNamespace);\n this.removeEventListener(document, 'focusin.' + this.eventNamespace);\n this.removeEventListener(document.body, 'contextmenu.' + this.eventNamespace);\n this.removeEventListener(document.body, 'keyup.' + this.eventNamespace);\n this.removeEventListener(this.domNodes.navigation.getElementsByTagName('button'), 'click.' + this.eventNamespace);\n this.removeEventListener(this.domNodes.closeButton, 'click.' + this.eventNamespace);\n this.removeEventListener(window, 'resize.' + this.eventNamespace);\n this.removeEventListener(window, 'hashchange.' + this.eventNamespace);\n this.close();\n\n if (this.isOpen) {\n document.body.removeChild(this.domNodes.wrapper);\n document.body.removeChild(this.domNodes.overlay);\n }\n\n this.elements = null;\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (!this.initialSelector) {\n throw 'refreshing only works when you initialize using a selector!';\n }\n\n var options = this.options,\n selector = this.initialSelector;\n this.destroy();\n this.constructor(selector, options);\n return this;\n }\n }, {\n key: \"hash\",\n get: function get() {\n return window.location.hash.substring(1);\n }\n }]);\n\n return SimpleLightbox;\n}();\n\nvar _default = SimpleLightbox;\nexports[\"default\"] = _default;\nglobal.SimpleLightbox = SimpleLightbox;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","export default __webpack_public_path__ + \"styles/main.css\";","export default __webpack_public_path__ + \"styles/print.css\";","export default __webpack_public_path__ + \"page-builder-styles/froala-show-blocks.css\";","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * True if the custom elements polyfill is in use.\n */\nexport const isCEPolyfill = typeof window !== 'undefined' &&\n window.customElements != null &&\n window.customElements.polyfillWrapFlushCallback !==\n undefined;\n/**\n * Reparents nodes, starting from `start` (inclusive) to `end` (exclusive),\n * into another container (could be the same container), before `before`. If\n * `before` is null, it appends the nodes to the container.\n */\nexport const reparentNodes = (container, start, end = null, before = null) => {\n while (start !== end) {\n const n = start.nextSibling;\n container.insertBefore(start, before);\n start = n;\n }\n};\n/**\n * Removes nodes, starting from `start` (inclusive) to `end` (exclusive), from\n * `container`.\n */\nexport const removeNodes = (container, start, end = null) => {\n while (start !== end) {\n const n = start.nextSibling;\n container.removeChild(start);\n start = n;\n }\n};\n//# sourceMappingURL=dom.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * An expression marker with embedded unique key to avoid collision with\n * possible text in templates.\n */\nexport const marker = `{{lit-${String(Math.random()).slice(2)}}}`;\n/**\n * An expression marker used text-positions, multi-binding attributes, and\n * attributes with markup-like text values.\n */\nexport const nodeMarker = ``;\nexport const markerRegex = new RegExp(`${marker}|${nodeMarker}`);\n/**\n * Suffix appended to all bound attribute names.\n */\nexport const boundAttributeSuffix = '$lit$';\n/**\n * An updatable Template that tracks the location of dynamic parts.\n */\nexport class Template {\n constructor(result, element) {\n this.parts = [];\n this.element = element;\n const nodesToRemove = [];\n const stack = [];\n // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be null\n const walker = document.createTreeWalker(element.content, 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */, null, false);\n // Keeps track of the last index associated with a part. We try to delete\n // unnecessary nodes, but we never want to associate two different parts\n // to the same index. They must have a constant node between.\n let lastPartIndex = 0;\n let index = -1;\n let partIndex = 0;\n const { strings, values: { length } } = result;\n while (partIndex < length) {\n const node = walker.nextNode();\n if (node === null) {\n // We've exhausted the content inside a nested template element.\n // Because we still have parts (the outer for-loop), we know:\n // - There is a template in the stack\n // - The walker will find a nextNode outside the template\n walker.currentNode = stack.pop();\n continue;\n }\n index++;\n if (node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n if (node.hasAttributes()) {\n const attributes = node.attributes;\n const { length } = attributes;\n // Per\n // https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap,\n // attributes are not guaranteed to be returned in document order.\n // In particular, Edge/IE can return them out of order, so we cannot\n // assume a correspondence between part index and attribute index.\n let count = 0;\n for (let i = 0; i < length; i++) {\n if (endsWith(attributes[i].name, boundAttributeSuffix)) {\n count++;\n }\n }\n while (count-- > 0) {\n // Get the template literal section leading up to the first\n // expression in this attribute\n const stringForPart = strings[partIndex];\n // Find the attribute name\n const name = lastAttributeNameRegex.exec(stringForPart)[2];\n // Find the corresponding attribute\n // All bound attributes have had a suffix added in\n // TemplateResult#getHTML to opt out of special attribute\n // handling. To look up the attribute value we also need to add\n // the suffix.\n const attributeLookupName = name.toLowerCase() + boundAttributeSuffix;\n const attributeValue = node.getAttribute(attributeLookupName);\n node.removeAttribute(attributeLookupName);\n const statics = attributeValue.split(markerRegex);\n this.parts.push({ type: 'attribute', index, name, strings: statics });\n partIndex += statics.length - 1;\n }\n }\n if (node.tagName === 'TEMPLATE') {\n stack.push(node);\n walker.currentNode = node.content;\n }\n }\n else if (node.nodeType === 3 /* Node.TEXT_NODE */) {\n const data = node.data;\n if (data.indexOf(marker) >= 0) {\n const parent = node.parentNode;\n const strings = data.split(markerRegex);\n const lastIndex = strings.length - 1;\n // Generate a new text node for each literal section\n // These nodes are also used as the markers for node parts\n for (let i = 0; i < lastIndex; i++) {\n let insert;\n let s = strings[i];\n if (s === '') {\n insert = createMarker();\n }\n else {\n const match = lastAttributeNameRegex.exec(s);\n if (match !== null && endsWith(match[2], boundAttributeSuffix)) {\n s = s.slice(0, match.index) + match[1] +\n match[2].slice(0, -boundAttributeSuffix.length) + match[3];\n }\n insert = document.createTextNode(s);\n }\n parent.insertBefore(insert, node);\n this.parts.push({ type: 'node', index: ++index });\n }\n // If there's no text, we must insert a comment to mark our place.\n // Else, we can trust it will stick around after cloning.\n if (strings[lastIndex] === '') {\n parent.insertBefore(createMarker(), node);\n nodesToRemove.push(node);\n }\n else {\n node.data = strings[lastIndex];\n }\n // We have a part for each match found\n partIndex += lastIndex;\n }\n }\n else if (node.nodeType === 8 /* Node.COMMENT_NODE */) {\n if (node.data === marker) {\n const parent = node.parentNode;\n // Add a new marker node to be the startNode of the Part if any of\n // the following are true:\n // * We don't have a previousSibling\n // * The previousSibling is already the start of a previous part\n if (node.previousSibling === null || index === lastPartIndex) {\n index++;\n parent.insertBefore(createMarker(), node);\n }\n lastPartIndex = index;\n this.parts.push({ type: 'node', index });\n // If we don't have a nextSibling, keep this node so we have an end.\n // Else, we can remove it to save future costs.\n if (node.nextSibling === null) {\n node.data = '';\n }\n else {\n nodesToRemove.push(node);\n index--;\n }\n partIndex++;\n }\n else {\n let i = -1;\n while ((i = node.data.indexOf(marker, i + 1)) !== -1) {\n // Comment node has a binding marker inside, make an inactive part\n // The binding won't work, but subsequent bindings will\n // TODO (justinfagnani): consider whether it's even worth it to\n // make bindings in comments work\n this.parts.push({ type: 'node', index: -1 });\n partIndex++;\n }\n }\n }\n }\n // Remove text binding nodes after the walk to not disturb the TreeWalker\n for (const n of nodesToRemove) {\n n.parentNode.removeChild(n);\n }\n }\n}\nconst endsWith = (str, suffix) => {\n const index = str.length - suffix.length;\n return index >= 0 && str.slice(index) === suffix;\n};\nexport const isTemplatePartActive = (part) => part.index !== -1;\n// Allows `document.createComment('')` to be renamed for a\n// small manual size-savings.\nexport const createMarker = () => document.createComment('');\n/**\n * This regex extracts the attribute name preceding an attribute-position\n * expression. It does this by matching the syntax allowed for attributes\n * against the string literal directly preceding the expression, assuming that\n * the expression is in an attribute-value position.\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#elements-attributes\n *\n * \" \\x09\\x0a\\x0c\\x0d\" are HTML space characters:\n * https://www.w3.org/TR/html5/infrastructure.html#space-characters\n *\n * \"\\0-\\x1F\\x7F-\\x9F\" are Unicode control characters, which includes every\n * space character except \" \".\n *\n * So an attribute is:\n * * The name: any character except a control character, space character, ('),\n * (\"), \">\", \"=\", or \"/\"\n * * Followed by zero or more space characters\n * * Followed by \"=\"\n * * Followed by zero or more space characters\n * * Followed by:\n * * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n * * (\") then any non-(\"), or\n * * (') then any non-(')\n */\nexport const lastAttributeNameRegex = \n// eslint-disable-next-line no-control-regex\n/([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n//# sourceMappingURL=template.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { isTemplatePartActive } from './template.js';\nconst walkerNodeFilter = 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */;\n/**\n * Removes the list of nodes from a Template safely. In addition to removing\n * nodes from the Template, the Template part indices are updated to match\n * the mutated Template DOM.\n *\n * As the template is walked the removal state is tracked and\n * part indices are adjusted as needed.\n *\n * div\n * div#1 (remove) <-- start removing (removing node is div#1)\n * div\n * div#2 (remove) <-- continue removing (removing node is still div#1)\n * div\n * div <-- stop removing since previous sibling is the removing node (div#1,\n * removed 4 nodes)\n */\nexport function removeNodesFromTemplate(template, nodesToRemove) {\n const { element: { content }, parts } = template;\n const walker = document.createTreeWalker(content, walkerNodeFilter, null, false);\n let partIndex = nextActiveIndexInTemplateParts(parts);\n let part = parts[partIndex];\n let nodeIndex = -1;\n let removeCount = 0;\n const nodesToRemoveInTemplate = [];\n let currentRemovingNode = null;\n while (walker.nextNode()) {\n nodeIndex++;\n const node = walker.currentNode;\n // End removal if stepped past the removing node\n if (node.previousSibling === currentRemovingNode) {\n currentRemovingNode = null;\n }\n // A node to remove was found in the template\n if (nodesToRemove.has(node)) {\n nodesToRemoveInTemplate.push(node);\n // Track node we're removing\n if (currentRemovingNode === null) {\n currentRemovingNode = node;\n }\n }\n // When removing, increment count by which to adjust subsequent part indices\n if (currentRemovingNode !== null) {\n removeCount++;\n }\n while (part !== undefined && part.index === nodeIndex) {\n // If part is in a removed node deactivate it by setting index to -1 or\n // adjust the index as needed.\n part.index = currentRemovingNode !== null ? -1 : part.index - removeCount;\n // go to the next active part.\n partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n part = parts[partIndex];\n }\n }\n nodesToRemoveInTemplate.forEach((n) => n.parentNode.removeChild(n));\n}\nconst countNodes = (node) => {\n let count = (node.nodeType === 11 /* Node.DOCUMENT_FRAGMENT_NODE */) ? 0 : 1;\n const walker = document.createTreeWalker(node, walkerNodeFilter, null, false);\n while (walker.nextNode()) {\n count++;\n }\n return count;\n};\nconst nextActiveIndexInTemplateParts = (parts, startIndex = -1) => {\n for (let i = startIndex + 1; i < parts.length; i++) {\n const part = parts[i];\n if (isTemplatePartActive(part)) {\n return i;\n }\n }\n return -1;\n};\n/**\n * Inserts the given node into the Template, optionally before the given\n * refNode. In addition to inserting the node into the Template, the Template\n * part indices are updated to match the mutated Template DOM.\n */\nexport function insertNodeIntoTemplate(template, node, refNode = null) {\n const { element: { content }, parts } = template;\n // If there's no refNode, then put node at end of template.\n // No part indices need to be shifted in this case.\n if (refNode === null || refNode === undefined) {\n content.appendChild(node);\n return;\n }\n const walker = document.createTreeWalker(content, walkerNodeFilter, null, false);\n let partIndex = nextActiveIndexInTemplateParts(parts);\n let insertCount = 0;\n let walkerIndex = -1;\n while (walker.nextNode()) {\n walkerIndex++;\n const walkerNode = walker.currentNode;\n if (walkerNode === refNode) {\n insertCount = countNodes(node);\n refNode.parentNode.insertBefore(node, refNode);\n }\n while (partIndex !== -1 && parts[partIndex].index === walkerIndex) {\n // If we've inserted the node, simply adjust all subsequent parts\n if (insertCount > 0) {\n while (partIndex !== -1) {\n parts[partIndex].index += insertCount;\n partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n }\n return;\n }\n partIndex = nextActiveIndexInTemplateParts(parts, partIndex);\n }\n }\n}\n//# sourceMappingURL=modify-template.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nconst directives = new WeakMap();\n/**\n * Brands a function as a directive factory function so that lit-html will call\n * the function during template rendering, rather than passing as a value.\n *\n * A _directive_ is a function that takes a Part as an argument. It has the\n * signature: `(part: Part) => void`.\n *\n * A directive _factory_ is a function that takes arguments for data and\n * configuration and returns a directive. Users of directive usually refer to\n * the directive factory as the directive. For example, \"The repeat directive\".\n *\n * Usually a template author will invoke a directive factory in their template\n * with relevant arguments, which will then return a directive function.\n *\n * Here's an example of using the `repeat()` directive factory that takes an\n * array and a function to render an item:\n *\n * ```js\n * html``\n * ```\n *\n * When `repeat` is invoked, it returns a directive function that closes over\n * `items` and the template function. When the outer template is rendered, the\n * return directive function is called with the Part for the expression.\n * `repeat` then performs it's custom logic to render multiple items.\n *\n * @param f The directive factory function. Must be a function that returns a\n * function of the signature `(part: Part) => void`. The returned function will\n * be called with the part object.\n *\n * @example\n *\n * import {directive, html} from 'lit-html';\n *\n * const immutable = directive((v) => (part) => {\n * if (part.value !== v) {\n * part.setValue(v)\n * }\n * });\n */\nexport const directive = (f) => ((...args) => {\n const d = f(...args);\n directives.set(d, true);\n return d;\n});\nexport const isDirective = (o) => {\n return typeof o === 'function' && directives.has(o);\n};\n//# sourceMappingURL=directive.js.map","/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n */\nexport const noChange = {};\n/**\n * A sentinel value that signals a NodePart to fully clear its content.\n */\nexport const nothing = {};\n//# sourceMappingURL=part.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { isCEPolyfill } from './dom.js';\nimport { isTemplatePartActive } from './template.js';\n/**\n * An instance of a `Template` that can be attached to the DOM and updated\n * with new values.\n */\nexport class TemplateInstance {\n constructor(template, processor, options) {\n this.__parts = [];\n this.template = template;\n this.processor = processor;\n this.options = options;\n }\n update(values) {\n let i = 0;\n for (const part of this.__parts) {\n if (part !== undefined) {\n part.setValue(values[i]);\n }\n i++;\n }\n for (const part of this.__parts) {\n if (part !== undefined) {\n part.commit();\n }\n }\n }\n _clone() {\n // There are a number of steps in the lifecycle of a template instance's\n // DOM fragment:\n // 1. Clone - create the instance fragment\n // 2. Adopt - adopt into the main document\n // 3. Process - find part markers and create parts\n // 4. Upgrade - upgrade custom elements\n // 5. Update - set node, attribute, property, etc., values\n // 6. Connect - connect to the document. Optional and outside of this\n // method.\n //\n // We have a few constraints on the ordering of these steps:\n // * We need to upgrade before updating, so that property values will pass\n // through any property setters.\n // * We would like to process before upgrading so that we're sure that the\n // cloned fragment is inert and not disturbed by self-modifying DOM.\n // * We want custom elements to upgrade even in disconnected fragments.\n //\n // Given these constraints, with full custom elements support we would\n // prefer the order: Clone, Process, Adopt, Upgrade, Update, Connect\n //\n // But Safari does not implement CustomElementRegistry#upgrade, so we\n // can not implement that order and still have upgrade-before-update and\n // upgrade disconnected fragments. So we instead sacrifice the\n // process-before-upgrade constraint, since in Custom Elements v1 elements\n // must not modify their light DOM in the constructor. We still have issues\n // when co-existing with CEv0 elements like Polymer 1, and with polyfills\n // that don't strictly adhere to the no-modification rule because shadow\n // DOM, which may be created in the constructor, is emulated by being placed\n // in the light DOM.\n //\n // The resulting order is on native is: Clone, Adopt, Upgrade, Process,\n // Update, Connect. document.importNode() performs Clone, Adopt, and Upgrade\n // in one step.\n //\n // The Custom Elements v1 polyfill supports upgrade(), so the order when\n // polyfilled is the more ideal: Clone, Process, Adopt, Upgrade, Update,\n // Connect.\n const fragment = isCEPolyfill ?\n this.template.element.content.cloneNode(true) :\n document.importNode(this.template.element.content, true);\n const stack = [];\n const parts = this.template.parts;\n // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be null\n const walker = document.createTreeWalker(fragment, 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */, null, false);\n let partIndex = 0;\n let nodeIndex = 0;\n let part;\n let node = walker.nextNode();\n // Loop through all the nodes and parts of a template\n while (partIndex < parts.length) {\n part = parts[partIndex];\n if (!isTemplatePartActive(part)) {\n this.__parts.push(undefined);\n partIndex++;\n continue;\n }\n // Progress the tree walker until we find our next part's node.\n // Note that multiple parts may share the same node (attribute parts\n // on a single element), so this loop may not run at all.\n while (nodeIndex < part.index) {\n nodeIndex++;\n if (node.nodeName === 'TEMPLATE') {\n stack.push(node);\n walker.currentNode = node.content;\n }\n if ((node = walker.nextNode()) === null) {\n // We've exhausted the content inside a nested template element.\n // Because we still have parts (the outer for-loop), we know:\n // - There is a template in the stack\n // - The walker will find a nextNode outside the template\n walker.currentNode = stack.pop();\n node = walker.nextNode();\n }\n }\n // We've arrived at our part's node.\n if (part.type === 'node') {\n const part = this.processor.handleTextExpression(this.options);\n part.insertAfterNode(node.previousSibling);\n this.__parts.push(part);\n }\n else {\n this.__parts.push(...this.processor.handleAttributeExpressions(node, part.name, part.strings, this.options));\n }\n partIndex++;\n }\n if (isCEPolyfill) {\n document.adoptNode(fragment);\n customElements.upgrade(fragment);\n }\n return fragment;\n }\n}\n//# sourceMappingURL=template-instance.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { reparentNodes } from './dom.js';\nimport { boundAttributeSuffix, lastAttributeNameRegex, marker, nodeMarker } from './template.js';\n/**\n * Our TrustedTypePolicy for HTML which is declared using the html template\n * tag function.\n *\n * That HTML is a developer-authored constant, and is parsed with innerHTML\n * before any untrusted expressions have been mixed in. Therefor it is\n * considered safe by construction.\n */\nconst policy = window.trustedTypes &&\n trustedTypes.createPolicy('lit-html', { createHTML: (s) => s });\nconst commentMarker = ` ${marker} `;\n/**\n * The return type of `html`, which holds a Template and the values from\n * interpolated expressions.\n */\nexport class TemplateResult {\n constructor(strings, values, type, processor) {\n this.strings = strings;\n this.values = values;\n this.type = type;\n this.processor = processor;\n }\n /**\n * Returns a string of HTML used to create a `