{"version":3,"file":"js/global.ce46ea54689aaf7d3768.js","mappings":"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","sources":["webpack://mgstarter/./node_modules/is-dom-node/dist/is-dom-node.es.js","webpack://mgstarter/./node_modules/tealight/dist/tealight.es.js","webpack://mgstarter/./node_modules/is-dom-node-list/dist/is-dom-node-list.es.js","webpack://mgstarter/./node_modules/rematrix/dist/rematrix.es.js","webpack://mgstarter/./node_modules/miniraf/dist/miniraf.es.js","webpack://mgstarter/./node_modules/scrollreveal/dist/scrollreveal.es.js","webpack://mgstarter/./node_modules/timezones-ical-library/dist/mjs/index.js","webpack://mgstarter/./node_modules/add-to-calendar-button/npm_dist/mjs/index.js","webpack://mgstarter/./js/global.js","webpack://mgstarter/./node_modules/headroom.js/dist/headroom.js","webpack://mgstarter/./node_modules/lazysizes/lazysizes.js","webpack://mgstarter/./node_modules/lazysizes/plugins/unveilhooks/ls.unveilhooks.js","webpack://mgstarter/./node_modules/magnific-popup/dist/jquery.magnific-popup.js","webpack://mgstarter/./node_modules/slick-carousel/slick/slick.js","webpack://mgstarter/external var \"jQuery\""],"sourcesContent":["/*! @license is-dom-node v1.0.4\n\n\tCopyright 2018 Fisssion LLC.\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this software and associated documentation files (the \"Software\"), to deal\n\tin the Software without restriction, including without limitation the rights\n\tto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n\tcopies of the Software, and to permit persons to whom the Software is\n\tfurnished to do so, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n\n*/\nfunction isDomNode(x) {\n\treturn typeof window.Node === 'object'\n\t\t? x instanceof window.Node\n\t\t: x !== null &&\n\t\t\t\ttypeof x === 'object' &&\n\t\t\t\ttypeof x.nodeType === 'number' &&\n\t\t\t\ttypeof x.nodeName === 'string'\n}\n\nexport default isDomNode;\n","/*! @license Tealight v0.3.6\n\n\tCopyright 2018 Fisssion LLC.\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this software and associated documentation files (the \"Software\"), to deal\n\tin the Software without restriction, including without limitation the rights\n\tto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n\tcopies of the Software, and to permit persons to whom the Software is\n\tfurnished to do so, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n\n*/\nimport isDomNode from 'is-dom-node';\nimport isDomNodeList from 'is-dom-node-list';\n\nfunction tealight(target, context) {\n if ( context === void 0 ) context = document;\n\n if (target instanceof Array) { return target.filter(isDomNode); }\n if (isDomNode(target)) { return [target]; }\n if (isDomNodeList(target)) { return Array.prototype.slice.call(target); }\n if (typeof target === \"string\") {\n try {\n var query = context.querySelectorAll(target);\n return Array.prototype.slice.call(query);\n } catch (err) {\n return [];\n }\n }\n return [];\n}\n\nexport default tealight;\n","/*! @license is-dom-node-list v1.2.1\n\n\tCopyright 2018 Fisssion LLC.\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this software and associated documentation files (the \"Software\"), to deal\n\tin the Software without restriction, including without limitation the rights\n\tto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n\tcopies of the Software, and to permit persons to whom the Software is\n\tfurnished to do so, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n\n*/\nimport isDomNode from 'is-dom-node';\n\nfunction isDomNodeList(x) {\n\tvar prototypeToString = Object.prototype.toString.call(x);\n\tvar regex = /^\\[object (HTMLCollection|NodeList|Object)\\]$/;\n\n\treturn typeof window.NodeList === 'object'\n\t\t? x instanceof window.NodeList\n\t\t: x !== null &&\n\t\t\t\ttypeof x === 'object' &&\n\t\t\t\ttypeof x.length === 'number' &&\n\t\t\t\tregex.test(prototypeToString) &&\n\t\t\t\t(x.length === 0 || isDomNode(x[0]))\n}\n\nexport default isDomNodeList;\n","/*! @license Rematrix v0.3.0\n\n\tCopyright 2018 Julian Lloyd.\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this software and associated documentation files (the \"Software\"), to deal\n\tin the Software without restriction, including without limitation the rights\n\tto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n\tcopies of the Software, and to permit persons to whom the Software is\n\tfurnished to do so, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in\n\tall copies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n\tTHE SOFTWARE.\n*/\n/**\n * @module Rematrix\n */\n\n/**\n * Transformation matrices in the browser come in two flavors:\n *\n * - `matrix` using 6 values (short)\n * - `matrix3d` using 16 values (long)\n *\n * This utility follows this [conversion guide](https://goo.gl/EJlUQ1)\n * to expand short form matrices to their equivalent long form.\n *\n * @param {array} source - Accepts both short and long form matrices.\n * @return {array}\n */\nfunction format(source) {\n\tif (source.constructor !== Array) {\n\t\tthrow new TypeError('Expected array.')\n\t}\n\tif (source.length === 16) {\n\t\treturn source\n\t}\n\tif (source.length === 6) {\n\t\tvar matrix = identity();\n\t\tmatrix[0] = source[0];\n\t\tmatrix[1] = source[1];\n\t\tmatrix[4] = source[2];\n\t\tmatrix[5] = source[3];\n\t\tmatrix[12] = source[4];\n\t\tmatrix[13] = source[5];\n\t\treturn matrix\n\t}\n\tthrow new RangeError('Expected array with either 6 or 16 values.')\n}\n\n/**\n * Returns a matrix representing no transformation. The product of any matrix\n * multiplied by the identity matrix will be the original matrix.\n *\n * > **Tip:** Similar to how `5 * 1 === 5`, where `1` is the identity.\n *\n * @return {array}\n */\nfunction identity() {\n\tvar matrix = [];\n\tfor (var i = 0; i < 16; i++) {\n\t\ti % 5 == 0 ? matrix.push(1) : matrix.push(0);\n\t}\n\treturn matrix\n}\n\n/**\n * Returns a matrix describing the inverse transformation of the source\n * matrix. The product of any matrix multiplied by its inverse will be the\n * identity matrix.\n *\n * > **Tip:** Similar to how `5 * (1/5) === 1`, where `1/5` is the inverse.\n *\n * @param {array} source - Accepts both short and long form matrices.\n * @return {array}\n */\nfunction inverse(source) {\n\tvar m = format(source);\n\n\tvar s0 = m[0] * m[5] - m[4] * m[1];\n\tvar s1 = m[0] * m[6] - m[4] * m[2];\n\tvar s2 = m[0] * m[7] - m[4] * m[3];\n\tvar s3 = m[1] * m[6] - m[5] * m[2];\n\tvar s4 = m[1] * m[7] - m[5] * m[3];\n\tvar s5 = m[2] * m[7] - m[6] * m[3];\n\n\tvar c5 = m[10] * m[15] - m[14] * m[11];\n\tvar c4 = m[9] * m[15] - m[13] * m[11];\n\tvar c3 = m[9] * m[14] - m[13] * m[10];\n\tvar c2 = m[8] * m[15] - m[12] * m[11];\n\tvar c1 = m[8] * m[14] - m[12] * m[10];\n\tvar c0 = m[8] * m[13] - m[12] * m[9];\n\n\tvar determinant = 1 / (s0 * c5 - s1 * c4 + s2 * c3 + s3 * c2 - s4 * c1 + s5 * c0);\n\n\tif (isNaN(determinant) || determinant === Infinity) {\n\t\tthrow new Error('Inverse determinant attempted to divide by zero.')\n\t}\n\n\treturn [\n\t\t(m[5] * c5 - m[6] * c4 + m[7] * c3) * determinant,\n\t\t(-m[1] * c5 + m[2] * c4 - m[3] * c3) * determinant,\n\t\t(m[13] * s5 - m[14] * s4 + m[15] * s3) * determinant,\n\t\t(-m[9] * s5 + m[10] * s4 - m[11] * s3) * determinant,\n\n\t\t(-m[4] * c5 + m[6] * c2 - m[7] * c1) * determinant,\n\t\t(m[0] * c5 - m[2] * c2 + m[3] * c1) * determinant,\n\t\t(-m[12] * s5 + m[14] * s2 - m[15] * s1) * determinant,\n\t\t(m[8] * s5 - m[10] * s2 + m[11] * s1) * determinant,\n\n\t\t(m[4] * c4 - m[5] * c2 + m[7] * c0) * determinant,\n\t\t(-m[0] * c4 + m[1] * c2 - m[3] * c0) * determinant,\n\t\t(m[12] * s4 - m[13] * s2 + m[15] * s0) * determinant,\n\t\t(-m[8] * s4 + m[9] * s2 - m[11] * s0) * determinant,\n\n\t\t(-m[4] * c3 + m[5] * c1 - m[6] * c0) * determinant,\n\t\t(m[0] * c3 - m[1] * c1 + m[2] * c0) * determinant,\n\t\t(-m[12] * s3 + m[13] * s1 - m[14] * s0) * determinant,\n\t\t(m[8] * s3 - m[9] * s1 + m[10] * s0) * determinant\n\t]\n}\n\n/**\n * Returns a 4x4 matrix describing the combined transformations\n * of both arguments.\n *\n * > **Note:** Order is very important. For example, rotating 45°\n * along the Z-axis, followed by translating 500 pixels along the\n * Y-axis... is not the same as translating 500 pixels along the\n * Y-axis, followed by rotating 45° along on the Z-axis.\n *\n * @param {array} m - Accepts both short and long form matrices.\n * @param {array} x - Accepts both short and long form matrices.\n * @return {array}\n */\nfunction multiply(m, x) {\n\tvar fm = format(m);\n\tvar fx = format(x);\n\tvar product = [];\n\n\tfor (var i = 0; i < 4; i++) {\n\t\tvar row = [fm[i], fm[i + 4], fm[i + 8], fm[i + 12]];\n\t\tfor (var j = 0; j < 4; j++) {\n\t\t\tvar k = j * 4;\n\t\t\tvar col = [fx[k], fx[k + 1], fx[k + 2], fx[k + 3]];\n\t\t\tvar result =\n\t\t\t\trow[0] * col[0] + row[1] * col[1] + row[2] * col[2] + row[3] * col[3];\n\n\t\t\tproduct[i + k] = result;\n\t\t}\n\t}\n\n\treturn product\n}\n\n/**\n * Attempts to return a 4x4 matrix describing the CSS transform\n * matrix passed in, but will return the identity matrix as a\n * fallback.\n *\n * > **Tip:** This method is used to convert a CSS matrix (retrieved as a\n * `string` from computed styles) to its equivalent array format.\n *\n * @param {string} source - `matrix` or `matrix3d` CSS Transform value.\n * @return {array}\n */\nfunction parse(source) {\n\tif (typeof source === 'string') {\n\t\tvar match = source.match(/matrix(3d)?\\(([^)]+)\\)/);\n\t\tif (match) {\n\t\t\tvar raw = match[2].split(', ').map(parseFloat);\n\t\t\treturn format(raw)\n\t\t}\n\t}\n\treturn identity()\n}\n\n/**\n * Returns a 4x4 matrix describing Z-axis rotation.\n *\n * > **Tip:** This is just an alias for `Rematrix.rotateZ` for parity with CSS\n *\n * @param {number} angle - Measured in degrees.\n * @return {array}\n */\nfunction rotate(angle) {\n\treturn rotateZ(angle)\n}\n\n/**\n * Returns a 4x4 matrix describing X-axis rotation.\n *\n * @param {number} angle - Measured in degrees.\n * @return {array}\n */\nfunction rotateX(angle) {\n\tvar theta = Math.PI / 180 * angle;\n\tvar matrix = identity();\n\n\tmatrix[5] = matrix[10] = Math.cos(theta);\n\tmatrix[6] = matrix[9] = Math.sin(theta);\n\tmatrix[9] *= -1;\n\n\treturn matrix\n}\n\n/**\n * Returns a 4x4 matrix describing Y-axis rotation.\n *\n * @param {number} angle - Measured in degrees.\n * @return {array}\n */\nfunction rotateY(angle) {\n\tvar theta = Math.PI / 180 * angle;\n\tvar matrix = identity();\n\n\tmatrix[0] = matrix[10] = Math.cos(theta);\n\tmatrix[2] = matrix[8] = Math.sin(theta);\n\tmatrix[2] *= -1;\n\n\treturn matrix\n}\n\n/**\n * Returns a 4x4 matrix describing Z-axis rotation.\n *\n * @param {number} angle - Measured in degrees.\n * @return {array}\n */\nfunction rotateZ(angle) {\n\tvar theta = Math.PI / 180 * angle;\n\tvar matrix = identity();\n\n\tmatrix[0] = matrix[5] = Math.cos(theta);\n\tmatrix[1] = matrix[4] = Math.sin(theta);\n\tmatrix[4] *= -1;\n\n\treturn matrix\n}\n\n/**\n * Returns a 4x4 matrix describing 2D scaling. The first argument\n * is used for both X and Y-axis scaling, unless an optional\n * second argument is provided to explicitly define Y-axis scaling.\n *\n * @param {number} scalar - Decimal multiplier.\n * @param {number} [scalarY] - Decimal multiplier.\n * @return {array}\n */\nfunction scale(scalar, scalarY) {\n\tvar matrix = identity();\n\n\tmatrix[0] = scalar;\n\tmatrix[5] = typeof scalarY === 'number' ? scalarY : scalar;\n\n\treturn matrix\n}\n\n/**\n * Returns a 4x4 matrix describing X-axis scaling.\n *\n * @param {number} scalar - Decimal multiplier.\n * @return {array}\n */\nfunction scaleX(scalar) {\n\tvar matrix = identity();\n\tmatrix[0] = scalar;\n\treturn matrix\n}\n\n/**\n * Returns a 4x4 matrix describing Y-axis scaling.\n *\n * @param {number} scalar - Decimal multiplier.\n * @return {array}\n */\nfunction scaleY(scalar) {\n\tvar matrix = identity();\n\tmatrix[5] = scalar;\n\treturn matrix\n}\n\n/**\n * Returns a 4x4 matrix describing Z-axis scaling.\n *\n * @param {number} scalar - Decimal multiplier.\n * @return {array}\n */\nfunction scaleZ(scalar) {\n\tvar matrix = identity();\n\tmatrix[10] = scalar;\n\treturn matrix\n}\n\n/**\n * Returns a 4x4 matrix describing shear. The first argument\n * defines X-axis shearing, and an optional second argument\n * defines Y-axis shearing.\n *\n * @param {number} angleX - Measured in degrees.\n * @param {number} [angleY] - Measured in degrees.\n * @return {array}\n */\nfunction skew(angleX, angleY) {\n\tvar thetaX = Math.PI / 180 * angleX;\n\tvar matrix = identity();\n\n\tmatrix[4] = Math.tan(thetaX);\n\n\tif (angleY) {\n\t\tvar thetaY = Math.PI / 180 * angleY;\n\t\tmatrix[1] = Math.tan(thetaY);\n\t}\n\n\treturn matrix\n}\n\n/**\n * Returns a 4x4 matrix describing X-axis shear.\n *\n * @param {number} angle - Measured in degrees.\n * @return {array}\n */\nfunction skewX(angle) {\n\tvar theta = Math.PI / 180 * angle;\n\tvar matrix = identity();\n\n\tmatrix[4] = Math.tan(theta);\n\n\treturn matrix\n}\n\n/**\n * Returns a 4x4 matrix describing Y-axis shear.\n *\n * @param {number} angle - Measured in degrees\n * @return {array}\n */\nfunction skewY(angle) {\n\tvar theta = Math.PI / 180 * angle;\n\tvar matrix = identity();\n\n\tmatrix[1] = Math.tan(theta);\n\n\treturn matrix\n}\n\n/**\n * Returns a CSS Transform property value equivalent to the source matrix.\n *\n * @param {array} source - Accepts both short and long form matrices.\n * @return {string}\n */\nfunction toString(source) {\n\treturn (\"matrix3d(\" + (format(source).join(', ')) + \")\")\n}\n\n/**\n * Returns a 4x4 matrix describing 2D translation. The first\n * argument defines X-axis translation, and an optional second\n * argument defines Y-axis translation.\n *\n * @param {number} distanceX - Measured in pixels.\n * @param {number} [distanceY] - Measured in pixels.\n * @return {array}\n */\nfunction translate(distanceX, distanceY) {\n\tvar matrix = identity();\n\tmatrix[12] = distanceX;\n\n\tif (distanceY) {\n\t\tmatrix[13] = distanceY;\n\t}\n\n\treturn matrix\n}\n\n/**\n * Returns a 4x4 matrix describing X-axis translation.\n *\n * @param {number} distance - Measured in pixels.\n * @return {array}\n */\nfunction translateX(distance) {\n\tvar matrix = identity();\n\tmatrix[12] = distance;\n\treturn matrix\n}\n\n/**\n * Returns a 4x4 matrix describing Y-axis translation.\n *\n * @param {number} distance - Measured in pixels.\n * @return {array}\n */\nfunction translateY(distance) {\n\tvar matrix = identity();\n\tmatrix[13] = distance;\n\treturn matrix\n}\n\n/**\n * Returns a 4x4 matrix describing Z-axis translation.\n *\n * @param {number} distance - Measured in pixels.\n * @return {array}\n */\nfunction translateZ(distance) {\n\tvar matrix = identity();\n\tmatrix[14] = distance;\n\treturn matrix\n}\n\nexport { format, identity, inverse, multiply, parse, rotate, rotateX, rotateY, rotateZ, scale, scaleX, scaleY, scaleZ, skew, skewX, skewY, toString, translate, translateX, translateY, translateZ };\n","/*! @license miniraf v1.0.0\n\n\tCopyright 2018 Fisssion LLC.\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this software and associated documentation files (the \"Software\"), to deal\n\tin the Software without restriction, including without limitation the rights\n\tto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n\tcopies of the Software, and to permit persons to whom the Software is\n\tfurnished to do so, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n\n*/\nvar polyfill = (function () {\n\tvar clock = Date.now();\n\n\treturn function (callback) {\n\t\tvar currentTime = Date.now();\n\t\tif (currentTime - clock > 16) {\n\t\t\tclock = currentTime;\n\t\t\tcallback(currentTime);\n\t\t} else {\n\t\t\tsetTimeout(function () { return polyfill(callback); }, 0);\n\t\t}\n\t}\n})();\n\nvar index = window.requestAnimationFrame ||\n\twindow.webkitRequestAnimationFrame ||\n\twindow.mozRequestAnimationFrame ||\n\tpolyfill;\n\nexport default index;\n","/*! @license ScrollReveal v4.0.9\n\n\tCopyright 2021 Fisssion LLC.\n\n\tLicensed under the GNU General Public License 3.0 for\n\tcompatible open source projects and non-commercial use.\n\n\tFor commercial sites, themes, projects, and applications,\n\tkeep your source code private/proprietary by purchasing\n\ta commercial license from https://scrollrevealjs.org/\n*/\nimport $ from 'tealight';\nimport { translateY, translateX, rotateX, rotateY, rotateZ, scale, parse, multiply } from 'rematrix';\nimport raf from 'miniraf';\n\nvar defaults = {\n\tdelay: 0,\n\tdistance: '0',\n\tduration: 600,\n\teasing: 'cubic-bezier(0.5, 0, 0, 1)',\n\tinterval: 0,\n\topacity: 0,\n\torigin: 'bottom',\n\trotate: {\n\t\tx: 0,\n\t\ty: 0,\n\t\tz: 0\n\t},\n\tscale: 1,\n\tcleanup: false,\n\tcontainer: document.documentElement,\n\tdesktop: true,\n\tmobile: true,\n\treset: false,\n\tuseDelay: 'always',\n\tviewFactor: 0.0,\n\tviewOffset: {\n\t\ttop: 0,\n\t\tright: 0,\n\t\tbottom: 0,\n\t\tleft: 0\n\t},\n\tafterReset: function afterReset() {},\n\tafterReveal: function afterReveal() {},\n\tbeforeReset: function beforeReset() {},\n\tbeforeReveal: function beforeReveal() {}\n};\n\nfunction failure() {\n\tdocument.documentElement.classList.remove('sr');\n\n\treturn {\n\t\tclean: function clean() {},\n\t\tdestroy: function destroy() {},\n\t\treveal: function reveal() {},\n\t\tsync: function sync() {},\n\t\tget noop() {\n\t\t\treturn true\n\t\t}\n\t}\n}\n\nfunction success() {\n\tdocument.documentElement.classList.add('sr');\n\n\tif (document.body) {\n\t\tdocument.body.style.height = '100%';\n\t} else {\n\t\tdocument.addEventListener('DOMContentLoaded', function () {\n\t\t\tdocument.body.style.height = '100%';\n\t\t});\n\t}\n}\n\nvar mount = { success: success, failure: failure };\n\nfunction isObject(x) {\n\treturn (\n\t\tx !== null &&\n\t\tx instanceof Object &&\n\t\t(x.constructor === Object ||\n\t\t\tObject.prototype.toString.call(x) === '[object Object]')\n\t)\n}\n\nfunction each(collection, callback) {\n\tif (isObject(collection)) {\n\t\tvar keys = Object.keys(collection);\n\t\treturn keys.forEach(function (key) { return callback(collection[key], key, collection); })\n\t}\n\tif (collection instanceof Array) {\n\t\treturn collection.forEach(function (item, i) { return callback(item, i, collection); })\n\t}\n\tthrow new TypeError('Expected either an array or object literal.')\n}\n\nfunction logger(message) {\n\tvar details = [], len = arguments.length - 1;\n\twhile ( len-- > 0 ) details[ len ] = arguments[ len + 1 ];\n\n\tif (this.constructor.debug && console) {\n\t\tvar report = \"%cScrollReveal: \" + message;\n\t\tdetails.forEach(function (detail) { return (report += \"\\n — \" + detail); });\n\t\tconsole.log(report, 'color: #ea654b;'); // eslint-disable-line no-console\n\t}\n}\n\nfunction rinse() {\n\tvar this$1 = this;\n\n\tvar struct = function () { return ({\n\t\tactive: [],\n\t\tstale: []\n\t}); };\n\n\tvar elementIds = struct();\n\tvar sequenceIds = struct();\n\tvar containerIds = struct();\n\n\t/**\n\t * Take stock of active element IDs.\n\t */\n\ttry {\n\t\teach($('[data-sr-id]'), function (node) {\n\t\t\tvar id = parseInt(node.getAttribute('data-sr-id'));\n\t\t\telementIds.active.push(id);\n\t\t});\n\t} catch (e) {\n\t\tthrow e\n\t}\n\t/**\n\t * Destroy stale elements.\n\t */\n\teach(this.store.elements, function (element) {\n\t\tif (elementIds.active.indexOf(element.id) === -1) {\n\t\t\telementIds.stale.push(element.id);\n\t\t}\n\t});\n\n\teach(elementIds.stale, function (staleId) { return delete this$1.store.elements[staleId]; });\n\n\t/**\n\t * Take stock of active container and sequence IDs.\n\t */\n\teach(this.store.elements, function (element) {\n\t\tif (containerIds.active.indexOf(element.containerId) === -1) {\n\t\t\tcontainerIds.active.push(element.containerId);\n\t\t}\n\t\tif (element.hasOwnProperty('sequence')) {\n\t\t\tif (sequenceIds.active.indexOf(element.sequence.id) === -1) {\n\t\t\t\tsequenceIds.active.push(element.sequence.id);\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t * Destroy stale containers.\n\t */\n\teach(this.store.containers, function (container) {\n\t\tif (containerIds.active.indexOf(container.id) === -1) {\n\t\t\tcontainerIds.stale.push(container.id);\n\t\t}\n\t});\n\n\teach(containerIds.stale, function (staleId) {\n\t\tvar stale = this$1.store.containers[staleId].node;\n\t\tstale.removeEventListener('scroll', this$1.delegate);\n\t\tstale.removeEventListener('resize', this$1.delegate);\n\t\tdelete this$1.store.containers[staleId];\n\t});\n\n\t/**\n\t * Destroy stale sequences.\n\t */\n\teach(this.store.sequences, function (sequence) {\n\t\tif (sequenceIds.active.indexOf(sequence.id) === -1) {\n\t\t\tsequenceIds.stale.push(sequence.id);\n\t\t}\n\t});\n\n\teach(sequenceIds.stale, function (staleId) { return delete this$1.store.sequences[staleId]; });\n}\n\nvar getPrefixedCssProp = (function () {\n\tvar properties = {};\n\tvar style = document.documentElement.style;\n\n\tfunction getPrefixedCssProperty(name, source) {\n\t\tif ( source === void 0 ) source = style;\n\n\t\tif (name && typeof name === 'string') {\n\t\t\tif (properties[name]) {\n\t\t\t\treturn properties[name]\n\t\t\t}\n\t\t\tif (typeof source[name] === 'string') {\n\t\t\t\treturn (properties[name] = name)\n\t\t\t}\n\t\t\tif (typeof source[(\"-webkit-\" + name)] === 'string') {\n\t\t\t\treturn (properties[name] = \"-webkit-\" + name)\n\t\t\t}\n\t\t\tthrow new RangeError((\"Unable to find \\\"\" + name + \"\\\" style property.\"))\n\t\t}\n\t\tthrow new TypeError('Expected a string.')\n\t}\n\n\tgetPrefixedCssProperty.clearCache = function () { return (properties = {}); };\n\n\treturn getPrefixedCssProperty\n})();\n\nfunction style(element) {\n\tvar computed = window.getComputedStyle(element.node);\n\tvar position = computed.position;\n\tvar config = element.config;\n\n\t/**\n\t * Generate inline styles\n\t */\n\tvar inline = {};\n\tvar inlineStyle = element.node.getAttribute('style') || '';\n\tvar inlineMatch = inlineStyle.match(/[\\w-]+\\s*:\\s*[^;]+\\s*/gi) || [];\n\n\tinline.computed = inlineMatch ? inlineMatch.map(function (m) { return m.trim(); }).join('; ') + ';' : '';\n\n\tinline.generated = inlineMatch.some(function (m) { return m.match(/visibility\\s?:\\s?visible/i); })\n\t\t? inline.computed\n\t\t: inlineMatch.concat( ['visibility: visible']).map(function (m) { return m.trim(); }).join('; ') + ';';\n\n\t/**\n\t * Generate opacity styles\n\t */\n\tvar computedOpacity = parseFloat(computed.opacity);\n\tvar configOpacity = !isNaN(parseFloat(config.opacity))\n\t\t? parseFloat(config.opacity)\n\t\t: parseFloat(computed.opacity);\n\n\tvar opacity = {\n\t\tcomputed: computedOpacity !== configOpacity ? (\"opacity: \" + computedOpacity + \";\") : '',\n\t\tgenerated: computedOpacity !== configOpacity ? (\"opacity: \" + configOpacity + \";\") : ''\n\t};\n\n\t/**\n\t * Generate transformation styles\n\t */\n\tvar transformations = [];\n\n\tif (parseFloat(config.distance)) {\n\t\tvar axis = config.origin === 'top' || config.origin === 'bottom' ? 'Y' : 'X';\n\n\t\t/**\n\t\t * Let’s make sure our our pixel distances are negative for top and left.\n\t\t * e.g. { origin: 'top', distance: '25px' } starts at `top: -25px` in CSS.\n\t\t */\n\t\tvar distance = config.distance;\n\t\tif (config.origin === 'top' || config.origin === 'left') {\n\t\t\tdistance = /^-/.test(distance) ? distance.substr(1) : (\"-\" + distance);\n\t\t}\n\n\t\tvar ref = distance.match(/(^-?\\d+\\.?\\d?)|(em$|px$|%$)/g);\n\t\tvar value = ref[0];\n\t\tvar unit = ref[1];\n\n\t\tswitch (unit) {\n\t\t\tcase 'em':\n\t\t\t\tdistance = parseInt(computed.fontSize) * value;\n\t\t\t\tbreak\n\t\t\tcase 'px':\n\t\t\t\tdistance = value;\n\t\t\t\tbreak\n\t\t\tcase '%':\n\t\t\t\t/**\n\t\t\t\t * Here we use `getBoundingClientRect` instead of\n\t\t\t\t * the existing data attached to `element.geometry`\n\t\t\t\t * because only the former includes any transformations\n\t\t\t\t * current applied to the element.\n\t\t\t\t *\n\t\t\t\t * If that behavior ends up being unintuitive, this\n\t\t\t\t * logic could instead utilize `element.geometry.height`\n\t\t\t\t * and `element.geoemetry.width` for the distance calculation\n\t\t\t\t */\n\t\t\t\tdistance =\n\t\t\t\t\taxis === 'Y'\n\t\t\t\t\t\t? (element.node.getBoundingClientRect().height * value) / 100\n\t\t\t\t\t\t: (element.node.getBoundingClientRect().width * value) / 100;\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tthrow new RangeError('Unrecognized or missing distance unit.')\n\t\t}\n\n\t\tif (axis === 'Y') {\n\t\t\ttransformations.push(translateY(distance));\n\t\t} else {\n\t\t\ttransformations.push(translateX(distance));\n\t\t}\n\t}\n\n\tif (config.rotate.x) { transformations.push(rotateX(config.rotate.x)); }\n\tif (config.rotate.y) { transformations.push(rotateY(config.rotate.y)); }\n\tif (config.rotate.z) { transformations.push(rotateZ(config.rotate.z)); }\n\tif (config.scale !== 1) {\n\t\tif (config.scale === 0) {\n\t\t\t/**\n\t\t\t * The CSS Transforms matrix interpolation specification\n\t\t\t * basically disallows transitions of non-invertible\n\t\t\t * matrixes, which means browsers won't transition\n\t\t\t * elements with zero scale.\n\t\t\t *\n\t\t\t * That’s inconvenient for the API and developer\n\t\t\t * experience, so we simply nudge their value\n\t\t\t * slightly above zero; this allows browsers\n\t\t\t * to transition our element as expected.\n\t\t\t *\n\t\t\t * `0.0002` was the smallest number\n\t\t\t * that performed across browsers.\n\t\t\t */\n\t\t\ttransformations.push(scale(0.0002));\n\t\t} else {\n\t\t\ttransformations.push(scale(config.scale));\n\t\t}\n\t}\n\n\tvar transform = {};\n\tif (transformations.length) {\n\t\ttransform.property = getPrefixedCssProp('transform');\n\t\t/**\n\t\t * The default computed transform value should be one of:\n\t\t * undefined || 'none' || 'matrix()' || 'matrix3d()'\n\t\t */\n\t\ttransform.computed = {\n\t\t\traw: computed[transform.property],\n\t\t\tmatrix: parse(computed[transform.property])\n\t\t};\n\n\t\ttransformations.unshift(transform.computed.matrix);\n\t\tvar product = transformations.reduce(multiply);\n\n\t\ttransform.generated = {\n\t\t\tinitial: ((transform.property) + \": matrix3d(\" + (product.join(', ')) + \");\"),\n\t\t\tfinal: ((transform.property) + \": matrix3d(\" + (transform.computed.matrix.join(', ')) + \");\")\n\t\t};\n\t} else {\n\t\ttransform.generated = {\n\t\t\tinitial: '',\n\t\t\tfinal: ''\n\t\t};\n\t}\n\n\t/**\n\t * Generate transition styles\n\t */\n\tvar transition = {};\n\tif (opacity.generated || transform.generated.initial) {\n\t\ttransition.property = getPrefixedCssProp('transition');\n\t\ttransition.computed = computed[transition.property];\n\t\ttransition.fragments = [];\n\n\t\tvar delay = config.delay;\n\t\tvar duration = config.duration;\n\t\tvar easing = config.easing;\n\n\t\tif (opacity.generated) {\n\t\t\ttransition.fragments.push({\n\t\t\t\tdelayed: (\"opacity \" + (duration / 1000) + \"s \" + easing + \" \" + (delay / 1000) + \"s\"),\n\t\t\t\tinstant: (\"opacity \" + (duration / 1000) + \"s \" + easing + \" 0s\")\n\t\t\t});\n\t\t}\n\n\t\tif (transform.generated.initial) {\n\t\t\ttransition.fragments.push({\n\t\t\t\tdelayed: ((transform.property) + \" \" + (duration / 1000) + \"s \" + easing + \" \" + (delay / 1000) + \"s\"),\n\t\t\t\tinstant: ((transform.property) + \" \" + (duration / 1000) + \"s \" + easing + \" 0s\")\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * The default computed transition property should be undefined, or one of:\n\t\t * '' || 'none 0s ease 0s' || 'all 0s ease 0s' || 'all 0s 0s cubic-bezier()'\n\t\t */\n\t\tvar hasCustomTransition =\n\t\t\ttransition.computed && !transition.computed.match(/all 0s|none 0s/);\n\n\t\tif (hasCustomTransition) {\n\t\t\ttransition.fragments.unshift({\n\t\t\t\tdelayed: transition.computed,\n\t\t\t\tinstant: transition.computed\n\t\t\t});\n\t\t}\n\n\t\tvar composed = transition.fragments.reduce(\n\t\t\tfunction (composition, fragment, i) {\n\t\t\t\tcomposition.delayed += i === 0 ? fragment.delayed : (\", \" + (fragment.delayed));\n\t\t\t\tcomposition.instant += i === 0 ? fragment.instant : (\", \" + (fragment.instant));\n\t\t\t\treturn composition\n\t\t\t},\n\t\t\t{\n\t\t\t\tdelayed: '',\n\t\t\t\tinstant: ''\n\t\t\t}\n\t\t);\n\n\t\ttransition.generated = {\n\t\t\tdelayed: ((transition.property) + \": \" + (composed.delayed) + \";\"),\n\t\t\tinstant: ((transition.property) + \": \" + (composed.instant) + \";\")\n\t\t};\n\t} else {\n\t\ttransition.generated = {\n\t\t\tdelayed: '',\n\t\t\tinstant: ''\n\t\t};\n\t}\n\n\treturn {\n\t\tinline: inline,\n\t\topacity: opacity,\n\t\tposition: position,\n\t\ttransform: transform,\n\t\ttransition: transition\n\t}\n}\n\n/**\n * apply a CSS string to an element using the CSSOM (element.style) rather\n * than setAttribute, which may violate the content security policy.\n *\n * @param {Node} [el] Element to receive styles.\n * @param {string} [declaration] Styles to apply.\n */\nfunction applyStyle (el, declaration) {\n\tdeclaration.split(';').forEach(function (pair) {\n\t\tvar ref = pair.split(':');\n\t\tvar property = ref[0];\n\t\tvar value = ref.slice(1);\n\t\tif (property && value) {\n\t\t\tel.style[property.trim()] = value.join(':');\n\t\t}\n\t});\n}\n\nfunction clean(target) {\n\tvar this$1 = this;\n\n\tvar dirty;\n\ttry {\n\t\teach($(target), function (node) {\n\t\t\tvar id = node.getAttribute('data-sr-id');\n\t\t\tif (id !== null) {\n\t\t\t\tdirty = true;\n\t\t\t\tvar element = this$1.store.elements[id];\n\t\t\t\tif (element.callbackTimer) {\n\t\t\t\t\twindow.clearTimeout(element.callbackTimer.clock);\n\t\t\t\t}\n\t\t\t\tapplyStyle(element.node, element.styles.inline.generated);\n\t\t\t\tnode.removeAttribute('data-sr-id');\n\t\t\t\tdelete this$1.store.elements[id];\n\t\t\t}\n\t\t});\n\t} catch (e) {\n\t\treturn logger.call(this, 'Clean failed.', e.message)\n\t}\n\n\tif (dirty) {\n\t\ttry {\n\t\t\trinse.call(this);\n\t\t} catch (e) {\n\t\t\treturn logger.call(this, 'Clean failed.', e.message)\n\t\t}\n\t}\n}\n\nfunction destroy() {\n\tvar this$1 = this;\n\n\t/**\n\t * Remove all generated styles and element ids\n\t */\n\teach(this.store.elements, function (element) {\n\t\tapplyStyle(element.node, element.styles.inline.generated);\n\t\telement.node.removeAttribute('data-sr-id');\n\t});\n\n\t/**\n\t * Remove all event listeners.\n\t */\n\teach(this.store.containers, function (container) {\n\t\tvar target =\n\t\t\tcontainer.node === document.documentElement ? window : container.node;\n\t\ttarget.removeEventListener('scroll', this$1.delegate);\n\t\ttarget.removeEventListener('resize', this$1.delegate);\n\t});\n\n\t/**\n\t * Clear all data from the store\n\t */\n\tthis.store = {\n\t\tcontainers: {},\n\t\telements: {},\n\t\thistory: [],\n\t\tsequences: {}\n\t};\n}\n\nfunction deepAssign(target) {\n\tvar sources = [], len = arguments.length - 1;\n\twhile ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n\tif (isObject(target)) {\n\t\teach(sources, function (source) {\n\t\t\teach(source, function (data, key) {\n\t\t\t\tif (isObject(data)) {\n\t\t\t\t\tif (!target[key] || !isObject(target[key])) {\n\t\t\t\t\t\ttarget[key] = {};\n\t\t\t\t\t}\n\t\t\t\t\tdeepAssign(target[key], data);\n\t\t\t\t} else {\n\t\t\t\t\ttarget[key] = data;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn target\n\t} else {\n\t\tthrow new TypeError('Target must be an object literal.')\n\t}\n}\n\nfunction isMobile(agent) {\n\tif ( agent === void 0 ) agent = navigator.userAgent;\n\n\treturn /Android|iPhone|iPad|iPod/i.test(agent)\n}\n\nvar nextUniqueId = (function () {\n\tvar uid = 0;\n\treturn function () { return uid++; }\n})();\n\nfunction initialize() {\n\tvar this$1 = this;\n\n\trinse.call(this);\n\n\teach(this.store.elements, function (element) {\n\t\tvar styles = [element.styles.inline.generated];\n\n\t\tif (element.visible) {\n\t\t\tstyles.push(element.styles.opacity.computed);\n\t\t\tstyles.push(element.styles.transform.generated.final);\n\t\t\telement.revealed = true;\n\t\t} else {\n\t\t\tstyles.push(element.styles.opacity.generated);\n\t\t\tstyles.push(element.styles.transform.generated.initial);\n\t\t\telement.revealed = false;\n\t\t}\n\n\t\tapplyStyle(element.node, styles.filter(function (s) { return s !== ''; }).join(' '));\n\t});\n\n\teach(this.store.containers, function (container) {\n\t\tvar target =\n\t\t\tcontainer.node === document.documentElement ? window : container.node;\n\t\ttarget.addEventListener('scroll', this$1.delegate);\n\t\ttarget.addEventListener('resize', this$1.delegate);\n\t});\n\n\t/**\n\t * Manually invoke delegate once to capture\n\t * element and container dimensions, container\n\t * scroll position, and trigger any valid reveals\n\t */\n\tthis.delegate();\n\n\t/**\n\t * Wipe any existing `setTimeout` now\n\t * that initialization has completed.\n\t */\n\tthis.initTimeout = null;\n}\n\nfunction animate(element, force) {\n\tif ( force === void 0 ) force = {};\n\n\tvar pristine = force.pristine || this.pristine;\n\tvar delayed =\n\t\telement.config.useDelay === 'always' ||\n\t\t(element.config.useDelay === 'onload' && pristine) ||\n\t\t(element.config.useDelay === 'once' && !element.seen);\n\n\tvar shouldReveal = element.visible && !element.revealed;\n\tvar shouldReset = !element.visible && element.revealed && element.config.reset;\n\n\tif (force.reveal || shouldReveal) {\n\t\treturn triggerReveal.call(this, element, delayed)\n\t}\n\n\tif (force.reset || shouldReset) {\n\t\treturn triggerReset.call(this, element)\n\t}\n}\n\nfunction triggerReveal(element, delayed) {\n\tvar styles = [\n\t\telement.styles.inline.generated,\n\t\telement.styles.opacity.computed,\n\t\telement.styles.transform.generated.final\n\t];\n\tif (delayed) {\n\t\tstyles.push(element.styles.transition.generated.delayed);\n\t} else {\n\t\tstyles.push(element.styles.transition.generated.instant);\n\t}\n\telement.revealed = element.seen = true;\n\tapplyStyle(element.node, styles.filter(function (s) { return s !== ''; }).join(' '));\n\tregisterCallbacks.call(this, element, delayed);\n}\n\nfunction triggerReset(element) {\n\tvar styles = [\n\t\telement.styles.inline.generated,\n\t\telement.styles.opacity.generated,\n\t\telement.styles.transform.generated.initial,\n\t\telement.styles.transition.generated.instant\n\t];\n\telement.revealed = false;\n\tapplyStyle(element.node, styles.filter(function (s) { return s !== ''; }).join(' '));\n\tregisterCallbacks.call(this, element);\n}\n\nfunction registerCallbacks(element, isDelayed) {\n\tvar this$1 = this;\n\n\tvar duration = isDelayed\n\t\t? element.config.duration + element.config.delay\n\t\t: element.config.duration;\n\n\tvar beforeCallback = element.revealed\n\t\t? element.config.beforeReveal\n\t\t: element.config.beforeReset;\n\n\tvar afterCallback = element.revealed\n\t\t? element.config.afterReveal\n\t\t: element.config.afterReset;\n\n\tvar elapsed = 0;\n\tif (element.callbackTimer) {\n\t\telapsed = Date.now() - element.callbackTimer.start;\n\t\twindow.clearTimeout(element.callbackTimer.clock);\n\t}\n\n\tbeforeCallback(element.node);\n\n\telement.callbackTimer = {\n\t\tstart: Date.now(),\n\t\tclock: window.setTimeout(function () {\n\t\t\tafterCallback(element.node);\n\t\t\telement.callbackTimer = null;\n\t\t\tif (element.revealed && !element.config.reset && element.config.cleanup) {\n\t\t\t\tclean.call(this$1, element.node);\n\t\t\t}\n\t\t}, duration - elapsed)\n\t};\n}\n\nfunction sequence(element, pristine) {\n\tif ( pristine === void 0 ) pristine = this.pristine;\n\n\t/**\n\t * We first check if the element should reset.\n\t */\n\tif (!element.visible && element.revealed && element.config.reset) {\n\t\treturn animate.call(this, element, { reset: true })\n\t}\n\n\tvar seq = this.store.sequences[element.sequence.id];\n\tvar i = element.sequence.index;\n\n\tif (seq) {\n\t\tvar visible = new SequenceModel(seq, 'visible', this.store);\n\t\tvar revealed = new SequenceModel(seq, 'revealed', this.store);\n\n\t\tseq.models = { visible: visible, revealed: revealed };\n\n\t\t/**\n\t\t * If the sequence has no revealed members,\n\t\t * then we reveal the first visible element\n\t\t * within that sequence.\n\t\t *\n\t\t * The sequence then cues a recursive call\n\t\t * in both directions.\n\t\t */\n\t\tif (!revealed.body.length) {\n\t\t\tvar nextId = seq.members[visible.body[0]];\n\t\t\tvar nextElement = this.store.elements[nextId];\n\n\t\t\tif (nextElement) {\n\t\t\t\tcue.call(this, seq, visible.body[0], -1, pristine);\n\t\t\t\tcue.call(this, seq, visible.body[0], +1, pristine);\n\t\t\t\treturn animate.call(this, nextElement, { reveal: true, pristine: pristine })\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * If our element isn’t resetting, we check the\n\t\t * element sequence index against the head, and\n\t\t * then the foot of the sequence.\n\t\t */\n\t\tif (\n\t\t\t!seq.blocked.head &&\n\t\t\ti === [].concat( revealed.head ).pop() &&\n\t\t\ti >= [].concat( visible.body ).shift()\n\t\t) {\n\t\t\tcue.call(this, seq, i, -1, pristine);\n\t\t\treturn animate.call(this, element, { reveal: true, pristine: pristine })\n\t\t}\n\n\t\tif (\n\t\t\t!seq.blocked.foot &&\n\t\t\ti === [].concat( revealed.foot ).shift() &&\n\t\t\ti <= [].concat( visible.body ).pop()\n\t\t) {\n\t\t\tcue.call(this, seq, i, +1, pristine);\n\t\t\treturn animate.call(this, element, { reveal: true, pristine: pristine })\n\t\t}\n\t}\n}\n\nfunction Sequence(interval) {\n\tvar i = Math.abs(interval);\n\tif (!isNaN(i)) {\n\t\tthis.id = nextUniqueId();\n\t\tthis.interval = Math.max(i, 16);\n\t\tthis.members = [];\n\t\tthis.models = {};\n\t\tthis.blocked = {\n\t\t\thead: false,\n\t\t\tfoot: false\n\t\t};\n\t} else {\n\t\tthrow new RangeError('Invalid sequence interval.')\n\t}\n}\n\nfunction SequenceModel(seq, prop, store) {\n\tvar this$1 = this;\n\n\tthis.head = [];\n\tthis.body = [];\n\tthis.foot = [];\n\n\teach(seq.members, function (id, index) {\n\t\tvar element = store.elements[id];\n\t\tif (element && element[prop]) {\n\t\t\tthis$1.body.push(index);\n\t\t}\n\t});\n\n\tif (this.body.length) {\n\t\teach(seq.members, function (id, index) {\n\t\t\tvar element = store.elements[id];\n\t\t\tif (element && !element[prop]) {\n\t\t\t\tif (index < this$1.body[0]) {\n\t\t\t\t\tthis$1.head.push(index);\n\t\t\t\t} else {\n\t\t\t\t\tthis$1.foot.push(index);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction cue(seq, i, direction, pristine) {\n\tvar this$1 = this;\n\n\tvar blocked = ['head', null, 'foot'][1 + direction];\n\tvar nextId = seq.members[i + direction];\n\tvar nextElement = this.store.elements[nextId];\n\n\tseq.blocked[blocked] = true;\n\n\tsetTimeout(function () {\n\t\tseq.blocked[blocked] = false;\n\t\tif (nextElement) {\n\t\t\tsequence.call(this$1, nextElement, pristine);\n\t\t}\n\t}, seq.interval);\n}\n\nfunction reveal(target, options, syncing) {\n\tvar this$1 = this;\n\tif ( options === void 0 ) options = {};\n\tif ( syncing === void 0 ) syncing = false;\n\n\tvar containerBuffer = [];\n\tvar sequence$$1;\n\tvar interval = options.interval || defaults.interval;\n\n\ttry {\n\t\tif (interval) {\n\t\t\tsequence$$1 = new Sequence(interval);\n\t\t}\n\n\t\tvar nodes = $(target);\n\t\tif (!nodes.length) {\n\t\t\tthrow new Error('Invalid reveal target.')\n\t\t}\n\n\t\tvar elements = nodes.reduce(function (elementBuffer, elementNode) {\n\t\t\tvar element = {};\n\t\t\tvar existingId = elementNode.getAttribute('data-sr-id');\n\n\t\t\tif (existingId) {\n\t\t\t\tdeepAssign(element, this$1.store.elements[existingId]);\n\n\t\t\t\t/**\n\t\t\t\t * In order to prevent previously generated styles\n\t\t\t\t * from throwing off the new styles, the style tag\n\t\t\t\t * has to be reverted to its pre-reveal state.\n\t\t\t\t */\n\t\t\t\tapplyStyle(element.node, element.styles.inline.computed);\n\t\t\t} else {\n\t\t\t\telement.id = nextUniqueId();\n\t\t\t\telement.node = elementNode;\n\t\t\t\telement.seen = false;\n\t\t\t\telement.revealed = false;\n\t\t\t\telement.visible = false;\n\t\t\t}\n\n\t\t\tvar config = deepAssign({}, element.config || this$1.defaults, options);\n\n\t\t\tif ((!config.mobile && isMobile()) || (!config.desktop && !isMobile())) {\n\t\t\t\tif (existingId) {\n\t\t\t\t\tclean.call(this$1, element);\n\t\t\t\t}\n\t\t\t\treturn elementBuffer // skip elements that are disabled\n\t\t\t}\n\n\t\t\tvar containerNode = $(config.container)[0];\n\t\t\tif (!containerNode) {\n\t\t\t\tthrow new Error('Invalid container.')\n\t\t\t}\n\t\t\tif (!containerNode.contains(elementNode)) {\n\t\t\t\treturn elementBuffer // skip elements found outside the container\n\t\t\t}\n\n\t\t\tvar containerId;\n\t\t\t{\n\t\t\t\tcontainerId = getContainerId(\n\t\t\t\t\tcontainerNode,\n\t\t\t\t\tcontainerBuffer,\n\t\t\t\t\tthis$1.store.containers\n\t\t\t\t);\n\t\t\t\tif (containerId === null) {\n\t\t\t\t\tcontainerId = nextUniqueId();\n\t\t\t\t\tcontainerBuffer.push({ id: containerId, node: containerNode });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.config = config;\n\t\t\telement.containerId = containerId;\n\t\t\telement.styles = style(element);\n\n\t\t\tif (sequence$$1) {\n\t\t\t\telement.sequence = {\n\t\t\t\t\tid: sequence$$1.id,\n\t\t\t\t\tindex: sequence$$1.members.length\n\t\t\t\t};\n\t\t\t\tsequence$$1.members.push(element.id);\n\t\t\t}\n\n\t\t\telementBuffer.push(element);\n\t\t\treturn elementBuffer\n\t\t}, []);\n\n\t\t/**\n\t\t * Modifying the DOM via setAttribute needs to be handled\n\t\t * separately from reading computed styles in the map above\n\t\t * for the browser to batch DOM changes (limiting reflows)\n\t\t */\n\t\teach(elements, function (element) {\n\t\t\tthis$1.store.elements[element.id] = element;\n\t\t\telement.node.setAttribute('data-sr-id', element.id);\n\t\t});\n\t} catch (e) {\n\t\treturn logger.call(this, 'Reveal failed.', e.message)\n\t}\n\n\t/**\n\t * Now that element set-up is complete...\n\t * Let’s commit any container and sequence data we have to the store.\n\t */\n\teach(containerBuffer, function (container) {\n\t\tthis$1.store.containers[container.id] = {\n\t\t\tid: container.id,\n\t\t\tnode: container.node\n\t\t};\n\t});\n\tif (sequence$$1) {\n\t\tthis.store.sequences[sequence$$1.id] = sequence$$1;\n\t}\n\n\t/**\n\t * If reveal wasn't invoked by sync, we want to\n\t * make sure to add this call to the history.\n\t */\n\tif (syncing !== true) {\n\t\tthis.store.history.push({ target: target, options: options });\n\n\t\t/**\n\t\t * Push initialization to the event queue, giving\n\t\t * multiple reveal calls time to be interpreted.\n\t\t */\n\t\tif (this.initTimeout) {\n\t\t\twindow.clearTimeout(this.initTimeout);\n\t\t}\n\t\tthis.initTimeout = window.setTimeout(initialize.bind(this), 0);\n\t}\n}\n\nfunction getContainerId(node) {\n\tvar collections = [], len = arguments.length - 1;\n\twhile ( len-- > 0 ) collections[ len ] = arguments[ len + 1 ];\n\n\tvar id = null;\n\teach(collections, function (collection) {\n\t\teach(collection, function (container) {\n\t\t\tif (id === null && container.node === node) {\n\t\t\t\tid = container.id;\n\t\t\t}\n\t\t});\n\t});\n\treturn id\n}\n\n/**\n * Re-runs the reveal method for each record stored in history,\n * for capturing new content asynchronously loaded into the DOM.\n */\nfunction sync() {\n\tvar this$1 = this;\n\n\teach(this.store.history, function (record) {\n\t\treveal.call(this$1, record.target, record.options, true);\n\t});\n\n\tinitialize.call(this);\n}\n\nvar polyfill = function (x) { return (x > 0) - (x < 0) || +x; };\nvar mathSign = Math.sign || polyfill;\n\nfunction getGeometry(target, isContainer) {\n\t/**\n\t * We want to ignore padding and scrollbars for container elements.\n\t * More information here: https://goo.gl/vOZpbz\n\t */\n\tvar height = isContainer ? target.node.clientHeight : target.node.offsetHeight;\n\tvar width = isContainer ? target.node.clientWidth : target.node.offsetWidth;\n\n\tvar offsetTop = 0;\n\tvar offsetLeft = 0;\n\tvar node = target.node;\n\n\tdo {\n\t\tif (!isNaN(node.offsetTop)) {\n\t\t\toffsetTop += node.offsetTop;\n\t\t}\n\t\tif (!isNaN(node.offsetLeft)) {\n\t\t\toffsetLeft += node.offsetLeft;\n\t\t}\n\t\tnode = node.offsetParent;\n\t} while (node)\n\n\treturn {\n\t\tbounds: {\n\t\t\ttop: offsetTop,\n\t\t\tright: offsetLeft + width,\n\t\t\tbottom: offsetTop + height,\n\t\t\tleft: offsetLeft\n\t\t},\n\t\theight: height,\n\t\twidth: width\n\t}\n}\n\nfunction getScrolled(container) {\n\tvar top, left;\n\tif (container.node === document.documentElement) {\n\t\ttop = window.pageYOffset;\n\t\tleft = window.pageXOffset;\n\t} else {\n\t\ttop = container.node.scrollTop;\n\t\tleft = container.node.scrollLeft;\n\t}\n\treturn { top: top, left: left }\n}\n\nfunction isElementVisible(element) {\n\tif ( element === void 0 ) element = {};\n\n\tvar container = this.store.containers[element.containerId];\n\tif (!container) { return }\n\n\tvar viewFactor = Math.max(0, Math.min(1, element.config.viewFactor));\n\tvar viewOffset = element.config.viewOffset;\n\n\tvar elementBounds = {\n\t\ttop: element.geometry.bounds.top + element.geometry.height * viewFactor,\n\t\tright: element.geometry.bounds.right - element.geometry.width * viewFactor,\n\t\tbottom: element.geometry.bounds.bottom - element.geometry.height * viewFactor,\n\t\tleft: element.geometry.bounds.left + element.geometry.width * viewFactor\n\t};\n\n\tvar containerBounds = {\n\t\ttop: container.geometry.bounds.top + container.scroll.top + viewOffset.top,\n\t\tright: container.geometry.bounds.right + container.scroll.left - viewOffset.right,\n\t\tbottom:\n\t\t\tcontainer.geometry.bounds.bottom + container.scroll.top - viewOffset.bottom,\n\t\tleft: container.geometry.bounds.left + container.scroll.left + viewOffset.left\n\t};\n\n\treturn (\n\t\t(elementBounds.top < containerBounds.bottom &&\n\t\t\telementBounds.right > containerBounds.left &&\n\t\t\telementBounds.bottom > containerBounds.top &&\n\t\t\telementBounds.left < containerBounds.right) ||\n\t\telement.styles.position === 'fixed'\n\t)\n}\n\nfunction delegate(\n\tevent,\n\telements\n) {\n\tvar this$1 = this;\n\tif ( event === void 0 ) event = { type: 'init' };\n\tif ( elements === void 0 ) elements = this.store.elements;\n\n\traf(function () {\n\t\tvar stale = event.type === 'init' || event.type === 'resize';\n\n\t\teach(this$1.store.containers, function (container) {\n\t\t\tif (stale) {\n\t\t\t\tcontainer.geometry = getGeometry.call(this$1, container, true);\n\t\t\t}\n\t\t\tvar scroll = getScrolled.call(this$1, container);\n\t\t\tif (container.scroll) {\n\t\t\t\tcontainer.direction = {\n\t\t\t\t\tx: mathSign(scroll.left - container.scroll.left),\n\t\t\t\t\ty: mathSign(scroll.top - container.scroll.top)\n\t\t\t\t};\n\t\t\t}\n\t\t\tcontainer.scroll = scroll;\n\t\t});\n\n\t\t/**\n\t\t * Due to how the sequencer is implemented, it’s\n\t\t * important that we update the state of all\n\t\t * elements, before any animation logic is\n\t\t * evaluated (in the second loop below).\n\t\t */\n\t\teach(elements, function (element) {\n\t\t\tif (stale || element.geometry === undefined) {\n\t\t\t\telement.geometry = getGeometry.call(this$1, element);\n\t\t\t}\n\t\t\telement.visible = isElementVisible.call(this$1, element);\n\t\t});\n\n\t\teach(elements, function (element) {\n\t\t\tif (element.sequence) {\n\t\t\t\tsequence.call(this$1, element);\n\t\t\t} else {\n\t\t\t\tanimate.call(this$1, element);\n\t\t\t}\n\t\t});\n\n\t\tthis$1.pristine = false;\n\t});\n}\n\nfunction isTransformSupported() {\n\tvar style = document.documentElement.style;\n\treturn 'transform' in style || 'WebkitTransform' in style\n}\n\nfunction isTransitionSupported() {\n\tvar style = document.documentElement.style;\n\treturn 'transition' in style || 'WebkitTransition' in style\n}\n\nvar version = \"4.0.9\";\n\nvar boundDelegate;\nvar boundDestroy;\nvar boundReveal;\nvar boundClean;\nvar boundSync;\nvar config;\nvar debug;\nvar instance;\n\nfunction ScrollReveal(options) {\n\tif ( options === void 0 ) options = {};\n\n\tvar invokedWithoutNew =\n\t\ttypeof this === 'undefined' ||\n\t\tObject.getPrototypeOf(this) !== ScrollReveal.prototype;\n\n\tif (invokedWithoutNew) {\n\t\treturn new ScrollReveal(options)\n\t}\n\n\tif (!ScrollReveal.isSupported()) {\n\t\tlogger.call(this, 'Instantiation failed.', 'This browser is not supported.');\n\t\treturn mount.failure()\n\t}\n\n\tvar buffer;\n\ttry {\n\t\tbuffer = config\n\t\t\t? deepAssign({}, config, options)\n\t\t\t: deepAssign({}, defaults, options);\n\t} catch (e) {\n\t\tlogger.call(this, 'Invalid configuration.', e.message);\n\t\treturn mount.failure()\n\t}\n\n\ttry {\n\t\tvar container = $(buffer.container)[0];\n\t\tif (!container) {\n\t\t\tthrow new Error('Invalid container.')\n\t\t}\n\t} catch (e) {\n\t\tlogger.call(this, e.message);\n\t\treturn mount.failure()\n\t}\n\n\tconfig = buffer;\n\n\tif ((!config.mobile && isMobile()) || (!config.desktop && !isMobile())) {\n\t\tlogger.call(\n\t\t\tthis,\n\t\t\t'This device is disabled.',\n\t\t\t(\"desktop: \" + (config.desktop)),\n\t\t\t(\"mobile: \" + (config.mobile))\n\t\t);\n\t\treturn mount.failure()\n\t}\n\n\tmount.success();\n\n\tthis.store = {\n\t\tcontainers: {},\n\t\telements: {},\n\t\thistory: [],\n\t\tsequences: {}\n\t};\n\n\tthis.pristine = true;\n\n\tboundDelegate = boundDelegate || delegate.bind(this);\n\tboundDestroy = boundDestroy || destroy.bind(this);\n\tboundReveal = boundReveal || reveal.bind(this);\n\tboundClean = boundClean || clean.bind(this);\n\tboundSync = boundSync || sync.bind(this);\n\n\tObject.defineProperty(this, 'delegate', { get: function () { return boundDelegate; } });\n\tObject.defineProperty(this, 'destroy', { get: function () { return boundDestroy; } });\n\tObject.defineProperty(this, 'reveal', { get: function () { return boundReveal; } });\n\tObject.defineProperty(this, 'clean', { get: function () { return boundClean; } });\n\tObject.defineProperty(this, 'sync', { get: function () { return boundSync; } });\n\n\tObject.defineProperty(this, 'defaults', { get: function () { return config; } });\n\tObject.defineProperty(this, 'version', { get: function () { return version; } });\n\tObject.defineProperty(this, 'noop', { get: function () { return false; } });\n\n\treturn instance ? instance : (instance = this)\n}\n\nScrollReveal.isSupported = function () { return isTransformSupported() && isTransitionSupported(); };\n\nObject.defineProperty(ScrollReveal, 'debug', {\n\tget: function () { return debug || false; },\n\tset: function (value) { return (debug = typeof value === 'boolean' ? value : debug); }\n});\n\nScrollReveal();\n\nexport default ScrollReveal;\n","/*!\n * @preserve\n *\n * ++++++++++++++++++++++++++++++++++++++\n * Add to Calendar TimeZones iCal Library\n * ++++++++++++++++++++++++++++++++++++++\n *\n * Version: 1.7.0\n * Creator: Jens Kuerschner (https://jenskuerschner.de)\n * Project: https://github.com/add2cal/timezones-ical-library\n * License: Apache-2.0\n *\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst tzlibVersion = '1.7.0';\nconst tzlibZonesDB = {\n Africa: {\n Abidjan: ['', 0],\n Accra: ['Africa/Abidjan', 0],\n Addis_Ababa: ['Africa/Nairobi', 1],\n Algiers: ['', 2],\n Asmara: ['Africa/Nairobi', 1],\n Asmera: ['Africa/Nairobi', 1],\n Bamako: ['Africa/Abidjan', 0],\n Bangui: ['Africa/Lagos', 3],\n Banjul: ['Africa/Abidjan', 0],\n Bissau: ['', 0],\n Blantyre: ['Africa/Maputo', 4],\n Brazzaville: ['Africa/Lagos', 3],\n Bujumbura: ['Africa/Maputo', 4],\n Cairo: ['', 5],\n Casablanca: ['', 6],\n Ceuta: ['', 7],\n Conakry: ['Africa/Abidjan', 0],\n Dakar: ['Africa/Abidjan', 0],\n Dar_es_Salaam: ['Africa/Nairobi', 1],\n Djibouti: ['Africa/Nairobi', 1],\n Douala: ['Africa/Lagos', 3],\n El_Aaiun: ['', 6],\n Freetown: ['Africa/Abidjan', 0],\n Gaborone: ['Africa/Maputo', 4],\n Harare: ['Africa/Maputo', 4],\n Johannesburg: ['', 8],\n Juba: ['', 4],\n Kampala: ['Africa/Nairobi', 1],\n Khartoum: ['', 4],\n Kigali: ['Africa/Maputo', 4],\n Kinshasa: ['Africa/Lagos', 3],\n Lagos: ['', 3],\n Libreville: ['Africa/Lagos', 3],\n Lome: ['Africa/Abidjan', 0],\n Luanda: ['Africa/Lagos', 3],\n Lubumbashi: ['Africa/Maputo', 4],\n Lusaka: ['Africa/Maputo', 4],\n Malabo: ['Africa/Lagos', 3],\n Maputo: ['', 4],\n Maseru: ['Africa/Johannesburg', 8],\n Mbabane: ['Africa/Johannesburg', 8],\n Mogadishu: ['Africa/Nairobi', 1],\n Monrovia: ['', 0],\n Nairobi: ['', 1],\n Ndjamena: ['', 3],\n Niamey: ['Africa/Lagos', 3],\n Nouakchott: ['Africa/Abidjan', 0],\n Ouagadougou: ['Africa/Abidjan', 0],\n 'Porto-Novo': ['Africa/Lagos', 3],\n Sao_Tome: ['', 0],\n Timbuktu: ['Africa/Abidjan', 0],\n Tripoli: ['', 9],\n Tunis: ['', 2],\n Windhoek: ['', 4],\n },\n America: {\n Adak: ['', 10],\n Anchorage: ['', 11],\n Anguilla: ['America/Puerto_Rico', 12],\n Antigua: ['America/Puerto_Rico', 12],\n Araguaina: ['', 13],\n Argentina: {\n Buenos_Aires: ['', 13],\n Catamarca: ['', 13],\n ComodRivadavia: ['America/Argentina/Catamarca', 13],\n Cordoba: ['', 13],\n Jujuy: ['', 13],\n La_Rioja: ['', 13],\n Mendoza: ['', 13],\n Rio_Gallegos: ['', 13],\n Salta: ['', 13],\n San_Juan: ['', 13],\n San_Luis: ['', 13],\n Tucuman: ['', 13],\n Ushuaia: ['', 13],\n },\n Aruba: ['America/Puerto_Rico', 12],\n Asuncion: ['', 14],\n Atikokan: ['America/Panama', 15],\n Atka: ['America/Adak', 10],\n Bahia_Banderas: ['', 16],\n Bahia: ['', 13],\n Barbados: ['', 12],\n Belem: ['', 13],\n Belize: ['', 16],\n 'Blanc-Sablon': ['America/Puerto_Rico', 12],\n Boa_Vista: ['', 17],\n Bogota: ['', 18],\n Boise: ['', 19],\n Buenos_Aires: ['America/Argentina/Buenos_Aires', 13],\n Cambridge_Bay: ['', 19],\n Campo_Grande: ['', 17],\n Cancun: ['', 15],\n Caracas: ['', 17],\n Catamarca: ['America/Argentina/Catamarca', 13],\n Cayenne: ['', 13],\n Cayman: ['America/Panama', 15],\n Chicago: ['', 20],\n Chihuahua: ['', 16],\n Ciudad_Juarez: ['', 19],\n Coral_Harbour: ['America/Panama', 15],\n Cordoba: ['America/Argentina/Cordoba', 13],\n Costa_Rica: ['', 16],\n Creston: ['America/Phoenix', 21],\n Cuiaba: ['', 17],\n Curacao: ['America/Puerto_Rico', 12],\n Danmarkshavn: ['', 0],\n Dawson_Creek: ['', 21],\n Dawson: ['', 21],\n Denver: ['', 19],\n Detroit: ['', 22],\n Dominica: ['America/Puerto_Rico', 12],\n Edmonton: ['', 19],\n Eirunepe: ['', 18],\n El_Salvador: ['', 16],\n Ensenada: ['America/Tijuana', 23],\n Fort_Nelson: ['', 21],\n Fort_Wayne: ['America/Indiana/Indianapolis', 22],\n Fortaleza: ['', 13],\n Glace_Bay: ['', 24],\n Godthab: ['America/Nuuk', 25],\n Goose_Bay: ['', 26],\n Grand_Turk: ['', 27],\n Grenada: ['America/Puerto_Rico', 12],\n Guadeloupe: ['America/Puerto_Rico', 12],\n Guatemala: ['', 16],\n Guayaquil: ['', 18],\n Guyana: ['', 17],\n Halifax: ['', 24],\n Havana: ['', 28],\n Hermosillo: ['', 21],\n Indiana: {\n Indianapolis: ['', 22],\n Knox: ['', 20],\n Marengo: ['', 22],\n Petersburg: ['', 22],\n Tell_City: ['', 20],\n Vevay: ['', 22],\n Vincennes: ['', 22],\n Winamac: ['', 27],\n },\n Indianapolis: ['America/Indiana/Indianapolis', 22],\n Inuvik: ['', 19],\n Iqaluit: ['', 22],\n Jamaica: ['', 15],\n Jujuy: ['America/Argentina/Jujuy', 13],\n Juneau: ['', 11],\n Kentucky: { Louisville: ['', 22], Monticello: ['', 22] },\n Knox_IN: ['America/Indiana/Knox', 20],\n Kralendijk: ['America/Puerto_Rico', 12],\n La_Paz: ['', 17],\n Lima: ['', 18],\n Los_Angeles: ['', 23],\n Louisville: ['America/Kentucky/Louisville', 22],\n Lower_Princes: ['America/Puerto_Rico', 12],\n Maceio: ['', 13],\n Managua: ['', 16],\n Manaus: ['', 17],\n Marigot: ['America/Puerto_Rico', 12],\n Martinique: ['', 12],\n Matamoros: ['', 20],\n Mazatlan: ['', 21],\n Mendoza: ['America/Argentina/Mendoza', 13],\n Menominee: ['', 20],\n Merida: ['', 16],\n Metlakatla: ['', 11],\n Mexico_City: ['', 16],\n Miquelon: ['', 29],\n Moncton: ['', 24],\n Monterrey: ['', 16],\n Montevideo: ['', 13],\n Montreal: ['America/Toronto', 22],\n Montserrat: ['America/Puerto_Rico', 12],\n Nassau: ['America/Toronto', 22],\n New_York: ['', 22],\n Nipigon: ['America/Toronto', 22],\n Nome: ['', 11],\n Noronha: ['', 30],\n North_Dakota: { Beulah: ['', 20], Center: ['', 20], New_Salem: ['', 20] },\n Nuuk: ['', 25],\n Ojinaga: ['', 20],\n Panama: ['', 15],\n Pangnirtung: ['America/Iqaluit', 22],\n Paramaribo: ['', 13],\n Phoenix: ['', 21],\n Port_of_Spain: ['America/Puerto_Rico', 12],\n 'Port-au-Prince': ['', 22],\n Porto_Acre: ['America/Rio_Branco', 18],\n Porto_Velho: ['', 17],\n Puerto_Rico: ['', 12],\n Punta_Arenas: ['', 13],\n Rainy_River: ['America/Winnipeg', 20],\n Rankin_Inlet: ['', 20],\n Recife: ['', 13],\n Regina: ['', 16],\n Resolute: ['', 31],\n Rio_Branco: ['', 18],\n Rosario: ['America/Argentina/Cordoba', 13],\n Santa_Isabel: ['America/Tijuana', 23],\n Santarem: ['', 13],\n Santiago: ['', 32],\n Santo_Domingo: ['', 12],\n Sao_Paulo: ['', 13],\n Scoresbysund: ['', 33],\n Shiprock: ['America/Denver', 19],\n Sitka: ['', 11],\n St_Barthelemy: ['America/Puerto_Rico', 12],\n St_Johns: ['', 34],\n St_Kitts: ['America/Puerto_Rico', 12],\n St_Lucia: ['America/Puerto_Rico', 12],\n St_Thomas: ['America/Puerto_Rico', 12],\n St_Vincent: ['America/Puerto_Rico', 12],\n Swift_Current: ['', 16],\n Tegucigalpa: ['', 16],\n Thule: ['', 35],\n Thunder_Bay: ['America/Toronto', 22],\n Tijuana: ['', 23],\n Toronto: ['', 22],\n Tortola: ['America/Puerto_Rico', 12],\n Vancouver: ['', 23],\n Virgin: ['America/Puerto_Rico', 12],\n Whitehorse: ['', 21],\n Winnipeg: ['', 20],\n Yakutat: ['', 11],\n Yellowknife: ['America/Edmonton', 19],\n },\n Antarctica: {\n Casey: ['', 36],\n Davis: ['', 37],\n DumontDUrville: ['Pacific/Port_Moresby', 38],\n Macquarie: ['', 39],\n Mawson: ['', 40],\n McMurdo: ['Pacific/Auckland', 41],\n Palmer: ['', 13],\n Rothera: ['', 42],\n South_Pole: ['Pacific/Auckland', 41],\n Syowa: ['Asia/Riyadh', 43],\n Troll: ['', 44],\n Vostok: ['Asia/Urumqi', 45],\n },\n Arctic: { Longyearbyen: ['Europe/Berlin', 46] },\n Asia: {\n Aden: ['Asia/Riyadh', 43],\n Almaty: ['', 45],\n Amman: ['', 43],\n Anadyr: ['', 47],\n Aqtau: ['', 40],\n Aqtobe: ['', 40],\n Ashgabat: ['', 40],\n Ashkhabad: ['Asia/Ashgabat', 40],\n Atyrau: ['', 40],\n Baghdad: ['', 43],\n Bahrain: ['Asia/Qatar', 43],\n Baku: ['', 48],\n Bangkok: ['', 37],\n Barnaul: ['', 49],\n Beirut: ['', 50],\n Bishkek: ['', 45],\n Brunei: ['Asia/Kuching', 51],\n Calcutta: ['Asia/Kolkata', 52],\n Chita: ['', 53],\n Choibalsan: ['', 51],\n Chongqing: ['Asia/Shanghai', 54],\n Chungking: ['Asia/Shanghai', 54],\n Colombo: ['', 55],\n Dacca: ['Asia/Dhaka', 45],\n Damascus: ['', 43],\n Dhaka: ['', 45],\n Dili: ['', 56],\n Dubai: ['', 48],\n Dushanbe: ['', 40],\n Famagusta: ['', 57],\n Gaza: ['', 58],\n Harbin: ['Asia/Shanghai', 54],\n Hebron: ['', 58],\n Ho_Chi_Minh: ['', 37],\n Hong_Kong: ['', 59],\n Hovd: ['', 37],\n Irkutsk: ['', 60],\n Istanbul: ['Europe/Istanbul', 61],\n Jakarta: ['', 62],\n Jayapura: ['', 63],\n Jerusalem: ['', 64],\n Kabul: ['', 65],\n Kamchatka: ['', 47],\n Karachi: ['', 66],\n Kashgar: ['Asia/Urumqi', 45],\n Kathmandu: ['', 67],\n Katmandu: ['Asia/Kathmandu', 67],\n Khandyga: ['', 53],\n Kolkata: ['', 52],\n Krasnoyarsk: ['', 49],\n Kuala_Lumpur: ['Asia/Singapore', 51],\n Kuching: ['', 51],\n Kuwait: ['Asia/Riyadh', 43],\n Macao: ['Asia/Macau', 54],\n Macau: ['', 54],\n Magadan: ['', 68],\n Makassar: ['', 69],\n Manila: ['', 70],\n Muscat: ['Asia/Dubai', 48],\n Nicosia: ['', 71],\n Novokuznetsk: ['', 49],\n Novosibirsk: ['', 49],\n Omsk: ['', 72],\n Oral: ['', 40],\n Phnom_Penh: ['Asia/Bangkok', 37],\n Pontianak: ['', 62],\n Pyongyang: ['', 73],\n Qatar: ['', 43],\n Qostanay: ['', 45],\n Qyzylorda: ['', 40],\n Rangoon: ['Asia/Yangon', 74],\n Riyadh: ['', 43],\n Saigon: ['Asia/Ho_Chi_Minh', 37],\n Sakhalin: ['', 68],\n Samarkand: ['', 40],\n Seoul: ['', 73],\n Shanghai: ['', 54],\n Singapore: ['', 51],\n Srednekolymsk: ['', 68],\n Taipei: ['', 54],\n Tashkent: ['', 40],\n Tbilisi: ['', 48],\n Tehran: ['', 75],\n Tel_Aviv: ['Asia/Jerusalem', 64],\n Thimbu: ['Asia/Thimphu', 45],\n Thimphu: ['', 45],\n Tokyo: ['', 76],\n Tomsk: ['', 49],\n Ujung_Pandang: ['Asia/Makassar', 69],\n Ulaanbaatar: ['', 51],\n Ulan_Bator: ['Asia/Ulaanbaatar', 51],\n Urumqi: ['', 45],\n 'Ust-Nera': ['', 77],\n Vientiane: ['Asia/Bangkok', 37],\n Vladivostok: ['', 77],\n Yakutsk: ['', 53],\n Yangon: ['', 74],\n Yekaterinburg: ['', 78],\n Yerevan: ['', 48],\n },\n Atlantic: {\n Azores: ['', 79],\n Bermuda: ['', 24],\n Canary: ['', 80],\n Cape_Verde: ['', 81],\n Faeroe: ['Atlantic/Faroe', 82],\n Faroe: ['', 82],\n Jan_Mayen: ['Europe/Berlin', 46],\n Madeira: ['', 80],\n Reykjavik: ['Africa/Abidjan', 0],\n South_Georgia: ['', 30],\n St_Helena: ['Africa/Abidjan', 0],\n Stanley: ['', 13],\n },\n Australia: {\n ACT: ['Australia/Sydney', 39],\n Adelaide: ['', 83],\n Brisbane: ['', 84],\n Broken_Hill: ['', 83],\n Canberra: ['Australia/Sydney', 39],\n Currie: ['Australia/Hobart', 85],\n Darwin: ['', 86],\n Eucla: ['', 87],\n Hobart: ['', 85],\n LHI: ['Australia/Lord_Howe', 88],\n Lindeman: ['', 84],\n Lord_Howe: ['', 88],\n Melbourne: ['', 39],\n North: ['Australia/Darwin', 86],\n NSW: ['Australia/Sydney', 39],\n Perth: ['', 89],\n Queensland: ['Australia/Brisbane', 84],\n South: ['Australia/Adelaide', 83],\n Sydney: ['', 39],\n Tasmania: ['Australia/Hobart', 85],\n Victoria: ['Australia/Melbourne', 39],\n West: ['Australia/Perth', 89],\n Yancowinna: ['Australia/Broken_Hill', 83],\n },\n Brazil: {\n Acre: ['America/Rio_Branco', 18],\n DeNoronha: ['America/Noronha', 30],\n East: ['America/Sao_Paulo', 13],\n West: ['America/Manaus', 17],\n },\n Canada: {\n Atlantic: ['America/Halifax', 24],\n Central: ['America/Winnipeg', 20],\n Eastern: ['America/Toronto', 22],\n Mountain: ['America/Edmonton', 19],\n Newfoundland: ['America/St_Johns', 34],\n Pacific: ['America/Vancouver', 23],\n Saskatchewan: ['America/Regina', 16],\n Yukon: ['America/Whitehorse', 21],\n },\n CET: ['', 46],\n Chile: { Continental: ['America/Santiago', 32], EasterIsland: ['Pacific/Easter', 90] },\n CST6CDT: ['', 20],\n Cuba: ['America/Havana', 28],\n EET: ['', 57],\n Egypt: ['Africa/Cairo', 5],\n Eire: ['Europe/Dublin', 91],\n EST: ['', 15],\n EST5EDT: ['', 22],\n Etc: {\n 'GMT-0': ['Etc/GMT', 92],\n 'GMT-1': ['', 93],\n 'GMT-10': ['', 77],\n 'GMT-11': ['', 68],\n 'GMT-12': ['', 47],\n 'GMT-13': ['', 94],\n 'GMT-14': ['', 95],\n 'GMT-2': ['', 96],\n 'GMT-3': ['', 61],\n 'GMT-4': ['', 97],\n 'GMT-5': ['', 78],\n 'GMT-6': ['', 72],\n 'GMT-7': ['', 49],\n 'GMT-8': ['', 60],\n 'GMT-9': ['', 53],\n GMT: ['', 92],\n 'GMT+0': ['Etc/GMT', 92],\n 'GMT+1': ['', 98],\n 'GMT+10': ['', 99],\n 'GMT+11': ['', 100],\n 'GMT+12': ['', 101],\n 'GMT+2': ['', 30],\n 'GMT+3': ['', 13],\n 'GMT+4': ['', 17],\n 'GMT+5': ['', 18],\n 'GMT+6': ['', 102],\n 'GMT+7': ['', 103],\n 'GMT+8': ['', 104],\n 'GMT+9': ['', 105],\n GMT0: ['Etc/GMT', 92],\n Greenwich: ['Etc/GMT', 92],\n UCT: ['Etc/UTC', 106],\n Universal: ['Etc/UTC', 106],\n UTC: ['', 106],\n Zulu: ['Etc/UTC', 106],\n },\n Europe: {\n Amsterdam: ['Europe/Brussels', 46],\n Andorra: ['', 46],\n Astrakhan: ['', 97],\n Athens: ['', 57],\n Belfast: ['Europe/London', 107],\n Belgrade: ['', 7],\n Berlin: ['', 46],\n Bratislava: ['Europe/Prague', 46],\n Brussels: ['', 46],\n Bucharest: ['', 108],\n Budapest: ['', 46],\n Busingen: ['Europe/Zurich', 7],\n Chisinau: ['', 109],\n Copenhagen: ['Europe/Berlin', 46],\n Dublin: ['', 91],\n Gibraltar: ['', 46],\n Guernsey: ['Europe/London', 107],\n Helsinki: ['', 57],\n Isle_of_Man: ['Europe/London', 107],\n Istanbul: ['', 61],\n Jersey: ['Europe/London', 107],\n Kaliningrad: ['', 110],\n Kiev: ['Europe/Kyiv', 111],\n Kirov: ['', 112],\n Kyiv: ['', 111],\n Lisbon: ['', 113],\n Ljubljana: ['Europe/Belgrade', 7],\n London: ['', 107],\n Luxembourg: ['Europe/Brussels', 46],\n Madrid: ['', 7],\n Malta: ['', 46],\n Mariehamn: ['Europe/Helsinki', 57],\n Minsk: ['', 43],\n Monaco: ['Europe/Paris', 46],\n Moscow: ['', 112],\n Nicosia: ['Asia/Nicosia', 71],\n Oslo: ['Europe/Berlin', 46],\n Paris: ['', 46],\n Podgorica: ['Europe/Belgrade', 7],\n Prague: ['', 46],\n Riga: ['', 57],\n Rome: ['', 46],\n Samara: ['', 97],\n San_Marino: ['Europe/Rome', 46],\n Sarajevo: ['Europe/Belgrade', 7],\n Saratov: ['', 97],\n Simferopol: ['', 112],\n Skopje: ['Europe/Belgrade', 7],\n Sofia: ['', 57],\n Stockholm: ['Europe/Berlin', 46],\n Tallinn: ['', 57],\n Tirane: ['', 46],\n Tiraspol: ['Europe/Chisinau', 109],\n Ulyanovsk: ['', 97],\n Uzhgorod: ['Europe/Kyiv', 111],\n Vaduz: ['Europe/Zurich', 7],\n Vatican: ['Europe/Rome', 46],\n Vienna: ['', 46],\n Vilnius: ['', 57],\n Volgograd: ['', 112],\n Warsaw: ['', 46],\n Zagreb: ['Europe/Belgrade', 7],\n Zaporozhye: ['Europe/Kyiv', 111],\n Zurich: ['', 7],\n },\n 'GB-Eire': ['Europe/London', 107],\n GB: ['Europe/London', 107],\n 'GMT-0': ['Etc/GMT', 92],\n GMT: ['Etc/GMT', 92],\n 'GMT+0': ['Etc/GMT', 92],\n GMT0: ['Etc/GMT', 92],\n Greenwich: ['Etc/GMT', 92],\n Hongkong: ['Asia/Hong_Kong', 59],\n HST: ['', 114],\n Iceland: ['Africa/Abidjan', 0],\n Indian: {\n Antananarivo: ['Africa/Nairobi', 1],\n Chagos: ['', 45],\n Christmas: ['Asia/Bangkok', 37],\n Cocos: ['Asia/Yangon', 74],\n Comoro: ['Africa/Nairobi', 1],\n Kerguelen: ['Indian/Maldives', 40],\n Mahe: ['Asia/Dubai', 48],\n Maldives: ['', 40],\n Mauritius: ['', 48],\n Mayotte: ['Africa/Nairobi', 1],\n Reunion: ['Asia/Dubai', 48],\n },\n Iran: ['Asia/Tehran', 75],\n Israel: ['Asia/Jerusalem', 64],\n Jamaica: ['America/Jamaica', 15],\n Japan: ['Asia/Tokyo', 76],\n Kwajalein: ['Pacific/Kwajalein', 115],\n Libya: ['Africa/Tripoli', 9],\n MET: ['', 116],\n Mexico: {\n BajaNorte: ['America/Tijuana', 23],\n BajaSur: ['America/Mazatlan', 21],\n General: ['America/Mexico_City', 16],\n },\n MST: ['', 21],\n MST7MDT: ['', 19],\n Navajo: ['America/Denver', 19],\n 'NZ-CHAT': ['Pacific/Chatham', 117],\n NZ: ['Pacific/Auckland', 41],\n Pacific: {\n Apia: ['', 118],\n Auckland: ['', 41],\n Bougainville: ['', 36],\n Chatham: ['', 117],\n Chuuk: ['Pacific/Port_Moresby', 38],\n Easter: ['', 90],\n Efate: ['', 36],\n Enderbury: ['Pacific/Kanton', 118],\n Fakaofo: ['', 118],\n Fiji: ['', 115],\n Funafuti: ['Pacific/Tarawa', 115],\n Galapagos: ['', 102],\n Gambier: ['', 119],\n Guadalcanal: ['', 36],\n Guam: ['', 120],\n Honolulu: ['', 114],\n Johnston: ['Pacific/Honolulu', 114],\n Kanton: ['', 118],\n Kiritimati: ['', 121],\n Kosrae: ['', 36],\n Kwajalein: ['', 115],\n Majuro: ['Pacific/Tarawa', 115],\n Marquesas: ['', 122],\n Midway: ['Pacific/Pago_Pago', 123],\n Nauru: ['', 115],\n Niue: ['', 124],\n Norfolk: ['', 125],\n Noumea: ['', 36],\n Pago_Pago: ['', 123],\n Palau: ['', 56],\n Pitcairn: ['', 126],\n Pohnpei: ['Pacific/Guadalcanal', 36],\n Ponape: ['Pacific/Guadalcanal', 36],\n Port_Moresby: ['', 38],\n Rarotonga: ['', 127],\n Saipan: ['Pacific/Guam', 120],\n Samoa: ['Pacific/Pago_Pago', 123],\n Tahiti: ['', 127],\n Tarawa: ['', 115],\n Tongatapu: ['', 118],\n Truk: ['Pacific/Port_Moresby', 38],\n Wake: ['Pacific/Tarawa', 115],\n Wallis: ['Pacific/Tarawa', 115],\n Yap: ['Pacific/Port_Moresby', 38],\n },\n Poland: ['Europe/Warsaw', 46],\n Portugal: ['Europe/Lisbon', 113],\n PRC: ['Asia/Shanghai', 54],\n PST8PDT: ['', 23],\n ROC: ['Asia/Taipei', 54],\n ROK: ['Asia/Seoul', 73],\n Singapore: ['Asia/Singapore', 51],\n Turkey: ['Europe/Istanbul', 61],\n UCT: ['Etc/UTC', 106],\n Universal: ['Etc/UTC', 106],\n US: {\n Alaska: ['America/Anchorage', 11],\n Aleutian: ['America/Adak', 10],\n Arizona: ['America/Phoenix', 21],\n Central: ['America/Chicago', 20],\n 'East-Indiana': ['America/Indiana/Indianapolis', 22],\n Eastern: ['America/New_York', 22],\n Hawaii: ['Pacific/Honolulu', 114],\n 'Indiana-Starke': ['America/Indiana/Knox', 20],\n Michigan: ['America/Detroit', 22],\n Mountain: ['America/Denver', 19],\n Pacific: ['America/Los_Angeles', 23],\n Samoa: ['Pacific/Pago_Pago', 123],\n },\n UTC: ['Etc/UTC', 106],\n 'W-SU': ['Europe/Moscow', 112],\n WET: ['', 82],\n Zulu: ['Etc/UTC', 106],\n};\nconst tzlibZonesDetailsDB = [\n '20230517T170335ZGMT+0000+000019700101T000000',\n '20230517T170335ZEAT+0300+030019700101T000000',\n '20230517T170335ZCET+0100+010019700101T000000',\n '20230517T170335ZWAT+0100+010019700101T000000',\n '20230517T170335ZCAT+0200+020019700101T000000',\n '20230517T170335ZEEST+0200+030019700424T000000FREQ=YEARLY;BYMONTH=4;BYDAY=-1FREET+0300+020019701030T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR',\n '20230517T170335Z+01+0100+010019700101T000000',\n '20230517T170336ZCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335ZSAST+0200+020019700101T000000',\n '20230517T170335ZEET+0200+020019700101T000000',\n '20230517T170336ZHDT-1000-090019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUHST-0900-100019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336ZAKDT-0900-080019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAKST-0800-090019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336ZAST-0400-040019700101T000000',\n '20230517T170336Z-03-0300-030019700101T000000',\n '20230517T170336Z-03-0400-030019701004T000000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU-04-0300-040019700322T000000FREQ=YEARLY;BYMONTH=3;BYDAY=4SU',\n '20230517T170336ZEST-0500-050019700101T000000',\n '20230517T170336ZCST-0600-060019700101T000000',\n '20230517T170336Z-04-0400-040019700101T000000',\n '20230517T170336Z-05-0500-050019700101T000000',\n '20230517T170336ZMDT-0700-060019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUMST-0600-070019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336ZCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336ZMST-0700-070019700101T000000',\n '20230517T170336ZEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336ZPDT-0800-070019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUPST-0700-080019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336ZADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170335Z-01-0200-010019700328T230000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA-02-0100-020019701025T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336ZAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20230517T170336ZEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20230517T170336ZCST-0400-050019701101T010000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUCDT-0500-040019700308T000000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20230517T170336Z-02-0300-020019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU-03-0200-030019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336Z-02-0200-020019700101T000000',\n '20230517T170336ZCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20230517T170336Z-04-0300-040019700405T000000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU-03-0400-030019700906T000000FREQ=YEARLY;BYMONTH=9;BYDAY=1SU',\n '20230517T170335Z+00-0100+000019700329T000000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU-01+0000-010019701025T010000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336ZNST-0230-033019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUNDT-0330-023019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20230517T170335ZADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170335Z+11+1100+110019700101T000000',\n '20230517T170335Z+07+0700+070019700101T000000',\n '20230517T170335Z+10+1000+100019700101T000000',\n '20230517T170335ZAEST+1100+100019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SUAEDT+1000+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU',\n '20230517T170335Z+05+0500+050019700101T000000',\n '20230517T170335ZNZDT+1200+130019700927T020000FREQ=YEARLY;BYMONTH=9;BYDAY=-1SUNZST+1300+120019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU',\n '20230517T170335Z-03-0300-030019700101T000000',\n '20230517T170335Z+03+0300+030019700101T000000',\n '20230517T170335Z+02+0000+020019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU+00+0200+000019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335Z+06+0600+060019700101T000000',\n '20230517T170335ZCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336Z+12+1200+120019700101T000000',\n '20230517T170335Z+04+0400+040019700101T000000',\n '20230517T170336Z+07+0700+070019700101T000000',\n '20230517T170335ZEEST+0200+030019700329T000000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335Z+08+0800+080019700101T000000',\n '20230517T170335ZIST+0530+053019700101T000000',\n '20230517T170336Z+09+0900+090019700101T000000',\n '20230517T170335ZCST+0800+080019700101T000000',\n '20230517T170335Z+0530+0530+053019700101T000000',\n '20230517T170335Z+09+0900+090019700101T000000',\n '20230517T170335ZEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335ZEET+0300+020019701024T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SAEEST+0200+030019700328T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA',\n '20230517T170335ZHKT+0800+080019700101T000000',\n '20230517T170336Z+08+0800+080019700101T000000',\n '20230517T170336Z+03+0300+030019700101T000000',\n '20230517T170335ZWIB+0700+070019700101T000000',\n '20230517T170335ZWIT+0900+090019700101T000000',\n '20230517T170335ZIDT+0200+030019700327T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1FRIST+0300+020019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335Z+0430+0430+043019700101T000000',\n '20230517T170335ZPKT+0500+050019700101T000000',\n '20230517T170335Z+0545+0545+054519700101T000000',\n '20230517T170336Z+11+1100+110019700101T000000',\n '20230517T170335ZWITA+0800+080019700101T000000',\n '20230517T170335ZPST+0800+080019700101T000000',\n '20230517T170335ZEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SUEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU',\n '20230517T170336Z+06+0600+060019700101T000000',\n '20230517T170335ZKST+0900+090019700101T000000',\n '20230517T170335Z+0630+0630+063019700101T000000',\n '20230517T170335Z+0330+0330+033019700101T000000',\n '20230517T170335ZJST+0900+090019700101T000000',\n '20230517T170336Z+10+1000+100019700101T000000',\n '20230517T170336Z+05+0500+050019700101T000000',\n '20230517T170336Z+00-0100+000019700329T000000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU-01+0000-010019701025T010000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336ZWEST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUWET+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335Z-01-0100-010019700101T000000',\n '20230517T170335ZWEST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUWET+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335ZACST+1030+093019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SUACDT+0930+103019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU',\n '20230517T170335ZAEST+1000+100019700101T000000',\n '20230517T170335ZAEDT+1000+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SUAEST+1100+100019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU',\n '20230517T170335ZACST+0930+093019700101T000000',\n '20230517T170335Z+0845+0845+084519700101T000000',\n '20230517T170335Z+1030+1100+103019700405T020000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU+11+1030+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU',\n '20230517T170335ZAWST+0800+080019700101T000000',\n '20230517T170336Z-06-0500-060019700404T220000FREQ=YEARLY;BYMONTH=4;BYDAY=1SA-05-0600-050019700905T220000FREQ=YEARLY;BYMONTH=9;BYDAY=1SA',\n '20230517T170335ZIST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUGMT+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336ZGMT+0000+000019700101T000000',\n '20230517T170336Z+01+0100+010019700101T000000',\n '20230517T170336Z+13+1300+130019700101T000000',\n '20230517T170336Z+14+1400+140019700101T000000',\n '20230517T170336Z+02+0200+020019700101T000000',\n '20230517T170336Z+04+0400+040019700101T000000',\n '20230517T170336Z-01-0100-010019700101T000000',\n '20230517T170336Z-10-1000-100019700101T000000',\n '20230517T170336Z-11-1100-110019700101T000000',\n '20230517T170336Z-12-1200-120019700101T000000',\n '20230517T170336Z-06-0600-060019700101T000000',\n '20230517T170336Z-07-0700-070019700101T000000',\n '20230517T170336Z-08-0800-080019700101T000000',\n '20230517T170336Z-09-0900-090019700101T000000',\n '20230517T170336ZUTC+0000+000019700101T000000',\n '20230517T170335ZBST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUGMT+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336ZEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335ZEEST+0200+030019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336ZEET+0200+020019700101T000000',\n '20230517T170336ZEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SUEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU',\n '20230517T170336ZMSK+0300+030019700101T000000',\n '20230517T170336ZWET+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SUWEST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU',\n '20230517T170336ZHST-1000-100019700101T000000',\n '20230517T170335Z+12+1200+120019700101T000000',\n '20230517T170335ZMEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUMET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335Z+1345+1245+134519700927T024500FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU+1245+1345+124519700405T034500FREQ=YEARLY;BYMONTH=4;BYDAY=1SU',\n '20230517T170335Z+13+1300+130019700101T000000',\n '20230517T170335Z-09-0900-090019700101T000000',\n '20230517T170335ZChST+1000+100019700101T000000',\n '20230517T170335Z+14+1400+140019700101T000000',\n '20230517T170335Z-0930-0930-093019700101T000000',\n '20230517T170335ZSST-1100-110019700101T000000',\n '20230517T170335Z-11-1100-110019700101T000000',\n '20230517T170335Z+12+1100+120019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU+11+1200+110019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU',\n '20230517T170335Z-08-0800-080019700101T000000',\n '20230517T170335Z-10-1000-100019700101T000000',\n];\nfunction tzlib_get_content(tzName) {\n const nameParts = tzName.split('/');\n if (\n (nameParts.length === 3 &&\n (!tzlibZonesDB[`${nameParts[0]}`] ||\n !tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`] ||\n !tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][`${nameParts[2]}`])) ||\n (nameParts.length === 2 &&\n (!tzlibZonesDB[`${nameParts[0]}`] || !tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`])) ||\n (nameParts.length === 1 && !tzlibZonesDB[`${nameParts[0]}`])\n ) {\n console.error('Given timezone not valid.');\n return '';\n }\n if (nameParts.length === 3) {\n return [\n tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][`${nameParts[2]}`][0],\n tzlib_enrich_data(\n tzlibZonesDetailsDB[tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][`${nameParts[2]}`][1]]\n ),\n ];\n }\n if (nameParts.length === 2) {\n return [\n tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][0],\n tzlib_enrich_data(tzlibZonesDetailsDB[tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][1]]),\n ];\n }\n return [\n tzlibZonesDB[`${nameParts[0]}`][0],\n tzlib_enrich_data(tzlibZonesDetailsDB[tzlibZonesDB[`${nameParts[0]}`][1]]),\n ];\n}\nfunction tzlib_enrich_data(string) {\n const shortenerMap = {\n '
': '',\n 'TZNAME:': '',\n 'TZOFFSETFROM:': '',\n 'TZOFFSETTO:': '',\n 'DTSTART:': '',\n 'RRULE:': '',\n 'BEGIN:DAYLIGHT': '',\n 'END:DAYLIGHT': '',\n 'BEGIN:STANDARD': '',\n 'END:STANDARD': '',\n };\n for (const [key, value] of Object.entries(shortenerMap)) {\n string = string.replaceAll(value, key);\n }\n return string;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction tzlib_get_ical_block(tzName, jsonType = false) {\n const tzBlock = tzlib_get_content(tzName);\n if (tzBlock[1] == null || tzBlock[1] == '') {\n return '';\n }\n const location = (function () {\n if (tzBlock[0] == '') {\n return tzName;\n } else {\n return tzBlock[0];\n }\n })();\n const tzidLine = 'TZID=' + location;\n const output = [\n 'BEGIN:VTIMEZONE\\r\\nTZID:' +\n location +\n '\\r\\nX-LIC-LOCATION:' +\n location +\n '\\r\\nLAST-MODIFIED:' +\n tzBlock[1].replace(/[^\\w_\\-:,;=+/
]/g, '').replace(/
/g, '\\r\\n') +\n 'END:VTIMEZONE',\n tzidLine,\n ];\n if (jsonType) {\n return JSON.stringify(output);\n }\n return output;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction tzlib_get_offset(tzName, isoDate, isoTime) {\n const tzBlock = tzlib_get_content(tzName);\n if (tzBlock[1] == null || tzBlock[1] == '') {\n return '';\n }\n if (!isoDate.match(/^\\d{4}-\\d{2}-\\d{2}$/)) {\n console.error('offset calculation failed: date misspelled [-> YYYY-MM-DD]');\n return '';\n }\n if (!isoTime.match(/^\\d{2}:\\d{2}$/)) {\n console.error('offset calculation failed: time misspelled [-> hh:mm]');\n return '';\n }\n if (!tzBlock[1].match(/BEGIN:DAYLIGHT/i)) {\n return tzBlock[1].match(/TZOFFSETTO:([+|-]\\d{4})/i)[1];\n }\n const dateString = isoDate + 'T' + isoTime + ':00';\n const date = new Date(dateString);\n const dateYear = date.getFullYear();\n const dateMonth = date.getMonth() + 1;\n const dateDay = date.getDate();\n const dateHour = date.getHours();\n const timezoneData = tzBlock[1].replace(/[^\\w_\\-:,;=+/
]/g, '').split('
');\n const tzBreakpoints = { 1: {}, 2: {} };\n let breakpointCount = 0;\n for (let i = 0; i < timezoneData.length; i++) {\n if (timezoneData[`${i}`].startsWith('TZOFFSETTO')) {\n breakpointCount++;\n tzBreakpoints[`${breakpointCount}`].offset = timezoneData[`${i}`].split(':')[1];\n }\n if (timezoneData[`${i}`].startsWith('DTSTART')) {\n tzBreakpoints[`${breakpointCount}`].hour = parseInt(timezoneData[`${i}`].substr(17, 2));\n }\n if (timezoneData[`${i}`].startsWith('RRULE')) {\n let rruleParts = timezoneData[`${i}`].split(';');\n let rruleMonth = parseInt(rruleParts[1].split('=')[1]);\n tzBreakpoints[`${breakpointCount}`].month = parseInt(rruleMonth);\n tzBreakpoints[`${breakpointCount}`].day = rruleParts[2].split('=')[1];\n }\n }\n if (tzBreakpoints[1].month > tzBreakpoints[2].month) {\n [tzBreakpoints[1], tzBreakpoints[2]] = [tzBreakpoints[2], tzBreakpoints[1]];\n }\n if (dateMonth != tzBreakpoints[1].month && dateMonth != tzBreakpoints[2].month) {\n if (dateMonth < tzBreakpoints[1].month || dateMonth > tzBreakpoints[2].month) {\n return tzBreakpoints[2].offset;\n } else {\n return tzBreakpoints[1].offset;\n }\n }\n const theCase = (function () {\n return Object.keys(tzBreakpoints).find((key) => tzBreakpoints[`${key}`].month == dateMonth);\n })();\n const helperArrayWeekdays = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'];\n const numberDays = new Date(dateYear, dateMonth, 0).getDate();\n let weekdayCount = new Date(dateYear, dateMonth - 1, 1).getDay();\n const weekdays = { SU: {}, MO: {}, TU: {}, WE: {}, TH: {}, FR: {}, SA: {} };\n for (let d = 1; d <= numberDays; d++) {\n const occurence = Object.keys(weekdays[helperArrayWeekdays[`${weekdayCount}`]]).length + 1;\n weekdays[helperArrayWeekdays[`${weekdayCount}`]][`${occurence}`] = d;\n weekdayCount++;\n if (weekdayCount == 7) {\n weekdayCount = 0;\n }\n }\n const actualDay = (function () {\n if (tzBreakpoints[`${theCase}`].day[0] == '-') {\n const breakpointWeekday = tzBreakpoints[`${theCase}`].day.substr(2, 2);\n const dayIndex =\n Object.keys(weekdays[`${breakpointWeekday}`]).length +\n 1 -\n parseInt(tzBreakpoints[`${theCase}`].day[1]);\n return weekdays[`${breakpointWeekday}`][`${dayIndex}`];\n } else {\n const breakpointWeekday = tzBreakpoints[`${theCase}`].day.substr(1, 2);\n return weekdays[`${breakpointWeekday}`][tzBreakpoints[`${theCase}`].day[0]];\n }\n })();\n if (dateDay > actualDay || (dateDay == actualDay && dateHour >= tzBreakpoints[`${theCase}`].hour)) {\n return tzBreakpoints[`${theCase}`].offset;\n }\n const fallbackCase = (function () {\n if (theCase == 1) {\n return 2;\n } else {\n return 1;\n }\n })();\n return tzBreakpoints[`${fallbackCase}`].offset;\n}\nlet tzlibZoneNames = [];\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction tzlib_get_timezones(jsonType = false) {\n if (tzlibZoneNames.length == 0) {\n tzlibZoneNames = (function () {\n let namesArr = [];\n for (const [key, value] of Object.entries(tzlibZonesDB)) {\n if (typeof value === 'object' && !Array.isArray(value)) {\n for (const [key2, value2] of Object.entries(value)) {\n if (typeof value2 === 'object' && !Array.isArray(value2)) {\n for (const [key3] of Object.entries(value2)) {\n namesArr.push(key + '/' + key2 + '/' + key3);\n }\n } else {\n namesArr.push(key + '/' + key2);\n }\n }\n } else {\n namesArr.push(key);\n }\n }\n return namesArr;\n })();\n }\n if (jsonType) {\n return JSON.stringify(tzlibZoneNames);\n }\n return tzlibZoneNames;\n}\nexport { tzlib_get_ical_block, tzlib_get_offset, tzlib_get_timezones };\n","import { tzlib_get_ical_block, tzlib_get_offset, tzlib_get_timezones } from 'timezones-ical-library';\n\n/*!\n * @preserve\n *\n * ++++++++++++++++++++++\n * Add to Calendar Button\n * ++++++++++++++++++++++\n *\n * Version: 1.18.8\n * Creator: Jens Kuerschner (https://jenskuerschner.de)\n * Project: https://github.com/add2cal/add-to-calendar-button\n * License: Apache-2.0 with “Commons Clause” License Condition v1.0\n * Note: DO NOT REMOVE THE COPYRIGHT NOTICE ABOVE!\n *\n */\nconst atcbVersion = '1.18.8';\nconst isBrowser = () => {\n if (typeof window === 'undefined') {\n return false;\n } else {\n return true;\n }\n};\nconst isiOS = isBrowser()\n ? () => {\n if (\n (/iPad|iPhone|iPod/i.test(navigator.userAgent || navigator.vendor || window.opera) &&\n !window.MSStream) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\n ) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst isAndroid = isBrowser()\n ? () => {\n if (/android/i.test(navigator.userAgent || navigator.vendor || window.opera) && !window.MSStream) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst isChrome = isBrowser()\n ? () => {\n if (/chrome|chromium|crios|google inc/i.test(navigator.userAgent || navigator.vendor)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst isMobile = () => {\n if (isAndroid() || isiOS()) {\n return true;\n } else {\n return false;\n }\n};\nconst isWebView = isBrowser()\n ? () => {\n if (\n /(; ?wv|(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari))/i.test(navigator.userAgent || navigator.vendor)\n ) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst isProblematicWebView = isBrowser()\n ? () => {\n if (/(Instagram)/i.test(navigator.userAgent || navigator.vendor || window.opera)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst atcbDefaultTarget = isWebView() ? '_system' : '_blank';\nconst atcbOptions = ['apple', 'google', 'ical', 'ms365', 'outlookcom', 'msteams', 'yahoo'];\nconst atcbValidRecurrOptions = ['apple', 'google', 'ical'];\nconst atcbInvalidSubscribeOptions = ['msteams'];\nconst atcbiOSInvalidOptions = ['ical'];\nconst atcbStates = [];\nconst atcbIcon = {\n trigger:\n '',\n apple:\n '',\n google:\n '',\n ical: '',\n msteams:\n '',\n ms365:\n '',\n outlookcom:\n '',\n yahoo:\n '',\n atcb: '',\n close:\n '',\n location:\n '',\n warning:\n '',\n checkmark:\n '',\n};\n\n\nfunction atcb_patch_config(configData) {\n if (configData.event != null) {\n Object.keys(configData.event).forEach((key) => {\n if (key.charAt(0) !== '@') {\n configData[`${key}`] = configData.event[`${key}`];\n }\n });\n delete configData.event;\n }\n const keyChanges = {\n title: 'name',\n dateStart: 'startDate',\n dateEnd: 'endDate',\n timeStart: 'startTime',\n timeEnd: 'endTime',\n };\n Object.keys(keyChanges).forEach((key) => {\n if (configData[keyChanges[`${key}`]] == null && configData[`${key}`] != null) {\n configData[keyChanges[`${key}`]] = configData[`${key}`];\n }\n });\n return configData;\n}\nfunction atcb_decorate_data(data) {\n data = atcb_decorate_data_identifier(data);\n data.subscribe = atcb_decorate_data_subscribe(data);\n data = atcb_decorate_data_rrule(data);\n data = atcb_decorate_data_options(data);\n data.richData = atcb_decorate_data_rich_data(data);\n data.checkmark = atcb_decorate_data_checkmark(data);\n data.background = atcb_decorate_data_background(data);\n data.mindScrolling = atcb_decorate_data_mind_scrolling(data);\n data.branding = atcb_decorate_data_branding(data);\n data = atcb_decorate_data_style(data);\n data = atcb_decorate_data_i18n(data);\n data = atcb_decorate_data_dates(data);\n data = atcb_decorate_data_meta(data);\n data = atcb_decorate_data_extend(data);\n return data;\n}\nfunction atcb_decorate_data_identifier(data) {\n if (data.identifier != null && data.identifier != '') {\n data.identifier = 'atcb-btn-' + data.identifier;\n if (!/^[\\w-]+$/.test(data.identifier)) {\n data.identifier = '';\n console.warn('Add to Calendar Button generation: identifier invalid - using auto numbers instead');\n }\n }\n return data;\n}\nfunction atcb_decorate_data_subscribe(data) {\n if (data.subscribe != null && data.subscribe == true) {\n return true;\n }\n return false;\n}\nfunction atcb_decorate_data_rrule(data) {\n if (data.recurrence != null && data.recurrence != '') {\n data.recurrence = data.recurrence.replace(/\\s+/g, '').toUpperCase();\n if (!/^(RRULE:[\\w=;,:+-/\\\\]+|daily|weekly|monthly|yearly)$/im.test(data.recurrence)) {\n data.recurrence = '!wrong rrule format!';\n } else {\n if (/^RRULE:/i.test(data.recurrence)) {\n const rruleParts = data.recurrence.substr(6).split(';');\n const rruleObj = new Object();\n rruleParts.forEach(function (rule) {\n rruleObj[rule.split('=')[0]] = rule.split('=')[1];\n });\n data.recurrence_until = rruleObj.UNTIL ? rruleObj.UNTIL : '';\n data.recurrence_count = rruleObj.COUNT ? rruleObj.COUNT : '';\n data.recurrence_byDay = rruleObj.BYDAY ? rruleObj.BYDAY : '';\n data.recurrence_byMonth = rruleObj.BYMONTH ? rruleObj.BYMONTH : '';\n data.recurrence_byMonthDay = rruleObj.BYMONTHDAY ? rruleObj.BYMONTHDAY : '';\n data.recurrence_interval = rruleObj.INTERVAL ? rruleObj.INTERVAL : 1;\n data.recurrence_frequency = rruleObj.FREQ ? rruleObj.FREQ : '';\n } else {\n if (data.recurrence_interval == null || data.recurrence_interval == '') {\n data.recurrence_interval = 1;\n }\n if (\n data.recurrence_weekstart == null ||\n (data.recurrence_weekstart == '') | (data.recurrence_weekstart.length > 2)\n ) {\n data.recurrence_weekstart = 'MO';\n }\n data.recurrence_frequency = data.recurrence;\n data.recurrence =\n 'RRULE:FREQ=' +\n data.recurrence +\n ';WKST=' +\n data.recurrence_weekstart +\n ';INTERVAL=' +\n data.recurrence_interval;\n if (data.recurrence_until != null && data.recurrence_until != '') {\n if (data.endTime != null && data.endTime != '') {\n data.recurrence =\n data.recurrence +\n ';UNTIL=' +\n data.recurrence_until.replace(/-/g, '').slice(0, 8) +\n 'T' +\n data.endTime.replace(':', '') +\n '00';\n } else {\n data.recurrence =\n data.recurrence + ';UNTIL=' + data.recurrence_until.replace(/-/g, '').slice(0, 8);\n }\n }\n if (data.recurrence_count != null && data.recurrence_count != '') {\n data.recurrence = data.recurrence + ';COUNT=' + data.recurrence_count;\n }\n if (data.recurrence_byDay != null && data.recurrence_byDay != '') {\n data.recurrence = data.recurrence + ';BYDAY=' + data.recurrence_byDay;\n }\n if (data.recurrence_byMonth != null && data.recurrence_byMonth != '') {\n data.recurrence = data.recurrence + ';BYMONTH=' + data.recurrence_byMonth;\n }\n if (data.recurrence_byMonthDay != null && data.recurrence_byMonthDay != '') {\n data.recurrence = data.recurrence + ';BYMONTHDAY=' + data.recurrence_byMonthDay;\n }\n }\n }\n }\n return data;\n}\nfunction atcb_decorate_data_options(data) {\n if (isiOS() && data.options.includes('ical') && !data.options.includes('apple')) {\n data.options.push('apple');\n }\n const newOptions = [];\n data.optionLabels = [];\n for (let i = 0; i < data.options.length; i++) {\n const cleanOption = data.options[`${i}`].split('|');\n const optionName = cleanOption[0].toLowerCase().replace('microsoft', 'ms').replace('.', '');\n const optionLabel = (function () {\n if (cleanOption[1] != null) {\n return cleanOption[1];\n }\n return '';\n })();\n if (\n (isiOS() && atcbiOSInvalidOptions.includes(optionName)) ||\n (data.recurrence != null &&\n data.recurrence != '' &&\n (!atcbValidRecurrOptions.includes(optionName) ||\n (data.recurrence_until != null &&\n data.recurrence_until != '' &&\n (optionName == 'apple' || optionName == 'ical')))) ||\n (data.subscribe && atcbInvalidSubscribeOptions.includes(optionName))\n ) {\n continue;\n }\n newOptions.push(optionName);\n data.optionLabels.push(optionLabel);\n }\n data.options = newOptions;\n return data;\n}\nfunction atcb_decorate_data_rich_data(data) {\n if (data.richData != null && data.richData == false) {\n return false;\n }\n return true;\n}\nfunction atcb_decorate_data_checkmark(data) {\n if (data.checkmark != null && data.checkmark == false) {\n return false;\n }\n return true;\n}\nfunction atcb_decorate_data_background(data) {\n if (data.background != null && data.background == false) {\n return false;\n }\n return true;\n}\nfunction atcb_decorate_data_branding(data) {\n if (data.branding != null && data.branding == false) {\n return false;\n }\n return false;\n}\nfunction atcb_decorate_data_mind_scrolling(data) {\n if (data.mindScrolling != null && data.mindScrolling == true) {\n return true;\n }\n return false;\n}\nfunction atcb_decorate_data_style(data) {\n if (data.listStyle == null || data.listStyle == '') {\n data.listStyle = 'dropdown';\n }\n if (data.listStyle === 'modal') {\n data.trigger = 'click';\n }\n if (data.buttonStyle != null && data.buttonStyle != '' && data.buttonStyle != 'default') {\n if (data.buttonStyle == 'bubble' || data.buttonStyle == 'text' || data.buttonStyle == 'date') {\n data.trigger = 'click';\n }\n if (data.buttonStyle == 'date' && data.listStyle == 'dropdown') {\n data.listStyle = 'overlay';\n }\n } else {\n data.buttonStyle = '';\n }\n data.sizes = [];\n data.sizes['l'] = data.sizes['m'] = data.sizes['s'] = 16;\n if (data.size != null && data.size != '') {\n const sizeParts = data.size.split('|');\n for (let i = 0; i < sizeParts.length; i++) {\n sizeParts[`${i}`] = parseInt(sizeParts[`${i}`]);\n }\n if (sizeParts[0] >= 0 && sizeParts[0] < 11) {\n data.sizes['l'] = 10 + sizeParts[0];\n }\n if (sizeParts.length > 2) {\n if (sizeParts[1] >= 0 && sizeParts[1] < 11) {\n data.sizes['m'] = 10 + sizeParts[1];\n }\n if (sizeParts[2] >= 0 && sizeParts[2] < 11) {\n data.sizes['s'] = 10 + sizeParts[2];\n }\n } else if (sizeParts.length == 2) {\n if (sizeParts[1] >= 0 && sizeParts[1] < 11) {\n data.sizes['m'] = data.sizes['s'] = 10 + sizeParts[1];\n }\n }\n }\n if (data.lightMode == null || data.lightMode == '') {\n data.lightMode = 'light';\n } else if (data.lightMode != null && data.lightMode != '') {\n const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)');\n switch (data.lightMode) {\n case 'system':\n if (prefersDarkScheme.matches) {\n data.lightMode = 'dark';\n } else {\n data.lightMode = 'light';\n }\n break;\n case 'bodyScheme':\n case 'dark':\n break;\n default:\n data.lightMode = 'light';\n break;\n }\n }\n data.iconButton = true;\n data.iconList = true;\n data.iconModal = true;\n if (data.icons != null) {\n data.icons = String(data.icons);\n if (data.icons != '') {\n const iconsConfig = data.icons.split('|');\n if (iconsConfig[0] == 'false') {\n data.iconButton = false;\n }\n if (iconsConfig[1] != null && iconsConfig[1] == 'false') {\n data.iconList = false;\n }\n if (iconsConfig[2] != null && iconsConfig[2] == 'false') {\n data.iconModal = false;\n }\n }\n }\n data.textLabelButton = true;\n data.textLabelList = true;\n if (data.textLabels != null) {\n data.textLabels = String(data.textLabels);\n if (data.textLabels != '') {\n const textLabelsConfig = data.textLabels.split('|');\n if (textLabelsConfig[0] == 'false') {\n data.textLabelButton = false;\n }\n if (textLabelsConfig[1] != null && textLabelsConfig[1] == 'false') {\n data.textLabelList = false;\n }\n }\n }\n return data;\n}\nfunction atcb_decorate_data_i18n(data) {\n if (data.language == null || data.language == '') {\n data.language = 'en';\n }\n if (data.language == 'ar') {\n data.rtl = true;\n } else {\n data.rtl = false;\n }\n return data;\n}\nfunction atcb_decorate_data_dates(data) {\n if (data.dates != null && data.dates.length > 0) {\n for (let i = 0; i < data.dates.length; i++) {\n if (data.dates[`${i}`].timeZone == null && data.timeZone != null) {\n data.dates[`${i}`].timeZone = data.timeZone;\n }\n const cleanedUpDates = atcb_date_cleanup(data.dates[`${i}`]);\n data.dates[`${i}`].startTime = cleanedUpDates.startTime;\n data.dates[`${i}`].endTime = cleanedUpDates.endTime;\n data.dates[`${i}`].timeZone = cleanedUpDates.timeZone;\n data.dates[`${i}`].timestamp = cleanedUpDates.startTimestamp;\n data.dates[`${i}`].startDate = atcb_date_calculation(cleanedUpDates.startDate);\n data.dates[`${i}`].endDate = atcb_date_calculation(cleanedUpDates.endDate);\n }\n } else {\n const cleanedUpDates = atcb_date_cleanup(data);\n data.dates = [];\n data.dates[0] = new Object();\n data.startTime = data.dates[0].startTime = cleanedUpDates.startTime;\n data.endTime = data.dates[0].endTime = cleanedUpDates.endTime;\n data.timeZone = data.dates[0].timeZone = cleanedUpDates.timeZone;\n data.startDate = data.dates[0].startDate = atcb_date_calculation(cleanedUpDates.startDate);\n data.endDate = data.dates[0].endDate = atcb_date_calculation(cleanedUpDates.endDate);\n }\n const now = new Date();\n if (data.created == null || data.created == '') {\n data.created = atcb_format_datetime(now, 'clean', true);\n }\n if (data.updated == null || data.updated == '') {\n data.updated = atcb_format_datetime(now, 'clean', true);\n }\n return data;\n}\nfunction atcb_decorate_data_meta(data) {\n if (data.status == null || data.status == '') {\n data.status = 'CONFIRMED';\n }\n if (data.sequence == null || data.sequence == '') {\n data.sequence = 0;\n }\n return data;\n}\nfunction atcb_decorate_data_description(data, i) {\n if (data.dates[`${i}`].description != null && data.dates[`${i}`].description != '') {\n data.dates[`${i}`].descriptionHtmlFree = atcb_rewrite_html_elements(data.dates[`${i}`].description, true);\n data.dates[`${i}`].description = atcb_rewrite_html_elements(data.dates[`${i}`].description);\n } else {\n if (data.dates[`${i}`].description == null && data.description != null && data.description != '') {\n data.dates[`${i}`].descriptionHtmlFree = atcb_rewrite_html_elements(data.description, true);\n data.dates[`${i}`].description = atcb_rewrite_html_elements(data.description);\n } else {\n data.dates[`${i}`].descriptionHtmlFree = data.dates[`${i}`].description = '';\n }\n }\n return data;\n}\nfunction atcb_decorate_data_extend(data) {\n for (let i = 0; i < data.dates.length; i++) {\n data = atcb_decorate_data_description(data, i);\n if (data.dates[`${i}`].name == null || data.dates[`${i}`].name == '') {\n data.dates[`${i}`].name = data.name;\n }\n if (data.dates[`${i}`].status == null) {\n data.dates[`${i}`].status = data.status.toUpperCase();\n } else {\n data.dates[`${i}`].status = data.dates[`${i}`].status.toUpperCase();\n }\n if (data.dates[`${i}`].sequence == null) {\n data.dates[`${i}`].sequence = data.sequence;\n }\n if (data.dates[`${i}`].location == null && data.location != null) {\n data.dates[`${i}`].location = data.location;\n }\n if (data.dates[`${i}`].organizer == null && data.organizer != null) {\n data.dates[`${i}`].organizer = data.organizer;\n }\n if (data.dates[`${i}`].availability == null && data.availability != null) {\n data.dates[`${i}`].availability = data.availability.toLowerCase();\n } else if (data.dates[`${i}`].availability != null) {\n data.dates[`${i}`].availability = data.dates[`${i}`].availability.toLowerCase();\n }\n if (data.dates[`${i}`].uid == null) {\n data.dates[`${i}`].uid = atcb_generate_uuid();\n }\n }\n if (data.recurrence != null && data.recurrence != '') {\n data.dates[0].recurrence = data.recurrence;\n }\n if (data.dates.length > 1) {\n data.dates.sort((a, b) => a.timestamp - b.timestamp);\n }\n return data;\n}\nfunction atcb_date_cleanup(dateTimeData) {\n if (dateTimeData.endDate == null || dateTimeData.endDate == '') {\n dateTimeData.endDate = dateTimeData.startDate;\n }\n const endpoints = ['start', 'end'];\n endpoints.forEach(function (point) {\n if (dateTimeData[point + 'Date'] != null) {\n dateTimeData[point + 'Date'] = dateTimeData[point + 'Date'].replace(/\\.\\d{3}/, '').replace('Z', '');\n const tmpSplitStartDate = dateTimeData[point + 'Date'].split('T');\n if (tmpSplitStartDate[1] != null) {\n dateTimeData[point + 'Date'] = tmpSplitStartDate[0];\n dateTimeData[point + 'Time'] = tmpSplitStartDate[1];\n }\n }\n if (dateTimeData[point + 'Time'] != null && dateTimeData[point + 'Time'].length === 8) {\n const timeStr = dateTimeData[point + 'Time'];\n dateTimeData[point + 'Time'] = timeStr.substring(0, timeStr.length - 3);\n }\n if (dateTimeData.timeZone == 'currentBrowser') {\n dateTimeData.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n let tmpDate;\n if (dateTimeData[point + 'Time'] != null) {\n tmpDate = new Date(dateTimeData[point + 'Date'] + ' ' + dateTimeData[point + 'Time']);\n } else {\n tmpDate = new Date(dateTimeData[point + 'Date']);\n }\n dateTimeData[point + 'Timestamp'] = tmpDate.getTime();\n });\n return dateTimeData;\n}\nfunction atcb_date_calculation(dateString) {\n const today = new Date();\n const todayString = today.getUTCFullYear() + '-' + (today.getUTCMonth() + 1) + '-' + today.getUTCDate();\n dateString = dateString.replace(/today/gi, todayString);\n const dateStringParts = dateString.split('+');\n const dateParts = dateStringParts[0].split('-');\n let newDate = (function () {\n if (dateParts[0].length < 4) {\n return new Date(Date.UTC(dateParts[2], dateParts[0] - 1, dateParts[1]));\n }\n return new Date(Date.UTC(dateParts[0], dateParts[1] - 1, dateParts[2]));\n })();\n if (dateStringParts[1] != null && dateStringParts[1] > 0) {\n newDate.setDate(newDate.getDate() + parseInt(dateStringParts[1]));\n }\n return newDate.toISOString().replace(/T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z/g, '');\n}\n\n\nfunction atcb_check_required(data) {\n if (data.options == null || data.options.length < 1) {\n console.error('Add to Calendar Button generation failed: no valid options set');\n return false;\n }\n if (data.name == null || data.name == '') {\n console.error('Add to Calendar Button generation failed: required name information missing');\n return false;\n }\n if (data.dates != null && data.dates.length > 0) {\n const requiredMultiField = ['name', 'startDate'];\n const requiredMultiFieldFlex = ['name'];\n return requiredMultiField.every(function (field) {\n for (let i = 0; i < data.dates.length; i++) {\n if (\n (!requiredMultiFieldFlex.includes(`${field}`) &&\n (data.dates[`${i}`][`${field}`] == null || data.dates[`${i}`][`${field}`] == '')) ||\n (requiredMultiFieldFlex.includes(`${field}`) &&\n (data.dates[`${i}`][`${field}`] == null || data.dates[`${i}`][`${field}`] == '') &&\n (data[`${field}`] == null || data[`${field}`] == ''))\n ) {\n console.error(\n 'Add to Calendar Button generation failed: required setting missing [dates array object #' +\n (i + 1) +\n '/' +\n data.dates.length +\n '] => [' +\n field +\n ']'\n );\n return false;\n }\n }\n return true;\n });\n } else {\n const requiredSingleField = ['startDate'];\n return requiredSingleField.every(function (field) {\n if (data[`${field}`] == null || data[`${field}`] == '') {\n console.error('Add to Calendar Button generation failed: required setting missing [' + field + ']');\n return false;\n }\n return true;\n });\n }\n}\nfunction atcb_validate(data) {\n const msgPrefix = 'Add to Calendar Button generation (' + data.identifier + ')';\n if (!atcb_validate_icsFile(data, msgPrefix)) return false;\n if (!atcb_validate_subscribe(data, msgPrefix)) return false;\n if (!atcb_validate_created(data, msgPrefix)) return false;\n if (!atcb_validate_updated(data, msgPrefix)) return false;\n if (!atcb_validate_options(data, msgPrefix)) return false;\n if (!atcb_validate_date_blocks(data, msgPrefix)) return false;\n if (!atcb_validate_rrule(data, msgPrefix)) return false;\n return true;\n}\nfunction atcb_validate_icsFile(data, msgPrefix, i = '', msgSuffix = '') {\n const icsFileStr = (function () {\n if (i != '' && data.dates[`${i}`].icsFile != null) {\n return data.dates[`${i}`].icsFile;\n }\n if (i == '' && data.icsFile != null) {\n return data.icsFile;\n }\n return '';\n })();\n if (icsFileStr != '') {\n if (\n !atcb_secure_url(icsFileStr, false) ||\n (!/^https:\\/\\/(.)*\\.ics$/m.test(data.icsFile) && !data.subscribe) ||\n (!data.icsFile.startsWith('https://') && data.subscribe)\n ) {\n console.error(msgPrefix + ' failed: explicit ics file path not valid' + msgSuffix);\n return false;\n }\n }\n return true;\n}\nfunction atcb_validate_subscribe(data, msgPrefix) {\n if (data.subscribe == true && (data.icsFile == null || data.icsFile == '')) {\n console.error(msgPrefix + ' failed: a subscription calendar requires a valid explicit ics file as well');\n return false;\n }\n return true;\n}\nfunction atcb_validate_created(data, msgPrefix) {\n if (!/^\\d{8}T\\d{6}Z$/.test(data.created)) {\n console.error(\n msgPrefix +\n ' failed: created date format not valid. Needs to be a full ISO-8601 UTC date and time string, formatted YYYYMMDDTHHMMSSZ'\n );\n return false;\n }\n return true;\n}\nfunction atcb_validate_updated(data, msgPrefix) {\n if (!/^\\d{8}T\\d{6}Z$/.test(data.updated)) {\n console.error(\n msgPrefix +\n ' failed: updated date format not valid. Needs to be a full ISO-8601 UTC date and time string, formatted YYYYMMDDTHHMMSSZ'\n );\n return false;\n }\n return true;\n}\nfunction atcb_validate_options(data, msgPrefix) {\n if (\n !data.options.every(function (option) {\n if (!atcbOptions.includes(option)) {\n console.error(msgPrefix + ' failed: invalid option [' + option + ']');\n return false;\n }\n return true;\n })\n ) {\n return false;\n }\n return true;\n}\nfunction atcb_validate_date_blocks(data, msgPrefix) {\n for (let i = 0; i < data.dates.length; i++) {\n const msgSuffix = (function () {\n if (data.dates.length == 1) {\n return '';\n } else {\n return ' [dates array object #' + (i + 1) + '/' + data.dates.length + '] ';\n }\n })();\n if (!atcb_validate_icsFile(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_status(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_availability(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_organizer(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_uid(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_sequence(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_timezone(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_datetime(data, msgPrefix, i, msgSuffix)) return false;\n }\n return true;\n}\nfunction atcb_validate_status(data, msgPrefix, i, msgSuffix) {\n if (\n data.dates[`${i}`].status != 'TENTATIVE' &&\n data.dates[`${i}`].status != 'CONFIRMED' &&\n data.dates[`${i}`].status != 'CANCELLED'\n ) {\n console.error(\n msgPrefix + ' failed: event status needs to be TENTATIVE, CONFIRMED, or CANCELLED' + msgSuffix\n );\n return false;\n }\n return true;\n}\nfunction atcb_validate_availability(data, msgPrefix, i, msgSuffix) {\n if (\n data.dates[`${i}`].availability != null &&\n data.dates[`${i}`].availability != '' &&\n data.dates[`${i}`].availability != 'free' &&\n data.dates[`${i}`].availability != 'busy'\n ) {\n console.error(msgPrefix + ' failed: event availability needs to be \"free\" or \"busy\"' + msgSuffix);\n return false;\n }\n return true;\n}\nfunction atcb_validate_organizer(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].organizer != null && data.dates[`${i}`].organizer != '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n if (\n organizerParts.length != 2 ||\n organizerParts[0].length > 50 ||\n organizerParts[1].length > 80 ||\n !atcb_validEmail(organizerParts[1])\n ) {\n console.error(\n msgPrefix +\n ' failed: organizer needs to match the schema \"NAME|EMAIL\" with a valid email address' +\n msgSuffix\n );\n return false;\n }\n }\n return true;\n}\nfunction atcb_validate_uid(data, msgPrefix, i, msgSuffix) {\n if (!/^(\\w|-){1,254}$/.test(data.dates[`${i}`].uid)) {\n console.warn(\n msgPrefix +\n ': UID not valid. May only contain alpha, digits, and dashes; and be less than 255 characters. Falling back to an automated value!' +\n msgSuffix\n );\n data.dates[`${i}`].uid = atcb_generate_uuid();\n }\n if (\n !/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(\n data.dates[`${i}`].uid\n )\n ) {\n console.warn(\n msgPrefix +\n ': UID is highly recommended to be a hex-encoded random Universally Unique Identifier (UUID)!' +\n msgSuffix\n );\n }\n return true;\n}\nfunction atcb_validate_sequence(data, msgPrefix, i, msgSuffix) {\n if (!/^\\d+$/.test(data.dates[`${i}`].sequence)) {\n console.log(msgPrefix + ': sequence needs to be a number. Used the default 0 instead' + msgSuffix);\n data.dates[`${i}`].sequence = 0;\n }\n return true;\n}\nfunction atcb_validate_timezone(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].timeZone != null && data.dates[`${i}`].timeZone != '') {\n const validTimeZones = tzlib_get_timezones();\n if (!validTimeZones.includes(data.dates[`${i}`].timeZone)) {\n console.error(msgPrefix + ' failed: invalid time zone given' + msgSuffix);\n return false;\n }\n }\n return true;\n}\nfunction atcb_validate_datetime(data, msgPrefix, i, msgSuffix) {\n const dates = ['startDate', 'endDate'];\n const newDate = dates;\n if (\n !dates.every(function (date) {\n if (data.dates[`${i}`][`${date}`].length !== 10) {\n console.error(msgPrefix + ' failed: date misspelled [-> YYYY-MM-DD]' + msgSuffix);\n return false;\n }\n const dateParts = data.dates[`${i}`][`${date}`].split('-');\n if (dateParts.length < 3 || dateParts.length > 3) {\n console.error(\n msgPrefix +\n ' failed: date misspelled [' +\n date +\n ': ' +\n data.dates[`${i}`][`${date}`] +\n ']' +\n msgSuffix\n );\n return false;\n }\n newDate[`${date}`] = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]);\n return true;\n })\n ) {\n return false;\n }\n const times = ['startTime', 'endTime'];\n if (\n !times.every(function (time) {\n if (data.dates[`${i}`][`${time}`] != null) {\n if (data.dates[`${i}`][`${time}`].length !== 5) {\n console.error(msgPrefix + ' failed: time misspelled [-> HH:MM]' + msgSuffix);\n return false;\n }\n const timeParts = data.dates[`${i}`][`${time}`].split(':');\n if (timeParts.length < 2 || timeParts.length > 2) {\n console.error(\n msgPrefix +\n ' failed: time misspelled [' +\n time +\n ': ' +\n data.dates[`${i}`][`${time}`] +\n ']' +\n msgSuffix\n );\n return false;\n }\n if (timeParts[0] > 23) {\n console.error(\n msgPrefix +\n ' failed: time misspelled - hours number too high [' +\n time +\n ': ' +\n timeParts[0] +\n ']' +\n msgSuffix\n );\n return false;\n }\n if (timeParts[1] > 59) {\n console.error(\n msgPrefix +\n ' failed: time misspelled - minutes number too high [' +\n time +\n ': ' +\n timeParts[1] +\n ']' +\n msgSuffix\n );\n return false;\n }\n if (time == 'startTime') {\n newDate.startDate = new Date(\n newDate.startDate.getTime() + timeParts[0] * 3600000 + timeParts[1] * 60000\n );\n }\n if (time == 'endTime') {\n newDate.endDate = new Date(\n newDate.endDate.getTime() + timeParts[0] * 3600000 + timeParts[1] * 60000\n );\n }\n }\n return true;\n })\n ) {\n return false;\n }\n if (\n (data.dates[`${i}`].startTime != null && data.dates[`${i}`].endTime == null) ||\n (data.dates[`${i}`].startTime == null && data.dates[`${i}`].endTime != null)\n ) {\n console.error(\n msgPrefix + ' failed: if you set a starting time, you also need to define an end time' + msgSuffix\n );\n return false;\n }\n if (newDate.endDate < newDate.startDate) {\n console.error(msgPrefix + ' failed: end date before start date' + msgSuffix);\n return false;\n }\n return true;\n}\nfunction atcb_validate_rrule(data, msgPrefix) {\n if (data.recurrence != null && data.recurrence != '' && data.dates.length > 1) {\n console.error(msgPrefix + ' failed: RRULE and multi-date set at the same time');\n return false;\n }\n if (data.recurrence != null && data.recurrence != '' && !/^RRULE:[\\w=;,:+-/\\\\]+$/i.test(data.recurrence)) {\n console.error(msgPrefix + ' failed: RRULE data misspelled');\n return false;\n }\n if (\n data.recurrence_interval != null &&\n data.recurrence_interval != '' &&\n !/^\\d+$/.test(data.recurrence_interval)\n ) {\n console.error(msgPrefix + ' failed: recurrence data (interval) misspelled');\n return false;\n }\n if (\n data.recurrence_until != null &&\n data.recurrence_until != '' &&\n !/^(\\d|-|:)+$/i.test(data.recurrence_until)\n ) {\n console.error(msgPrefix + ' failed: recurrence data (until) misspelled');\n return false;\n }\n if (data.recurrence_count != null && data.recurrence_count != '' && !/^\\d+$/.test(data.recurrence_count)) {\n console.error(msgPrefix + ' failed: recurrence data (interval) misspelled');\n return false;\n }\n if (\n data.recurrence_byMonth != null &&\n data.recurrence_byMonth != '' &&\n !/^(\\d|,)+$/.test(data.recurrence_byMonth)\n ) {\n console.error(msgPrefix + ' failed: recurrence data (byMonth) misspelled');\n return false;\n }\n if (\n data.recurrence_byMonthDay != null &&\n data.recurrence_byMonthDay != '' &&\n !/^(\\d|,)+$/.test(data.recurrence_byMonthDay)\n ) {\n console.error(msgPrefix + ' failed: recurrence data (byMonthDay) misspelled');\n return false;\n }\n if (\n data.recurrence_byDay != null &&\n data.recurrence_byDay != '' &&\n !/^(\\d|-|MO|TU|WE|TH|FR|SA|SU|,)+$/im.test(data.recurrence_byDay)\n ) {\n console.error(msgPrefix + ' failed: recurrence data (byDay) misspelled');\n return false;\n }\n if (\n data.recurrence_weekstart != null &&\n data.recurrence_weekstart != '' &&\n !/^(MO|TU|WE|TH|FR|SA|SU)$/im.test(data.recurrence_weekstart)\n ) {\n console.error(msgPrefix + ' failed: recurrence data (weekstart) misspelled');\n return false;\n }\n return true;\n}\n\n\nfunction atcb_toggle(action, data = '', button = '', keyboardTrigger = false, generatedButton = false) {\n if (action == 'open') {\n atcb_open(data, button, keyboardTrigger, generatedButton);\n } else if (\n action == 'close' ||\n button.classList.contains('atcb-active') ||\n document.querySelector('.atcb-active-modal')\n ) {\n atcb_close(keyboardTrigger);\n } else {\n atcb_open(data, button, keyboardTrigger, generatedButton);\n }\n}\nfunction atcb_open(data, button, keyboardTrigger = false, generatedButton = false) {\n if (document.querySelector('.atcb-list') || document.querySelector('.atcb-modal')) return;\n const list = atcb_generate_dropdown_list(data);\n const listWrapper = document.createElement('div');\n listWrapper.classList.add('atcb-list-wrapper');\n if (data.textLabelList == false) {\n listWrapper.classList.add('atcb-no-text');\n }\n if (button) {\n button.classList.add('atcb-active');\n if (data.listStyle === 'modal') {\n button.classList.add('atcb-modal-style');\n list.classList.add('atcb-modal');\n } else {\n listWrapper.appendChild(list);\n listWrapper.classList.add('atcb-dropdown');\n if (data.listStyle === 'overlay') {\n listWrapper.classList.add('atcb-dropoverlay');\n }\n if (data.mindScrolling) {\n listWrapper.classList.add('atcb-mind-scrolling');\n }\n }\n if (generatedButton) {\n list.classList.add('atcb-generated-button'); \n }\n } else {\n list.classList.add('atcb-modal');\n }\n const bgOverlay = atcb_generate_bg_overlay(data.listStyle, data.trigger, data.lightMode, data.background);\n if (data.listStyle === 'modal') {\n document.body.appendChild(bgOverlay);\n bgOverlay.appendChild(list);\n if (data.branding) {\n atcb_create_atcbl(false);\n }\n atcb_set_sizes(list, data.sizes);\n atcb_manage_body_scroll();\n } else {\n const positionWrapper = document.createElement('div');\n positionWrapper.id = 'atcb-pos-wrapper';\n positionWrapper.style.position = 'absolute';\n positionWrapper.style.top = '0';\n positionWrapper.style.bottom = '0';\n positionWrapper.style.width = '100%';\n document.body.appendChild(positionWrapper);\n positionWrapper.appendChild(listWrapper);\n listWrapper.appendChild(list);\n if (data.buttonStyle != '') {\n listWrapper.classList.add('atcb-style-' + data.buttonStyle);\n }\n if (data.branding) {\n atcb_create_atcbl();\n }\n document.body.appendChild(bgOverlay);\n atcb_set_sizes(list, data.sizes);\n listWrapper.style.display = 'none';\n setTimeout(function () {\n listWrapper.style.display = 'block';\n if (data.listStyle === 'dropdown-static') {\n atcb_position_list(button, listWrapper, true);\n } else {\n atcb_position_list(button, listWrapper);\n }\n }, 5);\n }\n atcb_set_fullsize(bgOverlay);\n if (keyboardTrigger) {\n list.firstChild.focus();\n } else {\n list.firstChild.focus({ preventScroll: true });\n }\n list.firstChild.blur();\n}\nfunction atcb_close(keyboardTrigger = false) {\n const allModals = document.querySelectorAll('.atcb-modal[data-modal-nr]');\n if (allModals.length > 1) {\n document.querySelectorAll('.atcb-modal[data-modal-nr=\"' + allModals.length + '\"]')[0].remove();\n const nextModal = document.querySelectorAll(\n '.atcb-modal[data-modal-nr=\"' + (allModals.length - 1) + '\"]'\n )[0];\n nextModal.style.display = 'block';\n let focusEl = nextModal;\n const availableButtons = nextModal.getElementsByTagName('button');\n if (availableButtons.length > 0) {\n focusEl = availableButtons[0];\n }\n focusEl.focus();\n if (!keyboardTrigger) {\n focusEl.blur();\n }\n } else {\n const newFocusEl = document.querySelector('.atcb-active, .atcb-active-modal');\n if (newFocusEl) {\n newFocusEl.focus({ preventScroll: true });\n if (!keyboardTrigger) {\n newFocusEl.blur();\n }\n }\n Array.from(document.querySelectorAll('.atcb-active')).forEach((button) => {\n button.classList.remove('atcb-active');\n });\n Array.from(document.querySelectorAll('.atcb-active-modal')).forEach((button) => {\n button.classList.remove('atcb-active-modal');\n });\n document.body.classList.remove('atcb-modal-no-scroll');\n Array.from(document.querySelectorAll('.atcb-list-wrapper'))\n .concat(Array.from(document.querySelectorAll('.atcb-list')))\n .concat(Array.from(document.querySelectorAll('.atcb-modal[data-modal-nr]')))\n .concat(Array.from(document.querySelectorAll('#add-to-calendar-button-reference')))\n .concat(Array.from(document.querySelectorAll('#atcb-pos-wrapper')))\n .concat(Array.from(document.querySelectorAll('#atcb-bgoverlay')))\n .forEach((el) => el.remove());\n }\n}\n\n\nfunction atcb_generate_label(data, parent, type, icon = false, text = '', oneOption = false) {\n switch (type) {\n case 'trigger':\n default:\n parent.id = data.identifier;\n if (data.trigger === 'click') {\n parent.addEventListener('click', (event) => {\n event.preventDefault();\n atcb_toggle('auto', data, parent, false, true);\n });\n } else {\n parent.addEventListener('touchend', (event) => {\n event.preventDefault();\n atcb_toggle('auto', data, parent, false, true);\n });\n parent.addEventListener(\n 'mouseenter',\n atcb_debounce_leading((event) => {\n event.preventDefault();\n atcb_toggle('open', data, parent, false, true);\n })\n );\n }\n parent.addEventListener('keyup', function (event) {\n if (event.key == 'Enter') {\n event.preventDefault();\n atcb_toggle('auto', data, parent, true, true);\n }\n });\n break;\n case 'apple':\n case 'google':\n case 'ical':\n case 'msteams':\n case 'ms365':\n case 'outlookcom':\n case 'yahoo':\n parent.id = data.identifier + '-' + type;\n parent.addEventListener(\n 'click',\n atcb_debounce(() => {\n oneOption ? parent.blur() : atcb_toggle('close');\n atcb_generate_links(type, data);\n })\n );\n parent.addEventListener('keyup', function (event) {\n if (event.key == 'Enter') {\n event.preventDefault();\n oneOption ? parent.blur() : atcb_toggle('close');\n atcb_generate_links(type, data, 'all', true);\n }\n });\n break;\n case 'close':\n parent.id = data.identifier + '-close';\n parent.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_toggle('close');\n })\n );\n parent.addEventListener('keyup', function (event) {\n if (event.key == 'Enter') {\n event.preventDefault();\n atcb_toggle('close', data, 'all', true);\n }\n });\n break;\n }\n if (oneOption) {\n parent.id = data.identifier;\n }\n atcb_generate_label_content(data, parent, type, icon, text, oneOption);\n}\nfunction atcb_generate_label_content(data, parent, type, icon, text, oneOption) {\n const defaultTriggerText = atcb_translate_hook('Add to Calendar', data);\n if (oneOption && text == '') {\n text = defaultTriggerText;\n }\n switch (type) {\n case 'trigger':\n default:\n text = text || defaultTriggerText;\n break;\n case 'apple':\n text = text || 'Apple';\n break;\n case 'google':\n text = text || 'Google';\n break;\n case 'ical':\n text = text || atcb_translate_hook('iCal File', data);\n break;\n case 'msteams':\n text = text || 'Microsoft Teams';\n break;\n case 'ms365':\n text = text || 'Microsoft 365';\n break;\n case 'outlookcom':\n text = text || 'Outlook.com';\n break;\n case 'yahoo':\n text = text || 'Yahoo';\n break;\n case 'close':\n text = atcb_translate_hook('Close', data);\n break;\n }\n if (data.buttonStyle == 'date' && (type == 'trigger' || oneOption)) {\n return;\n }\n if (icon) {\n const iconEl = document.createElement('span');\n iconEl.classList.add('atcb-icon');\n iconEl.innerHTML = atcbIcon[`${type}`];\n parent.appendChild(iconEl);\n }\n if (\n (type == 'trigger' && data.textLabelButton == true) ||\n (type != 'trigger' && data.textLabelList == true)\n ) {\n const textEl = document.createElement('span');\n textEl.classList.add('atcb-text');\n textEl.textContent = text;\n parent.appendChild(textEl);\n }\n}\nfunction atcb_generate_button(button, data) {\n button.textContent = '';\n if (data.richData && data.name && data.dates[0].location && data.dates[0].startDate) {\n atcb_generate_rich_data(data, button);\n }\n const buttonTriggerWrapper = document.createElement('div');\n buttonTriggerWrapper.classList.add('atcb-button-wrapper');\n buttonTriggerWrapper.classList.add('atcb-' + data.lightMode);\n if (data.rtl) {\n buttonTriggerWrapper.classList.add('atcb-rtl');\n }\n button.appendChild(buttonTriggerWrapper);\n atcb_set_sizes(buttonTriggerWrapper, data.sizes);\n const buttonTrigger = document.createElement('button');\n buttonTrigger.classList.add('atcb-button');\n if (data.textLabelButton == false) {\n buttonTrigger.classList.add('atcb-no-text');\n }\n if (data.trigger === 'click') {\n buttonTrigger.classList.add('atcb-click');\n }\n if (data.listStyle === 'overlay') {\n buttonTrigger.classList.add('atcb-dropoverlay');\n }\n buttonTrigger.type = 'button';\n buttonTriggerWrapper.appendChild(buttonTrigger);\n if (data.buttonStyle == 'date') {\n atcb_generate_date_button(data, buttonTrigger);\n }\n if (data.options.length === 1) {\n buttonTrigger.classList.add('atcb-single');\n atcb_generate_label(data, buttonTrigger, data.options[0], data.iconButton, data.label, true);\n } else {\n atcb_generate_label(data, buttonTrigger, 'trigger', data.iconButton, data.label);\n const buttonDropdownAnchor = document.createElement('div');\n buttonDropdownAnchor.classList.add('atcb-dropdown-anchor');\n buttonTrigger.appendChild(buttonDropdownAnchor);\n }\n if (data.checkmark) {\n const btnCheck = document.createElement('div');\n btnCheck.classList.add('atcb-checkmark');\n btnCheck.innerHTML = atcbIcon['checkmark'];\n buttonTrigger.appendChild(btnCheck);\n }\n button.classList.remove('atcb');\n button.classList.add('atcb-initialized');\n if (data.inline) {\n button.style.display = 'inline-block';\n } else {\n button.style.display = 'block';\n }\n console.log('Add to Calendar Button \"' + data.identifier + '\" created');\n}\nfunction atcb_generate_rich_data(data, button) {\n const schemaEl = document.createElement('script');\n schemaEl.type = 'application/ld+json';\n const schemaContentMulti = [];\n if (data.dates.length > 1) {\n const parts = [];\n parts.push('\"@context\":\"https://schema.org\"');\n parts.push('\"@type\":\"EventSeries\"');\n parts.push('\"@id\":\"' + data.name.replace(/\\s/g, '') + '\"');\n parts.push('\"name\":\"' + data.name + '\",');\n schemaContentMulti.push('{\\r\\n' + parts.join(',\\r\\n') + '\\r\\n');\n }\n const schemaContentFull = [];\n for (let i = 0; i < data.dates.length; i++) {\n const schemaContent = [];\n schemaContent.push('\"@context\":\"https://schema.org\"');\n schemaContent.push('\"@type\":\"Event\"');\n if (data.dates.length > 1) {\n schemaContent.push('\"@id\":\"' + data.name.replace(/\\s/g, '') + '-' + (i + 1) + '\"');\n }\n if (data.dates[`${i}`].status == 'CANCELLED') {\n schemaContent.push('\"eventStatus\":\"https://schema.org/EventCancelled\"');\n }\n schemaContent.push('\"name\":\"' + data.dates[`${i}`].name + '\"');\n if (data.dates[`${i}`].descriptionHtmlFree) {\n schemaContent.push('\"description\":\"' + data.dates[`${i}`].descriptionHtmlFree + '\"');\n }\n const formattedDate = atcb_generate_time(data.dates[`${i}`], 'delimiters', 'general', true);\n schemaContent.push('\"startDate\":\"' + formattedDate.start + '\"');\n if (formattedDate.duration != null) {\n schemaContent.push('\"duration\":\"' + formattedDate.duration + '\"');\n }\n schemaContent.push(\n data.dates[`${i}`].location.startsWith('http')\n ? '\"eventAttendanceMode\":\"https://schema.org/OnlineEventAttendanceMode\",\\r\\n\"location\": {\\r\\n\"@type\":\"VirtualLocation\",\\r\\n\"url\":\"' +\n data.dates[`${i}`].location +\n '\"\\r\\n}'\n : '\"location\":\"' + data.dates[`${i}`].location + '\"'\n );\n if (data.recurrence != null && data.recurrence != '') {\n schemaContent.push(...atcb_generate_rich_data_recurrence(data, formattedDate));\n } else {\n schemaContent.push('\"endDate\":\"' + formattedDate.end + '\"');\n }\n if (data.dates[`${i}`].organizer != null && data.dates[`${i}`].organizer != '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n schemaContent.push(\n '\"organizer\":{\\r\\n\"@type\":\"Person\",\\r\\n\"name\":\"' +\n organizerParts[0] +\n '\",\\r\\n\"email\":\"' +\n organizerParts[1] +\n '\"\\r\\n}'\n );\n }\n const imageData = [];\n if (data.images != null) {\n if (Array.isArray(data.images)) {\n for (let i = 0; i < data.images.length; i++) {\n if (atcb_secure_url(data.images[`${i}`]) && data.images[`${i}`].startsWith('http')) {\n imageData.push('\"' + data.images[`${i}`] + '\"');\n }\n }\n }\n } else {\n imageData.push('\"https://add-to-calendar-button.com/demo_assets/img/1x1.png\"');\n imageData.push('\"https://add-to-calendar-button.com/demo_assets/img/4x3.png\"');\n imageData.push('\"https://add-to-calendar-button.com/demo_assets/img/16x9.png\"');\n }\n if (imageData.length > 0) {\n schemaContent.push('\"image\":[\\r\\n' + imageData.join(',\\r\\n') + ']');\n }\n schemaContentFull.push('{\\r\\n' + schemaContent.join(',\\r\\n') + '\\r\\n}');\n }\n if (data.dates.length > 1) {\n schemaEl.textContent =\n schemaContentMulti.join(',\\r\\n') + '\"subEvents\":[\\r\\n' + schemaContentFull.join(',\\r\\n') + '\\r\\n]\\r\\n}';\n } else {\n schemaEl.textContent = schemaContentFull[0];\n }\n button.appendChild(schemaEl);\n}\nfunction atcb_generate_rich_data_recurrence(data, formattedDate) {\n const schemaRecurrenceContent = [];\n schemaRecurrenceContent.push('\"eventSchedule\": { \"@type\": \"Schedule\"');\n if (data.dates[0].timeZone != null && data.dates[0].timeZone != '') {\n schemaRecurrenceContent.push('\"scheduleTimezone\":\"' + data.dates[0].timeZone + '\"');\n }\n const repeatFrequency = 'P' + data.recurrence_interval + data.recurrence_frequency.substr(0, 1);\n schemaRecurrenceContent.push('\"repeatFrequency\":\"' + repeatFrequency + '\"');\n if (data.recurrence_byDay != null && data.recurrence_byDay != '') {\n const byDayString = (function () {\n if (/\\d/.test(data.recurrence_byDay)) {\n return '\"' + data.recurrence_byDay + '\"';\n } else {\n const byDays = data.recurrence_byDay.split(',');\n const helperMap = {\n MO: 'https://schema.org/Monday',\n TU: 'https://schema.org/Tuesday',\n WE: 'https://schema.org/Wednesday',\n TH: 'https://schema.org/Thursday',\n FR: 'https://schema.org/Friday',\n SA: 'https://schema.org/Saturday',\n SU: 'https://schema.org/Sunday',\n };\n const output = [];\n for (let i = 0; i < byDays.length; i++) {\n output.push('\"' + helperMap[byDays[`${i}`]] + '\"');\n }\n return '[' + output.join(',') + ']';\n }\n })();\n schemaRecurrenceContent.push('\"byDay\":' + byDayString);\n }\n if (data.recurrence_byMonth != null && data.recurrence_byMonth != '') {\n const byMonthString = data.recurrence_byMonth.includes(',')\n ? '[' + data.recurrence_byMonth + ']'\n : data.recurrence_byMonth;\n schemaRecurrenceContent.push('\"byMonth\":\"' + byMonthString + '\"');\n }\n if (data.recurrence_byMonthDay != null && data.recurrence_byMonthDay != '') {\n const byMonthDayString = data.recurrence_byMonthDay.includes(',')\n ? '[' + data.recurrence_byMonthDay + ']'\n : data.recurrence_byMonthDay;\n schemaRecurrenceContent.push('\"byMonthDay\":\"' + byMonthDayString + '\"');\n }\n if (data.recurrence_count != null && data.recurrence_count != '') {\n schemaRecurrenceContent.push('\"repeatCount\":\"' + data.recurrence_count + '\"');\n }\n if (data.recurrence_until != null && data.recurrence_until != '') {\n schemaRecurrenceContent.push('\"endDate\":\"' + data.recurrence_until + '\"');\n }\n if (data.startTime != null && data.startTime != '' && data.endTime != null && data.endTime != '') {\n schemaRecurrenceContent.push('\"startTime\":\"' + data.startTime + ':00\"');\n schemaRecurrenceContent.push('\"endTime\":\"' + data.endTime + ':00\"');\n schemaRecurrenceContent.push('\"duration\":\"' + formattedDate.duration + '\"');\n }\n schemaRecurrenceContent.push('\"startDate\":\"' + data.startDate + '\" }');\n return schemaRecurrenceContent;\n}\nfunction atcb_generate_dropdown_list(data) {\n const optionsList = document.createElement('div');\n optionsList.classList.add('atcb-list');\n optionsList.classList.add('atcb-' + data.lightMode);\n if (data.rtl) {\n optionsList.classList.add('atcb-rtl');\n }\n let listCount = 0;\n data.options.forEach(function (option) {\n const optionItem = document.createElement('div');\n optionItem.classList.add('atcb-list-item');\n optionItem.tabIndex = 0;\n listCount++;\n optionItem.dataset.optionNumber = listCount;\n optionsList.appendChild(optionItem);\n atcb_generate_label(data, optionItem, option, data.iconList, data.optionLabels[listCount - 1]);\n });\n if (data.listStyle === 'modal') {\n const optionItem = document.createElement('div');\n optionItem.classList.add('atcb-list-item', 'atcb-list-item-close');\n optionItem.tabIndex = 0;\n optionsList.appendChild(optionItem);\n atcb_generate_label(data, optionItem, 'close', data.iconList);\n }\n return optionsList;\n}\nfunction atcb_generate_bg_overlay(listStyle = 'dropdown', trigger = '', lightMode = 'light', darken = true) {\n const bgOverlay = document.createElement('div');\n bgOverlay.id = 'atcb-bgoverlay';\n if (listStyle !== 'modal' && darken) {\n bgOverlay.classList.add('atcb-animate-bg');\n }\n if (!darken) {\n bgOverlay.classList.add('atcb-no-bg');\n }\n bgOverlay.classList.add('atcb-' + lightMode);\n bgOverlay.tabIndex = 0;\n bgOverlay.addEventListener(\n 'click',\n atcb_debounce((e) => {\n if (e.target !== e.currentTarget) return;\n atcb_toggle('close');\n })\n );\n let fingerMoved = false;\n bgOverlay.addEventListener(\n 'touchstart',\n atcb_debounce_leading(() => (fingerMoved = false)),\n { passive: true }\n );\n bgOverlay.addEventListener(\n 'touchmove',\n atcb_debounce_leading(() => (fingerMoved = true)),\n { passive: true }\n );\n bgOverlay.addEventListener(\n 'touchend',\n atcb_debounce((e) => {\n if (fingerMoved !== false || e.target !== e.currentTarget) return;\n atcb_toggle('close');\n }),\n { passive: true }\n );\n bgOverlay.addEventListener(\n 'focus',\n atcb_debounce_leading((e) => {\n if (e.target !== e.currentTarget) return;\n atcb_toggle('close');\n })\n );\n if (trigger !== 'click') {\n bgOverlay.addEventListener(\n 'mousemove',\n atcb_debounce_leading((e) => {\n if (e.target !== e.currentTarget) return;\n atcb_toggle('close');\n })\n );\n } else {\n bgOverlay.classList.add('atcb-click');\n }\n return bgOverlay;\n}\nfunction atcb_create_atcbl(atList = true) {\n /*const atcbL = document.createElement('div');\n atcbL.id = 'add-to-calendar-button-reference';\n atcbL.style.width = '150px';\n atcbL.style.padding = '10px 0';\n atcbL.style.height = 'auto';\n atcbL.style.transform = 'translate3d(0, 0, 0)';\n atcbL.style.zIndex = '15000000';\n setTimeout(() => {\n atcbL.innerHTML =\n '' +\n atcbIcon['atcb'] +\n '';\n }, 500); \n document.body.appendChild(atcbL);\n if (atList) {\n atcbL.style.position = 'absolute';\n } else {\n if (window.innerHeight > 1000 || window.innerWidth > 1000) {\n atcbL.style.position = 'fixed';\n atcbL.style.bottom = '15px';\n atcbL.style.right = '30px';\n }\n }*/\n}\nfunction atcb_create_modal(\n data,\n icon = '',\n headline,\n content = '',\n buttons = [],\n subEvents = [],\n keyboardTrigger = false\n) {\n const bgOverlay = (function () {\n const el = document.getElementById('atcb-bgoverlay');\n if (!el) {\n return atcb_generate_bg_overlay('modal', 'click', data.lightMode, data.background);\n } else {\n return el;\n }\n })();\n bgOverlay.classList.add('atcb-no-animation');\n document.body.appendChild(bgOverlay);\n const modalWrapper = document.createElement('div');\n modalWrapper.classList.add('atcb-modal');\n bgOverlay.appendChild(modalWrapper);\n const modalCount = document.querySelectorAll('.atcb-modal').length;\n modalWrapper.dataset.modalNr = modalCount;\n modalWrapper.tabIndex = 0;\n modalWrapper.focus({ preventScroll: true });\n modalWrapper.blur();\n const parentButton = document.getElementById(data.identifier);\n if (parentButton != null) {\n parentButton.classList.add('atcb-active-modal');\n }\n const modal = document.createElement('div');\n modal.classList.add('atcb-modal-box');\n modal.classList.add('atcb-' + data.lightMode);\n if (data.rtl) {\n modal.classList.add('atcb-rtl');\n }\n modalWrapper.appendChild(modal);\n atcb_set_sizes(modal, data.sizes);\n atcb_set_fullsize(bgOverlay);\n if (icon != '' && data.iconModal == true) {\n const modalIcon = document.createElement('div');\n modalIcon.classList.add('atcb-modal-icon');\n modalIcon.innerHTML = atcbIcon[`${icon}`];\n modal.appendChild(modalIcon);\n }\n const modalHeadline = document.createElement('div');\n modalHeadline.classList.add('atcb-modal-headline');\n modalHeadline.textContent = headline;\n modal.appendChild(modalHeadline);\n if (content != '') {\n const modalContent = document.createElement('div');\n modalContent.classList.add('atcb-modal-content');\n modalContent.innerHTML = content;\n modal.appendChild(modalContent);\n }\n if (subEvents.length > 1) {\n if (data.branding) {\n atcb_create_atcbl(false);\n }\n const modalsubEventsContent = document.createElement('div');\n modalsubEventsContent.classList.add('atcb-modal-content');\n modal.appendChild(modalsubEventsContent);\n for (let i = 1; i < subEvents.length; i++) {\n const modalSubEventButton = document.createElement('button');\n modalSubEventButton.type = 'button';\n modalSubEventButton.id = data.identifier + '-' + subEvents[0] + '-' + i;\n if (atcbStates[`${data.identifier}`][`${subEvents[0]}`][i - 1] > 0) {\n modalSubEventButton.classList.add('atcb-saved');\n }\n modalSubEventButton.classList.add('atcb-subevent-btn');\n modalsubEventsContent.appendChild(modalSubEventButton);\n atcb_generate_date_button(data, modalSubEventButton, i);\n if (i == 1 && keyboardTrigger) {\n modalSubEventButton.focus();\n }\n switch (subEvents[0]) {\n case 'apple':\n case 'google':\n case 'ical':\n case 'msteams':\n case 'ms365':\n case 'outlookcom':\n case 'yahoo':\n modalSubEventButton.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_generate_links(subEvents[0], data, subEvents[`${i}`], keyboardTrigger, true);\n })\n );\n break;\n }\n }\n }\n if (buttons.length == 0) {\n buttons.push({ type: 'close', label: atcb_translate_hook('Close', data) });\n }\n const modalButtons = document.createElement('div');\n modalButtons.classList.add('atcb-modal-buttons');\n modal.appendChild(modalButtons);\n buttons.forEach((button, index) => {\n let modalButton;\n if (button.href != null && button.href != '') {\n modalButton = document.createElement('a');\n modalButton.setAttribute('target', atcbDefaultTarget);\n modalButton.setAttribute('href', button.href);\n modalButton.setAttribute('rel', 'noopener');\n } else {\n modalButton = document.createElement('button');\n modalButton.type = 'button';\n }\n modalButton.classList.add('atcb-modal-btn');\n if (button.primary) {\n modalButton.classList.add('atcb-modal-btn-primary');\n }\n if (button.label == null || button.label == '') {\n button.label = atcb_translate_hook('Click me', data);\n }\n modalButton.textContent = button.label;\n modalButtons.appendChild(modalButton);\n if (index == 0 && subEvents.length < 2 && keyboardTrigger) {\n modalButton.focus();\n }\n switch (button.type) {\n default:\n case 'close':\n modalButton.addEventListener(\n 'click',\n atcb_debounce(() => atcb_close())\n );\n modalButton.addEventListener('keyup', function (event) {\n if (event.key == 'Enter') {\n atcb_toggle('close', '', '', true);\n }\n });\n break;\n case 'yahoo2nd':\n modalButton.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_close();\n atcb_subscribe_yahoo_modal_switch(data);\n })\n );\n modalButton.addEventListener('keyup', function (event) {\n if (event.key == 'Enter') {\n atcb_toggle('close', '', '', true);\n atcb_subscribe_yahoo_modal_switch(data, keyboardTrigger);\n }\n });\n break;\n case 'none':\n break;\n }\n });\n if (modalCount > 1) {\n const prevModal = document.querySelectorAll('.atcb-modal[data-modal-nr=\"' + (modalCount - 1) + '\"]')[0];\n prevModal.style.display = 'none';\n }\n atcb_manage_body_scroll(modalWrapper);\n}\nfunction atcb_subscribe_yahoo_modal_switch(data, keyboardTrigger) {\n atcb_set_fully_successful(data.identifier);\n atcb_generate_links('yahoo2nd', data, 'all', keyboardTrigger);\n}\nfunction atcb_generate_date_button(data, parent, subEvent = 'all') {\n if (subEvent != 'all') {\n subEvent = parseInt(subEvent) - 1;\n } else if (data.dates.length == 1) {\n subEvent = 0;\n }\n const fullTimeInfo = (function () {\n let startDateInfo, endDateInfo, timeZoneInfoStart, timeZoneInfoEnd;\n let formattedTimeStart = {};\n let formattedTimeEnd = {};\n if (subEvent == 'all') {\n formattedTimeStart = atcb_generate_time(data.dates[0]);\n formattedTimeEnd = atcb_generate_time(data.dates[data.dates.length - 1]);\n timeZoneInfoStart = data.dates[0].timeZone;\n timeZoneInfoEnd = data.dates[data.dates.length - 1].timeZone;\n } else {\n formattedTimeStart = atcb_generate_time(data.dates[`${subEvent}`]);\n formattedTimeEnd = formattedTimeStart;\n timeZoneInfoStart = data.dates[`${subEvent}`].timeZone;\n timeZoneInfoEnd = timeZoneInfoStart;\n }\n startDateInfo = new Date(formattedTimeStart.start);\n endDateInfo = new Date(formattedTimeEnd.end);\n if (timeZoneInfoStart == undefined || timeZoneInfoStart == '' || formattedTimeStart.allday) {\n timeZoneInfoStart = 'UTC';\n }\n if (timeZoneInfoEnd == undefined || timeZoneInfoEnd == '' || formattedTimeEnd.allday) {\n timeZoneInfoEnd = 'UTC';\n }\n let timeString = '';\n let timeZoneInfoStringStart = '';\n let timeZoneInfoStringEnd = '';\n if (\n !formattedTimeStart.allday &&\n Intl.DateTimeFormat().resolvedOptions().timeZone != timeZoneInfoStart &&\n timeZoneInfoStart != timeZoneInfoEnd\n ) {\n timeZoneInfoStringStart = ' (' + timeZoneInfoStart + ')';\n }\n if (\n (!formattedTimeEnd.allday && Intl.DateTimeFormat().resolvedOptions().timeZone != timeZoneInfoEnd) ||\n timeZoneInfoStart != timeZoneInfoEnd\n ) {\n timeZoneInfoStringEnd = ' (' + timeZoneInfoEnd + ')';\n }\n const formatOptionsStart = get_format_options(timeZoneInfoStart);\n const formatOptionsEnd = get_format_options(timeZoneInfoEnd);\n if (startDateInfo.toLocaleDateString(data.language, formatOptionsEnd.DateLong) === endDateInfo.toLocaleDateString(data.language, formatOptionsEnd.DateLong)) {\n if (formattedTimeStart.allday) {\n timeString = startDateInfo.toLocaleDateString(data.language, formatOptionsStart.DateShort);\n } else {\n timeString =\n startDateInfo.toLocaleString(data.language, formatOptionsStart.DateTimeShort) +\n timeZoneInfoStringStart +\n ' - ' +\n endDateInfo.toLocaleTimeString(data.language, formatOptionsEnd.Time) +\n timeZoneInfoStringEnd;\n }\n } else {\n if (formattedTimeStart.allday) {\n timeString = startDateInfo.toLocaleDateString(data.language, formatOptionsStart.DateShort);\n } else {\n timeString = startDateInfo.toLocaleString(data.language, formatOptionsStart.DateTimeShort);\n }\n timeString += timeZoneInfoStringStart + ' - ';\n if (formattedTimeEnd.allday) {\n timeString += endDateInfo.toLocaleDateString(data.language, formatOptionsEnd.DateLong);\n } else {\n timeString += endDateInfo.toLocaleString(data.language, formatOptionsEnd.DateTimeLong);\n }\n timeString += timeZoneInfoStringEnd;\n }\n return timeString;\n })();\n const hoverText = (function () {\n if (subEvent != 'all' && data.dates[`${subEvent}`].status == 'CANCELLED') {\n return (\n atcb_translate_hook('Cancelled Date', data) +\n '
' +\n atcb_translate_hook('Delete from Calendar', data)\n );\n }\n return '+ ' + atcb_translate_hook('Add to Calendar', data);\n })();\n const cancelledInfo = (function () {\n if (subEvent != 'all' && data.dates[`${subEvent}`].status == 'CANCELLED') {\n return atcb_translate_hook('Cancelled Date', data);\n }\n return '';\n })();\n if (subEvent == 'all') {\n subEvent = 0;\n }\n const startDate = new Date(atcb_generate_time(data.dates[`${subEvent}`]).start);\n const timeZone = (function () {\n if (data.dates[`${subEvent}`].timeZone != null && data.dates[`${subEvent}`].timeZone != '') {\n return data.dates[`${subEvent}`].timeZone;\n } else {\n return 'UTC';\n }\n })();\n const btnLeft = document.createElement('div');\n btnLeft.classList.add('atcb-date-btn-left');\n parent.appendChild(btnLeft);\n const btnDay = document.createElement('div');\n btnDay.classList.add('atcb-date-btn-day');\n btnLeft.appendChild(btnDay);\n const btnMonth = document.createElement('div');\n btnMonth.classList.add('atcb-date-btn-month');\n btnDay.textContent = startDate.toLocaleString(data.language, {\n day: 'numeric',\n timeZone: timeZone,\n });\n btnMonth.textContent = startDate.toLocaleString(data.language, {\n month: 'short',\n timeZone: timeZone,\n });\n btnLeft.appendChild(btnMonth);\n const btnRight = document.createElement('div');\n btnRight.classList.add('atcb-date-btn-right');\n parent.appendChild(btnRight);\n const btnDetails = document.createElement('div');\n btnDetails.classList.add('atcb-date-btn-details');\n btnRight.appendChild(btnDetails);\n const btnHeadline = document.createElement('div');\n btnHeadline.classList.add('atcb-date-btn-headline');\n btnHeadline.textContent = data.dates[`${subEvent}`].name;\n btnDetails.appendChild(btnHeadline);\n if ((data.location != null && data.location != '') || cancelledInfo != '') {\n const btnLocation = document.createElement('div');\n btnLocation.classList.add('atcb-date-btn-content');\n btnDetails.appendChild(btnLocation);\n if (cancelledInfo != '') {\n btnLocation.textContent = cancelledInfo;\n btnLocation.style.fontWeight = '600';\n btnLocation.style.color = '#9c1a23';\n } else {\n btnLocation.classList.add('atcb-date-btn-content-location');\n const btnLocationIcon = document.createElement('span');\n btnLocationIcon.classList.add('atcb-date-btn-content-icon');\n btnLocationIcon.innerHTML = atcbIcon['location'];\n btnLocation.appendChild(btnLocationIcon);\n const btnLocationText = document.createElement('span');\n btnLocationText.textContent = data.location;\n btnLocation.appendChild(btnLocationText);\n }\n }\n const btnDateTime = document.createElement('div');\n btnDateTime.classList.add('atcb-date-btn-content');\n btnDetails.appendChild(btnDateTime);\n const btnDateTimeIcon = document.createElement('span');\n btnDateTimeIcon.classList.add('atcb-date-btn-content-icon');\n btnDateTimeIcon.innerHTML = atcbIcon['ical'];\n btnDateTime.appendChild(btnDateTimeIcon);\n const btnDateTimeText = document.createElement('span');\n btnDateTimeText.textContent = fullTimeInfo;\n btnDateTime.appendChild(btnDateTimeText);\n if (data.recurrence != null && data.recurrence != '') {\n const recurSign = document.createElement('span');\n recurSign.classList.add('atcb-date-btn-content-recurr-icon');\n btnDateTime.appendChild(recurSign);\n recurSign.innerHTML = '⟳';\n }\n const btnHover = document.createElement('div');\n btnHover.classList.add('atcb-date-btn-hover');\n btnHover.innerHTML = hoverText;\n btnRight.appendChild(btnHover);\n if (data.checkmark) {\n const btnCheck = document.createElement('div');\n btnCheck.classList.add('atcb-checkmark');\n btnCheck.innerHTML = atcbIcon['checkmark'];\n parent.appendChild(btnCheck);\n }\n}\nfunction get_format_options(timeZoneInfo) {\n return {\n DateShort: {\n timeZone: timeZoneInfo,\n year: 'numeric',\n },\n DateLong: {\n timeZone: timeZoneInfo,\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n },\n DateTimeShort: {\n timeZone: timeZoneInfo,\n year: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: 'h23',\n },\n DateTimeLong: {\n timeZone: timeZoneInfo,\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: 'h23',\n },\n Time: {\n timeZone: timeZoneInfo,\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: 'h23',\n },\n };\n}\n\n\nfunction atcb_generate_links(type, data, subEvent = 'all', keyboardTrigger = false, multiDateModal = false) {\n if (subEvent != 'all') {\n subEvent = parseInt(subEvent) - 1;\n } else if (data.dates.length == 1) {\n subEvent = 0;\n }\n if (data.subscribe) {\n atcb_generate_subscribe_links(type, data, keyboardTrigger);\n return;\n }\n if (isMobile() && (type == 'msteams' || type == 'ms365' || type == 'outlookcom')) {\n type = 'ical';\n }\n if (subEvent != 'all') {\n if (data.dates[`${subEvent}`].status == 'CANCELLED' && type != 'apple' && type != 'ical') {\n atcb_create_modal(\n data,\n 'warning',\n atcb_translate_hook('Cancelled Date', data),\n atcb_translate_hook('Delete from Calendar', data),\n [],\n [],\n keyboardTrigger\n );\n } else {\n switch (type) {\n case 'apple':\n case 'ical':\n atcb_generate_ical(data, subEvent, keyboardTrigger);\n break;\n case 'google':\n atcb_generate_google(data.dates[`${subEvent}`]);\n break;\n case 'msteams':\n atcb_generate_msteams(data.dates[`${subEvent}`]);\n break;\n case 'ms365':\n atcb_generate_microsoft(data.dates[`${subEvent}`]);\n break;\n case 'outlookcom':\n atcb_generate_microsoft(data.dates[`${subEvent}`], 'outlook');\n break;\n case 'yahoo':\n atcb_generate_yahoo(data.dates[`${subEvent}`]);\n break;\n }\n }\n const subEventButton = document.getElementById(data.identifier + '-' + type + '-' + (subEvent + 1));\n if (subEventButton) {\n subEventButton.classList.add('atcb-saved');\n }\n atcbStates[`${data.identifier}`][`${type}`][`${subEvent}`]++;\n const filteredStates = atcbStates[`${data.identifier}`][`${type}`].filter(function (value) {\n return value < 1;\n });\n if (filteredStates.length == 0) {\n atcb_set_fully_successful(data.identifier, multiDateModal);\n }\n return;\n }\n atcb_generate_multidate_links(type, data, keyboardTrigger, multiDateModal);\n}\nfunction atcb_generate_multidate_links(type, data, keyboardTrigger, multiDateModal) {\n if (\n (type == 'ical' || type == 'apple') &&\n data.dates.every(function (theSubEvent) {\n if (\n theSubEvent.status == 'CANCELLED' ||\n (theSubEvent.organizer != null && theSubEvent.organizer != '')\n ) {\n return false;\n }\n return true;\n })\n ) {\n atcb_generate_ical(data, 'all', keyboardTrigger);\n for (let i = 0; i < atcbStates[`${data.identifier}`][`${type}`].length; i++) {\n atcbStates[`${data.identifier}`][`${type}`][`${i}`]++;\n }\n atcb_set_fully_successful(data.identifier, multiDateModal);\n return;\n }\n if (!multiDateModal) {\n const individualButtons = [type];\n for (let i = 0; i < data.dates.length; i++) {\n individualButtons.push(i + 1);\n }\n atcb_create_modal(\n data,\n type,\n atcb_translate_hook('modal.multidate.h', data),\n atcb_translate_hook('modal.multidate.text', data),\n [],\n individualButtons,\n keyboardTrigger\n );\n }\n}\nfunction atcb_generate_subscribe_links(type, data, keyboardTrigger) {\n const adjustedFileUrl = data.icsFile.replace('https://', 'webcal://');\n switch (type) {\n case 'apple':\n case 'ical':\n atcb_subscribe_ical(adjustedFileUrl);\n break;\n case 'google':\n atcb_subscribe_google(adjustedFileUrl.replace('webcal://calendar.google.com/calendar/u/2?cid=', ''));\n break;\n case 'ms365':\n atcb_subscribe_microsoft(adjustedFileUrl, data.name);\n break;\n case 'outlookcom':\n atcb_subscribe_microsoft(adjustedFileUrl, data.name, 'outlook');\n break;\n case 'yahoo':\n atcb_copy_to_clipboard(data.icsFile);\n atcb_create_modal(\n data,\n 'yahoo',\n atcb_translate_hook('modal.subscribe.yahoo.h', data),\n atcb_translate_hook('modal.clipboard.text', data) +\n '
' +\n atcb_translate_hook('modal.subscribe.yahoo.text', data),\n [\n {\n label: atcb_translate_hook('Open Yahoo Calendar', data),\n primary: true,\n type: 'yahoo2nd',\n href: 'https://www.yahoo.com/calendar',\n },\n { label: atcb_translate_hook('Cancel', data) },\n ],\n [],\n keyboardTrigger\n );\n return;\n case 'yahoo2nd':\n atcb_copy_to_clipboard(data.icsFile);\n atcb_create_modal(\n data,\n 'yahoo',\n atcb_translate_hook('modal.subscribe.yahoo.h', data),\n atcb_translate_hook('modal.clipboard.text', data) +\n '
' +\n atcb_translate_hook('modal.subscribe.yahoo.text', data),\n [\n {\n label: atcb_translate_hook('Open Yahoo Calendar', data),\n type: 'none',\n href: 'https://www.yahoo.com/calendar',\n },\n { label: atcb_translate_hook('Cancel', data) },\n ],\n [],\n keyboardTrigger\n );\n return;\n }\n atcb_set_fully_successful(data.identifier);\n}\nfunction atcb_set_fully_successful(id, multiDateModal) {\n const trigger = document.getElementById(id);\n if (trigger) {\n trigger.classList.add('atcb-saved');\n }\n atcb_saved_hook();\n if (multiDateModal && document.querySelectorAll('.atcb-modal[data-modal-nr]').length < 2) {\n atcb_toggle('close');\n }\n}\nfunction atcb_subscribe_ical(fileUrl) {\n atcb_open_cal_url(fileUrl);\n}\nfunction atcb_subscribe_google(fileUrl) {\n const baseUrl = 'https://calendar.google.com/calendar/r?cid=';\n atcb_open_cal_url(baseUrl + fileUrl);\n}\nfunction atcb_subscribe_microsoft(fileUrl, calName, type = '365') {\n const urlParts = [];\n const baseUrl = (function () {\n if (type == 'outlook') {\n return 'https://outlook.live.com/calendar/0/addfromweb/?';\n } else {\n return 'https://outlook.office.com/calendar/0/addfromweb/?';\n }\n })();\n urlParts.push('url=' + encodeURIComponent(fileUrl));\n urlParts.push('name=' + encodeURIComponent(calName));\n atcb_open_cal_url(baseUrl + urlParts.join('&'));\n}\nfunction atcb_generate_google(data) {\n const urlParts = [];\n urlParts.push('https://calendar.google.com/calendar/render?action=TEMPLATE');\n const formattedDate = atcb_generate_time(data, 'clean', 'google');\n urlParts.push(\n 'dates=' + encodeURIComponent(formattedDate.start) + '%2F' + encodeURIComponent(formattedDate.end)\n );\n if (\n data.timeZone != null &&\n data.timeZone != '' &&\n !/(GMT[+|-]\\d{1,2}|Etc\\/U|Etc\\/Zulu|CET|CST6CDT|EET|EST|EST5EDT|MET|MST|MST7MDT|PST8PDT|WET)/i.test(\n data.timeZone\n )\n ) {\n urlParts.push('ctz=' + data.timeZone);\n }\n if (data.name != null && data.name != '') {\n urlParts.push('text=' + encodeURIComponent(data.name));\n }\n const tmpDataDescription = [];\n if (data.description != null && data.description != '') {\n tmpDataDescription.push(data.description);\n }\n if (data.location != null && data.location != '') {\n urlParts.push('location=' + encodeURIComponent(data.location));\n if (isiOS()) {\n if (tmpDataDescription.length > 0) {\n tmpDataDescription.push('

');\n }\n tmpDataDescription.push('📍: ' + data.location);\n }\n }\n if (tmpDataDescription.length > 0) {\n urlParts.push('details=' + encodeURIComponent(tmpDataDescription.join()));\n }\n if (data.recurrence != null && data.recurrence != '') {\n urlParts.push('recur=' + encodeURIComponent(data.recurrence));\n }\n if (data.availability != null && data.availability != '') {\n const availabilityPart = (function () {\n if (data.availability == 'free') {\n return 'crm=AVAILABLE&trp=false';\n }\n return 'crm=BUSY&trp=true';\n })();\n urlParts.push(availabilityPart);\n }\n urlParts.push('uid=' + encodeURIComponent(data.uid));\n atcb_open_cal_url(urlParts.join('&'));\n}\nfunction atcb_generate_yahoo(data) {\n const urlParts = [];\n urlParts.push('https://calendar.yahoo.com/?v=60');\n const formattedDate = atcb_generate_time(data, 'clean');\n urlParts.push(\n 'st=' + encodeURIComponent(formattedDate.start) + '&et=' + encodeURIComponent(formattedDate.end)\n );\n if (formattedDate.allday) {\n urlParts.push('dur=allday');\n }\n if (data.name != null && data.name != '') {\n urlParts.push('title=' + encodeURIComponent(data.name));\n }\n if (data.location != null && data.location != '') {\n urlParts.push('in_loc=' + encodeURIComponent(data.location));\n }\n if (data.descriptionHtmlFree != null && data.descriptionHtmlFree != '') {\n urlParts.push('desc=' + encodeURIComponent(data.descriptionHtmlFree));\n }\n atcb_open_cal_url(urlParts.join('&'));\n}\nfunction atcb_generate_microsoft(data, type = '365') {\n const urlParts = [];\n const basePath = '/calendar/0/deeplink/compose?path=%2Fcalendar%2Faction%2Fcompose&rru=addevent';\n const baseUrl = (function () {\n if (type == 'outlook') {\n return 'https://outlook.live.com' + basePath;\n } else {\n return 'https://outlook.office.com' + basePath;\n }\n })();\n urlParts.push(baseUrl);\n const formattedDate = atcb_generate_time(data, 'delimiters', 'microsoft');\n urlParts.push('startdt=' + encodeURIComponent(formattedDate.start));\n urlParts.push('enddt=' + encodeURIComponent(formattedDate.end));\n if (formattedDate.allday) {\n urlParts.push('allday=true');\n }\n if (data.name != null && data.name != '') {\n urlParts.push('subject=' + encodeURIComponent(data.name));\n }\n if (data.location != null && data.location != '') {\n urlParts.push('location=' + encodeURIComponent(data.location));\n }\n if (data.description != null && data.description != '') {\n urlParts.push('body=' + encodeURIComponent(data.description.replace(/\\n/g, '
')));\n }\n urlParts.push('uid=' + encodeURIComponent(data.uid));\n atcb_open_cal_url(urlParts.join('&'));\n}\nfunction atcb_generate_msteams(data) {\n const urlParts = [];\n const baseUrl = 'https://teams.microsoft.com/l/meeting/new?';\n const formattedDate = atcb_generate_time(data, 'delimiters', 'microsoft');\n urlParts.push('startTime=' + encodeURIComponent(formattedDate.start));\n urlParts.push('endTime=' + encodeURIComponent(formattedDate.end));\n if (data.name != null && data.name != '') {\n urlParts.push('subject=' + encodeURIComponent(data.name));\n }\n let locationString = '';\n if (data.location != null && data.location != '') {\n locationString = encodeURIComponent(data.location);\n urlParts.push('location=' + locationString);\n locationString += ' // '; \n }\n if (data.descriptionHtmlFree != null && data.descriptionHtmlFree != '') {\n urlParts.push('content=' + locationString + encodeURIComponent(data.descriptionHtmlFree));\n }\n urlParts.push('uid=' + encodeURIComponent(data.uid));\n atcb_open_cal_url(baseUrl + urlParts.join('&'));\n}\nfunction atcb_open_cal_url(url, target = '') {\n if (target == '') {\n target = atcbDefaultTarget;\n }\n if (atcb_secure_url(url)) {\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n window.open(url, target).focus();\n }\n}\nfunction atcb_generate_ical(data, subEvent = 'all', keyboardTrigger = false) {\n if (subEvent != 'all') {\n subEvent = parseInt(subEvent);\n }\n const filename = atcb_determine_ical_filename(data, subEvent);\n const givenIcsFile = (function () {\n if (\n subEvent != 'all' &&\n data.dates[`${subEvent}`].icsFile != null &&\n data.dates[`${subEvent}`].icsFile != ''\n ) {\n return data.dates[`${subEvent}`].icsFile;\n }\n if (data.icsFile != null && data.icsFile != '') {\n return data.icsFile;\n }\n return '';\n })();\n if (givenIcsFile != '' && (!isiOS() || !isWebView())) {\n atcb_save_file(givenIcsFile, filename);\n return;\n }\n const now = new Date();\n const ics_lines = ['BEGIN:VCALENDAR', 'VERSION:2.0'];\n ics_lines.push('PRODID:-// https://add-to-calendar-pro.com // button v' + atcbVersion + ' //EN');\n ics_lines.push('CALSCALE:GREGORIAN');\n if (subEvent == 'all') {\n ics_lines.push('METHOD:PUBLISH');\n } else {\n if (data.dates[`${subEvent}`].status != null && data.dates[`${subEvent}`].status == 'CANCELLED') {\n ics_lines.push('METHOD:CANCEL');\n } else {\n if (data.dates[`${subEvent}`].organizer != null && data.dates[`${subEvent}`].organizer != '') {\n ics_lines.push('METHOD:REQUEST');\n } else {\n ics_lines.push('METHOD:PUBLISH');\n }\n }\n }\n const usedTimeZones = [];\n const loopStart = (function () {\n if (subEvent != 'all') {\n return subEvent;\n }\n return 0;\n })();\n const loopEnd = (function () {\n if (subEvent != 'all') {\n return subEvent;\n }\n return data.dates.length - 1;\n })();\n for (let i = loopStart; i <= loopEnd; i++) {\n const formattedDate = atcb_generate_time(data.dates[`${i}`], 'clean', 'ical');\n const timeAddon = (function () {\n if (formattedDate.allday) {\n return ';VALUE=DATE';\n }\n if (data.dates[`${i}`].timeZone != null && data.dates[`${i}`].timeZone != '') {\n const timeZoneBlock = tzlib_get_ical_block(data.dates[`${i}`].timeZone);\n if (!usedTimeZones.includes(data.dates[`${i}`].timeZone)) {\n ics_lines.push(timeZoneBlock[0]);\n }\n usedTimeZones.push(data.dates[`${i}`].timeZone);\n return ';' + timeZoneBlock[1];\n }\n })();\n ics_lines.push('BEGIN:VEVENT');\n ics_lines.push('UID:' + data.dates[`${i}`].uid);\n ics_lines.push('DTSTAMP:' + atcb_format_datetime(now, 'clean', true));\n ics_lines.push('DTSTART' + timeAddon + ':' + formattedDate.start);\n ics_lines.push('DTEND' + timeAddon + ':' + formattedDate.end);\n ics_lines.push('SUMMARY:' + data.dates[`${i}`].name.replace(/.{65}/g, '$&' + '\\r\\n ')); \n if (data.dates[`${i}`].descriptionHtmlFree != null && data.dates[`${i}`].descriptionHtmlFree != '') {\n ics_lines.push(\n 'DESCRIPTION:' +\n data.dates[`${i}`].descriptionHtmlFree.replace(/\\n/g, '\\\\n').replace(/.{60}/g, '$&' + '\\r\\n ') // adjusting for intended line breaks + making sure it does not exceed 75 characters per line\n );\n }\n if (data.dates[`${i}`].description != null && data.dates[`${i}`].description != '') {\n ics_lines.push(\n 'X-ALT-DESC;FMTTYPE=text/html:\\r\\n \\r\\n \\r\\n ' +\n data.dates[`${i}`].description.replace(/\\n/g, '
').replace(/.{60}/g, '$&' + '\\r\\n ') +\n '\\r\\n '\n );\n }\n if (data.dates[`${i}`].location != null && data.dates[`${i}`].location != '') {\n ics_lines.push('LOCATION:' + data.dates[`${i}`].location);\n }\n if (data.dates[`${i}`].organizer != null && data.dates[`${i}`].organizer != '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n ics_lines.push('ORGANIZER;CN=' + organizerParts[0] + ':MAILTO:' + organizerParts[1]);\n }\n if (data.recurrence != null && data.recurrence != '') {\n ics_lines.push(data.recurrence);\n }\n if (data.dates[`${i}`].availability != null && data.dates[`${i}`].availability != '') {\n const transpVal = (function () {\n if (data.dates[`${i}`].availability == 'free') {\n return 'TRANSPARENT';\n }\n return 'OPAQUE';\n })();\n ics_lines.push('TRANSP:' + transpVal);\n }\n ics_lines.push('SEQUENCE:' + data.dates[`${i}`].sequence);\n ics_lines.push('STATUS:' + data.dates[`${i}`].status);\n ics_lines.push('CREATED:' + data.created);\n ics_lines.push('LAST-MODIFIED:' + data.updated);\n ics_lines.push('END:VEVENT');\n }\n ics_lines.push('END:VCALENDAR');\n const dataUrl = (function () {\n if (givenIcsFile != '') {\n return givenIcsFile;\n }\n return 'data:text/calendar;charset=utf-8,' + encodeURIComponent(ics_lines.join('\\r\\n'));\n })();\n if ((isiOS() && isChrome()) || (isWebView() && (isiOS() || (isAndroid() && isProblematicWebView())))) {\n atcb_ical_copy_note(dataUrl, data, keyboardTrigger);\n return;\n }\n atcb_save_file(dataUrl, filename);\n}\nfunction atcb_determine_ical_filename(data, subEvent) {\n const filenameSuffix = (function () {\n if (subEvent != 'all' && subEvent != 0) {\n return '-' + parseInt(subEvent) + 1;\n }\n return '';\n })();\n if (data.iCalFileName != null && data.iCalFileName != '') {\n return data.iCalFileName + filenameSuffix;\n }\n if (data.icsFile != null && data.icsFile != '') {\n const filenamePart = data.icsFile.split('/').pop().split('.')[0];\n if (filenamePart != '') {\n return filenamePart + filenameSuffix;\n }\n }\n return 'event-to-save-in-my-calendar' + filenameSuffix;\n}\nfunction atcb_ical_copy_note(dataUrl, data, keyboardTrigger) {\n atcb_copy_to_clipboard(dataUrl);\n if (isiOS() && isChrome()) {\n atcb_create_modal(\n data,\n 'warning',\n atcb_translate_hook('modal.crios.ical.h', data),\n atcb_translate_hook('modal.crios.ical.text', data) +\n '
' +\n atcb_translate_hook('modal.clipboard.text', data) +\n '
' +\n atcb_translate_hook('modal.crios.ical.steps', data),\n [],\n [],\n keyboardTrigger\n );\n return;\n }\n atcb_create_modal(\n data,\n 'warning',\n atcb_translate_hook('modal.webview.ical.h', data),\n atcb_translate_hook('modal.webview.ical.text', data) +\n '
' +\n atcb_translate_hook('modal.clipboard.text', data) +\n '
' +\n atcb_translate_hook('modal.webview.ical.steps', data),\n [],\n [],\n keyboardTrigger\n );\n}\n\n\nfunction atcb_saved_hook() {\n console.log('Event saved. Looking forward to it!');\n}\nfunction atcb_save_file(file, filename) {\n try {\n const save = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');\n save.rel = 'noopener';\n save.href = file;\n if (isMobile()) {\n save.target = '_self';\n } else {\n save.target = '_blank';\n }\n save.download = filename + '.ics';\n const evt = new MouseEvent('click', {\n view: window,\n button: 0,\n bubbles: true,\n cancelable: false,\n });\n save.dispatchEvent(evt);\n (window.URL || window.webkitURL).revokeObjectURL(save.href);\n } catch (e) {\n console.error(e);\n }\n}\nfunction atcb_generate_time(data, style = 'delimiters', targetCal = 'general', addTimeZoneOffset = false) {\n if (data.startTime != null && data.startTime != '' && data.endTime != null && data.endTime != '') {\n const newStartDate = new Date(data.startDate + 'T' + data.startTime + ':00.000+00:00');\n const newEndDate = new Date(data.endDate + 'T' + data.endTime + ':00.000+00:00');\n const durationMS = newEndDate - newStartDate;\n const durationHours = Math.floor(durationMS / 1000 / 60 / 60);\n const durationMinutes = Math.floor(((durationMS - durationHours * 60 * 60 * 1000) / 1000 / 60) % 60);\n const durationString = (function () {\n if (durationHours < 10) {\n return '0' + durationHours + ':' + ('0' + durationMinutes).slice(-2);\n }\n return durationHours + ':' + ('0' + durationMinutes).slice(-2);\n })();\n if ((data.timeZone == null || (data.timeZone != null && data.timeZone == '')) && addTimeZoneOffset) {\n return {\n start: newStartDate.toISOString().replace('.000Z', '+00:00'),\n end: newEndDate.toISOString().replace('.000Z', '+00:00'),\n duration: durationString,\n allday: false,\n };\n }\n if (data.timeZone != null && data.timeZone != '') {\n if (\n targetCal == 'ical' ||\n (targetCal == 'google' &&\n !/(GMT[+|-]\\d{1,2}|Etc\\/U|Etc\\/Zulu|CET|CST6CDT|EET|EST|EST5EDT|MET|MST|MST7MDT|PST8PDT|WET)/i.test(\n data.timeZone\n ))\n ) {\n return {\n start: atcb_format_datetime(newStartDate, 'clean', true, true),\n end: atcb_format_datetime(newEndDate, 'clean', true, true),\n duration: durationString,\n allday: false,\n };\n }\n const offsetStart = tzlib_get_offset(data.timeZone, data.startDate, data.startTime);\n const offsetEnd = tzlib_get_offset(data.timeZone, data.endDate, data.endTime);\n if (addTimeZoneOffset) {\n const formattedOffsetStart = offsetStart.slice(0, 3) + ':' + offsetStart.slice(3);\n const formattedOffsetEnd = offsetEnd.slice(0, 3) + ':' + offsetEnd.slice(3);\n return {\n start: newStartDate.toISOString().replace('.000Z', formattedOffsetStart),\n end: newEndDate.toISOString().replace('.000Z', formattedOffsetEnd),\n duration: durationString,\n allday: false,\n };\n }\n const calcOffsetStart =\n parseInt(offsetStart[0] + 1) *\n -1 *\n ((parseInt(offsetStart.substr(1, 2)) * 60 + parseInt(offsetStart.substr(3, 2))) * 60 * 1000);\n const calcOffsetEnd =\n parseInt(offsetEnd[0] + 1) *\n -1 *\n ((parseInt(offsetEnd.substr(1, 2)) * 60 + parseInt(offsetEnd.substr(3, 2))) * 60 * 1000);\n newStartDate.setTime(newStartDate.getTime() + calcOffsetStart);\n newEndDate.setTime(newEndDate.getTime() + calcOffsetEnd);\n }\n return {\n start: atcb_format_datetime(newStartDate, style),\n end: atcb_format_datetime(newEndDate, style),\n duration: durationString,\n allday: false,\n };\n } else {\n const startDate = data.startDate.split('-');\n const endDate = data.endDate.split('-');\n const newStartDate = new Date(Date.UTC(startDate[0], startDate[1] - 1, startDate[2], 12, 0, 0));\n const newEndDate = new Date(Date.UTC(endDate[0], endDate[1] - 1, endDate[2], 12, 0, 0));\n if (targetCal == 'google' || targetCal == 'microsoft' || targetCal == 'ical') {\n newEndDate.setDate(newEndDate.getDate() + 1);\n }\n return {\n start: atcb_format_datetime(newStartDate, style, false),\n end: atcb_format_datetime(newEndDate, style, false),\n allday: true,\n };\n }\n}\nfunction atcb_format_datetime(datetime, style = 'delimiters', includeTime = true, removeZ = false) {\n const regex = (function () {\n if (includeTime) {\n if (style == 'clean') {\n return /(-|:|(\\.\\d{3}))/g;\n }\n return /(\\.\\d{3})/g;\n }\n if (style == 'clean') {\n return /(-|T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z)/g;\n }\n return /T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z/g;\n })();\n const output = removeZ\n ? datetime.toISOString().replace(regex, '').replace('Z', '')\n : datetime.toISOString().replace(regex, '');\n return output;\n}\nfunction atcb_secure_content(data, isJSON = true) {\n const toClean = isJSON ? JSON.stringify(data) : data;\n const cleanedUp = toClean.replace(/(<(?!br)([^>]+)>)/gi, '');\n if (isJSON) {\n return JSON.parse(cleanedUp);\n } else {\n return cleanedUp;\n }\n}\nfunction atcb_secure_url(url, throwError = true) {\n if (\n url.match(\n /((\\.\\.\\/)|(\\.\\.\\\\)|(%2e%2e%2f)|(%252e%252e%252f)|(%2e%2e\\/)|(%252e%252e\\/)|(\\.\\.%2f)|(\\.\\.%252f)|(%2e%2e%5c)|(%252e%252e%255c)|(%2e%2e\\\\)|(%252e%252e\\\\)|(\\.\\.%5c)|(\\.\\.%255c)|(\\.\\.%c0%af)|(\\.\\.%25c0%25af)|(\\.\\.%c1%9c)|(\\.\\.%25c1%259c))/gi\n )\n ) {\n if (throwError) {\n console.error(\n 'Seems like the generated URL includes at least one security issue and got blocked. Please check the calendar button parameters!'\n );\n }\n return false;\n } else {\n return true;\n }\n}\nfunction atcb_validEmail(email, mx = false) {\n if (!/^.{0,70}@.{1,30}\\.[\\w.]{2,9}$/.test(email)) {\n return false;\n }\n if (mx) {\n console.log('Testing for MX records not yet available');\n }\n return true;\n}\nfunction atcb_rewrite_html_elements(content, clear = false) {\n content = content.replace(//gi, '\\n');\n if (clear) {\n content = content.replace(/\\[(|\\/)(url|br|hr|p|b|strong|u|i|em|li|ul|ol|h\\d)\\]|((\\|.*)\\[\\/url\\])/gi, '');\n } else {\n content = content.replace(/\\[(\\/|)(br|hr|p|b|strong|u|i|em|li|ul|ol|h\\d)\\]/gi, '<$1$2>');\n content = content.replace(/\\[url\\]([\\w&$+.,:;=~!*'?@^%#|\\s\\-()/]*)\\[\\/url\\]/gi, function (match, p1) {\n const urlText = p1.split('|');\n const text = (function () {\n if (urlText.length > 1 && urlText[1] != '') {\n return urlText[1];\n } else {\n return urlText[0];\n }\n })();\n return (\n '' + text + ''\n );\n });\n }\n return content;\n}\nfunction atcb_position_list(trigger, list, blockUpwards = false, resize = false) {\n let anchorSet = false;\n const originalTrigger = trigger;\n if (trigger.querySelector('.atcb-dropdown-anchor') !== null) {\n trigger = trigger.querySelector('.atcb-dropdown-anchor');\n anchorSet = true;\n }\n let triggerDim = trigger.getBoundingClientRect();\n let listDim = list.getBoundingClientRect();\n const btnDim = originalTrigger.getBoundingClientRect();\n const viewportHeight = document.documentElement.clientHeight;\n const posWrapper = document.getElementById('atcb-pos-wrapper');\n if (posWrapper !== null) {\n posWrapper.style.height = viewportHeight + 'px';\n }\n if (anchorSet === true && !list.classList.contains('atcb-dropoverlay')) {\n if (\n (list.classList.contains('atcb-dropup') && resize) ||\n (!blockUpwards &&\n !resize &&\n triggerDim.top + listDim.height > viewportHeight - 20 &&\n 2 * btnDim.top + btnDim.height - triggerDim.top - listDim.height > 20)\n ) {\n originalTrigger.classList.add('atcb-dropup');\n list.classList.add('atcb-dropup');\n list.style.bottom =\n 2 * viewportHeight -\n (viewportHeight + (btnDim.top + (btnDim.top + btnDim.height - triggerDim.top))) -\n window.scrollY +\n 'px';\n } else {\n list.style.top = window.scrollY + triggerDim.top + 'px';\n if (originalTrigger.classList.contains('atcb-dropup')) {\n originalTrigger.classList.remove('atcb-dropup');\n }\n }\n triggerDim = trigger.getBoundingClientRect();\n if (list.classList.contains('atcb-style-bubble') || list.classList.contains('atcb-style-text')) {\n list.style.minWidth = triggerDim.width + 'px';\n } else {\n list.style.width = triggerDim.width + 'px';\n }\n listDim = list.getBoundingClientRect();\n list.style.left = triggerDim.left - (listDim.width - triggerDim.width) / 2 + 'px';\n } else {\n list.style.minWidth = btnDim.width + 20 + 'px';\n listDim = list.getBoundingClientRect();\n list.style.top = window.scrollY + btnDim.top + btnDim.height / 2 - listDim.height / 2 + 'px';\n list.style.left = btnDim.left - (listDim.width - btnDim.width) / 2 + 'px';\n }\n const atcbL = document.getElementById('add-to-calendar-button-reference');\n if (atcbL) {\n if (originalTrigger.classList.contains('atcb-dropup')) {\n atcbL.style.top = window.scrollY + btnDim.top + btnDim.height + 'px';\n atcbL.style.left = btnDim.left + (btnDim.width - 150) / 2 + 'px';\n } else {\n listDim = list.getBoundingClientRect();\n if (originalTrigger.classList.contains('atcb-dropoverlay') || !anchorSet) {\n atcbL.style.top = window.scrollY + listDim.top + listDim.height + 'px';\n } else {\n atcbL.style.top = window.scrollY + triggerDim.top + listDim.height + 'px';\n }\n atcbL.style.left = listDim.left + (listDim.width - 150) / 2 + 'px';\n }\n }\n}\nfunction atcb_manage_body_scroll(modalObj = null) {\n const modal = (function () {\n if (modalObj != null) {\n return modalObj;\n } else {\n const allModals = document.querySelectorAll('.atcb-modal');\n if (allModals.length == 0) {\n return null;\n }\n return allModals[allModals.length - 1];\n }\n })();\n if (modal == null) {\n return;\n }\n const modalDim = modal.getBoundingClientRect();\n if (modalDim.height + 100 > window.innerHeight) {\n document.body.classList.add('atcb-modal-no-scroll');\n } else {\n document.body.classList.remove('atcb-modal-no-scroll');\n }\n}\nfunction atcb_set_fullsize(el) {\n el.style.width = window.innerWidth + 'px';\n el.style.height = window.innerHeight + 100 + 'px';\n}\nfunction atcb_set_sizes(el, size) {\n el.style.setProperty('--base-font-size-l', size.l + 'px');\n el.style.setProperty('--base-font-size-m', size.m + 'px');\n el.style.setProperty('--base-font-size-s', size.s + 'px');\n}\nfunction atcb_generate_uuid() {\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16)\n );\n}\nfunction atcb_copy_to_clipboard(dataString) {\n const tmpInput = document.createElement('input');\n document.body.appendChild(tmpInput);\n const editable = tmpInput.contentEditable;\n const readOnly = tmpInput.readOnly;\n tmpInput.value = dataString;\n tmpInput.contentEditable = true;\n tmpInput.readOnly = false;\n if (isiOS()) {\n var range = document.createRange();\n range.selectNodeContents(tmpInput);\n var selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n tmpInput.setSelectionRange(0, 999999);\n } else {\n navigator.clipboard.writeText(dataString);\n tmpInput.select();\n }\n tmpInput.contentEditable = editable;\n tmpInput.readOnly = readOnly;\n document.execCommand('copy');\n tmpInput.remove();\n}\nfunction atcb_debounce(func, timeout = 200) {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n}\nfunction atcb_debounce_leading(func, timeout = 300) {\n let timer;\n return (...args) => {\n if (!timer) {\n func.apply(this, args);\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n timer = undefined;\n }, timeout);\n };\n}\nfunction atcb_throttle(func, delay = 10) {\n let result;\n let timeout = null;\n let previous = 0;\n let later = (...args) => {\n previous = Date.now();\n timeout = null;\n result = func.apply(this, args);\n };\n return (...args) => {\n let now = Date.now();\n let remaining = delay - (now - previous);\n if (remaining <= 0 || remaining > delay) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(this, args);\n } else if (!timeout) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n}\n\n\nconst i18nStrings = {\n en: {\n 'Add to Calendar': 'Add to Calendar',\n 'iCal File': 'iCal File',\n Close: 'Close',\n 'Close Selection': 'Close Selection',\n 'Click me': 'Click me',\n 'modal.webview.ical.h': 'Open your browser',\n 'modal.webview.ical.text':\n 'Unfortunately, in-app browsers have problems with the way we generate the calendar file.',\n 'modal.clipboard.text': 'We automatically copied a magical URL into your clipboard.',\n 'modal.webview.ical.steps':\n '
  1. Open another browser on your phone, ...
  2. Paste the clipboard content and go.
',\n 'modal.crios.ical.h': 'Open Safari',\n 'modal.crios.ical.text':\n 'Unfortunately, Chrome on iOS has problems with the way we generate the calendar file.',\n 'modal.crios.ical.steps':\n '
  1. Open Safari, ...
  2. Paste the clipboard content and go.
',\n 'modal.multidate.h': 'This is an event series',\n 'modal.multidate.text': 'Add the individual events one by one:',\n Event: 'Event',\n 'Cancelled Date': 'This date got cancelled.',\n 'Delete from Calendar': 'Please update your calendar!',\n 'modal.subscribe.yahoo.h': 'Add Calendar to Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Open now the Yahoo Calendar.
  2. Click the \"Actions\" tab.
  3. Hit \"Follow Other Calendars\".
  4. Set a name and past the clipboard content into the url field.
',\n Cancel: 'Cancel',\n },\n de: {\n 'Add to Calendar': 'Im Kalender speichern',\n 'iCal File': 'iCal-Datei',\n Close: 'Schließen',\n 'Close Selection': 'Auswahl schließen',\n 'Click me': 'Klick mich',\n 'modal.webview.ical.h': 'Öffne deinen Browser',\n 'modal.webview.ical.text':\n 'Leider haben In-App-Browser Probleme mit der Art, wie wir Kalender-Dateien erzeugen.',\n 'modal.clipboard.text': 'Wir haben automatisch eine magische URL in deine Zwischenablage kopiert.',\n 'modal.webview.ical.steps':\n '
  1. Öffne einen anderen Browser auf deinem Smartphone, ...
  2. Nutze die Einfügen-Funktion, um fortzufahren.
',\n 'modal.crios.ical.h': 'Öffne Safari',\n 'modal.crios.ical.text':\n 'Leider Chrome unter iOS Probleme mit der Art, wie wir Kalender-Dateien erzeugen.',\n 'modal.crios.ical.steps':\n '
  1. Öffne Safari, ...
  2. Nutze die Einfügen-Funktion, um fortzufahren.
',\n 'modal.multidate.h': 'Dies is eine Termin-Reihe',\n 'modal.multidate.text': 'Füge die einzelnen Termine der Reihe nach deinem Kalender hinzu:',\n Event: 'Termin',\n 'Cancelled Date': 'Dieser Termin wurde abgesagt.',\n 'Delete from Calendar': 'Bitte aktualisiere deinen Kalender!',\n 'modal.subscribe.yahoo.h': 'Kalender zu Yahoo hinzufügen',\n 'modal.subscribe.yahoo.text':\n '
  1. Öffne den Yahoo Kalender.
  2. Klicke auf den \"Aktionen\" Tab.
  3. Wähle \"Weiteren Kalendern folgen\".
  4. Wähle einen Namen und füge die URL aus deiner Zwischenablage in das URL-Feld ein.
',\n Cancel: 'Abbrechen',\n },\n es: {\n 'Add to Calendar': 'Añadir al Calendario',\n 'iCal File': 'iCal Ficha',\n Close: 'Ciérralo',\n 'Close Selection': 'Cerrar Selección',\n 'Click me': 'Haz clic mí',\n 'modal.webview.ical.h': 'Abra su browser',\n 'modal.webview.ical.text':\n 'Lamentablemente, los browsers in-app tienen problemas con la forma en que generamos el archivo del calendario.',\n 'modal.clipboard.text': 'Hemos copiado automáticamente una URL mágica en su portapapeles.',\n 'modal.webview.ical.steps':\n '
  1. Abre otro browser en tu smartphone, ...
  2. Utilice la función de pegar para continuar.
',\n 'modal.crios.ical.h': 'Abrir Safari',\n 'modal.crios.ical.text':\n 'Lamentablemente, Chrome en iOS tiene problemas con la forma de generar el archivo de calendario.',\n 'modal.crios.ical.steps':\n '
  1. Abrir Safari, ...
  2. Utilice la función de pegar para continuar.
',\n 'modal.multidate.h': 'Esta es una serie de fechas',\n 'modal.multidate.text': 'Añada las fechas individuales a su calendario en orden:',\n Event: 'Término',\n 'Cancelled Date': 'Esta fecha fue cancelada.',\n 'Delete from Calendar': 'Actualice su calendario!',\n 'modal.subscribe.yahoo.h': 'Añadir calendario a Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Abra el calendario de Yahoo.
  2. Haga clic en la pestaña \"Acciones\".
  3. Seleccione \"Seguir otros calendarios\".
  4. Elige un nombre y pega la URL de tu portapapeles en el campo URL.
',\n Cancel: 'Cancelar',\n },\n pt: {\n 'Add to Calendar': 'Incluir no Calendário',\n 'iCal File': 'Ficheiro iCal',\n Close: 'Fechar',\n 'Close Selection': 'Fechar selecção',\n 'Click me': 'Clicar-me',\n 'modal.webview.ical.h': 'Abra o seu browser',\n 'modal.webview.ical.text':\n 'Infelizmente, os navegadores em tampas têm problemas com a forma como geramos o ficheiro de calendário.',\n 'modal.clipboard.text': 'Copiámos automaticamente um URL mágico para a sua área de transferência.',\n 'modal.webview.ical.steps':\n '
  1. Abrir outro browser en tu smartphone, ...
  2. Use a função colar para continuar.
',\n 'modal.crios.ical.h': 'Safari aberto',\n 'modal.crios.ical.text':\n 'Infelizmente, o cromado no iOS tem problemas com a forma como geramos o ficheiro do calendário.',\n 'modal.crios.ical.steps':\n '
  1. Safari aberto, ...
  2. Use a função colar para continuar.
',\n 'modal.multidate.h': 'Esta é uma série de datas',\n 'modal.multidate.text': 'Adicione as datas individuais ao seu calendário, por ordem:',\n Event: 'Termo',\n 'Cancelled Date': 'Esta data foi cancelada.',\n 'Delete from Calendar': 'Actualize o seu calendário!',\n 'modal.subscribe.yahoo.h': 'Adicionar calendário ao Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Abrir o calendário do Yahoo.
  2. Clique no separador \"Acções\".
  3. Seleccione \"Seguir outros calendários\".
  4. Escolha um nome e cole o URL da sua área de transferência no campo URL.
',\n Cancel: 'Cancelar',\n },\n fr: {\n 'Add to Calendar': 'Ajout au Agenda',\n 'iCal File': 'iCal Fichier',\n Close: 'Fermez',\n 'Close Selection': 'Fermez la sélection',\n 'Click me': 'Cliquez-moi',\n 'modal.webview.ical.h': 'Ouvrez votre navigateur',\n 'modal.webview.ical.text':\n 'Malheureusement, les navigateurs in-app ont des problèmes avec la manière dont nous créons les fichiers de agenda.',\n 'modal.clipboard.text': 'Nous avons automatiquement copié une URL magique dans ton presse-papiers.',\n 'modal.webview.ical.steps':\n '
  1. Ouvre un autre navigateur sur ton smartphone, ...
  2. Utilise la fonction insérer pour continuer.
',\n 'modal.crios.ical.h': 'Ouvre Safari',\n 'modal.crios.ical.text':\n 'Malheureusement, Chrome sur iOS a des problèmes avec la façon dont nous générons le fichier du agenda.',\n 'modal.crios.ical.steps':\n '
  1. Ouvre Safari, ...
  2. Utilise la fonction insérer pour continuer.
',\n 'modal.multidate.h': \"Il s'agit d'une série d'événements\",\n 'modal.multidate.text': \"Ajoute les différents rendez-vous dans l'ordre à ton agenda:\",\n Event: 'Terminaison',\n 'Cancelled Date': 'Cette date est annulée.',\n 'Delete from Calendar': 'Actualisez votre agenda!',\n 'modal.subscribe.yahoo.h': 'Ajouter un agenda à Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Ouvre le Yahoo calendar.
  2. Clique sur l\\'onglet \"Actions\".
  3. Sélectionne \"Suivre d\\'autres agendas\".
  4. Choisis un nom et colle l\\'URL de ton presse-papiers dans le champ URL.
',\n Cancel: 'Annuler',\n },\n nl: {\n 'Add to Calendar': 'Opslaan in Agenda',\n 'iCal File': 'iCal File',\n Close: 'Sluiten',\n 'Close Selection': 'Sluit selectie',\n 'Click me': 'Klik me',\n 'modal.webview.ical.h': 'Open uw browser',\n 'modal.webview.ical.text':\n 'Helaas hebben in-app browsers problemen met de manier waarop wij kalenderbestanden maken.',\n 'modal.clipboard.text': 'We hebben automatisch een magische URL naar je klembord gekopieerd.',\n 'modal.webview.ical.steps':\n '
  1. Open een andere browser op uw smartphone, ...
  2. Gebruik de insert functie om verder te gaan.
',\n 'modal.crios.ical.h': 'Open Safari',\n 'modal.crios.ical.text':\n 'Helaas heeft Chrome op iOS problemen met de manier waarop we het kalenderbestand genereren.',\n 'modal.crios.ical.steps':\n '
  1. Open Safari, ...
  2. Gebruik de insert functie om verder te gaan.
',\n 'modal.multidate.h': 'Dit is een reeks data',\n 'modal.multidate.text': 'Voeg de afzonderlijke delen één voor één toe:',\n Event: 'Termin',\n 'Cancelled Date': 'Deze datum is geannuleerd.',\n 'Delete from Calendar': 'Uw agenda bijwerken!',\n 'modal.subscribe.yahoo.h': 'Toevoegen aan Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Open de Yahoo calendar.
  2. Klik op de \"Acties\" tab.
  3. Selecteer \"Volg Andere Agenda\\'s\".
  4. Kies een naam en plak de URL van uw klembord in het URL-veld.
',\n Cancel: 'Annuleren',\n },\n tr: {\n 'Add to Calendar': 'Takvime Ekle',\n 'iCal File': 'iCal Dosyası',\n Close: 'Kapat',\n 'Close Selection': 'Seçimi kapat',\n 'Click me': 'Beni tıklayın',\n 'modal.webview.ical.h': 'Tarayıcınızı açın',\n 'modal.webview.ical.text':\n 'Ne yazık ki, uygulama içi tarayıcılar takvim dosyalarını oluşturma şeklimizle ilgili sorunlar yaşıyor.',\n 'modal.clipboard.text': 'Panonuza otomatik olarak sihirli bir URL kopyaladık.',\n 'modal.webview.ical.steps':\n '
  1. Akıllı telefonunuzda başka bir tarayıcı açın, ...
  2. Devam etmek için insert fonksiyonunu kullanın.
',\n 'modal.crios.ical.h': 'Açık Safari',\n 'modal.crios.ical.text':\n \"Ne yazık ki iOS'ta Chrome'un takvim dosyası oluşturma yöntemiyle ilgili sorunları var.\",\n 'modal.crios.ical.steps':\n '
  1. Açık Safari, ...
  2. Devam etmek için insert fonksiyonunu kullanın.
',\n 'modal.multidate.h': 'Bu bir etkinlik serisidir',\n 'modal.multidate.text': 'Parçaları teker teker ekleyin:',\n Event: 'Etkinlik',\n 'Cancelled Date': 'Bu tarih iptal edildi.',\n 'Delete from Calendar': 'Lütfen takviminizi güncelleyin!',\n 'modal.subscribe.yahoo.h': \"Yahoo'ya takvim ekleme\",\n 'modal.subscribe.yahoo.text':\n '
  1. Yahoo takvimini açın.
  2. \"Eylemler\" sekmesine tıklayın.
  3. \"Diğer Takvimleri Takip Et\" öğesini seçin.
  4. Bir ad seçin ve URL\\'yi panonuzdan URL alanına yapıştırın.
',\n Cancel: 'İptal',\n },\n zh: {\n 'Add to Calendar': '添加到日历',\n 'iCal File': 'iCal 文件',\n Close: '关',\n 'Close Selection': '关闭选择',\n 'Click me': '点我',\n 'modal.webview.ical.h': '打开浏览器',\n 'modal.webview.ical.text': '不幸的是,应用内浏览器在我们生成日历文件的方式上存在问题。',\n 'modal.clipboard.text': '我们自动将魔术 URL 复制到您的剪贴板。',\n 'modal.webview.ical.steps':\n '
  1. 打开手机上的任何其他浏览器, ...
  2. 粘贴剪贴板内容并开始。
',\n 'modal.crios.ical.h': '打开 Safari',\n 'modal.crios.ical.text': '不幸的是,iOS 上的 Chrome 在我们生成日历文件的方式上存在问题。',\n 'modal.crios.ical.steps':\n '
  1. 打开 Safari, ...
  2. 粘贴剪贴板内容并开始。
',\n 'modal.multidate.h': '这是一个活动系列',\n 'modal.multidate.text': '逐个添加各个部分:',\n Event: '事件',\n 'Cancelled Date': '此日期已取消。',\n 'Delete from Calendar': '请更新您的日历!',\n 'modal.subscribe.yahoo.h': '将日历添加到 Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. 打开 Yahoo 日历。
  2. 点击“操作”标签。
  3. 选择“关注其他日历”。
  4. 选择一个名称并将剪贴板中的 URL 粘贴到 URL 字段中。
',\n Cancel: '中止',\n },\n ar: {\n 'Add to Calendar': 'إضافة إلى التقويم',\n 'iCal File': 'ملف iCal',\n Close: 'قريب',\n 'Close Selection': 'إغلاق التحديد',\n 'Click me': 'انقر فوق لي',\n 'modal.webview.ical.h': 'افتح المستعرض الخاص بك',\n 'modal.webview.ical.text': 'لسوء الحظ ، تواجه المتصفحات داخل التطبيق مشاكل في طريقة إنشاء ملف التقويم.',\n 'modal.clipboard.text': 'قمنا تلقائيًا بنسخ عنوان URL سحري إلى الحافظة الخاصة بك.',\n 'modal.webview.ical.steps':\n '
  1. افتح أي متصفح آخر على هاتفك الذكي, ...
  2. .الصق محتوى الحافظة واذهب
',\n 'modal.crios.ical.h': 'افتح Safari',\n 'modal.crios.ical.text': 'لسوء الحظ ، يواجه Chrome على iOS مشاكل في طريقة إنشاء ملف التقويم',\n 'modal.crios.ical.steps':\n '
  1. افتح Safari, ...
  2. الصق محتوى الحافظة واذهب.
',\n 'modal.multidate.h': 'هذه سلسلة أحداث',\n 'modal.multidate.text': 'أضف الأجزاء الفردية واحدة تلو الأخرى:',\n Event: 'حدث',\n 'Cancelled Date': 'تم إلغاء هذا التاريخ.',\n 'Delete from Calendar': 'الرجاء تحديث التقويم الخاص بك!',\n 'modal.subscribe.yahoo.h': 'أضف التقويم إلى Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. افتح تقويم Yahoo.
  2. انقر فوق علامة التبويب \"الإجراءات\".
  3. حدد \"متابعة تقويمات أخرى\".
  4. اختر اسمًا والصق عنوان URL من الحافظة الخاصة بك في حقل URL.
',\n Cancel: 'إحباط',\n },\n hi: {\n 'Add to Calendar': 'कैलेंडर में जोड़ें',\n 'iCal File': 'iCal फ़ाइल',\n Close: 'बंद करना',\n 'Close Selection': 'चयन बंद करें',\n 'Click me': 'मुझे क्लिक करें',\n 'modal.webview.ical.h': 'अपना ब्राउज़र खोलें',\n 'modal.webview.ical.text':\n 'दुर्भाग्य से, इन-ऐप ब्राउज़र में कैलेंडर फ़ाइल बनाने के तरीके में समस्याएँ हैं।',\n 'modal.clipboard.text': 'हमने आपके क्लिपबोर्ड पर स्वचालित रूप से एक जादुई URL कॉपी कर लिया है।',\n 'modal.webview.ical.steps':\n '
  1. अपने फ़ोन पर दूसरा ब्राउज़र खोलें, ...
  2. क्लिपबोर्ड सामग्री चिपकाएं और जाएं।
',\n 'modal.crios.ical.h': 'सफारी खोलें',\n 'modal.crios.ical.text':\n 'दुर्भाग्य से, iOS पर Chrome को कैलेंडर फ़ाइल जेनरेट करने के हमारे तरीके में समस्या है।',\n 'modal.crios.ical.steps':\n '
  1. सफारी खोलें, ...
  2. क्लिपबोर्ड सामग्री चिपकाएं और जाएं।
',\n 'modal.multidate.h': 'यह एक इवेंट सीरीज़ है',\n 'modal.multidate.text': 'अलग-अलग हिस्सों को एक-एक करके जोड़ें:',\n Event: 'आयोजन',\n 'Cancelled Date': 'यह तिथि रद्द हो गई।',\n 'Delete from Calendar': 'कृपया अपना कैलेंडर अपडेट करें!',\n 'modal.subscribe.yahoo.h': 'Yahoo . में कैलेंडर जोड़ें',\n 'modal.subscribe.yahoo.text':\n '
  1. Yahoo कैलेंडर खोलें।
  2. \"कृती\" टैब पर क्लिक करें।
  3. \"इतर कॅलेंडर्सचे अनुसरण करा\" चुनें।
  4. एक नाम चुनें और अपने क्लिपबोर्ड से URL को URL फ़ील्ड में पेस्ट करें।
',\n Cancel: 'रद्द करना',\n },\n pl: {\n 'Add to Calendar': 'Dodaj do kalendarza',\n 'iCal File': 'Plik iCal',\n Close: 'Zamknij',\n 'Close Selection': 'Zamknij wybór',\n 'Click me': 'Kliknij mnie',\n 'modal.webview.ical.h': 'Otwórz przeglądarkę',\n 'modal.webview.ical.text':\n 'Niestety, przeglądarki in-app mają problemy ze sposobem, w jaki generujemy plik kalendarza.',\n 'modal.clipboard.text': 'Automatycznie skopiowaliśmy magiczny adres URL do schowka.',\n 'modal.webview.ical.steps':\n '
  1. Otwórz inną przeglądarkę w swoim telefonie, ...
  2. Wklej zawartość schowka i ruszaj.
',\n 'modal.crios.ical.h': 'Otwórz Safari',\n 'modal.crios.ical.text': 'Niestety, Chrome na iOS ma problemy ze sposobem generowania pliku kalendarza.',\n 'modal.crios.ical.steps':\n '
  1. Otwórz Safari, ...
  2. Wklej zawartość schowka i ruszaj.
',\n 'modal.multidate.h': 'To jest cykl imprez',\n 'modal.multidate.text': 'Dodawać po kolei poszczególne części:',\n Event: 'Wydarzenie',\n 'Cancelled Date': 'Ta data została odwołana.',\n 'Delete from Calendar': 'Zaktualizuj swój kalendarz!',\n 'modal.subscribe.yahoo.h': 'Dodaj kalendarz do Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Otwórz kalendarz Yahoo.
  2. Kliknij na zakładkę \"Czynności\".
  3. Wybierz \"Obserwuj inne kalendarze\".
  4. Wybierz nazwę i wklej adres URL ze schowka w polu URL.
',\n Cancel: 'Anuluj',\n },\n id: {\n 'Add to Calendar': 'Tambahkan ke Kalender',\n 'iCal File': 'File iCal',\n Close: 'Tutup',\n 'Close Selection': 'Seleksi Tutup',\n 'Click me': 'Klik saya',\n 'modal.webview.ical.h': 'Buka browser Anda',\n 'modal.webview.ical.text':\n 'Sayangnya, browser dalam aplikasi memiliki masalah dengan cara kami menghasilkan file kalender.',\n 'modal.clipboard.text': 'Kami telah secara otomatis menyalin URL ajaib ke clipboard Anda.',\n 'modal.webview.ical.steps':\n '
  1. Buka peramban lain pada ponsel Anda, ...
  2. Tempelkan konten clipboard dan pergi.
',\n 'modal.crios.ical.h': 'Buka Safari',\n 'modal.crios.ical.text':\n 'Sayangnya, Chrome di iOS memiliki masalah dengan cara kami menghasilkan file kalender.',\n 'modal.crios.ical.steps':\n '
  1. Buka Safari, ...
  2. Tempelkan konten clipboard dan pergi.
',\n 'modal.multidate.h': 'Ini adalah rangkaian acara',\n 'modal.multidate.text': 'Tambahkan masing-masing bagian satu per satu:',\n Event: 'Acara',\n 'Cancelled Date': 'Tanggal ini dibatalkan.',\n 'Delete from Calendar': 'Perbarui kalender Anda!',\n 'modal.subscribe.yahoo.h': 'Tambahkan kalender ke Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Buka kalender Yahoo.
  2. Klik pada tab \"Tindakan\".
  3. Pilih \"Ikuti Kalender Lain\".
  4. Pilih nama dan tempelkan URL dari clipboard Anda ke bidang URL.
',\n Cancel: 'Batal',\n },\n no: {\n 'Add to Calendar': 'Legg til i kalenderen',\n 'iCal File': 'iCal-fil',\n Close: 'Lukk',\n 'Close Selection': 'Lukk utvalg',\n 'Click me': 'Klikk på meg',\n 'modal.webview.ical.h': 'Åpne nettleseren din',\n 'modal.webview.ical.text':\n 'Dessverre har nettlesere i appen problemer med måten vi genererer kalenderfilen på.',\n 'modal.clipboard.text': 'Vi kopierte automatisk en magisk URL til utklippstavlen din.',\n 'modal.webview.ical.steps':\n '
  1. Åpne en annen nettleser på telefonen, ...
  2. Lim inn innholdet på utklippstavlen og gå.
',\n 'modal.crios.ical.h': 'Åpne Safari',\n 'modal.crios.ical.text': 'Dessverre har Chrome på iOS problemer med måten vi genererer kalenderfilen på.',\n 'modal.crios.ical.steps':\n '
  1. Åpne Safari, ...
  2. Lim inn innholdet på utklippstavlen og gå.
',\n 'modal.multidate.h': 'Dette er en avtaleserie',\n 'modal.multidate.text': 'Legg til de enkelte datoene i kalenderen din i rekkefølge:',\n Event: 'Møte',\n 'Cancelled Date': 'Denne datoen ble avlyst.',\n 'Delete from Calendar': 'Oppdater kalenderen din!',\n 'modal.subscribe.yahoo.h': 'Legg til kalender til Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Åpne Yahoo-kalenderen.
  2. Klikk på «Handlinger»-fanen.
  3. Velg «Følg andre kalendere».
  4. Velg et navn og lim inn URL-en fra utklippstavlen i URL-feltet.
',\n Cancel: 'Avbryt',\n },\n fi: {\n 'Add to Calendar': 'Lisää kalenteriin',\n 'iCal File': 'iCal-tiedosto',\n Close: 'Sulje',\n 'Close Selection': 'Sulje valinta',\n 'Click me': 'Klikkaa minua',\n 'modal.webview.ical.h': 'Avaa selain',\n 'modal.webview.ical.text':\n 'Valitettavasti sovelluksen sisäisillä selaimilla on ongelmia kalenteritiedoston luomisessa.',\n 'modal.clipboard.text': 'Olemme automaattisesti kopioineet maagisen URL-osoitteen leikepöydällesi.',\n 'modal.webview.ical.steps':\n '
  1. Avaa toinen selain puhelimessasi., ...
  2. liitä leikepöydän sisältö ja lähde.
',\n 'modal.crios.ical.h': 'Avaa Safari',\n 'modal.crios.ical.text': 'Valitettavasti iOS:n Chromessa on ongelmia kalenteritiedoston luomisessa.',\n 'modal.crios.ical.steps':\n '
  1. Avaa Safari, ...
  2. liitä leikepöydän sisältö ja lähde.
',\n 'modal.multidate.h': 'Tämä on tapahtumasarja',\n 'modal.multidate.text': 'Lisää yksittäiset osat yksi kerrallaan:',\n Event: 'Tapahtuma',\n 'Cancelled Date': 'Tämä päivämäärä peruttiin.',\n 'Delete from Calendar': 'Päivitä kalenterisi!',\n 'modal.subscribe.yahoo.h': 'Lisää kalenteri Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Avaa Yahoo-kalenteri.
  2. Napsauta \"Toiminnot\"-välilehteä.
  3. Valitse \"Seuraa muiden kalentereita\".
  4. Valitse nimi ja liitä URL-osoite leikepöydältäsi URL-kenttään.
',\n Cancel: 'Peruuta',\n },\n sv: {\n 'Add to Calendar': 'Lägg till i kalender',\n 'iCal File': 'iCal-fil',\n Close: 'Stäng',\n 'Close Selection': 'Stäng urvalet',\n 'Click me': 'Klicka på mig',\n 'modal.webview.ical.h': 'Öppna din webbläsare',\n 'modal.webview.ical.text': 'Tyvärr har webbläsare i appen problem med hur vi genererar kalenderfilen.',\n 'modal.clipboard.text': 'Vi har automatiskt kopierat en magisk URL till ditt klippblock.',\n 'modal.webview.ical.steps':\n '
  1. Öppna en annan webbläsare på telefonen, ...
  2. Insätt innehållet i klippbordet och kör.
',\n 'modal.crios.ical.h': 'Öppna Safari',\n 'modal.crios.ical.text': 'Tyvärr har Chrome på iOS problem med hur vi genererar kalenderfilen.',\n 'modal.crios.ical.steps':\n '
  1. Öppna Safari, ...
  2. Insätt innehållet i klippbordet och kör.
',\n 'modal.multidate.h': 'Detta är en evenemangsserie',\n 'modal.multidate.text': 'Lägg till de enskilda delarna en efter en:',\n Event: 'Evenemang',\n 'Cancelled Date': 'Detta datum har ställts in.',\n 'Delete from Calendar': 'Uppdatera din kalender!',\n 'modal.subscribe.yahoo.h': 'Lägg till kalender i Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Öppna Yahoo-kalendern.
  2. Klicka på fliken \"Åtgärder\".
  3. Välj \"Följ andra kalendrar\".
  4. Välj ett namn och klistra in URL:en från klippbordet i URL-fältet.
',\n Cancel: 'Avbryt',\n },\n cs: {\n 'Add to Calendar': 'Přidat do kalendáře',\n 'iCal File': 'Soubor iCal',\n Close: 'Zavřít',\n 'Close Selection': 'Zavřít výběr',\n 'Click me': 'Klikněte na mě',\n 'modal.webview.ical.h': 'Otevřete prohlížeč',\n 'modal.webview.ical.text':\n 'Prohlížeče v aplikacích mají bohužel problémy se způsobem generování souboru kalendáře.',\n 'modal.clipboard.text': 'Do schránky jsme automaticky zkopírovali kouzelnou adresu URL.',\n 'modal.webview.ical.steps':\n '
  1. Otevření jiného prohlížeče v telefonu, ...
  2. Vložte obsah schránky a přejděte.
',\n 'modal.crios.ical.h': 'Otevřít Safari',\n 'modal.crios.ical.text':\n 'Chrome v systému iOS má bohužel problémy se způsobem generování souboru kalendáře.',\n 'modal.crios.ical.steps':\n '
  1. Otevřít Safari, ...
  2. Vložte obsah schránky a přejděte.
',\n 'modal.multidate.h': 'Jedná se o sérii událostí',\n 'modal.multidate.text': 'Přidávejte jednotlivé díly jeden po druhém:',\n Event: 'Událost',\n 'Cancelled Date': 'Toto datum bylo zrušeno.',\n 'Delete from Calendar': 'Aktualizujte svůj kalendář!',\n 'modal.subscribe.yahoo.h': 'Přidat kalendář do Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Otevřete kalendář Yahoo.
  2. Klikněte na kartu \"Akce\".
  3. Vyberte možnost \"Sledovat další kalendáře\".
  4. Vyberte název a vložte adresu URL ze schránky do pole URL.
',\n Cancel: 'Storno',\n },\n ja: {\n 'Add to Calendar': 'カレンダーに追加',\n 'iCal File': 'iCalファイル',\n Close: '閉じる',\n 'Close Selection': 'クローズ選択',\n 'Click me': 'クリックしてください',\n 'modal.webview.ical.h': 'ブラウザを起動する',\n 'modal.webview.ical.text':\n '残念ながら、アプリ内ブラウザは、カレンダーファイルの生成方法に問題があります。',\n 'modal.clipboard.text': '魔法のURLを自動的にクリップボードにコピーしています。',\n 'modal.webview.ical.steps':\n '
  1. スマートフォンで別のブラウザを起動する, ...
  2. クリップボードの内容を貼り付けて行く。
',\n 'modal.crios.ical.h': 'オープンSafari',\n 'modal.crios.ical.text': '残念ながら、iOS版Chromeでは、カレンダーファイルの生成方法に問題があります。',\n 'modal.crios.ical.steps':\n '
  1. オープンSafari, ...
  2. クリップボードの内容を貼り付けて行く。
',\n 'modal.multidate.h': 'イベントシリーズです',\n 'modal.multidate.text': '個々のパーツを一つずつ追加していく:',\n Event: 'イベント',\n 'Cancelled Date': 'この日はキャンセルになりました。',\n 'Delete from Calendar': 'カレンダーを更新する!',\n 'modal.subscribe.yahoo.h': 'Yahooにカレンダーを追加する',\n 'modal.subscribe.yahoo.text':\n '
  1. Yahooカレンダーを開く。
  2. [実行] タブをクリックします。
  3. [その他のカレンダーのフォロー] を選択します。
  4. 名前を決めて、クリップボードにあるURLをURL欄に貼り付けます。
',\n Cancel: 'キャンセル',\n },\n it: {\n 'Add to Calendar': 'Aggiungi al calendario',\n 'iCal File': 'File iCal',\n Close: 'Chiudere',\n 'Close Selection': 'Chiudere la selezione',\n 'Click me': 'Clicca su di me',\n 'modal.webview.ical.h': 'Aprire il browser',\n 'modal.webview.ical.text':\n 'Purtroppo i browser in-app hanno problemi con il modo in cui generiamo il file del calendario.',\n 'modal.clipboard.text': 'Abbiamo copiato automaticamente un URL magico negli appunti.',\n 'modal.webview.ical.steps':\n '
  1. Aprire un altro browser sul cellulare, ...
  2. Incollare il contenuto degli appunti e partire.
',\n 'modal.crios.ical.h': 'Aprire Safari',\n 'modal.crios.ical.text':\n 'Purtroppo, Chrome su iOS ha problemi con il modo in cui generiamo il file del calendario.',\n 'modal.crios.ical.steps':\n '
  1. Aprire Safari, ...
  2. Incollare il contenuto degli appunti e partire.
',\n 'modal.multidate.h': 'Questa è una serie di eventi',\n 'modal.multidate.text': 'Aggiungere le singole parti una per una:',\n Event: 'Evento',\n 'Cancelled Date': 'La data è stata annullata.',\n 'Delete from Calendar': 'Aggiornare il calendario!',\n 'modal.subscribe.yahoo.h': 'Aggiungi il calendario a Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Aprire il calendario di Yahoo.
  2. Fare clic sulla scheda \"Azioni\".
  3. Selezionare \"Segui altri calendari\".
  4. Scegliere un nome e incollare l\\'URL dagli appunti nel campo URL.
',\n Cancel: 'Annulla',\n },\n ko: {\n 'Add to Calendar': '캘린더에 추가',\n 'iCal File': 'iCal 파일',\n Close: '닫다',\n 'Close Selection': '선택 닫기',\n 'Click me': '클릭 해주세요',\n 'modal.webview.ical.h': '브라우저 열기',\n 'modal.webview.ical.text': '불행히도 인앱 브라우저는 캘린더 파일을 생성하는 방식에 문제가 있습니다.',\n 'modal.clipboard.text': '매직 URL을 클립보드에 자동으로 복사했습니다.',\n 'modal.webview.ical.steps':\n '
  1. 휴대전화에서 다른 브라우저 열기, ...
  2. 클립보드 내용을 붙여넣고 이동합니다.
',\n 'modal.crios.ical.h': 'Safari 열기',\n 'modal.crios.ical.text': '불행히도 iOS의 Chrome은 캘린더 파일을 생성하는 방식에 문제가 있습니다.',\n 'modal.crios.ical.steps':\n '
  1. Safari 열기, ...
  2. 클립보드 내용을 붙여넣고 이동합니다.
',\n 'modal.multidate.h': '이벤트 시리즈입니다',\n 'modal.multidate.text': '개별 부품을 하나씩 추가:',\n Event: '이벤트',\n 'Cancelled Date': '이 날짜는 취소되었습니다.',\n 'Delete from Calendar': '캘린더를 업데이트하세요!',\n 'modal.subscribe.yahoo.h': 'Yahoo에 캘린더 추가',\n 'modal.subscribe.yahoo.text':\n '
  1. Yahoo 캘린더를 엽니다.
  2. \"동작\" 탭을 클릭합니다.
  3. \"다른 일정관리 팔로우\"를 선택합니다.
  4. 이름을 선택하고 클립보드의 URL을 URL 필드에 붙여넣습니다.
',\n Cancel: '취소',\n },\n vi: {\n 'Add to Calendar': 'Thêm vào Lịch',\n 'iCal File': 'Tệp iCal',\n Close: 'Đóng',\n 'Close Selection': 'Đóng lựa chọn',\n 'Click me': 'Nhấp vào đây',\n 'modal.webview.ical.h': 'Mở trình duyệt của bạn',\n 'modal.webview.ical.text':\n 'Rất tiếc, các trình duyệt trong ứng dụng gặp sự cố với cách chúng tôi tạo tệp lịch.',\n 'modal.clipboard.text': 'Chúng tôi đã tự động sao chép một URL ma thuật vào khay nhớ tạm của bạn.',\n 'modal.webview.ical.steps':\n '
  1. Mở trình duyệt khác trên điện thoại của bạn, ...
  2. Dán nội dung khay nhớ tạm và bắt đầu.
',\n 'modal.crios.ical.h': 'Mở Safari',\n 'modal.crios.ical.text': 'Rất tiếc, Chrome trên iOS gặp sự cố với cách chúng tôi tạo tệp lịch.',\n 'modal.crios.ical.steps':\n '
  1. Mở Safari, ...
  2. Dán nội dung khay nhớ tạm và bắt đầu.
',\n 'modal.multidate.h': 'Đây là một chuỗi sự kiện',\n 'modal.multidate.text': 'Thêm từng phần riêng lẻ một:',\n Event: 'Biến cố',\n 'Cancelled Date': 'Ngày này đã bị hủy.',\n 'Delete from Calendar': 'Cập nhật lịch của bạn!',\n 'modal.subscribe.yahoo.h': 'Thêm lịch vào Yahoo',\n 'modal.subscribe.yahoo.text':\n '
  1. Mở Lịch Yahoo.
  2. Nhấp vào tab \"Hành động\".
  3. Chọn \"Theo dõi các Lịch khác\".
  4. Chọn tên và dán URL từ khay nhớ tạm của bạn vào trường URL.
',\n Cancel: 'Hủy bỏ',\n },\n};\nfunction atcb_translate_hook(identifier, data) {\n const searchKey = identifier.replace(/\\s+/g, '').toLowerCase();\n if (\n data.customLabels != null &&\n data.customLabels[`${searchKey}`] != null &&\n data.customLabels[`${searchKey}`] != ''\n ) {\n return atcb_rewrite_html_elements(data.customLabels[`${searchKey}`]);\n } else {\n return atcb_translate(identifier, data.language);\n }\n}\nfunction atcb_translate(identifier, language) {\n if (!language) {\n language = 'en';\n }\n if (i18nStrings[`${language}`][`${identifier}`]) {\n return i18nStrings[`${language}`][`${identifier}`];\n }\n return identifier;\n}\n\n\nlet atcbInitialInit = false;\nfunction atcb_init() {\n if (!atcbInitialInit) {\n atcb_set_global_event_listener();\n }\n atcb_init_log_msg();\n if (!isBrowser()) {\n console.error('no further initialization due to wrong environment (no browser)');\n return;\n }\n const atcButtons = document.querySelectorAll('.atcb');\n const btnIDs = [];\n if (atcButtons.length > 0) {\n const atcButtonsInitialized = document.querySelectorAll('.atcb-initialized');\n for (let i = 0; i < atcButtons.length; i++) {\n if (atcButtons[parseInt(i)].classList.contains('atcb-initialized')) {\n continue;\n }\n const atcbJsonInput = (function () {\n try {\n return JSON.parse(\n atcb_secure_content(atcButtons[parseInt(i)].innerHTML.replace(/(\\r\\n|\\n|\\r)/g, ''), false)\n );\n } catch (e) {\n console.error(\n 'Add to Calendar Button generation failed: JSON content provided, but badly formatted (in doubt, try some tool like https://jsonformatter.org/ to validate).\\r\\nError message: ' +\n e\n );\n return '';\n }\n })();\n const atcbJsonInputPatched = atcb_patch_config(atcbJsonInput);\n const atcbInputData = atcb_get_pro_data(atcbJsonInputPatched);\n if (atcbInputData.length == 0) {\n continue;\n }\n if (atcb_check_required(atcbInputData)) {\n const data = atcb_decorate_data(atcbInputData);\n if (data.identifier == null || data.identifier == '') {\n data.identifier = 'atcb-btn-' + (i + atcButtonsInitialized.length + 1);\n }\n if (atcb_validate(data)) {\n atcb_generate_button(atcButtons[parseInt(i)], data);\n atcb_update_state_management(data);\n btnIDs.push(data.identifier);\n }\n }\n }\n }\n return btnIDs;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction atcb_action(data, triggerElement, keyboardTrigger = true) {\n if (!atcbInitialInit) {\n atcb_set_global_event_listener();\n }\n atcb_init_log_msg();\n data = atcb_secure_content(data);\n data = atcb_get_pro_data(data);\n if (!atcb_check_required(data)) {\n throw new Error('Add to Calendar Button generation failed: required data missing; see console logs');\n }\n data = atcb_decorate_data(data);\n if (triggerElement) {\n if (triggerElement.id != null && triggerElement.id != '') {\n data.identifier = triggerElement.id;\n } else {\n if (data.identifier != null && data.identifier != '') {\n triggerElement.id = data.identifier;\n } else {\n data.identifier = 'atcb-btn-custom';\n }\n }\n if (data.listStyle == 'dropdown') {\n data.listStyle = 'overlay';\n }\n } else {\n data.identifier = 'atcb-btn-custom';\n data.listStyle = 'modal';\n data.trigger = 'click';\n }\n if (!atcb_validate(data)) {\n throw new Error(\n 'Add to Calendar Button generation (' + data.identifier + ') failed: invalid data; see console logs'\n );\n }\n atcb_update_state_management(data);\n atcb_toggle('open', data, triggerElement, keyboardTrigger);\n console.log('Add to Calendar Button \"' + data.identifier + '\" triggered');\n return [data.identifier];\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction atcb_destroy(id) {\n atcb_close();\n const el = document.getElementById(id);\n if (atcbStates[`${id}`] == null || !el) {\n console.error('Add to Calendar Button could not be destroyed! ID unknown.');\n return false;\n }\n delete atcbStates[`${id}`];\n if (el.parentElement.parentElement.classList.contains('atcb-initialized')) {\n el.parentElement.parentElement.remove();\n } else {\n el.remove();\n }\n console.log('Add to Calendar Button \"' + id + '\" destroyed');\n return true;\n}\nfunction atcb_update_state_management(data) {\n const singleDates = [];\n for (let i = 0; i < data.options.length; i++) {\n singleDates[data.options[`${i}`]] = [];\n for (let id = 1; id <= data.dates.length; id++) {\n singleDates[data.options[`${i}`]].push(0);\n }\n }\n atcbStates[data.identifier] = singleDates;\n}\nfunction atcb_init_log_msg() {\n if (!atcbInitialInit) {\n console.log('Add to Calendar Button Script initialized (version ' + atcbVersion + ')');\n console.log('See https://github.com/add2cal/add-to-calendar-button for details');\n atcbInitialInit = true;\n }\n}\nfunction atcb_get_pro_data(data) {\n if (data.proKey != null && data.proKey != '') {\n console.error('Add to Calendar Button generation failed: proKey invalid!');\n return [];\n }\n return data;\n}\nfunction atcb_set_global_event_listener() {\n if (!isBrowser()) {\n return;\n }\n document.addEventListener('keyup', function (event) {\n if (event.key === 'Escape') {\n atcb_toggle('close', '', '', true);\n }\n });\n document.addEventListener('keydown', (event) => {\n if (\n document.querySelector('.atcb-list') &&\n (event.key === 'ArrowDown' || event.key === 'ArrowUp' || event.key === 'Tab')\n ) {\n let targetFocus = 0;\n let currFocusOption = document.activeElement;\n const optionListCount = document.querySelectorAll('.atcb-list-item').length;\n if (currFocusOption.classList.contains('atcb-list-item')) {\n if (event.key === 'ArrowDown' && currFocusOption.dataset.optionNumber < optionListCount) {\n event.preventDefault();\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) + 1;\n } else if (event.key === 'ArrowUp' && currFocusOption.dataset.optionNumber >= 1) {\n event.preventDefault();\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) - 1;\n }\n if (targetFocus > 0) {\n document.querySelector('.atcb-list-item[data-option-number=\"' + targetFocus + '\"]').focus();\n }\n } else {\n event.preventDefault();\n switch (event.key) {\n case 'ArrowDown':\n document.querySelector('.atcb-list-item[data-option-number=\"1\"]').focus();\n break;\n case 'ArrowUp':\n document.querySelector('.atcb-list-item[data-option-number=\"' + optionListCount + '\"]').focus();\n break;\n default:\n document.querySelector('.atcb-list-item[data-option-number=\"1\"]').focus();\n break;\n }\n }\n }\n });\n window.addEventListener(\n 'resize',\n atcb_throttle(() => {\n const activeOverlay = document.getElementById('atcb-bgoverlay');\n if (activeOverlay != null) {\n atcb_set_fullsize(activeOverlay);\n atcb_manage_body_scroll();\n }\n const activeButton = document.querySelector('.atcb-active');\n if (activeButton != null) {\n const activeList = document.querySelector('.atcb-dropdown');\n if (activeList != null) {\n atcb_position_list(activeButton, activeList, false, true);\n }\n }\n })\n );\n window.addEventListener(\n 'scroll',\n atcb_throttle(() => {\n const activeButton = document.querySelector('.atcb-active');\n if (activeButton != null) {\n const activeList = document.querySelector('.atcb-dropdown');\n if (activeList != null) {\n if (activeList.classList.contains('atcb-mind-scrolling')) {\n atcb_position_list(activeButton, activeList, false, true);\n }\n }\n }\n }, 20)\n );\n}\n\n\nexport { atcb_action, atcb_init, atcb_destroy };\n","import $ from 'jquery';\r\nimport 'lazysizes';\r\nimport 'lazysizes/plugins/unveilhooks/ls.unveilhooks';\r\nimport Headroom from 'headroom.js';\r\nimport 'slick-carousel';\r\nimport 'magnific-popup';\r\nimport ScrollReveal from 'scrollreveal';\r\nimport { atcb_action, atcb_init } from 'add-to-calendar-button';\r\n\r\nconst Mangrove = {\r\n init() {\r\n this.cache();\r\n this.events();\r\n this.initHeadroom();\r\n this.initSmoothScroll();\r\n this.initSliders();\r\n this.initAddToCal();\r\n this.initPopups();\r\n this.initAnims();\r\n this.initAccordion();\r\n this.initFaqPanels();\r\n this.formEdits();\r\n this.allyEdits();\r\n this.docsSearch();\r\n if ( $('body').hasClass('blog') ) {\r\n this.catFilterParams();\r\n }\r\n if ( $('body').hasClass('page-template-ways-to-save') ) {\r\n this.waystosaveTabbedLinks();\r\n }\r\n if ($('.js-countdown').length > 0) {\r\n this.countDown();\r\n }\r\n },\r\n cache() {\r\n this.$doc = $(document);\r\n this.$win = $(window);\r\n this.$html = $('html');\r\n this.$body = $('body');\r\n this.$mainWrap = $('main');\r\n this.$header = $('.js-header');\r\n this.$mobileNav = $('.js-mobile-nav');\r\n this.$hamburger = $('.js-hamburger');\r\n },\r\n events() {\r\n this.$doc.on('click', '.js-hamburger', event => this.showMobileNav(event));\r\n this.$doc.on('click', '.js-mobile-nav li.menu-item-has-children > a', event => this.showMobileSubNav(event));\r\n this.$doc.on('click', '.js-share', event => this.openShareWindow(event));\r\n this.$doc.on('click', 'a[href=\"#newsletter\"]', event => this.closeMobileNav(event));\r\n this.$doc.on('click', '.option a.nturl', event => this.langSelectedClass(event));\r\n this.$doc.on('click', '.js-loadmore', event => this.loadMore(event));\r\n this.$doc.on('change', '.js-filter-posts', event => this.filterPosts(event));\r\n this.$doc.on('click', '.js-filter-cat', event => this.filterPostsCats(event));\r\n },\r\n openShareWindow(event) {\r\n let link = $(event.currentTarget).attr('href');\r\n if (link.substr(0, 6) != 'mailto') {\r\n event.preventDefault();\r\n window.open(link, '', 'width=600, height=400');\r\n }\r\n },\r\n initAddToCal() {\r\n if ($('.atcb').length) {\r\n atcb_init();\r\n }\r\n },\r\n initSliders() {\r\n $('.js-hero-carousel').slick({\r\n infinite: true,\r\n speed: 1400,\r\n fade: true,\r\n cssEase: 'ease-out',\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n dots: false,\r\n arrows: false,\r\n pauseOnHover: false\r\n });\r\n $('.js-carousel-playpause').on('click', function(e) {\r\n e.preventDefault();\r\n if ($(this).hasClass('paused')) {\r\n $('.js-hero-carousel').slick('slickPlay');\r\n $('.js-carousel-playpause').removeClass('paused');\r\n $('.js-carousel-play-svg').html('');\r\n } else {\r\n $('.js-hero-carousel').slick('slickPause');\r\n $('.js-carousel-playpause').addClass('paused');\r\n $('.js-carousel-play-svg').html('');\r\n }\r\n });\r\n $('.js-carousel').on('init', function(event, slick, direction){\r\n $('.js-carousel .slick-track').attr('id', 'carouselItems');\r\n if ( $( \".js-carousel .slick-next\" ).length ) {\r\n $( \".js-carousel .slick-next\" ).attr('aria-controls', 'carouselItems');\r\n }\r\n if ( $( \".js-carousel .slick-prev\" ).length ) {\r\n $( \".js-carousel .slick-prev\" ).attr('aria-controls', 'carouselItems');\r\n }\r\n });\r\n $('.js-carousel').slick({\r\n dots: true,\r\n arrows: true,\r\n adaptiveHeight: true,\r\n responsive: [\r\n {\r\n breakpoint: 960,\r\n settings: {\r\n arrows: false\r\n }\r\n },\r\n ]\r\n });\r\n },\r\n initPopups() {\r\n $(document).magnificPopup({\r\n delegate: '.js-popup',\r\n type:'inline',\r\n midClick: true,\r\n mainClass: 'popup--animate',\r\n callbacks: {\r\n open: function() {\r\n if ($(this.content).find('video').length ) {\r\n $(this.content).find('video')[0].play();\r\n }\r\n },\r\n close: function() {\r\n if ( $( \".js-internal-video\" ).length ) {\r\n $('.js-internal-video').trigger('pause');\r\n }\r\n }\r\n }\r\n });\r\n $('.js-external-video-popup').magnificPopup({\r\n type: 'iframe',\r\n mainClass: 'popup--animate popup--iframe',\r\n });\r\n },\r\n initAccordion() {\r\n // $( '.js-accordion-content' ).hide();\r\n $( '.js-accordion-content' ).attr( 'id', function( IDcount ) {\r\n return 'panel-' + IDcount;\r\n });\r\n $( '.js-accordion-content' ).attr( 'aria-labelledby', function( IDcount ) {\r\n return 'control-panel-' + IDcount;\r\n });\r\n $( '.js-accordion-content' ).attr( 'hidden', 'true' );\r\n $( '.js-accordion-list .js-accordion-content' ).attr( 'role' , 'region' );\r\n $( '.js-accordion-title' ).each(function(i){\r\n var $target = $(this).next( '.js-accordion-content' )[0].id;\r\n var $link = $( '',\n\n\t\ttClose: 'Close (Esc)',\n\n\t\ttLoading: 'Loading...',\n\n\t\tautoFocusLast: true\n\n\t}\n};\n\n\n\n$.fn.magnificPopup = function(options) {\n\t_checkInstance();\n\n\tvar jqEl = $(this);\n\n\t// We call some API method of first param is a string\n\tif (typeof options === \"string\" ) {\n\n\t\tif(options === 'open') {\n\t\t\tvar items,\n\t\t\t\titemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,\n\t\t\t\tindex = parseInt(arguments[1], 10) || 0;\n\n\t\t\tif(itemOpts.items) {\n\t\t\t\titems = itemOpts.items[index];\n\t\t\t} else {\n\t\t\t\titems = jqEl;\n\t\t\t\tif(itemOpts.delegate) {\n\t\t\t\t\titems = items.find(itemOpts.delegate);\n\t\t\t\t}\n\t\t\t\titems = items.eq( index );\n\t\t\t}\n\t\t\tmfp._openClick({mfpEl:items}, jqEl, itemOpts);\n\t\t} else {\n\t\t\tif(mfp.isOpen)\n\t\t\t\tmfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));\n\t\t}\n\n\t} else {\n\t\t// clone options obj\n\t\toptions = $.extend(true, {}, options);\n\n\t\t/*\n\t\t * As Zepto doesn't support .data() method for objects\n\t\t * and it works only in normal browsers\n\t\t * we assign \"options\" object directly to the DOM element. FTW!\n\t\t */\n\t\tif(_isJQ) {\n\t\t\tjqEl.data('magnificPopup', options);\n\t\t} else {\n\t\t\tjqEl[0].magnificPopup = options;\n\t\t}\n\n\t\tmfp.addGroup(jqEl, options);\n\n\t}\n\treturn jqEl;\n};\n\n/*>>core*/\n\n/*>>inline*/\n\nvar INLINE_NS = 'inline',\n\t_hiddenClass,\n\t_inlinePlaceholder,\n\t_lastInlineElement,\n\t_putInlineElementsBack = function() {\n\t\tif(_lastInlineElement) {\n\t\t\t_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();\n\t\t\t_lastInlineElement = null;\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(INLINE_NS, {\n\toptions: {\n\t\thiddenClass: 'hide', // will be appended with `mfp-` prefix\n\t\tmarkup: '',\n\t\ttNotFound: 'Content not found'\n\t},\n\tproto: {\n\n\t\tinitInline: function() {\n\t\t\tmfp.types.push(INLINE_NS);\n\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {\n\t\t\t\t_putInlineElementsBack();\n\t\t\t});\n\t\t},\n\n\t\tgetInline: function(item, template) {\n\n\t\t\t_putInlineElementsBack();\n\n\t\t\tif(item.src) {\n\t\t\t\tvar inlineSt = mfp.st.inline,\n\t\t\t\t\tel = $(item.src);\n\n\t\t\t\tif(el.length) {\n\n\t\t\t\t\t// If target element has parent - we replace it with placeholder and put it back after popup is closed\n\t\t\t\t\tvar parent = el[0].parentNode;\n\t\t\t\t\tif(parent && parent.tagName) {\n\t\t\t\t\t\tif(!_inlinePlaceholder) {\n\t\t\t\t\t\t\t_hiddenClass = inlineSt.hiddenClass;\n\t\t\t\t\t\t\t_inlinePlaceholder = _getEl(_hiddenClass);\n\t\t\t\t\t\t\t_hiddenClass = 'mfp-'+_hiddenClass;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// replace target inline element with placeholder\n\t\t\t\t\t\t_lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);\n\t\t\t\t\t}\n\n\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t} else {\n\t\t\t\t\tmfp.updateStatus('error', inlineSt.tNotFound);\n\t\t\t\t\tel = $('
');\n\t\t\t\t}\n\n\t\t\t\titem.inlineElement = el;\n\t\t\t\treturn el;\n\t\t\t}\n\n\t\t\tmfp.updateStatus('ready');\n\t\t\tmfp._parseMarkup(template, {}, item);\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n/*>>inline*/\n\n/*>>ajax*/\nvar AJAX_NS = 'ajax',\n\t_ajaxCur,\n\t_removeAjaxCursor = function() {\n\t\tif(_ajaxCur) {\n\t\t\t$(document.body).removeClass(_ajaxCur);\n\t\t}\n\t},\n\t_destroyAjaxRequest = function() {\n\t\t_removeAjaxCursor();\n\t\tif(mfp.req) {\n\t\t\tmfp.req.abort();\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(AJAX_NS, {\n\n\toptions: {\n\t\tsettings: null,\n\t\tcursor: 'mfp-ajax-cur',\n\t\ttError: 'The content could not be loaded.'\n\t},\n\n\tproto: {\n\t\tinitAjax: function() {\n\t\t\tmfp.types.push(AJAX_NS);\n\t\t\t_ajaxCur = mfp.st.ajax.cursor;\n\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);\n\t\t\t_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);\n\t\t},\n\t\tgetAjax: function(item) {\n\n\t\t\tif(_ajaxCur) {\n\t\t\t\t$(document.body).addClass(_ajaxCur);\n\t\t\t}\n\n\t\t\tmfp.updateStatus('loading');\n\n\t\t\tvar opts = $.extend({\n\t\t\t\turl: item.src,\n\t\t\t\tsuccess: function(data, textStatus, jqXHR) {\n\t\t\t\t\tvar temp = {\n\t\t\t\t\t\tdata:data,\n\t\t\t\t\t\txhr:jqXHR\n\t\t\t\t\t};\n\n\t\t\t\t\t_mfpTrigger('ParseAjax', temp);\n\n\t\t\t\t\tmfp.appendContent( $(temp.data), AJAX_NS );\n\n\t\t\t\t\titem.finished = true;\n\n\t\t\t\t\t_removeAjaxCursor();\n\n\t\t\t\t\tmfp._setFocus();\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tmfp.wrap.addClass(READY_CLASS);\n\t\t\t\t\t}, 16);\n\n\t\t\t\t\tmfp.updateStatus('ready');\n\n\t\t\t\t\t_mfpTrigger('AjaxContentAdded');\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t_removeAjaxCursor();\n\t\t\t\t\titem.finished = item.loadError = true;\n\t\t\t\t\tmfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));\n\t\t\t\t}\n\t\t\t}, mfp.st.ajax.settings);\n\n\t\t\tmfp.req = $.ajax(opts);\n\n\t\t\treturn '';\n\t\t}\n\t}\n});\n\n/*>>ajax*/\n\n/*>>image*/\nvar _imgInterval,\n\t_getTitle = function(item) {\n\t\tif(item.data && item.data.title !== undefined)\n\t\t\treturn item.data.title;\n\n\t\tvar src = mfp.st.image.titleSrc;\n\n\t\tif(src) {\n\t\t\tif($.isFunction(src)) {\n\t\t\t\treturn src.call(mfp, item);\n\t\t\t} else if(item.el) {\n\t\t\t\treturn item.el.attr(src) || '';\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t};\n\n$.magnificPopup.registerModule('image', {\n\n\toptions: {\n\t\tmarkup: '
'+\n\t\t\t\t\t'
'+\n\t\t\t\t\t'
'+\n\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t'
'+\n\t\t\t\t\t'
'+\n\t\t\t\t'
',\n\t\tcursor: 'mfp-zoom-out-cur',\n\t\ttitleSrc: 'title',\n\t\tverticalFit: true,\n\t\ttError: 'The image could not be loaded.'\n\t},\n\n\tproto: {\n\t\tinitImage: function() {\n\t\t\tvar imgSt = mfp.st.image,\n\t\t\t\tns = '.image';\n\n\t\t\tmfp.types.push('image');\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\t\t\t\tif(mfp.currItem.type === 'image' && imgSt.cursor) {\n\t\t\t\t\t$(document.body).addClass(imgSt.cursor);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\tif(imgSt.cursor) {\n\t\t\t\t\t$(document.body).removeClass(imgSt.cursor);\n\t\t\t\t}\n\t\t\t\t_window.off('resize' + EVENT_NS);\n\t\t\t});\n\n\t\t\t_mfpOn('Resize'+ns, mfp.resizeImage);\n\t\t\tif(mfp.isLowIE) {\n\t\t\t\t_mfpOn('AfterChange', mfp.resizeImage);\n\t\t\t}\n\t\t},\n\t\tresizeImage: function() {\n\t\t\tvar item = mfp.currItem;\n\t\t\tif(!item || !item.img) return;\n\n\t\t\tif(mfp.st.image.verticalFit) {\n\t\t\t\tvar decr = 0;\n\t\t\t\t// fix box-sizing in ie7/8\n\t\t\t\tif(mfp.isLowIE) {\n\t\t\t\t\tdecr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);\n\t\t\t\t}\n\t\t\t\titem.img.css('max-height', mfp.wH-decr);\n\t\t\t}\n\t\t},\n\t\t_onImageHasSize: function(item) {\n\t\t\tif(item.img) {\n\n\t\t\t\titem.hasSize = true;\n\n\t\t\t\tif(_imgInterval) {\n\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t}\n\n\t\t\t\titem.isCheckingImgSize = false;\n\n\t\t\t\t_mfpTrigger('ImageHasSize', item);\n\n\t\t\t\tif(item.imgHidden) {\n\t\t\t\t\tif(mfp.content)\n\t\t\t\t\t\tmfp.content.removeClass('mfp-loading');\n\n\t\t\t\t\titem.imgHidden = false;\n\t\t\t\t}\n\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Function that loops until the image has size to display elements that rely on it asap\n\t\t */\n\t\tfindImageSize: function(item) {\n\n\t\t\tvar counter = 0,\n\t\t\t\timg = item.img[0],\n\t\t\t\tmfpSetInterval = function(delay) {\n\n\t\t\t\t\tif(_imgInterval) {\n\t\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t\t}\n\t\t\t\t\t// decelerating interval that checks for size of an image\n\t\t\t\t\t_imgInterval = setInterval(function() {\n\t\t\t\t\t\tif(img.naturalWidth > 0) {\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(counter > 200) {\n\t\t\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcounter++;\n\t\t\t\t\t\tif(counter === 3) {\n\t\t\t\t\t\t\tmfpSetInterval(10);\n\t\t\t\t\t\t} else if(counter === 40) {\n\t\t\t\t\t\t\tmfpSetInterval(50);\n\t\t\t\t\t\t} else if(counter === 100) {\n\t\t\t\t\t\t\tmfpSetInterval(500);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, delay);\n\t\t\t\t};\n\n\t\t\tmfpSetInterval(1);\n\t\t},\n\n\t\tgetImage: function(item, template) {\n\n\t\t\tvar guard = 0,\n\n\t\t\t\t// image load complete handler\n\t\t\t\tonLoadComplete = function() {\n\t\t\t\t\tif(item) {\n\t\t\t\t\t\tif (item.img[0].complete) {\n\t\t\t\t\t\t\titem.img.off('.mfploader');\n\n\t\t\t\t\t\t\tif(item === mfp.currItem){\n\t\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\n\t\t\t\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\t\t\titem.loaded = true;\n\n\t\t\t\t\t\t\t_mfpTrigger('ImageLoadComplete');\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// if image complete check fails 200 times (20 sec), we assume that there was an error.\n\t\t\t\t\t\t\tguard++;\n\t\t\t\t\t\t\tif(guard < 200) {\n\t\t\t\t\t\t\t\tsetTimeout(onLoadComplete,100);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tonLoadError();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t// image error handler\n\t\t\t\tonLoadError = function() {\n\t\t\t\t\tif(item) {\n\t\t\t\t\t\titem.img.off('.mfploader');\n\t\t\t\t\t\tif(item === mfp.currItem){\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\t\t\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\t\titem.loaded = true;\n\t\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\timgSt = mfp.st.image;\n\n\n\t\t\tvar el = template.find('.mfp-img');\n\t\t\tif(el.length) {\n\t\t\t\tvar img = document.createElement('img');\n\t\t\t\timg.className = 'mfp-img';\n\t\t\t\tif(item.el && item.el.find('img').length) {\n\t\t\t\t\timg.alt = item.el.find('img').attr('alt');\n\t\t\t\t}\n\t\t\t\titem.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);\n\t\t\t\timg.src = item.src;\n\n\t\t\t\t// without clone() \"error\" event is not firing when IMG is replaced by new IMG\n\t\t\t\t// TODO: find a way to avoid such cloning\n\t\t\t\tif(el.is('img')) {\n\t\t\t\t\titem.img = item.img.clone();\n\t\t\t\t}\n\n\t\t\t\timg = item.img[0];\n\t\t\t\tif(img.naturalWidth > 0) {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t} else if(!img.width) {\n\t\t\t\t\titem.hasSize = false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmfp._parseMarkup(template, {\n\t\t\t\ttitle: _getTitle(item),\n\t\t\t\timg_replaceWith: item.img\n\t\t\t}, item);\n\n\t\t\tmfp.resizeImage();\n\n\t\t\tif(item.hasSize) {\n\t\t\t\tif(_imgInterval) clearInterval(_imgInterval);\n\n\t\t\t\tif(item.loadError) {\n\t\t\t\t\ttemplate.addClass('mfp-loading');\n\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n\t\t\t\t} else {\n\t\t\t\t\ttemplate.removeClass('mfp-loading');\n\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t}\n\t\t\t\treturn template;\n\t\t\t}\n\n\t\t\tmfp.updateStatus('loading');\n\t\t\titem.loading = true;\n\n\t\t\tif(!item.hasSize) {\n\t\t\t\titem.imgHidden = true;\n\t\t\t\ttemplate.addClass('mfp-loading');\n\t\t\t\tmfp.findImageSize(item);\n\t\t\t}\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n/*>>image*/\n\n/*>>zoom*/\nvar hasMozTransform,\n\tgetHasMozTransform = function() {\n\t\tif(hasMozTransform === undefined) {\n\t\t\thasMozTransform = document.createElement('p').style.MozTransform !== undefined;\n\t\t}\n\t\treturn hasMozTransform;\n\t};\n\n$.magnificPopup.registerModule('zoom', {\n\n\toptions: {\n\t\tenabled: false,\n\t\teasing: 'ease-in-out',\n\t\tduration: 300,\n\t\topener: function(element) {\n\t\t\treturn element.is('img') ? element : element.find('img');\n\t\t}\n\t},\n\n\tproto: {\n\n\t\tinitZoom: function() {\n\t\t\tvar zoomSt = mfp.st.zoom,\n\t\t\t\tns = '.zoom',\n\t\t\t\timage;\n\n\t\t\tif(!zoomSt.enabled || !mfp.supportsTransition) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar duration = zoomSt.duration,\n\t\t\t\tgetElToAnimate = function(image) {\n\t\t\t\t\tvar newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),\n\t\t\t\t\t\ttransition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,\n\t\t\t\t\t\tcssObj = {\n\t\t\t\t\t\t\tposition: 'fixed',\n\t\t\t\t\t\t\tzIndex: 9999,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t'-webkit-backface-visibility': 'hidden'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tt = 'transition';\n\n\t\t\t\t\tcssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;\n\n\t\t\t\t\tnewImg.css(cssObj);\n\t\t\t\t\treturn newImg;\n\t\t\t\t},\n\t\t\t\tshowMainContent = function() {\n\t\t\t\t\tmfp.content.css('visibility', 'visible');\n\t\t\t\t},\n\t\t\t\topenTimeout,\n\t\t\t\tanimatedImg;\n\n\t\t\t_mfpOn('BuildControls'+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\n\t\t\t\t\tclearTimeout(openTimeout);\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\n\n\t\t\t\t\t// Basically, all code below does is clones existing image, puts in on top of the current one and animated it\n\n\t\t\t\t\timage = mfp._getItemToZoom();\n\n\t\t\t\t\tif(!image) {\n\t\t\t\t\t\tshowMainContent();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tanimatedImg = getElToAnimate(image);\n\n\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\n\n\t\t\t\t\tmfp.wrap.append(animatedImg);\n\n\t\t\t\t\topenTimeout = setTimeout(function() {\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset( true ) );\n\t\t\t\t\t\topenTimeout = setTimeout(function() {\n\n\t\t\t\t\t\t\tshowMainContent();\n\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tanimatedImg.remove();\n\t\t\t\t\t\t\t\timage = animatedImg = null;\n\t\t\t\t\t\t\t\t_mfpTrigger('ZoomAnimationEnded');\n\t\t\t\t\t\t\t}, 16); // avoid blink when switching images\n\n\t\t\t\t\t\t}, duration); // this timeout equals animation duration\n\n\t\t\t\t\t}, 16); // by adding this timeout we avoid short glitch at the beginning of animation\n\n\n\t\t\t\t\t// Lots of timeouts...\n\t\t\t\t}\n\t\t\t});\n\t\t\t_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\n\t\t\t\t\tclearTimeout(openTimeout);\n\n\t\t\t\t\tmfp.st.removalDelay = duration;\n\n\t\t\t\t\tif(!image) {\n\t\t\t\t\t\timage = mfp._getItemToZoom();\n\t\t\t\t\t\tif(!image) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimatedImg = getElToAnimate(image);\n\t\t\t\t\t}\n\n\t\t\t\t\tanimatedImg.css( mfp._getOffset(true) );\n\t\t\t\t\tmfp.wrap.append(animatedImg);\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\n\t\t\t\t\t}, 16);\n\t\t\t\t}\n\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\t\t\t\t\tshowMainContent();\n\t\t\t\t\tif(animatedImg) {\n\t\t\t\t\t\tanimatedImg.remove();\n\t\t\t\t\t}\n\t\t\t\t\timage = null;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_allowZoom: function() {\n\t\t\treturn mfp.currItem.type === 'image';\n\t\t},\n\n\t\t_getItemToZoom: function() {\n\t\t\tif(mfp.currItem.hasSize) {\n\t\t\t\treturn mfp.currItem.img;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Get element postion relative to viewport\n\t\t_getOffset: function(isLarge) {\n\t\t\tvar el;\n\t\t\tif(isLarge) {\n\t\t\t\tel = mfp.currItem.img;\n\t\t\t} else {\n\t\t\t\tel = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);\n\t\t\t}\n\n\t\t\tvar offset = el.offset();\n\t\t\tvar paddingTop = parseInt(el.css('padding-top'),10);\n\t\t\tvar paddingBottom = parseInt(el.css('padding-bottom'),10);\n\t\t\toffset.top -= ( $(window).scrollTop() - paddingTop );\n\n\n\t\t\t/*\n\n\t\t\tAnimating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.\n\n\t\t\t */\n\t\t\tvar obj = {\n\t\t\t\twidth: el.width(),\n\t\t\t\t// fix Zepto height+padding issue\n\t\t\t\theight: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop\n\t\t\t};\n\n\t\t\t// I hate to do this, but there is no another option\n\t\t\tif( getHasMozTransform() ) {\n\t\t\t\tobj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';\n\t\t\t} else {\n\t\t\t\tobj.left = offset.left;\n\t\t\t\tobj.top = offset.top;\n\t\t\t}\n\t\t\treturn obj;\n\t\t}\n\n\t}\n});\n\n\n\n/*>>zoom*/\n\n/*>>iframe*/\n\nvar IFRAME_NS = 'iframe',\n\t_emptyPage = '//about:blank',\n\n\t_fixIframeBugs = function(isShowing) {\n\t\tif(mfp.currTemplate[IFRAME_NS]) {\n\t\t\tvar el = mfp.currTemplate[IFRAME_NS].find('iframe');\n\t\t\tif(el.length) {\n\t\t\t\t// reset src after the popup is closed to avoid \"video keeps playing after popup is closed\" bug\n\t\t\t\tif(!isShowing) {\n\t\t\t\t\tel[0].src = _emptyPage;\n\t\t\t\t}\n\n\t\t\t\t// IE8 black screen bug fix\n\t\t\t\tif(mfp.isIE8) {\n\t\t\t\t\tel.css('display', isShowing ? 'block' : 'none');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(IFRAME_NS, {\n\n\toptions: {\n\t\tmarkup: '
'+\n\t\t\t\t\t'
'+\n\t\t\t\t\t''+\n\t\t\t\t'
',\n\n\t\tsrcAction: 'iframe_src',\n\n\t\t// we don't care and support only one default type of URL by default\n\t\tpatterns: {\n\t\t\tyoutube: {\n\t\t\t\tindex: 'youtube.com',\n\t\t\t\tid: 'v=',\n\t\t\t\tsrc: '//www.youtube.com/embed/%id%?autoplay=1'\n\t\t\t},\n\t\t\tvimeo: {\n\t\t\t\tindex: 'vimeo.com/',\n\t\t\t\tid: '/',\n\t\t\t\tsrc: '//player.vimeo.com/video/%id%?autoplay=1'\n\t\t\t},\n\t\t\tgmaps: {\n\t\t\t\tindex: '//maps.google.',\n\t\t\t\tsrc: '%id%&output=embed'\n\t\t\t}\n\t\t}\n\t},\n\n\tproto: {\n\t\tinitIframe: function() {\n\t\t\tmfp.types.push(IFRAME_NS);\n\n\t\t\t_mfpOn('BeforeChange', function(e, prevType, newType) {\n\t\t\t\tif(prevType !== newType) {\n\t\t\t\t\tif(prevType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(); // iframe if removed\n\t\t\t\t\t} else if(newType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(true); // iframe is showing\n\t\t\t\t\t}\n\t\t\t\t}// else {\n\t\t\t\t\t// iframe source is switched, don't do anything\n\t\t\t\t//}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {\n\t\t\t\t_fixIframeBugs();\n\t\t\t});\n\t\t},\n\n\t\tgetIframe: function(item, template) {\n\t\t\tvar embedSrc = item.src;\n\t\t\tvar iframeSt = mfp.st.iframe;\n\n\t\t\t$.each(iframeSt.patterns, function() {\n\t\t\t\tif(embedSrc.indexOf( this.index ) > -1) {\n\t\t\t\t\tif(this.id) {\n\t\t\t\t\t\tif(typeof this.id === 'string') {\n\t\t\t\t\t\t\tembedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tembedSrc = this.id.call( this, embedSrc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tembedSrc = this.src.replace('%id%', embedSrc );\n\t\t\t\t\treturn false; // break;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar dataObj = {};\n\t\t\tif(iframeSt.srcAction) {\n\t\t\t\tdataObj[iframeSt.srcAction] = embedSrc;\n\t\t\t}\n\t\t\tmfp._parseMarkup(template, dataObj, item);\n\n\t\t\tmfp.updateStatus('ready');\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n\n\n/*>>iframe*/\n\n/*>>gallery*/\n/**\n * Get looped index depending on number of slides\n */\nvar _getLoopedId = function(index) {\n\t\tvar numSlides = mfp.items.length;\n\t\tif(index > numSlides - 1) {\n\t\t\treturn index - numSlides;\n\t\t} else if(index < 0) {\n\t\t\treturn numSlides + index;\n\t\t}\n\t\treturn index;\n\t},\n\t_replaceCurrTotal = function(text, curr, total) {\n\t\treturn text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);\n\t};\n\n$.magnificPopup.registerModule('gallery', {\n\n\toptions: {\n\t\tenabled: false,\n\t\tarrowMarkup: '',\n\t\tpreload: [0,2],\n\t\tnavigateByImgClick: true,\n\t\tarrows: true,\n\n\t\ttPrev: 'Previous (Left arrow key)',\n\t\ttNext: 'Next (Right arrow key)',\n\t\ttCounter: '%curr% of %total%'\n\t},\n\n\tproto: {\n\t\tinitGallery: function() {\n\n\t\t\tvar gSt = mfp.st.gallery,\n\t\t\t\tns = '.mfp-gallery';\n\n\t\t\tmfp.direction = true; // true - next, false - prev\n\n\t\t\tif(!gSt || !gSt.enabled ) return false;\n\n\t\t\t_wrapClasses += ' mfp-gallery';\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\n\t\t\t\tif(gSt.navigateByImgClick) {\n\t\t\t\t\tmfp.wrap.on('click'+ns, '.mfp-img', function() {\n\t\t\t\t\t\tif(mfp.items.length > 1) {\n\t\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t_document.on('keydown'+ns, function(e) {\n\t\t\t\t\tif (e.keyCode === 37) {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t} else if (e.keyCode === 39) {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t_mfpOn('UpdateStatus'+ns, function(e, data) {\n\t\t\t\tif(data.text) {\n\t\t\t\t\tdata.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {\n\t\t\t\tvar l = mfp.items.length;\n\t\t\t\tvalues.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';\n\t\t\t});\n\n\t\t\t_mfpOn('BuildControls' + ns, function() {\n\t\t\t\tif(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {\n\t\t\t\t\tvar markup = gSt.arrowMarkup,\n\t\t\t\t\t\tarrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),\n\t\t\t\t\t\tarrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);\n\n\t\t\t\t\tarrowLeft.click(function() {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t});\n\t\t\t\t\tarrowRight.click(function() {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t});\n\n\t\t\t\t\tmfp.container.append(arrowLeft.add(arrowRight));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CHANGE_EVENT+ns, function() {\n\t\t\t\tif(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);\n\n\t\t\t\tmfp._preloadTimeout = setTimeout(function() {\n\t\t\t\t\tmfp.preloadNearbyImages();\n\t\t\t\t\tmfp._preloadTimeout = null;\n\t\t\t\t}, 16);\n\t\t\t});\n\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\t_document.off(ns);\n\t\t\t\tmfp.wrap.off('click'+ns);\n\t\t\t\tmfp.arrowRight = mfp.arrowLeft = null;\n\t\t\t});\n\n\t\t},\n\t\tnext: function() {\n\t\t\tmfp.direction = true;\n\t\t\tmfp.index = _getLoopedId(mfp.index + 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tprev: function() {\n\t\t\tmfp.direction = false;\n\t\t\tmfp.index = _getLoopedId(mfp.index - 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tgoTo: function(newIndex) {\n\t\t\tmfp.direction = (newIndex >= mfp.index);\n\t\t\tmfp.index = newIndex;\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tpreloadNearbyImages: function() {\n\t\t\tvar p = mfp.st.gallery.preload,\n\t\t\t\tpreloadBefore = Math.min(p[0], mfp.items.length),\n\t\t\t\tpreloadAfter = Math.min(p[1], mfp.items.length),\n\t\t\t\ti;\n\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index+i);\n\t\t\t}\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index-i);\n\t\t\t}\n\t\t},\n\t\t_preloadItem: function(index) {\n\t\t\tindex = _getLoopedId(index);\n\n\t\t\tif(mfp.items[index].preloaded) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar item = mfp.items[index];\n\t\t\tif(!item.parsed) {\n\t\t\t\titem = mfp.parseEl( index );\n\t\t\t}\n\n\t\t\t_mfpTrigger('LazyLoad', item);\n\n\t\t\tif(item.type === 'image') {\n\t\t\t\titem.img = $('').on('load.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t}).on('error.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t_mfpTrigger('LazyLoadError', item);\n\t\t\t\t}).attr('src', item.src);\n\t\t\t}\n\n\n\t\t\titem.preloaded = true;\n\t\t}\n\t}\n});\n\n/*>>gallery*/\n\n/*>>retina*/\n\nvar RETINA_NS = 'retina';\n\n$.magnificPopup.registerModule(RETINA_NS, {\n\toptions: {\n\t\treplaceSrc: function(item) {\n\t\t\treturn item.src.replace(/\\.\\w+$/, function(m) { return '@2x' + m; });\n\t\t},\n\t\tratio: 1 // Function or number. Set to 1 to disable.\n\t},\n\tproto: {\n\t\tinitRetina: function() {\n\t\t\tif(window.devicePixelRatio > 1) {\n\n\t\t\t\tvar st = mfp.st.retina,\n\t\t\t\t\tratio = st.ratio;\n\n\t\t\t\tratio = !isNaN(ratio) ? ratio : ratio();\n\n\t\t\t\tif(ratio > 1) {\n\t\t\t\t\t_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.img.css({\n\t\t\t\t\t\t\t'max-width': item.img[0].naturalWidth / ratio,\n\t\t\t\t\t\t\t'width': '100%'\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\t_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.src = st.replaceSrc(item, ratio);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n});\n\n/*>>retina*/\n _checkInstance(); }));","/*\n _ _ _ _\n ___| (_) ___| | __ (_)___\n/ __| | |/ __| |/ / | / __|\n\\__ \\ | | (__| < _ | \\__ \\\n|___/_|_|\\___|_|\\_(_)/ |___/\n |__/\n\n Version: 1.8.1\n Author: Ken Wheeler\n Website: http://kenwheeler.github.io\n Docs: http://kenwheeler.github.io/slick\n Repo: http://github.com/kenwheeler/slick\n Issues: http://github.com/kenwheeler/slick/issues\n\n */\n/* global window, document, define, jQuery, setInterval, clearInterval */\n;(function(factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof exports !== 'undefined') {\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n\n}(function($) {\n 'use strict';\n var Slick = window.Slick || {};\n\n Slick = (function() {\n\n var instanceUid = 0;\n\n function Slick(element, settings) {\n\n var _ = this, dataSettings;\n\n _.defaults = {\n accessibility: true,\n adaptiveHeight: false,\n appendArrows: $(element),\n appendDots: $(element),\n arrows: true,\n asNavFor: null,\n prevArrow: '',\n nextArrow: '',\n autoplay: false,\n autoplaySpeed: 3000,\n centerMode: false,\n centerPadding: '50px',\n cssEase: 'ease',\n customPaging: function(slider, i) {\n return $('