{ "version": 3, "sources": [ "../../../../../node_modules/browser-pack/_prelude.js", "../../../../../node_modules/base64-js/index.js", "../../../../../node_modules/bgtm-engine-es6/node_modules/buffer/index.js", "../../../../../node_modules/deep-extend/lib/deep-extend.js", "../../../../../node_modules/flatpickr/dist/flatpickr.js", "../../../../../node_modules/ieee754/index.js", "../_core/performance/performance-line-chart.es6", "../_core/performance/tabbed-returns.es6", "performanceAndUnitPrice.es6" ], "names": [], "mappings": "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", "file": "generated.js", "sourceRoot": "", "sourcesContent": [ "(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } }\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n buf.__proto__ = Buffer.prototype\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\n// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\nif (typeof Symbol !== 'undefined' && Symbol.species != null &&\n Buffer[Symbol.species] === Buffer) {\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true,\n enumerable: false,\n writable: false\n })\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayLike(value)\n }\n\n if (value == null) {\n throw TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nBuffer.prototype.__proto__ = Uint8Array.prototype\nBuffer.__proto__ = Uint8Array\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n buf.__proto__ = Buffer.prototype\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n buf = Buffer.from(buf)\n }\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n newBuf.__proto__ = Buffer.prototype\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (var i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n", "/*!\n * @description Recursive object extending\n * @author Viacheslav Lotsmanov \n * @license MIT\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2013-2018 Viacheslav Lotsmanov\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nfunction isSpecificValue(val) {\n\treturn (\n\t\tval instanceof Buffer\n\t\t|| val instanceof Date\n\t\t|| val instanceof RegExp\n\t) ? true : false;\n}\n\nfunction cloneSpecificValue(val) {\n\tif (val instanceof Buffer) {\n\t\tvar x = Buffer.alloc\n\t\t\t? Buffer.alloc(val.length)\n\t\t\t: new Buffer(val.length);\n\t\tval.copy(x);\n\t\treturn x;\n\t} else if (val instanceof Date) {\n\t\treturn new Date(val.getTime());\n\t} else if (val instanceof RegExp) {\n\t\treturn new RegExp(val);\n\t} else {\n\t\tthrow new Error('Unexpected situation');\n\t}\n}\n\n/**\n * Recursive cloning array.\n */\nfunction deepCloneArray(arr) {\n\tvar clone = [];\n\tarr.forEach(function (item, index) {\n\t\tif (typeof item === 'object' && item !== null) {\n\t\t\tif (Array.isArray(item)) {\n\t\t\t\tclone[index] = deepCloneArray(item);\n\t\t\t} else if (isSpecificValue(item)) {\n\t\t\t\tclone[index] = cloneSpecificValue(item);\n\t\t\t} else {\n\t\t\t\tclone[index] = deepExtend({}, item);\n\t\t\t}\n\t\t} else {\n\t\t\tclone[index] = item;\n\t\t}\n\t});\n\treturn clone;\n}\n\nfunction safeGetProperty(object, property) {\n\treturn property === '__proto__' ? undefined : object[property];\n}\n\n/**\n * Extening object that entered in first argument.\n *\n * Returns extended object or false if have no target object or incorrect type.\n *\n * If you wish to clone source object (without modify it), just use empty new\n * object as first argument, like this:\n * deepExtend({}, yourObj_1, [yourObj_N]);\n */\nvar deepExtend = module.exports = function (/*obj_1, [obj_2], [obj_N]*/) {\n\tif (arguments.length < 1 || typeof arguments[0] !== 'object') {\n\t\treturn false;\n\t}\n\n\tif (arguments.length < 2) {\n\t\treturn arguments[0];\n\t}\n\n\tvar target = arguments[0];\n\n\t// convert arguments to array and cut off target object\n\tvar args = Array.prototype.slice.call(arguments, 1);\n\n\tvar val, src, clone;\n\n\targs.forEach(function (obj) {\n\t\t// skip argument if isn't an object, is null, or is an array\n\t\tif (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {\n\t\t\treturn;\n\t\t}\n\n\t\tObject.keys(obj).forEach(function (key) {\n\t\t\tsrc = safeGetProperty(target, key); // source value\n\t\t\tval = safeGetProperty(obj, key); // new value\n\n\t\t\t// recursion prevention\n\t\t\tif (val === target) {\n\t\t\t\treturn;\n\n\t\t\t/**\n\t\t\t * if new value isn't object then just overwrite by new value\n\t\t\t * instead of extending.\n\t\t\t */\n\t\t\t} else if (typeof val !== 'object' || val === null) {\n\t\t\t\ttarget[key] = val;\n\t\t\t\treturn;\n\n\t\t\t// just clone arrays (and recursive clone objects inside)\n\t\t\t} else if (Array.isArray(val)) {\n\t\t\t\ttarget[key] = deepCloneArray(val);\n\t\t\t\treturn;\n\n\t\t\t// custom cloning and overwrite for specific objects\n\t\t\t} else if (isSpecificValue(val)) {\n\t\t\t\ttarget[key] = cloneSpecificValue(val);\n\t\t\t\treturn;\n\n\t\t\t// overwrite by new value if source isn't object or array\n\t\t\t} else if (typeof src !== 'object' || src === null || Array.isArray(src)) {\n\t\t\t\ttarget[key] = deepExtend({}, val);\n\t\t\t\treturn;\n\n\t\t\t// source value and new value is objects both, extending...\n\t\t\t} else {\n\t\t\t\ttarget[key] = deepExtend(src, val);\n\t\t\t\treturn;\n\t\t\t}\n\t\t});\n\t});\n\n\treturn target;\n};\n", "/* flatpickr v4.6.9, @license MIT */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.flatpickr = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n }\n\n var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n ];\n var defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n // Thursday in current week decides the year.\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n // January 4 is always in week 1.\n var week1 = new Date(date.getFullYear(), 0, 4);\n // Adjust to Thursday in week 1 and count number of weeks from date to week1.\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n };\n\n var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\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 longhand: [\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 daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n };\n\n var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n };\n var int = function (bool) { return (bool === true ? 1 : 0); };\n /* istanbul ignore next */\n function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, arguments); }, wait);\n };\n }\n var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n };\n\n function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n }\n function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n }\n function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n }\n function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined; // nothing found\n }\n function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (var key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n }\n function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n }\n\n var doNothing = function () { return undefined; };\n var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\n var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n };\n var tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n };\n var formats = {\n // get the date in UTC\n Z: function (date) { return date.toISOString(); },\n // weekday name, short, e.g. Thu\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n // full month name e.g. January\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n // padded hour 1-12\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n // hours with leading zero e.g. 03\n H: function (date) { return pad(date.getHours()); },\n // day (1-30) with ordinal suffix e.g. 1st, 2nd\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n // AM/PM\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n // shorthand month e.g. Jan, Sep, Oct, etc\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n // seconds 00-59\n S: function (date) { return pad(date.getSeconds()); },\n // unix timestamp\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n // full year e.g. 2016, padded (0001-9999)\n Y: function (date) { return pad(date.getFullYear(), 4); },\n // day in month, padded (01-30)\n d: function (date) { return pad(date.getDate()); },\n // hour from 1-12 (am/pm)\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n // minutes, padded with leading zero e.g. 09\n i: function (date) { return pad(date.getMinutes()); },\n // day in month (1-30)\n j: function (date) { return date.getDate(); },\n // weekday name, full, e.g. Thursday\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n // padded month number (01-12)\n m: function (date) { return pad(date.getMonth() + 1); },\n // the month number (1-12)\n n: function (date) { return date.getMonth() + 1; },\n // seconds 0-59\n s: function (date) { return date.getSeconds(); },\n // Unix Milliseconds\n u: function (date) { return date.getTime(); },\n // number of the day of the week\n w: function (date) { return date.getDay(); },\n // last two digits of year e.g. 16 for 2016\n y: function (date) { return String(date.getFullYear()).substring(2); },\n };\n\n var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n };\n var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined // timestamp\n )\n // create a copy\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n // date string\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr) // datestrings w/ timezone\n )\n parsedDate = new Date(date);\n else if (config && config.parseDate)\n parsedDate = config.parseDate(date, format);\n else {\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token_1 = format[i];\n var isBackSlash = token_1 === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token_1] && !escaped) {\n regexStr += tokenRegex[token_1];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token_1 !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token_1],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\"; // don't really care\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n }\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n /* istanbul ignore next */\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n };\n /**\n * Compute the difference in dates, measured in ms\n */\n function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { timeless = true; }\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n }\n var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n };\n var duration = {\n DAY: 86400000,\n };\n function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n var maxHr = config.maxDate.getHours();\n var maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours: hours, minutes: minutes, seconds: seconds };\n }\n\n if (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n }\n\n var DEBOUNCED_CHANGE_MS = 300;\n function FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__assign({}, defaults), flatpickr.defaultConfig),\n l10n: english,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { yr = self.currentYear; }\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n /* TODO: investigate this further\n \n Currently, there is weird positioning behavior in safari causing pages\n to scroll up. https://github.com/chmln/flatpickr/issues/563\n \n However, most browsers are not Safari and positioning is expensive when used\n in scale. https://github.com/chmln/flatpickr/issues/1096\n */\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n /**\n * The handler for all events targeting the time inputs\n */\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n /**\n * Syncs the selected date object time with user's time input\n */\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n var limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n var limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n setHours(hours, minutes, seconds);\n }\n /**\n * Syncs time input values with a date\n */\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n /**\n * Sets the hours, minutes, and optionally seconds\n * of the latest selected date object and the\n * corresponding time inputs\n * @param {Number} hours the hour. whether its military\n * or am-pm gets inferred from config\n * @param {Number} minutes the minutes\n * @param {Number} seconds the seconds (optional)\n */\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n /**\n * Handles the year input and incrementing events\n * @param {Event} event the keyup or increment event\n */\n function onYearInput(event) {\n var eventTarget = getEventTarget(event);\n var year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n /**\n * Essentially addEventListener + tracking\n * @param {Element} element the element to addEventListener to\n * @param {String} event the event name\n * @param {Function} handler the event handler\n */\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n /**\n * Adds all the necessary event listeners\n */\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return getEventTarget(e).select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n triggerChange();\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n /**\n * Set the calendar view to a particular date.\n * @param {Date} jumpDate the date to set the view to\n * @param {boolean} triggerChange if change events should be triggered\n */\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n /* istanbul ignore next */\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n /**\n * The up/down arrow handler for time inputs\n * @param {Event} e the click event\n */\n function timeIncrement(e) {\n var eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n /**\n * Increments/decrements the value of input associ-\n * ated with the up/down arrow by dispatching an\n * \"increment\" event on the input.\n *\n * @param {Event} e the click event\n * @param {Number} delta the diff (usually 1 or -1)\n * @param {Element} inputElem the input element\n */\n function incrementNumInput(e, delta, inputElem) {\n var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", \"flatpickr-day \" + className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n var dayFocused = isInView(document.activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? document.activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n // prepend days from the ending of previous month\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n // Start at 1 since there is no 0th day\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n // append days from the next month\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n //updateNavigationCurrentMonth();\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n // TODO: week numbers for each month\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () { return self.__hidePrevMonthArrow; },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () { return self.__hideNextMonthArrow; },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n // add self.amPM if appropriate\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n \\n \" + weekdays.join(\"\") + \"\\n \\n \";\n }\n }\n /* istanbul ignore next */\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { toInitial = true; }\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n // triggerChangeEvent is true (default) or an Event\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (var i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n if (self.config.appendTo && self.config.appendTo.contains(elem))\n return true;\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n // web components\n // e.path is not present in all browsers. circumventing typechecks\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = e.type === \"blur\"\n ? isInput &&\n e.relatedTarget &&\n !isCalendarElem(e.relatedTarget)\n : !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1) {\n self.clear(false);\n self.redraw();\n }\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless); // timeless\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck) // disabled by function\n )\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n // disabled by date\n return bool;\n else if (typeof d === \"string\") {\n // disabled by date string\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (\n // disabled by range\n typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n var isInput = e.target === self._input;\n if (isInput &&\n (self.selectedDates.length > 0 || self._input.value.length > 0) &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n // e.key e.keyCode\n // \"Backspace\" 8\n // \"Tab\" 9\n // \"Enter\" 13\n // \"Escape\" (IE \"Esc\") 27\n // \"ArrowLeft\" (IE \"Left\") 37\n // \"ArrowUp\" (IE \"Up\") 38\n // \"ArrowRight\" (IE \"Right\") 39\n // \"ArrowDown\" (IE \"Down\") 40\n // \"Delete\" (IE \"Del\") 46\n var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27: // escape\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (document.activeElement && isInView(document.activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(\"flatpickr-day\") ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n for (var m = 0; m < self.config.showMonths; m++) {\n var month = self.daysContainer.children[m];\n var _loop_1 = function (i, l) {\n var dayElem = month.children[i], date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return \"continue\";\n }\n else if (containsDisabled && !outOfRange)\n return \"continue\";\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n };\n for (var i = 0, l = month.children.length; i < l; i++) {\n _loop_1(i, l);\n }\n }\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n var wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n var boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaults.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaults.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return self.config._maxTime; },\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (var i = 0; i < boolOpts.length; i++)\n // https://github.com/microsoft/TypeScript/issues/31663\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n var top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = top + \"px\";\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n }\n else {\n var doc = getDocumentStyleSheet();\n // some testing environments don't have css support\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n // hack - bugs in the way IE handles focus keeps the calendar open\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n // unless selecting same date twice, sort ascendingly\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n // maintain focus\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n clickOpens: [\n function () {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return x(); });\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n }\n }\n else\n self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { format = self.config.dateFormat; }\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map(function (rule) {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter(function (x) { return x; }); // remove falsy values\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n // Workaround IE11 setting placeholder as the input's value\n var preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n /* istanbul ignore next */\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n // hack: store previous type to restore it after destroy()\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n // replicate self.element\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n // If the instance has been destroyed already, all hooks have been removed\n if (self.config === undefined)\n return;\n var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n // many front-end frameworks bind to the input event\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n if (compareDates(self.selectedDates[i], date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(format) {\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n /**\n * Updates the values of inputs associated with the calendar\n */\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { triggerChange = true; }\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n }\n /* istanbul ignore next */\n function _flatpickr(nodeList, config) {\n // static list\n var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n }\n /* istanbul ignore next */\n if (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n // browser env\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n }\n /* istanbul ignore next */\n var flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n };\n /* istanbul ignore next */\n flatpickr.defaultConfig = {};\n flatpickr.l10ns = {\n en: __assign({}, english),\n default: __assign({}, english),\n };\n flatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n };\n flatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n };\n flatpickr.parseDate = createDateParser({});\n flatpickr.formatDate = createDateFormatter({});\n flatpickr.compareDates = compareDates;\n /* istanbul ignore next */\n if (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n }\n Date.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n };\n if (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n }\n\n return flatpickr;\n\n})));\n", "/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n", "import extend from 'deep-extend';\r\nimport flatpickr from \"flatpickr\";\r\n\r\nexport default class {\r\n\r\n constructor(elem, options) {\r\n const defaults = {\r\n apiUrl: '',\r\n chartEmbedId: '#chart-embed',\r\n keyListElem: '.key ul',\r\n };\r\n\r\n this.options = extend({}, defaults, options);\r\n\r\n if (!elem){\r\n return;\r\n }\r\n\r\n /*\r\n Define nodes / elements / etc\r\n */\r\n window.Highcharts = Highcharts;\r\n this.$elem = elem;\r\n this.$keyList = this.$elem.querySelector(this.options.keyListElem);\r\n this.fetchData(this.options.apiUrl);\r\n }\r\n\r\n\r\n fetchData(apiUrl){\r\n\r\n fetch(apiUrl, { headers: { \"Content-Type\": \"application/json; charset=utf-8\" }})\r\n .then(res => res.json()) // parse response as JSON (can be res.text() for plain response)\r\n .then(response => {\r\n this.renderKey(response);\r\n this.renderLineChart(response);\r\n });\r\n }\r\n\r\n\r\n initCustomDatePicker(chart){\r\n\r\n let minDate = chart.xAxis[0].getExtremes().min;\r\n let maxDate = chart.xAxis[0].getExtremes().max;\r\n let inputStartDate = document.querySelector('input.highcharts-range-selector[name=\"min\"]');\r\n let inputEndDate = document.querySelector('input.highcharts-range-selector[name=\"max\"]');\r\n\r\n flatpickr(inputStartDate, {\r\n minDate: minDate,\r\n maxDate: maxDate,\r\n defaultDate: minDate,\r\n });\r\n\r\n flatpickr(inputEndDate, {\r\n minDate: minDate,\r\n maxDate: maxDate,\r\n defaultDate: maxDate,\r\n });\r\n }\r\n\r\n renderLineChart(earnRateData){\r\n let earningRateChartID = this.$elem.querySelector(this.options.chartEmbedId);\r\n\r\n let self = this;\r\n let earningChart = new Highcharts.StockChart({\r\n chart: {\r\n renderTo: earningRateChartID,\r\n plotBackgroundColor: '#fcfcfc',\r\n type: 'line',\r\n events: {\r\n load: function () {\r\n self.chartLoaded(this);\r\n\r\n },\r\n }\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n dateTimeLabelFormats: {\r\n day: '%d %b\\'%y',\r\n week: '%b\\'%y',\r\n month: '%Y',\r\n year: '%Y'\r\n },\r\n endOnTick: true,\r\n lineColor: '#FFFFFF',\r\n lineWidth: 2,\r\n tickLength: 0,\r\n labels: {\r\n style: {fontSize: '14px', fontWeight: 'bold', fontFamily: '\"Lato\", sans-serif', color: '#656565'},\r\n //autoRotation: false\r\n rotation: -45\r\n },\r\n },\r\n yAxis: {\r\n gridLineWidth: 0,\r\n plotLines: [{\r\n color: '#cbcbcb',\r\n width: 1,\r\n value: 0\r\n }],\r\n startOnTick: false,\r\n opposite: false,\r\n labels: {align: 'right', style: {fontSize: '14px', fontWeight: 'bold', fontFamily: '\"Lato\", sans-serif', color: '#656565'}, formatter: function () {\r\n return this.value + '%';\r\n }},\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n line: {\r\n lineWidth: 2,\r\n shadow: false,\r\n marker: {\r\n symbol: \"circle\",\r\n enabled: false,\r\n states: {\r\n hover: {\r\n enabled: true,\r\n radius: 4,\r\n lineWidth: 1,\r\n fillColor: null,\r\n lineColor: null\r\n }\r\n }\r\n }\r\n },\r\n series: {\r\n compare: 'percent',\r\n turboThreshold: 2000\r\n }\r\n\r\n },\r\n scrollbar: {\r\n enabled: 1\r\n },\r\n time: {\r\n useUTC: false\r\n },\r\n rangeSelector: {\r\n enabled: 1,\r\n //inputEnabled:1,\r\n allButtonsEnabled:1,\r\n inputDateFormat:'%d/%m/%Y',\r\n inputEditDateFormat:'%d/%m/%Y',\r\n inputBoxWidth: 94,\r\n inputBoxHeight: 18,\r\n buttons: [{\r\n type: 'month',\r\n count: 1,\r\n text: '1m'\r\n }, {\r\n type: 'month',\r\n count: 3,\r\n text: '3m'\r\n }, {\r\n type: 'month',\r\n count: 6,\r\n text: '6m'\r\n }, {\r\n type: 'year',\r\n count: 1,\r\n text: '1y'\r\n }, {\r\n type: 'all',\r\n text: 'All'\r\n }]\r\n },\r\n navigator: {\r\n enabled: true,\r\n maskInside: false,\r\n // outlineColor: '#4a7729',\r\n outlineWidth: 1,\r\n margin: 15,\r\n height: 60,\r\n maskFill: 'rgba(190,206,178,0.6)',\r\n series: {\r\n color: '#4c3249',\r\n fillOpacity: 0.4,\r\n },\r\n xAxis: {\r\n type: 'datetime',\r\n dateTimeLabelFormats: {\r\n day: '%d %b\\'%y',\r\n week: '%b\\'%y',\r\n month: '%Y',\r\n year: '%Y'\r\n },\r\n endOnTick: true,\r\n\r\n labels: {\r\n style: {fontSize: '13px', fontWeight: 'bold', fontFamily: '\"Lato\", sans-serif', color: '#3e3e3e'},\r\n },\r\n gridLineWidth: 0,\r\n }\r\n },\r\n series: earnRateData,\r\n title: {\r\n text: false\r\n },\r\n tooltip: {\r\n crosshairs: true,\r\n borderWidth: 0,\r\n shared: true,\r\n shadow: false,\r\n useHTML: true,\r\n backgroundColor: \"#F5F5F5\",\r\n style: {\r\n padding: 10,\r\n color: '#003822',\r\n zIndex: 999999,\r\n fontSize: '14px'\r\n\r\n },\r\n formatter: function () {\r\n var d = Date.fromISO(this.x);\r\n d.setMinutes(d.getMinutes() + d.getTimezoneOffset() + 660);\r\n d.setHours(d.getHours() + 12);\r\n var e = Date.parse(d);\r\n\r\n var s =\r\n '
' +\r\n '

'\r\n + Highcharts.dateFormat('%d/%m/%Y', e) + '' +\r\n '

' +\r\n ' ';\r\n\r\n s +=\r\n '' +\r\n ' ' +\r\n ' ' +\r\n '';\r\n\r\n var t = 0;\r\n $.each(this.points, function (i, point) {\r\n\r\n var l =\r\n '' +\r\n ' ';\r\n\r\n\r\n l +=\r\n '';\r\n\r\n\r\n var v =\r\n '';\r\n s += l + v;\r\n t += Number(point.y);\r\n });\r\n s += \"\";\r\n return s;\r\n\r\n }\r\n }\r\n });\r\n }\r\n\r\n renderKey(data) {\r\n function listItemTemplate(obj) {\r\n return `\r\n
  • \r\n
    \r\n \r\n \r\n \r\n
    \r\n ${obj.name}\r\n
  • \r\n `;\r\n }\r\n\r\n this.$keyList.innerHTML = `\r\n ${data.map(listItemTemplate).join(\"\")}\r\n `;\r\n }\r\n chartLoaded(chart){\r\n this.initCustomDatePicker(chart);\r\n }\r\n}\r\n\r\n\r\n/*\r\nI'm leaving this as is for now - it requires further investigation to confirm exactly what its doing and why\r\n */\r\n//\r\nvar D = new Date('2011-06-02T09:34:29+02:00');\r\nif (!D || +D !== 1307000069000) {\r\n Date.fromISO = function (s) {\r\n var day, tz,\r\n rx = /^(\\d{4}\\-\\d\\d\\-\\d\\d([tT ][\\d:\\.]*)?)([zZ]|([+\\-])(\\d\\d):(\\d\\d))?$/,\r\n p = rx.exec(s) || [];\r\n if (p[1]) {\r\n day = p[1].split(/\\D/);\r\n for (var i = 0, L = day.length; i < L; i++) {\r\n day[i] = parseInt(day[i], 10) || 0;\r\n }\r\n day[1] -= 1;\r\n day = new Date(Date.UTC.apply(Date, day));\r\n if (!day.getDate())\r\n return NaN;\r\n if (p[5]) {\r\n tz = (parseInt(p[5], 10) * 60);\r\n if (p[6])\r\n tz += parseInt(p[6], 10);\r\n if (p[4] === '+')\r\n tz *= -1;\r\n if (tz)\r\n day.setUTCMinutes(day.getUTCMinutes() + tz);\r\n }\r\n return day;\r\n }\r\n return NaN;\r\n }\r\n}\r\nelse {\r\n Date.fromISO = function (s) {\r\n return new Date(s);\r\n }\r\n}", "import extend from 'deep-extend';\r\n\r\nexport default class {\r\n\r\n constructor(elem, options) {\r\n const defaults = {\r\n tabHeader: '.tab-header',\r\n tabBtn: '.btn-tab',\r\n tabContent: '.tab-content',\r\n };\r\n\r\n this.options = extend({}, defaults, options);\r\n\r\n if (!elem) {\r\n return;\r\n }\r\n\r\n this.$elem = elem;\r\n\r\n /*\r\n Define nodes / elements\r\n */\r\n this.$tabBtns = this.$elem.querySelectorAll(this.options.tabBtn);\r\n this.$tabContent = this.$elem.querySelectorAll(this.options.tabContent);\r\n this.initContentTabs();\r\n }\r\n\r\n showTab(targetBtn, tabIndex){\r\n //Remove active classes first\r\n let activeBtn = this.$elem.querySelector(this.options.tabBtn+'.active');\r\n let tabContent = this.$elem.querySelectorAll(this.options.tabContent);\r\n\r\n activeBtn.classList.remove('active');\r\n \r\n tabContent.forEach(function (elem, index) {\r\n elem.classList.add('inactive');\r\n if(index === tabIndex) {\r\n elem.classList.remove('inactive'); \r\n }\r\n });\r\n\r\n \r\n //Find the new content tab\r\n let targetTab = this.$tabContent[tabIndex];\r\n\r\n targetBtn.classList.add('active');\r\n targetTab.classList.add('active');\r\n }\r\n\r\n initContentTabs(){\r\n let self = this;\r\n\r\n //Set the first tab to visible\r\n this.$tabContent.forEach(function (elem, index) {\r\n if(index !== 0){\r\n elem.classList.add('inactive');\r\n }\r\n });\r\n\r\n //Set active state on first button\r\n this.$tabBtns.forEach(function (elem, index) {\r\n elem.addEventListener('click', () => {\r\n self.showTab(elem, index);\r\n });\r\n\r\n if(index === 0){\r\n elem.classList.add('active');\r\n }\r\n });\r\n }\r\n}\r\n", "import PerformanceChart from '../_core/performance/performance-line-chart.es6';\r\nimport TabbedReturns from '../_core/performance/tabbed-returns.es6';\r\n\r\nlet Visualizations = {\r\n PerformanceChart,\r\n TabbedReturns\r\n};\r\n\r\nfunction loadVisualization(name, elem, options){\r\n if(typeof Visualizations[name] !== 'undefined'){\r\n return new Visualizations[name](elem, options);\r\n } else {\r\n console.error('Visualizations load error - ', name);\r\n return false;\r\n }\r\n}\r\n\r\nwindow.ActiveSuper = window.ActiveSuper || {};\r\nwindow.ActiveSuper.loadVisualization = loadVisualization;" ] }
    OptionReturn
    '\r\n + point.series.name +\r\n ' '\r\n + Highcharts.numberFormat(point.point.change, 2, '.', ',') + '%'+\r\n '