{"version":3,"file":"./assets/js/app.ce3c73ae828f1de8e8e2.js","mappings":"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","sources":["webpack://project-template-webpack/./node_modules/axios/index.js","webpack://project-template-webpack/./node_modules/axios/lib/adapters/xhr.js","webpack://project-template-webpack/./node_modules/axios/lib/axios.js","webpack://project-template-webpack/./node_modules/axios/lib/cancel/CancelToken.js","webpack://project-template-webpack/./node_modules/axios/lib/cancel/CanceledError.js","webpack://project-template-webpack/./node_modules/axios/lib/cancel/isCancel.js","webpack://project-template-webpack/./node_modules/axios/lib/core/Axios.js","webpack://project-template-webpack/./node_modules/axios/lib/core/AxiosError.js","webpack://project-template-webpack/./node_modules/axios/lib/core/InterceptorManager.js","webpack://project-template-webpack/./node_modules/axios/lib/core/buildFullPath.js","webpack://project-template-webpack/./node_modules/axios/lib/core/dispatchRequest.js","webpack://project-template-webpack/./node_modules/axios/lib/core/mergeConfig.js","webpack://project-template-webpack/./node_modules/axios/lib/core/settle.js","webpack://project-template-webpack/./node_modules/axios/lib/core/transformData.js","webpack://project-template-webpack/./node_modules/axios/lib/defaults/index.js","webpack://project-template-webpack/./node_modules/axios/lib/defaults/transitional.js","webpack://project-template-webpack/./node_modules/axios/lib/env/data.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/bind.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/buildURL.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/combineURLs.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/cookies.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/null.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/spread.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/toFormData.js","webpack://project-template-webpack/./node_modules/axios/lib/helpers/validator.js","webpack://project-template-webpack/./node_modules/axios/lib/utils.js","webpack://project-template-webpack/./node_modules/litepicker/dist/litepicker.umd.js","webpack://project-template-webpack/./node_modules/regenerator-runtime/runtime.js","webpack://project-template-webpack/webpack/bootstrap","webpack://project-template-webpack/webpack/runtime/compat get default export","webpack://project-template-webpack/webpack/runtime/define property getters","webpack://project-template-webpack/webpack/runtime/hasOwnProperty shorthand","webpack://project-template-webpack/./src/consts/const-event-types.js","webpack://project-template-webpack/./src/components/app.js","webpack://project-template-webpack/./node_modules/@splidejs/splide/dist/js/splide.esm.js","webpack://project-template-webpack/./src/components/slider/Slider.js","webpack://project-template-webpack/./src/util/bodyScroll.js","webpack://project-template-webpack/./src/components/menu/Menu.js","webpack://project-template-webpack/./src/util/paginationBuilder.js","webpack://project-template-webpack/./node_modules/date-fns/locale/en-US/_lib/formatDistance.js","webpack://project-template-webpack/./node_modules/date-fns/locale/_lib/buildFormatLongFn.js","webpack://project-template-webpack/./node_modules/date-fns/locale/en-US/_lib/formatLong.js","webpack://project-template-webpack/./node_modules/date-fns/locale/en-US/_lib/formatRelative.js","webpack://project-template-webpack/./node_modules/date-fns/locale/_lib/buildLocalizeFn.js","webpack://project-template-webpack/./node_modules/date-fns/locale/_lib/buildMatchFn.js","webpack://project-template-webpack/./node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","webpack://project-template-webpack/./node_modules/date-fns/locale/en-US/_lib/match.js","webpack://project-template-webpack/./node_modules/date-fns/locale/en-US.js","webpack://project-template-webpack/./node_modules/date-fns/locale/en-US/_lib/localize.js","webpack://project-template-webpack/./node_modules/date-fns/_lib/defaultOptions.js","webpack://project-template-webpack/./node_modules/date-fns/constants.js","webpack://project-template-webpack/./node_modules/date-fns/constructFrom.js","webpack://project-template-webpack/./node_modules/date-fns/toDate.js","webpack://project-template-webpack/./node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","webpack://project-template-webpack/./node_modules/date-fns/startOfDay.js","webpack://project-template-webpack/./node_modules/date-fns/differenceInCalendarDays.js","webpack://project-template-webpack/./node_modules/date-fns/_lib/normalizeDates.js","webpack://project-template-webpack/./node_modules/date-fns/startOfYear.js","webpack://project-template-webpack/./node_modules/date-fns/getDayOfYear.js","webpack://project-template-webpack/./node_modules/date-fns/startOfWeek.js","webpack://project-template-webpack/./node_modules/date-fns/startOfISOWeek.js","webpack://project-template-webpack/./node_modules/date-fns/getISOWeekYear.js","webpack://project-template-webpack/./node_modules/date-fns/startOfISOWeekYear.js","webpack://project-template-webpack/./node_modules/date-fns/getISOWeek.js","webpack://project-template-webpack/./node_modules/date-fns/getWeekYear.js","webpack://project-template-webpack/./node_modules/date-fns/startOfWeekYear.js","webpack://project-template-webpack/./node_modules/date-fns/getWeek.js","webpack://project-template-webpack/./node_modules/date-fns/_lib/addLeadingZeros.js","webpack://project-template-webpack/./node_modules/date-fns/_lib/format/lightFormatters.js","webpack://project-template-webpack/./node_modules/date-fns/_lib/format/formatters.js","webpack://project-template-webpack/./node_modules/date-fns/_lib/format/longFormatters.js","webpack://project-template-webpack/./node_modules/date-fns/_lib/protectedTokens.js","webpack://project-template-webpack/./node_modules/date-fns/isDate.js","webpack://project-template-webpack/./node_modules/date-fns/isValid.js","webpack://project-template-webpack/./node_modules/date-fns/format.js","webpack://project-template-webpack/./src/util/browserUtil.js","webpack://project-template-webpack/./src/components/newslist/newslist.js","webpack://project-template-webpack/./src/components/publicationlist/publicationlist.js","webpack://project-template-webpack/./src/components/dropdown/dropdown.js","webpack://project-template-webpack/./src/components/dropdowntree/dropdowntree.js","webpack://project-template-webpack/./src/components/datepicker/datepicker.js","webpack://project-template-webpack/./src/components/eventslist/eventslist.js","webpack://project-template-webpack/./src/components/calendararchive/calendararchive.js","webpack://project-template-webpack/./src/components/contacttree/contacttree.js","webpack://project-template-webpack/./src/components/slider/fwSlider.js","webpack://project-template-webpack/./node_modules/date-fns/locale/da/_lib/formatDistance.js","webpack://project-template-webpack/./node_modules/date-fns/locale/da/_lib/formatLong.js","webpack://project-template-webpack/./node_modules/date-fns/locale/da/_lib/formatRelative.js","webpack://project-template-webpack/./node_modules/date-fns/locale/da.js","webpack://project-template-webpack/./node_modules/date-fns/locale/da/_lib/localize.js","webpack://project-template-webpack/./node_modules/date-fns/locale/da/_lib/match.js","webpack://project-template-webpack/./src/components/hearingcomponent/hearingcomponent.js","webpack://project-template-webpack/./src/components/searchbox/searchbox.js","webpack://project-template-webpack/./src/components/search/search.js","webpack://project-template-webpack/./src/components/youtube/youtube.js","webpack://project-template-webpack/./src/components/accordion/accordion.js","webpack://project-template-webpack/./src/components/newyear-speeches/newyear-speeches.js","webpack://project-template-webpack/./src/components/meeting-minutes/meeting-minutes.js","webpack://project-template-webpack/./src/components/focuslist/focuslist.js","webpack://project-template-webpack/./src/index.js","webpack://project-template-webpack/./src/components/vacancylist/vacancylist.js","webpack://project-template-webpack/./src/components/tooltip/tooltip.js","webpack://project-template-webpack/./src/components/languagePicker/languagePicker.js"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","/*!\n * \n * litepicker.umd.js\n * Litepicker v2.0.12 (https://github.com/wakirin/Litepicker)\n * Package: litepicker (https://www.npmjs.com/package/litepicker)\n * License: MIT (https://github.com/wakirin/Litepicker/blob/master/LICENCE.md)\n * Copyright 2019-2021 Rinat G.\n * \n * Hash: 504eef9c08cb42543660\n * \n */\n!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(\"Litepicker\",[],e):\"object\"==typeof exports?exports.Litepicker=e():t.Litepicker=e()}(window,(function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)i.d(n,o,function(e){return t[e]}.bind(null,o));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,\"a\",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p=\"\",i(i.s=4)}([function(t,e,i){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(e,i,n){void 0===e&&(e=null),void 0===i&&(i=null),void 0===n&&(n=\"en-US\"),this.dateInstance=\"object\"==typeof i&&null!==i?i.parse(e instanceof t?e.clone().toJSDate():e):\"string\"==typeof i?t.parseDateTime(e,i,n):e?t.parseDateTime(e):t.parseDateTime(new Date),this.lang=n}return t.parseDateTime=function(e,i,n){if(void 0===i&&(i=\"YYYY-MM-DD\"),void 0===n&&(n=\"en-US\"),!e)return new Date(NaN);if(e instanceof Date)return new Date(e);if(e instanceof t)return e.clone().toJSDate();if(/^-?\\d{10,}$/.test(e))return t.getDateZeroTime(new Date(Number(e)));if(\"string\"==typeof e){for(var o=[],s=null;null!=(s=t.regex.exec(i));)\"\\\\\"!==s[1]&&o.push(s);if(o.length){var r={year:null,month:null,shortMonth:null,longMonth:null,day:null,value:\"\"};o[0].index>0&&(r.value+=\".*?\");for(var a=0,l=Object.entries(o);at.getTime()&&this.timestamp()=t.getTime()&&this.timestamp()t.getTime()&&this.timestamp()<=e.getTime();case\"[]\":return this.timestamp()>=t.getTime()&&this.timestamp()<=e.getTime()}},t.prototype.isBefore=function(t,e){switch(void 0===e&&(e=\"seconds\"),e){case\"second\":case\"seconds\":return t.getTime()>this.getTime();case\"day\":case\"days\":return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()>new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime();case\"month\":case\"months\":return new Date(t.getFullYear(),t.getMonth(),1).getTime()>new Date(this.getFullYear(),this.getMonth(),1).getTime();case\"year\":case\"years\":return t.getFullYear()>this.getFullYear()}throw new Error(\"isBefore: Invalid unit!\")},t.prototype.isSameOrBefore=function(t,e){switch(void 0===e&&(e=\"seconds\"),e){case\"second\":case\"seconds\":return t.getTime()>=this.getTime();case\"day\":case\"days\":return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()>=new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime();case\"month\":case\"months\":return new Date(t.getFullYear(),t.getMonth(),1).getTime()>=new Date(this.getFullYear(),this.getMonth(),1).getTime()}throw new Error(\"isSameOrBefore: Invalid unit!\")},t.prototype.isAfter=function(t,e){switch(void 0===e&&(e=\"seconds\"),e){case\"second\":case\"seconds\":return this.getTime()>t.getTime();case\"day\":case\"days\":return new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()>new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime();case\"month\":case\"months\":return new Date(this.getFullYear(),this.getMonth(),1).getTime()>new Date(t.getFullYear(),t.getMonth(),1).getTime();case\"year\":case\"years\":return this.getFullYear()>t.getFullYear()}throw new Error(\"isAfter: Invalid unit!\")},t.prototype.isSameOrAfter=function(t,e){switch(void 0===e&&(e=\"seconds\"),e){case\"second\":case\"seconds\":return this.getTime()>=t.getTime();case\"day\":case\"days\":return new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()>=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime();case\"month\":case\"months\":return new Date(this.getFullYear(),this.getMonth(),1).getTime()>=new Date(t.getFullYear(),t.getMonth(),1).getTime()}throw new Error(\"isSameOrAfter: Invalid unit!\")},t.prototype.isSame=function(t,e){switch(void 0===e&&(e=\"seconds\"),e){case\"second\":case\"seconds\":return this.getTime()===t.getTime();case\"day\":case\"days\":return new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()===new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime();case\"month\":case\"months\":return new Date(this.getFullYear(),this.getMonth(),1).getTime()===new Date(t.getFullYear(),t.getMonth(),1).getTime()}throw new Error(\"isSame: Invalid unit!\")},t.prototype.add=function(t,e){switch(void 0===e&&(e=\"seconds\"),e){case\"second\":case\"seconds\":this.setSeconds(this.getSeconds()+t);break;case\"day\":case\"days\":this.setDate(this.getDate()+t);break;case\"month\":case\"months\":this.setMonth(this.getMonth()+t)}return this},t.prototype.subtract=function(t,e){switch(void 0===e&&(e=\"seconds\"),e){case\"second\":case\"seconds\":this.setSeconds(this.getSeconds()-t);break;case\"day\":case\"days\":this.setDate(this.getDate()-t);break;case\"month\":case\"months\":this.setMonth(this.getMonth()-t)}return this},t.prototype.diff=function(t,e){void 0===e&&(e=\"seconds\");switch(e){default:case\"second\":case\"seconds\":return this.getTime()-t.getTime();case\"day\":case\"days\":return Math.round((this.timestamp()-t.getTime())/864e5);case\"month\":case\"months\":}},t.prototype.format=function(e,i){if(void 0===i&&(i=\"en-US\"),\"object\"==typeof e)return e.output(this.clone().toJSDate());for(var n=\"\",o=[],s=null;null!=(s=t.regex.exec(e));)\"\\\\\"!==s[1]&&o.push(s);if(o.length){o[0].index>0&&(n+=e.substring(0,o[0].index));for(var r=0,a=Object.entries(o);r1&&i.isAfter(e)&&i.setMonth(i.getMonth()-(this.options.numberOfMonths-1)),this.calendars[0]=i.clone()):(e.setDate(1),this.calendars[0]=e.clone())}},e.prototype.bindEvents=function(){document.addEventListener(\"click\",this.onClick.bind(this),!0),this.ui=document.createElement(\"div\"),this.ui.className=l.litepicker,this.ui.style.display=\"none\",this.ui.addEventListener(\"mouseenter\",this.onMouseEnter.bind(this),!0),this.ui.addEventListener(\"mouseleave\",this.onMouseLeave.bind(this),!1),this.options.autoRefresh?(this.options.element instanceof HTMLElement&&this.options.element.addEventListener(\"keyup\",this.onInput.bind(this),!0),this.options.elementEnd instanceof HTMLElement&&this.options.elementEnd.addEventListener(\"keyup\",this.onInput.bind(this),!0)):(this.options.element instanceof HTMLElement&&this.options.element.addEventListener(\"change\",this.onInput.bind(this),!0),this.options.elementEnd instanceof HTMLElement&&this.options.elementEnd.addEventListener(\"change\",this.onInput.bind(this),!0)),this.options.parentEl?this.options.parentEl instanceof HTMLElement?this.options.parentEl.appendChild(this.ui):document.querySelector(this.options.parentEl).appendChild(this.ui):this.options.inlineMode?this.options.element instanceof HTMLInputElement?this.options.element.parentNode.appendChild(this.ui):this.options.element.appendChild(this.ui):document.body.appendChild(this.ui),this.updateInput(),this.init(),\"function\"==typeof this.options.setup&&this.options.setup.call(this,this),this.render(),this.options.inlineMode&&this.show()},e.prototype.updateInput=function(){if(this.options.element instanceof HTMLInputElement){var t=this.options.startDate,e=this.options.endDate;if(this.options.singleMode&&t)this.options.element.value=t.format(this.options.format,this.options.lang);else if(!this.options.singleMode&&t&&e){var i=t.format(this.options.format,this.options.lang),n=e.format(this.options.format,this.options.lang);this.options.elementEnd instanceof HTMLInputElement?(this.options.element.value=i,this.options.elementEnd.value=n):this.options.element.value=\"\"+i+this.options.delimiter+n}t||e||(this.options.element.value=\"\",this.options.elementEnd instanceof HTMLInputElement&&(this.options.elementEnd.value=\"\"))}},e.prototype.isSamePicker=function(t){return t.closest(\".\"+l.litepicker)===this.ui},e.prototype.shouldShown=function(t){return!t.disabled&&(t===this.options.element||this.options.elementEnd&&t===this.options.elementEnd)},e.prototype.shouldResetDatePicked=function(){return this.options.singleMode||2===this.datePicked.length},e.prototype.shouldSwapDatePicked=function(){return 2===this.datePicked.length&&this.datePicked[0].getTime()>this.datePicked[1].getTime()},e.prototype.shouldCheckLockDays=function(){return this.options.disallowLockDaysInRange&&2===this.datePicked.length},e.prototype.onClick=function(t){var e=t.target;if(t.target.shadowRoot&&(e=t.composedPath()[0]),e&&this.ui)if(this.shouldShown(e))this.show(e);else if(e.closest(\".\"+l.litepicker)||!this.isShowning()){if(this.isSamePicker(e))if(this.emit(\"before:click\",e),this.preventClick)this.preventClick=!1;else{if(e.classList.contains(l.dayItem)){if(t.preventDefault(),e.classList.contains(l.isLocked))return;if(this.shouldResetDatePicked()&&(this.datePicked.length=0),this.datePicked[this.datePicked.length]=new a.DateTime(e.dataset.time),this.shouldSwapDatePicked()){var i=this.datePicked[1].clone();this.datePicked[1]=this.datePicked[0].clone(),this.datePicked[0]=i.clone()}if(this.shouldCheckLockDays())c.rangeIsLocked(this.datePicked,this.options)&&(this.emit(\"error:range\",this.datePicked),this.datePicked.length=0);return this.render(),this.emit.apply(this,s([\"preselect\"],s(this.datePicked).map((function(t){return t.clone()})))),void(this.options.autoApply&&(this.options.singleMode&&this.datePicked.length?(this.setDate(this.datePicked[0]),this.hide()):this.options.singleMode||2!==this.datePicked.length||(this.setDateRange(this.datePicked[0],this.datePicked[1]),this.hide())))}if(e.classList.contains(l.buttonPreviousMonth)){t.preventDefault();var n=0,o=this.options.switchingMonths||this.options.numberOfMonths;if(this.options.splitView){var r=e.closest(\".\"+l.monthItem);n=c.findNestedMonthItem(r),o=1}return this.calendars[n].setMonth(this.calendars[n].getMonth()-o),this.gotoDate(this.calendars[n],n),void this.emit(\"change:month\",this.calendars[n],n)}if(e.classList.contains(l.buttonNextMonth)){t.preventDefault();n=0,o=this.options.switchingMonths||this.options.numberOfMonths;if(this.options.splitView){r=e.closest(\".\"+l.monthItem);n=c.findNestedMonthItem(r),o=1}return this.calendars[n].setMonth(this.calendars[n].getMonth()+o),this.gotoDate(this.calendars[n],n),void this.emit(\"change:month\",this.calendars[n],n)}e.classList.contains(l.buttonCancel)&&(t.preventDefault(),this.hide(),this.emit(\"button:cancel\")),e.classList.contains(l.buttonApply)&&(t.preventDefault(),this.options.singleMode&&this.datePicked.length?this.setDate(this.datePicked[0]):this.options.singleMode||2!==this.datePicked.length||this.setDateRange(this.datePicked[0],this.datePicked[1]),this.hide(),this.emit(\"button:apply\",this.options.startDate,this.options.endDate))}}else this.hide()},e.prototype.showTooltip=function(t,e){var i=this.ui.querySelector(\".\"+l.containerTooltip);i.style.visibility=\"visible\",i.innerHTML=e;var n=this.ui.getBoundingClientRect(),o=i.getBoundingClientRect(),s=t.getBoundingClientRect(),r=s.top,a=s.left;if(this.options.inlineMode&&this.options.parentEl){var c=this.ui.parentNode.getBoundingClientRect();r-=c.top,a-=c.left}else r-=n.top,a-=n.left;r-=o.height,a-=o.width/2,a+=s.width/2,i.style.top=r+\"px\",i.style.left=a+\"px\",this.emit(\"tooltip\",i,t)},e.prototype.hideTooltip=function(){this.ui.querySelector(\".\"+l.containerTooltip).style.visibility=\"hidden\"},e.prototype.shouldAllowMouseEnter=function(t){return!this.options.singleMode&&!t.classList.contains(l.isLocked)},e.prototype.shouldAllowRepick=function(){return this.options.elementEnd&&this.options.allowRepick&&this.options.startDate&&this.options.endDate},e.prototype.isDayItem=function(t){return t.classList.contains(l.dayItem)},e.prototype.onMouseEnter=function(t){var e=this,i=t.target;if(this.isDayItem(i)&&this.shouldAllowMouseEnter(i)){if(this.shouldAllowRepick()&&(this.triggerElement===this.options.element?this.datePicked[0]=this.options.endDate.clone():this.triggerElement===this.options.elementEnd&&(this.datePicked[0]=this.options.startDate.clone())),1!==this.datePicked.length)return;var n=this.ui.querySelector(\".\"+l.dayItem+'[data-time=\"'+this.datePicked[0].getTime()+'\"]'),o=this.datePicked[0].clone(),s=new a.DateTime(i.dataset.time),r=!1;if(o.getTime()>s.getTime()){var c=o.clone();o=s.clone(),s=c.clone(),r=!0}if(Array.prototype.slice.call(this.ui.querySelectorAll(\".\"+l.dayItem)).forEach((function(t){var i=new a.DateTime(t.dataset.time),n=e.renderDay(i);i.isBetween(o,s)&&n.classList.add(l.isInRange),t.className=n.className})),i.classList.add(l.isEndDate),r?(n&&n.classList.add(l.isFlipped),i.classList.add(l.isFlipped)):(n&&n.classList.remove(l.isFlipped),i.classList.remove(l.isFlipped)),this.options.showTooltip){var h=s.diff(o,\"day\")+1;if(\"function\"==typeof this.options.tooltipNumber&&(h=this.options.tooltipNumber.call(this,h)),h>0){var p=this.pluralSelector(h),d=h+\" \"+(this.options.tooltipText[p]?this.options.tooltipText[p]:\"[\"+p+\"]\");this.showTooltip(i,d);var u=window.navigator.userAgent,m=/(iphone|ipad)/i.test(u),f=/OS 1([0-2])/i.test(u);m&&f&&i.dispatchEvent(new Event(\"click\"))}else this.hideTooltip()}}},e.prototype.onMouseLeave=function(t){t.target;this.options.allowRepick&&(!this.options.allowRepick||this.options.startDate||this.options.endDate)&&(this.datePicked.length=0,this.render())},e.prototype.onInput=function(t){var e=this.parseInput(),i=e[0],n=e[1],o=this.options.format;if(this.options.elementEnd?i instanceof a.DateTime&&n instanceof a.DateTime&&i.format(o)===this.options.element.value&&n.format(o)===this.options.elementEnd.value:this.options.singleMode?i instanceof a.DateTime&&i.format(o)===this.options.element.value:i instanceof a.DateTime&&n instanceof a.DateTime&&\"\"+i.format(o)+this.options.delimiter+n.format(o)===this.options.element.value){if(n&&i.getTime()>n.getTime()){var s=i.clone();i=n.clone(),n=s.clone()}this.options.startDate=new a.DateTime(i,this.options.format,this.options.lang),n&&(this.options.endDate=new a.DateTime(n,this.options.format,this.options.lang)),this.updateInput(),this.render();var r=i.clone(),l=0;(this.options.elementEnd?i.format(o)===t.target.value:t.target.value.startsWith(i.format(o)))||(r=n.clone(),l=this.options.numberOfMonths-1),this.emit(\"selected\",this.getStartDate(),this.getEndDate()),this.gotoDate(r,l)}},e}(r.Calendar);e.Litepicker=h},function(t,e,i){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.findNestedMonthItem=function(t){for(var e=t.parentNode.childNodes,i=0;iy)(u=document.createElement(\"option\")).value=String(t.getFullYear()),u.text=String(t.getFullYear()),u.selected=!0,u.disabled=!0,g.appendChild(u);for(d=y;d>=v;d-=1){var u=document.createElement(\"option\"),b=new r.DateTime(new Date(d,0,1,0,0,0));u.value=String(d),u.text=String(d),u.disabled=this.options.minDate&&b.isBefore(new r.DateTime(this.options.minDate),\"year\")||this.options.maxDate&&b.isAfter(new r.DateTime(this.options.maxDate),\"year\"),u.selected=t.getFullYear()===d,g.appendChild(u)}if(t.getFullYear()W\");for(var _=1;_<=7;_+=1){var T=3+this.options.firstDay+_,L=document.createElement(\"div\");L.innerHTML=this.weekdayName(T),L.title=this.weekdayName(T,\"long\"),M.appendChild(L)}var E=document.createElement(\"div\");E.className=a.containerDays;var S=this.calcSkipDays(n);this.options.showWeekNumbers&&S&&E.appendChild(this.renderWeekNumber(n));for(var I=0;I1&&1===this.datePicked.length){var o=this.options.minDays-1,s=this.datePicked[0].clone().subtract(o,\"day\"),c=this.datePicked[0].clone().add(o,\"day\");t.isBetween(s,this.datePicked[0],\"(]\")&&e.classList.add(a.isLocked),t.isBetween(this.datePicked[0],c,\"[)\")&&e.classList.add(a.isLocked)}if(this.options.maxDays&&1===this.datePicked.length){var h=this.options.maxDays;s=this.datePicked[0].clone().subtract(h,\"day\"),c=this.datePicked[0].clone().add(h,\"day\");t.isSameOrBefore(s)&&e.classList.add(a.isLocked),t.isSameOrAfter(c)&&e.classList.add(a.isLocked)}(this.options.selectForward&&1===this.datePicked.length&&t.isBefore(this.datePicked[0])&&e.classList.add(a.isLocked),this.options.selectBackward&&1===this.datePicked.length&&t.isAfter(this.datePicked[0])&&e.classList.add(a.isLocked),l.dateIsLocked(t,this.options,this.datePicked)&&e.classList.add(a.isLocked),this.options.highlightedDays.length)&&(this.options.highlightedDays.filter((function(e){return e instanceof Array?t.isBetween(e[0],e[1],\"[]\"):e.isSame(t,\"day\")})).length&&e.classList.add(a.isHighlighted));return e.tabIndex=e.classList.contains(\"is-locked\")?-1:0,this.emit(\"render:day\",e,t),e},e.prototype.renderFooter=function(){var t=document.createElement(\"div\");if(t.className=a.containerFooter,this.options.footerHTML?t.innerHTML=this.options.footerHTML:t.innerHTML='\\n \\n \\n \\n \",this.options.singleMode){if(1===this.datePicked.length){var e=this.datePicked[0].format(this.options.format,this.options.lang);t.querySelector(\".\"+a.previewDateRange).innerHTML=e}}else if(1===this.datePicked.length&&t.querySelector(\".\"+a.buttonApply).setAttribute(\"disabled\",\"\"),2===this.datePicked.length){e=this.datePicked[0].format(this.options.format,this.options.lang);var i=this.datePicked[1].format(this.options.format,this.options.lang);t.querySelector(\".\"+a.previewDateRange).innerHTML=\"\"+e+this.options.delimiter+i}return this.emit(\"render:footer\",t),t},e.prototype.renderWeekNumber=function(t){var e=document.createElement(\"div\"),i=t.getWeek(this.options.firstDay);return e.className=a.weekNumber,e.innerHTML=53===i&&0===t.getMonth()?\"53 / 1\":i,e},e.prototype.renderTooltip=function(){var t=document.createElement(\"div\");return t.className=a.containerTooltip,t},e.prototype.weekdayName=function(t,e){return void 0===e&&(e=\"short\"),new Date(1970,0,t,12,0,0,0).toLocaleString(this.options.lang,{weekday:e})},e.prototype.calcSkipDays=function(t){var e=t.getDay()-this.options.firstDay;return e<0&&(e+=7),e},e}(s.LPCore);e.Calendar=c},function(t,e,i){\"use strict\";var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),s=this&&this.__assign||function(){return(s=Object.assign||function(t){for(var e,i=1,n=arguments.length;i',nextMonth:'',reset:'\\n \\n \\n '},tooltipText:{one:\"day\",other:\"days\"}},i.options=s(s({},i.options),e.element.dataset),Object.keys(i.options).forEach((function(t){\"true\"!==i.options[t]&&\"false\"!==i.options[t]||(i.options[t]=\"true\"===i.options[t])}));var n=s(s({},i.options.dropdowns),e.dropdowns),o=s(s({},i.options.buttonText),e.buttonText),r=s(s({},i.options.tooltipText),e.tooltipText);i.options=s(s({},i.options),e),i.options.dropdowns=s({},n),i.options.buttonText=s({},o),i.options.tooltipText=s({},r),i.options.elementEnd||(i.options.allowRepick=!1),i.options.lockDays.length&&(i.options.lockDays=a.DateTime.convertArray(i.options.lockDays,i.options.lockDaysFormat)),i.options.highlightedDays.length&&(i.options.highlightedDays=a.DateTime.convertArray(i.options.highlightedDays,i.options.highlightedDaysFormat));var l=i.parseInput(),c=l[0],h=l[1];i.options.startDate&&(i.options.singleMode||i.options.endDate)&&(c=new a.DateTime(i.options.startDate,i.options.format,i.options.lang)),c&&i.options.endDate&&(h=new a.DateTime(i.options.endDate,i.options.format,i.options.lang)),c instanceof a.DateTime&&!isNaN(c.getTime())&&(i.options.startDate=c),i.options.startDate&&h instanceof a.DateTime&&!isNaN(h.getTime())&&(i.options.endDate=h),!i.options.singleMode||i.options.startDate instanceof a.DateTime||(i.options.startDate=null),i.options.singleMode||i.options.startDate instanceof a.DateTime&&i.options.endDate instanceof a.DateTime||(i.options.startDate=null,i.options.endDate=null);for(var p=0;pwindow.innerHeight,c=e.top+s-i.height>=i.height;l&&c&&(r=e.top+s-i.height)}if(/left|right/.test(n[0])||n[1]&&\"auto\"!==n[1]&&/left|right/.test(n[1]))a=/left|right/.test(n[0])?e[n[0]]+o:e[n[1]]+o,\"right\"!==n[0]&&\"right\"!==n[1]||(a-=i.width);else{a=e.left+o;l=e.left+i.width>window.innerWidth;var h=e.right+o-i.width>=0;l&&h&&(a=e.right+o-i.width)}return{left:a,top:r}},e}(r.EventEmitter);e.LPCore=c},function(t,e,i){\"use strict\";var n,o=\"object\"==typeof Reflect?Reflect:null,s=o&&\"function\"==typeof o.apply?o.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)};n=o&&\"function\"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var r=Number.isNaN||function(t){return t!=t};function a(){a.init.call(this)}t.exports=a,a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var l=10;function c(t){return void 0===t._maxListeners?a.defaultMaxListeners:t._maxListeners}function h(t,e,i,n){var o,s,r,a;if(\"function\"!=typeof i)throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof i);if(void 0===(s=t._events)?(s=t._events=Object.create(null),t._eventsCount=0):(void 0!==s.newListener&&(t.emit(\"newListener\",e,i.listener?i.listener:i),s=t._events),r=s[e]),void 0===r)r=s[e]=i,++t._eventsCount;else if(\"function\"==typeof r?r=s[e]=n?[i,r]:[r,i]:n?r.unshift(i):r.push(i),(o=c(t))>0&&r.length>o&&!r.warned){r.warned=!0;var l=new Error(\"Possible EventEmitter memory leak detected. \"+r.length+\" \"+String(e)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");l.name=\"MaxListenersExceededWarning\",l.emitter=t,l.type=e,l.count=r.length,a=l,console&&console.warn&&console.warn(a)}return t}function p(){for(var t=[],e=0;e0&&(r=e[0]),r instanceof Error)throw r;var a=new Error(\"Unhandled error.\"+(r?\" (\"+r.message+\")\":\"\"));throw a.context=r,a}var l=o[t];if(void 0===l)return!1;if(\"function\"==typeof l)s(l,this,e);else{var c=l.length,h=f(l,c);for(i=0;i=0;s--)if(i[s]===e||i[s].listener===e){r=i[s].listener,o=s;break}if(o<0)return this;0===o?i.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},a.prototype.listeners=function(t){return u(this,t,!0)},a.prototype.rawListeners=function(t){return u(this,t,!1)},a.listenerCount=function(t,e){return\"function\"==typeof t.listenerCount?t.listenerCount(e):m.call(t,e)},a.prototype.listenerCount=m,a.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(t,e,i){(e=i(9)(!1)).push([t.i,':root{--litepicker-container-months-color-bg: #fff;--litepicker-container-months-box-shadow-color: #ddd;--litepicker-footer-color-bg: #fafafa;--litepicker-footer-box-shadow-color: #ddd;--litepicker-tooltip-color-bg: #fff;--litepicker-month-header-color: #333;--litepicker-button-prev-month-color: #9e9e9e;--litepicker-button-next-month-color: #9e9e9e;--litepicker-button-prev-month-color-hover: #2196f3;--litepicker-button-next-month-color-hover: #2196f3;--litepicker-month-width: calc(var(--litepicker-day-width) * 7);--litepicker-month-weekday-color: #9e9e9e;--litepicker-month-week-number-color: #9e9e9e;--litepicker-day-width: 38px;--litepicker-day-color: #333;--litepicker-day-color-hover: #2196f3;--litepicker-is-today-color: #f44336;--litepicker-is-in-range-color: #bbdefb;--litepicker-is-locked-color: #9e9e9e;--litepicker-is-start-color: #fff;--litepicker-is-start-color-bg: #2196f3;--litepicker-is-end-color: #fff;--litepicker-is-end-color-bg: #2196f3;--litepicker-button-cancel-color: #fff;--litepicker-button-cancel-color-bg: #9e9e9e;--litepicker-button-apply-color: #fff;--litepicker-button-apply-color-bg: #2196f3;--litepicker-button-reset-color: #909090;--litepicker-button-reset-color-hover: #2196f3;--litepicker-highlighted-day-color: #333;--litepicker-highlighted-day-color-bg: #ffeb3b}.show-week-numbers{--litepicker-month-width: calc(var(--litepicker-day-width) * 8)}.litepicker{font-family:-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;font-size:0.8em;display:none}.litepicker button{border:none;background:none}.litepicker .container__main{display:-webkit-box;display:-ms-flexbox;display:flex}.litepicker .container__months{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;background-color:var(--litepicker-container-months-color-bg);border-radius:5px;-webkit-box-shadow:0 0 5px var(--litepicker-container-months-box-shadow-color);box-shadow:0 0 5px var(--litepicker-container-months-box-shadow-color);width:calc(var(--litepicker-month-width) + 10px);-webkit-box-sizing:content-box;box-sizing:content-box}.litepicker .container__months.columns-2{width:calc((var(--litepicker-month-width) * 2) + 20px)}.litepicker .container__months.columns-3{width:calc((var(--litepicker-month-width) * 3) + 30px)}.litepicker .container__months.columns-4{width:calc((var(--litepicker-month-width) * 4) + 40px)}.litepicker .container__months.split-view .month-item-header .button-previous-month,.litepicker .container__months.split-view .month-item-header .button-next-month{visibility:visible}.litepicker .container__months .month-item{padding:5px;width:var(--litepicker-month-width);-webkit-box-sizing:content-box;box-sizing:content-box}.litepicker .container__months .month-item-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-weight:500;padding:10px 5px;text-align:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--litepicker-month-header-color)}.litepicker .container__months .month-item-header div{-webkit-box-flex:1;-ms-flex:1;flex:1}.litepicker .container__months .month-item-header div>.month-item-name{margin-right:5px}.litepicker .container__months .month-item-header div>.month-item-year{padding:0}.litepicker .container__months .month-item-header .reset-button{color:var(--litepicker-button-reset-color)}.litepicker .container__months .month-item-header .reset-button>svg{fill:var(--litepicker-button-reset-color)}.litepicker .container__months .month-item-header .reset-button *{pointer-events:none}.litepicker .container__months .month-item-header .reset-button:hover{color:var(--litepicker-button-reset-color-hover)}.litepicker .container__months .month-item-header .reset-button:hover>svg{fill:var(--litepicker-button-reset-color-hover)}.litepicker .container__months .month-item-header .button-previous-month,.litepicker .container__months .month-item-header .button-next-month{visibility:hidden;text-decoration:none;padding:3px 5px;border-radius:3px;-webkit-transition:color 0.3s, border 0.3s;transition:color 0.3s, border 0.3s;cursor:default}.litepicker .container__months .month-item-header .button-previous-month *,.litepicker .container__months .month-item-header .button-next-month *{pointer-events:none}.litepicker .container__months .month-item-header .button-previous-month{color:var(--litepicker-button-prev-month-color)}.litepicker .container__months .month-item-header .button-previous-month>svg,.litepicker .container__months .month-item-header .button-previous-month>img{fill:var(--litepicker-button-prev-month-color)}.litepicker .container__months .month-item-header .button-previous-month:hover{color:var(--litepicker-button-prev-month-color-hover)}.litepicker .container__months .month-item-header .button-previous-month:hover>svg{fill:var(--litepicker-button-prev-month-color-hover)}.litepicker .container__months .month-item-header .button-next-month{color:var(--litepicker-button-next-month-color)}.litepicker .container__months .month-item-header .button-next-month>svg,.litepicker .container__months .month-item-header .button-next-month>img{fill:var(--litepicker-button-next-month-color)}.litepicker .container__months .month-item-header .button-next-month:hover{color:var(--litepicker-button-next-month-color-hover)}.litepicker .container__months .month-item-header .button-next-month:hover>svg{fill:var(--litepicker-button-next-month-color-hover)}.litepicker .container__months .month-item-weekdays-row{display:-webkit-box;display:-ms-flexbox;display:flex;justify-self:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;color:var(--litepicker-month-weekday-color)}.litepicker .container__months .month-item-weekdays-row>div{padding:5px 0;font-size:85%;-webkit-box-flex:1;-ms-flex:1;flex:1;width:var(--litepicker-day-width);text-align:center}.litepicker .container__months .month-item:first-child .button-previous-month{visibility:visible}.litepicker .container__months .month-item:last-child .button-next-month{visibility:visible}.litepicker .container__months .month-item.no-previous-month .button-previous-month{visibility:hidden}.litepicker .container__months .month-item.no-next-month .button-next-month{visibility:hidden}.litepicker .container__days{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;justify-self:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:center;-webkit-box-sizing:content-box;box-sizing:content-box}.litepicker .container__days>div,.litepicker .container__days>a{padding:5px 0;width:var(--litepicker-day-width)}.litepicker .container__days .day-item{color:var(--litepicker-day-color);text-align:center;text-decoration:none;border-radius:3px;-webkit-transition:color 0.3s, border 0.3s;transition:color 0.3s, border 0.3s;cursor:default}.litepicker .container__days .day-item:hover{color:var(--litepicker-day-color-hover);-webkit-box-shadow:inset 0 0 0 1px var(--litepicker-day-color-hover);box-shadow:inset 0 0 0 1px var(--litepicker-day-color-hover)}.litepicker .container__days .day-item.is-today{color:var(--litepicker-is-today-color)}.litepicker .container__days .day-item.is-locked{color:var(--litepicker-is-locked-color)}.litepicker .container__days .day-item.is-locked:hover{color:var(--litepicker-is-locked-color);-webkit-box-shadow:none;box-shadow:none;cursor:default}.litepicker .container__days .day-item.is-in-range{background-color:var(--litepicker-is-in-range-color);border-radius:0}.litepicker .container__days .day-item.is-start-date{color:var(--litepicker-is-start-color);background-color:var(--litepicker-is-start-color-bg);border-top-left-radius:5px;border-bottom-left-radius:5px;border-top-right-radius:0;border-bottom-right-radius:0}.litepicker .container__days .day-item.is-start-date.is-flipped{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:5px;border-bottom-right-radius:5px}.litepicker .container__days .day-item.is-end-date{color:var(--litepicker-is-end-color);background-color:var(--litepicker-is-end-color-bg);border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:5px;border-bottom-right-radius:5px}.litepicker .container__days .day-item.is-end-date.is-flipped{border-top-left-radius:5px;border-bottom-left-radius:5px;border-top-right-radius:0;border-bottom-right-radius:0}.litepicker .container__days .day-item.is-start-date.is-end-date{border-top-left-radius:5px;border-bottom-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px}.litepicker .container__days .day-item.is-highlighted{color:var(--litepicker-highlighted-day-color);background-color:var(--litepicker-highlighted-day-color-bg)}.litepicker .container__days .week-number{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--litepicker-month-week-number-color);font-size:85%}.litepicker .container__footer{text-align:right;padding:10px 5px;margin:0 5px;background-color:var(--litepicker-footer-color-bg);-webkit-box-shadow:inset 0px 3px 3px 0px var(--litepicker-footer-box-shadow-color);box-shadow:inset 0px 3px 3px 0px var(--litepicker-footer-box-shadow-color);border-bottom-left-radius:5px;border-bottom-right-radius:5px}.litepicker .container__footer .preview-date-range{margin-right:10px;font-size:90%}.litepicker .container__footer .button-cancel{background-color:var(--litepicker-button-cancel-color-bg);color:var(--litepicker-button-cancel-color);border:0;padding:3px 7px 4px;border-radius:3px}.litepicker .container__footer .button-cancel *{pointer-events:none}.litepicker .container__footer .button-apply{background-color:var(--litepicker-button-apply-color-bg);color:var(--litepicker-button-apply-color);border:0;padding:3px 7px 4px;border-radius:3px;margin-left:10px;margin-right:10px}.litepicker .container__footer .button-apply:disabled{opacity:0.7}.litepicker .container__footer .button-apply *{pointer-events:none}.litepicker .container__tooltip{position:absolute;margin-top:-4px;padding:4px 8px;border-radius:4px;background-color:var(--litepicker-tooltip-color-bg);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25);box-shadow:0 1px 3px rgba(0,0,0,0.25);white-space:nowrap;font-size:11px;pointer-events:none;visibility:hidden}.litepicker .container__tooltip:before{position:absolute;bottom:-5px;left:calc(50% - 5px);border-top:5px solid rgba(0,0,0,0.12);border-right:5px solid transparent;border-left:5px solid transparent;content:\"\"}.litepicker .container__tooltip:after{position:absolute;bottom:-4px;left:calc(50% - 4px);border-top:4px solid var(--litepicker-tooltip-color-bg);border-right:4px solid transparent;border-left:4px solid transparent;content:\"\"}\\n',\"\"]),e.locals={showWeekNumbers:\"show-week-numbers\",litepicker:\"litepicker\",containerMain:\"container__main\",containerMonths:\"container__months\",columns2:\"columns-2\",columns3:\"columns-3\",columns4:\"columns-4\",splitView:\"split-view\",monthItemHeader:\"month-item-header\",buttonPreviousMonth:\"button-previous-month\",buttonNextMonth:\"button-next-month\",monthItem:\"month-item\",monthItemName:\"month-item-name\",monthItemYear:\"month-item-year\",resetButton:\"reset-button\",monthItemWeekdaysRow:\"month-item-weekdays-row\",noPreviousMonth:\"no-previous-month\",noNextMonth:\"no-next-month\",containerDays:\"container__days\",dayItem:\"day-item\",isToday:\"is-today\",isLocked:\"is-locked\",isInRange:\"is-in-range\",isStartDate:\"is-start-date\",isFlipped:\"is-flipped\",isEndDate:\"is-end-date\",isHighlighted:\"is-highlighted\",weekNumber:\"week-number\",containerFooter:\"container__footer\",previewDateRange:\"preview-date-range\",buttonCancel:\"button-cancel\",buttonApply:\"button-apply\",containerTooltip:\"container__tooltip\"},t.exports=e},function(t,e,i){\"use strict\";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var i=function(t,e){var i=t[1]||\"\",n=t[3];if(!n)return i;if(e&&\"function\"==typeof btoa){var o=(r=n,a=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),l=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(a),\"/*# \".concat(l,\" */\")),s=n.sources.map((function(t){return\"/*# sourceURL=\".concat(n.sourceRoot||\"\").concat(t,\" */\")}));return[i].concat(s).concat([o]).join(\"\\n\")}var r,a,l;return[i].join(\"\\n\")}(e,t);return e[2]?\"@media \".concat(e[2],\" {\").concat(i,\"}\"):i})).join(\"\")},e.i=function(t,i,n){\"string\"==typeof t&&(t=[[null,t,\"\"]]);var o={};if(n)for(var s=0;sthis.options.endDate.getTime()&&(this.options.endDate=this.options.startDate.clone(),this.options.startDate=new o.DateTime(t,this.options.format,this.options.lang)),this.updateInput())},s.Litepicker.prototype.setDateRange=function(t,e,i){void 0===i&&(i=!1),this.triggerElement=void 0;var n=new o.DateTime(t,this.options.format,this.options.lang),s=new o.DateTime(e,this.options.format,this.options.lang);(this.options.disallowLockDaysInRange?r.rangeIsLocked([n,s],this.options):r.dateIsLocked(n,this.options,[n,s])||r.dateIsLocked(s,this.options,[n,s]))&&!i?this.emit(\"error:range\",[n,s]):(this.setStartDate(n),this.setEndDate(s),this.options.inlineMode&&this.render(),this.updateInput(),this.emit(\"selected\",this.getStartDate(),this.getEndDate()))},s.Litepicker.prototype.gotoDate=function(t,e){void 0===e&&(e=0);var i=new o.DateTime(t);i.setDate(1),this.calendars[e]=i.clone(),this.render()},s.Litepicker.prototype.setLockDays=function(t){this.options.lockDays=o.DateTime.convertArray(t,this.options.lockDaysFormat),this.render()},s.Litepicker.prototype.setHighlightedDays=function(t){this.options.highlightedDays=o.DateTime.convertArray(t,this.options.highlightedDaysFormat),this.render()},s.Litepicker.prototype.setOptions=function(t){delete t.element,delete t.elementEnd,delete t.parentEl,t.startDate&&(t.startDate=new o.DateTime(t.startDate,this.options.format,this.options.lang)),t.endDate&&(t.endDate=new o.DateTime(t.endDate,this.options.format,this.options.lang));var e=n(n({},this.options.dropdowns),t.dropdowns),i=n(n({},this.options.buttonText),t.buttonText),s=n(n({},this.options.tooltipText),t.tooltipText);this.options=n(n({},this.options),t),this.options.dropdowns=n({},e),this.options.buttonText=n({},i),this.options.tooltipText=n({},s),!this.options.singleMode||this.options.startDate instanceof o.DateTime||(this.options.startDate=null,this.options.endDate=null),this.options.singleMode||this.options.startDate instanceof o.DateTime&&this.options.endDate instanceof o.DateTime||(this.options.startDate=null,this.options.endDate=null);for(var r=0;r result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per GeneratorResume behavior specified since ES2015:\n // ES2015 spec, step 3: https://262.ecma-international.org/6.0/#sec-generatorresume\n // Latest spec, step 2: https://tc39.es/ecma262/#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next method, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable != null) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n throw new TypeError(typeof iterable + \" is not iterable\");\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","export const EventBus = document.body;\r\n\r\nexport const EventTypes = Object.freeze({\r\n ALL_COMPONENTS_READY: 'ALL_COMPONENTS_READY',\r\n MY_CUSTOM_EVENT: 'MY_CUSTOM_EVENT',\r\n});\r\n","import {EventBus, EventTypes} from '../consts/const-event-types';\r\n\r\n/*\r\nUse App.js for global functionality\r\n*/\r\n\r\nexport default class App {\r\n constructor(element) {\r\n // save a reference of your component-element so you can access it from your methods:\r\n this.el = element;\r\n\r\n // bind your methods to 'this' when calling them from event-listeners:\r\n this.onAppReady = this.onAppReady.bind(this);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n // Use init-method to store DOM-references and setup initial event-listeners:\r\n if (this.el) this.someElement = this.el.querySelector('[data-example-js-selector]');\r\n\r\n // You could listen for all components to be instantiated to make sure events between components are captured:\r\n EventBus.addEventListener(EventTypes.ALL_COMPONENTS_READY, this.onAppReady);\r\n }\r\n\r\n onAppReady() {\r\n\r\n // create your own event-types for component-to-component communication (fx. this event will be picked up by Header.js component):\r\n const eventData = {detail: new Date().toJSON()};\r\n const ev = new CustomEvent(EventTypes.MY_CUSTOM_EVENT, eventData);\r\n EventBus.dispatchEvent(ev);\r\n }\r\n\r\n}\r\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*!\n * Splide.js\n * Version : 4.1.4\n * License : MIT\n * Copyright: 2022 Naotoshi Fujita\n */\nvar MEDIA_PREFERS_REDUCED_MOTION = \"(prefers-reduced-motion: reduce)\";\nvar CREATED = 1;\nvar MOUNTED = 2;\nvar IDLE = 3;\nvar MOVING = 4;\nvar SCROLLING = 5;\nvar DRAGGING = 6;\nvar DESTROYED = 7;\nvar STATES = {\n CREATED: CREATED,\n MOUNTED: MOUNTED,\n IDLE: IDLE,\n MOVING: MOVING,\n SCROLLING: SCROLLING,\n DRAGGING: DRAGGING,\n DESTROYED: DESTROYED\n};\n\nfunction empty(array) {\n array.length = 0;\n}\n\nfunction slice(arrayLike, start, end) {\n return Array.prototype.slice.call(arrayLike, start, end);\n}\n\nfunction apply(func) {\n return func.bind.apply(func, [null].concat(slice(arguments, 1)));\n}\n\nvar nextTick = setTimeout;\n\nvar noop = function noop() {};\n\nfunction raf(func) {\n return requestAnimationFrame(func);\n}\n\nfunction typeOf(type, subject) {\n return typeof subject === type;\n}\n\nfunction isObject(subject) {\n return !isNull(subject) && typeOf(\"object\", subject);\n}\n\nvar isArray = Array.isArray;\nvar isFunction = apply(typeOf, \"function\");\nvar isString = apply(typeOf, \"string\");\nvar isUndefined = apply(typeOf, \"undefined\");\n\nfunction isNull(subject) {\n return subject === null;\n}\n\nfunction isHTMLElement(subject) {\n try {\n return subject instanceof (subject.ownerDocument.defaultView || window).HTMLElement;\n } catch (e) {\n return false;\n }\n}\n\nfunction toArray(value) {\n return isArray(value) ? value : [value];\n}\n\nfunction forEach(values, iteratee) {\n toArray(values).forEach(iteratee);\n}\n\nfunction includes(array, value) {\n return array.indexOf(value) > -1;\n}\n\nfunction push(array, items) {\n array.push.apply(array, toArray(items));\n return array;\n}\n\nfunction toggleClass(elm, classes, add) {\n if (elm) {\n forEach(classes, function (name) {\n if (name) {\n elm.classList[add ? \"add\" : \"remove\"](name);\n }\n });\n }\n}\n\nfunction addClass(elm, classes) {\n toggleClass(elm, isString(classes) ? classes.split(\" \") : classes, true);\n}\n\nfunction append(parent, children) {\n forEach(children, parent.appendChild.bind(parent));\n}\n\nfunction before(nodes, ref) {\n forEach(nodes, function (node) {\n var parent = (ref || node).parentNode;\n\n if (parent) {\n parent.insertBefore(node, ref);\n }\n });\n}\n\nfunction matches(elm, selector) {\n return isHTMLElement(elm) && (elm[\"msMatchesSelector\"] || elm.matches).call(elm, selector);\n}\n\nfunction children(parent, selector) {\n var children2 = parent ? slice(parent.children) : [];\n return selector ? children2.filter(function (child) {\n return matches(child, selector);\n }) : children2;\n}\n\nfunction child(parent, selector) {\n return selector ? children(parent, selector)[0] : parent.firstElementChild;\n}\n\nvar ownKeys = Object.keys;\n\nfunction forOwn(object, iteratee, right) {\n if (object) {\n (right ? ownKeys(object).reverse() : ownKeys(object)).forEach(function (key) {\n key !== \"__proto__\" && iteratee(object[key], key);\n });\n }\n\n return object;\n}\n\nfunction assign(object) {\n slice(arguments, 1).forEach(function (source) {\n forOwn(source, function (value, key) {\n object[key] = source[key];\n });\n });\n return object;\n}\n\nfunction merge(object) {\n slice(arguments, 1).forEach(function (source) {\n forOwn(source, function (value, key) {\n if (isArray(value)) {\n object[key] = value.slice();\n } else if (isObject(value)) {\n object[key] = merge({}, isObject(object[key]) ? object[key] : {}, value);\n } else {\n object[key] = value;\n }\n });\n });\n return object;\n}\n\nfunction omit(object, keys) {\n forEach(keys || ownKeys(object), function (key) {\n delete object[key];\n });\n}\n\nfunction removeAttribute(elms, attrs) {\n forEach(elms, function (elm) {\n forEach(attrs, function (attr) {\n elm && elm.removeAttribute(attr);\n });\n });\n}\n\nfunction setAttribute(elms, attrs, value) {\n if (isObject(attrs)) {\n forOwn(attrs, function (value2, name) {\n setAttribute(elms, name, value2);\n });\n } else {\n forEach(elms, function (elm) {\n isNull(value) || value === \"\" ? removeAttribute(elm, attrs) : elm.setAttribute(attrs, String(value));\n });\n }\n}\n\nfunction create(tag, attrs, parent) {\n var elm = document.createElement(tag);\n\n if (attrs) {\n isString(attrs) ? addClass(elm, attrs) : setAttribute(elm, attrs);\n }\n\n parent && append(parent, elm);\n return elm;\n}\n\nfunction style(elm, prop, value) {\n if (isUndefined(value)) {\n return getComputedStyle(elm)[prop];\n }\n\n if (!isNull(value)) {\n elm.style[prop] = \"\" + value;\n }\n}\n\nfunction display(elm, display2) {\n style(elm, \"display\", display2);\n}\n\nfunction focus(elm) {\n elm[\"setActive\"] && elm[\"setActive\"]() || elm.focus({\n preventScroll: true\n });\n}\n\nfunction getAttribute(elm, attr) {\n return elm.getAttribute(attr);\n}\n\nfunction hasClass(elm, className) {\n return elm && elm.classList.contains(className);\n}\n\nfunction rect(target) {\n return target.getBoundingClientRect();\n}\n\nfunction remove(nodes) {\n forEach(nodes, function (node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n });\n}\n\nfunction parseHtml(html) {\n return child(new DOMParser().parseFromString(html, \"text/html\").body);\n}\n\nfunction prevent(e, stopPropagation) {\n e.preventDefault();\n\n if (stopPropagation) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n}\n\nfunction query(parent, selector) {\n return parent && parent.querySelector(selector);\n}\n\nfunction queryAll(parent, selector) {\n return selector ? slice(parent.querySelectorAll(selector)) : [];\n}\n\nfunction removeClass(elm, classes) {\n toggleClass(elm, classes, false);\n}\n\nfunction timeOf(e) {\n return e.timeStamp;\n}\n\nfunction unit(value) {\n return isString(value) ? value : value ? value + \"px\" : \"\";\n}\n\nvar PROJECT_CODE = \"splide\";\nvar DATA_ATTRIBUTE = \"data-\" + PROJECT_CODE;\n\nfunction assert(condition, message) {\n if (!condition) {\n throw new Error(\"[\" + PROJECT_CODE + \"] \" + (message || \"\"));\n }\n}\n\nvar min = Math.min,\n max = Math.max,\n floor = Math.floor,\n ceil = Math.ceil,\n abs = Math.abs;\n\nfunction approximatelyEqual(x, y, epsilon) {\n return abs(x - y) < epsilon;\n}\n\nfunction between(number, x, y, exclusive) {\n var minimum = min(x, y);\n var maximum = max(x, y);\n return exclusive ? minimum < number && number < maximum : minimum <= number && number <= maximum;\n}\n\nfunction clamp(number, x, y) {\n var minimum = min(x, y);\n var maximum = max(x, y);\n return min(max(minimum, number), maximum);\n}\n\nfunction sign(x) {\n return +(x > 0) - +(x < 0);\n}\n\nfunction camelToKebab(string) {\n return string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\nfunction format(string, replacements) {\n forEach(replacements, function (replacement) {\n string = string.replace(\"%s\", \"\" + replacement);\n });\n return string;\n}\n\nfunction pad(number) {\n return number < 10 ? \"0\" + number : \"\" + number;\n}\n\nvar ids = {};\n\nfunction uniqueId(prefix) {\n return \"\" + prefix + pad(ids[prefix] = (ids[prefix] || 0) + 1);\n}\n\nfunction EventBinder() {\n var listeners = [];\n\n function bind(targets, events, callback, options) {\n forEachEvent(targets, events, function (target, event, namespace) {\n var isEventTarget = (\"addEventListener\" in target);\n var remover = isEventTarget ? target.removeEventListener.bind(target, event, callback, options) : target[\"removeListener\"].bind(target, callback);\n isEventTarget ? target.addEventListener(event, callback, options) : target[\"addListener\"](callback);\n listeners.push([target, event, namespace, callback, remover]);\n });\n }\n\n function unbind(targets, events, callback) {\n forEachEvent(targets, events, function (target, event, namespace) {\n listeners = listeners.filter(function (listener) {\n if (listener[0] === target && listener[1] === event && listener[2] === namespace && (!callback || listener[3] === callback)) {\n listener[4]();\n return false;\n }\n\n return true;\n });\n });\n }\n\n function dispatch(target, type, detail) {\n var e;\n var bubbles = true;\n\n if (typeof CustomEvent === \"function\") {\n e = new CustomEvent(type, {\n bubbles: bubbles,\n detail: detail\n });\n } else {\n e = document.createEvent(\"CustomEvent\");\n e.initCustomEvent(type, bubbles, false, detail);\n }\n\n target.dispatchEvent(e);\n return e;\n }\n\n function forEachEvent(targets, events, iteratee) {\n forEach(targets, function (target) {\n target && forEach(events, function (events2) {\n events2.split(\" \").forEach(function (eventNS) {\n var fragment = eventNS.split(\".\");\n iteratee(target, fragment[0], fragment[1]);\n });\n });\n });\n }\n\n function destroy() {\n listeners.forEach(function (data) {\n data[4]();\n });\n empty(listeners);\n }\n\n return {\n bind: bind,\n unbind: unbind,\n dispatch: dispatch,\n destroy: destroy\n };\n}\n\nvar EVENT_MOUNTED = \"mounted\";\nvar EVENT_READY = \"ready\";\nvar EVENT_MOVE = \"move\";\nvar EVENT_MOVED = \"moved\";\nvar EVENT_CLICK = \"click\";\nvar EVENT_ACTIVE = \"active\";\nvar EVENT_INACTIVE = \"inactive\";\nvar EVENT_VISIBLE = \"visible\";\nvar EVENT_HIDDEN = \"hidden\";\nvar EVENT_REFRESH = \"refresh\";\nvar EVENT_UPDATED = \"updated\";\nvar EVENT_RESIZE = \"resize\";\nvar EVENT_RESIZED = \"resized\";\nvar EVENT_DRAG = \"drag\";\nvar EVENT_DRAGGING = \"dragging\";\nvar EVENT_DRAGGED = \"dragged\";\nvar EVENT_SCROLL = \"scroll\";\nvar EVENT_SCROLLED = \"scrolled\";\nvar EVENT_OVERFLOW = \"overflow\";\nvar EVENT_DESTROY = \"destroy\";\nvar EVENT_ARROWS_MOUNTED = \"arrows:mounted\";\nvar EVENT_ARROWS_UPDATED = \"arrows:updated\";\nvar EVENT_PAGINATION_MOUNTED = \"pagination:mounted\";\nvar EVENT_PAGINATION_UPDATED = \"pagination:updated\";\nvar EVENT_NAVIGATION_MOUNTED = \"navigation:mounted\";\nvar EVENT_AUTOPLAY_PLAY = \"autoplay:play\";\nvar EVENT_AUTOPLAY_PLAYING = \"autoplay:playing\";\nvar EVENT_AUTOPLAY_PAUSE = \"autoplay:pause\";\nvar EVENT_LAZYLOAD_LOADED = \"lazyload:loaded\";\nvar EVENT_SLIDE_KEYDOWN = \"sk\";\nvar EVENT_SHIFTED = \"sh\";\nvar EVENT_END_INDEX_CHANGED = \"ei\";\n\nfunction EventInterface(Splide2) {\n var bus = Splide2 ? Splide2.event.bus : document.createDocumentFragment();\n var binder = EventBinder();\n\n function on(events, callback) {\n binder.bind(bus, toArray(events).join(\" \"), function (e) {\n callback.apply(callback, isArray(e.detail) ? e.detail : []);\n });\n }\n\n function emit(event) {\n binder.dispatch(bus, event, slice(arguments, 1));\n }\n\n if (Splide2) {\n Splide2.event.on(EVENT_DESTROY, binder.destroy);\n }\n\n return assign(binder, {\n bus: bus,\n on: on,\n off: apply(binder.unbind, bus),\n emit: emit\n });\n}\n\nfunction RequestInterval(interval, onInterval, onUpdate, limit) {\n var now = Date.now;\n var startTime;\n var rate = 0;\n var id;\n var paused = true;\n var count = 0;\n\n function update() {\n if (!paused) {\n rate = interval ? min((now() - startTime) / interval, 1) : 1;\n onUpdate && onUpdate(rate);\n\n if (rate >= 1) {\n onInterval();\n startTime = now();\n\n if (limit && ++count >= limit) {\n return pause();\n }\n }\n\n id = raf(update);\n }\n }\n\n function start(resume) {\n resume || cancel();\n startTime = now() - (resume ? rate * interval : 0);\n paused = false;\n id = raf(update);\n }\n\n function pause() {\n paused = true;\n }\n\n function rewind() {\n startTime = now();\n rate = 0;\n\n if (onUpdate) {\n onUpdate(rate);\n }\n }\n\n function cancel() {\n id && cancelAnimationFrame(id);\n rate = 0;\n id = 0;\n paused = true;\n }\n\n function set(time) {\n interval = time;\n }\n\n function isPaused() {\n return paused;\n }\n\n return {\n start: start,\n rewind: rewind,\n pause: pause,\n cancel: cancel,\n set: set,\n isPaused: isPaused\n };\n}\n\nfunction State(initialState) {\n var state = initialState;\n\n function set(value) {\n state = value;\n }\n\n function is(states) {\n return includes(toArray(states), state);\n }\n\n return {\n set: set,\n is: is\n };\n}\n\nfunction Throttle(func, duration) {\n var interval = RequestInterval(duration || 0, func, null, 1);\n return function () {\n interval.isPaused() && interval.start();\n };\n}\n\nfunction Media(Splide2, Components2, options) {\n var state = Splide2.state;\n var breakpoints = options.breakpoints || {};\n var reducedMotion = options.reducedMotion || {};\n var binder = EventBinder();\n var queries = [];\n\n function setup() {\n var isMin = options.mediaQuery === \"min\";\n ownKeys(breakpoints).sort(function (n, m) {\n return isMin ? +n - +m : +m - +n;\n }).forEach(function (key) {\n register(breakpoints[key], \"(\" + (isMin ? \"min\" : \"max\") + \"-width:\" + key + \"px)\");\n });\n register(reducedMotion, MEDIA_PREFERS_REDUCED_MOTION);\n update();\n }\n\n function destroy(completely) {\n if (completely) {\n binder.destroy();\n }\n }\n\n function register(options2, query) {\n var queryList = matchMedia(query);\n binder.bind(queryList, \"change\", update);\n queries.push([options2, queryList]);\n }\n\n function update() {\n var destroyed = state.is(DESTROYED);\n var direction = options.direction;\n var merged = queries.reduce(function (merged2, entry) {\n return merge(merged2, entry[1].matches ? entry[0] : {});\n }, {});\n omit(options);\n set(merged);\n\n if (options.destroy) {\n Splide2.destroy(options.destroy === \"completely\");\n } else if (destroyed) {\n destroy(true);\n Splide2.mount();\n } else {\n direction !== options.direction && Splide2.refresh();\n }\n }\n\n function reduce(enable) {\n if (matchMedia(MEDIA_PREFERS_REDUCED_MOTION).matches) {\n enable ? merge(options, reducedMotion) : omit(options, ownKeys(reducedMotion));\n }\n }\n\n function set(opts, base, notify) {\n merge(options, opts);\n base && merge(Object.getPrototypeOf(options), opts);\n\n if (notify || !state.is(CREATED)) {\n Splide2.emit(EVENT_UPDATED, options);\n }\n }\n\n return {\n setup: setup,\n destroy: destroy,\n reduce: reduce,\n set: set\n };\n}\n\nvar ARROW = \"Arrow\";\nvar ARROW_LEFT = ARROW + \"Left\";\nvar ARROW_RIGHT = ARROW + \"Right\";\nvar ARROW_UP = ARROW + \"Up\";\nvar ARROW_DOWN = ARROW + \"Down\";\nvar LTR = \"ltr\";\nvar RTL = \"rtl\";\nvar TTB = \"ttb\";\nvar ORIENTATION_MAP = {\n width: [\"height\"],\n left: [\"top\", \"right\"],\n right: [\"bottom\", \"left\"],\n x: [\"y\"],\n X: [\"Y\"],\n Y: [\"X\"],\n ArrowLeft: [ARROW_UP, ARROW_RIGHT],\n ArrowRight: [ARROW_DOWN, ARROW_LEFT]\n};\n\nfunction Direction(Splide2, Components2, options) {\n function resolve(prop, axisOnly, direction) {\n direction = direction || options.direction;\n var index = direction === RTL && !axisOnly ? 1 : direction === TTB ? 0 : -1;\n return ORIENTATION_MAP[prop] && ORIENTATION_MAP[prop][index] || prop.replace(/width|left|right/i, function (match, offset) {\n var replacement = ORIENTATION_MAP[match.toLowerCase()][index] || match;\n return offset > 0 ? replacement.charAt(0).toUpperCase() + replacement.slice(1) : replacement;\n });\n }\n\n function orient(value) {\n return value * (options.direction === RTL ? 1 : -1);\n }\n\n return {\n resolve: resolve,\n orient: orient\n };\n}\n\nvar ROLE = \"role\";\nvar TAB_INDEX = \"tabindex\";\nvar DISABLED = \"disabled\";\nvar ARIA_PREFIX = \"aria-\";\nvar ARIA_CONTROLS = ARIA_PREFIX + \"controls\";\nvar ARIA_CURRENT = ARIA_PREFIX + \"current\";\nvar ARIA_SELECTED = ARIA_PREFIX + \"selected\";\nvar ARIA_LABEL = ARIA_PREFIX + \"label\";\nvar ARIA_LABELLEDBY = ARIA_PREFIX + \"labelledby\";\nvar ARIA_HIDDEN = ARIA_PREFIX + \"hidden\";\nvar ARIA_ORIENTATION = ARIA_PREFIX + \"orientation\";\nvar ARIA_ROLEDESCRIPTION = ARIA_PREFIX + \"roledescription\";\nvar ARIA_LIVE = ARIA_PREFIX + \"live\";\nvar ARIA_BUSY = ARIA_PREFIX + \"busy\";\nvar ARIA_ATOMIC = ARIA_PREFIX + \"atomic\";\nvar ALL_ATTRIBUTES = [ROLE, TAB_INDEX, DISABLED, ARIA_CONTROLS, ARIA_CURRENT, ARIA_LABEL, ARIA_LABELLEDBY, ARIA_HIDDEN, ARIA_ORIENTATION, ARIA_ROLEDESCRIPTION];\nvar CLASS_PREFIX = PROJECT_CODE + \"__\";\nvar STATUS_CLASS_PREFIX = \"is-\";\nvar CLASS_ROOT = PROJECT_CODE;\nvar CLASS_TRACK = CLASS_PREFIX + \"track\";\nvar CLASS_LIST = CLASS_PREFIX + \"list\";\nvar CLASS_SLIDE = CLASS_PREFIX + \"slide\";\nvar CLASS_CLONE = CLASS_SLIDE + \"--clone\";\nvar CLASS_CONTAINER = CLASS_SLIDE + \"__container\";\nvar CLASS_ARROWS = CLASS_PREFIX + \"arrows\";\nvar CLASS_ARROW = CLASS_PREFIX + \"arrow\";\nvar CLASS_ARROW_PREV = CLASS_ARROW + \"--prev\";\nvar CLASS_ARROW_NEXT = CLASS_ARROW + \"--next\";\nvar CLASS_PAGINATION = CLASS_PREFIX + \"pagination\";\nvar CLASS_PAGINATION_PAGE = CLASS_PAGINATION + \"__page\";\nvar CLASS_PROGRESS = CLASS_PREFIX + \"progress\";\nvar CLASS_PROGRESS_BAR = CLASS_PROGRESS + \"__bar\";\nvar CLASS_TOGGLE = CLASS_PREFIX + \"toggle\";\nvar CLASS_TOGGLE_PLAY = CLASS_TOGGLE + \"__play\";\nvar CLASS_TOGGLE_PAUSE = CLASS_TOGGLE + \"__pause\";\nvar CLASS_SPINNER = CLASS_PREFIX + \"spinner\";\nvar CLASS_SR = CLASS_PREFIX + \"sr\";\nvar CLASS_INITIALIZED = STATUS_CLASS_PREFIX + \"initialized\";\nvar CLASS_ACTIVE = STATUS_CLASS_PREFIX + \"active\";\nvar CLASS_PREV = STATUS_CLASS_PREFIX + \"prev\";\nvar CLASS_NEXT = STATUS_CLASS_PREFIX + \"next\";\nvar CLASS_VISIBLE = STATUS_CLASS_PREFIX + \"visible\";\nvar CLASS_LOADING = STATUS_CLASS_PREFIX + \"loading\";\nvar CLASS_FOCUS_IN = STATUS_CLASS_PREFIX + \"focus-in\";\nvar CLASS_OVERFLOW = STATUS_CLASS_PREFIX + \"overflow\";\nvar STATUS_CLASSES = [CLASS_ACTIVE, CLASS_VISIBLE, CLASS_PREV, CLASS_NEXT, CLASS_LOADING, CLASS_FOCUS_IN, CLASS_OVERFLOW];\nvar CLASSES = {\n slide: CLASS_SLIDE,\n clone: CLASS_CLONE,\n arrows: CLASS_ARROWS,\n arrow: CLASS_ARROW,\n prev: CLASS_ARROW_PREV,\n next: CLASS_ARROW_NEXT,\n pagination: CLASS_PAGINATION,\n page: CLASS_PAGINATION_PAGE,\n spinner: CLASS_SPINNER\n};\n\nfunction closest(from, selector) {\n if (isFunction(from.closest)) {\n return from.closest(selector);\n }\n\n var elm = from;\n\n while (elm && elm.nodeType === 1) {\n if (matches(elm, selector)) {\n break;\n }\n\n elm = elm.parentElement;\n }\n\n return elm;\n}\n\nvar FRICTION = 5;\nvar LOG_INTERVAL = 200;\nvar POINTER_DOWN_EVENTS = \"touchstart mousedown\";\nvar POINTER_MOVE_EVENTS = \"touchmove mousemove\";\nvar POINTER_UP_EVENTS = \"touchend touchcancel mouseup click\";\n\nfunction Elements(Splide2, Components2, options) {\n var _EventInterface = EventInterface(Splide2),\n on = _EventInterface.on,\n bind = _EventInterface.bind;\n\n var root = Splide2.root;\n var i18n = options.i18n;\n var elements = {};\n var slides = [];\n var rootClasses = [];\n var trackClasses = [];\n var track;\n var list;\n var isUsingKey;\n\n function setup() {\n collect();\n init();\n update();\n }\n\n function mount() {\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, setup);\n on(EVENT_UPDATED, update);\n bind(document, POINTER_DOWN_EVENTS + \" keydown\", function (e) {\n isUsingKey = e.type === \"keydown\";\n }, {\n capture: true\n });\n bind(root, \"focusin\", function () {\n toggleClass(root, CLASS_FOCUS_IN, !!isUsingKey);\n });\n }\n\n function destroy(completely) {\n var attrs = ALL_ATTRIBUTES.concat(\"style\");\n empty(slides);\n removeClass(root, rootClasses);\n removeClass(track, trackClasses);\n removeAttribute([track, list], attrs);\n removeAttribute(root, completely ? attrs : [\"style\", ARIA_ROLEDESCRIPTION]);\n }\n\n function update() {\n removeClass(root, rootClasses);\n removeClass(track, trackClasses);\n rootClasses = getClasses(CLASS_ROOT);\n trackClasses = getClasses(CLASS_TRACK);\n addClass(root, rootClasses);\n addClass(track, trackClasses);\n setAttribute(root, ARIA_LABEL, options.label);\n setAttribute(root, ARIA_LABELLEDBY, options.labelledby);\n }\n\n function collect() {\n track = find(\".\" + CLASS_TRACK);\n list = child(track, \".\" + CLASS_LIST);\n assert(track && list, \"A track/list element is missing.\");\n push(slides, children(list, \".\" + CLASS_SLIDE + \":not(.\" + CLASS_CLONE + \")\"));\n forOwn({\n arrows: CLASS_ARROWS,\n pagination: CLASS_PAGINATION,\n prev: CLASS_ARROW_PREV,\n next: CLASS_ARROW_NEXT,\n bar: CLASS_PROGRESS_BAR,\n toggle: CLASS_TOGGLE\n }, function (className, key) {\n elements[key] = find(\".\" + className);\n });\n assign(elements, {\n root: root,\n track: track,\n list: list,\n slides: slides\n });\n }\n\n function init() {\n var id = root.id || uniqueId(PROJECT_CODE);\n var role = options.role;\n root.id = id;\n track.id = track.id || id + \"-track\";\n list.id = list.id || id + \"-list\";\n\n if (!getAttribute(root, ROLE) && root.tagName !== \"SECTION\" && role) {\n setAttribute(root, ROLE, role);\n }\n\n setAttribute(root, ARIA_ROLEDESCRIPTION, i18n.carousel);\n setAttribute(list, ROLE, \"presentation\");\n }\n\n function find(selector) {\n var elm = query(root, selector);\n return elm && closest(elm, \".\" + CLASS_ROOT) === root ? elm : void 0;\n }\n\n function getClasses(base) {\n return [base + \"--\" + options.type, base + \"--\" + options.direction, options.drag && base + \"--draggable\", options.isNavigation && base + \"--nav\", base === CLASS_ROOT && CLASS_ACTIVE];\n }\n\n return assign(elements, {\n setup: setup,\n mount: mount,\n destroy: destroy\n });\n}\n\nvar SLIDE = \"slide\";\nvar LOOP = \"loop\";\nvar FADE = \"fade\";\n\nfunction Slide$1(Splide2, index, slideIndex, slide) {\n var event = EventInterface(Splide2);\n var on = event.on,\n emit = event.emit,\n bind = event.bind;\n var Components = Splide2.Components,\n root = Splide2.root,\n options = Splide2.options;\n var isNavigation = options.isNavigation,\n updateOnMove = options.updateOnMove,\n i18n = options.i18n,\n pagination = options.pagination,\n slideFocus = options.slideFocus;\n var resolve = Components.Direction.resolve;\n var styles = getAttribute(slide, \"style\");\n var label = getAttribute(slide, ARIA_LABEL);\n var isClone = slideIndex > -1;\n var container = child(slide, \".\" + CLASS_CONTAINER);\n var destroyed;\n\n function mount() {\n if (!isClone) {\n slide.id = root.id + \"-slide\" + pad(index + 1);\n setAttribute(slide, ROLE, pagination ? \"tabpanel\" : \"group\");\n setAttribute(slide, ARIA_ROLEDESCRIPTION, i18n.slide);\n setAttribute(slide, ARIA_LABEL, label || format(i18n.slideLabel, [index + 1, Splide2.length]));\n }\n\n listen();\n }\n\n function listen() {\n bind(slide, \"click\", apply(emit, EVENT_CLICK, self));\n bind(slide, \"keydown\", apply(emit, EVENT_SLIDE_KEYDOWN, self));\n on([EVENT_MOVED, EVENT_SHIFTED, EVENT_SCROLLED], update);\n on(EVENT_NAVIGATION_MOUNTED, initNavigation);\n\n if (updateOnMove) {\n on(EVENT_MOVE, onMove);\n }\n }\n\n function destroy() {\n destroyed = true;\n event.destroy();\n removeClass(slide, STATUS_CLASSES);\n removeAttribute(slide, ALL_ATTRIBUTES);\n setAttribute(slide, \"style\", styles);\n setAttribute(slide, ARIA_LABEL, label || \"\");\n }\n\n function initNavigation() {\n var controls = Splide2.splides.map(function (target) {\n var Slide2 = target.splide.Components.Slides.getAt(index);\n return Slide2 ? Slide2.slide.id : \"\";\n }).join(\" \");\n setAttribute(slide, ARIA_LABEL, format(i18n.slideX, (isClone ? slideIndex : index) + 1));\n setAttribute(slide, ARIA_CONTROLS, controls);\n setAttribute(slide, ROLE, slideFocus ? \"button\" : \"\");\n slideFocus && removeAttribute(slide, ARIA_ROLEDESCRIPTION);\n }\n\n function onMove() {\n if (!destroyed) {\n update();\n }\n }\n\n function update() {\n if (!destroyed) {\n var curr = Splide2.index;\n updateActivity();\n updateVisibility();\n toggleClass(slide, CLASS_PREV, index === curr - 1);\n toggleClass(slide, CLASS_NEXT, index === curr + 1);\n }\n }\n\n function updateActivity() {\n var active = isActive();\n\n if (active !== hasClass(slide, CLASS_ACTIVE)) {\n toggleClass(slide, CLASS_ACTIVE, active);\n setAttribute(slide, ARIA_CURRENT, isNavigation && active || \"\");\n emit(active ? EVENT_ACTIVE : EVENT_INACTIVE, self);\n }\n }\n\n function updateVisibility() {\n var visible = isVisible();\n var hidden = !visible && (!isActive() || isClone);\n\n if (!Splide2.state.is([MOVING, SCROLLING])) {\n setAttribute(slide, ARIA_HIDDEN, hidden || \"\");\n }\n\n setAttribute(queryAll(slide, options.focusableNodes || \"\"), TAB_INDEX, hidden ? -1 : \"\");\n\n if (slideFocus) {\n setAttribute(slide, TAB_INDEX, hidden ? -1 : 0);\n }\n\n if (visible !== hasClass(slide, CLASS_VISIBLE)) {\n toggleClass(slide, CLASS_VISIBLE, visible);\n emit(visible ? EVENT_VISIBLE : EVENT_HIDDEN, self);\n }\n\n if (!visible && document.activeElement === slide) {\n var Slide2 = Components.Slides.getAt(Splide2.index);\n Slide2 && focus(Slide2.slide);\n }\n }\n\n function style$1(prop, value, useContainer) {\n style(useContainer && container || slide, prop, value);\n }\n\n function isActive() {\n var curr = Splide2.index;\n return curr === index || options.cloneStatus && curr === slideIndex;\n }\n\n function isVisible() {\n if (Splide2.is(FADE)) {\n return isActive();\n }\n\n var trackRect = rect(Components.Elements.track);\n var slideRect = rect(slide);\n var left = resolve(\"left\", true);\n var right = resolve(\"right\", true);\n return floor(trackRect[left]) <= ceil(slideRect[left]) && floor(slideRect[right]) <= ceil(trackRect[right]);\n }\n\n function isWithin(from, distance) {\n var diff = abs(from - index);\n\n if (!isClone && (options.rewind || Splide2.is(LOOP))) {\n diff = min(diff, Splide2.length - diff);\n }\n\n return diff <= distance;\n }\n\n var self = {\n index: index,\n slideIndex: slideIndex,\n slide: slide,\n container: container,\n isClone: isClone,\n mount: mount,\n destroy: destroy,\n update: update,\n style: style$1,\n isWithin: isWithin\n };\n return self;\n}\n\nfunction Slides(Splide2, Components2, options) {\n var _EventInterface2 = EventInterface(Splide2),\n on = _EventInterface2.on,\n emit = _EventInterface2.emit,\n bind = _EventInterface2.bind;\n\n var _Components2$Elements = Components2.Elements,\n slides = _Components2$Elements.slides,\n list = _Components2$Elements.list;\n var Slides2 = [];\n\n function mount() {\n init();\n on(EVENT_REFRESH, destroy);\n on(EVENT_REFRESH, init);\n }\n\n function init() {\n slides.forEach(function (slide, index) {\n register(slide, index, -1);\n });\n }\n\n function destroy() {\n forEach$1(function (Slide2) {\n Slide2.destroy();\n });\n empty(Slides2);\n }\n\n function update() {\n forEach$1(function (Slide2) {\n Slide2.update();\n });\n }\n\n function register(slide, index, slideIndex) {\n var object = Slide$1(Splide2, index, slideIndex, slide);\n object.mount();\n Slides2.push(object);\n Slides2.sort(function (Slide1, Slide2) {\n return Slide1.index - Slide2.index;\n });\n }\n\n function get(excludeClones) {\n return excludeClones ? filter(function (Slide2) {\n return !Slide2.isClone;\n }) : Slides2;\n }\n\n function getIn(page) {\n var Controller = Components2.Controller;\n var index = Controller.toIndex(page);\n var max = Controller.hasFocus() ? 1 : options.perPage;\n return filter(function (Slide2) {\n return between(Slide2.index, index, index + max - 1);\n });\n }\n\n function getAt(index) {\n return filter(index)[0];\n }\n\n function add(items, index) {\n forEach(items, function (slide) {\n if (isString(slide)) {\n slide = parseHtml(slide);\n }\n\n if (isHTMLElement(slide)) {\n var ref = slides[index];\n ref ? before(slide, ref) : append(list, slide);\n addClass(slide, options.classes.slide);\n observeImages(slide, apply(emit, EVENT_RESIZE));\n }\n });\n emit(EVENT_REFRESH);\n }\n\n function remove$1(matcher) {\n remove(filter(matcher).map(function (Slide2) {\n return Slide2.slide;\n }));\n emit(EVENT_REFRESH);\n }\n\n function forEach$1(iteratee, excludeClones) {\n get(excludeClones).forEach(iteratee);\n }\n\n function filter(matcher) {\n return Slides2.filter(isFunction(matcher) ? matcher : function (Slide2) {\n return isString(matcher) ? matches(Slide2.slide, matcher) : includes(toArray(matcher), Slide2.index);\n });\n }\n\n function style(prop, value, useContainer) {\n forEach$1(function (Slide2) {\n Slide2.style(prop, value, useContainer);\n });\n }\n\n function observeImages(elm, callback) {\n var images = queryAll(elm, \"img\");\n var length = images.length;\n\n if (length) {\n images.forEach(function (img) {\n bind(img, \"load error\", function () {\n if (! --length) {\n callback();\n }\n });\n });\n } else {\n callback();\n }\n }\n\n function getLength(excludeClones) {\n return excludeClones ? slides.length : Slides2.length;\n }\n\n function isEnough() {\n return Slides2.length > options.perPage;\n }\n\n return {\n mount: mount,\n destroy: destroy,\n update: update,\n register: register,\n get: get,\n getIn: getIn,\n getAt: getAt,\n add: add,\n remove: remove$1,\n forEach: forEach$1,\n filter: filter,\n style: style,\n getLength: getLength,\n isEnough: isEnough\n };\n}\n\nfunction Layout(Splide2, Components2, options) {\n var _EventInterface3 = EventInterface(Splide2),\n on = _EventInterface3.on,\n bind = _EventInterface3.bind,\n emit = _EventInterface3.emit;\n\n var Slides = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var _Components2$Elements2 = Components2.Elements,\n root = _Components2$Elements2.root,\n track = _Components2$Elements2.track,\n list = _Components2$Elements2.list;\n var getAt = Slides.getAt,\n styleSlides = Slides.style;\n var vertical;\n var rootRect;\n var overflow;\n\n function mount() {\n init();\n bind(window, \"resize load\", Throttle(apply(emit, EVENT_RESIZE)));\n on([EVENT_UPDATED, EVENT_REFRESH], init);\n on(EVENT_RESIZE, resize);\n }\n\n function init() {\n vertical = options.direction === TTB;\n style(root, \"maxWidth\", unit(options.width));\n style(track, resolve(\"paddingLeft\"), cssPadding(false));\n style(track, resolve(\"paddingRight\"), cssPadding(true));\n resize(true);\n }\n\n function resize(force) {\n var newRect = rect(root);\n\n if (force || rootRect.width !== newRect.width || rootRect.height !== newRect.height) {\n style(track, \"height\", cssTrackHeight());\n styleSlides(resolve(\"marginRight\"), unit(options.gap));\n styleSlides(\"width\", cssSlideWidth());\n styleSlides(\"height\", cssSlideHeight(), true);\n rootRect = newRect;\n emit(EVENT_RESIZED);\n\n if (overflow !== (overflow = isOverflow())) {\n toggleClass(root, CLASS_OVERFLOW, overflow);\n emit(EVENT_OVERFLOW, overflow);\n }\n }\n }\n\n function cssPadding(right) {\n var padding = options.padding;\n var prop = resolve(right ? \"right\" : \"left\");\n return padding && unit(padding[prop] || (isObject(padding) ? 0 : padding)) || \"0px\";\n }\n\n function cssTrackHeight() {\n var height = \"\";\n\n if (vertical) {\n height = cssHeight();\n assert(height, \"height or heightRatio is missing.\");\n height = \"calc(\" + height + \" - \" + cssPadding(false) + \" - \" + cssPadding(true) + \")\";\n }\n\n return height;\n }\n\n function cssHeight() {\n return unit(options.height || rect(list).width * options.heightRatio);\n }\n\n function cssSlideWidth() {\n return options.autoWidth ? null : unit(options.fixedWidth) || (vertical ? \"\" : cssSlideSize());\n }\n\n function cssSlideHeight() {\n return unit(options.fixedHeight) || (vertical ? options.autoHeight ? null : cssSlideSize() : cssHeight());\n }\n\n function cssSlideSize() {\n var gap = unit(options.gap);\n return \"calc((100%\" + (gap && \" + \" + gap) + \")/\" + (options.perPage || 1) + (gap && \" - \" + gap) + \")\";\n }\n\n function listSize() {\n return rect(list)[resolve(\"width\")];\n }\n\n function slideSize(index, withoutGap) {\n var Slide = getAt(index || 0);\n return Slide ? rect(Slide.slide)[resolve(\"width\")] + (withoutGap ? 0 : getGap()) : 0;\n }\n\n function totalSize(index, withoutGap) {\n var Slide = getAt(index);\n\n if (Slide) {\n var right = rect(Slide.slide)[resolve(\"right\")];\n var left = rect(list)[resolve(\"left\")];\n return abs(right - left) + (withoutGap ? 0 : getGap());\n }\n\n return 0;\n }\n\n function sliderSize(withoutGap) {\n return totalSize(Splide2.length - 1) - totalSize(0) + slideSize(0, withoutGap);\n }\n\n function getGap() {\n var Slide = getAt(0);\n return Slide && parseFloat(style(Slide.slide, resolve(\"marginRight\"))) || 0;\n }\n\n function getPadding(right) {\n return parseFloat(style(track, resolve(\"padding\" + (right ? \"Right\" : \"Left\")))) || 0;\n }\n\n function isOverflow() {\n return Splide2.is(FADE) || sliderSize(true) > listSize();\n }\n\n return {\n mount: mount,\n resize: resize,\n listSize: listSize,\n slideSize: slideSize,\n sliderSize: sliderSize,\n totalSize: totalSize,\n getPadding: getPadding,\n isOverflow: isOverflow\n };\n}\n\nvar MULTIPLIER = 2;\n\nfunction Clones(Splide2, Components2, options) {\n var event = EventInterface(Splide2);\n var on = event.on;\n var Elements = Components2.Elements,\n Slides = Components2.Slides;\n var resolve = Components2.Direction.resolve;\n var clones = [];\n var cloneCount;\n\n function mount() {\n on(EVENT_REFRESH, remount);\n on([EVENT_UPDATED, EVENT_RESIZE], observe);\n\n if (cloneCount = computeCloneCount()) {\n generate(cloneCount);\n Components2.Layout.resize(true);\n }\n }\n\n function remount() {\n destroy();\n mount();\n }\n\n function destroy() {\n remove(clones);\n empty(clones);\n event.destroy();\n }\n\n function observe() {\n var count = computeCloneCount();\n\n if (cloneCount !== count) {\n if (cloneCount < count || !count) {\n event.emit(EVENT_REFRESH);\n }\n }\n }\n\n function generate(count) {\n var slides = Slides.get().slice();\n var length = slides.length;\n\n if (length) {\n while (slides.length < count) {\n push(slides, slides);\n }\n\n push(slides.slice(-count), slides.slice(0, count)).forEach(function (Slide, index) {\n var isHead = index < count;\n var clone = cloneDeep(Slide.slide, index);\n isHead ? before(clone, slides[0].slide) : append(Elements.list, clone);\n push(clones, clone);\n Slides.register(clone, index - count + (isHead ? 0 : length), Slide.index);\n });\n }\n }\n\n function cloneDeep(elm, index) {\n var clone = elm.cloneNode(true);\n addClass(clone, options.classes.clone);\n clone.id = Splide2.root.id + \"-clone\" + pad(index + 1);\n return clone;\n }\n\n function computeCloneCount() {\n var clones2 = options.clones;\n\n if (!Splide2.is(LOOP)) {\n clones2 = 0;\n } else if (isUndefined(clones2)) {\n var fixedSize = options[resolve(\"fixedWidth\")] && Components2.Layout.slideSize(0);\n var fixedCount = fixedSize && ceil(rect(Elements.track)[resolve(\"width\")] / fixedSize);\n clones2 = fixedCount || options[resolve(\"autoWidth\")] && Splide2.length || options.perPage * MULTIPLIER;\n }\n\n return clones2;\n }\n\n return {\n mount: mount,\n destroy: destroy\n };\n}\n\nfunction Move(Splide2, Components2, options) {\n var _EventInterface4 = EventInterface(Splide2),\n on = _EventInterface4.on,\n emit = _EventInterface4.emit;\n\n var set = Splide2.state.set;\n var _Components2$Layout = Components2.Layout,\n slideSize = _Components2$Layout.slideSize,\n getPadding = _Components2$Layout.getPadding,\n totalSize = _Components2$Layout.totalSize,\n listSize = _Components2$Layout.listSize,\n sliderSize = _Components2$Layout.sliderSize;\n var _Components2$Directio = Components2.Direction,\n resolve = _Components2$Directio.resolve,\n orient = _Components2$Directio.orient;\n var _Components2$Elements3 = Components2.Elements,\n list = _Components2$Elements3.list,\n track = _Components2$Elements3.track;\n var Transition;\n\n function mount() {\n Transition = Components2.Transition;\n on([EVENT_MOUNTED, EVENT_RESIZED, EVENT_UPDATED, EVENT_REFRESH], reposition);\n }\n\n function reposition() {\n if (!Components2.Controller.isBusy()) {\n Components2.Scroll.cancel();\n jump(Splide2.index);\n Components2.Slides.update();\n }\n }\n\n function move(dest, index, prev, callback) {\n if (dest !== index && canShift(dest > prev)) {\n cancel();\n translate(shift(getPosition(), dest > prev), true);\n }\n\n set(MOVING);\n emit(EVENT_MOVE, index, prev, dest);\n Transition.start(index, function () {\n set(IDLE);\n emit(EVENT_MOVED, index, prev, dest);\n callback && callback();\n });\n }\n\n function jump(index) {\n translate(toPosition(index, true));\n }\n\n function translate(position, preventLoop) {\n if (!Splide2.is(FADE)) {\n var destination = preventLoop ? position : loop(position);\n style(list, \"transform\", \"translate\" + resolve(\"X\") + \"(\" + destination + \"px)\");\n position !== destination && emit(EVENT_SHIFTED);\n }\n }\n\n function loop(position) {\n if (Splide2.is(LOOP)) {\n var index = toIndex(position);\n var exceededMax = index > Components2.Controller.getEnd();\n var exceededMin = index < 0;\n\n if (exceededMin || exceededMax) {\n position = shift(position, exceededMax);\n }\n }\n\n return position;\n }\n\n function shift(position, backwards) {\n var excess = position - getLimit(backwards);\n var size = sliderSize();\n position -= orient(size * (ceil(abs(excess) / size) || 1)) * (backwards ? 1 : -1);\n return position;\n }\n\n function cancel() {\n translate(getPosition(), true);\n Transition.cancel();\n }\n\n function toIndex(position) {\n var Slides = Components2.Slides.get();\n var index = 0;\n var minDistance = Infinity;\n\n for (var i = 0; i < Slides.length; i++) {\n var slideIndex = Slides[i].index;\n var distance = abs(toPosition(slideIndex, true) - position);\n\n if (distance <= minDistance) {\n minDistance = distance;\n index = slideIndex;\n } else {\n break;\n }\n }\n\n return index;\n }\n\n function toPosition(index, trimming) {\n var position = orient(totalSize(index - 1) - offset(index));\n return trimming ? trim(position) : position;\n }\n\n function getPosition() {\n var left = resolve(\"left\");\n return rect(list)[left] - rect(track)[left] + orient(getPadding(false));\n }\n\n function trim(position) {\n if (options.trimSpace && Splide2.is(SLIDE)) {\n position = clamp(position, 0, orient(sliderSize(true) - listSize()));\n }\n\n return position;\n }\n\n function offset(index) {\n var focus = options.focus;\n return focus === \"center\" ? (listSize() - slideSize(index, true)) / 2 : +focus * slideSize(index) || 0;\n }\n\n function getLimit(max) {\n return toPosition(max ? Components2.Controller.getEnd() : 0, !!options.trimSpace);\n }\n\n function canShift(backwards) {\n var shifted = orient(shift(getPosition(), backwards));\n return backwards ? shifted >= 0 : shifted <= list[resolve(\"scrollWidth\")] - rect(track)[resolve(\"width\")];\n }\n\n function exceededLimit(max, position) {\n position = isUndefined(position) ? getPosition() : position;\n var exceededMin = max !== true && orient(position) < orient(getLimit(false));\n var exceededMax = max !== false && orient(position) > orient(getLimit(true));\n return exceededMin || exceededMax;\n }\n\n return {\n mount: mount,\n move: move,\n jump: jump,\n translate: translate,\n shift: shift,\n cancel: cancel,\n toIndex: toIndex,\n toPosition: toPosition,\n getPosition: getPosition,\n getLimit: getLimit,\n exceededLimit: exceededLimit,\n reposition: reposition\n };\n}\n\nfunction Controller(Splide2, Components2, options) {\n var _EventInterface5 = EventInterface(Splide2),\n on = _EventInterface5.on,\n emit = _EventInterface5.emit;\n\n var Move = Components2.Move;\n var getPosition = Move.getPosition,\n getLimit = Move.getLimit,\n toPosition = Move.toPosition;\n var _Components2$Slides = Components2.Slides,\n isEnough = _Components2$Slides.isEnough,\n getLength = _Components2$Slides.getLength;\n var omitEnd = options.omitEnd;\n var isLoop = Splide2.is(LOOP);\n var isSlide = Splide2.is(SLIDE);\n var getNext = apply(getAdjacent, false);\n var getPrev = apply(getAdjacent, true);\n var currIndex = options.start || 0;\n var endIndex;\n var prevIndex = currIndex;\n var slideCount;\n var perMove;\n var perPage;\n\n function mount() {\n init();\n on([EVENT_UPDATED, EVENT_REFRESH, EVENT_END_INDEX_CHANGED], init);\n on(EVENT_RESIZED, onResized);\n }\n\n function init() {\n slideCount = getLength(true);\n perMove = options.perMove;\n perPage = options.perPage;\n endIndex = getEnd();\n var index = clamp(currIndex, 0, omitEnd ? endIndex : slideCount - 1);\n\n if (index !== currIndex) {\n currIndex = index;\n Move.reposition();\n }\n }\n\n function onResized() {\n if (endIndex !== getEnd()) {\n emit(EVENT_END_INDEX_CHANGED);\n }\n }\n\n function go(control, allowSameIndex, callback) {\n if (!isBusy()) {\n var dest = parse(control);\n var index = loop(dest);\n\n if (index > -1 && (allowSameIndex || index !== currIndex)) {\n setIndex(index);\n Move.move(dest, index, prevIndex, callback);\n }\n }\n }\n\n function scroll(destination, duration, snap, callback) {\n Components2.Scroll.scroll(destination, duration, snap, function () {\n var index = loop(Move.toIndex(getPosition()));\n setIndex(omitEnd ? min(index, endIndex) : index);\n callback && callback();\n });\n }\n\n function parse(control) {\n var index = currIndex;\n\n if (isString(control)) {\n var _ref = control.match(/([+\\-<>])(\\d+)?/) || [],\n indicator = _ref[1],\n number = _ref[2];\n\n if (indicator === \"+\" || indicator === \"-\") {\n index = computeDestIndex(currIndex + +(\"\" + indicator + (+number || 1)), currIndex);\n } else if (indicator === \">\") {\n index = number ? toIndex(+number) : getNext(true);\n } else if (indicator === \"<\") {\n index = getPrev(true);\n }\n } else {\n index = isLoop ? control : clamp(control, 0, endIndex);\n }\n\n return index;\n }\n\n function getAdjacent(prev, destination) {\n var number = perMove || (hasFocus() ? 1 : perPage);\n var dest = computeDestIndex(currIndex + number * (prev ? -1 : 1), currIndex, !(perMove || hasFocus()));\n\n if (dest === -1 && isSlide) {\n if (!approximatelyEqual(getPosition(), getLimit(!prev), 1)) {\n return prev ? 0 : endIndex;\n }\n }\n\n return destination ? dest : loop(dest);\n }\n\n function computeDestIndex(dest, from, snapPage) {\n if (isEnough() || hasFocus()) {\n var index = computeMovableDestIndex(dest);\n\n if (index !== dest) {\n from = dest;\n dest = index;\n snapPage = false;\n }\n\n if (dest < 0 || dest > endIndex) {\n if (!perMove && (between(0, dest, from, true) || between(endIndex, from, dest, true))) {\n dest = toIndex(toPage(dest));\n } else {\n if (isLoop) {\n dest = snapPage ? dest < 0 ? -(slideCount % perPage || perPage) : slideCount : dest;\n } else if (options.rewind) {\n dest = dest < 0 ? endIndex : 0;\n } else {\n dest = -1;\n }\n }\n } else {\n if (snapPage && dest !== from) {\n dest = toIndex(toPage(from) + (dest < from ? -1 : 1));\n }\n }\n } else {\n dest = -1;\n }\n\n return dest;\n }\n\n function computeMovableDestIndex(dest) {\n if (isSlide && options.trimSpace === \"move\" && dest !== currIndex) {\n var position = getPosition();\n\n while (position === toPosition(dest, true) && between(dest, 0, Splide2.length - 1, !options.rewind)) {\n dest < currIndex ? --dest : ++dest;\n }\n }\n\n return dest;\n }\n\n function loop(index) {\n return isLoop ? (index + slideCount) % slideCount || 0 : index;\n }\n\n function getEnd() {\n var end = slideCount - (hasFocus() || isLoop && perMove ? 1 : perPage);\n\n while (omitEnd && end-- > 0) {\n if (toPosition(slideCount - 1, true) !== toPosition(end, true)) {\n end++;\n break;\n }\n }\n\n return clamp(end, 0, slideCount - 1);\n }\n\n function toIndex(page) {\n return clamp(hasFocus() ? page : perPage * page, 0, endIndex);\n }\n\n function toPage(index) {\n return hasFocus() ? min(index, endIndex) : floor((index >= endIndex ? slideCount - 1 : index) / perPage);\n }\n\n function toDest(destination) {\n var closest = Move.toIndex(destination);\n return isSlide ? clamp(closest, 0, endIndex) : closest;\n }\n\n function setIndex(index) {\n if (index !== currIndex) {\n prevIndex = currIndex;\n currIndex = index;\n }\n }\n\n function getIndex(prev) {\n return prev ? prevIndex : currIndex;\n }\n\n function hasFocus() {\n return !isUndefined(options.focus) || options.isNavigation;\n }\n\n function isBusy() {\n return Splide2.state.is([MOVING, SCROLLING]) && !!options.waitForTransition;\n }\n\n return {\n mount: mount,\n go: go,\n scroll: scroll,\n getNext: getNext,\n getPrev: getPrev,\n getAdjacent: getAdjacent,\n getEnd: getEnd,\n setIndex: setIndex,\n getIndex: getIndex,\n toIndex: toIndex,\n toPage: toPage,\n toDest: toDest,\n hasFocus: hasFocus,\n isBusy: isBusy\n };\n}\n\nvar XML_NAME_SPACE = \"http://www.w3.org/2000/svg\";\nvar PATH = \"m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z\";\nvar SIZE = 40;\n\nfunction Arrows(Splide2, Components2, options) {\n var event = EventInterface(Splide2);\n var on = event.on,\n bind = event.bind,\n emit = event.emit;\n var classes = options.classes,\n i18n = options.i18n;\n var Elements = Components2.Elements,\n Controller = Components2.Controller;\n var placeholder = Elements.arrows,\n track = Elements.track;\n var wrapper = placeholder;\n var prev = Elements.prev;\n var next = Elements.next;\n var created;\n var wrapperClasses;\n var arrows = {};\n\n function mount() {\n init();\n on(EVENT_UPDATED, remount);\n }\n\n function remount() {\n destroy();\n mount();\n }\n\n function init() {\n var enabled = options.arrows;\n\n if (enabled && !(prev && next)) {\n createArrows();\n }\n\n if (prev && next) {\n assign(arrows, {\n prev: prev,\n next: next\n });\n display(wrapper, enabled ? \"\" : \"none\");\n addClass(wrapper, wrapperClasses = CLASS_ARROWS + \"--\" + options.direction);\n\n if (enabled) {\n listen();\n update();\n setAttribute([prev, next], ARIA_CONTROLS, track.id);\n emit(EVENT_ARROWS_MOUNTED, prev, next);\n }\n }\n }\n\n function destroy() {\n event.destroy();\n removeClass(wrapper, wrapperClasses);\n\n if (created) {\n remove(placeholder ? [prev, next] : wrapper);\n prev = next = null;\n } else {\n removeAttribute([prev, next], ALL_ATTRIBUTES);\n }\n }\n\n function listen() {\n on([EVENT_MOUNTED, EVENT_MOVED, EVENT_REFRESH, EVENT_SCROLLED, EVENT_END_INDEX_CHANGED], update);\n bind(next, \"click\", apply(go, \">\"));\n bind(prev, \"click\", apply(go, \"<\"));\n }\n\n function go(control) {\n Controller.go(control, true);\n }\n\n function createArrows() {\n wrapper = placeholder || create(\"div\", classes.arrows);\n prev = createArrow(true);\n next = createArrow(false);\n created = true;\n append(wrapper, [prev, next]);\n !placeholder && before(wrapper, track);\n }\n\n function createArrow(prev2) {\n var arrow = \"\";\n };\n\n _proto3.html = function html() {\n var _this$config = this.config,\n rootClass = _this$config.rootClass,\n listTag = _this$config.listTag,\n arrows = _this$config.arrows,\n beforeTrack = _this$config.beforeTrack,\n afterTrack = _this$config.afterTrack,\n slider = _this$config.slider,\n beforeSlider = _this$config.beforeSlider,\n afterSlider = _this$config.afterSlider;\n var html = \"\";\n html += \"
\";\n html += \"\";\n\n if (slider) {\n html += beforeSlider || \"\";\n html += \"
\";\n }\n\n html += beforeTrack || \"\";\n\n if (arrows) {\n html += this.renderArrows();\n }\n\n html += \"
\";\n html += \"<\" + listTag + \" class=\\\"splide__list\\\">\";\n html += this.renderSlides();\n html += \"\";\n html += \"
\";\n html += afterTrack || \"\";\n\n if (slider) {\n html += \"
\";\n html += afterSlider || \"\";\n }\n\n html += \"
\";\n return html;\n };\n\n return SplideRenderer;\n}();\n\nexport { CLASSES, CLASS_ACTIVE, CLASS_ARROW, CLASS_ARROWS, CLASS_ARROW_NEXT, CLASS_ARROW_PREV, CLASS_CLONE, CLASS_CONTAINER, CLASS_FOCUS_IN, CLASS_INITIALIZED, CLASS_LIST, CLASS_LOADING, CLASS_NEXT, CLASS_OVERFLOW, CLASS_PAGINATION, CLASS_PAGINATION_PAGE, CLASS_PREV, CLASS_PROGRESS, CLASS_PROGRESS_BAR, CLASS_ROOT, CLASS_SLIDE, CLASS_SPINNER, CLASS_SR, CLASS_TOGGLE, CLASS_TOGGLE_PAUSE, CLASS_TOGGLE_PLAY, CLASS_TRACK, CLASS_VISIBLE, DEFAULTS, EVENT_ACTIVE, EVENT_ARROWS_MOUNTED, EVENT_ARROWS_UPDATED, EVENT_AUTOPLAY_PAUSE, EVENT_AUTOPLAY_PLAY, EVENT_AUTOPLAY_PLAYING, EVENT_CLICK, EVENT_DESTROY, EVENT_DRAG, EVENT_DRAGGED, EVENT_DRAGGING, EVENT_END_INDEX_CHANGED, EVENT_HIDDEN, EVENT_INACTIVE, EVENT_LAZYLOAD_LOADED, EVENT_MOUNTED, EVENT_MOVE, EVENT_MOVED, EVENT_NAVIGATION_MOUNTED, EVENT_OVERFLOW, EVENT_PAGINATION_MOUNTED, EVENT_PAGINATION_UPDATED, EVENT_READY, EVENT_REFRESH, EVENT_RESIZE, EVENT_RESIZED, EVENT_SCROLL, EVENT_SCROLLED, EVENT_SHIFTED, EVENT_SLIDE_KEYDOWN, EVENT_UPDATED, EVENT_VISIBLE, EventBinder, EventInterface, FADE, LOOP, LTR, RTL, RequestInterval, SLIDE, STATUS_CLASSES, Splide, SplideRenderer, State, TTB, Throttle, Splide as default };\n","import Splide from '@splidejs/splide';\r\n\r\nexport default class Slider {\r\n constructor(element) {\r\n this.el = element;\r\n this.init();\r\n }\r\n\r\n init() {\r\n const options = {\r\n type : 'loop',\r\n perPage: 1,\r\n gap: 0,\r\n padding: 0,\r\n rewind: true,\r\n cover: true,\r\n width : '100vw',\r\n snap: true,\r\n breakpoints: {\r\n\r\n },\r\n };\r\n new Splide(this.el, options).mount();\r\n }\r\n}\r\n","export function disableScrollLock() {\r\n const innerBody = document.querySelector(\".innerBody\");\r\n if (document.readyState === 'complete') {\r\n innerBody.style.position = '';\r\n innerBody.style.overflowY = '';\r\n innerBody.style.width = '';\r\n innerBody.classList.add('h-full');\r\n innerBody.classList.add('min-h-full');\r\n document.body.classList.add('h-full');\r\n if (innerBody.style.marginTop) {\r\n const scrollTop = -parseInt(innerBody.style.marginTop, 10);\r\n innerBody.style.marginTop = '';\r\n window.scrollTo(window.pageXOffset, scrollTop);\r\n }\r\n } else {\r\n window.addEventListener('load', enableBodyScroll);\r\n }\r\n}\r\n\r\nexport function enableScrollLock({ savePosition = false } = {}) {\r\n const innerBody = document.querySelector(\".innerBody\");\r\n if (document.readyState === 'complete') {\r\n if (innerBody.scrollHeight > window.innerHeight) {\r\n if (savePosition) innerBody.style.marginTop = `-${window.pageYOffset}px`;\r\n innerBody.style.position = 'fixed';\r\n innerBody.style.overflowY = 'scroll';\r\n innerBody.style.width = '100%';\r\n innerBody.classList.remove('h-full');\r\n innerBody.classList.remove('min-h-full');\r\n document.body.classList.remove('h-full');\r\n }\r\n } else {\r\n window.addEventListener('load', () => disableBodyScroll({ savePosition }));\r\n }\r\n}","import {disableScrollLock, enableScrollLock} from '../../util/bodyScroll';\r\nexport default class Menu {\r\n constructor(element) {\r\n this.el = element;\r\n this.init();\r\n }\r\n\r\n init() {\r\n const openBtn = this.el.querySelector('button.menu-button');\r\n const closeBtn = this.el.querySelector('a.menu-close');\r\n const sideMenu = this.el.querySelector('.side-menu');\r\n const overlay = document.querySelector('.overlay');\r\n const fadeContainer = document.querySelector('.fade-container');\r\n const toggleBtn = document.querySelector('.toggleLang');\r\n const langContainer = document.querySelector('.langcontainer');\r\n openBtn.addEventListener('click', () => {\r\n openMenu();\r\n });\r\n\r\n closeBtn.addEventListener('click', () => {\r\n closeMenu();\r\n });\r\n\r\n function openMenu() {\r\n langContainer.classList.add('notransition');\r\n langContainer.classList.remove('active');\r\n langContainer.offsetHeight;\r\n langContainer.classList.remove('notransition');\r\n sideMenu.classList.remove('inactive');\r\n sideMenu.classList.add('active');\r\n overlay.classList.remove('hidden');\r\n fadeContainer.classList.add('active');\r\n fadeContainer.classList.remove('inactive');\r\n enableScrollLock(true);\r\n }\r\n function closeMenu() {\r\n sideMenu.classList.remove('active');\r\n sideMenu.classList.add('inactive');\r\n fadeContainer.classList.remove('active');\r\n fadeContainer.classList.add('inactive');\r\n overlay.classList.add('hidden');\r\n disableScrollLock(true);\r\n }\r\n }\r\n}\r\n","let pagination_a = null;\r\nlet pagination_span = null;\r\n\r\nexport default function paginationBuilder(element, currentPage, numberOfPages, callback) {\r\n const leftArrow = ``;\r\n const rightArrow = ``; \r\n const dots = '…'; \r\n const pageDotRatio = 3;\r\n //get reference html\r\n if (!pagination_a) pagination_a = element.querySelector('a').cloneNode(true);\r\n if (!pagination_span) pagination_span = element.querySelector('span').cloneNode(true);\r\n\r\n const a = pagination_a;\r\n const span = pagination_span; \r\n\r\n //clear html for building \r\n element.innerHTML = '';\r\n //chop the pages into segments of [0,1,2][3,4,5] etc.\r\n const segments = [];\r\n let segmentPosition = -1;\r\n\r\n let whilePageCount = numberOfPages;\r\n //we work our way backwards\r\n while (whilePageCount > 0) {\r\n const segment = [];\r\n for (let i = 0; i < pageDotRatio; i++) {\r\n if (numberOfPages-whilePageCount >= 0 && whilePageCount > 0) {\r\n segment.push(numberOfPages-whilePageCount);\r\n whilePageCount--;\r\n\r\n if (numberOfPages-whilePageCount == currentPage)\r\n segmentPosition = segments.length;\r\n }\r\n }\r\n segments.push(segment);\r\n }\r\n // build
  • list items for insertion\r\n const listItems = [];\r\n\r\n if (segmentPosition > 0) {\r\n listItems.push(makeLiNode(a,'prev',leftArrow, false));\r\n }\r\n if (currentPage > pageDotRatio) {\r\n listItems.push(makeLiNode(a,0,1, false));\r\n listItems.push(makeLiNode(span,'',dots));\r\n }\r\n\r\n segments[segmentPosition].forEach(s => {\r\n listItems.push(makeLiNode(a,s,s+1, s+1 == currentPage));\r\n });\r\n\r\n if (numberOfPages > pageDotRatio && segmentPosition < segments.length-1) {\r\n listItems.push(makeLiNode(span,'',dots));\r\n listItems.push(makeLiNode(a,numberOfPages-1,numberOfPages, false));\r\n listItems.push(makeLiNode(a,'next',rightArrow, false));\r\n }\r\n\r\n listItems.forEach(li => {\r\n element.appendChild(li);\r\n // add our callback to all the new items\r\n li.addEventListener('click',callback);\r\n });\r\n}\r\n\r\nfunction makeLiNode(node, data, text, active) {\r\n const n = node.cloneNode(true);\r\n n.setAttribute('data-value',data);\r\n n.innerHTML = text;\r\n const li = document.createElement('li');\r\n if (active) {\r\n n.classList.add('text-white');\r\n n.classList.add('text-blue-dark'); \r\n }\r\n li.appendChild(n);\r\n return li;\r\n}\r\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","export function getParamsObj() {\r\n const search = window.location.search;\r\n const params = new URLSearchParams(search);\r\n const paramObj = {};\r\n for (const value of params.keys()) {\r\n paramObj[value] = params.get(value);\r\n }\r\n return paramObj;\r\n}\r\n\r\nexport function updateBrowserState(paramString) {\r\n const nextState = { additionalInformation: 'Updated the URL with JS' };\r\n const params = getParamsObj();\r\n if (params.sc_lang) {\r\n paramString = `${paramString}&sc_lang=${params.sc_lang}`;\r\n }\r\n const rootUrl = window.location.href.split('?')[0];\r\n const nextUrl = `${rootUrl}${paramString}`;\r\n\r\n // This will create a new entry in the browser's history, without reloading\r\n window.history.replaceState(nextState, '', nextUrl);\r\n}\r\n\r\nexport function setSelectOptions(element, values, value, prop) {\r\n //popuplate fields if it's empty or only have a non-value option\r\n const options = element.querySelectorAll('option:not([value=\"\"])');\r\n if (options.length == 0) {\r\n values.forEach(v => {\r\n const o = document.createElement('option');\r\n if (!prop)\r\n o.innerText = v.Headline;\r\n else o.innerText = v[prop];\r\n o.value = v.Id;\r\n element.appendChild(o);\r\n });\r\n }\r\n //set selected from state\r\n if (value) {\r\n if (Array.isArray(value)) {\r\n value.forEach(v => {\r\n if (element.querySelector(`option[value=\"${v}\"]`))\r\n element.querySelector(`option[value=\"${v}\"]`).selected = true;\r\n });\r\n }\r\n else element.querySelector(`option[value=\"${value}\"]`).selected = true;\r\n }\r\n\r\n}","import axios from 'axios';\r\nimport paginationBuilder from '../../util/paginationBuilder';\r\nimport { format } from 'date-fns';\r\nimport { getParamsObj, updateBrowserState, setSelectOptions } from '../../util/browserUtil';\r\n\r\nexport default class NewsList {\r\n constructor(element) {\r\n this.el = element;\r\n this.datePicker = null;\r\n this.subjects = [];\r\n this.page = 1;\r\n this.subjectPicker = null;\r\n this.params = null;\r\n this.tags = '';\r\n this.numberOfPages = 100;\r\n this.data = {};\r\n this.newsItemHtml = null;\r\n this.newsItems = null;\r\n this.dates = [];\r\n this.init();\r\n }\r\n // manage changes to this.data (change filter states, news etc.)\r\n set _data(value) {\r\n this.data = value;\r\n if (value?.Tags) {\r\n const subjectTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'Emner');\r\n this.subjectPicker.Update(subjectTags, this.subjects, this.subjectsChangedHandler);\r\n const datesTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n this.datePicker.Update(datesTags, this.dates, this.datesChangeHandler);\r\n }\r\n this.numberOfPages = value.SearchResult.Paging.PagesToShow.length;\r\n this.loadNews(value.SearchResult.Items);\r\n this.managePagination();\r\n }\r\n init() {\r\n // Element getters\r\n this.subjectPicker = this.el.querySelector('#filterSubject');\r\n this.datePicker = this.el.querySelector(\"#filterDates\");\r\n\r\n // load reference html and remove from dom\r\n this.newsItemHtml = this.el.querySelector('#newsItemPlaceholder');\r\n this.newsItemHtml.parentElement.removeChild(this.newsItemHtml);\r\n this.newsItemHtml.removeAttribute('id');\r\n\r\n this.newsItems = this.el.querySelector('.newsItems');\r\n this.manageState();\r\n\r\n var currentComponent = this;\r\n window.addEventListener('resize', function(event){\r\n currentComponent.onViewportResize(event);\r\n }, true); \r\n\r\n this.subjectsChangedHandler = (selectedSubjects)=> {\r\n this.subjects = selectedSubjects;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n }; \r\n \r\n this.datesChangeHandler = (selectedYears) => {\r\n this.dates = selectedYears;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n }\r\n }\r\n\r\n loadNews(items) {\r\n this.newsItems.innerHTML = '';\r\n\r\n items.forEach(item => {\r\n const newsItem = this.newsItemHtml.cloneNode(true);\r\n newsItem.querySelector('.newsItem__headline').innerText = item.Headline;\r\n newsItem.querySelector('.newsItem__text').innerText = item.Description;\r\n newsItem.setAttribute('data-id', item.Id);\r\n newsItem.querySelector('.newsItem__url').href = item.Url;\r\n\r\n if (item.Tags.Items?.length) {\r\n const newsSubjects = newsItem.querySelector('.newsItem__subject');\r\n newsSubjects.innerText = item.Tags.Items.map(s => s.Headline).join(', ');\r\n }\r\n\r\n if (item.ImageUrls?.Items.length) {\r\n const img = item.ImageUrls.Items.find(x => x.Alias == 'List');\r\n if(img){\r\n newsItem.querySelector('.newsItem__image').alt = img.Alt;\r\n } \r\n }\r\n newsItem.querySelector('.newsItem__date').innerText = format(Date.parse(item.NewsDate), 'dd.MM.yyyy');\r\n this.newsItems.appendChild(newsItem);\r\n this.setImageCrop(item, newsItem);\r\n });\r\n }\r\n\r\n onViewportResize(event){\r\n if(this.data?.SearchResult){\r\n const domItems = [...document.querySelectorAll('.newsItem')];\r\n domItems.forEach(domItem => {\r\n var itemId = domItem.getAttribute('data-id');\r\n var dataItem = this.data.SearchResult.Items.find(item => item.Id == itemId);\r\n this.setImageCrop(dataItem, domItem);\r\n });\r\n }\r\n else{\r\n console.log('no data');\r\n }\r\n }\r\n\r\n setImageCrop(dataItem, domItem){\r\n if(dataItem){\r\n\r\n if(dataItem.ImageUrls?.Items.length){\r\n // Default\r\n const img = dataItem.ImageUrls.Items.find(x => x.Alias == 'List');\r\n domItem.querySelector('.newsItem__image').src = img.Url;\r\n\r\n // Adjust according to current offset\r\n if(domItem.offsetWidth < 768){\r\n const imgMedium = dataItem.ImageUrls.Items.find(x => x.Alias == 'Tile');\r\n domItem.querySelector('.newsItem__image').src = imgMedium.Url; \r\n }\r\n else if(domItem.offsetHeight > 150 && domItem.offsetHeight <= 180){\r\n const imgMedium = dataItem.ImageUrls.Items.find(x => x.Alias == 'ListMedium');\r\n domItem.querySelector('.newsItem__image').src = imgMedium.Url;\r\n } \r\n else if(domItem.offsetHeight > 180 && domItem.offsetHeight <= 225){\r\n const imgMedium = dataItem.ImageUrls.Items.find(x => x.Alias == 'ListLarge');\r\n domItem.querySelector('.newsItem__image').src = imgMedium.Url;\r\n }\r\n else if(domItem.offsetHeight > 225){\r\n const imgLarge = dataItem.ImageUrls.Items.find(x => x.Alias == 'Tile');\r\n domItem.querySelector('.newsItem__image').src = imgLarge.Url;\r\n }\r\n }\r\n else if(domItem.querySelector('.newsItem__image')){\r\n domItem.querySelector('.newsItem__image').remove();\r\n }\r\n }\r\n else{\r\n console.log('dataitem is null');\r\n }\r\n }\r\n\r\n manageState() {\r\n this.manageParams();\r\n let url = `${window.location.origin}/api/NewsComponent/NewsListJson?subjects=${this.subjects.join('|')}&page=${this.page}&dates=${this.dates.join('|')}`;\r\n\r\n axios.get(url).then(response => {\r\n this._data = response.data;\r\n if (this.data) {\r\n const subjectTypes = this.data.Tags.Nodes.filter(x => x.RootAlias === 'Emner');\r\n this.subjectPicker.Update(subjectTypes, this.subjects, this.subjectsChangedHandler); \r\n const dates = this.data.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n this.datePicker.Update(dates, this.dates, this.datesChangeHandler);\r\n }\r\n });\r\n }\r\n\r\n manageParams() {\r\n this.params = getParamsObj();\r\n if (this.params.subjects) {\r\n this.subjects = this.params.subjects.split('|');\r\n }\r\n if (this.params.page) {\r\n this.page = parseInt(this.params.page);\r\n }\r\n if (this.params.dates) {\r\n this.dates = this.params.dates.split('|');\r\n }\r\n }\r\n\r\n managePagination() {\r\n if (this.numberOfPages == 1) {\r\n if (this.el.querySelector('.pagination'))\r\n this.el.querySelector('.pagination').classList.add('hidden');\r\n return;\r\n }\r\n this.el.querySelector('.pagination').classList.remove('hidden');\r\n const callback = e => {\r\n const value = e.target.closest('a[data-value]').getAttribute('data-value');\r\n if (value) {\r\n if (value == 'prev') this.page--;\r\n else if (value == 'next') this.page++;\r\n else this.page = parseInt(value)+1;\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n updateBrowserState(this.nextUrl());\r\n this.manageState();\r\n e.preventDefault();\r\n };\r\n\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n\r\n nextUrl(resetPage = false) {\r\n if (resetPage) {\r\n this.page = 1;\r\n }\r\n let nextUrl = `?subjects=${this.subjects.join('|')}&page=${this.page}`;\r\n if (this.dates) {\r\n nextUrl += `&dates=${this.dates.join('|')}`;\r\n }\r\n return nextUrl;\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport paginationBuilder from '../../util/paginationBuilder';\r\nimport { format } from 'date-fns';\r\nimport { getParamsObj, updateBrowserState, setSelectOptions } from '../../util/browserUtil';\r\n\r\nexport default class Publicationlist {\r\n constructor(element) {\r\n this.el = element;\r\n this.subjects = [];\r\n this.publicationTypes = [];\r\n this.page = 1;\r\n this.subjectPicker = null;\r\n this.typePicker = null;\r\n this.datePicker = null;\r\n this.params = null;\r\n this.page = 1;\r\n this.numberOfPages = 100;\r\n this.data = {};\r\n this.publicationItemHtml = null;\r\n this.publicationItems = null;\r\n this.dates = [];\r\n this.init();\r\n }\r\n // manage changes to this.data (change filter states, publication etc.)\r\n set _data(value) {\r\n this.data = value;\r\n if (value?.Tags) {\r\n const subjectTypes = value.Tags.Nodes.filter(x => x.RootAlias === 'Emner');\r\n const publicationTypes = value.Tags.Nodes.filter(x => x.RootAlias === 'PublikationsTyper');\r\n const dateTags = value.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n this.subjectPicker.Update(subjectTypes, this.subjects, this.subjectsChangedHandler);\r\n this.typePicker.Update(publicationTypes, this.publicationTypes, this.typesChangedHandler);\r\n this.datePicker.Update(dateTags, this.dates, this.datesChangedHandler);\r\n }\r\n this.numberOfPages = value.SearchResult.Paging.PagesToShow.length;\r\n this.loadpublication(value.SearchResult.Items);\r\n this.managePagination();\r\n }\r\n init() {\r\n // Element getters\r\n this.subjectPicker = this.el.querySelector('#filterSubject');\r\n this.typePicker = this.el.querySelector('#filterType');\r\n this.datePicker = this.el.querySelector('#filterDates');\r\n\r\n // load reference html and remove from dom\r\n this.publicationItemHtml = this.el.querySelector('#publicationItemPlaceholder');\r\n this.publicationItemHtml.parentElement.removeChild(this.publicationItemHtml);\r\n this.publicationItemHtml.removeAttribute('id');\r\n\r\n this.publicationItems = this.el.querySelector('.publicationItems');\r\n this.manageState();\r\n\r\n this.subjectsChangedHandler = (selectedSubjects)=> {\r\n this.subjects = selectedSubjects;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n };\r\n this.typesChangedHandler = (selectedTypes)=> {\r\n this.publicationTypes = selectedTypes;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n };\r\n this.datesChangedHandler = (selectedDates) => {\r\n this.dates = selectedDates;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n }\r\n }\r\n\r\n loadpublication(items) {\r\n this.publicationItems.innerHTML = '';\r\n console.log(items);\r\n items.forEach(item => {\r\n\r\n const publicationItem = this.publicationItemHtml.cloneNode(true);\r\n publicationItem.querySelector('.publicationItem__headline').innerText = item.Headline;\r\n publicationItem.querySelector('.publicationItem__url').href = item.Url;\r\n\r\n if(item.Description?.length > 0){\r\n publicationItem.querySelector('.publicationItem_description').innerText = item.Description;\r\n }\r\n else{\r\n publicationItem.querySelector('.publicationItem_description').remove();\r\n }\r\n\r\n if (item.ImageUrls?.Items.length) {\r\n const img = item.ImageUrls.Items.find(x => x.Alias == 'Tile');\r\n if (img) {\r\n publicationItem.querySelector('.publicationItem__image').src = `${window.location.origin}/${img.Url}`;\r\n publicationItem.querySelector('.publicationItem__image').alt = img.Alt;\r\n console.log(img.Url);\r\n }\r\n else {\r\n publicationItem.querySelector('.publicationItem__image').remove();\r\n }\r\n }\r\n else{\r\n publicationItem.querySelector('.publicationItem__image').src = '/assets/icons/naal_placeholder.svg';\r\n }\r\n publicationItem.querySelector('.publicationItem__date').innerText = format(Date.parse(item.Date), 'dd.MM.yyyy');\r\n this.publicationItems.appendChild(publicationItem);\r\n });\r\n }\r\n\r\n manageState() {\r\n this.manageParams();\r\n\r\n var additionalFilters = new Array();\r\n // Get Pre selected department if any\r\n if (this.el.dataset.department) {\r\n const formattedDepartment = this.el.dataset.department.replace(/[{}]/g, '').toLowerCase();\r\n additionalFilters.push(formattedDepartment);\r\n }\r\n\r\n let url = `${window.location.origin}/api/publication/PublicationListJson?types=${this.publicationTypes.join('|')}&subjects=${this.subjects.join('|')}&dates=${this.dates.join('|')}&page=${this.page}&additionalFilter=${additionalFilters.join('|')}`;\r\n if(this.el.dataset.options && this.el.dataset.options.length > 0){\r\n url = `${url}&optionId=${this.el.dataset.options}`;\r\n }\r\n\r\n axios.get(url).then(response => {\r\n this._data = response.data;\r\n if (this.data) {\r\n const subjectTypes = this.data.Tags.Nodes.filter(x => x.RootAlias === 'Emner');\r\n const publicationTypes = this.data.Tags.Nodes.filter(x => x.RootAlias === 'PublikationsTyper');\r\n const dateTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n this.subjectPicker.Update(subjectTypes, this.subjects, this.subjectsChangedHandler);\r\n this.typePicker.Update(publicationTypes, this.publicationTypes, this.typesChangedHandler);\r\n this.datePicker.Update(dateTags, this.dates, this.datesChangedHandler);\r\n }\r\n });\r\n }\r\n\r\n manageParams() {\r\n this.params = getParamsObj();\r\n if (this.params.types) {\r\n this.publicationTypes = this.params.types.split('|'); \r\n this.publicationTypes = this.publicationTypes.filter(x => x != '');\r\n }\r\n if(this.params.subjects){\r\n this.subjects = this.params.subjects.split('|');\r\n this.subjects = this.subjects.filter(x => x != '');\r\n }\r\n if (this.params.page) {\r\n this.page = parseInt(this.params.page);\r\n }\r\n if (this.params.dates) {\r\n this.dates = this.params.dates.split('|');\r\n }\r\n }\r\n\r\n managePagination() {\r\n if (this.numberOfPages == 1) {\r\n if (this.el.querySelector('.pagination'))\r\n this.el.querySelector('.pagination').classList.add('hidden');\r\n return;\r\n }\r\n this.el.querySelector('.pagination').classList.remove('hidden');\r\n const callback = e => {\r\n const value = e.target.closest('a[data-value]').getAttribute('data-value');\r\n if (value) {\r\n if (value == 'prev') this.page--;\r\n else if (value == 'next') this.page++;\r\n else this.page = parseInt(value)+1;\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n updateBrowserState(this.nextUrl());\r\n this.manageState();\r\n e.preventDefault();\r\n };\r\n\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n\r\n nextUrl(resetPage = false) {\r\n if (resetPage) {\r\n this.page = 1;\r\n }\r\n let nextUrl = `?types=${this.publicationTypes.join('|')}&subjects=${this.subjects.join('|')}&page=${this.page}`;\r\n if (this.dates) {\r\n nextUrl += `&dates=${this.dates.join('|')}`;\r\n }\r\n return nextUrl;\r\n }\r\n}\r\n","export default class Dropdown {\r\n constructor(element) {\r\n this.el = element;\r\n this.select = null;\r\n this.list = null;\r\n this.optionHtml = null;\r\n this.label = null;\r\n this.labelText = null;\r\n this.labelArray = [];\r\n this.init();\r\n }\r\n\r\n init() {\r\n // hide actual select\r\n this.select = this.el.querySelector('select');\r\n this.list = this.el.querySelector('.dropdown-list');\r\n this.select.classList.add('hidden');\r\n this.label = this.el.querySelector('.dropdown-label');\r\n this.labelText = this.label.innerText;\r\n this.optionHtml = this.list.querySelector('li');\r\n this.optionHtml.parentElement.removeChild(this.optionHtml);\r\n this.isMultiple = this.select.multiple;\r\n // initialise the dropdown if it's filled through dom manipulation\r\n const observer = new MutationObserver( () => {\r\n this.observe();\r\n });\r\n observer.observe(this.select, { attributes: true, childList: true, subtree: true });\r\n\r\n // initialise the dropdown if it's filled serverside\r\n if (this.el.getAttribute('data-dropdown') && this.el.getAttribute('data-dropdown') === 'server-side') {\r\n const val = this.el.getAttribute('data-value');\r\n if (val && val != '') {\r\n const option = this.select.querySelector('option[value=\"' + val + '\"]');\r\n option.selected = true;\r\n }\r\n this.observe();\r\n }\r\n\r\n this.el.addEventListener('click', () => {\r\n const container = this.el.querySelector('.dropdown-container');\r\n\r\n container.classList.toggle('hidden');\r\n\r\n if (!container.classList.contains('hidden')) {\r\n this.el.querySelector('.dropdown-chevron').style.transform = 'rotate(180deg)';\r\n container.style.height = `${container.scrollHeight}px`;\r\n\r\n setTimeout(() => {\r\n document.addEventListener('click', e => {\r\n if (!e.target.closest('.dropdown')) {\r\n document.querySelectorAll('.dropdown-container').forEach(d => d.classList.add('hidden'));\r\n document.querySelectorAll('.dropdown-chevron').forEach(d => d.style.transform = 'rotate(0deg)');\r\n }\r\n }, {once: true});\r\n },50);\r\n }\r\n else {\r\n this.el.querySelector('.dropdown-chevron').style.transform = 'rotate(0deg)';\r\n container.style.height = 0;\r\n }\r\n });\r\n }\r\n\r\n observe() {\r\n this.manageState();\r\n this.select = this.el.querySelector('select');\r\n this.select.addEventListener('change', () => this.manageState());\r\n }\r\n\r\n manageState() {\r\n this.list.innerHTML = '';\r\n this.labelArray = [];\r\n this.select.querySelectorAll('option:not([value=\"\"])').forEach(element => {\r\n\r\n const listItem = this.optionHtml.cloneNode(true);\r\n\r\n listItem.querySelector('span').innerText = element.innerText;\r\n\r\n this.list.appendChild(listItem);\r\n\r\n listItem.setAttribute('data-value', element.value);\r\n\r\n const checkbox = listItem.querySelector('input[type=\"checkbox\"]');\r\n\r\n checkbox.checked = element.selected;\r\n if (checkbox.checked) this.labelArray.push(element.innerText);\r\n listItem.addEventListener('click',e => {\r\n const value = e.target.closest('li').getAttribute('data-value');\r\n\r\n if (value) {\r\n if (!this.isMultiple) {\r\n Array.from(this.select.querySelector('option')).forEach(o => o.selected = false);\r\n }\r\n const option = this.select.querySelector(`option[value=\"${value}\"]`);\r\n option.selected = !option.selected;\r\n }\r\n this.select.dispatchEvent(new Event('change'));\r\n e.stopPropagation();\r\n e.preventDefault();\r\n });\r\n });\r\n\r\n if (this.labelArray.length) this.label.innerText = this.labelArray.join(', ');\r\n else this.label.innerText = this.labelText;\r\n }\r\n}\r\n","export default class DropdownTree {\r\n constructor(element) {\r\n this.el = element;\r\n this.select = null;\r\n this.list = null;\r\n this.optionHtml = null;\r\n this.label = null;\r\n this.labelText = null;\r\n this.labelArray = [];\r\n this.rootNodes = null;\r\n this.openedChevronIds = [];\r\n this.init();\r\n }\r\n \r\n init() {\r\n this.listContainer = this.el.querySelector('.checkbox-list-container');\r\n this.dropdownContainer = this.el.querySelector('.dropdown-container');\r\n this.label = this.el.querySelector('.dropdown-label');\r\n this.labelText = this.label.innerText;\r\n this.itemHtml = this.listContainer.querySelector('.checkbox-list-item');\r\n this.itemHtml.parentElement.removeChild(this.itemHtml);\r\n this.listHtml = this.listContainer.querySelector('.dropdown-list');\r\n this.listHtml.parentElement.removeChild(this.listHtml);\r\n this.el.Update = this.UpdateUiTree;\r\n\r\n this.el.addEventListener('click', () => {\r\n const container = this.el.querySelector('.dropdown-container');\r\n \r\n container.classList.toggle('hidden');\r\n container.style.height = `${this.listContainer.offsetHeight}px`; \r\n if (!container.classList.contains('hidden')) {\r\n this.el.querySelector('.dropdown-chevron').style.transform = 'rotate(180deg)';\r\n setTimeout(() => {\r\n document.addEventListener('click', e => {\r\n if (!e.target.closest('.dropdown')) {\r\n document.querySelectorAll('.dropdown-container').forEach(d => d.classList.add('hidden'));\r\n document.querySelectorAll('.dropdown-chevron').forEach(d => d.style.transform = 'rotate(0deg)');\r\n }\r\n }, {once: true});\r\n },50);\r\n }\r\n else {\r\n this.el.querySelector('.dropdown-chevron').style.transform = 'rotate(0deg)';\r\n container.style.height = 0;\r\n }\r\n });\r\n\r\n this.el.Update = (nodeList, selectedValues, changedHandler) => {\r\n this.rootNodes = nodeList;\r\n this.listContainer.innerHTML = '';\r\n this.CreateList(nodeList, selectedValues, this.listContainer, this.listHtml, this.itemHtml, this.rootNodes, changedHandler, false, 1);\r\n this.SetIndeterminateCheckStateForNodeList(nodeList);\r\n this.OpenChevronsForSelected(nodeList);\r\n const container = this.el.querySelector('.dropdown-container');\r\n container.style.height = `${this.listContainer.offsetHeight}px`; \r\n }\r\n }\r\n\r\n\r\n CreateList(nodeList, selectedValues, parentContainer, listTemplate, itemTemplate, rootNodes, changedHandler, ancestorSelected, currentDepth){\r\n const newList = listTemplate.cloneNode(true);\r\n if(currentDepth > 1){\r\n newList.setAttribute(\"style\", \"padding-left:20px;\");\r\n newList.classList.add(\"hidden\");\r\n }\r\n parentContainer.appendChild(newList);\r\n nodeList.forEach((node) => {\r\n this.CreateListItem(node, selectedValues, newList, listTemplate, itemTemplate, rootNodes, changedHandler, ancestorSelected, currentDepth);\r\n });\r\n return newList;\r\n }\r\n\r\n CreateListItem(node, selectedValues, parentContainer, listTemplate, itemTemplate, rootNodes, changedHandler, ancestorSelected, currentDepth){\r\n const newListItem = itemTemplate.cloneNode(true);\r\n parentContainer.appendChild(newListItem);\r\n\r\n let headlineSpan = newListItem.querySelector('span');\r\n headlineSpan.innerText = node.Headline;\r\n\r\n let chevron = newListItem.querySelector(\".nestedChevron\");\r\n\r\n const checkbox = newListItem.querySelector('input[type=\"checkbox\"]');\r\n checkbox.type = 'checkbox';\r\n if (!node.Id) node.Id = node.Name; // Fix for years not having an ID attached.\r\n checkbox.setAttribute('data-id', node.Id);\r\n node.checkbox = checkbox;\r\n if(ancestorSelected || selectedValues.includes(node.Id)){\r\n checkbox.checked = true;\r\n } else {\r\n //console.log(newListItem);\r\n }\r\n\r\n checkbox.addEventListener('click', (event) => {\r\n let clickedNodeId = event.target.getAttribute('data-id');\r\n let clickedNode = this.FindNodeInListRecursively(clickedNodeId, rootNodes);\r\n this.CheckboxClicked(rootNodes, changedHandler, clickedNode);\r\n event.stopPropagation();\r\n return false;\r\n });\r\n\r\n headlineSpan.addEventListener('click', (event => {\r\n event.stopPropagation();\r\n return false;\r\n }));\r\n if(node.Children.length > 0){\r\n let firstChrevron = newListItem.querySelector('.nestedChevron');\r\n firstChrevron.classList.remove('hidden');\r\n firstChrevron.addEventListener('click', (event) => {\r\n event.stopPropagation();\r\n const container = this.el.querySelector('.dropdown-container');\r\n if ((event.target.style.transform == 'rotate(0deg)' || !event.target.style.transform)) {\r\n firstChrevron.style.transform = 'rotate(180deg)';\r\n }\r\n else if (event.target.style.transform == 'rotate(180deg)') {\r\n firstChrevron.style.transform = '';\r\n }\r\n event.target.closest('li').querySelector('ul').classList.toggle('hidden');\r\n container.style.height = `${this.listContainer.offsetHeight}px`;\r\n\r\n })\r\n let nodeChildList = this.CreateList(node.Children, selectedValues, newListItem, listTemplate, itemTemplate, rootNodes, changedHandler, checkbox.checked, currentDepth+1);\r\n node.childList = nodeChildList;\r\n }\r\n }\r\n\r\n FindNodeInListRecursively(nodeId, nodeList)\r\n {\r\n let result = null;\r\n nodeList.forEach((node)=>{\r\n if(result == null){\r\n result = this.FindNodeInSubtreeRecursively(nodeId, node);\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n FindNodeInSubtreeRecursively(nodeId, currentNode){ \r\n if(currentNode.Id == nodeId){\r\n return currentNode;\r\n }\r\n\r\n if(currentNode.Children.length > 0){\r\n return this.FindNodeInListRecursively(nodeId, currentNode.Children);\r\n }\r\n return null;\r\n }\r\n\r\n CheckboxClicked(rootNodes, changedHandler, clickedNode){\r\n let selectedIds = [];\r\n if(!clickedNode.checkbox.checked){\r\n this.UncheckAncestors(rootNodes, clickedNode.Id);\r\n this.UncheckDescendants(rootNodes, clickedNode.Id);\r\n } \r\n this.GetSelectedIdsRecursively(rootNodes, selectedIds);\r\n this.openedChevronIds = this.GetOpenedChevrons(rootNodes);\r\n changedHandler(selectedIds);\r\n }\r\n\r\n GetSelectedIdsRecursively(nodeList, resultList){\r\n nodeList.forEach((node) => {\r\n if(node.checkbox.checked){\r\n resultList.push(node.checkbox.getAttribute('data-id'));\r\n }\r\n else if(node.Children.length > 0)\r\n {\r\n this.GetSelectedIdsRecursively(node.Children, resultList);\r\n }\r\n }); \r\n\r\n }\r\n\r\n OpenChevronsForSelected(nodeList){\r\n let allNodes = new Array();\r\n this.GetAllNodesRecursively(nodeList, allNodes);\r\n // console.log(this.openedChevronIds);\r\n allNodes.forEach((node)=>{\r\n if(node.childList && (this.openedChevronIds.includes(node.Id) || node.subtreeState == 'AllChecked' || node.subtreeState == 'SomeChecked')){\r\n // console.log(\"Remove hidden for\");\r\n // console.log(node);\r\n let chevron = node.checkbox.parentElement.parentElement.querySelector(\".nestedChevron\");\r\n if (!chevron.classList.contains(\"hidden\")) {\r\n chevron.style.transform = \"rotate(180deg)\";\r\n }\r\n node.childList.classList.remove('hidden'); \r\n }\r\n }); \r\n }\r\n\r\n GetOpenedChevrons(nodeList){\r\n let resultList = new Array();\r\n let allNodes = new Array();\r\n this.GetAllNodesRecursively(nodeList, allNodes);\r\n allNodes.forEach((node)=>{\r\n if(node.childList && !node.childList.classList.contains('hidden')){\r\n resultList.push(node.Id);\r\n }\r\n });\r\n\r\n return resultList;\r\n }\r\n\r\n GetAllNodesRecursively(nodeList, resultList){\r\n nodeList.forEach((node) => {\r\n resultList.push(node);\r\n if(node.Children.length > 0)\r\n {\r\n this.GetAllNodesRecursively(node.Children, resultList);\r\n }\r\n });\r\n }\r\n\r\n UncheckAncestors(rootNodes, nodeIdToFind){\r\n let ancestorList = new Array();\r\n //console.log('uncheck ancestors: ' + nodeIdToFind);\r\n\r\n if(this.GetAncestorsRecursivelyFromList(rootNodes, nodeIdToFind, ancestorList)){\r\n //console.log(ancestorList);\r\n ancestorList.forEach((node)=>{\r\n node.checkbox.checked = false;\r\n });\r\n }\r\n }\r\n\r\n UncheckDescendants(rootNodes, nodeIdToFind){\r\n let descendantList = new Array();\r\n //console.log('uncheck descendants: ' + nodeIdToFind);\r\n\r\n if(this.GetDescendantsRecursiveleyFromList(rootNodes, nodeIdToFind, descendantList, false)){\r\n // console.log(descendantList);\r\n descendantList.forEach((node)=>{\r\n node.checkbox.checked = false;\r\n });\r\n } \r\n }\r\n\r\n GetAncestorsRecursivelyFromList(rootNodes, nodeIdToFind, ancestorList){\r\n let found = false;\r\n rootNodes.forEach((node) => {\r\n if(found == false){\r\n found = this.GetAncestorsRecursivelyFromSubtree(node, nodeIdToFind, ancestorList);\r\n }\r\n });\r\n\r\n return found;\r\n }\r\n\r\n GetAncestorsRecursivelyFromSubtree(rootNode, nodeIdToFind, ancestorList){\r\n if(rootNode.Id == nodeIdToFind){\r\n return true;\r\n }\r\n \r\n if(rootNode.Children.length > 0){\r\n if(this.GetAncestorsRecursivelyFromList(rootNode.Children, nodeIdToFind, ancestorList)){\r\n ancestorList.push(rootNode);\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n GetDescendantsRecursiveleyFromList(rootNodes, nodeIdToFind, descendantList, isDescendant){\r\n let found = false;\r\n rootNodes.forEach((node) => {\r\n if(this.GetDescendantsRecursiveleyFromSubtree(node, nodeIdToFind, descendantList, isDescendant)){\r\n found = true;\r\n }\r\n });\r\n\r\n return found;\r\n }\r\n\r\n GetDescendantsRecursiveleyFromSubtree(rootNode, nodeIdToFind, descendantList, isDescendant){\r\n if(isDescendant){\r\n descendantList.push(rootNode);\r\n } \r\n let found = isDescendant || rootNode.Id == nodeIdToFind;\r\n\r\n if(rootNode.Children.length > 0){\r\n found = this.GetDescendantsRecursiveleyFromList(rootNode.Children, nodeIdToFind, descendantList, found)\r\n }\r\n\r\n //console.log(rootNode.Headline + ' - IsDescendant: [' + isDescendant + '] - found ['+found+']')\r\n return found;\r\n }\r\n\r\n // Returns either 'AllChecked\", \"SomeChecked\", \"NoChecked\"\r\n SetIndeterminateCheckStateForNodeList(nodeList){\r\n let state = '';\r\n nodeList.forEach((node) => {\r\n let subtreeState = this.SetIndeterminateCheckStateForSubtree(node);\r\n //console.log('NodeList ' + node.Headline + 'before[subtree ' + subtreeState + '], [state' + state + ']');\r\n //console.log(node.Headline + \"[\" + subtreeState + \"]\");\r\n if(state == ''){\r\n state = subtreeState;\r\n }\r\n else if(state != subtreeState) {\r\n state = 'SomeChecked';\r\n }\r\n });\r\n\r\n //console.log('NodeList after-and-returning[' + state + ']');\r\n\r\n return state;\r\n }\r\n\r\n // Returns either 'AllChecked\", \"SomeChecked\", \"NoChecked\"\r\n SetIndeterminateCheckStateForSubtree(subtreeRootNode){\r\n //console.log(subtreeRootNode.Headline + \" IndeterminateForSubtreeStart\");\r\n let state = '';\r\n if(subtreeRootNode.Children.length > 0){\r\n state = this.SetIndeterminateCheckStateForNodeList(subtreeRootNode.Children);\r\n //console.log('Subtree ' + subtreeRootNode.Headline + \" - DescendantsState [\" + state + \"]\");\r\n if(state == 'AllChecked'){\r\n subtreeRootNode.checkbox.checked = true;\r\n subtreeRootNode.subtreeState = state;\r\n //console.log('Subtree Returning - ' + state + ' All');\r\n return state;\r\n }\r\n else if(state == 'SomeChecked'){\r\n subtreeRootNode.checkbox.indeterminate = true;\r\n subtreeRootNode.subtreeState = state;\r\n //console.log('setting indeterminate on :' + subtreeRootNode.Headline);\r\n //console.log('Subtree Returning - ' + state + ' SOME');\r\n return state;\r\n }\r\n \r\n //console.log('SubTree Returning NoChecked - ' + state + ' (not some or all)');\r\n subtreeRootNode.subtreeState = 'NoChecked';\r\n return 'NoChecked';\r\n }\r\n \r\n if(subtreeRootNode.checkbox.checked){\r\n //console.log('Subtree ' + subtreeRootNode.Headline + \" Returning AllChecked\");\r\n subtreeRootNode.subtreeState = 'AllChecked';\r\n return 'AllChecked';\r\n }\r\n\r\n //console.log('Subtree ' + subtreeRootNode.Headline + \" Returning NoChecked\");\r\n subtreeRootNode.subtreeState = 'NoChecked';\r\n return \"NoChecked\";\r\n }\r\n }\r\n ","import Litepicker from 'litepicker';\r\nimport { format } from 'date-fns';\r\n\r\nexport default class Dropdown {\r\n constructor(element) {\r\n this.el = element;\r\n this.picker = null;\r\n this.pickerElement = null;\r\n this.init();\r\n this.width = 0;\r\n this.open = false;\r\n this.dictionary = {};\r\n }\r\n\r\n init() {\r\n this.pickerElement = this.el.querySelector('.litepicker-input');\r\n this.dictionary = {\r\n day: this.pickerElement.getAttribute('data-dictionary-day'),\r\n days: this.pickerElement.getAttribute('data-dictionary-days'),\r\n };\r\n\r\n this.pickerElement.style.display = 'none';\r\n\r\n this.picker = new Litepicker({\r\n element: this.pickerElement,\r\n //parentEl: this.el.querySelector('.litepicker-div'),\r\n singleMode: false,\r\n lang: 'da',\r\n tooltipText: {\r\n one: this.dictionary.day,\r\n other: this.dictionary.days,\r\n },\r\n dropdowns: {'minYear':1990,'maxYear':null,'months':true,'years':true},\r\n resetButton: true,\r\n setup: (picker) => {\r\n picker.on('selected', (date1, date2) => {\r\n this.el.querySelector('.datepicker-label').innerHTML= `${format(date1.dateInstance, 'dd.MM.yy')} → ${format(date2.dateInstance, 'dd.MM.yy')}`;\r\n this.pickerElement.dispatchEvent(new Event('datepick'));\r\n\r\n });\r\n picker.on('clear:selection', () => {\r\n this.el.querySelector('.datepicker-label').innerText = this.el.querySelector('.datepicker-label').getAttribute('data-text');\r\n this.pickerElement.dispatchEvent(new Event('datepick'));\r\n });\r\n picker.on('hide', () => {\r\n this.open = false;\r\n this.el.querySelector('.datepicker-chevron').style.transform = 'rotate(0deg)';\r\n });\r\n picker.on('change:month', () => {\r\n const p = document.querySelector('.litepicker');\r\n this.manageState(p);\r\n });\r\n picker.on('change:year', () => {\r\n const p = document.querySelector('.litepicker');\r\n this.manageState(p);\r\n });\r\n },\r\n });\r\n this.el.addEventListener('click', (e) => {\r\n if (!e.target.classList.contains('datepicker')) return;\r\n this.el.querySelector('.datepicker-chevron').style.transform = 'rotate(180deg)';\r\n const p = document.querySelector('.litepicker');\r\n p.classList.toggle('open');\r\n if (p.classList.contains('open')) {\r\n this.picker.show();\r\n\r\n const rect = e.target.getBoundingClientRect();\r\n p.style.top = (rect.top-20) + rect.height+'px';\r\n p.style.left = rect.left+'px';\r\n const initialHeight = p.getBoundingClientRect().height;\r\n\r\n p.style.height = 0;\r\n p.style.overflow = 'hidden';\r\n p.classList.add('transition-all');\r\n setTimeout(() => {\r\n p.style.height = initialHeight+'px';\r\n },50);\r\n this.width = rect.width;\r\n this.manageState(p);\r\n\r\n }\r\n else {\r\n this.picker.hide();\r\n this.el.querySelector('.datepicker-chevron').style.transform = 'rotate(0deg)';\r\n }\r\n });\r\n\r\n document.querySelector('.litepicker').addEventListener('click', () => {\r\n const p = document.querySelector('.litepicker');\r\n this.manageState(p);\r\n });\r\n\r\n const search = window.location.search;\r\n const params = new URLSearchParams(search);\r\n const paramObj = {};\r\n for (const value of params.keys()) {\r\n paramObj[value] = params.get(value);\r\n }\r\n if (paramObj.from && paramObj.to) {\r\n this.picker.setDateRange(paramObj.from, paramObj.to);\r\n }\r\n }\r\n\r\n manageState(p) {\r\n p.querySelector('.container__months').style.width = this.width+'px';\r\n p.querySelector('.month-item').style.width = this.width+'px';\r\n p.querySelector('.button-previous-month').innerHTML = '←';\r\n p.querySelector('.button-next-month').innerHTML = '→';\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport paginationBuilder from '../../util/paginationBuilder';\r\nimport { getParamsObj, updateBrowserState } from '../../util/browserUtil';\r\n\r\nexport default class EventsList {\r\n constructor(element) {\r\n this.el = element;\r\n this.organizers = [];\r\n this.cities = [];\r\n this.page = 1;\r\n this.organizerPicker = null;\r\n this.cityPicker = null;\r\n this.params = null;\r\n this.tags = '';\r\n this.page = 1;\r\n this.numberOfPages = 100;\r\n this.data = {};\r\n this.eventsItemHtml = null;\r\n this.eventsItems = null;\r\n this.dates = [];\r\n this.init();\r\n }\r\n // manage changes to this.data (change filter states, events etc.)\r\n set _data(value) {\r\n this.data = value;\r\n if (value?.TagCategoryList) {\r\n const organizerTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'Arrangoerer');\r\n const cityTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'Byer');\r\n const dateTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n this.datePicker.Update(dateTags, this.dates, this.datesChangeHandler);\r\n this.organizerPicker.Update(organizerTags, this.organizers, this.organizersChangeHandler);\r\n this.cityPicker.Update(cityTags, this.cities, this.citiesChangeHandler);\r\n\r\n }\r\n this.numberOfPages = value.SearchResult.Paging.PagesToShow.length;\r\n this.loadevents(value.SearchResult.Items);\r\n this.managePagination();\r\n }\r\n init() {\r\n // Element getters\r\n this.organizerPicker = this.el.querySelector('#filterOrganizer');\r\n this.cityPicker = this.el.querySelector('#filterCity');\r\n this.datePicker = this.el.querySelector(\"#filterDates\");\r\n // load reference html and remove from dom\r\n this.eventsItemHtml = this.el.querySelector('#eventsItemPlaceholder');\r\n this.eventsItemHtml.parentElement.removeChild(this.eventsItemHtml);\r\n this.eventsItemHtml.removeAttribute('id');\r\n\r\n this.eventsItems = this.el.querySelector('.eventsItems');\r\n this.manageState();\r\n\r\n this.datesChangeHandler = (selectedDates) => {\r\n this.dates = selectedDates;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n }\r\n this.organizersChangeHandler = (selectedOrganizers) => {\r\n this.organizers = selectedOrganizers;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n }\r\n this.citiesChangeHandler = (selectedCities) => {\r\n this.cities = selectedCities;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n }\r\n\r\n var currentComponent = this;\r\n window.addEventListener('resize', function(event){\r\n currentComponent.onViewportResize(event);\r\n }, true); \r\n }\r\n\r\n loadevents(items) {\r\n this.eventsItems.innerHTML = '';\r\n items.forEach(item => {\r\n const eventsItem = this.eventsItemHtml.cloneNode(true);\r\n console.log(item);\r\n eventsItem.querySelector('.eventsItem__headline').innerText = item.Headline;\r\n eventsItem.querySelector('.eventsItem__text').innerText = item.Description;\r\n eventsItem.querySelector('.eventsItem__url').href = item.Url;\r\n eventsItem.querySelector('.eventsItem_date').innerText = item.EventDateFormatted;\r\n eventsItem.setAttribute('data-id', item.Id);\r\n \r\n if (item.TagCategoryList.Categories?.length) {\r\n const subjectTags = item.TagCategoryList.Categories.find(x => x.Name === 'Emner');\r\n if (subjectTags) {\r\n const eventsSubjects = eventsItem.querySelector('.eventsItem__subject');\r\n eventsSubjects.innerText = subjectTags.Tags.map(s => s.Headline).join(', ');\r\n }\r\n const organizerTags = item.TagCategoryList.Categories.find(x => x.Name === 'Arrangoerer');\r\n if (organizerTags) {\r\n const eventsOrganizer = eventsItem.querySelector('.eventsItem__organizer');\r\n eventsOrganizer.innerText = organizerTags.Tags.map(s => s.Headline).join(', ');\r\n }\r\n const cityTags = item.TagCategoryList.Categories.find(x => x.Name === 'Byer');\r\n if (cityTags) {\r\n const eventCities = eventsItem.querySelector('.eventsItem__city');\r\n eventCities.innerText = cityTags.Tags.map(s => s.Headline).join(', ');\r\n }\r\n\r\n }\r\n\r\n \r\n\r\n if (item.ImageUrls?.Items.length) {\r\n const img = item.ImageUrls.Items.find(x => x.Alias == 'List');\r\n if (img) {\r\n eventsItem.querySelector('.eventsItem__image').alt = img.Alt;\r\n }\r\n }\r\n this.eventsItems.appendChild(eventsItem);\r\n this.setImageCrop(item, eventsItem);\r\n });\r\n }\r\n\r\n onViewportResize(event){\r\n if(this.data?.SearchResult){\r\n const domItems = [...document.querySelectorAll('.eventsItem')];\r\n domItems.forEach(domItem => {\r\n var itemId = domItem.getAttribute('data-id');\r\n var dataItem = this.data.SearchResult.Items.find(item => item.Id == itemId);\r\n this.setImageCrop(dataItem, domItem);\r\n });\r\n }\r\n else{\r\n console.log('no data');\r\n }\r\n }\r\n\r\n setImageCrop(dataItem, domItem){\r\n if(dataItem){\r\n if(dataItem.ImageUrls?.Items.length){\r\n // Default\r\n const img = dataItem.ImageUrls.Items.find(x => x.Alias == 'List');\r\n domItem.querySelector('.eventsItem__image').src = img.Url;\r\n\r\n // Adjust according to current offset\r\n if(domItem.offsetWidth < 768){\r\n const imgMedium = dataItem.ImageUrls.Items.find(x => x.Alias == 'Tile');\r\n domItem.querySelector('.eventsItem__image').src = imgMedium.Url; \r\n }\r\n else if(domItem.offsetHeight > 150 && domItem.offsetHeight <= 180){\r\n const imgMedium = dataItem.ImageUrls.Items.find(x => x.Alias == 'ListMedium');\r\n domItem.querySelector('.eventsItem__image').src = imgMedium.Url;\r\n } \r\n else if(domItem.offsetHeight > 180 && domItem.offsetHeight <= 225){\r\n const imgMedium = dataItem.ImageUrls.Items.find(x => x.Alias == 'ListLarge');\r\n domItem.querySelector('.eventsItem__image').src = imgMedium.Url;\r\n }\r\n else if(domItem.offsetHeight > 225){\r\n const imgLarge = dataItem.ImageUrls.Items.find(x => x.Alias == 'Tile');\r\n domItem.querySelector('.eventsItem__image').src = imgLarge.Url;\r\n }\r\n }\r\n else if(domItem.querySelector('.eventsItem__image')){\r\n domItem.querySelector('.eventsItem__image').remove();\r\n }\r\n }\r\n else{\r\n console.log('dataitem is null');\r\n }\r\n }\r\n\r\n manageState() {\r\n this.manageParams();\r\n let url = `${window.location.origin}/api/event/eventListJson?organizers=${this.organizers.join('|')}&cities=${this.cities.join('|')}&dates=${this.dates.join('|')}&page=${this.page}`;\r\n axios.get(url).then(response => {\r\n this._data = response.data;\r\n if (this.data) {\r\n const organizerTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'Arrangoerer');\r\n const cityTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'Byer');\r\n const dateTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n this.datePicker.Update(dateTags, this.dates, this.datesChangeHandler);\r\n this.organizerPicker.Update(organizerTags, this.organizers, this.organizersChangeHandler);\r\n this.cityPicker.Update(cityTags, this.cities, this.citiesChangeHandler);\r\n }\r\n });\r\n }\r\n\r\n manageParams() {\r\n this.params = getParamsObj();\r\n if (this.params.organizers) {\r\n this.organizers = this.params.organizers.split('|');\r\n }\r\n if (this.params.cities) {\r\n this.cities = this.params.cities.split('|');\r\n }\r\n if (this.params.page) {\r\n this.page = parseInt(this.params.page);\r\n }\r\n if (this.params.dates) {\r\n this.dates = this.params.dates.split('|');\r\n }\r\n }\r\n\r\n managePagination() {\r\n if (this.numberOfPages == 1) {\r\n if (this.el.querySelector('.pagination'))\r\n this.el.querySelector('.pagination').classList.add('hidden');\r\n return;\r\n }\r\n this.el.querySelector('.pagination').classList.remove('hidden');\r\n const callback = e => {\r\n const value = e.target.closest('a[data-value]').getAttribute('data-value');\r\n if (value) {\r\n if (value == 'prev') this.page--;\r\n else if (value == 'next') this.page++;\r\n else this.page = parseInt(value)+1;\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n updateBrowserState(this.nextUrl());\r\n this.manageState();\r\n e.preventDefault();\r\n };\r\n\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n\r\n nextUrl(resetPage = false) {\r\n if (resetPage) {\r\n this.page = 1;\r\n }\r\n let nextUrl = `?organizers=${this.organizers.join('|')}&cities=${this.cities.join('|')}&page=${this.page}`;\r\n if (this.dates) {\r\n nextUrl += `&dates=${this.dates.join('|')}`;\r\n }\r\n return nextUrl;\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport paginationBuilder from '../../util/paginationBuilder';\r\nimport { format } from 'date-fns';\r\nimport { getParamsObj, updateBrowserState, setSelectOptions } from '../../util/browserUtil';\r\n\r\nexport default class CalendarArchive {\r\n constructor(element) {\r\n this.el = element;\r\n this.organizerTags = [];\r\n this.page = 1;\r\n this.organizerPicker = null;\r\n this.params = null;\r\n this.tags = '';\r\n this.page = 1;\r\n this.numberOfPages = 1;\r\n this.pageSize = 50;\r\n this.data = {};\r\n this.calendarItemHtml = null;\r\n this.calendarItems = null;\r\n this.contextitem = '';\r\n this.subjects = [];\r\n this.subjectPicker = null;\r\n this.dates = [];\r\n this.datePicker = null;\r\n this.init();\r\n }\r\n // manage changes to this.data (change filter states, calendar etc.)\r\n set _data(value) {\r\n this.data = value;\r\n if (value?.Tags) \r\n {\r\n const organizerTags = value.Tags.Nodes.filter(x => x.RootAlias === 'Arrangoerer');\r\n const dateTags = value.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n const subjectTags = value.Tags.Nodes.filter(x => x.RootAlias === 'Emner');\r\n this.subjectPicker.Update(subjectTags, this.subjects, this.subjectsChangedHandler);\r\n this.organizerPicker.Update(organizerTags, this.organizerTags, this.organizerChangedHandler);\r\n this.datePicker.Update(dateTags, this.dates, this.datesChangedHandler);\r\n }\r\n this.numberOfPages = this.data.SearchResult.Paging.PagesToShow.length;\r\n this.loadcalendar(value.SearchResult.Items);\r\n this.managePagination();\r\n }\r\n init() {\r\n // Element getters\r\n this.organizerPicker = this.el.querySelector('#filterOrganizer');\r\n this.subjectPicker = this.el.querySelector('#filterSubject');\r\n this.datePicker = this.el.querySelector('#filterDates');\r\n this.contextitem = this.el.getAttribute('data-contextitem');\r\n\r\n // load reference html and remove from dom\r\n this.calendarItemHtml = this.el.querySelector('#calendarItemPlaceholder');\r\n this.calendarItemHtml.parentElement.removeChild(this.calendarItemHtml);\r\n this.calendarItemHtml.removeAttribute('id');\r\n\r\n this.calendarItems = this.el.querySelector('.calendarItems');\r\n this.manageState();\r\n\r\n // Event listeners\r\n\r\n\r\n\r\n var currentComponent = this;\r\n window.addEventListener('resize', function(event){\r\n currentComponent.onViewportResize(event);\r\n }, true);\r\n \r\n this.organizerChangedHandler = (selectedOrganizers)=> {\r\n this.organizerTags = selectedOrganizers;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n };\r\n this.datesChangedHandler = (selectedDates) => {\r\n this.dates = selectedDates;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n }\r\n this.subjectsChangedHandler = (selectedSubjects)=> {\r\n this.subjects = selectedSubjects;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n }; \r\n }\r\n nextUrl(resetPage = false) {\r\n if (resetPage) {\r\n this.page = 1;\r\n }\r\n let nextUrl = `?organizers=${this.organizerTags.join('|')}&subjects=${this.subjects.join('|')}&dates=${this.dates.join('|')}&page=${this.page}&contextitem=${this.contextitem}&psize=${this.pageSize}`;\r\n\r\n return nextUrl;\r\n }\r\n loadcalendar(items) {\r\n this.calendarItems.innerHTML = '';\r\n items.forEach(item => {\r\n const calendarItem = this.calendarItemHtml.cloneNode(true);\r\n calendarItem.querySelector('.calendarItem__headline').innerText = item.Headline;\r\n calendarItem.querySelector('.calendarItem__text').innerText = item.Description;\r\n calendarItem.setAttribute('data-id', item.Id);\r\n calendarItem.querySelector('.calendarItem__url').href = item.Url;\r\n if (item.TagCategoryList.Categories?.length) {\r\n const subjectTags = item.TagCategoryList.Categories.find(x => x.Name === 'Emner');\r\n if (subjectTags) {\r\n const calendarSubjects = calendarItem.querySelector('.calendarItem__subject');\r\n calendarSubjects.innerText = subjectTags.Tags.map(s => s.Headline).join(', ');\r\n }\r\n const organizerTags = item.TagCategoryList.Categories.find(x => x.Name === 'Arrangoerer');\r\n if (organizerTags) {\r\n const calendarOrganizer = calendarItem.querySelector('.calendarItem__organizer');\r\n calendarOrganizer.innerText = organizerTags.Tags.map(s => s.Headline).join(', ');\r\n }\r\n }\r\n\r\n calendarItem.querySelector('.calendarItem__place').innerText = item.Place;\r\n calendarItem.querySelector('.calendarItem__date').innerText = item.FormattedDateRange;\r\n this.calendarItems.appendChild(calendarItem);\r\n this.setImageCrop(item, calendarItem);\r\n });\r\n }\r\n\r\n onViewportResize(event){\r\n if(this.data?.SearchResult){\r\n const domItems = [...document.querySelectorAll('.calendarItem')];\r\n domItems.forEach(domItem => {\r\n var itemId = domItem.getAttribute('data-id');\r\n var dataItem = this.data.SearchResult.Items.find(item => item.Id == itemId);\r\n this.setImageCrop(dataItem, domItem);\r\n });\r\n }\r\n else{\r\n console.log('no data');\r\n }\r\n }\r\n\r\n setImageCrop(dataItem, domItem){\r\n if(dataItem){\r\n if(dataItem.ImageUrls?.Items.length){\r\n // Default\r\n const img = dataItem.ImageUrls.Items.find(x => x.Alias == 'List');\r\n domItem.querySelector('.calendarItem__image').src = img.Url;\r\n\r\n // Adjust according to current offset\r\n if(domItem.offsetWidth < 768){\r\n const imgMedium = dataItem.ImageUrls.Items.find(x => x.Alias == 'Tile');\r\n domItem.querySelector('.calendarItem__image').src = imgMedium.Url; \r\n }\r\n else if(domItem.offsetHeight > 150 && domItem.offsetHeight <= 180){\r\n const imgMedium = dataItem.ImageUrls.Items.find(x => x.Alias == 'ListMedium');\r\n domItem.querySelector('.calendarItem__image').src = imgMedium.Url;\r\n } \r\n else if(domItem.offsetHeight > 180 && domItem.offsetHeight <= 225){\r\n const imgMedium = dataItem.ImageUrls.Items.find(x => x.Alias == 'ListLarge');\r\n domItem.querySelector('.calendarItem__image').src = imgMedium.Url;\r\n }\r\n else if(domItem.offsetHeight > 225){\r\n const imgLarge = dataItem.ImageUrls.Items.find(x => x.Alias == 'Tile');\r\n domItem.querySelector('.calendarItem__image').src = imgLarge.Url;\r\n }\r\n }\r\n else if(domItem.querySelector('.calendarItem__image')){\r\n domItem.querySelector('.calendarItem__image').remove();\r\n }\r\n }\r\n else{\r\n console.log('dataitem is null');\r\n }\r\n }\r\n\r\n\r\n manageState() {\r\n this.manageParams();\r\n let url = `${window.location.origin}/api/CalendarComponent/CalendarArchiveJson?organizers=${this.organizerTags.join('|')}&subjects=${this.subjects.join('|')}&dates=${this.dates.join('|')}&page=${this.page}&contextitem=${this.contextitem}&psize=${this.pageSize}`;\r\n\r\n axios.get(url).then(response => {\r\n this._data = response.data;\r\n if (this.data) {\r\n const organizerTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'Arrangoerer');\r\n const dateTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n const subjectTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'Emner');\r\n this.subjectPicker.Update(subjectTags, this.subjects, this.subjectsChangedHandler);\r\n this.organizerPicker.Update(organizerTags, this.organizerTags, this.organizerChangedHandler);\r\n this.datePicker.Update(dateTags, this.dates, this.datesChangedHandler);\r\n }\r\n });\r\n }\r\n\r\n manageParams() {\r\n this.params = getParamsObj();\r\n if (this.params.organizers) {\r\n this.organizerTags = this.params.organizers.split('|');\r\n }\r\n if (this.params.subjects) {\r\n this.subjects = this.params.subjects.split('|');\r\n }\r\n if (this.params.page) {\r\n this.page = parseInt(this.params.page);\r\n }\r\n if (this.params.dates) {\r\n this.dates = this.params.dates.split('|');\r\n }\r\n }\r\n\r\n managePagination() {\r\n if (this.numberOfPages == 1) {\r\n if (this.el.querySelector('.pagination'))\r\n this.el.querySelector('.pagination').classList.add('hidden');\r\n return;\r\n }\r\n this.el.querySelector('.pagination').classList.remove('hidden');\r\n const callback = e => {\r\n const value = e.target.closest('a[data-value]').getAttribute('data-value');\r\n if (value) {\r\n if (value == 'prev') this.page--;\r\n else if (value == 'next') this.page++;\r\n else this.page = parseInt(value)+1;\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n updateBrowserState(this.nextUrl());\r\n this.manageState();\r\n e.preventDefault();\r\n };\r\n\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n}\r\n","import { getParamsObj, updateBrowserState } from '../../util/browserUtil';\r\nexport default class ContactTree {\r\n constructor(element) {\r\n this.el = element;\r\n this.departementPicker = null;\r\n this.areaPicker = null;\r\n this.subjects = [];\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.departementPicker = this.el.querySelector('#filterDepartement');\r\n this.areaPicker = this.el.querySelector('#filterArea');\r\n\r\n this.departementPicker.addEventListener('change', (event) => {\r\n event.target.querySelectorAll('option').forEach(f => {\r\n this.subjects = this.subjects.filter(x => x != f.value);\r\n });\r\n this.filter(Array.from(event.target.selectedOptions).filter(x => x.value).map(x => x.value), null);\r\n });\r\n\r\n this.areaPicker.addEventListener('change', (event) => {\r\n event.target.querySelectorAll('option').forEach(f => {\r\n this.subjects = this.subjects.filter(x => x != f.value);\r\n });\r\n this.filter(null,Array.from(event.target.selectedOptions).filter(x => x.value).map(x => x.value));\r\n });\r\n\r\n this.el.querySelectorAll('.contact-area-toggler').forEach((item) => {\r\n item.addEventListener('click', () => {\r\n item.querySelector('.svg-interaction__chevron').classList.toggle('rotate-180');\r\n const toggleId = item.getAttribute('data-area-id');\r\n this.toggleElement(document.querySelector('ul[data-area-id=\"' + toggleId +'\"]'));\r\n });\r\n });\r\n\r\n if (getParamsObj()?.tags) {\r\n this.subjects = Array.from(getParamsObj()?.tags.split('|'));\r\n }\r\n }\r\n\r\n toggleElement(element) {\r\n if (element.style.display === 'none' || element.style.display === '') {\r\n element.style.display = 'block';\r\n }\r\n else {\r\n element.style.display = 'none';\r\n }\r\n }\r\n\r\n filter(department, area) {\r\n\r\n if (department?.length || area?.length) {\r\n this.el.querySelectorAll('.calendararchive__line').forEach(line => {\r\n line.classList.add('hidden');\r\n\r\n if (line.querySelector('.contact-area-target')) {\r\n line.querySelector('.contact-area-target').style.display = 'none';\r\n line.querySelector('.svg-interaction__chevron').classList.remove('rotate-180');\r\n }\r\n\r\n if (department?.length && line.getAttribute('data-department') === department[0]) {\r\n line.classList.remove('hidden');\r\n }\r\n\r\n if (area?.length && line.getAttribute('data-areas').includes(area[0])) {\r\n line.classList.remove('hidden');\r\n line.querySelector('.contact-area-toggler').click();\r\n }\r\n });\r\n\r\n if (department) {\r\n this.subjects = this.subjects.concat(department);\r\n }\r\n if (area) {\r\n this.subjects = this.subjects.concat(area);\r\n }\r\n }\r\n else {\r\n this.el.querySelectorAll('.calendararchive__line').forEach(line => {\r\n line.classList.remove('hidden');\r\n this.subject = [];\r\n updateBrowserState(`?tags=${this.subjects.join('|')}`);\r\n });\r\n }\r\n }\r\n\r\n SetSelectOptions(element, values, value) {\r\n //set selected from state\r\n if (value) {\r\n if (Array.isArray(value)) {\r\n value.forEach(v => {\r\n element.querySelector(`option[value=\"${v}\"]`).selected = true;\r\n });\r\n }\r\n else element.querySelector(`option[value=\"${value}\"]`).selected = true;\r\n }\r\n\r\n }\r\n}","export default class FWSlider {\r\n constructor(element) {\r\n this.el = element;\r\n this.touchstartX = 0;\r\n this.touchendX = 0;\r\n this.slides = [...this.el.querySelectorAll('.fwSlider__slide')];\r\n this.slideWidth = 0;\r\n this.activeSlides = [];\r\n this.transition = 'all ease 0.4s';\r\n this.direction = 'left';\r\n this.parent = this.el.parentNode;\r\n this.buttons = this.parent.querySelector('.fwSlider__buttons');\r\n this.transitioning = false;\r\n this.slideSpeed = 400;\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.slides.length < 3) {\r\n this.abortInitAndMakeToImage();\r\n return;\r\n }\r\n\r\n this.initSlides();\r\n this.buildSlider();\r\n this.centerSlide();\r\n\r\n // less invasive than window.addEventListener('resize')\r\n new ResizeObserver(() => {\r\n this.slideWidth = this.el.querySelector('.fwSlider__slide').getBoundingClientRect().width;\r\n this.el.style.left = -18+((this.clientWidth()-this.slideWidth)/2)+(-this.slideWidth*2) +'px';\r\n\r\n this.setButtons(this.el.querySelectorAll('.fwSlider__slide')[2]);\r\n }).observe(this.el);\r\n\r\n // event handlers\r\n\r\n // reinit slider when a dot is clicked, at correct position\r\n this.parent.querySelectorAll('.fwSlider__buttons__dots a').forEach(a => a.addEventListener('click', e => {\r\n const number = parseInt(e.target.getAttribute('data-number'));\r\n\r\n this.initSlidesFromNumber(number);\r\n this.buildSlider();\r\n this.centerSlide();\r\n }));\r\n\r\n // deal with buttons\r\n this.parent.querySelector('.fwSlider__buttons-next').addEventListener('click', () => this.next());\r\n this.parent.querySelector('.fwSlider__buttons-prev').addEventListener('click', () => this.prev());\r\n // deal with phone slide\r\n this.el.addEventListener('touchstart', e => {\r\n this.touchstartX = e.changedTouches[0].screenX;\r\n });\r\n this.el.addEventListener('touchend', e => {\r\n this.touchendX = e.changedTouches[0].screenX;\r\n if (this.touchendX < this.touchstartX)\r\n this.next();\r\n if (this.touchendX > this.touchstartX)\r\n this.prev();\r\n });\r\n }\r\n\r\n abortInitAndMakeToImage() {\r\n // hide buttons, set fallback class on first slide and remove rest.\r\n this.buttons.style.display = 'none';\r\n\tif(this.slides.length > 0){\r\n\t\tthis.slides[0].classList.add('fallback');\r\n\t} \r\n this.el.classList.add('fallback');\r\n this.slides.forEach(f => {\r\n if (!f.classList.contains('fallback')) f.remove();\r\n });\r\n }\r\n\r\n initSlidesFromNumber(number) {\r\n if (number < 0) number = 0;\r\n\r\n this.activeSlides = [];\r\n this.activeSlides.push(this.slides[number-1 >= 0 ? number-1 : this.slides.length-1].cloneNode(true));\r\n this.activeSlides.push(this.slides[number-1 >= 0 ? number-1 : this.slides.length-1].cloneNode(true));\r\n this.activeSlides.push(this.slides[number].cloneNode(true));\r\n this.activeSlides.push(this.slides[number < this.slides.length-1 ? number +1 : 0].cloneNode(true));\r\n this.activeSlides.push(this.slides[number < this.slides.length-1 ? number +1 : 0].cloneNode(true));\r\n }\r\n\r\n initSlides() {\r\n for (let i = 0; i < this.slides.length; i++) {\r\n this.slides[i].setAttribute('data-number', i);\r\n }\r\n this.activeSlides.push(this.slides[this.slides.length-1].cloneNode(true));\r\n this.activeSlides.push(this.slides[this.slides.length-1].cloneNode(true));\r\n this.activeSlides.push(this.slides[0].cloneNode(true));\r\n this.activeSlides.push(this.slides[1].cloneNode(true));\r\n this.activeSlides.push(this.slides[1].cloneNode(true));\r\n }\r\n\r\n buildSlider() {\r\n const tmp = document.createElement('div');\r\n this.activeSlides.forEach(slide => tmp.append(slide));\r\n\r\n this.el.innerHTML = tmp.innerHTML;\r\n const rect = this.el.querySelectorAll('.fwSlider__slide')[2].getBoundingClientRect();\r\n this.slideWidth = rect.width;\r\n }\r\n\r\n resetSlideState(direction) {\r\n if (direction == 'left') {\r\n this.activeSlides.shift();\r\n this.el.querySelectorAll('.fwSlider__slide')[0].remove();\r\n this.el.style.left = -18+((this.clientWidth()-this.slideWidth)/2)+(-this.slideWidth*2) +'px';\r\n this.el.append(this.el.querySelectorAll('.fwSlider__slide')[3].cloneNode(true));\r\n }\r\n else if (direction == 'right') {\r\n this.activeSlides.pop();\r\n this.el.querySelectorAll('.fwSlider__slide')[4].remove();\r\n this.el.style.left = ((this.clientWidth()-this.slideWidth)/2)+(-this.slideWidth*2) +'px';\r\n this.el.prepend(this.el.querySelectorAll('.fwSlider__slide')[0].cloneNode(true));\r\n }\r\n this.setActiveButton(this.el.querySelector('.fwSlider__slide.focus').getAttribute('data-number'));\r\n this.transitioning = false;\r\n }\r\n\r\n clientWidth() {\r\n return window.innerWidth\r\n || document.documentElement.clientWidth\r\n || document.body.clientWidth;\r\n }\r\n\r\n next() {\r\n if (this.transitioning) return;\r\n // get real slide index\r\n const slideNumber = parseInt(this.el.querySelectorAll('.fwSlider__slide')[2].getAttribute('data-number'));\r\n const isLast = slideNumber == this.slides.length-1;\r\n const isSecondLast = slideNumber == this.slides.length-2;\r\n const nextSlide = !isLast ? slideNumber + 1 : 0;\r\n const rightSlide = isLast ? 1 : isSecondLast ? 0 : nextSlide+1;\r\n\r\n this.activeSlides[4] = this.slides[rightSlide].cloneNode(true);\r\n\r\n this.el.querySelectorAll('.fwSlider__slide')[4].innerHTML = this.activeSlides[4].innerHTML;\r\n this.el.querySelectorAll('.fwSlider__slide')[4].setAttribute('data-number', this.activeSlides[4].getAttribute('data-number'));\r\n this.slideLeft();\r\n }\r\n\r\n slideLeft() {\r\n this.el.style.transition = this.transition;\r\n this.transitioning = true;\r\n this.el.querySelectorAll('.fwSlider__slide').forEach(s => s.classList.remove('focus'));\r\n\r\n const slide = this.el.querySelectorAll('.fwSlider__slide')[3];\r\n\r\n slide.classList.add('focus');\r\n\r\n // math -_- (window width minus half of slider (to insert to center) and then offset with number of slides)\r\n this.el.style.left = -18+((this.clientWidth()-this.slideWidth)/2)+(-this.slideWidth*3) +'px';\r\n\r\n setTimeout(() => {\r\n this.el.style.transition = '';\r\n this.resetSlideState('left');\r\n }, this.slideSpeed);\r\n }\r\n\r\n prev() {\r\n if (this.transitioning) return;\r\n // get real slide index\r\n const slideNumber = parseInt(this.el.querySelectorAll('.fwSlider__slide')[2].getAttribute('data-number'));\r\n const isFirst = slideNumber == 0;\r\n const isLast = slideNumber == this.slides.length-1;\r\n\r\n let leftSlide = isFirst ? this.slides.length-2 : isLast ? this.slides.length-3 : slideNumber - 2;\r\n if (leftSlide < 0) leftSlide = this.slides.length-1;\r\n this.activeSlides[0] = this.slides[leftSlide].cloneNode(true);\r\n\r\n this.el.querySelectorAll('.fwSlider__slide')[0].innerHTML = this.activeSlides[0].innerHTML;\r\n this.el.querySelectorAll('.fwSlider__slide')[0].setAttribute('data-number', this.activeSlides[0].getAttribute('data-number'));\r\n this.slideRight();\r\n }\r\n\r\n slideRight() {\r\n this.el.style.transition = this.transition;\r\n this.transitioning = true;\r\n this.el.querySelectorAll('.fwSlider__slide').forEach(s => s.classList.remove('focus'));\r\n\r\n const slide = this.el.querySelectorAll('.fwSlider__slide')[1];\r\n\r\n slide.classList.add('focus');\r\n\r\n // math -_- (window width minus half of slider (to insert to center) and then offset with number of slides)\r\n this.el.style.left = -18+((this.clientWidth()-this.slideWidth)/2)+(-this.slideWidth) +'px';\r\n\r\n setTimeout(() => {\r\n this.el.style.transition = '';\r\n this.resetSlideState('right');\r\n }, this.slideSpeed);\r\n }\r\n\r\n centerSlide() {\r\n this.el.querySelectorAll('.fwSlider__slide').forEach(s => s.classList.remove('focus'));\r\n const slide = this.el.querySelectorAll('.fwSlider__slide')[2];\r\n slide.classList.add('focus');\r\n\r\n this.setButtons(slide);\r\n this.setActiveButton(slide.getAttribute('data-number'));\r\n }\r\n\r\n setButtons(slide) {\r\n const rect = slide.getBoundingClientRect();\r\n let buttonWidth = this.buttons.getBoundingClientRect().width;\r\n this.buttons.style.top = rect.height-51 + 'px';\r\n\r\n this.buttons.style.left = -18+((this.clientWidth()-rect.width)/2)+rect.width-(buttonWidth-13) + 'px';\r\n // fix for when JS gets it wrong and miscalculates button-width\r\n setTimeout(() => {\r\n buttonWidth = this.buttons.getBoundingClientRect().width;\r\n this.buttons.style.left = -16+((this.clientWidth()-rect.width)/2)+rect.width-(buttonWidth-13) + 'px';\r\n }, 1);\r\n\r\n }\r\n setActiveButton(number) {\r\n this.parent.querySelectorAll('.fwSlider__buttons__dots a').forEach(a => {\r\n if (a.getAttribute('data-number') == number) a.classList.add('focus');\r\n else a.classList.remove('focus');\r\n });\r\n }\r\n}\r\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"mindre end ét sekund\",\n other: \"mindre end {{count}} sekunder\",\n },\n\n xSeconds: {\n one: \"1 sekund\",\n other: \"{{count}} sekunder\",\n },\n\n halfAMinute: \"ét halvt minut\",\n\n lessThanXMinutes: {\n one: \"mindre end ét minut\",\n other: \"mindre end {{count}} minutter\",\n },\n\n xMinutes: {\n one: \"1 minut\",\n other: \"{{count}} minutter\",\n },\n\n aboutXHours: {\n one: \"cirka 1 time\",\n other: \"cirka {{count}} timer\",\n },\n\n xHours: {\n one: \"1 time\",\n other: \"{{count}} timer\",\n },\n\n xDays: {\n one: \"1 dag\",\n other: \"{{count}} dage\",\n },\n\n aboutXWeeks: {\n one: \"cirka 1 uge\",\n other: \"cirka {{count}} uger\",\n },\n\n xWeeks: {\n one: \"1 uge\",\n other: \"{{count}} uger\",\n },\n\n aboutXMonths: {\n one: \"cirka 1 måned\",\n other: \"cirka {{count}} måneder\",\n },\n\n xMonths: {\n one: \"1 måned\",\n other: \"{{count}} måneder\",\n },\n\n aboutXYears: {\n one: \"cirka 1 år\",\n other: \"cirka {{count}} år\",\n },\n\n xYears: {\n one: \"1 år\",\n other: \"{{count}} år\",\n },\n\n overXYears: {\n one: \"over 1 år\",\n other: \"over {{count}} år\",\n },\n\n almostXYears: {\n one: \"næsten 1 år\",\n other: \"næsten {{count}} år\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"om \" + result;\n } else {\n return result + \" siden\";\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE 'den' d. MMMM y\",\n long: \"d. MMMM y\",\n medium: \"d. MMM y\",\n short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'kl'. {{time}}\",\n long: \"{{date}} 'kl'. {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'sidste' eeee 'kl.' p\",\n yesterday: \"'i går kl.' p\",\n today: \"'i dag kl.' p\",\n tomorrow: \"'i morgen kl.' p\",\n nextWeek: \"'på' eeee 'kl.' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","import { formatDistance } from \"./da/_lib/formatDistance.js\";\nimport { formatLong } from \"./da/_lib/formatLong.js\";\nimport { formatRelative } from \"./da/_lib/formatRelative.js\";\nimport { localize } from \"./da/_lib/localize.js\";\nimport { match } from \"./da/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Danish locale.\n * @language Danish\n * @iso-639-2 dan\n * @author Mathias Wøbbe [@MathiasKandelborg](https://github.com/MathiasKandelborg)\n * @author Anders B. Hansen [@Andersbiha](https://github.com/Andersbiha)\n * @author [@kgram](https://github.com/kgram)\n * @author [@stefanbugge](https://github.com/stefanbugge)\n */\nexport const da = {\n code: \"da\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default da;\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"fvt\", \"vt\"],\n abbreviated: [\"f.v.t.\", \"v.t.\"],\n wide: [\"før vesterlandsk tidsregning\", \"vesterlandsk tidsregning\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"1. kvt.\", \"2. kvt.\", \"3. kvt.\", \"4. kvt.\"],\n wide: [\"1. kvartal\", \"2. kvartal\", \"3. kvartal\", \"4. kvartal\"],\n};\n\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"jan.\",\n \"feb.\",\n \"mar.\",\n \"apr.\",\n \"maj\",\n \"jun.\",\n \"jul.\",\n \"aug.\",\n \"sep.\",\n \"okt.\",\n \"nov.\",\n \"dec.\",\n ],\n\n wide: [\n \"januar\",\n \"februar\",\n \"marts\",\n \"april\",\n \"maj\",\n \"juni\",\n \"juli\",\n \"august\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ],\n};\n\n// Note that 'Days - abbreviated - Formatting' has periods at the end.\n// https://www.unicode.org/cldr/charts/32/summary/da.html#1760\n// This makes grammatical sense in danish, as most abbreviations have periods.\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"],\n short: [\"sø\", \"ma\", \"ti\", \"on\", \"to\", \"fr\", \"lø\"],\n abbreviated: [\"søn.\", \"man.\", \"tir.\", \"ons.\", \"tor.\", \"fre.\", \"lør.\"],\n\n wide: [\n \"søndag\",\n \"mandag\",\n \"tirsdag\",\n \"onsdag\",\n \"torsdag\",\n \"fredag\",\n \"lørdag\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"morgen\",\n afternoon: \"eftermiddag\",\n evening: \"aften\",\n night: \"nat\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"morgen\",\n afternoon: \"eftermiddag\",\n evening: \"aften\",\n night: \"nat\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"morgen\",\n afternoon: \"eftermiddag\",\n evening: \"aften\",\n night: \"nat\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"om morgenen\",\n afternoon: \"om eftermiddagen\",\n evening: \"om aftenen\",\n night: \"om natten\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"om morgenen\",\n afternoon: \"om eftermiddagen\",\n evening: \"om aftenen\",\n night: \"om natten\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"om morgenen\",\n afternoon: \"om eftermiddagen\",\n evening: \"om aftenen\",\n night: \"om natten\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return number + \".\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(fKr|fvt|eKr|vt)/i,\n abbreviated: /^(f\\.Kr\\.?|f\\.v\\.t\\.?|e\\.Kr\\.?|v\\.t\\.)/i,\n wide: /^(f.Kr.|før vesterlandsk tidsregning|e.Kr.|vesterlandsk tidsregning)/i,\n};\nconst parseEraPatterns = {\n any: [/^f/i, /^(v|e)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]. kvt\\./i,\n wide: /^[1234]\\.? kvartal/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan.|feb.|mar.|apr.|maj|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n wide: /^(januar|februar|marts|april|maj|juni|juli|august|september|oktober|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^maj/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(søn.|man.|tir.|ons.|tor.|fre.|lør.)/i,\n abbreviated: /^(søn|man|tir|ons|tor|fre|lør)/i,\n wide: /^(søndag|mandag|tirsdag|onsdag|torsdag|fredag|lørdag)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^o/i, /^t/i, /^f/i, /^l/i],\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /midnat/i,\n noon: /middag/i,\n morning: /morgen/i,\n afternoon: /eftermiddag/i,\n evening: /aften/i,\n night: /nat/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import axios from 'axios';\r\nimport paginationBuilder from '../../util/paginationBuilder';\r\nimport { format } from 'date-fns';\r\nimport { da } from 'date-fns/locale';\r\nimport { getParamsObj, updateBrowserState, setSelectOptions } from '../../util/browserUtil';\r\n\r\nexport default class Hearings {\r\n constructor(element) {\r\n this.el = element;\r\n this.subjects = [];\r\n this.page = 1;\r\n this.subjectPicker = null;\r\n this.typePicker = null;\r\n this.statePicker = null;\r\n this.params = null;\r\n this.tags = [];\r\n this.hearingStates = [];\r\n this.page = 1;\r\n this.numberOfPages = 100;\r\n this.data = {};\r\n this.newsItemHtml = null;\r\n this.newsItems = null;\r\n this.dates = [];\r\n this.datePicker = null;\r\n this.init();\r\n }\r\n // manage changes to this.data (change filter states, news etc.)\r\n set _data(value) {\r\n this.data = value;\r\n if (value?.Tags) {\r\n const subjectTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'Hoeringsemner');\r\n this.subjectPicker.Update(subjectTags, this.subjects, this.subjectsChangedHandler);\r\n\r\n const hearingTypes = value.Tags.Nodes.filter(x => x.RootAlias === 'Hoeringstyper');\r\n this.typePicker.Update(hearingTypes, this.tags, this.typesChangedHandler);\r\n\r\n const states = value.Tags.Nodes.filter(x => x.RootAlias === 'state');\r\n this.statePicker.Update(states, this.hearingStates, this.statesChangedHandler);\r\n\r\n const dateTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n this.datePicker.Update(dateTags, this.dates, this.datesChangeHandler);\r\n }\r\n this.numberOfPages = value.SearchResult.Paging.PagesToShow.length;\r\n this.loadNews(value.SearchResult.Items);\r\n this.managePagination();\r\n }\r\n init() {\r\n // Element getters\r\n this.subjectPicker = this.el.querySelector('#filterSubject');\r\n this.typePicker = this.el.querySelector('#filterType');\r\n this.statePicker = this.el.querySelector('#filterState');\r\n this.datePicker = this.el.querySelector(\"#filterDates\");\r\n\r\n // load reference html and remove from dom\r\n this.newsItemHtml = this.el.querySelector('#newsItemPlaceholder');\r\n this.newsItemHtml.parentElement.removeChild(this.newsItemHtml);\r\n this.newsItemHtml.removeAttribute('id');\r\n\r\n this.newsItems = this.el.querySelector('.newsItems');\r\n this.manageState();\r\n\r\n this.datesChangeHandler = (selectedDates) => {\r\n this.dates = selectedDates;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n }\r\n\r\n this.subjectsChangedHandler = (selectedSubjects)=> {\r\n this.subjects = selectedSubjects;\r\n updateBrowserState(this.nextUrl());\r\n this.manageState();\r\n }; \r\n\r\n this.typesChangedHandler = (selectedTypes)=> {\r\n this.tags = selectedTypes;\r\n updateBrowserState(this.nextUrl());\r\n this.manageState();\r\n }; \r\n \r\n this.statesChangedHandler = (selectedStates)=> {\r\n this.hearingStates = selectedStates;\r\n updateBrowserState(this.nextUrl());\r\n this.manageState();\r\n };\r\n }\r\n\r\n loadNews(items) {\r\n this.newsItems.innerHTML = '';\r\n\r\n items.forEach(item => {\r\n\r\n const newsItem = this.newsItemHtml.cloneNode(true);\r\n newsItem.querySelector('.newsItem__headline').innerText = item.Headline;\r\n newsItem.querySelector('.newsItem__url').href = item.Url;\r\n newsItem.querySelector('.hearing__type').innerText = item.Tags.Items.filter(x => x.RootAlias === 'Hoeringstyper').map(s => s.Headline).join(', ');\r\n\r\n if (item.Tags.Items?.length) {\r\n const newsSubjects = newsItem.querySelector('.newsItem__subject');\r\n newsSubjects.innerText = item.Tags.Items.filter(x => x.RootAlias === 'Hoeringsemner').map(s => s.Headline).join(', ');\r\n }\r\n\r\n newsItem.querySelector('.newsItem__date').innerText = format(Date.parse(item.HearingDeadline), 'd. MMMM yyyy', {locale: da});\r\n\r\n this.newsItems.appendChild(newsItem);\r\n });\r\n }\r\n\r\n manageState() {\r\n this.manageParams();\r\n let url = `${window.location.origin}/api/HearingComponent/ArchiveJson?tags=${this.tags.join('|')}&subjects=${this.subjects.join('|')}&page=${this.page}&hearingStates=${this.hearingStates.join('|')}&dates=${this.dates.join('|')}`;\r\n\r\n axios.get(url).then(response => {\r\n this._data = response.data;\r\n if (this.data) {\r\n const subjectTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'Hoeringsemner');\r\n const hearingTypes = this.data.Tags.Nodes.filter(x => x.RootAlias === 'Hoeringstyper');\r\n const states = this.data.Tags.Nodes.filter(x => x.RootAlias === 'state');\r\n const dateTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n this.subjectPicker.Update(subjectTags, this.subjects, this.subjectsChangedHandler);\r\n this.typePicker.Update(hearingTypes, this.tags, this.typesChangedHandler);\r\n this.statePicker.Update(states, this.hearingStates, this.statesChangedHandler);\r\n this.datePicker.Update(dateTags, this.dates, this.datesChangeHandler);\r\n }\r\n });\r\n }\r\n\r\n manageParams() {\r\n this.params = getParamsObj();\r\n if (this.params.tags) {\r\n this.tags = this.params.tags.split('|'); \r\n this.tags = this.tags.filter(x => x != '');\r\n }\r\n if(this.params.subjects){\r\n this.subjects = this.params.subjects.split('|');\r\n this.subjects = this.subjects.filter(x => x != '');\r\n }\r\n if(this.params.hearingStates){\r\n this.hearingStates = this.params.hearingStates.split('|');\r\n this.hearingStates = this.hearingStates.filter(x => x != '');\r\n }\r\n\r\n if (this.params.page) {\r\n this.page = parseInt(this.params.page);\r\n }\r\n if (this.params.dates) {\r\n this.dates = this.params.dates.split('|');\r\n }\r\n }\r\n\r\n managePagination() {\r\n if (this.numberOfPages == 1) {\r\n if (this.el.querySelector('.pagination'))\r\n this.el.querySelector('.pagination').classList.add('hidden');\r\n return;\r\n }\r\n this.el.querySelector('.pagination').classList.remove('hidden');\r\n const callback = e => {\r\n const value = e.target.closest('a[data-value]').getAttribute('data-value');\r\n if (value) {\r\n if (value == 'prev') this.page--;\r\n else if (value == 'next') this.page++;\r\n else this.page = parseInt(value)+1;\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n updateBrowserState(this.nextUrl());\r\n this.manageState();\r\n e.preventDefault();\r\n };\r\n\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n\r\n nextUrl(resetPage = false) {\r\n if (resetPage) {\r\n this.page = 1;\r\n }\r\n let nextUrl = `?tags=${this.tags.join('|')}&subjects=${this.subjects.join('|')}&page=${this.page}&hearingStates=${this.hearingStates.join('|')}`;\r\n if (this.dates) {\r\n nextUrl += `&dates=${this.dates.join('|')}`;\r\n }\r\n return nextUrl;\r\n }\r\n}\r\n","import axios from 'axios';\r\nexport default class Searchbox {\r\n constructor(element) {\r\n this.el = element;\r\n this.suggestionsList = this.el.querySelector('.lstSuggestions');\r\n this.searchbox = this.el.querySelector('.tbSearchBox');\r\n this.typeAheadUrl = `${window.location.origin}/api/searchapi/typeahead`;\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.getParamsObj()['term']) {\r\n if (this.el.getAttribute('data-search') !== 'page') {\r\n this.el.remove();\r\n return;\r\n }\r\n setTimeout(() => {\r\n this.searchbox.value = this.getParamsObj()['term'];\r\n this.search(this.searchbox.value);\r\n this.boxLogic(true);\r\n }, 5);\r\n }\r\n\r\n this.searchbox.addEventListener('input', () => {\r\n this.boxLogic();\r\n });\r\n\r\n this.searchbox.addEventListener('focus', () => {\r\n if (this.suggestionsList.childNodes.length) {\r\n this.suggestionsList.classList.add('visible');\r\n document.addEventListener('click', (e) => {\r\n if (!e.target.closest('.tbSearchBox')) {\r\n this.suggestionsList.classList.remove('visible');\r\n this.searchbox.classList.remove('visible');\r\n }\r\n \r\n });\r\n }\r\n });\r\n\r\n this.searchbox.addEventListener('keydown', e => {\r\n \r\n if (e.code === 'Enter' && e.target.value.length > 1) \r\n this.search(e.target.value);\r\n\r\n if (e.code === 'ArrowDown') {\r\n e.preventDefault();\r\n setTimeout(() => this.suggestionsList.querySelector('a').focus(),1000);\r\n this.suggestionsList.classList.add('visible');\r\n this.suggestionsList.querySelector('a').focus();\r\n }\r\n });\r\n\r\n this.suggestionsList.addEventListener('keydown', e => {\r\n\r\n if (e.code === 'ArrowDown') {\r\n console.log(e.target.nextElementSibling);\r\n if(e.target.nextElementSibling) {\r\n e.target.nextElementSibling.focus();\r\n e.preventDefault();\r\n }\r\n \r\n }\r\n if (e.code === 'ArrowUp') {\r\n if (e.target.previousElementSibling) {\r\n e.target.previousElementSibling.focus();\r\n e.preventDefault();\r\n }\r\n }\r\n });\r\n }\r\n boxLogic(hide) {\r\n const value = this.searchbox.value;\r\n if (value.length < 2) {\r\n this.suggestionsList.innerHTML = '';\r\n this.suggestionsList.classList.remove('visible');\r\n this.searchbox.classList.remove('visible');\r\n return;\r\n }\r\n const url = this.typeAheadUrl;\r\n axios\r\n .post(url, {\r\n query: value,\r\n })\r\n .then((response) => {\r\n this.suggestionsList.innerHTML = '';\r\n\r\n if (response.data.Results.length) {\r\n if (!hide) {\r\n this.suggestionsList.classList.add('visible');\r\n\r\n document.addEventListener('click', (e) => {\r\n if (!e.target.closest('.lstSuggestions')) {\r\n this.suggestionsList.classList.remove('visible');\r\n this.searchbox.classList.remove('visible');\r\n }\r\n }, { once: true});\r\n }\r\n this.searchbox.classList.add('visible');\r\n }\r\n else {\r\n this.suggestionsList.classList.remove('visible');\r\n this.searchbox.classList.remove('visible');\r\n }\r\n response.data.Results.forEach((suggestion) => {\r\n let a = document.createElement('a');\r\n a.classList = \"hover:no-underline\";\r\n a.href = \"#\";\r\n a.innerText = suggestion;\r\n this.suggestionsList.append(a);\r\n a.addEventListener('click', () => {\r\n this.search(suggestion);\r\n });\r\n });\r\n });\r\n }\r\n getParamsObj() {\r\n const search = window.location.search;\r\n const params = new URLSearchParams(search);\r\n const paramObj = {};\r\n for (const value of params.keys()) {\r\n paramObj[value] = params.get(value);\r\n }\r\n return paramObj;\r\n }\r\n\r\n search(input) {\r\n\r\n this.searchbox.value = input;\r\n this.suggestionsList.classList.remove('visible');\r\n if (this.el.getAttribute('data-search') === 'page' && document.doSearch)\r\n document.doSearch(input);\r\n else if (!this.getParamsObj()['term']) {\r\n const url = this.el.getAttribute('data-url')+`&term=${input}`;\r\n window.location = url;\r\n }\r\n }\r\n}","import axios from 'axios';\r\nimport paginationBuilder from '../../util/paginationBuilder';\r\nimport { getParamsObj, updateBrowserState } from '../../util/browserUtil';\r\n\r\nexport default class Search {\r\n constructor(element) {\r\n this.el = element;\r\n this.page = 0;\r\n this.data = {};\r\n this.publicationItemHtml = null;\r\n this.publicationItems = null;\r\n this.generateCard = this.generateCard.bind(this);\r\n this.doSearch = this.doSearch.bind(this);\r\n this.container = this.el.querySelector('.no-results__text');\r\n this.noResults = this.el.querySelector('.no-result').cloneNode(true);\r\n this.seeMoreLabel = this.el.getAttribute('data-dictionary');\r\n this.pagination = document.querySelector('#searchPagination');\r\n this.page = 1;\r\n this.numberOfPages = 100;\r\n this.init();\r\n }\r\n\r\n init() {\r\n document.doSearch = this.doSearch;\r\n document.searchElement = this.el;\r\n\r\n if (getParamsObj()['page']) {\r\n this.page = getParamsObj()['page'];\r\n document.searchOverridePage = this.page;\r\n }\r\n\r\n this.publicationItems = this.el.querySelector('.publicationItems');\r\n }\r\n managePagination(input, pagination, page, numberOfPages) {\r\n if (this.numberOfPages == 1) {\r\n if (this.el.querySelector('.pagination'))\r\n this.el.querySelector('.pagination').classList.add('hidden');\r\n return;\r\n }\r\n this.el.querySelector('.pagination').classList.remove('hidden');\r\n const callback = e => {\r\n const value = e.target.getAttribute('data-value');\r\n if (value) {\r\n if (value == 'prev') page--;\r\n else if (value == 'next') page++;\r\n else page = parseInt(value)+1;\r\n paginationBuilder(pagination, page, numberOfPages, callback);\r\n }\r\n this.doSearch(input, page);\r\n e.preventDefault();\r\n };\r\n\r\n paginationBuilder(pagination, page, numberOfPages, callback);\r\n }\r\n\r\n doSearch(input, page) {\r\n if (!page) page = 1;\r\n this.page = page;\r\n\r\n if (document.searchOverridePage) {\r\n this.page = document.searchOverridePage;\r\n document.searchOverridePage = null;\r\n }\r\n\r\n const url = `${window.location.origin}/api/searchapi/search`;\r\n\r\n axios\r\n .post(url, {\r\n query: input,\r\n page: this.page-1,\r\n })\r\n .then((response) => {\r\n if (response.data.Results.length == 0) {\r\n this.noResults.classList.remove('hidden');\r\n }\r\n else {\r\n this.noResults.classList.add('hidden');\r\n }\r\n\r\n this.generateCard(response);\r\n this.el.append(this.noResults.cloneNode(true));\r\n this.numberOfPages = response.data.NumberOfPages;\r\n this.managePagination(input, this.pagination, this.page, this.numberOfPages);\r\n updateBrowserState(`?page=${this.page}&term=${getParamsObj()['term']}`);\r\n });\r\n }\r\n\r\n generateCard(json) {\r\n console.log(json.data.Results);\r\n const replace = (value) => {\r\n return value.replaceAll('|', ' / ');\r\n };\r\n\r\n const card = json.data.Results.map(item =>{\r\n var linkTarget = item.ContentType === 'Page' ? '' : 'target=\"blank\"';\r\n return `\r\n
    \r\n
    \r\n ${replace(item.Breadcrumb)}\r\n
    \r\n\r\n
    ${item.Title}
    \r\n\r\n
    \r\n \r\n
    \r\n ${item.Description ? `

    ${item.Description}

    ` : ''}\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n `;\r\n }).join('');\r\n\r\n this.el.innerHTML = card;\r\n }\r\n}","export default class Youtube {\r\n constructor(element) {\r\n this.el = element;\r\n this.player = null;\r\n this.url = this.el.getAttribute('data-url');\r\n this.open = false;\r\n this.canPlay = false;\r\n this.id = 'youtubePlayer';\r\n this.init();\r\n }\r\n\r\n init() {\r\n\r\n const newId = this.id+(Math.round(Math.random()*10000));\r\n\r\n const idEl = this.el.querySelector('#'+this.id);\r\n if (!idEl) return;\r\n\r\n idEl.setAttribute('id',newId);\r\n this.id = newId;\r\n // setup some youtube stuff (https://developers.google.com/youtube/iframe_api_reference)\r\n const tag = document.createElement('script');\r\n\r\n // detect multiple players\r\n if (document.querySelectorAll('.youtube').length > 1 && !window.multiYoutube) {\r\n //prevent multiple runs\r\n window.multiYoutube = true;\r\n }\r\n\r\n if (!window.youTubeLoaded) {\r\n window.youTubeLoaded = true;\r\n tag.src = 'https://www.youtube.com/player_api';\r\n const firstScriptTag = document.getElementsByTagName('script')[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n }\r\n\r\n window.onYouTubeIframeAPIReady = () => {\r\n const event = new Event('youtubeApiReady');\r\n window.dispatchEvent(event);\r\n };\r\n this.el.querySelector('.youtube__frame').addEventListener('click', () => this.play());\r\n }\r\n\r\n play() {\r\n document.querySelectorAll('iframe[sandbox]').forEach(s => {\r\n const ytid = s.id;\r\n const html = `\r\n \r\n \r\n \r\n
    \r\n `;\r\n const parent = s.parentElement;\r\n s.remove();\r\n parent.innerHTML += html;\r\n document.querySelectorAll('.youtube__frame').forEach(e => e.style.cursor = 'pointer');\r\n });\r\n const ytId = this.id;\r\n\r\n // eslint-disable-next-line no-undef\r\n this.player = new YT.Player(this.id, {\r\n videoId: this.url,\r\n playerVars: {\r\n 'playsinline': 1,\r\n 'modestbranding': 1,\r\n 'enablejsapi': 1,\r\n },\r\n events: {\r\n 'onReady': () => {\r\n this.open = true;\r\n this.el.querySelector('.youtube__frame-play-triangle').remove();\r\n this.el.querySelector('.youtube__frame').style.cursor = 'default';\r\n this.el.querySelector('#'+ytId).style.display = 'block';\r\n this.player.playVideo();\r\n },\r\n },\r\n });\r\n\r\n }\r\n}\r\n","export default class Accordion {\r\n constructor(element) {\r\n\r\n this.el = element;\r\n this.id = this.el.querySelector('.accordion-item').getAttribute('data-id');\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.el.querySelectorAll('*[data-id=\"' + this.id + '\"] > .accordion-item__header').forEach(item => {\r\n\r\n const content = item.parentNode.querySelector('*[data-id=\"' + this.id + '\"] .accordion-item__content');\r\n item.addEventListener('click', () => {\r\n let height = content.getBoundingClientRect().height;\r\n\r\n content.style.height = '0px';\r\n let skip = false;\r\n if (content.classList.contains('loaded') && height == '0') {\r\n content.classList.remove('loaded');\r\n content.style.transition = '';\r\n\r\n setTimeout(() => {\r\n content.style.height = 'auto';\r\n skip = true;\r\n }, 5);\r\n }\r\n\r\n content.classList.remove('loading');\r\n\r\n if (content.classList.contains('loaded')) {\r\n height = 0;\r\n content.addEventListener('transitionend', () => {\r\n if (skip) {\r\n content.classList.remove('loaded');\r\n content.classList.add('loading');\r\n content.style.height = 'auto';\r\n content.style.transition = '';\r\n }\r\n\r\n skip = false;\r\n }, { once: true });\r\n }\r\n\r\n setTimeout(() => {\r\n\r\n content.style.transition = 'height ease 0.4s';\r\n\r\n // special case for accordion in accordion\r\n const parentAccordion = this.el.closest('.accordion-item__content');\r\n\r\n if (parentAccordion) {\r\n setTimeout(() => {\r\n console.log(this.el.closest('.accordion-item__content'));\r\n height = 'auto';\r\n parentAccordion.style.transition = 'none';\r\n parentAccordion.style.height = 'px';\r\n console.log(parentAccordion);\r\n }, 2 );\r\n }\r\n\r\n content.style.height = height + 'px';\r\n content.classList.add('loaded');\r\n },2);\r\n\r\n content.classList.toggle('accordion-item__content-hidden');\r\n item.classList.toggle('accordion-item__header-visible');\r\n });\r\n });\r\n }\r\n}","import axios from \"axios\";\r\nimport Youtube from \"./../youtube/youtube\";\r\nimport { getParamsObj, updateBrowserState } from \"../../util/browserUtil\";\r\n\r\nexport default class NewyearSpeeches {\r\n constructor(element) {\r\n this.el = element;\r\n this.itemHTML = this.el\r\n .querySelector(\".newyear__content__item\")\r\n .cloneNode(true);\r\n this.contextId = this.el.getAttribute(\"data-contextId\");\r\n this.personPicker = this.el.querySelector(\"#newYearsPerson\");\r\n this.yearPicker = this.el.querySelector(\"#newYearsYear\");\r\n this.data = null;\r\n this.tags = [];\r\n this.years = [];\r\n this.downloadText = this.el.getAttribute(\"data-downloadText\");\r\n this.filterTags = [];\r\n this.filterYears = [];\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.el.querySelector(\".newyear__content__item\").remove();\r\n\r\n this.manageState();\r\n\r\n this.personPicker.addEventListener(\"change\", (event) => {\r\n this.filterTags = Array.from(event.target.selectedOptions)\r\n .filter((x) => x.value)\r\n .map((x) => x.value)\r\n .filter((x) => x !== \"\");\r\n updateBrowserState(this.nextUrl());\r\n this.filter();\r\n });\r\n\r\n this.yearPicker.addEventListener(\"change\", (event) => {\r\n this.filterYears = Array.from(event.target.selectedOptions)\r\n .filter((x) => x.value)\r\n .map((x) => x.value)\r\n .filter((x) => x !== \"\");\r\n updateBrowserState(this.nextUrl());\r\n this.filter();\r\n });\r\n }\r\n\r\n manageState() {\r\n const url = `${window.location.origin}/api/NewYearComponent/NewYearSpeechesJson`;\r\n\r\n axios\r\n .post(url, {\r\n ContextId: this.contextId,\r\n })\r\n .then((response) => {\r\n this.data = response.data;\r\n this.buildContent();\r\n\r\n this.manageParams();\r\n this.filter();\r\n });\r\n }\r\n\r\n filter() {\r\n const ul = this.el.querySelectorAll(\".newyear__content li\");\r\n const filters = this.filterTags;\r\n const yearFilters = this.filterYears;\r\n\r\n if (yearFilters.length || filters.length)\r\n ul.forEach((li) => (li.style.display = \"none\"));\r\n\r\n if (yearFilters.length && !filters.length) {\r\n ul.forEach((li) => {\r\n const year = li.getAttribute(\"data-year\");\r\n if (yearFilters.includes(year)) li.style.display = \"block\";\r\n });\r\n } else if (filters.length && !yearFilters.length) {\r\n ul.forEach((li) => {\r\n const id = li.getAttribute(\"data-id\");\r\n if (filters.includes(id.toLowerCase())) li.style.display = \"block\";\r\n });\r\n } else if (filters.length && yearFilters.length) {\r\n ul.forEach((li) => {\r\n const id = li.getAttribute(\"data-id\");\r\n const year = li.getAttribute(\"data-year\");\r\n if (filters.includes(id.toLowerCase()) && yearFilters.includes(year))\r\n li.style.display = \"block\";\r\n });\r\n } else {\r\n ul.forEach((li) => (li.style.display = \"block\"));\r\n }\r\n }\r\n\r\n manageParams() {\r\n this.filterTags = getParamsObj()\r\n [\"tags\"]?.split(\"|\")\r\n .filter((x) => x !== \"\");\r\n this.filterYears = getParamsObj()\r\n [\"years\"]?.split(\"|\")\r\n .filter((x) => x !== \"\");\r\n\r\n if (!this.filterTags) this.filterTags = [];\r\n if (!this.filterYears) this.filterYears = [];\r\n\r\n this.SetSelectOptions(this.yearPicker, this.years, this.filterYears, true);\r\n this.SetSelectOptions(this.personPicker, this.tags, this.filterTags, false);\r\n }\r\n nextUrl() {\r\n return `?tags=${this.filterTags.join(\"|\")}&years=${this.filterYears.join(\r\n \"|\"\r\n )}`;\r\n }\r\n\r\n buildContent() {\r\n const ul = this.el.querySelector(\".newyear__content\");\r\n\r\n this.data.forEach((video) => {\r\n console.log(video);\r\n const li = this.itemHTML.cloneNode(true);\r\n if (!video.PreviewImageSrc) {\r\n video.PreviewImageSrc = `https://img.youtube.com/vi/${video.YoutubeLink}/maxresdefault.jpg`;\r\n }\r\n li.classList.remove(\"hidden\");\r\n li.setAttribute(\r\n \"data-id\",\r\n video.tags.Items.filter((x) => x.RootAlias === \"PersonPage\")[0]?.Id\r\n );\r\n li.setAttribute(\"data-year\", video.Year);\r\n li.querySelector(\r\n \".newyear__content__item-preview\"\r\n ).style.background = `url(${video.PreviewImageSrc})`;\r\n li.querySelector(\".newyear__content__item-preview\").style.backgroundSize =\r\n \"cover\";\r\n li.querySelector(\".newyear__content__item-title\").innerText =\r\n video.tags.Items.filter(\r\n (f) => f.RootAlias === \"PersonPage\"\r\n )[0]?.Headline;\r\n\r\n li.querySelector(\".newyear__content__item-heading\").innerText =\r\n video.tags.Items.filter((f) => f.RootAlias === \"PersonPage\")[0]?.Name +\r\n \" | \" +\r\n video.Year;\r\n\r\n li.querySelector(\".newyear__content__item-description\").innerText = video.Description;\r\n if (video.FileSrc !== null) {\r\n console.log(video.FileSrc);\r\n li.querySelector(\".newyear__content__item-link\").href = video.FileSrc;\r\n li.querySelector(\".newyear__content__item-size\").innerText =\r\n video.FileSize;\r\n li.querySelector(\".newyear__content__item-dltext\").innerText =\r\n this.downloadText;\r\n } else {\r\n li.removeChild(li.querySelector(\".newyear__content__file\"));\r\n }\r\n if (video.YoutubeLink) {\r\n li.setAttribute(\"data-url\", video.YoutubeLink);\r\n new Youtube(li);\r\n } else {\r\n li.querySelector(\"#playBtn\").classList.add(\"hidden\");\r\n li.querySelector(\".youtube__frame\").style.cursor = \"initial\";\r\n }\r\n\r\n ul.append(li);\r\n\r\n if (!this.years[video.Year]) {\r\n this.years.push(video.Year);\r\n }\r\n\r\n if (video.tags) {\r\n var personTag = video.tags.Items.filter(\r\n (f) => f.RootAlias === \"PersonPage\"\r\n )[0];\r\n if (personTag && !this.tags.some((tag) => tag.Id === personTag.Id)) {\r\n this.tags.push(personTag);\r\n }\r\n }\r\n });\r\n this.tags = this.tags.filter((v, i, a) => a.indexOf(v) === i);\r\n\r\n this.years = this.years.filter((v, i, a) => a.indexOf(v) === i);\r\n\r\n this.SetSelectOptions(this.personPicker, this.tags);\r\n this.SetSelectOptions(this.yearPicker, this.years, null, true);\r\n }\r\n\r\n SetSelectOptions(element, values, value, isYear) {\r\n //popuplate fields if it's empty or only have a non-value option\r\n const options = element.querySelectorAll('option:not([value=\"\"])');\r\n if (options.length == 0) {\r\n values.forEach((v) => {\r\n const o = document.createElement(\"option\");\r\n if (!isYear) {\r\n o.innerText = v.Name;\r\n o.value = v.Id;\r\n } else {\r\n o.innerText = v;\r\n o.value = v;\r\n }\r\n\r\n element.appendChild(o);\r\n });\r\n }\r\n //set selected from state\r\n if (value) {\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => {\r\n element.querySelector(`option[value=\"${v}\"]`).selected = true;\r\n });\r\n } else element.querySelector(`option[value=\"${value}\"]`).selected = true;\r\n }\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport paginationBuilder from '../../util/paginationBuilder';\r\nimport { format } from 'date-fns';\r\nimport { getParamsObj, updateBrowserState } from '../../util/browserUtil';\r\n\r\nexport default class MeetingMinutes {\r\n constructor(element) {\r\n this.el = element;\r\n this.datesPicker = null;\r\n this.contextId = this.el.getAttribute('data-contextItem');\r\n this.page = 1;\r\n this.params = null;\r\n this.page = 1;\r\n this.numberOfPages = 100;\r\n this.data = {};\r\n this.meetingMinutesItemHtml = null;\r\n this.meetingMinutesItems = null;\r\n this.dates = [];\r\n this.init();\r\n }\r\n // manage changes to this.data (change filter states, meetingMinutes etc.)\r\n set _data(value) {\r\n this.data = value;\r\n if (value?.tags) {\r\n const dateTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n this.datePicker.Update(dateTags, this.dates, this.datesChangeHandler);\r\n }\r\n this.numberOfPages = value.Paging.PagesToShow.length;\r\n this.loadmeetingMinutes(value.Items);\r\n this.managePagination();\r\n }\r\n init() {\r\n // Element getters\r\n this.datePicker = this.el.querySelector(\"#filterDates\");\r\n\r\n this.datesChangeHandler = (selectedDates) => {\r\n this.dates = selectedDates;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n }\r\n\r\n // load reference html and remove from dom\r\n this.meetingMinutesItemHtml = this.el.querySelector('#m-minutesItemPlaceholder');\r\n this.meetingMinutesItemHtml.parentElement.removeChild(this.meetingMinutesItemHtml);\r\n this.meetingMinutesItemHtml.removeAttribute('id');\r\n\r\n this.meetingMinutesItems = this.el.querySelector('.m-minutesItems');\r\n\r\n this.manageState();\r\n }\r\n\r\n loadmeetingMinutes(items) {\r\n this.meetingMinutesItems.innerHTML = '';\r\n\r\n items.forEach(item => {\r\n\r\n const meetingMinutesItem = this.meetingMinutesItemHtml.cloneNode(true);\r\n meetingMinutesItem.querySelector('.m-minutesItem__headline').innerText = item.Headline;\r\n meetingMinutesItem.querySelector('.m-minutesItem__url').href = item.Url;\r\n\r\n if (item.ImageUrls?.Items.length) {\r\n const img = item.ImageUrls.Items.find(x => x.Alias == 'Tile');\r\n meetingMinutesItem.querySelector('.m-minutesItem__image').src = img.Url;\r\n }\r\n else {\r\n meetingMinutesItem.querySelector('.m-minutesItem__image').remove();\r\n }\r\n meetingMinutesItem.querySelector('.m-minutesItem__date').innerText = format(Date.parse(item.MeetingDate), 'dd.MM.yy');\r\n this.meetingMinutesItems.appendChild(meetingMinutesItem);\r\n });\r\n }\r\n\r\n manageState() {\r\n this.manageParams();\r\n let url = `${window.location.origin}/api/MeetingMinutes/MeetingMinutesArchiveJson?contextItem=${this.contextId}&page=${this.page}&dates=${this.dates.join('|')}`;\r\n axios.get(url).then(response => {\r\n this._data = response.data;\r\n if(this.data) {\r\n const dates = this.data.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n this.datePicker.Update(dates, this.dates, this.datesChangeHandler);\r\n }\r\n });\r\n }\r\n\r\n manageParams() {\r\n this.params = getParamsObj();\r\n if (this.params.page) {\r\n this.page = parseInt(this.params.page);\r\n }\r\n if (this.params.dates) {\r\n this.dates = this.params.dates.split('|');\r\n }\r\n }\r\n\r\n managePagination() {\r\n if (this.numberOfPages == 1) {\r\n if (this.el.querySelector('.pagination'))\r\n this.el.querySelector('.pagination').classList.add('hidden');\r\n return;\r\n }\r\n this.el.querySelector('.pagination').classList.remove('hidden');\r\n const callback = e => {\r\n const value = e.target.closest('a[data-value]').getAttribute('data-value');\r\n if (value) {\r\n if (value == 'prev') this.page--;\r\n else if (value == 'next') this.page++;\r\n else this.page = parseInt(value)+1;\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n updateBrowserState(this.nextUrl());\r\n this.manageState();\r\n e.preventDefault();\r\n };\r\n\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n\r\n nextUrl(resetPage = false) {\r\n if (resetPage) {\r\n this.page = 1;\r\n }\r\n let nextUrl = `?contextItem=${this.contextId}&page=${this.page}`;\r\n if (this.dates) {\r\n nextUrl += `&dates=${this.dates.join('|')}`;\r\n }\r\n return nextUrl;\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport paginationBuilder from '../../util/paginationBuilder';\r\nimport { format } from 'date-fns';\r\nimport { getParamsObj, updateBrowserState, setSelectOptions } from '../../util/browserUtil';\r\n\r\nexport default class FocusList {\r\n constructor(element) {\r\n this.el = element;\r\n this.publicationTypes = [];\r\n this.page = 1;\r\n this.typePicker = null;\r\n this.params = null;\r\n this.tags = '';\r\n this.page = 1;\r\n this.numberOfPages = 100;\r\n this.data = {};\r\n this.focusItemHtml = null;\r\n this.focusItems = null;\r\n this.contextId = this.el.getAttribute('data-contextId');\r\n this.dates = [];\r\n this.datePicker = null;\r\n this.init();\r\n }\r\n // manage changes to this.data (change filter states, focus etc.)\r\n set _data(value) {\r\n this.data = value;\r\n if (value?.TagCategoryList) {\r\n const publicationTypes = value.Tags.Nodes.filter(x => x.RootAlias === 'PublikationsTyper');\r\n const dateTags = value.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n this.typePicker.Update(publicationTypes, this.publicationTypes, this.typesChangedHandler);\r\n this.datePicker.Update(dateTags, this.dates, this.datesChangedHandler);\r\n }\r\n this.numberOfPages = value.SearchResult.Paging.PagesToShow.length;\r\n this.loadfocus(value.SearchResult.Items);\r\n this.managePagination();\r\n }\r\n init() {\r\n // Element getters\r\n this.subjectPicker = this.el.querySelector('#filterSubject');\r\n this.typePicker = this.el.querySelector('#filterType');\r\n this.datePicker = this.el.querySelector('#filterDates');\r\n\r\n\r\n // load reference html and remove from dom\r\n this.focusItemHtml = this.el.querySelector('#focusItemPlaceholder');\r\n this.focusItemHtml.parentElement.removeChild(this.focusItemHtml);\r\n this.focusItemHtml.removeAttribute('id');\r\n\r\n this.focusItems = this.el.querySelector('.focusItems');\r\n this.manageState();\r\n\r\n this.typesChangedHandler = (selectedTypes)=> {\r\n this.publicationTypes = selectedTypes;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n };\r\n this.datesChangedHandler = (selectedDates) => {\r\n this.dates = selectedDates;\r\n updateBrowserState(this.nextUrl(true));\r\n this.manageState();\r\n }\r\n\r\n var currentComponent = this;\r\n window.addEventListener('resize', function(event){\r\n currentComponent.onViewportResize(event);\r\n }, true);\r\n }\r\n\r\n loadfocus(items) {\r\n this.focusItems.innerHTML = '';\r\n\r\n items.forEach(item => {\r\n const focusItem = this.focusItemHtml.cloneNode(true);\r\n focusItem.querySelector('.focusItem__headline').innerText = item.Headline;\r\n focusItem.querySelector('.focusItem__text').innerText = item.Description;\r\n focusItem.querySelector('.focusItem__url').href = item.Url;\r\n focusItem.setAttribute('data-id', item.Id);\r\n\r\n if (item.TagCategoryList.Categories.find(s => s.Name == 'PublikationsTyper')) {\r\n if (item.TagCategoryList.Categories?.length) {\r\n const focusSubjects = focusItem.querySelector('.focusItem__subject');\r\n\r\n focusSubjects.innerText = item.TagCategoryList.Categories.find(s => s.Name == 'PublikationsTyper').Tags.map(s => s.Headline).join(', ');\r\n }\r\n }\r\n else {\r\n const focusSubjectsLi = focusItem.querySelector('.focusLiSubject');\r\n focusSubjectsLi.innerHTML = '';\r\n }\r\n\r\n focusItem.querySelector('.focusItem__date').innerText = format(Date.parse(item.FocusDate), 'dd.MM.yyyy');\r\n this.focusItems.appendChild(focusItem);\r\n this.setImageCrop(item, focusItem); \r\n });\r\n\r\n }\r\n\r\n onViewportResize(event){\r\n if(this.data?.SearchResult){\r\n const domItems = [...document.querySelectorAll('.focusItem')];\r\n domItems.forEach(domItem => {\r\n var itemId = domItem.getAttribute('data-id');\r\n var dataItem = this.data.SearchResult.Items.find(item => item.Id == itemId);\r\n this.setImageCrop(dataItem, domItem);\r\n });\r\n }\r\n else{\r\n console.log('no data');\r\n }\r\n }\r\n\r\n setImageCrop(dataItem, domItem){\r\n if(dataItem){\r\n if(dataItem.ImageUrls?.Items.length){\r\n // Default\r\n const img = dataItem.ImageUrls.Items.find(x => x.Alias == 'List');\r\n domItem.querySelector('.focusItem__image').src = img.Url;\r\n\r\n // Adjust according to current offset\r\n if(domItem.offsetWidth < 768){\r\n const imgMedium = dataItem.ImageUrls.Items.find(x => x.Alias == 'Tile');\r\n domItem.querySelector('.focusItem__image').src = imgMedium.Url; \r\n }\r\n else if(domItem.offsetHeight > 150 && domItem.offsetHeight <= 180){\r\n const imgMedium = dataItem.ImageUrls.Items.find(x => x.Alias == 'ListMedium');\r\n domItem.querySelector('.focusItem__image').src = imgMedium.Url;\r\n } \r\n else if(domItem.offsetHeight > 180 && domItem.offsetHeight <= 225){\r\n const imgMedium = dataItem.ImageUrls.Items.find(x => x.Alias == 'ListLarge');\r\n domItem.querySelector('.focusItem__image').src = imgMedium.Url;\r\n }\r\n else if(domItem.offsetHeight > 225){\r\n const imgLarge = dataItem.ImageUrls.Items.find(x => x.Alias == 'Tile');\r\n domItem.querySelector('.focusItem__image').src = imgLarge.Url;\r\n }\r\n }\r\n else if(domItem.querySelector('.focusItem__image')){\r\n domItem.querySelector('.focusItem__image').remove();\r\n }\r\n }\r\n else{\r\n console.log('dataitem is null');\r\n }\r\n }\r\n\r\n manageState() {\r\n this.manageParams();\r\n let url = `${window.location.origin}/api/FocusElementComponent/FocusListJson?types=${this.publicationTypes.join('|')}&dates=${this.dates.join('|')}&page=${this.page}&settingsitem=${this.contextId}`;\r\n\r\n axios.get(url).then(response => {\r\n this._data = response.data;\r\n if (this.data) {\r\n const publicationTypes = this.data.Tags.Nodes.filter(x => x.RootAlias === 'PublikationsTyper');\r\n const dateTags = this.data.Tags.Nodes.filter(x => x.RootAlias === 'dates');\r\n this.typePicker.Update(publicationTypes, this.publicationTypes, this.typesChangedHandler);\r\n this.datePicker.Update(dateTags, this.dates, this.datesChangedHandler);\r\n }\r\n });\r\n }\r\n\r\n manageParams() {\r\n this.params = getParamsObj();\r\n if (this.params.types) {\r\n this.publicationTypes = this.params.types.split('|');\r\n }\r\n if (this.params.page) {\r\n this.page = parseInt(this.params.page);\r\n }\r\n if (this.params.dates) {\r\n this.dates = this.params.dates.split('|');\r\n }\r\n }\r\n\r\n managePagination() {\r\n if (this.numberOfPages == 1) {\r\n if (this.el.querySelector('.pagination'))\r\n this.el.querySelector('.pagination').classList.add('hidden');\r\n return;\r\n }\r\n this.el.querySelector('.pagination').classList.remove('hidden');\r\n const callback = e => {\r\n const value = e.target.closest('a[data-value]').getAttribute('data-value');\r\n if (value) {\r\n if (value == 'prev') this.page--;\r\n else if (value == 'next') this.page++;\r\n else this.page = parseInt(value)+1;\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n updateBrowserState(this.nextUrl());\r\n this.manageState();\r\n e.preventDefault();\r\n };\r\n\r\n paginationBuilder(this.el.querySelector('.pagination'), this.page, this.numberOfPages, callback);\r\n }\r\n\r\n nextUrl(resetPage = false) {\r\n if (resetPage) {\r\n this.page = 1;\r\n }\r\n let nextUrl = `?types=${this.publicationTypes.join('|')}&dates=${this.dates.join('|')}&page=${this.page}`;\r\n return nextUrl;\r\n }\r\n}\r\n","import 'regenerator-runtime';\r\nimport './index.css';\r\nimport {EventBus, EventTypes} from './consts/const-event-types';\r\n/*\r\nTo add new components, import them here and add them to the 'components'-array below.\r\nAdd an appropriate selectorName for use in DOM (fx:
    ):\r\n*/\r\nimport App from './components/app';\r\nimport Slider from './components/slider/Slider';\r\nimport Menu from './components/menu/Menu';\r\nimport NewsList from './components/newslist/newslist';\r\nimport PublicationList from './components/publicationlist/publicationlist';\r\nimport Dropdown from './components/dropdown/dropdown';\r\nimport DropdownTree from './components/dropdowntree/dropdowntree';\r\nimport Datepicker from './components/datepicker/datepicker';\r\nimport EventsList from './components/eventslist/eventslist';\r\nimport CalendarArchive from './components/calendararchive/calendararchive';\r\nimport ContactTree from './components/contacttree/contacttree';\r\nimport FWSlider from './components/slider/fwSlider';\r\nimport Hearings from './components/hearingcomponent/hearingcomponent';\r\nimport Searchbox from './components/searchbox/searchbox';\r\nimport Search from './components/search/search';\r\nimport Youtube from './components/youtube/youtube';\r\nimport Accordion from './components/accordion/accordion';\r\nimport NewyearSpeeches from './components/newyear-speeches/newyear-speeches';\r\nimport MeetingMinutes from './components/meeting-minutes/meeting-minutes';\r\nimport FocusList from './components/focuslist/focuslist';\r\nimport VacancyList from './components/vacancylist/vacancylist';\r\nimport Tooltip from './components/tooltip/tooltip';\r\nimport LanguagePicker from './components/languagePicker/languagePicker';\r\n\r\nconst components = [\r\n {Class: App, selectorName: 'app'},\r\n {Class: Slider, selectorName: 'slider'},\r\n {Class: FWSlider, selectorName: 'fullwidthSlider'},\r\n {Class: Menu, selectorName: 'menu'},\r\n {Class: NewsList, selectorName: 'newslist'},\r\n {Class: PublicationList, selectorName: 'publicationlist'},\r\n {Class: Dropdown, selectorName: 'dropdown'},\r\n {Class: DropdownTree, selectorName: 'dropdowntree'},\r\n {Class: Datepicker, selectorName: 'datepicker'},\r\n {Class: EventsList, selectorName: 'eventslist'},\r\n {Class: CalendarArchive, selectorName: 'calendararchive'},\r\n {Class: ContactTree, selectorName: 'contacttree'},\r\n {Class: Searchbox, selectorName: 'searchbox'},\r\n {Class: Search, selectorName: 'search'},\r\n {Class: Hearings, selectorName: 'hearings'},\r\n {Class: Youtube, selectorName: 'youtube'},\r\n {Class: Accordion, selectorName: 'accordion'},\r\n {Class: NewyearSpeeches, selectorName: 'newyear-speeches'},\r\n {Class: MeetingMinutes, selectorName: 'meeting-minutes'},\r\n {Class: FocusList, selectorName: 'focuslist'},\r\n {Class: VacancyList, selectorName: 'vacancylist'},\r\n {Class: Tooltip, selectorName: 'tooltip'},\r\n {Class: LanguagePicker, selectorName: 'langPicker'}\r\n];\r\n\r\n/*\r\n* ComponentInstantiator traverses the DOM-tree and looks for [data-component='] attributes.\r\n*/\r\nclass ComponentInstantiator {\r\n constructor() {\r\n this.createComponents();\r\n this.dispatchReady();\r\n return this;\r\n }\r\n\r\n createComponents() {\r\n this.componentsInstantiated = {};\r\n\r\n components.map(component => {\r\n const nodes = [];\r\n // select all DOM-nodes with the data-component attribute:\r\n const nodeItems = [...document.querySelectorAll('[data-component=\\'' + component.selectorName + '\\']')];\r\n\r\n nodeItems.map(nodeItem => {\r\n // instantiate component with nodeItem as param:\r\n nodes.push(new component.Class(nodeItem));\r\n });\r\n\r\n // add to componentsList object:\r\n if (nodes.length) this.componentsInstantiated[component.selectorName] = nodes;\r\n });\r\n }\r\n\r\n dispatchReady() {\r\n const event = new CustomEvent(EventTypes.ALL_COMPONENTS_READY);\r\n EventBus.dispatchEvent(event);\r\n }\r\n\r\n getComponents(selectorName) {\r\n return selectorName ? this.componentsInstantiated[selectorName] : this.componentsInstantiated;\r\n }\r\n}\r\n\r\n/* Make your App accessible via window.App */\r\nwindow.App = new ComponentInstantiator();\r\n\r\n/* Access components list */\r\n// console.log('components on this page', window.App.getComponents())\r\n\r\n// various global js functions\r\n//InitSitecoreTables();\r\n","import axios from 'axios';\r\nimport { format } from 'date-fns';\r\nexport default class VacancyList {\r\n constructor(element) {\r\n this.el = element;\r\n this.init();\r\n }\r\n\r\n init() {\r\n console.log('Example-component initiated with this element', this.el);\r\n\r\n const vacancyItemHtml = this.el.querySelector('#vacancyItemPlaceholder');\r\n vacancyItemHtml.parentElement.removeChild(vacancyItemHtml);\r\n vacancyItemHtml.removeAttribute('id');\r\n const vacancyItems = this.el.querySelector('.vacancies');\r\n\r\n const url = `${window.location.origin}/api/Vacancy/GetVacanciesJson?pageSize=${5}&page=${1}`;\r\n axios.get(url).then((res) => {\r\n res.data.Vacancies.forEach((vacancy) => {\r\n console.log(vacancy);\r\n const vacancyItem = vacancyItemHtml.cloneNode(true);\r\n vacancyItem.querySelector('.vacancyItem__headline').innerText = vacancy.VacancyName;\r\n vacancyItem.querySelector('.vacancyItem__location').innerText = vacancy.VacancyLocation;\r\n vacancyItem.href = `//${vacancy.VacancyUrl}`;\r\n vacancyItem.querySelector('.vacancyItem__date').innerText = format(Date.parse(vacancy.VacancyTimeLimit), 'dd.MM.yyyy');\r\n vacancyItems.appendChild(vacancyItem);\r\n });\r\n });\r\n }\r\n}\r\n","export default class Tooltip {\r\n constructor(element) {\r\n this.el = element;\r\n this.tooltip = document.querySelector('.tooltip');\r\n this.tooltipText = document.querySelector('.tooltip-text');\r\n this.init();\r\n }\r\n\r\n init() {\r\n\r\n // Check if element exxists.\r\n if (typeof(this.tooltip) != 'undefined' && this.tooltip != null)\r\n {\r\n \r\n this.tooltip.addEventListener(\"click\", () => {\r\n \r\n let elText = this.tooltip.dataset.tooltipText;\r\n \r\n\r\n this.tooltipText.innerText = elText;\r\n\r\n console.log('---->', elText)\r\n \r\n })\r\n }\r\n }\r\n}\r\n","import {enableScrollLock, disableScrollLock} from '../../util/bodyScroll';\r\nexport default class LanguagePicker {\r\n constructor(element) {\r\n this.el = element;\r\n this.init();\r\n }\r\n\r\n init() {\r\n console.log(this.el);\r\n const toggleBtn = document.querySelector('.toggleLang');\r\n const langContainer = document.querySelector('.langcontainer');\r\n toggleBtn.addEventListener('click', () => {\r\n if (langContainer.classList.contains(\"active\")) {\r\n disableScrollLock(true);\r\n langContainer.classList.remove('active');\r\n } else {\r\n enableScrollLock(true);\r\n langContainer.classList.add('active');\r\n }\r\n });\r\n }\r\n}\r\n"],"names":["module","exports","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","transitionalDefaults","AxiosError","CanceledError","parseProtocol","config","Promise","resolve","reject","onCanceled","requestData","data","requestHeaders","headers","responseType","done","cancelToken","unsubscribe","signal","removeEventListener","isFormData","isStandardBrowserEnv","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","status","statusText","value","err","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","indexOf","setTimeout","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","ETIMEDOUT","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","type","abort","subscribe","aborted","protocol","ERR_BAD_REQUEST","send","bind","Axios","mergeConfig","axios","createInstance","defaultConfig","context","instance","prototype","extend","create","instanceConfig","CancelToken","isCancel","VERSION","toFormData","Cancel","all","promises","spread","isAxiosError","executor","TypeError","resolvePromise","this","promise","token","then","_listeners","i","l","length","onfulfilled","_resolve","message","reason","throwIfRequested","listener","push","index","splice","source","c","call","ERR_CANCELED","name","inherits","__CANCEL__","InterceptorManager","dispatchRequest","validator","validators","defaults","interceptors","configOrUrl","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","Array","apply","concat","shift","newConfig","onFulfilled","onRejected","error","getUri","generateHTTPMethod","isForm","code","Error","toJSON","description","number","fileName","lineNumber","columnNumber","stack","descriptors","Object","defineProperties","defineProperty","from","customProps","axiosError","toFlatObject","obj","assign","handlers","use","options","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","config1","config2","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","keys","configValue","validateStatus","ERR_BAD_RESPONSE","Math","floor","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","toString","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isFileList","isObjectPayload","isObject","contentType","_FormData","env","FormData","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","args","arguments","encode","replace","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","match","RegExp","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","substr","exec","callback","arr","formData","convertValue","isTypedArray","Blob","Buffer","build","parentKey","fullKey","endsWith","toArray","el","append","pop","thing","deprecatedWarnings","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","schema","allowUnknown","ERR_BAD_OPTION_VALUE","result","ERR_BAD_OPTION","cache","kindOf","str","kindOfTest","getPrototypeOf","isFunction","hasOwnProperty","TypedArray","Uint8Array","constructor","pattern","ArrayBuffer","isView","pipe","product","assignValue","a","b","stripBOM","content","charCodeAt","superConstructor","props","sourceObj","destObj","filter","merged","getOwnPropertyNames","searchString","position","String","lastIndex","t","n","o","m","d","enumerable","get","r","Symbol","toStringTag","__esModule","default","p","s","dateInstance","clone","toJSDate","parseDateTime","lang","NaN","getDateZeroTime","Number","regex","year","month","shortMonth","longMonth","day","entries","u","formatPatterns","group","f","g","y","shortMonths","longMonths","k","convertArray","map","getFullYear","getMonth","getDate","MONTH_JS","toLocaleString","toDateString","getSeconds","getDay","getTime","setMonth","setHours","setSeconds","setDate","setFullYear","getWeek","timestamp","ceil","isBetween","isBefore","isSameOrBefore","isAfter","isSameOrAfter","isSame","add","subtract","diff","round","format","output","substring","formatTokens","DateTime","__extends","setPrototypeOf","__proto__","__spreadArrays","preventClick","bindEvents","scrollToDate","startDate","endDate","element","elementEnd","numberOfMonths","calendars","onClick","ui","className","litepicker","style","display","onMouseEnter","onMouseLeave","autoRefresh","HTMLElement","onInput","parentEl","appendChild","querySelector","inlineMode","HTMLInputElement","parentNode","body","updateInput","init","setup","render","show","singleMode","delimiter","isSamePicker","closest","shouldShown","disabled","shouldResetDatePicked","datePicked","shouldSwapDatePicked","shouldCheckLockDays","disallowLockDaysInRange","shadowRoot","composedPath","isShowning","emit","classList","contains","dayItem","preventDefault","isLocked","dataset","time","rangeIsLocked","autoApply","hide","setDateRange","buttonPreviousMonth","switchingMonths","splitView","monthItem","findNestedMonthItem","gotoDate","buttonNextMonth","buttonCancel","buttonApply","showTooltip","containerTooltip","visibility","innerHTML","getBoundingClientRect","top","left","height","width","hideTooltip","shouldAllowMouseEnter","shouldAllowRepick","allowRepick","isDayItem","triggerElement","querySelectorAll","renderDay","isInRange","isEndDate","isFlipped","tooltipNumber","pluralSelector","tooltipText","dispatchEvent","Event","parseInput","startsWith","getStartDate","getEndDate","Calendar","Litepicker","childNodes","item","dateIsLocked","lockDays","lockDaysInclusivity","lockDaysFilter","insert","_lastElementInsertedByStyleLoader","disableLitepickerStyles","nextSibling","insertBefore","firstChild","singleton","locals","containerMain","containerMonths","numberOfColumns","columns2","columns3","columns4","showWeekNumbers","renderMonth","resetButton","buttonText","reset","clearSelection","monthItemHeader","footerHTML","renderFooter","renderTooltip","plugins","dropdowns","months","monthItemName","text","minDate","maxDate","selected","years","monthItemYear","minYear","maxYear","reverse","w","D","previousMonth","x","nextMonth","noPreviousMonth","noNextMonth","M","monthItemWeekdaysRow","_","T","firstDay","L","weekdayName","title","E","containerDays","S","calcSkipDays","renderWeekNumber","I","P","isToday","isStartDate","minDays","maxDays","selectForward","selectBackward","highlightedDays","isHighlighted","tabIndex","containerFooter","previewDateRange","weekNumber","weekday","LPCore","__assign","zIndex","mobileFriendly","lockDaysFormat","highlightedDaysFormat","one","other","isNaN","tooltipPluralSelector","Intl","PluralRules","select","abs","findPosition","scrollX","pageXOffset","scrollY","pageYOffset","bottom","innerHeight","innerWidth","right","EventEmitter","Reflect","Function","ownKeys","getOwnPropertySymbols","_events","_eventsCount","_maxListeners","defaultMaxListeners","newListener","warned","emitter","count","fired","removeListener","wrapFn","set","RangeError","setMaxListeners","getMaxListeners","addListener","on","prependListener","once","prependOnceListener","off","removeAllListeners","listeners","rawListeners","listenerCount","eventNames","sources","sourceRoot","Boolean","atob","HTMLIFrameElement","contentDocument","head","base","css","media","sourceMap","refs","attributes","nonce","nc","styleSheet","cssText","createTextNode","removeChild","setStartDate","setEndDate","setLockDays","setHighlightedDays","setOptions","destroy","runtime","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","configurable","writable","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","tryCatch","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","object","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","EventBus","EventTypes","freeze","ALL_COMPONENTS_READY","MY_CUSTOM_EVENT","App","_classCallCheck","onAppReady","someElement","eventData","detail","ev","CustomEvent","descriptor","MEDIA_PREFERS_REDUCED_MOTION","STATES","CREATED","MOUNTED","IDLE","MOVING","SCROLLING","DRAGGING","DESTROYED","empty","array","arrayLike","start","end","func","nextTick","noop","raf","requestAnimationFrame","typeOf","subject","isNull","isHTMLElement","ownerDocument","defaultView","iteratee","includes","items","toggleClass","elm","classes","addClass","parent","children","before","nodes","ref","node","matches","selector","children2","child","firstElementChild","forOwn","omit","removeAttribute","elms","attrs","attr","value2","tag","getComputedStyle","display2","focus","preventScroll","getAttribute","hasClass","rect","parseHtml","html","DOMParser","parseFromString","prevent","stopPropagation","stopImmediatePropagation","query","queryAll","removeClass","timeOf","timeStamp","unit","PROJECT_CODE","DATA_ATTRIBUTE","assert","condition","min","max","approximatelyEqual","epsilon","between","exclusive","minimum","maximum","clamp","sign","string","replacements","replacement","pad","ids","uniqueId","prefix","EventBinder","forEachEvent","targets","events","events2","eventNS","fragment","event","namespace","isEventTarget","remover","unbind","dispatch","bubbles","createEvent","initCustomEvent","EVENT_MOUNTED","EVENT_READY","EVENT_MOVE","EVENT_MOVED","EVENT_CLICK","EVENT_ACTIVE","EVENT_INACTIVE","EVENT_VISIBLE","EVENT_HIDDEN","EVENT_REFRESH","EVENT_UPDATED","EVENT_RESIZE","EVENT_RESIZED","EVENT_SCROLL","EVENT_SCROLLED","EVENT_DESTROY","EVENT_ARROWS_MOUNTED","EVENT_NAVIGATION_MOUNTED","EVENT_AUTOPLAY_PLAY","EVENT_AUTOPLAY_PAUSE","EVENT_LAZYLOAD_LOADED","EVENT_SLIDE_KEYDOWN","EVENT_SHIFTED","EVENT_END_INDEX_CHANGED","EventInterface","Splide2","bus","createDocumentFragment","binder","RequestInterval","interval","onInterval","onUpdate","limit","startTime","rate","paused","update","pause","cancelAnimationFrame","resume","rewind","isPaused","ARROW","ARROW_LEFT","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","TTB","ORIENTATION_MAP","X","Y","ArrowLeft","ArrowRight","Direction","Components2","axisOnly","direction","offset","orient","ROLE","TAB_INDEX","ARIA_PREFIX","ARIA_CONTROLS","ARIA_CURRENT","ARIA_SELECTED","ARIA_LABEL","ARIA_LABELLEDBY","ARIA_HIDDEN","ARIA_ORIENTATION","ARIA_ROLEDESCRIPTION","ARIA_LIVE","ARIA_BUSY","ARIA_ATOMIC","ALL_ATTRIBUTES","CLASS_PREFIX","STATUS_CLASS_PREFIX","CLASS_ROOT","CLASS_TRACK","CLASS_LIST","CLASS_SLIDE","CLASS_CLONE","CLASS_CONTAINER","CLASS_ARROWS","CLASS_ARROW","CLASS_ARROW_PREV","CLASS_ARROW_NEXT","CLASS_PAGINATION","CLASS_PAGINATION_PAGE","CLASS_PROGRESS_BAR","CLASS_TOGGLE","CLASS_SR","CLASS_INITIALIZED","CLASS_ACTIVE","CLASS_PREV","CLASS_NEXT","CLASS_VISIBLE","CLASS_LOADING","CLASS_FOCUS_IN","CLASS_OVERFLOW","STATUS_CLASSES","CLASSES","slide","arrows","arrow","pagination","page","spinner","POINTER_DOWN_EVENTS","POINTER_MOVE_EVENTS","POINTER_UP_EVENTS","SLIDE","LOOP","FADE","Slide$1","slideIndex","destroyed","Components","root","isNavigation","updateOnMove","i18n","slideFocus","styles","label","isClone","container","initNavigation","controls","splides","Slide2","splide","Slides","getAt","slideX","onMove","curr","active","isActive","visible","is","trackRect","Elements","track","slideRect","isVisible","hidden","focusableNodes","activeElement","updateVisibility","cloneStatus","mount","slideLabel","useContainer","isWithin","distance","XML_NAME_SPACE","PATH","INTERVAL_DATA_ATTRIBUTE","SCROLL_LISTENER_OPTIONS","passive","capture","NORMALIZATION_MAP","Spacebar","Right","Left","Up","Down","normalizeKey","KEYBOARD_EVENT","SRC_DATA_ATTRIBUTE","SRCSET_DATA_ATTRIBUTE","IMAGE_SELECTOR","TRIGGER_KEYS","ComponentConstructors","Media","breakpoints","reducedMotion","queries","completely","register","options2","queryList","matchMedia","reduce","merged2","refresh","notify","isMin","mediaQuery","sort","enable","list","isUsingKey","_EventInterface","elements","slides","rootClasses","trackClasses","find","bar","toggle","role","tagName","carousel","getClasses","labelledby","nodeType","parentElement","drag","_EventInterface2","_Components2$Elements","Slides2","forEach$1","Slide1","excludeClones","matcher","getIn","Controller","toIndex","hasFocus","perPage","images","img","getLength","isEnough","Layout","vertical","rootRect","overflow","_EventInterface3","_Components2$Elements2","styleSlides","cssPadding","resize","force","newRect","cssHeight","cssTrackHeight","gap","autoWidth","fixedWidth","cssSlideSize","fixedHeight","autoHeight","isOverflow","padding","heightRatio","listSize","slideSize","withoutGap","Slide","getGap","totalSize","sliderSize","parseFloat","duration","getPadding","Clones","cloneCount","clones","remount","observe","computeCloneCount","isHead","cloneNode","cloneDeep","generate","clones2","fixedSize","Move","Transition","_EventInterface4","_Components2$Layout","_Components2$Directio","_Components2$Elements3","reposition","isBusy","Scroll","jump","translate","toPosition","preventLoop","destination","exceededMax","getEnd","loop","backwards","excess","getLimit","size","getPosition","minDistance","Infinity","trimming","trimSpace","move","dest","shifted","exceededLimit","exceededMin","endIndex","slideCount","perMove","_EventInterface5","_Components2$Slides","omitEnd","isLoop","isSlide","getNext","getAdjacent","getPrev","currIndex","prevIndex","onResized","computeDestIndex","snapPage","computeMovableDestIndex","toPage","setIndex","waitForTransition","go","control","allowSameIndex","_ref","indicator","scroll","snap","getIndex","toDest","Arrows","created","wrapperClasses","placeholder","wrapper","enabled","createArrow","prev2","arrowPath","nextIndex","prevLabel","last","nextLabel","first","Autoplay","hovered","focused","_EventInterface6","_Components2$Elements4","autoplay","stopped","play","resetProgress","autoToggle","pauseOnHover","pauseOnFocus","listen","Cover","cover","cover2","src","_EventInterface8","friction","onScrolled","noConstrain","clear","noDistance","onEnd","to","easingFunc","pow","Drag","basePosition","baseEvent","prevBaseEvent","isFree","dragging","clickPrevented","_EventInterface9","_Components2$Directio2","exceeded","disable","onPointerDown","isTouch","isTouchEvent","target2","noDrag","button","onPointerMove","onPointerUp","save","cancelable","diffCoord","expired","diffTime","hasExceeded","isSliderDirection","thresholds","dragMinThreshold","isObj","mouse","touch","shouldStart","velocity","computeVelocity","flickPower","flickMaxPages","computeDestination","rewindByDrag","orthogonal","coordOf","getBaseEvent","changedTouches","TouchEvent","isDragging","Keyboard","_EventInterface10","keyboard","onKeydown","_disabled","LazyLoad","_EventInterface11","isSequential","lazyLoad","srcset","loadNext","check","preloadPages","load","onLoad","Pagination","paginationClasses","dir","getDirection","nextPage","paginationDirection","_button","li","class","pageX","paginationKeyboard","createPagination","Sync","isParent","sync","Wheel","lastTime","onWheel","deltaY","_min","wheelMinThreshold","sleep","wheelSleep","releaseWheel","shouldPrevent","wheel","Live","live","sr","textContent","DEFAULTS","speed","easing","rewindSpeed","Fade","endCallback","transition","getSpeed","useScroll","_Splide","states","_o","_E","Constructor","protoProps","staticProps","_proto","Extensions","_this","_C","_T","Component","component","_this$event","Splide","Slider","disableScrollLock","innerBody","overflowY","marginTop","scrollTop","parseInt","scrollTo","enableBodyScroll","enableScrollLock","_ref$savePosition","savePosition","scrollHeight","disableBodyScroll","Menu","openBtn","closeBtn","sideMenu","overlay","fadeContainer","langContainer","offsetHeight","pagination_a","pagination_span","paginationBuilder","currentPage","numberOfPages","span","segments","segmentPosition","whilePageCount","segment","listItems","makeLiNode","formatDistanceLocale","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","formatLong","date","full","long","medium","short","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","formattingValues","defaultFormattingWidth","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","predicate","findIndex","findKey","valueCallback","rest","buildMatchPatternFn","parseResult","parsePattern","enUS","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","localize","ordinalNumber","dirtyNumber","rem100","era","narrow","abbreviated","wide","quarter","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","any","weekStartsOn","firstWeekContainsDate","defaultOptions","getDefaultOptions","millisecondsInWeek","constructFromSymbol","for","constructFrom","toDate","argument","getTimezoneOffsetInMilliseconds","utcDate","UTC","getHours","getMinutes","getMilliseconds","setUTCFullYear","startOfDay","in","differenceInCalendarDays","laterDate","earlierDate","laterDate_","earlierDate_","dates","normalize","normalizeDates","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","startOfYear","date_","getDayOfYear","startOfWeek","locale","startOfISOWeek","getISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfISOWeekYear","fourthOfJanuary","getISOWeek","getWeekYear","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","addLeadingZeros","targetLength","padStart","lightFormatters","signedYear","dayPeriodEnumValue","H","numberOfDigits","milliseconds","trunc","dayPeriodEnum","formatters","G","signedWeekYear","weekYear","R","Q","q","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","B","K","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","O","formatTimezoneShort","z","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","datePattern","timePattern","dateTimeFormat","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isValid","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","originalDate","firstCharacter","longFormatter","isToken","cleanEscapedString","preprocessor","formatterOptions","part","useAdditionalWeekYearTokens","isProtectedWeekYearToken","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","input","_message","warnOrThrowProtectedError","formatter","matched","getParamsObj","_step","URLSearchParams","paramObj","_iterator","_createForOfIteratorHelper","updateBrowserState","paramString","sc_lang","rootUrl","nextUrl","history","replaceState","additionalInformation","NewsList","datePicker","subjects","subjectPicker","tags","newsItemHtml","newsItems","Tags","subjectTags","Nodes","RootAlias","Update","subjectsChangedHandler","datesTags","datesChangeHandler","SearchResult","Paging","PagesToShow","loadNews","Items","managePagination","manageState","currentComponent","onViewportResize","selectedSubjects","selectedYears","_this2","_item$Tags$Items","_item$ImageUrls","newsItem","innerText","Headline","Description","Id","Url","ImageUrls","Alias","alt","Alt","NewsDate","setImageCrop","_this$data","_this3","_toConsumableArray","domItem","itemId","dataItem","log","_dataItem$ImageUrls","offsetWidth","imgMedium","imgLarge","_this4","manageParams","origin","_data","subjectTypes","_this5","Publicationlist","publicationTypes","typePicker","publicationItemHtml","publicationItems","dateTags","typesChangedHandler","datesChangedHandler","loadpublication","selectedTypes","selectedDates","_item$Description","publicationItem","additionalFilters","department","formattedDepartment","types","Dropdown","optionHtml","labelText","labelArray","isMultiple","multiple","MutationObserver","childList","subtree","transform","listItem","checkbox","checked","option","DropdownTree","rootNodes","openedChevronIds","listContainer","dropdownContainer","itemHtml","listHtml","UpdateUiTree","nodeList","selectedValues","changedHandler","CreateList","SetIndeterminateCheckStateForNodeList","OpenChevronsForSelected","parentContainer","listTemplate","itemTemplate","ancestorSelected","currentDepth","newList","CreateListItem","newListItem","headlineSpan","Name","clickedNodeId","clickedNode","FindNodeInListRecursively","CheckboxClicked","Children","firstChrevron","nodeChildList","nodeId","FindNodeInSubtreeRecursively","currentNode","selectedIds","UncheckAncestors","UncheckDescendants","GetSelectedIdsRecursively","GetOpenedChevrons","resultList","_this6","allNodes","GetAllNodesRecursively","subtreeState","chevron","_this7","nodeIdToFind","ancestorList","GetAncestorsRecursivelyFromList","descendantList","GetDescendantsRecursiveleyFromList","_this8","found","GetAncestorsRecursivelyFromSubtree","rootNode","isDescendant","_this9","GetDescendantsRecursiveleyFromSubtree","_this10","SetIndeterminateCheckStateForSubtree","subtreeRootNode","indeterminate","picker","pickerElement","dictionary","days","date1","date2","initialHeight","EventsList","organizers","cities","organizerPicker","cityPicker","eventsItemHtml","eventsItems","TagCategoryList","organizerTags","cityTags","organizersChangeHandler","citiesChangeHandler","loadevents","selectedOrganizers","selectedCities","_item$TagCategoryList","eventsItem","EventDateFormatted","Categories","CalendarArchive","pageSize","calendarItemHtml","calendarItems","contextitem","organizerChangedHandler","loadcalendar","calendarItem","Place","FormattedDateRange","ContactTree","departementPicker","areaPicker","_getParamsObj","_getParamsObj2","selectedOptions","toggleId","toggleElement","area","click","FWSlider","touchstartX","touchendX","slideWidth","activeSlides","buttons","transitioning","slideSpeed","abortInitAndMakeToImage","initSlides","buildSlider","centerSlide","ResizeObserver","clientWidth","setButtons","initSlidesFromNumber","screenX","tmp","prepend","setActiveButton","documentElement","slideNumber","isLast","isSecondLast","rightSlide","slideLeft","resetSlideState","isFirst","leftSlide","slideRight","buttonWidth","da","Hearings","statePicker","hearingStates","hearingTypes","statesChangedHandler","selectedStates","HearingDeadline","Searchbox","suggestionsList","searchbox","typeAheadUrl","boxLogic","nextElementSibling","previousElementSibling","Results","suggestion","doSearch","Search","generateCard","noResults","seeMoreLabel","searchElement","searchOverridePage","NumberOfPages","json","card","linkTarget","ContentType","Breadcrumb","replaceAll","Title","Link","Youtube","player","canPlay","newId","random","idEl","multiYoutube","youTubeLoaded","firstScriptTag","getElementsByTagName","onYouTubeIframeAPIReady","ytid","cursor","ytId","YT","Player","videoId","playerVars","playVideo","Accordion","skip","parentAccordion","NewyearSpeeches","itemHTML","contextId","personPicker","yearPicker","downloadText","filterTags","filterYears","ContextId","buildContent","ul","filters","yearFilters","_getParamsObj$tags","_getParamsObj$years","SetSelectOptions","video","_video$tags$Items$fil","_video$tags$Items$fil2","_video$tags$Items$fil3","PreviewImageSrc","YoutubeLink","Year","background","backgroundSize","FileSrc","FileSize","personTag","some","isYear","MeetingMinutes","datesPicker","meetingMinutesItemHtml","meetingMinutesItems","loadmeetingMinutes","meetingMinutesItem","MeetingDate","FocusList","focusItemHtml","focusItems","loadfocus","focusItem","FocusDate","components","Class","selectorName","PublicationList","Datepicker","VacancyList","vacancyItemHtml","vacancyItems","res","Vacancies","vacancy","vacancyItem","VacancyName","VacancyLocation","VacancyUrl","VacancyTimeLimit","Tooltip","tooltip","elText","LanguagePicker","toggleBtn","ComponentInstantiator","createComponents","dispatchReady","componentsInstantiated","nodeItem"],"sourceRoot":""}